For the complete documentation index, see llms.txt. Markdown variants are available by appending .md to any URL or sending an Accept: text/markdown header. An agent skill is available at /.well-known/agent-skills/site-skill.md.
/
144
Sponsor

Node Reveal

A wordmark splits apart as a design node scales up from nothing between the two words.

Customize
56
6
56
10
0.55
0.12
0
440
1

Installation

$ pnpm dlx shadcn@latest add @framecn/node-reveal

Usage

import { NodeReveal } from "@/components/framecn/node-reveal";
<NodeReveal />

The two words read as one line, then a node grows between them and drives them apart. Nothing animates the text — its position is a consequence of the node's size.

<NodeReveal src="/logo.png" lead="SHADCN" trail="LABS" size={520} />

API Reference

NodeReveal

PropTypeDefault
srcstringDEFAULT_SRC
leadstring"Baseline"
trailstring"Studio"
sizenumber440
ratiostring"1:1"
fit"cover" | "contain" | "fill""cover"
nodeBackgroundstring"#000000"
radiusnumber0
handlesbooleantrue
handleSizenumber10
handleColorstring"#111111"
openAtnumber0.12
landAtnumber0.55
gapFromnumber6
gapTonumber56
easingstring"expo"
fontSizenumber56
fontWeightnumber | string500
colorstring"#111111"
backgroundstring"#ffffff"
speednumber1
fpsnumber30
durationInFramesnumber120
widthnumber1280
heightnumber720
classNamestring-

REVEAL_EASINGS

The node enters from nothing rather than morphing in place, so every preset is from the ease-out family, sorted weak to strong.

NameValue
quadcubic-bezier(0.25, 0.46, 0.45, 0.94)
cubiccubic-bezier(0.215, 0.61, 0.355, 1)
quartcubic-bezier(0.165, 0.84, 0.44, 1)
quintcubic-bezier(0.23, 1, 0.32, 1)
circcubic-bezier(0.075, 0.82, 0.165, 1)
expocubic-bezier(0.19, 1, 0.22, 1)
linearlinear

easing also accepts any raw CSS easing value. Try easing="cubic-bezier(0.34, 1.56, 0.64, 1)" to let the node overshoot its final size before settling.

Notes