Getting Started
Scroll Animations
Text Animations
Hover & Cursor
Sliders & Carousels
Galleries & Grids
Menus & Navigation
Preloaders & Intros
Page Transitions
3D & WebGL
import { WordCycleReveal } from "@/registry/tween/word-cycle-reveal"
export function WordCycleRevealDemo() {
return <WordCycleReveal />
}
import { WordCycleReveal } from "@/components/ui/word-cycle-reveal"<WordCycleReveal
brand="Halverne"
words={["Houses", "Gardens", "Courts", "Shelter", "Studio"]}
lines={["Rooms Made", "Around", "The Light"]}
images={[
"https://images.unsplash.com/photo-1599950278531-911e86d1467a?q=80&w=2400&h=1350&fit=crop&crop=center&auto=format",
"https://images.unsplash.com/photo-1582934802734-7f704eee2fcc?q=80&w=2400&h=1350&fit=crop&crop=center&auto=format",
"https://images.unsplash.com/photo-1743510928991-49e119554d80?q=80&w=2400&h=1350&fit=crop&crop=center&auto=format",
]}
/>How it works:
duration seconds, three linear tweens run side by side: the counter counts from 000 to 100, the second loader line steps through words, and the frame cycles through images three times. Meanwhile the image frame slides from the left padding back to its place beside the second headline line.clip-path polygon on a custom hop ease.mix-blend-mode: difference text.All measurements come from the container, so it works inside a preview or any section. The Replay button remounts the stage. With prefers-reduced-motion: reduce the loader is skipped and the last image fills the background.
| Prop | Type | Default | Description |
|---|---|---|---|
images | string[] | 6 images | Images cycled in the frame. |
brand | string | "Halverne" | First loader line and nav label. |
words | string[] | 5 words | Words cycled on the second loader line. |
lines | [string, string, string] | ["Rooms Made","Around","The Light"] | Hero headline rows. |
preloaderNote | string | "Practice Since 2008" | Bottom-right loader text. |
footer | string | "Stone, Lime and Shade" | Hero footer line. |
menuLabel | string | "Menu" | Nav right label. |
duration | number | 3 | Seconds the counter takes to reach 100. |
background | string | "#f3eee6" | Page background. |
loaderBackground | string | "#2b241f" | Loader background. |
showReplay | boolean | true | Show the replay button. |
className | string | — | Extra classes on the outer container. |