Setting Up Tailwind CSS 4.0 with Vite: A Minimalist Approach
By Mosaddique
Introduction
Tailwind CSS 4.0 introduces a streamlined, zero-configuration-first approach to styling modern web applications. Paired with Vite’s lightning-fast build tool, integrating Tailwind into your project has never been simpler. In this article, we’ll walk through setting up Tailwind CSS 4.0 with Vite and explore its new features.
Why Tailwind CSS 4.0?
Tailwind CSS 4.0 focuses on simplicity and performance:
Zero initial configuration: Start using utility classes without generating a
tailwind.config.js
file.Improved performance: Smaller bundle sizes and faster builds.
Direct CSS customization: Use
@theme
and@plugin
directives directly in your CSS files.
Step 1: Install Tailwind CSS and Vite Plugin
Prerequisites
- A Vite project (React, Vue, or vanilla JavaScript).
Install Dependencies
Run the following command in your project directory:
npm install tailwindcss @tailwindcss/vite
This installs Tailwind CSS and its official Vite integration plugin.
Step 2: Configure Vite
Create or Update vite.config.js
If your project doesn’t have a vite.config.js
file, create one in the root directory. Add the Tailwind plugin:
// vite.config.js
import { defineConfig } from 'vite';
import tailwindcss from '@tailwindcss/vite';
export default defineConfig({
plugins: [tailwindcss()],
// plugins: [react(), tailwindcss()], if you are using react
});
This tells Vite to process Tailwind CSS during development and builds.
Step 3: Set Up Tailwind CSS
Create styles.css
In your src
directory, create a styles.css
file and import Tailwind’s core styles:
/* src/styles.css */
@import "tailwindcss";
This replaces the traditional @tailwind
directives with a single import.
Import CSS into Your App
Import the styles.css
file in your project’s entry point (e.g., main.js
, main.jsx
, or App.jsx
):
// For React (main.jsx)
import React from 'react';
import ReactDOM from 'react-dom/client';
import App from './App.jsx';
import './styles.css'; // Import here
ReactDOM.createRoot(document.getElementById('root')).render(<App />);
Step 4: Test Your Setup
Start the Development Server
Run:
npm run dev
Tailwind’s utility classes are now available in your project!
Verify with a Test Component
Add a Tailwind class to any element to confirm it works:
<h1 class="text-4xl font-bold text-blue-600">Hello Tailwind 4.0!</h1>
Customizing Tailwind (Optional)
Use Directives in CSS
Tailwind 4.0 allows customization directly in your styles.css
without a config file. For example:
/* src/styles.css */
@import "tailwindcss";
@theme {
--color-primary: #2563eb; /* Override default theme */
}
@plugin function({ addUtilities }) {
addUtilities({
'.rotate-45': { transform: 'rotate(45deg)' },
});
}
Key Features of Tailwind CSS 4.0
No Default Config: Start using Tailwind immediately—no boilerplate.
CSS-First Customization: Define themes and plugins in your CSS.
Improved Dark Mode: Simplified dark mode handling with
@dark
variants.Reduced Bundle Size: Optimized for performance.
Troubleshooting Tips
Styles Not Applying? Ensure
styles.css
is imported in your entry file.Vite Plugin Issues? Double-check the
vite.config.js
syntax.Custom Classes Missing? Use
@layer
directives in your CSS for component-specific styles.
Conclusion
Tailwind CSS 4.0 and Vite are a match made in developer heaven. With minimal setup and maximal flexibility, you can focus on building stunning interfaces without wrestling with configuration files. Give this modern workflow a try, and embrace the future of CSS!
For advanced configurations, refer to the Tailwind CSS 4.0 Documentation.