Logo

Maick Maia.

Reestruturação do Design System PLASMA UI

Contexto

O Plasma UI é o atual design system da SMS Group, usado pelos times de produto das empresas que integram o grupo (incluindo a Vetta, empresa onde eu trabalho). Antes da atuação do time de design system, o Plasma UI já estava sendo usado por 3 times e tambme tinhamos um time usando uma versão anterior com muitas similaridades visuais. Após uma primeira análise, encotramos uma biblioteca de mais de 140 componentes e tambem uma biblioteca no Figma com bem menos componentes (cerca de 60). Após conversas com os times de produto e uma primeira análise da biblioteca, criamos 4 metas:

  • Expandir a influência do design system pelos times de produto do grupo.
  • Melhorar a qualidade da biblioteca de componentes.
  • Integrar as versões anteriores ao nosso ecossistema.
  • Diminuir atrito entre os times de produto e o Design system.
Alguns componentes do Plasma UI
Alguns componentes do Plasma UI

Processo de design

Processo de design do Plasma UI
Processo de design do Plasma UI

Design Audit

Para melhorar a qualidade da biblioteca de componentes, a equipe de design system realizou uma auditoria de design, na qual analisamos componente a componente da biblioteca do PLASMA e também o componente correspondente no Figma. Na análise verificamos a consistencia entre o que tinhamos no código e no Figma, tambem verificamos que existiam muitos componentes que não tem de fato UI (componentes de auxilio para o desenvolvimento) que estavam junto da lista e excluímos dessa listagem, criando uma categoria separada só para esse tipo de componente. Com as tabela de análise pronta e os erros capturados, categorizamos os componentes em 3 níveis de saúde:

  • Saudável: Componentes que estão consistentes entre o Figma e o código, sem problemas de usabilidade.
  • Com problemas: Componentes que possuem pequenos problemas de consistência ou usabilidade, mas que não comprometem o uso do componente.
  • Não Saudável: Componentes com problemas graves de consistência ou usabilidade, ou que não tem referencia em um dos lados.

Priorização

Tambem adicionamos a nossa análise, uma classificação de prioridade, de 1 a 5 onde o 5 era o mais urgente e o 1 o menos urgente. A classificação foi feita com base em uma análise basica no rapositório dos produtos.

Tabela com a análise dos componentes e suas prioridades
Tabela com a análise dos componentes e suas prioridades

Resultados

Com essa análise, conseguimos entender e priorizar os componentes que precisavam de mais atenção e quais de fato fazem sentido serem acompanhados pelo time.

142componentes avaliados
70componentes com relevância visual
44Componentes com algum problema de visual ou de micro interação

Definição de processos

Em paralelo a auditoria, tambem estabelecemos alguns processos para o time de design system, como o processo para recebimento de novos componentes no design system, onde as requisições passariam pela nossa análise antes de serem aceitas. A ideia era garantir que o novo componente realmente fizesse sentido ser adicionado ao design system e que estivesse de acordo com os padrões já estabelecidos. Tambem definimos uma reunião semanal com o chapter de design system, onde tambem recebiamos requisições dos times de produto e discutíamos melhorias para o design system.

Processo de recebimento de novos componentes.
Processo de recebimento de novos componentes.

Manutenção dos componentes

Após a auditoria, começamos a trabalhar na manutenção dos componentes, priorizando os componentes pela maior prioridade e que estavam com problemas de consistência. Tambem incluimos melhorias em alguns componentes, como os novos tipos de variantes que o Figma proporciona, a inclusão de componentes com o conceito de content-area e a conversão dos ícones em uma fonte tipográfica, para facilitar o uso e handoff, onde os desenvolvedores usam exatamente a mesma fonte.


Processo de tokenização

Com as correções prontas, a equipe de design system começou a trabalhar no processo de tokenização dos componentes. Primeiro, passando por algumas definições prévias, como:

Níveis de tokens: Definimos 3 níveis iniciais para os tokens, primitivos, que são tokens que só delimitam os valores disponíveis para o uso, sem nenhum contexto. Tokens semânticos, que são tokens que definem o contexto de uso para ser utilizado nos componentes. E os tokens de componentes, que são tokens exclusivos dos componentes e que é o nível que será aplicado nos componentes.

Representação dos níveis de tokens aplicados no background do botão primário.
Representação dos níveis de tokens aplicados no background do botão primário.



Nomenclatura dos tokens: Definimos e, enquanto estávamos aplicando, aprimoramos os padrões para construir a nomenclatura dos tokens, posicionando primeiro o nível em questão, após incluimos o nome do componente, seguido de atributos, tipagem, sub-elemento do componente e estado (todos os tópicos são opcionais e são usados de acordo com a necessidade e contexto do token).

Protótipo
Como foram organizados os nomes dos tokens usados no PLASMA.



Tokenização: Identificação e criação dos tokens de cores, tamanhos e tipografia usando o Tokens Studio.

Protótipo
Interface do plugin Tokens Studio, rodando dentro do Figma, exibindo as paletas primitivas.



Suporte ao dark mode: Com a estrutura criada, podemos testar e posteriormente adicionar novos temas, incluindo o dark mode, que também era um desejo de alguns usuários do Plasma e que agora era possível graças aos tokens.

Protótipo
Mostrando como podemos alterar o tema de cor usando o tokens studio for figma

Documentação

Em paralelo ao processo de tokenização, a equipe de design system começou a trabalhar no aprimoramento da documentação dos componentes e patterns, decidimos por migrar a documentação para a plataforma open-source docusaurus, onde conseguimos uma boa flexibilidade, alem de já conter a documentaçao de código construída lá.

Protótipo
Documentaçao do componente button, publicada usando a ferramenta Docusaurus

Conclusão

Com o processo de auditoria, tokenização e documentação dos componentes, a equipe de design system conseguiu melhorar a consistência dos componentes alcançando nossas metas. O resultado final foi uma biblioteca de componentes mais confiável, escalável, mais fácil de usar e mais fácil de manter.

13Novos times adotaram o Plasma em seus produtos/projetos.
32%De diminuição no tempo de desenvolvimento de novas telas.
63%Na redução de tickets abertos para o time do design system.