CSSフォントモジュール レベル5

W3C作業草案,

このドキュメントの詳細情報
このバージョン:
https://www.w3.org/TR/2026/WD-css-fonts-5-20260303/
最新公開バージョン:
https://www.w3.org/TR/css-fonts-5/
編集者用ドラフト:
https://drafts.csswg.org/css-fonts-5/
以前のバージョン:
履歴:
https://www.w3.org/standards/history/css-fonts-5/
フィードバック:
CSSWG課題リポジトリ
仕様内でインライン
編集者:
Chris Lilley (W3C)
元編集者:
(以前 Apple Inc.)
仕様への編集提案:
GitHub 編集ページ
デルタ仕様:
はい
テストスイート:
https://wpt.fyi/results/css/css-fonts/

概要

この仕様は、既存の CSS Fonts 4 仕様への修正と、追加の機能を定義します。

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

この文書の位置づけ

このセクションは、公開時点でのこの文書の状況について説明します。 現在のW3C出版物の一覧と、 この技術レポートの最新リビジョンは W3C標準および草案インデックスにて確認できます。

この文書は CSS作業グループ により 作業草案として、勧告トラック に従って公開されました。 作業草案としての公開はW3Cおよびメンバーによる 承認を意味しません。

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

フィードバックは GitHubで課題提出(推奨)により “css-fonts”という仕様コードをタイトルに含めてください(例: “[css-fonts] …コメント要約…”)。 すべての課題・コメントはアーカイブされます。 または、(アーカイブ済み) 公開メーリングリスト www-style@w3.org宛でも送信可能です。

この文書は 2025年8月18日 W3Cプロセス文書 により管理されています。

この文書は W3C特許ポリシーの下で活動するグループにより作成されました。 W3Cはグループの成果物に関連する 特許開示の公開リストを管理しており、 そのページには特許開示の方法についても記載があります。 実際に特許について知っている個人は、必須クレームを含むと信じている 特許情報を W3C特許ポリシー第6節に従い開示する必要があります。

1. はじめに

CSS Fonts Level 4 仕様 ([CSS-FONTS-4]) は、文書内でフォントを選択・使用するために CSS が提供する制御(可変フォントやカラーフォントのサポートを含む)について記述しています。 ここで示す考えは、CSS Fonts Level 4 に定義されたプロパティおよびルールへの追加または修正です。

この仕様は現在、CSS Fonts Level 4 仕様へのデルタです。 ここに記載がないからといってそれが削除されたと判断しないでください。

1.1. 値の定義

この仕様は、CSS プロパティ定義の慣例[CSS2])に従い、値定義構文[CSS-VALUES-3])を使用しています。 この仕様で定義されていない値型は CSS Values & Units [CSS-VALUES-3] にて定義されています。 他の CSS モジュールとの組み合わせにより、これらの値型の定義が拡張される場合があります。

各プロパティの定義に記載されたプロパティ固有の値に加えて、 この仕様で定義されたすべてのプロパティは CSS-wide キーワードをプロパティ値として受け入れます。 可読性のためにそれらは明示的に繰り返していません。

2. Text-Scale meta 要素

ユーザーエージェントは、medium の計算済み値を 16px に テキストスケール係数 を乗じて算出しなければなりません。 ユーザーエージェントは、他の <absolute-size> キーワードの計算済みサイズを決定する際にもこの係数を適用しなければなりません。 ただし、可読性を保つためにこれらの他のキーワードは非線形にスケーリングするべきです。

注: すべてのキーワードに線形スケールを適用すると、大きなフォントが過度に大きく表示されます。詳細は WCAG における最小および最大の重要フォントサイズに関する議論を参照してください。

次の条件を満たす meta タグを含む文書は、その name 属性が ASCII 大文字小文字を区別しない一致"text-scale" に一致する場合、その文書は テキストスケール係数を制御するものとして認識されます。

content 属性の値は、認識されるキーワードのいずれかと ASCII 大文字小文字を区別しない一致 でなければなりません。さもなければそのタグは無視されます。

この meta タグを持たない文書には、既定で legacy の値が想定されます。

<meta name="text-scale" content="scale" />

文書につき一つを超えて、 meta 要素のうち、その name 属性値が ASCII 大文字小文字を区別しない一致text-scale に一致するものがあってはなりません(文書単位で)。

2.1. キーワード

text-scale meta 要素で認識されるキーワードは次のとおりです:

legacy
preferred-text-scale 環境変数は、モバイル機器ではユーザーの OS レベルのフォント係数を返しますが、デスクトップ機器では 1 を返します。 テキストスケール係数 は UA レベルのフォント設定を取り込みますが、OS レベルのフォント設定は無視されます。

注: text-scale meta タグを省略すること、または content 属性に認識されないキーワードを含めることと同等です。

scale
preferred-text-scale 環境変数は、ユーザーの OS レベルのフォント設定を返します。 テキストスケール係数 は UA レベルと OS レベルの両方のフォント設定を取り込みます。

2.2. legacy キーワード

text-scale の content 属性の値が legacy の場合、 テキストスケール係数 はユーザーエージェントが提供する設定のみからユーザーが選択したフォントスケール係数になります(つまり OS レベルの設定は含めない)。 preferred-text-scale 環境変数の値はデスクトップ環境では 1 でなければなりません。

モバイルプラットフォームでは:

2.3. scale キーワード

text-scale の content 属性の値が scale の場合、 テキストスケール係数 は、OS と UA の設定の組み合わせから決定されるユーザーの希望する段落のテキストサイズを 16px で除した値に一致します。

preferred-text-scale 環境変数は テキストスケール係数 を返さなければなりません。

さらに、text-scale の content 属性の値が scale の場合、ユーザーエージェントはユーザーの設定を自動的に尊重しようとして通常行うフォントサイズ調整の介入をすべてスキップするべきです。例えば、モバイルでのテキスト自動調整(CSS Size Adjustment 1 § 1 Introduction を参照)や全体ズームの全適用(Windows で一般的なブラウザが行う動作)などです。

注: 製作者は、<meta name="text-scale" content="scale"> をスタイルシート内で使用して、 medium フォントサイズが OS レベルまたは UA レベルのいずれかのユーザーのフォント設定の組み合わせを反映するようにすることが期待されます。そうすることで著者はページ全体で rem を使用してユーザーのフォント設定を尊重できます。

作者が :root のフォントサイズを変更しない場合、 rem 単位でサイズ指定されたコンテンツは、優先されるテキストスケールに相対的になります
<!DOCTYPE html>
<html> <!-- leave this element’s font-size as the default -->
  <head>
    <meta name="text-scale" content="scale" />
  </head>
  <body>
    <div style="font-size: 1rem;">
      This font size obeys the user’s font preferences, **whether
      those preferences are specified at the operating system level
      or the user agent level**
    </div>
    <div style="font-size: 20px;">
      This font size does NOT respect the user’s font preferences.
      <div style="font-size: 1rem;">
        But this font size does!
      </div>
    </div>
  </body>
</html>

3. 基本フォントプロパティ

w3c/csswg-drafts/126[css-fonts] フォールバック用フォントのパラメータ変更を指定する

3.1. フォントファミリー: the font-family プロパティ

3.1.1. 汎用フォントファミリー

CSS Fonts Level 4 の CSS Fonts 4 § 2.1.5 汎用フォントファミリー に加えて、以下の新しい汎用フォントファミリーも定義されます。

w3c/csswg-drafts/4910[meta] [css-fonts] 汎用フォントファミリーの基準
xxx
xxx 汎用フォントファミリーのためのプレースホルダーテキスト。
w3c/csswg-drafts/4566[css-fonts] 追加汎用フォント用のレジストリを開始すべきか?

3.2. フォントウェイト: the font-weight プロパティ

w3c/csswg-drafts/2690[css-fonts-4] 相対ウェイトのための font-weight におけるパーセンテージ

3.3. フォントスタイル: the font-style プロパティ

w3c/csswg-drafts/4044[css-fonts] 縦書きは font-style や font-stretch とうまく相性が良くない

3.4. 相対サイズ: the font-size-adjust プロパティ

Name: font-size-adjust
Value: none | [ ex-height | cap-height | ch-width | ic-width | ic-height ]? [ from-font | <number [0,∞]> ]
Initial: none
Applies to: all elements and text
Inherited: yes
Percentages: N/A
Computed value: the keyword none, or a pair of a metric keyword and a <number>
Canonical order: per grammar
Animation type: discrete if the keywords differ, otherwise by computed value type

与えられたフォントサイズに対して、テキストの見かけ上のサイズや実際の可読性は、フォントの設計によりフォントごとに異なります。 例えば、大文字と小文字を区別するラテン文字やキリル文字のような二種文字体系では、小文字の相対的な高さが可読性の決定要素になります。 フォントフォールバックが発生する状況では、フォールバックフォントが目的のフォントファミリーと同じ比率を主要なタイポグラフィ指標で共有していないことがあり、 その結果フォールバックされたテキストは異なるサイズに見えたり可読性が低下することがあります。

Tests
w3c/csswg-drafts/8792[css-fonts-5] font-size-adjust: ic-height

font-size-adjust プロパティは、フォールバックが発生したときにテキストの可読性や見かけのサイズを維持する手段を提供します。 これは、使用されるフォントがどれであっても指定した指標が同じになるように使用フォントサイズを調整することで実現します。

値の意味は次のとおりです:

none
特別な font-size の調整は適用されません。
ex-height | cap-height | ch-width | ic-width | ic-height
正規化するフォントメトリクスを指定します。既定は ex-height です。
ex-height
フォントの アスペクト値 を正規化します。 x-height をフォントサイズで除した値を使用します。
cap-height
フォントの cap-height を正規化します。cap-height をフォントサイズで除した値を使用します。
ch-width
フォントの水平の狭幅ピッチを正規化します。文字 “0” (ZERO, U+0030) の advance width をフォントサイズで除した値を使用します。
ic-width
フォントの水平の広幅ピッチを正規化します。文字 “水” (CJK water ideograph, U+6C34) の advance width をフォントサイズで除した値を使用します。
ic-height
フォントの垂直の広幅ピッチを正規化します。文字 “水” (CJK water ideograph, U+6C34) の advance height をフォントサイズで除した値を使用します。
<number [0,∞]>
各フォントの 使用 サイズは、選択されたフォントメトリクスが計算済みの 算出済みfont-size に対して指定された比率に一致するように正規化されます。 言い換えると、 各グリフについて、使用する調整されたフォントサイズ u は次のように計算されます:
u  =  ( m / m′ ) s

ここで:

s  =  computed 'font-size!!property' value
m  =  metric as specified by the 'font-size-adjust' property
m′ =  metric as specified in the actual font
u  =  adjusted font-size to use

負の値は無効です。

from-font
指定したメトリクスに対応する <number> を、最初に利用可能なフォント の指定メトリクスから計算して返します(存在する場合)。 存在しない場合は none と同じです。
Tests
下のスタイルは Verdana を望ましいフォントファミリーとして定義しますが、Verdana が利用できない場合は Futura または Times が使用されます。 ある段落には font-size-adjust も指定されています。
p {
  font-family: Verdana, Futura, Times;
}
p.adj {
  font-size-adjust: 0.545;
}

<p>Lorem ipsum dolor sit amet, ...</p>
<p class="adj">Lorem ipsum dolor sit amet, ...</p>

Verdana は比較的高いアスペクト値 0.545 を持っており、小文字が大文字に比べて相対的に高いため、小さいサイズでも可読性が保たれます。 Times はアスペクト値が低く 0.447 であるため、フォールバックが発生すると font-size-adjust が指定されていない限り小さいサイズで可読性が低下します。

注: ダイアクリティカルマークを使用するテキストでは、x-height が大きすぎるとダイアクリティカルマークが窮屈になり、かえって可読性が低下する場合があります。

各フォントでのレンダリング比較は下に示されています。列は Verdana、Futura、Times でレンダリングしたテキストを示します。 同じ行内では同一の font-size 値が使用され、赤い線が x-height の違いを示します。 上半分では各行は同じ font-size 値でレンダリングされています。 下半分でも同様ですが、この半分では font-size-adjust が 0.545 に設定されており、 実際のフォントサイズが Verdana の x-height を各行で保持するように調整されています。 下半分では小さいテキストが各行で比較的可読性を保っていることに注意してください。

font-size-adjust を使った場合と使わない場合のテキスト

font-size-adjust の値は 使用値font-size に影響しますが、計算済み値 には影響しません。 したがって、exch のようなフォントメトリクスに基づく相対単位のサイズには影響を与え得ますが、em 単位のサイズには影響を与えません。 数値値の line-height計算済みfont-size を参照するため、font-size-adjust使用値line-height には影響しません。

注: font-size-adjustline-height の計算に入らないため、 行間を狭く指定しすぎるとテキスト行が重なってしまう可能性があります。 例えば、アスペクト値が低いフォールバックフォントが高い アスペクト値 を持つものに正規化されると、 その ascender や descender は line-height: 1 の行ボックス外に伸びる可能性があります。

font-size-adjust の調整は選択された任意のフォントに適用されますが、典型的な使用では font-family リストの最初の(最も望ましい)フォントに対応するメトリクス値に基づくことが多いです。 これが正確に指定されている場合、調整式中の (m/m′) 項は最初のフォントについては 1 に解決され、そのフォントには調整が発生せず、他のフォントはそれに合わせて解決されます。 値が不正確に指定されていると、family リストの最初のフォントを使用するテキストは font-size-adjust をサポートしない古いユーザーエージェントでは異なる表示になる可能性があります。

作者は与えられたフォントのための アスペクト値 を、同じ内容だが異なる font-size-adjust を持つ span を比較することで算出できます。 同じ font-size が使用されていれば、span は font-size-adjust の値がそのフォントに対して正確なときに一致します。

ボーダー付きの二つの span を用いてフォントの アスペクト値 を決定します。 両方の span で font-size は同じですが、右側の span にのみ font-size-adjust が指定されています。 0.5 から始めて、境界が二つの文字の周りで揃うまでアスペクト値を調整できます。

p {
  font-family: Futura;
  font-size: 500px;
}

span {
  border: solid 1px red;
}

.adjust {
  font-size-adjust: 0.5;
}

<p><span>b</span><span class="adjust">b</span></p>
アスペクト値 0.5 の Futura

右のボックスは左より少し大きいので、このフォントの アスペクト値 は 0.5 より小さい値です。 ボックスが揃うまで値を調整してください。

注: 指定したメトリクスが @font-face で上書きされている場合(例: size-adjust による上書き)、 上書きされたメトリクスが font-size-adjust の計算に使用されます。 したがって、font-size-adjustsize-adjust を同時に適用すると、 size-adjust が効果を持たないように見えることになります。

4. フォントリソース

4.1. The @font-face ルール

Note: 記述子は要素ごとではなくフォントごとに適用されます。 単一の要素内で複数のフォントが使用されることがあります(例えば、最初に利用可能なフォントでサポートされていない文字のため)。

4.2. フォント参照: src 記述子

4.2.1. src 記述子の解析

src 記述子の値は、CSS Syntax 3 § 5.3.11 コンポーネント値のカンマ区切りリストを解析 に従って解析されなければなりません。 次に各コンポーネント値はこの文法に従って解析されます:

<url> [ format(<font-format>)]? [ tech( <font-tech>#)]? | local(<family-name>)
<font-format>= [<string> | collection | embedded-opentype | opentype
 | svg | truetype | woff | woff2 ]
<font-tech>= [<font-features-tech> | <color-font-tech>
  | variations | palettes | incremental ]
<font-features-tech>= [features-opentype | features-aat | features-graphite]
<color-font-tech>= [color-COLRv0 | color-COLRv1 | color-SVG | color-sbix | color-CBDT ]

コンポーネント値が正しく解析され、かつサポートされる CSS Fonts 4 § 11.2 フォントフォーマット または CSS Fonts 4 § 11.1 フォント技術 である場合、それをサポートされるソースの一覧に追加します。 コンポーネント値の解析がエラーになるか、その format または tech がサポートされない場合は、 それをサポートされるソースの一覧に追加してはいけません。

この処理の最後にサポートされるエントリが存在しない場合、 src 記述子の値は解析エラーとなります。

これらの解析規則は、特定のフォント技術やフォントフォーマットをサポートしないユーザーエージェントに対して フォールバックを優雅に行うことを可能にします。

例えば、incremental transfer がサポートされない場合には、 最適なパフォーマンスのためにフォントの woff2 圧縮版が提供されます。 その後、incremental transfer のために、 生の非圧縮 OpenType フォントが提供され、その一部が要求に応じて読み込まれます。
@font-face {
  font-family: "MyIncrementallyLoadedWebFont";
  src: url("FallbackURLForBrowsersWhichDontSupportIncrementalLoading.woff2") format("woff2");
  src: url("MyIncrementallyLoadedWebFont.otf") format(opentype)  tech(incremental);
}

4.3. フォントプロパティ記述子: font-size

w3c/csswg-drafts/806[css-fonts-5] 光学サイズのために範囲を許容する font-size 記述子を @font-face に追加
w3c/csswg-drafts/731[css-fonts] ex 単位向けの font-size 記述子
Name: font-size
For: @font-face
Value: auto | [<number>]{1,2}
Initial: auto
auto
そのフォントは任意のフォントサイズに一致します
<number>
単一の <number> が与えられた場合、そのフォントはその特定のフォントサイズのみに一致します。 もし二つの <numbers が与えられた場合、 それらは一致するフォントサイズの範囲を指定します。

4.4. グリフサイズ乗数: size-adjust 記述子

Name: size-adjust
For: @font-face
Value: <percentage [0,∞]>
Initial: 100%

size-adjust 記述子は、このフォントに関連するグリフアウトラインおよびメトリクスの乗数を定義し、 著者が同じ font-size でレンダリングされたときに様々なフォントのデザインを調和させることを可能にします。

このフォントに関連付けられたすべてのメトリクス(グリフの advance、ベースラインテーブル、および @font-face 記述子によって提供されるオーバーライドを含む)は、指定されたパーセンテージで拡大縮小され、レンダリングされたグリフ画像も同様にスケーリングされます。 したがって、このフォントから派生する値(exch 単位、または from-font 値の text-decoration-thickness など)は影響を受けます。 しかし、計算済みfont-size (およびそれから派生する値、例えば em 単位、text-underline-offset のパーセンテージ等)は影響を受けません。

Note: size-adjust 記述子は、基本的に ex 高を一致させることでフォントごとに調整を計算する font-size-adjust プロパティと類似に機能しますが、同様に 計算済みfont-size には影響しないことに注意してください。

Tests

4.5. 行高フォントメトリクスのオーバーライド: ascent-overridedescent-override、および line-gap-override 記述子

Name: ascent-override
For: @font-face
Value: [ normal | <percentage [0,∞]> ]{1,2}
Initial: normal
Name: descent-override
For: @font-face
Value: [ normal | <percentage [0,∞]> ]{1,2}
Initial: normal
Name: line-gap-override
For: @font-face
Value: [ normal | <percentage [0,∞]> ]{1,2}
Initial: normal

ascent-overridedescent-override、および line-gap-override 記述子は、それぞれフォントの ascent メトリクスdescent メトリクス、および line gap メトリクス を指定します。 最初の値は x 軸の値を提供し、 二番目の値は y 軸の値を提供します(省略した場合は normal が既定)。

normal
対応するメトリクス値は通常どおりフォントから取得され、この記述子が @font-face ブロックに存在しないかのように扱われます。

Note: 一部のフォントフォーマットではこのようなメトリクスのソースが複数存在するため、 UA/プラットフォーム間でテキストのレイアウトが異なることがあります。

<percentage>
対応するメトリクスは、調整後の有効なフォントサイズに乗じた指定されたパーセンテージで置き換えられます。
Tests

font-size-adjust プロパティは size-adjust 記述子の後に適用されます。

Note: font-size-adjustsize-adjust の後に適用する結果として、 size-adjust は効果がないように見えることがあります。

Note: これらの記述子はいずれも 計算 に影響を与えません font-sizeline-height、または font-relative 長さ の。 しかしながら、それらは line-height: normal の挙動や、より一般的には inline-level コンテンツのベースライン整列に影響を与えることがあります。

注: これらのメトリクスは ブロック軸 でのみ適用されるため、 y 軸の値は縦書きの upright の組版 における 組版モード の場合にのみ使用されます。

パーセンテージは要素ごとに異なるフォントサイズに対して解決されます。
@font-face {
  font-family: overridden-font;
  ascent-override: 50%;
  ...
}

<span style="font-family: overridden-font; font-size: 20px;">
  Outer span content
  <span style="font-size: 150%;">Inner span content</span>
</span>

外側の span は ascent 値として 10px を使用しますが、内側の span は 15px を使用します。

ローカルなフォールバックフォントのメトリクスをウェブフォントである主要フォントに合わせてオーバーライドすることができます。これによりフォールバックから主要フォントへ切り替わる際のレイアウトシフトが減少します。
@font-face {
  font-family: cool-web-font;
  src: url("https://example.com/font.woff");
}

@font-face {
  font-family: fallback-to-local;
  src: local(Some Local Font);
  /* Override metric values to match cool-web-font */
  ascent-override: 125%;
  descent-override: 25%;
  line-gap-override: 0%;
  size-adjust: 96%;
}

<div style="font-family: cool-web-font, fallback-to-local">Title goes here</div>
<img src="https://example.com/largeimage" alt="A large image that you don’t want to shift">

ユーザーエージェントが読み込みを終えてウェブフォントに切り替えたとき(オーバーライド値がウェブフォントの自然なメトリクスに類似していると仮定すると)、画像はそれほどシフトしません。

4.6. 上付き・下付きメトリクスメトリクスのオーバーライド: superscript-position-overridesubscript-position-overridesuperscript-size-override および subscript-size-override 記述子

Name: superscript-position-override
For: @font-face
Value: [ normal | from-font | <percentage> ]{1,2}
Initial: normal
Name: subscript-position-override
For: @font-face
Value: [ normal | from-font | <percentage> ]{1,2}
Initial: normal
Name: superscript-size-override
For: @font-face
Value: [ normal | from-font | <percentage [0,∞]> ]{1,2}
Initial: normal
Name: subscript-size-override
For: @font-face
Value: [ normal | from-font | <percentage [0,∞]> ]{1,2}
Initial: normal

superscript-position-overridesubscript-position-overridesuperscript-size-override、および subscript-size-override 記述子は、 フォントの上付きオフセット、下付きオフセット、上付きサイズ、および下付きサイズのメトリクスをそれぞれ指定します。 これらは font-variant-position により合成グリフが必要とされる際に使用されます。 最初の値は x 軸の値を提供し、 二番目の値は y 軸の値を提供します(省略した場合は最初の値が既定になります)。

normal
UA はフォントから派生したものか何らかのヒューリスティックに基づくかにかかわらず、どのメトリクス値を使用するかを決定します。
from-font
可能ならばフォントデータ内の対応するメトリクスが使用されます。 (メトリクスが欠けている場合は normal と同じです。)
<percentage>
対応するメトリクスは、使用されたフォントサイズに乗じた指定されたパーセンテージで置き換えられます。

Note: これらのメトリクスは ブロック軸 でのみ適用されるため、 y 軸の値は upright の組版 における 縦書きの組版モード の場合にのみ使用されます。

5. フォント機能プロパティ

5.1. フォント言語上書き: font-language-override プロパティ

w3c/csswg-drafts/5484[css-fonts-5] font-language-override の削除

6. フォント機能およびバリエーションの解決

w3c/csswg-drafts/5635[CSS-Fonts] 可変フォント設定を補間する方法が必要

7. フォントバリエーションプロパティ

7.1. 光学サイズ制御: font-optical-sizing プロパティ

w3c/csswg-drafts/5466[css-text][css-fonts] 行の光学的境界

8. フォントの技術とフォーマット

8.1. フォント技術

This section expands upon CSS Fonts 4 § 11.1 Font tech.

The avar2 tech refers to support for version 2 of OpenType axis variations [avar2], for flexible variation axis remapping.

For example, a font using variation axis remapping is loaded only if supported:
@font-face {
  font-family: 'Roboto Flex';
  src: url('RobotoFlex-VF-avar2.woff2') format(woff2) tech(variations, avar2);
  src: url('RobotoFlex-VF.woff2') format(woff2) tech(variations);
  font-weight: 100 1000;
  font-stretch: 25% 151%;
}

9. オブジェクトモデル

This section expands upon CSS Fonts 4 §  12. Object Model.

The contents of @font-face and @font-feature-values rules can be accessed via the following extensions to the CSS Object Model.

Tests

9.1. The CSSFontFaceRule interface

The CSSFontFaceRule interface represents a <@font-face> rule.

[Exposed=Window]
interface CSSFontFaceDescriptors : CSSStyleDeclaration {
  attribute [LegacyNullToEmptyString] CSSOMString src;
  attribute [LegacyNullToEmptyString] CSSOMString fontFamily;
  attribute [LegacyNullToEmptyString] CSSOMString font-family;
  attribute [LegacyNullToEmptyString] CSSOMString fontStyle;
  attribute [LegacyNullToEmptyString] CSSOMString font-style;
  attribute [LegacyNullToEmptyString] CSSOMString fontWeight;
  attribute [LegacyNullToEmptyString] CSSOMString font-weight;
  attribute [LegacyNullToEmptyString] CSSOMString fontStretch;
  attribute [LegacyNullToEmptyString] CSSOMString font-stretch;
  attribute [LegacyNullToEmptyString] CSSOMString fontWidth;
  attribute [LegacyNullToEmptyString] CSSOMString font-width;
  attribute [LegacyNullToEmptyString] CSSOMString fontSize;
  attribute [LegacyNullToEmptyString] CSSOMString font-size;
  attribute [LegacyNullToEmptyString] CSSOMString sizeAdjust;
  attribute [LegacyNullToEmptyString] CSSOMString size-adjust;
  attribute [LegacyNullToEmptyString] CSSOMString unicodeRange;
  attribute [LegacyNullToEmptyString] CSSOMString unicode-range;
  attribute [LegacyNullToEmptyString] CSSOMString fontFeatureSettings;
  attribute [LegacyNullToEmptyString] CSSOMString font-feature-settings;
  attribute [LegacyNullToEmptyString] CSSOMString fontVariationSettings;
  attribute [LegacyNullToEmptyString] CSSOMString font-variation-settings;
  attribute [LegacyNullToEmptyString] CSSOMString fontNamedInstance;
  attribute [LegacyNullToEmptyString] CSSOMString font-named-instance;
  attribute [LegacyNullToEmptyString] CSSOMString fontDisplay;
  attribute [LegacyNullToEmptyString] CSSOMString font-display;
  attribute [LegacyNullToEmptyString] CSSOMString fontLanguageOverride;
  attribute [LegacyNullToEmptyString] CSSOMString font-language-override;
  attribute [LegacyNullToEmptyString] CSSOMString ascentOverride;
  attribute [LegacyNullToEmptyString] CSSOMString ascent-override;
  attribute [LegacyNullToEmptyString] CSSOMString descentOverride;
  attribute [LegacyNullToEmptyString] CSSOMString descent-override;
  attribute [LegacyNullToEmptyString] CSSOMString lineGapOverride;
  attribute [LegacyNullToEmptyString] CSSOMString line-gap-override;
  attribute [LegacyNullToEmptyString] CSSOMString superscriptPositionOverride;
  attribute [LegacyNullToEmptyString] CSSOMString superscript-position-override;
  attribute [LegacyNullToEmptyString] CSSOMString subscriptPositionOverride;
  attribute [LegacyNullToEmptyString] CSSOMString subscript-position-override;
  attribute [LegacyNullToEmptyString] CSSOMString superscriptSizeOverride;
  attribute [LegacyNullToEmptyString] CSSOMString superscript-size-override;
  attribute [LegacyNullToEmptyString] CSSOMString subscriptSizeOverride;
  attribute [LegacyNullToEmptyString] CSSOMString subscript-size-override;
};

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

この仕様に関して新たに報告されたセキュリティ上の考慮事項はありません。

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

この仕様に関して新たに報告されたプライバシー上の考慮事項はありません。

12. 謝辞

まず第一に、編集者はこのモジュールの前のレベルへの 寄稿者の皆様に感謝したいと思います。

次に、Level 5 の改善への貢献について、以下の方々に謝意を表します: Dave Crossland(Google), Bernhard Fey(RealObjects), Xiaocheng Hu(Google), Jonathan Kew(Mozilla), そして Laurence Penney 。

13. 変更点

13.1. 2024年2月6日版(WD of 6 February 2024)以降の変更点

13.2. 2021年12月21日版(WD of 21 December 2021)以降の変更点

13.3. 2021-07-29 版(WD of 2021-07-29)以降の変更点

13.4. 2021-06-29 版(FPWD of 2021-06-29)以降の変更点

適合性

文書の慣例

適合性要件は記述的な主張と RFC 2119 用語の組み合わせで表現されます。規範部分におけるキーワード “MUST”、 “MUST NOT”、 “REQUIRED”、 “SHALL”、 “SHALL NOT”、 “SHOULD”、 “SHOULD NOT”、 “RECOMMENDED”、 “MAY”、および “OPTIONAL” は RFC 2119 の説明に従って解釈されます。 ただし、可読性のために、これらの語はこの仕様書では常に全大文字で表記されているわけではありません。

この仕様のすべてのテキストは、非規範と明記された節、例、注を除いて規範的です。 [RFC2119]

この仕様の例は “for example” という語で導入されるか、規範的テキストから class="example" により区別されます。例えば:

これは情報的な例の一例です。

情報的なノートは “Note” という語で始まり、規範的テキストから class="note" により区別されます。例えば:

注: これは情報的なノートです。

助言的注意(Advisements)は特別な注意を喚起するための規範的な節であり、<strong class="advisement"> により規範的テキストから区別されます。例えば: UA はアクセス可能な代替手段を提供しなければなりません。

Tests

この仕様の内容に関連するテストは、このような “Tests” ブロックに記録されることがあります。 そのようなブロックはすべて非規範的です。


適合性クラス

この仕様への適合性は三つの適合性クラスで定義されます:

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

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

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

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

部分実装

著者がフォールバック値を割り当てるために前方互換の解析規則を利用できるようにするため、CSS レンダラーは 必ず サポートが無い at-rule、プロパティ、プロパティ値、キーワード、およびその他の構文構成要素を無効として扱い(必要に応じて 適切に無視)なければなりません。特に、UA はサポートしていないコンポーネント値を選択的に無視し、サポートされている値を単一の複数値プロパティ宣言内で採用してはなりません: もし任意の値が無効と見なされるなら(サポートされていない値はそうでなければならない)、CSS は宣言全体が無視されることを要求します。

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

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

非実験的な実装

仕様が Candidate Recommendation ステージに到達すると、非実験的な実装が可能になり、実装者は CR レベルの機能を仕様に従って正しく実装できることを示せる場合、その機能の無接頭辞実装をリリースすべきです。

実装間での CSS の相互運用性を確立・維持するために、CSS Working Group は非実験的な CSS レンダラーに対し、無接頭辞実装をリリースする前に実装報告(必要に応じてその実装報告に使用したテストケース)を W3C に提出することを求めます。W3C に提出されたテストケースは CSS Working Group によりレビューおよび修正される場合があります。

テストケースや実装報告の提出に関する詳細は CSS Working Group のウェブサイト https://www.w3.org/Style/CSS/Test/ を参照してください。 質問は public-css-testsuite@w3.org メーリングリストへお願いします。

索引

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

参照により定義される用語

参考文献

規範的参考文献

[AVAR2]
avar — Axis Variations Table Version 2. 2022. URL: https://github.com/harfbuzz/boring-expansion-spec/blob/main/avar2.md
[CSS-CASCADE-5]
Elika Etemad; Miriam Suzanne; Tab Atkins Jr.. CSS Cascading and Inheritance Level 5. 13 January 2022. CR. URL: https://www.w3.org/TR/css-cascade-5/
[CSS-ENV-1]
CSS Environment Variables Module Level 1. 23 September 2025. FPWD. URL: https://www.w3.org/TR/css-env-1/
[CSS-FONTS-4]
Chris Lilley. CSS Fonts Module Level 4. 1 February 2024. WD. URL: https://www.w3.org/TR/css-fonts-4/
[CSS-INLINE-3]
Elika Etemad. CSS Inline Layout Module Level 3. 18 December 2024. WD. URL: https://www.w3.org/TR/css-inline-3/
[CSS-SIZE-ADJUST-1]
CSS Mobile Text Size Adjustment Module Level 1. Editor's Draft. URL: https://drafts.csswg.org/css-size-adjust-1/
[CSS-SYNTAX-3]
Tab Atkins Jr.; Simon Sapin. CSS Syntax Module Level 3. 24 December 2021. CRD. URL: https://www.w3.org/TR/css-syntax-3/
[CSS-TEXT-DECOR-4]
Elika Etemad; Koji Ishii. CSS Text Decoration Module Level 4. 4 May 2022. WD. URL: https://www.w3.org/TR/css-text-decor-4/
[CSS-TRANSFORMS-2]
Tab Atkins Jr.; et al. CSS Transforms Module Level 2. 9 November 2021. WD. URL: https://www.w3.org/TR/css-transforms-2/
[CSS-VALUES-3]
Tab Atkins Jr.; Elika Etemad. CSS Values and Units Module Level 3. 22 March 2024. CRD. URL: https://www.w3.org/TR/css-values-3/
[CSS-VALUES-4]
Tab Atkins Jr.; Elika Etemad. CSS Values and Units Module Level 4. 12 March 2024. WD. URL: https://www.w3.org/TR/css-values-4/
[CSS2]
Bert Bos; et al. Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification. 7 June 2011. REC. URL: https://www.w3.org/TR/CSS2/
[CSSOM-1]
Daniel Glazman; Emilio Cobos Álvarez. CSS Object Model (CSSOM). 26 August 2021. WD. URL: https://www.w3.org/TR/cssom-1/
[HTML]
Anne van Kesteren; et al. HTML Standard. Living Standard. URL: https://html.spec.whatwg.org/multipage/
[INFRA]
Anne van Kesteren; Domenic Denicola. Infra Standard. Living Standard. URL: https://infra.spec.whatwg.org/
[RFC2119]
S. Bradner. Key words for use in RFCs to Indicate Requirement Levels. March 1997. Best Current Practice. URL: https://datatracker.ietf.org/doc/html/rfc2119
[WEBIDL]
Edgar Chen; Timothy Gu. Web IDL Standard. Living Standard. URL: https://webidl.spec.whatwg.org/

情報的参考文献

[CSS-DISPLAY-4]
Elika Etemad; Tab Atkins Jr.. CSS Display Module Level 4. 6 November 2025. WD. URL: https://www.w3.org/TR/css-display-4/
[CSS-WRITING-MODES-4]
Elika Etemad; Koji Ishii. CSS Writing Modes Level 4. 30 July 2019. CR. URL: https://www.w3.org/TR/css-writing-modes-4/
[SELECTORS-4]
Elika Etemad; Tab Atkins Jr.. Selectors Level 4. 22 January 2026. WD. URL: https://www.w3.org/TR/selectors-4/

プロパティ索引

名前 初期値 適用先 継承 パーセンテージ アニメーションタイプ 正準順序 計算済み値
font-size-adjust none | [ ex-height | cap-height | ch-width | ic-width | ic-height ]? [ from-font | <number [0,∞]> ] none all elements and text yes N/A discrete if the keywords differ, otherwise by computed value type per grammar the keyword none, or a pair of a metric keyword and a <number>

@font-face 記述子

名前 初期値
ascent-override [ normal | <percentage [0,∞]> ]{1,2} normal
descent-override [ normal | <percentage [0,∞]> ]{1,2} normal
font-size auto | [<number>]{1,2} auto
line-gap-override [ normal | <percentage [0,∞]> ]{1,2} normal
size-adjust <percentage [0,∞]> 100%
subscript-position-override [ normal | from-font | <percentage> ]{1,2} normal
subscript-size-override [ normal | from-font | <percentage [0,∞]> ]{1,2} normal
superscript-position-override [ normal | from-font | <percentage> ]{1,2} normal
superscript-size-override [ normal | from-font | <percentage [0,∞]> ]{1,2} normal

IDL 索引

[Exposed=Window]
interface CSSFontFaceDescriptors : CSSStyleDeclaration {
  attribute [LegacyNullToEmptyString] CSSOMString src;
  attribute [LegacyNullToEmptyString] CSSOMString fontFamily;
  attribute [LegacyNullToEmptyString] CSSOMString font-family;
  attribute [LegacyNullToEmptyString] CSSOMString fontStyle;
  attribute [LegacyNullToEmptyString] CSSOMString font-style;
  attribute [LegacyNullToEmptyString] CSSOMString fontWeight;
  attribute [LegacyNullToEmptyString] CSSOMString font-weight;
  attribute [LegacyNullToEmptyString] CSSOMString fontStretch;
  attribute [LegacyNullToEmptyString] CSSOMString font-stretch;
  attribute [LegacyNullToEmptyString] CSSOMString fontWidth;
  attribute [LegacyNullToEmptyString] CSSOMString font-width;
  attribute [LegacyNullToEmptyString] CSSOMString fontSize;
  attribute [LegacyNullToEmptyString] CSSOMString font-size;
  attribute [LegacyNullToEmptyString] CSSOMString sizeAdjust;
  attribute [LegacyNullToEmptyString] CSSOMString size-adjust;
  attribute [LegacyNullToEmptyString] CSSOMString unicodeRange;
  attribute [LegacyNullToEmptyString] CSSOMString unicode-range;
  attribute [LegacyNullToEmptyString] CSSOMString fontFeatureSettings;
  attribute [LegacyNullToEmptyString] CSSOMString font-feature-settings;
  attribute [LegacyNullToEmptyString] CSSOMString fontVariationSettings;
  attribute [LegacyNullToEmptyString] CSSOMString font-variation-settings;
  attribute [LegacyNullToEmptyString] CSSOMString fontNamedInstance;
  attribute [LegacyNullToEmptyString] CSSOMString font-named-instance;
  attribute [LegacyNullToEmptyString] CSSOMString fontDisplay;
  attribute [LegacyNullToEmptyString] CSSOMString font-display;
  attribute [LegacyNullToEmptyString] CSSOMString fontLanguageOverride;
  attribute [LegacyNullToEmptyString] CSSOMString font-language-override;
  attribute [LegacyNullToEmptyString] CSSOMString ascentOverride;
  attribute [LegacyNullToEmptyString] CSSOMString ascent-override;
  attribute [LegacyNullToEmptyString] CSSOMString descentOverride;
  attribute [LegacyNullToEmptyString] CSSOMString descent-override;
  attribute [LegacyNullToEmptyString] CSSOMString lineGapOverride;
  attribute [LegacyNullToEmptyString] CSSOMString line-gap-override;
  attribute [LegacyNullToEmptyString] CSSOMString superscriptPositionOverride;
  attribute [LegacyNullToEmptyString] CSSOMString superscript-position-override;
  attribute [LegacyNullToEmptyString] CSSOMString subscriptPositionOverride;
  attribute [LegacyNullToEmptyString] CSSOMString subscript-position-override;
  attribute [LegacyNullToEmptyString] CSSOMString superscriptSizeOverride;
  attribute [LegacyNullToEmptyString] CSSOMString superscript-size-override;
  attribute [LegacyNullToEmptyString] CSSOMString subscriptSizeOverride;
  attribute [LegacyNullToEmptyString] CSSOMString subscript-size-override;
};

[Exposed=Window]
interface CSSFontFaceRule : CSSRule {
  [SameObject, PutForwards=cssText] readonly attribute CSSFontFaceDescriptors style;
};

課題索引

w3c/csswg-drafts/126[css-fonts] フォールバックフォントのパラメータ変更の指定
w3c/csswg-drafts/4910[meta] [css-fonts] 汎用フォントファミリーの基準
w3c/csswg-drafts/4566[css-fonts] 追加の汎用フォント用のレジストリを開始すべきか?
w3c/csswg-drafts/2690[css-fonts-4] 相対ウェイトに対する font-weight のパーセンテージ
w3c/csswg-drafts/4044[css-fonts] 縦書きは font-style や font-stretch とうまく相性が良くない
w3c/csswg-drafts/8792[css-fonts-5] font-size-adjust: ic-height
w3c/csswg-drafts/6384[css-fonts-5] メトリクスが欠落している場合の font-size-adjust
w3c/csswg-drafts/806[css-fonts-5] 光学サイズのために範囲を許容する font-size 記述子を @font-face に追加
w3c/csswg-drafts/731[css-fonts] ex 単位向けの font-size 記述子
w3c/csswg-drafts/5484[css-fonts-5] font-language-override の削除
w3c/csswg-drafts/5635[CSS-Fonts] 可変フォント設定を補間する方法が必要
w3c/csswg-drafts/5466[css-text][css-fonts] 行の光学的境界