Tailwind CSS is a utility-first CSS framework that provides low-level utility classes to build custom designs without leaving your HTML, enabling rapid UI development.
Tailwind CSS is a utility-first CSS framework that provides low-level utility classes to build custom designs without ever leaving your HTML. Unlike traditional CSS frameworks, Tailwind doesn’t provide pre-built components, but instead gives you the building blocks to create completely custom designs.
🎯 Core Philosophy
Utility-First Approach
- Atomic CSS classes for every property
- Composition over inheritance
- No opinionated components
- Maximum flexibility and customization
Design System Integration
- Consistent spacing scale
- Harmonious color palette
- Typography hierarchy
- Responsive breakpoints
Developer Experience
- IntelliSense support in editors
- Hot reload during development
- Purge unused CSS for production
- JIT compilation for speed
🚀 Key Features
Responsive Design
Responsive width
Responsive heading
Responsive paddingUtility Classes
Left
Center
Right
Item 1
Item 2
Item 3
Pseudo-Class Variants
Show on medium and up
Theme-aware content
🛠️ Configuration & Customization
tailwind.config.js
/** @type {import('tailwindcss').Config} */
module.exports = {
content: ['./src/**/*.{js,ts,jsx,tsx,html}', './public/index.html'],
theme: {
extend: {
colors: {
brand: {
50: '#eff6ff',
500: '#3b82f6',
900: '#1e3a8a',
},
},
fontFamily: {
sans: ['Inter', 'system-ui', 'sans-serif'],
},
spacing: {
18: '4.5rem',
88: '22rem',
},
},
},
plugins: [],
};Custom Utilities
// tailwind.config.js
module.exports = {
plugins: [
function ({ addUtilities, theme }) {
const newUtilities = {
'.text-shadow': {
textShadow: '0 2px 4px rgba(0,0,0,0.1)',
},
'.text-shadow-lg': {
textShadow: '0 4px 8px rgba(0,0,0,0.2)',
},
};
addUtilities(newUtilities);
},
],
};Component Classes
// tailwind.config.js
module.exports = {
plugins: [
function ({ addComponents }) {
addComponents({
'.btn': {
padding: '.5rem 1rem',
borderRadius: '.25rem',
fontWeight: '600',
},
'.btn-blue': {
backgroundColor: '#3490dc',
color: '#ffffff',
'&:hover': {
backgroundColor: '#2779bd',
},
},
});
},
],
};📊 Build Process
Development
# Watch mode with hot reload
npx tailwindcss -i ./src/input.css -o ./dist/output.css --watch
# JIT mode for faster builds
module.exports = {
mode: 'jit',
// ...
}Production
// PostCSS configuration
module.exports = {
plugins: {
tailwindcss: {},
autoprefixer: {},
cssnano: process.env.NODE_ENV === 'production' ? {} : false,
},
};Purge Unused CSS
// tailwind.config.js
module.exports = {
content: ['./src/**/*.{html,js}', './public/index.html'],
// CSS is automatically purged in production
};🎨 Design System
Color Palette
// Default color palette
colors: {
blue: {
50: '#eff6ff',
100: '#dbeafe',
500: '#3b82f6',
900: '#1e3a8a',
}
}
// Custom color palette
theme: {
extend: {
colors: {
primary: {
50: '#f0f9ff',
500: '#0ea5e9',
900: '#0c4a6e',
}
}
}
}Typography Scale
// Font sizes
fontSize: {
'xs': '.75rem',
'sm': '.875rem',
'base': '1rem',
'lg': '1.125rem',
'xl': '1.25rem',
'2xl': '1.5rem',
// ... up to 9xl
}
// Font weights
fontWeight: {
'thin': '100',
'light': '300',
'normal': '400',
'medium': '500',
'semibold': '600',
'bold': '700',
'extrabold': '800',
'black': '900',
}Spacing Scale
// Spacing values (rem)
spacing: {
'0': '0',
'1': '0.25rem', // 4px
'2': '0.5rem', // 8px
'3': '0.75rem', // 12px
'4': '1rem', // 16px
'5': '1.25rem', // 20px
'6': '1.5rem', // 24px
// ... up to 96 (24rem)
}🔧 Advanced Features
Arbitrary Values
Positioned element
Responsive grid
Directives
/* input.css */
@tailwind base;
@tailwind components;
@tailwind utilities;
/* Custom base styles */
@layer base {
html {
@apply font-sans;
}
}
/* Custom components */
@layer components {
.btn {
@apply px-4 py-2 bg-blue-500 text-white rounded;
}
}
/* Custom utilities */
@layer utilities {
.text-shadow {
text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
}Functions & Directives
/* Responsive variants */
@media (min-width: 768px) {
.md\:text-center {
text-align: center;
}
}
/* Dark mode */
@media (prefers-color-scheme: dark) {
.dark\:bg-gray-800 {
background-color: rgb(31 41 55);
}
}📱 Responsive Design
Breakpoint System
// Default breakpoints
screens: {
'sm': '640px',
'md': '768px',
'lg': '1024px',
'xl': '1280px',
'2xl': '1536px',
}
// Custom breakpoints
theme: {
extend: {
screens: {
'3xl': '1600px',
'4xl': '1920px',
}
}
}Mobile-First Approach
🎯 Best Practices
Utility Composition
Performance Optimization
// Only include used utilities
module.exports = {
content: ['./src/**/*.{html,js,ts,jsx,tsx}', './public/index.html'],
// Unused CSS is automatically removed
};Maintainability
// Use design tokens
module.exports = {
theme: {
extend: {
colors: {
'brand-primary': '#3b82f6',
'brand-secondary': '#10b981',
},
},
},
};🚀 Getting Started
Installation
# Install Tailwind CSS
npm install -D tailwindcss
# Initialize configuration
npx tailwindcss init
# Or with PostCSS
npm install -D tailwindcss postcss autoprefixer
npx tailwindcss init -pBasic Setup
/* src/input.css */
@tailwind base;
@tailwind components;
@tailwind utilities;
Tailwind App
Hello, Tailwind!
Build Process
# Development (watch mode)
npx tailwindcss -i ./src/input.css -o ./dist/output.css --watch
# Production (minified)
NODE_ENV=production npx tailwindcss -i ./src/input.css -o ./dist/output.css --minify🔮 Future & Evolution
Tailwind CSS v4.0
- CSS-in-JS integration
- Container queries support
- Enhanced performance
- New utility functions
Ecosystem Growth
- Framework integrations expanding
- Design system tools
- Component libraries built on Tailwind
- Educational resources
🌟 Community & Ecosystem
Official Tools
- Tailwind UI - Component library
- Headless UI - Unstyled components
- Heroicons - Icon library
- Tailwind Play - Online playground
Popular Integrations
- Next.js - React framework
- Nuxt.js - Vue.js framework
- Vite - Build tool
- Parcel - Zero-config bundler
- Astro - Static site generator
Learning Resources
- Official documentation - Comprehensive guides
- Tailwind Play - Interactive learning
- Tailwind Weekly - Newsletter
- Community Discord - Support and discussion
Website: tailwindcss.com GitHub: tailwindlabs/tailwindcss Documentation: tailwindcss.com/docs Playground: play.tailwindcss.com