CSS is better than it was, but it's still a mountain of hacks on top of hacks, needing to conform to an HTML that was and is still largely designed for blog-like documents, not multi-screen, responsive app UIs.
Something as common as a combobox* (a textbox + dropdown, ideally with autocomplete) is still a pain to implement, requiring understanding positioning, anchoring, z-indices, scrollbars (and how they're different across operating systems), media queries, word-wrapping, box sizing, etc. And that's just the CSS side.
On the HTML and JS sides there's dynamic loading from the server (and what to do with clientside state in the meantime, loading indicators, etc.), accessibility, focus locking, blah blah.
Meanwhile, like 15 years ago that was a drag-and-drop WinForms control in Visual Studio.
It's "99% smooth sailing" if you work in it day and in day out, maybe, and are aware of all its quirks. But easy to learn it is not...
--------------
* If you want to see some of the complexity, take a look at a published combobox component like MUI's: https://mui.com/material-ui/react-autocomplete/#combo-box
Basic usage just requires a few lines of React, but the options and different behaviors are pretty complex, both in JS and in CSS. You can of course write something like this from scratch, it's just a lot more work than, say, a blog post.