Novità di Chrome 117

Ecco cosa devi sapere:

Mi chiamo Adriana Jara. Scopriamo le novità per gli sviluppatori in Chrome 117.

Nuove funzionalità CSS per le animazioni di entrata e uscita.

Queste tre nuove funzionalità CSS completano il set per aggiungere facilmente animazioni di entrata e uscita e animare in modo fluido gli elementi chiudibili del livello superiore, come finestre di dialogo e popup.

La prima funzionalità è transition-behavior. Per la transizione di proprietà discrete, come display, utilizza il valore allow-discrete per transition-behavior.

.card {
  transition: opacity 0.25s, display 0.25s;
  transition-behavior: allow-discrete; /* Note: be sure to write this after the shorthand */
}

.card.fade-out {
  opacity: 0;
  display: none;
}

Quindi, la regola @starting-style viene utilizzata per animare gli effetti di entrata da display: none e nel livello superiore. Utilizza @starting-style per applicare uno stile che il browser può cercare prima che l'elemento venga aperto nella pagina.

/*  0. IS-OPEN STATE   */
/*  The state at which the element is open + transition logic */
.item {
  height: 3rem;
  display: grid;
  overflow: hidden;
  transition: opacity 0.5s, transform 0.5s, height 0.5s, display 0.5s allow-discrete;
}

/*  1. BEFORE-OPEN STATE   */
/*  Starting point for the transition */
@starting-style {
  .item {
    opacity: 0;
    height: 0;
  }
}

/*  2. EXITING STATE   */
/*  While it is deleting, before DOM removal in JS, apply this
    transformation for height, opacity, and a transform which
    skews the element and moves it to the left before setting
    it to display: none */
.is-deleting {
  opacity: 0;
  height: 0;
  display: none;
  transform: skewX(50deg) translateX(-25vw);
}

Infine, per dissolvere un popover o un dialog dal livello superiore, aggiungi la proprietà overlay all'elenco delle transizioni. Includi la sovrapposizione nella transizione o nell'animazione per animarla insieme al resto delle funzionalità e assicurati che rimanga nel livello superiore durante l'animazione. In questo modo, il movimento sarà molto più fluido.

[open] {
  transition: opacity 1s, display 1s allow-discrete;
}
[open] {
  transition: opacity 1s, display 1s allow-discrete, overlay 1s allow-discrete;
}

Consulta Quattro nuove funzionalità CSS per animazioni di entrata e uscita fluide per informazioni dettagliate su come utilizzare queste funzionalità per migliorare l'esperienza utente con il movimento.

Raggruppamento di array

Nella programmazione, il raggruppamento di array è un'operazione estremamente comune, che si verifica più spesso quando utilizziamo la clausola GROUP BY di SQL e la programmazione MapReduce (che è meglio pensare come map-group-reduce).

La possibilità di combinare i dati in gruppi consente agli sviluppatori di calcolare set di dati di ordine superiore. Ad esempio, l'età media di una coorte o i valori LCP giornalieri per una pagina web.

Il raggruppamento di array consente questi scenari aggiungendo i metodi statici Object.groupBy e Map.groupBy.

groupBy chiama una funzione di callback fornita una volta per ogni elemento di un iterabile. La funzione di callback deve restituire una stringa o un simbolo che indica il gruppo dell'elemento associato.

Nell'esempio seguente, tratto dalla documentazione MDN, è presente un array di prodotti con il metodo groupBy utilizzato per restituirli raggruppati per tipo.

const inventory = [
  { name: "asparagus", type: "vegetables", quantity: 5 },
  { name: "bananas", type: "fruit", quantity: 0 },
  { name: "goat", type: "meat", quantity: 23 },
  { name: "cherries", type: "fruit", quantity: 5 },
  { name: "fish">;, type: "meat", quantity: 22 },
];

const result = Object.groupBy(inventory, ({ type }) = type);

/* Result is:
{
  vegetables: [
    { name: 'asparagus', type: 'vegetables', quantity: 5 },
  ],
  fruit: [
    { name: "bananas", type: "fruit", quantity: 0 },
    { name: "cherries", type: "fruit", quantity: 5 }
  ],
  meat: [
    { name: "goat", type: "meat", quantity: 23 },
    { name: "fish", type: "meat", quantity: 22 }
  ]
}
*/

Per ulteriori dettagli, consulta la documentazione di groupBy.

Override locali semplificati in DevTools.

La funzionalità override locali è ora semplificata, quindi puoi simulare facilmente le intestazioni delle risposte e i contenuti web delle risorse remote dal riquadro Rete senza accedervi.

Per eseguire l'override dei contenuti web, apri il riquadro Rete, fai clic con il tasto destro del mouse su una richiesta e seleziona Esegui l'override dei contenuti.

Le opzioni di override nel menu a discesa di una richiesta.

Se hai configurato gli override locali ma li hai disattivati, DevTools li attiva. Se non li hai ancora configurati, DevTools ti chiede di farlo nella barra delle azioni in alto. Seleziona una cartella in cui archiviare gli override e consenti a DevTools di accedervi.

Seleziona una cartella e consenti l'accesso nella barra delle azioni in alto.

Una volta configurate le sostituzioni, DevTools ti indirizza a Sources (Origini) > Overrides (Sostituzioni) > Editor per consentirti di eseguire l'override dei contenuti web.

Tieni presente che le risorse sottoposte a override sono indicate con Salvato. nel riquadro Rete. Passa il mouse sopra l'icona per vedere cosa è stato ignorato.

Un'icona di override accanto a una richiesta nel riquadro Rete.

Per tutti i dettagli e maggiori informazioni su DevTools in Chrome 117, consulta la sezione Novità di DevTools.

E tanto altro.

Ovviamente c'è molto altro.

Per approfondire

Questi sono solo alcuni dei punti salienti. Consulta i link di seguito per altre modifiche in Chrome 117.

Iscriviti

Per rimanere aggiornato, iscriviti al canale YouTube Chrome Developers e riceverai una notifica via email ogni volta che pubblichiamo un nuovo video.

Mi chiamo Adriana Jara e, non appena verrà rilasciato Chrome 117, sarò qui per raccontarti le novità di Chrome.