🍙 Onigiri

The Crunchyroll design system, rendered live from its own tokens and components. It cannot drift from what ships.

Docs draft

Select

When to use it

useSingle choice among options that fit a native menu: sort order, language, quality.
avoidMenus with checkboxes, toggles, drilldowns, or mixed content — that is the DropdownMenu pattern, landing with the popover primitive. menu-item + Menu.
avoid2-5 options worth showing all at once. radio

States

rest — At rest with no interaction.

hover — Pointer is over the control.

focus — Holds keyboard focus and shows the focus ring.

open below — Open with the menu attached below the trigger.

open above — Open with the menu attached above the trigger.

disabled — Not interactive; rendered with the lifted disabled tokens so it stays perceivable.

Design specifications

trigger44px, radius.md, padding-x space.16 (outline: space.12), gap space.8
labeltype.label-lg
label-restcolor.text.secondary
label-activecolor.text.primary
chevronIcon / Chevron Down at 20
open-surfacecolor.bg.elevated
outline-bordercolor.border.strong

Accessibility

Enter / Space / Arrows — Native select semantics — the menu is the platform's.

color.text.secondary on color.bg.primary — Contracted at ≥ 4.5:1 by the build gate.

Code wraps a real select; the styled trigger never replaces platform behavior. aria-label from the label prop.