. CSS controls the visual presentation with properties like
color,
font-size,
margin`.
Tailwind CSS sits on top of these technologies and generates utility classes for CSS. So understanding HTML semantics and how to construct web pages is necessary to effectively apply Tailwind's styling and layout utilities.
Some key aspects of HTML and CSS to understand before using Tailwind:
- HTML tags for structure and semantics
- CSS selectors, properties, and values
- Box model with margin, border, padding
- Flexbox, grid, and layout methods
- Media queries for responsive breakpoints
- Common UI elements and patterns
With foundational HTML/CSS knowledge, you'll be set up to start taking advantage of Tailwind's extensive library of utility classes.
Node.js and npm
We'll be installing and configuring Tailwind CSS through Node.js and npm, so having them installed ahead of time is required.
Node.js provides the runtime environment for JavaScript outside of the browser. npm is the default package manager that comes bundled with Node.js.
Together they allow us to install Tailwind CSS and its dependencies seamlessly. So before proceeding, make sure you have the latest versions of Node.js and npm installed.
Verify the installs by running:
node -v
npm -v
This will output the installed versions, which should be fairly recent like node v16+ and npm 6+.
Command Line Interface
We'll be using the command line interface (CLI) to initialize our Tailwind CSS project, install packages, and generate configuration files.
You don't need to be a command line expert, but knowing basics like navigating directories, listing files, creating folders, etc will be handy.
Here are some common commands we'll use:
cd
to change directoriesls
to list folder contentsmkdir
to make a new foldernpm init
to initialize a Node.js projectnpm install
to install packages
Don't worry if you're new to the CLI - we'll provide all the exact commands needed during the install process.
Text Editor
You'll want a programming text editor like Visual Studio Code to work with the Tailwind CSS files.
Any editor will do as long as it can syntax highlight HTML, CSS, and JavaScript. The editor will help you efficiently write code and see changes live.
Design Knowledge
A key benefit of Tailwind CSS is it handles most of the styling and design considerations for you out of the box. But having some understanding of web design patterns, component architecture, layouts, responsiveness and accessibility best practices will help maximize effectiveness.
We'll cover examples of common UI patterns like navigation bars, cards, modals built with Tailwind utilities. Think about the overall interface and component architecture for your site beforehand.
Understanding design concepts like consistency, visual hierarchy, spacing, typography will allow you to better utilize Tailwind's design-driven utility classes.
Installing Tailwind CSS
Now that we've covered the prerequisites, let's walk through installing and configuring Tailwind CSS step-by-step:
Initialize npm project
First, open up your terminal and navigate into the directory you want to initialize the Tailwind CSS project in.
Run the npm init
command and walk through the prompts to create a package.json
file. This will define our Node.js project and allow us to track dependencies like Tailwind CSS.
npm init
Install Tailwind CSS package
Next, with npm ready to go, we can install the Tailwind CSS package:
npm install tailwindcss
This will install the latest version of Tailwind CSS. You can also install a specific version if needed:
npm install [email protected]
Note that Tailwind CSS has some peer dependencies we'll need to install as well:
npm install -D tailwindcss postcss autoprefixer
This will install Tailwind CSS and the required plugins to handle our CSS.
Configure Tailwind CSS
Next up is configuring Tailwind CSS by generating a basic tailwind.config.js
file:
npx tailwindcss init
This config file defines settings like design tokens, color themes, responsive breakpoints and more. We'll stick with the defaults for now but can customize it further later on.
Include Tailwind CSS
Finally, open up your CSS file and include the Tailwind directives:
@tailwind base;
@tailwind components;
@tailwind utilities;
This will inject Tailwind's generated CSS classes into your CSS. You can now start using Tailwind's utility classes to style elements!
Your First Tailwind Components
With Tailwind CSS installed and configured, let's look at some examples of how to construct UI components using Tailwind's utility classes:
Layout examples
Centering elements horizontally and vertically can be done with mx-auto
and Flexbox utilities:
<div class="mx-auto flex items-center justify-center h-full">
Centered content
</div>
Creating columns with the CSS grid and gap utilities:
<div class="grid grid-cols-3 gap-4">
<div>Column 1</div>
<div>Column 2</div>
<div>Column 3</div>
</div>
Making elements responsive using sm:
and md:
prefixes:
<div class="sm:text-center md:text-right">
Responsive text
</div>
Styling examples
Text colors:
<p class="text-black">...</p>
<p class="text-blue-500">...</p>
Font sizes:
<p class="text-lg">...</p>
<h2 class="text-2xl">...</h2>
Padding and margin helpers:
<div class="p-4 m-2">...</div>
<div class="mx-auto my-8">...</div>
Rounded corners, shadows, hover states:
<button class="rounded shadow hover:bg-blue-500">...</button>
Components
Navigation bar:
<nav class="flex bg-gray-100 px-4 py-2">
<a href="https://floatui.com">Home</a>
<a href="https://floatui.com/about">About</a>
<a href="https://floatui.com/contact">Contact</a>
</nav>
Button:
<button class="bg-blue-500 text-white px-4 py-2 rounded hover:bg-blue-600">
Submit
</button>
Card:
<div class="p-4 rounded shadow flex">
<div>
<h3>Card title</h3>
<p>Card content</p>
</div>
</div>
Form:
<form class="space-y-4">
<div>
<label>Name</label>
<input class="border" type="text">
</div>
<button class="bg-blue-500 text-white px-4 py-2 rounded hover:bg-blue-600">
Submit
</button>
</form>
Responsive design
Breakpoints to change styles by screen size:
<div class="text-lg sm:text-xl md:text-2xl">
Scaling text
</div>
Show/hide elements:
<div class="sm:hidden md:block">...</div>
See how entire components adapt across breakpoints:
<div class="grid sm:grid-cols-3 md:grid-cols-4 gap-4">
<!-- cards... -->
</div>
Composing components
With Tailwind's extensive catalog of utility classes, you can rapidly compose components:
- Combine layout, styling, positioning utilities
- Construct UIs responsive across device sizes
- Refer to docs for all available classes
- Be creative in experimenting with class composition!
For example, you could build a custom landing page hero section with a headline, text, button and image by composing Tailwind classes:
<header class="bg-gray-100 py-20">
<div class="container mx-auto text-center">
<h1 class="text-4xl font-bold mb-2">Welcome to my Site!</h1>
<p class="text-lg mb-8">This is an example hero section</p>
<button class="bg-blue-500 text-white px-4 py-2 rounded hover:bg-blue-600">Get Started</button>
</div>
<img src="hero-image.jpg" class="mx-auto mt-10" />
</header>
The composability of classes is what makes Tailwind so customizable and flexible.
Configuring Your Project
Let's explore some ways to customize and configure Tailwind CSS for your specific project needs:
Tailwind Config
The tailwind.config.js
file allows extensive customization:
- Change prefix from
tw-
to something shorter - Extend spacing, font sizes, colors, breakpoints
- Enable dark mode, RTL layouts, accessibility variants
Extracting Components
Extract repeat utility patterns into reusable CSS files:
/* buttons.css */
.btn {
@apply py-2 px-4 rounded;
}
.btn-blue {
@apply bg-blue-500 text-white;
}
Then import into main CSS:
@import 'components/buttons.css';
This reduces duplicate code and allows sharing across projects.
Purging CSS
Tailwind generates a lot of unused CSS classes. Use the purge
option to remove unused styles in production:
// tailwind.config.js
module.exports = {
purge: ['./src/**/*.html'],
//...
}
This improves final CSS file size.
Extending Styles
Add custom colors, fonts, spacing values:
// tailwind.config.js
module.exports = {
theme: {
extend: {
colors: {
primary: '#FF6363'
}
}
}
}
Lets you theme Tailwind to your brand style.
Global CSS
Register global styles, CSS variables:
/* globals.css */
@layer components {
.icon {
@apply inline-block;
}
}
Apply sitewide without repeating code.
Conclusion
That wraps up this guide on installing Tailwind CSS and configuring it for your web projects!
Here are some key takeaways:
- Tailwind CSS speeds up development by providing pre-designed utility classes for styling and layout. No more custom CSS needed!
- Install via npm, customize settings in tailwind.config.js and include directives in CSS.
- Build UIs rapidly combining type, color, spacing, layout utilities.
- Configure themes, variants and breakpoints to match branding. Extract components for reusability.
- Purge unused CSS for better performance. Extend styles globally as needed.
- Active community and ecosystem around Tailwind for plugins and 3rd party tools.
Ready to start building beautiful, responsive sites easily with Tailwind CSS? Check out Tailwind components and templates from Float UI to boost your development!