GH GambleHub

Dark Modo e conforto visual

1) Por que um tema escuro

Conforto ocular em baixa iluminação, menos blitzes e «flash de luz».
Energia: Com OLED/AMOLED, as telas escuras gastam menos bateria.
Foco de dados: foco em conteúdo, não em fundo.
A expectativa do usuário é de um padrão de facto.

2) Princípios

1. Fundo cinza escuro> preto puro para superfícies UI (melhor leitura e gradação).
2. O contraste de conteúdo não é «branco em preto», mas tons suaves para textos longos.
3. «Luminosidade» cuidadosa: realce/sotaque suave, mas diferente.
4. Profundidade ≠ sombra: Operamos com uma sombra clara/esverdeada, em vez de um contraste acentuado.
5. Disponibilidade: WCAG AA (mínimo), foco visível e estados compreensíveis.
6. As configurações de sistema são primárias: câmbio automático e movimento reduzido.

3) Painel e tokens (exemplo)

JSON-tokens:
json
{
"mode": "dark",
"color": {
"bg": { "base": "#0E1116", "elev1": "#141821", "elev2": "#1A1F2B", "subtle": "#0B0E13" },
"fg": { "primary": "#E6E8EB", "muted": "#A6AEB8", "inverse": "#11131A" },
"accent": { "primary": "#6EA0FF", "warning": "#FFB547", "critical": "#FF6A6A", "success": "#66D19E" },
"border": { "soft": "#2A2F37", "strong": "#3A4150" },
"chart": { "a": "#6EA0FF", "b": "#66D19E", "c": "#FFB547", "d": "#C58CFF", "e": "#7DD3FC" }
},
"radius": { "sm": 8, "md": 12, "lg": 16 },
"shadow": { "sm": "0 1px 2px rgba(0,0,0,.35)", "md": "0 6px 18px rgba(0,0,0,.45)" }
}
Variáveis CSS (simplificado):
css
@media (prefers-color-scheme: dark) {
:root {
--bg-base:#0E1116; --bg-elev1:#141821; --bg-elev2:#1A1F2B;
--fg-primary:#E6E8EB; --fg-muted:#A6AEB8;
--accent:#6EA0FF; --warning:#FFB547; --critical:#FF6A6A; --success:#66D19E;
--bd-soft:#2A2F37; --bd-strong:#3A4150;
}
}
Recomendações:
  • O sotaque no modo escuro é + 8% a 12% mais claro do que no modo claro.
  • Use escala de cinza (4-5 passos) para evitar o # 000 absoluto para grandes áreas (a exceção é o modo AMOLED).

4) Texto e leitura

O texto principal é cinza claro '# E6E8EB' em '# 0E1116'.
Texto secundário: '# A6AEB8'; dicas - um passo mais escuro/transparente.
Leitura longa: tons ligeiramente quentes (reduzindo «galo»).
Links - ênfase + sublinhar padrão; a cor ≠ o único hospedeiro de sentido.

5) Superfícies, profundidade e vidro

Elevations: `base` → `elev1` → `elev2`; cada camada está 2-4% mais clara/quente.
Sombras - suaves, largas, com pouca opacidade; evitar traços «luminosos».
Os painéis de transmissão (blur) são apropriados moderadamente; forneça um contraste de texto com o suprimento.
Os separadores são limites "-bd-soft' ou" hares "pouco visíveis.

6) Estados e foco

Hover: + 2-3% fundo mais claro; Ativo: - 2-3% (mais escuro).
Focus: anel claro (por exemplo, 'outline: 2px solid # 6EA0FF; outline-offset: 2px; '), visível também nos botões de ênfase.
Disabled: reduza o contraste com cuidado; não fique abaixo do nível de leitura do texto.

7) Botões, formulários e tabelas

Primary: fundo '--accent', texto '# 0E1116'.
Segundary: fundo '--bg-elev1', border '--bd-strong', texto '-fg-primary'.
Campos de entrada: fundo '-bg-elev1', com foco em border acentuado; o placeholder é mais tenso, mas lemos.
Tabelas: fundo de zebra mal visível, a seleção da linha é hover - + 2-3% mais clara.

8) Ilustrações, logos e fotos

Logótipos e ícones - versões inversas no escuro; evite linhas de luz finas em fundos saturados.
Foto: Adicione uma máscara escura (40-60%) para cabeçalhos contrastantes acima.
Ícones: espessura unificada, contorno + preenchimento - não são cores «venenosas».

9) Data-visualização em temas escuros

Cores de fila - saturação moderada; pelo menos 5 tons diferentes.
As malhas e eixos são abafados (alfa 20-30%) e as assinaturas são '-fg-muted'.
Anotações/incidentes - brilhantes, mas legíveis; sublinhar com o formulário/marcador, não apenas com a cor.
Dados em branco/liga - «nevoeiro» suaves, não campos brancos.

10) Desempenho e bateria

O OLED realmente economiza preto puro (# 000) - use a opção do usuário no modo AMOLED.
Evite velas grandes sólidas/blur em GPU fracos.
Respeite 'preferers-reduced-motion': simplifique a animação/transição.

11) Comportamento e mudança

O padrão é seguir 'preferers-cor-scheme'.
Dê um botão explícito ao usuário (Light/Dark/System) e guarde a seleção (cookie/localStorage).
Ao mudar de assunto - sem flash: adição prévia da classe de tema ao render.

Snippet:
html
<script>
const saved = localStorage. getItem('theme');
const sysDark = window. matchMedia?.('(prefers-color-scheme: dark)'). matches;
document. documentElement. dataset. theme = saved?? (sysDark? 'dark': 'light');
</script>

12) Disponibilidade (A11y)

Contraste de texto ≥ 4. 5:1 (normal), ≥ 3:1 (grande).
Não codifique o estado apenas em cores: use ícone/pattern/assinatura.
Os estilos de foco e navegação por teclado são obrigatórios.
Papéis, editoras, tabas.

13) Anti-pattern

Um texto totalmente branco em um fundo totalmente negro em grandes praças é «cheio» e fadiga.
Sotaques de neon no escuro - «ruído de luz».
Sombras de alto contraste («cinza em preto» com limite rígido).
Texto transparente na foto sem máscara.
Placeholder em extinção (alfa baixo demais).

14) Exemplos de componentes

Botão

css
.button {
background: var(--accent); color: var(--bg-base);
border-radius: 12px; padding: 10px 16px;
box-shadow: 0 1px 2px rgba(0,0,0,.35);
}
.button:hover { filter: brightness(1. 06); }
.button:active { filter: brightness(.94); }
.button:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

Cartão

css
.card {
background: var(--bg-elev1); border: 1px solid var(--bd-soft); border-radius: 12px;
box-shadow: 0 6px 18px rgba(0,0,0,.45);
}

15) Plano de teste

Iluminação: sala escura/luz do dia/noite de rua.
Definições OLED e IPS, móvel/descompasso, densidades diferentes.
A11y: cheque de contraste, passagem de teclado, lisura placeholder 'ov.
Percepção: teste de fadiga ocular ab e erros de digitação à noite.
Perfomance: métricas RUM (INP/CLS) após a inclusão do tema escuro; carga de GPU (efeitos blur/sombra).

16) Métricas de qualidade

Contrast Violations/1k elementos (alvo: → 0).
Complaint Rate em «escuro e brilhante demais».
Night Sessions Complition (métricas comportamentais das sessões 22: 00-06: 00).
INP/CLS p75 em Dark Modo vs Light (igual ao básico).
Opt-in Dark Modo e retenção dos usuários que selecionaram o tema.

17) Folha de cheque de lançamento

  • Painel de tópico escuro com 4 a 5 níveis de superfícies
  • O contraste texto/ícone/limite corresponde ao WCAG AA
  • Estilos de foco e estados visíveis (hover/ativo/disabled)
  • Logos/ícones/foto adaptados, máscaras adicionadas à foto
  • Gráficos - grades abafadas, assinaturas de leitura, filas não venenosas
  • Botão Light/Dark/System, salvar a seleção sem «flash»
  • Respeitar 'preferers-cores-scheme' e 'preferers-reduced-motion'
  • RUM/perf-dashboard, alertas de regressão

18) Plano de implementação (3 iterações)

Iteração 1 - Fundações (1-2 semanas)

Painel/tokens, superfícies básicas (base/elev1/elev2), texto/borda, botões/campos/tabela, botões de assunto.

Iteração 2 - Detalhamento (3-4 semanas)

Gráficos e ilustrações no escuro, máscaras na foto, foco/estado, animações considerando reduced-motion, auditoria de perf.

Iteração 3 - Otimização (contínua)

Modo AMOLED como opção, configuração fina de contrastes, testes de usability à noite, comparação RUM Light vs Dark, roteiros regulares/OX.

19) Mini-FAQ

Fazer um fundo preto?
Para a UI é melhor o cinza escuro profundo; # 000 limpo deixar a opção «modo AMOLED».

É preciso aumentar a intensidade do sotaque?
No escuro, geralmente, o contrário é ligeiramente iluminado e diminui a saturação para não «brilhar».

Como estar com as imagens dos banners?
Adicione um suprimento escuro/máscara, verifique o contraste entre o texto e o logotipo.

Resultado

Um tema escuro não é uma inversão de cores, mas um modo de design separado, como painel elaborado, níveis de superfícies, leitura, estados corretos, gráficos e mídia adaptados, e respeito às configurações do sistema. Baseie-se em tokens, controle de contraste e perfomance - e Dark Modo será uma ferramenta confortável, estável e bonita para usuários noturnos e diurnos.

Contact

Entrar em contacto

Contacte-nos para qualquer questão ou necessidade de apoio.Estamos sempre prontos para ajudar!

Telegram
@Gamble_GC
Iniciar integração

O Email é obrigatório. Telegram ou WhatsApp — opcionais.

O seu nome opcional
Email opcional
Assunto opcional
Mensagem opcional
Telegram opcional
@
Se indicar Telegram — responderemos também por lá.
WhatsApp opcional
Formato: +indicativo e número (ex.: +351XXXXXXXXX).

Ao clicar, concorda com o tratamento dos seus dados.