๐Ÿ™ Onigiri

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

Docs draft

MenuItem

Variants

type ยท option / checkbox / radio / toggle / drilldown / info / title / separator โ€” Distilled from six old dropdown fragment sets. Control rows COMPOSE the real Checkbox/Radio/Switch components; Title and Separator structure sections.

States

rest โ€” At rest with no interaction.

hover โ€” Pointer is over the control.

focus โ€” Holds keyboard focus and shows the focus ring.

selected โ€” Currently selected.

disabled โ€” Not interactive; rendered with the lifted disabled tokens so it stays perceivable.

Design specifications

row240 wide in the set; fills the Menu; 64px with subtitle, 46px without
labeltype.body-sm in color.text.primary
subtitletype.caption in color.text.secondary
hovercolor.bg.pressed
selected-checkIcon / Check at 20
menu-surfaceMenu component: color.bg.elevated + shadow.overlay, radius.md, 8px vertical padding

Accessibility

Figma building blocks for now. Code arrives with the popover primitive as DropdownMenu; until then Select covers single-choice menus natively. The old Top/Bottom Fade + Scrollbar chrome becomes scroll behavior in code.

API

PropTypeDescription
LabeltextRow label.
SubtitlebooleanSecond line on. Off = one-line row at the 44px touch target.
Subtitle TexttextSecond-line copy (UserMenu's logged-out rows).
Leading Icon / Leading Swapboolean + instance swapLeading 24 icon, mirroring Button's icon-prop mechanism. Follows the row's state color; disabled rows dim it.
Trailing Chip / Trailing Swapboolean + instance swapTrailing chip: NotificationBadge count or Tag (e.g. NEW).