Tailwind vs Traditional CSS
Compare utility-first styling with writing plain CSS and BEM, and learn when each approach shines.
The Old Way: Semantic CSS
The old way is semantic CSS: descriptive class names like .navbar or .card in a separate file, meant to describe purpose. Methods like BEM grew from this.
/* Traditional CSS */
.hero-title {
font-size: 3rem;
font-weight: 800;
color: #111827;
letter-spacing: -0.025em;
margin-bottom: 1.5rem;
}
<h1 class="hero-title">Build Something Great</h1>What Is BEM?
BEM means Block, Element, Modifier: a Block like .card, an Element like .card__title, and a Modifier like .card--featured. Clear, but it takes discipline.
<!-- BEM naming convention -->
<div class="card card--featured">
<img class="card__image" src="thumb.jpg" alt="" />
<h2 class="card__title">Featured Post</h2>
<p class="card__description">A short summary...</p>
<a class="card__link card__link--primary" href="#">Read More</a>
</div>All lessons in this course
- Utility-First CSS Explained
- Installing and Configuring Tailwind
- Your First Tailwind Page
- Tailwind vs Traditional CSS