Yes, I use Tailwind. Yes, I reach for component libraries when they fit. And still, on every project that matters, there's a file of hand-written CSS where the actual feel of the thing lives — and I'd argue that file is the most leveraged code I write.
What lives in that file
Open it on any of my projects and you'll find the same categories: easing curves tuned by eye, a reveal system, selection and focus styles, scrollbar treatment, the prose typography, and the two or three signature moves that make the site feel like itself instead of like its framework. Rarely more than 400 lines. Always the 400 lines people comment on.
/* fast in, long soft settle — tuned, not defaulted */
--ease-spring: cubic-bezier(0.16, 1, 0.3, 1);The argument
CSS is where design intent survives contact with the browser, or doesn't. An easing curve is a personality trait. A focus ring is a statement about who you built for. Utilities are excellent at applying decisions quickly — but the decisions themselves have to come from somewhere, and defaults are decisions someone else made for a product that isn't yours.
Handwriting CSS isn't nostalgia. It's the difference between choosing your defaults and inheriting them.
A craft argument, not a tooling one
This isn't utilities-versus-vanilla — my hand-written layer rides on top of Tailwind's tokens and happily uses its color-mix output. The argument is about attention: somewhere in your stack there should be a layer that exists only because a person looked at the rendered result and adjusted it until it felt right. Feel is not generatable, because feel is a sequence of judgments. That layer is where the judgments go.