Tailwind CSS Academy · Aula

Analisando o Tailwind com o ESLint

Configure eslint-plugin-tailwindcss para avisar sobre nomes de classes inválidos e utilidades conflitantes, além de impor as convenções de classes da sua equipe.

Aula 3 de 413 etapas

Analisando o Tailwind com o ESLint é uma aula grátis de Tailwind CSS Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Tailwind CSS Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Tailwind CSS Academy inclui 4 aulas no total.

Por que analisar suas classes do Tailwind

Erros de digitação nos nomes de classes do Tailwind são erros silenciosos — o navegador simplesmente ignora classes desconhecidas sem emitir avisos no console. Uma letra ausente, como em bg-blue-50O (O maiúsculo em vez de zero), não aplica nenhum plano de fundo, e o problema pode passar despercebido por dias. O ESLint com um plug-in do Tailwind detecta esses problemas durante o desenvolvimento, antes que cheguem à produção.

Instalando o eslint-plugin-tailwindcss

O eslint-plugin-tailwindcss é o plug-in do ESLint mais usado para o Tailwind. Ele valida nomes de classes em relação à sua configuração do Tailwind, avisa sobre utilitários conflitantes e pode impor as convenções de ordenação de classes da sua equipe. Instale-o junto com o ESLint nas dependências de desenvolvimento do seu projeto.

npm install -D eslint eslint-plugin-tailwindcss

# If using a flat config (ESLint 9+)
npm install -D @eslint/js

Configurando o plug-in (configuração legada)

No formato tradicional .eslintrc, adicione tailwindcss à matriz de plug-ins e amplie a configuração recomendada. O conjunto recomendado ativa as três regras principais: classnames-order, no-custom-classname e no-contradicting-classname.

// .eslintrc.js
module.exports = {
  extends: ['plugin:tailwindcss/recommended'],
  plugins: ['tailwindcss'],
  rules: {
    'tailwindcss/classnames-order': 'warn',
    'tailwindcss/no-custom-classname': 'warn',
    'tailwindcss/no-contradicting-classname': 'error',
  },
};

Configurando o plug-in (configuração plana)

Para o novo formato de configuração plana do ESLint 9, importe o plug-in e espalhe a configuração recomendada na sua matriz de configuração. Aponte a configuração tailwindConfig para o seu arquivo de configuração, para que o plug-in leia os valores personalizados do tema e os plug-ins ao validar os nomes de classes.

// eslint.config.js
import tailwind from 'eslint-plugin-tailwindcss';

export default [
  ...tailwind.configs['flat/recommended'],
  {
    settings: {
      tailwindcss: {
        config: './tailwind.config.js',
      },
    },
  },
];

A regra no-contradicting-classname

A regra no-contradicting-classname detecta utilitários conflitantes aplicados ao mesmo elemento — por exemplo, usar block e inline na mesma div ou w-full e w-auto juntos sem um prefixo responsivo. Esses conflitos produzem resultados imprevisíveis e difíceis de depurar sem o suporte de uma ferramenta de análise.

<!-- ESLint error: block and inline conflict -->
<div class="block inline text-red-500">

<!-- Correct: use responsive prefix to switch at breakpoints -->
<div class="block md:inline text-red-500">

A regra no-custom-classname

A regra no-custom-classname avisa quando você escreve uma classe que não faz parte da saída do Tailwind — nem um utilitário integrado nem um utilitário personalizado definido na sua configuração ou nos seus plug-ins. Isso ajuda a detectar erros de digitação e impede que desenvolvedores escrevam nomes de classes de CSS comum em um projeto Tailwind sem seguir os canais apropriados.

<!-- ESLint warning: 'card-header' is not a Tailwind utility -->
<div class="card-header p-4 bg-white">

<!-- Option 1: Use only Tailwind utilities -->
<div class="rounded-lg bg-white p-4 shadow">

<!-- Option 2: Add 'card-header' to whitelist in ESLint config -->
/* settings: { tailwindcss: { whitelist: ['card-header'] } } */

A regra classnames-order

A regra classnames-order impõe a mesma ordem canônica de classes produzida pelo plug-in do Prettier. Ao usar as duas ferramentas, configure uma delas como fonte oficial da ordenação. A maioria das equipes usa o Prettier para a formatação automática e desativa a regra de ordenação do ESLint para evitar conflitos entre as duas ferramentas.

// .eslintrc.js — disable ordering rule when using Prettier plugin
module.exports = {
  extends: ['plugin:tailwindcss/recommended'],
  rules: {
    // Prettier handles ordering — disable here to avoid conflicts
    'tailwindcss/classnames-order': 'off',
    // Keep these enabled
    'tailwindcss/no-custom-classname': 'warn',
    'tailwindcss/no-contradicting-classname': 'error',
  },
};

Permitindo classes personalizadas intencionais

Se o seu projeto usa nomes de classes CSS personalizados junto com utilitários do Tailwind — por exemplo, classes de uma biblioteca de animação de terceiros ou de um CSS legado — adicione-os à configuração whitelist. Isso elimina falsos positivos e ainda detecta erros de digitação reais nos nomes de classes do Tailwind.

// .eslintrc.js
module.exports = {
  extends: ['plugin:tailwindcss/recommended'],
  settings: {
    tailwindcss: {
      config: './tailwind.config.js',
      // Allow these non-Tailwind class names
      whitelist: ['animate-fade-in', 'swiper-slide', 'js-modal-open'],
    },
  },
};

Executando o ESLint no terminal

Adicione um script lint ao seu package.json que tenha como alvo todos os arquivos de template. Execute-o localmente e no CI para revelar erros nos nomes de classes antes que eles sejam mesclados. A opção --fix corrige automaticamente problemas de ordenação, mas não pode corrigir erros de digitação — eles exigem revisão manual.

// package.json
{
  "scripts": {
    "lint": "eslint 'src/**/*.{js,jsx,ts,tsx,html}'",
    "lint:fix": "eslint --fix 'src/**/*.{js,jsx,ts,tsx,html}'"
  }
}

Integração com o editor para feedback em tempo real

Instale a extensão do ESLint para VS Code para ver erros sublinhados diretamente no editor enquanto você digita. Erros nas classes do Tailwind aparecem como avisos amarelos ou erros vermelhos no texto, tornando impossível não perceber um erro de digitação. Combine isso com a extensão Tailwind CSS IntelliSense para obter preenchimento automático, e a análise fechará completamente o ciclo de feedback.

// .vscode/extensions.json — recommended extensions for the team
{
  "recommendations": [
    "dbaeumer.vscode-eslint",
    "esbenp.prettier-vscode",
    "bradlc.vscode-tailwindcss"
  ]
}

Combinando ESLint e Prettier de forma eficaz

Use o ESLint para validação — detectando erros de digitação, contradições e nomes de classes desconhecidos. Use o Prettier para formatação — ordenando as classes na ordem canônica. Desative a regra classnames-order do ESLint para que o Prettier seja o único responsável pela ordenação. Essa separação de responsabilidades permite aproveitar o melhor das duas ferramentas sem conflitos.

// Recommended combined setup
// ESLint: validates correctness
// Prettier: formats order

// package.json scripts
"lint": "eslint src/",
"format": "prettier --write src/",
"precommit": "npm run lint && npm run format"

Verificação rápida

Teste sua compreensão dos conceitos de Tailwind CSS Mastery desta lição.

Recapitulação da lição

Nesta lição, você aprendeu a: instalar o eslint-plugin-tailwindcss para detectar erros de digitação e contradições, conhecer as três regras principais (no-contradicting-classname, no-custom-classname, classnames-order) e combinar o ESLint com o Prettier para que cada ferramenta seja responsável por sua função. A seguir, definiremos as convenções da equipe e um guia de estilo.

Grátis para começar

Aprenda HTML com um tutor de IA — grátis

Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.

Cursos
30
Aulas
120

Perguntas Frequentes

A aula “Analisando o Tailwind com o ESLint” é grátis?

Sim — o texto completo de “Analisando o Tailwind com o ESLint” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Tailwind CSS Academy, atualize para CoddyKit PRO. O curso de Tailwind CSS Academy inclui 4 aulas no total.

O que vou aprender em “Analisando o Tailwind com o ESLint”?

Configure eslint-plugin-tailwindcss para avisar sobre nomes de classes inválidos e utilidades conflitantes, além de impor as convenções de classes da sua equipe. Você pratica Tailwind CSS Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Tailwind CSS Academy?

Nenhuma experiência prévia é necessária. Tailwind CSS Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Analisando o Tailwind com o ESLint”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Tailwind CSS Academy?

Sim. Cada aula de Tailwind CSS Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Auditando sua saída CSS
  2. Ordenação de classes e plugin do Prettier
  3. Analisando o Tailwind com o ESLint
  4. Convenções da equipe e guia de estilo
← Voltar para Tailwind CSS Academy