Back

Uma Introdução Simples a Design Tokens

Uma Introdução Simples a Design Tokens

Se você já atualizou uma cor de marca e passou a próxima hora caçando cada #3B82F6 hardcoded espalhado pela sua folha de estilos, você já entende o problema que os design tokens resolvem. Este artigo explica o que são design tokens, como eles diferem de simples variáveis CSS e como começar a usá-los no seu fluxo de trabalho de estilização frontend.

Principais Conclusões

  • Design tokens são valores nomeados e reutilizáveis que capturam decisões de design em um formato agnóstico de plataforma, permitindo que as mesmas definições alimentem a estilização para web, iOS e Android a partir de uma única fonte de verdade.
  • Tokens primitivos contêm valores brutos, enquanto tokens semânticos referenciam primitivos e adicionam intenção de uso, criando um sistema flexível de duas camadas que escala de forma limpa.
  • Design tokens e variáveis CSS são relacionados, mas distintos: tokens são a fonte (geralmente JSON), e variáveis CSS são uma das muitas saídas possíveis geradas por meio de ferramentas como o Style Dictionary.
  • Você pode começar pequeno apenas com primitivos de cor e espaçamento, depois adicionar tokens semânticos e construir ferramentas conforme seu design system amadurece.

O Que São Design Tokens?

Design tokens são valores nomeados e reutilizáveis que representam suas decisões de design — coisas como cores, espaçamento, tipografia, raios de borda e sombras. Em vez de escrever padding: 16px diretamente em um componente, você referencia um token como space-4 que armazena esse valor.

Em sua essência, todo design token é apenas um nome associado a um valor. Mas, como metodologia, eles vão além disso. O Design Tokens Community Group (DTCG), um Community Group do W3C trabalhando em direção a uma especificação compartilhada, os descreve como uma forma de expressar decisões de design em um formato agnóstico de plataforma, para que possam ser compartilhadas entre diferentes disciplinas, ferramentas e tecnologias.

Essa parte do “agnóstico de plataforma” é importante. As mesmas definições de tokens podem ser transformadas em CSS custom properties para a web, constantes Swift para iOS ou valores XML para Android — tudo a partir de uma única fonte de verdade.

Categorias Comuns de Design Tokens

A maioria dos design systems organiza os tokens nestas categorias:

  • Cor — paleta da marca, cores de texto, fundos, bordas
  • Espaçamento — valores de padding, margin e gap
  • Tipografia — família de fonte, tamanho, peso, altura da linha
  • Border radius — arredondamento de cantos para componentes
  • Sombra — efeitos de elevação e profundidade

Tokens Primitivos vs. Tokens Semânticos

Essa distinção é um dos conceitos mais úteis ao trabalhar com tokens de design system.

Tokens primitivos (também chamados de tokens base ou globais) são valores brutos sem uso implícito:

{
  "color-blue-500": { "$value": "#3B82F6", "$type": "color" },
  "space-4": { "$value": "16px", "$type": "dimension" }
}

Tokens semânticos referenciam primitivos e adicionam intenção. Eles dizem onde usar um valor, não apenas o que ele é:

{
  "color-action-primary": { "$value": "{color-blue-500}", "$type": "color" },
  "spacing-component-padding": { "$value": "{space-4}", "$type": "dimension" }
}

Quando você altera color-blue-500, todo token semântico que aponta para ele é atualizado automaticamente. Esse é o real poder do sistema.

Design Tokens vs. Variáveis CSS

Variáveis CSS e design tokens são relacionados, mas não são a mesma coisa.

AspectoDesign TokensVariáveis CSS
EscopoAgnóstico de plataformaApenas CSS
FormatoJSON (ou similar)CSS nativo
ToolingRequer uma etapa de buildNativo do navegador
Melhor paraDesign systems multiplataformaTheming apenas para web

Design tokens são a fonte. Variáveis CSS frequentemente são a saída. Uma ferramenta como o Style Dictionary pega suas definições de tokens e as transforma em qualquer formato que cada plataforma precise.

Um Exemplo Prático Simples

Aqui está um pequeno conjunto de tokens definidos usando a sintaxe no estilo DTCG:

{
  "color-blue-500": { "$value": "#3B82F6", "$type": "color" },
  "color-text-primary": { "$value": "{color-blue-500}", "$type": "color" },
  "space-4": { "$value": "16px", "$type": "dimension" }
}

Após processá-los pelo Style Dictionary, sua saída CSS fica assim:

:root {
  --color-blue-500: #3B82F6;
  --color-text-primary: var(--color-blue-500);
  --space-4: 16px;
}

Agora seus componentes usam var(--color-text-primary) em vez de um valor hexadecimal hardcoded. Altere o token uma vez e atualize em todos os lugares.

No lado do design, as variáveis do Figma seguem o mesmo padrão de primitivo para semântico, tornando mais fácil manter design e código alinhados.

Comece Pequeno, Escale Intencionalmente

Você não precisa de um sistema completo de tokens no primeiro dia. Comece com primitivos de cor e espaçamento, adicione uma camada semântica conforme os padrões emergem e introduza ferramentas quando o processo manual se tornar um gargalo.

Conclusão

Design tokens não são apenas uma forma de organizar CSS — eles são uma linguagem compartilhada entre designers e desenvolvedores. Uma vez que essa linguagem esteja estabelecida, a consistência em todo o seu produto deixa de ser algo que você impõe manualmente e passa a ser algo que seu sistema gerencia por você.

Perguntas Frequentes

Não. Você pode começar com um conjunto plano de tokens primitivos para cor e espaçamento em um único arquivo JSON ou folha de estilos, mesmo sem um design system formal. Os tokens frequentemente se tornam a base sobre a qual um design system cresce, então introduzi-los cedo na verdade facilita a construção de um sistema maior posteriormente.

A maioria dos frameworks de utilitários permite gerar seus valores de tema a partir de uma fonte compartilhada de tokens. No Tailwind CSS v4, os design tokens são comumente expostos através de variáveis @theme, que então geram utilitários automaticamente. Ferramentas como o Style Dictionary podem ajudar a manter esses valores sincronizados entre a web e outras plataformas.

Adicione tokens semânticos quando perceber que o mesmo primitivo está sendo reutilizado para um propósito específico em muitos componentes, como um azul usado consistentemente para ações. Tokens semânticos se tornam essenciais quando você precisa de theming, como dark mode, porque eles permitem trocar o significado sem renomear cada referência primitiva em toda a sua base de código.

Sim. Os temas tipicamente funcionam remapeando tokens semânticos para diferentes primitivos. Seu tema claro pode apontar color-text-primary para um cinza escuro, enquanto o tema escuro o aponta para um cinza claro. Os componentes referenciam apenas o token semântico, então alternar temas não exige alterações nos componentes, apenas um conjunto diferente de mapeamentos de tokens.

Truly understand users experience

See every user interaction, feel every frustration and track all hesitations with OpenReplay — the open-source digital experience platform. It can be self-hosted in minutes, giving you complete control over your customer data. . Check our GitHub repo and join the thousands of developers in our community..

OpenReplay