Fundamentos
Cores semânticas, tipografia, espaçamento e ícones.
Componentes vivos, exemplos genéricos e contratos de uso. Explore, interaja e confira o padrão antes de levá-lo para qualquer sistema.
Edite a biblioteca, valide os exemplos e adote a versão no consumidor. Cores, espaçamentos e componentes evoluem juntos, sem interromper o aplicativo em operação.
Cores semânticas, tipografia, espaçamento e ícones.
Ações, campos, listas e diálogos com exemplos interativos.
Estados previsíveis e testes para manter o comportamento.
Use tokens por intenção. Sucesso, atenção e erro sempre combinam cor, ícone e texto.
--su-brand#123b68--su-brand-strong#0f3155--su-flow-node#12bfe5--su-brand-green#2fae80--su-action#064a6b--su-action-hover#023b56--su-link#0f5c99--su-text#102b4a--su-muted#5c718b--su-canvas#eef7fc--su-surface#fff--su-border#c9dae8--su-neutral-surface#edf1f5--su-neutral-text#445264--su-info-surface#e6f1fb--su-info-ink#123b68--su-info-border#9bbddc--su-success-surface#e4f3ec--su-success#155c39--su-success-border#83bca0--su-warning-surface#fff1c7--su-warning#5f4b14--su-warning-border#e0bb55--su-danger-surface#f9eaea--su-danger#8c1f28--su-danger-border#d7a0a0Título de página
Título de seção
Texto de leitura · 14px / 1,5
Texto auxiliar · 12px. Fonte de sistema, sem download externo.--su-space-1 · 4px--su-space-2 · 8px--su-space-3 · 12px--su-space-4 · 16px--su-space-5 · 20px--su-space-6 · 24px--su-space-8 · 32px--su-space-10 · 40px--su-space-12 · 48px--su-space-16 · 64px.meu-painel {
color: var(--su-text);
background: var(--su-surface);
padding: var(--su-space-6);
border-radius: var(--su-radius-surface);
}Uma ação principal por contexto; rótulos descrevem o resultado.
Foco por teclado, hover e desabilitado são estados do mesmo componente.
Aguardando ação.
<button class="primary" type="button">Salvar</button> Botão só de ícone: fornecer aria-label. Desabilitado: usar disabled, não apenas uma cor diferente. Dados não confiáveis: usar textContent, nunca innerHTML.
Rótulos persistentes, ajuda contextual e erro próximo ao campo. Envie vazio para testar a validação.
1. Rótulo associado ao campo. 2. aria-invalid="true" e aria-describedby no erro. 3. Foco no primeiro campo inválido; preservar os valores. 4. Sucesso em role="status". Regra de negócio pertence ao consumidor.
Filtre com Enter, ordene pelo título da coluna, altere a página e exporte a seleção em CSV.
| Código | Categoria | Situação |
|---|
Foco contido no modal, Escape para cancelar e retorno ao botão de origem.
Escolha um exemplo.
const resultado = await AgilizaFiscoUI.dialogs.confirm({
title: "Salvar alteração", question: "Deseja continuar?",
explanation: "Texto com o efeito da ação.",
confirmLabel: "Salvar", tertiaryLabel: "Revisar"
});
// true = confirmado; false = cancelado; "tertiary" = alternativa.
// Incluir shared/confirmation_modal.html uma vez por página.Diferencie informação, alerta e erro. Carregamento não significa lista vazia.
A busca não encontrou registros. Revise os filtros.
Voltar à listaSprite local compartilhado. Ícones decorativos ficam ocultos de leitores de tela; a ação recebe um rótulo acessível.
<span data-su-icon="check" aria-hidden="true"></span> // icons.js monta o SVG automaticamente, inclusive em novos elementos.
A biblioteca é dona da aparência e dos contratos de interação; o aplicativo é dono dos dados e das operações.
Cores, espaçamentos, controles, ícones, navegação, listas e modais. Não copiar estilos para cada tela.
Regras fiscais, chamadas de API, autorização, dados e persistência. O laboratório usa fixtures e reinicia ao recarregar.