tailwind

v2026.09.24

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.

GitHub
Install command
npx skhub add oakoss/tailwind
Markdown
SKILL.md

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
Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

Not specified

Source path

skills/tailwind

Default branch

main

Latest commit

85e3a39

Tree SHA

a4c9e7b