Dropdown Component
Dropdowns are a common form control that allows the user to select from a list of options.
Users can click on the dropdown to display a list of options, or start typing to fuzzy-find to jump directly to their choice within a larger lists of options.
Dropdowns emit the change event when their selection changes. When disabled, the user will not be able to change the value of a dropdown, and no change events will be emitted.
Properties
Visible
| Prop | isVisible |
|---|---|
| Type | boolean |
| Default | true |
Whether or not this node is visible.
Enabled
| Prop | isEnabled |
|---|---|
| Type | boolean |
| Default | true |
Whether or not this node is enabled.
Tooltip
| Prop | tooltip |
|---|---|
| Type | string |
| Default | undefined |
The tooltip text to display when hovered or focused over this node.
Top
| Prop | top |
|---|---|
| Type | number |
| Default | 1 |
The position of the node from the top side of the grid (grid-row-start).
Left
| Prop | left |
|---|---|
| Type | number |
| Default | 1 |
The position of the node from the left side of the grid (grid-column-start).
Width
| Prop | width |
|---|---|
| Type | string |
| Default | 232px |
The width of the node. When this node is in a grid layout, this should be done using unitless grid column units (specifying 4 will become grid-column-end: span 4). When this node is in a stack layout, the width can be specified using CSS units (e.g. 100px or 100%), or be left unitless to be treated as flex-grow for the node.
Min Width
| Prop | minWidth |
|---|---|
| Type | string |
| Default | undefined |
The minimum width of the node. When this node is in a grid layout, this property is ignored.
Max Width
| Prop | maxWidth |
|---|---|
| Type | string |
| Default | undefined |
The maximum width of the node. When this node is in a grid layout, this property is ignored.
Height
| Prop | height |
|---|---|
| Type | string |
| Default | 64px |
The height of the node. When this node is in a grid layout, this should be done using unitless grid row units (specifying 4 will become grid-row-end: span 4). When this node is in a stack layout, the height can be specified using CSS units (e.g. 100px or 100%), or be left unitless to be treated as flex-grow for the node.
Min Height
| Prop | minHeight |
|---|---|
| Type | string |
| Default | undefined |
The minimum height of the node. When this node is in a grid layout, this property is ignored.
Max Height
| Prop | maxHeight |
|---|---|
| Type | string |
| Default | undefined |
The minimum height of the node. When this node is in a grid layout, this property is ignored.
Overflow
| Prop | overflow |
|---|---|
| Type | Overflow ('auto' | 'visible' | 'hidden' | 'scroll') |
| Default | auto |
The strategy used to handle overflow in the horizontal and vertical axes for content that is larger than its container.
Overflow X
| Prop | overflowX |
|---|---|
| Type | Overflow ('auto' | 'visible' | 'hidden' | 'scroll') |
| Default | auto |
The strategy used to handle overflow in the horizontal axis for content that is larger than its container.
Overflow Y
| Prop | overflowY |
|---|---|
| Type | Overflow ('auto' | 'visible' | 'hidden' | 'scroll') |
| Default | auto |
The strategy used to handle overflow in the vertical axis for content that is larger than its container.
Custom Styles
| Prop | styles |
|---|---|
| Type | string |
| Default | ::component { } |
Custom CSS styles to be applied to the node. Use element.styles to refer to the current node.
Object Fit
| Prop | objectFit |
|---|---|
| Type | ObjectFit ('none' | 'contain' | 'cover' | 'fill' | 'scale-down') |
| Default | cover |
The strategy used to set how the content of a replaced element should be resized to fit its container.
Field Name
| Prop | formFieldName |
|---|---|
| Type | string |
| Default | undefined |
Defines the key for this input in the body of the submitted form.
Label
| Prop | label |
|---|---|
| Type | string |
| Default | Select one |
The label to be displayed alongside the dropdown.
Values
| Prop | values |
|---|---|
| Type | Array<unknown> |
| Default | {{[1, 2, 3]}} |
The array of values that the user is able to choose from. Values can be any TypeScript value, including objects. Often, it is useful to display a human-readable string to the user of a dropdown using the displayValues property, and instead use a machine-readable value in this property, such as an ID or row object.
Display Values
| Prop | displayValues |
|---|---|
| Type | Array<string> |
| Default | undefined |
The array of human-readable displayed values that the user is able to choose from. This array should have the same length as values, but must contain only strings.
Selected Value
| Prop | value |
|---|---|
| Type | unknown |
| Default | undefined |
The selected value of the dropdown. This can be one of the options from values, or undefined when no value is selected.
Placeholder
| Prop | placeholder |
|---|---|
| Type | string |
| Default | undefined |
The placeholder value to display when no option has been selected.
Enable
| Prop | enableFilter |
|---|---|
| Type | boolean |
| Default | false |
Whether or not to enable filtering of (options)[#display-values] as user types.
Fuzzy Matching
| Prop | fuzzyMatching |
|---|---|
| Type | boolean |
| Default | true |
Whether or not to enable fuzzy-find matching of dropdown items when using the keyboard.
Case-sensitive Matching
| Prop | caseSensitiveMatching |
|---|---|
| Type | boolean |
| Default | false |
Whether or not to enable case-sensitive matching of dropdown items when using the keyboard.
Required
| Prop | isRequired |
|---|---|
| Type | boolean |
| Default | false |
Whether or not this dropdown is required. This is a visual flag that updates the corresponding accessibility properties. It is up to the app developer to enforce the requirement.
Allow Clearing
| Prop | allowClearing |
|---|---|
| Type | boolean |
| Default | true |
Whether or not to allow clearing of the dropdown after a selection has been made. This will reset the dropdown's (value)[#value].
Label Style
| Prop | labelStyle |
|---|---|
| Type | DropdownLabelStyle ('left' | 'top' | 'hidden' | 'right') |
| Default | top |
The display style of the label next to the dropdown.
Label Width
| Prop | labelWidth |
|---|---|
| Type | string |
| Default | 35% |
The width of the label.
Font Size
| Prop | fontSize |
|---|---|
| Type | CheckboxSize ('xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl') |
| Default | md |
The size of the font. Size is a measurement value like "md" and can be configured in the theme.
Background Color
| Prop | backgroundColor |
|---|---|
| Type | string |
| Default | input.background |
The background color of the dropdown.
Label Color
| Prop | labelColor |
|---|---|
| Type | string |
| Default | text.primary |
The color of the label text.
Input Color
| Prop | inputColor |
|---|---|
| Type | string |
| Default | text.primary |
The color of the input text.
Placeholder Color
| Prop | placeholderColor |
|---|---|
| Type | string |
| Default | input.placeholder |
The color of the placeholder text.
Event Handlers
On Hover
| Handler | dropdownNode.onHover |
|---|
Called when the user hovers on the node. Use this event to trigger downstream actions when this node is hovered.
On Leave
| Handler | dropdownNode.onLeave |
|---|
Called when the user is not hovering over the node. Use this event to trigger downstream actions when this node is no longer hovered.
On Focus
| Handler | dropdownNode.onFocus |
|---|
Called when the user focuses the node. Use this event to trigger downstream actions when this node is focused.
On Blur
| Handler | dropdownNode.onBlur |
|---|
Called when the user blurs the node. Use this event to trigger downstream actions when this node is blurred.
On Change
| Handler | dropdownNode.onChange |
|---|
Called when the selected dropdown option changes.