
tailwind-css
Set up and use Tailwind CSS v4 only with Next.js (App Router), Vite, or CLI; no tailwind.config.js—theme via @theme in CSS. Use when styling with Tailwind, configuring Tailwind, installing Tailwind, utility classes, @theme, @layer, @utility, or when the user mentions Tailwind CSS or Tailwind v4.
- Installs
- 70
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/enderpuentes/ai-agent-skills --skill tailwind-css- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads tailwind-css automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Tailwind CSS (v4)
Overview
Tailwind CSS is a utility-first CSS framework. Style by combining single-purpose classes in markup.
We use Tailwind v4 only. There is no tailwind.config.js, tailwind.config.ts, or tailwind.config.mjs. Configuration is done in CSS via @import "tailwindcss" and the @theme directive, plus the Vite or PostCSS plugin.
- Entry: One main CSS file with
@import "tailwindcss"; - Build:
@tailwindcss/vite(Vite) or@tailwindcss/postcss(Next.js) - Theme:
@theme { ... }in that same CSS file (or imported CSS). No JS config.
Core principle: Prefer utility classes in markup; extend with @theme and custom CSS when needed. Never suggest or create tailwind.config.* or content/theme in a config file.
Installation
Next.js (App Router, 15+)
- Create project (if needed):
create-next-app@latest— see Next.js docs. - Add packages:
tailwindcss,@tailwindcss/postcss,postcss(via your package manager). - Create
postcss.config.mjsin project root:
const config = {
plugins: {
"@tailwindcss/postcss": {},
},
};
export default config;
- In
./app/globals.css:
@import "tailwindcss";
- Run the dev script (e.g.
devin package.json).
Use className in React/TSX (e.g. in app/page.tsx):
export default function Home() {
return (
<h1 className="text-3xl font-bold underline">
Hello world!
</h1>
);
}
Ensure app/globals.css is imported in app/layout.tsx (Create Next App does this by default).
Vite (React, Vue, Qwik, etc.)
- Add packages:
tailwindcss,@tailwindcss/vite(via your package manager). - In
vite.config.ts:
import tailwindcss from '@tailwindcss/vite'
export default defineConfig({
plugins: [tailwindcss(), /* ... */],
})
- Main CSS (e.g.
src/index.css):@import "tailwindcss";
Tailwind CLI (standalone)
- Add packages:
tailwindcss,@tailwindcss/cli(via your package manager). - Main CSS:
@import "tailwindcss"; - Build:
@tailwindcss/cli -i ./src/input.css -o ./src/output.css --watch(invoke via package manager).
Using Tailwind
- Use utility classes in markup:
classNamein React/Next.js,classin Qwik/Vue. - Prefer design tokens (theme) over arbitrary values when possible.
- Group related utilities for readability (layout → spacing → typography → colors → effects).
Examples: text-3xl font-bold underline, flex items-center gap-4, p-6 rounded-xl bg-white shadow-lg, max-w-sm mx-auto.
Theme: @theme only (no config file)
Only in CSS. Use @theme in the same file as @import "tailwindcss" (or in CSS imported by it).
Extending the default theme
@import "tailwindcss";
@theme {
--font-display: "Satoshi", "sans-serif";
--breakpoint-3xl: 120rem;
--color-avocado-500: oklch(0.84 0.18 117.33);
--ease-fluid: cubic-bezier(0.3, 0, 0, 1);
}
Use: font-display, 3xl:, bg-avocado-500, ease-fluid.
Overriding defaults
Redefine a variable inside @theme to override:
@theme {
--breakpoint-sm: 30rem;
}
Theme variable namespaces (quick reference)
| Namespace | Use for | Examples |
|---|---|---|
--color-* | Colors | bg-*, text-*, border-* |
--font-* | Font family | font-sans, font-mono |
--text-* | Font size | text-xl, text-base |
--font-weight-* | Font weight | font-bold |
--breakpoint-* | Responsive variants | sm:, md:, lg: |
--spacing-* | Spacing/sizing | p-4, gap-2, m-6 |
--radius-* | Border radius | rounded-lg |
--shadow-* | Box shadow | shadow-md |
--ease-* | Transition timing | ease-out |
--animate-* | Animations | animate-spin |
Referencing other variables
Use @theme inline when a token should reference another variable:
@theme inline {
--font-sans: var(--font-inter);
}
Custom keyframes
Define keyframes inside @theme so they are used by --animate-*:
@theme {
--animate-fade-in-scale: fade-in-scale 0.3s ease-out;
@keyframes fade-in-scale {
0% { opacity: 0; transform: scale(0.95); }
100% { opacity: 1; transform: scale(1); }
}
}
For more theme options (overriding full namespaces, custom theme, sharing across projects), see reference.md.
Custom styles
Plain CSS
Add any custom CSS in the same file as @import "tailwindcss" or in imported files:
@import "tailwindcss";
.my-custom-style {
/* ... */
}
Base layer
Use @layer base for element defaults:
@layer base {
h1 { font-size: var(--text-2xl); }
h2 { font-size: var(--text-xl); }
}
Component layer
Use @layer components for reusable component-like classes (override with utilities when needed):
@layer components {
.card {
background-color: var(--color-white);
border-radius: var(--radius-lg);
padding: var(--spacing-6);
box-shadow: var(--shadow-xl);
}
}
Custom utilities: @utility
Simple utility:
@utility content-auto {
content-visibility: auto;
}
Complex (e.g. scrollbar hidden):
@utility scrollbar-hidden {
&::-webkit-scrollbar {
display: none;
}
}
Custom variants: @variant
Use @variant inside custom CSS:
.my-element {
background: white;
@variant dark {
background: black;
}
}
Or register a named variant with @custom-variant:
@custom-variant theme-midnight (&:where([data-theme="midnight"] *));
Then use: theme-midnight:bg-black.
Arbitrary values and properties
- Arbitrary value:
top-[117px],bg-[#bada55],text-[22px],lg:top-[344px]. - CSS variable in arbitrary value:
fill-(--my-brand-color)(shorthand forfill-[var(--my-brand-color)]). - Arbitrary property:
[mask-type:luminance],[--scroll-offset:56px]. - Whitespace in value: Use underscore
_for space, e.g.grid-cols-[1fr_500px_2fr]. - Ambiguity: Use a type hint:
text-(length:--my-var)vstext-(color:--my-var).
Compatibility
- Browsers: Tailwind v4 targets modern browsers (Chrome 111+, Safari 16.4+, Firefox 128+). Some utilities use newer features; avoid those if you need older support.
- Preprocessors: Do not use Tailwind with Sass/Less/Stylus in the same pipeline; use Tailwind as the main styling layer.
Quick reference
| Task | Action |
|---|---|
| Entry | One CSS file with @import "tailwindcss"; |
| Next.js | @tailwindcss/postcss in postcss.config.mjs, no Tailwind config file |
| Vite | tailwindcss() from @tailwindcss/vite |
| Theme | @theme { ... } in CSS only |
| Base styles | @layer base { ... } |
| Components | @layer components { ... } |
| Custom util | @utility name { ... } |
| Custom variant | @custom-variant name (selector); |
Common mistakes
- Wrong attribute: React/Next use
className; Qwik/Vue useclass. - Missing import: The file with
@import "tailwindcss"must be the one loaded by the app (e.g. in root layout). - Config file: Do not create or suggest
tailwind.config.js,tailwind.config.ts, or anytailwind.config.*. Do not suggestcontent: [],theme: {}, or plugins in a JS config. Tailwind v4 uses only CSS (@import "tailwindcss"+@theme) and the Vite/PostCSS plugin.
Additional resources
- reference.md — Theme options, official doc links, default theme summary.
- Official: Tailwind CSS v4 Docs — Installation, theme, adding custom styles, compatibility.
FAQ
What does the tailwind-css skill do?
Set up and use Tailwind CSS v4 only with Next.js (App Router), Vite, or CLI; no tailwind.config.js—theme via @theme in CSS. Use when styling with Tailwind, configuring Tailwind, installing Tailwind, utility classes, @theme, @layer, @utility, or when the user mentions Tailwind CSS or Tailwind v4.
How do I install tailwind-css?
Run npx skills add https://github.com/enderpuentes/ai-agent-skills --skill tailwind-css in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/tailwind-css/ (personal) or .claude/skills/tailwind-css/ (project).
Which AI agents can use tailwind-css?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is tailwind-css safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains tailwind-css?
It is published by enderpuentes in enderpuentes/ai-agent-skills. It has 70 recorded installs.
More from enderpuentes/ai-agent-skills
pagespeed-insights
enderpuentes/ai-agent-skills
Audit web pages for performance optimization following PageSpeed Insights guidelines. Use when analyzing page performance, optimizing web applications, reviewing performance metrics, implementing Core Web Vitals improvements, or when the user mentions page speed, performance optimization, Lighthouse scores, or Core Web Vitals.
conventional-commits
enderpuentes/ai-agent-skills
Generate and validate commit messages following the Conventional Commits specification. Use when creating git commits, writing commit messages, reviewing commit history, generating changelogs, or when the user mentions commits, commit messages, semantic versioning, or changelog generation.
typescript
enderpuentes/ai-agent-skills
Open the skill to read its SKILL.md instructions.
zod
enderpuentes/ai-agent-skills
Define and use Zod schemas for TypeScript-first validation: primitives, objects, arrays, unions, refinements, transform, z.infer, parse, safeParse. Use when validating input, parsing API data, form validation with react-hook-form, or when the user mentions Zod, schema validation, or z.infer.
shadcn-ui
enderpuentes/ai-agent-skills
Install and use shadcn/ui with Tailwind v4 and Next.js (App Router), Vite, or manual setup; configure components.json, add components via CLI, theming with CSS only. Use when adding shadcn/ui, installing shadcn, using Button, Card, Dialog, Form, or other shadcn components, or when the user mentions shadcn, shadcn/ui, or Radix UI with Tailwind.
jsdoc
enderpuentes/ai-agent-skills
Write and maintain JSDoc comments for JavaScript and TypeScript APIs: functions, classes, modules, parameters, returns, examples, and TODO annotations. Use when documenting code, generating API docs, setting JSDoc conventions, or when the user mentions JSDoc tags like @param, @returns, or @todo.
Popular frontend & design skills
setup-matt-pocock-skills
mattpocock/skills
Configure this repo for the engineering skills: set up its issue tracker, triage label vocabulary, and domain doc layout. Run once before first use of the other engineering skills.
frontend-design
anthropics/skills
Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.
hyperframes-animation
heygen-com/hyperframes
All animation knowledge for HyperFrames — atomic motion rules, multi-phase scene blueprints, scene transitions, broader motion-design techniques, AND the seven runtime adapters (GSAP default, plus Lottie, Three.js, Anime.js, CSS keyframes, Web Animations API, TypeGPU). Use for any motion or animation task: pick 2-4 rules and compose, or load a blueprint, or look up runtime-specific API (e.g. GSAP eases / Lottie player / Three.js mixer). Also covers auditing an existing composition's choreography (animation map) and 24 named text-animation effects. HyperFrames-native: single paused timeline, seek-safe, deterministic.
prototype
mattpocock/skills
Build a throwaway prototype to answer a design question. Use when the user wants to sanity-check whether a state model or logic feels right, or explore what a UI should look like.
hyperframes-core
heygen-com/hyperframes
The HyperFrames composition contract — build one renderable project. Use for composition structure, the data- timing attributes, class="clip", tracks, sub-compositions, variables, framework-owned media playback, deterministic-render rules, and validation. Read before writing composition HTML.
vercel-react-best-practices
vercel-labs/agent-skills
React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.