How much of this is a cage we've built for ourselves? When I made my first website in 1998 even if we had had LLMs asking one how to change the color of a button would be ludicrous because I'd change an HTML attribute (did CSS exist back then? don't remember) either in a static file or in a perl script. That's it. And the modern "throw a hundred and seven frameworks at it" stack doesn't really do anything that simple CGI CRUD app couldn't do.
What has changed over the years is our expectations and requirements. Sure, you can skip "all the noise" and slap an attribute on your button, but then you'll have to track down another 20 buttons in your codebase that need a color update. You can be smart with your approaches, but at a certain project size and complexity, frameworks are unavoidable. The only choice you really have is to learn an established one or handcraft something new for every thing you make.
That’s the problem template languages solve. That button could be a partial, and you include it where you want a button. And with grep, you can track it down.
The problem with frameworks is with feature/need fit. Sometimes you need something simple and using a framework results in a big percentage of dead code. Or you extend it enough that there’s no longer any benefits.