Components
Loading preview...
A component that types out a text, one letter at a time. As a text, either a string or an array of strings can be passed to the component. The component will automatically split the text into an array of characters, and animate each letter one by one. If you pass an array of strings, the component will animate one text, delete it, then continue animating the next one. The component will loop through the texts if you set the loop prop to true. The cursor at the end of the text is optional. You can use a character or even a svg node if you like. There is a prop to customize the cursor animation, where you have to define the two motion variants as initial and animate. Ideally, the component should respect multiple lines. If you experience otherwise, please let me know.:)
@danielpetho
npx shadcn@latest add https://21st.dev/r/danielpetho/typewriterimport { Typewriter } from "@/components/ui/typewriter"
function Preview() {
return (
<div className="w-full h-full md:text-4xl lg:text-5xl sm:text-3xl text-2xl flex flex-row items-start justify-start bg-background font-normal overflow-hidden p-16 pt-48">
<p className="whitespace-pre-wrap">
<span>{"We're born 🌞 to "}</span>
<Typewriter
text={[
"experience",
"dance",
"love",
"be alive",
"create things that make the world a better place",
]}
speed={70}
className="text-yellow-500"
waitTime={1500}
deleteSpeed={40}
cursorChar={"_"}
/>
</p>
</div>
)
}
export { Preview }