feat(www): add light mode toggle and fix command copy buttons#41
Merged
Conversation
Add a light/dark theme toggle and "D" keyboard shortcut, and make the site chrome theme-aware so the landing page, builder, sponsor, and docs no longer mismatch between dark and light modes. - Add ThemeToggle (next-themes) to the header; "D" toggles the theme globally (ignored while typing in inputs) - Replace hard-coded zinc/white-alpha utilities with semantic tokens across header, footer, hero, sponsor, npm/github pills - Make hero surfaces, gradients, and marquee fades theme-aware - Fix illegible light-mode code: switch Shiki dual-theme token colors via --shiki-light / --shiki-dark per color mode - Rework the hero copy button to show a Copy/Copied label with a robust clipboard helper (execCommand fallback) and accessible states - Make the builder command box click-to-copy with a prominent "Copy command" primary button
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
jal-co
added a commit
that referenced
this pull request
Jun 15, 2026
## What Release **v0.12.1** — a patch bump in `package.json` (and lockfile) to ship the merged CLI fixes to npm. ## Why [#42](#42) is on `main` but not yet published, so users still get the old behaviour (required prompts + the `mkdir '/orc'` crash). This bump lets a GitHub Release publish the fix. Since the package is in initial development (`0.y.z`) and #42 is a bug fix, this is a **PATCH** bump per [SemVer](https://semver.org/) — `0.12.0 → 0.12.1`. ### Included since v0.12.0 - `fix(cli): make project location + github repo optional, guard bad dirs` (#42) - Project location optional (falls back to `./<name>`) - GitHub `owner/repo` optional (`<owner>/<name>` placeholder) - Refuse out-of-tree scaffold dirs instead of crashing with `mkdir ENOENT` > Note: #41 (website light mode) is `www/`-only and ships via Vercel — not part of the npm package. ## How `npm version 0.12.1 --no-git-tag-version` (the `vX.Y.Z` tag is created by the GitHub Release, which triggers `publish.yml`). ## Type - [ ] `feat` — New feature - [ ] `fix` — Bug fix - [ ] `docs` — Documentation - [ ] `refactor` — Code restructuring - [ ] `perf` — Performance improvement - [ ] `style` — Formatting / code style - [x] `chore` — Maintenance / deps - [ ] `ci` — CI/CD changes - [ ] `test` — Tests ## Checklist - [x] Branch follows conventional naming (`release/`) - [x] Commits follow [Conventional Commits](https://www.conventionalcommits.org/) - [x] `npm run lint` passes - [x] `npm test` passes (103 tests) - [ ] Tests added or updated (n/a — version bump only) - [ ] Docs updated (n/a) ## Release steps (after merge) 1. Merge this PR (release branches use a **merge commit**). 2. Create a GitHub Release tagged `v0.12.1` targeting `main` → `publish.yml` lints, builds, tests, and runs `npm publish --provenance`.
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.
What
Adds a light/dark theme toggle to scnstack.sh and fixes the command copy buttons.
Dkeyboard shortcut to switch themes (ignored while typing in inputs / with modifiers).zinc/white-alphautilities with semantic tokens across the header, footer, hero, sponsor page, and the npm/GitHub pills, so the whole site responds to the active theme.defaultColor: false, so token colors now switch via--shiki-light/--shiki-darkper color mode.Copy/Copiedlabel with a robust clipboard helper (execCommandfallback for non-secure contexts) and accessible states.Copy commandbutton.Why
The landing page was dark while the builder was light, which was jarring ("flashbanging") when navigating between them, and there was no way to choose a theme. The hero copy button was an icon-only gray box that read as disabled/unintuitive, and code samples were unreadable once a light theme was applied.
Closes #
Type
feat— New featurefix— Bug fixdocs— Documentationrefactor— Code restructuringperf— Performance improvementstyle— Formatting / code stylechore— Maintenance / depsci— CI/CD changestest— TestsChecklist
feat/,fix/,docs/, etc.)npm run lintpasses (tsc --noEmitinwww/)npm testpasses (no CLI changes in this PR; site-only)Screenshots
Verified in a real browser (light + dark) on the homepage, builder, and docs:
(Screenshots captured locally during review; happy to attach to the PR thread.)