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.

설치로 이동

소스 정보

저장소
brunoolf/frontend-craft
최근 소스 활동
2026년 8월 27일 20:47
감지된 SKILL.md 언어
포르투갈어
스타
0
포크
0

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
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.
GitHub에서 보기