Repository navigation
fix(pptx): import-fidelity fixes for brand-template decks - #79
Closed
karthikmudunuri wants to merge 1 commit into
Closed
karthikmudunuri wants to merge 1 commit into
karthikmudunuri wants to merge 1 commit into
Conversation
Each fix has a changeset and a regression test. - grpFill inheritance: shapes using <a:grpFill/> now inherit the enclosing group's fill instead of collapsing to transparent (decorative custGeom line-art was vanishing). - gradient text: runs with <a:gradFill> render as a CSS gradient via background-clip:text instead of falling back to black; edited runs degrade to a representative stop on export. - underlay z-order: layout/master decorations are emitted in document order, so a full-slide background <p:pic> stays behind the gradient drawn over it. - flowChartTerminator: imports as a rounded pill (radius = min(w,h)/2) instead of a sharp rect. - font weights: Google Fonts requests the actual weights the deck uses (family=Name:wght@400;700), so bold titles aren't rendered thin. - shape drop shadows: parse <a:outerShdw> into ShadowSpec for shapes and card-backed text, so white-on-white cards keep their silhouette. - fontRef text colour: an uncoloured run inherits the shape's <p:style><a:fontRef> colour (e.g. lt1/white), fixing stray dark labels.
This was referenced Jun 8, 2026
Member
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Seven independent PPTX import-fidelity fixes, each found by diffing a real brand-template deck against PowerPoint's render. Every fix ships with its own changeset (all
patch) and a focused regression test.<a:grpFill/>collapsed to transparent — decorativecustGeomline-art vanished. Now inherit the enclosing group's fill.<a:gradFill>resolved to black and disappeared on dark slides. Now render as a CSS gradient viabackground-clip: text; edited runs degrade to a representative stop on export.<p:pic>painted over the gradient and washed out the slide. Now emitted in document order.radius = min(w,h)/2).family=Name:wght@400;700).<a:outerShdw>was never parsed, so white cards on a white slide became invisible. Now parsed intoShadowSpecfor shapes and card-backed text.<p:style><a:fontRef>colour and fell back to dark — a white-on-card label (lt1) showed as stray dark text. Now inherits the fontRef colour (non-placeholder shapes outrank the master default).Files
lib/pptx/pptxToDeck.ts— import logic for 1, 2, 3, 4, 6, 7components/editor/ElementView.tsx— gradient-text rendering (2), card box-shadow (6)lib/pptx/deckToPptx.ts— gradient-text export degradation (2)lib/fonts.ts+compound/SlidewiseRoot.tsx— weight-aware Google Fonts request (5)Testing
grpfill,gradient-text,gradient-text-export,underlay-zorder,flowchart-terminator,font-weights,shape-shadow,fontref-color.tsctypecheck clean.effectLstXmlwriter.Notes
run-dev-server-v1) is incidental — the content is the PPTX fixes above.eslintcouldn't run (missing@eslint/jsin this workspace), unrelated to these changes.