Otimizando CSS

TL;DR

Evite o uso de tokens personalizados como h-[15px] ou p-[3px]. Prefira os tokens do Tailwind, como h-8 e p-2. Além disso, evite especificar cores nos tokens (por exemplo, bg-[#fd429a]). Em vez disso, utilize cores de tema para uma melhor manutenção.

Introdução

Este guia explora as melhores práticas para alcançar uma performance ideal no front-end com o Tailwind CSS na Deco. Vamos mergulhar no processo de geração do Tailwind CSS, examinar como os tokens inline afetam as métricas do Web Vitals e estabelecer regras simples para manter uma pontuação de alta performance.

Compreendendo o Processo de Geração do Tailwind CSS

O framework da Deco permite a integração perfeita dos tokens do TailwindCSS em qualquer componente JSX, aplicando estilos sem configuração adicional. Embora isso seja conveniente para iniciantes, entender o processo subjacente é crucial para otimização de desempenho.

Sempre que são feitas alterações no código do seu site, o processo de "geração do Tailwind" examina todos os arquivos .tsx em sua base de código. Em seguida, extrai os tokens CSS, mesclando-os em um único arquivo styles.css. Este arquivo é então enviado ao navegador, estilizando seus componentes. Esse processo se repete sempre que ocorrem alterações no código.

No entanto, a consequência é um arquivo styles.css maior do que o necessário, contendo estilos para todos os componentes, impactando as métricas de desempenho. Considere um cenário com uma página inicial (Home.tsx) e uma página de produto (Product.tsx):

// Home.tsx
export default function Home() {
  return <div class="flex justify-center p-2">Foo</div>;
}

// Product.tsx
export default function Product() {
  return <div class="flex justify-center p-4">Bar</div>;
}

Ao acionar o processo de "geração do Tailwind", obtemos o seguinte styles.css:

.flex {
  display: flex
}

.justify-center {
  justify-content: center
}

.p-2 {
  padding: 8px
}

.p-4 {
  padding: 16px
}

Mesmo que p-4 não seja usado na página inicial, ele está incluído em styles.css, aumentando a carga CSS e afetando as métricas do Web Vitals (FCP).

No exemplo anterior, tanto os tokens flex quanto justify-center são reutilizados. Em projetos maiores, essa reutilização de classes tende a crescer. A reusabilidade é fundamental para ter um projeto Tailwind performático. No entanto, os tokens inline podem quebrar essa tendência. Exemplos de tokens inline incluem p-[3px], h-[4rem] e bg-[#fdb43a]. Essas classes têm pouca probabilidade de serem reutilizadas, levando a um aumento no tamanho do styles.css e prejudicando os Core Web Vitals.

Para evitar a sintaxe inline ao replicar estilos, siga uma regra simples: use tokens próximos. Por exemplo:

  • p-[3px] -> p-2
  • h-[4rem] -> p-8
  • bg-[#fdb43a] -> bg-primary

Isso aumenta significativamente a reusabilidade e melhora o desempenho geral do site.

Exemplo do Mundo Real: Redução de 71% no Tamanho do CSS

Ao aplicar essas técnicas a um de nossos projetos, conseguimos uma redução notável de 71% no tamanho final do CSS. Isso não apenas melhorou as pontuações do Web Vitals, mas também permitiu uma fácil customização de temas.

Conclusão

O Tailwind CSS é uma ferramenta poderosa para estilizar componentes JSX. Ao compreender o processo de construção e otimizar sua base de código, você pode equilibrar flexibilidade e eficiência. Incentive o uso de tokens puros do Tailwind e tokens de tema, promovendo uma aplicação mais fácil de manter e com melhor desempenho.

Feliz codificação com o Tailwind CSS na Deco!

Was this page helpful?
Can't find what you're looking for? Spot an error in the documentation? Get in touch with us on our Community Forum
Continue reading