Ir al contenido

Modo oscuro

Cobalt soporta tema oscuro nativo. Toda la capa semántica (--co-semantic-*) cambia automáticamente cuando el documento tiene [data-theme="dark"].

@import '@prolibu-suite/cobalt-tokens/css'; /* modo claro (root) */
@import '@prolibu-suite/cobalt-tokens/css/dark'; /* overrides scoped a [data-theme="dark"] */

Luego en tu app, cambia el atributo del <html>:

document.documentElement.setAttribute('data-theme', 'dark');
const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches;
document.documentElement.setAttribute('data-theme', prefersDark ? 'dark' : 'light');
CapaCambia en darkNotas
Base (--co-color-azul-700, etc.)Son constantes
Primary (--co-color-primary-azul)Son alias estables
Status (--co-color-status-success)Mismo color en ambos modos
Semantic (--co-semantic-*)Es la capa que define la apariencia

Por eso la regla práctica: en componentes y app, consume siempre --co-semantic-* para que el tema oscuro funcione gratis.