Pular para o conteúdo

Side Panel

Painel lateral para inspeção, edição contextual e navegação sem abandonar a página atual.

Como usar

Use itps-side-panel quando a pessoa precisa consultar ou editar um contexto sem sair da página atual. Para uma decisão bloqueante, use Modal.

CLI

pnpm dlx github:ITPS/sinapse-ui-cli add side-panel

Este comando individual já é reconhecido pela CLI. Para componentes sem adapter de patch de fonte, o comando confirma o contrato theme-only: use o tema ITpS aplicado pelo init e as abas React/Next, Vue3/Nuxt4 ou HTML desta página.

Com metadados, ações e tabs

Use metadados no header quando a informação ajuda a confirmar contexto. Em tabs, conecte cada itps-side-panel__tab a um role="tabpanel" real por aria-controls.

Contrato público

Classe ou atributoUso
.itps-side-panelContainer raiz controlado por aria-hidden e data-state.
.itps-side-panel__backdropCamada que fecha o painel ao clicar.
.itps-side-panel__surfaceSuperfície lateral com role="dialog".
.itps-side-panel__headerHeader fixo com título, descrição, metadados e ações.
.itps-side-panel__bodyÁrea rolável do conteúdo.
.itps-side-panel__actionAção curta de header com aria-label.
.itps-side-panel__tabsLista de tabs do painel.
data-sidepanel*Hooks usados pela aplicação para abrir, fechar, alternar tabs e devolver foco.

Comportamento

A aplicação controla data-state="open", alterna aria-hidden, trava o scroll da página enquanto aberto e devolve foco ao trigger ao fechar.

Acessibilidade

  • Use role="dialog" e aria-modal="true" na superfície.
  • Use aria-labelledby apontando para itps-side-panel__title.
  • Use aria-describedby quando houver descrição.
  • O botão de fechar precisa de aria-label="Fechar painel".
  • Em tabs, conecte cada tab a um role="tabpanel" real com aria-controls.
  • Feche por ESC, backdrop e botão explícito; devolva foco ao trigger.