Post

Honestly it's actually not bad, I'm exaggerating 😊 It's a super well-built library that solves a painful problem well. I actually love it for many things. But like all abstractions, it introduces another layer between the programmer.

It reminds me a lot of abstracting styling with CSS vs using Tailwind utility classes. Tailwind is appealing to me because it colocates markup + styling. You can look at a chunk of HTML and know exactly what it's doing. It may look messy, but I never have to go find & reverse engineer other files.

Working with abstracted CSS (i.e. class names for components) increases cognitive load because I often have to think about the required DOM structure (usually referencing an existing example), how the CSS actually works, and how changes to the CSS could cascade to (and break) other parts of the app.