Tailwind CSS Best Practices
Core Principles
- •Prefer utility classes over custom CSS for most styling
- •Keep class lists readable by grouping: layout → spacing → typography → color → effects
- •Use semantic HTML first; utilities should enhance, not replace structure
Variants & State
- •Use
hover,focus-visible,disabled,dark, andmotion-safevariants where appropriate - •Prefer
data-*andaria-*variants for stateful styling tied to DOM semantics - •Use
groupandpeerfor parent/sibling state without extra JS
Responsive & Container Queries
- •Start with the base styles, then add responsive variants (
sm,md,lg, ...) - •Use container query utilities when layout depends on parent size
Theming & Customization
- •Extend the theme in
tailwind.configinstead of ad-hoc custom classes - •Use
@layerfor custom utilities/components when repetition is unavoidable - •Avoid
@applyexcept for small, repeatable patterns
Maintainability
- •Extract reusable UI into components instead of repeating large class strings
- •Keep class names deterministic; avoid dynamic string concatenation when possible