In short

This patch is compatible with v0.77.0. It changes rendering and parser fidelity only; it does not rename or remove public APIs.

The largest improvements are visible in presentations that rely on theme fills, custom geometry, table and chart defaults, shadows, 3-D effects or reflected text. Shared DrawingML line and gradient fixes also benefit Word and Excel documents that use the same OOXML features.

  • DOCX, XLSX and PPTX now share custom-geometry guide evaluation and complete theme line and gradient models.
  • PowerPoint theme backgrounds, image fills, chart defaults, table styles, bullets and terminal whitespace follow their authored or inherited values more closely.
  • Shadows and related effects use the complete painted silhouette, including protruding callout leaders, strokes and line ends.
  • Text reflections stay sharp where they meet the source and become blurrier with distance while keeping bounded rendering work.

Shared DrawingML improvements

The parsers now evaluate custom-geometry formulas and quadratic Bézier paths through one shared implementation, including the standard fallback when a path omits its own coordinate size.

Theme fill and line recipes retain their colors, dashes, joins, line ends and gradient geometry. Chart color-map overrides and XLSX theme relationships are resolved before rendering instead of being replaced with a flat fallback color.

Theme XML retention, gradient tiles and projected effect surfaces remain bounded so these fidelity improvements do not remove the existing protections for large or hostile documents.

PowerPoint rendering fixes

Presentation backgrounds and shape fills now preserve theme images and PowerPoint color transforms. Hidden layout graphics stay hidden, while charts and tables inherit the intended axes, labels, banding, text, borders and fills.

Outer shadows, reflections, soft edges and 3-D effects are composited after the full fill, stroke, callout and arrowhead silhouette is known. This prevents effects from disappearing, being clipped, or being applied separately to only part of an object.

Text layout retains authored bullet and auto-number formatting, ignores paragraph-ending whitespace that should not create another line, and renders floor reflections with a legible contact edge and increasing blur farther from the text.

Compatibility and verification

The v0.77 public API remains unchanged. Existing Viewer, document, selection and MCP integrations continue to use the same calls and types.

The renderer changes were checked with parser and TypeScript test suites, public API checks, focused PowerPoint/PDF comparisons, independent adversarial reviews, and the complete private DOCX/XLSX/PPTX visual regression corpus using v0.77.0 as the previous-renderer baseline.

Questions about the change? Start a GitHub discussion ↗︎