GH GambleHub

Modo oscuro y confort visual

1) Por qué el tema oscuro

Confort ocular en poca luz, menos deslumbramiento y «destellos de luz».
Energía: en OLED/AMOLED, las pantallas oscuras gastan menos batería.
Enfoque en los datos: énfasis en el contenido, no en el fondo.
Expectativas del usuario: el indicador del sistema 'prefers-color-scheme' es el estándar de facto.

2) Principios

1. Fondo gris oscuro> negro puro para superficies UI (mejor legibilidad y gradación).
2. Contraste de contenido: no «blanco por negro», sino tonos suaves para textos largos.
3. «Luminosidad» cautelosa: resaltes/acentos silenciados, pero distinguibles.
4. Profundidad ≠ sombra: trabajamos con luz/sombra borrosa, no con contraste agudo.
5. Disponibilidad: WCAG AA (mínimo), enfoque visible y estados comprensibles.
6. Los ajustes del sistema son primarios: conmutación automática y «movimiento reducido».

3) Paleta y tokens (ejemplo)

Tokens JSON:
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)" }
}
Variables 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;
}
}
Recomendaciones:
  • Acentos en modo oscuro en + 8-12% más claro que en modo claro.
  • Use gradaciones de grises (4-5 pasos), evitando el # 000 absoluto para áreas grandes (la excepción es el modo AMOLED).

4) Texto y legibilidad

Texto principal: gris claro '# E6E8EB' en '# 0E1116' (contraste ~ 12:1).
Texto secundario: '# A6AEB8'; pistas - un paso más oscuro/más transparente.
Lectura larga: tonos ligeramente cálidos (reducen el «halo»).
Referencias - acento + subrayado predeterminado; el color ≠ el único portador de significado.

5) Superficies, profundidad y vidrio

Elevations: `base` → `elev1` → `elev2`; cada capa es más clara/más cálida en un 2-4%.
Las sombras son suaves, anchas, con baja opacidad; evitar los trazos «luminosos».
Los paneles trans (blur) son apropiados moderadamente; proporcione el contraste del texto con el sustrato.
Los separadores son bordes semi-finos de '--bd-soft' o «heiras» apenas perceptibles.

6) Estados y enfoque

Hover: + 2-3% más claro que el fondo; Active: −2 -3% (más oscuro).
Focus: anillo claro (por ejemplo, 'outline: 2px solid # 6EA0FF; outline-offset: 2px; '), también se puede ver en los botones de acento.
Disabled: reduzca el contraste suavemente; no descienda por debajo del nivel de lectura del texto.

7) Botones, formularios y tablas

Primario: fondo '--accent', texto '# 0E1116'.
Secondary: fondo '--bg-elev1', border '--bd-strong', texto '--fg-primary'.
Campos de entrada: fondo '--bg-elev1', con enfoque - acento border; placeholder es más tenue, pero leemos.
Tablas: el fondo cebra es apenas perceptible, resaltando la fila en hover es + 2-3% más claro.

8) Ilustraciones, logotipos y fotos

Logotipos y pictogramas - versiones de inversión en oscuro; evite las líneas de luz delgadas en los fondos saturados.
Foto: añadir una máscara oscura (40-60%) para los titulares de contraste en la parte superior.
Iconos: espesor único, contorno + relleno - según el estado, no «venenosos» colores.

9) Fecha-visualización en tema oscuro

Los colores de las filas son de saturación moderada; un mínimo de 5 tonos distinguibles.
Las mallas y ejes son silenciados (alfa 20-30%), las firmas son '--fg-muted'.
Anotaciones/incidentes - brillantes, pero legibles; subrayar con forma/marcador, no sólo con color.
Los datos en blanco son «nieblas» suaves, no campos blancos.

10) Rendimiento y batería

En OLED realmente ahorra negro puro (# 000) - utilizar en el modo AMOLED por la opción del usuario.
Evite las velas/blur grandes sólidas en las GPU débiles.
Respeta 'prefers-reduced-motion': simplifica las animaciones/transiciones.

11) Comportamiento y conmutación

Por defecto, sigue 'prefers-color-scheme'.
Dé al usuario un interruptor explícito (Light/Dark/System), almacene la selección (cookie/localStorage).
Al cambiar un tema, no hay flashes: agregue previamente la clase del tema al renderizado.

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) Accesibilidad (A11y)

Contraste de texto ≥ 4. 5:1 (normal), ≥ 3:1 (grande).
No codifique el estado sólo en color: utilice el icono/patrón/firma.
Estilos de enfoque y navegación por teclado son obligatorios.
VoiceOver/TalkBack: roles, etiquetas, orden tabú.

13) Anti-patrones

Un texto absolutamente blanco sobre un fondo absolutamente negro en grandes superficies es el «parpadeo» y el cansancio.
Los acentos de neón en el oscuro son «ruido de luz».
Sombras de alto contraste («gris sobre negro» con frontera dura).
Texto transparente en la foto sin máscara.
Placeholder en peligro de extinción (alpha demasiado baja).

14) Ejemplos de componentes

Botón

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; }
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) Plan de prueba

Iluminación: habitación oscura/luz del día/noche al aire libre.
Dispositivos: OLED e IPS, móvil/escritorio, diferentes densidades.
A11y: comprobador de contraste, pasaje de teclado, legibilidad placeholder's.
Percepción: prueba ab de «fatiga ocular» y errores de entrada por la noche.
Perfomance: métricas RUM (INP/CLS) después de incluir un tema oscuro; carga GPU (efectos blur/sombra).

16) Métricas de calidad

Contrast Violations/1k elementos (objetivo: → 0).
Complaint Rate en «demasiado oscuro/brillante».
Compleción de sesión nocturna (métricas de comportamiento por sesión 22: 00-06: 00).
INP/CLS p75 en Dark Mode vs Light (no peor que los básicos).
Opt-in Dark Mode y retener a los usuarios que han elegido un tema.

17) Lista de comprobación de inicio

  • Paleta de tema oscuro con 4-5 niveles de superficie
  • El contraste de texto/iconos/límites corresponde a WCAG AA
  • Estilos y estados de enfoque visibles (hover/active/disabled)
  • Logotipos/iconos/fotos adaptadas, máscaras añadidas a la foto
  • Gráficos - rejillas silenciadas, firmas legibles, filas no «venenosas»
  • Interruptor Light/Dark/System, guardar la selección sin «flash»
  • Respetuoso 'prefers-color-scheme' y 'prefers-reduced-motion'
  • RUM/perf dashboard, alertas por regresiones

18) Plan de implementación (3 iteraciones)

Iteración 1 - Fundación (1-2 semanas)

Paleta/tokens, superficies base (base/elev1/elev2), texto/bordes, botones/márgenes/tablas, interruptor de tema.

Iteración 2 - Detalles (3-4 semanas)

Gráficos e ilustraciones en oscuro, máscaras en la foto, enfoque/estado, animaciones con reducción de movimiento, auditoría de perfume.

Iteración 3 - Optimización (continua)

Modo AMOLED como opción, ajuste de contraste fino, pruebas de usabilidad por la noche, comparación RUM Light vs Dark, auditorías regulares de marca/UX.

19) Mini preguntas frecuentes

¿Hacer un fondo negro?
Para IU es mejor el gris oscuro profundo; neto # 000 dejar con la opción «Modo AMOLED».

¿Es necesario aumentar la saturación de acentos?
En el oscuro - por lo general al contrario iluminan ligeramente y reducen la saturación para no «brillar».

¿Qué pasa con las imágenes de las pancartas?
Agregue un sustrato/máscara oscura, compruebe el contraste entre el texto y el logotipo.

El tema oscuro no es la inversión de colores, sino un modo de diseño separado: paleta pensada, niveles de superficie, legibilidad, estados correctos, gráficos y medios adaptados, y respeto a la configuración del sistema. Confía en los tokens, controla el contraste y la perfomance, y Dark Mode se convertirá en una herramienta cómoda, estable y hermosa para los usuarios nocturnos y diurnos.

Contact

Póngase en contacto

Escríbanos ante cualquier duda o necesidad de soporte.¡Siempre estamos listos para ayudarle!

Telegram
@Gamble_GC
Iniciar integración

El Email es obligatorio. Telegram o WhatsApp — opcionales.

Su nombre opcional
Email opcional
Asunto opcional
Mensaje opcional
Telegram opcional
@
Si indica Telegram, también le responderemos allí además del Email.
WhatsApp opcional
Formato: +código de país y número (por ejemplo, +34XXXXXXXXX).

Al hacer clic en el botón, usted acepta el tratamiento de sus datos.