Animated React text effects

Annotation text

Hand-drawn pen marks draw themselves around words in view: circles, underlines, boxes and strikes, chained one after another.

Text, in view, once, Motion

Install

npm i clsx motion tailwind-merge && curl -o components/annotation-text.tsx https://motion-brew.com/r/annotation-text.tsx

One self contained file for React and Tailwind CSS: annotation-text.tsx. Or ask your AI agent to add it through the MCP server.

Usage

import { AnnotationText } from "@/components/annotation-text";

export default function Page() {
  return (
    <p className="text-3xl font-semibold">
      Ship <AnnotationText type="circle">faster</AnnotationText>, sleep{" "}
      <AnnotationText type="underline" delay={0.8}>better</AnnotationText>
    </p>
  );
}

Props

PropTypeDefaultDescription
childrenReactNodeThe annotated words
type"underline" \"circle" \"box" \"strike""underline"Mark to draw
colorstring"#e5484d"Pen color
strokeWidthnumber2.5Stroke width, px
delaynumber0Seconds before drawing, for chaining marks
durationnumber0.7Seconds the stroke takes
classNamestringClasses on the wrapper

More text

  • Backspace text: Types a word, holds, backspaces it letter by letter and types the next, with a blinking caret.
  • Binary text: Text scrambles into 0s and 1s, then decodes left to right.
  • Wave text: A heading whose words warp like liquid under your cursor: noise-driven displacement bends each glyph into flowing bands, then it settles back to crisp type.
  • Blur text: Words rise out of a soft blur one after another as the line scrolls into view, then settle sharp.

All animated react text effects