Skip to content

Menu โ€‹

A recursive nav list โ€” items, collapsible groups, dividers, and subheaders โ€” driven by a single items array. Single or multi-select, three densities, seven colors (six themed + surface), two style variants (nav for the dashboard-pill look, plain for a softer subtle fill), badges with status colors, and Iconify icons via item.icon (e.g. i-mdi-view-dashboard). Designed to fit straight into <mono-sidebar>'s body slot to compose a Vuetify-style app shell. Toggle Vue / CSS to switch the live demo and source together.

Basic โ€‹

Flat list of clickable items with icons and the active item highlighted.

Vue SFC

Collapsible groups โ€‹

Section-style groups whose children expand and collapse on header click.

Vue SFC

Nested children โ€‹

Items can have a children array โ€” auto-rendered as an indented sub-list with a guide rail.

Vue SFC

Multi-select โ€‹

Multiple items can be active at once; modelValue becomes a string array.

Vue SFC

Iconify icons โ€‹

item.icon strings like i-mdi-view-dashboard resolve through UnoCSS preset-icons โ€” works with any icones.js.org collection.

Vue SFC

Badges โ€‹

Numeric counts and status pills via badge + badgeColor on each item.

Vue SFC

Dividers & subheaders โ€‹

Section labels and thin rules grouped via the divider and subheader item types.

Vue SFC

Plain variant โ€‹

nav={false} for a softer fill on the active item; useful in popovers and dialogs.

Vue SFC

Customized โ€‹

Override per-element styling via cssClass (Vue) or utility classes (CSS).

Vue SFC

Declarative nesting โ€‹

Stack <mono-menu-list> tags to any depth โ€” each tag is one row, children compose its body slot.

Vue SFC

Vue Router integration โ€‹

Real <a href> rows give status-bar URL preview, right-click "Open in new tab", and middle-click โ€” intercepted on plain click for SPA navigation via router.push.

Vue SFC

Alias fallback โ€‹

When an item has no icon (and no slot icon), the renderer emits a 1โ€“2 character monogram derived from the title โ€” Dashboard โ†’ D, Post Budget โ†’ PB, Sales Order Report โ†’ SO. This is what rail-mode sidebars show when labels are hidden, so iconless rows still have a visual anchor.

Vue SFC