02 · Marca
Sistema de cores
primary.500 é exatamente Brasa (#E75B10) — todas as
demais escalas são funcionais.
As sete cores institucionais resolvem identidade, logotipo e materiais impressos — mas não cobrem o que uma UI precisa: hierarquia de superfícies, estados interativos, feedback de sucesso/erro, modo escuro. Este sistema estende a paleta:
- Escalas 50 → 950 dão profundidade para construir
hierarquia (
bg-neutral-50em fundos,bg-neutral-900em superfícies escuras). - Tokens semânticos nomeiam as cores pelo papel
(
surface.card,text.primary) e mudam de valor conforme o tema ativo. - Dois temas daisyUI —
innova(light) einnova-dark— alternam todos os tokens com um único atributo no<html>.
Uso rápido
Os utilitários mais comuns no dia a dia. Combine com modificadores de
opacidade (/60, /40) para hierarquia tipográfica.
Botão primário
btn btn-primary Texto principal
text-base-content Texto auxiliar
text-base-content/60 Card / superfície
bg-base-100 + border-base-300 Acento de marca
text-primary · bg-primary Badge soft
badge badge-soft badge-primary Escalas
Convenção Tailwind: 50 mais clara, 950 mais
escura. Cada escala é um utilitário direto — bg-primary-500,
text-neutral-700, border-warm-200. Clique em um
tom para copiar o hex.
Neutral
neutral-50 → neutral-950 Texto, superfícies e bordas. Base de toda a UI.
Warm
warm-50 → warm-950 Variante quente para seções editoriais e materiais de marketing.
Primary (laranja)
primary-50 → primary-950 Escala derivada da cor de marca. Use 500 (light) e 400 (dark) como cor primária de UI.
Success
success-50 → success-950 Confirmações, estados positivos.
Warning
warning-50 → warning-950 Avisos, estados de atenção.
Danger
danger-50 → danger-950 Erros, ações destrutivas.
Info
info-50 → info-950 Informativos, dicas, links neutros.
Tokens semânticos
Nomes pelo papel que cumprem na UI. Cada token tem dois valores
(light e dark) e referencia uma posição da escala. Esta é a
camada que você consome no código. Ao trocar o tema (atributo
data-theme), os valores mudam mas o nome permanece.
Superfícies
| Token | Light | Dark | Referência | Uso |
|---|---|---|---|---|
surface.page | #F8F8FA | #0F1014 | neutral.50 / neutral.950 | Fundo principal da página |
surface.card | #FFFFFF | #1A1B22 | white / neutral.900 | Cards, modais, painéis |
surface.elevated | #FFFFFF | #272831 | white / neutral.800 | Popovers, dropdowns, tooltips |
surface.sunken | #F1F1F4 | #15161D | neutral.100 / literal | Inputs, code blocks, áreas rebaixadas |
surface.warm | #FAF8F6 | #211E1A | warm.50 / warm.900 | Seções editoriais, materiais de marketing dentro do app |
Texto
| Token | Light | Dark | Referência | Uso |
|---|---|---|---|---|
text.primary | #0F1014 | #F8F8FA | neutral.950 / neutral.50 | Títulos, conteúdo principal |
text.secondary | #5C5F6A | #898C97 | neutral.500 / neutral.400 | Descrições, labels, metadados |
text.tertiary | #898C97 | #5C5F6A | neutral.400 / neutral.500 | Placeholders, texto auxiliar |
text.disabled | #C2C4CB | #43454F | neutral.300 / neutral.600 | Estados desabilitados |
text.inverse | #FFFFFF | #0F1014 | white / neutral.950 | Texto em superfícies de cor (botões primários, badges escuras) |
Bordas
| Token | Light | Dark | Referência | Uso |
|---|---|---|---|---|
border.subtle | #E0E1E6 | #32343C | neutral.200 / neutral.700 | Divisores leves, bordas de card |
border.default | #C2C4CB | #43454F | neutral.300 / neutral.600 | Inputs, separadores fortes |
border.strong | #898C97 | #5C5F6A | neutral.400 / neutral.500 | Bordas de hover, foco em estados secundários |
Interativos
| Token | Light | Dark | Referência | Uso |
|---|---|---|---|---|
interactive.primary | #E75B10 | #EE8240 | primary.500 / primary.400 | Cor de marca · monograma · ícones · links |
interactive.primary-hover | #C94A0A | #E75B10 | primary.600 / primary.500 | Estado hover de botões e links primários |
interactive.primary-active | #A33A07 | #C94A0A | primary.700 / primary.600 | Estado pressed/active |
interactive.primary-bg | #FCE5D5 | #5E2103 | primary.100 / primary.900 | Fundo de badges, alertas e cards de destaque |
interactive.primary-bg-hover | #F8C9A3 | #7E2D05 | primary.200 / primary.800 | Hover em fundos primary-bg |
interactive.primary-text | #7E2D05 | #F8C9A3 | primary.800 / primary.200 | Texto sobre primary-bg (passa AA com folga) |
Feedback
| Token | Light | Dark | Referência | Uso |
|---|---|---|---|---|
feedback.success | #16A34A | #22C55E | success.600 / success.500 | |
feedback.success-bg | #DCFCE7 | #14532D | success.100 / success.900 | |
feedback.success-text | #14532D | #BBF7D0 | success.900 / success.200 | |
feedback.warning | #CA8A04 | #FACC15 | warning.600 / warning.400 | |
feedback.warning-bg | #FEF9C3 | #713F12 | warning.100 / warning.900 | |
feedback.warning-text | #713F12 | #FEF08A | warning.900 / warning.200 | |
feedback.danger | #DC2626 | #EF4444 | danger.600 / danger.500 | |
feedback.danger-bg | #FEE2E2 | #7F1D1D | danger.100 / danger.900 | |
feedback.danger-text | #7F1D1D | #FECACA | danger.900 / danger.200 | |
feedback.info | #0284C7 | #38BDF8 | info.600 / info.400 | |
feedback.info-bg | #E0F2FE | #0C4A6E | info.100 / info.900 | |
feedback.info-text | #0C4A6E | #BAE6FD | info.900 / info.200 |
Foco
| Token | Light | Dark | Referência | Uso |
|---|---|---|---|---|
focus.ring | #E75B10 | #EE8240 | primary.500 / primary.400 | Outline em foco de teclado |
Overlay
| Token | Light | Dark | Referência | Uso |
|---|---|---|---|---|
overlay.scrim | rgba(15, 16, 20, 0.5) | rgba(0, 0, 0, 0.7) | — | Fundo de modais e drawers |
Temas daisyUI
Dois temas estão definidos em src/styles/global.css. O
atributo data-theme no <html> controla
qual aplica:
-
innova(light, default) — usaprimary.500no acento. -
innova-dark— alterna automaticamente viaprefers-color-scheme: dark; usaprimary.400para preservar contraste em fundos escuros.
Hoje a página força data-theme="innova" — o tema escuro
está definido mas ainda não é alternado. Isso muda quando o controle
de tema for adicionado à navbar.
Acessibilidade
Combinações texto/fundo devem atingir WCAG AA (4.5:1) para texto corrido e 3:1 para títulos grandes. Os pares semânticos já passam AA por construção:
-
text.primarysobresurface.pageousurface.card. -
primary-textsobreprimary-bg(e demais pares de feedback —success-textsobresuccess-bg, etc.). -
Texto branco sobre
interactive.primary(Brasa) — passa AA em tamanhos a partir de 16 px / bold.
Quando precisar de uma combinação fora desses pares, valide em WebAIM Contrast Checker antes de aprovar.