--- paths: - "src/components/text/**/*.tsx" - "src/components/hooks/**/*.ts" - "src/components/sections/**/*.tsx" --- # Animation Patterns ## Button Animation Types Apply to `tagAnimation` or `buttonAnimation` props: ```typescript type ButtonAnimationType = "none" | "opacity" | "slide-up" | "blur-reveal"; ``` - `none` - No animation - `opacity` - Fade in - `slide-up` - Fade + slide from bottom - `blur-reveal` - Fade with blur clearing --- ## Text Animation Types Set via `defaultTextAnimation` in ThemeProvider or `type` prop in TextAnimation: ```typescript type AnimationType = "entrance-slide" | "reveal-blur" | "background-highlight"; ``` - `entrance-slide` - Characters slide up from bottom - `reveal-blur` - Text appears with blur clearing - `background-highlight` - Text highlights from dim to full opacity --- ## Animation Hooks ```typescript import { useButtonAnimation } from "@/components/hooks/useButtonAnimation"; // Animate children on scroll const { containerRef } = useButtonAnimation({ animationType: "slide-up" });