tailwind

Tailwind CSS v4 with shadcn/ui — setup, configuration, component patterns, dark mode, and troubleshooting. Use when setting up Tailwind v4, building UI components, fixing Tailwind errors, migrating from v3, or styling with utility classes.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "tailwind" with this command: npx skills add hjewkes/agent-skills/hjewkes-agent-skills-tailwind

Tailwind CSS v4

Combined from jezweb/claude-skills (tailwind-v4-shadcn + tailwind-patterns). Production-tested.

Setup Quick Start

pnpm add tailwindcss @tailwindcss/vite
pnpm add -D @types/node tw-animate-css
pnpm dlx shadcn@latest init
rm tailwind.config.ts  # v4 doesn't use this

Use @tailwindcss/vite plugin (NOT PostCSS). Set "config": "" in components.json.

The Four-Step CSS Architecture

Skip any step and the theme breaks. See references/setup.md for full details.

  1. CSS Variables at :root — define colors with hsl() wrapper, NOT inside @layer base
  2. @theme inline — map CSS vars to Tailwind utilities (--color-background: var(--background))
  3. @layer base — apply base styles using unwrapped variables
  4. Resultbg-background auto-switches in dark mode, no dark: prefix needed

Critical Rules

Always: semantic tokens (bg-primary not bg-blue-500), mobile-first (base → sm: → md:), hsl() in :root/.dark, consistent spacing (4/6/8/12/16/24 scale)

Never: tailwind.config.ts (v4 ignores it), @apply with @layer classes (use @utility), double-wrap hsl(var(--color)), raw colors, .dark { @theme {} }, dark: variants for semantic colors

Quick Error Reference

SymptomFix
bg-primary doesn't workAdd @theme inline block
Colors black/whiteRemove double hsl() wrap
Dark mode stuckAdd ThemeProvider, check .dark on <html>
Build failsDelete tailwind.config.ts
Animation errorsReplace tailwindcss-animate with tw-animate-css
@apply breaksUse @utility directive instead
Base styles ignoredDon't wrap in @layer base, define at root

Full error details with solutions: references/common-errors.md

Component Patterns

Patterns use semantic tokens for automatic dark mode. See references/patterns.md for full library.

// Container
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">

// Responsive grid
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">

// Card
<div className="bg-card text-card-foreground rounded-lg border border-border p-6">

// Button
<button className="bg-primary text-primary-foreground px-4 py-2 rounded-md hover:bg-primary/90 transition-colors">

Reference Files

  • references/setup.md — full 4-step architecture + vite config + components.json
  • references/common-errors.md — 8 documented v4 errors with solutions
  • references/patterns.md — layouts, cards, buttons, forms, nav, typography
  • references/dark-mode.md — ThemeProvider, toggle, OKLCH colors
  • references/migration.md — v3 → v4 checklist and gotchas
  • templates/ — index.css, components.json, theme-provider.tsx, vite.config.ts, utils.ts

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

tailwind

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

self-improve

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

skills-management

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

agent-browser

No summary provided by upstream source.

Repository SourceNeeds Review