命名規則に頼らずCSSの適用範囲を限定できる@scopeが全ブラウザ対応

つくば市のホームページ制作会社

CSSを書いていて、あるコンポーネントに当てたはずのスタイルが思わぬ場所まで波及してしまった経験は、制作に携わる人なら一度はあるはずです。ページ全体に効くというCSSの性質は便利な反面、扱う要素が増えるほど管理を難しくします。この課題に正面から向き合う@scopeという仕組みが、Safari 26.4の対応で主要ブラウザに出そろい、Baselineの新しく使える機能に加わりました。

これまでのCSS管理が抱えていた悩み

ウェブサイトのスタイルは、原則としてページ全体に対して効きます。あるボタンの色を変えたつもりが、別の場所にある似た要素まで巻き込んでしまう。ページ数が少ないうちは目視で追えますが、扱う画面が増え、複数人で長く運用するようになると、どこに何が効いているのかを把握しきれなくなっていきます。

こうした事故を避けるため、制作現場では長らく命名規則という工夫が使われてきました。BEMのように、クラス名へ役割や階層を細かく書き込む方式です。名前が重複しなければスタイルも衝突しない、という考え方で、多くの現場を支えてきた実績があります。

ただ、この方法はクラス名が長くなりがちで、書き手によって命名の揺れも生まれます。CSSの設計を保つために、人間の側が規律を守り続ける必要がありました。過去にはShadow DOMのように構造ごと分離する手段もありましたが、導入のハードルは低くありません。@scopeは、この範囲を区切るという役割を、CSSの標準機能そのもので肩代わりしようという発想です。

@scopeが実際にどう書けるのか

基本の形はシンプルです。適用範囲の起点となる要素を指定し、その内側だけにスタイルを効かせます。たとえば@scope (.card) { img { border-radius: 8px; } }と書けば、.cardの内側にある画像だけに角丸が当たります。同じimgでも、カードの外にある画像には影響しません。セレクタを.card imgのように長く連ねなくても、範囲を宣言するだけで意図が伝わります。どの要素にどのスタイルが効くのかが宣言の形からそのまま読み取れるため、後から見返したときの分かりやすさにもつながります。

この範囲の起点を、スコープの上限と呼びます。範囲の中で使える:scopeという擬似クラスは、その起点そのものを指し示すものです。囲った領域全体の背景や余白をまとめて整えたいときなど、起点の要素自体にスタイルを当てたい場面で役立ちます。

下限を決めて入れ子の穴をつくる

@scopeのもう一つの特徴は、範囲の下限も指定できる点です。起点と終点の二つを書くと、その間にある要素だけが対象になります。@scope (.card) to (.card__body) { ... }のように書けば、.cardから.card__bodyの手前までが範囲になります。

カードの中にさらに別のコンポーネントが入れ子になっている場面を思い浮かべてください。外側のカード用のスタイルが、内側に置いた小さな部品まで無用に踏み込んでしまうと、見た目が崩れます。下限を切っておけば、その内側は範囲の外として扱われ、影響を受けません。中央に穴が空いたドーナツになぞらえて、ドーナツスコープと呼ばれることもあります。ニュース一覧の中に埋め込みカードが混ざるような、実際のサイトでよくある構造で効いてくる機能です。

制作現場で使うときに知っておきたいこと

便利な一方で、優先度の扱いには注意が必要です。@scopeで囲んでも、セレクタ自体の詳細度が下がるわけではありません。範囲を絞ったから既存のスタイルに必ず勝てる、とは限らない点は押さえておきたいところです。既存のCSSと併用するときは、どちらが優先されるかを確かめながら進めると安全です。

もう一つ、範囲内で複数の起点が競合したときは、DOM上でより近い起点のスタイルが優先されます。この近さによる判定は従来のCSSにない考え方なので、頭で覚えるより、小さなサンプルで実際に挙動を確かめておくほうが早く馴染めます。

命名規則や大掛かりな設計手法に頼らずに、必要な範囲だけへスタイルを届けられる。少人数で長く手を入れていく中小企業のサイトほど、この素直さは効いてきます。既存のCSSをいきなり書き換える必要はありません。まずは新しく作るコンポーネントの一部で、小さく試すところから始めてみてはいかがでしょうか。

文字を箱の幅にぴったり収めるCSSの新しいプロパティ

つくば市のホームページ制作会社

見出しやキャッチコピーの文字を、置いた箱の幅ぴったりに収めたい。制作の現場では誰もが一度は悩む場面だが、これまではJavaScriptで幅を測って調整したり、文字数を数えてフォントサイズを手で決めたりと、面倒な手当てが必要だった。専用の小さなライブラリを読み込んで文字を伸縮させたり、どうしても揃わない箇所はテキストを画像にして逃げたりと、割り切りを迫られることも多かった。この地味な悩みに、CSSだけで答える新しいプロパティが登場した。

Chromeの開発者向けドキュメントによると、2026年6月30日に安定版となったChrome 150で text-fit プロパティが使えるようになった。テキストノードのフォントサイズを、それを包む箱の幅に合わせて自動で拡大縮小してくれる仕組みだという。文字が短ければ大きく、長ければ小さく、箱の横幅を埋めるようにブラウザ側が調整する。開発者が文字数を数えて刻む必要も、スクリプトで幅を測る必要もなくなるというわけだ。

可変長のテキストで効いてくる

この機能が生きるのは、入る文字の長さが事前に読めない場面だ。CMSで運用しているサイトの見出し、商品名やキャンペーン名のように毎回長さが変わるテキスト、複数言語で文字量が大きく違うページ。こうした箇所でフォントサイズを一定に保つと、短い文字はスカスカに見え、長い文字ははみ出してしまう。text-fit を当てておけば、どんな文字数でも横幅が揃い、ページ全体の見た目が安定する。

似たことを狙う手段として、これまでは clamp() やビューポート単位でフォントサイズを画面幅に連動させる書き方が使われてきた。ただしそれらはあくまで画面の広さに比例させるもので、実際に入っている文字の量には反応しない。text-fit は箱に収まる文字そのものを見て縮尺を決める点が違い、狙いがより素直だ。中小企業のサイトでも、トップのヒーロー見出しやバナーのコピーは案件ごとに長さがまちまちで、運用の途中で文言が差し替わると崩れやすい。ブラウザが幅に合わせてくれるなら、こうした崩れの心配が減り、入稿の自由度も上がる。

ただし今のところ対応しているのはChromeが先行している段階で、ほかのブラウザはこれからだ。すぐに全環境で頼るのではなく、対応していないブラウザでは通常のフォントサイズで表示されるよう土台を整えたうえで、対応環境だけ恩恵を受ける形で足すのが現実的だろう。導入する際も、極端に長い文言を入れたときに文字が小さくなりすぎて読みにくくならないか、想定される最大の長さで一度確認しておくと安心だ。閲覧者の環境によって見え方が変わる機能なので、主要な組み合わせでざっと表示を見ておく手間はかけておきたい。長らくJavaScriptに任せていた処理が、また一つ標準機能に取り込まれていく流れの一つとして覚えておきたい。

グリッドとフレックスの隙間を線で飾るCSSの新機能

つくば市のホームページ制作会社

ウェブサイトのレイアウトをグリッドやフレックスボックスで組んだあと、要素と要素のあいだに区切り線を入れたくなる場面は多い。カード一覧の列のあいだに細い罫線を引く、料金表のセルを線で仕切る、といった演出だ。ところがこれまでのCSSには、こうした隙間そのものに線を引く手段が用意されていなかった。Chrome と Edge の149で使えるようになった gap decorations は、その長年の空白を埋める機能になる。

これまでは擬似要素や枠線で工夫していた

グリッドやフレックスボックスの gap プロパティは、要素のあいだに余白を作れるが、その余白に色や線を付けることはできない。そのため制作現場では、各セルに border を付けて重なりを調整したり、::before や ::after の擬似要素で線を描いたり、背景にグラデーションを敷いて線に見せかけたりといった回り道をしてきた。

どの方法も、セルの数が変わったり折り返しが起きたりすると崩れやすい。線を引きたいだけなのに、レイアウトの計算まで巻き込んでしまうのが悩みどころだった。gap decorations は、この作業を余白側の仕事として切り出してくれる。

column-rule と row-rule で隙間に線を引く

マルチカラムレイアウトには以前から column-rule というプロパティがあり、段組みの段のあいだに線を引けた。新機能は、この column-rule をグリッドとフレックスボックスでも使えるように広げ、さらに横方向の隙間を担当する row-rule を新たに加えたものだ。

書き方は border とよく似ている。線の太さ、線種、色をそれぞれ column-rule-width、column-rule-style、column-rule-color で指定し、まとめて column-rule として一行で書くこともできる。row-rule も同じ構成だ。

.cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  column-rule: 1px solid #ccc;
  row-rule: 1px solid #ccc;
}

大事なのは、これらの線が純粋に見た目だけの装飾で、余白の幅やレイアウトには一切影響しない点だ。線を足しても要素の位置がずれないので、あとから飾りを差し込む使い方に向いている。

フレックスボックスで要素が複数行に折り返すレイアウトでも、行と行のあいだに row-rule の線がきれいに収まる。列数や行数が中身に応じて変わる動的なレイアウトほど、擬似要素で線を管理する手間から解放される効果は大きい。

repeat()で線のパターンを作る

column-rule-width などには、グリッドのトラック指定でおなじみの repeat() が使える。これを使うと、隙間ごとに太さや色を変えたパターンを短い記述で作れる。たとえば数独の盤面のように、細い線を並べつつ何本かおきに太い線を挟む、といった表現だ。

column-rule-width: repeat(2, 1px) 4px repeat(2, 1px) 4px repeat(2, 1px);

線の位置を隙間の中央から少しずらす column-rule-inset のようなプロパティや、どの隙間に線を引くかを選ぶ仕組みも用意されている。縦の線と横の線が交わる交点の見せ方も細かく制御でき、交点で線を途切れさせるか、そのまま突き抜けさせるか、描画の重なり順をどうするかまで指定できる。単なる区切り線にとどまらず、表やカレンダー、価格表といった格子状のデザインを、擬似要素なしで組み立てられるようになる。

使えるブラウザと取り入れ方

gap decorations が正式に使えるのは、いまのところ Chrome と Edge の149からで、2026年6月に登場した。ほかのブラウザではまだ対応が追いついていないため、現時点では装飾の上乗せとして使うのが無難だ。

幸い、この機能は線を描くだけでレイアウトを動かさない。対応していないブラウザでは線が表示されないだけで、要素の並びや余白は保たれる。つまり、線があれば少し見やすく、なくても困らない、という段階的な取り入れ方ができる。地方の制作現場でも、まずは社内サイトや実験的なページで感触を確かめてから、対応ブラウザの広がりに合わせて本番へ持ち込むのが手堅い進め方になるだろう。

開閉するUIをブラウザ標準で作る、open擬似クラスが揃える最後のピース

つくば市のホームページ制作会社

ウェブサイトで何かを開いたり閉じたりする操作は、どんなサイトにもあります。ハンバーガーメニューの開閉、問い合わせ前に表示するモーダル、よくある質問のアコーディオン、小さなツールチップ。こうした開閉パーツは長らくJavaScriptのライブラリで組むのが当たり前でした。ところが2026年に入り、ブラウザ標準の機能だけで同じことができる場面がぐっと増えています。

節目になったのが、2026年5月に公開されたSafari 26.5です。ここでopen擬似クラス(:open)が実装され、ChromeやFirefoxと足並みがそろいました。地味な追加に見えますが、標準機能だけで開閉UIを組む流れを後押しする一歩です。詳しくはWebKitの公式ブログでも解説されています。

open擬似クラスが開いた状態をまとめて扱う

:openは、要素が開いている状態にスタイルを当てるための擬似クラスです。対象はdetails要素やdialog要素、それにselect要素や、日付や色を選ぶinput要素のピッカーが開いたときまで含みます。開閉する部品を、種類を問わず同じ書き方で整えられるのが利点です。矢印の向きを変える、背景色を切り替えるといった見た目の調整を、状態ごとにCSSの中で完結させられます。

これまでは[open]属性セレクタで開閉状態を拾っていました。ただしこの書き方が効くのはdetails要素とdialog要素だけで、select要素やinput要素には使えませんでした。細かな差に見えますが、開閉するあらゆる要素を一貫した書き方で扱えるようになった意味は小さくありません。要素の種類ごとに別々のセレクタを覚える負担が減り、スタイルの見通しも良くなります。詳しい対応状況はMDNで確認できます。

標準タグだけで組める開閉パーツ

開閉UIの部品は、ここ数年でブラウザ側にそろってきました。モーダルはdialog要素のshowModalで開けます。背景を暗くする処理やフォーカスの閉じ込め、Escキーで閉じる動きまで、ブラウザがはじめから面倒をみてくれます。ちょっとしたメニューや吹き出しは、HTMLにpopover属性を足すだけで開閉できます。Popover APIは2025年4月に主要ブラウザで安定して使えるようになり、いまでは前提として組み込める土台になりました。popover属性を付けた要素は、外側をクリックしたりEscキーを押したりすると自動的に閉じます。いわゆるライトディスミスの挙動を、自分で書かなくてもブラウザが用意してくれます。

よくある質問のアコーディオンは、details要素とsummary要素だけで作れます。開いたときの見た目は:openで整えれば、開閉の状態管理をJavaScriptで書く必要はありません。ポップオーバーが表示中かどうかは:popover-openでも拾えます。Safari 26.5では、どの要素がポップオーバーを開いたかを知るための仕組みも加わり、複数の開閉部品が絡む画面でも扱いやすくなりました。ボタンを押すと候補が開くドロップダウンのような部品も、こうした標準機能の組み合わせで素直に表現できます。素朴なHTMLの積み重ねで、これまで外部ライブラリに任せていた動きの多くがまかなえます。

制作現場にとっての意味

標準機能に寄せる利点は、まずコードが軽くなることです。開閉のためだけに読み込んでいた外部ライブラリを減らせば、ページの表示は速くなり、保守の手間も下がります。加えて見落としがちなのがアクセシビリティです。dialog要素やpopover属性は、キーボード操作やスクリーンリーダーへの対応がはじめから組み込まれています。自前で作った開閉UIにありがちな、フォーカスが迷子になる、Escキーで閉じないといった不具合を避けやすくなります。ブラウザ標準の挙動に乗るぶん、環境による見え方や操作感のばらつきも抑えやすくなります。

中小企業のサイトでも、問い合わせ導線のモーダルやFAQのアコーディオンなど、使いどころは多いはずです。たとえば、以前はプラグイン頼みで組んでいたFAQの開閉を、details要素と:openだけに置き換えれば、依存が減って動作も安定します。ただし現状では、古いブラウザ向けのフォールバックや、凝ったアニメーションでのCSSとの併用など、細かい調整が要る場面は残ります。それでも、開閉UIの土台をブラウザ任せにできる範囲は着実に広がっています。新しく組むときは、まず標準機能だけで足りるかを出発点に考える価値が出てきました。手が込んだ実装に進むのは、それで届かないところを見極めてからでも遅くありません。

View Transitions APIが変えるウェブ制作現場、全ブラウザ対応でページ遷移の新時代

つくば市のホームページ制作会社

長年、ウェブサイトでのページ移動といえば、一瞬でコンテンツが切り替わる「ブラウザのデフォルト動作」が当たり前でした。一方で、モバイルアプリのようなスムーズな画面遷移への憧れから、多くの制作者がJavaScriptライブラリを駆使してアニメーションを実装してきました。2026年現在、View Transitions APIは Chrome 111以降、Edge 111以降、Safari 18以降、Firefox 144以降と主要ブラウザでサポートが完了し、この長い課題に対する答えが提示されました。

クロスドキュメント遷移が実現する制作現場の変化

2026年の最大の転換点は、クロスドキュメント(ページ間)View Transitionsの安定サポート完了です。これにより、index.htmlからcontact.htmlへの移動をJavaScriptなしで、ブラウザネイティブの機能でアニメーション化できるようになりました。従来のSingle Page Application(SPA)でしか実現できなかった滑らかな遷移が、通常のマルチページサイトでも可能になったことで、制作手法そのものが変わりつつあります。

クロスドキュメント遷移の実装は驚くほどシンプルで、JavaScriptは不要。両方のページのCSSに@view-transitionルールを記述するだけでページ間遷移がアニメーション化されます。この簡潔さが、小規模な制作現場でも気軽に導入できる理由となっています。重厚なフレームワークやライブラリを導入することなく、静的サイトでも高品質なユーザー体験を提供できるようになりました。

実際の事例として、デジタルアートマーケットプレイスのArtNodeでは、グリッド表示の絵画から詳細ページへの遷移にクロスドキュメント遷移を適用し、400msの遷移でバウンス率が22%低下したという報告があります。ユーザーが「ギャラリー内にいる」感覚を維持できることが、エンゲージメント向上につながっている例です。

技術的仕組みとパフォーマンスへの影響

View Transitions APIの仕組みは、ブラウザが現在のページのスクリーンショットを撮影し、DOMを更新した後に新しい状態のスクリーンショットを撮影、その2つの間をCSSアニメーションで補間するというものです。この処理はGPU加速によって実行され、GSAPなどのライブラリと比較してオーバーヘッドは最小限。ベンチマークでは、ローエンドデバイスで2〜3倍高速に感じられる結果が報告されています。

パフォーマンス面では、遷移アニメーションがコンテンツの読み込み時間をマスクする効果があります。実際の処理速度が変わらなくても、アニメーションによってサイトが高速に感じられるという知覚パフォーマンスの向上が期待できます。これは特に、コンテンツが重い企業サイトや商品カタログサイトで威力を発揮します。

ただし注意すべき点もあります。遷移時間は500ms以下に抑えることが推奨され、ブラウザがスナップショットをメモリに保持するため、長時間の遷移は避けるべきとされています。実用的には200〜400msが適切な範囲とされており、この範囲であれば快適さとパフォーマンスのバランスが取れます。

実装における具体的な設計パターン

基本的なクロスドキュメント遷移は、両ページのCSSに次のような記述を追加するだけで実現できます:

@view-transition { navigation: auto; }

真の威力を発揮するのは、特定の要素に名前を付けて個別にアニメーションさせる場面です。商品カードから詳細ページへの遷移では、view-transition-nameプロパティで同じ名前を付けることで、ブラウザが自動的に位置、サイズ、透明度を補間してくれます。

たとえば商品一覧ページで「.product-card { view-transition-name: product-1; }」と設定し、詳細ページでも同じ商品画像に「.product-detail img { view-transition-name: product-1; }」を指定すると、カードが詳細ページの画像へと滑らかに変形する動きが実現します。この手法は、ECサイトやポートフォリオサイトで特に効果的です。

現時点での制約として、クロスドキュメント遷移はChrome系ブラウザでのみサポートされており、FirefoxとSafariでは@view-transitionルールが無視される状況です。ただし、この場合は通常のページ遷移にフォールバックされるため、サイト機能に支障は出ません。プログレッシブエンハンスメントの考え方で、対応ブラウザには向上した体験を、未対応ブラウザには従来どおりの体験を提供できます。

制作現場での導入判断と注意点

View Transitions APIの導入にあたっては、アクセシビリティへの配慮が欠かせません。prefers-reduced-motionメディアクエリに対応し、動きを制限したいユーザーには遷移を無効化する実装が求められます。技術的な美しさとユーザビリティのバランスを取ることが、実用的なサイト制作では重要です。

実装時の注意点として、同じview-transition-nameを持つ要素が複数表示されると遷移がスキップされる仕様があります。動的なコンテンツを扱う場合は、要素IDを使った一意な名前付けが必要です。また、長時間のJavaScript処理があるとスナップショット取得が遅延するため、DOM更新処理の最適化も重要になります。

地方の制作現場や中小企業のサイトでは、重厚なフレームワークを避けたいケースも多く、このネイティブAPIの登場は大きな選択肢となります。WordPressのような既存CMSでも、テーマファイルにCSS一行を追加するだけで導入できるため、運用中のサイトへの適用も現実的です。

2026年のウェブでは、ユーザーはネイティブアプリ並みの品質を期待するようになっています。View Transitions APIの全ブラウザサポート完了により、ブラウザが直接処理するハードウェア加速された遷移を最小限のコードで実装できる環境が整いました。技術選択の幅が広がった今、制作者にとってはユーザー体験の品質向上に集中できる良い時代と言えるでしょう。

CSS Subgridがもたらす制作現場の転換点、2026年の全ブラウザ対応完了で実現する新しいレイアウト設計

つくば市のホームページ制作会社

Web制作現場で長年課題となっていた複雑なグリッドレイアウトの制御が、ついに根本的な解決を迎えています。CSS Grid Subgridが2026年3月15日に正式なBaseline Widely Availableステータスを取得し、全ブラウザ対応完了により安全に本格運用できる環境が整いました。地方の制作現場から大規模サイトまで、これまでJavaScriptに頼らざるを得なかった入れ子グリッドの問題を、純粋なCSSで解決できる新時代が始まっています。

Subgridが実現する制作現場の変化

CSS Grid Subgridは、grid-template-columnsとgrid-template-rowsのためのsubgrid値として実装され、親グリッドの行・列の定義を子要素が継承できる仕組みです。入れ子グリッドが親のトラック定義を引き継ぎ、カード内コンテンツが共通のベースラインに揃うという、従来のCSSでは解決困難だった課題を解消します。

特に影響が大きいのは、line-clamp: 1やmin-height: 4remによる固定高さのハックが不要になることです。コンテンツの長さが異なるカード要素でも、Subgridを使えばコンテンツを切り詰めたり任意のピクセル値に固定することなく、自然な配置で統一感のあるレイアウトが実現できます。

制作効率の面では、複雑な入れ子レイアウトがJavaScriptではなくCSSだけで実現できるようになり、メンテナンス性と表現力が大幅に向上しています。

2026年のブラウザサポート状況

Subgridのブラウザサポートは段階的に進化し、Chrome 117以降、Edge 117以降、Firefox 71以降、Safari 16以降で対応が完了しています。実装の経緯を見ると、Firefox が2019年に先駆けて実装、Safari が2022年に追従、Chromium系は2023年9月という流れでした。

現在のグローバルサポート率は約97%に達し、2026年時点で本格的な本番運用に適したレベルです。残り3%のユーザーは主に古いブラウザを使用しており、モダンCSS機能全般をサポートしていない環境のため、@supportsでの段階的対応が推奨されています。

@supports (grid-template-rows: subgrid)による機能検出を使えば、Subgrid非対応ブラウザには従来のFlexboxやGrid Layoutでのフォールバックを提供できます。つくばのような地方都市でも、クライアントの環境を問わず安心してSubgridを活用したサイト設計が可能になっています。

実践的な活用パターンと設計手法

Subgridの典型的な活用場面は、画像・タイトル・説明・CTAで構成されるカード群で、タイトル長の違いがCTAの高さにばらつきを生むケースです。従来は固定高やJavaScriptでの高さ調整が必要でしたが、Subgridを適用すれば自然な配置で統一感を保てます。

実装ではgrid-template-columns: subgridやgrid-template-rows: subgridを子グリッドに設定し、親グリッドの列・行線と連携させます。片方の軸だけSubgridにして、もう片方は独自定義する組み合わせも可能で、柔軟な設計に対応できます。

注目すべきはSubgridが独自のgapを持てることです。親グリッドの間隔設定を継承しつつ、子グリッド内の行・列間隔は別途調整できるため、コンポーネント単位での微調整が効きます。

制作現場では、Chrome DevToolsのGrid表示機能でSubgridの構造を視覚的に確認できるため、デバッグやレイアウト検証の効率も上がっています。

Container Queriesとの組み合わせによる次世代レイアウト

Subgridの真価は、Container Queriesとの組み合わせで発揮されます。Grid・Container Queries・Subgridを併用することで、レイアウトライブラリへの依存度が年々低下している状況です。

Container Queriesによりコンポーネントが配置される祖先要素のサイズに応じたスタイリングが可能になり、Subgridと組み合わせることで真にコンテキストに応じたコンポーネント設計が実現できます。これは従来のビューポート基準のメディアクエリでは不可能だった、再利用性の高いコンポーネント開発を可能にします。

さらにCSS Anchor Positioningも2026年に各ブラウザで実装が進んでおり、ツールチップやポップオーバーの配置制御もJavaScript不要で実現できるようになっています。

制作現場においては、W3CのReliable Candidate Recommendationsにもsubgridが含まれ、子要素が親グリッドのトラックに参加する仕組みが正式に安定技術として認められたことで、中長期的な技術選択として安心して採用できる環境が整いました。CSS Grid Subgridは、Web制作における新しいスタンダードとして、2026年以降の制作現場を支える重要な技術になっています。

CSS Grid Lanes(マソンリーレイアウト)が実用段階へ、Safari先行でウェブレイアウトの新しい可能性

つくば市のホームページ制作会社

長年待ち望まれていたマソンリーレイアウトの機能が、ついにブラウザで実用可能になってきました。2026年、CSS Grid Lanes(旧マソンリー提案)がネイティブブラウザソリューションとして登場し、Safari 26が最初にこれを搭載しました。Pinterest風の可変高さカードグリッドを、JavaScriptライブラリや複雑なワークアラウンドなしで実現できる時代がやってきたのです。

従来のマソンリーレイアウトは、JavaScriptによる動的な配置計算や、Flexboxのcolumnトリックなど、どれも完璧とは言えない方法に頼らざるを得ませんでした。Pinterest風マソンリーレイアウトは以前、JavaScriptハック、重いライブラリ、またはリフローを破るFlexboxのcolumnトリックを必要としていました。しかし今、CSS Grid Lanesによって、この状況は大きく変わろうとしています。

CSS Grid Lanesとは何か

CSS Grid Layout仕様のLevel 3では、マソンリーレイアウト(グリッドレーンレイアウトとも呼ばれる)を定義しており、display値grid-lanesとinline-grid-lanesでアクセス可能になっています。マソンリーレイアウトは、一方の軸で典型的な厳密なグリッドレイアウト(多くの場合カラム)を使い、もう一方でスタッキング(マソンリー)レイアウトを使うレイアウト手法です。

CSS Grid Lanesは、馴染みのあるgrid構文を使ってマソンリー風レイアウトを作成する新しいdisplay モードを追加し、項目は最も利用可能なスペースがある軸に流れ込み、通常のグリッド行で得られる醜い隙間なしで密にパッキングされたレイアウトになるとされています。

最もシンプルな構文は以下のようになります:

.masonry-grid {
  display: grid-lanes;
  grid-template-columns: repeat(3, 1fr);
}

仕様では、ブラウザベンダー間での長年の議論を経て、以前のmasonry提案ではなくgrid-lanesキーワードが採用されました。これにより、既存のCSS Gridとの一貫性を保ちながら、新しいレイアウト手法を導入することができるようになっています。

ブラウザサポートの現状と実用性

2026年前半の時点で、ブラウザサポートは段階的に進んでいます。2026年初頭の時点で、CSS Grid LanesはSafari 26で利用可能(最初に搭載)。ChromeとFirefoxは実験的フラグの背後に機能があり、2026年後半に安定版サポートが期待される状況です。

2026年初頭時点で、CSS GridのマソンリーレベルでのCSS挙動は主要ブラウザ全体で実験的。Safari Technology Previewがより完全なプロトタイプ実装を持つ一方、Chromiumベースブラウザはフラグ背後でマソンリー関連構文を実験し、Firefoxも設定フラグ背後でマソンリー実験を実装。安定版ブラウザチャンネルでは完全に相互運用可能な、フラグなしサポートは提供されていないのが現状です。

しかし、実用的な観点から見ると、プログレッシブエンハンスメントの戦略により、今すぐ使い始めることができます。@supportsによるプログレッシブエンハンスメントアプローチにより、ブラウザサポートが拡大するにつれてレイアウトが改善される形で導入できるのです。

@supports (display: grid-lanes) {
  .masonry-grid {
    display: grid-lanes;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  }
}

このアプローチにより、対応ブラウザでは新しいマソンリーレイアウトが適用され、未対応ブラウザでは標準的なCSS Gridレイアウトにフォールバックする仕組みを構築できます。

従来手法からの大きな改善点

CSS Grid Lanesの導入により、従来のマソンリーレイアウト実装における主要な問題が解決されます。columnハックには2つの致命的な欠陥がある:項目は自然に水平ではなく垂直(列1の上部、列2の上部…)に並び、DOMの順序が視覚的順序と一致しないためアクセシビリティを破るという問題がありました。

CSS Grid LanesはDOMの順序を保持し、アクセシビリティとキーボードナビゲーションにとって大きな勝利となります。これは制作者にとって重要な改善点です。

パフォーマンス面でも大きな利点があります。JavaScriptによる位置計算を避けることで、ブラウザは絶対的なレイアウト安定性を維持し、トランジションはハードウェアアクセラレーションを活用してレンダリングスレッドで60fps性能を確保します。

また、HTMLは厳密にセマンティックを保ち、DOMを軽量かつ更新された状態に保つ。技術的なノイズはないため、外部ライブラリに依存することなく、よりクリーンなコードベースを維持できます。

実装時の注意点と将来展望

CSS Grid Lanesを実装する際には、いくつかの注意点があります。フロー動作や順序制御などの詳細は仕様で議論中であり、ブラウザのプレビュー間で異なる可能性。標準外またはドラフト専用プロパティに依存することは、対象ブラウザでサポートを確認しない限り避けるべきとされています。

アクセシビリティについても配慮が必要です。パッキングアルゴリズムは厳密な行順序ではなく利用可能なスペースに基づいて項目を配置するため、タブ順序が視覚的順序と一致しない可能性。常にキーボードナビゲーションをテストし、DOMの順序が論理的な読み順序を反映していることを確認すべきです。

現場の制作者の観点から見ると、地方のウェブ制作会社でも、この技術を段階的に導入していくことで、クライアントサイトのユーザーエクスペリエンスを向上させることができるでしょう。特に、画像ギャラリーや商品一覧ページなど、可変サイズのコンテンツを美しく配置したい場面で威力を発揮します。

マソンリーはそれ自体のものだが、他のレイアウトタイプとの類似性を見つけることは有用。実際、マソンリーはまだCSS Working Groupによって大部分が定義されており、まだ議論中の部分もある。残りの未解決問題の解決には他のレイアウトタイプと既存のCSSプロパティの深い理解が必要な状況であり、標準化プロセスは継続中です。

CSS Grid Lanesの登場により、ウェブ制作現場でのレイアウト手法が大きく変わる可能性があります。JavaScriptライブラリに依存せず、パフォーマンスとアクセシビリティの両方を向上させながら、美しいマソンリーレイアウトを実現できる時代の到来です。プログレッシブエンハンスメントの考え方で段階的に導入し、新しい技術の恩恵を早期に享受していくことが重要でしょう。

現場で役立つCSSの新機能、コンテナクエリからhas()セレクタまで制作者が知るべき4つの技術

つくば市のホームページ制作会社

CSSがここ数年で大きく進歩していることをご存知でしょうか。2026年現在、コンテナクエリが業界標準となり、:has()セレクタやCascade Layersといった待望の機能が全主要ブラウザで利用可能になっています。これらの新しいCSS機能は、従来のメディアクエリやJavaScriptに依存したスタイリングの常識を変えつつあります。

中小企業のウェブサイトや地方の制作現場でも活用できる実用的な技術として、今回は特に注目すべき4つのCSS機能を整理して紹介します。どの機能も実装難易度が低く、既存のプロジェクトに段階的に導入できるものばかりです。

コンテナクエリ:コンポーネント単位のレスポンシブデザイン

コンテナクエリは2023年から全主要ブラウザでベースライン対応となり、現在93%以上のグローバルサポートを達成しています。従来のメディアクエリがブラウザのビューポート幅を基準としていたのに対し、コンテナクエリは親要素のサイズを基準にスタイルを適用できます。

カードコンポーネントが全幅のヒーローレイアウトでも、サイドバーの小さなサムネイルでも、同じCSSクラスのまま適切に表示されるようになります。メディアクエリで作られたカードは、狭いサイドバーに配置しても広いメインエリアの表示のままでしたが、コンテナクエリなら自動的に最適化されます。

実装には、親要素にcontainer-type: inline-sizeまたはsizeを指定し、@containerルールでサイズに応じたスタイルを定義します。既存のメディアクエリから段階的に移行する場合、各コンポーネントの親ラッパーにcontainer-typeを追加し、@mediaルールを@containerルールに変換していくことで、安全にアップデートできます。

:has()セレクタ:「親セレクタ」の実現

20年以上CSS開発者が求めていた機能で、2026年現在は全主要ブラウザで95%以上のサポートを達成しています。子要素や兄弟要素の状態に基づいて、親要素や前の要素をスタイリングできる画期的な機能です。

見出しの直後に別の見出しが続く場合の余白調整や、フォームにエラーが含まれる場合の親要素のスタイル変更など、従来はJavaScriptを使っていた処理を純粋なCSSで実現できます。画像を含むカードの特別レイアウトや、チェック済みチェックボックスを含むリストアイテムの取り消し線表示も簡単に実装可能です。

:has()の最も興味深い使用例は、グローバルイベントリスナーとしての活用です。モーダルの表示状態やフォームの入力状態に応じて、ページ全体のスタイルを動的に変更できます。古いブラウザでは@supportsを使ったフォールバックが推奨されており、JavaScriptベースのクラス切り替えと組み合わせることで安全に導入できます。

Cascade Layers:詳細度戦争の終結

Cascade Layersは2022年からChromium 99、Firefox 97、Safari 15.4でサポートが始まり、現在は96%以上のブラウザ対応を達成しています。セレクタの詳細度に関係なく、明示的にレイヤーの優先順位を制御できるため、!importantを多用する必要がなくなります。

CSSファイルの読み込み順序に関わらず、ベースレイヤーよりテーマレイヤーが、テーマよりユーティリティレイヤーが常に優先される構造を作れます。より詳細度の低いセレクタでも、上位レイヤーにあれば下位レイヤーの高詳細度セレクタを上書きできます。

複数チームが関わるプロジェクトでの詳細度競合を避け、第三者ライブラリのスタイルとの衝突を構造的に解決する仕組みとして重要です。段階的な導入が推奨されており、まず第三者CSSから始めて、徐々に自社スタイルをレイヤー化していくことで、既存プロジェクトへの影響を最小限に抑えられます。

@scope:BEMやCSS Modulesの代替案

Firefox 146がChromeとSafariに続いて@scopeをサポートし、2026年現在「Baseline Newly Available」ステータスを獲得しています。上下境界を持つ近接ベースのスタイリングにより、BEMやCSS Modulesの実用的な代替案となっています。

開発者はクラス名による境界作成が不要になり、ネイティブHTML要素ベースのセレクタを記述でき、規定的なCSS命名パターンを排除できます。「ドーナツスコープ」と呼ばれる仕組みで、.article-body内のimg要素を対象にしながら、figure内のimg要素は除外するといった精密な制御が可能です。

DOM構造に過度に依存しない、書き換えが困難な高詳細度セレクタを避けながら、要素を正確にターゲットできます。BEMは命名規則によるゼロツール アプローチ、CSS Modulesはビルド時の完全分離、@scopeはモダンブラウザ向けのネイティブ機能として、プロジェクトの制約に応じて選択できます。

これら4つの機能は、いずれも従来のCSS開発で頭を悩ませてきた問題を根本から解決するものです。段階的導入が可能で、既存サイトへの影響も最小限に抑えながら、より保守性の高いスタイルシートを構築できます。まずは小規模なコンポーネントから試してみることをお勧めします。

ウェブ制作現場を変える2026年の転換点、技術進歩が描く新しい制作環境

つくば市のホームページ制作会社

2026年に入り、ウェブ制作の現場で長年求められていた理想的な制作環境が現実になり始めています。コンテナクエリが全ブラウザ対応でベースライン入りし、WordPressのSpeculative Loading APIが標準搭載され、セキュリティ面でもAI技術を活用した脆弱性検出により修正される脆弱性数が急激に増加しています。これらの動きが重なることで、制作者の働き方そのものに大きな変化が起きています。

コンテナクエリが開く新しいコンポーネント設計

CSSコンテナクエリは2023年にベースライン対応を果たし、現在は全ブラウザでサポート率93%を超えている状況です。しかし、実際の制作現場での採用は想像以上に遅れていました。多くの開発者がメディアクエリをデフォルトで使い続けているのは、実用的なコンポーネントパターンが不足していたことが要因でした。

コンテナクエリの真価は、コンポーネントがビューポートサイズではなく、その要素が置かれるコンテナのサイズに応じて自動的にレイアウトを変える点にあります。カードコンポーネントが一つのページでメインエリアの幅広いヒーロー表示と、サイドバーの小さなサムネイル表示を同じCSSクラスで実現できます。これまでのメディアクエリでは不可能だった、真にモジュラーなコンポーネント設計が現実のものになっています。

Cascade Layers(@layer)との組み合わせにより、特異度の競合問題も解決され、!importantが不要な環境が実現しています。つくばの制作現場でも、複数のプロジェクト間でコンポーネントを使い回しやすくなったという声が聞かれるようになりました。

WordPressに組み込まれた先読み技術の実力

WordPress 6.8で正式搭載されたSpeculative Loading機能は、Speculation Rules APIを活用してページの先読みを行い、場合によっては瞬間的なページ読み込みを実現します。この機能は50,000以上のWordPressサイトでテストされ、Largest Contentful Paint(LCP)合格率を約1.9%向上させた実績があります。

現在はChrome、Edge、Operaなど、Chromiumベースのブラウザでのみ動作しますが、対応していないブラウザでも悪影響はなく、段階的な機能向上として動作します。デフォルト設定では控えめなプリフェッチ動作で、リソース消費を最小限に抑えながらパフォーマンス向上を図る仕様になっています。

実際のデータによると、プリレンダリングされたナビゲーションのp75 LCPは320msに対し、通常のナビゲーションは1,800msと、82%の改善を見せる結果が報告されています。中小企業サイトにとって、この技術は特別な設定なしに恩恵を受けられる貴重な改善策です。

Chrome DevToolsの進化がもたらすデバッグ体験の変化

Chrome 147では、DevToolsのAI支援機能が大幅に強化され、事前にコンテキストを選択しなくても「このページで最も遅いネットワークリクエストは何ですか?」のような開放的な質問ができるようになった機能が追加されました。

Chrome 142で導入されたGeminiによるコード提案機能が、Chrome 147では完全なコード生成に進化し、自然言語のコメント記述からCmd+i(Mac)またはCtrl+i(Windows/Linux)でコードを生成できます。圧縮されたHTTPレスポンス(gzipやdeflate)の内容も、DevToolsが自動的にデコードして読みやすい形で表示するようになり、デバッグ効率が大幅に向上しています。

これらの改善により、従来は経験豊富な開発者でないと気づけなかった問題も、ツールが自動的に発見・提案してくれる環境が整いつつあります。

セキュリティ分野に起きている急激な変化

Anthropicが開発した「Project Glasswing」というAI機能により、Microsoft、Apple、Googleなどの主要ベンダーが従来にない数の脆弱性を発見・修正している状況です。Googleは5月にChromeブラウザで127件の脆弱性を修正(前月は30件)し、AppleはiOS更新で52件の脆弱性に対処するなど、修正される脆弱性数が急激に増加しています。

Microsoft 5月のPatch Tuesdayでは、2年ぶりにゼロデイ脆弱性が含まれない更新となったものの、全体で118件の脆弱性が修正されており、AI技術による脆弱性発見が従来の攻撃者主導から予防的なセキュリティ対策へとパラダイムを変化させています。

中小企業のウェブ制作現場では、これまで手動でのセキュリティ対策に限界があった部分が、ベンダー側の積極的な修正により自動的に改善される環境に変わりつつあります。定期的なアップデートを適用するだけで、従来よりも高いセキュリティレベルを維持できる状況が生まれています。

技術スタックの統合が進む制作現場

モダンCSSの機能充実により、多くのチームがTailwindなどのフレームワークからネイティブCSSに回帰し、@layerとCSS変数の組み合わせでバンドルサイズを削減する動きが見られます。コンテナクエリがコンポーネント駆動開発の標準となることで、スケーラブルで堅牢なデザインシステムの構築が容易になっています。

Next.jsでは5月にセキュリティリリースで13件の脆弱性修正が行われ、React Server Componentsの脆弱性(CVE-2026-23870)も含まれており、フロントエンドフレームワークにおいてもセキュリティ対策の重要性が高まっています。

これらの技術進歩により、制作者は複雑な設定や冗長なコードに時間を費やすのではなく、ユーザー体験の向上や創造的な問題解決により多くの時間を割けるようになっています。

変化に対応するための実践的なアプローチ

現在の技術環境では、新機能を一度に全て導入するよりも、段階的な移行が現実的です。コンテナクエリへの移行では、複数のレイアウト文脈に現れるコンポーネント(カード、ウィジェット、ナビゲーション)から始めて、親ラッパーにcontainer-type: inline-sizeを追加し、@mediaルールを@containerルールに変換するアプローチが推奨されています。

WordPress Speculative Loadingも、デフォルト設定での恩恵を受けながら、必要に応じてサイト固有のニーズに合わせて調整することで、パフォーマンス向上を実感できます。重要なのは、これらの技術が段階的な機能向上として動作するため、対応していない環境でも問題なく動作することです。

2026年のウェブ制作は、ツールや技術の成熟により、制作者がより本質的な価値創造に集中できる環境が整ってきています。これらの変化を理解し、実際のプロジェクトで段階的に取り入れていくことで、競争力のあるウェブサイト制作が可能になるでしょう。

CSS View TransitionsがBaseline入り。全ブラウザ対応でページアニメーションが標準技術に

つくば市のホームページ制作会社

CSS View Transitions APIが2026年、ついにBaselineに到達しました。全主要ブラウザでView Transitions APIがサポートされ、ウェブアニメーションの標準技術として認定されたことで、JavaScriptライブラリに頼らない滑らかなページ遷移が現実的な選択肢になっています。

これまでView Transitionsは実験的機能として、Chrome Canaryでのみ利用可能でした。しかしFirefox 144で安定版リリースされ、これらの機能がBaseline Newly availableになったことで、制作現場での採用ハードルが一気に下がっています。

従来、ページ間の滑らかなアニメーション実装には複雑なJavaScriptライブラリが必要でした。FLIPアニメーション技法やReactの状態管理を駆使して、ユーザー体験を損なわないページ切り替えを実現するのは、相応のスキルと工数を要する作業だったのです。

わずか数行のCSSで映画的なページ遷移

@view-transition at-ruleを遷移元と遷移先の両方のページで定義するだけで、基本的な実装は完了します。最もシンプルなクロスフェード効果なら、以下のCSS一行で実現できます。

2026年のCSS新機能として、ミックスイン、クロスドキュメントビュートランジション、ギャップ装飾など、制作効率を大幅に改善する仕様が続々と実装されています。View Transitionsはその中でも特に実用性の高い機能として注目されています。

2026年の新プロジェクトでは、View TransitionsをデフォルトChoice とすべきとする意見も制作者コミュニティで広がっています。ただし、より細かいフレーム単位の制御が必要な場合やView Transitionをサポートしないブラウザへの対応が必要な場合には、従来のFLIP技法を併用するのが実際的です。

prefers-reduced-motionメディアクエリでユーザーのOS動作設定を尊重することも重要な実装ポイントです。アクセシビリティ配慮を怠ると、動きに敏感なユーザーに不快感を与える可能性があります。制作者は視覚的な魅力と使いやすさのバランスを常に意識する必要があります。

つくばでWordPressサイト制作を行う場合でも、View Transitionsは有効活用できるでしょう。テーマファイルにCSS記述を追加するだけで、投稿一覧から個別記事への遷移をより魅力的にできます。トランジション時間は500ms以下、理想的には200-400msに設定することで、パフォーマンスと体験品質のバランスが取れます。

View Transitions APIは、ぎこちないDOM交換や複雑なFLIPアニメーションライブラリ、レイアウトスラッシング対策を不要にし、ブラウザが古い状態をキャプチャし、変更を適用して、制作者が制御するCSSを使ってスナップショット間をアニメーションします。これまで高度な技術だったページ遷移アニメーションが、CSSの基本知識があれば実装できる時代になったのです。