Configure once
`settings.tailwindcss.entryPoint` is required and explicit. No filesystem auto-detect, no surprises across machines. Same input, same output.
27 rules, designed for Tailwind v4. Deterministic, fast, fail-loud.
oxlint-tailwindcss is a plugin for oxlint, the linter of the Oxc project, that lints Tailwind CSS v4 class names. It loads your project's design system from the CSS entry point you configure — its @theme tokens, @utility and @custom-variant definitions and plugins — and checks every class string in JSX, TSX, JavaScript and TypeScript (and the <script> of Vue, Svelte and Astro files) against it, with 27 rules, most with an autofix.
itms-center, with the class you meant — no-unknown-classes.p-4 p-6, or line-clamp-1 flex, where flex replaces the clamp's display — no-conflicting-classes.`bg-${color}-500` — no-dynamic-classes.flex-shrink-0 → shrink-0 — no-deprecated-classes.no-dark-without-light.p-[10px] → p-2.5, bg-(--primary) → bg-primary — prefer-scale-token, prefer-theme-tokens.enforce-sort-order, consistent-variant-order, enforce-canonical, and the rest.pnpm add -D oxlint oxlint-tailwindcss// .oxlintrc.json
{
"jsPlugins": ["oxlint-tailwindcss"],
"settings": { "tailwindcss": { "entryPoint": "src/styles.css" } },
"rules": {
"tailwindcss/no-unknown-classes": "error",
"tailwindcss/no-conflicting-classes": "error"
}
}npx oxlintentryPoint is the CSS file where you @import "tailwindcss". Setup has the recommended rules and the editor, monorepo and formatter setup.