Select
Displays a list of options for the user to pick from — triggered by a button.
Default
Basic select with placeholder.
html
Select a fruit
Apple
Banana
Blueberry
Grapes
Pineapple
<div class="uc-select-wrapper uc-relative">
<div class="uc-select-trigger">
<span class="placeholder">Select a fruit</span>
<svg class="uc-w-4 uc-h-4">...</svg>
</div>
<div class="uc-select-dropdown">
<div class="uc-select-item">Apple</div>
<!-- ...more items -->
</div>
</div>
With Label
Select with form label.
html
Select a framework
Next.js
SvelteKit
Nuxt.js
Remix
Astro
Choose your preferred framework.
<label class="uc-label">Framework</label>
<div class="uc-select-wrapper uc-relative">
<div class="uc-select-trigger">
<span class="placeholder">Select a framework</span>
<svg class="uc-w-4 uc-h-4">...</svg>
</div>
<div class="uc-select-dropdown">
<div class="uc-select-item selected">Next.js</div>
<div class="uc-select-item">SvelteKit</div>
<div class="uc-select-item">Nuxt.js</div>
<div class="uc-select-item">Remix</div>
<div class="uc-select-item">Astro</div>
</div>
</div>
<p class="uc-text-sm uc-text-fg-disabled">Choose your preferred framework.</p>
With Groups
Options organized into groups.
html
Select a timezone
North America
EST (UTC-5)
CST (UTC-6)
PST (UTC-8)
Europe
GMT (UTC+0)
CET (UTC+1)
MSK (UTC+3)
Asia
IST (UTC+5:30)
JST (UTC+9)
<div class="uc-select-wrapper uc-relative">
<div class="uc-select-trigger">
<span class="placeholder">Select a timezone</span>
<svg class="uc-w-4 uc-h-4">...</svg>
</div>
<div class="uc-select-dropdown">
<div class="uc-select-label">North America</div>
<div class="uc-select-item">EST (UTC-5)</div>
<div class="uc-select-item">CST (UTC-6)</div>
<div class="uc-select-item">PST (UTC-8)</div>
<div class="uc-select-separator"></div>
<div class="uc-select-label">Europe</div>
<div class="uc-select-item">GMT (UTC+0)</div>
<div class="uc-select-item">CET (UTC+1)</div>
<div class="uc-select-item">MSK (UTC+3)</div>
<div class="uc-select-separator"></div>
<div class="uc-select-label">Asia</div>
<div class="uc-select-item">IST (UTC+5:30)</div>
<div class="uc-select-item">JST (UTC+9)</div>
</div>
</div>
Disabled
Select in disabled state.
html
Select option
<div class="uc-select-trigger uc-opacity-50 uc-cursor-not-allowed">
<span class="placeholder">Select option</span>
<svg class="uc-w-4 uc-h-4">...</svg>
</div>
Form Example
Select in a settings form.
html
English
English
Russian
Spanish
Japanese
System
Light
Dark
System
<div class="uc-space-y-4">
<div class="uc-space-y-2">
<label class="uc-text-sm uc-font-medium">Language</label>
<div class="uc-select-wrapper uc-relative">
<div class="uc-select-trigger">
<span>English</span>
<svg class="uc-w-4 uc-h-4">...</svg>
</div>
<div class="uc-select-dropdown">
<div class="uc-select-item selected">English</div>
<div class="uc-select-item">Russian</div>
<div class="uc-select-item">Spanish</div>
<div class="uc-select-item">Japanese</div>
</div>
</div>
</div>
<div class="uc-space-y-2">
<label class="uc-text-sm uc-font-medium">Theme</label>
<div class="uc-select-wrapper uc-relative">
<div class="uc-select-trigger">
<span>System</span>
<svg class="uc-w-4 uc-h-4">...</svg>
</div>
<div class="uc-select-dropdown">
<div class="uc-select-item">Light</div>
<div class="uc-select-item">Dark</div>
<div class="uc-select-item selected">System</div>
</div>
</div>
</div>
<button class="uc-btn uc-w-full">Save Preferences</button>
</div>
API Reference
All CSS classes available for the Select component.
| Class | Type | Description |
|---|---|---|
uc-select-wrapper |
Base | Container for the select component — relative positioning context |
uc-select-trigger |
Base | Clickable trigger button — displays selected value or placeholder |
uc-select-dropdown |
Base | Dropdown panel containing options — hidden by default |
uc-select-item |
Base | Individual option inside the dropdown |
uc-select-label |
Modifier | Non-selectable group label inside dropdown |
uc-select-separator |
Modifier | Visual divider between option groups |
selected |
State | Marks the currently selected item |
placeholder |
State | Styles the placeholder text in the trigger |
open |
State | Shows the dropdown when toggled on |
uc-opacity-50 uc-cursor-not-allowed |
State | Disabled appearance — reduced opacity, no pointer events |
Accessibility
Keyboard and screen reader support.
| Feature | Details |
|---|---|
| Role | Use native select element or role="listbox" for custom selects |
| Label | Always provide a visible label linked via for/id |
| Keyboard | Space/Enter opens, Arrow keys navigate options, Escape closes |
| Selected | Selected option announced automatically by native select or aria-selected |
| Disabled | Disabled options use disabled attribute or aria-disabled="true" |