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

Матрица поддержки 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Провереновысокаяsrc/Html/Flex/, tests/Unit/Html/Flex/ (50 файлов)
CSS Grid Layout (css_grid_1)1RECПровереновысокаяsrc/Html/Grid/, tests/Unit/Html/Grid/ (25), tests/Wpt/corpus/css-grid/ (654)
CSS Grid Layout — Subgrid — сеточная раскладка, вложенная сетка (css_grid_2)2CRЗаявленосредняяsrc/Html/Grid/Subgrid/ + срез WPT из 80 фикстур + 1 интеграционный тест. ДЕЙСТВУЕТ, включён по умолчанию (ADR-028 удалил только маркер перечисления).
CSS Grid Layout — Masonry — сеточная раскладка, кладочная раскладка (css_grid_3)3EDНе поддерживаетсявысокаяMasonry находится за пределами области для v5.x.
CSS Display (css_display_3)3CRЗаявленосредняяDisplayResolver.php + тесты резолвера; выделенного набора для свойств нет.
CSS Display (css_display_4)4EDНеизвестнонизкаяФактов для L4 нет.
CSS Positioned Layout (css_position_3)3WDПровереновысокаяsrc/Html/Positioned/, tests/Unit/Html/Positioned/ (8 файлов)
CSS Positioned Layout (css_position_4)4EDНеизвестнонизкаяposition: sticky/anchor фактами не подтверждены.
CSS Box Alignment (css_align_3)3WDЗаявленосредняяРеализовано внутри движков Flex/Grid; отдельного набора нет.
CSS Box Sizing (css_sizing_3)3CRЗаявленонизкаяsrc/Html/Length/; проверка Phase 0 показывает, что width/height в основном POLICY-ONLY.
CSS Box Sizing (css_sizing_4)4EDНеизвестнонизкаяКлючевые слова intrinsic size фактами не подтверждены.
CSS Box Model (css_box_3)3WDЗаявленосредняяПокрыто схлопывание полей; блочная модель left/right отсутствует по результатам проверки Phase 0. Доработка #617.
CSS Box Model (css_box_4)4EDНеизвестнонизкаяФактов нет.
CSS Multi-column Layout — многоколоночная раскладка (css_multicol_1)1CRЗаявленосредняяsrc/Html/MultiCol/; набора для свойств нет.
CSS Multi-column Layout — многоколоночная раскладка (css_multicol_2)2EDНеизвестнонизкаяФактов нет.
CSS Fragmentation (css_break_3)3CRПровереносредняяsrc/Html/Fragmentation/, tests/Unit/Html/PagedMedia/ (20 файлов)
CSS Fragmentation (css_break_4)4EDНеизвестнонизкаяФактов нет.
CSS Containment (css_contain_1)1RECНе поддерживаетсясредняяПрименитель contain для layout/paint отсутствует; модели обновления в реальном времени нет.
CSS Containment — @container (css_contain_2)2CRЗаявленонизкаяСрез WPT из 114 фикстур + модель сохранённой раскладки ADR-017/021. Среда выполнения ДЕЙСТВУЕТ (ADR-028 удалил только маркер перечисления).
CSS Containment (css_contain_3)3EDНе поддерживаетсясредняяИзоляция стилей за пределами области.
CSS Inline Layout (css_inline_3)3WDЗаявленосредняяsrc/Html/Layout/InlineLayout/ + 8 тестов; initial-letter фактами не подтверждён.
CSS Logical Properties (css_logical_1)1WDЗаявленосредняяРезолвер логических→физических значений WritingMode; выделенного тестового набора нет. Логические text-align: start/end разрешаются относительно direction — при direction: rtl start соответствует правому краю — и применяются в ячейках таблицы.
CSS Page Floats (css_page_floats_3)3EDНе поддерживаетсявысокаяЗа пределами области для v5.x.
CSS Pagination Templates (css_page_templates_3)3EDНе поддерживаетсявысокаяМногозонная разбивка на страницы за пределами области.
CSS Exclusions (css_exclusions_1)1WDНе поддерживаетсявысокаяУровень C; обязательств в дорожной карте нет.
CSS Regions (css_regions_1)1WDНе поддерживаетсявысокаяРабота прекращена в W3C.
CSS Template Layout (css_template_1)1NOTEНе поддерживаетсявысокаяЗа пределами области.
CSS Layout API (css_layout_api_1)1WDНе поддерживаетсявысокаяСреда выполнения worklet; не применимо.
Модуль W3CУровеньЭтап W3CСтатусУверенностьФакты
CSS Backgrounds and Borders — фоны и границы (css_backgrounds_3)3CRЗаявленосредняяsrc/Html/Background/, BorderRenderer.php; по результатам проверки Phase 0 bg-color работает только для Table. Доработка #628.
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Не поддерживаетсясредняяclip-path/mask не направляются в операторы отсечения PDF.
CSS Shadow Module (css_shadow_1)1EDЗаявленосредняяsrc/Html/Shadow/ (BoxShadowRenderer); выделенного тестового набора нет.
CSS Shapes (css_shapes_1)1CRНе поддерживаетсявысокаяshape-outside за пределами области для v5.x.
CSS Shapes (css_shapes_2)2EDНе поддерживаетсявысокаяЗа пределами области.
Filter Effects (filter_effects_1)1WDНе поддерживаетсявысокаяПримитивы фильтров SVG не передаются в PDF.
Filter Effects (filter_effects_2)2EDНе поддерживаетсявысокаяЗа пределами области.
Compositing and Blending — композитинг и наложение (compositing_1)1CRЗаявленосредняяСопоставление режимов наложения PDF в PaintCommand/; один тест режима наложения.
Compositing (compositing_2)2EDНеизвестнонизкаяФактов нет.
CSS Fill and Stroke — заливка и обводка (fill_stroke_3)3EDНеизвестнонизкаяФактов нет.
Geometry Interfaces (geometry_1)1CRНе поддерживаетсявысокаяAPI DOM Matrix времени выполнения.
DOMMatrix (matrix)1NOTEНе поддерживаетсявысокаяAPI времени выполнения браузера.
Motion Path (motion_1)1WDНе поддерживаетсявысокаяТолько для анимации.
Модуль W3CУровеньЭтап W3CСтатусУверенностьФакты
CSS Fonts (css_fonts_3)3RECПровереносредняяsrc/Html/Font/, tests/Unit/Font/ (9) + тесты FontResolver
CSS Fonts (css_fonts_4)4CRПровереновысокаяsrc/Html/FontFace/, tests/Unit/Html/FontFace/ (31 файл)
CSS Fonts (css_fonts_5)5EDНеизвестнонизкаяfont-tech() фактами не подтверждён.
CSS Font Loading (css_font_loading_3)3WDНе поддерживаетсявысокаяAPI времени выполнения FontFace в JS; загрузка на стороне PHP через FontResolver.
CSS Text (css_text_3)3CRЗаявленосредняяsrc/Html/Text/ + 5 тестов; Phase 0 FULL для align/indent/spacing, white-space только для <pre>. Доработка #618.
CSS Text (css_text_4)4EDЗаявленосредняяsrc/Html/Layout/Hyphenation/ + тесты стратегий; остальные свойства L4 в ожидании.
CSS Text Decoration (css_text_decor_3)3CRЗаявленосредняяsrc/Html/Text/; Phase 0 FULL, но выделенного тестового набора нет. Доработка #619.
CSS Text Decoration (css_text_decor_4)4EDНеизвестнонизкаяtext-emphasis фактами не подтверждён.
CSS Ruby (css_ruby_1)1WDНе поддерживаетсявысокаяАннотации ruby за пределами области для v5.x.
CSS Writing Modes (css_writing_modes_3)3RECЗаявленосредняяsrc/Html/Layout/WritingMode/ (7 тестов) + срез WPT из 140 фикстур. vertical-lr ДЕЙСТВУЕТ, включён по умолчанию (ADR-027). direction: rtl работает — переупорядочение по UAX#9 плюс контекстное формирование арабского письма, с выравниванием ячеек таблицы по началу. Выравнивание блоков вне таблиц и justify пока не применяются, а HTML-атрибут dir не сопоставляется (используйте CSS direction). См. Отрисовка справа налево арабского HTML. Доработка #629.
CSS Writing Modes (css_writing_modes_4)4EDНеизвестнонизкаяФактов нет.
CSS Speech (css_speech_1)1CRНе поддерживаетсявысокаяЗвуковая отрисовка не применима.
CSS Mobile Text Size Adjustment — подстройка размера текста на мобильных (css_size_adjust_1)1EDНе поддерживаетсявысокаяПодсказка мобильного UA; не применимо.
Модуль W3CУровеньЭтап W3CСтатусУверенностьФакты
CSS Color (css_color_3)3RECЗаявленосредняяsrc/Html/Color/, NamedColors.php + тесты парсера; тестового набора для модуля нет. Доработка #620.
CSS Color (css_color_4)4CRЗаявленосредняяРазбор Lab/LCH/OKLab; точность цветового пространства PDF не заявляется.
CSS Color (css_color_5)5WDНеизвестнонизкаяcolor-mix() фактами не подтверждён.
CSS Color (css_color_6)6EDНеизвестнонизкаяФактов нет.
CSS Color Adjustment (css_color_adjust_1)1CRНе поддерживаетсявысокаяcolor-scheme управляется UA; не применимо.
CSS Color HDR (css_color_hdr_1)1EDНе поддерживаетсявысокаяHDR не направляется в цветовое пространство PDF.
CSS Images (css_images_3)3CRЗаявленосредняяsrc/Html/Gradient/ (linear/radial/conic) + тесты парсера.
CSS Images (css_images_4)4EDНеизвестнонизкаяimage()/image-set() фактами не подтверждены.
CSS Images (css_images_5)5EDНеизвестнонизкаяФактов нет.
CSS Image Animation (css_image_animation_1)1EDНе поддерживаетсявысокаяТолько для анимации.
Модуль W3CУровеньЭтап W3CСтатусУверенностьФакты
CSS Selectors (selectors_3)3RECЗаявленосредняяHasSelectorResolver.php + тесты CssRule; тестовый набор — единственный файл corpus.json. Доработка #627.
CSS Selectors (selectors_4)4WDЗаявленосредняя:is()/:where()/:not()/:has() протестированы; расширенные возможности L4 в ожидании.
CSS Selectors (selectors_5)5EDНеизвестнонизкаяФактов нет.
CSS Non-element Selectors — неэлементные селекторы (selectors_nonelement_1)1WDНе поддерживаетсявысокаяХуки таблиц стилей браузера; не применимо.
CSS Pseudo-Elements (css_pseudo_4)4WDЗаявленосредняяsrc/Html/Pseudo/ (12) + ~10 тестов отрисовщика; набора для модуля нет.
CSS Cascading and Inheritance (css_cascade_3)3RECПровереновысокаяsrc/Html/Cascade/, tests/Unit/Html/Cascade/ (9 файлов)
CSS Cascading (css_cascade_4)4CRПровереновысокаяCascade/Layer/ + тесты revert/layer
CSS Cascading (css_cascade_5)5CRПровереновысокаяAtRule/Layer/ + Cascade/Layer/ наборы
CSS Cascading (css_cascade_6)6WDНеизвестнонизкая@scope фактами не подтверждён.
CSS Values and Units — значения и единицы (css_values_3)3RECЗаявленосредняяCssValueParser.php + модульные тесты; тестовый набор — единственный corpus.json. Доработка #626.
CSS Values and Units — значения и единицы (css_values_4)4CRЗаявленосредняяcalc() реализован; вложенные min()/max()/clamp() подтверждены фактами лишь частично.
CSS Values and Units — значения и единицы (css_values_5)5EDНеизвестнонизкаяФактов нет.
CSS Custom Properties (css_variables_1)1CRЗаявленосредняяsrc/Html/CustomProperty/ + тест покрытия области видимости.
CSS Custom Properties (css_variables_2)2EDНеизвестнонизкаяФактов нет.
CSS Conditional Rules (css_conditional_3)3CRЗаявленосредняя@media/@supports — разбор протестирован; среда выполнения @container сохранена (ADR-028).
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ЗаявленонизкаяПарсер допускает @namespace; покрытия для сопоставления нет.
CSS Style Attributes (css_style_attr_1)1CRЗаявленосредняяРазбор встроенного style по всему конвейеру; выделенного тестового набора нет. Доработка #622.
CSS Syntax (css_syntax_3)3CRЗаявленосредняяCssParser/ + тесты grammar/fuzz; тестового набора на соответствие нет. Доработка #623.
CSS Nesting (css_nesting_1)1CRЗаявленосредняяПовышено с неизвестного — CssNestingTest + тесты desugar/inner-scan.
CSS Environment Variables (css_env_1)1EDНе поддерживаетсясредняяЗависит от UA env(); не применимо.
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ЗаявленосредняяHtmlListRenderer.php/CssCounterManager.php + 18 тестов; list-style-type не применяется к ol/ul (Phase 0).
CSS Counter Styles (css_counter_styles_3)3CRЗаявленосредняяВстроенные стили счётчиков; @counter-style в ожидании.
CSS Generated Content (css_content_3)3WDЗаявленосредняяCssContentSegment.php + тесты псевдоэлементов; идёт в обход применителя (Phase 0). Доработка #621.
CSS Generated Content for Paged Media — генерируемое содержимое для постраничных носителей (css_gcpm_3)3WDЗаявленосредняяsrc/Html/Gcpm/ — реестры + тест захвата сносок.
CSS Generated Content for Paged Media — генерируемое содержимое для постраничных носителей (css_gcpm_4)4EDНеизвестнонизкаяФактов нет.
Модуль W3CУровеньЭтап W3CСтатусУверенностьФакты
CSS Paged Media (css_page_3)3WDЗаявленосредняяPage/, PagedMedia/, PageRule.php + тесты PageRuleParser/PageMarginBox; в tests/Unit/Html/Page/ 1 файл. Доработка #624.
CSS Paged Media (css_page_4)4NOTEНеизвестнонизкаяБудущие предложения.
CSS Print Profile (css_print)1NOTEЗаявленонизкаяЦелевой статичный PDF соблюдает ограничения печати; тестового набора на соответствие нет.
CSS Presentation Levels (css_preslev_1)1NOTEНе поддерживаетсявысокаяНавигация в презентационном ПО; не применимо.
Модуль W3CУровеньЭтап W3CСтатусУверенностьФакты
CSS Overflow (css_overflow_3)3WDЗаявленонизкаяOverflowClip/ClipRect — тесты; отсечение только для ячеек Table (Phase 0).
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Не поддерживаетсявысокаяСреда выполнения UA; не применимо.
CSS Basic User Interface — базовый пользовательский интерфейс (css_ui_3)3RECНе поддерживаетсясредняяcursor/resize только для UI браузера.
CSS Basic User Interface — базовый пользовательский интерфейс (css_ui_4)4WDНе поддерживаетсявысокаяСреда выполнения UA; не применимо.
CSS Form Control Styling — стилизация элементов управления формами (css_forms_1)1EDНе поддерживаетсявысокаяВиджеты форм не отрисовываются в статичном PDF.
CSS View Transitions (css_view_transitions_1)1WDНе поддерживаетсявысокаяТолько для анимации.
CSS View Transitions (css_view_transitions_2)2EDНе поддерживаетсявысокаяТолько для анимации.
CSS Spatial Navigation (css_nav_1)1NOTEНе поддерживаетсявысокаяСреда выполнения UA; не применимо.
CSS Route Matching (css_navigation_1)1EDНе поддерживаетсявысокаяСреда выполнения UA; не применимо.
Модуль W3CУровеньЭтап W3CСтатусУверенностьФакты
CSS Table (css_tables_3)3WDПровереновысокаяsrc/Html/Table/, tests/Unit/Html/Table/ (17) + ~60 тестов TableParser + 5 синтетических эталонных PDF в tests/Corpus/tables/
Модуль W3CУровеньЭтап W3CСтатусУверенностьФакты
CSS Transforms (css_transforms_1)1CRЗаявленосредняяRenderer/Transform/ + ApplyTransformCommand.php; выделенного тестового набора нет.
CSS Transforms (css_transforms_2)2EDНеизвестнонизкая3D-трансформации фактами не подтверждены.
CSS Animations (css_animations_1)1WDНе поддерживаетсявысокаяВременная шкала анимации не применима к статичному PDF.
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Не поддерживаетсявысокаяAPI времени выполнения браузера.
Web Animations (web_animations_2)2EDНе поддерживаетсявысокаяAPI времени выполнения браузера.
Web Animations CSS Integration — интеграция Web Animations с CSS (web_animations_css_integration)1EDНе поддерживаетсявысокаяAPI времени выполнения браузера.
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Не поддерживаетсявысокаяСреда выполнения worklet браузера.
Модуль W3CУровеньЭтап W3CСтатусУверенностьФакты
CSS Anchor Positioning (css_anchor_position_1)1WDНеизвестнонизкаяИсходного кода anchor() нет.
CSS Anchor Positioning (css_anchor_position_2)2EDНеизвестнонизкаяФактов нет.
CSS Highlight API (css_highlight_api_1)1WDНе поддерживаетсявысокаяAPI времени выполнения браузера.
CSS Properties and Values API — API свойств и значений (css_properties_values_api_1)1CRНе поддерживаетсявысокаяAPI времени выполнения браузера.
CSS Painting API (css_paint_api_1)1WDНе поддерживаетсявысокаяСреда выполнения worklet браузера.
CSS Typed OM (css_typed_om_1)1WDНе поддерживаетсявысокаяAPI времени выполнения браузера.
CSSOM (cssom_1)1WDНе поддерживаетсявысокаяAPI DOM браузера.
CSSOM View (cssom_view_1)1WDНе поддерживаетсявысокаяAPI DOM браузера.
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Не поддерживаетсявысокаяУдалено в W3C.
CSS Viewport (css_viewport_1)1NOTEНе поддерживаетсявысокаяОбласть просмотра UA; не применимо.
Модуль W3CУровеньЭтап W3CСтатусУверенностьФакты
Media Queries (mediaqueries_3)3RECЗаявленосредняяCssParser/ + тесты покрытия медиазапросов; выделенного тестового набора нет. Доработка #625.
Media Queries (mediaqueries_4)4CRЗаявленосредняя@media print/prefers-color-scheme разбираются; синтаксис диапазонов в ожидании.
Media Queries (mediaqueries_5)5WDНеизвестнонизкаяФактов нет.
Модуль W3CУровеньЭтап W3CСтатусУверенностьФакты
CSS Level 2 (css_2_1)2.1RECЗаявленонизкаяБазовый уровень распределён по src/Html/; единого тестового набора на соответствие нет.
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.
  • Отчёт о фактическом состоянии матрицы 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