CSS 連結パラメーター・モジュール レベル 1

W3C 初回公開作業草案,

この文書の詳細情報
このバージョン:
https://www.w3.org/TR/2026/WD-css-link-params-1-20260714/
最新の公開バージョン:
https://www.w3.org/TR/css-link-params-1/
編集者草案:
https://drafts.csswg.org/css-link-params/
履歴:
https://www.w3.org/standards/history/css-link-params-1/
フィードバック:
CSSWG 課題 リポジトリ
編集者:
Tab Atkins-Bittner (Google)
Daniel Holbert (Mozilla)
Jonathan Watt (Mozilla)
この仕様の編集を提案:
GitHub エディター

概要

この仕様は、CSS 値を SVG 画像などのリンク先リソースに渡し、リンク先リソース内で CSS のカスタム環境変数として使用できるようにする方法を導入します。 これにより、サイトのテーマカラーなどに容易に適応できる「テンプレート化された」SVG 画像を、元の SVG を変更することなく 簡単に再利用できます。

CSS は、構造化文書(HTML や XML など)が 画面や紙などにどのようにレンダリングされるかを記述するための言語です。

この文書の位置付け

この節では、この文書の公開時点における位置付けについて説明します。 現在の W3C 公開文書の一覧と この技術報告書の最新版は、 W3C 標準および草案一覧で確認できます。

この文書は、 CSS ワーキンググループにより、 勧告 トラックを使用した初回公開作業草案として公開されました。 初回公開作業草案としての公開は、 W3C およびその会員による承認を意味するものではありません。

これは草案文書であり、 いつでも更新、置換、 または他の文書によって廃止される可能性があります。 この文書を作業中の文書以外のものとして引用することは不適切です。

フィードバックは、 GitHub で課題を提出することによりお送りください(推奨)。 タイトルには、次のように仕様コード「css-link-params」を含めてください: “[css-link-params] …コメントの概要…”。 すべての課題とコメントはアーカイブされます。 または、(アーカイブされる)公開メーリングリスト www-style@w3.org にフィードバックを送ることもできます。

この文書には、 2025年8月18日付 W3C プロセス 文書が適用されます。

この文書は、 W3C 特許方針に基づいて活動するグループによって作成されました。 W3C は、このグループの成果物に関連して行われた 特許開示の公開一覧を管理しています。 このページには、特許を開示するための手順も記載されています。 ある特許に、 必須クレームが含まれていると考えるに足る実際の知識を有する者は、 W3C 特許 方針の第6節に従って、その情報を開示しなければなりません。

1. はじめに

SVG は CSS でスタイルを設定でき、 HTML 内でインラインとして使用する場合、 この機能は非常に有用です。 たとえば、SVG アイコンに :hover 規則を適用し、 fill プロパティを変更するだけで、 ユーザーがその上にポインターを置いているかどうかに応じて異なる色を使用できます。

外部ページのセレクターや CSS 継承を適用できない方法で SVG が参照される場合 (HTML 内で img または iframe を介して埋め込む場合など)、 この機能は失われます。 このような「外部」SVG 画像の表示を変更する唯一の方法は、 それらを複数作成し、 参照する画像を切り替えることです。 これにより、新しいリソースがダウンロードされる間にページで遅延が発生し、 CSS トランジションのような動的効果も使用できなくなります。

CSS リンクパラメーターは、 CSS プロパティ、または URL 上の特別なフラグメント方式のいずれかを使用して、 「外部」リソース上に CSS のカスタム環境変数を設定する方法です。 これにより、「インライン」SVG 画像が持つカスタマイズ性の限定的ながら強力な一部を、 「外部」SVG 画像にも提供できます。

リンクパラメーターは、 <dashed-ident> の名前と、 任意の(空でもよい)<declaration-value> の値の組です。

たとえば、SVG 画像をリンクパラメーターを使用するように記述し、 次のように、その色を即座に変更できるようにできます:
<svg>
  <path fill="env(--color, black)" d="..." />
</svg>

既定では、指定されたフォールバック色である黒で図形が塗りつぶされます。 しかし、リンク パラメーターを使用すると、 次のようないくつかの方法で色をカスタマイズできます:

<img src="image.svg#param(--color,green)">
img {
  link-parameters: param(--color, green);
}
.foo {
  background-image: url("image.svg", param(--color, green));
}

2. リンクパラメーターの設定

外部リソースには、リンクパラメーターのリストを付随させることができます。 各項目は、キーとしての<dashed-ident>と、 値としての(空でもよい)<declaration-value>から構成されます。

リンクパラメーターを指定する方法は3つあります:

これらの方法のうち複数で指定された場合、 すべてのリンク パラメーターは、 次の順序で外部リソース用の単一のリストに追加されます:

  1. 該当する場合、要素上のlink-parameters プロパティ

  2. param() URL フラグメント識別子

  3. url() 内の、param() <url-modifier>

同じ名前を持つ複数のリンク パラメーターが存在する場合、 リスト内の最後のものが使用されます。

リンク先リソース内でリンク パラメーターにアクセスする方法は、 次の節、 § 3 リンクパラメーターの使用で定義します。

名前: link-parameters
値: none | <param()>#
初期値: none
適用対象: すべての要素および疑似要素
継承: しない
パーセント値: 該当なし
算出値: 指定どおり
正規順序: 文法に従う
アニメーション型: 離散

link-parameters プロパティは、 要素自体 (HTML の imgiframe など、外部リソースを表す要素である場合)と、 要素上で指定されたすべての外部 CSS リソース (背景画像など)にリンクパラメーターを設定する方法の1つです。 このプロパティの値は次のとおりです:

none

リンク パラメーターは指定されません。

<param()>#

1つ以上のリンクパラメーターのリストです。

param() 関数は、<dashed-ident>をキー、 <declaration-value>?を値とする、 リンクパラメーターを指定します。 (<declaration-value>が省略された場合、 空の値を表します。) 構文は次のとおりです:

<param()> = param( <dashed-ident> , <declaration-value>? )

2.2. URL 内での設定

外部リソースを参照するために使用される URL のフラグメントでは、 特別な「フラグメント識別子」を使用できます。 SVG 文書用の既存の「フラグメント識別子」の例は、 SVG 1.1 仕様にいくつか記載されています。

SVG パラメーターフラグメント識別子の構文は次のとおりです:

param( <dashed-ident> , <declaration-value>? )

CSS 値定義構文を使用します。TODO: 実際のパーサーを 定義する)。

たとえば、SVG 画像の env(--text-color) カスタム環境変数blue に設定するには、 次のような URL で画像を参照できます: “http://example.com/image.svg#param(--text-color,blue)”。

URL に複数のparam() フラグメント識別子を追加することで、 複数のリンク パラメーターを画像に渡すことができます。 それら同士、または他の「フラグメント識別子」と組み合わせる場合、 URL のクエリパラメーターと同様に、 各値を & 文字で区切ります。

たとえば、前の例の画像でも env(--bg-color) を使用している場合、 次のような URL で参照することで、 “http://example.com/image.svg#param(--text-color,blue)&param(--bg-color,white)env(--text-color)env(--bg-color) の両方を設定できます。

注: 空白や、CSS 構文では有効である可能性のある その他の一部の文字は、 厳密には URL では有効ではありません。 文脈によっては、 有効な URL を形成するためにこれらの文字をエスケープする必要があります。 ただし、ほとんどの場合、 HTML の a 要素や CSS の url() 関数などでは、 空白が受け入れられ、エスケープする必要はありません。

2.3. CSS の url() 関数による設定

CSS を介して外部リソースを参照する場合、 param() 関数を url() 関数内で使用できます。 しかし、一般的なユースケースとして、 ページ自身のカスタム プロパティの値を渡すことがあります。 たとえば、ページで --primary-color カスタムプロパティを使用しており、 SVG 画像をそれに一致させたい場合があります。 しかし、CSS 内のカスタム プロパティの値を、url() 関数に渡される URL に組み込む方法はありません。

これに対応するため、 param() は、 有効な<url-modifier>です。 <url-modifier>として指定された すべての param() は、 link-parameters と同様に、 リンク パラメーターを定義します。

たとえば、 サイトが要素のテーマ設定に --primary-color カスタムプロパティを使用しており、 env(--color) を使用する SVG 背景にもその値を反映させたい場合、 次のように記述できます:
.foo {
  background-image: url(
    "http://example.com/image.svg"
    param(--color, var(--primary-color))
  );
}

3. リンク パラメーターの使用

外部リソースのリンクに1つ以上のリンクパラメーターが指定されており、 リンク先リソースが CSS を解釈する場合 (SVG 文書や HTML 文書など)、 それらのリンクパラメーターは、 その名前と値を持つグローバルなカスタム環境変数をリソースに設定し、 スタイルシート内の env() 関数から アクセスできるようにします。

たとえば、SVG 画像で --color パラメーターを公開する場合、 次のように使用できます:
<svg>
  <g style="fill: env(--color);">
    <path d="..." />
  </g>
</svg>
通常は、パラメーターが指定されていない場合でも SVG 画像を使用できるように、 各カスタムプロパティに「既定値」を指定することを推奨します。 これを行う方法はいくつかあります。
  1. env() 関数に、 fill: env(--color, blue) のようなフォールバック値を指定します。

  2. env() を何度も使用するため、 個々の env() にフォールバックを指定するのが煩雑になる場合、 カスタム環境変数を、 既定値を指定したルート要素上のカスタムプロパティに格納します。 次に例を示します:

    :root {
      --color: env(--color, blue);
    }
    

    この例では、--colorリンクパラメーターを介して指定された場合、 var(--color) にはその値が格納されます。 指定されていない場合は、既定の blue 値が格納されます。 いずれの場合も、var(--color) には常に値が存在することが保証されるため、 スタイルシート内で無条件に使用できます。

プライバシーに関する考慮事項

この仕様は、新たなプライバシー上の考慮事項を導入しません。

セキュリティに関する考慮事項

この仕様は、リンク先リソースに情報を渡す新しい方法を導入します。 その情報は、敵対的な情報源から渡される可能性があります。

この通信経路には明示的なハンドシェイクが確立されていませんが、 情報を使用するために env() を使用することで、 リンク先リソースがその情報によって予期しない影響を受ける可能性を最小限に抑えられます。 ページに脆弱性が生じる可能性がある唯一の状況は、 そのスタイル内で何らかの未知の env() を 使用している場合です。 この場合、既定では単にプロパティが無効になり、 開発者の開発者ツールに表示されます。

また、敵対的な情報が影響を与えられるのは、 リソースが明示的に受け入れることを選択した個々の CSS プロパティだけです。

適合性

文書の規約

適合要件は、説明的な表明と RFC 2119 の用語を組み合わせて表現されます。この文書の規範的な部分における 「MUST」、「MUST NOT」、「REQUIRED」、「SHALL」、「SHALL NOT」、「SHOULD」、「SHOULD NOT」、 「RECOMMENDED」、「MAY」、および「OPTIONAL」というキーワードは、 RFC 2119 に記載されているとおりに解釈されるものとします。 ただし、読みやすさのため、この仕様ではこれらの語がすべて大文字で 表記されるとは限りません。

明示的に非規範的と示された節、例、および注記を除き、 この仕様のすべての文章は規範的です。[RFC2119]

この仕様の例は、「たとえば」という語で導入されるか、 次のように class="example" を使用して規範的な文章から区別されます:

これは参考例の一例です。

参考注記は「注」という語で始まり、次のように class="note" を使用して規範的な文章から区別されます:

注: これは参考注記です。

勧告事項は、特別な注意を促すようにスタイル設定された規範的な節であり、 次のように <strong class="advisement"> を使用して 他の規範的な文章から区別されます: UA は、アクセシブルな代替を提供しなければなりません。

適合クラス

この仕様への適合性は、 3つの適合クラスについて定義されます:

スタイルシート
CSS スタイルシート
レンダラー
スタイルシートの意味を解釈し、 それを使用する文書をレンダリングする UA
オーサリングツール
スタイルシートを作成する UA

このモジュールで定義される構文を使用するすべての文が、 一般的な CSS 文法およびこのモジュールで定義される各機能の個別の文法に従って 妥当である場合、そのスタイルシートはこの仕様に適合します。

適切な仕様で定義されているとおりにスタイルシートを解釈することに加えて、 この仕様で定義されるすべての機能を正しく構文解析し、 それに従って文書をレンダリングする場合、そのレンダラーはこの仕様に適合します。 ただし、デバイスの制限により UA が文書を正しくレンダリングできないことによって、 その UA が不適合になることはありません。(たとえば、UA は モノクロモニター上で色をレンダリングする必要はありません。)

一般的な CSS 文法およびこのモジュールの各機能の個別の文法に従って 構文的に正しいスタイルシートを作成し、 このモジュールに記載されたスタイルシートに関するその他すべての適合要件を 満たす場合、そのオーサリングツールはこの仕様に適合します。

部分的な実装

作者が前方互換の構文解析規則を利用して フォールバック値を割り当てられるようにするため、CSS レンダラーは、 使用可能なレベルのサポートを備えていないアットルール、プロパティ、プロパティ値、キーワード、 およびその他の構文構造を無効として扱い(かつ必要に応じて 無視しなければなりません。特に、ユーザーエージェントは、 単一の複数値プロパティ宣言において、サポートされていない成分値を選択的に 無視し、サポートされている値を有効にしてはなりません。 いずれかの値が無効とみなされる場合 (サポートされていない値は無効とみなされなければなりません)、 CSS では宣言全体を無視することが要求されます。

不安定な機能および独自機能の実装

将来の安定した CSS 機能との衝突を避けるため、 CSSWG は、CSS の不安定な機能および独自拡張の実装について、 ベストプラクティスに従うことを推奨します。

非実験的な実装

仕様が勧告候補の段階に達すると、 非実験的な実装が可能になり、実装者は、 仕様に従って正しく実装されていることを実証できる CR レベルの機能について、接頭辞なしの実装を公開するべきです。

実装間における CSS の相互運用性を確立し維持するため、 CSS ワーキンググループは、非実験的な CSS レンダラーに対し、 CSS 機能の接頭辞なしの実装を公開する前に、 実装報告書(および必要な場合は、その実装報告書で使用したテストケース)を W3C に提出するよう求めています。W3C に提出されたテストケースは、 CSS ワーキンググループによる審査および修正の対象となります。

テストケースおよび実装報告書の提出に関する詳細情報は、 CSS ワーキンググループのウェブサイト https://www.w3.org/Style/CSS/Test/ で確認できます。 質問は、 public-css-testsuite@w3.org メーリングリストにお寄せください。

索引

この仕様で定義される 用語

参照先で定義される 用語

参考文献

規範的参考文献

[CSS-ENV-1]
CSS 環境変数モジュール レベル 1。2025年9月23日。 FPWD。URL: https://www.w3.org/TR/css-env-1/
[CSS-SYNTAX-3]
Tab Atkins Jr.; Simon Sapin. CSS 構文モジュール レベル 3。2021年12月24日。CRD。URL: https://www.w3.org/TR/css-syntax-3/
[CSS-VALUES-3]
Tab Atkins Jr.; Elika Etemad. CSS 値と単位 モジュール レベル 3。2024年3月22日。CRD。URL: https://www.w3.org/TR/css-values-3/
[CSS-VALUES-4]
Tab Atkins Jr.; Elika Etemad. CSS 値と単位 モジュール レベル 4。2024年3月12日。WD。URL: https://www.w3.org/TR/css-values-4/
[CSS-VARIABLES-1]
Tab Atkins Jr.. カスケーディング変数のための CSS カスタムプロパティ モジュール レベル 1。2022年6月16日。CR。URL: https://www.w3.org/TR/css-variables-1/
[FILL-STROKE-3]
Elika Etemad; Tab Atkins Jr.. CSS 塗りと線 モジュール レベル 3。2017年4月13日。FPWD。URL: https://www.w3.org/TR/fill-stroke-3/
[HTML]
Anne van Kesteren; et al. HTML 標準。 現行標準。URL: https://html.spec.whatwg.org/multipage/
[RFC2119]
S. Bradner. RFC で要件レベルを示すために使用する キーワード。1997年3月。現行の最良の慣行。URL: https://datatracker.ietf.org/doc/html/rfc2119
[SELECTORS-4]
Elika Etemad; Tab Atkins Jr.. セレクター レベル 4。2026年1月22日。WD。URL: https://www.w3.org/TR/selectors-4/
[URL]
Anne van Kesteren. URL 標準。現行標準。 URL: https://url.spec.whatwg.org/

非規範的参考文献

[CSS-COLOR-4]
Tab Atkins Jr.; Chris Lilley; Lea Verou. CSS 色モジュール レベル 4。2026年6月18日。CRD。URL: https://www.w3.org/TR/css-color-4/

プロパティ索引

名前 初期値 適用対象 継承 パーセント値 アニメーション型 正規順序 算出値
link-parameters none | <param()># none すべての要素および疑似要素 しない 該当なし 離散 文法に従う 指定どおり