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