Squiggly Text

A squiggly text effect using SVG turbulence and displacement filters, animated with Motion.

How many drinks
are too many drinks?

Installation

Run the following command

npx shadcn@latest add @aceternity/squiggly-text

Props

SquigglyText Props

PropTypeDefaultDescription
childrenReactNode—The text or nodes to wrap with the squiggly effect.
stepsnumber5Number of distinct displacement frames to cycle through. Higher means smoother wobble at the cost of more SVG filters in the DOM.
stepDurationnumber80Time between filter swaps, in milliseconds. Lower values feel jittery, higher values feel lazy. Full cycle = steps * stepDuration ms.
scalenumber | [number, number][6, 8]Maximum displacement in pixels. Pass a number for a constant scale, or a tuple to alternate between two values per step.
baseFrequencynumber0.02Turbulence base frequency. Lower values give longer, smoother waves; higher values give tighter noise.
numOctavesnumber3Number of turbulence octaves. Higher means more detailed noise.
as"span" | "div""span"The wrapper element. Use span to keep it inline inside a heading, div for a block-level wrapper.
classNamestring—Optional class names for the wrapper (use this for color, size, font, etc).
styleCSSProperties—Optional inline styles for the wrapper. The filter property is reserved by the component.

Build websites faster and 10x better than your competitors with

Aceternity UI Pro

Next.js 15, Tailwind CSS v4 and Motion for react powered templates

200+ templates and blocks combined

Ready to copy paste component blocks, save days of development time

Aceternity UI Pro Demo - Light Mode

Access an ever-growing collection of premium, meticulously crafted templates and Component Blocks.

A product by Aceternity
Building in public at @mannupaaji

© 2026 Aceternity Labs LLC. All Rights Reserved.