@buddhacognitivelab/theme-glassmorphic
Version:
Enhanced glassmorphic theme package with dual-mode support, advanced glass effects, interactive UI components, and gesture-based interactions
148 lines (147 loc) • 7.19 kB
TypeScript
/**
* @fileoverview Enhanced Effects System - Phase 5
* Interactive enhancements, animations, and theme-responsive effects
*/
export type AnimationPreset = 'none' | 'subtle' | 'smooth' | 'bounce' | 'elastic' | 'sharp';
export type TransitionSpeed = 'fast' | 'normal' | 'slow';
export type EasingFunction = 'ease' | 'ease-in' | 'ease-out' | 'ease-in-out' | 'linear';
export interface ThemeTransitionConfig {
duration: number;
easing: string;
properties: string[];
stagger?: number;
}
export interface AnimationConfig {
duration: number;
easing: string;
delay?: number;
fillMode?: 'none' | 'forwards' | 'backwards' | 'both';
iterationCount?: number | 'infinite';
direction?: 'normal' | 'reverse' | 'alternate' | 'alternate-reverse';
}
export interface MicroInteractionConfig {
hover: {
scale: number;
glow: string;
duration: number;
easing: string;
};
focus: {
outline: string;
glow: string;
scale: number;
duration: number;
};
active: {
scale: number;
duration: number;
easing: string;
};
loading: {
animation: string;
duration: number;
};
}
export declare const transition: {
fast: string;
normal: string;
slow: string;
smooth: string;
bounce: string;
elastic: string;
sharp: string;
theme: string;
};
export declare const easing: {
ease: string;
easeIn: string;
easeOut: string;
easeInOut: string;
linear: string;
bounce: string;
elastic: string;
sharp: string;
smooth: string;
};
export declare const themeTransition: ThemeTransitionConfig;
export declare const animations: {
fadeIn: import("styled-components/dist/models/Keyframes").default;
fadeOut: import("styled-components/dist/models/Keyframes").default;
scaleIn: import("styled-components/dist/models/Keyframes").default;
scaleOut: import("styled-components/dist/models/Keyframes").default;
slideUp: import("styled-components/dist/models/Keyframes").default;
slideDown: import("styled-components/dist/models/Keyframes").default;
slideLeft: import("styled-components/dist/models/Keyframes").default;
slideRight: import("styled-components/dist/models/Keyframes").default;
glowPulse: import("styled-components/dist/models/Keyframes").default;
glowPulseDark: import("styled-components/dist/models/Keyframes").default;
shimmer: import("styled-components/dist/models/Keyframes").default;
shimmerDark: import("styled-components/dist/models/Keyframes").default;
spin: import("styled-components/dist/models/Keyframes").default;
pulse: import("styled-components/dist/models/Keyframes").default;
themeSwitch: import("styled-components/dist/models/Keyframes").default;
bounceIn: import("styled-components/dist/models/Keyframes").default;
elasticIn: import("styled-components/dist/models/Keyframes").default;
};
export declare const animationPresets: Record<AnimationPreset, AnimationConfig>;
export declare const focusEffect: (mode: "light" | "dark", intensity?: "subtle" | "prominent") => import("styled-components").RuleSet<object>;
export declare const hoverEffect: (mode: "light" | "dark", intensity?: "subtle" | "prominent", scale?: number) => import("styled-components").RuleSet<object>;
export declare const activeEffect: (scale?: number) => import("styled-components").RuleSet<object>;
export declare const loadingEffect: (mode: "light" | "dark") => import("styled-components").RuleSet<object>;
export declare const themeSwitchEffect: import("styled-components").RuleSet<object>;
export declare const getBasicMicroInteractionConfig: (mode: "light" | "dark") => MicroInteractionConfig;
export declare const getAnimationCSS: (preset: AnimationPreset, animationType: keyof typeof animations) => "" | import("styled-components").RuleSet<object>;
export declare const getStaggeredAnimation: (animationType: keyof typeof animations, index: number, preset?: AnimationPreset) => import("styled-components").RuleSet<object>;
export declare const getResponsiveAnimation: (animationType: keyof typeof animations, preset?: AnimationPreset, reduceMotion?: boolean) => "" | import("styled-components").RuleSet<object>;
export declare const effects: {
transition: {
fast: string;
normal: string;
slow: string;
smooth: string;
bounce: string;
elastic: string;
sharp: string;
theme: string;
};
easing: {
ease: string;
easeIn: string;
easeOut: string;
easeInOut: string;
linear: string;
bounce: string;
elastic: string;
sharp: string;
smooth: string;
};
animations: {
fadeIn: import("styled-components/dist/models/Keyframes").default;
fadeOut: import("styled-components/dist/models/Keyframes").default;
scaleIn: import("styled-components/dist/models/Keyframes").default;
scaleOut: import("styled-components/dist/models/Keyframes").default;
slideUp: import("styled-components/dist/models/Keyframes").default;
slideDown: import("styled-components/dist/models/Keyframes").default;
slideLeft: import("styled-components/dist/models/Keyframes").default;
slideRight: import("styled-components/dist/models/Keyframes").default;
glowPulse: import("styled-components/dist/models/Keyframes").default;
glowPulseDark: import("styled-components/dist/models/Keyframes").default;
shimmer: import("styled-components/dist/models/Keyframes").default;
shimmerDark: import("styled-components/dist/models/Keyframes").default;
spin: import("styled-components/dist/models/Keyframes").default;
pulse: import("styled-components/dist/models/Keyframes").default;
themeSwitch: import("styled-components/dist/models/Keyframes").default;
bounceIn: import("styled-components/dist/models/Keyframes").default;
elasticIn: import("styled-components/dist/models/Keyframes").default;
};
focusEffect: (mode: "light" | "dark", intensity?: "subtle" | "prominent") => import("styled-components").RuleSet<object>;
hoverEffect: (mode: "light" | "dark", intensity?: "subtle" | "prominent", scale?: number) => import("styled-components").RuleSet<object>;
activeEffect: (scale?: number) => import("styled-components").RuleSet<object>;
loadingEffect: (mode: "light" | "dark") => import("styled-components").RuleSet<object>;
themeSwitchEffect: import("styled-components").RuleSet<object>;
getBasicMicroInteractionConfig: (mode: "light" | "dark") => MicroInteractionConfig;
getAnimationCSS: (preset: AnimationPreset, animationType: keyof typeof animations) => "" | import("styled-components").RuleSet<object>;
getStaggeredAnimation: (animationType: keyof typeof animations, index: number, preset?: AnimationPreset) => import("styled-components").RuleSet<object>;
getResponsiveAnimation: (animationType: keyof typeof animations, preset?: AnimationPreset, reduceMotion?: boolean) => "" | import("styled-components").RuleSet<object>;
};
export default effects;