UNPKG

@buddhacognitivelab/theme-glassmorphic

Version:

Enhanced glassmorphic theme package with dual-mode support, advanced glass effects, interactive UI components, and gesture-based interactions

163 lines (162 loc) 9.43 kB
/** * @fileoverview Advanced Animation System - Phase 5 * Sophisticated micro-interactions and theme-responsive animations */ export interface AnimationSystemConfig { /** Enable reduced motion support */ respectReducedMotion: boolean; /** Global animation speed multiplier */ speedMultiplier: number; /** Enable performance optimizations */ optimizePerformance: boolean; /** Enable debug mode */ debug: boolean; } export type MicroInteractionType = 'hover' | 'focus' | 'active' | 'loading' | 'success' | 'error' | 'disabled' | 'drag' | 'drop'; export type AnimationTiming = 'instant' | 'fast' | 'normal' | 'slow' | 'glacial'; export type AnimationEasing = 'linear' | 'ease' | 'easeIn' | 'easeOut' | 'easeInOut' | 'bounce' | 'elastic' | 'sharp' | 'smooth' | 'dramatic' | 'snappy' | 'gentle'; export interface AdvancedAnimationConfig { duration: number; delay: number; easing: string; fillMode: 'none' | 'forwards' | 'backwards' | 'both'; iterationCount: number | 'infinite'; direction: 'normal' | 'reverse' | 'alternate' | 'alternate-reverse'; playState: 'running' | 'paused'; } export interface ThemeAnimationConfig { light: AdvancedAnimationConfig; dark: AdvancedAnimationConfig; } export interface GestureAnimationConfig { scale: { hover: number; active: number; focus: number; }; translate: { x: number; y: number; }; rotate: number; opacity: { hover: number; active: number; disabled: number; }; blur: { hover: number; focus: number; }; } export declare const timingFunctions: { readonly instant: 0; readonly fast: 150; readonly normal: 250; readonly slow: 400; readonly glacial: 600; }; export declare const easingFunctions: { readonly linear: "linear"; readonly ease: "ease"; readonly easeIn: "ease-in"; readonly easeOut: "ease-out"; readonly easeInOut: "ease-in-out"; readonly bounce: "cubic-bezier(0.68, -0.55, 0.265, 1.55)"; readonly elastic: "cubic-bezier(0.175, 0.885, 0.32, 1.275)"; readonly sharp: "cubic-bezier(0.4, 0, 1, 1)"; readonly smooth: "cubic-bezier(0.4, 0, 0.2, 1)"; readonly dramatic: "cubic-bezier(0.25, 0.46, 0.45, 0.94)"; readonly snappy: "cubic-bezier(0.55, 0.085, 0.68, 0.53)"; readonly gentle: "cubic-bezier(0.25, 0.1, 0.25, 1)"; }; export declare const advancedAnimations: { fadeInUp: import("styled-components/dist/models/Keyframes").default; fadeInDown: import("styled-components/dist/models/Keyframes").default; fadeInLeft: import("styled-components/dist/models/Keyframes").default; fadeInRight: import("styled-components/dist/models/Keyframes").default; scaleInGlass: import("styled-components/dist/models/Keyframes").default; scaleOutGlass: import("styled-components/dist/models/Keyframes").default; rotateIn: import("styled-components/dist/models/Keyframes").default; rotateOut: import("styled-components/dist/models/Keyframes").default; flipInX: import("styled-components/dist/models/Keyframes").default; flipInY: import("styled-components/dist/models/Keyframes").default; bounceIn: import("styled-components/dist/models/Keyframes").default; bounceOut: import("styled-components/dist/models/Keyframes").default; elasticIn: import("styled-components/dist/models/Keyframes").default; elasticOut: import("styled-components/dist/models/Keyframes").default; glassShimmer: import("styled-components/dist/models/Keyframes").default; glassRipple: import("styled-components/dist/models/Keyframes").default; glassPulse: import("styled-components/dist/models/Keyframes").default; themeTransition: import("styled-components/dist/models/Keyframes").default; skeletonLoading: import("styled-components/dist/models/Keyframes").default; dotPulse: import("styled-components/dist/models/Keyframes").default; heartbeat: import("styled-components/dist/models/Keyframes").default; wobble: import("styled-components/dist/models/Keyframes").default; dragStart: import("styled-components/dist/models/Keyframes").default; dragEnd: import("styled-components/dist/models/Keyframes").default; dropZoneActive: import("styled-components/dist/models/Keyframes").default; }; export declare const getMicroInteractionConfig: (type: MicroInteractionType, mode: "light" | "dark", intensity?: "subtle" | "prominent") => GestureAnimationConfig; export declare const createAnimation: (keyframe: keyof typeof advancedAnimations, timing?: AnimationTiming, easing?: AnimationEasing, options?: Partial<AdvancedAnimationConfig>) => string; export declare const createThemeAnimation: (keyframe: keyof typeof advancedAnimations, lightConfig?: Partial<AdvancedAnimationConfig>, darkConfig?: Partial<AdvancedAnimationConfig>) => ThemeAnimationConfig; export declare const createStaggeredAnimation: (keyframe: keyof typeof advancedAnimations, itemCount: number, staggerDelay?: number, timing?: AnimationTiming, easing?: AnimationEasing) => string[]; export declare const createOptimizedAnimation: (keyframe: keyof typeof advancedAnimations, config?: Partial<AdvancedAnimationConfig>, respectReducedMotion?: boolean) => import("styled-components").RuleSet<object>; export declare const createGestureAnimation: (type: MicroInteractionType, mode: "light" | "dark", intensity?: "subtle" | "prominent") => import("styled-components").RuleSet<object>; export declare const animationSystem: { animations: { fadeInUp: import("styled-components/dist/models/Keyframes").default; fadeInDown: import("styled-components/dist/models/Keyframes").default; fadeInLeft: import("styled-components/dist/models/Keyframes").default; fadeInRight: import("styled-components/dist/models/Keyframes").default; scaleInGlass: import("styled-components/dist/models/Keyframes").default; scaleOutGlass: import("styled-components/dist/models/Keyframes").default; rotateIn: import("styled-components/dist/models/Keyframes").default; rotateOut: import("styled-components/dist/models/Keyframes").default; flipInX: import("styled-components/dist/models/Keyframes").default; flipInY: import("styled-components/dist/models/Keyframes").default; bounceIn: import("styled-components/dist/models/Keyframes").default; bounceOut: import("styled-components/dist/models/Keyframes").default; elasticIn: import("styled-components/dist/models/Keyframes").default; elasticOut: import("styled-components/dist/models/Keyframes").default; glassShimmer: import("styled-components/dist/models/Keyframes").default; glassRipple: import("styled-components/dist/models/Keyframes").default; glassPulse: import("styled-components/dist/models/Keyframes").default; themeTransition: import("styled-components/dist/models/Keyframes").default; skeletonLoading: import("styled-components/dist/models/Keyframes").default; dotPulse: import("styled-components/dist/models/Keyframes").default; heartbeat: import("styled-components/dist/models/Keyframes").default; wobble: import("styled-components/dist/models/Keyframes").default; dragStart: import("styled-components/dist/models/Keyframes").default; dragEnd: import("styled-components/dist/models/Keyframes").default; dropZoneActive: import("styled-components/dist/models/Keyframes").default; }; timings: { readonly instant: 0; readonly fast: 150; readonly normal: 250; readonly slow: 400; readonly glacial: 600; }; easings: { readonly linear: "linear"; readonly ease: "ease"; readonly easeIn: "ease-in"; readonly easeOut: "ease-out"; readonly easeInOut: "ease-in-out"; readonly bounce: "cubic-bezier(0.68, -0.55, 0.265, 1.55)"; readonly elastic: "cubic-bezier(0.175, 0.885, 0.32, 1.275)"; readonly sharp: "cubic-bezier(0.4, 0, 1, 1)"; readonly smooth: "cubic-bezier(0.4, 0, 0.2, 1)"; readonly dramatic: "cubic-bezier(0.25, 0.46, 0.45, 0.94)"; readonly snappy: "cubic-bezier(0.55, 0.085, 0.68, 0.53)"; readonly gentle: "cubic-bezier(0.25, 0.1, 0.25, 1)"; }; createAnimation: (keyframe: keyof typeof advancedAnimations, timing?: AnimationTiming, easing?: AnimationEasing, options?: Partial<AdvancedAnimationConfig>) => string; createThemeAnimation: (keyframe: keyof typeof advancedAnimations, lightConfig?: Partial<AdvancedAnimationConfig>, darkConfig?: Partial<AdvancedAnimationConfig>) => ThemeAnimationConfig; createStaggeredAnimation: (keyframe: keyof typeof advancedAnimations, itemCount: number, staggerDelay?: number, timing?: AnimationTiming, easing?: AnimationEasing) => string[]; createOptimizedAnimation: (keyframe: keyof typeof advancedAnimations, config?: Partial<AdvancedAnimationConfig>, respectReducedMotion?: boolean) => import("styled-components").RuleSet<object>; createGestureAnimation: (type: MicroInteractionType, mode: "light" | "dark", intensity?: "subtle" | "prominent") => import("styled-components").RuleSet<object>; getMicroInteractionConfig: (type: MicroInteractionType, mode: "light" | "dark", intensity?: "subtle" | "prominent") => GestureAnimationConfig; }; export default animationSystem;