Skip to content

Make /workspaces/ system-themed with a custom dark palette#788

Merged
backnotprop merged 2 commits into
mainfrom
fix/workspaces-system-themed
May 24, 2026
Merged

Make /workspaces/ system-themed with a custom dark palette#788
backnotprop merged 2 commits into
mainfrom
fix/workspaces-system-themed

Conversation

@backnotprop
Copy link
Copy Markdown
Owner

Until now /workspaces/ pinned the light tokens regardless of the visitor's saved theme, which is rough at night. This makes the page system-responsive AND gives it a custom dark palette so we don't have to settle for the default site-dark colors.

What changed

The wrapper class ws-force-light is renamed to ws-page-scope and now defines two token sets:

  • Default (no .light on <html>) — a near-neutral, very-dark-gray palette specific to this page (background oklch(0.13 0 0), card oklch(0.17 0 0), muted oklch(0.22 0 0), border oklch(0.27 0 0)). Near-zero chroma so it reads as a clean dark-gray sheet — Linear/Vercel energy rather than the warmer blue-tinted dark used in the docs and the editor.
  • html.light .ws-page-scope — the existing light palette, unchanged.

Primary stays violet (oklch(0.75 0.18 280)) so the OSS-commitment stamp and submit button still pop.

What stays the same

  • The global theme cookie + the Nav toggle drive theme as usual: Base.astro adds .light on <html> for explicit-light and system+light; otherwise dark applies.
  • The rest of the marketing site keeps the standard global dark theme — this override is scoped to .ws-page-scope only (Astro adds a data-astro-cid-… attribute to both the selector and the wrapper div).
  • Every existing rule on the page already uses var(--background), var(--card), var(--border), etc., plus relative-color tweaks like oklch(from var(--primary) l c h / 0.5) — so they pick up the right values in either mode with no per-rule changes.

Verification

bun run build:marketing succeeds. The built CSS contains both selectors with the right tokens:

.ws-page-scope[data-astro-cid-lespap36]{--background: oklch(.13 0 0); …}
html.light .ws-page-scope[data-astro-cid-lespap36]{--background: oklch(.97 .005 260); …}

Generated with Devin

backnotprop and others added 2 commits May 23, 2026 23:56
Until now the page force-pinned the light tokens regardless of the
visitor's actual theme preference, which is rough at night.

Two changes:

1. The wrapper class is renamed `ws-force-light` → `ws-page-scope` and
   now defines two token sets:
   - default (no `.light` on <html>): a near-neutral, very-dark-gray
     palette specific to this page
   - `html.light .ws-page-scope`: the existing light palette, unchanged

   The page now follows whatever theme the global Nav toggle has set,
   the same way every other marketing page does.

2. The dark palette is intentionally NOT the global Plannotator dark
   theme. It uses near-zero chroma (`oklch(0.X 0 0)`) for surfaces
   (background 0.13, card 0.17, muted 0.22, border 0.27) so the
   landing page reads as a clean dark-gray sheet — Linear/Vercel
   energy rather than the warmer blue-tinted dark used in the docs
   and the editor. Primary stays violet (oklch(0.75 0.18 280)) so the
   OSS-commitment stamp and submit button still pop.

Every existing rule on the page already uses var(--background),
var(--card), var(--border), etc., plus relative-color tweaks like
`oklch(from var(--primary) l c h / 0.5)` — so they automatically
pick up the right values in both modes with no further changes.

Generated with [Devin](https://cli.devin.ai/docs)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Three follow-ups based on visual review of the new dark mode:

- Bg/card/muted/border ladder lifted ~2 L-points and given a touch
  of warm chroma (0.01 at hue 55) — page reads as dark walnut /
  leather instead of stark neutral charcoal.
- --secondary (Today / Next / Compound labels) dropped from
  oklch(0.70 0.15 180) to oklch(0.62 0.08 180) — same teal hue,
  desaturated and slightly dimmer so the row recedes.
- --primary (Join button, OSS contributor stamp, focus ring)
  dropped from oklch(0.75 0.18 280) to oklch(0.65 0.10 280) —
  same violet hue, dialed down to a dusty plum.

Light mode is unchanged — still inheriting .theme-plannotator.light.

Generated with [Devin](https://cli.devin.ai/docs)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
@backnotprop backnotprop merged commit 127f6c2 into main May 24, 2026
3 checks passed
@backnotprop backnotprop deleted the fix/workspaces-system-themed branch May 24, 2026 07:08
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