Chrome 117 の新機能

必知事項は次のとおりです。

Adriana Jara と申します。Chrome 117 のデベロッパー向けの新機能について詳しく見ていきましょう。

開始時と終了時のアニメーション用の新しい CSS 機能。

これらの 3 つの新しい CSS 機能により、セットが完成し、開始アニメーションと終了アニメーションを簡単に追加し、ダイアログやポップオーバーなどの最上位レイヤの閉じられる要素との間でスムーズにアニメーション化できるようになりました。

最初の特徴は transition-behavior です。display などの個別のプロパティを移行するには、transition-behaviorallow-discrete 値を使用します。

.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;
}

次に、@starting-style ルールを使用して、display: none からトップレイヤへのエントリ エフェクトをアニメーション化します。@starting-style を使用すると、ページ上で要素が開く前にブラウザが検索できるスタイルを適用できます。

/*  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);
}

最後に、最上位レイヤから popover または dialog をフェードアウトするには、遷移のリストに overlay プロパティを追加します。遷移またはアニメーションにオーバーレイを含めて、他の機能とともにオーバーレイをアニメーション化し、アニメーション化時に最上位レイヤに確実に配置します。これでかなりスムーズになります。

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

これらの機能を使用してモーションに関するユーザー エクスペリエンスを向上させる方法について詳しくは、スムーズな開始と終了のアニメーションを実現する 4 つの新しい CSS 機能をご覧ください。

配列のグループ化

プログラミングでは、配列のグループ化は非常に一般的なオペレーションです。これは、SQL の GROUP BY 句と MapReduce プログラミング(マップグループ削減と見なされる)を使用する場合によく見られます。

データをグループにまとめることで、開発者は高次元のデータセットを計算できます。たとえば、コホートの平均年齢や、ウェブページの 1 日あたりの LCP 値などです。

配列のグループ化は、Object.groupByMap.groupBy の静的メソッドを追加することで、このようなシナリオを可能にします。

groupBy は、イテラブル内の要素ごとに、指定されたコールバック関数を 1 回呼び出します。コールバック関数は、関連する要素のグループを示す文字列または記号を返す必要があります。

次の例の MDN ドキュメントの商品配列には、groupBy メソッドを使用してタイプ別にグループ化された商品を返すために使用されます。

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 }
  ]
}
*/

詳しくは、groupBy のドキュメントをご覧ください。

DevTools でローカル オーバーライドを簡素化。

ローカル オーバーライド機能が合理化され、リモート リソースのレスポンス ヘッダーとウェブ コンテンツにアクセスしなくても、[ネットワーク] パネルから簡単にモックできます。

ウェブ コンテンツをオーバーライドするには、[ネットワーク] パネルを開き、リクエストを右クリックして [コンテンツをオーバーライド] を選択します。

リクエストのプルダウン メニューにあるオーバーライド オプション。

ローカル オーバーライドを設定していても、無効にしている場合は、DevTools によって有効になります。まだ設定していない場合は、DevTools の上部にあるアクションバーにプロンプトが表示されます。オーバーライドを保存するフォルダを選択し、DevTools にそのフォルダへのアクセスを許可します。

フォルダを選択して、上部にあるアクションバーでアクセスを許可します。

オーバーライドが設定されると、DevTools の [ソース] > [オーバーライド] > [エディタ] に移動して、ウェブ コンテンツをオーバーライドできます。

オーバーライドされたリソースは、[ネットワーク] パネルに 保存しました。 で示されます。アイコンにカーソルを合わせると、オーバーライドされている内容を確認できます。

ネットワーク パネルのリクエストの横にあるオーバーライド アイコン。

Chrome 117 の DevTools の詳細については、DevTools の新機能をご覧ください。

その他

もちろん、他にもたくさんあります。

関連情報

ここでは、重要なハイライトのみを取り上げます。以下のリンクを確認してください。 追加の変更があります。

登録

最新情報を入手するには、 Chrome Developers YouTube チャンネル 新しい動画が公開されるたびに メールでも通知されます

Adriana Jara と申します。Chrome 117 がリリースされ次第、Chrome の最新情報をお届けします。