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 Vue, Ark UI does not run the command.
Installation
Anatomy

Usage
<Drawer swipeDirection="up">
<DrawerTrigger :asChild="true">
<Button variant="outline">
<CommandIcon aria-hidden="true" data-icon="inline-start" />Command Bar
</Button>
</DrawerTrigger>
<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">
<Button
v-for="command in COMMANDS"
class="justify-between"
:key="command.label"
size="sm"
variant="ghost"
>
{{ command.label }}<Kbd>{{ command.shortcut }}</Kbd>
</Button>
</div>
<!-- The rest of the file is under Installation. -->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" and asChild. The rest is on the Drawer page.
Button
Sets variant="outline", v-for="command in COMMANDS", key="command.label", 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.





