🔥 Pro Tips
Leverage JIT Compiler Superpowers
Enable JIT mode for instant design iteration without compiling. Add mode: 'jit'
to your tailwind.config.js
and forget build delays.
// tailwind.config.js
module.exports = {
mode: 'jit',
content: ['./src/**/*.{html,js}'],
// ...rest of config
}
Custom Themes with Arbitrary Values
Break free from pre-defined colors and fonts with [color]
syntax. Create one-off styles without bloating your CSS.
<div class="text-[#2f8557] bg-gradient-to-r from-[#38bdf8] to-[#60a5fa] p-4 rounded-2xl">
Custom gradient with hex values
</div>
Merge Utility Classes with @apply In PostCSS
Combine commonly used class combinations into reusable components while keeping your HTML clean with PostCSS @apply
.
.button {
@apply py-3 px-6 rounded-lg font-medium bg-blue-600 text-white hover:bg-blue-700
}
Grid Superpowers with Auto-flow
Create dynamic responsive layouts with Tailwind's grid auto-flow. Great for Masonry layouts or dynamic item streams.
<div class="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-6 auto-rows-fr auto-flow-dense">
</div>
Custom Screens for Unique Breakpoints
Define breakpoints that match your design needs instead of fighting with defaults. Perfect for device-specific layouts.
screens: {
'xs': '320px',
'tablet': '768px',
'desktop': '1024px',
'4k': '2560px'
}
Use Variants Like a Pro
Create dynamic combinations of states with group variants. Enables complex hover/focus/active interactions without JavaScript.
<div class="group">
<button class="text-white hover:text-blue-300 group-hover:text-indigo-300">
Click me
</button>
</div>
Dark Mode with Dynamic Storage
Implement dark mode with localStorage persistence. Tailwind's built-in dark classes make it easy to support both system and user preferences.
<script>
document.querySelector('html').classList.toggle('dark', localStorage.theme === 'dark')
</script>
<button onclick="toggleDarkMode()">Toggle Dark Mode</button>
Create Custom Plugins for Component Reuse
Build domain-specific components with Tailwind plugins. Great for complex UI elements that follow your design system.
const plugin = require('tailwindcss/plugin')
module.exports = plugin(function ({ addComponents }) {
addComponents({
'.notification': {
'@apply': 'px-4 py-2 rounded-md shadow-sm bg-yellow-100 text-yellow-800',
}
})
})
Animate Like Webflow with Motion
Bring Framer Motion-level animations to Tailwind projects with animate.css
classes and CSS transitions.
<div class="transition-all duration-300 hover:scale-105 hover:-translate-y-2">
Animated card
<div class="transition-opacity opacity-0 hover:opacity-100 transition-delay-200">
Tooltip
</div>
</div>
Optimize for Production with Purge Options
Trim unused CSS with precise Purge options to keep bundles small. Define which files to analyze with purge
configuration.
module.exports = {
purge: {
enabled: true,
content: [
='./public/index.html',
'./src/**/*.{js,jsx,ts,tsx}',
],
options: {
defaultExtractor: (content) =>
content.match(/[A-Za-z0-9_-]+/g) || []
}
},
}
Want More Tailwind Magic?
Checkout my WebGPU experiments or join my newsletter for weekly deep dives.