Type Glossariesv1.0.0 • Strict TypeScript
TypeScript Types
Comprehensive TypeScript definitions, interface schemas, and prop types for GlideCN. All types are strictly validated and exported directly from the barrel.
ES Module Import
import type { TransitionConfig, TransitionDefinition, PageProps } from '@/components/glidecn';
Configuration Types
Interfaces controlling timing, easing curves, directional flow, and animation states.
TransitionConfig
export interface TransitionConfig { /** Duration in seconds (default: 0.4) */ duration?: number; /** Delay before animation starts, in seconds */ delay?: number; /** Easing preset or custom cubic-bezier tuple */ ease?: EasingPreset; /** Direction for directional transitions */ direction?: TransitionDirection; /** Stagger children delay in seconds */ stagger?: number; /** Arbitrary custom parameters passed to transitions */ custom?: Record<string, unknown>;}Enums & Unions
export type TransitionDirection = 'left' | 'right' | 'up' | 'down';export type AnimationState = 'idle' | 'entering' | 'exiting' | 'complete';export type EasingPreset = | 'linear' | 'easeIn' | 'easeOut' | 'easeInOut' | 'spring' | [number, number, number, number] | string;export type TransitionCategory = | 'flow' | 'portal' | 'paper' | 'mask' | 'spatial' | 'dynamic' | 'experimental' | 'retro';Definition Schemas
Types required to build custom transitions and register them with TransitionRegistry.
TransitionDefinition
export interface TransitionDefinition { /** Metadata for docs and UI listings */ metadata: TransitionMetadata; /** Default configuration values */ defaultConfig: TransitionConfig; /** Resolves Framer Motion variants for this transition */ getVariants: (config: Required<TransitionConfig>) => TransitionVariants; /** Optional Framer Motion transition timing override */ getTransition?: (config: Required<TransitionConfig>) => import('framer-motion').Transition;}TransitionMetadata & Variants
export interface TransitionMetadata { name: string; displayName: string; description: string; category: TransitionCategory; props: TransitionPropSchema[];}export interface TransitionVariants { initial: import('framer-motion').Variant; animate: import('framer-motion').Variant; exit: import('framer-motion').Variant;}Component Props
Props accepted by <GlideCNProvider>, <GlideCN>, and <Page>.
Component Props Interfaces
export interface PageProps { children: React.ReactNode; transition?: string; duration?: number; delay?: number; ease?: EasingPreset; direction?: TransitionDirection; stagger?: number; custom?: Record<string, unknown>; className?: string; style?: React.CSSProperties;}export interface GlideCNProviderProps { children: React.ReactNode; defaultTransition?: string; defaultConfig?: TransitionConfig; reducedMotion?: boolean;}export interface GlideCNContextValue { currentTransition: string; transitionDefinition: TransitionDefinition | null; config: Required<TransitionConfig>; animationState: AnimationState; reducedMotion: boolean; setTransition: (name: string) => void; setConfig: (config: TransitionConfig) => void;}