UI

App Shell

Esqueleto de sistema com menu lateral recolhível, cabeçalho com trilha de navegação e conteúdo em cards.

Bom dia, Camila

Resumo da loja nesta terça-feira.

Vendas hoje
R$ 3.482,90
+18% vs. ontem
Pedidos em aberto
8
3 aguardando pagamento
Ticket médio
R$ 127,40
Últimos 30 dias
Pedidos recentes
Últimos pedidos recebidos pela loja online.
  • #10482Fernanda RibeiroR$ 289,90
  • #10481Lucas MartinsR$ 74,50
  • #10480Patrícia GomesR$ 512,00
  • #10479Roberto NunesR$ 139,90
Estoque baixo
Produtos com menos de 5 unidades.
  • Café especial 250g3 un.
  • Granola artesanal 500g2 un.
  • Mel orgânico 300g4 un.

Instalação

O App Shell é uma composição de componentes do registry — não há um arquivo próprio. Instale as peças e copie o código do exemplo.

Instale os componentes usados:

npx shadcn@latest add @lenstech/sidebar @lenstech/breadcrumbs @lenstech/card @lenstech/separator @lenstech/avatar @lenstech/link

Copie o código da aba Código da prévia acima para o layout do seu sistema (ex.: app/(painel)/layout.tsx).

Uso

Coloque o shell no layout das páginas internas, para que o menu não seja recriado a cada navegação:

// app/(painel)/layout.tsx
export default function PainelLayout({ children }: { children: React.ReactNode }) {
  return (
    <SidebarProvider>
      <AppSidebar /> {/* Sidebar com SidebarHeader, SidebarContent e SidebarFooter */}
      <SidebarInset>
        <header className="sticky top-0 z-10 flex h-14 items-center gap-2 border-b bg-background/95 px-4 backdrop-blur">
          <SidebarTrigger className="-ml-1" />
          <Separator orientation="vertical" className="mr-2 h-4 self-center" />
          <Breadcrumbs>
            <Breadcrumb href="/painel">Empório Bom Grão</Breadcrumb>
            <Breadcrumb>Pedidos</Breadcrumb>
          </Breadcrumbs>
        </header>
        <div className="flex flex-1 flex-col gap-6 p-4 md:p-6">{children}</div>
      </SidebarInset>
    </SidebarProvider>
  )
}

Remova a altura fixa

Na prévia o SidebarProvider usa className="h-[640px] min-h-0 overflow-hidden" e a Sidebar className="h-full" só para caber na página. No seu sistema, remova essas classes: o provider ocupa a tela toda e o menu fica fixo enquanto o conteúdo rola.

Exemplos

Para telas com muito conteúdo (fichas, tabelas largas), comece com o menu escondido: defaultOpen={false} + collapsible="offcanvas".

Andrade & Lima Advocacia
Dados do cliente
CNPJ 98.765.432/0001-10
Responsável: Sérgio Almeida · (19) 3251-7788
Processos ativos
2 em andamento
Próxima audiência em 21/10, às 14h.

Quando usar

  • Use como ponto de partida de sistemas para clientes: gestão de loja, agenda de clínica, área do cliente de escritórios.
  • Não use em sites institucionais — use Site Header e Site Footer.
  • Troque os itens de menu, os indicadores e os cards pelos do seu sistema; a estrutura (provider → sidebar → inset → header → conteúdo) deve ser mantida.

API

O App Shell não tem props próprias. As peças principais:

Prop

Type

On this page