---
github: true
headlessui:
label: 'Combobox'
to: 'https://headlessui.com/vue/combobox'
---
## Usage
Use a `v-model` to display a searchable and selectable list of commands.
::component-example
---
padding: false
---
#default
:command-palette-example-basic{class="h-[257px]"}
#code
```vue
```
::
You can put a `CommandPalette` anywhere you want but it's most commonly used inside of a modal.
::component-example
#default
:command-palette-example-modal
#code
```vue
```
::
You can pass multiple groups of commands to the component. Each group will be separated by a divider and will display a label.
Without a `v-model`, you can also listen on `@update:model-value` to navigate to a link or do something else when a command is clicked.
::component-example
---
padding: false
---
#default
:command-palette-example-groups{class="h-[274px]"}
#code
```vue
```
::
### Icon
Use any icon from [Iconify](https://icones.js.org) by setting the `icon` prop by using this pattern: `i-{collection_name}-{icon_name}`.
::component-card
---
padding: false
baseProps:
empty: null
props:
icon: 'i-heroicons-command-line'
excludedProps:
- icon
---
::
### Placeholder
Use the `placeholder` prop to change the input placeholder
::component-card
---
padding: false
baseProps:
empty: null
props:
placeholder: 'Type a command...'
excludedProps:
- icon
---
::
### Close
Use the `close` prop to display a close button on the right side of the input.
You can pass all the props of the [Button](/elements/button) component to customize it through the `close` prop or globally through `ui.commandPalette.default.close`.
::component-card
---
padding: false
baseProps:
empty: null
props:
close:
icon: 'i-heroicons-x-mark-20-solid'
color: 'gray'
variant: 'link'
padded: false
excludedProps:
- close
---
::
### Empty
Use the `empty` prop to display a message when there are no results.
You can pass an `object` through the `empty` prop or globally through `ui.commandPalette.default.empty`. Here is the default:
::component-card
---
padding: false
baseProps:
placeholder: 'Type something to see the empty label change'
props:
empty:
icon: 'i-heroicons-magnifying-glass-20-solid'
label: "We couldn't find any items."
queryLabel: "We couldn't find any items with that term. Please try again."
excludedProps:
- empty
---
::
## Themes
Our theming system provides a lot of flexibility to customize the component. Here is some examples of what you can do.
### Algolia
::component-example
---
padding: false
---
#default
:command-palette-theme-algolia{class="max-h-[480px] rounded-md"}
::
::alert{icon="i-simple-icons-github" to="https://github.com/nuxtlabs/ui/blob/docs/rework/docs/components/content/themes/CommandPaletteThemeAlgolia.vue#L23"}
Take a look at the component!
::
### Raycast
::component-example
---
padding: false
---
#default
:command-palette-theme-raycast{class="max-h-[480px] rounded-md"}
::
::alert{icon="i-simple-icons-github" to="https://github.com/nuxtlabs/ui/blob/docs/rework/docs/components/content/themes/CommandPaletteThemeRaycast.vue#L30"}
Take a look at the component!
::
## Props
:component-props
## Preset
:component-preset