All skills
Skillintermediate
Component specification
Allows users to choose one or more options from a predefined list. It supports both single and multiple selection modes via the multiple prop. The Select is ideal when there are less than 10 items to choose from, for bigger datasets or search capabilities, use [ComboBox](https://www.figma.com/design/8zib7Trf2D2CHYXrEGPHkg/n8n-Design-System-V3?node-id=2631-7139&m=dev) (to be done)
Claude Code Knowledge Pack7/10/2026
Overview
Component specification
Allows users to choose one or more options from a predefined list. It supports both single and multiple selection modes via the multiple prop. The Select is ideal when there are less than 10 items to choose from, for bigger datasets or search capabilities, use ComboBox (to be done)
- Component Name: N8nSelect
- Figma Component: Figma
- Element+ Component: ElSelect
- Reka UI Component: Select
- Nuxt UI Component: Select
Public API Definition
Props
id?: stringplaceholder?: stringitems?: TArray for elements to rendervalueKey?: VKWhenitemsis an array of objects, select the field to use as the value.labelKey?: GetItemKeysWhenitemsis an array of objects, select the field to use as the label.defaultValue?: GetModelValue<T, VK, M>The value of the Select when initially rendered. Use when you do not need to control the state of the Select.modelValue?: GetModelValue<T, VK, M>The controlled value of the Select. Can be bind asv-model.multiple?: booleanWhether multiple options can be selected or not.open?: booleanThe controlled open state of the Select. Can be bind asv-model:open.defaultOpen?: booleanThe open state of the select when it is initially rendered. Use when you do not need to control its open state.disabled?: booleanWhentrue, prevents the user from interacting with Select.icon?: IconNameIcon to be displayed in the trigger.
UI Props
size?:'xsmall' | 'small' | 'medium'|default: 'small'variant?:'default' | 'ghost'|default: 'default'
Events
update:modelValue(value: GetModelValue<T, VK, M>)update:open(value: boolean)
Slots
default:{ modelValue?: GetModelValue<T, VK, M>; open: boolean }item:{ item: T; }item-leading:{ item: T; ui: object }item-label:{ item: T; }item-trailing:{ item: T; ui: object }
Template usage example
<script setup lang="ts">
const items = ref(['Backlog', 'Todo', 'In Progress', 'Done'])
const value = ref('Backlog')
</script>
<template>
</template>
<script setup lang="ts">
const items = ref([
{
value: 'system',
label: 'System Default',
icon: 'settings',
disabled: true,
},
{
value: 'light',
label: 'Light',
icon: 'wrench',
},
{
value: 'dark',
label: 'Dark',
icon: 'filled-square',
},
])
const value = ref('light')
const icon = computed(() => items.value.find(item => item.value === value.value)?.icon)
</script>
<template>
<template #item-leading="{ item }">
</template>
<template #item-label="{ item }">
Custom label: {{ item.label }}
</template>
<template #item-trailing="{ item }">
</template>
</template>