2026年3月にブラウザへ追加されたWeb新機能まとめ — スクロールアニメーションCSSネイティブ対応など

元記事を読む
キュレーターコメント

CSSだけでスクロールアニメーションが書けるようになるのは地味に革命的で、IntersectionObserverのボイラープレートから解放される日が近づいてきた。コンテナクエリの名前指定も3ブラウザ揃って実用段階に入ったので、デザインシステム構築者には今すぐ試してほしい内容。

概要

毎月恒例のweb.devによるブラウザ新機能まとめ。2026年3月は Chrome 146Firefox 149Safari 26.4 がそれぞれStableリリースされ、フロントエンド開発に直結する注目機能がいくつか着地した。「CSSでスクロールアニメーションってどうやるの?」「コンテナクエリの名前だけ指定できる?」といった疑問を持っている人はぜひ読んでほしい。

スクロールトリガーアニメーションがCSSネイティブに(Chrome 146)

Chrome 146 で待望の Scroll-triggered animations(スクロール連動アニメーション)が正式サポートされた。これまでIntersection ObserverやJavaScriptのscrollイベントで頑張っていた実装が、CSSだけで宣言的に書けるようになる。

最大のメリットはパフォーマンス。アニメーション処理がワーカースレッドにオフロードされるため、メインスレッドのJavaScriptがブロックされてもアニメーションが滑らかに動く。JavaScript APIも用意されており、Web Animations APIと組み合わせた細かい制御も可能だ。

/* スクロール位置に連動してopacityをアニメーション */
@keyframes fade-in {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}

.card {
  animation: fade-in linear;
  animation-timeline: view();        /* ビューポートへの進入を監視 */
  animation-range: entry 0% entry 50%; /* 進入開始〜50%で完了 */
}

これだけでスクロールに合わせた出現アニメーションが完成する。animation-timeline: scroll() を使えばページ全体のスクロール量に比例した進捗バーなども簡単に作れる。

コンテナクエリに「名前だけ指定」が可能に(Firefox 149・Safari 26.4)

Firefox 149Safari 26.4 が揃って 名前のみのコンテナクエリ(Optional container query conditions) に対応した。Chrome はすでに先行対応済みのため、これで主要3ブラウザが出揃ったことになる。

従来の @container クエリはサイズや style() などの条件が必須だったが、今回から条件なしで名前だけを指定できるようになった。

/* コンテナを名前付きで定義 */
.sidebar {
  container-name: sidebar;
  container-type: inline-size;
}

/* 名前だけでマッチ(サイズ条件不要)*/
@container sidebar {
  .widget {
    font-size: 0.875rem;
    padding: 8px;
  }
}

これにより「このコンポーネントがサイドバーの中にある場合」というコンテキスト依存スタイルが、サイズを問わず適用できる。デザインシステムで「どのコンテナに入るかでスタイルを変えたい」ケースで特に有用だ。

まとめ・所感

今月のアップデートで特に注目したいのはスクロールアニメーションのCSS化だ。JavaScriptへの依存を減らしつつパフォーマンスも改善できる一石二鳥の機能で、ランディングページやポートフォリオサイトの実装が大きく変わりそうだ。コンテナクエリの名前指定もFirefox/Safariへの普及が完了し、実運用に使えるフェーズに入った。詳細は web.dev の原文記事 で各機能のブラウザサポート表や追加リンクが確認できる。