Jakubantalik/transitions.dev

▲ 260 stars today★ 4,140⑂ 168

Collection of the most essential transitions for web apps, skill for agents and Refine tool for agents

4,140Star
168Fork
8Watch
7Issue
HTMLLanguage
-License
Created 2026-04-21 · last push 2026-09-13 · repository size 38211 KB · default branch main

README

Transitions.dev

Transitions.dev is an interactive collection of reusable CSS transitions. Each card on the index page demonstrates a different interaction pattern and ships a copy-ready, portable CSS snippet for each.

Live site: https://transitions.dev/

Transitions

| # | Name | What it shows | |---|------|---------------| | 1 | Card resize | Smooth card resize transition. | | 2 | Number pop-in | Digit flip with blur and stagger. | | 3 | Notification badge | Diagonal slide with spring pop-in. | | 4 | Text states swap | Text swap transition with blur. | | 5 | Menu dropdown | Origin-aware open / close transition. | | 6 | Modal open / close | Modal transition with scale. | | 7 | Panel reveal | Panel open / close transition. | | 8 | Page side-by-side | Forward / back page transition. | | 9 | Icon swap | Scale and blur icon swap. | | 10 | Success check | Confirmation icon with fade, rotate, blur, Y-bob, and SVG path draw. | | 11 | Avatar group hover | Hovered avatar springs up while neighbours follow with a falloff. | | 12 | Error state shake | Input shake on validation error with auto-revert to neutral. |

Each card has a copy button that emits a self-contained CSS snippet: semantic CSS custom properties on :root, the transition rules namespaced under t-* classes, and a @media (prefers-reduced-motion: reduce) guard — so you can paste the snippet into any project and apply it to any component without pulling in demo-specific markup or sizing.

Install with the CLI (npm)

Pull any transition into your project from the terminal — no manual copy:

npx transitions-dev add card-resize      # free, no account needed
npx transitions-dev add --free           # every free transition at once
npx transitions-dev list                 # see everything available

Pro transitions unlock after a passwordless browser sign-in (device flow — no API key in your terminal):

npx transitions-dev login                # opens the browser to confirm a code
npx transitions-dev add confetti-burst    # pulls the Pro CSS + React

CLI source: cli/ (published as the public transitions-dev package; transitions-pro is the old name and forwards to it — it holds no premium source; Pro recipes are fetched from the authenticated API).

Use as an agent skill

The same transitions are packaged as an installable agent skill so AI coding tools (Cursor, Claude Code, Codex, …) can apply them directly inside your project.

npx skills add Jakubantalik/transitions.dev

Skill source lives in skills/transitions-dev/SKILL.md, eighteen per-transition reference files (01-card-resize.md18-texts-reveal.md), and _root.css (the universal install block on its own).

The skill is generated from index.html so the snippets always match what the showcase site demonstrates. Re-run after editing the source site:

npm run build

build/extract.mjs parses PROTO_TEMPLATES and the :root { --pX-* } block out of index.html, then re-renders every file under skills/transitions-dev/ from the templates in build/templates/.

Refine tool

Refine is a live, agent-driven companion to the skill. One command drops a timeline + Refine panel onto your running app — no npm install, no source edits of your own — and every "Refine" click asks your coding agent to align the selected CSS/Motion transition to the transitions.dev motion tokens (or replace it with a transition from the library). Suggestions appear in a panel that slides in from the right; you pick which to apply as live, reversible overrides.

# inject the panel + start the local relay (deterministic suggestions work immediately)
npx transitions-refine live

same, but also installs/wires the Cursor CLI so the relay answers with the LLM, persistently

npx transitions-refine live --llm

remove the injected tag again

npx transitions-refine stop

Without --llm, you can instead run /refine live in your editor to back the panel with the in-IDE agent. Source lives in refine/ and ships as the public npm package transitions-refine. See refine/README.md for the full flow and env knobs.

Files

Run locally

python3 -m http.server 8765

Then open http://127.0.0.1:8765/.

More Today's Trending projects

1

debpalash / VoiceStudio

Python★ 29,840⑂ 3,606▲ 2,776 stars
2

JustVugg / colibri

C★ 32,609⑂ 3,430▲ 2,173 stars
3

bilawalsidhu / gods-eye-view

JavaScript★ 33,945⑂ 6,772▲ 1,831 stars
4

alibaba / open-code-review

Go★ 26,516⑂ 1,906▲ 1,571 stars
5

ever-co / ever-gauzy

TypeScript★ 6,164⑂ 994▲ 1,130 stars
6

pacifio / atlas

Rust★ 4,440⑂ 274▲ 1,091 stars