What is Tailwind CSS
Tailwind CSS is a low-level, utility-first CSS framework that provides highly composable, customizable utility classes to build modern user interfaces. Unlike traditional CSS frameworks like Bootstrap or Foundation that provide pre-designed components, Tailwind allows developers to create unique designs without leaving the HTML file.
Utility-First Approach
The utility-first approach is a core principle behind Tailwind CSS. In traditional CSS authoring, we tend to create custom classes or IDs for HTML elements and define their styles within a separate CSS file. However, this could lead to large, unwieldy stylesheets, and a disconnect between the HTML and CSS.
In contrast, the utility-first approach promotes composing your styles directly in your HTML markup using utility classes. Each utility class in Tailwind corresponds to a specific CSS property-value pair. For instance, the class text-center
applies the CSS rule { text-align: center; }
. Similarly, bg-blue-500
applies a specific shade of blue as the background color, corresponding to { background-color: #3b82f6; }
.
The utility-first approach leads to several advantages:
-
Faster prototyping
You can rapidly prototype a design directly in your markup without having to switch between HTML and CSS files. -
Better maintainability
With all the styles being applied at the component level, it reduces the risk of styles clashing across different parts of your application. -
High customizability
You can customize the design of each component on the fly, allowing for more unique and flexible designs.
Setting up Tailwind CSS
Setting up Tailwind CSS in your project is a straightforward process that involves a few key steps:
-
Installation
Tailwind CSS is available as an npm package. To install it, you'll need Node.js and npm installed on your machine. You can then add Tailwind CSS to your project by running the commandnpm install tailwindcss
. -
Creating Configuration File
After installing, you can generate a default configuration file (tailwind.config.js
) for your project using the commandnpx tailwindcss init
. This configuration file is where you'll customize Tailwind's default settings, add new utilities, and control variant generation. -
Including Tailwind in your CSS
In your CSS file, you'll need to use the@import
directive to pull in Tailwind's base, components, and utilities styles. An example of your CSS file might look like:
@import 'tailwindcss/base';
@import 'tailwindcss/components';
@import 'tailwindcss/utilities';
Basic Tailwind CSS Utilities
Tailwind CSS provides a wealth of utility classes that cover almost every CSS property you would need to style your HTML elements. Let's delve into some of these utilities.
Background Color
Tailwind CSS provides a wide variety of background color utilities. You can set the background color of an element using the bg-{color}
utility, where {color}
is a placeholder for the color you want to apply.
For instance, if you want to set the background color of a div to blue, you can do it as follows:
<div class="bg-blue-500">
This is a blue div.
</div>
In the above example, bg-blue-500
sets the background color of the div to a specific shade of blue. Tailwind CSS provides a wide palette of colors, each with various shades that can be used.
Text Color and Size
To set the text color, you can use the text-{color}
utility. For instance, to set the text color to white, you can do it as follows:
<div class="text-white">
This is white text.
</div>
For text size, Tailwind provides a set of utilities in the form text-{size}
. {size}
can be xs
, sm
, base
, lg
, xl
, 2xl
, 3xl
, 4xl
, 5xl
, or 6xl
. For example, to make text large, you can use text-lg
:
<div class="text-lg">
This is large text.
</div>
Padding, Margin, and Spacing
Tailwind CSS provides a comprehensive set of spacing and layout utilities. For example, to control the padding around an element, you can use the p-{size}
utility.
<div class="p-4">
This div has a padding size of 4.
</div>
Similarly, you can control the margin around an element using the m-{size}
utility.
Furthermore, Tailwind allows you to control the vertical and horizontal padding and margin separately using px-{size}
, py-{size}
, mx-{size}
, and my-{size}
utilities. You can also control individual sides with pt-{size}
, pr-{size}
, pb-{size}
, pl-{size}
, mt-{size}
, mr-{size}
, mb-{size}
, and ml-{size}
.
References