Widget
Painel de métrica, resumo ou tabela, com cabeçalho, conteúdo e rodapé.
O Widget (do HeroUI Pro) agrupa um indicador, um resumo ou uma tabela com título e contexto. É o painel padrão das telas do Admin; a hierarquia vem da superfície e da sombra suave do tema. Para tabelas, coloque um DataGrid dentro do Widget; para um bloco de texto solto, use Card.
import { Widget } from "@rastreio-x/ui";
Padrão
O título e a descrição ficam no cabeçalho; a descrição é um texto curto de contexto (período, fuso, contagem).
Indicador
Com NumberValue o número é formatado pelo locale (pt-BR: milhar com ponto, vírgula decimal) e o TrendChip mostra a variação.
Com rodapé
O rodapé guarda contexto ou uma ação de apoio, como "Ver Extrato" ou "Carregar Mais". A ação principal da tela não vai aqui.
Com legenda
Widget.Legend e Widget.LegendItem nomeiam as séries de um gráfico. A cor vem dos tokens de gráfico (--chart-1 a --chart-5), que nunca representam estado.
Região nomeada
Em telas do Admin o Widget é uma região: role="region" com aria-labelledby apontando para o h2 que fica dentro de Widget.Title (que é um span).
Anatomia
Widget.Header,Widget.TitleeWidget.Description: o cabeçalho.Widget.Content: o corpo; usep-0para tabelas e listas de borda a borda.Widget.Footer: o rodapé do painel.Widget.LegendeWidget.LegendItem: legenda de gráfico.
Propriedades
Raiz (Widget):
Cabeçalho (Widget.Header):
Item de legenda (Widget.LegendItem):
Animações
O Widget é estático. O recuo do título e o do rodapé seguem o miolo por um ajuste global da fachada (styles.css, camada components), não por tela: não reponha px-* no cabeçalho.
Acessibilidade
- O
Widgeté umdiv; transforme-o em região comrole="region"earia-labelledbyquando for um painel de tela. Widget.Titleé umspan: ponha oh2dentro dele para manter a hierarquia de títulos.- Um
KPIdentro de umWidgetdeve usarKPITitleeKPIValueda fachada, nãoKPI.TitleeKPI.Value(viramdteddsoltos). - Cor de série de gráfico não carrega estado: acompanhe com texto.
Boas práticas
Faça
Evite
- Um título curto por widget, em Title Case.
- Não coloque um Widget dentro de outro Widget.
KPIGroup className="bg-transparent shadow-none"ao colocar KPIs no miolo: o miolo já é a superfície.- Use o rodapé só para contexto (data de atualização) e ações de apoio.