Engineering Note

The Case for Vanilla CSS

Why I stopped using Tailwind for personal projects and what I gained. Separation of concerns and long-term maintainability.

Why Vanilla CSS?

Tailwind is effective, but it couples your markup to your design system tightly.

The Maintenance Burden

When you see class="px-4 py-2 bg-blue-500 rounded hover:bg-blue-600", you know what it looks like. But if you want to change "primary buttons" across the app, you need a multi-cursor grep search.

With CSS Variables:

.btn-primary {
  padding: var(--spacing-sm) var(--spacing-md);
  background: var(--color-primary);
  border-radius: var(--radius-sm);
}

This is "boring" code. And boring is good for maintenance.