Learning in public — this documentation is written in the open and updated as the engine moves.
paged.Paged Docs
The engineThe renderer

Capabilities matrix

A single-page map of every IDML construct and how far the Paged renderer takes it — parsed, rendered, or not yet. Generated live from the capability registry; the same status as the support badge on each feature's own page.

Tier: IntermediateIntermediateIIreference

In short Every IDML construct this reference documents, with how far the Paged renderer takes it — the same support badge you see beside each feature in its chapter, gathered in one place. This page is generated from the capability registry: it cannot drift from the engine, because it is the engine's recorded status. For the full cross-platform view (editor, server, plugins), see the platform capability matrix.

705
Capabilities
74%
Shipped
92%
Green of shipped
0
Failing
40
Untested
0
Re-test pending

40 chapters · from the capability record of 2026-10-18 (cockpit @ e53a7a52), built from the newest CI test runs.

How to read this

Each cell's glyph carries the meaning, so the grid reads in greyscale:

  • Supported · verified — shipped, and a test verifies it.
  • A partial cell means the construct is read but only partly acted on; a planned cell means it isn't handled yet. The note on each row's chapter page explains the specifics.

The columns are the engine layers each construct touches — most IDML constructs live in Parser and Renderer, with Mutation where editing applies.

● shipped & verified · ○ shipped, re-test pending · ◍ shipped, untested · ◐ partial · ✗ failing · · planned

Foundations 3 features · 100% green

FeatureParserCanvasSDKCanvas
IDML container open (ZIP + mimetype validation)
foundations.container.open
●●●●
designmap parse (spreads, stories, resources wiring)
foundations.designmap.structure
●
DOMVersion capture (version-agnostic parser)
foundations.domversion-capture
●

Package anatomy 9 features · 100% green

FeatureParserRendererCanvasSDKCanvasAPI
Composition part (paged/core/composition/document.pgd — arrangement)
package-anatomy.composition-part
◐●
Full package IMPORT — IDML adapter (designmap, spreads, stories, resources)
package-anatomy.core-import
●●●●●
Graphic part (colors, swatches, gradients, inks, stroke styles)
package-anatomy.graphic-part
●
Inline base64 image bytes (<Image><Properties><Contents>)
package-anatomy.inline-image-contents
●●
Native model part (paged/core/model/document.pgm — the self-owning document)
package-anatomy.native-model-part
●●·
The .paged container (ZIP-as-valid-IDML + plugin namespaces + manifest.json)
package-anatomy.paged-container
●●·
host.parts plugin persistence door (namespaced container parts that travel with the file)
package-anatomy.paged-parts-door
●·◐
Story parts (ParagraphStyleRange / CharacterStyleRange trees)
package-anatomy.story-parts
●
Tagged XML backing store (XMLElement/XMLStory/Mapping)
package-anatomy.tagged-xml-backing-store
·

Geometry & coordinates 6 features · 100% green

FeatureParserRendererMutationCanvasPanelGesture
Bezier path geometry (PathPointType anchors + handles)
geometry-coordinates.bezier-path-geometry
●●●●
Compound paths (multi-contour subpath boundaries)
geometry-coordinates.compound-subpaths
●●
GeometricBounds (y1 x1 y2 x2, pt)
geometry-coordinates.geometric-bounds
●●●●●
Image content transform (inner image within frame)
geometry-coordinates.image-content-transform
●●●●●
ItemTransform (2×3 affine per frame/page)
geometry-coordinates.item-transform
●●●●
Path topology ops (insert/remove anchor, open-at, curve type)
geometry-coordinates.path-topology-ops
●●●

Layout model 14 features · 100% green

FeatureParserRendererMutationCanvasCanvasPanelGesture
Break before (StartParagraph — next column, frame, page, odd/even page)
layout-model.break-before
●●●
Column rules between a text frame's columns
layout-model.column-rules
●●·
Facing pages in documents made in the editor
layout-model.facing-pages-authoring
···
FirstBaselineOffset modes
layout-model.first-baseline-offset
●●●
TextFrame AutoSizing (width/height growth)
layout-model.frame-autosizing
●●●
Ruler guides (parse, snap targets, editing)
layout-model.guides
●◐●●●·
Keep options (keep with next, keep lines together, first/last lines)
layout-model.keep-options
●●●
Page growth — a story's frame chain adds pages while it oversets (Smart Text Reflow)
layout-model.page-growth
●●◐
Span and split columns (SpanColumnType)
layout-model.span-split-columns
●●●
Spread / MasterSpread ItemTransform
layout-model.spread-item-transform
●●
Spreads & pages (geometry, stacking, page items)
layout-model.spreads-pages
●●●●●●
Text-frame columns (count, gutter, vertical balance)
layout-model.text-columns
●●●●
Text-frame threading chain (NextTextFrame story distribution)
layout-model.text-frame-chain
●●●●◐
Frame vertical justification (top/center/bottom/justify)
layout-model.vertical-justification
●●●

Stories & text 17 features · 100% green

FeatureParserRendererMutationCanvasCanvasPanelGesture
Text caret + range selection (geometry, content selection)
stories-text.caret-selection
●●◐
Drag-and-drop text
stories-text.drag-drop-text
·
Endnotes
stories-text.endnotes
●●●
Insert field (page-number marker etc.) at offset
stories-text.fields.insert
●●
Footnote bodies
stories-text.footnotes
●◐●
GREP styles (character style by regular expression)
stories-text.grep-styles
··
Hidden text handling
stories-text.hidden-text
◐
Nested character styles (per-delimiter run restyling)
stories-text.nested-styles
●●
Editorial notes (Note element)
stories-text.notes
●●●
Overset handling (last-frame overflow clipped + reported)
stories-text.overset
●●●◐
Auto page-number markers (current/next page)
stories-text.page-number-markers
●●
Story model (paragraph/character run trees)
stories-text.story-model
●●
Apply style attributes to a text range (applyStyle op)
stories-text.style-apply-range
●●●
Text wrap (bounding box / contour / jump modes + offsets)
stories-text.text-wrap
●●●●
Delete story range (Backspace/Delete + range)
stories-text.text.delete
●●●
Insert text at story offset
stories-text.text.insert
●●●◐
Tracked changes (insertions/deletions, author/date)
stories-text.tracked-changes
◐

Styles 13 features · 100% green

FeatureParserRendererMutationCanvasCanvasPanelScript
Based-on style inheritance chains
styles.based-on-chain
●●
Bullets & numbering (lists + numbering expressions)
styles.bullets-numbering
●●●◐◐
Style cascade (direct > character style > paragraph style)
styles.cascade
●●
Cell styles (create/rename/delete + apply)
styles.cell.crud
●●●●◐
Character styles (create/rename/delete + apply)
styles.character.crud
●●●●●●
Next-style chaining + override indicators + redefine
styles.next-style-overrides
●◐·
Object styles (create/rename/delete + apply)
styles.object.crud
●●●●●●
Paragraph border (per-corner radius + offsets)
styles.paragraph-border
●●
Paragraph rules above/below
styles.paragraph-rules
●●●
Paragraph shading (color/width/offset/corners)
styles.paragraph-shading
●●
Paragraph styles (create/rename/delete + apply)
styles.paragraph.crud
●●●●●●
Edit a style definition property (setStyleProperty)
styles.set-style-property
●●
Table styles (create/rename/delete + apply)
styles.table.crud
●●●●◐

Frames & paths 27 features · 100% green

FeatureParserRendererMutationCanvasPanelGestureDrawPublish
Appearance stack bakes to a group of stacked page items (B-24)
frames-paths.appearance-bake
●●●
GraphicLine arrowheads (triangle/circle/bar)
frames-paths.arrowheads
●●
Decorative corner options (Rounded/Inverse/Bevel/Inset/Fancy)
frames-paths.corner-options
●●●
Corner options on polygons (B-23) — apply arms, renderer, IDML write path
frames-paths.corner-options-polygon
●◐●●
Delete frame
frames-paths.frame.delete
●●
Insert frame (rectangle) by bounds
frames-paths.frame.insert
●●●
moveFrame wire op
frames-paths.frame.move-op
●
Groups (nesting + group transparency/blending + create/dissolve ops)
frames-paths.groups
●●●●●
Insert line (two-anchor open GraphicLine)
frames-paths.line.insert
●●●
Nested page items (paste-into) — parse, render clip, pasteInto/releaseFrom
frames-paths.nested-content
●●●●
Page-item kinds (TextFrame, Rectangle, Oval, Polygon, GraphicLine, Group)
frames-paths.page-item-kinds
●●
Path clipping/masking (non-zero winding)
frames-paths.path-clipping
●
closePath — close an open subpath (the faithful inverse of pathOpenAt)
frames-paths.path.close
●●●
Insert freehand path (optional smoothing)
frames-paths.path.insert
●●●
joinPaths — weld two open paths into one element
frames-paths.path.join
●●●
Pathfinder boolean (union/intersect/subtract/exclude)
frames-paths.pathfinder-boolean
●●●
Divide / Trim / Merge / Crop / Outline / Minus Back
frames-paths.pathfinder-verbs
●●●
Planar arrangement — faces of overlapping paths (B-22)
frames-paths.planar-arrangement
●●
Ellipse / polygon shape tools
frames-paths.shape-tools
●●●
Stroke alignment (center/inside/outside)
frames-paths.stroke-alignment
●◐●◐
Dashed + dotted strokes (dash arrays, 12 dotted variants)
frames-paths.stroke-dashed
●●●●
Stroke gap color/tint
frames-paths.stroke-gap-color
●●●●
Stroke overprint
frames-paths.stroke-overprint
●●●
Striped / wavy strokes
frames-paths.stroke-striped-wavy
●●●
Variable-width (tapered / pressure) strokes — per-anchor width outline
frames-paths.stroke-variable-width
●◐
Stroke weight + line caps + joins
frames-paths.stroke-weight-caps-joins
●●●●
Text on a path
frames-paths.text-on-path
●●●●●

Typography 24 features · 100% green

FeatureParserRendererMutationPanel
Balance ragged lines
typography.balance-ragged
●◐●
Align to baseline grid (document and frame grids)
typography.baseline-grid
◍◍··
Baseline shift
typography.baseline-shift
●●●●
Bidirectional text reordering
typography.bidi
●
Capitalization (AllCaps/SmallCaps/CapToSmallCap)
typography.capitalization
●●●◐
CJK vertical writing
typography.cjk-vertical-writing
●●
Drop caps (characters/lines + detail scaling)
typography.drop-caps
●●●
Font selection + fallback (AppliedFont/FontStyle/PointSize)
typography.font-selection
●●●◐
Hyphenation (TeX patterns; Proximity licensed)
typography.hyphenation
●●●
Hyphenation zone
typography.hyphenation-zone
●●
Word/letter spacing + glyph scaling (min/desired/max)
typography.justification-spacing
●●◐
Kenten emphasis marks
typography.kenten
●●
Kinsoku CJK line-break rules
typography.kinsoku
●◐
Knuth–Plass line breaking + justification modes
typography.knuth-plass
●●
Leading (explicit pt / auto)
typography.leading
●●●●
Ligatures + OpenType feature toggles
typography.ligatures-opentype
●●●◐
Mojikumi CJK spacing
typography.mojikumi
●◐
Position (superscript/subscript)
typography.position-super-subscript
●●●●
Ruby annotations
typography.ruby
●●
HorizontalScale + Skew (false italic)
typography.scale-skew
●●●●
Tab stops (L/C/R/decimal + leaders)
typography.tab-stops
●●●●
Tracking + kerning (metrics; optical falls back to metrics)
typography.tracking-kerning
●◐●◐
Underline / strikethrough decorations
typography.underline-strikethru
●●●●
VerticalScale
typography.vertical-scale
●●●●

Tables 13 features · 100% green

FeatureParserRendererMutationCanvasPanel
Alternating row/column fills
tables.alternating-fills
●●
Table borders + row/column dividers
tables.borders-strokes
●●
Per-cell text composition (cell as mini-frame)
tables.cell-composition
●●
Cell diagonal lines
tables.cell-diagonals
●●
Cell rotation
tables.cell-rotation
●●
Cell vertical justification
tables.cell-vertical-justification
●●
Table model (rows, columns, cells)
tables.model
●●◐◐◐
Tables inside cells
tables.nested-tables
●●
Row height constraints + column widths
tables.row-col-sizing
●●
Row keep options (Start Row, Keep With Next Row)
tables.row-keep-options
●●●
Row/column spans (cell merges)
tables.spans
●●●●
Table/cell style cascade (region defaults)
tables.style-cascade
●●

Color & swatches 12 features · 92% green

FeatureParserRendererMutationCanvasPanelGestureScript
Character fill color
color-swatches.character-fill
●●●●
Color groups (CRUD + membership)
color-swatches.color-groups
●●●●●
ColorOverride specials (paper/black/registration)
color-swatches.color-overrides
◍·
Document defaults for new objects (fill/stroke/weight)
color-swatches.document-defaults
●●
Apply fill/stroke color + tint to frames
color-swatches.fill-stroke-apply
●●●●●
Gradients (linear/radial, stops + midpoints)
color-swatches.gradients
●●●●●●●
ICC color management (lcms2 native / qcms wasm)
color-swatches.icc-cmm
●●●
Ink management (convert-to-process, aliases, standard Lab)
color-swatches.ink-manager
●●●
Lab / mixed-ink / spot-without-CMYK
color-swatches.lab-mixed-ink
●◐
CMYK overprint
color-swatches.overprint
●●
Process CMYK/RGB + spot inks + tints
color-swatches.process-spot-tint
●●●
Swatch CRUD (create/edit/delete + .ase import/export)
color-swatches.swatch.crud
●●●●●

Images & graphics 7 features · 86% green

FeatureParserRendererMutationPanelScript
Image clipping paths (from image metadata)
images-graphics.clipping-paths
●●
CMYK JPEG with embedded ICC profile
images-graphics.cmyk-jpeg-icc
◍◍
EPS / PostScript placements (recognised + honestly rendered; no decode)
images-graphics.eps-decode
●●
Frame fitting (fill/fit/content + crops)
images-graphics.frame-fitting
●●●●
Image clipped to frame path
images-graphics.image-clipping
●
Missing-image placeholder (grey + diagonal X) + diagnostic
images-graphics.missing-image-placeholder
●
Placed images (URI links via AssetResolver + inline base64)
images-graphics.placed-images
●●●●

Effects & transparency 11 features · 100% green

FeatureParserRendererMutationCanvasPanelGestureDrawPublish
Bevel & emboss
effects-transparency.bevel-emboss
●●●·
Blend modes (26 modes incl. multiply/screen/overlay)
effects-transparency.blend-modes
●●●·
Drop shadow (soft blur, offset, color, opacity)
effects-transparency.drop-shadow
●●●●
Feather (basic + directional)
effects-transparency.feather
●●●●
Outer / inner glow
effects-transparency.glows
●●●●
Gradient feather
effects-transparency.gradient-feather
●●●●
Inner shadow
effects-transparency.inner-shadow
●●●●
Object opacity
effects-transparency.opacity
●●●●●
Opacity masks — a real per-pixel soft mask (luminosity or alpha, invertible)
effects-transparency.opacity-mask
●●●●◐
Satin
effects-transparency.satin
●●●
Transparency groups (nested blend group buffering)
effects-transparency.transparency-groups
●◐

Anchored & inline objects 3 features · 100% green

FeatureParserRendererMutationCanvasPanel
Anchored alignment (space-or-align relative options)
anchored-inline-objects.anchor-alignment
●●
Anchored frames (above/below line placement)
anchored-inline-objects.anchored-frames
●●●
Anchored-object mutations
anchored-inline-objects.anchored-ops
●●
FeatureParserRendererMutationPanel
Cross-references
cross-references-hyperlinks.cross-references
●●●●
TOC entry resolution
cross-references-hyperlinks.toc
●●●●

Master spreads & overrides 4 features · 100% green

FeatureParserRendererMutationPanelPublish
Apply master to page (mutation)
master-spreads-overrides.apply-master-op
●
Master spread stamping (applied master, MasterPageTransform)
master-spreads-overrides.master-stamping
●●●●
Local override suppression of master items
master-spreads-overrides.override-resolution
●●
ShowMasterItems suppression
master-spreads-overrides.show-master-items
●●

Layers 5 features · 100% green

FeatureParserRendererMutationCanvasCanvasShellPanelScriptPublish
Assign an existing page item to a layer
layers.item-assignment
●●●●
Layer model (visibility, lock, printable, z-order)
layers.model
●●●
Nested layer groups (folders, inherited hide/lock)
layers.nested-groups
●●●●
Layer ops (insert/remove/move/rename + flags)
layers.ops
●●●●
Cross-shape z-sort (layer + XML order) + Arrange (reorderElement)
layers.z-ordering
●●●●●●

Sections, numbering & variables 4 features · 100% green

FeatureParserRendererMutationPanel
Page-number marker resolution (current/next/previous)
sections-numbering-variables.page-number-resolution
●●
Section CRUD (add section, ranges)
sections-numbering-variables.section-ops
●●
Sections (prefix, label styles, start numbers)
sections-numbering-variables.sections
●●
Text variables (definition + instance substitution)
sections-numbering-variables.text-variables
●◐

Conditional text 3 features · 100% green

FeatureParserRendererMutationCanvasPanelScript
Apply conditions to text ranges
conditional-text.applied-conditions
●●●●●●
Condition visibility ops (SetConditionVisible, ActivateConditionSet)
conditional-text.condition-ops
●
Condition visibility filtering (hidden runs pre-layout)
conditional-text.visibility-filtering
●●

Interactive & dynamic 4 features

FeatureParser
Animation + timing settings
interactive-dynamic.animation
·
Button behaviors (goto-page/state, show-hide, forms, zoom)
interactive-dynamic.behaviors
·
Buttons (states Up/RollOver/Down)
interactive-dynamic.buttons
◐
Sound & movie elements
interactive-dynamic.media
·

Tagged XML 1 features

FeatureParser
Tagged XML structure (XMLElement/XMLStory/Mapping)
tagged-xml.structure
·

Companion formats 2 features

FeatureParser
Books (a set of documents paginated, synchronised and exported as one)
companion-formats.book
·
Snippets & InCopy (.idms / .icml / libraries)
companion-formats.idms-icml
·

Round-tripping 5 features · 100% green

FeatureRendererMutationCanvasCanvasShellGestureScript
Batch operations (atomic, rollback-on-error, $created sentinel)
round-tripping.batch-atomicity
●●
Gesture transaction channel (begin/update/commit/cancel)
round-tripping.gesture-transactions
●●●
Re-serialize a PARSED document to IDML (save back)
round-tripping.idml-reserialization
◐●●
Native document round-trip (self-owning .paged model, no source parse)
round-tripping.native-reserialization
●●
Undo / redo (invertible operation log)
round-tripping.undo-redo
●●●●

Edge cases & degradation 1 features · 100% green

FeatureRendererCanvasSDK
Render diagnostics channel (overset, missing assets, fonts)
edge-cases.diagnostics-channel
●●●

The renderer 24 features · 100% green

FeatureRendererCanvasSDKCanvasShellPanelGestureScript
Typed collections read surface (21 collections)
the-renderer.collections-read
●●
CPU backend (tiny-skia, full feature coverage)
the-renderer.cpu-backend
●
Scene-graph introspection (tree + property descriptors)
the-renderer.devtools-introspection
●
Versioned display list IR (41 command kinds, path interning)
the-renderer.display-list
●●
Export diagnostics (preflight findings)
the-renderer.export-diagnostics
●◐◐
Font registration (family/style → bytes, persists across loads)
the-renderer.font-registry
●●◐
WebGPU backend (Vello)
the-renderer.gpu-backend
◐●●
Hit testing (oriented containment, layer-aware) + marquee
the-renderer.hit-testing
●●●
Missing-asset degraded render (fallback font + placed-link placeholder)
the-renderer.missing-asset-fallback
●◐
OffscreenCanvas worker rendering (COOP/COEP + SAB)
the-renderer.offscreen-worker
●●
Package / collect for output (links + fonts + report)
the-renderer.package-collect
◐·
PDF export (PDF 1.7 + PDF/X-4, deterministic)
the-renderer.pdf-export
●●●◐
Export marks + bleed (crop/registration/color bars/page info)
the-renderer.pdf-export-marks
●●●
Export font subsetting + embedding (fsType policy)
the-renderer.pdf-font-embedding
●
Export image downsampling + JPEG re-encode
the-renderer.pdf-image-downsampling
●
Tagged PDF, bookmarks and accessibility (PDF/UA)
the-renderer.pdf-tagged
◐
Render pipeline (parse → scene → text → compose → raster)
the-renderer.pipeline
●●●
Element properties read (authored/computed/source)
the-renderer.properties-read
●●●
GPU scene cache (LRU, invalidation hints)
the-renderer.scene-cache
●
Display-list structural digest (same-code-same-scene keystone)
the-renderer.scene-digest
●●
Snap engine (page edges + sibling targets, 4 px tolerance)
the-renderer.snapping
●●●
Page PNG snapshots (dpi-configurable)
the-renderer.snapshots
●●●
Viewer session — camera present, page layout, events (the public SDK)
the-renderer.viewer-session
●
@paged-media/idml-viewer — TS viewer (camera, pages, input lanes, events)
the-renderer.viewer-wrapper
●

Parser internals 2 features · 100% green

FeatureParser
Streaming XML parse (quick_xml event-driven)
parser-internals.streaming-xml
●
ZIP entry streaming (per-part decompression)
parser-internals.zip-entry-streaming
●

Questions

The status here is the registry's, backed by tests — not a hand-kept list. If a badge looks wrong, the fix is in the engine or its test coverage, and this page follows automatically. See how the capability state works.

On this page