NavRail

Padrão hollow-UI

Trilho de navegação vertical colapsável com suporte a drawer mobile, itens desabilitados e três variantes de estilo.

Preview
NavRail interativo — abra em tela grande para ver o comportamento colapsável. Em telas menores, use o botão flutuante.
Menu

Aba ativa: Dashboard

Instalação
Via CLI hollow-UI

Instalação

Via CLI (Recomendado)

1. Inicializar (primeira vez)
2. Adicionar componente

Os comandos init e setup fazem o pré-setup (necessário apenas uma vez). Se você rodar add sem isso, a CLI executa o setup automaticamente.

Via NPM

Instalar pacote completo

Instala todos os componentes como dependência do projeto.

Uso Básico
Definindo items e controlando o estado ativo
NavRail básico
Variantes
Três aparências disponíveis via prop variant

default

Menu
variant="default"

ghost

Menu
variant="ghost"

solid

Menu
variant="solid"
Variantes
Tamanhos
Controle a altura dos itens com a prop size
Tamanhos
Colapso Controlado
Controle o estado colapsado externamente via collapsed e onCollapsedChange
Controlled collapse
Itens Desabilitados
Use disabled e disabledMessage para indicar funcionalidades indisponíveis
Item desabilitado
API do Componente
Propriedades disponíveis para NavRail e NavRailItem

NavRail

PropTipoPadrãoDescrição
itemsNavRailItem[]—Lista de itens de navegação
valuestring—Id do item ativo
onValueChange(value: string) => void—Callback de mudança de aba
collapsedbooleanundefinedEstado colapsado controlado
defaultCollapsedbooleanfalseEstado colapsado inicial (não controlado)
onCollapsedChange(v: boolean) => void—Callback de colapso
variant"default" | "ghost" | "solid""default"Aparência do container
size"sm" | "md" | "lg""md"Altura dos itens
classNamestring—Classes extras para o container desktop

NavRailItem

PropTipoPadrãoDescrição
idstring—Identificador único do item
labelstring—Texto exibido ao expandir
iconReact.ElementType—Ícone Lucide ou qualquer componente
disabledbooleanfalseDesabilita o item
disabledMessagestring—Tooltip exibido ao passar o mouse num item desabilitado
Exemplo Completo
Integração com conteúdo dinâmico por aba
AppShell.tsx