
Installs all 56 components. Without our CLI, run instead.
Sora UI publishes a shadcn registry at ui.soralabs.io.vn, with 56 components installable through the shadcn CLI.
Copy a prompt for your agent, copy the install command, or open the docs that ship it.
An interactive button component built on Base UI with Motion hover/tap scaling and shadcn/ui variants.
An accessible, stylable checkbox built on Base UI with a Motion-friendly animated indicator.
An accessible modal dialog built on Base UI with smooth Motion spring entrance and exit animations.
Animated border spotlight that travels around a rounded container, powered by Motion.
A floating label that follows the cursor and elastic-pops into view over interactive targets, powered by GSAP.
Desktop cursor trail that reveals staggered image strips with clip-path wipes as the pointer moves.
A link with a hand-drawn SVG underline that animates on hover, powered by Motion.
A pill-shaped tab bar that expands into a floating panel, with Motion driving the shell, label, and content transitions.
Inline text that materializes through a soft, turbulent WebGL fog mask, inherits font and color from CSS, and cycles through an array of messages.
Crossfading hero image slideshow with a progress pill, play/pause, and prev/next controls.
A Motion-powered highlight effect that allows you to highlight elements on hover, click or with a controlled value.
Animated right arrow that nudges forward and redraws its stroke on hover using a pure CSS stroke-dash animation.
Notification bell that rattles from its hanger on trigger — a decaying rotation pivot, powered by the AnimateIcon engine.
Animated double up-chevron that cross-fades between the two carets on hover, powered by the AnimateIcon engine.
AnimateIcon engine that powers Sora's animated icons — provides animate, animateOnHover, animateOnTap, animateOnView, loop, and per/static path animations via a shared context.
An infinite card stack that advances with wheel, touch, or keyboard input using spring-based Motion transitions.
A flowing quote stream where each avatar reveals its author on hover, with Motion fading and blurring the rest.
Staggered logo column swapper with fade, vertical shift, and motion blur powered by Motion.
A fanned stack of cards that fling away from the cursor on release, with GSAP InertiaPlugin easing each one back to rest.
An animated, digit-by-digit number counter with a smooth rolling odometer effect, powered by Motion.
A wrapper that emits glowing, pooled particles from the cursor while hovering any button or link.
A canvas-based pixel grid that animates in on hover, with configurable reveal patterns.
A canvas-based image that resolves from a blocky, pixelated placeholder up to full sharpness as it loads.
A slot component that allows you to use motion components with any element.
A stacked-layer blur that ramps smoothly from sharp to fully blurred toward an edge, for fading content under a fixed header or above a scroll boundary.
An interactive button component built on Radix UI Slot with Motion hover/tap scaling and shadcn/ui variants.
An accessible, stylable checkbox built on Radix UI with a Motion-friendly animated indicator.
An accessible modal dialog built on Radix UI with smooth Motion spring entrance and exit animations.
Per-character slot-machine reveal that rolls each letter into place once it scrolls into view, powered by Motion.
A draggable, chaptered progress-bar nav — two-way cursor/scroll sync, ghost-cursor hover preview, snap-to-step seeking, and a per-chapter panel that can opt in or out of showing.
A full-viewport sticky scroll slider with strip-mask image transitions and animated title swaps, driven by GSAP ScrollTrigger.
Skeleton loading placeholders with a shimmer effect that transitions to revealed content via a CSS view-transition wipe animation. Skeletons are sized using placeholder data to reduce layout shifts.
A chip-style call-to-action link with a Motion-powered sliding label and rotating icon chips on hover.
A button that staggers per character or slides the whole label on hover, with a scaling background layer.
Scroll-pinned hero where a front card flips to reveal a stack of back cards, dismissed one at a time as you keep scrolling.
Cycles through a list of words with a per-character collapse/reveal transition and a trailing cursor glyph that wipes across the text between words.
Preset-driven staggered text reveals with blur, fade, slide, and scale animations, powered by Motion.
Cycles through a list of items with an enter/exit animation, powered by Motion.
Per-character layout morphing for labels, counters, and live text swaps, powered by Motion.
Scroll-pinned word-by-word text reveal with a highlight flash, powered by GSAP ScrollTrigger.
3D tilt card that rotates toward the cursor on spring physics, with an optional glare reflection.
A character-by-character reveal where each glyph ripples through randomized pill, accent, and outline states before settling into plain text. Adjacent same-state chars merge into rounded bars, and it's themed entirely through CSS variables.
Dependency-free custom video player: modal overlay, chaptered timeline, hover-scrub preview, speed menu, picture-in-picture, fullscreen, keyboard shortcuts, and focus trapping.
A fully animated, open-source component distribution built with React, TypeScript, Tailwind CSS, and Motion.
Visit ui.soralabs.studio to view the documentation.
bun install
bun run dev:www # docs site only → http://localhost:3000
# or
bun dev # run all apps (Next.js docs + xmcp)
No .env file is required to browse docs, blog, the catalog, or use Ask AI locally. Copy [apps/www/.env.example](./apps/www/.env.example) only when you need optional features:
| Feature | Variables |
|---|---|
| Sign-in & Bookmarks | NEXT_PUBLIC_ENABLE_AUTH="true", DATABASE_URL, BETTER_AUTH_SECRET, OAuth keys |
| Redis rate limits / cache | UPSTASH_REDIS_REST_URL, UPSTASH_REDIS_REST_TOKEN |
| Better Auth Sentinel | BETTER_AUTH_API_KEY, NEXT_PUBLIC_BETTER_AUTH_IDENTIFY_URL |
| Custom Ask AI endpoint | AI_SEARCH_CHAT_URL (defaults to the public docs search instance) |
| Sentry | NEXT_PUBLIC_SENTRY_DSN |
Production deployments for documentation require zero environment variables. Set NEXT_PUBLIC_ENABLE_AUTH="true", BETTER_AUTH_SECRET, and DATABASE_URL only when deploying with full authentication enabled.
Sora UI includes an official Model Context Protocol (MCP) server built with xmcp under [apps/xmcp](./apps/xmcp). It enables AI assistants (Cursor, Claude Desktop, Claude Code, etc.) to search documentation, browse sections, and install components:
# Run MCP server in development mode
cd apps/xmcp && bun run dev
# Build HTTP and STDIO bundles
cd apps/xmcp && bun run build
See the MCP Documentation or [apps/xmcp/README.md](./apps/xmcp/README.md) for full configuration details.
Visit our contributing guide to learn how to contribute.
bun run create (interactive wizard)This project follows a Code of Conduct to help create a welcoming community. Please read CODE_OF_CONDUCT.md before contributing.
Sora UI is a fork of Animate UI by Skyleen (@imskyleen). The architecture, registry system, component APIs, and motion primitives have been substantially redesigned. Some internal patterns and abstractions remain influenced by the original codebase.
Historical upstream material is attributed and licensed according to its original terms. See LICENSE.md for the full legal text.
Licensed under the MIT license.
The packages and primitives its components pull in, counted across the registry.
Every appearance and removal our crawl has seen in the registry index.
Sora UI is a component library on 21st.dev by soralabs with 3 public React components. Every component ships with a live interactive preview and full TSX source — copy the code, install it through the shadcn CLI, or pull it into Cursor or Claude Code over MCP.