Przejdź do głównej zawartości
getnextpdf.com

Macierz obsługi CSS

NextPDF implementuje renderowanie kaskadowych arkuszy stylów (CSS) zgodnie z opublikowanymi specyfikacjami World Wide Web Consortium (W3C). Ta strona pozwala przejrzeć każdy moduł CSS w korpusie specyfikacji systemu NextPDF oraz zweryfikowany podczas audytu prawdziwości stan jego obsługi w potoku renderowania.

Ta rewizja wynika z audytu prawdziwości Wave 4 B2 (sekcja planu 4.4). Wcześniejsza rewizja strukturalna używała niezweryfikowanych odznak zastępczych. Audyt ponownie ocenił każdy wiersz na podstawie rzeczywistych dowodów znajdujących się na dysku (src/Html/, tests/, tests/Wpt/corpus/), rekordów decyzji architektonicznych (ADR) dotyczących zmian niezgodnych wstecz w v8/v9 oraz wewnętrznego audytu pokrycia właściwości CSS. Audyt przedkładał rzetelność nad pokrycie: gdy dowody uzasadniały niższą odznakę, była ona obniżana.

Cztery odznaki klasyfikują każdy wiersz w kontrakcie weryfikacji:

  • Zweryfikowany — implementacja w src/Html/ oraz istotny, dedykowany, zautomatyzowany zestaw testowy: albo zestaw na poziomie właściwości złożony z trzech lub więcej plików w tests/Unit/Html/<Module>/, albo fragment korpusu Web Platform Tests (WPT) liczący pięćdziesiąt lub więcej fikstur w tests/Wpt/corpus/. Nie podłączono jeszcze żadnej bazowej linii odniesienia w formacie Portable Document Format (PDF) dla poszczególnych modułów CSS, dlatego zweryfikowane wiersze korzystają z profilu odtwarzalności structural (równoważność asercji PHPUnit), nigdy bitwise.
  • Deklarowany — zachowanie modułu jest zaimplementowane w src/Html/ (ze wskazaną ścieżką źródłową), ale dedykowany zestaw testowy ma ograniczony zakres, jest współdzielony albo go nie ma. Każdy deklarowany wiersz z konkretną implementacją ma zgłoszenie uzupełniające.
  • Nieobsługiwany — potok renderowania statycznego PDF nie obejmuje tego modułu: interfejsów API runtime/browser-only, środowisk wykonawczych scrolling/animation ani prac wycofanych przez W3C. Wiersz podaje powód.
  • Nieznany — moduł znajduje się w korpusie, ale audyt nie znalazł żadnych dowodów implementacji ani testów. Audyt nigdy nie zawyżał statusu na podstawie domysłów, aby poprawić wynik.

Odznaka partial z rewizji strukturalnej została wycofana: każdy wcześniejszy wiersz partial ponownie oceniono jako claimed (implementacja obecna, brak dedykowanego zestawu testowego) albo verified.

OdznakaZnaczenie
verifiedsrc/Html/ + dedykowany zestaw testowy (≥3 plików) lub fragment WPT (≥50 fikstur); przechodzi deterministycznie w profilu structural.
claimedDowody implementacji w src/Html/, brak dedykowanego zestawu testowego. Powiązane zgłoszenie uzupełniające.
not-supportedJawnie wykluczony z zakresu statycznego PDF. Powód podany.
unknownBrak rozstrzygających dowodów. Statusu nie zawyżano na podstawie domysłów.

Kolumna Pewność to rzetelny, niebinarny sygnał dotyczący dowodów stojących za podaną odznaką (high / medium / low). Jest niezależna od samej odznaki.

NextPDF obsługuje wymienione poniżej moduły CSS na wskazanych poziomach. Wiersze Zweryfikowany mają dedykowany, zautomatyzowany zestaw testowy lub istotny fragment korpusu WPT, który weryfikuje zachowanie systemu NextPDF i przechodzi deterministycznie w profilu odtwarzalności structural. Wiersze Deklarowany mają dowody implementacji w src/Html/, ale nie mają jeszcze dedykowanego zestawu testowego; każdy taki wiersz jest śledzony przez zgłoszenie uzupełniające w ramach zgłoszenia śledzącego #614. Wiersze Nieobsługiwany dokumentują jawne granice zakresu dla docelowego statycznego PDF.

Żaden wiersz nie deklaruje odtwarzalności na poziomie bajtów, ponieważ w tej rewizji nie ma bazowej linii odniesienia PDF dla poszczególnych modułów CSS. Kontrakt weryfikacji zabrania pustych wierszy: gdy nie da się ustalić obsługi, wiersz otrzymuje status unknown.

StatusModułyPewność (high / medium / low)
Zweryfikowany128 / 4 / 0
Deklarowany490 / 35 / 14
Nieobsługiwany6762 / 5 / 0
Nieznany390 / 0 / 39
Łącznie16770 / 44 / 53

Blok summary z rewizji strukturalnej był wewnętrznie niespójny: deklarował sumę 148 (18 verified / 11 partial / 11 claimed / 53 not-supported / 55 unknown), podczas gdy plik zawierał 167 wierszy modułów, a ich etykiety sumowały się do 34 verified / 13 partial / 13 claimed / 68 not-supported / 39 unknown. Ten audyt skorygował sumę do rzeczywistych 167 i ponownie ocenił każdy wiersz na podstawie dowodów znajdujących się na dysku: liczba Verified spadła z deklarowanych 34 do potwierdzonych 12. To obniżenie jest poprawnym wynikiem rzetelnego audytu, a nie regresją. Pełna różnica before/after znajduje się w dołączonym do repozytorium pliku _css-matrix-truth-report.md.

Rewizja strukturalna błędnie oznaczyła trzy działające funkcje jako usunięte lub nieobsługiwane. ADR-027 i ADR-028 usunęły jedynie markery włączania (opt-in) wyliczenia ExperimentalFeature; funkcje pozostają DZIAŁAJĄCE i domyślnie włączone:

  • Subgrid (css_grid_2) — DZIAŁA; flaga CssFeatureFlags::$layoutSubgrid jest domyślnie włączona. Został błędnie oznaczony jako „subgrid hard-removed v9.0.0”.
  • Zapytania @container (css_contain_2) — dyspozytor czasu wykonania pozostał jawnie niezmieniony przez ADR-028; zachowano możliwość wyłączenia flagą (opt-out). Został błędnie oznaczony jako „hard-removed v9.0.0”.
  • writing-mode: vertical-lr (css_writing_modes_3) — domyślnie włączone i stabilne od v7.0.0; ADR-027 sfinalizował jedynie handshake wycofania. Został błędnie oznaczony jako „deprecated/removed v8.0.0”.

Zestaw wierszy dla poszczególnych modułów w formacie czytelnym maszynowo znajduje się w dołączonym do repozytorium pliku css-support-matrix-data.yaml, który jest źródłem prawdy. Ta strona jest jego wersją czytelną dla człowieka, pogrupowaną według kategorii. Komponenty Astro korzystają z danych YAML bezpośrednio podczas budowania dokumentacji.

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

Te moduły W3C pojawiają się w korpusie, ale znajdują się poza potokiem renderowania CSS. Gdy ma to zastosowanie, odsyłają do nich odpowiednie strony funkcji.

Moduł W3CW3CStatusPewnośćGdzie
W3C SVG 1.1 (svg_1_1)RECDeklarowanylowPodzbiór malowania wbudowanego SVG w Renderer/PaintCommand/; brak zestawu testowego dla macierzy CSS.
W3C SVG 2.0 (svg_2_0)CRNieznanylowKwestia potoku Premium; brak dowodów w wersji core.
W3C PNG 3rd Edition (png_3)WDDeklarowanylowDekodowanie PNG w module Graphics/ (poza HTML/CSS).
W3C WOFF 1.0 (woff_1_0)RECDeklarowanylowWOFF przez stos Font; brak zestawu testowego dla macierzy CSS.
W3C WOFF 2.0 (woff_2_0)RECDeklarowanylowWOFF2 przez stos Font; brak zestawu testowego dla macierzy CSS.
W3C WCAG 2.2 (wcag_2_2)RECZweryfikowanymediumsrc/Html/Aam/, tests/Unit/Accessibility/HtmlAam/ (4 pliki) — PDF/UA-2.
W3C WAI-ARIA 1.2 (wai_aria_1_2)RECZweryfikowanymediumtests/Unit/Accessibility/HtmlAam/ (4 pliki).
W3C ARIA Bundle (w3c_aria_bundle)RECDeklarowanylowPakiet wytycznych; konkretnym dowodem jest wiersz WAI-ARIA.
W3C AAM Bundle (w3c_aam_bundle)NOTEDeklarowanylowWskaźnik pakietu; dowody znajdują się w wierszach WAI-ARIA/WCAG.
W3C ATAG 2.0 (atag_2_0)RECNieobsługiwanyhighDostępność narzędzi autorskich; nie dotyczy.
W3C XSL 1.1 (xsl_1_1)RECNieobsługiwanyhighModel formatowania równoległego XSL-FO; niezaimplementowany.
W3C XSD 1.1 Part 1 (xsd_1_1_part1)RECNieobsługiwanyhighSchemat XML; nie dotyczy.
W3C XSLT 3.0 (xslt_3_0)RECNieobsługiwanyhighJęzyk transformacji; nie dotyczy.
Resize Observer (resize_observer_1)CRNieobsługiwanyhighInterfejs API czasu wykonania przeglądarki.

Aby wiersz awansował z claimedverified:

  1. Istnieje dedykowany zestaw testowy na poziomie właściwości w tests/Unit/Html/<Module>/ (≥3 plików) albo istotny fragment korpusu WPT (≥50 fikstur) w tests/Wpt/corpus/ zostaje awansowany do testu z asercjami.
  2. Zestaw testowy weryfikuje zachowanie systemu NextPDF względem gramatyki W3C dla głównych właściwości modułu.
  3. Zestaw testowy przechodzi deterministycznie w ramach NextPDF\Testing\ReproducibilityProfile (structural dla fikstur z asercjami; bitwise dopiero gdy istnieją wzorcowe linie bazowe PDF dla poszczególnych modułów).
  4. Wartość nextpdf_status wiersza w dołączonym do repozytorium pliku css-support-matrix-data.yaml zmienia się na verified, wraz z aktualizacją fixture_path, repro_profile oraz confidence.

Aby wiersz awansował z unknownclaimed:

  1. Audyt potwierdza dowody implementacji w src/Html/ (wskaż ścieżkę w evidence + notes).
  2. Zostaje otwarte zgłoszenie uzupełniające i powiązane w backfill_issue.
  • HTML: podsystem renderowania HTML+CSS do PDF — silnik stojący za tymi możliwościami, w tym uwagi o zachowaniu tabel, flex, gradientów i paginacji.
  • Nieobsługiwane funkcje CSS i ich obejścia — konkretne granice dla poszczególnych zachowań.
  • Renderowanie arabskiego HTML od prawej do lewej — obsługa kierunku od prawej do lewej i dwukierunkowego oraz jej obecne granice.
  • Dzielenie dużej tabeli HTML na strony — paginacja tabel między stronami.
  • Raport prawdziwości macierzy CSS (_css-matrix-truth-report.md, w repozytorium) — różnice audytu before/after, rozkład pewności, dziennik obniżeń.
  • Audyt pokrycia właściwości CSS (architecture/css-property-coverage-audit.md, w repozytorium) — wewnętrzny czterostanowy audyt właściwości (Policy/Parsed/Applied/Rendered).
  • ADR-027 v8.0.0 BREAKING (architecture/adr/ADR-027-v8-breaking.md, w repozytorium) — finalizacja handshake wycofania vertical-lr (funkcja zachowana).
  • ADR-028 v9.0.0 BREAKING (architecture/adr/ADR-028-v9-breaking.md, w repozytorium) — usunięcie markerów wyliczenia Grid/Subgrid/@container (funkcje zachowane).
  • Zgłoszenie śledzące uzupełnienia: https://github.com/nextpdf-labs/nextpdf/issues/614