markup, CSS, presentational JS
logic, data, routing, etc.
Web components handle front-of-the-front-end code (e.g. the look and feel of a button)
JS libraries/frameworks handle back-of-the-front-end code (e.g. what happens when a user clicks on that button)
the overwhelming majority of web components don’t need to be web components.
basic, static components
For a (strong?) majority of UI components, we want the developer ergonomics of working with the web component abstraction, which again looks something like this:
<ds-badge variant="success" text="99 Luftballons" > </ds-badge>
But we want the browser to spit out something that looks like this:
<div class="badge badge--success"> 99 Luftballons </div>