Adaptação ao Modo Escuro (Dark Mode)
Esta skill adapta o CSS de customizações Fluig ao dark mode usando variáveis de tema; ela não duplica os tokens de cor nem a tabela de mapeamento de cores (uso comum → var(--fs-color-*) e hexadecimal → var(--fs-color-*)) — o arquivo de context/ é a fonte de verdade, referenciada abaixo.
Objetivo
Adaptar, com responsabilidade única, o CSS de uma customização ao modo escuro, substituindo cores fixas (hexadecimais, rgb(), nomes de cor) por variáveis CSS de tema no formato var(--fs-color-*), para que o componente acompanhe a troca de tema (claro/escuro) automaticamente, sem alterar o comportamento nem o layout.
Quando Usar
- Quando um widget/Custom Element usa hexadecimais fixos (
#fff, #202020) para cores de tema.
- Quando o componente não acompanha a troca de tema e fica ilegível no modo escuro.
- Antes de publicar uma customização que precisa dar suporte a dark mode.
- Ao revisar CSS próprio e detectar cores que deveriam vir do tema (texto, fundo, borda, sombra).
Entradas Esperadas
| Entrada |
Descrição |
Obrigatória |
| Código/CSS alvo |
Trecho ou arquivo CSS com cores a adaptar ao tema |
sim |
| Contexto do componente |
Tipo/função do elemento (cabeçalho, card, botão, texto) para escolher a família de token adequada |
não |
| Tokens já em uso |
Variáveis var(--fs-color-*) já adotadas no componente, a manter consistentes |
não |
Contexto de Referência (Fonte de Verdade)
Leia antes de executar — não reproduza o conteúdo aqui:
- style-guide.md — seção Theming e dark mode (variáveis CSS): regra obrigatória de usar
var(--fs-color-*), proibição de hexadecimais fixos e de variáveis SCSS para cores de tema, tabelas completas de todas as famílias de tokens (marca, ação, neutros, feedback com tons lightest→darkest, sombras --fs-shadow-*) e a tabela de mapeamento de cores (uso comum → var(--fs-color-*) e hexadecimal → var(--fs-color-*)) usada para converter cores fixas.
- Referência completa das variáveis CSS:
references/helpers-and-variables-css/css-variables.md.
Regras Aplicáveis (Resumo Executivo)
Somente o mínimo para orientar a tarefa; o detalhe e o catálogo de tokens estão no contexto:
- Para qualquer cor de tema, usar variáveis CSS no formato
var(--fs-color-*) → ver style-guide.md.
- ⚠️ Proibido inventar variáveis CSS. Usar somente as variáveis documentadas em
references/helpers-and-variables-css/css-variables.md. Se uma variável não estiver nessa referência, ela não existe no Style Guide — nesse caso, use um valor CSS convencional ou CSS próprio escopado.
- Hexadecimais fixos e variáveis SCSS (
$...) para cores de tema são proibidos — não acompanham a troca de tema e quebram o dark mode → ver style-guide.md.
- Ao converter cores fixas, consultar a tabela de mapeamento de cores (uso comum → variável e hexadecimal → variável) que vive em
style-guide.md → ver style-guide.md.
- Escolher a família de token conforme o papel da cor: marca (
--fs-color-brand-*), ação (--fs-color-action-*), neutros (--fs-color-neutral-*), feedback (--fs-color-positive/negative/warning/info-*) → ver style-guide.md.
- Usar tokens de sombra (
--fs-shadow-*) e tipografia (--fs-font-*) em vez de valores fixos, quando aplicável → ver style-guide.md.
- Reutilizar componentes/classes do Style Guide já adaptados ao tema, em vez de recriar estilos → ver
style-guide.md.
- Preservar o layout e o comportamento: trocar apenas a origem da cor, não a estrutura.
Procedimento
- Ler o CSS alvo e listar todas as cores fixas usadas (hexadecimais,
rgb(), nomes de cor) e sombras com valores fixos.
- Classificar cada cor pelo seu papel (texto, fundo, borda, ação, feedback) para escolher a família de token correta.
- Substituir cada cor fixa pela variável
var(--fs-color-*) correspondente, consultando a tabela de mapeamento de cores (uso comum → variável e hexadecimal → variável) em style-guide.md.
- Trocar sombras fixas por tokens
--fs-shadow-* e, quando houver, fonte/cor de texto por tokens --fs-font-*.
- Verificar que nenhum hexadecimal fixo de cor de tema permaneceu e que o layout não mudou.
- Conferir o resultado com o checklist abaixo antes de entregar.
Saída Esperada
CSS adaptado ao dark mode, com todas as cores de tema expressas como var(--fs-color-*) (e sombras/tipografia via tokens quando aplicável), sem hexadecimais fixos de tema, com layout e comportamento preservados e adaptação automática à troca de tema. Em conformidade com context/style-guide.md.
Exemplo de Uso
Antes (cores fixas — não acompanham o tema, quebram no dark mode):
/* ❌ hexadecimal fixo: ilegível ao trocar para o modo escuro */
.my-widget__header {
color: #202020;
background-color: #ffffff;
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);
}
Depois (variáveis de tema — adaptam-se automaticamente):
/* ✅ usa var(--fs-color-*) e token de sombra: adapta a dark mode sem código extra */
.my-widget__header {
color: var(--fs-color-neutral-dark-90);
background-color: var(--fs-color-neutral-light-00);
box-shadow: var(--fs-shadow-sm);
}
Checklist de Validação
1---2name: fluig-dark-mode3description: Adapta CSS de customizações Fluig ao modo escuro (dark mode) substituindo cores fixas por variáveis CSS de tema no formato var(--fs-color-*), garantindo que o componente acompanhe a troca de tema automaticamente sem código adicional. Use quando o desenvolvedor pedir para dar suporte a dark mode, adaptar estilos ao tema ativo ou remover hexadecimais fixos de cores de um trecho/arquivo CSS.4---56# Adaptação ao Modo Escuro (Dark Mode)78Esta skill adapta o CSS de customizações Fluig ao dark mode usando variáveis de tema; ela **não duplica** os tokens de cor nem a **tabela de mapeamento de cores** (uso comum → `var(--fs-color-*)` e hexadecimal → `var(--fs-color-*)`) — o arquivo de `context/` é a fonte de verdade, referenciada abaixo.910## Objetivo1112Adaptar, com responsabilidade única, o **CSS de uma customização ao modo escuro**, substituindo cores fixas (hexadecimais, `rgb()`, nomes de cor) por **variáveis CSS de tema no formato `var(--fs-color-*)`**, para que o componente acompanhe a troca de tema (claro/escuro) automaticamente, sem alterar o comportamento nem o layout.1314## Quando Usar1516- Quando um widget/Custom Element usa **hexadecimais fixos** (`#fff`, `#202020`) para cores de tema.17- Quando o componente **não acompanha** a troca de tema e fica ilegível no modo escuro.18- Antes de publicar uma customização que precisa **dar suporte a dark mode**.19- Ao revisar CSS próprio e detectar cores que deveriam vir do tema (texto, fundo, borda, sombra).2021## Entradas Esperadas2223| Entrada | Descrição | Obrigatória |24|---------|-----------|-------------|25| Código/CSS alvo | Trecho ou arquivo CSS com cores a adaptar ao tema | sim |26| Contexto do componente | Tipo/função do elemento (cabeçalho, card, botão, texto) para escolher a família de token adequada | não |27| Tokens já em uso | Variáveis `var(--fs-color-*)` já adotadas no componente, a manter consistentes | não |2829## Contexto de Referência (Fonte de Verdade)3031Leia antes de executar — não reproduza o conteúdo aqui:3233- [style-guide.md](../../context/style-guide.md) — seção **Theming e dark mode (variáveis CSS)**: regra obrigatória de usar `var(--fs-color-*)`, proibição de hexadecimais fixos e de variáveis SCSS para cores de tema, tabelas completas de todas as famílias de tokens (marca, ação, neutros, feedback com tons `lightest`→`darkest`, sombras `--fs-shadow-*`) e a **tabela de mapeamento de cores** (uso comum → `var(--fs-color-*)` e hexadecimal → `var(--fs-color-*)`) usada para converter cores fixas.34- Referência completa das **variáveis CSS**: `references/helpers-and-variables-css/css-variables.md`.3536## Regras Aplicáveis (Resumo Executivo)3738Somente o mínimo para orientar a tarefa; o detalhe e o catálogo de tokens estão no contexto:3940- Para **qualquer cor de tema**, usar variáveis CSS no formato `var(--fs-color-*)` → ver `style-guide.md`.41- ⚠️ **Proibido inventar variáveis CSS.** Usar **somente** as variáveis documentadas em `references/helpers-and-variables-css/css-variables.md`. Se uma variável não estiver nessa referência, ela não existe no Style Guide — nesse caso, use um valor CSS convencional ou CSS próprio escopado.42- **Hexadecimais fixos e variáveis SCSS (`$...`) para cores de tema são proibidos** — não acompanham a troca de tema e quebram o dark mode → ver `style-guide.md`.43- Ao converter cores fixas, consultar a **tabela de mapeamento de cores** (uso comum → variável e hexadecimal → variável) que vive em `style-guide.md` → ver `style-guide.md`.44- Escolher a **família de token** conforme o papel da cor: marca (`--fs-color-brand-*`), ação (`--fs-color-action-*`), neutros (`--fs-color-neutral-*`), feedback (`--fs-color-positive/negative/warning/info-*`) → ver `style-guide.md`.45- Usar tokens de **sombra** (`--fs-shadow-*`) e **tipografia** (`--fs-font-*`) em vez de valores fixos, quando aplicável → ver `style-guide.md`.46- **Reutilizar componentes/classes do Style Guide** já adaptados ao tema, em vez de recriar estilos → ver `style-guide.md`.47- **Preservar** o layout e o comportamento: trocar apenas a origem da cor, não a estrutura.4849## Procedimento50511. Ler o CSS alvo e listar todas as cores fixas usadas (hexadecimais, `rgb()`, nomes de cor) e sombras com valores fixos.522. Classificar cada cor pelo seu papel (texto, fundo, borda, ação, feedback) para escolher a família de token correta.533. Substituir cada cor fixa pela variável `var(--fs-color-*)` correspondente, consultando a **tabela de mapeamento de cores** (uso comum → variável e hexadecimal → variável) em `style-guide.md`.544. Trocar sombras fixas por tokens `--fs-shadow-*` e, quando houver, fonte/cor de texto por tokens `--fs-font-*`.555. Verificar que **nenhum hexadecimal fixo de cor de tema** permaneceu e que o layout não mudou.566. Conferir o resultado com o checklist abaixo antes de entregar.5758## Saída Esperada5960CSS adaptado ao dark mode, com todas as cores de tema expressas como `var(--fs-color-*)` (e sombras/tipografia via tokens quando aplicável), sem hexadecimais fixos de tema, com layout e comportamento preservados e adaptação automática à troca de tema. Em conformidade com `context/style-guide.md`.6162## Exemplo de Uso6364Antes (cores fixas — não acompanham o tema, quebram no dark mode):6566```css67/* ❌ hexadecimal fixo: ilegível ao trocar para o modo escuro */68.my-widget__header {69 color: #202020;70 background-color: #ffffff;71 box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);72}73```7475Depois (variáveis de tema — adaptam-se automaticamente):7677```css78/* ✅ usa var(--fs-color-*) e token de sombra: adapta a dark mode sem código extra */79.my-widget__header {80 color: var(--fs-color-neutral-dark-90);81 background-color: var(--fs-color-neutral-light-00);82 box-shadow: var(--fs-shadow-sm);83}84```8586## Checklist de Validação8788- [ ] Toda cor de tema usa `var(--fs-color-*)`; nenhum hexadecimal fixo de tema permaneceu.89- [ ] A família de token escolhida corresponde ao papel da cor (marca/ação/neutros/feedback).90- [ ] Sombras usam `--fs-shadow-*` e tipografia usa `--fs-font-*` quando aplicável.91- [ ] Layout e comportamento preservados (somente a origem da cor mudou).92- [ ] Tokens consistentes com os já adotados no componente e com `style-guide.md`.