Skip to content

feat: --theme + theme-aware batch (Phase 2c, the re-skin product surface) - #91

Merged
kiyeonjeon21 merged 3 commits into
mainfrom
feat/theme-cli
Jun 22, 2026
Merged

feat: --theme + theme-aware batch (Phase 2c, the re-skin product surface)#91
kiyeonjeon21 merged 3 commits into
mainfrom
feat/theme-cli

Conversation

@kiyeonjeon21

Copy link
Copy Markdown
Owner

Phase 2c — the one-command product surface over the 2a/2b engine capability. No core change (reuses the 2b overlay machinery), so goldens are trivially unchanged.

What

  • render/frame/player --theme brand.json — apply a brand kit. A kit is a nested partial theme ({ "color": { "accent": "#1E90FF" } }); loadThemeDoc flattens it to a design.* overlay and composes it first, so a --overlay can still override it. (render-cli/overlay.ts, threaded through each command's flag loop.)
  • Theme-aware batchoverlayFromFlat gains a design.<token.path> column, so one data file renders one on-brand mp4 per row (the "on-brand video at scale" payoff). _name already names each mp4.

Demo

reframe batch examples/scenes/themed-card.ts examples/data/themed-card-brands.jsonvivid.mp4 / mono.mp4 / ocean.mp4 (verified: 3 rendered, 4 edits each, 0 orphans). reframe frame themed-card.ts --t 1 --theme examples/themes/ocean.json re-skins vs the base.

Docs

token() re-skin + --theme + batch design.* taught in the eDSL guide, DESIGN.md, SKILL.md, both READMEs, and AGENTS.md (new design-tokens entry). Plugin bumped 0.1.12 → 0.1.13 (SKILL.md change).

Verification

  • pnpm test442 pass (438 + 4 new theme-cli.test.ts: flattenTokens, loadThemeDoc, batch design column); goldens byte-identical (no core/evaluate change); pnpm typecheck + pnpm lint clean.
  • reframe batch … emits 3 distinctly-branded mp4s; frame --theme differs from base.

Next (2d, optional)

Scene-background tokens; numeric/type tokens (IR type-widening); gradient-stop tokens. Separately, a reframe-video npm patch would put the new theme/brand/token/design API + --theme in reach of npm/Agent-SDK consumers.

🤖 Generated with Claude Code

kiyeonjeon21 and others added 3 commits June 22, 2026 22:55
…ace)

Phase 2c. `render/frame/player --theme brand.json` applies a brand kit (a nested
partial theme, flattened to a design.* overlay and composed first so --overlay
still wins). `batch` gains a `design.<token.path>` column, so one data file
renders one on-brand mp4 per row — on-brand video at scale. Reuses the 2b
overlay machinery (composeScene); no core change.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
themed-card-brands.json renders themed-card into vivid/mono/ocean mp4s in one
batch; ocean.json is a nested brand kit for the --theme path.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Guide/DESIGN.md/SKILL/READMEs/AGENTS document the now-complete design-token
surface: token() for re-skinnable scenes, --theme brand kits, and per-brand
batch. Bumps the plugin to 0.1.13 (SKILL.md change).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@mintlify

mintlify Bot commented Jun 22, 2026

Copy link
Copy Markdown

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
reframe 🟢 Ready View Preview Jun 22, 2026, 1:58 PM

💡 Tip: Enable Workflows to automatically generate PRs for you.

@kiyeonjeon21
kiyeonjeon21 merged commit f52999a into main Jun 22, 2026
2 checks passed
@kiyeonjeon21
kiyeonjeon21 deleted the feat/theme-cli branch June 22, 2026 13:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant