htmlewislulu-html-ppt-skill/assets
lewis 06d6283ff7 fix(presenter): use iframe srcdoc for pixel-perfect slide preview
Root cause: CSS viewport units (vw/vh), clamp(), and percentage-based
layouts resolve against the actual viewport, not a fixed-size div.
DOM clones in a 1920x1080 container still render differently from the
audience view because the iframe-less context has the wrong viewport.

Fix: replace DOM clone approach with <iframe srcdoc='...'> for both
current and next slide previews. Each iframe:
- Is sized 1920x1080 (matching the design resolution)
- Creates its own viewport context (100vw=1920px, 100vh=1080px)
- Loads the full page CSS (absolute URLs) + body classes + html attrs
- Wraps the single slide in a .deck container
- CSS transform:scale() shrinks it to fit the preview area
- Result: pixel-perfect match with audience view

Also: srcdoc template carries the host page's body classes (e.g.
.tpl-presenter-mode-reveal) and html attributes (data-themes, lang)
so scoped CSS and theme variables work correctly inside the iframe.
2026-04-17 22:50:34 +08:00
..
animations fix: v2 — iframe theme isolation, 8 full-deck templates from source decks, 20 FX animations (particles/graph/fireworks), +12 themes 2026-04-15 16:29:08 +08:00
themes fix: v2 — iframe theme isolation, 8 full-deck templates from source decks, 20 FX animations (particles/graph/fireworks), +12 themes 2026-04-15 16:29:08 +08:00
base.css fix(presenter): rewrite as popup window with CSS scale() rendering 2026-04-17 22:36:04 +08:00
fonts.css feat: html-ppt AgentSkill — 24 themes, 31 layouts, 20+ animations 2026-04-15 15:36:16 +08:00
runtime.js fix(presenter): use iframe srcdoc for pixel-perfect slide preview 2026-04-17 22:50:34 +08:00