components / 27

marked menubar

menus share one keyboard rhythm. the ink moves between them without replacing the operating system grammar people already know.

shadcnnpx shadcn@latest add berkantay/cheez/marked-menubar
live
last action: waiting
switching
Base UI owns the hard parts
memory
temporary underline · persistent enclosure
voice
size and character belong to the root
reference
compound pieces, native responsibilities
partproptypedefaultpurpose
Menubarorientation"horizontal" | "vertical""horizontal"composite focus direction
MenubarloopFocusbooleantruewrap focus between menu triggers
Menubarmodalbooleantruecontain interaction while a menu is open
Menubarsize"small" | "medium" | "large""medium"trigger and popup density
MenubartoneMarkedMenubarTone"orange"persistent selection ink
MenubarcharacterCheezCharacter"calm"shared drawing personality
Menubarcolorstringtone colorcustom persistent ink
MenubarinteractionColorstring"#35d9ff"hover and keyboard ink
TriggermarkCheezType"loose-circle"open-menu mark
TriggerinteractionMarkCheezType"short-underline"hover and focus mark
ContentsideOffsetnumber7distance from its trigger
Itemdisabledbooleanfalseskip pointer and keyboard interaction
Itemtone"default" | "danger""default"destructive semantic color
CheckboxItemcheckedbooleancontrolled multiple selection
RadioGroupvalueanycontrolled single selection
SubmenuTriggeropenOnHoverbooleanfalseoptional hover disclosure
Shortcutspan propspresentational keyboard hint
  • Base UI supplies roving focus, typeahead, collision handling, and dismissal
  • opening one root menu lets pointer movement and arrow keys switch to its siblings
  • actions use a temporary interaction mark; checked and selected items keep their mark
  • submenus are independent focus layers and can optionally open on hover
  • shortcuts are visual hints only; wire application-level key bindings separately
  • disabled items remain visible but are skipped by keyboard navigation
  • all drawing motion comes from Cheez and respects reduced-motion preferences