Skip to content

feat(ext): theme options page + finish popup save UX (#42, #43, #44)#49

Merged
paperhurts merged 1 commit into
mainfrom
feat/extension-ui-polish
Jun 13, 2026
Merged

feat(ext): theme options page + finish popup save UX (#42, #43, #44)#49
paperhurts merged 1 commit into
mainfrom
feat/extension-ui-polish

Conversation

@paperhurts

Copy link
Copy Markdown
Owner

Closes #42, closes #43, closes #44.

Follows PR #48 (which restyled the popup and added the save auto-close). This finishes the extension-UI polish cluster.

#44 — options page theming

The options page was still light-themed (#fafafa/#1a1a1a) while the popup and web UI are dark cyan/magenta. Themed options.html to the @gitmarks/web palette pulled from tailwind.config.ts (ink #0a0a0f bg, #16161e inputs, cyan #22d3ee focus/buttons, magenta #e879f9 heading, mono font). Hand-ported the token set per the issue's preferred option (1) — no Tailwind, no token package yet.

#42 — strip-tracking help text

Added a <p class="hint"> under the checkbox explaining why you'd turn it on (a link shared from two sources collapses to one bookmark instead of two), and mirrored that framing in the Chrome README.

#43 — popup save button stuck on "saving…"

The success branch previously only set the status text, leaving the button disabled with cursor: progress until the user clicked away. Now on success it relabels to "Saved ✓" and adds a done class that cancels the progress cursor, while keeping the ~1.2s auto-close (the maintainer's preferred fix from the issue). Extracted the transition into a side-effect-free save-result-view.ts so it's unit-testable without the popup entry's top-level #root bootstrap — save-result-view.test.ts covers both branches with fake timers (asserts auto-close fires once after the delay, and never on failure).

Notes

Verification

  • extension-shared tests: 106 pass (104 + 2 new)
  • extension-shared typecheck: clean
  • extension-chrome + extension-firefox builds: clean, HTML regenerated

🤖 Generated with Claude Code

#44: theme the options page to the @gitmarks/web palette (ink bg, cyan
accents, magenta heading, mono font) — matching the popup restyle from
PR #48. Source of truth is extension-shared/src/options.html; the shells
regenerate their ignored copies via copy-html.mjs.

#42: add a one-line helper under the "Strip tracking parameters" checkbox
explaining *why* you'd enable it (same article from two sources collapses
to one bookmark), and mirror that framing in the Chrome README.

#43: the popup save button no longer sticks on "saving…" with a progress
cursor after a successful save. Extract the success/failure transition
into a side-effect-free lib module (save-result-view.ts) so it's unit
testable without the popup entry's top-level DOM bootstrap; on success it
relabels to "Saved ✓", adds a `done` class that cancels the progress
cursor, and keeps the ~1.2s auto-close. Adds save-result-view.test.ts
(2 cases, fake timers).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@paperhurts paperhurts merged commit 661b5ff into main Jun 13, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant