What's automatic
With <Cuts /> in your layout, shadcn/ui dialogs, sheets, drawers, tabs, toasts and menus animate on their own, with no changes to components/ui.
With <Cuts /> in your root layout, Keyframery finds shadcn's own parts on the page and animates them. You don't import anything, and nothing in components/ui changes.
Dialogs, alert dialogs and the command menu
A dialog grows out of the button that opened it, and closes back into it. Alert dialogs and the command menu do the same.
Reference: Dialog, Alert dialog, Command.
Sheets and drawers
A sheet slides in from its edge while the page steps back behind it. A drawer keeps its own swipe, and the page steps back the same way.
Tabs
The tab indicator moves first and the new panel follows a beat later, while the height eases to fit.
Reference: Tabs.
Toasts
A toast flies out of the button you pressed, so you can see which action it's about. It works with Sonner and Base UI toasts, and you call toast() as usual.
Reference: Toast and Sonner.
Menus, popovers and the rest
Popover, dropdown menu, context menu, menubar, select, combobox, hover card, tooltip, navigation menu, accordion and collapsible already open from their trigger. Keyframery gives them the same speed and easing as everything else.
Reference: Tuned components.
What stays still
Buttons, inputs, checkboxes and other controls that don't change the picture stay as they are. Motion there would only be noise.
To animate lists, numbers, loading states or a card that opens into a page, use the four small components under Animate your app in the sidebar.
Questions
Do I need to change my shadcn components?
No. <Cuts /> finds shadcn's own parts by their data-slot names and animates them. Nothing in components/ui changes.
Which shadcn/ui components animate automatically?
Dialog, alert dialog, command, sheet, drawer, tabs and toasts get their own cuts. Popover, dropdown menu, context menu, menubar, select, combobox, hover card, tooltip, navigation menu, accordion and collapsible keep their motion and get Keyframery's speed and easing.
Use with AI tools
Add shadcn/ui animations from your coding agent: a Claude Code plugin, and an MCP server for Codex, Cursor, VS Code, Gemini CLI and any MCP client.
Cards that open into a page
Shared element transitions in React with MatchCut: a card grows into its detail view, on the same page or a new route, and shrinks back when you return.