Text Reveal
Word-level entrance choreography with natural wrapping and a static reduced-motion state.
Every component ships as a working demo, every section is imported live out of a real template, and nothing enters the catalog on taste alone. Take a book down to see how any of that is arranged.
npx shadcn@latest add https://unsloppable.style/r/text-reveal.jsonNo Beta components appear here. If a component cannot pass overflow, interaction, console, and reduced-motion checks, it does not ship.
Word-level entrance choreography with natural wrapping and a static reduced-motion state.
A factual number transition that never fabricates or obscures its final value.
A restrained magnetic action that responds to intent and stays conventional on touch devices.
Pointer-responsive illumination for one meaningful product artifact, with no React render loop.
A single traveling highlight for active or inspectable surfaces, not a neon border on every card.
A pausable, mask-faded content rail for short repeated signals and compact labels.
The grid recedes behind the message instead of competing with it.
A lightweight CSS material that adds scale without competing with foreground content.
A contained reading instrument with progress, percentage, and optional section milestones.
A neutral browser, phone, or tablet shell that presents real product content with an optional tab strip, loading state, and pointer-tracked glare.
A cursor-attracted action with separate spring pull for the shell and label.
A semantic switch whose thumb stretches, overshoots, and settles into state.
A press creates a liquid response from the exact pointer coordinate.
One set of strokes springs continuously between menu and close states.
A consequential action completes only after visible, uninterrupted press intent.
Reactions merge as one material and spring apart when selected.
A shared selection surface morphs between tabs and depresses under intent.
A local cursor follower latches to an action while the shell answers with spring weight.
A numeric stepper rolls values in the direction of change with bounded spring motion.
Free returns within 30 days
A success action that morphs to its confirmed state while real paper physics fall across the page.
A product surface tilts toward the pointer while a radial light reveals its depth.
A per-instance shared indicator morphs between accessible tabs without cross-group collisions.
Dock icons magnify by cursor distance through shared, leak-free spring configuration.
A single tiled screen drifts behind the type, so the motion stays on the compositor.
A tiled halftone screen drifts behind content, building atmosphere from repeating marks.
A sheen crosses the surface a single time, then leaves the card alone.
A diagonal sheen crosses one surface a single time on entrance.
A directional cut, not a generic fade — each element enters from where it belongs.
Content slides out from behind a clipped edge, moving on transform alone.
Select a category to expand it in place.
A list row expands into detail while every shared element stays tracked.
An SVG arc fills once while exposing its verified value immediately.
A compact trend line draws once from real, labelled measurements.
Unslop my landing page
Rotating words crossfade while the slot animates to each width, so the line never jumps.
Arrow keys travel, Enter runs, Escape closes.
A grouped command overlay with search, keyboard travel, and escape.
A text field with a floating label, a contrast-safe focus glow, and inline validation that never shifts the layout.
Move the pointer across the card to light its edge.
A card whose border catches a single-hue light that follows the pointer, with a faint matching surface bloom.
Nodes travelling along concentric orbits around a fixed center, each glyph staying upright as it circles.
A restrained meteor field: a few bright heads pulling tapering tails across a dark surface on staggered, deterministic schedules.
An ambient field of fine particles that drift slowly and lean toward the pointer as a parallax whole.
A feed that flows in one continuous, seamless loop, with a static accessible list underneath and top/bottom fades.
A rotating wireframe globe built from CSS 3D transforms with surface nodes that orbit with it — no WebGL and no per-frame JavaScript.
A floating navigation bar with a glassy mega-menu — titled links beside a preview card — that opens on hover and keyboard focus.
Design that has to prove itself before it ships.
A marker highlight that sweeps in behind one phrase when it scrolls into view, growing on transform without reflowing text.
Glints twinkle around a phrase while the words themselves stay perfectly still and legible.
A line that types itself out on a CSS steps animation, resting as the finished sentence.
A headline whose letterforms are a window onto moving or still media.
A phrase decodes into place one character at a time, seeded with the real sentence.
Digit reels roll mechanically into place, where Number Ticker interpolates the value as text.
A one-time-code field built from real inputs, with auto-advance, paste-to-fill, and keyboard navigation.
Charged to Visa ending 6411.
A currency field that formats as you type, tracking minor units so the caret never jumps.
A form that advances one pane at a time, mounting only the active step so focus order stays honest.
A search field where committed filters live inside the input as removable chips.
A cookie bar that treats declining as a first-class choice, with every optional category off until chosen.
Hover the pile to unroll it.
A burst of notifications collapses into one pile and unrolls into a readable list on hover.
A live status light that keeps its dot lit while a ring pulses out of it, with recent history alongside.
The grace period after a destructive action, shown as a ring that empties before the change commits.
Placeholders that resolve in sequence, so a block fills in from the top instead of pulsing as one slab.
The capture stopped before the page settled. Nothing was saved, so retrying is safe.
GET /api/scan/northwind → 504 (gateway timeout)
attempts: 0An error state that leads with the way forward and holds its working state while the retry runs.
A grid of small charts on one shared scale, so the set is genuinely comparable.
A radial meter with threshold bands, so a number arrives with the context to judge it.
412 scans in the last 30 weeks
The contribution-graph pattern, with level owned by the caller rather than bucketed behind your back.
Paired before and after bars on one shared scale, with direction decided by what counts as better.
One metric with its change and the shape behind it, where direction and sentiment are separate.
A feature bed on six columns, where every span divides cleanly so the grid never leaves a hole.
A timeline whose rail tracks the step being read, driven by observation rather than a scroll handler.
Scroll inside the frame to fold the deck.
Cards that fold into a deck as the page passes them, on sticky alone with no scroll handler.
Two panes divided by a handle the reader can move, built on a native range input.
Trusted by teams shipping every week
A wall of customer wordmarks, optionally travelling on a seamless loop.
Text gains variable-font weight on intent while the line length stays exactly where it was.
One short phrase resolves out of a controlled per-character blur, exactly once.
Nothing in a considered page happens by accident. Every rule the layout follows was decided once, written down, and then held to on every screen it ever renders on. That is the whole difference between a page that was designed and one that was merely produced.
An editorial drop cap set on the correct optical baseline, with a sane fallback.
We stopped arguing about taste the week the contract started shipping with the review.
A pull quote that gains a little presence as it reaches the reading centre.
A slow two-colour movement kept strictly inside the letterforms.
An old claim is struck through before its replacement arrives.
A heading with an oversized ghost of itself behind, for depth at near-invisible opacity.
A tick that commits the instant it is pressed and rolls itself back if the write fails.
Point Unsloppable at a URL and the first design contract lands in about a minute.
The state a surface holds before it has anything to show, led by the next action.
The quiet confirmation that an autosave landed, pulsing once and then receding.
Billed $24 monthly
The billing-period switch, built as a real two-option radio group rather than a toggle.
For one designer shipping weekly.
For teams that review together.
One pricing tier, where the featured plan is lifted without disarming the others.
A single-field capture row that reports pending, accepted, and failed rather than only the first.
A drop zone that is also a real file input, so dragging is the enhancement and never the only route.
We stopped arguing about taste the week the contract shipped with the review.
It caught a contrast failure on a page we had already signed off twice.
The handoff is the part I did not expect to love. Tokens, straight out.
A column of quotes drifting slowly upward on a seamless loop.
| Feature | Studio | Team |
|---|---|---|
| Scans | Unlimited | Unlimited |
| Design contracts | Included | Included |
| Shared review queue | Not included | Included |
| Priority processing | Not included | Included |
A feature comparison built as a real table with proper row and column headers.
Ranked bars that slide to their new position as the series advances.
A star score shown with the sample size behind it, and partial stars clipped rather than rounded.
Every rule the page set for itself, written down.
A release feed where the change kind is a word, not just a colour.
Blur, tint, and a lit edge, so the pane reads as material rather than a blur filter.
A pane of frosted glass: backdrop blur, a tint with substance, and a lit top edge.
The lens tracks your cursor through custom properties, so nothing re-renders while it moves.
A lens that follows the pointer and bends what sits under it.
Content resolving through a grid of dissolving cells, scattered deterministically.
Chromatic aberration on a short string, as two offset colour ghosts behind clean ink.
A grounded two-part shadow that widens and fades as the object rises.
Film grain generated from SVG turbulence, so it never tiles and costs no request.
A nav where one pill travels between items instead of each item lighting up in place.
A chip that copies its value and confirms it, including when the clipboard is denied.
A number you can drag sideways to change, paired with a real input so it stays typeable.
A list reorderable by keyboard as well as by drag, with each move announced.
Hold, right-click, or press Enter.
A menu that opens on a long press, with a ring showing the hold, plus right-click and Enter.
Peel the corner to see what the contract found.
A card whose corner peels back to show what is underneath.
A soft marker trailing the pointer inside one surface, on a self-stopping loop.
Scroll inside the frame.
A layer that drifts against the scroll, written straight to a custom property.
Scroll the second block into view.
A section revealed by a curtain lifting off content that was always there.
Flick the frame up and down.
Content that leans with scroll speed and settles the moment scrolling stops.
A carousel on native scroll snapping, so momentum and touch come from the platform.
Continue to the next view with a morph where supported.
A link that hands navigation to the View Transitions API where it exists, and stays an ordinary link where it does not.
A self-advancing sequence with a bar that fills over exactly the interval it holds.
Design score 96, contract attached.
Browser windows stacked in depth, the front one focused, selectable by keyboard.

A magnifier that follows the pointer across an image, with no second request.

A frame with numbered pins that explain what is in it.
A poster that opens its video in a focus-trapped dialog, mounting the video only on open.
A terminal transcript that plays back line by line, as real selectable text.
A masonry grid on real CSS columns, packing any-height tiles with no measuring loop.
A divider between sections beyond a bare rule, drawn with SVG so it stays crisp.
A footer fixed behind the page that the content slides up off to reveal, on sticky alone.

A wrapper that reserves a fixed aspect ratio, so media never shifts the layout as it loads.
Columns that rise into place in sequence when the row scrolls into view.
Nothing in a considered page happens by accident. Every rule the layout follows was decided once, written down, and then held to on every screen it renders on.
The measure stays near sixty characters no matter the viewport, which is the single biggest lever on legibility and the one most layouts skip entirely.
A long-form column that caps its measure and lets figures bleed wide.
1import { GaugeMeter } from "@/components/open-ui/gauge-meter";23export function Score({ value }: { value: number }) {4 return (5 <GaugeMeter6 value={value}7 label="Design score"8 target={75}9 />10 );11}
A code block whose lines highlight as you step through an explanation, staying copyable.
A consent gate that loads a third-party embed only after the visitor asks for it.
A count from zero to one hundred, with a fill line rising through the numerals as it climbs.
A split-flap departure board that clacks one tile at a time into the word it is waiting on.
A camera aperture that twists open, holds, and closes again over a lit core.
A verification mark that draws itself, ring first and check second, then blooms once to confirm.
A gradient mesh breathing behind a conic progress ring, crossed once by a single sheen.
Scattered particles fly in, seat themselves into a ring, hold, then disperse again.
The demo shows a real interface behavior, not a placeholder.
The card has to survive desktop and narrow viewports.
Motion resolves to a useful final state.
Each component keeps a direct install command.