Skip to content

feat: adapt the launcher lockup and accent text to colour themes - #474

Merged
kostyafarber merged 3 commits into
mainfrom
feat/launcher-ghost-accent
Sep 30, 2026
Merged

kostyafarber merged 3 commits into
mainfrom
feat/launcher-ghost-accent

Conversation

@kostyafarber

Copy link
Copy Markdown
Collaborator

Summary

  • Launcher ghost follows the theme. Shift Light keeps the channel-coloured lid over the muted grey body. Every other theme draws the ghost in its own text colour, with lid and body filled by a 22% tint. The SVGs read --color-logo-lid / --color-logo-body with the Shift Light colours as fallbacks, and one index.css rule sets them for any data-color-theme other than shift-light.
  • No more hairline seams. Each ghost colour is now a single path rendered with crispEdges, so adjacent pixel blocks no longer show the background between them.
  • Caps swapped. Release now wears the forward cap and Nightly the backward one; the lid colours stay blue and yellow.
  • Text on theme accents uses the palette. --color-on-accent now chooses between the palette's lightest and darkest colours instead of pure white. The light colour wins when its contrast is within 20% of the best, because WCAG contrast over-favours dark text on mid-tone accents. Solarized's blue now gets its base3 light text, and Gruvbox Light's teal its cream. All other themes are unchanged, and Shift Light still uses the index.css default.

Issue

No issue — visual polish to the launcher lockup and theme contrast. Refs #406

Testing

  • pnpm check passed (typecheck, lint, 1189 desktop tests)
  • lib/themes/index.test.ts asserts the Solarized and Gruvbox Light accent text colours
  • Manually reviewed the launcher on Shift Light, Shift Dark, Dracula, Gruvbox Light and Solarized in the running app
  • landing.spec.ts › landing-default.png is an interface golden compared only on CI; the Shift Light lockup now renders with crisp edges and the forward cap, so the baseline needs regenerating via the ci: update visual snapshots label. E2E not run locally.

🤖 Generated with Claude Code

Shift Light keeps the channel-coloured lid; other themes fill the ghost
with a tint of their text colour. Each colour is one path rendered with
crisp edges, removing hairline seams between pixel blocks. Release now
wears the forward cap and Nightly the backward one.
Text on accent buttons now picks the palette's lightest colour instead of
pure white, and prefers it within 20% of the best WCAG contrast.
Solarized's blue gets its light base and Gruvbox Light's teal its cream.
@kostyafarber kostyafarber added the ci: update visual snapshots Regenerate visual snapshots on a same-repository pull request label Sep 30, 2026
@kostyafarber kostyafarber added the release: nightly Run a Nightly build after this pull request merges label Sep 30, 2026
@kostyafarber
kostyafarber added this pull request to the merge queue Sep 30, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to no response for status checks Sep 30, 2026
@kostyafarber
kostyafarber added this pull request to the merge queue Sep 30, 2026
Merged via the queue into main with commit 08be9ac Sep 30, 2026
58 of 60 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci: update visual snapshots Regenerate visual snapshots on a same-repository pull request release: nightly Run a Nightly build after this pull request merges

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant