components / 26

marked navigation menu

navigation is a promise about what comes next. the mark confirms intent while Base UI keeps focus, hover, and positioning honest.

shadcnnpx shadcn@latest add berkantay/cheez/marked-navigation-menu
live
closed · grid
states
hover, open, current, unavailable
architecture
content changes, frame remains
compact
the rail scrolls; the order stays intact
reference
Base UI behavior, Cheez visuals
proptypedefaultpurpose
value / defaultValueunknown | nullnullcontrolled or uncontrolled open item
delay / closeDelaynumber50pointer intent timing in milliseconds
orientation"horizontal" | "vertical""horizontal"keyboard navigation axis
size"small" | "medium" | "large""medium"trigger and popup rhythm
toneMarkedNavigationMenuTone"orange"built-in ink palette
colorstringtone colortrigger and link ink override
compactbooleanfalsescroll-safe narrow navigation
characterCheezCharacter"rushed"drawing personality
triggerMarkCheezType"underline"persistent open trigger mark
hoverMarkCheezType"short-underline"hover and focus mark
frameMarkCheezType"rounded-box"drawn popup boundary
Content.layout"list" | "grid" | "featured""grid"content composition
Content.width"small" | "medium" | "large""medium"viewport width cap
Link.activebooleanfalsecurrent link and aria-current state
Link.descriptionReactNodeundefinedoptional secondary copy
Viewport.sideOffsetnumber12distance from active trigger
  • Base UI owns focus movement, pointer intent, escape handling, collision detection, and viewport measurement
  • the root renders a nav, the list renders a ul, items render li, and links remain ordinary anchors
  • open triggers redraw their mark and caret; the rest of the interface remains still
  • active links receive aria-current="page" in addition to their persistent Cheez mark
  • content moves through one measured viewport so layout changes do not create competing popups
  • compact mode preserves every destination in a horizontal, scroll-safe rail
  • framework links can replace the default anchor through Base UI composition when needed