Capabilities matrix
A single-page map of every IDML construct and how far the Paged renderer takes it — parsed, rendered, or not yet — with a link to the chapter that explains each one.
This is the one-page map of what the Paged renderer does with each IDML construct — the same support badge you see beside each feature in its chapter, gathered in one place.
In short: every construct documented in this reference carries a support
badge on its own page. This page collects them so you can scan the whole surface
at once. Each row is a feature, its current badge with a one-line note, and a
link to the chapter that explains it. It does not re-explain the constructs —
follow the link for that. The same statuses are mirrored in the engine's
README capability table and its internal roadmap, so the badge and the engine
stay honest about each other.
How to read this
- Supported — parsed and acted on in output. A note may flag a known edge that's still approximate.
- Parsed, not yet rendered — read into the model, but the renderer ignores it or only partly honours it (the note says which).
- Not yet parsed — the parser doesn't read it yet.
Foundations, package & layout
| Construct | Status | Where |
|---|---|---|
DOMVersion capture | Parsed, not yet rendered captured; parser is version-agnostic | Round-tripping |
<Section> page numbering | Supported roman/alpha/Arabic + prefix labels | Sections & numbering |
ShowMasterItems | Supported master items suppressed when false | Master spreads |
MasterPageTransform | Supported full affine applied | Layout model |
Spread / MasterSpread ItemTransform | Parsed, not yet rendered translation faithful; rotation/scale deferred | Layout model |
| Nested layer groups (folders) | Supported child inherits a hidden/locked parent | Layers |
Tagged XML (XMLElement/XMLStory/Mapping) | Not yet parsed backing store skipped | Tagged XML |
Stories, text & typography
| Construct | Status | Where |
|---|---|---|
| Knuth–Plass + hyphenation | Supported calibration ongoing | Typography |
NestedStyle run splitting | Supported per-delimiter fragments restyled | Styles |
| Conditional-text visibility | Supported hidden runs filtered pre-layout | Conditional text |
Position (super/subscript), VerticalScale | Supported baseline shift + y-scale applied | Typography |
| Footnote bodies | Supported drawn at frame bottom; reservation pending | Stories & text |
| Overset (last-frame overflow) | Supported clipped to match InDesign; now reported | Stories & text |
| Ruby | Parsed, not yet rendered GroupRuby MVP; per-character pending | Stories & text |
| CJK vertical writing | Parsed, not yet rendered direction captured; layout pending | The renderer |
| Optical kerning | Parsed, not yet rendered Metrics fallback | Typography |
| Kinsoku CJK rules | Parsed, not yet rendered heuristic only | Typography |
| In-story hyperlink regions | Not yet parsed not surfaced on runs | Cross-references & hyperlinks |
Color & swatches
| Construct | Status | Where |
|---|---|---|
Tint on color swatches | Supported TintValue applied | Color & swatches |
GradientStop midpoint | Supported midpoint-skewed interpolation | Color & swatches |
| CMYK overprint | Supported plane-aware on CPU; RGB approximates | Color & swatches |
| Mixed-ink / Lab / spot-without-CMYK | Parsed, not yet rendered RGB/CMYK fallback | Color & swatches |
Tables, frames & strokes
| Construct | Status | Where |
|---|---|---|
Cell VerticalJustification | Supported top/center/bottom | Tables |
Cell RotationAngle | Supported content rotated; borders unrotated | Tables |
| Row + column dividers | Supported rows win at crossings | Tables |
| Table / cell style cascade | Supported region defaults; StrokeOrder pending | Styles |
GraphicLine multi-segment / open | Supported | Frames & paths |
GraphicLine arrowheads | Supported triangle/circle/bar; calibration pending | Frames & paths |
| Decorative corner options | Supported Rounded/Inverse/Bevel exact; Inset/Fancy approx | Path geometry |
| Dotted strokes | Supported 12 variants + custom defs | Frames & paths |
| Striped / Wavy strokes | Parsed, not yet rendered solid-stroke fallback | Frames & paths |
| AutoSizing growth | Supported grows to fit; box stretch + wrap pending | Frames & paths |
Images, diagnostics & out-of-scope
| Construct | Status | Where |
|---|---|---|
Placed image (host AssetResolver) | Supported missing links → placeholder + diagnostic | Images & graphics |
| Vello (WebGPU) Image / Clip / blend | Supported soft effects approximated | Rendering backends |
| Render diagnostics channel | Supported overset / missing-asset / footnote / section reported | Graceful degradation |
| EPS / PostScript decode | Parsed, not yet rendered recognised; decode returns nothing | Images & graphics |
Companion formats (.idms/.icml/libraries) | Not yet parsed full-document entry only | Companion formats |
Questions
Is the matrix or the per-page badge authoritative? They are the same data. The badge on each construct's own chapter page is canonical; this page aggregates them for scanning. If they ever disagree, the chapter page wins and this one is stale.
Why is there no "partial" badge? The badge has three states by design. Where the renderer only partly honours a construct, we use the closest honest state and spell out the gap in the note — "supported … pending" for a feature that works in the common case with a known edge, "parsed, not yet rendered" for one the renderer still ignores.
Where is the engineering roadmap?
The remaining gaps are tracked in the engine's internal roadmap, kept in sync
with these badges and the core README capability table. This page shows the
reader-facing status; it doesn't expose internal scheduling.
Rendering backends
Paged has two rasterizers behind one trait — a WebGPU backend on Vello that powers the SDK and live preview, and a CPU backend on tiny-skia kept as the deterministic fidelity yardstick for headless CI.
Parser internals
How Paged turns an IDML package into a typed AST — the reader that opens the ZIP, the per-resource parsers that run on demand, and the forgiving recovery model that keeps a malformed document rendering.