Regras · decisões verificáveis

Diretrizes

Use estas regras para decidir o que pertence ao núcleo, o que pode variar e como comprovar conformidade.

1. Contrato antes de extensão

normativo

Toda decisão precisa declarar sua camada. A ausência de escopo é defeito; a criação de uma identidade paralela é violação.

Core

Contrato de família

Decisão visual, comportamental ou estrutural obrigatória para todos os produtos.

Extension

Extensão governada

Capacidade de domínio que usa o core, possui API pública e entra no catálogo central.

Exception

Desvio temporário

Impedimento real de migração, com dono, prazo, impacto e plano de remoção.

Deprecated

Saída controlada

Contrato substituído, com alternativa, prazo e impacto de migração documentados.

Regra de extensão: uma necessidade de domínio pode ampliar o Baluarte, mas nunca redefinir a identidade compartilhada ou criar um fork privado.

2. Lei do Alinhamento Vertical

obrigatória

Em controles de uma linha, o Flexbox centraliza caixas, não a massa visual das letras. A solução sistêmica é alterar a caixa tipográfica do label sem mover o ícone.

  1. Ícone e label são elementos separados.
  2. O container usa display: inline-flex, align-items: center e gap por token.
  3. O ícone não recebe translate, top ou margem vertical para compensar texto.
  4. O label usa display: block, line-height: 1, white-space: nowrap e overflow: visible.
  5. text-box entra somente no label e dentro de @supports.
<button class="control" type="button">
  <span class="control__icon" aria-hidden="true">…</span>
  <span class="control__label">Configuração</span>
</button>

.control { display: inline-flex; align-items: center; gap: var(--b-space-4); }
.control__icon { flex: 0 0 auto; }
.control__label { display: block; line-height: 1; white-space: nowrap; overflow: visible; }

@supports (text-box: trim-both cap alphabetic) {
  .control__label { text-box: trim-both cap alphabetic; }
}
FaçaValide após document.fonts.ready, com acentos, descendentes, zoom e a fonte real.
Não façaNão aplique offsets mágicos nem esconda overflow do label.

3. Tokens e identidade de família

normativo
  1. Todos os produtos usam a mesma tipografia, papéis semânticos, iconografia, shape, densidade e motion.
  2. Cor, tamanho, raio, sombra e duração usam tokens do Baluarte.
  3. Vermelho pertence a perigo, erro e destruição — não à identidade institucional.
  4. Ação, accent e status não recebem override por produto; foco consome o mesmo --accent.
  5. Necessidades de domínio viram extensões governadas no catálogo central.
  6. Todo par texto/fundo novo é validado nos temas claro e escuro.
/* Correto: o produto consome a família. */
.product-view {
  color: var(--text);
  background: var(--bg);
  border-color: var(--border);
}

/* Incorreto: tema visual local. */
[data-product="produto"] {
  --action: <cor-local>;
  --accent: <cor-local>;
}
Teste da família: esconda nome e logo. Tipografia, composição, componentes, motion, foco e conteúdo ainda precisam denunciar a mesma origem.

4. O portal segue o próprio contrato

dogfooding

As regras universais do guia de desenvolvimento também valem para este portal, adaptadas à sua stack estática.

HTML

  • Botões com type explícito.
  • Sem eventos inline.
  • Skip link e nomes acessíveis.
  • Sem estilo estático inline.

CSS

  • Cor direta apenas em arquivos de tokens autorizados.
  • Estilos de portal separados da biblioteca.
  • O próprio menu lateral consome .b-nav-frame 260/48px e .b-nav-section para seus 40 grupos colapsáveis.
  • Comentários PT-BR, curtos e de uma linha.
  • Motion reduzível e foco visível.

JavaScript

  • Browser-safe, sem dependência Node.
  • LocalStorage protegido por funções seguras.
  • Estilo runtime apenas para mecânica dinâmica.
  • Fallback funcional para file://.
Regras específicas de framework, domínio, dados ou deploy permanecem nos projetos que as executam. O portal incorpora apenas o que é universal e verificável para a sua stack.

5. Governança

fonte da verdade
  • Nenhum produto pode redefinir tokens, componentes ou padrões identitários do core.
  • Extensões de domínio nascem no repositório central, com API, documentação e critérios de uso.
  • Exceção possui dono, prazo, impacto e critério de remoção.
  • Referência externa é decomposta antes de ser adaptada.
  • Mudança de token ou componente exige motivo, risco, contraste, regressão e nota de versão.
  • O audit script precisa passar antes de uma entrega ser chamada de consistente.

Changelog

VersãoDataMudanças
1.5.0jul/2026Contrato de família explícito; remoção de temas e slots visuais por produto; perfis de adoção sem CSS local; extensões governadas; teste de reconhecimento e auditoria contra fragmentação.
1.3.0jul/2026Separação inicial entre núcleo, padrões, adoção, inspirações e conformidade.
1.2.0jul/2026Identidade institucional neutra e shell unificado nas quatro páginas originais.