Skip to main content

tailwind-validator

Validate Tailwind CSS v4 configuration and detect/prevent Tailwind v3 patterns. Use this skill when setting up Tailwind, auditing CSS configuration, or when you suspect outdated Tailwind patterns are being used. Ensures CSS-first configuration with @theme blocks.

Quellinformationen

Repository
shipshitdev/v0
Letzte Quellaktivität
23. April 2026 um 11:55
Erkannte Sprache von SKILL.md
Englisch
Sterne
1
Forks
0

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
3 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
tailwind-validator
description
Validate Tailwind CSS v4 configuration and detect/prevent Tailwind v3 patterns. Use this skill when setting up Tailwind, auditing CSS configuration, or when you suspect outdated Tailwind patterns are being used. Ensures CSS-first configuration with @theme blocks.
metadata
{"version":"1.0.0","tags":"tailwind, css, validation, frontend, configuration"}
# Tailwind 4 Validator Validates that a project uses Tailwind CSS v4 with proper CSS-first configuration. Detects and flags Tailwind v3 patterns that should be migrated. ## Purpose **CRITICAL**: Claude and other AI assistants often default to Tailwind v3 patterns. This skill ensures: - Projects use Tailwind v4 CSS-first configuration - Old `tailwind.config.js` patterns are detected and flagged - Proper `@theme` blocks are used instead of JS config - Dependencies are v4+ ## When to Use - **Before any Tailwind work**: Run validation first - **New project setup**: Ensure v4 is installed correctly - **After AI generates Tailwind code**: Verify no v3 patterns snuck in - **Auditing existing projects**: Check for migration needs - **CI/CD pipelines**: Prevent v3 regressions ## Quick Start ```bash # Validate current project python3 scripts/validate.py --root . # Validate with auto-fix suggestions python3 scripts/validate.py --root . --suggest-fixes # Strict mode (fail on any v3 pattern) python3 scripts/validate.py --root . --strict ``` ## What Gets Checked ### 1. Package Version ```json // GOOD: v4+ "tailwindcss": "^4.0.0" // BAD: v3 "tailwindcss": "^3.4.0" ``` ### 2. CSS Configuration (v4 CSS-first) **GOOD - Tailwind v4:** ```css /* app.css or globals.css */ @import "tailwindcss"; @theme { --color-primary: #3b82f6; --color-secondary: #64748b; --font-sans: "Inter", sans-serif; --breakpoint-3xl: 1920px; } ``` **BAD - Tailwind v3:** ```css /* Old v3 directives */ @tailwind base; @tailwind components; @tailwind utilities; ``` ### 3. Config Files **BAD - Should not exist in v4:** - `tailwind.config.js` - `tailwind.config.ts` - `tailwind.config.mjs` - `tailwind.config.cjs` **Note**: These files are deprecated in v4. All configuration should be in CSS using `@theme`. ### 4. PostCSS Configuration **GOOD - v4:** ```js // postcss.config.js (minimal or not needed) export default { plugins: { '@tailwindcss/postcss': {}, }, }; ``` **BAD - v3:** ```js // postcss.config.js module.exports = { plugins: { tailwindcss: {}, autoprefixer: {}, }, }; ``` ### 5. Import Patterns **GOOD:** ```css @import "tailwindcss"; @import "tailwindcss/preflight"; @import "tailwindcss/utilities"; ``` **BAD:** ```css @tailwind base; @tailwind components; @tailwind utilities; ``` ## Validation Output ``` === Tailwind 4 Validation Report === Package Version: tailwindcss@4.0.14 ✓ CSS Configuration: ✓ Found @import "tailwindcss" in src/app/globals.css ✓ Found @theme block with 12 custom properties ✗ Found @tailwind directive in src/styles/legacy.css (line 3) Config Files: ✗ Found tailwind.config.ts - should migrate to CSS @theme PostCSS: ✓ Using @tailwindcss/postcss plugin Summary: 2 issues found - Migrate tailwind.config.ts to @theme in CSS - Remove @tailwind directives from src/styles/legacy.css ``` ## Migration Guide ### From Tailwind v3 to v4 1. **Update package.json:** ```bash bun remove tailwindcss autoprefixer bun add tailwindcss@latest @tailwindcss/postcss ``` 1. **Update postcss.config.js:** ```js export default { plugins: { '@tailwindcss/postcss': {}, }, }; ``` 1. **Convert tailwind.config.js to CSS @theme:** **Before (v3):** ```js // tailwind.config.js module.exports = { theme: { extend: { colors: { primary: '#3b82f6', secondary: '#64748b', }, fontFamily: { sans: ['Inter', 'sans-serif'], }, }, }, }; ``` **After (v4):** ```css /* globals.css */ @import "tailwindcss"; @theme { --color-primary: #3b82f6; --color-secondary: #64748b; --font-sans: "Inter", sans-serif; } ``` 1. **Replace @tailwind directives:** **Before:** ```css @tailwind base; @tailwind components; @tailwind utilities; ``` **After:** ```css @import "tailwindcss"; ``` 1. **Delete old config files:** ```bash rm tailwind.config.js tailwind.config.ts ``` ## Common v3 Patterns to Avoid | v3 Pattern | v4 Replacement | |------------|----------------| | `@tailwind base` | `@import "tailwindcss"` | | `@tailwind utilities` | `@import "tailwindcss/utilities"` | | `tailwind.config.js` | `@theme` block in CSS | | `theme.extend.colors` | `--color-*` CSS variables | | `theme.extend.spacing` | `--spacing-*` CSS variables | | `theme.extend.fontFamily` | `--font-*` CSS variables | | `content: ['./src/**/*.tsx']` | Not needed (auto-detected) | | `plugins: [require('@tailwindcss/forms')]` | `@plugin "@tailwindcss/forms"` | ## v4 @theme Reference ```css @import "tailwindcss"; @theme { /* Colors */ --color-primary: #3b82f6; --color-primary-50: #eff6ff; --color-primary-900: #1e3a8a; /* Typography */ --font-sans: "Inter", system-ui, sans-serif; --font-mono: "JetBrains Mono", monospace; /* Spacing (extends default scale) */ --spacing-128: 32rem; /* Breakpoints */ --breakpoint-3xl: 1920px; /* Animations */ --animate-fade-in: fade-in 0.3s ease-out; /* Shadows */ --shadow-glow: 0 0 20px rgba(59, 130, 246, 0.5); /* Border radius */ --radius-4xl: 2rem; } @keyframes fade-in { from { opacity: 0; } to { opacity: 1; } } ``` ## Using with shadcn/ui shadcn/ui v2+ supports Tailwind v4. After running the shadcn CLI: 1. Verify `components.json` uses CSS variables 2. Check that generated components use v4 patterns 3. Ensure `@theme` includes shadcn color tokens: ```css @theme { --color-background: hsl(0 0% 100%); --color-foreground: hsl(222.2 84% 4.9%); --color-card: hsl(0 0% 100%); --color-card-foreground: hsl(222.2 84% 4.9%); --color-popover: hsl(0 0% 100%); --color-popover-foreground: hsl(222.2 84% 4.9%); --color-primary: hsl(222.2 47.4% 11.2%); --color-primary-foreground: hsl(210 40% 98%); --color-secondary: hsl(210 40% 96.1%); --color-secondary-foreground: hsl(222.2 47.4% 11.2%); --color-muted: hsl(210 40% 96.1%); --color-muted-foreground: hsl(215.4 16.3% 46.9%); --color-accent: hsl(210 40% 96.1%); --color-accent-foreground: hsl(222.2 47.4% 11.2%); --color-destructive: hsl(0 84.2% 60.2%); --color-destructive-foreground: hsl(210 40% 98%); --color-border: hsl(214.3 31.8% 91.4%); --color-input: hsl(214.3 31.8% 91.4%); --color-ring: hsl(222.2 84% 4.9%); --radius-sm: 0.25rem; --radius-md: 0.375rem; --radius-lg: 0.5rem; } ``` ## CI/CD Integration Add to your CI pipeline: ```yaml # .github/workflows/lint.yml - name: Validate Tailwind v4 run: | python3 scripts/validate.py \ --root . \ --strict \ --ci ``` ## Troubleshooting ### "Found tailwind.config.js but using v4" Some tools still generate v3 configs. Delete the file and use `@theme` instead. ### "@tailwind directives found" Replace with `@import "tailwindcss"`. The old directives are not supported in v4. ### "autoprefixer in postcss.config" Remove autoprefixer - it's built into `@tailwindcss/postcss`. ### "content array in config" v4 auto-detects content files. Remove the `content` config entirely.
Auf GitHub ansehen