コンテンツにスキップ
getnextpdf.com

CSS サポートマトリクス

NextPDF は、W3C が公開している仕様に準拠して CSS レンダリングを実装しています。このページでは、NextPDF の仕様コーパスに含まれるすべての CSS モジュールを列挙し、レンダリングパイプラインにおける各モジュールの 真実性監査済み サポート状態を記録します。

このリビジョンは Wave 4 B2 の 真実性監査(プラン 4.4 節)の成果物です。以前の構造リビジョンで示していたバッジは、検証されていないプレースホルダーでした。ここに記載した各行は、実際にディスク上にあるエビデンス(src/Html/tests/tests/Wpt/corpus/)、v8/v9 の破壊的変更 ADR、および内部の CSS プロパティカバレッジ監査に照らして再採点しています。カバレッジの広さよりも正直さを優先しました。監査の結果、バッジを下げるべき箇所では実際に下げています。

検証コントラクトに従い、各行は次の 4 つのバッジに分類されます。

  • 検証済みsrc/Html/ の実装に 加えて、実質的な専用自動フィクスチャがある状態です。具体的には、tests/Unit/Html/<Module>/ 配下のプロパティ単位のスイート(3 ファイル以上)、または tests/Wpt/corpus/ 配下の Web Platform Tests コーパスシャード(50 フィクスチャ以上)を指します。CSS モジュール単位のゴールデン PDF ベースラインはまだ用意されていないため、検証済みの行では structural 再現性プロファイル(PHPUnit のアサーション同値)を使用し、bitwise は使用しません。
  • 主張のみ — モジュールの動作は src/Html/ に実装されています(ソースパスを記載)が、専用フィクスチャが手薄、共有、または未整備の状態です。具体的な実装がある「主張のみ」の各行には、バックフィル用の Issue が用意されています。
  • 非対応 — 静的 PDF レンダリングパイプラインの対象外です。ランタイム/ブラウザー専用 API、scrolling/animation ランタイム、および W3C が廃止した作業が該当します。理由も記録しています。
  • 不明 — モジュールはコーパスに存在しますが、実装やフィクスチャのエビデンスを判定できなかった状態です。監査では、件数を増やすために上方推定することは一切行っていません。

構造リビジョンの partial バッジは 廃止 されました。以前 partial だった各行は、claimed(実装あり、専用フィクスチャなし)または verified に再採点されました。

バッジ意味
verifiedsrc/Html/ + 専用フィクスチャスイート(3 ファイル以上)または WPT シャード(50 フィクスチャ以上)。structural プロファイル下で決定論的にパスします。
claimed実装エビデンスは src/Html/ にあり、専用フィクスチャなし。バックフィル Issue で追跡中。
not-supported静的 PDF のスコープから明示的に除外。理由は記録済み。
unknown判定可能なエビデンスなし。上方推定は行っていません。

この表の 信頼度 列は、記載されたバッジを支えるエビデンスの強さを示す、正直かつ非二値のシグナル(high / medium / low)であり、バッジそのものとは独立しています。

NextPDF は、以下に挙げる CSS モジュールを、記載したレベルでサポートします。検証済み の行には、NextPDF の動作をアサートする専用自動フィクスチャスイートまたは実質的な WPT コーパスシャードがあり、structural 再現性プロファイル下で決定論的にパスします。主張のみ の行には src/Html/ に実装エビデンスがありますが、専用フィクスチャはまだありません。各行は 追跡 Issue #614 配下のバックフィル Issue で追跡されています。非対応 の行は、静的 PDF ターゲットに対する明示的なスコープ境界を記録したものです。

本リビジョンには CSS モジュール単位のゴールデン PDF ベースラインはなく、バイトレベルの再現性を主張する行はありません。検証コントラクトでは空の行を禁止しています。サポート状況を判定できない場合、その行は unknown になります。

ステータスモジュール数信頼度レベル(high / medium / low)
検証済み128 / 4 / 0
主張のみ490 / 35 / 14
非対応6762 / 5 / 0
不明390 / 0 / 39
合計16770 / 44 / 53

構造リビジョンの summary ブロックには内部矛盾がありました。合計 148(verified 18 / partial 11 / claimed 11 / not-supported 53 / unknown 55)と宣言していましたが、ファイル内には実際には 167 のモジュール行 があり、各行自体のラベルを集計すると verified 34 / partial 13 / claimed 13 / not-supported 68 / unknown 39 でした。本監査では合計を正しい 167 に訂正し、ディスク上のエビデンスに照らしてすべての行を再採点しました。Verified は、主張上の 34 から、裏付けのある 12 に減少しました。この減少は誠実な監査の結果として正しく、リグレッションではありません。完全な before/after の差分は、リポジトリ内の _css-matrix-truth-report.md サイドカーにあります。

構造リビジョンでは、稼働中の 3 つの機能を「削除済み」または「非対応」と誤ってラベル付けしていました。ADR-027 と ADR-028 が削除したのは ExperimentalFeature 列挙体の オプトインマーカー のみであり、機能そのものは引き続き既定で有効(LIVE)です。

  • Subgridcss_grid_2)— 稼働中(LIVE)。CssFeatureFlags::$layoutSubgrid は既定で有効です。以前は「subgrid は v9.0.0 で完全削除」と誤ってラベル付けされていました。
  • @container クエリcss_contain_2)— ランタイムディスパッチは ADR-028 によって明示的には変更されていません。フラグによるオプトアウトも保持されています。以前は「v9.0.0 で完全削除」と誤ってラベル付けされていました。
  • writing-mode: vertical-lrcss_writing_modes_3)— v7.0.0 以降、既定で有効な Stable です。ADR-027 で正式化されたのは非推奨ハンドシェイクのみです。以前は「v8.0.0 で非推奨/削除」と誤ってラベル付けされていました。

機械可読なモジュール単位の行セットは、リポジトリ内の css-support-matrix-data.yaml にあり、これが信頼できる唯一の情報源(source of truth)です。このページはそれを人間が読める形式に射影し、カテゴリーごとにグループ化したものです。ドキュメントのビルド時には、Astro コンポーネントがこの YAML を直接消費します。

W3C モジュールレベルW3C ステージステータス信頼度
CSS Flexible Box Layout モジュール (css_flexbox_1)1CR検証済みhigh
CSS Grid Layout (css_grid_1)1REC検証済みhigh
CSS Grid Layout — Subgrid モジュール (css_grid_2)2CR主張のみmedium
CSS Grid Layout — Masonry モジュール (css_grid_3)3ED非対応high
CSS Display (css_display_3)3CR主張のみmedium
CSS Display (css_display_4)4ED不明low
CSS Positioned Layout (css_position_3)3WD検証済みhigh
CSS Positioned Layout (css_position_4)4ED不明low
CSS Box Alignment (css_align_3)3WD主張のみmedium
CSS Box Sizing (css_sizing_3)3CR主張のみlow
CSS Box Sizing (css_sizing_4)4ED不明low
CSS Box Model (css_box_3)3WD主張のみmedium
CSS Box Model (css_box_4)4ED不明low
CSS Multi-column Layout モジュール (css_multicol_1)1CR主張のみmedium
CSS Multi-column Layout モジュール (css_multicol_2)2ED不明low
CSS Fragmentation (css_break_3)3CR検証済みmedium
CSS Fragmentation (css_break_4)4ED不明low
CSS Containment (css_contain_1)1REC非対応medium
CSS Containment — @container (css_contain_2)2CR主張のみlow
CSS Containment (css_contain_3)3ED非対応medium
CSS Inline Layout (css_inline_3)3WD主張のみmedium
CSS Logical Properties (css_logical_1)1WD主張のみmedium
CSS Page Floats (css_page_floats_3)3ED非対応high
CSS Pagination Templates (css_page_templates_3)3ED非対応high
CSS Exclusions (css_exclusions_1)1WD非対応high
CSS Regions (css_regions_1)1WD非対応high
CSS Template Layout (css_template_1)1NOTE非対応high
CSS Layout API (css_layout_api_1)1WD非対応high
W3C モジュールレベルW3C ステージステータス信頼度
CSS Backgrounds and Borders モジュール (css_backgrounds_3)3CR主張のみmedium
CSS Backgrounds (css_backgrounds_4)4ED不明low
CSS Borders and Box Decorations モジュール (css_borders_4)4ED不明low
CSS Gap Decorations (css_gaps_1)1ED不明low
CSS Masking (css_masking_1)1CR非対応medium
CSS Shadow Module (css_shadow_1)1ED主張のみmedium
CSS Shapes (css_shapes_1)1CR非対応high
CSS Shapes (css_shapes_2)2ED非対応high
Filter Effects (filter_effects_1)1WD非対応high
Filter Effects (filter_effects_2)2ED非対応high
Compositing and Blending モジュール (compositing_1)1CR主張のみmedium
Compositing (compositing_2)2ED不明low
CSS Fill and Stroke モジュール (fill_stroke_3)3ED不明low
Geometry Interfaces (geometry_1)1CR非対応high
DOMMatrix (matrix)1NOTE非対応high
Motion Path (motion_1)1WD非対応high
W3C モジュールレベルW3C ステージステータス信頼度
CSS Fonts (css_fonts_3)3REC検証済みmedium
CSS Fonts (css_fonts_4)4CR検証済みhigh
CSS Fonts (css_fonts_5)5ED不明low
CSS Font Loading (css_font_loading_3)3WD非対応high
CSS Text (css_text_3)3CR主張のみmedium
CSS Text (css_text_4)4ED主張のみmedium
CSS Text Decoration (css_text_decor_3)3CR主張のみmedium
CSS Text Decoration (css_text_decor_4)4ED不明low
CSS Ruby (css_ruby_1)1WD非対応high
CSS Writing Modes (css_writing_modes_3)3REC主張のみmedium
CSS Writing Modes (css_writing_modes_4)4ED不明low
CSS Speech (css_speech_1)1CR非対応high
CSS Mobile Text Size Adjustment モジュール (css_size_adjust_1)1ED非対応high
W3C モジュールレベルW3C ステージステータス信頼度
CSS Color (css_color_3)3REC主張のみmedium
CSS Color (css_color_4)4CR主張のみmedium
CSS Color (css_color_5)5WD不明low
CSS Color (css_color_6)6ED不明low
CSS Color Adjustment (css_color_adjust_1)1CR非対応high
CSS Color HDR (css_color_hdr_1)1ED非対応high
CSS Images (css_images_3)3CR主張のみmedium
CSS Images (css_images_4)4ED不明low
CSS Images (css_images_5)5ED不明low
CSS Image Animation (css_image_animation_1)1ED非対応high
W3C モジュールレベルW3C ステージステータス信頼度
CSS Selectors (selectors_3)3REC主張のみmedium
CSS Selectors (selectors_4)4WD主張のみmedium
CSS Selectors (selectors_5)5ED不明low
CSS Non-element Selectors モジュール (selectors_nonelement_1)1WD非対応high
CSS Pseudo-Elements (css_pseudo_4)4WD主張のみmedium
CSS Cascading and Inheritance (css_cascade_3)3REC検証済みhigh
CSS Cascading (css_cascade_4)4CR検証済みhigh
CSS Cascading (css_cascade_5)5CR検証済みhigh
CSS Cascading (css_cascade_6)6WD不明low
CSS Values and Units モジュール (css_values_3)3REC主張のみmedium
CSS Values and Units モジュール (css_values_4)4CR主張のみmedium
CSS Values and Units モジュール (css_values_5)5ED不明low
CSS Custom Properties (css_variables_1)1CR主張のみmedium
CSS Custom Properties (css_variables_2)2ED不明low
CSS Conditional Rules (css_conditional_3)3CR主張のみmedium
CSS Conditional Rules (css_conditional_4)4ED不明low
CSS Conditional Rules (css_conditional_5)5ED不明low
CSS Conditional Values (css_conditional_values_1)1ED不明low
CSS Namespaces (css_namespaces_3)3REC主張のみlow
CSS Style Attributes (css_style_attr_1)1CR主張のみmedium
CSS Syntax (css_syntax_3)3CR主張のみmedium
CSS Nesting (css_nesting_1)1CR主張のみmedium
CSS Environment Variables (css_env_1)1ED非対応medium
CSS Custom Functions and Mixins モジュール (css_mixins_1)1ED不明low
CSS Extensions (css_extensions_1)1NOTE不明low
W3C モジュールレベルW3C ステージステータス信頼度
CSS Lists and Counters モジュール (css_lists_3)3WD主張のみmedium
CSS Counter Styles (css_counter_styles_3)3CR主張のみmedium
CSS Generated Content (css_content_3)3WD主張のみmedium
CSS Generated Content for Paged Media モジュール (css_gcpm_3)3WD主張のみmedium
CSS Generated Content for Paged Media モジュール (css_gcpm_4)4ED不明low
W3C モジュールレベルW3C ステージステータス信頼度
CSS Paged Media (css_page_3)3WD主張のみmedium
CSS Paged Media (css_page_4)4NOTE不明low
CSS Print Profile (css_print)1NOTE主張のみlow
CSS Presentation Levels (css_preslev_1)1NOTE非対応high
W3C モジュールレベルW3C ステージステータス信頼度
CSS Overflow (css_overflow_3)3WD主張のみlow
CSS Overflow (css_overflow_4)4ED不明low
CSS Overflow (css_overflow_5)5ED不明low
CSS Overscroll Behavior (css_overscroll_1)1CR非対応high
CSS Scroll Anchoring (css_scroll_anchoring_1)1WD非対応high
CSS Scroll Snap (css_scroll_snap_1)1REC非対応high
CSS Scroll Snap (css_scroll_snap_2)2WD非対応high
CSS Scrollbars Styling (css_scrollbars_1)1CR非対応high
CSS Basic User Interface モジュール (css_ui_3)3REC非対応medium
CSS Basic User Interface モジュール (css_ui_4)4WD非対応high
CSS Form Control Styling モジュール (css_forms_1)1ED非対応high
CSS View Transitions (css_view_transitions_1)1WD非対応high
CSS View Transitions (css_view_transitions_2)2ED非対応high
CSS Spatial Navigation (css_nav_1)1NOTE非対応high
CSS Route Matching (css_navigation_1)1ED非対応high
W3C モジュールレベルW3C ステージステータス信頼度
CSS Table (css_tables_3)3WD検証済みhigh
W3C モジュールレベルW3C ステージステータス信頼度
CSS Transforms (css_transforms_1)1CR主張のみmedium
CSS Transforms (css_transforms_2)2ED不明low
CSS Animations (css_animations_1)1WD非対応high
CSS Animations (css_animations_2)2ED非対応high
CSS Transitions (css_transitions_1)1WD非対応high
CSS Transitions (css_transitions_2)2ED非対応high
CSS Easing Functions (css_easing_1)1CR非対応high
CSS Easing Functions (css_easing_2)2ED非対応high
Web Animations (web_animations_1)1WD非対応high
Web Animations (web_animations_2)2ED非対応high
Web Animations CSS Integration モジュール (web_animations_css_integration)1ED非対応high
Animation Triggers (animation_triggers)1ED非対応high
Pointer-driven Animations モジュール (pointer_animations_1)1ED非対応high
Scroll-driven Animations モジュール (scroll_animations_1)1ED非対応high
CSS Animation Worklet (css_animation_worklet)1ED非対応high
W3C モジュールレベルW3C ステージステータス信頼度
CSS Anchor Positioning (css_anchor_position_1)1WD不明low
CSS Anchor Positioning (css_anchor_position_2)2ED不明low
CSS Highlight API (css_highlight_api_1)1WD非対応high
CSS Properties and Values API モジュール (css_properties_values_api_1)1CR非対応high
CSS Painting API (css_paint_api_1)1WD非対応high
CSS Typed OM (css_typed_om_1)1WD非対応high
CSSOM (cssom_1)1WD非対応high
CSSOM View (cssom_view_1)1WD非対応high
CSS Will Change (css_will_change_1)1CR非対応high
CSS Linked Parameters (css_link_params_1)1ED不明low
CSS Line Grid (css_line_grid_1)1NOTE不明low
CSS Rhythmic Sizing (css_rhythm_1)1ED不明low
CSS Round Display (css_round_display_1)1ED非対応high
CSS Shaders (css_shaders_1)1NOTE非対応high
CSS Viewport (css_viewport_1)1NOTE非対応high
W3C モジュールレベルW3C ステージステータス信頼度
Media Queries (mediaqueries_3)3REC主張のみmedium
Media Queries (mediaqueries_4)4CR主張のみmedium
Media Queries (mediaqueries_5)5WD不明low
W3C モジュールレベルW3C ステージステータス信頼度
CSS Level 2 (css_2_1)2.1REC主張のみlow
CSS Level 2.2 (css_2_2)2.2NOTE主張のみlow
CSS Snapshot 2026 (css_snapshot_2026)snapshotNOTE主張のみlow

これらの W3C モジュールはコーパスに含まれますが、CSS レンダリングパイプラインのスコープ外です。 該当する場合は、対応する機能ページからリンクされています。

W3C モジュールW3C ステージステータス信頼度参照先
W3C SVG 1.1 (svg_1_1)REC主張のみlowインライン SVG ペイントのサブセットを Renderer/PaintCommand/ で対応。CSS マトリクスのフィクスチャはありません。
W3C SVG 2.0 (svg_2_0)CR不明lowPremium パイプラインの領域。コアのエビデンスはありません。
W3C PNG 3rd Edition の仕様 (png_3)WD主張のみlowPNG デコードは Graphics/ モジュールで実施(HTML/CSS の外)。
W3C WOFF 1.0 (woff_1_0)REC主張のみlowFont スタック経由の WOFF。CSS マトリクスのフィクスチャはありません。
W3C WOFF 2.0 (woff_2_0)REC主張のみlowFont スタック経由の WOFF2。CSS マトリクスのフィクスチャはありません。
W3C WCAG 2.2 (wcag_2_2)REC検証済みmediumsrc/Html/Aam/tests/Unit/Accessibility/HtmlAam/(4 ファイル)— PDF/UA-2。
W3C WAI-ARIA 1.2 (wai_aria_1_2)REC検証済みmediumtests/Unit/Accessibility/HtmlAam/(4 ファイル)。
W3C ARIA Bundle (w3c_aria_bundle)REC主張のみlowガイダンスバンドル。具体的なエビデンスは WAI-ARIA の行です。
W3C AAM Bundle (w3c_aam_bundle)NOTE主張のみlowバンドルへのポインター。エビデンスは WAI-ARIA/WCAG の行です。
W3C ATAG 2.0 (atag_2_0)REC非対応highオーサリングツールのアクセシビリティ。該当しません。
W3C XSL 1.1 (xsl_1_1)REC非対応highXSL-FO の並行フォーマットモデル。未実装。
W3C XSD 1.1 Part 1 (xsd_1_1_part1)REC非対応highXML スキーマ。該当しません。
W3C XSLT 3.0 (xslt_3_0)REC非対応high変換言語。該当しません。
Resize Observer (resize_observer_1)CR非対応highブラウザーのランタイム API。

行が claimedverified に昇格するには、次の条件を満たします。

  1. 専用のプロパティ単位のフィクスチャスイートが tests/Unit/Html/<Module>/ 配下に(3 ファイル以上)ある、または 実質的な WPT コーパスシャード(50 フィクスチャ以上)が tests/Wpt/corpus/ 配下でアサート用テストへ昇格されていること。
  2. フィクスチャは、モジュールの主要プロパティについて W3C 文法に照らして NextPDF の動作をアサートすること。
  3. フィクスチャは NextPDF\Testing\ReproducibilityProfile の下で決定論的にパスすること(アサーションフィクスチャには structuralbitwise はモジュール単位のゴールデン PDF ベースラインが存在する場合のみ)。
  4. その行の nextpdf_status(リポジトリ内の css-support-matrix-data.yaml 内)を verified に切り替え、fixture_pathrepro_profileconfidence を更新すること。

行が unknownclaimed に昇格するには、次の条件を満たします。

  1. 監査パスで src/Html/ 内の実装エビデンスを確認すること(パスは evidencenotes に記載)。
  2. バックフィル Issue を作成し、backfill_issue にリンクすること。