Ga naar inhoud
getnextpdf.com

CSS-ondersteuningsmatrix

NextPDF implementeert de weergave van Cascading Style Sheets (CSS) op basis van gepubliceerde specificaties van het World Wide Web Consortium (W3C). Gebruik deze pagina om elke CSS-module in het specificatiecorpus van NextPDF op te zoeken, samen met de door audit bevestigde ondersteuningsstatus van die module in de weergavepijplijn.

Deze revisie komt voort uit de waarheidsaudit van Wave 4 B2 (plansectie 4.4). De vorige structurele revisie gebruikte niet-geverifieerde tijdelijke badges. De audit beoordeelde elke rij opnieuw aan de hand van daadwerkelijk bewijs op schijf (src/Html/, tests/, tests/Wpt/corpus/), de v8/v9 architecture decision records (ADR’s) voor brekende wijzigingen en de interne audit van CSS-eigenschapdekking. De audit gaf voorrang aan eerlijkheid boven dekking: wanneer het bewijs tot een lagere badge leidde, werd die badge verlaagd.

Vier badges classificeren elke rij onder het verificatiecontract:

  • Verified — Implementatie in src/Html/ plus een substantiële, specifieke geautomatiseerde fixture: ofwel een suite op eigenschapsniveau van drie of meer bestanden onder tests/Unit/Html/<Module>/, of een corpusshard met Web Platform Tests (WPT) van vijftig of meer fixtures onder tests/Wpt/corpus/. Er is nog geen golden Portable Document Format (PDF)-baseline per CSS-module ingericht, dus geverifieerde rijen gebruiken het reproduceerbaarheidsprofiel structural (PHPUnit-assertie-equivalentie), nooit bitwise.
  • Claimed — Het gedrag van de module is geïmplementeerd in src/Html/ (bronpad vermeld), maar de specifieke fixture is beperkt, gedeeld of afwezig. Elke claimed-rij met een concrete implementatie heeft een backfill-issue.
  • Not supported — De statische-PDF-weergavepijplijn omvat deze module niet: runtime-/browser-only API’s, scrolling-/animation-runtimes en door W3C stopgezet werk. De rij vermeldt de reden.
  • Unknown — De module staat in het corpus, maar de audit vond geen bewijs van implementatie of fixtures. De audit heeft nooit optimistisch ingeschat om het aantal te verhogen.

De badge partial van de structurele revisie is verwijderd: elke voormalige partial-rij is opnieuw beoordeeld als claimed (implementatie aanwezig, geen specifieke fixture) of verified.

BadgeBetekenis
verifiedsrc/Html/ + specifieke fixture-suite (≥3 bestanden) of WPT-shard (≥50 fixtures); slaagt deterministisch onder het profiel structural.
claimedImplementatiebewijs in src/Html/, geen specifieke fixture. Backfill-issue bijgehouden.
not-supportedExpliciet uitgesloten van de statische-PDF-scope. Reden vastgelegd.
unknownGeen vaststelbaar bewijs. Niet optimistisch ingeschat.

De kolom Confidence is een eerlijk, niet-binair signaal voor het bewijs achter de vermelde badge (high / medium / low). Deze kolom staat los van de badge zelf.

NextPDF ondersteunt de hieronder vermelde CSS-modules op de aangegeven niveaus. Verified-rijen hebben een specifieke geautomatiseerde fixture-suite of een substantiële WPT-corpusshard die het gedrag van NextPDF toetst en deterministisch slaagt onder het reproduceerbaarheidsprofiel structural. Claimed-rijen hebben implementatiebewijs in src/Html/, maar nog geen specifieke fixture; elke rij wordt bijgehouden via een backfill-issue onder tracking issue #614. Not supported-rijen documenteren expliciete scopegrenzen voor het statische-PDF-doel.

Geen enkele rij claimt reproduceerbaarheid op byteniveau, omdat deze revisie geen golden PDF-baseline per CSS-module heeft. Het verificatiecontract verbiedt lege rijen: wanneer de ondersteuning niet kan worden vastgesteld, is de rij unknown.

StatusModulesConfidence (high / medium / low)
Verified128 / 4 / 0
Claimed490 / 35 / 14
Not supported6762 / 5 / 0
Unknown390 / 0 / 39
Totaal16770 / 44 / 53

Het summary-blok van de structurele revisie was intern inconsistent: het meldde een totaal van 148 (18 verified / 11 partial / 11 claimed / 53 not-supported / 55 unknown), terwijl het bestand 167 modulerijen bevatte waarvan de labels optelden tot 34 verified / 13 partial / 13 claimed / 68 not-supported / 39 unknown. Deze audit heeft het totaal gecorrigeerd naar het werkelijke aantal van 167 en elke rij opnieuw beoordeeld aan de hand van bewijs op schijf: Verified daalde van een geclaimde 34 naar een onderbouwde 12. Die verlaging is het juiste resultaat van een eerlijke audit, geen regressie. De volledige before/after-delta staat in het in-repo _css-matrix-truth-report.md-sidecarbestand.

De structurele revisie heeft drie actieve mogelijkheden ten onrechte gelabeld als verwijderd of niet-ondersteund. ADR-027 en ADR-028 hebben alleen de opt-in-markeringen van de ExperimentalFeature-enum verwijderd; de mogelijkheden blijven LIVE en zijn standaard ingeschakeld:

  • Subgrid (css_grid_2) — LIVE; CssFeatureFlags::$layoutSubgrid standaard ingeschakeld. Het was ten onrechte gelabeld als „subgrid hard-removed v9.0.0”.
  • @container-query’s (css_contain_2) — runtime-dispatch expliciet ongewijzigd door ADR-028; flag-opt-out behouden. Het was ten onrechte gelabeld als „hard-removed v9.0.0”.
  • writing-mode: vertical-lr (css_writing_modes_3) — standaard ingeschakeld en Stable sinds v7.0.0; ADR-027 promoveerde alleen de deprecation-handshake. Het was ten onrechte gelabeld als „deprecated/removed v8.0.0”.

De machineleesbare set rijen per module bevindt zich in het in-repo css-support-matrix-data.yaml, dat de bron van waarheid is. Deze pagina is de mensleesbare weergave, gegroepeerd per categorie. Astro-componenten verwerken de YAML-gegevens rechtstreeks tijdens de documentatiebuild.

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

Deze W3C-modules komen voor in het corpus, maar vallen buiten de CSS-weergavepijplijn. Waar van toepassing verwijzen de bijbehorende functiepagina’s ernaar.

W3C-moduleW3CStatusConfidenceLocatie
W3C SVG 1.1 (svg_1_1)RECClaimedlowSubset van inline SVG-paint in Renderer/PaintCommand/; geen CSS-matrix-fixture.
W3C SVG 2.0 (svg_2_0)CRUnknownlowOnderdeel van de Premium-pijplijn; geen core-bewijs.
W3C PNG 3rd Edition (png_3)WDClaimedlowPNG-decodering in de module Graphics/ (buiten HTML/CSS).
W3C WOFF 1.0 (woff_1_0)RECClaimedlowWOFF via de Font-stack; geen CSS-matrix-fixture.
W3C WOFF 2.0 (woff_2_0)RECClaimedlowWOFF2 via de Font-stack; geen CSS-matrix-fixture.
W3C WCAG 2.2 (wcag_2_2)RECVerifiedmediumsrc/Html/Aam/, tests/Unit/Accessibility/HtmlAam/ (4 bestanden) — PDF/UA-2.
W3C WAI-ARIA 1.2 (wai_aria_1_2)RECVerifiedmediumtests/Unit/Accessibility/HtmlAam/ (4 bestanden).
W3C ARIA Bundle (w3c_aria_bundle)RECClaimedlowRichtlijnenbundel; het concrete bewijs is de WAI-ARIA-rij.
W3C AAM Bundle (w3c_aam_bundle)NOTEClaimedlowBundelverwijzing; het bewijs zijn de WAI-ARIA/WCAG-rijen.
W3C ATAG 2.0 (atag_2_0)RECNot supportedhighToegankelijkheid van authoring-tools; niet van toepassing.
W3C XSL 1.1 (xsl_1_1)RECNot supportedhighXSL-FO is een parallel opmaakmodel; niet geïmplementeerd.
W3C XSD 1.1 Part 1 (xsd_1_1_part1)RECNot supportedhighXML-schema; niet van toepassing.
W3C XSLT 3.0 (xslt_3_0)RECNot supportedhighTransformatietaal; niet van toepassing.
Resize Observer (resize_observer_1)CRNot supportedhighBrowser-runtime-API.

Voor promotie van een rij van claimedverified geldt:

  1. Er bestaat een specifieke fixture-suite op eigenschapsniveau onder tests/Unit/Html/<Module>/ (≥3 bestanden) of een substantiële WPT-corpusshard (≥50 fixtures) onder tests/Wpt/corpus/ wordt gepromoveerd tot toetsende test.
  2. De fixture toetst het gedrag van NextPDF aan de W3C-grammatica voor de primaire eigenschappen van de module.
  3. De fixture slaagt deterministisch onder een NextPDF\Testing\ReproducibilityProfile (structural voor assertie-fixtures; bitwise pas zodra er golden PDF-baselines per module bestaan).
  4. De nextpdf_status van de rij in het in-repo css-support-matrix-data.yaml wijzigt naar verified, met bijgewerkte fixture_path, repro_profile en confidence.

Voor promotie van een rij van unknownclaimed geldt:

  1. Een auditronde bevestigt implementatiebewijs in src/Html/ (vermeld het pad in evidence + notes).
  2. Er wordt een backfill-issue geopend en gekoppeld in backfill_issue.