tailwind

Tailwind CSS v4 patterns and design systems. Use when configuring Tailwind themes, building components, implementing dark mode, using container queries, migrating from v3, integrating shadcn/ui, or fixing build errors. Use for tailwind, css, styling, theme, design-tokens.

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 oakoss/agent-skills/oakoss-agent-skills-tailwind

Tailwind CSS (v4+)

Overview

Tailwind CSS v4 skill covering CSS-first configuration, design tokens, component patterns, shadcn/ui integration, dark mode, container queries, migration from v3, and custom utilities.

When to use: Configuring Tailwind themes, building utility-first components, implementing dark mode, using container queries, migrating from v3, integrating shadcn/ui, troubleshooting build errors.

When NOT to use: Tailwind v3 legacy projects that will not upgrade, projects using a different styling approach (CSS Modules, styled-components) without plans to adopt Tailwind.

Quick Reference

PatternAPIKey Points
CSS-first config@theme { --color-brand: oklch(...); }All config in CSS, no tailwind.config.js
Import entry@import "tailwindcss";Replaces @tailwind base/components/utilities
Custom utilities@utility name { ... }Replaces @layer utilities, works with variants
Functional utilities@utility tab-* { tab-size: --value(--tab-size-*); }Accept dynamic values via --value()
Plugin loading@plugin "@tailwindcss/typography";Replaces require() in config
Container queries@container parent + @md: childBuilt-in, no plugin needed
Named containers@container/sidebar + @md/sidebar:Scope queries to specific containers
Dark mode variant@custom-variant dark (&:where(.dark, .dark *));Class-based dark mode override
Theme inline@theme inline { --color-bg: var(--bg); }Inlines values at build, single-theme only
Source detection@source "../node_modules/my-lib";Explicitly add scan paths
Reference import@reference "../../app.css";Use theme in Vue/Svelte scoped styles
Override defaults--color-*: initial; inside @themeReset a category before redefining
Dynamic valuesgrid-cols-(--my-var)Use CSS variables in utility values
Text shadowstext-shadow-*Built-in text shadow utilities
Starting stylesstarting:opacity-0@starting-style variant for entry animations
Masksmask-*CSS mask utilities for image/gradient masking
Field sizingfield-sizing-contentAuto-sizing textareas and inputs
Inset shadowsinset-shadow-*, inset-ring-*Inner shadow and ring utilities
User validationuser-valid:, user-invalid:Form validation after user interaction
Pointer queriespointer-fine:, pointer-coarse:Target input device precision
Inertinert:opacity-50Style inert elements
Logical spacingpbs-*, pbe-*, mbs-*, mbe-*Block-direction padding/margin (v4.2)
Logical sizinginline-*, block-*, min-inline-*, max-block-*Logical width/height utilities (v4.2)
Logical insetinset-s-*, inset-e-*, inset-bs-*, inset-be-*Logical positioning; replaces start-*/end-*
Logical bordersborder-bs-*, border-be-*Block-direction border utilities (v4.2)
Font featuresfont-features-['smcp']OpenType font-feature-settings (v4.2)
New color palettesmauve, olive, mist, taupeAdditional neutral palettes (v4.2)
Webpack integration@tailwindcss/webpackRun Tailwind as a webpack plugin (v4.2)
Color spaceOKLCHDefault in v4, sRGB fallbacks generated

Common Mistakes

MistakeCorrect Pattern
Using tailwind.config.js in v4Configure via @theme { ... } in CSS
hsl(var(--background)) double-wrapReference directly: var(--background)
:root/.dark inside @layer baseDefine at root level, outside any @layer
@apply with @layer components classesUse @utility directive for custom utilities
@theme inline for multi-theme switchingUse @theme without inline for dynamic themes
Raw colors like bg-blue-500 everywhereSemantic tokens (bg-primary) that auto-adapt
require() or @import for pluginsUse @plugin "package-name";
tailwindcss-animate in v4Use tw-animate-css instead
Missing @theme inline with shadcn/uiMap all CSS variables in @theme inline block
Using theme('colors.brand') in CSSUse var(--color-brand) native CSS variables
Using deprecated start-*/end-* insetUse inset-s-*/inset-e-* logical utilities

Delegation

  • Class pattern discovery and usage examples: Use Explore agent
  • v3 to v4 migration across multiple files: Use Task agent
  • Design token hierarchy and theming architecture: Use Plan agent

If the motion skill is available, delegate complex animation patterns (spring physics, gestures, scroll-linked) to it.

References

  • Configuration -- CSS-first config, @theme, @theme inline, @utility, @plugin, @source, @reference, @variant directives
  • Design Tokens -- OKLCH token system, brand scales, semantic tokens, shadows, z-index, fluid typography
  • Component Patterns -- Layouts, grids, container queries, 3D transforms, subgrid, CVA variants
  • UI Patterns -- Buttons, forms, navigation, cards, typography with variants, states, accessibility
  • Dark Mode -- Class-based dark mode, multi-theme systems, ThemeProvider, @custom-variant
  • shadcn/ui Integration -- Four-step architecture, components.json, tw-animate-css, Vite setup
  • Migration -- v3 to v4 migration steps, breaking changes, upgrade tool, common gotchas
  • Troubleshooting -- Common errors, build fixes, CSS layer issues, PostCSS problems

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

playwright

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

ui-ux-polish

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

tanstack-form

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

find-skills

No summary provided by upstream source.

Repository SourceNeeds Review