(no title)
dylanjha | 1 year ago
This is the inherent tension. It requires good web component authoring to expose:
1. `part`s that can be accessed by application-level CSS
2. slots for the application developer to inject html
3. CSS custom properties (--variable) -- these pierce the shadow DOM
The web component authors have to be very intentional about these things. There are good examples and bad examples and I think people are still learning how to do this well.
fidotron|1 year ago
It is almost like the need for styling necessitates all the old dependency injection and factory gunk that older frameworks became notorious for.
dylanjha|1 year ago
.login-form { --button-outline-width: 2px; }
.credit-card-form { --button-outline-width: 2px; }
Of course, the component needs to be authored & documented in a way that supports this.
For example, shoelace has a "Drawer" component: https://shoelace.style/components/drawer
By default the drawer component has an "X" button in the header to close it. If you want to override that, instead of trying to style the nested "X" button you can pass in your own header actions with slot="header-actions"