Lewati ke konten
getnextpdf.com

Matriks dukungan CSS

NextPDF mengimplementasikan rendering Cascading Style Sheets (CSS) berdasarkan spesifikasi World Wide Web Consortium (W3C) yang diterbitkan. Gunakan halaman ini untuk meninjau setiap modul CSS dalam korpus spesifikasi NextPDF beserta status dukungan modul tersebut yang telah diaudit kebenarannya dalam alur rendering.

Revisi ini berasal dari audit kebenaran Wave 4 B2 (rencana bagian 4.4). Revisi struktural sebelumnya memakai lencana placeholder yang belum diverifikasi. Audit ini menilai ulang setiap baris terhadap bukti nyata di disk (src/Html/, tests/, tests/Wpt/corpus/), catatan keputusan arsitektur (ADR) untuk breaking change v8/v9, dan audit cakupan properti CSS internal. Audit memprioritaskan kejujuran di atas cakupan: jika bukti mengharuskan sebuah lencana diturunkan, lencana tersebut diturunkan.

Empat lencana berikut mengklasifikasikan setiap baris menurut kontrak verifikasi:

  • Terverifikasi — Implementasi di src/Html/ disertai fikstur otomatis khusus yang substantif: baik suite tingkat properti berisi tiga berkas atau lebih di bawah tests/Unit/Html/<Module>/, maupun shard korpus Web Platform Tests (WPT) berisi lima puluh fikstur atau lebih di bawah tests/Wpt/corpus/. Belum tersedia baseline golden Portable Document Format (PDF) per modul CSS, sehingga baris terverifikasi menggunakan profil reproduktibilitas structural (kesetaraan asersi PHPUnit), tidak pernah bitwise.
  • Diklaim — Perilaku modul diimplementasikan di src/Html/ (jalur sumber dikutip), tetapi cakupan fikstur khususnya minim, digunakan bersama, atau tidak ada. Setiap baris berstatus diklaim yang memiliki implementasi konkret memiliki satu isu backfill.
  • Tidak didukung — Alur rendering PDF statis tidak menyertakan modul ini: API runtime/browser-only, runtime scrolling/animation, dan pekerjaan yang telah dihentikan W3C. Baris tersebut mencatat alasannya.
  • Tidak diketahui — Modul ada dalam korpus, tetapi audit tidak menemukan bukti implementasi atau fikstur. Audit tidak pernah menaikkan status berdasarkan tebakan sekadar untuk memperbesar jumlah.

Lencana partial dari revisi struktural tidak lagi digunakan: setiap baris partial lama dinilai ulang menjadi claimed (implementasi ada, tidak ada fikstur khusus) atau verified.

LencanaArti
verifiedsrc/Html/ + suite fikstur khusus (≥3 berkas) atau shard WPT (≥50 fikstur); lulus secara deterministik dengan profil structural.
claimedAda bukti implementasi di src/Html/, tetapi tidak ada fikstur khusus. Isu backfill dilacak.
not-supportedDikecualikan secara eksplisit dari cakupan PDF statis. Alasannya dicatat.
unknownTidak ada bukti yang dapat ditentukan. Status tidak dinaikkan berdasarkan tebakan.

Kolom Keyakinan adalah sinyal non-biner yang secara jujur mencerminkan bukti di balik lencana yang dinyatakan (high / medium / low). Nilai ini independen dari lencana itu sendiri.

NextPDF mendukung modul CSS yang tercantum di bawah ini pada level yang dicatat. Baris Terverifikasi memiliki suite fikstur otomatis khusus atau shard korpus WPT substantif yang menegaskan perilaku NextPDF dan lulus secara deterministik dengan profil reproduktibilitas structural. Baris Diklaim memiliki bukti implementasi di src/Html/, tetapi belum memiliki fikstur khusus; setiap baris dilacak melalui satu isu backfill di bawah isu pelacakan #614. Baris Tidak didukung mendokumentasikan batas cakupan eksplisit untuk target PDF statis.

Tidak ada baris yang mengklaim reproduktibilitas tingkat bita karena revisi ini belum memiliki baseline golden PDF per modul CSS. Kontrak verifikasi melarang baris tanpa status: ketika dukungan tidak dapat ditentukan, baris tersebut ditetapkan sebagai unknown.

StatusModulKeyakinan (high / medium / low)
Terverifikasi128 / 4 / 0
Diklaim490 / 35 / 14
Tidak didukung6762 / 5 / 0
Tidak diketahui390 / 0 / 39
Total16770 / 44 / 53

Pada revisi struktural, blok summary tidak konsisten secara internal: blok itu menyatakan total 148 (18 verified / 11 partial / 11 claimed / 53 not-supported / 55 unknown), sementara berkasnya berisi 167 baris modul dengan label berjumlah 34 verified / 13 partial / 13 claimed / 68 not-supported / 39 unknown. Audit ini mengoreksi totalnya menjadi 167 yang sebenarnya dan menilai ulang setiap baris terhadap bukti di disk: Terverifikasi turun dari 34 yang diklaim menjadi 12 yang terbukti. Pengurangan itu adalah hasil yang benar dari audit yang jujur, bukan regresi. Delta before/after lengkap tersedia dalam sidecar _css-matrix-truth-report.md di dalam repo.

Revisi struktural salah melabeli tiga kapabilitas aktif sebagai dihapus atau tidak didukung. ADR-027 dan ADR-028 hanya menghapus penanda opt-in enum ExperimentalFeature; kapabilitasnya tetap AKTIF dan default-on:

  • Subgrid (css_grid_2) — AKTIF; CssFeatureFlags::$layoutSubgrid aktif secara default. Ini salah dilabeli “subgrid hard-removed v9.0.0”.
  • Kueri @container (css_contain_2) — dispatch runtime secara eksplisit tidak diubah oleh ADR-028; opt-out flag dipertahankan. Ini salah dilabeli “hard-removed v9.0.0”.
  • writing-mode: vertical-lr (css_writing_modes_3) — default-on stabil sejak v7.0.0; ADR-027 hanya mengakhiri handshake deprekasi. Ini salah dilabeli “deprecated/removed v8.0.0”.

Rowset per modul yang dapat dibaca mesin berada dalam css-support-matrix-data.yaml di dalam repo dan menjadi sumber kebenaran. Halaman ini adalah proyeksi yang dapat dibaca manusia dan dikelompokkan menurut kategori. Komponen Astro mengonsumsi data YAML secara langsung selama build dokumentasi.

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

Modul W3C ini muncul dalam korpus tetapi berada di luar alur rendering CSS. Jika berlaku, halaman fitur terkait menautkannya.

Modul W3CW3CStatusKeyakinanLokasi
W3C SVG 1.1 (svg_1_1)RECDiklaimlowSubset paint SVG inline di Renderer/PaintCommand/; tidak ada fikstur matriks CSS.
W3C SVG 2.0 (svg_2_0)CRTidak diketahuilowRanah alur Premium; tidak ada bukti core.
W3C PNG 3rd Edition (png_3)WDDiklaimlowDekode PNG di modul Graphics/ (di luar HTML/CSS).
W3C WOFF 1.0 (woff_1_0)RECDiklaimlowWOFF melalui tumpukan Font; tidak ada fikstur matriks CSS.
W3C WOFF 2.0 (woff_2_0)RECDiklaimlowWOFF2 melalui tumpukan Font; tidak ada fikstur matriks CSS.
W3C WCAG 2.2 (wcag_2_2)RECTerverifikasimediumsrc/Html/Aam/, tests/Unit/Accessibility/HtmlAam/ (4 berkas) — PDF/UA-2.
W3C WAI-ARIA 1.2 (wai_aria_1_2)RECTerverifikasimediumtests/Unit/Accessibility/HtmlAam/ (4 berkas).
W3C ARIA Bundle (w3c_aria_bundle)RECDiklaimlowBundel panduan; bukti konkretnya adalah baris WAI-ARIA.
W3C AAM Bundle (w3c_aam_bundle)NOTEDiklaimlowPenunjuk bundel; buktinya adalah baris WAI-ARIA/WCAG.
W3C ATAG 2.0 (atag_2_0)RECTidak didukunghighAksesibilitas alat authoring; tidak berlaku.
W3C XSL 1.1 (xsl_1_1)RECTidak didukunghighModel pemformatan paralel XSL-FO; tidak diimplementasikan.
W3C XSD 1.1 Part 1 (xsd_1_1_part1)RECTidak didukunghighSkema XML; tidak berlaku.
W3C XSLT 3.0 (xslt_3_0)RECTidak didukunghighBahasa transformasi; tidak berlaku.
Resize Observer (resize_observer_1)CRTidak didukunghighAPI runtime peramban.

Agar sebuah baris dapat naik dari claimedverified:

  1. Suite fikstur tingkat-properti khusus berada di bawah tests/Unit/Html/<Module>/ (≥3 berkas) atau shard korpus WPT substantif (≥50 fikstur) di bawah tests/Wpt/corpus/ dinaikkan menjadi uji yang melakukan asersi.
  2. Fikstur mengasersi perilaku NextPDF terhadap tata bahasa W3C untuk properti utama modul tersebut.
  3. Fikstur lulus secara deterministik di bawah NextPDF\Testing\ReproducibilityProfile (structural untuk fikstur asersi; bitwise hanya setelah baseline golden PDF per modul tersedia).
  4. nextpdf_status baris tersebut dalam css-support-matrix-data.yaml di dalam repo berubah menjadi verified, dengan fixture_path, repro_profile, dan confidence diperbarui.

Agar sebuah baris dapat naik dari unknownclaimed:

  1. Sebuah pass audit mengonfirmasi bukti implementasi di src/Html/ (jalurnya dikutip dalam evidence + notes).
  2. Sebuah isu backfill dibuka dan ditautkan dalam backfill_issue.
  • HTML: subsistem rendering HTML+CSS ke PDF — mesin di balik kapabilitas ini, termasuk catatan perilaku tabel, flex, gradien, dan paginasi.
  • Fitur CSS yang tidak didukung dan solusinya — batas spesifik per perilaku.
  • Merender HTML Arab kanan-ke-kiri — dukungan kanan-ke-kiri dan dwiarah serta batasannya saat ini.
  • Memaginasi tabel HTML besar ke beberapa halaman — paginasi tabel antar halaman.
  • Laporan kebenaran matriks CSS (_css-matrix-truth-report.md, di dalam repo) — delta audit before/after, distribusi keyakinan, log deflasi.
  • Audit cakupan properti CSS (architecture/css-property-coverage-audit.md, di dalam repo) — audit empat keadaan per properti internal (Policy/Parsed/Applied/Rendered).
  • ADR-027 v8.0.0 BREAKING (architecture/adr/ADR-027-v8-breaking.md, di dalam repo) — pengakhiran handshake-deprekasi vertical-lr (kapabilitas dipertahankan).
  • ADR-028 v9.0.0 BREAKING (architecture/adr/ADR-028-v9-breaking.md, di dalam repo) — penghapusan penanda-enum Grid/Subgrid/@container (kapabilitas dipertahankan).
  • Isu pelacakan backfill: https://github.com/nextpdf-labs/nextpdf/issues/614