Jakubantalik / transitions.dev
git clone https://github.com/Jakubantalik/transitions.dev.git
π₯ on GitHub Trending today
Interactive collection of reusable CSS UI transitions with copy-ready snippets, a CLI, and an agent skill for applying them.
Why you might care
Each transition is a self-contained CSS snippet with custom properties and a prefers-reduced-motion guard, so it can be pasted into any project without demo-specific markup. Useful for designers and frontend developers who want polished motion patterns like modal, menu, and error-shake effects.
+7
stars, 24h Β· #1,859
+474
stars, 7 days Β· #259
+1.2k
stars, 30 days Β· #459
5.5k
β
total Β· +10% this week
251
forks Β· 10 open issues
Star history (as recorded here)
LanguageHTML
Licenseβ
Created2026-04-21 (6mo ago)
Last push5d ago
Watchers8
OwnerUser
Seen on GitHub Trending
- 2026-10-22 β #6 monthly in html Β· +1,218 β
- 2026-10-21 β #5 monthly in html Β· +1,198 β
- 2026-10-21 β #4 weekly in html Β· +284 β
- 2026-10-20 β #5 monthly in html Β· +1,197 β
- 2026-10-20 β #4 weekly in html Β· +474 β
GitHub topics
Links
- GitHub: github.com/Jakubantalik/transitions.dev
- Homepage: https://transitions.dev/
- Releases Β· Issues Β· Hacker News mentions
README excerpt
# 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:
[code]
Pro transitions unlock after a passwordless browser sign-in (device flow β no API key in your terminal):
[code]
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.
[code]
Skill source lives in `skills/transitions-dev/` β `SKILL.md`, eighteen per-transition reference files (`01-card-resize.md` β¦ `18-texts-reveal.md`), and `_root.css` (the universal install block on its own).
The same command also installs `skills/transitions-ui-generation/`: it makes any UI appear as if an agent is generating it. A dotted wireframe is drawn from the element's own structure, then the real UI is revealed. It has two modes, `skeleton` and `skeleton-texts` (with an agent log, the motion CSS being written and a step line), and one dependency-free runtime for any framework. Preview it with `demo.html`.
The skill is generated from `index.html` so the snippets always match what the showcase site demonstrates. Re-run after editing the source site:
[code]
`build/extract.mjs` parses `PROTO_TEMPLATES` and the `:root { --pX-* }` block ou
Blurb generated by claude-haiku-5-5 1d ago. Star deltas marked ~ are extrapolated from partial history.