flip-fade-text
obsidianui/flip-fade-textFreeComponent
obsidianui publishes no description for this item.
Live preview
live · rendered by the registry
Rendered by obsidianui on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://obsidianui.dev/r/flip-fade-text.jsonSource
1"use client"23import { useEffect, useState, useMemo, useCallback, memo } from "react"4import { motion, AnimatePresence } from "framer-motion"5import { cn } from "@/lib/utils"67interface FlipFadeTextProps {8 /**9 * Array of words to cycle through10 * @default ["LOADING", "COMPUTING", "SEARCHING", "RETRIEVING", "ASSEMBLING"]11 */12 words?: string[]13 /**14 * Interval between word changes in milliseconds15 * @default 250016 */17 interval?: number18 /**19 * Additional CSS classes for the container20 */21 className?: string22 /**23 * Additional CSS classes for the text24 */25 textClassName?: string26 /**27 * Animation duration for each letter in seconds28 * @default 0.629 */30 letterDuration?: number31 /**32 * Stagger delay between letters on enter in seconds33 * @default 0.134 */35 staggerDelay?: number36 /**37 * Stagger delay between letters on exit in seconds38 * @default 0.0539 */40 exitStaggerDelay?: number41}4243const defaultWords = ["LOADING", "COMPUTING", "SEARCHING", "RETRIEVING", "ASSEMBLING"]4445// Memoized Letter component for performance46const Letter = memo(function Letter({47 char,48 letterDuration49}: {50 char: string51 letterDuration: number52}) {53 return (54 <motion.span55 style={{ transformStyle: "preserve-3d" }}56 variants={{57 initial: {58 rotateX: 90,59 y: 20,60 opacity: 0,61 filter: "blur(8px)",62 },63 animate: {64 rotateX: 0,65 y: 0,66 opacity: 1,67 filter: "blur(0px)",68 transition: {69 duration: letterDuration,70 ease: [0.2, 0.65, 0.3, 0.9],71 },72 },73 exit: {74 rotateX: -90,75 y: -20,76 opacity: 0,77 filter: "blur(8px)",78 transition: {79 duration: letterDuration * 0.67,80 ease: "easeIn",81 },82 },83 }}84 className="inline-block"85 >86 {char}87 </motion.span>88 )89})9091// Memoized Word component for performance92const Word = memo(function Word({93 text,94 staggerDelay,95 exitStaggerDelay,96 letterDuration,97// … truncated
What it pulls in
npm packages
Files it writes
More from obsidianui
All 111 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| ai-inputai-input | obsidianui | Components | Free | 2 deps | |
| alertalert | obsidianui | Components | Free | no deps | |
| animated-tab-baranimated-tab-bar | obsidianui | Components | Free | no deps | |
| apple-spotlightapple-spotlight | obsidianui | Components | Free | 2 deps | |
| avataravatar | obsidianui | Components | Free | 1 dep | |
| badgebadge | obsidianui | Components | Free | 1 dep | |
| breadcrumbbreadcrumb | obsidianui | Components | Free | 2 deps | |
| buttonbutton | obsidianui | Components | Free | 1 dep |
