Tailwind CSS
What is Tailwind CSS?
Tailwind CSS is a tiny, utility first↗ CSS framework for building custom designs, without the context switching that regular CSS requires. It is purely a CSS framework and does not provide any pre-built components or logic, and provides a very different set of benefits↗ compared to a component library like Material UI.
It makes CSS incredibly easy and quick to write, as shown by the following example:
Old CSS:
- Write CSS, often in a separate file
.my-class {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
background-color: #fff;
border: 1px solid #e2e8f0;
border-radius: 0.25rem;
padding: 1rem;
}
- Import CSS into your component
import "./my-class.css";
- Add the class to your HTML
<div class="my-class">...</div>
Equivalent in Tailwind:
- Just write classes in your HTML
<div
class="flex flex-col items-center justify-center rounded border border-gray-200 bg-white p-4"
>
...
</div>
When used together with React Components, it is extremely powerful for quickly building UIs.
Tailwind CSS has a beautiful built-in design system, that comes out of the box with a carefully chosen color palette, sizing patterns for styles such as width/height and padding/margin for a uniform design, as well as media breakpoints for creating responsive layouts. This design system can be customized and extended to create the exact toolbox of styles that your project needs.
Tru Narla better known as mewtru↗ gave an amazing talk on building a design system using Tailwind CSS↗.
Usage
Make sure you have editor plugins for Tailwind installed to improve your experience writing Tailwind.
Extensions and Plugins
Formatting
Tailwind CSS classes can easily get a bit messy, so a formatter for the classes is a must have. Tailwind CSS Prettier Plugin↗ sorts the classes in the recommended order↗ so that the classes match the outputted css bundle. When selecting Tailwind in the CLI, we will install and configure this for you when the prettier option is selected.
Conditionally Applying Classes
Conditionally adding classes using ternaries can get very messy and hard to read. These packages help in organizing your classes when using some conditional logic.
Useful Resources
Resource | Link |
---|---|
Tailwind Docs | https://tailwindcss.com/docs/editor-setup/↗ |
Tailwind Cheat Sheet | https://nerdcave.com/tailwind-cheat-sheet/↗ |
awesome-tailwindcss | https://github.com/aniftyco/awesome-tailwindcss/↗ |
Tailwind Community | https://github.com/tailwindlabs/tailwindcss/discussions/↗ |
Tailwind Discord Server | https://tailwindcss.com/discord/↗ |
TailwindLabs Youtube Channel | https://www.youtube.com/tailwindlabs/↗ |
Tailwind Playground | https://play.tailwindcss.com/↗ |