Recursive AI

Documentation

All onerender docs

Normative descriptions of how the engine behaves where the specifications leave room, and of its public formats. Start with the README for what the packages are and how to call them.

PageWhat it covers
architecture.mdThe pipeline: styled-node tree, computed values, box tree, layout algorithms (block, inline, float, positioned, flex, grid, table, multi-column, paged), paint, incremental updates, interaction, animations. Each section lists what checks it.
layout-conventions.mdChoices made where the specifications allow several results, each with the browser evidence and the spec text, and the user agent style sheet.
text.mdThe text service: font resolution and fallback, shaping, @font-face, limits on hostile font data.
display-list.mdThe versioned display list format: items, ids, scopes, damage, in-place patching. What a backend or a GPU adapter consumes.
forms.mdForm controls, their metrics and states, text editing and IME composition.
animations.mdCSS Transitions and Animations on the host's clock, and where they deviate from the specifications.
pdf.mdPDF output: pages, vector or raster islands, tags, limits, known limitations, how it is validated.
razor.mdRendering a Razor component to a PDF or an image.
accessibility-facts.mdThe rendered page facts produced for accessibility checks.
geometry-differential.mdHow layout is compared with Chrome, element by element: formats, tolerance, corpus sets.
pixel-similarity.mdPixel comparison with Chrome screenshots (information only).
wpt-results.mdThe Web Platform Tests reftest runner, how results are counted, and the floors.
benchmarks.mdThe interactive and document benchmarks, how they are run and how to read them.

Measured results are in results/. Fuzz targets are described in fuzz/README.md, CI in .github/workflows/ci.yml and the package checks in tools/ci/.