O dark mode deve ser preto puro?
Quase nunca, e vale a pena entender o porquê através de números, e não apenas como uma regra geral. Aqui estão os fundos dark e as superfícies de card de cinco paletas distintas em produção, em HSL:
| Fundo | Card | Matiz neutro | |
|---|---|---|---|
| Industrial quente | 30 8% 10% | 24 7% 14% | Laranja-acastanhado quente |
| Produto neutro | 0 0% 10% | 0 0% 15% | Cinza verdadeiro |
| Azul arquivo | 222 31% 11% | 222 34% 15% | Azul profundo |
| Verde suave | 128 40% 8% | 137 26% 11% | Verde floresta |
| Dashboard Earth | 36 10% 10% | 36 7% 14% | Areia quente |
Três padrões, todos consistentes, nenhum deles acidental.
- Nada está com 0% de luminosidade. O tom mais escuro é 8%. O preto puro é o único valor sem margem abaixo dele — no momento em que você precisa de uma superfície *abaixo* do fundo, não há para onde ir.
- Os cards são mais claros que o fundo, por 3 a 5 pontos. Em interfaces escuras, o que está elevado é mais claro. Isso inverte o instinto do light mode, onde um card costuma ser o elemento mais claro sobre uma página colorida.
- Apenas um dos cinco é cinza puro. Os demais possuem matiz — 30, 222, 128, 36 — geralmente puxados para a cor de destaque. Um neutro escuro com matiz parece planejado; um sem matiz parece um padrão, porque ele é o padrão.
O único caso para o quase-preto
Telas OLED realmente consomem menos energia em #000000, e uma interface de mídia ou fotografia pode querer que a moldura desapareça. Essa é uma troca deliberada em favor de abrir mão de uma escala de elevação, e funciona quando o conteúdo fornece o contraste. Não é um padrão de uso geral, nem é o que a maioria das pessoas quer quando busca o preto.
O modo escuro não é uma inversão
A maneira mais rápida de criar um dark mode ruim é inverter a luminosidade de cada valor do light mode. Quatro coisas específicas quebram, aproximadamente nesta ordem:
- As sombras param de funcionar. Uma sombra é a escuridão projetada sobre uma superfície mais clara. Em uma superfície escura, não resta nada para escurecer, então cada pista de elevação que você tinha desaparece silenciosamente e a interface fica plana.
- O destaque falha no contraste. Uma cor de marca em tom médio saturado que funciona bem no branco costuma ser escura demais contra um fundo quase preto. Inverter os neutros não a afeta, então ela falha de forma sutil, em vez de óbvia.
- As bordas somem ou gritam. Uma borda no light mode é uma linha ligeiramente mais escura. Invertida, ela se torna uma linha ligeiramente mais clara — que ou desaparece contra o card ou brilha contra o fundo, dependendo de onde estiver.
- Estados desativados e silenciados colapsam. No light mode, estes são cinzas mais claros. Invertidos, tornam-se cinzas escuros sobre um fundo escuro, e o "silenciado" vira "invisível".
Uma paleta escura é um segundo design, não um filtro aplicado ao primeiro.
Elevação sem sombra
Como as sombras não estão disponíveis, interfaces escuras expressam profundidade através da luminosidade da superfície. É isso que a diferença entre fundo e card na tabela acima está fazendo: cada nível acima na pilha é um nível acima em luminosidade.
Você precisa de pelo menos três níveis, e vale a pena nomeá-los em vez de improvisar: o fundo da página, uma superfície elevada (cards, painéis) e uma superfície de sobreposição (popovers, dropdowns, diálogos) que fica acima de ambas. Espaçá-los entre 3 a 5 pontos de luminosidade mantém as fronteiras legíveis sem transformar a tela em listras. Abaixo de 3 pontos, os níveis deixam de ser distinguíveis em brilho normal; muito acima de 6, a superfície superior começa a parecer um painel de light mode que alguém inseriu ali.
Superfície vs superfície tonal
Alguns sistemas distinguem uma superfície elevada neutra de uma *tonal*, que mistura um pouco da matiz da marca na elevação. Ambas são legítimas. A versão tonal faz com que toda a interface pareça deliberadamente colorida, em vez de "cinza com um destaque"; a versão neutra preserva o significado da cor para as coisas que precisam dela. Escolha uma e aplique em tudo — misturá-las é o que faz um tema escuro parecer dois temas diferentes.
Cores de destaque precisam mudar
Observe novamente as cores primárias daqueles mesmos cinco kits: 12 71% 46%, 46 85% 60%, 225 63% 80%, 114 47% 50%, 23 92% 60%. Todas são tons claros ou médios. Nenhuma é uma versão profunda e saturada da matiz, porque uma cor profunda e saturada em uma superfície quase preta é difícil de ler e cansativa de olhar.
A regra geral é que um destaque de light mode deve clarear e, geralmente, dessaturar para o dark mode. Clarear garante contraste; dessaturar impede que a cor "vibre" contra o neutro escuro, que é o efeito que torna alguns temas escuros fisicamente cansativos. E o destaque precisa de sua própria decisão de primeiro plano: uma cor brilhante o suficiente para ser lida no escuro costuma ser brilhante o suficiente para exigir texto *escuro* sobre ela, o inverso da combinação do light mode.
Verifique ambas as direções contra uma meta de contraste. O texto do corpo sobre o fundo é o óbvio; os dois que costumam ser esquecidos são o texto silenciado em um card e o primeiro plano do destaque sobre o próprio destaque.
Cinco amostras não são uma paleta
É aqui que a maioria das galerias de paletas te deixa. Uma linha de cinco hexes indica o clima, mas não responde a quase nenhuma das perguntas que uma tela real faz: qual a cor de uma borda em um card, como fica o texto silenciado em uma sobreposição, como é um botão destrutivo quando está desativado, qual a cor do anel em um input com foco.
Token specimen · real values
Ambient Sage
Live renderAmbient Sage's actual tokens — the same values its exports use.
Color tokens
Ambient Sage
Core
background
H 84 · C7, 0, 18, 89
foreground
H 68 · C0, 0, 4, 11
card
H 80 · C5, 0, 16, 85
muted
H 77 · C5, 0, 16, 83
border
H 73 · C4, 0, 16, 78
Brand
primary
H 53 · C0, 8, 68, 0
primary-fg
H 84 · C7, 0, 18, 89
secondary
H 75 · C4, 0, 16, 81
accent
H 52 · C0, 8, 60, 3
ring
H 53 · C0, 8, 68, 0
Semantic
destructive
H 0 · C0, 75, 75, 20
destructive-fg
H 0 · C0, 0, 0, 0
success
H 123 · C45, 0, 43, 27
warning
H 36 · C0, 35, 85, 0
muted-fg
H 0 · C0, 0, 0, 0
Charts
chart-1
H 53 · C0, 8, 68, 0
chart-2
H 207 · C59, 26, 0, 4
chart-3
H 123 · C35, 0, 34, 22
chart-4
H 340 · C0, 41, 27, 4
chart-5
H 36 · C0, 20, 50, 0
A lista de funções é a mesma em ambos os modos, que é o ponto: background, foreground, card, card-foreground, popover, popover-foreground, muted, muted-foreground, primary, primary-foreground, secondary, accent, destructive, border, input, ring, além de séries de gráficos. Defina-os uma vez por modo e cada componente se resolve sem que ninguém precise escolher. Ignore isso e cada nova tela escolherá cores diferentes. A lista completa e a finalidade de cada função estão em explicação sobre design tokens de cores semânticas.
Ambient Sage
Live renderRendered from the kit's actual tokens, fonts, and treatments
Dashboard
Welcome back — here's how Ambient Sage is performing today.
Active users
15.1k
+5%Trending up this month
vs. previous 30 days
MRR
$49.1k
+3%Strong recurring growth
Net of churn
Retention
89%
+2%Engagement above target
Rolling 28-day window
NPS
69
+3Meets growth projections
Survey · n=1,204
Total revenue
Last 12 months
$49.1k+18.2%
Recent sales
You closed 265 deals this month.
Alex Rivera
alex@ambientsage.com
Mira Okonkwo
mira@ambientsage.com
Jonas Feld
jonas@ambientsage.com
Sana Qureshi
sana@ambientsage.com
Theo Lindgren
theo@ambientsage.com
Recent transactions
View all| Customer | Status | Date | Amount |
|---|---|---|---|
AR Alex Rivera Founder & CEO | Paid | 2m ago | $1,999.00 |
MO Mira Okonkwo Head of Product | Pending | 1h ago | $39.00 |
JF Jonas Feld Design Lead | Processing | 3h ago | $299.00 |
SQ Sana Qureshi Engineering Lead | Paid | Yesterday | $99.00 |
TL Theo Lindgren Brand Director | Refunded | 2d ago | $2,400.00 |
Typography
Plus Jakarta Sans
Color system
28 semantic roles, light + dark
Agent outputs
DESIGN.md, CSS, Tailwind, shadcn
Quatro paletas escuras completas e o que as diferencia
Tudo acima é uma regra. Estes são quatro conjuntos escuros que a seguem, escolhidos porque resolvem o mesmo problema de maneiras visivelmente diferentes. Leia o par background e card em cada um: esse intervalo é o modelo de elevação, e é a decisão que mais determina se uma UI escura parece planejada ou apenas invertida.
Token specimen · real values
Files Archival
Live renderFiles Archival's actual tokens — the same values its exports use.
Color tokens
Files Archival
Core
background
H 0 · C0, 0, 0, 90
foreground
H 26 · C0, 2, 3, 2
card
H 0 · C0, 0, 0, 86
muted
H 0 · C0, 0, 0, 84
border
H 0 · C0, 0, 0, 80
Brand
primary
H 225 · C67, 50, 0, 12
primary-fg
H 0 · C0, 0, 0, 0
secondary
H 350 · C0, 30, 25, 76
accent
H 47 · C0, 11, 50, 4
ring
H 225 · C67, 50, 0, 12
Semantic
destructive
H 5 · C0, 73, 79, 21
destructive-fg
H 0 · C0, 0, 0, 0
success
H 146 · C63, 0, 35, 52
warning
H 39 · C0, 31, 88, 17
muted-fg
H 20 · C0, 8, 12, 40
Charts
chart-1
H 225 · C67, 50, 0, 12
chart-2
H 351 · C0, 32, 27, 11
chart-3
H 47 · C0, 11, 50, 4
chart-4
H 6 · C0, 64, 71, 12
chart-5
H 15 · C0, 10, 13, 18
Token specimen · real values
The Social Club
Live renderThe Social Club's actual tokens — the same values its exports use.
Color tokens
The Social Club
Core
background
H 52 · C0, 4, 33, 82
foreground
H 45 · C0, 2, 7, 4
card
H 54 · C0, 3, 32, 76
muted
H 54 · C0, 3, 32, 76
border
H 65 · C2, 0, 28, 69
Brand
primary
H 61 · C1, 0, 66, 15
primary-fg
H 55 · C0, 8, 100, 90
secondary
H 52 · C0, 4, 32, 55
accent
H 61 · C1, 0, 66, 15
ring
H 61 · C1, 0, 66, 15
Semantic
destructive
H 9 · C0, 62, 72, 39
destructive-fg
H 0 · C0, 0, 0, 0
success
H 119 · C60, 0, 61, 56
warning
H 35 · C0, 38, 89, 23
muted-fg
H 52 · C0, 2, 11, 23
Charts
chart-1
H 61 · C1, 0, 66, 15
chart-2
H 9 · C0, 62, 72, 39
chart-3
H 185 · C33, 3, 0, 61
chart-4
H 119 · C60, 0, 61, 56
chart-5
H 24 · C0, 38, 63, 42
Como ler quatro paletas rapidamente
Ignore o destaque primeiro; é a parte que você lembrará e a que menos importa estruturalmente. Compare background com card para ver o modelo de elevação, depois muted-foreground com card para ver se o texto secundário sobrevive em uma superfície elevada. Essas duas comparações preveem a maior parte do comportamento da paleta em uma tela real.
Por que isso se tornou urgente
As interfaces são cada vez mais construídas por agentes de código a partir de briefings escritos, e o dark mode é a lacuna mais comum nesses documentos. Analisamos 299 arquivos DESIGN.md públicos — o arquivo que um agente de código lê antes de escrever a UI — e medimos a cobertura de cada um.
| Proporção de arquivos | |
|---|---|
| Sem dark mode | 69% |
| Sem funções de cores semânticas — apenas hexadecimais puros | 86% |
| Sem proibições, apenas preferências | 76% |
A consequência é previsível. Quando solicitado a criar uma variante dark sem diretrizes escritas, o agente inverte os tons de cinza — exatamente a ação que quebra os quatro pontos listados anteriormente. Ele produz algo plausível na primeira tela e inconsistente na quinta; e como cada tela individual parece correta, ninguém percebe o erro até que todo o app esteja pronto.
Um check de dez minutos
- 1
Empilhe três superfícies
Coloque um overlay sobre um card sobre o fundo, com uma borda de um pixel em cada. Se qualquer limite desaparecer, seus degraus de luminosidade estão muito próximos ou sua função de borda está acumulando tarefas demais.
- 2
Renderize texto muted em todas as superfícies
Não apenas no fundo. O 'muted-on-card' é onde as paletas invertidas geralmente falham, e é o estado de texto mais comum em interfaces densas.
- 3
Crie uma confirmação destrutiva
Isso testa a cor destrutiva, seu foreground, seu hover e sua borda simultaneamente — o grupo de funções que as pessoas definem por último e usam primeiro.
- 4
Foque em algo
Use o Tab para navegar até um input. O anel de foco é uma cor que ninguém escolhe deliberadamente; então, ou é a sua cor de destaque fazendo um trabalho para o qual não serve, ou é um padrão do navegador que ninguém escolheu.
- 5
Analise uma tabela densa
Três tons de cinza lado a lado é o maior desafio de uma paleta dark. Uma paleta que sobrevive a uma tabela de configurações sobrevive facilmente a uma página de marketing; o inverso não é verdadeiro.
Erros comuns
- Começar com preto puro. Isso elimina o nível abaixo do seu fundo antes mesmo de você descobrir que precisa de um.
- Reutilizar a cor de destaque do light mode sem alterações. Geralmente, ela precisa de mais luminosidade, frequentemente de menos saturação e pode exigir texto escuro sobre ela.
- Manter sombras e adicionar degraus de luminosidade. Escolha uma única linguagem de elevação. Usar ambas faz com que superfícies elevadas pareçam borradas.
- Definir apenas o que a primeira tela exigia. As funções que você ignora são aquelas que a próxima tela irá inventar, e ela as inventará de forma diferente.
- Testar em uma página de marketing. Seções hero favorecem qualquer paleta. Teste na tela mais densa que você tiver.
Explore paletas dark completas, não apenas linhas de amostras
Cada kit aqui define todas as suas funções de cores em light e dark, além de tipografia, raios e movimento — instaláveis como um único item de registro do shadcn. Kits gratuitos não exigem conta.
FAQ
Devo usar preto puro no dark mode?
Geralmente não. Em cinco paletas implementadas, o fundo mais escuro tem 8% de luminosidade HSL e nenhuma tem 0%. O preto puro não deixa superfície abaixo do fundo, então você perde a capacidade de mostrar elementos recuados. A exceção é um contexto de economia de energia em telas OLED ou de visualização de mídia, onde a moldura deve desaparecer.
O dark mode é apenas a inversão da paleta clara?
Não. Quatro coisas param de funcionar: as sombras deixam de fazer sentido porque não há nada mais escuro para escurecer, a cor de destaque geralmente falha no contraste, as bordas ou desaparecem ou brilham dependendo da superfície onde estão, e os estados desativados ou suavizados tornam-se invisíveis. Uma paleta escura é um segundo design, não um filtro.
Como mostrar elevação no dark mode sem usar sombras?
Através da luminosidade da superfície. Defina pelo menos três níveis — fundo, superfície elevada e overlay — espaçados por aproximadamente 3 a 5 pontos de luminosidade HSL. Abaixo de 3 pontos, os níveis deixam de ser distinguíveis; muito acima de 6, a superfície superior começa a parecer um painel de light mode.
Qual a diferença entre uma superfície neutra e uma superfície tonal?
Uma superfície neutra aumenta apenas a luminosidade; uma superfície tonal também mistura parte da matiz da marca conforme a luminosidade sobe. O estilo tonal faz com que toda a interface pareça deliberadamente colorida; o neutro mantém o significado das cores disponível para elementos que realmente precisam delas. Ambos funcionam — mas misturá-los em um único tema não.
As cores da minha marca funcionam no dark mode?
Geralmente não sem alterações. Um tom médio saturado que funciona bem no branco tende a ser escuro e vibrante demais contra uma superfície quase preta. Aumente a luminosidade para garantir o contraste, dessature levemente para evitar a vibração visual e verifique se agora é necessário texto escuro em vez de claro sobre a cor.
De quantas cores uma paleta escura precisa?
Cerca de 28 funções nomeadas, e não apenas cinco amostras: background e foreground, card, popover, muted, primary, secondary, accent, destructive e seus respectivos foregrounds, além de border, input, ring e séries de gráficos. Qualquer coisa que você deixe indefinida será inventada a cada tela, de forma diferente a cada vez.