Make both application editors follow the existing theme.markdown.code.light / dark Shiki selections rather than hardcoded Gruvbox colors.
Add a build-side @luzzle/web.theme/editor palette generator using @shikijs/themes@3.22.0.
Emit editor palette variables into the existing global theme CSS; use ordinary .cm-editor and syntax-token CSS classes.
Migrate the Markdown source and text-asset editors; remove the old hardcoded Gruvbox theme modules.
Retain native CodeMirror parsing/highlighting and existing widget variables. This is a bounded palette projection, not a second browser tokenizer or a complete TextMate selector engine.
Set the demo's selected code/editor themes to min-light and min-dark.
Include tests, documentation and a changeset. No Shiki browser runtime is added.
Commits
71d40d3a — [web] derive editor colors from configured Shiki themes
dc47bcdf — [web] use Min themes in the demo
Verification
Previously completed during feature verification (not rerun merely to open this PR):
All 24 projected colors matched the accepted comparison fixture for each of four themes; all 64 bundled themes generated valid palettes.
Owner reviewed the isolated color comparison and chose Min for the demo.
No root/web/theme/content build or Docker operation was run during this handoff. Live CSS generation remains owner-controlled; use the normal deployment workflow to pick up the dependency/export and regenerate configured theme CSS. Until then, editor CSS has application-token fallbacks.
Landing / dependent work
Base: main. This is the first PR in the editor stack. The Vim keybindings branch is based on this branch and should land afterward.
Prefer fast-forward-only merging to preserve the reviewed commits. After this lands, retarget the dependent Vim PR to main before landing it. No merge is being performed by the agent.
TypeBox planning, ignored research artifacts, and the owner's untracked demo archive file are not part of this PR.
## Summary
Make both application editors follow the existing `theme.markdown.code.light` / `dark` Shiki selections rather than hardcoded Gruvbox colors.
- Add a build-side `@luzzle/web.theme/editor` palette generator using `@shikijs/themes@3.22.0`.
- Emit editor palette variables into the existing global theme CSS; use ordinary `.cm-editor` and syntax-token CSS classes.
- Migrate the Markdown source and text-asset editors; remove the old hardcoded Gruvbox theme modules.
- Retain native CodeMirror parsing/highlighting and existing widget variables. This is a bounded palette projection, not a second browser tokenizer or a complete TextMate selector engine.
- Set the demo's selected code/editor themes to `min-light` and `min-dark`.
- Include tests, documentation and a changeset. No Shiki browser runtime is added.
## Commits
- `71d40d3a` — `[web] derive editor colors from configured Shiki themes`
- `dc47bcdf` — `[web] use Min themes in the demo`
## Verification
Previously completed during feature verification (not rerun merely to open this PR):
- Root `pnpm lint`, `pnpm check`, and `pnpm test` passed.
- Theme package: 21 tests, 100% coverage; web: 349 tests.
- All 24 projected colors matched the accepted comparison fixture for each of four themes; all 64 bundled themes generated valid palettes.
- Owner reviewed the isolated color comparison and chose Min for the demo.
No root/web/theme/content build or Docker operation was run during this handoff. Live CSS generation remains owner-controlled; use the normal deployment workflow to pick up the dependency/export and regenerate configured theme CSS. Until then, editor CSS has application-token fallbacks.
## Landing / dependent work
Base: `main`. This is the first PR in the editor stack. The Vim keybindings branch is based on this branch and should land afterward.
Prefer fast-forward-only merging to preserve the reviewed commits. After this lands, retarget the dependent Vim PR to `main` before landing it. No merge is being performed by the agent.
TypeBox planning, ignored research artifacts, and the owner's untracked demo archive file are not part of this PR.
Dependent PR: #106 — https://git.eleith.com/eleith/luzzle/pulls/106
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
Make both application editors follow the existing
theme.markdown.code.light/darkShiki selections rather than hardcoded Gruvbox colors.@luzzle/web.theme/editorpalette generator using@shikijs/themes@3.22.0..cm-editorand syntax-token CSS classes.min-lightandmin-dark.Commits
71d40d3a—[web] derive editor colors from configured Shiki themesdc47bcdf—[web] use Min themes in the demoVerification
Previously completed during feature verification (not rerun merely to open this PR):
pnpm lint,pnpm check, andpnpm testpassed.No root/web/theme/content build or Docker operation was run during this handoff. Live CSS generation remains owner-controlled; use the normal deployment workflow to pick up the dependency/export and regenerate configured theme CSS. Until then, editor CSS has application-token fallbacks.
Landing / dependent work
Base:
main. This is the first PR in the editor stack. The Vim keybindings branch is based on this branch and should land afterward.Prefer fast-forward-only merging to preserve the reviewed commits. After this lands, retarget the dependent Vim PR to
mainbefore landing it. No merge is being performed by the agent.TypeBox planning, ignored research artifacts, and the owner's untracked demo archive file are not part of this PR.
Dependent PR: #106 — #106