Shadow Parts
CSS Schaduw Onderdelen geven ontwikkelaars een manier om elementen binnen de schaduw DOM van een component van buitenaf te stylen, terwijl de encapsulatie behouden blijft.
Introductie
De webforJ-componenten zijn gebouwd met behulp van Web Components, die vertrouwen op de Shadow DOM om de interne structuur en stijlen van een component te encapsuleren.
Web Components zijn een suite van technologieën waarmee je herbruikbare, geëncapsuleerde op maat gemaakte elementen kunt maken voor gebruik in webapplicaties.
De Shadow DOM voorkomt dat interne stijlen en markup naar buiten lekken of worden beïnvloed door externe stijlen. Deze encapsulatie zorgt ervoor dat componenten zelfvoorzienend blijven, wat het risico op stijlconflicten vermindert.
Encapsulatie is een belangrijk voordeel van Web Components. Door de structuur, stijlen en gedrag van een component gescheiden te houden van de rest van je app, voorkom je conflicten en behoud je schone, onderhoudbare code.
Echter, vanwege deze encapsulatie kun je elementen binnen een schaduw DOM niet direct stilen met standaard CSS-selectors.
Bijvoorbeeld, de dwc-button component render de volgende structuur:
<dwc-button>
#shadow-root (open)
<span class="control__prefix">...</span>
<span class="control__label">Button</span>
<span class="control__suffix">...</span>
...
</dwc-button>
Als je probeert de label zo te stylen:
/* Werkt NIET */
dwc-button .control__label {
color: pink;
}
zal het geen effect hebben, omdat het .control__label element zich binnen de schadow root bevindt.
Hier komen de CSS Schaduw Onderdelen in beeld.