āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā ā š shadcn/directory/adityakishore0/scrollx-ui/components/morphotextflip ā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā
<ComponentPreview name="morphotextflip-demo" className="p-0" description="flips words with smooth transitions." />
<Step>Install the following dependencies:</Step> <DepsOptions name="framer-motion" />
<Step>Copy and paste the following code into your project.</Step>
<p> <code>morphotextflip.tsx</code> </p> <ComponentSource name="morphotextflip" /> </Steps> </TabsContent> </Tabs>import { MorphoTextFlip } from "@/components/ui/morphotextflip";
<MorphoTextFlip
words={["remarkable", "bold", "scalable", "beautiful"]}
textClassName="text-4xl md:text-7xl text-rose-600 dark:text-rose-400 font-bold mt-1"
animationType="flipY"
/>
<Step>SlideUp Variant</Step>
<ComponentPreview name="morphotextslideup" className="" description="" />
<Step>FadeScale Variant</Step>
<ComponentPreview name="morphotextfadescale" className="" description="" />
<Step>SlideRotate Variant</Step>
<ComponentPreview name="morphotextsliderotate" className="" description="" />
<Step>Elastic Variant</Step>
<ComponentPreview name="morphotextelastic" className="" description="" />
The MorphoTextFlip component renders animated text component that flips between words with smooth transitions.
<PropsTable
rows={[
{
prop: "words",
type: "string[]",
default: "required",
description: "Words to animate through."
},
{
prop: "interval",
type: "number",
default: "ā",
description: "Time between word changes (ms)."
},
{
prop: "animationType",
type: "slideUp" | "fadeScale" | "flipY" | "slideRotate" | "elastic",
default: "ā",
description: "Transition animation style."
},
{
prop: "animationDuration",
type: "number",
default: "ā",
description: "Duration of each animation (ms)."
},
{
prop: "className",
type: "string",
default: "ā",
description: "Class for the outer container."
},
{
prop: "textClassName",
type: "string",
default: "ā",
description: "Class for the animated text element."
}
]}
/>
ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā