Select
Enables users to choose from a list of options presented in a dropdown.
Structure
API Reference
The root select component which manages & scopes the state of the select.
Property | Type | Description |
---|---|---|
value bindable prop | string | The value of the currently selected select item. Default: undefined |
onValueChange | function | A callback that is fired when the select menu's value changes. Default: undefined |
open bindable prop | boolean | The open state of the select menu. Default: false |
onOpenChange | function | A callback that is fired when the select menu's open state changes. Default: undefined |
disabled | boolean | Whether or not the select menu is disabled. Default: false |
autocomplete | string | The autocomplete attribute of the select. Default: undefined |
dir | enum | The reading direction of the app. Default: ltr |
form | string | The form attribute of the select. Default: undefined |
name | string | The name to apply to the hidden input element for form submission. Default: undefined |
required | boolean | Whether or not the select menu is required. Default: false |
children | Snippet | The children content to render. Default: undefined |
The button element which toggles the select menu's open state.
Property | Type | Description |
---|---|---|
disabled | boolean | Whether or not the select menu trigger is disabled. Default: false |
ref bindable prop | HTMLButtonElement | The underlying DOM element being rendered. You can bind to this to get a reference to the element. Default: undefined |
children | Snippet | The children content to render. Default: undefined |
child | Snippet | Use render delegation to render your own element. See delegation docs for more information. Default: undefined |
Data Attribute | Value | Description |
---|---|---|
data-state | enum | The dropdown menu's open state. |
data-disabled | —— | Present when the trigger is disabled. |
data-select-trigger | —— | Present on the trigger element. |
The content/menu element which contains the select menu's items.
Property | Type | Description |
---|---|---|
position | enum | The positioning strategy to use for the content. If set to 'item-aligned', the content will be positioned relative to the trigger, similar to a native select. If set to Default: floating |
dir | enum | The reading direction of the app. Default: ltr |
side | enum | The preferred side of the anchor to render the floating element against when open. Will be reversed when collisions occur. Default: bottom |
sideOffset | number | The distance in pixels from the anchor to the floating element. Default: 0 |
align | enum | The preferred alignment of the anchor to render the floating element against when open. This may change when collisions occur. Default: start |
alignOffset | number | The distance in pixels from the anchor to the floating element. Default: 0 |
arrowPadding | number | The amount in pixels of virtual padding around the viewport edges to check for overflow which will cause a collision. Default: 0 |
avoidCollisions | boolean | When Default: true |
collisionBoundary | union | A boundary element or array of elements to check for collisions against. Default: undefined |
collisionPadding | union | The amount in pixels of virtual padding around the viewport edges to check for overflow which will cause a collision. Default: 0 |
sticky | enum | The sticky behavior on the align axis. Default: partial |
hideWhenDetached | boolean | When Default: true |
updatePositionStrategy | enum | The strategy to use when updating the position of the content. When Default: optimized |
strategy | enum | The positioning strategy to use for the floating element. When Default: fixed |
preventScroll | boolean | When Default: true |
onInteractOutside | function | Callback fired when an outside interaction event completes, which is either a Default: undefined |
onInteractOutsideStart | function | Callback fired when an outside interaction event starts, which is either a Default: undefined |
onFocusOutside | function | Callback fired when focus leaves the dismissable layer. You can call Default: undefined |
interactOutsideBehavior | enum | The behavior to use when an interaction occurs outside of the floating content. Default: close |
onEscapeKeydown | function | Callback fired when an escape keydown event occurs in the floating content. You can call Default: undefined |
escapeKeydownBehavior | enum | The behavior to use when an escape keydown event occurs in the floating content. Default: close |
onMountAutoFocus | function | Event handler called when auto-focusing the content as it is mounted. Can be prevented. Default: undefined |
onDestroyAutoFocus | function | Event handler called when auto-focusing the content as it is destroyed. Can be prevented. Default: undefined |
preventOverflowTextSelection | boolean | When Default: true |
forceMount | boolean | Whether or not to forcefully mount the content. This is useful if you want to use Svelte transitions or another animation library for the content. Default: false |
loop | boolean | Whether or not the select menu should loop through items when reaching the end. Default: false |
ref bindable prop | HTMLDivElement | The underlying DOM element being rendered. You can bind to this to get a reference to the element. Default: undefined |
children | Snippet | The children content to render. Default: undefined |
child | Snippet | Use render delegation to render your own element. See delegation docs for more information. Default: undefined |
Data Attribute | Value | Description |
---|---|---|
data-select-content | —— | Present on the content element. |
A select item, which must be a child of the Select.Content
component.
Property | Type | Description |
---|---|---|
value Required | string | The value of the select item. Default: undefined |
textValue | string | The text value of the select item, which is used for typeahead purposes. Default: undefined |
disabled | boolean | Whether or not the select item is disabled. This will prevent interaction/selection. Default: false |
ref bindable prop | HTMLDivElement | The underlying DOM element being rendered. You can bind to this to get a reference to the element. Default: undefined |
children | Snippet | The children content to render. Default: undefined |
child | Snippet | Use render delegation to render your own element. See delegation docs for more information. Default: undefined |
Data Attribute | Value | Description |
---|---|---|
data-state | enum | The state of the item. |
data-highlighted | —— | Present when the item is highlighted, via keyboard navigation or hover. |
data-disabled | —— | Present when the item is disabled. |
data-select-item | —— | Present on the item element. |
A representation of the select menu's value, which is typically displayed in the trigger.
Property | Type | Description |
---|---|---|
placeholder | string | A placeholder value to display when no value is selected. Default: undefined |
ref bindable prop | HTMLDivElement | The underlying DOM element being rendered. You can bind to this to get a reference to the element. Default: undefined |
children | Snippet | The children content to render. Default: undefined |
child | Snippet | Use render delegation to render your own element. See delegation docs for more information. Default: undefined |
Data Attribute | Value | Description |
---|---|---|
data-select-value | —— | Present on the value element. |
data-placeholder | —— | Present when the placeholder is being displayed (there isn't a value selected). You can use this to style the placeholder differently than the selected value. |
An accessible group of select menu items.
Property | Type | Description |
---|---|---|
ref bindable prop | HTMLDivElement | The underlying DOM element being rendered. You can bind to this to get a reference to the element. Default: undefined |
children | Snippet | The children content to render. Default: undefined |
child | Snippet | Use render delegation to render your own element. See delegation docs for more information. Default: undefined |
Data Attribute | Value | Description |
---|---|---|
data-select-group | —— | Present on the group element. |
A label for the select menu which will be skipped when navigating with the keyboard. This must be a child of the Select.Group
component to be accessible.
Property | Type | Description |
---|---|---|
ref bindable prop | HTMLDivElement | The underlying DOM element being rendered. You can bind to this to get a reference to the element. Default: undefined |
children | Snippet | The children content to render. Default: undefined |
child | Snippet | Use render delegation to render your own element. See delegation docs for more information. Default: undefined |
Data Attribute | Value | Description |
---|---|---|
data-select-label | —— | Present on the label element. |
A visual separator for use between select items or groups.
Property | Type | Description |
---|---|---|
ref bindable prop | HTMLDivElement | The underlying DOM element being rendered. You can bind to this to get a reference to the element. Default: undefined |
children | Snippet | The children content to render. Default: undefined |
child | Snippet | Use render delegation to render your own element. See delegation docs for more information. Default: undefined |
Data Attribute | Value | Description |
---|---|---|
data-separator-root | —— | Present on the separator element. |
An optional arrow element which points to the trigger when open.
Property | Type | Description |
---|---|---|
width | number | The width of the arrow in pixels. Default: 8 |
height | number | The height of the arrow in pixels. Default: 8 |
ref bindable prop | HTMLDivElement | The underlying DOM element being rendered. You can bind to this to get a reference to the element. Default: undefined |
children | Snippet | The children content to render. Default: undefined |
child | Snippet | Use render delegation to render your own element. See delegation docs for more information. Default: undefined |
Data Attribute | Value | Description |
---|---|---|
data-arrow | —— | Present on the arrow element. |