Перейти к содержимому
getnextpdf.com

Матрица поддержки CSS

NextPDF реализует отрисовку каскадных таблиц стилей (CSS) в соответствии с опубликованными спецификациями World Wide Web Consortium (W3C). На этой странице вы можете просмотреть каждый CSS-модуль из корпуса спецификаций NextPDF и фактически проверенное состояние его поддержки в конвейере отрисовки.

Эта редакция подготовлена по итогам фактологической проверки этапа Wave 4 B2 (раздел плана 4.4). Предыдущая структурная редакция использовала непроверенные временные значки. Проверка переоценила каждую строку по фактическим данным на диске (src/Html/, tests/, tests/Wpt/corpus/), записям архитектурных решений (ADR) о критических изменениях v8/v9 и внутренней проверке покрытия CSS-свойств. В ходе проверки достоверность была важнее охвата: если факты понижали значок, он понижался.

Согласно контракту верификации каждая строка классифицируется одним из четырёх значков:

  • Проверено — реализация в src/Html/ плюс содержательный отдельный набор автоматических тестов: либо набор проверок на уровне свойств из трёх и более файлов в tests/Unit/Html/<Module>/, либо срез корпуса Web Platform Tests (WPT) из пятидесяти и более фикстур в tests/Wpt/corpus/. Эталонный PDF (Portable Document Format) для отдельных CSS-модулей пока не подключён, поэтому проверенные строки используют профиль воспроизводимости structural (эквивалентность проверок PHPUnit), но не bitwise.
  • Заявлено — поведение модуля реализовано в src/Html/ (путь к исходному коду указан), но отдельный тестовый набор слишком мал, общий или отсутствует. Для каждой заявленной строки с конкретной реализацией заведена задача на доработку.
  • Не поддерживается — модуль не входит в конвейер отрисовки статичного PDF: API runtime/browser-only, runtime-среды scrolling/animation и прекращённые в W3C направления работы. В строке зафиксирована причина.
  • Неизвестно — модуль присутствует в корпусе, но проверка не нашла фактов реализации или тестового набора. Оценка никогда не завышалась ради показателей.

Значок partial структурной редакции упразднён: каждая прежняя строка с частичной поддержкой переоценена как claimed (реализация присутствует, отдельного тестового набора нет) или verified.

ЗначокЗначение
verifiedsrc/Html/ + отдельный тестовый набор (≥3 файлов) или срез WPT (≥50 фикстур); проходит детерминированно в профиле structural.
claimedЕсть факты реализации в src/Html/, отдельного тестового набора нет. Задача на доработку отслеживается.
not-supportedЯвно исключено из области статичного PDF. Причина зафиксирована.
unknownОпределимых фактов нет. Оценка не завышалась.

Столбец Уверенность — честный небинарный сигнал о фактической базе указанного значка (high / medium / low). Он не зависит от самого значка.

NextPDF поддерживает перечисленные ниже CSS-модули на указанных уровнях. Проверенные строки имеют отдельный набор автоматических тестов или содержательный срез корпуса WPT, который проверяет поведение NextPDF и проходит детерминированно в профиле воспроизводимости structural. Для заявленных строк есть факты реализации в src/Html/, но пока нет отдельного тестового набора; каждая строка отслеживается задачей на доработку в рамках отслеживающей задачи #614. Неподдерживаемые строки документируют явные границы области для целевого статичного PDF.

Ни одна строка не заявляет о воспроизводимости на уровне байтов, поскольку в этой редакции нет эталонного PDF для отдельных CSS-модулей. Контракт верификации запрещает пустые строки: если поддержку определить нельзя, строка получает статус unknown.

СтатусМодулиУверенность (high / medium / low)
Проверено128 / 4 / 0
Заявлено490 / 35 / 14
Не поддерживается6762 / 5 / 0
Неизвестно390 / 0 / 39
Итого16770 / 44 / 53

Блок summary структурной редакции содержал внутреннее противоречие: в нём было указано 148 всего (18 verified / 11 partial / 11 claimed / 53 not-supported / 55 unknown), тогда как файл содержал 167 строк модулей, а их метки давали в сумме 34 verified / 13 partial / 13 claimed / 68 not-supported / 39 unknown. Эта проверка исправила итог до фактических 167 и переоценила каждую строку по данным на диске: число проверенных снизилось с заявленных 34 до обоснованных 12. Это снижение — корректный результат честной проверки, а не регресс. Полная разница before/after приведена в сопутствующем файле репозитория _css-matrix-truth-report.md.

Структурная редакция ошибочно пометила три работающие возможности как удалённые или неподдерживаемые. ADR-027 и ADR-028 удалили из перечисления ExperimentalFeature только маркеры включения; сами возможности по-прежнему ДЕЙСТВУЮТ и включены по умолчанию:

  • Subgrid (css_grid_2) — ДЕЙСТВУЕТ; CssFeatureFlags::$layoutSubgrid включён по умолчанию. Возможность была ошибочно помечена как “subgrid жёстко удалён в v9.0.0”.
  • @container запросы (css_contain_2) — диспетчеризация во время выполнения явно не изменена в ADR-028; возможность отключения флагом сохранена. Возможность была ошибочно помечена как “жёстко удалена в v9.0.0”.
  • writing-mode: vertical-lr (css_writing_modes_3) — включён по умолчанию и стабилен начиная с v7.0.0; ADR-027 завершил только процедуру вывода из эксплуатации. Возможность была ошибочно помечена как “устарела/удалена в v8.0.0”.

Машиночитаемый набор строк модулей находится в файле репозитория css-support-matrix-data.yaml, который служит источником истины. Эта страница — человекочитаемая проекция, сгруппированная по категориям. Компоненты Astro используют данные YAML напрямую во время сборки документации.

Модуль W3CУровеньЭтап W3CСтатусУверенность
CSS Flexible Box Layout — гибкая блочная раскладка (css_flexbox_1)1CRПровереновысокая
CSS Grid Layout (css_grid_1)1RECПровереновысокая
CSS Grid Layout — Subgrid — сеточная раскладка, вложенная сетка (css_grid_2)2CRЗаявленосредняя
CSS Grid Layout — Masonry — сеточная раскладка, кладочная раскладка (css_grid_3)3EDНе поддерживаетсявысокая
CSS Display (css_display_3)3CRЗаявленосредняя
CSS Display (css_display_4)4EDНеизвестнонизкая
CSS Positioned Layout (css_position_3)3WDПровереновысокая
CSS Positioned Layout (css_position_4)4EDНеизвестнонизкая
CSS Box Alignment (css_align_3)3WDЗаявленосредняя
CSS Box Sizing (css_sizing_3)3CRЗаявленонизкая
CSS Box Sizing (css_sizing_4)4EDНеизвестнонизкая
CSS Box Model (css_box_3)3WDЗаявленосредняя
CSS Box Model (css_box_4)4EDНеизвестнонизкая
CSS Multi-column Layout — многоколоночная раскладка (css_multicol_1)1CRЗаявленосредняя
CSS Multi-column Layout — многоколоночная раскладка (css_multicol_2)2EDНеизвестнонизкая
CSS Fragmentation (css_break_3)3CRПровереносредняя
CSS Fragmentation (css_break_4)4EDНеизвестнонизкая
CSS Containment (css_contain_1)1RECНе поддерживаетсясредняя
CSS Containment — @container (css_contain_2)2CRЗаявленонизкая
CSS Containment (css_contain_3)3EDНе поддерживаетсясредняя
CSS Inline Layout (css_inline_3)3WDЗаявленосредняя
CSS Logical Properties (css_logical_1)1WDЗаявленосредняя
CSS Page Floats (css_page_floats_3)3EDНе поддерживаетсявысокая
CSS Pagination Templates (css_page_templates_3)3EDНе поддерживаетсявысокая
CSS Exclusions (css_exclusions_1)1WDНе поддерживаетсявысокая
CSS Regions (css_regions_1)1WDНе поддерживаетсявысокая
CSS Template Layout (css_template_1)1NOTEНе поддерживаетсявысокая
CSS Layout API (css_layout_api_1)1WDНе поддерживаетсявысокая
Модуль W3CУровеньЭтап W3CСтатусУверенность
CSS Backgrounds and Borders — фоны и границы (css_backgrounds_3)3CRЗаявленосредняя
CSS Backgrounds (css_backgrounds_4)4EDНеизвестнонизкая
CSS Borders and Box Decorations — границы и оформление блока (css_borders_4)4EDНеизвестнонизкая
CSS Gap Decorations (css_gaps_1)1EDНеизвестнонизкая
CSS Masking (css_masking_1)1CRНе поддерживаетсясредняя
CSS Shadow Module (css_shadow_1)1EDЗаявленосредняя
CSS Shapes (css_shapes_1)1CRНе поддерживаетсявысокая
CSS Shapes (css_shapes_2)2EDНе поддерживаетсявысокая
Filter Effects (filter_effects_1)1WDНе поддерживаетсявысокая
Filter Effects (filter_effects_2)2EDНе поддерживаетсявысокая
Compositing and Blending — композитинг и наложение (compositing_1)1CRЗаявленосредняя
Compositing (compositing_2)2EDНеизвестнонизкая
CSS Fill and Stroke — заливка и обводка (fill_stroke_3)3EDНеизвестнонизкая
Geometry Interfaces (geometry_1)1CRНе поддерживаетсявысокая
DOMMatrix (matrix)1NOTEНе поддерживаетсявысокая
Motion Path (motion_1)1WDНе поддерживаетсявысокая
Модуль W3CУровеньЭтап W3CСтатусУверенность
CSS Fonts (css_fonts_3)3RECПровереносредняя
CSS Fonts (css_fonts_4)4CRПровереновысокая
CSS Fonts (css_fonts_5)5EDНеизвестнонизкая
CSS Font Loading (css_font_loading_3)3WDНе поддерживаетсявысокая
CSS Text (css_text_3)3CRЗаявленосредняя
CSS Text (css_text_4)4EDЗаявленосредняя
CSS Text Decoration (css_text_decor_3)3CRЗаявленосредняя
CSS Text Decoration (css_text_decor_4)4EDНеизвестнонизкая
CSS Ruby (css_ruby_1)1WDНе поддерживаетсявысокая
CSS Writing Modes (css_writing_modes_3)3RECЗаявленосредняя
CSS Writing Modes (css_writing_modes_4)4EDНеизвестнонизкая
CSS Speech (css_speech_1)1CRНе поддерживаетсявысокая
CSS Mobile Text Size Adjustment — подстройка размера текста на мобильных (css_size_adjust_1)1EDНе поддерживаетсявысокая
Модуль W3CУровеньЭтап W3CСтатусУверенность
CSS Color (css_color_3)3RECЗаявленосредняя
CSS Color (css_color_4)4CRЗаявленосредняя
CSS Color (css_color_5)5WDНеизвестнонизкая
CSS Color (css_color_6)6EDНеизвестнонизкая
CSS Color Adjustment (css_color_adjust_1)1CRНе поддерживаетсявысокая
CSS Color HDR (css_color_hdr_1)1EDНе поддерживаетсявысокая
CSS Images (css_images_3)3CRЗаявленосредняя
CSS Images (css_images_4)4EDНеизвестнонизкая
CSS Images (css_images_5)5EDНеизвестнонизкая
CSS Image Animation (css_image_animation_1)1EDНе поддерживаетсявысокая
Модуль W3CУровеньЭтап W3CСтатусУверенность
CSS Selectors (selectors_3)3RECЗаявленосредняя
CSS Selectors (selectors_4)4WDЗаявленосредняя
CSS Selectors (selectors_5)5EDНеизвестнонизкая
CSS Non-element Selectors — неэлементные селекторы (selectors_nonelement_1)1WDНе поддерживаетсявысокая
CSS Pseudo-Elements (css_pseudo_4)4WDЗаявленосредняя
CSS Cascading and Inheritance (css_cascade_3)3RECПровереновысокая
CSS Cascading (css_cascade_4)4CRПровереновысокая
CSS Cascading (css_cascade_5)5CRПровереновысокая
CSS Cascading (css_cascade_6)6WDНеизвестнонизкая
CSS Values and Units — значения и единицы (css_values_3)3RECЗаявленосредняя
CSS Values and Units — значения и единицы (css_values_4)4CRЗаявленосредняя
CSS Values and Units — значения и единицы (css_values_5)5EDНеизвестнонизкая
CSS Custom Properties (css_variables_1)1CRЗаявленосредняя
CSS Custom Properties (css_variables_2)2EDНеизвестнонизкая
CSS Conditional Rules (css_conditional_3)3CRЗаявленосредняя
CSS Conditional Rules (css_conditional_4)4EDНеизвестнонизкая
CSS Conditional Rules (css_conditional_5)5EDНеизвестнонизкая
CSS Conditional Values (css_conditional_values_1)1EDНеизвестнонизкая
CSS Namespaces (css_namespaces_3)3RECЗаявленонизкая
CSS Style Attributes (css_style_attr_1)1CRЗаявленосредняя
CSS Syntax (css_syntax_3)3CRЗаявленосредняя
CSS Nesting (css_nesting_1)1CRЗаявленосредняя
CSS Environment Variables (css_env_1)1EDНе поддерживаетсясредняя
CSS Custom Functions and Mixins — пользовательские функции и примеси (css_mixins_1)1EDНеизвестнонизкая
CSS Extensions (css_extensions_1)1NOTEНеизвестнонизкая

Списки, счётчики, генерируемое содержимое

Заголовок раздела «Списки, счётчики, генерируемое содержимое»
Модуль W3CУровеньЭтап W3CСтатусУверенность
CSS Lists and Counters — списки и счётчики (css_lists_3)3WDЗаявленосредняя
CSS Counter Styles (css_counter_styles_3)3CRЗаявленосредняя
CSS Generated Content (css_content_3)3WDЗаявленосредняя
CSS Generated Content for Paged Media — генерируемое содержимое для постраничных носителей (css_gcpm_3)3WDЗаявленосредняя
CSS Generated Content for Paged Media — генерируемое содержимое для постраничных носителей (css_gcpm_4)4EDНеизвестнонизкая
Модуль W3CУровеньЭтап W3CСтатусУверенность
CSS Paged Media (css_page_3)3WDЗаявленосредняя
CSS Paged Media (css_page_4)4NOTEНеизвестнонизкая
CSS Print Profile (css_print)1NOTEЗаявленонизкая
CSS Presentation Levels (css_preslev_1)1NOTEНе поддерживаетсявысокая
Модуль W3CУровеньЭтап W3CСтатусУверенность
CSS Overflow (css_overflow_3)3WDЗаявленонизкая
CSS Overflow (css_overflow_4)4EDНеизвестнонизкая
CSS Overflow (css_overflow_5)5EDНеизвестнонизкая
CSS Overscroll Behavior (css_overscroll_1)1CRНе поддерживаетсявысокая
CSS Scroll Anchoring (css_scroll_anchoring_1)1WDНе поддерживаетсявысокая
CSS Scroll Snap (css_scroll_snap_1)1RECНе поддерживаетсявысокая
CSS Scroll Snap (css_scroll_snap_2)2WDНе поддерживаетсявысокая
CSS Scrollbars Styling (css_scrollbars_1)1CRНе поддерживаетсявысокая
CSS Basic User Interface — базовый пользовательский интерфейс (css_ui_3)3RECНе поддерживаетсясредняя
CSS Basic User Interface — базовый пользовательский интерфейс (css_ui_4)4WDНе поддерживаетсявысокая
CSS Form Control Styling — стилизация элементов управления формами (css_forms_1)1EDНе поддерживаетсявысокая
CSS View Transitions (css_view_transitions_1)1WDНе поддерживаетсявысокая
CSS View Transitions (css_view_transitions_2)2EDНе поддерживаетсявысокая
CSS Spatial Navigation (css_nav_1)1NOTEНе поддерживаетсявысокая
CSS Route Matching (css_navigation_1)1EDНе поддерживаетсявысокая
Модуль W3CУровеньЭтап W3CСтатусУверенность
CSS Table (css_tables_3)3WDПровереновысокая
Модуль W3CУровеньЭтап W3CСтатусУверенность
CSS Transforms (css_transforms_1)1CRЗаявленосредняя
CSS Transforms (css_transforms_2)2EDНеизвестнонизкая
CSS Animations (css_animations_1)1WDНе поддерживаетсявысокая
CSS Animations (css_animations_2)2EDНе поддерживаетсявысокая
CSS Transitions (css_transitions_1)1WDНе поддерживаетсявысокая
CSS Transitions (css_transitions_2)2EDНе поддерживаетсявысокая
CSS Easing Functions (css_easing_1)1CRНе поддерживаетсявысокая
CSS Easing Functions (css_easing_2)2EDНе поддерживаетсявысокая
Web Animations (web_animations_1)1WDНе поддерживаетсявысокая
Web Animations (web_animations_2)2EDНе поддерживаетсявысокая
Web Animations CSS Integration — интеграция Web Animations с CSS (web_animations_css_integration)1EDНе поддерживаетсявысокая
Animation Triggers (animation_triggers)1EDНе поддерживаетсявысокая
Pointer-driven Animations — анимации, управляемые указателем (pointer_animations_1)1EDНе поддерживаетсявысокая
Scroll-driven Animations — анимации, управляемые прокруткой (scroll_animations_1)1EDНе поддерживаетсявысокая
CSS Animation Worklet (css_animation_worklet)1EDНе поддерживаетсявысокая
Модуль W3CУровеньЭтап W3CСтатусУверенность
CSS Anchor Positioning (css_anchor_position_1)1WDНеизвестнонизкая
CSS Anchor Positioning (css_anchor_position_2)2EDНеизвестнонизкая
CSS Highlight API (css_highlight_api_1)1WDНе поддерживаетсявысокая
CSS Properties and Values API — API свойств и значений (css_properties_values_api_1)1CRНе поддерживаетсявысокая
CSS Painting API (css_paint_api_1)1WDНе поддерживаетсявысокая
CSS Typed OM (css_typed_om_1)1WDНе поддерживаетсявысокая
CSSOM (cssom_1)1WDНе поддерживаетсявысокая
CSSOM View (cssom_view_1)1WDНе поддерживаетсявысокая
CSS Will Change (css_will_change_1)1CRНе поддерживаетсявысокая
CSS Linked Parameters (css_link_params_1)1EDНеизвестнонизкая
CSS Line Grid (css_line_grid_1)1NOTEНеизвестнонизкая
CSS Rhythmic Sizing (css_rhythm_1)1EDНеизвестнонизкая
CSS Round Display (css_round_display_1)1EDНе поддерживаетсявысокая
CSS Shaders (css_shaders_1)1NOTEНе поддерживаетсявысокая
CSS Viewport (css_viewport_1)1NOTEНе поддерживаетсявысокая
Модуль W3CУровеньЭтап W3CСтатусУверенность
Media Queries (mediaqueries_3)3RECЗаявленосредняя
Media Queries (mediaqueries_4)4CRЗаявленосредняя
Media Queries (mediaqueries_5)5WDНеизвестнонизкая
Модуль W3CУровеньЭтап W3CСтатусУверенность
CSS Level 2 (css_2_1)2.1RECЗаявленонизкая
CSS Level 2.2 (css_2_2)2.2NOTEЗаявленонизкая
CSS Snapshot 2026 (css_snapshot_2026)snapshotNOTEЗаявленонизкая

Эти модули W3C присутствуют в корпусе, но находятся за пределами конвейера отрисовки CSS. Где применимо, на них ссылаются соответствующие страницы возможностей.

Модуль W3CЭтап W3CСтатусУверенностьГде
W3C SVG 1.1 (svg_1_1)RECЗаявленонизкаяПодмножество отрисовки встроенного SVG в Renderer/PaintCommand/; тестового набора для матрицы CSS нет.
W3C SVG 2.0 (svg_2_0)CRНеизвестнонизкаяОтносится к конвейеру Premium; фактов в core нет.
W3C PNG 3rd Edition — формат PNG, 3-е издание (png_3)WDЗаявленонизкаяДекодирование PNG в модуле Graphics/ (за пределами HTML/CSS).
W3C WOFF 1.0 (woff_1_0)RECЗаявленонизкаяWOFF через стек Font; тестового набора для матрицы CSS нет.
W3C WOFF 2.0 (woff_2_0)RECЗаявленонизкаяWOFF2 через стек Font; тестового набора для матрицы CSS нет.
W3C WCAG 2.2 (wcag_2_2)RECПровереносредняяsrc/Html/Aam/, tests/Unit/Accessibility/HtmlAam/ (4 файла) — PDF/UA-2.
W3C WAI-ARIA 1.2 (wai_aria_1_2)RECПровереносредняяtests/Unit/Accessibility/HtmlAam/ (4 файла).
W3C ARIA Bundle (w3c_aria_bundle)RECЗаявленонизкаяНабор рекомендаций; конкретным фактом является строка WAI-ARIA.
W3C AAM Bundle (w3c_aam_bundle)NOTEЗаявленонизкаяУказатель на набор; фактами являются строки WAI-ARIA/WCAG.
W3C ATAG 2.0 (atag_2_0)RECНе поддерживаетсявысокаяДоступность инструментов разработки; не применимо.
W3C XSL 1.1 (xsl_1_1)RECНе поддерживаетсявысокаяПараллельная модель форматирования XSL-FO; не реализована.
W3C XSD 1.1 Part 1 (xsd_1_1_part1)RECНе поддерживаетсявысокаяСхема XML; не применимо.
W3C XSLT 3.0 (xslt_3_0)RECНе поддерживаетсявысокаяЯзык преобразований; не применимо.
Resize Observer (resize_observer_1)CRНе поддерживаетсявысокаяAPI времени выполнения браузера.

Чтобы строка перешла из claimed в verified:

  1. Отдельный тестовый набор на уровне свойств находится в tests/Unit/Html/<Module>/ (≥3 файлов) или содержательный срез корпуса WPT (≥50 фикстур) в tests/Wpt/corpus/ оформлен как тест с проверками.
  2. Тестовый набор проверяет поведение NextPDF относительно грамматики W3C для основных свойств модуля.
  3. Тестовый набор проходит детерминированно в NextPDF\Testing\ReproducibilityProfile (structural для наборов с проверками; bitwise — только после появления эталонных PDF для отдельных модулей).
  4. Поле nextpdf_status строки в файле репозитория css-support-matrix-data.yaml меняется на verified, с обновлением fixture_path, repro_profile и confidence.

Чтобы строка перешла из unknown в claimed:

  1. Этап проверки подтверждает факты реализации в src/Html/ (укажите путь в evidence + notes).
  2. Создаётся задача на доработку и связывается через backfill_issue.
  • HTML: подсистема отрисовки HTML+CSS в PDF — движок, стоящий за этими возможностями, включая заметки о поведении таблиц, flex, градиентов и разбиения на страницы.
  • Неподдерживаемые возможности CSS и обходные пути — конкретные ограничения по каждому поведению.
  • Отрисовка арабского HTML с направлением справа налево — поддержка письма справа налево и двунаправленного письма и её текущие границы.
  • Разбиение большой HTML-таблицы на страницы — разбиение таблиц по страницам.
  • Отчёт о фактическом состоянии матрицы CSS (_css-matrix-truth-report.md, в репозитории) — различия проверки before/after, распределение уверенности, журнал деинфляции.
  • Проверка покрытия CSS-свойств (architecture/css-property-coverage-audit.md, в репозитории) — внутренняя четырёхуровневая проверка по каждому свойству (Policy/Parsed/Applied/Rendered).
  • ADR-027 v8.0.0 BREAKING (architecture/adr/ADR-027-v8-breaking.md, в репозитории) — завершение процедуры вывода из эксплуатации vertical-lr (возможность сохранена).
  • ADR-028 v9.0.0 BREAKING (architecture/adr/ADR-028-v9-breaking.md, в репозитории) — удаление маркеров перечисления Grid/Subgrid/@container (возможности сохранены).
  • Отслеживающая задача на доработку: https://github.com/nextpdf-labs/nextpdf/issues/614