Skip to main content

design-system

Construir, extrair e manter design systems - tokens com papeis, escala tipografica, escala de espacamento, cor, raio, sombra, dark mode e tokens de motion. Inclui o formato do DESIGN.md, o artefato de memoria que preserva as decisoes e suas razoes entre sessoes. Use ao criar tokens, consertar inconsistencia, adicionar tema escuro ou documentar o sistema de um codigo existente.

Zur Installation springen

Quellinformationen

Repository
brunoolf/frontend-craft
Letzte Quellaktivität
27. August 2026 um 20:47
Erkannte Sprache von SKILL.md
Portugiesisch
Sterne
0
Forks
0

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
design-system
description
Construir, extrair e manter design systems - tokens com papeis, escala tipografica, escala de espacamento, cor, raio, sombra, dark mode e tokens de motion. Inclui o formato do DESIGN.md, o artefato de memoria que preserva as decisoes e suas razoes entre sessoes. Use ao criar tokens, consertar inconsistencia, adicionar tema escuro ou documentar o sistema de um codigo existente.
# Design system Um sistema converte direção em decisões reutilizáveis. Se ele não reduz o número de escolhas que a próxima pessoa precisa fazer, não é sistema — é uma paleta com nomes. ## Extraia antes de inventar Em código existente, o sistema já está lá: implícito, inconsistente e espalhado. O trabalho não é impor uma escala nova sobre tudo — é encontrar o padrão dominante, nomeá-lo e alinhar os desvios. 1. Inventarie os valores reais em uso: cores, tamanhos de fonte, espaçamentos, raios. 2. Conte a frequência. O valor mais usado costuma ser o certo. 3. Agrupe os quase-iguais (`14px`, `15px`, `0.9rem` são o mesmo degrau tentando existir). 4. Nomeie por papel e migre os desvios. Um sistema que ignora o incumbente vira segunda fonte da verdade — e duas fontes da verdade é pior que nenhuma. ## Cor por papel Nunca uma lista de hexes. Papéis, para que tema seja troca de valores e não reescrita. ``` surface fundo da página surface-raised cartão, painel, popover surface-sunken poço, campo de entrada text corpo text-muted secundário — tinja do matiz do fundo, nunca cinza puro text-inverted sobre superfície de destaque border hairline estrutural border-strong divisor com peso accent a ação. Uma. Se aparece em nove lugares, não é destaque accent-text texto legível sobre accent success / warning / danger + as variantes de superfície e texto focus anel de foco. ≥3:1 contra tudo que ele toca ``` Cada papel precisa de contraste verificado nos pares que realmente ocorrem. ## Escalas **Espaçamento** com base declarada (4px é comum) e degraus que crescem de forma não-linear: `4 8 12 16 24 32 48 64 96 128`. Todo valor do produto sai daí. Um `margin-top: 37px` é um bug de sistema. **Tipografia** com degraus distinguíveis. Se dois vizinhos são difíceis de diferenciar, um sobra. Seis a oito degraus bastam para quase tudo. Cada degrau carrega tamanho **e** entrelinha — declarados juntos, sempre. **Raio, sombra, borda** também são escalas. Ad hoc aqui é a origem mais comum de inconsistência visual. **Motion como token:** durações (`fast` 150ms, `base` 250ms, `slow` 400ms) e curvas nomeadas. É o que impede cada componente de inventar o próprio timing. ## As escalas são fluidas, não fixas Uma escala que só vale numa largura está pela metade. Cada degrau de tipografia e de espaçamento define um piso e um teto, e interpola entre eles: ```css --step-0: clamp(1rem, 0.95rem + 0.25vw, 1.125rem); --step-3: clamp(2rem, 1.5rem + 2.5vw, 3.5rem); --space-section: clamp(3rem, 8vw, 10rem); ``` Isso elimina a maior parte dos breakpoints de tipografia e espaçamento, e é o que evita o salto abrupto entre larguras. Quanto maior o degrau, mais agressiva a inclinação — display varia muito, corpo quase nada, porque a medida ideal de leitura não muda com o tamanho da tela. Sempre um teto, e nunca `vw` puro no corpo: a parte em `rem` da fórmula é o que preserva o zoom do navegador, que é ferramenta de acessibilidade. Veja `responsive` para a mecânica completa. ## Dark mode Não é inversão. - Defina a paleta clara **completa** nos tokens base; redefina só os **valores** no tema escuro. Nunca redeclare estrutura. - Superfície escura separa por luminância, não por sombra. Sombras somem; eleve com superfície mais clara. - Nada de `#000` puro com `#FFF` puro. O contraste extremo produz vibração e cansa. - Cores saturadas parecem mais intensas no escuro. Reduza saturação, aumente luminosidade. - Três estados, não dois: escolha explícita clara, escolha explícita escura, e o default do sistema. Uma cor definida só dentro de um bloco de media query some no terceiro estado. ## DESIGN.md Na raiz do projeto do usuário. Quatro seções: ```markdown # Design ## Direção [Uma frase concreta, mais o porquê ligado ao usuário e à cena de uso] ## Tokens [Valor e papel. Agrupados por tipo.] ## Decisões [A parte que mais importa. Cada decisão não-óbvia com a razão. "Raio 2px porque o produto é ferramenta de precisão e canto macio contradiz isso."] ## Fora de escopo [O que foi deliberadamente descartado, e por quê. Impede que volte por acidente.] ``` Ao atualizar, **preserve as razões existentes**. Se estiver contradizendo uma decisão registrada, diga isso e registre a nova razão. Apagar silenciosamente é como um projeto vira a média de três direções incompatíveis. Sem a seção de decisões, o arquivo é só uma lista de variáveis e a próxima sessão reabre tudo. ## Regras **Menos degraus.** Seis usados com disciplina batem catorze usados ao acaso. **Nomeie por papel, não por aparência.** `--accent`, não `--blue-500`. A cor muda; o papel permanece. **O sistema serve o produto.** Um dashboard e uma landing não compartilham escala de espaçamento. Se o projeto tem superfícies de modos diferentes (`surface-modes`), o sistema precisa dizer qual escala vale onde. **Token não usado é dívida.** Se nada consome, remova.
Auf GitHub ansehen