The 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: Intermediate Intermediate II · reference 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 .
36 chapters · generated from the capability registry @ b996869c.
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, untested · ◐ partial · ✗ failing · · planned
Anchored & inline objects 3 features · 100% green Feature Parser Renderer Mutation Canvas Panel 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● ●
Color & swatches 12 features · 100% green Feature Parser Renderer Mutation Canvas Shell Panel Gesture Script 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● ● ● ● ●
Feature Parser Snippets & InCopy (.idms / .icml / libraries) companion-formats.idms-icml·
Conditional text 3 features · 100% green Feature Parser Renderer Mutation Canvas Panel Script 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● ●
Cross-references & hyperlinks 5 features · 100% green Feature Parser Renderer Mutation Panel Bookmarks cross-references-hyperlinks.bookmarks● ● ◍ Cross-references cross-references-hyperlinks.cross-references● ● ◍ Hyperlinks (targets + sources) cross-references-hyperlinks.hyperlinks● ● ◍ Index entries (topic aggregation, page lists) cross-references-hyperlinks.index● ● ◍ TOC entry resolution cross-references-hyperlinks.toc● ● ◍
Edge cases & degradation 1 features · 100% green Feature Renderer Canvas SDK Render diagnostics channel (overset, missing assets, fonts) edge-cases.diagnostics-channel● ◍ ●
Effects & transparency 10 features · 100% green Feature Parser Renderer Mutation Canvas Shell Panel Gesture 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● ● ● ● ◍ Satin effects-transparency.satin● ◐ ● Transparency groups (nested blend group buffering) effects-transparency.transparency-groups● ●
Foundations 3 features · 100% green Feature Parser Canvas SDK Canvas Shell 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●
Frames & paths 20 features · 100% green Feature Parser Renderer Mutation Canvas Canvas Shell Panel Gesture Draw GraphicLine arrowheads (triangle/circle/bar) frames-paths.arrowheads● ● Decorative corner options (Rounded/Inverse/Bevel/Inset/Fancy) frames-paths.corner-options● ● ● 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● ● ◍ Page-item kinds (TextFrame, Rectangle, Oval, Polygon, GraphicLine, Group) frames-paths.page-item-kinds● ● Path clipping/masking (non-zero winding) frames-paths.path-clipping● Insert freehand path (optional smoothing) frames-paths.path.insert● ● ◐ Pathfinder boolean (union/intersect/subtract/exclude) frames-paths.pathfinder-boolean● ● ● 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● ·
Geometry & coordinates 6 features · 100% green Feature Parser Renderer Mutation Canvas Shell Panel Gesture 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● ● ●
Images & graphics 7 features · 100% green Feature Parser Renderer Mutation Shell Panel Script Image clipping paths (from image metadata) images-graphics.clipping-paths● ● CMYK JPEG with embedded ICC profile images-graphics.cmyk-jpeg-icc● ● EPS / PostScript 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● ● ◍ ●
Interactive & dynamic 4 features · 0% green Feature Parser 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·
Layers 4 features · 100% green Feature Parser Renderer Mutation Canvas Canvas Shell Panel Script 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) layers.z-ordering● ●
Layout model 7 features · 100% green Feature Parser Renderer Mutation Canvas Canvas Shell Panel Gesture 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● ◐ ● ◍ ● · Spread / MasterSpread ItemTransform layout-model.spread-item-transform● ● Spreads & pages (geometry, stacking, page items) layout-model.spreads-pages● ● ● ● ◍ ◍ Text-frame threading chain (NextTextFrame story distribution) layout-model.text-frame-chain● ● ● · Frame vertical justification (top/center/bottom/justify) layout-model.vertical-justification● ● ●
Master spreads & overrides 4 features · 100% green Feature Parser Renderer Mutation Panel 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● ●
Package anatomy 7 features · 100% green Feature Parser Renderer Mutation Canvas SDK Canvas Shell API Full package import (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● ● 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·
Parser internals 2 features · 100% green Feature Parser Streaming XML parse (quick_xml event-driven) parser-internals.streaming-xml● ZIP entry streaming (per-part decompression) parser-internals.zip-entry-streaming●
Round-tripping 4 features · 100% green Feature Mutation Canvas Canvas Shell Gesture Script 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◐ ● ● Undo / redo (invertible operation log) round-tripping.undo-redo● ◍ ● ●
Sections, numbering & variables 4 features · 100% green Feature Parser Renderer Mutation Shell Panel 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● ◐
Stories & text 16 features · 100% green Feature Parser Renderer Mutation Canvas Canvas Shell Panel Gesture 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● ◍ 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 Feature Parser Renderer Mutation Canvas Canvas Shell Panel Script 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● ● ● ◍ ◐
Tables 12 features · 100% green Feature Parser Renderer Mutation Canvas Shell Panel 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/column spans (cell merges) tables.spans● ● ◍ ◍ Table/cell style cascade (region defaults) tables.style-cascade● ●
Tagged XML 1 features · 0% green Feature Parser Tagged XML structure (XMLElement/XMLStory/Mapping) tagged-xml.structure·
The renderer 21 features · 100% green Feature Renderer Canvas SDK Canvas Shell Panel Gesture Script 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◍ ◍ ● OffscreenCanvas worker rendering (COOP/COEP + SAB) the-renderer.offscreen-worker◍ ● 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● 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●
Typography 22 features · 100% green Feature Parser Renderer Mutation Shell Panel 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● ● ●
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 .