<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Claudio Furini Jr.</title>
    <description>The latest articles on Forem by Claudio Furini Jr. (@claudiofurinijr).</description>
    <link>https://forem.com/claudiofurinijr</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F468629%2F8dd1ef7e-2a89-4a1c-8f47-ccd064fb0e7d.jpeg</url>
      <title>Forem: Claudio Furini Jr.</title>
      <link>https://forem.com/claudiofurinijr</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/claudiofurinijr"/>
    <language>en</language>
    <item>
      <title>Como utilizamos design tokens na Trybe</title>
      <dc:creator>Claudio Furini Jr.</dc:creator>
      <pubDate>Wed, 31 Aug 2022 17:42:23 +0000</pubDate>
      <link>https://forem.com/trybe/como-utilizamos-design-tokens-na-trybe-1o38</link>
      <guid>https://forem.com/trybe/como-utilizamos-design-tokens-na-trybe-1o38</guid>
      <description>&lt;p&gt;Em uma &lt;a href="https://dev.to/trybe/criando-consistencia-de-design-com-tokens-1j2"&gt;publicação anterior&lt;/a&gt;, apontamos a importância da consistência no design de uma aplicação e como isso pode ser alcançado com o uso de design tokens.&lt;/p&gt;

&lt;p&gt;Neste post, vamos mostrar como a Trybe utiliza os tokens de design no dia a dia.&lt;/p&gt;

&lt;h2&gt;
  
  
  Nossos tokens
&lt;/h2&gt;

&lt;p&gt;Nosso time de design definiu 6 categorias de tokens que são usados nos nossos produtos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cor&lt;/li&gt;
&lt;li&gt;Tipografia&lt;/li&gt;
&lt;li&gt;Sombra&lt;/li&gt;
&lt;li&gt;Borda&lt;/li&gt;
&lt;li&gt;Espaçamentos&lt;/li&gt;
&lt;li&gt;Z-index&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Não cabe a este post entrar em detalhes de cada valor dos nossos tokens e como foram definidos. A definição dos valores dos tokens de um produto deve partir de uma análise feita pelo time de design para encontrar padrões que irão representar a marca/produto em questão.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fonte da verdade
&lt;/h2&gt;

&lt;p&gt;Um ponto muito importante para sucesso e adoção dos tokens é ter uma maneira simples onde design e desenvolvimento possam &lt;strong&gt;&lt;em&gt;consumir os mesmos valores&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Como fonte da verdade dos nossos tokens, adotamos um arquivo JSON.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--O_UuPY75--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r6ocperfk38pp7pstrbt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--O_UuPY75--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r6ocperfk38pp7pstrbt.png" alt="Visualização do JSON" width="880" height="1368"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Como design constrói e utiliza o JSON?
&lt;/h3&gt;

&lt;p&gt;Sabemos que não é uma experiencia muito boa definir manualmente valores em um JSON. Pensando nisso, buscamos uma ferramenta que nos auxiliasse no processo e encontramos o &lt;a href="https://www.figma.com/community/plugin/843461159747178978/Figma-Tokens"&gt;Figma Tokens&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;O Figma Tokens é um plugin disponível na comunidade do Figma, que possibilita a administração de tokens que podem ser aplicados durante a construção de um layout, dessa forma o próprio plugin gera e consome o arquivo JSON.&lt;/p&gt;

&lt;p&gt;No caso da Trybe, demos um passo a mais e conectamos o plugin à nossa conta do Github e o JSON oficial fica armazenado no repositório do nosso Design System.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--O631Vc8C--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a4qk04sizjmouzhwbwj1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--O631Vc8C--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a4qk04sizjmouzhwbwj1.png" alt="Imagem representação do figma tokens" width="880" height="440"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;O Figma Tokens também  possibilita a adição de temas relacionados aos tokens, como por exemplo um tema escuro. Mas vamos falar sobre &lt;em&gt;dark mode&lt;/em&gt; em um outro post.&lt;/p&gt;

&lt;h3&gt;
  
  
  Como desenvolvimento constrói e utiliza o JSON?
&lt;/h3&gt;

&lt;p&gt;Outro ponto importante da adoção dos tokens de design é o uso deles no nosso código. Mas como podemos usar valores de um JSON no nosso CSS?&lt;/p&gt;

&lt;p&gt;O primeiro passo é converter esse JSON em um padrão que possa ser usado pela nossa linguagem de programação. Para isso nós usamos o &lt;a href="https://amzn.github.io/style-dictionary/#/"&gt;Style Dictionary&lt;/a&gt;. Essa ferramenta nos possibilita converter o JSON em muitos outros formatos, como por exemplo, variáveis de CSS puras.&lt;/p&gt;

&lt;p&gt;No caso da Trybe, estamos utilizando uma biblioteca de estilização no JavaScript chamada &lt;a href="https://stitches.dev/"&gt;Stitches&lt;/a&gt;. Essa biblioteca já tem suporte a variáveis e nos da uma ótima experiência de desenvolvimento.&lt;/p&gt;

&lt;p&gt;Para utilizarmos as variáveis do &lt;em&gt;Stitches&lt;/em&gt;, usamos o &lt;em&gt;Styled Dictionary&lt;/em&gt; para converter os valores do JSON para variáveis JavaScript e passamos esses valores para a &lt;a href="https://stitches.dev/docs/tokens"&gt;configuração do Stitches&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Assim utilizamos nossos tokens de maneira direta no momento de estilização de um componente.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Sxiez7b9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bajvp5rmqdewo0vxyc23.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Sxiez7b9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bajvp5rmqdewo0vxyc23.png" alt="Exemplo de código com Stitches" width="880" height="851"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;Utilizando as ferramentas &lt;em&gt;Figma Tokens&lt;/em&gt;, &lt;em&gt;Style Dictionary&lt;/em&gt; e &lt;em&gt;Stitches&lt;/em&gt; a Trybe garante que tanto o time de design quanto o time de desenvolvimento falem a mesma linguagem e utilizem os mesmos valores durante o desenvolvimento. &lt;/p&gt;

&lt;p&gt;Esse padrão garante não só um bom alinhamento entre os times, mas diminui a carga cognitiva que nosso time precisa durante a execução de uma tarefa, pois todos esses valores já estão definidos e são usados de maneira semântica. &lt;/p&gt;

&lt;p&gt;E assim estamos cada vez mais perto de alcançar a consistência de design no nosso produto.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Criando consistência de design com tokens</title>
      <dc:creator>Claudio Furini Jr.</dc:creator>
      <pubDate>Wed, 06 Apr 2022 20:10:21 +0000</pubDate>
      <link>https://forem.com/trybe/criando-consistencia-de-design-com-tokens-1j2</link>
      <guid>https://forem.com/trybe/criando-consistencia-de-design-com-tokens-1j2</guid>
      <description>&lt;p&gt;Imagine você entrar em um site e cada elemento da página possui um estilo diferente. Múltiplos tipos de fonte, cada texto com um tamanho, uso de diversos tipos e tons de cores sem nenhuma lógica aparente, espaçamentos entre componentes que nunca se alinham... é um pesadelo tentar entender qualquer coisa nesse cenário.&lt;/p&gt;

&lt;p&gt;Para diminuir a carga cognitiva, usuários buscam padrões e modelos que tornem as interações simples e fáceis. No design da experiência do usuário, um dos fatores que contribui para esse objetivo é a &lt;strong&gt;consistência&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  O que significa consistência em design?
&lt;/h2&gt;

&lt;p&gt;A consistência no design une os elementos, facilita o entendimento da conexão entre os componentes e garante que o seu usuário sinta-se seguro para aprender e a explorar seu produto.&lt;/p&gt;

&lt;p&gt;Ao garantir que a consistência seja prioridade, seu produto terá ótima usabilidade e acessibilidade. Os usuários poderão navegar facilmente pelo seu produto sem parar para questionar se estão fazendo algo errado.&lt;/p&gt;

&lt;p&gt;Existem diversas maneiras de buscar e garantir consistência no design de um produto. Principalmente no momento de concepção das ideias e protótipos. &lt;/p&gt;

&lt;p&gt;O propósito deste artigo não é detalhar todos os métodos. Mas sim falar de um em específico: &lt;strong&gt;design tokens&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  O que são design tokens?
&lt;/h2&gt;

&lt;p&gt;De maneira resumida, Design Tokens são variáveis semânticas que carregam determinadas informações. Como cores, espaçamentos e tamanhos, que quando sozinhos parecem não ter muita importância, mas que em conjunto são muito relevantes para determinar a consistência de um produto.&lt;/p&gt;

&lt;p&gt;Cada token tem um nome exclusivo que faz referência a um valor específico. Por exemplo, quando a pessoa designer precisa definir uma cor de fundo, ao invés de usar o valor &lt;code&gt;#ffffff&lt;/code&gt; no elemento, passaria a usar &lt;code&gt;background-primary&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx4yav3ovj94yl09ionhq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx4yav3ovj94yl09ionhq.png" alt="Exemplo de token"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Pode parecer desnecessário, em primeiro momento, utilizar &lt;code&gt;background-primary&lt;/code&gt; sendo que essa variável tem o valor &lt;code&gt;#ffffff&lt;/code&gt;. Mas imagine que no futuro queremos alterar a cor de fundo do nosso produto para um tom mais cinza, como &lt;code&gt;#fafafa&lt;/code&gt;. Como isso seria feito sem tokens?&lt;/p&gt;

&lt;p&gt;Teríamos que localizar todos os lugares do nosso produto que estão usando o valor &lt;code&gt;#ffffff&lt;/code&gt;, garantir que estão sendo usado para cor de fundo e ai substituir todos para &lt;code&gt;#fafafa&lt;/code&gt;. Já com o uso do token &lt;code&gt;background-primary&lt;/code&gt;, nós já garantimos que todos os usos são referentes a cor de fundo (o nome semântico nos ajuda a garantir isso) e caso necessitamos alterar o valor, basta alterar em um único lugar para que todo o seu produto reflita essa mudança.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1h3od88g31es7uywmyc8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1h3od88g31es7uywmyc8.png" alt="Imagem representando a alteração de valores"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Como design tokens garantem consistência?
&lt;/h2&gt;

&lt;p&gt;Definindo uma lista semântica de variáveis, faz com que a pessoa responsável pela implementação (seja no Figma ou o código CSS) selecione apenas valores existentes ao invés de usar valores e variações específicas.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg49d3mtkhfez4k3wirzl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg49d3mtkhfez4k3wirzl.png" alt="Uso dos tokens em um elemento"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Introduzir um novo valor, como por exemplo tamanho de fonte, se torna mais difícil. Pois o fluxo de trabalho, das pessoas designers e desenvolvedoras, passa a ser de utilizar valores pré-existentes. Qualquer valor que não tenha uma variável estabelecida, é facilmente identificado como variante. &lt;/p&gt;

&lt;p&gt;A utilização do tokens torna o processo saudável, evitando atritos e inconsistências, tornando o processo flexível e dinâmico para todos os envolvidos.&lt;/p&gt;

&lt;p&gt;Nos próximos artigos, vamos mostrar a implementação dos design tokens da Trybe e como garantimos que pessoas designers e desenvolvedoras utilizem o mesmo valor tendo uma única fonte da verdade. Aguarde!&lt;/p&gt;

</description>
      <category>figma</category>
      <category>design</category>
      <category>token</category>
      <category>frontend</category>
    </item>
  </channel>
</rss>
