logo

Aki UI

アキ ウイ

Text Roll

テキストロール

Hover and every character rolls out through the top while its copy arrives from below, each one a beat behind the last. The box is clipped to exactly one line, so the two copies pass without either escaping. Built with Framer Motion variants↗↗ and Tailwind CSS.

Components
Hover me

Installation

Install the following dependencies:1

npm install framer-motion

Copy and paste the following code into a new component file:2

"use client"

import { motion } from "framer-motion"

type TextRollProps = {
text: string,
stagger?: number,
duration?: number,
dark?: boolean
}

How to use it3

"use client"

import { TextRoll } from "@/components/ui/text-roll"

export default function Page() {
return <TextRoll text="Components" stagger={0.025} />
}

Props

TextRoll

NameDefaultDescription
text—

string

The text to roll, split per character

stagger0.025

number

Seconds each character waits behind the one before it

duration0.35

number

Seconds a single character takes to roll

darkfalse

boolean

Render the dark palette