> React is also how you get consistent design across a major web app. Can you imagine if every button on every site was the same Windows button gray color, regardless of the site's color? It'd be awful! React components (with CSS classes) are a way for a site like Amazon to make all their buttons orange (although I don't actually know if Amazon uses React specifically).

I don't understand this point specifically. I make all buttons on a site have the same theme without needing a framework, library or build-step!

Why is React (or any other framework) needed? I mean, you say specifically "React is also how you get consistent design across a major web app.", but that ain't true.

It depends on the type of site/app you are building. If you are building a basic website (not a web application), or a simple application, you don't need React (or a similar framework like Vue or Angular). You might not even need Javascript at all.

However, as you build more complex and interactive applications, you need "framework", like React. It's essential to simply handle the complexity of such applications. You will not find a major web app that is built with out a framework (or if it is, the owners will essentially have to create their own framework).

When you're using such tools, they are how you enforce consistent UI. Take Tailwind, the hugely popular CSS framework (I believe its #1). They have nothing to do with Javascript ... but even they willl tell you (https://v3.tailwindcss.com/docs/reusing-styles#extracting-co...):

"If you need to reuse some styles across multiple files, the best strategy is to create a component if you’re using a front-end framework like React, Svelte, or Vue ..."

The author is completely mistaken in thinking React ... or even that layer of web technology at all (the development layer) ... has anything to do with what he is complaining about. It has everything to do with design choices, which are almost completely separate from which framework a site picks.

I am not convinced that, when using a framework (React, etc), the best way to enforce consistent UI is via the framework.

A button should be styled independent of the framework. That's how you will get consistency. Same with every other non-component element.

The use of the component framework should be to consistently style non-primitive style elements (all the standard HTML elements).

What value is there in using React/whatever in styling buttons, links, paragraphs, headings, various inputs, etc? Today, in 2026, even menus, tabs, etc are done with nothing more than primitive elements; what value does React bring to the consistency of menus that you don't already have?

Do you have any idea what you are talking about?

Serious question: I have one response for fellow web dev, and another (that would be pedantically explanatory, and maybe even offense to a web dev) for a non-web dev.

Design is more than styling, it is also behaviour and state, which is what react helps you encapsulate in a component.

> Design is more than styling, it is also behaviour and state,

Maybe I need an example of this for buttons: what behaviour on buttons should be consistent? What about state - what state on buttons should be consistent?

The core value of front-end JavaScript frameworks is state management. You don't need to use a framework, but the need to manage complex application state doesn't go away.

Take this example: when a checkout button on an ecommerce website/application is triggered, the button should reflect that state and prevent re-triggering the same action so the button has to be disabled, then ideally a loading state has to be shown. When that action fails, an error may need to be displayed. Ideally you would use native DOM states first, ARIA states may be used if no native DOM states can be used, and if that's not enough then custom data states may be necessary.

Styling should be reacting to application state, preventing impossible states and bugs to create predictable UIs. Thus, styling is also a state management concern. UI=fn(state).