Construindo um Design System Sem Recriar o CSS

Design systems frequentemente caem em uma armadilha.

Você começa adicionando classes utilitárias. Adiciona opções responsivas. Adiciona auxiliares de layout. Logo, você constrói uma nova sintaxe. Você acaba fazendo exatamente o que o CSS já faz.

Pare de tentar substituir o CSS.

Em vez disso, construa uma camada acima do CSS. Foque na intenção.

Desenvolvedores querem flexibilidade. Mas a flexibilidade traz complexidade. Muitos sistemas expõem cada breakpoint e opção de layout. Isso torna o markup difícil de ler. Seu código passa mais tempo descrevendo como construir um layout do que o que o layout faz.

O sistema torna-se difícil de entender porque tenta descrever tudo.

Mude seu foco. Pense menos em como um layout é construído. Pense mais no que o layout realiza.

Veja este exemplo:

Isso não substitui o CSS. Isso expressa intenção.

  • O conteúdo se adapta a um grid.
  • No mobile, ele empilha.

A implementação permanece dentro do sistema. Não se trata de mais abstração. Trata-se de uma melhor comunicação.

Bons padrões são melhores do que configurações infinitas. A maioria dos layouts segue padrões comuns. A maioria dos desenvolvedores quer organizar conteúdo, não inventar novos sistemas de layout.

Um design system deve fornecer padrões bem pensados. Se você tentar expor cada capacidade do CSS, você perde. O CSS já é poderoso e padronizado.

O trabalho de um design system é:

  • Reduzir a carga cognitiva.
  • Criar consistência.
  • Comunicar intenção.
  • Facilitar padrões comuns.

Faça a si mesmo esta pergunta ao