feat: add wallpaper types and animation metadata

AnimationType, WallpaperConfig, uniform definitions,
and animation tier metadata (free/premium/pro).
This commit is contained in:
Mathis Pruvot
2026-05-28 11:48:59 +00:00
parent 1cccfbcb11
commit 66e9942eaa

79
src/types/wallpaper.ts Normal file
View File

@@ -0,0 +1,79 @@
export type AnimationType =
| "ken-burns"
| "color-shift"
| "particles"
| "vignette-pulse"
| "glitch"
| "depth-parallax";
export type ParticlePreset = "snow" | "rain" | "bokeh" | "dust" | "fireflies";
export interface AnimationUniforms {
intensity: number;
speed: number;
direction: number; // 0-360 degrees
scale: number;
[key: string]: number;
}
export interface WallpaperConfig {
id: string;
sourceUri: string;
depthMapUri?: string;
animation: AnimationType;
uniforms: AnimationUniforms;
particlePreset?: ParticlePreset;
fps: number;
createdAt: string;
updatedAt: string;
}
export interface WallpaperPreview {
id: string;
thumbnailUri: string;
animation: AnimationType;
config: WallpaperConfig;
}
export const DEFAULT_UNIFORMS: AnimationUniforms = {
intensity: 0.5,
speed: 0.3,
direction: 0,
scale: 1.0,
};
export const ANIMATION_META: Record<
AnimationType,
{ label: string; description: string; tier: "free" | "premium" | "pro" }
> = {
"ken-burns": {
label: "Ken Burns",
description: "Zoom lent et panoramique doux",
tier: "free",
},
"color-shift": {
label: "Color Shift",
description: "Variation cyclique teinte/saturation",
tier: "free",
},
particles: {
label: "Particules",
description: "Overlay animé de particules",
tier: "free",
},
"vignette-pulse": {
label: "Vignette",
description: "Vignette dynamique oscillante",
tier: "premium",
},
glitch: {
label: "Glitch",
description: "Décalage RGB avec noise",
tier: "premium",
},
"depth-parallax": {
label: "Parallax 3D",
description: "Effet de profondeur via depth map IA",
tier: "pro",
},
};