NextPDF implementa el renderizado de CSS conforme a las especificaciones publicadas por el W3C. Esta página enumera cada módulo de CSS del corpus de especificaciones de NextPDF y registra el estado de compatibilidad auditado por veracidad de cada módulo en el pipeline de renderizado.
Esta revisión es el resultado de la auditoría de veracidad de la Wave 4 B2 (sección 4.4 del plan). Las insignias de la revisión estructural anterior eran marcadores de posición sin verificar. Cada fila se reclasificó a partir de evidencia real en disco (src/Html/, tests/, tests/Wpt/corpus/), los ADR de cambios incompatibles v8/v9 y la auditoría interna de cobertura de propiedades de CSS. Se priorizó la honestidad sobre la cobertura: cuando la auditoría exigió rebajar una insignia, se rebajó.
Cuatro insignias clasifican cada fila según el contrato de verificación:
- Verificado — implementación en
src/Html/ más un fixture automatizado, dedicado y sustancial: una suite de nivel de propiedad con tres o más archivos en tests/Unit/Html/<Module>/, o un fragmento de corpus de Web Platform Tests con cincuenta o más fixtures en tests/Wpt/corpus/. Todavía no hay una línea base de PDF de referencia conectada por módulo de CSS, por lo que las filas verificadas usan el perfil de reproducibilidad structural (equivalencia de aserciones de PHPUnit), nunca bitwise.
- Declarado — el comportamiento del módulo está implementado en
src/Html/ (se cita la ruta de origen), pero el fixture dedicado es escaso, compartido o inexistente. Cada fila declarada con una implementación concreta tiene una incidencia de relleno asociada.
- No compatible — fuera de alcance para el pipeline de renderizado de PDF estático. Incluye API exclusivas del tiempo de ejecución o del navegador, motores en tiempo de ejecución para scrolling/animation y trabajo descontinuado por el W3C. El motivo queda registrado.
- Desconocido — el módulo está en el corpus, pero no se pudo determinar evidencia de implementación ni de fixture. La auditoría nunca infirió al alza para mejorar el recuento.
La insignia partial de la revisión estructural se retiró: cada fila marcada anteriormente como partial se reclasificó como claimed (implementación presente, sin fixture dedicado) o verified.
| Insignia | Significado |
|---|
verified | src/Html/ + suite de fixtures dedicada (≥3 archivos) o fragmento de WPT (≥50 fixtures); pasa de forma determinista bajo el perfil structural. |
claimed | Evidencia de implementación en src/Html/, sin fixture dedicado. Incidencia de relleno con seguimiento. |
not-supported | Excluido explícitamente del alcance del PDF estático. Motivo registrado. |
unknown | Sin evidencia determinable. No se infirió al alza. |
La columna Confianza es una señal honesta y no binaria de qué tan sólida es la evidencia para la insignia indicada (high / medium / low), independiente de la insignia en sí.
NextPDF es compatible con los módulos de CSS que se enumeran a continuación en los niveles indicados. Las filas marcadas como Verificado cuentan con una suite de fixtures automatizada dedicada o con un fragmento de corpus de WPT sustancial que valida el comportamiento de NextPDF, y pasan de forma determinista bajo el perfil de reproducibilidad structural. Las filas marcadas como Declarado tienen evidencia de implementación en src/Html/, pero todavía no tienen fixture dedicado; cada una recibe seguimiento mediante una incidencia de relleno en la incidencia de seguimiento #614. Las filas marcadas como No compatible documentan límites de alcance explícitos para el destino de PDF estático.
No hay una línea base de PDF de referencia por módulo de CSS en esta revisión; ninguna fila declara reproducibilidad a nivel de byte. Las filas vacías están prohibidas por el contrato de verificación: cuando no se puede determinar la compatibilidad, la fila es unknown.
| Estado | Módulos | Confianza (alto / medio / bajo) |
|---|
| Verificado | 12 | 8 / 4 / 0 |
| Declarado | 49 | 0 / 35 / 14 |
| No compatible | 67 | 62 / 5 / 0 |
| Desconocido | 39 | 0 / 0 / 39 |
| Total | 167 | 70 / 44 / 53 |
El bloque summary de la revisión estructural presentaba inconsistencias internas: declaraba 148 en total (18 verified / 11 partial / 11 claimed / 53 not-supported / 55 unknown), pero el archivo en realidad contenía 167 filas de módulos cuyas propias etiquetas sumaban 34 verified / 13 partial / 13 claimed / 68 not-supported / 39 unknown. Esta auditoría corrigió el total al valor real de 167 y reclasificó cada fila frente a la evidencia en disco: la categoría Verificado pasó de 34 declarados a 12 fundamentados. Esa reducción es el resultado correcto de una auditoría honesta, no una regresión. El delta completo before/after está en el archivo complementario _css-matrix-truth-report.md del repositorio.
La revisión estructural etiquetó incorrectamente tres capacidades activas como eliminadas o no compatibles. El ADR-027 y el ADR-028 eliminaron del enum ExperimentalFeature únicamente los marcadores de adhesión; las capacidades en sí siguen ACTIVAS de forma predeterminada:
- Subgrid (
css_grid_2) — ACTIVO; CssFeatureFlags::$layoutSubgrid activado de forma predeterminada. Se había etiquetado incorrectamente como «subgrid eliminado a la fuerza en v9.0.0».
- Consultas
@container (css_contain_2) — el despacho en tiempo de ejecución queda explícitamente sin cambios por el ADR-028; se preserva la exclusión por marca. Se había etiquetado incorrectamente como «eliminado a la fuerza en v9.0.0».
writing-mode: vertical-lr (css_writing_modes_3) — estable y activo de forma predeterminada desde v7.0.0; el ADR-027 solo graduó el protocolo de obsolescencia. Se había etiquetado incorrectamente como «obsoleto/eliminado en v8.0.0».
El conjunto legible por máquina de filas por módulo reside en el archivo css-support-matrix-data.yaml del repositorio y es la fuente de verdad. Esta página es la proyección legible para humanos, agrupada por categoría. Los componentes de Astro consumen el YAML directamente durante la compilación de la documentación.
| Módulo W3C | Nivel | W3C | Estado | Confianza | Evidencia |
|---|
CSS Flexible Box Layout (css_flexbox_1) | 1 | CR | Verificado | alto | src/Html/Flex/, tests/Unit/Html/Flex/ (50 archivos) |
CSS Grid Layout (css_grid_1) | 1 | REC | Verificado | alto | src/Html/Grid/, tests/Unit/Html/Grid/ (25), tests/Wpt/corpus/css-grid/ (654) |
CSS Grid Layout — Subgrid (css_grid_2) | 2 | CR | Declarado | medio | src/Html/Grid/Subgrid/ + fragmento de WPT de 80 fixtures + 1 prueba de integración. ACTIVO de forma predeterminada (el ADR-028 eliminó únicamente el marcador del enum). |
CSS Grid Layout — Masonry (css_grid_3) | 3 | ED | No compatible | alto | Masonry queda fuera de alcance para v5.x. |
CSS Display (css_display_3) | 3 | CR | Declarado | medio | DisplayResolver.php + pruebas del resolutor; sin suite dedicada de propiedades. |
CSS Display (css_display_4) | 4 | ED | Desconocido | bajo | Sin evidencia para L4. |
CSS Positioned Layout (css_position_3) | 3 | WD | Verificado | alto | src/Html/Positioned/, tests/Unit/Html/Positioned/ (8 archivos) |
CSS Positioned Layout (css_position_4) | 4 | ED | Desconocido | bajo | position: sticky/anchor no están evidenciados. |
CSS Box Alignment (css_align_3) | 3 | WD | Declarado | medio | Implementado en los motores de Flex/Grid; sin suite independiente. |
CSS Box Sizing (css_sizing_3) | 3 | CR | Declarado | bajo | src/Html/Length/; la auditoría de la Fase 0 muestra que width/height son, en gran medida, SOLO-POLÍTICA. |
CSS Box Sizing (css_sizing_4) | 4 | ED | Desconocido | bajo | Las palabras clave de tamaño intrínseco no están evidenciadas. |
CSS Box Model (css_box_3) | 3 | WD | Declarado | medio | Cobertura del colapso de márgenes; falta el modelo de caja left/right según la auditoría de la Fase 0. Relleno #617. |
CSS Box Model (css_box_4) | 4 | ED | Desconocido | bajo | Sin evidencia. |
CSS Multi-column Layout (css_multicol_1) | 1 | CR | Declarado | medio | src/Html/MultiCol/; sin suite de propiedades. |
CSS Multi-column Layout (css_multicol_2) | 2 | ED | Desconocido | bajo | Sin evidencia. |
CSS Fragmentation (css_break_3) | 3 | CR | Verificado | medio | src/Html/Fragmentation/, tests/Unit/Html/PagedMedia/ (20 archivos) |
CSS Fragmentation (css_break_4) | 4 | ED | Desconocido | bajo | Sin evidencia. |
CSS Containment (css_contain_1) | 1 | REC | No compatible | medio | Sin aplicador de contain layout/paint; sin modelo de actualización en vivo. |
CSS Containment — @container (css_contain_2) | 2 | CR | Declarado | bajo | Fragmento de WPT de 114 fixtures + modelo de disposición retenida del ADR-017/021. Tiempo de ejecución ACTIVO (el ADR-028 eliminó únicamente el marcador del enum). |
CSS Containment (css_contain_3) | 3 | ED | No compatible | medio | La contención de estilo queda fuera de alcance. |
CSS Inline Layout (css_inline_3) | 3 | WD | Declarado | medio | src/Html/Layout/InlineLayout/ + 8 pruebas; initial-letter no está evidenciado. |
CSS Logical Properties (css_logical_1) | 1 | WD | Declarado | medio | Resolutor lógico→físico para WritingMode; sin fixture dedicado. Los valores lógicos text-align: start/end se resuelven en función de direction —bajo direction: rtl, start es el borde derecho— y se aplican en las celdas de tabla. |
CSS Page Floats (css_page_floats_3) | 3 | ED | No compatible | alto | Fuera de alcance para v5.x. |
CSS Pagination Templates (css_page_templates_3) | 3 | ED | No compatible | alto | La paginación multirregión queda fuera de alcance. |
CSS Exclusions (css_exclusions_1) | 1 | WD | No compatible | alto | Nivel C; sin compromiso en la hoja de ruta. |
CSS Regions (css_regions_1) | 1 | WD | No compatible | alto | Descontinuado por el W3C. |
CSS Template Layout (css_template_1) | 1 | NOTE | No compatible | alto | Fuera de alcance. |
CSS Layout API (css_layout_api_1) | 1 | WD | No compatible | alto | Tiempo de ejecución de worklet; no aplicable. |
| Módulo W3C | Nivel | W3C | Estado | Confianza | Evidencia |
|---|
CSS Backgrounds and Borders (css_backgrounds_3) | 3 | CR | Declarado | medio | src/Html/Background/, BorderRenderer.php; bg-color solo se aplica en tablas según la auditoría de la Fase 0. Relleno #628. |
CSS Backgrounds (css_backgrounds_4) | 4 | ED | Desconocido | bajo | Sin evidencia. |
CSS Borders and Box Decorations (css_borders_4) | 4 | ED | Desconocido | bajo | Sin evidencia. |
CSS Gap Decorations (css_gaps_1) | 1 | ED | Desconocido | bajo | Sin evidencia. |
CSS Masking (css_masking_1) | 1 | CR | No compatible | medio | clip-path/mask no se enrutan a los operadores de recorte de PDF. |
CSS Shadow Module (css_shadow_1) | 1 | ED | Declarado | medio | src/Html/Shadow/ (BoxShadowRenderer); sin fixture dedicado. |
CSS Shapes (css_shapes_1) | 1 | CR | No compatible | alto | shape-outside queda fuera de alcance para v5.x. |
CSS Shapes (css_shapes_2) | 2 | ED | No compatible | alto | Fuera de alcance. |
Filter Effects (filter_effects_1) | 1 | WD | No compatible | alto | Las primitivas de filtro SVG no se enrutan a PDF. |
Filter Effects (filter_effects_2) | 2 | ED | No compatible | alto | Fuera de alcance. |
Compositing and Blending (compositing_1) | 1 | CR | Declarado | medio | Asignación de modos de fusión de PDF en PaintCommand/; una prueba de modo de fusión. |
Compositing (compositing_2) | 2 | ED | Desconocido | bajo | Sin evidencia. |
CSS Fill and Stroke (fill_stroke_3) | 3 | ED | Desconocido | bajo | Sin evidencia. |
Geometry Interfaces (geometry_1) | 1 | CR | No compatible | alto | API DOM Matrix de tiempo de ejecución. |
DOMMatrix (matrix) | 1 | NOTE | No compatible | alto | API de tiempo de ejecución del navegador. |
Motion Path (motion_1) | 1 | WD | No compatible | alto | Solo animación. |
| Módulo W3C | Nivel | W3C | Estado | Confianza | Evidencia |
|---|
CSS Fonts (css_fonts_3) | 3 | REC | Verificado | medio | src/Html/Font/, tests/Unit/Font/ (9) + pruebas de FontResolver |
CSS Fonts (css_fonts_4) | 4 | CR | Verificado | alto | src/Html/FontFace/, tests/Unit/Html/FontFace/ (31 archivos) |
CSS Fonts (css_fonts_5) | 5 | ED | Desconocido | bajo | font-tech() no está evidenciado. |
CSS Font Loading (css_font_loading_3) | 3 | WD | No compatible | alto | API FontFace de JS en tiempo de ejecución; la carga queda del lado de PHP mediante FontResolver. |
CSS Text (css_text_3) | 3 | CR | Declarado | medio | src/Html/Text/ + 5 pruebas; Fase 0 COMPLETA para align/indent/spacing, white-space solo para <pre>. Relleno #618. |
CSS Text (css_text_4) | 4 | ED | Declarado | medio | src/Html/Layout/Hyphenation/ + pruebas de estrategia; otras propiedades de L4 pendientes. |
CSS Text Decoration (css_text_decor_3) | 3 | CR | Declarado | medio | src/Html/Text/; Fase 0 COMPLETA pero sin fixture dedicado. Relleno #619. |
CSS Text Decoration (css_text_decor_4) | 4 | ED | Desconocido | bajo | text-emphasis no está evidenciado. |
CSS Ruby (css_ruby_1) | 1 | WD | No compatible | alto | Las anotaciones Ruby quedan fuera de alcance para v5.x. |
CSS Writing Modes (css_writing_modes_3) | 3 | REC | Declarado | medio | src/Html/Layout/WritingMode/ (7 pruebas) + fragmento de WPT de 140 fixtures. vertical-lr ACTIVO de forma predeterminada (ADR-027). direction: rtl es funcional: reordenación bidireccional UAX#9 más shaping contextual del árabe, con alineación al inicio en las celdas de tabla. La alineación de bloques que no son de tabla y justify todavía no se aplican, y el atributo HTML dir no se asigna (usar el CSS direction). Consulta Renderizar HTML árabe de derecha a izquierda. Relleno #629. |
CSS Writing Modes (css_writing_modes_4) | 4 | ED | Desconocido | bajo | Sin evidencia. |
CSS Speech (css_speech_1) | 1 | CR | No compatible | alto | El renderizado auditivo no es aplicable. |
CSS Mobile Text Size Adjustment (css_size_adjust_1) | 1 | ED | No compatible | alto | Sugerencia del UA para teléfonos; no aplicable. |
| Módulo W3C | Nivel | W3C | Estado | Confianza | Evidencia |
|---|
CSS Color (css_color_3) | 3 | REC | Declarado | medio | src/Html/Color/, NamedColors.php + pruebas del parser; sin fixture de módulo. Relleno #620. |
CSS Color (css_color_4) | 4 | CR | Declarado | medio | Análisis de Lab/LCH/OKLab; no se afirma la fidelidad del espacio de color de PDF. |
CSS Color (css_color_5) | 5 | WD | Desconocido | bajo | color-mix() no está evidenciado. |
CSS Color (css_color_6) | 6 | ED | Desconocido | bajo | Sin evidencia. |
CSS Color Adjustment (css_color_adjust_1) | 1 | CR | No compatible | alto | color-scheme gobernado por el UA; no aplicable. |
CSS Color HDR (css_color_hdr_1) | 1 | ED | No compatible | alto | El HDR no se enruta al espacio de color de PDF. |
CSS Images (css_images_3) | 3 | CR | Declarado | medio | src/Html/Gradient/ (lineal/radial/cónico) + pruebas del parser. |
CSS Images (css_images_4) | 4 | ED | Desconocido | bajo | image()/image-set() no están evidenciados. |
CSS Images (css_images_5) | 5 | ED | Desconocido | bajo | Sin evidencia. |
CSS Image Animation (css_image_animation_1) | 1 | ED | No compatible | alto | Solo animación. |
| Módulo W3C | Nivel | W3C | Estado | Confianza | Evidencia |
|---|
CSS Selectors (selectors_3) | 3 | REC | Declarado | medio | HasSelectorResolver.php + pruebas de CssRule; el fixture es un único corpus.json. Relleno #627. |
CSS Selectors (selectors_4) | 4 | WD | Declarado | medio | :is()/:where()/:not()/:has() probados; queda pendiente L4 avanzado. |
CSS Selectors (selectors_5) | 5 | ED | Desconocido | bajo | Sin evidencia. |
CSS Non-element Selectors (selectors_nonelement_1) | 1 | WD | No compatible | alto | Enlaces de hoja de estilos del navegador; no aplicable. |
CSS Pseudo-Elements (css_pseudo_4) | 4 | WD | Declarado | medio | src/Html/Pseudo/ (12) + ~10 pruebas del renderer; sin suite de módulo. |
CSS Cascading and Inheritance (css_cascade_3) | 3 | REC | Verificado | alto | src/Html/Cascade/, tests/Unit/Html/Cascade/ (9 archivos) |
CSS Cascading (css_cascade_4) | 4 | CR | Verificado | alto | Cascade/Layer/ + pruebas de revert/layer |
CSS Cascading (css_cascade_5) | 5 | CR | Verificado | alto | AtRule/Layer/ + Cascade/Layer/ suites |
CSS Cascading (css_cascade_6) | 6 | WD | Desconocido | bajo | @scope no está evidenciado. |
CSS Values and Units (css_values_3) | 3 | REC | Declarado | medio | CssValueParser.php + pruebas unitarias; el fixture es un único corpus.json. Relleno #626. |
CSS Values and Units (css_values_4) | 4 | CR | Declarado | medio | calc() implementado; min()/max()/clamp() anidados no están completamente evidenciados. |
CSS Values and Units (css_values_5) | 5 | ED | Desconocido | bajo | Sin evidencia. |
CSS Custom Properties (css_variables_1) | 1 | CR | Declarado | medio | src/Html/CustomProperty/ + prueba de cobertura de ámbito. |
CSS Custom Properties (css_variables_2) | 2 | ED | Desconocido | bajo | Sin evidencia. |
CSS Conditional Rules (css_conditional_3) | 3 | CR | Declarado | medio | Análisis de @media/@supports probado; @container en tiempo de ejecución preservado (ADR-028). |
CSS Conditional Rules (css_conditional_4) | 4 | ED | Desconocido | bajo | Sin evidencia. |
CSS Conditional Rules (css_conditional_5) | 5 | ED | Desconocido | bajo | Sin evidencia. |
CSS Conditional Values (css_conditional_values_1) | 1 | ED | Desconocido | bajo | Sin evidencia. |
CSS Namespaces (css_namespaces_3) | 3 | REC | Declarado | bajo | El parser tolera @namespace; sin cobertura de coincidencia. |
CSS Style Attributes (css_style_attr_1) | 1 | CR | Declarado | medio | Análisis de style en línea a lo largo del pipeline; sin fixture dedicado. Relleno #622. |
CSS Syntax (css_syntax_3) | 3 | CR | Declarado | medio | CssParser/ + pruebas de grammar/fuzz; sin fixture de conformidad. Relleno #623. |
CSS Nesting (css_nesting_1) | 1 | CR | Declarado | medio | Promovido desde unknown — CssNestingTest + pruebas de desugar/inner-scan. |
CSS Environment Variables (css_env_1) | 1 | ED | No compatible | medio | env() gobernado por el UA; no aplicable. |
CSS Custom Functions and Mixins (css_mixins_1) | 1 | ED | Desconocido | bajo | Sin evidencia. |
CSS Extensions (css_extensions_1) | 1 | NOTE | Desconocido | bajo | Sin evidencia. |
| Módulo W3C | Nivel | W3C | Estado | Confianza | Evidencia |
|---|
CSS Lists and Counters (css_lists_3) | 3 | WD | Declarado | medio | HtmlListRenderer.php/CssCounterManager.php + 18 pruebas; list-style-type no se aplica a ol/ul (Fase 0). |
CSS Counter Styles (css_counter_styles_3) | 3 | CR | Declarado | medio | Estilos de contador integrados; @counter-style pendiente. |
CSS Generated Content (css_content_3) | 3 | WD | Declarado | medio | CssContentSegment.php + pruebas de pseudoelementos; omite el aplicador (Fase 0). Relleno #621. |
CSS Generated Content for Paged Media (css_gcpm_3) | 3 | WD | Declarado | medio | src/Html/Gcpm/ registros + una prueba de captura de notas al pie. |
CSS Generated Content for Paged Media (css_gcpm_4) | 4 | ED | Desconocido | bajo | Sin evidencia. |
| Módulo W3C | Nivel | W3C | Estado | Confianza | Evidencia |
|---|
CSS Paged Media (css_page_3) | 3 | WD | Declarado | medio | Page/, PagedMedia/, PageRule.php + pruebas de PageRuleParser/PageMarginBox; tests/Unit/Html/Page/ tiene 1 archivo. Relleno #624. |
CSS Paged Media (css_page_4) | 4 | NOTE | Desconocido | bajo | Propuestas futuras. |
CSS Print Profile (css_print) | 1 | NOTE | Declarado | bajo | El destino de PDF estático respeta las restricciones de impresión; sin fixture de conformidad. |
CSS Presentation Levels (css_preslev_1) | 1 | NOTE | No compatible | alto | Navegación de presentaciones; no aplicable. |
| Módulo W3C | Nivel | W3C | Estado | Confianza | Evidencia |
|---|
CSS Overflow (css_overflow_3) | 3 | WD | Declarado | bajo | Pruebas de OverflowClip/ClipRect; recorte solo en celdas de tabla (Fase 0). |
CSS Overflow (css_overflow_4) | 4 | ED | Desconocido | bajo | Sin evidencia. |
CSS Overflow (css_overflow_5) | 5 | ED | Desconocido | bajo | Sin evidencia. |
CSS Overscroll Behavior (css_overscroll_1) | 1 | CR | No compatible | alto | Tiempo de ejecución de desplazamiento; no aplicable. |
CSS Scroll Anchoring (css_scroll_anchoring_1) | 1 | WD | No compatible | alto | Tiempo de ejecución de desplazamiento; no aplicable. |
CSS Scroll Snap (css_scroll_snap_1) | 1 | REC | No compatible | alto | Tiempo de ejecución de desplazamiento; no aplicable. |
CSS Scroll Snap (css_scroll_snap_2) | 2 | WD | No compatible | alto | Tiempo de ejecución de desplazamiento; no aplicable. |
CSS Scrollbars Styling (css_scrollbars_1) | 1 | CR | No compatible | alto | Tiempo de ejecución del UA; no aplicable. |
CSS Basic User Interface (css_ui_3) | 3 | REC | No compatible | medio | cursor/resize son solo de interfaz del navegador. |
CSS Basic User Interface (css_ui_4) | 4 | WD | No compatible | alto | Tiempo de ejecución del UA; no aplicable. |
CSS Form Control Styling (css_forms_1) | 1 | ED | No compatible | alto | El PDF estático no renderiza controles de formulario. |
CSS View Transitions (css_view_transitions_1) | 1 | WD | No compatible | alto | Solo animación. |
CSS View Transitions (css_view_transitions_2) | 2 | ED | No compatible | alto | Solo animación. |
CSS Spatial Navigation (css_nav_1) | 1 | NOTE | No compatible | alto | Tiempo de ejecución del UA; no aplicable. |
CSS Route Matching (css_navigation_1) | 1 | ED | No compatible | alto | Tiempo de ejecución del UA; no aplicable. |
| Módulo W3C | Nivel | W3C | Estado | Confianza | Evidencia |
|---|
CSS Table (css_tables_3) | 3 | WD | Verificado | alto | src/Html/Table/, tests/Unit/Html/Table/ (17) + ~60 pruebas de TableParser + 5 PDF de referencia sintéticos en tests/Corpus/tables/ |
| Módulo W3C | Nivel | W3C | Estado | Confianza | Evidencia |
|---|
CSS Transforms (css_transforms_1) | 1 | CR | Declarado | medio | Renderer/Transform/ + ApplyTransformCommand.php; sin fixture dedicado. |
CSS Transforms (css_transforms_2) | 2 | ED | Desconocido | bajo | Las transformaciones 3D no están evidenciadas. |
CSS Animations (css_animations_1) | 1 | WD | No compatible | alto | La línea de tiempo de animación no es aplicable al PDF estático. |
CSS Animations (css_animations_2) | 2 | ED | No compatible | alto | Fuera de alcance. |
CSS Transitions (css_transitions_1) | 1 | WD | No compatible | alto | Fuera de alcance. |
CSS Transitions (css_transitions_2) | 2 | ED | No compatible | alto | Fuera de alcance. |
CSS Easing Functions (css_easing_1) | 1 | CR | No compatible | alto | Solo animación. |
CSS Easing Functions (css_easing_2) | 2 | ED | No compatible | alto | Solo animación. |
Web Animations (web_animations_1) | 1 | WD | No compatible | alto | API de tiempo de ejecución del navegador. |
Web Animations (web_animations_2) | 2 | ED | No compatible | alto | API de tiempo de ejecución del navegador. |
Web Animations CSS Integration (web_animations_css_integration) | 1 | ED | No compatible | alto | API de tiempo de ejecución del navegador. |
Animation Triggers (animation_triggers) | 1 | ED | No compatible | alto | Solo animación. |
Pointer-driven Animations (pointer_animations_1) | 1 | ED | No compatible | alto | Evento de entrada en tiempo de ejecución; no aplicable. |
Scroll-driven Animations (scroll_animations_1) | 1 | ED | No compatible | alto | Tiempo de ejecución de desplazamiento; no aplicable. |
CSS Animation Worklet (css_animation_worklet) | 1 | ED | No compatible | alto | Tiempo de ejecución de worklet del navegador. |
| Módulo W3C | Nivel | W3C | Estado | Confianza | Evidencia |
|---|
CSS Anchor Positioning (css_anchor_position_1) | 1 | WD | Desconocido | bajo | Sin fuente para anchor(). |
CSS Anchor Positioning (css_anchor_position_2) | 2 | ED | Desconocido | bajo | Sin evidencia. |
CSS Highlight API (css_highlight_api_1) | 1 | WD | No compatible | alto | API de tiempo de ejecución del navegador. |
CSS Properties and Values API (css_properties_values_api_1) | 1 | CR | No compatible | alto | API de tiempo de ejecución del navegador. |
CSS Painting API (css_paint_api_1) | 1 | WD | No compatible | alto | Tiempo de ejecución de worklet del navegador. |
CSS Typed OM (css_typed_om_1) | 1 | WD | No compatible | alto | API de tiempo de ejecución del navegador. |
CSSOM (cssom_1) | 1 | WD | No compatible | alto | API del DOM del navegador. |
CSSOM View (cssom_view_1) | 1 | WD | No compatible | alto | API del DOM del navegador. |
CSS Will Change (css_will_change_1) | 1 | CR | No compatible | alto | Sugerencia de optimización del navegador. |
CSS Linked Parameters (css_link_params_1) | 1 | ED | Desconocido | bajo | Sin evidencia. |
CSS Line Grid (css_line_grid_1) | 1 | NOTE | Desconocido | bajo | Sin evidencia. |
CSS Rhythmic Sizing (css_rhythm_1) | 1 | ED | Desconocido | bajo | Sin evidencia. |
CSS Round Display (css_round_display_1) | 1 | ED | No compatible | alto | El destino de pantalla redonda no es aplicable. |
CSS Shaders (css_shaders_1) | 1 | NOTE | No compatible | alto | Eliminado por el W3C. |
CSS Viewport (css_viewport_1) | 1 | NOTE | No compatible | alto | Viewport del UA; no aplicable. |
| Módulo W3C | Nivel | W3C | Estado | Confianza | Evidencia |
|---|
Media Queries (mediaqueries_3) | 3 | REC | Declarado | medio | CssParser/ + pruebas de cobertura de consultas de medios; sin fixture dedicado. Relleno #625. |
Media Queries (mediaqueries_4) | 4 | CR | Declarado | medio | @media print/prefers-color-scheme analizados; sintaxis de rangos pendiente. |
Media Queries (mediaqueries_5) | 5 | WD | Desconocido | bajo | Sin evidencia. |
| Módulo W3C | Nivel | W3C | Estado | Confianza | Evidencia |
|---|
CSS Level 2 (css_2_1) | 2.1 | REC | Declarado | bajo | Base distribuida en src/Html/; sin un único fixture de conformidad. |
CSS Level 2.2 (css_2_2) | 2.2 | NOTE | Declarado | bajo | Base distribuida; sin fixture dedicado. |
CSS Snapshot 2026 (css_snapshot_2026) | snapshot | NOTE | Declarado | bajo | Índice de otros módulos; el estado es el agregado de las filas referenciadas. |
Estos módulos del W3C aparecen en el corpus, pero quedan fuera del alcance del pipeline de renderizado de CSS. Se enlazan desde las páginas de funcionalidad correspondientes cuando procede.
| Módulo W3C | W3C | Estado | Confianza | Dónde |
|---|
W3C SVG 1.1 (svg_1_1) | REC | Declarado | bajo | Subconjunto de pintado de SVG en línea en Renderer/PaintCommand/; sin fixture de la matriz de CSS. |
W3C SVG 2.0 (svg_2_0) | CR | Desconocido | bajo | Pertenece al pipeline de Premium; sin evidencia en Core. |
W3C PNG 3rd Edition (png_3) | WD | Declarado | bajo | Decodificación de PNG en el módulo Graphics/ (fuera de HTML/CSS). |
W3C WOFF 1.0 (woff_1_0) | REC | Declarado | bajo | WOFF mediante la pila de fuentes; sin fixture de la matriz de CSS. |
W3C WOFF 2.0 (woff_2_0) | REC | Declarado | bajo | WOFF2 mediante la pila de fuentes; sin fixture de la matriz de CSS. |
W3C WCAG 2.2 (wcag_2_2) | REC | Verificado | medio | src/Html/Aam/, tests/Unit/Accessibility/HtmlAam/ (4 archivos) — PDF/UA-2. |
W3C WAI-ARIA 1.2 (wai_aria_1_2) | REC | Verificado | medio | tests/Unit/Accessibility/HtmlAam/ (4 archivos). |
W3C ARIA Bundle (w3c_aria_bundle) | REC | Declarado | bajo | Paquete de orientación; la evidencia concreta es la fila de WAI-ARIA. |
W3C AAM Bundle (w3c_aam_bundle) | NOTE | Declarado | bajo | Puntero al paquete; la evidencia son las filas de WAI-ARIA/WCAG. |
W3C ATAG 2.0 (atag_2_0) | REC | No compatible | alto | Accesibilidad de la herramienta de autoría; no aplicable. |
W3C XSL 1.1 (xsl_1_1) | REC | No compatible | alto | Modelo de formato paralelo XSL-FO; no implementado. |
W3C XSD 1.1 Part 1 (xsd_1_1_part1) | REC | No compatible | alto | Esquema XML; no aplicable. |
W3C XSLT 3.0 (xslt_3_0) | REC | No compatible | alto | Lenguaje de transformación; no aplicable. |
Resize Observer (resize_observer_1) | CR | No compatible | alto | API de tiempo de ejecución del navegador. |
Para que una fila ascienda de claimed a verified:
- Una suite de fixtures dedicada a nivel de propiedad reside en
tests/Unit/Html/<Module>/ (≥3 archivos) o se promueve un fragmento de corpus de WPT sustancial (≥50 fixtures) en tests/Wpt/corpus/ a una prueba con aserciones.
- El fixture valida el comportamiento de NextPDF frente a la gramática del W3C para las propiedades principales del módulo.
- El fixture pasa de forma determinista bajo un
NextPDF\Testing\ReproducibilityProfile (structural para los fixtures de aserciones; bitwise solo una vez que existan líneas base de PDF de referencia por módulo).
- El
nextpdf_status de la fila en el archivo css-support-matrix-data.yaml del repositorio cambia a verified con fixture_path, repro_profile y confidence actualizados.
Para que una fila ascienda de unknown a claimed:
- Una auditoría confirma evidencia de implementación en
src/Html/ (con la ruta citada en evidence + notes).
- Se abre una incidencia de relleno y se enlaza en
backfill_issue.
- Informe de veracidad de la matriz de CSS (
_css-matrix-truth-report.md, en el repositorio) — deltas de auditoría before/after, distribución de confianza, registro de desinflado.
- Auditoría de cobertura de propiedades de CSS (
architecture/css-property-coverage-audit.md, en el repositorio) — auditoría interna de cuatro estados por propiedad (Policy/Parsed/Applied/Rendered).
- ADR-027 v8.0.0 BREAKING (
architecture/adr/ADR-027-v8-breaking.md, en el repositorio) — graduación del protocolo de obsolescencia de vertical-lr (capacidad preservada).
- ADR-028 v9.0.0 BREAKING (
architecture/adr/ADR-028-v9-breaking.md, en el repositorio) — eliminación del marcador del enum Grid/Subgrid/@container (capacidades preservadas).
- Incidencia de seguimiento del relleno: https://github.com/nextpdf-labs/nextpdf/issues/614