Caso C-02 · Facilia Design System

Um design system que voltou a pôr o design e o código em sincronia

O que parecia um styleguide era, na verdade, entropia: cada developer a acrescentar o seu próprio hex. Construí um sistema tokenizado em paralelo com a entrega, sem parar o produto, e transformei-o na fonte única de verdade entre o que se desenha e o que vai para produção.

Função

Responsável pelo design system · criei-o e fi-lo evoluir

Cronologia

2021–presente

Competências

Design systems · Tokens · Colaboração design–dev · Documentação

Ferramentas

Figma · ZeroHeight · Adobe XD (ponto de partida) · PrimeNG (com eng.)

Equipa

Defini a necessidade, recrutei e integrei um segundo designer para acelerar a construção

Design system da Facilia no ZeroHeight: a secção de Navegação com o seu catálogo de componentes
Fig. 01 O sistema hoje, no ZeroHeight, navegável, pesquisável, com um separador de código ao lado de cada especificação visual.
01

O problema: cada developer tinha a sua própria cor

O que encontrei parecia um styleguide (uma página de cores, fontes e botões), mas era um guia visual, não um sistema: etiquetas vagas, sem nomes de componentes, sem regras de utilização, nada pronto para ser consumido pelo desenvolvimento.

Cada dev, o seu próprio hex

Sem fonte de verdade: cada developer acrescentava o seu próprio hexadecimal.

Componentes duplicados

Variações da mesma cor, espaçamentos arbitrários, cópias da mesma UI.

Dívida a cada sprint

Não é um problema estético: dívida técnica a crescer a cada sprint, visível para o utilizador final.

O styleguide herdado: uma única página solta com amostras, tipografia e botões de etiquetas vagas
Fig. 02 O "styleguide" herdado: uma página solta de cores, tipografia e componentes de etiquetas vagas. Uma imagem, não um sistema.
02

A decisão: construir o sistema sem parar o comboio

A entrega não podia parar para "arrumar a casa", por isso construí o design system em paralelo, um projeto dentro do projeto. Uma premissa: seria construído para o desenvolvimento consumir, não para organizar o Figma.

Cada token foi documentado a dobrar: primeiro a sua gramática, depois a sua especificação completa, com a referência de código ao lado do visual:

Tokens com nome

Uma convenção clara (color-primary-green, font-heading-h1), não amostras com alcunhas.

Especificação completa em cada um

Hex, rgb, família, tamanho, line-height, letter-spacing, mais uma referência de código.

Componentes catalogados

Anatomia, variantes e regras de utilização: botões, navegação, paginação, separadores, acordeões, formulários.

Fundações explícitas

Grid, espaçamento, sombras, border radius, ícones, ilustrações.

Anatomia de um token de tipografia: Type, Name, Variation a compor font-heading-h1
Fig. 03 A gramática do token tornada explícita: type · name · variationfont-heading-h1. Uma convenção de nomes, não uma alcunha.
Página de estilos de texto: especificação completa do H1 mais uma amostra de cor chamada color-primary-green com hex e rgb
Fig. 04 Cada token com a sua especificação completa e referência de código (color-primary-green, #1ABC9C, o dimensionamento do H1) ao lado do visual.
03

A migração de ferramenta fazia parte do sistema

O projeto vivia no Adobe XD, capaz, mas mau colaborador para bibliotecas partilhadas e handoff. Passei-o para o Figma: um sistema só funciona onde toda a equipa o pode consumir. Um segundo designer juntou-se para acelerar a construção.

04

A prova: quando a biblioteca de dev mudou de versão

O verdadeiro teste chegou quando o PrimeNG migrou para uma nova versão: a equipa atualizou os seus componentes contra o design system, não contra o caos.

Hoje, o que está no design system é o que está no código.

Fig. 05 A cadeia que o sistema impõe: o design system é a fonte; o Figma, o PrimeNG e o código consomem-no, nunca o contrário.
Uma página de componente com uma ligação para o seu equivalente no PrimeNG
Fig. 06 Cada página de componente aponta diretamente para o seu equivalente no PrimeNG, a ponte explícita entre sistema e código.
Estados de um campo de texto: vazio, preenchido, ativo, sucesso, aviso, erro, desativado, com referências de token
Fig. 07 Estados de componente documentados com as suas regras de negócio e referências de token: aquilo contra o qual o developer constrói.
05

Resultado

1 fonte de verdade

Entre design e desenvolvimento, em uso até hoje

XD Figma

Migração de ferramenta feita como parte do sistema

PrimeNG sincronizado

O sistema sobreviveu a uma migração de versão completa da biblioteca de dev

Durou mais que a equipa

O conhecimento vive no sistema, não na cabeça de uma só pessoa

Handoff mais curto, menos retrabalho de front-end e decisões de UI que já não recomeçam do zero a cada feature, porque o sistema torna impossível a cor inventada e o componente duplicado.

06

O que este projeto me ensinou

Que um design system não é um entregável de design: é infraestrutura de equipa. O seu valor não está nas páginas bonitas de documentação, mas no que torna impossível: a cor inventada, o componente duplicado, o estilo que existe num só ecrã.

O momento certo para construir um raramente existe. Construí o nosso em paralelo com a entrega, sob pressão, sem um mandato formal, porque a alternativa era ver a dívida crescer.

Olhando para trás, foi uma das decisões de maior retorno de todo o projeto.