0Pricing
HTML Academy · Lezione

Part ed Exportparts per gli stili esterni

Esporre le parti del DOM shadow al CSS esterno con part ed exportparts

Part ed Exportparts per gli stili esterni è una lezione HTML Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento HTML Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso HTML Academy include 4 lezioni in totale.

Il compromesso dell'incapsulamento

Il rigoroso incapsulamento degli stili dello Shadow DOM impedisce agli utilizzatori di ristilizzare i singoli elementi all'interno di un componente. Le variabili CSS funzionano per le proprietà globali, ma non è possibile, per esempio, assegnare un border-radius personalizzato al pulsante interno "close". I part risolvono questo problema.

L'attributo part

Contrassegni un elemento interno allo shadow tree con part="name". Gli utilizzatori potranno quindi selezionarlo con il pseudo-elemento ::part(name): my-dialog::part(close-button) { color: red; }. L'elemento denominato diventa un punto di estensione per lo styling, mentre il resto dello shadow tree rimane incapsulato.

// Shadow tree:
<button part="close-button">×</button>
// Page CSS:
my-dialog::part(close-button) {
  color: red;
  border-radius: 50%;
}

Più part su un elemento

Separi i nomi con spazi per esporre un elemento come più part: part="button primary". ::part(button) lo seleziona in modo generico, mentre ::part(primary) lo seleziona come elemento con stile primario. Ogni nome viene associato in modo indipendente.

Limiti di ::part

::part consente solo alcune pseudo-classi, come :hover, :focus e :disabled, ma non i combinatori discendenti né ulteriori selezioni strutturali. ::part(card) p non è valido: non è possibile accedere all'interno di un part con selettori discendenti.

exportparts inoltra i part

Quando un custom element annida un altro custom element all'interno del proprio shadow tree, i part dell'elemento interno normalmente non sono esposti alla pagina esterna. exportparts="close-button" sull'elemento annidato inoltra quei part all'host esterno.

// Outer shadow:
<inner-element exportparts="close-button"></inner-element>
// Page:
outer-element::part(close-button) { color: red; }

Rinominare durante l'esportazione

exportparts="close-button: dismiss" esporta il part interno con un nuovo nome sull'elemento esterno. In questo modo il componente esterno può offrire un'interfaccia di denominazione chiara, indipendente dagli elementi interni che compone.

part e proprietà personalizzate CSS

Le proprietà personalizzate espongono valori, come colori, spaziatura e font. I part espongono elementi, offrendo l'intera superficie CSS, inclusi bordi, trasformazioni e animazioni. Utilizzi le proprietà personalizzate per i token globali e i part per personalizzazioni occasionali a livello di elemento. Entrambi possono coesistere nello stesso componente.

Schema di tematizzazione

Prassi dei design system: esponga un numero limitato di part per gli elementi maggiormente personalizzati, come pulsanti, intestazioni e indicatori, insieme a un'ampia serie di proprietà personalizzate per colori, spaziatura e tipografia. Gli utilizzatori possono applicare il tema a livello di valore o di elemento, a seconda delle proprie esigenze.

Stabilità dei nomi dei part

I nomi dei part diventano parte dell'API pubblica del componente: modificarli rompe il CSS degli utilizzatori. Scelga nomi che descrivano il ruolo dell'elemento, come "close-button", "header" e "track", anziché la sua posizione, come "first-button", così l'API rimane significativa anche quando l'implementazione evolve.

Indicazioni per la documentazione

Elencare tutti i part disponibili, inclusi quelli esportati, nel readme del componente. Senza documentazione, gli utilizzatori devono ispezionare il DOM per scoprire i part, legandosi così a ciò che trovano in quel momento. Consideri l'elenco dei part come l'elenco delle props di un componente di un framework.

Supporto dei browser

::part ed exportparts sono disponibili in tutti i browser moderni. Anche le versioni meno recenti di Safari ora supportano ::part. Li utilizzi liberamente; per i browser molto vecchi, ormai quasi del tutto abbandonati, utilizzi come soluzione alternativa ulteriori proprietà personalizzate CSS.

Verifica delle conoscenze

Che cosa fa l'attributo exportparts?

Riepilogo

L'attributo part espone singoli elementi dello shadow tree per lo styling esterno tramite ::part(name), offrendo tutta la potenza del CSS senza compromettere l'incapsulamento. exportparts inoltra i part dai custom element annidati all'host esterno e consente anche di rinominarli. Combini i part con le proprietà personalizzate CSS per offrire una superficie completa di tematizzazione e documenti l'elenco dei part come parte dell'API del componente.

Domande Frequenti

La lezione «Part ed Exportparts per gli stili esterni» è gratuita?

Sì — il testo completo di «Part ed Exportparts per gli stili esterni» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso HTML Academy, passa a CoddyKit PRO. Il corso HTML Academy include 4 lezioni in totale.

Cosa imparerò in «Part ed Exportparts per gli stili esterni»?

Esporre le parti del DOM shadow al CSS esterno con part ed exportparts Eserciti HTML Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare HTML Academy?

Non è richiesta alcuna esperienza precedente. HTML Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «Part ed Exportparts per gli stili esterni»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione HTML Academy?

Sì. Ogni lezione HTML Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. attachShadow e Shadow Root
  2. Elementi slot per la distribuzione dei contenuti
  3. Stili con ambito nel DOM shadow
  4. Part ed Exportparts per gli stili esterni
← Torna a HTML Academy