Introduction
Accessible components, animated icons, illustrations and themes that move together.
Youj is accessible components, animated icons, illustrations and themes that move together. Use it to build React interfaces. One provider sets the theme, speed and reduced motion for all of them.
Quick start
You need Node 22 or later and a React 19 app. Don't have one yet? Run npx create-next-app@latest my-app --ts --tailwind --app, then cd my-app (or npm create vite@latest my-app -- --template react-ts for Vite).
- In your app, run
npx @youj/cli init. It installs the packages and wires the provider and the stylesheet. - Import a component and render it:
import { Button } from '@youj/react'
export default function Page() {
return <Button>Save</Button>
}- Start your dev server. A Youj button appears on the page.
In the Next.js App Router, a component that takes an event handler or holds state needs 'use client' at the top of its file. A plain <Button> doesn't. Server rendering covers the rest.
Installation has the details, and the manual route.
Accessible components on shadcn and Base UI. They own the things people click, type into and read, and move only through @youj/motion.
The provider, themes, tokens and labels every other package builds on.
Motion primitives, transitions, effects, WebGL backgrounds, and a Lottie player.
Original animated icons, with state morphs and transitions between any two.
Presets in light and dark, styles and two component looks, with contrast checked against WCAG AA.
Optional interface sounds that components cue as their motion starts.
npx @youj/cli sets up and adds to your app, and an MCP server gives AI coding tools the docs.
One contract
Use useYouj() to read shared durations, curves, springs and stagger steps. Components use these timing tokens and semantic color tokens, so changing a token updates the library consistently.
Set speed and reduced motion through YoujProvider. The speed setting applies to tweens, springs, loops and shaders. Reduced motion replaces animation with a static state. Every preview on this site has both controls.
Principles
Read Motion principles to see each one side by side with the way it usually goes wrong.
Two ways in
| Compare | Package | Registry |
|---|---|---|
| Install | npx @youj/cli init | npx @youj/cli init --mode registry |
| You get | Components to import | Their source files, in your app |
| Updates | Bump the version | Add the item again, or edit it freely |
| Best for | Using Youj as it is | Owning and tuning the code |

