Marble UI

Motion

47 pieces. Click one to try it here; open its page for props and docs.

Text9

Text filled with a slowly panning gradient. Static gradient under reduced motion.

Core

Animated number. Screen readers get the final formatted value once; the moving digits are hidden.

Core
Shimmer Text3 styles

Text with a highlight sweeping across it: for "thinking…" states, shiny announcement badges and loading copy.

Core

Staggered per-word/char entrance when the text scrolls into view. Renders plain text for reduced motion.

Core
Text Reveal2 styles

Paragraph whose words light up as it scrolls through the viewport (or inside `container`).

Core
Typewriter2 styles

Types text character by character with a blinking caret. Screen readers get the full text immediately.

Core

Cycles through words in place. Width animates to the current word; screen readers hear the list once.

Core

Characters scramble then resolve left to right, on view and again on hover/focus.

Pro

Text with twinkling four-point sparkles around it.

Extra

Backgrounds9

Decorative background pattern (SVG) with optional radial fade, flickering cells or hover-lit cells. Place inside a relative container; it fills it and ignores pointer events unless `interactive`.

Core

Aurora: soft bands of light drifting across the top of a section. Works on light and dark surfaces.

Pro

Background beams: thin light streaks falling down a column grid, each at its own speed.

Pro

Animated gradient surfaces. `mesh`: drifting blurred color blobs. `floor`: a perspective grid floor fading into a gradient horizon. Children render on top.

Pro

Canvas particle field. `drift`: floating dots that shy away from the pointer; `network`: connected nodes; `sparkles`: twinkling stars. Fills its container; decorative.

Pro

Light from above. `rays`: swaying god-rays fanning from the top; `lamp`: a glowing bar with a cone of light; `spotlight`: a soft ellipse from one corner.

Extra

Shooting stars streaking diagonally across a container. Decorative; hidden under reduced motion.

Extra
Ripple2 styles

Concentric rings radiating from the center: behind a call button, a live indicator or a hero icon.

Extra

WebGL fragment-shader backgrounds (warp, waves, noise, dither) tinted with three theme colors. Falls back to a static CSS gradient when WebGL is unavailable; renders one still frame for reduced motion.

Extra

Transitions6

Modal dialog animated with Motion. React Aria keeps focus, dismissal and scroll locking; AnimatePresence keeps it mounted while the exit animation plays.

Foundation

Nav or list where a shared-layout indicator glides between items (Motion layoutId). Renders links when items have href, otherwise buttons with aria-pressed.

Foundation

List whose items animate in, out and to new positions (layout). Pass stable keys. Announces changes politely.

Core

Fades and un-blurs content as it enters the viewport. Use `delay` to stagger siblings.

Core

Swaps between two pieces of content (icons, labels) with a transition. Put the accessible name on the parent control.

Pro

Edge blur that ramps up toward one side (stacked backdrop-filter layers with staggered masks). Place absolutely over scrolling content, e.g. under a sticky header or at the bottom of a list.

Extra

Cards6

Animated border: `beam` sends a short light around the edge; `shine` spins a soft multi-hue sweep; `glow` adds a blurred halo. Driven by the registered --border-angle custom property (static under reduced motion).

Core

Card with a radial spotlight (and lit border) that follows the pointer. Pure CSS variables; no re-renders.

Core

Card that tilts toward the pointer in 3D with a moving glare. Children can pop forward with `data-depth` (px).

Core

Grid of cards that expand into a detail dialog with a shared-layout transition (layoutId). The expanded view is a real modal Dialog: focus is trapped and Escape closes it.

Pro

"Encrypted" card: a field of random characters revealed in a colored circle around the pointer.

Extra
Holo Card1 style

Holographic foil card: tilts toward the pointer while a rainbow sheen and glare track it.

Extra

Micro interactions3

Wraps any pressable (Button, Card, ListItem) to add tactile feedback. Motion's MotionConfig reducedMotion="user" (MotionProvider) turns transforms off for reduced-motion users.

Foundation

Search/prompt input whose placeholder cycles through examples; on submit the text vanishes upward letter by letter.

Extra

Terminal window that types commands and prints output line by line when scrolled into view. Full transcript for screen readers.

Extra

Scroll3

Moves its children vertically at `speed` relative to scroll (negative = slower, positive = faster).

Pro

Reading-progress bar for the page or a scroll container. Exposed as a progressbar with the current percent.

Pro

Vertical line beside long content that fills with a gradient as you scroll, with a dot at the leading edge.

Extra

Loaders2

Ready-made shimmer placeholders that match common layouts. Announces loading once via role="status".

Core

Overlay loader that walks through named steps, checking each off. `duration` ms per step; loops unless `loop={false}`. Shows the current step in a live region.

Extra

Connectors2

SVG connector between two DOM elements with a gradient pulse travelling along it. Re-measures on resize.

Pro

Children orbit the center on a circular path (CSS only, items stay upright). Stack several with different radii.

Extra

Buttons2

Attention-grabbing buttons for hero CTAs. Use one per view. All are React Aria buttons; effects stop under reduced motion.

Pro

Button with a Material-style ripple from the press point (PressFeedback ripple + scale).

Pro

3d2

Globe3 styles

Dotted 3D globe (orthographic canvas projection). Auto-rotates, drag to spin, markers pulse. Static for reduced motion.

Pro

Card that tips back in 3D on hover while a pin with a label rises above it, with pulsing rings at its base.

Extra

Marquee1

Marquee3 styles

Infinite scroller driven by a CSS keyframe (GPU transform, no JS per frame). Stops for prefers-reduced-motion and has a visible pause button.

Foundation

Celebration1

Confetti2 styles

Fires confetti from the center of the pressed element. Wrap any button: <ConfettiOnPress>{(fire) => <Button onPress={fire}/>}</ConfettiOnPress>.

Pro

Cursor1

Area with a custom, spring-smoothed cursor (dot, ring or labelled pointer). Native cursor hidden only inside; keyboard unaffected.

Extra