Salta ai contenuti
getnextpdf.com

Matrice di supporto CSS

NextPDF implementa il rendering CSS secondo le specifiche pubblicate dal W3C. Questa pagina elenca tutti i moduli CSS presenti nel corpus di specifiche di NextPDF e registra, per ciascun modulo, lo stato di supporto con audit di veridicità nella pipeline di rendering.

Questa revisione deriva dal truth audit della Wave 4 B2 (sezione 4.4 del piano). I badge della precedente revisione strutturale erano segnaposto non verificati. Ogni riga di questa pagina è stata rivalutata rispetto alle evidenze reali su disco (src/Html/, tests/, tests/Wpt/corpus/), agli ADR delle modifiche incompatibili v8/v9 e all’audit interno della copertura delle proprietà CSS. L’onestà ha avuto la precedenza sulla copertura: quando l’audit ha abbassato un badge, il badge è stato effettivamente abbassato.

Secondo il contratto di verifica, quattro badge classificano ciascuna riga:

  • Verified — implementazione in src/Html/ più una fixture automatizzata dedicata e sostanziale: una suite a livello di proprietà di tre o più file in tests/Unit/Html/<Module>/, oppure uno shard del corpus Web Platform Tests di cinquanta o più fixture in tests/Wpt/corpus/. Non è ancora collegata alcuna baseline PDF golden a un singolo modulo CSS; per questo le righe verified utilizzano il profilo di riproducibilità structural (equivalenza di asserzione PHPUnit), mai bitwise.
  • Claimed — il comportamento del modulo è implementato in src/Html/ (con percorso del sorgente citato), ma la fixture dedicata è esigua, condivisa o assente. Ogni riga claimed con un’implementazione concreta ha una issue di backfill.
  • Not supported — fuori ambito per la pipeline di rendering PDF statico. API esclusivamente runtime/browser, runtime di scrolling/animation e lavori dismessi dal W3C. Il motivo è registrato.
  • Unknown — il modulo è presente nel corpus, ma non è stato possibile determinare alcuna evidenza di implementazione o di fixture. L’audit non ha mai formulato ipotesi al rialzo per migliorare il conteggio.

Il badge partial della revisione strutturale è stato ritirato: ogni riga precedentemente partial è stata rivalutata come claimed (implementazione presente, nessuna fixture dedicata) o verified.

BadgeSignificato
verifiedsrc/Html/ + suite di fixture dedicata (≥3 file) o shard WPT (≥50 fixture); supera i test in modo deterministico con il profilo structural.
claimedEvidenza di implementazione in src/Html/, nessun fixture dedicato. Issue di backfill tracciata.
not-supportedEsplicitamente escluso dall’ambito PDF statico. Motivo registrato.
unknownNessuna evidenza determinabile. Nessuna ipotesi al rialzo.

La colonna Confidence è un indicatore onesto e non binario della solidità dell’evidenza per il badge indicato (high / medium / low), indipendente dal badge stesso.

NextPDF supporta i moduli CSS elencati di seguito ai livelli indicati. Le righe Verified dispongono di una suite di fixture automatizzata dedicata o di uno shard sostanziale del corpus WPT che attesta il comportamento di NextPDF, e superano i test in modo deterministico con il profilo di riproducibilità structural. Le righe Claimed presentano evidenza di implementazione in src/Html/, ma non hanno ancora una fixture dedicata; ciascuna è tracciata da una issue di backfill nella issue di tracciamento #614. Le righe Not supported documentano confini di ambito espliciti per il target PDF statico.

In questa revisione non esiste alcuna baseline PDF golden per singolo modulo CSS; nessuna riga dichiara riproducibilità a livello di byte. Il contratto di verifica vieta le righe vuote: quando il supporto non può essere determinato, la riga è unknown.

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

Il blocco summary della revisione strutturale era internamente incoerente: dichiarava un totale di 148 (18 verified / 11 partial / 11 claimed / 53 not-supported / 55 unknown), ma il file conteneva in realtà 167 righe di modulo le cui etichette sommavano a 34 verified / 13 partial / 13 claimed / 68 not-supported / 39 unknown. Questo audit ha corretto il totale al valore reale di 167 e ha rivalutato ogni riga rispetto alle evidenze su disco: Verified è sceso da un 34 dichiarato a un 12 comprovato. Tale riduzione è il risultato corretto di un audit onesto, non una regressione. Il delta before/after completo si trova nel file sidecar interno al repository _css-matrix-truth-report.md.

La revisione strutturale aveva etichettato erroneamente tre funzionalità attive come rimosse o not-supported. ADR-027 e ADR-028 hanno rimosso dall’enum ExperimentalFeature solo i marcatori opt-in; le funzionalità stesse restano LIVE e attive per impostazione predefinita:

  • Subgrid (css_grid_2) — LIVE; CssFeatureFlags::$layoutSubgrid attivo per impostazione predefinita. Era stato erroneamente etichettato come “subgrid rimosso definitivamente in v9.0.0”.
  • Query @container (css_contain_2) — il dispatch runtime è rimasto esplicitamente invariato con ADR-028; l’opt-out tramite flag è preservato. Era stato erroneamente etichettato come “rimosso definitivamente in v9.0.0”.
  • writing-mode: vertical-lr (css_writing_modes_3) — attivo per impostazione predefinita e Stable da v7.0.0; ADR-027 ha promosso solo l’handshake di deprecazione. Era stato erroneamente etichettato come “deprecato/rimosso in v8.0.0”.

Il set machine-readable delle righe per modulo risiede nel file interno al repository css-support-matrix-data.yaml ed è la fonte di verità. Questa pagina è la proiezione human-readable, raggruppata per categoria. I componenti Astro usano direttamente il file YAML durante la build della documentazione.

Modulo W3CLivelloW3CStatoConfidence
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
Modulo W3CLivelloW3CStatoConfidence
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
Modulo W3CLivelloW3CStatoConfidence
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
Modulo W3CLivelloW3CStatoConfidence
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
Modulo W3CLivelloW3CStatoConfidence
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
Modulo W3CLivelloW3CStatoConfidence
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
Modulo W3CLivelloW3CStatoConfidence
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
Modulo W3CLivelloW3CStatoConfidence
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
Modulo W3CLivelloW3CStatoConfidence
CSS Table (css_tables_3)3WDVerifiedhigh
Modulo W3CLivelloW3CStatoConfidence
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
Modulo W3CLivelloW3CStatoConfidence
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
Modulo W3CLivelloW3CStatoConfidence
Media Queries (mediaqueries_3)3RECClaimedmedium
Media Queries (mediaqueries_4)4CRClaimedmedium
Media Queries (mediaqueries_5)5WDUnknownlow
Modulo W3CLivelloW3CStatoConfidence
CSS Level 2 (css_2_1)2.1RECClaimedlow
CSS Level 2.2 (css_2_2)2.2NOTEClaimedlow
CSS Snapshot 2026 (css_snapshot_2026)snapshotNOTEClaimedlow

Questi moduli W3C compaiono nel corpus, ma sono al di fuori dell’ambito della pipeline di rendering CSS. Sono collegati dalle pagine delle funzionalità corrispondenti, ove applicabile.

Modulo W3CW3CStatoConfidenceDove
W3C SVG 1.1 (svg_1_1)RECClaimedlowSottoinsieme di paint SVG inline in Renderer/PaintCommand/; nessun fixture per la matrice CSS.
W3C SVG 2.0 (svg_2_0)CRUnknownlowParte della pipeline Premium; nessuna evidenza nel core.
W3C PNG 3rd Edition (png_3)WDClaimedlowDecodifica PNG nel modulo Graphics/ (al di fuori di HTML/CSS).
W3C WOFF 1.0 (woff_1_0)RECClaimedlowWOFF tramite lo stack Font; nessun fixture per la matrice CSS.
W3C WOFF 2.0 (woff_2_0)RECClaimedlowWOFF2 tramite lo stack Font; nessun fixture per la matrice CSS.
W3C WCAG 2.2 (wcag_2_2)RECVerifiedmediumsrc/Html/Aam/, tests/Unit/Accessibility/HtmlAam/ (4 file) — PDF/UA-2.
W3C WAI-ARIA 1.2 (wai_aria_1_2)RECVerifiedmediumtests/Unit/Accessibility/HtmlAam/ (4 file).
W3C ARIA Bundle (w3c_aria_bundle)RECClaimedlowBundle di linee guida; l’evidenza concreta è la riga WAI-ARIA.
W3C AAM Bundle (w3c_aam_bundle)NOTEClaimedlowPuntatore al bundle; l’evidenza è nelle righe WAI-ARIA/WCAG.
W3C ATAG 2.0 (atag_2_0)RECNot supportedhighAccessibilità degli strumenti di authoring; non applicabile.
W3C XSL 1.1 (xsl_1_1)RECNot supportedhighModello di formattazione parallelo XSL-FO; non implementato.
W3C XSD 1.1 Part 1 (xsd_1_1_part1)RECNot supportedhighSchema XML; non applicabile.
W3C XSLT 3.0 (xslt_3_0)RECNot supportedhighLinguaggio di trasformazione; non applicabile.
Resize Observer (resize_observer_1)CRNot supportedhighAPI runtime del browser.

Perché una riga passi da claimed a → verified:

  1. Esiste una suite di fixture dedicata a livello di proprietà in tests/Unit/Html/<Module>/ (≥3 file) oppure uno shard sostanziale del corpus WPT (≥50 fixture) in tests/Wpt/corpus/ viene promosso in un test con asserzioni.
  2. Il fixture verifica il comportamento di NextPDF rispetto alla grammatica W3C per le proprietà principali del modulo.
  3. La fixture supera i test in modo deterministico con un NextPDF\Testing\ReproducibilityProfile (structural per le fixture con asserzioni; bitwise solo una volta che esistono le baseline PDF golden per il singolo modulo).
  4. Il valore nextpdf_status della riga nel file interno al repository css-support-matrix-data.yaml passa a verified con l’aggiornamento di fixture_path, repro_profile e confidence.

Perché una riga passi da unknown a → claimed:

  1. Una fase di audit conferma l’evidenza di implementazione in src/Html/ (con il percorso citato in evidence + notes).
  2. Viene aperta una issue di backfill e collegata in backfill_issue.