Skip to content
Velkin LogoVelkin Logo
Velkin
VELKIN/UI

Modern UI components for product teams and their AI agents. Lit core, typed wrappers, live MCP.

sales@velkinui.com

Product

  • Docs
  • Components
  • Studio
  • Pricing

Resources

  • Quick start
  • Blog
  • Changelog
  • Roadmap
  • Status

Project

  • About
  • Contact
  • License
  • Privacy
  • Terms

© 2026 Velkin. MIT core · Pro licenses available.

VELKIN

Nav Panel

A navigation panel component for drawer bodies with icon-rail collapse.

vu-nav-panel · @velkin/react/nav-panel

Copy page

Import

React
npm i @velkin/react

import { VuNavPanel } from "@velkin/react/nav-panel";

Examples

API

Props

PropTypeDefaultDescription
itemsVuNavPanelItem[][]Rows to render; shared `category` values create collapsible groups.
valuestring""Currently selected row key.
collapsedGroupsRecord{}Group collapsed-state map (`true` means collapsed).
collapsedbooleanfalseIcon-rail mode; labels and group headings are hidden.
labelstring"Navigation"Accessible name for the listbox.
sizeVuNavPanelSize"md"Row density (`sm`, `md`, `lg`); relayed to rail tooltips.
colorVuNavPanelColor"default"Active-row accent color.
collapsedHintsVuNavPanelCollapsedHints"tooltip"Icon-rail label reveal: per-row `vu-tooltip`, native `title`, or `none`.
collapsedHintPlacementVuNavPanelHintPlacement"right"Hint side for rail rows when `collapsedHints="tooltip"`.

Events

EventDetailDescription
vu-changeVuNavPanelChangeDetailWhen the selected row changes.
vu-collapse-changeVuNavPanelCollapseChangeDetailWhen icon-rail `collapsed` flips.

Slots

SlotDescription
prependContent before rows inside the list body.
appendContent after rows inside the list body.

CSS parts

PartDescription
panelRoot list region.
bodyScrollable container for rows and groups.
prependPrepend slot wrapper.
appendAppend slot wrapper.
listFlat list container when items have no categories.
groupWrapper for a category section.
headingClickable heading row of a category.
chevronChevron icon in the heading.
group-contentContainer of rows inside a category.
rowA single selectable row (`button` or `a`).
stackLabel and description column inside a row.
labelPrimary row text.
descriptionSecondary row text.
badgeOptional trailing meta on a row.
iconLeading or trailing icon on a row.
fallbackInitial in icon rail when the row has no icon.
collapsed-hintPer-row tooltip bubble when `collapsedHints="tooltip"` (`exportparts` from `<vu-tooltip>`).

Methods

MethodDescription
select- Sets the selected row by `value`.
collapse- Collapses to the icon rail.
expand- Expands from the icon rail.
toggleCollapse- Toggles icon-rail mode.
toggleGroup- Toggles or forces a group collapsed state.
expandAllGroups- Expands all known groups.
collapseAllGroups- Collapses all known groups.

Types

NameDefinition
VuNavPanelChangeDetail
{ value?: string; item?: VuNavPanelItem; }
VuNavPanelCollapseChangeDetail
{ collapsed: boolean; }
VuNavPanelCollapsedHints
"none" | "tooltip" | "native"
VuNavPanelColor
"default" | "primary" | "success" | "warning" | "danger"
VuNavPanelHintPlacement
"top" | "bottom" | "left" | "right" | "auto"
VuNavPanelSize
"sm" | "md" | "lg"

Related

Navigation

  • Adaptive BarA responsive toolbar component that overflows extra items into a menu.
  • AppbarAn application bar component with start, center, and end slots.
  • BreadcrumbA breadcrumb component for navigation trails with optional collapse.
  • Context MenuA context menu component with grouped actions and icons.
  • DropdownA dropdown menu component with trigger slot and keyboard navigation.
  • MenubarA menubar component with nested submenus and keyboard navigation.

Guides

  • AccessibilityFocus and naming
  • SlotsHeader, body, and item slots

Browse

  • Previous: MenubarEarlier in the sidebar
  • Next: NavbarLater in the sidebar
  • All componentsBrowse the full index