シームレステクスチャは優れたCSS背景として機能します。タイリングにより単一の小さな画像でビューポート全体をカバーでき、大きなヒーロー画像なしでページに視覚的な豊かさを与えます。しかし、実装を正しく行うことが重要です:最適化されていない背景テクスチャはページの重量に数百キロバイトを追加し、読み込み中にレイアウトシフトを引き起こす可能性があります。このガイドではCSSでシームレステクスチャを使用する際の技術的な詳細を説明します。
タイリングテクスチャのCSSプロパティ
タイリング背景のコアCSSはシンプルです:
- background-image — シームレス画像を指す
url('/texture.webp')に設定。 - background-repeat —
repeat(デフォルト)に設定。ブラウザが画像を両方向にタイリングします。単一軸のタイリングにはrepeat-xまたはrepeat-yを使用。 - background-size — 各タイルのサイズを制御します。
background-size: 256px 256pxの512pxテクスチャはネイティブサイズの半分でタイリングされ、より密なパターンを作り出します。ネイティブ解像度でタイリングするにはこのプロパティを省略します。 - background-attachment — 通常の動作には
scroll(デフォルト)を使用。モバイルではfixedを避けてください — メインスレッドでのコンポジットが強制され、iOS Safariでのジャンクを引き起こします。
画像フォーマットの選択
WebP
WebPはCSS背景テクスチャのデフォルトフォーマットにすべきです。非可逆圧縮と可逆圧縮の両方をサポートし、同等品質のPNGより25〜35%小さく、ブラウザのサポートは今や普遍的(グローバルカバレッジ97%以上)です。クオリティ80の非可逆WebPで512pxシームレステクスチャは15〜40 KBに圧縮されます。PNGでは60〜150 KBです。
PNG
可逆品質または透明度(アルファチャンネル)が必要な場合のみPNGを使用してください。PNGは写真や複雑なグラデーションのテクスチャではWebPよりはるかに大きくなります。少ない色数のシンプルなパターン(チェッカーボード・グリッド)では、フラットカラー領域の効率的な処理のためPNGがWebPと競争力を持つことがあります。
JPEG
JPEGは透明度を持たず、ハードエッジ周辺に目立つ圧縮アーティファクトを生じるため、鮮明なディテールのテクスチャには不向きです。しかし、柔らかい有機的なテクスチャ(雲・ノイズ・グラデーション)では、クオリティ75〜80のJPEGが許容範囲の品質でWebPより小さくなることがあります。サポートは普遍的です。
AVIF
AVIFは最高の圧縮率(WebPより40〜50%小さい)を提供しますが、デコード時間が遅くブラウザのサポートが不完全です。テクスチャを<img>タグとして提供する場合は<picture>要素でプログレッシブエンハンスメントとして使用してください。CSS背景では、WebPフォールバックチェーンの方がシンプルです。
ファイルサイズの目標
背景テクスチャの目標ファイルサイズ:
- 30 KB未満 — 理想的。ほとんどの接続で単一のTCPラウンドトリップでロードされます。ページ総重量への影響がほぼゼロ。
- 30〜50 KB — 許容範囲。ブロードバンドでは高速。モバイルでの遅延読み込みを検討。
- 50〜100 KB — テクスチャがフォールド上の重要なコンテンツである場合のみ使用。フォールド下では遅延読み込みを。
- 100 KB超 — 繰り返し背景には大きすぎます。解像度を下げる・圧縮を増やす・パターンを簡素化してください。
CSSのみのパターンと画像テクスチャ
CSSグラジエントはネットワークリクエストなしでシンプルなパターン — ストライプ・ドット・チェッカーボード — を作り出せます。ハードなカラーストップを持つ繰り返しリニアグラジエントはくっきりしたストライプを生成します。ラジアルグラジエントはドットパターンを作り出します。これらは解像度非依存で非常に軽量です。
しかし、CSSパターンはノイズ・大理石・紙のような有機的なテクスチャを再現できません。幾何学的パターン以外のものには、小さな画像テクスチャの方が良いアプローチです。最適なのは30 KB未満の256〜512pxシームレス画像です。
ダークモードの考慮事項
背景テクスチャはダークモードのための調整が必要なことが多いです。暗い背景に明るい紙のテクスチャは不自然です。オプションとして:
- 別のテクスチャ — メディアクエリ内の
prefers-color-scheme: darkまたはCSSカスタムプロパティを使用してダークバリアントを提供。 - CSSフィルターオーバーレイ — 単一の画像アセットを保持しつつ、背景を担う疑似要素に
filter: invert(1)またはfilter: brightness(0.3)を適用。 - 不透明度の低減 — 非常に微妙なテクスチャ(
opacity: 0.05)をノイズオーバーレイとして使用し、明暗両方の背景で機能するようにする。
遅延読み込みとパフォーマンス
CSS背景画像はloading="lazy"属性を使えません(これは<img>と<iframe>にのみ適用されます)。背景テクスチャを遅延読み込みするには、Intersection Observer APIを使って要素がビューポートに入ったときのみbackground-imageルールを含むCSSクラスを追加します。フォールドより上の背景には、<link rel="preload" as="image" href="/ja/texture.webp">で画像をプリロードして早期にダウンロードを開始してください。
テクスチャライブラリを閲覧するか、ジオメトリックパターンまたはグリッドジェネレーターで軽量なパターンを生成してください — どちらもウェブ背景に理想的なクリーンで低ファイルサイズの結果を生成します。