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.
| Badge | Bedeutung |
|---|
verified | src/Html/ + eigene Fixture-Suite (≥3 Dateien) oder WPT-Shard (≥50 Fixtures); besteht deterministisch unter dem Profil structural. |
claimed | Implementierungsnachweis in src/Html/, keine eigene Fixture. Backfill-Issue wird verfolgt. |
not-supported | Ausdrücklich vom statischen PDF-Umfang ausgeschlossen. Grund festgehalten. |
unknown | Kein 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.
| Status | Module | Konfidenz (hoch / mittel / niedrig) |
|---|
| Verifiziert | 12 | 8 / 4 / 0 |
| Beansprucht | 49 | 0 / 35 / 14 |
| Nicht unterstützt | 67 | 62 / 5 / 0 |
| Unbekannt | 39 | 0 / 0 / 39 |
| Gesamt | 167 | 70 / 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-Modul | Stufe | W3C | Status | Konfidenz | Nachweis |
|---|
CSS Flexible Box Layout (css_flexbox_1) | 1 | CR | Verifiziert | hoch | src/Html/Flex/, tests/Unit/Html/Flex/ (50 Dateien) |
CSS Grid Layout (css_grid_1) | 1 | REC | Verifiziert | hoch | src/Html/Grid/, tests/Unit/Html/Grid/ (25), tests/Wpt/corpus/css-grid/ (654) |
CSS Grid Layout — Subgrid (css_grid_2) | 2 | CR | Beansprucht | mittel | src/Html/Grid/Subgrid/ + WPT-Shard mit 80 Fixtures + 1 Integrationstest. LIVE und standardmäßig aktiviert (ADR-028 entfernte nur den Enum-Marker). |
CSS Grid Layout — Masonry (css_grid_3) | 3 | ED | Nicht unterstützt | hoch | Masonry liegt außerhalb des Umfangs für v5.x. |
CSS Display (css_display_3) | 3 | CR | Beansprucht | mittel | DisplayResolver.php + Resolver-Tests; keine eigene Property-Suite. |
CSS Display (css_display_4) | 4 | ED | Unbekannt | niedrig | Kein L4-Nachweis. |
CSS Positioned Layout (css_position_3) | 3 | WD | Verifiziert | hoch | src/Html/Positioned/, tests/Unit/Html/Positioned/ (8 Dateien) |
CSS Positioned Layout (css_position_4) | 4 | ED | Unbekannt | niedrig | position: sticky/anchor nicht belegt. |
CSS Box Alignment (css_align_3) | 3 | WD | Beansprucht | mittel | In den Flex-/Grid-Engines implementiert; keine eigenständige Suite. |
CSS Box Sizing (css_sizing_3) | 3 | CR | Beansprucht | niedrig | src/Html/Length/; laut Phase-0-Audit ist width/height weitgehend POLICY-ONLY. |
CSS Box Sizing (css_sizing_4) | 4 | ED | Unbekannt | niedrig | Intrinsic-Size-Keywords nicht belegt. |
CSS Box Model (css_box_3) | 3 | WD | Beansprucht | mittel | Margin-Collapse abgedeckt; left/right-Box-Modell laut Phase-0-Audit fehlend. Backfill #617. |
CSS Box Model (css_box_4) | 4 | ED | Unbekannt | niedrig | Kein Nachweis. |
CSS Multi-column Layout (css_multicol_1) | 1 | CR | Beansprucht | mittel | src/Html/MultiCol/; keine Property-Suite. |
CSS Multi-column Layout (css_multicol_2) | 2 | ED | Unbekannt | niedrig | Kein Nachweis. |
CSS Fragmentation (css_break_3) | 3 | CR | Verifiziert | mittel | src/Html/Fragmentation/, tests/Unit/Html/PagedMedia/ (20 Dateien) |
CSS Fragmentation (css_break_4) | 4 | ED | Unbekannt | niedrig | Kein Nachweis. |
CSS Containment (css_contain_1) | 1 | REC | Nicht unterstützt | mittel | Kein Applikator für contain-layout/paint; kein Live-Update-Modell. |
CSS Containment — @container (css_contain_2) | 2 | CR | Beansprucht | niedrig | WPT-Shard mit 114 Fixtures + ADR-017/021 Retained-Layout-Modell. Runtime ist LIVE (ADR-028 entfernte nur den Enum-Marker). |
CSS Containment (css_contain_3) | 3 | ED | Nicht unterstützt | mittel | Style-Containment außerhalb des Umfangs. |
CSS Inline Layout (css_inline_3) | 3 | WD | Beansprucht | mittel | src/Html/Layout/InlineLayout/ + 8 Tests; initial-letter nicht belegt. |
CSS Logical Properties (css_logical_1) | 1 | WD | Beansprucht | mittel | WritingMode-Resolver für logical→physical; keine eigene Fixture. Logische text-align: start/end werden gegen direction aufgelöst — unter direction: rtl ist start der rechte Rand — und in Tabellenzellen angewendet. |
CSS Page Floats (css_page_floats_3) | 3 | ED | Nicht unterstützt | hoch | Liegt außerhalb des Umfangs für v5.x. |
CSS Pagination Templates (css_page_templates_3) | 3 | ED | Nicht unterstützt | hoch | Multi-Region-Pagination liegt außerhalb des Umfangs. |
CSS Exclusions (css_exclusions_1) | 1 | WD | Nicht unterstützt | hoch | Tier C; keine Roadmap-Zusage. |
CSS Regions (css_regions_1) | 1 | WD | Nicht unterstützt | hoch | Von W3C eingestellt. |
CSS Template Layout (css_template_1) | 1 | NOTE | Nicht unterstützt | hoch | Außerhalb des Umfangs. |
CSS Layout API (css_layout_api_1) | 1 | WD | Nicht unterstützt | hoch | Worklet-Laufzeit; nicht zutreffend. |
| W3C-Modul | Stufe | W3C | Status | Konfidenz | Nachweis |
|---|
CSS Backgrounds and Borders (css_backgrounds_3) | 3 | CR | Beansprucht | mittel | src/Html/Background/, BorderRenderer.php; bg-color laut Phase-0-Audit nur in Tabellen abgedeckt. Backfill #628. |
CSS Backgrounds (css_backgrounds_4) | 4 | ED | Unbekannt | niedrig | Kein Nachweis. |
CSS Borders and Box Decorations (css_borders_4) | 4 | ED | Unbekannt | niedrig | Kein Nachweis. |
CSS Gap Decorations (css_gaps_1) | 1 | ED | Unbekannt | niedrig | Kein Nachweis. |
CSS Masking (css_masking_1) | 1 | CR | Nicht unterstützt | mittel | clip-path/mask nicht an PDF-Clip-Operatoren geroutet. |
CSS Shadow Module (css_shadow_1) | 1 | ED | Beansprucht | mittel | src/Html/Shadow/ (BoxShadowRenderer); keine eigene Fixture. |
CSS Shapes (css_shapes_1) | 1 | CR | Nicht unterstützt | hoch | shape-outside außerhalb des Umfangs für v5.x. |
CSS Shapes (css_shapes_2) | 2 | ED | Nicht unterstützt | hoch | Außerhalb des Umfangs. |
Filter Effects (filter_effects_1) | 1 | WD | Nicht unterstützt | hoch | SVG-Filterprimitive werden nicht an PDF geroutet. |
Filter Effects (filter_effects_2) | 2 | ED | Nicht unterstützt | hoch | Außerhalb des Umfangs. |
Compositing and Blending (compositing_1) | 1 | CR | Beansprucht | mittel | PDF-Blend-Mode-Mapping in PaintCommand/; ein Blend-Mode-Test. |
Compositing (compositing_2) | 2 | ED | Unbekannt | niedrig | Kein Nachweis. |
CSS Fill and Stroke (fill_stroke_3) | 3 | ED | Unbekannt | niedrig | Kein Nachweis. |
Geometry Interfaces (geometry_1) | 1 | CR | Nicht unterstützt | hoch | DOM-Matrix-Laufzeit-API. |
DOMMatrix (matrix) | 1 | NOTE | Nicht unterstützt | hoch | Browser-Laufzeit-API. |
Motion Path (motion_1) | 1 | WD | Nicht unterstützt | hoch | Nur Animation. |
| W3C-Modul | Stufe | W3C | Status | Konfidenz | Nachweis |
|---|
CSS Fonts (css_fonts_3) | 3 | REC | Verifiziert | mittel | src/Html/Font/, tests/Unit/Font/ (9) + FontResolver-Tests |
CSS Fonts (css_fonts_4) | 4 | CR | Verifiziert | hoch | src/Html/FontFace/, tests/Unit/Html/FontFace/ (31 Dateien) |
CSS Fonts (css_fonts_5) | 5 | ED | Unbekannt | niedrig | font-tech() nicht belegt. |
CSS Font Loading (css_font_loading_3) | 3 | WD | Nicht unterstützt | hoch | JS-FontFace-Laufzeit-API; PHP-seitiges Laden über FontResolver. |
CSS Text (css_text_3) | 3 | CR | Beansprucht | mittel | src/Html/Text/ + 5 Tests; Phase 0 FULL für align/indent/spacing, white-space nur <pre>. Backfill #618. |
CSS Text (css_text_4) | 4 | ED | Beansprucht | mittel | src/Html/Layout/Hyphenation/ + Strategie-Tests; weitere L4-Properties stehen aus. |
CSS Text Decoration (css_text_decor_3) | 3 | CR | Beansprucht | mittel | src/Html/Text/; Phase 0 FULL, aber keine eigene Fixture. Backfill #619. |
CSS Text Decoration (css_text_decor_4) | 4 | ED | Unbekannt | niedrig | text-emphasis nicht belegt. |
CSS Ruby (css_ruby_1) | 1 | WD | Nicht unterstützt | hoch | Ruby-Anmerkungen liegen außerhalb des Umfangs für v5.x. |
CSS Writing Modes (css_writing_modes_3) | 3 | REC | Beansprucht | mittel | src/Html/Layout/WritingMode/ (7 Tests) + WPT-Shard mit 140 Fixtures. vertical-lr ist LIVE und standardmäßig aktiv (ADR-027). direction: rtl ist funktionsfähig — UAX#9-bidirektionale Umordnung plus arabische kontextuelle Formung, mit Start-Ausrichtung in Tabellenzellen. Block-Ausrichtung außerhalb von Tabellen und justify werden noch nicht angewendet, und das HTML-Attribut dir wird nicht abgebildet (verwenden Sie CSS direction). Siehe Rechts-nach-links-Arabisch-HTML rendern. Backfill #629. |
CSS Writing Modes (css_writing_modes_4) | 4 | ED | Unbekannt | niedrig | Kein Nachweis. |
CSS Speech (css_speech_1) | 1 | CR | Nicht unterstützt | hoch | Aurales Rendering nicht zutreffend. |
CSS Mobile Text Size Adjustment (css_size_adjust_1) | 1 | ED | Nicht unterstützt | hoch | Mobile-UA-Hinweis; nicht zutreffend. |
| W3C-Modul | Stufe | W3C | Status | Konfidenz | Nachweis |
|---|
CSS Color (css_color_3) | 3 | REC | Beansprucht | mittel | src/Html/Color/, NamedColors.php + Parser-Tests; keine Modul-Fixture. Backfill #620. |
CSS Color (css_color_4) | 4 | CR | Beansprucht | mittel | Lab-/LCH-/OKLab-Parsing; PDF-Farbraumtreue nicht zugesichert. |
CSS Color (css_color_5) | 5 | WD | Unbekannt | niedrig | color-mix() nicht belegt. |
CSS Color (css_color_6) | 6 | ED | Unbekannt | niedrig | Kein Nachweis. |
CSS Color Adjustment (css_color_adjust_1) | 1 | CR | Nicht unterstützt | hoch | color-scheme UA-gesteuert; nicht zutreffend. |
CSS Color HDR (css_color_hdr_1) | 1 | ED | Nicht unterstützt | hoch | HDR nicht an PDF-Farbraum geroutet. |
CSS Images (css_images_3) | 3 | CR | Beansprucht | mittel | src/Html/Gradient/ (linear/radial/conic) + Parser-Tests. |
CSS Images (css_images_4) | 4 | ED | Unbekannt | niedrig | image()/image-set() nicht belegt. |
CSS Images (css_images_5) | 5 | ED | Unbekannt | niedrig | Kein Nachweis. |
CSS Image Animation (css_image_animation_1) | 1 | ED | Nicht unterstützt | hoch | Nur Animation. |
| W3C-Modul | Stufe | W3C | Status | Konfidenz | Nachweis |
|---|
CSS Selectors (selectors_3) | 3 | REC | Beansprucht | mittel | HasSelectorResolver.php + CssRule-Tests; Fixture ist eine einzelne corpus.json. Backfill #627. |
CSS Selectors (selectors_4) | 4 | WD | Beansprucht | mittel | :is()/:where()/:not()/:has() getestet; fortgeschrittene L4-Abdeckung steht aus. |
CSS Selectors (selectors_5) | 5 | ED | Unbekannt | niedrig | Kein Nachweis. |
CSS Non-element Selectors (selectors_nonelement_1) | 1 | WD | Nicht unterstützt | hoch | Browser-Stylesheet-Hooks; nicht zutreffend. |
CSS Pseudo-Elements (css_pseudo_4) | 4 | WD | Beansprucht | mittel | src/Html/Pseudo/ (12) + ~10 Renderer-Tests; keine eigene Modul-Suite. |
CSS Cascading and Inheritance (css_cascade_3) | 3 | REC | Verifiziert | hoch | src/Html/Cascade/, tests/Unit/Html/Cascade/ (9 Dateien) |
CSS Cascading (css_cascade_4) | 4 | CR | Verifiziert | hoch | Cascade/Layer/ + revert/layer-Tests |
CSS Cascading (css_cascade_5) | 5 | CR | Verifiziert | hoch | AtRule/Layer/ + Cascade/Layer/-Suites |
CSS Cascading (css_cascade_6) | 6 | WD | Unbekannt | niedrig | @scope nicht belegt. |
CSS Values and Units (css_values_3) | 3 | REC | Beansprucht | mittel | CssValueParser.php + Unit-Tests; Fixture ist eine einzelne corpus.json. Backfill #626. |
CSS Values and Units (css_values_4) | 4 | CR | Beansprucht | mittel | calc() implementiert; verschachteltes min()/max()/clamp() nicht vollständig belegt. |
CSS Values and Units (css_values_5) | 5 | ED | Unbekannt | niedrig | Kein Nachweis. |
CSS Custom Properties (css_variables_1) | 1 | CR | Beansprucht | mittel | src/Html/CustomProperty/ + Scope-Coverage-Test. |
CSS Custom Properties (css_variables_2) | 2 | ED | Unbekannt | niedrig | Kein Nachweis. |
CSS Conditional Rules (css_conditional_3) | 3 | CR | Beansprucht | mittel | @media/@supports-Parsing getestet; @container-Runtime erhalten (ADR-028). |
CSS Conditional Rules (css_conditional_4) | 4 | ED | Unbekannt | niedrig | Kein Nachweis. |
CSS Conditional Rules (css_conditional_5) | 5 | ED | Unbekannt | niedrig | Kein Nachweis. |
CSS Conditional Values (css_conditional_values_1) | 1 | ED | Unbekannt | niedrig | Kein Nachweis. |
CSS Namespaces (css_namespaces_3) | 3 | REC | Beansprucht | niedrig | Der Parser toleriert @namespace; keine Matching-Abdeckung. |
CSS Style Attributes (css_style_attr_1) | 1 | CR | Beansprucht | mittel | Inline-style-Parsing über die gesamte Pipeline; keine eigene Fixture. Backfill #622. |
CSS Syntax (css_syntax_3) | 3 | CR | Beansprucht | mittel | CssParser/ + grammar/fuzz-Tests; keine Conformance-Fixture. Backfill #623. |
CSS Nesting (css_nesting_1) | 1 | CR | Beansprucht | mittel | Von unknown hochgestuft — CssNestingTest + desugar/inner-scan-Tests. |
CSS Environment Variables (css_env_1) | 1 | ED | Nicht unterstützt | mittel | UA-gesteuertes env(); nicht zutreffend. |
CSS Custom Functions and Mixins (css_mixins_1) | 1 | ED | Unbekannt | niedrig | Kein Nachweis. |
CSS Extensions (css_extensions_1) | 1 | NOTE | Unbekannt | niedrig | Kein Nachweis. |
| W3C-Modul | Stufe | W3C | Status | Konfidenz | Nachweis |
|---|
CSS Lists and Counters (css_lists_3) | 3 | WD | Beansprucht | mittel | HtmlListRenderer.php/CssCounterManager.php + 18 Tests; list-style-type wird nicht auf ol/ul angewendet (Phase 0). |
CSS Counter Styles (css_counter_styles_3) | 3 | CR | Beansprucht | mittel | Eingebaute Counter-Styles; @counter-style ausstehend. |
CSS Generated Content (css_content_3) | 3 | WD | Beansprucht | mittel | CssContentSegment.php + Pseudo-Tests; umgeht den Applikator (Phase 0). Backfill #621. |
CSS Generated Content for Paged Media (css_gcpm_3) | 3 | WD | Beansprucht | mittel | src/Html/Gcpm/-Registries + Footnote-Capture-Test. |
CSS Generated Content for Paged Media (css_gcpm_4) | 4 | ED | Unbekannt | niedrig | Kein Nachweis. |
| W3C-Modul | Stufe | W3C | Status | Konfidenz | Nachweis |
|---|
CSS Paged Media (css_page_3) | 3 | WD | Beansprucht | mittel | Page/, PagedMedia/, PageRule.php + PageRuleParser/PageMarginBox-Tests; tests/Unit/Html/Page/ enthält 1 Datei. Backfill #624. |
CSS Paged Media (css_page_4) | 4 | NOTE | Unbekannt | niedrig | Künftige Vorschläge. |
CSS Print Profile (css_print) | 1 | NOTE | Beansprucht | niedrig | Das statische PDF-Ziel beachtet Druck-Constraints; keine Conformance-Fixture. |
CSS Presentation Levels (css_preslev_1) | 1 | NOTE | Nicht unterstützt | hoch | Slideware-Navigation; nicht zutreffend. |
| W3C-Modul | Stufe | W3C | Status | Konfidenz | Nachweis |
|---|
CSS Overflow (css_overflow_3) | 3 | WD | Beansprucht | niedrig | OverflowClip/ClipRect-Tests; Clipping erfolgt nur in Tabellenzellen (Phase 0). |
CSS Overflow (css_overflow_4) | 4 | ED | Unbekannt | niedrig | Kein Nachweis. |
CSS Overflow (css_overflow_5) | 5 | ED | Unbekannt | niedrig | Kein Nachweis. |
CSS Overscroll Behavior (css_overscroll_1) | 1 | CR | Nicht unterstützt | hoch | Scroll-Laufzeit; nicht zutreffend. |
CSS Scroll Anchoring (css_scroll_anchoring_1) | 1 | WD | Nicht unterstützt | hoch | Scroll-Laufzeit; nicht zutreffend. |
CSS Scroll Snap (css_scroll_snap_1) | 1 | REC | Nicht unterstützt | hoch | Scroll-Laufzeit; nicht zutreffend. |
CSS Scroll Snap (css_scroll_snap_2) | 2 | WD | Nicht unterstützt | hoch | Scroll-Laufzeit; nicht zutreffend. |
CSS Scrollbars Styling (css_scrollbars_1) | 1 | CR | Nicht unterstützt | hoch | UA-Laufzeit; nicht zutreffend. |
CSS Basic User Interface (css_ui_3) | 3 | REC | Nicht unterstützt | mittel | cursor/resize nur Browser-UI. |
CSS Basic User Interface (css_ui_4) | 4 | WD | Nicht unterstützt | hoch | UA-Laufzeit; nicht zutreffend. |
CSS Form Control Styling (css_forms_1) | 1 | ED | Nicht unterstützt | hoch | Formular-Widgets werden vom statischen PDF-Ziel nicht gerendert. |
CSS View Transitions (css_view_transitions_1) | 1 | WD | Nicht unterstützt | hoch | Nur Animation. |
CSS View Transitions (css_view_transitions_2) | 2 | ED | Nicht unterstützt | hoch | Nur Animation. |
CSS Spatial Navigation (css_nav_1) | 1 | NOTE | Nicht unterstützt | hoch | UA-Laufzeit; nicht zutreffend. |
CSS Route Matching (css_navigation_1) | 1 | ED | Nicht unterstützt | hoch | UA-Laufzeit; nicht zutreffend. |
| W3C-Modul | Stufe | W3C | Status | Konfidenz | Nachweis |
|---|
CSS Table (css_tables_3) | 3 | WD | Verifiziert | hoch | src/Html/Table/, tests/Unit/Html/Table/ (17) + ~60 TableParser-Tests + 5 synthetische Golden-PDFs in tests/Corpus/tables/ |
| W3C-Modul | Stufe | W3C | Status | Konfidenz | Nachweis |
|---|
CSS Transforms (css_transforms_1) | 1 | CR | Beansprucht | mittel | Renderer/Transform/ + ApplyTransformCommand.php; keine eigene Fixture. |
CSS Transforms (css_transforms_2) | 2 | ED | Unbekannt | niedrig | 3D-Transforms nicht belegt. |
CSS Animations (css_animations_1) | 1 | WD | Nicht unterstützt | hoch | Animation-Timeline ist auf statische PDFs nicht anwendbar. |
CSS Animations (css_animations_2) | 2 | ED | Nicht unterstützt | hoch | Außerhalb des Umfangs. |
CSS Transitions (css_transitions_1) | 1 | WD | Nicht unterstützt | hoch | Außerhalb des Umfangs. |
CSS Transitions (css_transitions_2) | 2 | ED | Nicht unterstützt | hoch | Außerhalb des Umfangs. |
CSS Easing Functions (css_easing_1) | 1 | CR | Nicht unterstützt | hoch | Nur Animation. |
CSS Easing Functions (css_easing_2) | 2 | ED | Nicht unterstützt | hoch | Nur Animation. |
Web Animations (web_animations_1) | 1 | WD | Nicht unterstützt | hoch | Browser-Laufzeit-API. |
Web Animations (web_animations_2) | 2 | ED | Nicht unterstützt | hoch | Browser-Laufzeit-API. |
Web Animations CSS Integration (web_animations_css_integration) | 1 | ED | Nicht unterstützt | hoch | Browser-Laufzeit-API. |
Animation Triggers (animation_triggers) | 1 | ED | Nicht unterstützt | hoch | Nur Animation. |
Pointer-driven Animations (pointer_animations_1) | 1 | ED | Nicht unterstützt | hoch | Laufzeit-Eingabeevent; nicht zutreffend. |
Scroll-driven Animations (scroll_animations_1) | 1 | ED | Nicht unterstützt | hoch | Scroll-Laufzeit; nicht zutreffend. |
CSS Animation Worklet (css_animation_worklet) | 1 | ED | Nicht unterstützt | hoch | Browser-Worklet-Laufzeit. |
| W3C-Modul | Stufe | W3C | Status | Konfidenz | Nachweis |
|---|
CSS Anchor Positioning (css_anchor_position_1) | 1 | WD | Unbekannt | niedrig | Kein Quellcode für anchor(). |
CSS Anchor Positioning (css_anchor_position_2) | 2 | ED | Unbekannt | niedrig | Kein Nachweis. |
CSS Highlight API (css_highlight_api_1) | 1 | WD | Nicht unterstützt | hoch | Browser-Laufzeit-API. |
CSS Properties and Values API (css_properties_values_api_1) | 1 | CR | Nicht unterstützt | hoch | Browser-Laufzeit-API. |
CSS Painting API (css_paint_api_1) | 1 | WD | Nicht unterstützt | hoch | Browser-Worklet-Laufzeit. |
CSS Typed OM (css_typed_om_1) | 1 | WD | Nicht unterstützt | hoch | Browser-Laufzeit-API. |
CSSOM (cssom_1) | 1 | WD | Nicht unterstützt | hoch | Browser-DOM-API. |
CSSOM View (cssom_view_1) | 1 | WD | Nicht unterstützt | hoch | Browser-DOM-API. |
CSS Will Change (css_will_change_1) | 1 | CR | Nicht unterstützt | hoch | Browser-Optimierungshinweis. |
CSS Linked Parameters (css_link_params_1) | 1 | ED | Unbekannt | niedrig | Kein Nachweis. |
CSS Line Grid (css_line_grid_1) | 1 | NOTE | Unbekannt | niedrig | Kein Nachweis. |
CSS Rhythmic Sizing (css_rhythm_1) | 1 | ED | Unbekannt | niedrig | Kein Nachweis. |
CSS Round Display (css_round_display_1) | 1 | ED | Nicht unterstützt | hoch | Round-Display-Ziel nicht zutreffend. |
CSS Shaders (css_shaders_1) | 1 | NOTE | Nicht unterstützt | hoch | Von W3C entfernt. |
CSS Viewport (css_viewport_1) | 1 | NOTE | Nicht unterstützt | hoch | UA-Viewport; nicht zutreffend. |
| W3C-Modul | Stufe | W3C | Status | Konfidenz | Nachweis |
|---|
Media Queries (mediaqueries_3) | 3 | REC | Beansprucht | mittel | CssParser/ + Media-Query-Coverage-Tests; keine eigene Fixture. Backfill #625. |
Media Queries (mediaqueries_4) | 4 | CR | Beansprucht | mittel | @media print/prefers-color-scheme geparst; Range-Syntax ausstehend. |
Media Queries (mediaqueries_5) | 5 | WD | Unbekannt | niedrig | Kein Nachweis. |
| W3C-Modul | Stufe | W3C | Status | Konfidenz | Nachweis |
|---|
CSS Level 2 (css_2_1) | 2.1 | REC | Beansprucht | niedrig | Über src/Html/ verteilte Baseline; keine einzelne Conformance-Fixture. |
CSS Level 2.2 (css_2_2) | 2.2 | NOTE | Beansprucht | niedrig | Verteilte Baseline; keine eigene Fixture. |
CSS Snapshot 2026 (css_snapshot_2026) | snapshot | NOTE | Beansprucht | niedrig | Index der anderen Module; der Status ist das Aggregat der referenzierten Zeilen. |
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-Modul | W3C | Status | Konfidenz | Wo |
|---|
W3C SVG 1.1 (svg_1_1) | REC | Beansprucht | niedrig | Inline-SVG-Paint-Teilmenge in Renderer/PaintCommand/; keine CSS-Matrix-Fixture. |
W3C SVG 2.0 (svg_2_0) | CR | Unbekannt | niedrig | Betrifft die Premium-Pipeline; kein Core-Nachweis. |
W3C PNG 3rd Edition (png_3) | WD | Beansprucht | niedrig | PNG-Decode im Modul Graphics/ (außerhalb von HTML/CSS). |
W3C WOFF 1.0 (woff_1_0) | REC | Beansprucht | niedrig | WOFF über den Font-Stack; keine CSS-Matrix-Fixture. |
W3C WOFF 2.0 (woff_2_0) | REC | Beansprucht | niedrig | WOFF2 über den Font-Stack; keine CSS-Matrix-Fixture. |
W3C WCAG 2.2 (wcag_2_2) | REC | Verifiziert | mittel | src/Html/Aam/, tests/Unit/Accessibility/HtmlAam/ (4 Dateien) — PDF/UA-2. |
W3C WAI-ARIA 1.2 (wai_aria_1_2) | REC | Verifiziert | mittel | tests/Unit/Accessibility/HtmlAam/ (4 Dateien). |
W3C ARIA Bundle (w3c_aria_bundle) | REC | Beansprucht | niedrig | Guidance-Bundle; der konkrete Nachweis ist die WAI-ARIA-Zeile. |
W3C AAM Bundle (w3c_aam_bundle) | NOTE | Beansprucht | niedrig | Bundle-Verweis; der Nachweis sind die WAI-ARIA/WCAG-Zeilen. |
W3C ATAG 2.0 (atag_2_0) | REC | Nicht unterstützt | hoch | Barrierefreiheit von Authoring-Tools; nicht zutreffend. |
W3C XSL 1.1 (xsl_1_1) | REC | Nicht unterstützt | hoch | XSL-FO-Parallelformatierungsmodell; nicht implementiert. |
W3C XSD 1.1 Part 1 (xsd_1_1_part1) | REC | Nicht unterstützt | hoch | XML-Schema; nicht zutreffend. |
W3C XSLT 3.0 (xslt_3_0) | REC | Nicht unterstützt | hoch | Transformationssprache; nicht zutreffend. |
Resize Observer (resize_observer_1) | CR | Nicht unterstützt | hoch | Browser-Laufzeit-API. |
Damit eine Zeile von claimed → verified aufsteigt:
- 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.
- Die Fixture sichert das Verhalten von NextPDF gegen die W3C-Grammatik für die primären Properties des Moduls ab.
- Die Fixture besteht deterministisch unter einem
NextPDF\Testing\ReproducibilityProfile (structural für Assertion-Fixtures; bitwise erst, sobald Golden-PDF-Baselines pro Modul existieren).
- 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 unknown → claimed aufsteigt:
- Ein Audit-Durchlauf bestätigt einen Implementierungsnachweis in
src/Html/ (den Pfad in evidence + notes nennen).
- Ein Backfill-Issue wird eröffnet und in
backfill_issue verlinkt.
- 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