NextPDF는 W3C 발행 명세에 따라 CSS 렌더링을 구현합니다. 이 페이지는 NextPDF의 명세 코퍼스에 포함된 모든 CSS 모듈을 열거하고, 렌더링 파이프라인에서 각 모듈의 진실-감사된 지원 상태를 기록합니다.
이 개정판은 Wave 4 B2 진실 감사(계획 4.4 절)의 산출물입니다. 이전 구조 개정판의 배지는 검증되지 않은 자리표시자였습니다. 여기의 모든 행은 실제 디스크상의 증거(src/Html/, tests/, tests/Wpt/corpus/), v8/v9 호환성 파괴(breaking-change) ADR, 내부 CSS 속성 커버리지 감사를 기준으로 다시 등급이 매겨졌습니다. 커버리지보다 정직성이 우선되었습니다. 감사 결과 배지를 낮춰야 하는 경우에는 그대로 낮췄습니다.
검증 계약에 따라 각 행은 네 가지 배지로 분류됩니다:
- Verified —
src/Html/ 구현 및 실질적인 전용 자동화 픽스처: tests/Unit/Html/<Module>/ 아래의 세 개 이상의 파일로 구성된 속성 수준 스위트, 또는 tests/Wpt/corpus/ 아래의 50개 이상 픽스처로 구성된 Web Platform Tests 코퍼스 샤드. CSS 모듈별 골든 PDF 기준선은 아직 연결되어 있지 않으므로, verified 행은 structural 재현성 프로필(PHPUnit 어서션 동등성)을 사용하며 절대 bitwise를 사용하지 않습니다.
- Claimed — 모듈 동작이
src/Html/에 구현되어 있지만(소스 경로가 인용됨) 전용 픽스처가 빈약하거나 공유되어 있거나 없습니다. 구체적인 구현이 있는 각 claimed 행에는 백필(backfill) 이슈가 연결되어 있습니다.
- Not supported — 정적 PDF 렌더링 파이프라인의 범위를 벗어납니다. 런타임/브라우저 전용 API, scrolling/animation 런타임, W3C에서 중단된 작업이 여기에 해당합니다. 사유가 기록됩니다.
- Unknown — 모듈이 코퍼스에는 포함되어 있으나 구현 또는 픽스처 증거를 확인할 수 없습니다. 감사에서는 집계를 늘리기 위해 등급을 상향 추정한 적이 없습니다.
구조 개정판의 partial 배지는 폐기되었습니다. 이전의 모든 partial 행은 claimed(구현은 있으나 전용 픽스처 없음) 또는 verified로 다시 등급이 매겨졌습니다.
| 배지 | 의미 |
|---|
verified | src/Html/ + 전용 픽스처 스위트(파일 3개 이상) 또는 WPT 샤드(픽스처 50개 이상). structural 프로필에서 결정론적으로 통과합니다. |
claimed | 구현 증거는 src/Html/에 있으나 전용 픽스처는 없습니다. 백필 이슈가 추적됩니다. |
not-supported | 정적 PDF 범위에서 명시적으로 제외됩니다. 사유가 기록됩니다. |
unknown | 확인 가능한 증거가 없습니다. 등급을 상향 추정하지 않습니다. |
여기서 Confidence 열은 표시된 배지를 뒷받침하는 증거가 얼마나 강한지 나타내는, 배지 자체와 독립적인 정직한 비이진 신호(high / medium / low)입니다.
NextPDF는 아래에 나열된 CSS 모듈을 명시된 수준으로 지원합니다. Verified 행에는 NextPDF의 동작을 어서션하는 전용 자동화 픽스처 스위트 또는 실질적인 WPT 코퍼스 샤드가 있으며, structural 재현성 프로필에서 결정론적으로 통과합니다. Claimed 행에는 src/Html/에 구현 증거가 있으나 아직 전용 픽스처가 없습니다. 각 행은 tracking issue #614 아래의 백필 이슈로 추적됩니다. Not supported 행은 정적 PDF 대상의 명시적 범위 경계를 문서화합니다.
이 개정판에는 CSS 모듈별 골든 PDF 기준선이 없습니다. 어떤 행도 바이트 수준 재현성을 주장하지 않습니다. 검증 계약상 빈 행은 금지됩니다. 지원 여부를 확인할 수 없는 경우 해당 행은 unknown입니다.
| 상태 | 모듈 수 | 신뢰도(high / medium / low) |
|---|
| Verified | 12 | 8 / 4 / 0 |
| Claimed | 49 | 0 / 35 / 14 |
| Not supported | 67 | 62 / 5 / 0 |
| Unknown | 39 | 0 / 0 / 39 |
| 합계 | 167 | 70 / 44 / 53 |
구조 개정판의 summary 블록은 내부적으로 일관성이 없었습니다. 총 148개(verified 18 / partial 11 / claimed 11 / not-supported 53 / unknown 55)라고 선언했으나, 파일에는 실제로 167개 모듈 행이 있었고 자체 레이블 기준 집계는 verified 34 / partial 13 / claimed 13 / not-supported 68 / unknown 39였습니다. 이 감사는 총계를 실제 값인 167로 바로잡고 모든 행을 디스크상의 증거를 기준으로 다시 등급화했습니다. Verified는 주장된 34에서 입증된 12로 줄었습니다. 이 감소는 정직한 감사의 올바른 결과이며 퇴보가 아닙니다. 전체 before/after 델타는 리포지토리 내 _css-matrix-truth-report.md 사이드카에 있습니다.
구조 개정판은 세 가지 활성 기능을 제거되었거나 지원되지 않는 것으로 잘못 표시했습니다. ADR-027과 ADR-028은 ExperimentalFeature 열거형의 옵트인 마커만 제거했습니다. 기능 자체는 기본값으로 켜진 LIVE 상태로 유지됩니다:
- Subgrid(
css_grid_2) — LIVE. CssFeatureFlags::$layoutSubgrid가 기본값으로 켜져 있습니다. “subgrid hard-removed v9.0.0”로 잘못 표시되었습니다.
@container 쿼리(css_contain_2) — 런타임 디스패치는 ADR-028에 의해 명시적으로 변경되지 않았으며, 플래그 옵트아웃이 보존됩니다. “hard-removed v9.0.0”로 잘못 표시되었습니다.
writing-mode: vertical-lr(css_writing_modes_3) — v7.0.0부터 기본값으로 켜진 Stable 상태입니다. ADR-027은 폐기 예고 핸드셰이크만 승격했습니다. “deprecated/removed v8.0.0”로 잘못 표시되었습니다.
기계 판독 가능한 모듈별 행 집합은 리포지토리 내 css-support-matrix-data.yaml에 있으며, 이것이 진실의 원천입니다. 이 페이지는 해당 데이터를 범주별로 묶어 사람이 읽을 수 있게 보여 주는 투영입니다. Astro 컴포넌트는 문서 빌드 중 이 YAML을 직접 사용합니다.
| W3C 모듈 | 레벨 | W3C 단계 | 상태 | 신뢰도 | 증거 |
|---|
CSS Flexible Box Layout 플렉서블 박스 레이아웃 (css_flexbox_1) | 1 | CR | Verified | high | src/Html/Flex/, tests/Unit/Html/Flex/(50개 파일) |
CSS Grid Layout (css_grid_1) | 1 | REC | Verified | high | src/Html/Grid/, tests/Unit/Html/Grid/(25개), tests/Wpt/corpus/css-grid/(654개) |
CSS Grid Layout — Subgrid 그리드 레이아웃 서브그리드 (css_grid_2) | 2 | CR | Claimed | medium | src/Html/Grid/Subgrid/ + 80개 픽스처 WPT 샤드 + 통합 테스트 1개. LIVE이며 기본값으로 켜져 있습니다(ADR-028은 열거형 마커만 제거함). |
CSS Grid Layout — Masonry 그리드 레이아웃 메이슨리 (css_grid_3) | 3 | ED | Not supported | high | Masonry는 v5.x 범위를 벗어납니다. |
CSS Display (css_display_3) | 3 | CR | Claimed | medium | DisplayResolver.php + 리졸버 테스트. 전용 속성 스위트는 없습니다. |
CSS Display (css_display_4) | 4 | ED | Unknown | low | L4 증거가 없습니다. |
CSS Positioned Layout (css_position_3) | 3 | WD | Verified | high | src/Html/Positioned/, tests/Unit/Html/Positioned/(8개 파일) |
CSS Positioned Layout (css_position_4) | 4 | ED | Unknown | low | position: sticky/anchor가 증거로 확인되지 않습니다. |
CSS Box Alignment (css_align_3) | 3 | WD | Claimed | medium | Flex/Grid 엔진 내부에 구현되어 있습니다. 독립 스위트는 없습니다. |
CSS Box Sizing (css_sizing_3) | 3 | CR | Claimed | low | src/Html/Length/. Phase 0 감사 결과 width/height는 대부분 POLICY-ONLY입니다. |
CSS Box Sizing (css_sizing_4) | 4 | ED | Unknown | low | 내재 크기 키워드가 증거로 확인되지 않습니다. |
CSS Box Model (css_box_3) | 3 | WD | Claimed | medium | 마진 병합(margin-collapse) 커버리지가 있습니다. Phase 0 감사에 따르면 left/right 박스 모델이 누락되었습니다. 백필 #617. |
CSS Box Model (css_box_4) | 4 | ED | Unknown | low | 증거가 없습니다. |
CSS Multi-column Layout (css_multicol_1) | 1 | CR | Claimed | medium | src/Html/MultiCol/. 속성 스위트는 없습니다. |
CSS Multi-column Layout (css_multicol_2) | 2 | ED | Unknown | low | 증거가 없습니다. |
CSS Fragmentation (css_break_3) | 3 | CR | Verified | medium | src/Html/Fragmentation/, tests/Unit/Html/PagedMedia/(20개 파일) |
CSS Fragmentation (css_break_4) | 4 | ED | Unknown | low | 증거가 없습니다. |
CSS Containment (css_contain_1) | 1 | REC | Not supported | medium | 전용 contain layout/paint 적용기가 없습니다. 라이브 업데이트 모델도 없습니다. |
CSS Containment — @container (css_contain_2) | 2 | CR | Claimed | low | 114개 픽스처 WPT 샤드 + ADR-017/021 유지 레이아웃 모델. 런타임은 LIVE입니다(ADR-028은 열거형 마커만 제거함). |
CSS Containment (css_contain_3) | 3 | ED | Not supported | medium | 스타일 컨테인먼트는 범위를 벗어납니다. |
CSS Inline Layout (css_inline_3) | 3 | WD | Claimed | medium | src/Html/Layout/InlineLayout/ + 테스트 8개. initial-letter는 증거로 확인되지 않습니다. |
CSS Logical Properties (css_logical_1) | 1 | WD | Claimed | medium | WritingMode 논리→물리 리졸버. 전용 픽스처는 없습니다. 논리적 text-align: start/end는 direction에 따라 해석되며, direction: rtl에서는 start가 오른쪽 가장자리입니다. 이는 테이블 셀에 적용됩니다. |
CSS Page Floats (css_page_floats_3) | 3 | ED | Not supported | high | v5.x 범위를 벗어납니다. |
CSS Pagination Templates (css_page_templates_3) | 3 | ED | Not supported | high | 다중 영역 페이지네이션은 범위를 벗어납니다. |
CSS Exclusions (css_exclusions_1) | 1 | WD | Not supported | high | Tier C. 로드맵 약속이 없습니다. |
CSS Regions (css_regions_1) | 1 | WD | Not supported | high | W3C에서 중단되었습니다. |
CSS Template Layout (css_template_1) | 1 | NOTE | Not supported | high | 범위를 벗어납니다. |
CSS Layout API (css_layout_api_1) | 1 | WD | Not supported | high | 워클릿 런타임. 해당되지 않습니다. |
| W3C 모듈 | 레벨 | W3C 단계 | 상태 | 신뢰도 | 증거 |
|---|
CSS Backgrounds and Borders (css_backgrounds_3) | 3 | CR | Claimed | medium | src/Html/Background/, BorderRenderer.php. Phase 0 감사에 따르면 bg-color는 Table 전용입니다. 백필 #628. |
CSS Backgrounds (css_backgrounds_4) | 4 | ED | Unknown | low | 증거가 없습니다. |
CSS Borders and Box Decorations (css_borders_4) | 4 | ED | Unknown | low | 증거가 없습니다. |
CSS Gap Decorations (css_gaps_1) | 1 | ED | Unknown | low | 증거가 없습니다. |
CSS Masking (css_masking_1) | 1 | CR | Not supported | medium | clip-path/mask가 PDF 클립 연산자로 라우팅되지 않습니다. |
CSS Shadow Module (css_shadow_1) | 1 | ED | Claimed | medium | src/Html/Shadow/(BoxShadowRenderer). 전용 픽스처는 없습니다. |
CSS Shapes (css_shapes_1) | 1 | CR | Not supported | high | shape-outside는 v5.x 범위를 벗어납니다. |
CSS Shapes (css_shapes_2) | 2 | ED | Not supported | high | 범위를 벗어납니다. |
Filter Effects (filter_effects_1) | 1 | WD | Not supported | high | SVG 필터 프리미티브가 PDF로 라우팅되지 않습니다. |
Filter Effects (filter_effects_2) | 2 | ED | Not supported | high | 범위를 벗어납니다. |
Compositing and Blending (compositing_1) | 1 | CR | Claimed | medium | PDF 블렌드 모드 매핑은 PaintCommand/에 있습니다. 블렌드 모드 테스트는 1개입니다. |
Compositing (compositing_2) | 2 | ED | Unknown | low | 증거가 없습니다. |
CSS Fill and Stroke (fill_stroke_3) | 3 | ED | Unknown | low | 증거가 없습니다. |
Geometry Interfaces (geometry_1) | 1 | CR | Not supported | high | DOM Matrix 런타임 API입니다. |
DOMMatrix (matrix) | 1 | NOTE | Not supported | high | 브라우저 런타임 API입니다. |
Motion Path (motion_1) | 1 | WD | Not supported | high | 애니메이션 전용입니다. |
| W3C 모듈 | 레벨 | W3C 단계 | 상태 | 신뢰도 | 증거 |
|---|
CSS Fonts (css_fonts_3) | 3 | REC | Verified | medium | src/Html/Font/, tests/Unit/Font/(9개) + FontResolver 테스트 |
CSS Fonts (css_fonts_4) | 4 | CR | Verified | high | src/Html/FontFace/, tests/Unit/Html/FontFace/(31개 파일) |
CSS Fonts (css_fonts_5) | 5 | ED | Unknown | low | font-tech()가 증거로 확인되지 않습니다. |
CSS Font Loading (css_font_loading_3) | 3 | WD | Not supported | high | JS FontFace 런타임 API입니다. PHP 측 로딩은 FontResolver를 통해 이루어집니다. |
CSS Text (css_text_3) | 3 | CR | Claimed | medium | src/Html/Text/ + 테스트 5개. Phase 0에서 align/indent/spacing은 FULL이며, white-space는 <pre> 전용입니다. 백필 #618. |
CSS Text (css_text_4) | 4 | ED | Claimed | medium | src/Html/Layout/Hyphenation/ + 전략 테스트. 다른 L4 속성은 보류 중입니다. |
CSS Text Decoration (css_text_decor_3) | 3 | CR | Claimed | medium | src/Html/Text/. Phase 0에서 FULL이지만 전용 픽스처는 없습니다. 백필 #619. |
CSS Text Decoration (css_text_decor_4) | 4 | ED | Unknown | low | text-emphasis가 증거로 확인되지 않습니다. |
CSS Ruby (css_ruby_1) | 1 | WD | Not supported | high | 루비 주석은 v5.x 범위를 벗어납니다. |
CSS Writing Modes (css_writing_modes_3) | 3 | REC | Claimed | medium | src/Html/Layout/WritingMode/(테스트 7개) + 140개 픽스처 WPT 샤드. vertical-lr은 LIVE이며 기본값으로 켜져 있습니다(ADR-027). direction: rtl은 작동합니다 — UAX#9 양방향 재정렬에 아랍어 문맥 셰이핑이 더해지고, 테이블 셀 시작 정렬이 적용됩니다. 테이블 외 블록 정렬과 justify는 아직 적용되지 않으며, HTML dir 속성은 매핑되지 않습니다(CSS direction을 사용하세요). 오른쪽에서 왼쪽으로 쓰는 아랍어 HTML 렌더링을 참조하세요. 백필 #629. |
CSS Writing Modes (css_writing_modes_4) | 4 | ED | Unknown | low | 증거가 없습니다. |
CSS Speech (css_speech_1) | 1 | CR | Not supported | high | 청각 렌더링은 해당되지 않습니다. |
CSS Mobile Text Size Adjustment (css_size_adjust_1) | 1 | ED | Not supported | high | 모바일 UA 힌트입니다. 해당되지 않습니다. |
| W3C 모듈 | 레벨 | W3C 단계 | 상태 | 신뢰도 | 증거 |
|---|
CSS Color (css_color_3) | 3 | REC | Claimed | medium | src/Html/Color/, NamedColors.php + 파서 테스트. 모듈 픽스처는 없습니다. 백필 #620. |
CSS Color (css_color_4) | 4 | CR | Claimed | medium | Lab/LCH/OKLab 파싱이 있습니다. PDF 색 공간 충실도는 어서션 대상이 아닙니다. |
CSS Color (css_color_5) | 5 | WD | Unknown | low | color-mix()가 증거로 확인되지 않습니다. |
CSS Color (css_color_6) | 6 | ED | Unknown | low | 증거가 없습니다. |
CSS Color Adjustment (css_color_adjust_1) | 1 | CR | Not supported | high | color-scheme는 UA 구동 방식입니다. 해당되지 않습니다. |
CSS Color HDR (css_color_hdr_1) | 1 | ED | Not supported | high | HDR은 PDF 색 공간으로 라우팅되지 않습니다. |
CSS Images (css_images_3) | 3 | CR | Claimed | medium | src/Html/Gradient/(linear/radial/conic) + 파서 테스트. |
CSS Images (css_images_4) | 4 | ED | Unknown | low | image()/image-set()가 증거로 확인되지 않습니다. |
CSS Images (css_images_5) | 5 | ED | Unknown | low | 증거가 없습니다. |
CSS Image Animation (css_image_animation_1) | 1 | ED | Not supported | high | 애니메이션 전용입니다. |
| W3C 모듈 | 레벨 | W3C 단계 | 상태 | 신뢰도 | 증거 |
|---|
CSS Selectors (selectors_3) | 3 | REC | Claimed | medium | HasSelectorResolver.php + CssRule 테스트. 픽스처는 단일 corpus.json입니다. 백필 #627. |
CSS Selectors (selectors_4) | 4 | WD | Claimed | medium | :is()/:where()/:not()/:has()가 테스트되었습니다. 고급 L4는 보류 중입니다. |
CSS Selectors (selectors_5) | 5 | ED | Unknown | low | 증거가 없습니다. |
CSS Non-element Selectors (selectors_nonelement_1) | 1 | WD | Not supported | high | 브라우저 스타일시트 훅입니다. 해당되지 않습니다. |
CSS Pseudo-Elements (css_pseudo_4) | 4 | WD | Claimed | medium | src/Html/Pseudo/(12개) + 렌더러 테스트 약 10개. 모듈 스위트는 없습니다. |
CSS Cascading and Inheritance (css_cascade_3) | 3 | REC | Verified | high | src/Html/Cascade/, tests/Unit/Html/Cascade/(9개 파일) |
CSS Cascading (css_cascade_4) | 4 | CR | Verified | high | Cascade/Layer/ + revert/layer 테스트 |
CSS Cascading (css_cascade_5) | 5 | CR | Verified | high | AtRule/Layer/ + Cascade/Layer/ 스위트 |
CSS Cascading (css_cascade_6) | 6 | WD | Unknown | low | @scope가 증거로 확인되지 않습니다. |
CSS Values and Units (css_values_3) | 3 | REC | Claimed | medium | CssValueParser.php + 단위 테스트. 픽스처는 단일 corpus.json입니다. 백필 #626. |
CSS Values and Units (css_values_4) | 4 | CR | Claimed | medium | calc()가 구현되었습니다. 중첩된 min()/max()/clamp()는 증거로 완전히 확인되지 않습니다. |
CSS Values and Units (css_values_5) | 5 | ED | Unknown | low | 증거가 없습니다. |
CSS Custom Properties (css_variables_1) | 1 | CR | Claimed | medium | src/Html/CustomProperty/ + 스코프 커버리지 테스트. |
CSS Custom Properties (css_variables_2) | 2 | ED | Unknown | low | 증거가 없습니다. |
CSS Conditional Rules (css_conditional_3) | 3 | CR | Claimed | medium | @media/@supports 파싱이 테스트되었습니다. @container 런타임은 보존됩니다(ADR-028). |
CSS Conditional Rules (css_conditional_4) | 4 | ED | Unknown | low | 증거가 없습니다. |
CSS Conditional Rules (css_conditional_5) | 5 | ED | Unknown | low | 증거가 없습니다. |
CSS Conditional Values (css_conditional_values_1) | 1 | ED | Unknown | low | 증거가 없습니다. |
CSS Namespaces (css_namespaces_3) | 3 | REC | Claimed | low | 파서는 @namespace를 허용합니다. 매칭 커버리지는 없습니다. |
CSS Style Attributes (css_style_attr_1) | 1 | CR | Claimed | medium | 파이프라인 전반에서 인라인 style 파싱이 있습니다. 전용 픽스처는 없습니다. 백필 #622. |
CSS Syntax (css_syntax_3) | 3 | CR | Claimed | medium | CssParser/ + grammar/fuzz 테스트. 적합성 픽스처는 없습니다. 백필 #623. |
CSS Nesting (css_nesting_1) | 1 | CR | Claimed | medium | unknown에서 승격됨 — CssNestingTest + desugar/inner-scan 테스트. |
CSS Environment Variables (css_env_1) | 1 | ED | Not supported | medium | UA 구동 env()입니다. 해당되지 않습니다. |
CSS Custom Functions and Mixins (css_mixins_1) | 1 | ED | Unknown | low | 증거가 없습니다. |
CSS Extensions (css_extensions_1) | 1 | NOTE | Unknown | low | 증거가 없습니다. |
| W3C 모듈 | 레벨 | W3C 단계 | 상태 | 신뢰도 | 증거 |
|---|
CSS Lists and Counters (css_lists_3) | 3 | WD | Claimed | medium | HtmlListRenderer.php/CssCounterManager.php + 테스트 18개. list-style-type은 ol/ul에 적용되지 않습니다(Phase 0). |
CSS Counter Styles (css_counter_styles_3) | 3 | CR | Claimed | medium | 내장 카운터 스타일이 있습니다. @counter-style는 보류 중입니다. |
CSS Generated Content (css_content_3) | 3 | WD | Claimed | medium | CssContentSegment.php + 의사 요소 테스트. 적용기를 우회합니다(Phase 0). 백필 #621. |
CSS Generated Content for Paged Media (css_gcpm_3) | 3 | WD | Claimed | medium | src/Html/Gcpm/ 레지스트리 + 각주 캡처 테스트. |
CSS Generated Content for Paged Media (css_gcpm_4) | 4 | ED | Unknown | low | 증거가 없습니다. |
| W3C 모듈 | 레벨 | W3C 단계 | 상태 | 신뢰도 | 증거 |
|---|
CSS Paged Media (css_page_3) | 3 | WD | Claimed | medium | Page/, PagedMedia/, PageRule.php + PageRuleParser/PageMarginBox 테스트. tests/Unit/Html/Page/에는 파일이 1개 있습니다. 백필 #624. |
CSS Paged Media (css_page_4) | 4 | NOTE | Unknown | low | 향후 제안입니다. |
CSS Print Profile (css_print) | 1 | NOTE | Claimed | low | 정적 PDF 대상은 인쇄 제약을 준수합니다. 적합성 픽스처는 없습니다. |
CSS Presentation Levels (css_preslev_1) | 1 | NOTE | Not supported | high | 슬라이드웨어 내비게이션입니다. 해당되지 않습니다. |
| W3C 모듈 | 레벨 | W3C 단계 | 상태 | 신뢰도 | 증거 |
|---|
CSS Overflow (css_overflow_3) | 3 | WD | Claimed | low | OverflowClip/ClipRect 테스트. 클리핑은 Table 셀 전용입니다(Phase 0). |
CSS Overflow (css_overflow_4) | 4 | ED | Unknown | low | 증거가 없습니다. |
CSS Overflow (css_overflow_5) | 5 | ED | Unknown | low | 증거가 없습니다. |
CSS Overscroll Behavior (css_overscroll_1) | 1 | CR | Not supported | high | 스크롤 런타임입니다. 해당되지 않습니다. |
CSS Scroll Anchoring (css_scroll_anchoring_1) | 1 | WD | Not supported | high | 스크롤 런타임입니다. 해당되지 않습니다. |
CSS Scroll Snap (css_scroll_snap_1) | 1 | REC | Not supported | high | 스크롤 런타임입니다. 해당되지 않습니다. |
CSS Scroll Snap (css_scroll_snap_2) | 2 | WD | Not supported | high | 스크롤 런타임입니다. 해당되지 않습니다. |
CSS Scrollbars Styling (css_scrollbars_1) | 1 | CR | Not supported | high | UA 런타임입니다. 해당되지 않습니다. |
CSS Basic User Interface (css_ui_3) | 3 | REC | Not supported | medium | cursor/resize는 브라우저 UI 전용입니다. |
CSS Basic User Interface (css_ui_4) | 4 | WD | Not supported | high | UA 런타임입니다. 해당되지 않습니다. |
CSS Form Control Styling (css_forms_1) | 1 | ED | Not supported | high | 폼 위젯은 정적 PDF에서 렌더링되지 않습니다. |
CSS View Transitions (css_view_transitions_1) | 1 | WD | Not supported | high | 애니메이션 전용입니다. |
CSS View Transitions (css_view_transitions_2) | 2 | ED | Not supported | high | 애니메이션 전용입니다. |
CSS Spatial Navigation (css_nav_1) | 1 | NOTE | Not supported | high | UA 런타임입니다. 해당되지 않습니다. |
CSS Route Matching (css_navigation_1) | 1 | ED | Not supported | high | UA 런타임입니다. 해당되지 않습니다. |
| W3C 모듈 | 레벨 | W3C 단계 | 상태 | 신뢰도 | 증거 |
|---|
CSS Table (css_tables_3) | 3 | WD | Verified | high | src/Html/Table/, tests/Unit/Html/Table/(17개) + TableParser 테스트 약 60개 + 합성 골든 PDF 5개 위치: tests/Corpus/tables/ |
| W3C 모듈 | 레벨 | W3C 단계 | 상태 | 신뢰도 | 증거 |
|---|
CSS Transforms (css_transforms_1) | 1 | CR | Claimed | medium | Renderer/Transform/ + ApplyTransformCommand.php. 전용 픽스처는 없습니다. |
CSS Transforms (css_transforms_2) | 2 | ED | Unknown | low | 3D 변환이 증거로 확인되지 않습니다. |
CSS Animations (css_animations_1) | 1 | WD | Not supported | high | 애니메이션 타임라인은 정적 PDF 에 해당되지 않습니다. |
CSS Animations (css_animations_2) | 2 | ED | Not supported | high | 범위를 벗어납니다. |
CSS Transitions (css_transitions_1) | 1 | WD | Not supported | high | 범위를 벗어납니다. |
CSS Transitions (css_transitions_2) | 2 | ED | Not supported | high | 범위를 벗어납니다. |
CSS Easing Functions (css_easing_1) | 1 | CR | Not supported | high | 애니메이션 전용입니다. |
CSS Easing Functions (css_easing_2) | 2 | ED | Not supported | high | 애니메이션 전용입니다. |
Web Animations (web_animations_1) | 1 | WD | Not supported | high | 브라우저 런타임 API입니다. |
Web Animations (web_animations_2) | 2 | ED | Not supported | high | 브라우저 런타임 API입니다. |
Web Animations CSS Integration (web_animations_css_integration) | 1 | ED | Not supported | high | 브라우저 런타임 API입니다. |
Animation Triggers (animation_triggers) | 1 | ED | Not supported | high | 애니메이션 전용입니다. |
Pointer-driven Animations (pointer_animations_1) | 1 | ED | Not supported | high | 런타임 입력 이벤트입니다. 해당되지 않습니다. |
Scroll-driven Animations (scroll_animations_1) | 1 | ED | Not supported | high | 스크롤 런타임입니다. 해당되지 않습니다. |
CSS Animation Worklet (css_animation_worklet) | 1 | ED | Not supported | high | 브라우저 워클릿 런타임입니다. |
| W3C 모듈 | 레벨 | W3C 단계 | 상태 | 신뢰도 | 증거 |
|---|
CSS Anchor Positioning (css_anchor_position_1) | 1 | WD | Unknown | low | 어떤 anchor() 소스도 없습니다. |
CSS Anchor Positioning (css_anchor_position_2) | 2 | ED | Unknown | low | 증거가 없습니다. |
CSS Highlight API (css_highlight_api_1) | 1 | WD | Not supported | high | 브라우저 런타임 API입니다. |
CSS Properties and Values API (css_properties_values_api_1) | 1 | CR | Not supported | high | 브라우저 런타임 API입니다. |
CSS Painting API (css_paint_api_1) | 1 | WD | Not supported | high | 브라우저 워클릿 런타임입니다. |
CSS Typed OM (css_typed_om_1) | 1 | WD | Not supported | high | 브라우저 런타임 API입니다. |
CSSOM (cssom_1) | 1 | WD | Not supported | high | 브라우저 DOM API입니다. |
CSSOM View (cssom_view_1) | 1 | WD | Not supported | high | 브라우저 DOM API입니다. |
CSS Will Change (css_will_change_1) | 1 | CR | Not supported | high | 브라우저 최적화 힌트입니다. |
CSS Linked Parameters (css_link_params_1) | 1 | ED | Unknown | low | 증거가 없습니다. |
CSS Line Grid (css_line_grid_1) | 1 | NOTE | Unknown | low | 증거가 없습니다. |
CSS Rhythmic Sizing (css_rhythm_1) | 1 | ED | Unknown | low | 증거가 없습니다. |
CSS Round Display (css_round_display_1) | 1 | ED | Not supported | high | 원형 디스플레이 대상은 해당되지 않습니다. |
CSS Shaders (css_shaders_1) | 1 | NOTE | Not supported | high | W3C에서 제거되었습니다. |
CSS Viewport (css_viewport_1) | 1 | NOTE | Not supported | high | UA 뷰포트입니다. 해당되지 않습니다. |
| W3C 모듈 | 레벨 | W3C 단계 | 상태 | 신뢰도 | 증거 |
|---|
Media Queries (mediaqueries_3) | 3 | REC | Claimed | medium | CssParser/ + 미디어 쿼리 커버리지 테스트. 전용 픽스처는 없습니다. 백필 #625. |
Media Queries (mediaqueries_4) | 4 | CR | Claimed | medium | @media print/prefers-color-scheme가 파싱됩니다. 범위 구문(range syntax)은 보류 중입니다. |
Media Queries (mediaqueries_5) | 5 | WD | Unknown | low | 증거가 없습니다. |
| W3C 모듈 | 레벨 | W3C 단계 | 상태 | 신뢰도 | 증거 |
|---|
CSS Level 2 (css_2_1) | 2.1 | REC | Claimed | low | 기준선이 src/Html/ 전반에 분산되어 있습니다. 단일 적합성 픽스처는 없습니다. |
CSS Level 2.2 (css_2_2) | 2.2 | NOTE | Claimed | low | 분산된 기준선입니다. 전용 픽스처는 없습니다. |
CSS Snapshot 2026 (css_snapshot_2026) | snapshot | NOTE | Claimed | low | 다른 모듈의 색인입니다. 상태는 참조된 행의 집계입니다. |
이 W3C 모듈들은 코퍼스에 포함되어 있지만 CSS 렌더링 파이프라인 범위를 벗어납니다. 해당되는 경우 관련 기능 페이지에서 링크됩니다.
| W3C 모듈 | W3C 단계 | 상태 | 신뢰도 | 위치 |
|---|
W3C SVG 1.1 (svg_1_1) | REC | Claimed | low | 인라인 SVG 페인트 서브셋은 Renderer/PaintCommand/에 있습니다. CSS 매트릭스 픽스처는 없습니다. |
W3C SVG 2.0 (svg_2_0) | CR | Unknown | low | Premium 파이프라인 영역입니다. core 증거는 없습니다. |
W3C PNG 3rd Edition (png_3) | WD | Claimed | low | PNG 디코딩은 Graphics/ 모듈에서 이루어집니다(HTML/CSS 외부). |
W3C WOFF 1.0 (woff_1_0) | REC | Claimed | low | Font 스택을 통한 WOFF입니다. CSS 매트릭스 픽스처는 없습니다. |
W3C WOFF 2.0 (woff_2_0) | REC | Claimed | low | Font 스택을 통한 WOFF2입니다. CSS 매트릭스 픽스처는 없습니다. |
W3C WCAG 2.2 (wcag_2_2) | REC | Verified | medium | src/Html/Aam/, tests/Unit/Accessibility/HtmlAam/(4개 파일) — PDF/UA-2. |
W3C WAI-ARIA 1.2 (wai_aria_1_2) | REC | Verified | medium | tests/Unit/Accessibility/HtmlAam/(4개 파일). |
W3C ARIA Bundle (w3c_aria_bundle) | REC | Claimed | low | 지침 번들입니다. 구체적인 증거는 WAI-ARIA 행입니다. |
W3C AAM Bundle (w3c_aam_bundle) | NOTE | Claimed | low | 번들 포인터입니다. 증거는 WAI-ARIA/WCAG 행입니다. |
W3C ATAG 2.0 (atag_2_0) | REC | Not supported | high | 저작 도구 접근성입니다. 해당되지 않습니다. |
W3C XSL 1.1 (xsl_1_1) | REC | Not supported | high | XSL-FO 병렬 포매팅 모델입니다. 구현되지 않았습니다. |
W3C XSD 1.1 Part 1 (xsd_1_1_part1) | REC | Not supported | high | XML 스키마입니다. 해당되지 않습니다. |
W3C XSLT 3.0 (xslt_3_0) | REC | Not supported | high | 변환 언어입니다. 해당되지 않습니다. |
Resize Observer (resize_observer_1) | CR | Not supported | high | 브라우저 런타임 API입니다. |
어떤 행이 claimed → verified로 승격되려면 다음 조건을 충족해야 합니다:
- 전용 속성 수준 픽스처 스위트가
tests/Unit/Html/<Module>/ 아래에(파일 3개 이상) 있거나, 또는 tests/Wpt/corpus/ 아래의 실질적인 WPT 코퍼스 샤드(픽스처 50개 이상)가 어서션 테스트로 승격되어야 합니다.
- 픽스처는 모듈의 주요 속성에 대해 W3C 문법을 기준으로 NextPDF의 동작을 어서션해야 합니다.
- 픽스처는
NextPDF\Testing\ReproducibilityProfile 아래에서 결정론적으로 통과해야 합니다(어서션 픽스처에는 structural, bitwise는 모듈별 골든 PDF 기준선이 존재할 때만 사용).
- 해당 행의
nextpdf_status가 리포지토리 내 css-support-matrix-data.yaml에서 verified로 전환되며, 이때 fixture_path, repro_profile, confidence가 갱신됩니다.
어떤 행이 unknown → claimed로 승격되려면 다음 조건을 충족해야 합니다:
- 감사 패스에서
src/Html/의 구현 증거를 확인합니다(evidence + notes에 경로 인용).
- 백필 이슈가 열리고
backfill_issue에 링크됩니다.
- CSS 매트릭스 진실 보고서(
_css-matrix-truth-report.md, 리포지토리 내) — before/after 감사 델타, 신뢰도 분포, 등급 디인플레이션 로그.
- CSS 속성 커버리지 감사(
architecture/css-property-coverage-audit.md, 리포지토리 내) — 속성별 내부 4 상태 감사(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