tailwind-lint — validates class usage, detects conflicts, and suggests canonical v4 class names.
Quick Start
Run the Tailwind linter:apps/panel/src and reports Tailwind CSS issues.
What It Checks
1. Conflicting Classes
Detects when multiple classes apply the same CSS properties:2. Non-Canonical Class Names (v4 Style)
Suggests v4-preferred canonical names:| Issue | Suggestion |
|---|---|
flex-shrink-0 | shrink-0 |
flex-grow | grow |
bg-gradient-to-r | bg-linear-to-r |
!p-2 | p-2! (important modifier order) |
break-words | wrap-break-word |
max-w-[60px] | max-w-15 (use size tokens) |
3. Invalid Custom Classes
Reports classes that don’t exist in your Tailwind config.4. CSS Conflicts
Flags when multiple utilities produce conflicting styles.Running the Linter
Check for issues
Auto-fix issues
Verbose mode for debugging
JSON output
CI/CD Integration
Add to your deployment pipeline:Why tailwind-lint?
- ✅ Official Tailwind CSS linting tool
- ✅ Version support — Works with Tailwind v3 & v4
- ✅ Smart detection — Catches conflicting classes, not just syntax
- ✅ Canonical names — Suggests v4-preferred class names
- ✅ Auto-fix — Can automatically resolve many issues
- ✅ Monorepo-friendly — Better path resolution than ESLint plugins
Installation & Configuration
Already Configured
The SolidStart admin panel hastailwind-lint pre-configured:
--config flag points to the CSS entry file (app.css), which references the Tailwind config via @config.
Manual Installation
If setting up in another app:package.json:
Configuration File
tailwind-lint reads settings from:
.vscode/settings.json— IDE-level Tailwind settingstailwind.config.ts/js— Referenced in your CSS file via@config
.vscode/settings.json:
Example Issues & Fixes
Conflicting Classes
Non-Canonical Names
Important Modifier Order
Notes
- Style preferences — Some warnings suggest style preferences (e.g., canonical names). You can ignore if intentional.
- Workspace settings — The tool reads your IDE settings from
.vscode/settings.jsonif available. - Auto-fix limitations — Some complex conflicts require manual fixing.
- Performance — Linting is fast even on large codebases; safe to run frequently.
Related
- Tailwind CSS Documentation
- ESLint Integration — For TypeScript/JavaScript linting
- Code Quality Standards — Quality guidelines