Zum Inhalt springen
getnextpdf.com

CSS-Support-Matrix

NextPDF implementiert CSS-Rendering anhand der von W3C veröffentlichten Spezifikationen. Diese Seite listet jedes CSS-Modul des Spezifikationskorpus von NextPDF auf und dokumentiert den wahrheitsgeprüften Supportstand jedes Moduls in der Rendering-Pipeline.

Diese Revision ist das Ergebnis der Wahrheitsprüfung aus Wave 4 B2 (Plan-Abschnitt 4.4). Die Badges der vorherigen strukturellen Revision waren ungeprüfte Platzhalter. Jede Zeile wurde anhand echter Belege im Dateisystem (src/Html/, tests/, tests/Wpt/corpus/), der v8/v9-Breaking-Change-ADRs und des internen Audits zur CSS-Eigenschaftsabdeckung neu eingestuft. Ehrlichkeit hatte Vorrang vor Abdeckung: Wo das Audit ein Badge herabstufte, blieb es herabgestuft.

Vier Badges klassifizieren jede Zeile gemäß dem Verifizierungsvertrag:

  • Verifiziert — Implementierung in src/Html/ plus substanzielle eigene automatisierte Fixture-Abdeckung: eine Property-Suite aus drei oder mehr Dateien unter tests/Unit/Html/<Module>/ oder ein Web-Platform-Tests-Korpus-Shard aus fünfzig oder mehr Fixtures unter tests/Wpt/corpus/. Da noch keine Golden-PDF-Baseline pro CSS-Modul eingebunden ist, verwenden verifizierte Zeilen das Reproduzierbarkeitsprofil structural (PHPUnit-Assertion-Äquivalenz), niemals bitwise.
  • Beansprucht — Das Modulverhalten ist in src/Html/ implementiert (Quellpfad genannt), aber die eigene Fixture-Abdeckung ist dünn, geteilt oder fehlt. Jede beanspruchte Zeile mit konkreter Implementierung hat ein Backfill-Issue.
  • Nicht unterstützt — Außerhalb des Umfangs der statischen PDF-Rendering-Pipeline. Reine Laufzeit-/Browser-APIs, Scrolling-/Animationslaufzeiten und von W3C eingestellte Arbeiten. Der Grund ist jeweils festgehalten.
  • Unbekannt — Das Modul ist im Korpus, aber es ließ sich kein Implementierungs- oder Fixture-Nachweis ermitteln. Das Audit hat nie auf einen besseren Status spekuliert, nur um die Zahl zu verbessern.

Das Badge partial aus der strukturellen Revision wurde abgeschafft: Jede ehemalige Partial-Zeile wurde zu claimed (Implementierung vorhanden, keine eigene Fixture) oder verified neu eingestuft.

BadgeBedeutung
verifiedsrc/Html/ + eigene Fixture-Suite (≥3 Dateien) oder WPT-Shard (≥50 Fixtures); besteht deterministisch unter dem Profil structural.
claimedImplementierungsnachweis in src/Html/, keine eigene Fixture. Backfill-Issue wird verfolgt.
not-supportedAusdrücklich vom statischen PDF-Umfang ausgeschlossen. Grund festgehalten.
unknownKein ermittelbarer Nachweis. Nicht spekulativ hochgestuft.

Die Spalte Konfidenz gibt ehrlich und nicht binär an, wie stark der Nachweis für das genannte Badge ist (high / medium / low), unabhängig vom Badge selbst.

NextPDF unterstützt die unten aufgeführten CSS-Module auf den angegebenen Stufen. Verifizierte Zeilen verfügen über eine eigene automatisierte Fixture-Suite oder ein substanzielles WPT-Korpus-Shard, das das Verhalten von NextPDF absichert, und bestehen deterministisch unter dem Reproduzierbarkeitsprofil structural. Zeilen mit dem Status Beansprucht haben einen Implementierungsnachweis in src/Html/, aber noch keine eigene Fixture; jede wird durch ein Backfill-Issue unter Tracking-Issue #614 verfolgt. Zeilen mit dem Status Nicht unterstützt dokumentieren explizite Umfangsgrenzen für das statische PDF-Ziel.

In dieser Revision gibt es keine Golden-PDF-Baseline pro CSS-Modul; keine Zeile beansprucht Reproduzierbarkeit auf Byte-Ebene. Der Verifizierungsvertrag verbietet leere Zeilen — wenn sich der Support nicht ermitteln lässt, ist die Zeile unknown.

StatusModuleKonfidenz (hoch / mittel / niedrig)
Verifiziert128 / 4 / 0
Beansprucht490 / 35 / 14
Nicht unterstützt6762 / 5 / 0
Unbekannt390 / 0 / 39
Gesamt16770 / 44 / 53

Der summary-Block der strukturellen Revision war in sich widersprüchlich: Er deklarierte 148 insgesamt (18 verified / 11 partial / 11 claimed / 53 not-supported / 55 unknown), doch die Datei enthielt tatsächlich 167 Modulzeilen, deren eigene Labels sich auf 34 verified / 13 partial / 13 claimed / 68 not-supported / 39 unknown summierten. Dieses Audit korrigierte die Gesamtzahl auf die tatsächlichen 167 und stufte jede Zeile anhand der Belege im Dateisystem neu ein: Die Kategorie Verifiziert sank von beanspruchten 34 auf belegte 12. Diese Reduktion ist das korrekte Ergebnis eines ehrlichen Audits, keine Regression. Das vollständige before/after-Delta steht im Repo-internen Sidecar _css-matrix-truth-report.md.

Die strukturelle Revision hat drei aktive Fähigkeiten fälschlich als entfernt oder nicht unterstützt gekennzeichnet. ADR-027 und ADR-028 entfernten nur die ExperimentalFeature-Enum-Opt-in-Marker; die Fähigkeiten selbst bleiben LIVE und standardmäßig aktiv:

  • Subgrid (css_grid_2) — LIVE; CssFeatureFlags::$layoutSubgrid ist standardmäßig aktiviert. Wurde fälschlich als „subgrid hard-removed v9.0.0” gekennzeichnet.
  • @container-Queries (css_contain_2) — Runtime-Dispatch bleibt laut ADR-028 ausdrücklich unverändert; Flag-Opt-out bleibt erhalten. Wurde fälschlich als „hard-removed v9.0.0” gekennzeichnet.
  • writing-mode: vertical-lr (css_writing_modes_3) — standardmäßig aktiv und stabil seit v7.0.0; ADR-027 hat nur den Deprecation-Handshake überführt. Wurde fälschlich als „deprecated/removed v8.0.0” gekennzeichnet.

Der maschinenlesbare Zeilensatz je Modul steht im Repo-internen css-support-matrix-data.yaml und ist die maßgebliche Quelle. Diese Seite ist die nach Kategorien gruppierte, menschenlesbare Projektion. Astro-Komponenten verwenden das YAML direkt während des Docs-Builds.

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

Diese W3C-Module erscheinen im Korpus, liegen aber außerhalb des Umfangs der CSS-Rendering-Pipeline. Sie werden, wo zutreffend, von den entsprechenden Feature-Seiten verlinkt.

W3C-ModulW3CStatusKonfidenzWo
W3C SVG 1.1 (svg_1_1)RECBeanspruchtniedrigInline-SVG-Paint-Teilmenge in Renderer/PaintCommand/; keine CSS-Matrix-Fixture.
W3C SVG 2.0 (svg_2_0)CRUnbekanntniedrigBetrifft die Premium-Pipeline; kein Core-Nachweis.
W3C PNG 3rd Edition (png_3)WDBeanspruchtniedrigPNG-Decode im Modul Graphics/ (außerhalb von HTML/CSS).
W3C WOFF 1.0 (woff_1_0)RECBeanspruchtniedrigWOFF über den Font-Stack; keine CSS-Matrix-Fixture.
W3C WOFF 2.0 (woff_2_0)RECBeanspruchtniedrigWOFF2 über den Font-Stack; keine CSS-Matrix-Fixture.
W3C WCAG 2.2 (wcag_2_2)RECVerifiziertmittelsrc/Html/Aam/, tests/Unit/Accessibility/HtmlAam/ (4 Dateien) — PDF/UA-2.
W3C WAI-ARIA 1.2 (wai_aria_1_2)RECVerifiziertmitteltests/Unit/Accessibility/HtmlAam/ (4 Dateien).
W3C ARIA Bundle (w3c_aria_bundle)RECBeanspruchtniedrigGuidance-Bundle; der konkrete Nachweis ist die WAI-ARIA-Zeile.
W3C AAM Bundle (w3c_aam_bundle)NOTEBeanspruchtniedrigBundle-Verweis; der Nachweis sind die WAI-ARIA/WCAG-Zeilen.
W3C ATAG 2.0 (atag_2_0)RECNicht unterstützthochBarrierefreiheit von Authoring-Tools; nicht zutreffend.
W3C XSL 1.1 (xsl_1_1)RECNicht unterstützthochXSL-FO-Parallelformatierungsmodell; nicht implementiert.
W3C XSD 1.1 Part 1 (xsd_1_1_part1)RECNicht unterstützthochXML-Schema; nicht zutreffend.
W3C XSLT 3.0 (xslt_3_0)RECNicht unterstützthochTransformationssprache; nicht zutreffend.
Resize Observer (resize_observer_1)CRNicht unterstützthochBrowser-Laufzeit-API.

Damit eine Zeile von claimedverified aufsteigt:

  1. Eine eigene Property-Fixture-Suite liegt unter tests/Unit/Html/<Module>/ (≥3 Dateien) oder ein substanzielles WPT-Korpus-Shard (≥50 Fixtures) unter tests/Wpt/corpus/ wird zu einem Test mit Assertions ausgebaut.
  2. Die Fixture sichert das Verhalten von NextPDF gegen die W3C-Grammatik für die primären Properties des Moduls ab.
  3. Die Fixture besteht deterministisch unter einem NextPDF\Testing\ReproducibilityProfile (structural für Assertion-Fixtures; bitwise erst, sobald Golden-PDF-Baselines pro Modul existieren).
  4. Der nextpdf_status der Zeile im Repo-internen css-support-matrix-data.yaml wechselt zu verified, mit aktualisiertem fixture_path, repro_profile und confidence.

Damit eine Zeile von unknownclaimed aufsteigt:

  1. Ein Audit-Durchlauf bestätigt einen Implementierungsnachweis in src/Html/ (den Pfad in evidence + notes nennen).
  2. Ein Backfill-Issue wird eröffnet und in backfill_issue verlinkt.
  • HTML: Subsystem für HTML+CSS-zu-PDF-Rendering — die Engine hinter diesen Fähigkeiten, einschließlich der Hinweise zum Verhalten von Tabellen, Flex, Verläufen und Paginierung.
  • Nicht unterstützte CSS-Funktionen und Behelfslösungen — die genauen Grenzen je Verhalten.
  • Arabisches RTL-HTML rendern — Unterstützung für Rechts-nach-links und Bidirektionalität sowie ihre derzeitigen Grenzen.
  • Große HTML-Tabelle über mehrere Seiten paginieren — seitenübergreifende Tabellenpaginierung.
  • CSS-Matrix-Wahrheitsbericht (_css-matrix-truth-report.md, im Repo) — before/after-Audit-Deltas, Konfidenzverteilung, Deflationsprotokoll.
  • CSS-Eigenschaftsabdeckungs-Audit (architecture/css-property-coverage-audit.md, im Repo) — internes Vier-Zustands-Audit pro Eigenschaft (Policy/Parsed/Applied/Rendered).
  • ADR-027 v8.0.0 BREAKING (architecture/adr/ADR-027-v8-breaking.md, im Repo) — Überführung des vertical-lr-Deprecation-Handshakes (Fähigkeit erhalten).
  • ADR-028 v9.0.0 BREAKING (architecture/adr/ADR-028-v9-breaking.md, im Repo) — Entfernung der Grid-/Subgrid-/@container-Enum-Marker (Fähigkeiten erhalten).
  • Backfill-Tracking-Issue: https://github.com/nextpdf-labs/nextpdf/issues/614