
Skeleton Component
Components
An animated command palette with keyboard-driven search, morphing dropdowns, sliding result highlights, and responsive transitions between commands.
Command puts app actions behind a searchable interface. An inline field can morph into a wider results dropdown, and a ⌘K palette scales in over a dimmed or blurred backdrop. Results stagger in, a shared highlight glides between them, and labels can roll as users move through the list.
Use it when an app has enough actions or destinations that users benefit from finding them directly, such as dashboards, CMSs, project tools, and developer apps. Typing, navigation, and execution must stay instant.
Choose Dropdown, Palette, or Both, with morph, slide, or fade dropdowns, morph width, palette start scale and fade, clear, dimmed, or blurred backdrops, and shared roundness. Interactions include slide or fill highlights, muted or primary colours, rolling labels, an animated search icon, staggered results, delay, duration, and bounce.
A project management app can put a search field in its header that morphs into a results dropdown, plus a ⌘K palette. Typing “create task” and pressing Enter opens the task form without touching the sidebar.
A CMS can let editors jump to any article or settings page from the palette, keeping them in flow while managing large content libraries.
A developer tool can expose build, deploy, and log commands through the palette, giving power users a keyboard-only workflow alongside the visible menus.
Apps with only a handful of obvious actions are better served by a toolbar or clear navigation.
It should never be the only way to find essential features, and it doesn’t replace full search with filters and previews.
Destructive commands like deleting records or changing permissions still need their usual confirmation steps.
Keep typing and keyboard navigation instant, use efficient matching or debounced server search for large indexes, and never delay input for animations. Cancel outdated stagger sequences when queries change, scope global shortcut listeners, and stop animations when closed.
Use a labelled search input with combobox and listbox semantics, arrow keys, Enter, and Escape, and don’t rely on the highlight alone to show the active result. A modal palette needs a dialog label, trapped focus, and focus returned on close. On mobile, show a visible search trigger, fit the keyboard and viewport, and keep results easy to tap. With reduced motion, remove morphing, scaling, and stagger.
| Prop | Type | Default | Description |
|---|---|---|---|
theme | string | claude | Colour palette, popup included. With Item highlight color set to Primary, the highlighted result takes its primary colour. |
mode | string | dark | Light or dark version of the palette. Starts dark. |
dropdownAnimation | string | morph | How the results list opens: morphs out of the input, slides down, or fades in. |
morphWidth | number | 1.25 | How wide the list is while it morphs, as a multiple of the input width. Needs Dropdown animation set to Morph. |
delay | number | 0.1 | Wait before the results list starts opening, in seconds. |
fadeContent | boolean | true | Fades the list contents in as it opens instead of showing them at once. |
startScale | number | 0.75 | Size the list starts from when it opens, as a fraction of full size. |
backdrop | string | blur | What sits behind the open menu: nothing, a dim layer, or a blur. |
rounded | string | md | Corner radius of the input and results list. |
itemHighlight | string | slide | How the highlight moves between results: slides, fills from the top, or none. |
itemHighlightColor | string | primary | Colour of the result highlight: soft grey or the theme's primary colour. |
animateIcon | boolean | true | Animates each result's icon when its row is highlighted. |
duration | number | 0.35 | How long the open and close animation takes, in seconds. |
bounce | number | 0.15 | How much the list overshoots and settles when it opens. 0 is no bounce. |
rollingText | boolean | false | Result labels roll to a second copy on hover. |
staggerItems | boolean | true | Results appear one after another instead of all at once. |
stagger | number | 0.03 | Delay between each result appearing, in seconds. Needs Stagger items on. |
Command is an animated React component for searchable access to app commands and destinations, with an inline dropdown, a command palette, keyboard navigation, and configurable animations.
Yes. Dropdown, Palette, and Both modes show results beneath an inline input, in a dedicated palette, or both.
Yes. ⌘K opens the palette and / focuses search. Integrate shortcuts carefully with browser and app key handling.
Arrow Up and Down move through results, Enter runs a command, and Escape closes the surface.
No. The application connects each command to its navigation or action handler, including validation, permissions, and error handling.
Dropdown Menu suits a small set of related actions. Command adds search and keyboard discovery for larger command collections.
Need a custom effect? Tell us what to create.