1. 概論
最初のCSS仕様が公開されたときに、CSSのすべては、CSSレベル1を定義した1つの文書に含まれていました。CSSレベル2はまた、複数の章からなる単独の文書によって定義されていました。しかし、レベル2を超えるCSSに対して、CSSワーキンググループは、単一のモノリシックな仕様を定義するよりもむしろ、各モジュールがCSSのある部分を定義することで、モジュール式のアプローチを採用することにしました。これは、より管理しやすい塊に仕様を分割し、CSSへのより直接的で、漸進的な改善を可能にします。
種々のCSSモジュールは安定性の異なるレベルにあるため、CSSワーキンググループは、2023年現在でカスケーディングスタイルシートの現在の範囲と状態を定義するために、このプロファイルを公開することを選択しました。
1.1. CSSとは?
- カスケーディングスタイルシート(Cascading Style Sheets (CSS))
- CSSはスタイルシートを記述するための言語であり、さまざまなメディアでの構造化文書(HTMLやXMLなど)のレンダリングを記述するように設計されています。CSS は、ソース文書のプレゼンテーションを記述するために使用され、たいてい、その文書言語によって表現される基本的なセマンティックスを変更しません。
- スタイルシート(Style sheet)
- 文書のプレゼンテーションを指定する一連のルール。スタイルシートは著者によって書かれ、ユーザーエージェントによって解釈されて、文書がユーザーに提示されます。
- ソース文書(Source document)
- 1つ以上のスタイルシートが参照する文書。ソース文書の構造とセマンティックスは、文書言語(HTML、XHTML、SVGなど)を使用してエンコードされます。
- 著者(Author)
- 著者とは、文書および関連するスタイルシートを記述する人です。オーサリングツール(authoring tool) とは、スタイルシートを生成するユーザーエージェントです。
- ユーザー(User)
- ユーザーとは、文書を見る、聞く、または使用するためにユーザーエージェントと対話する人です。
- ユーザーエージェント(User Agent (UA))
- ユーザーエージェントは、ユーザーに代わって文書とその文書に関連付けられたスタイルシートを解釈するプログラムです。ユーザーエージェントは、文書を表示したり、音声読み上げしたり、印刷したり、別のファイル形式に変換したりしてもよいです。CSS仕様の目的上、ユーザーエージェントは、これらCSSの仕様で定義されているカスケーディングスタイルシートをサポートし、解釈するものです。
1.2. 背景:W3CプロセスとCSS
この節は非規範的です。
W3Cプロセスにおいて、勧告トラック文書は以下にまとめられる、安定性の3つのレベルを通過します:
- 草案(Working Draft: WD)
-
これは、W3C仕様の設計段階です。ワーキンググループは、内部および外部のフィードバックに応えて仕様を繰り返し発行します。
最初の公式作業草案は、「最初の公開草案」(First Public Working Draft: FPWD)に指定されます。CSSワーキンググループにおいて、FPWDの発行は、ワーキンググループ全体が、編集者草案で大まかに調べられ提案されたように、モジュールで作業することに合意したことを示します。
次の段階への移行は時に「最終作業草案」(Last Call Working Draft: LCWD)段階と呼ばれます。一旦我々がすべての既知の問題を解決してCSSワーキンググループは作業草案を移行し、テストの構築と実装からフィードバックなしにさらにプロセスを進めることができません。
この「コメントに対するラストコール」は、任意の未解決の問題を報告するための期限を設定し、入ってくるフィードバックを特別に追跡して対処することをワーキンググループに要求します。コメント追跡文書は、コメントの処置(Disposition of Comments: DoC)になります。これは、広いレビューと支持を実証するために、ディレクターの承認に対する更新された草案と一緒に提出されます。
- 勧告候補(Candidate Recommendation: CR)
-
これは、W3C仕様のテスト段階です。とりわけこの段階は、仕様をテストするために試験と実装を使用するということを意味します。実装をテストすることが目的ではありません。このプロセスは多くの場合、仕様についてより多くの問題を明らかにするので、勧告候補は実装とテストのフィードバックに応じて時間をかけて変化させます。もっとも通常は設計段階(草案)の間よりも少なくなります。
各機能の2つの正しい、独立している実装の実証は、勧告候補を終了するのに必要なので、この段階でワーキンググループはテストスイートを作成して実装のレポートを生成します。
次の段階への移行は、「勧告案」(Proposed Recommendation: PR)です。この段階の間にW3C諮問委員会は、勧告への移行を承認しなければなりません。
- 勧告(Recommendation: REC)
- これは、W3C仕様の完成した状態であり、メンテナンス段階を表します。この時点で草案は、エラッタ文書を維持し、仕様に戻るエラッタを組み込む更新版を折に触れて発行します。
編集者草案(Editor’s Draft)は、効果的に編集者自身の作業コピーのライブコピーです。編集者草案は、ワーキンググループのコンセンサスを反映してもしなくてもよく、折に触れて自己矛盾した状態にすることができます。(W3Cでの公開プロセスは時間がかかり面倒なので、編集者草案は通常、仕様に対する最善の(最新の)基準です。公式草案が定期的に最新でありそして編集者草案がスクラッチスペースとしての本来の機能に戻ることができるように、試みは発行の衝突を低減するために現在進行中です。)
2. CSS仕様の分類
すべてのCSSモジュール、安定か進行中、およびモジュールのステータスのリストは、CSS Current Work pageで見つけることができます。
2.1. Cascading Style Sheets (CSS) — 公式の定義
このプロファイルは、我々が安定性を検討し、かつ我々がその安定性を保証する十分な実装経験を持つ仕様のみが含まれます。
注:これは、CSSデスクトップブラウザーのプロファイルであることを意図しません。このプロファイルに含まれるものは、機能の安定性にのみ基づき、予想される用途やウェブブラウザーの採用に基づきません。このプロファイルは、最も完全な形でCSSを定義します。
2023年現在で、カスケーディングスタイルシート(CSS)は、次の仕様によって定義されます。
- CSS Level 2、最新のリビジョン(エラッタを含む)[CSS2]
- これは、後の仕様によって上書きされる部分の、CSSの中核を定義します。我々は、CSSの基本的な概念とその設計原理の一部を紹介する、2章を読むことを特に推奨します。
- CSS Syntax Level 3 [CSS-SYNTAX-3]
- CSS2§4.1、CSS2§4.2、CSS2§4.4、およびCSS2§Gを置き換え、CSSの解析方法を再定義します。
- CSS Style Attributes [CSS-STYLE-ATTR]
- CSS宣言をマークアップ属性に埋め込むことを可能にする方法を定義します。
- Media Queries Level 3 [CSS3-MEDIAQUERIES]
- CSS2§7.3を置換し、メディア固有のスタイルに対する構文を拡張します。
- CSS Conditional Rules Level 3 [CSS-CONDITIONAL-3]
- CSS2§7.2を拡張し、ネストを可能にするために@media規則の定義を更新し、機能サポートクエリーのための@supports規則を導入します。
- Selectors Level 3 [SELECTORS-3]
- 拡張されたセレクターの範囲を定義する、CSS2§5とCSS2§6.4.3を置換します。
- CSS Namespaces [CSS3-NAMESPACE]
- 名前空間接頭辞のセレクターを可能にするための@namespace規則を導入します。
- CSS Cascading and Inheritance Level 4 [CSS-CASCADE-4]
- CSS2§1.4.3およびCSS2§6、そして[CSS-CASCADE-3]を拡張して置換します。スタイル規則を照合し、すべての要素のすべてのプロパティに値を割り当てる方法を説明します。カスケーディングと継承の方法として、すべての要素のすべてのプロパティに対して値は伝播されます。
- CSS Values and Units Level 3 [CSS-VALUES-3]
- CSS2§1.4.2.1、CSS2§4.3、およびCSS2§A.2.1-3を置換し、CSSのプロパティ定義構文を定義して単位のセットを拡張します。
- CSS Custom Properties for Cascading Variables Module Level 1 [CSS-VARIABLES-1]
- すべてのCSSプロパティで受け入れられる新しいプリミティブ値の型と、そのCSSプロパティを定義するためのカスタムプロパティとしてカスケード変数を導入します。
- CSS Box Model Level 3 [CSS-BOX-3]
- CSS2§8.1, §8.2, §8.3(ただし、§8.3.1は除く)、および§8.4を置換します。
- CSS Color Level 4 [CSS-COLOR-4]
- CSS2§4.3.6、CSS2§14.1、およびCSS2§18.2を拡張して置き換え、[CSS-COLOR-3]も拡張して置き換え、sRGBを超える色空間の拡張範囲、拡張された色値、および色のCSS Object Model拡張を導入します。また、opacityプロパティを定義します。
- CSS Backgrounds and Borders Level 3 [CSS-BACKGROUNDS-3]
- CSS2§8.5およびCSS2§14.2を拡張して置き換え、層状の背景画像、画像のボーダー、ドロップシャドウなどの背景と境界線をより細かく制御できるようにします。
- CSS Images Level 3 [CSS-IMAGES-3]
- 外部2次元画像値タイプを再定義して組み込み、ネイティブ2次元グラデーションを導入し、置換要素のサイズ設定とレンダリングのための追加のコントロールを追加します。
- CSS Fonts Level 3 [CSS-FONTS-3]
- CSS2§15を拡張して置き換え、フォントの選択と機能の選択をより細かく制御できるようにします。
- CSS Writing Modes Level 3 [CSS-WRITING-MODES-3]
- 左から右(たとえば、ラテン語またはインド語)、右から左(たとえば、ヘブライ語またはアラビア語)、双方向(たとえば、ラテン語およびアラビア語の混合)および縦(たとえば、アジアの文字)など、さまざまな国際的な書字モードのためのCSSサポートを定義します。CSS2§8.6および§9.10を置換して拡張します。
- CSS Multi-column Layout Level 1 [CSS-MULTICOL-1]
- CSSレイアウトに多段組みのフローを導入します。
- CSS Flexible Box Module Level 1 [CSS-FLEXBOX-1]
- CSSに柔軟な直線レイアウトモデルを導入します。
- CSS User Interface Module Level 3 [CSS-UI-3]
- CSS2§18.1とCSS2§18.4を拡張して置き換え、cursor、outline、そしてさらにユーザーインターフェイスを強化する複数の新しいCSSの機能を定義します。
- CSS Containment Module Level 1 [CSS-CONTAIN-1]
- containプロパティを導入します。これは、うまく使用されたときにユーザーエージェントによる大幅な最適化を可能にするために、要素のサブツリーの独立したCSS処理を強制するものです。
- CSS Transforms Level 1 [CSS-TRANSFORMS-1]
- CSSに座標ベースのグラフィカル変換を導入します。
- CSS Compositing and Blending Level 1 [COMPOSITING]
- オーバーレイされたコンテンツの合成や混合を定義し、それらのモードを制御するための機能を導入します。
- CSS Easing Functions Level 1 [CSS-EASING-1].
- ある値の変化率を制御する変換を著者が定義する方法について説明します。このような変換をアニメーションに適用すると、運動量などの物理現象を模倣したアニメーションを作成したり、アニメーションを離散的なステップで移動させてロボットのような動きをさせることができます。
- CSS Counter Styles Level 3 [CSS-COUNTER-STYLES-3]
- @counter-styleルールを導入します。これにより、著者は、CSSリストマーカーおよび生成コンテンツカウンター[CSS-LISTS-3]で使用する独自のカスタムカウンタースタイルの定義を可能にします。また、CSS2およびCSS2.1に存在するものを含む、一般的なカウンタースタイルのセットを事前定義します。
注:我々は、このスナップショットを形成する仕様に大きな変更を予想しませんが、包含する仕様は、仕様が固まっていることを意味するものではありません。CSSワーキンググループは、仕様で見つかる問題に対処し続けます。実装者は、任意の変更、修正、または明確化に対してwww-styleおよび/またはCSS Working Group Blogを監視すべきです。
2.2. 実装経験が少ないが、かなり安定したモジュール
次のモジュールは、設計作業を完了し、かなり安定していますが、まだ多くのテストと実装経験を受けていません。今後のスナップショットでCSSの公式定義に組み込むことを期待しています。
- Media Queries Level 4 [MEDIAQUERIES-4]
- 構文の拡張、ほとんどのメディアタイプの廃止、新しいメディア機能を導入する、[CSS3-MEDIAQUERIES]を拡張して置き換えます。
- CSS Display Module Level 3 [CSS-DISPLAY-3]
- CSS2§9.1.2、§9.2.1(§9.2.1.1ではない)、§9.2.2(§9.2.2.1ではない)、§9.2.3および§9.2.4を置き換え(そして、§9.7を置き換えるための基礎を築きます )、CSS整形ボックスツリーが文書要素ツリーからどのように生成されるかを定義し、それを制御する表示プロパティを定義します。
- CSS Writing Modes Level 4 [CSS-WRITING-MODES-4]
- [CSS-WRITING-MODES-3]を拡張および置き換えて、縦書きのオプションを追加します。
- CSS Fragmentation Module Level 3 [CSS-BREAK-3]
- フローをページ、列、または領域に分割し、それを制御するプロパティを定義する断片化モデルについて説明します。 CSS2§13.3を拡張して置き換えます。
- CSS Box Alignment Module Level 3 [CSS-ALIGN-3]
- さまざまなCSSボックスレイアウトモデル(ブロックレイアウト、テーブルレイアウト、フレックスレイアウト、グリッドレイアウト)でコンテナ内のボックスの配置を制御するプロパティを導入します。
- CSS Shapes Module Level 1 [CSS-SHAPES-1]
- 非矩形を包む形状をもたらすためのフロート(CSS2§9.5))を拡張します。
- CSS Text Module Level 3 [CSS-TEXT-3]
- §16.2を除くCSS2§16を拡張して置き換え、テキスト操作のプロパティを定義し、それらの処理モデルを指定します。これは、改行、行端揃えと整列、空白の処理、およびテキスト変換を取り扱います。
- CSS Text Decoration Level 3 [CSS-TEXT-DECOR-3]
- CSS2§16.3を拡張して置き換え、テキスト装飾線をより細かく制御し、テキスト強調マークとテキストシャドウを指定する機能を追加します。
- CSS Masking Level 1 [CSS-MASKING-1]
- CSS2§11.1.2を置換し、コンテンツの切り抜きやマスキングのより強力な方法を導入します。
- CSS Scroll Snap Module Level 1 [CSS-SCROLL-SNAP-1]
- 「スナップ位置」でのパンとスクロールの動作を制御する機能を含みます。
- CSS Speech Module Level 1 [CSS-SPEECH-1]
- (非規範的な)音声レンダリングの章を見直し、CSS2§Aを置換します。
- CSS Scrollbars Styling Module Level 1 [CSS-SCROLLBARS-1]
- スクロールバーの視覚的なスタイルに影響を与えるプロパティを定義し、色と幅のコントロールを導入します。
- CSS View Transitions Module Level 1 [CSS-VIEW-TRANSITIONS-1]
- View Transition APIと、関連するプロパティおよび疑似要素を定義します。これにより、開発者は、文書の状態の変化を表すアニメーション化された視覚的な遷移を作成できます。
2.3. ラフな相互運用性をもつモジュール
以下のモジュールはラフな相互運用性で広く展開されていますが、それらの詳細は完全に決着がつかないか、十分に指定されておらず、さらにテストとバグ修正が必要です。今後のスナップショットでCSSの公式定義に組み込むことを期待しています。
- CSS Transitions Level 1 [CSS-TRANSITIONS-1] およびCSS Animations Level 1 [CSS-ANIMATIONS-1].
- CSSプロパティの算出値を時間の経過とともに遷移させるメカニズムを導入します。
- CSS Grid Layout Module Level 1 [CSS-GRID-1]
- ユーザーインターフェイス設計に最適化された、2次元グリッドベースのレイアウトシステムを導入します。グリッドレイアウトモデルにおいて、グリッドコンテナの子は、定義済みのフレキシブルまたは固定サイズのレイアウトグリッド内の任意のスロットに配置することができます。
- CSS Grid Layout Module Level 2 [CSS-GRID-2]
- [CSS-GRID-1]を拡張して置き換え、共有グリッドフレームワークでネストされたマークアップを管理するための“サブグリッド”を導入します。
- CSS Will Change Level 1 [CSS-WILL-CHANGE-1]
- will-changeと呼ばれるパフォーマンスヒントのプロパティを導入します。
- Filter Effects Module Level 1 [FILTER-EFFECTS-1]
- 文書に表示される前に要素のレンダリングを処理する方法として、フィルター効果を導入します。
- CSS Font Loading Module Level 3 [CSS-FONT-LOADING-3]
- フォントリソースを動的にロードするために使用されるイベントとインターフェイスを導入します。
- CSS Box Sizing Level 3 [CSS-SIZING-3]
- CSS§10を上書きして拡張し、サイジングプロパティの値集合を拡張し、より正確なサイジング用語を導入し、CSS2で漠然と定義されているさまざまな自動サイジングの概念をより正確かつ詳細に定義します。
- CSS Transforms Level 2 [CSS-TRANSFORMS-2]
- [CSS-TRANSFORMS-1]をもとにして、3次元変換のための新しい変換関数とプロパティ、および単純な変換のための便利な関数を追加します。
- CSS Lists and Counters Module Level 3 [CSS-LISTS-3]
- リストカウンターに関連するCSS機能(スタイル設定、配置、および値の操作)が含まれています。
- CSS Logical Properties and Values Level 1 [CSS-LOGICAL-1]
- 物理的な方向と寸法のマッピングではなく、論理的なマッピングをとおしてレイアウトを制御する機能を著者に提供する、論理的なプロパティと値を導入します。[CSS2]で定義されている機能の論理プロパティと値も定義します。これらのプロパティは、対応する物理プロパティの書き込みモードの相対的な同等物です。
- CSS Positioned Layout Module Level 3 [CSS-POSITION-3]
- CSSの座標ベースの位置決めおよびオフセットスキームを定義します:(相対位置、付着位置、絶対位置、固定位置。
- Resize Observer [RESIZE-OBSERVER-1]
- この仕様は、要素の主要ボックスのサイズ変化を監視するためのAPIについて説明します。
- Web Animations [WEB-ANIMATIONS-1]
- ウェブページの表示に対する同期と変更のタイミングのモデルを定義します。また、このモデルと対話するためのアプリケーションプログラミングインターフェイスを定義します。
- CSS Fonts Module Level 4 [CSS-FONTS-4]
- CSS Fonts 3を拡張して置き換え、OpenTypeバリエーションのサポートを含む、フォント選択と機能選択をより細かく制御します。
- CSS Color Adjustment Module Level 1 [CSS-COLOR-ADJUST-1]
- このモジュールは、ユーザー設定とデバイス出力の最適化を処理するためにユーザーエージェントによる自動色調整のモデルとコントロールを導入します。
- CSS Conditional Rules Module Level 4 [CSS-CONDITIONAL-4]
- CSS Conditional 3を拡張して、サポートされているセレクターをテストできるようにします。
- CSS Cascading and Inheritance Level 5 [CSS-CASCADE-5]
- CSS Cascade 4を拡張して、カスケードレイヤーを追加します。
2.4. CSSのレベル
Cascading Style Sheetsは、従来の意味におけるバージョンを持ちません。代わりに、レベルを持ちます。CSSの各レベルは、定義を洗練して機能を追加する、前のレベルに基づきます。各上位レベルの機能セットは、任意の下位レベルのスーパーセットであり、上位レベルで特定の機能を許可される動作は、下位レベルで許可されるもののサブセットです。よってCSSの上位レベルに適合するユーザーエージェントはまた、すべての下位レベルに適合します。
- CSS Level 1
- CSSワーキンググループは、CSS1仕様が時代遅れであると考えます。CSSレベル1は(プロパティ、値、@規則など)CSS1仕様で定義されるすべての機能として定義されますが、CSS2.1仕様における構文と定義を使用します。CSSスタイル属性は、要素固有のスタイル属性で包含物を定義します。
- CSS Level 2
-
CSS2仕様は技術的にW3C勧告ですが、W3Cが勧告候補の段階を定義する前に、CSS2は勧告段階に移行しました。時間をかけての実装経験とさらなるレビューは、CSS2仕様で多くの問題を表面化させ、既に手に負えないエラッタリストを拡充する代わりに、CSSワーキンググループは、CSS Level 2 Revision 1 (CSS2.1)を定義することにしました。2つの仕様の間に矛盾がある場合にはCSS2.1が最終的な定義を含みます。
CSS2の廃止されたCSS2勧告として正式に安定性の同じレベルでないにもかかわらず、一度CSS2.1が勧告候補になれば効果を持ちます。CSS2.1から削除されたCSS2の機能は、勧告候補の段階にあると考えられますが、これらの多くはCSSレベル3草案にすでに取り入れられているか、将来取り入れられることに注意すべきです。その場合にその仕様が一度勧告候補に到達すれば、CSS2の定義は廃止されます。
CSS2.1仕様はCSSレベル2を定義し、CSSスタイル属性仕様は要素固有のスタイル属性での包含物を定義します。
- CSS Level 3
-
CSSレベル3は、CSS2.1の核としてCSS2.1仕様を使用する、CSSレベル2モジュールごとに基づきます。各モジュールは、機能を追加および/またはCSS2.1仕様の一部を置換します。新しいCSSモジュールがCSS2.1仕様と矛盾しないことをCSSワーキンググループは意図します。モジュールは単に機能を追加して、定義を洗練します。各モジュールが完了するように、以前に完了したモジュールに加えるCSS2.1の既存のシステムに埋め込まれます。
これ以降のモジュールレベルは、独立してレベル付けされます。たとえばSelectors Level 4は、CSS Line Module Level 3の前に完了してもよいです。CSSレベル2と同等なものがないモジュールは、レベル1で開始します。CSSレベル2に存在する機能を更新するモジュールは、レベル3で開始します。
- CSS Level 4以降
- CSSレベル4はありません。独立したモジュールはレベル4以降に到達できますが、CSS言語にはレベルがありません。(用語としての「CSSレベル3」は、以前のモノリシックバージョンからレベルを区別するためにのみ使用されます。)
2.5. CSSプロファイル
すべての実装が、CSSで定義されるすべての機能を実装するとは限りません。
これまで、ワーキンググループは、さまざまなクラスのユーザーエージェントがサポートする予定のCSSの最小サブセットを定義するための、いくつかのプロファイルを公開しました。
ワーキンググループは効果的で有用なものと判断せず、以前定義されたプロファイルは維持されていないため、この作業は中止されました。
注:たとえCSSのサブセットが公式プロファイルであっても、CSSの部分的な実装は、部分的実装のための前方互換構文解析規則に従わなければなりません。
3. CSSの責任ある実装に対する要求
以下の節は、現在と将来の相互運用性を促進するような方法で、責任を持ってCSSを実装するための複数の適合性要件を定義します。
3.1. 部分的実装
著者がフォールバックの値を割り当てるための上位互換の解析規則を利用することができるようにするために、CSSレンダラは任意の@規則、プロパティ、プロパティの値、キーワード、その他レンダラが使用可能なサポートのレベルがない構文要素を、無効(そして必要に応じて無視)として扱わなければなりません。特に、ユーザーエージェントはある1つの複数値プロパティ宣言において非サポートのコンポーネントの値を無視し、かつサポートされる値を選択的に履行してはなりません。任意の値が無効と見なされる(サポートされない値はそうでなければならない)場合、CSSは宣言全体が無視される必要があります。
3.2. 不安定な実装とプロパティ機能
将来の安定したCSS機能との衝突を避けるために、CSSワーキンググループは、不安定な機能とCSSへの独自拡張の実装に対する次のベストプラクティスを推奨します。
3.2.1. 実験および不安定な機能
W3C仕様書に記載されるが、相互運用可能でない不安定な機能の実装は、一般的使用に対して広く公開されるべきではありませんが、コントロールされた環境で実験的使用、限定的に公開されてもよいです。
なぜ?
私たちは、機能を実験してフィードバックを与えることを著者と実装者の両方を可能にしたいが、量産ウェブサイトで著者がCSS機能に依存することを防止し、かつ後で変更されるかもしれない特定の構文または動作を誤って「ロックイン」することから著者を防止します。あるCSS機能の仕様がW3Cプロセスにおける勧告候補(CR)の段階に達するまで、そのCSS機能は不安定であると考えられます。例外的なケースとして、CSSWGは追加で、公式に記録される決議により、広い使用のために公開しても安全と考えられるセットにCR前の機能を追加するかもしれません。See § 4 Safe to Release pre-CR Exceptions.
注:しばらくの間で変更されていないCR前の仕様は通常安定版よりも時代遅れであるので、ベンダーは、WGに明示的に相談すべきであり、かつこの点についての仮定を行うべきではありません。
3.2.2. 所有者と非標準機能
将来のCSS機能との衝突を避けるために、CSS2.1仕様は、CSSの独占かつ実験的な拡張のための接頭辞構文 [CSS21]を予約します。あるCSS機能が、単一ベンダーのユーザーエージェントにのみアクセス可能な閉じた環境において使用を意図される場合、独自拡張です。ユーザーエージェントは、ベンダー接頭辞構文を通してのみそのような独自拡張をサポートすべきであり、World Wide Webのようなオープンな(マルチユーザーエージェント)環境に独自拡張を公開すべきではありません。
なぜ?
接頭辞の要件は、標準CSSへの将来の追加と競合することなく閉じた環境における特殊な機能の出荷を可能にします。オープン系への公開の制限は、誤って公衆CSS環境に標準化されない拡張に依存させることを防ぐものです。たとえ機能がウェブで最終的に使用されることを意図されても、その機能がまだ標準化されていない場合、依然としてウェブに公開されるべきではありません。
3.2.3. 市場の圧力とデファクトスタンダード
まだ機能が不安定である(すなわち仕様がまだ安定してない)場合、ただし
-
少なくとも3つのユーザーエージェントは、機能を実装し(またはあるユーザーエージェントが他の規則を破壊しかつ量産リリースで不安定またはその他の非標準的な機能を出荷し)、
-
かつ実装がラフな相互運用性を持ち、
-
かつCSSワーキンググループがこの機能が存在しかつ公開されるべきであるという合意を記録している場合、
実装者は、広範なリリースビルドで接頭辞なしの機能を出荷してもよいものです。ラフな相互運用性は、差異があるにも関わらず、主観的判断によって満たされ、実装がかなりの数のユースケースに対する量産ウェブサイトで使用されるのと十分に類似します。
しかし、CSSワーキンググループは依然としてベンダー間の連携を確保するために、および各ベンダーからのCSS専門家による一貫性審査を確実にするために相談しなければならないことに注意してください。特に、詳細は標準レビュープロセスを通して解決されていないため、ラフな相互運用性は依然として、通常エッジケース(またはそれほどエッジでないケース)において痛みを伴う相互運用性の欠如を意味することにも注意してください。
なぜ?
標準化を完了する前に3つ以上のブラウザーがある機能を実装しているほどその機能が十分に普及している場合、この条項は出荷する圧力を緩めることを可能にします。機能が既に出回っておりかつサイトが機能に応じて開始している場合、その機能は依然として「実験的」であり、誰の役にも立ちません。他人に接頭辞なしの出荷をさせることは、機能が現在事実上の標準化されたことを認識し、かつクロスプラットフォームなコードを書くことを著者に勧めます。3.2.3.1. ベンダー接頭辞の不安定な機能
量産リリースでウェブに標準化過程の不安定な機能として公開する場合、実装は機能に対するベンダー接頭辞ありと接頭辞なしの両方の構文をサポートすべきです。機能が安定しており、かつ実装が相互運用可能な動作と一致するように更新される時点で、ベンダー接頭辞構文に対するサポートは削除されるべきです。
なぜ?
これは、著者がすべての実装を対象にする接頭辞なしの構文を使用することができるが、必要な場合に、著者が標準またはバグ修正プロセスを通して解決する実装間で互換性の問題を回避するために特定の実装を対象にすることができるよう推奨します。接頭辞構文のみがサポートされる場合の局面の欠如は、ベンダー接頭辞構文のみが記述されているスタイルシートのリスクを低減します。これは、既存のコンテンツを破壊するより低いリスクとともに、ひとたび機能が安定すればユーザーエージェントベンダーに接頭辞構文を順に引退させることを可能にします。また、その構文に依存によるコンテンツのせいで、他のベンダーの接頭辞をもつ機能をサポートするために一部のベンダーによって折に触れて感じる必要性を低減します。
著者に不安定な機能を促進する人は誰でも、標準の接頭辞のない構文を使用してその機能を文書に記録すべきであり、実装の違いに対処する以外の目的でベンダー接頭辞付きの構文の使用を勧めることは避けるべきです。
3.2.3.2. CSSのオープン性の維持
技術としてCSSのオープンな性質を維持するために、ベンダーは、出荷するすべての機能を他の実装者が自由に実装すること可能にすべきです。この目的のために、ベンダーは、そのような機能の標準化を完了するために仕様編集およびテストするリソースを提供すべきであり、そして機能を出荷する競合他社に他の障害物(たとえば、プラットフォーム依存性、ライセンスの制限)を避けるべきです。
3.3. CRレベル機能の実装
仕様が勧告候補の段階に達すると、実装者は、実装者が仕様に従って正しく実装されることを示すことができる任意の勧告候補レベルの機能の接頭辞のない実装を公開すべきであり、接頭辞付きのその機能の変形を公開すべきではありません。
実装を問わずCSSの相互運用性を確立し維持するために、CSSワーキンググループは、非実験的なCSSレンダラが、任意のCSS機能の接頭辞なしの実装を公開する前に、実装レポート(そして、もし必要なら、実装レポートで使用したテストケース)をW3Cへ提出することを要請します。W3Cへ提出されたテストケースは、CSSワーキンググループによるレビューと修正の対象となります。
テストケースと実装レポートの提出に関する詳細情報は、CSSワーキンググループのウェブサイト(https://www.w3.org/Style/CSS/Test/)にあります。質問は直接public-css-testsuite@w3.orgメーリングリストまで。
4. Safe to Release pre-CR Exceptions
候補勧告に達する前に、以下の機能がCSSワーキンググループによって明示的かつ積極的にパスしています:§ 3.2.1 実験および不安定な機能を参照ください。
- サイジングプロパティ(width, heightなど)ボーダープロパティ、マージンおよびパディングプロパティのフロー関連に相当するもの。説明および仕様を参照してください。
- サイジングプロパティのmin-contentおよびmax-contentキーワード。決定および仕様を参照してください。
- conic-gradient()勾配記法。決定を参照してください。
- aspect-ratioプロパティ。[CSS-SIZING-4]
- translate、rotateおよびscaleプロパティ。[CSS-TRANSFORMS-2]
- hyphenate-characterプロパティ。[CSS-TEXT-4]
- color-mix()関数。[CSS-COLOR-5]
- [CSS-COLOR-4]で定義される、線形、放射状、円錐グラデーションの補間に使用される<color-interpolation-method>。[CSS-IMAGES-4]
- [CSS-COLOR-5]で定義されている 相対カラー構文
候補勧告に達する前に、以下の機能がCSSワーキンググループによって明示的かつ遡及的にパスしています。
- CSS Animations Level 1およびCSS Transitions Level 1のすべて。
- [SELECTORS-4]由来の:dir()、:lang()、および:focus-within疑似クラス。
5. 索引
以下の節は非規範的です。
5.1. 用語索引
- =
- ~=
- 1st <length>
- 2d matrix
- 2nd <length>
- 3rd <length [0,∞]>
- 4th <length>
- absolute length
- absolutely positioned element
- abstract dimensions
- :active
- activeborder
- activecaption
- active duration
- active (pseudo-class)
- actual value
- additive tuple
- adjoining margins
- advance measure
- :after
- after
- after-change style
- aliceblue
- alignment baseline
- alignment container
- alignment context
- alignment subject
- 'all' media group
- alphabetic baseline
- <alphavalue>
- ambiguous image url
- an+b
- ancestor
- anchor
- anchor unit
- <angle>
- animation origin
- animation-tainted
- anonymous
- anonymous box
- anonymous inline boxes
- antiquewhite
- apply to
- appworkspace
- aqua
- aquamarine
- are a valid escape
- aspect value
- atomic inline
- atomic inline box
- atomic inline-level box
- at-rule
- attr()
- attribute
- 'audio' media group
- auditory icon
- augmented grid
- aural box model
- author
- オーサリングツール
- author origin
- author-origin
- author presentational hint origin
- author style sheet
- automatic column position
- automatic grid position
- automatic numbering
- automatic placement
- automatic position
- automatic row position
- auto-placement
- auto-placement cursor
- available font faces
- available grid space
- avoid break values
- axis-lock
- axis value
- azure
- backdrop
- background
- background painting area
- background positioning area
- backslash escapes
- baseline
- baseline alignment
- baseline alignment preference
- baseline content-alignment
- baseline self-alignment
- baseline set
- baseline-sharing group
- baseline table
- base size
- bearing angle
- :before
- before
- before-change style
- before flag
- beige
- bfc
- bidi formatting characters
- bidi-isolate
- bidi-isolated
- bidi isolation
- bidi paragraph
- bidirectionality
- bidirectionality (bidi)
- bi-orientational
- bi-orientational transform
- bisque
- 'bitmap' media group
- black
- blanchedalmond
- ()-block
- []-block
- block
- {}-block
- block at-rule
- block axis
- block-axis
- block box
- block container
- block container box
- block dimension
- block end
- block-end
- block flow direction
- block formatting context
- block formatting context root
- blockification
- blockify
- block layout
- block-level
- block-level box
- block-level content
- block-level element
- block scripts
- block size
- block-size
- block start
- block-start
- blue
- blueviolet
- blur radius
- boolean context
- border box
- border edge
- border image area
- border::of a box
- border radius
- <border-style>
- bottom
- box
- box alignment properties
- box::border
- box::content
- box::content height
- box::content width
- box-corner
- box fragment
- box::margin
- box::overflow
- box::padding
- box tree
- break
- brown
- burlywood
- buttonface
- buttonhighlight
- buttonshadow
- buttontext
- cadetblue
- cancel
- canonical unit
- canvas
- canvas background
- canvas surface
- captiontext
- captures snap positions
- cascade
- cascade-dependent keyword
- cascaded independently
- cascaded value
- cascade origin
- central baseline
- character
- character encoding
- character map
- "@charset"
- chartreuse
- check if three code points would start an ident sequence
- check if three code points would start a number
- check if three code points would start a unicode-range
- check if two code points are a valid escape
- child
- child combinator
- child selector
- chinese
- chocolate
- circled-lower-latin
- clamp a grid area
- clearance.
- clipping path
- clipping region
- closest-side
- clustered scripts
- collapse
- collapsed
- collapsed flex item
- collapsed grid track
- collapsed gutter
- collapsed track
- collapse through
- collapsible white space
- collapsing margin
- <color>
- color
- color stop
- color stop list
- color transition hint
- column box
- column break
- column gap
- column height
- column rule
- column width
- combinator
- combinators
- combined duration
- compatible baseline alignment preferences
- compatible units
- complete
- completed transition
- component value
- composite face
- computed <image>
- computed track list
- computed value
- concrete object size
- conditional group rule
- conditional import
- conditionally hang
- conformance
- consecutive
- constraint rectangle
- consume a block
- consume a block's contents
- consume a component value
- consume a declaration
- consume a function
- consume a list of component values
- consume a list of declarations
- consume a list of rules
- consume an at-rule
- consume an escaped code point
- consume an ident-like token
- consume an ident sequence
- consume a number
- consume a numeric token
- consume a qualified rule
- consume a simple block
- consume a string token
- consume a style block's contents
- consume a stylesheet's contents
- consume a token
- consume a unicode-range token
- consume a url token
- consume comments
- consume the next input token
- consume the remnants of a bad declaration
- consume the remnants of a bad url
- consume the value of a unicode-range descriptor
- contain constraint
- containing block
- containing block chain
- containing block for all descendants
- containing block::initial
- containment
- content
- content-based minimum size
- content box
- content distribution
- content-distribution
- content-distribution properties
- content edge
- content language
- content::of a box
- content::rendered
- content size suggestion
- content writing system
- continuous media
- 'continuous' media group
- convert a string to a number
- coordinated self-alignment preference
- coral
- cornflowerblue
- cornsilk
- <counter>
- counter()
- counters
- counter style
- counter symbol
- cover constraint
- crimson
- cross axis
- cross-axis
- cross-axis baseline set
- cross dimension
- cross-end
- cross size
- cross-size
- cross size property
- cross-start
- css bracketed range notation
- css-connected
- css feature queries
- cssfontfacerule
- cssfontfeaturevaluesrule
- css ident
- css identifier
- css ident sequence
- css qualified name
- css-wide keywords
- cubic bézier easing function
- currentcolor
- current input code point
- current input token
- current transformation matrix
- current value
- cursive
- cursive script
- custom property
- cyan
- darkblue
- darkcyan
- darkgoldenrod
- darkgray
- darkgreen
- darkgrey
- darkkhaki
- darkmagenta
- darkolivegreen
- darkorange
- darkorchid
- darkred
- darksalmon
- darkseagreen
- darkslateblue
- darkslategray
- darkslategrey
- darkturquoise
- darkviolet
- declaration
- declaration block
- declared
- declared value
- decode bytes
- decorating box
- deeppink
- deepskyblue
- default face
- default namespace
- default object size
- default sizing algorithm
- default style sheet
- definite
- definite column position
- definite column span
- definite grid position
- definite grid span
- definite position
- definite row position
- definite row span
- definite size
- definite span
- descendant
- descendant-selectors
- descriptor
- descriptor declarations
- destination
- determine the fallback encoding
- device pixel
- dice
- digit
- dimension
- dimgray
- dimgrey
- directional embedding
- directional override
- discard a mark
- discard a token
- discard whitespace
- display type
- distributed alignment
- distribute extra space
- document
- document language
- document order
- document tree
- document white space
- document white space characters
- dodgerblue
- dominant baseline
- easing function
- effective character map
- element
- element::following
- element::preceding
- element tree
- emoji presentation participating code points
- empty
- em (unit)
- encapsulation contexts
- end
- ending point
- ending shape
- ending token
- endmost
- end time
- end value
- environment encoding
- eof code point
- escaping
- establish an independent formatting context
- establish an orthogonal flow
- established an independent formatting context
- establishes an independent formatting context
- establishing an independent formatting context
- exact matching
- expanded name
- explicit grid
- explicit grid column
- explicit grid properties
- explicit grid row
- explicit grid track
- explicitly-assigned line name
- ex (unit)
- fallback alignment
- false in the negative range
- fantasy
- farthest-side
- fetch a font
- fetch an @import
- fictional tag sequence
- filter code points
- filtered code points
- filter primitive
- filter primitive attributes
- filter primitive subregion
- filter primitive tree
- filter region
- find the matching font faces
- fire a font load event
- firebrick
- :first
- first available font
- first-baseline alignment
- first-baseline content-alignment
- first baselines
- first-baseline self-alignment
- first baseline set
- :first-child
- first-child
- first cross-axis baseline set
- first formatted line
- :first-letter
- first-letter
- :first-line
- first-line
- first main-axis baseline set
- first symbol value
- fixed sizing function
- flex base size
- flex basis
- flex container
- flex direction
- flex factor
- flex factor sum
- flex formatting context
- flex fraction
- flex grow factor
- flexible
- flexible length
- flexible sizing function
- flexible tracks
- flex item
- flex layout
- flex-level
- flex line
- flex shrink factor
- float area
- float rules
- floralwhite
- flow layout
- flow of an element
- flow-relative
- flow-relative direction
- :focus
- focus
- focus (pseudo-class)
- following element
- font block period
- font download timer
- font failure period
- font feature value declaration
- font-feature-value-type
- font-relative lengths
- font source
- font specific
- font swap period
- footnote
- forced break
- forced break values
- forced line break
- forced paragraph break
- forestgreen
- formatting context
- formatting structure
- forward-compatible parsing
- fragment
- fragmentainer
- fragmentation
- fragmentation break
- fragmentation container
- fragmentation context
- fragmentation direction
- fragmentation root
- fragmented flow
- free space
- <frequency>
- fuchsia
- full-size
- full-size kana
- full-width
- fully inflexible
- function
- functional notation
- gainsboro
- generate a counter
- generate a counter representation
- generate baselines
- generated content
- <generic-voice>
- ghostwhite
- go
- gold
- goldenrod
- gradient-average-color
- gradient box
- gradient center
- gradient function
- gradient line
- grapheme cluster
- gray
- graytext
- green
- greenyellow
- grey
- grid
- grid area
- grid cell
- grid column
- grid column line
- grid container
- grid formatting context
- grid item
- grid item placement algorithm
- grid layout
- grid layout algorithm
- grid-level
- grid line
- 'grid' media group
- grid-modified document order
- grid order
- grid placement
- grid-placement property
- grid position
- grid row
- grid row line
- grid sizing algorithm
- grid span
- grid track
- growth limit
- guaranteed-invalid value
- gutter
- half-width
- hang
- hanging glyph
- height
- hex digit
- highlight
- highlighttext
- honeydew
- horizontal axis
- horizontal block flow
- horizontal dimension
- horizontal offset
- horizontal-only
- horizontal script
- horizontal typographic mode
- horizontal writing mode
- hotpink
- :hover
- hover (pseudo-class)
- hyphenate
- hyphenation
- hyphenation opportunity
- hyphen-separated matching
- hypothetical cross size
- hypothetical fr size
- hypothetical main size
- ident
- ident code point
- identifier
- identity transform function
- ident sequence
- ident-start code point
- ignore
- ignored
- illegal
- implicit grid
- implicit grid column
- implicit grid lines
- implicit grid properties
- implicit grid row
- implicit grid track
- implicitly-assigned line name
- implicitly-named area
- @import
- important
- import conditions
- inactiveborder
- inactivecaption
- inactivecaptiontext
- indefinite
- indefinite size
- independent formatting context
- index
- indianred
- indigo
- infinitely growable
- in flow
- in-flow
- infobackground
- infotext
- inherit
- inheritance
- inherited property
- inherited value
- initial containing block
- initial free space
- initial representation for the counter value
- initial value
- inline
- inline axis
- inline-axis
- inline base direction
- inline block
- inline-block
- inline block box
- inline box
- inline dimension
- inline end
- inline-end
- inline formatting context
- inline-level
- inline-level box
- inline-level content
- inline-level element
- inline size
- inline-size
- inline start
- inline-start
- inlinification
- inlinify
- inner box-shadow
- inner display type
- inner edge
- input progress value
- input stream
- installed font fallback
- integer
- intended direction
- intended direction and end position
- intended end position
- 'interactive media group
- internal ruby box
- internal ruby element
- internal table box
- internal table element
- interpreter
- intrinsic dimensions
- intrinsic sizing function
- invalid
- invalid at computed-value time
- invalid image
- invisible
- isolated sequence
- isolation
- iteration order
- ivory
- japanese
- justification opportunity
- keyword
- khaki
- known
- korean
- :lang
- lang (pseudo-class)
- last-baseline alignment
- last-baseline content-alignment
- last baselines
- last-baseline self-alignment
- last baseline set
- last cross-axis baseline set
- last main-axis baseline set
- lavender
- lavenderblush
- lawngreen
- laying out in-place
- layout containment
- layout containment box
- layout-internal
- :left
- left
- leftover space
- legacy name alias
- legacy shorthand
- legacy value alias
- lemonchiffon
- letter
- lightblue
- lightcoral
- lightcyan
- lightgoldenrodyellow
- lightgray
- lightgreen
- lightgrey
- lightpink
- lightsalmon
- lightseagreen
- lightskyblue
- lightslategray
- lightslategrey
- light source
- lightsteelblue
- lightyellow
- lime
- limegreen
- limited max-content contribution
- limited min-content contribution
- linear easing function
- linear timing function
- line box
- line break
- line breaking
- line breaking process
- line-left
- linen
- line name
- line name set
- line orientation
- line-over
- line-relative
- line-relative direction
- line-right
- line-under
- :link
- link (pseudo-class)
- list-item
- list properties
- loading image
- local coordinate system
- local url flag
- logical height
- logical width
- longhand
- longhand property
- lowercase letter
- magenta
- main axis
- main-axis
- main-axis baseline set
- main dimension
- main-end
- main size
- main-size
- main size property
- main-start
- margin box
- margin edge
- margin::of a box
- <margin-width>
- mark
- marked indexes
- maroon
- mask border image
- mask border image area
- mask image
- mask layer image
- mask painting area
- mask-position
- mask positioning area
- mask-size
- match
- matching transition delay
- matching transition duration
- matching transition-property value
- matching transition timing function
- max cross size
- max cross size property
- maximum allowed code point
- max inner height
- max inner width
- max main size
- max main size property
- max track sizing function
- may
- media
- media condition
- media-dependent import
- media feature
- media group
- media query
- media query list
- media query modifier
- media type
- mediumaquamarine
- mediumblue
- mediumorchid
- mediumpurple
- mediumseagreen
- mediumslateblue
- mediumspringgreen
- mediumturquoise
- mediumvioletred
- menu
- menutext
- message entity
- midnightblue
- min cross size
- min cross size property
- minimum contribution
- min inner height
- min inner width
- min main size
- min main size property
- mintcream
- min track sizing function
- mistyrose
- moccasin
- monolithic
- monospace
- multicol container
- multi-col line
- multicol line
- multi-column container
- multi-column formatting context
- multi-column layout
- multi-column line
- multi-column spanner
- multi-column spanning element
- multi-line flex container
- multiple declarations
- multiply
- must
- must not
- named cell token
- named grid area
- namespace prefix
- name-start code point
- natural aspect ratio
- natural dimension
- natural end-point
- natural height
- natural size
- natural width
- navajowhite
- navy
- nearest neighbor
- newline
- next input code point
- next input token
- next-sibling combinator
- next token
- non-ascii code point
- non-ascii ident code point
- 'none'::as display value
- non-overridable counter-style names
- non-printable code point
- non-replaced
- non-replaced element
- normal
- normalize into a token stream
- null cell token
- number
- numeric data types
- objects
- object size negotiation
- occupied
- oldlace
- olive
- olivedrab
- opacity
- operating coordinate space
- optimal viewing region
- optional
- orange
- orangered
- orchid
- order-modified document order
- orthogonal
- orthogonal flow
- other space separators
- outer box-shadow
- outer display type
- outer edge
- outline
- out of flow
- out-of-flow
- output of the cascade
- output progress value
- over
- overflow
- overflow alignment
- overflow columns
- padding box
- padding edge
- padding::of a box
- <padding-width>
- @page
- page area
- page box
- page break
- page-context
- paged media
- 'paged' media group
- page selector
- pagination
- paint containment
- paint containment box
- palegoldenrod
- palegreen
- paleturquoise
- palevioletred
- papayawhip
- parent
- parent box
- parse
- parse a block's contents
- parse a comma-separated list according to a css grammar
- parse a comma-separated list of component values
- parse a component value
- parse a css stylesheet
- parse a declaration
- parse a list
- parse a list of component values
- parse a list of declarations
- parse a list of rules
- parse a rule
- parse a style block's contents
- parse a stylesheet
- parse a stylesheet's contents
- parse error
- parse something according to a css grammar
- parsing a list
- participates in baseline alignment
- pass through filter
- peachpuff
- pending on the environment
- pending-substitution value
- percentage
- peru
- physical
- physical bottom
- physical dimensions
- physical direction
- physical left
- physical right
- physical top
- physical units
- pink
- pixel
- pixel unit
- plum
- positional alignment
- positioned element/box
- positioning scheme
- post-multiplied
- post-multiply
- powderblue
- preceding element
- pre-multiplied
- pre-multiply
- preserved tokens
- preserved white space
- primary filter primitive tree
- principal block-level box
- principal box
- principal writing mode
- process
- propagate
- propagation
- proper table child
- proper table row parent
- property
- property declarations
- pseudo-classes
- pseudo-classes:::active
- pseudo-classes:::focus
- pseudo-classes:::hover
- pseudo-classes:::lang
- pseudo-classes:::link
- pseudo-classes:::visited
- pseudo-class:::first
- pseudo-class:::left
- pseudo-class:::right
- pseudo-elements
- pseudo-elements:::after
- pseudo-elements:::before
- pseudo-elements:::first-letter
- pseudo-elements:::first-line
- purple
- quad width
- qualified rule
- range context
- recommended
- reconsume the current input code point
- reconsume the current input token
- red
- reference box
- reference pixel
- region break
- relative length
- relative positioning
- relative units
- remaining fragmentainer extent
- remaining free space
- rendered content
- render with a fallback font face
- render with an invisible fallback font face
- replaced
- replaced element
- representation
- required
- reset implicitly
- reset-only sub-property
- re-snap
- resolved type
- restore a mark
- reversing-adjusted start value
- reversing shortening factor
- :right
- right
- root
- root element
- rosybrown
- row group box
- row groups
- royalblue
- rule
- run-in
- run-in box
- run-in sequence
- running transition
- saddlebrown
- salmon
- sandybrown
- sans-serif
- scaled flex shrink factor
- scope
- screen reader
- scrollbar
- scroll snap
- scroll snap area
- scroll snap container
- scroll snapport
- scroll snap position
- seagreen
- seashell
- segment break
- selector
- selector::match
- selector::subject of
- self-alignment
- self-alignment properties
- semitone
- sequence of simple selectors
- serialize an <an+b> value
- serif
- set entries
- set explicitly
- shall
- shall not
- shared alignment context
- sheet
- shorthand
- shorthand property
- should
- should not
- sibling
- sideways typesetting
- sienna
- silver
- simple block
- simple selector
- single-line flex container
- size containment
- size containment box
- sizing as if empty
- sizing function
- skyblue
- slateblue
- slategray
- slategrey
- small
- small kana
- snow
- soft wrap break
- soft wrap opportunity
- source
- source document
- spaces
- space-separated matching
- space to fill
- span count
- spanner
- spanning element
- <specific-voice>
- specified size
- specified size suggestion
- specified value
- 'speech' media group
- spread break
- spread distance
- springgreen
- stacking context
- stack level
- start
- starting point
- startmost
- starts with an ident sequence
- starts with a number
- starts with a valid escape
- start time
- start value
- start with an ident sequence
- start with a number
- statement at-rule
- 'static' media group
- static-position rectangle
- steelblue
- step easing function
- step position
- steps
- stop or comma
- stretched
- strictness value
- <string>
- stroke bounding box
- structural pseudo-classes
- strut size
- stuck on the environment
- style attribute
- style change event
- style rule
- スタイルシート
- stylesheet
- subject (of selector)
- subjects of the selector
- sub-property
- subsequent-sibling combinator
- substitute a var()
- support
- supports queries
- switch the fontfaceset to loaded
- switch the fontfaceset to loading
- synthesize baseline
- synthesized baseline
- system fonts
- table caption box
- table element
- tables
- tabs
- tab size
- tab stop
- tabular container
- 'tactile' media group
- tan
- target main size
- teal
- text/css
- text node
- text sequence
- textual data types
- thistle
- threeddarkshadow
- threedface
- threedhighlight
- threedlightshadow
- threedshadow
- <time>
- timing function
- tokenization
- tokenize
- tokenizer
- tokens
- token stream
- tomato
- top
- tracking
- track list
- track section
- track sizing algorithm
- track sizing function
- transfer function element
- transfer function element attributes
- transferred size suggestion
- transformable element
- transformation matrix
- transformed element
- transitionable
- transition origin
- transparent
- trash token
- triangle
- trinary
- turquoise
- type selector
- typeset sideways
- typesetting sideways
- typesetting upright
- typeset upright
- typographic character
- typographic character unit
- typographic letter unit
- typographic mode
- ua
- ua origin
- ua-origin
- ua style sheet
- under
- unforced break
- universal selector
- unknown
- unoccupied
- upper-alpha-legal
- uppercase letter
- upright typesetting
- url
- use a negative sign
- used value
- user
- user agent
- user-agent origin
- user-agent style sheet
- user coordinate system
- user origin
- user-origin
- user style sheet
- uses a negative sign
- valid image
- validity
- valid style sheet
- value
- value definition syntax
- var() substitution
- vertical axis
- vertical block flow
- vertical dimension
- vertical offset
- vertical-only
- vertical script
- vertical typographic mode
- vertical writing mode
- viewport
- viewport-percentage lengths
- violet
- :visited
- visited (pseudo-class)
- visual angle unit
- visual formatting model
- 'visual' media group
- volume
- wheat
- white
- whitesmoke
- white space
- whitespace
- white space characters
- width
- window
- windowframe
- windowtext
- word separator
- word-separator character
- would start an ident sequence
- would start a number
- would start a unicode-range
- wrap
- wrapping
- writing mode
- x-axis
- x-height
- y-axis
- yellow
- yellowgreen
5.2. セレクター索引
5.3. @規則索引
5.4. Property Index
- --*
- align-content
- align-items
- align-self
- all
- animation
- animation-delay
- animation-direction
- animation-duration
- animation-fill-mode
- animation-iteration-count
- animation-name
- animation-play-state
- animation-timing-function
- azimuth
- background
- background-attachment
- background-blend-mode
- background-clip
- background-color
- background-image
- background-origin
- background-position
- background-repeat
- background-size
- border
- border-bottom
- border-bottom-color
- border-bottom-left-radius
- border-bottom-right-radius
- border-bottom-style
- border-bottom-width
- border-collapse
- border-color
- border-image
- border-image-outset
- border-image-repeat
- border-image-slice
- border-image-source
- border-image-width
- border-left
- border-left-color
- border-left-style
- border-left-width
- border-radius
- border-right
- border-right-color
- border-right-style
- border-right-width
- border-spacing
- border-style
- border-top
- border-top-color
- border-top-left-radius
- border-top-right-radius
- border-top-style
- border-top-width
- border-width
- bottom
- box-decoration-break
- box-shadow
- box-sizing
- break-after
- break-before
- break-inside
- caption-side
- caret-color
- clear
- clip
- clip-path
- clip-rule
- color
- color-interpolation-filters
- column-count
- column-fill
- column-gap
- column-rule
- column-rule-color
- column-rule-style
- column-rule-width
- columns
- column-span
- column-width
- contain
- content
- counter-increment
- counter-reset
- cue
- cue-after
- cue-before
- cursor
- direction
- display
- elevation
- empty-cells
- filter
- flex
- flex-basis
- flex-direction
- flex-flow
- flex-grow
- flex-shrink
- flex-wrap
- float
- flood-color
- flood-opacity
- font
- font-family
- font-feature-settings
- font-kerning
- font-language-override
- font-optical-sizing
- font-palette
- font-size
- font-size-adjust
- font-stretch
- font-style
- font-synthesis
- font-synthesis-position
- font-synthesis-small-caps
- font-synthesis-style
- font-synthesis-weight
- font-variant
- font-variant-alternates
- font-variant-caps
- font-variant-east-asian
- font-variant-emoji
- font-variant-ligatures
- font-variant-numeric
- font-variant-position
- font-variation-settings
- font-weight
- gap
- glyph-orientation-vertical
- grid
- grid-area
- grid-auto-columns
- grid-auto-flow
- grid-auto-rows
- grid-column
- grid-column-end
- grid-column-gap
- grid-column-start
- grid-gap
- grid-row
- grid-row-end
- grid-row-gap
- grid-row-start
- grid-template
- grid-template-areas
- grid-template-columns
- grid-template-rows
- hanging-punctuation
- height
- hyphens
- image-orientation
- image-rendering
- isolation
- justify-content
- justify-items
- justify-self
- left
- letter-spacing
- lighting-color
- line-break
- line-height
- list-style
- list-style-image
- list-style-position
- list-style-type
- margin
- margin-bottom
- margin-left
- margin-right
- margin-top
- mask
- mask-border
- mask-border-mode
- mask-border-outset
- mask-border-repeat
- mask-border-slice
- mask-border-source
- mask-border-width
- mask-clip
- mask-composite
- mask-image
- mask-mode
- mask-origin
- mask-position
- mask-repeat
- mask-size
- mask-type
- max-height
- max-width
- min-height
- min-width
- mix-blend-mode
- object-fit
- object-position
- order
- orphans
- outline
- outline-color
- outline-offset
- outline-style
- outline-width
- overflow
- overflow-wrap
- padding
- padding-bottom
- padding-left
- padding-right
- padding-top
- page-break-after
- page-break-before
- page-break-inside
- pause
- pause-after
- pause-before
- pitch
- pitch-range
- place-content
- place-items
- place-self
- play-during
- position
- property-name
- quotes
- resize
- rest
- rest-after
- rest-before
- richness
- right
- row-gap
- scroll-margin
- scroll-margin-block
- scroll-margin-block-end
- scroll-margin-block-start
- scroll-margin-bottom
- scroll-margin-inline
- scroll-margin-inline-end
- scroll-margin-inline-start
- scroll-margin-left
- scroll-margin-right
- scroll-margin-top
- scroll-padding
- scroll-padding-block
- scroll-padding-block-end
- scroll-padding-block-start
- scroll-padding-bottom
- scroll-padding-inline
- scroll-padding-inline-end
- scroll-padding-inline-start
- scroll-padding-left
- scroll-padding-right
- scroll-padding-top
- scroll-snap-align
- scroll-snap-stop
- scroll-snap-type
- shape-image-threshold
- shape-margin
- shape-outside
- speak
- speak-as
- speak-header
- speak-numeral
- speak-punctuation
- speech-rate
- stress
- table-layout
- tab-size
- text-align
- text-align-all
- text-align-last
- text-combine-upright
- text-decoration
- text-decoration-color
- text-decoration-line
- text-decoration-style
- text-emphasis
- text-emphasis-color
- text-emphasis-position
- text-emphasis-style
- text-indent
- text-justify
- text-orientation
- text-overflow
- text-shadow
- text-transform
- text-underline-position
- top
- transform
- transform-box
- transform-origin
- transition
- transition-delay
- transition-duration
- transition-property
- transition-timing-function
- unicode-bidi
- vertical-align
- visibility
- voice-balance
- voice-duration
- voice-family
- voice-pitch
- voice-range
- voice-rate
- voice-stress
- voice-volume
- volume
- white-space
- widows
- width
- will-change
- word-break
- word-spacing
- word-wrap
- writing-mode
- z-index
5.5. 値索引
- absolute
- add
- additive
- alias
- all
- allow-end
- all-petite-caps
- all-scroll
- all-small-caps
- alpha
- alphabetic
- alternate
- alternate-reverse
- always
- <angle>
- annotation(<feature-value-name>)
- anywhere
- arabic-indic
- armenian
- aural
-
auto
- in css-align-3, for align-self
- in css-align-3, for justify-self
- in css-backgrounds-3, for background-size
- in css-backgrounds-3, for border-image-width
- in css-break-3, for break-before, break-after
- in css-break-3, for break-inside, page-break-inside
- in css-counter-styles-3, for @counter-style/range
- in css-counter-styles-3, for @counter-style/speak-as
- in css-flexbox-1, for align-items, align-self
- in css-flexbox-1, for flex-basis
- in css-fonts-4, for @font-face/font-display
- in css-fonts-4, for font-kerning
- in css-fonts-4, for font-optical-sizing
- in css-fonts-4, for font-synthesis-position
- in css-fonts-4, for font-synthesis-small-caps
- in css-fonts-4, for font-synthesis-style
- in css-fonts-4, for font-synthesis-weight
- in css-fonts-4, for font-variant-emoji
- in css-grid-1, for <grid-line>
- in css-grid-1, for grid-template-columns, grid-template-rows
- in css-images-3, for image-rendering
- in css-multicol-1, for column-count
- in css-multicol-1, for column-fill
- in css-multicol-1, for column-width
- in css-scroll-snap-1, for scroll-padding, scroll-padding-inline, scroll-padding-inline-start, scroll-padding-inline-end, scroll-padding-block, scroll-padding-block-start, scroll-padding-block-end
- in css-speech-1, for speak
- in css-speech-1, for voice-duration
- in css-text-3, for hyphens
- in css-text-3, for line-break
- in css-text-3, for text-align-last
- in css-text-3, for text-justify
- in css-text-decor-3, for text-underline-position
- in css-ui-3, for caret-color
- in css-ui-3, for cursor
- in css-will-change-1, for will-change
- in filter-effects-1, for color-interpolation-filters
- auto-fill
- auto-fit
- [ auto-flow && dense? ] <'grid-auto-rows'>? / <'grid-template-columns'>
- avoid
- avoid-column
- avoid-page
- avoid-region
- backwards
- balance
- balance-all
- baseline
- <basic-shape>
- bengali
- bidi-override
- blink
- block
- bold
- bolder
- border-box
- both
- bottom
- braille
- break-all
- break-spaces
- break-word
- bullets
- cambodian
- capitalize
- caption
- cell
-
center
- in css-align-3, for <self-position>, <content-position>, justify-self, align-self, justify-content, align-content
- in css-backgrounds-3, for background-position
- in css-flexbox-1, for align-content
- in css-flexbox-1, for align-items, align-self
- in css-flexbox-1, for justify-content
- in css-scroll-snap-1, for scroll-snap-align
- in css-speech-1, for voice-balance
- in css-text-3, for text-align
- in css-transforms-1, for transform-origin
- ch
- character-variant(<feature-value-name>#)
- child
- circle
- cjk-decimal
- cjk-earthly-branch
- cjk-heavenly-stem
- cjk-ideographic
- clip
- clone
- close-quote
- closest-corner
- closest-side
- cm
- coarse
- collapse
- color
- color-burn
- color-dodge
- col-resize
- column
- column-reverse
- common-ligatures
- condensed
- contain
- content
- content-box
- contents
- context-menu
- contextual
- copy
- <counter-style-name>
- cover
- crisp-edges
- crosshair
- cursive
- cyclic
- dark
- darken
- dashed
- <decibel>
- decimal
- decimal-leading-zero
- default
- deg
- dense
- devanagari
- diagonal-fractions
- difference
- digits
- digits <integer>?
- digits <integer [2,4]>?
- disc
- disclosure-closed
- disclosure-open
- discretionary-ligatures
- distribute
- dot
- dotted
- double
- double-circle
- dpcm
- dpi
- dppx
- each-line
- ease
- ease-in
- ease-in-out
- ease-out
- ellipse
- ellipsis
- em
- embed
- embossed
- emoji
- end
- <ending-shape>
- e-resize
- ethiopic-numeric
- evenodd
- ew-resize
- ex
- exclude
- exclusion
- expanded
- extends
- extra-condensed
- extra-expanded
- fallback
- fangsong
- fantasy
- farthest-corner
- farthest-side
- fast
- <feature-tag-value>
- female
- fill
- fill-box
- filled
- fine
- first
- first baseline
- fit-content()
- fixed
- <flex>
- flex
- <flex [0,∞]>
- <'flex-basis'>
- flex-end
- <'flex-grow'>
- <'flex-shrink'>
- flex-start
- flip
- flow
- flow-root
- force-end
- forwards
- fr
- from-image
- fr unit
- full-size-kana
- full-width
- generic(fangsong)
- generic(kai)
- generic(nastaliq)
- georgian
- grab
- grabbing
- grad
- grid
- <'grid-template-rows'> / [ auto-flow && dense? ] <'grid-auto-columns'>?
- <'grid-template-rows'> / <'grid-template-columns'>
- groove
- gujarati
- gurmukhi
- handheld
- hanging
- hard-light
- hebrew
- help
- hidden
- high
- high-quality
- hiragana
- hiragana-iroha
- historical-forms
- historical-ligatures
- horizontal-tb
- hover
- hue
- hz
- icon
- in
- infinite
- inherit
- initial
- inline
- inline-block
- inline-flex
- inline-grid
- inline-table
- inset
- [ <integer [-∞,-1]> | <integer [1,∞]> ] && <custom-ident>?
- <integer> && <custom-ident>?
- inter-character
- interlace
- intersect
- inter-word
- invert
- isolate
- isolate-override
- italic
- japanese-formal
- japanese-informal
- jis04
- jis78
- jis83
- jis90
- jump-both
- jump-end
- jump-none
- jump-start
- justify
- justify-all
- kannada
- katakana
- katakana-iroha
- keep-all
- <keyframes-name>
- khmer
- khz
- korean-hangul-formal
- korean-hanja-formal
- korean-hanja-informal
- landscape
- lao
- last
- last baseline
- layout
-
left
- in css-align-3, for justify-content, justify-self, justify-items
- in css-backgrounds-3, for background-position
- in css-break-3, for break-before, break-after
- in css-speech-1, for voice-balance
- in css-text-3, for text-align
- in css-text-decor-3, for text-emphasis-position
- in css-text-decor-3, for text-underline-position
- in css-transforms-1, for transform-origin
- leftwards
- legacy
- <length>
- <length [0,∞]>
- <length-percentage [0,∞]>{2}
- <length-percentage>{2}
- light
- lighten
- lighter
- linear
- linearrgb
- [ <line-names>? <string> <track-size>? <line-names>? ]+ [ / <explicit-track-list> ]?
- line-through
- lining-nums
- list-item
- literal-punctuation
- local
- loose
- loud
- low
- lower-alpha
- lower-armenian
- lowercase
- lower-greek
- lower-latin
- lower-roman
- ltr
- luminance
- luminosity
- malayalam
- male
- mandatory
- manual
- margin-box
- match-parent
- match-source
- math
- max-content
-
medium
- in css-backgrounds-3, for <line-width>, border-width, border-top-width, border-left-width, border-bottom-width, border-right-width, border
- in css-speech-1, for pause-before, pause-after
- in css-speech-1, for rest-before, rest-after
- in css-speech-1, for voice-pitch
- in css-speech-1, for voice-range
- in css-speech-1, for voice-rate
- in css-speech-1, for voice-volume
- menu
- message-box
- min-content
- minmax()
- mixed
- mm
- moderate
- mongolian
- monospace
- move
- ms
- multiply
- myanmar
- ne-resize
- nesw-resize
- neutral
- never
- no-clip
- no-close-quote
- no-common-ligatures
- no-contextual
- no-discretionary-ligatures
- no-drop
- no-historical-ligatures
-
none
- in css-animations-1, for animation-fill-mode
- in css-animations-1, for animation-name
- in css-backgrounds-3, for <line-style>, border-style, border-top-style, border-left-style, border-bottom-style, border-right-style, border
- in css-backgrounds-3, for background-image
- in css-backgrounds-3, for box-shadow
- in css-contain-1, for contain
- in css-display-3, for display, <display-box>
- in css-flexbox-1, for flex
- in css-fonts-4, for font-kerning
- in css-fonts-4, for font-optical-sizing
- in css-fonts-4, for font-size-adjust
- in css-fonts-4, for font-synthesis-position
- in css-fonts-4, for font-synthesis-small-caps
- in css-fonts-4, for font-synthesis-style
- in css-fonts-4, for font-synthesis-weight
- in css-fonts-4, for font-variant
- in css-fonts-4, for font-variant-ligatures
- in css-grid-1, for grid-template
- in css-grid-1, for grid-template-areas
- in css-grid-1, for grid-template-rows, grid-template-columns
- in css-images-3, for image-orientation
- in css-images-3, for object-fit
- in css-multicol-1, for column-span
- in css-scroll-snap-1, for scroll-snap-align
- in css-scroll-snap-1, for scroll-snap-type
- in css-shapes-1, for shape-outside
- in css-speech-1, for pause-before, pause-after
- in css-speech-1, for rest-before, rest-after
- in css-speech-1, for voice-stress
- in css-text-3, for hanging-punctuation
- in css-text-3, for hyphens
- in css-text-3, for text-justify
- in css-text-3, for text-transform
- in css-text-decor-3, for text-decoration-line
- in css-text-decor-3, for text-emphasis-style
- in css-transitions-1, for transition-property
- in css-ui-3, for cursor
- in css-writing-modes-4, for text-combine-upright
- in mediaqueries-4, for @media/hover
- in mediaqueries-4, for @media/overflow-block
- in mediaqueries-4, for @media/overflow-inline
- in mediaqueries-4, for @media/pointer
- in mediaqueries-4, for @media/update
- 'none'::as border style
- nonzero
- no-open-quote
- no-punctuation
- no-repeat
-
normal
- in compositing-1, for <blend-mode>
- in css-align-3, for align-self
- in css-align-3, for justify-content, align-content
- in css-align-3, for justify-self
- in css-align-3, for row-gap, column-gap, gap
- in css-animations-1, for animation-direction
- in css-fonts-4, for font-feature-settings
- in css-fonts-4, for font-kerning
- in css-fonts-4, for font-language override
- in css-fonts-4, for font-palette
- in css-fonts-4, for font-stretch
- in css-fonts-4, for font-style
- in css-fonts-4, for font-variant
- in css-fonts-4, for font-variant-alternates
- in css-fonts-4, for font-variant-caps
- in css-fonts-4, for font-variant-east-asian
- in css-fonts-4, for font-variant-emoji
- in css-fonts-4, for font-variant-ligatures
- in css-fonts-4, for font-variant-numeric
- in css-fonts-4, for font-variant-position
- in css-fonts-4, for font-weight
- in css-scroll-snap-1, for scroll-snap-stop
- in css-speech-1, for speak-as
- in css-speech-1, for voice-rate
- in css-speech-1, for voice-stress
- in css-text-3, for letter-spacing
- in css-text-3, for line-break
- in css-text-3, for overflow-wrap
- in css-text-3, for white-space
- in css-text-3, for word-break
- in css-text-3, for word-spacing
- in css-writing-modes-4, for unicode-bidi
- not
- not-allowed
- nowrap
- n-resize
- ns-resize
- numbers
- numeric
- nw-resize
- nwse-resize
- objectboundingbox
- oblique <angle>?
- oblique <angle [-90deg,90deg]>?
- old
- oldstyle-nums
- only
- open
- open-quote
- optional
- ordinal
- oriya
- ornaments(<feature-value-name>)
- outset
- over
- overlay
- overline
- p3
- padding-box
- page
- paged
- paint
- paused
- pc
- <percentage>
- persian
- petite-caps
- pixelated
- plaintext
- pointer
- portrait
- pre
- pre-line
- preserve
- pre-wrap
- progress
- progressive
- projection
- proportional-nums
- proportional-width
- proximity
- pt
- px
- q
- rad
- rec2020
- recto
- reduced
- region
- rem
- repeat
- repeat-x
- repeat-y
- reverse
- revert
- <rg-ending-shape>
- <rg-size>
- ridge
-
right
- in css-align-3, for justify-content, justify-self, justify-items
- in css-backgrounds-3, for background-position
- in css-break-3, for break-before, break-after
- in css-speech-1, for voice-balance
- in css-text-3, for text-align
- in css-text-decor-3, for text-emphasis-position
- in css-text-decor-3, for text-underline-position
- in css-transforms-1, for transform-origin
- rightwards
- round
- row
- row-resize
- row-reverse
- rtl
- ruby
- ruby-base
- ruby-base-container
- ruby-text
- ruby-text-container
- run-in
- running
- s
- safe
- sans-serif
- saturation
- scale-down
- screen
- scroll
- scroll-position
- self-end
- self-start
- semi-condensed
- semi-expanded
- <semitones>
- se-resize
- serif
- sesame
- sideways
- sideways-lr
- sideways-right
- sideways-rl
- silent
- simp-chinese-formal
- simp-chinese-informal
- simplified
- <size>
- size
- slashed-zero
- slice
- slow
- small-caps
- small-caption
- smooth
- soft
- soft-light
- solid
- space
- space-around
- space-between
- space-evenly
- span && [ <integer [1,∞]> || <custom-ident> ]
- span && [ <integer> || <custom-ident> ]
- speech
- spell-out
- square
- s-resize
- srgb
- stacked-fractions
- start
- status-bar
- step-end
- step-start
- stretch
- strict
- <string>+
- stroke-box
- strong
- styleset(<feature-value-name>#)
- stylistic(<feature-value-name>)
- sub
- subtract
- super
- swap
- swash(<feature-value-name>)
- sw-resize
- symbolic
- system-ui
- table
- table-caption
- table-cell
- table-column
- table-column-group
- table-footer-group
- table-header-group
- table-row
- table-row-group
- tabular-nums
- tamil
- telugu
- text
- thai
- thick
- thin
- tibetan
- titling-caps
- top
- <track-list> | <auto-track-list>
- trad-chinese-formal
- trad-chinese-informal
- traditional
- triangle
- tty
- turn
- tv
- ui-monospace
- ui-rounded
- ui-sans-serif
- ui-serif
- ultra-condensed
- ultra-expanded
- under
- underline
- unicase
- unicode
- unsafe
- unset
- upper-alpha
- upper-armenian
- uppercase
- upper-latin
- upper-roman
- upright
- <url>
- userspaceonuse
- verso
- vertical-lr
- vertical-rl
- vertical-text
- vh
- view-box
- visible
- vmax
- vmin
- vw
- wait
- weak
- words
- wrap
- wrap-reverse
- w-resize
- x
- x-fast
- x-high
- x-loud
- x-low
- x-slow
- x-soft
- x-strong
- x-weak
- y
- young
- zoom-in
- zoom-out
6. 謝辞
§3.2.1実験および不安定な機能の初期草案を作成してくれたFlorian Rivoalに感謝します。