> You cannot take a headless structure and apply different designs to it.
Depends on how you build things.
https://primevue.org/theming/unstyled/
https://primevue.org/theming/styled/
In most cases, though, there will inevitably be some blurring between the layers, your back end will be coupled to the data model somewhat and the front end will then be coupled to that, both the design, layout and functionality, unless you attempt to build a library or a framework that's detached from a specific project/domain.
For example, even Vue lets you extract your layout into a separate component and then fill it in with slots https://vuejs.org/guide/components/slots.html but nobody ever does that because that'd take more time and they end up just having BasketComponent instead of BasketLayout and BasketComponent, same for not trying to detach the styles from specific components, nobody wants to do that.
> Depends on how you build things.
Exactly! The more you put styling decisions into your components, the more you hardcode your visual design.