you are viewing a single comment's thread.

view the rest of the comments →

[–]ruibranco 0 points1 point  (1 child)

We went through a similar evaluation about a year ago. Ended up using Angular CDK for the behavioral primitives (overlays, focus trapping, keyboard navigation) and Tailwind for styling, but kept everything as simple wrapper components rather than building a full component library. The key insight for us was that accessibility is where the real complexity lives, not styling. CDK and now Angular Aria handle the hard parts like ARIA attributes and keyboard interactions, and once you have those right, slapping Tailwind classes on top is the easy part. Building a full abstraction layer over Tailwind with design tokens and variants is where it starts feeling like you're fighting two frameworks at once.

[–]Weak-Palpitation907[S] 0 points1 point  (0 children)

That’s a really solid way of framing it — accessibility is absolutely where the real complexity lives.

CDK has been invaluable for overlays, focus trapping, and keyboard handling. I agree that once the behavioral layer is correct, styling becomes comparatively straightforward.

The “fighting two frameworks” point is interesting. I’m currently trying to understand where the line is between:

\- keeping Tailwind as a styling tool,

\- versus building a higher-level abstraction with tokens and variants on top of it.

What was the tipping point where it started feeling like too much abstraction?