shadcn.io is an independent project built on shadcn/ui
Command Bar drops from the top with a search field. Create new project, Open file, Search everywhere, and Settings each show a shortcut.
Use it for a few commands at the top of a phone layout. A full command menu belongs in Command. In Solid, Ark UI does not run the command.
Installation
Anatomy

Usage
<Drawer swipeDirection="up">
<DrawerTrigger asChild={props => <Button {...props()} variant="outline">
<CommandIcon aria-hidden="true" data-icon="inline-start" />
Command Bar
</Button>} />
<DrawerContent showBar={false}>
<DrawerTitle class="sr-only">Command Bar</DrawerTitle>
<div class="flex flex-col gap-4 p-4">
<InputGroup class="h-12">
<InputGroupInput aria-label="Command" class="text-base" placeholder="Type a command or search..." type="search" />
<InputGroupAddon>
<CommandIcon aria-hidden="true" class="size-5" />
</InputGroupAddon>
</InputGroup>
<div class="flex flex-col gap-1">
{COMMANDS.map(command => <Button class="justify-between" size="sm" variant="ghost">
{command.label}
<Kbd>{command.shortcut}</Kbd>
</Button>)}
</div>
</div>
</DrawerContent>
</Drawer>FAQ
How is the command field built?
An Input Group, h-12, with an InputGroupInput of type="search" and aria-label="Command", and an InputGroupAddon holding the command icon after the input in the markup.
How are the commands listed?
From a static array of four: Create new project, Open file, Search everywhere and Settings. Each is a ghost Button with its label at the start and its shortcut in a Kbd at the end.
Does typing filter the commands?
Not in this demo: the field is uncontrolled. For a filterable list with arrow-key navigation, use a Command menu inside the drawer.
Do the shortcuts work?
No, the Kbds only show them. Register the key handlers yourself, and open the drawer from ⌘K if that's the shortcut you show.
API Reference
Drawer
Sets swipeDirection="up", asChild, props and showBar={false}. The rest is on the Drawer page.
Button
Sets props, variant="outline", size="sm" and variant="ghost". The rest is on the Button page.
Input Group
Sets aria-label="Command", placeholder="Type a command or search..." and type="search". The rest is on the Input Group page.
Kbd
No extra props in this demo. The rest is on the Kbd page.





