Skip to content

feat(style): Jade and Crimson, Volt in teal and red, take Ember's and Obsidian's places (#316) - #317

Merged
Maxaubert merged 3 commits into
mainfrom
feat/316-jade-replaces-ember
Oct 7, 2026
Merged

Maxaubert merged 3 commits into
mainfrom
feat/316-jade-replaces-ember

Conversation

@Maxaubert

@Maxaubert Maxaubert commented Oct 7, 2026 •

Copy link
Copy Markdown
Owner

Closes #316

What

Owner, 2026-10-07, with Volt's Colours edited to teal: "this theme should replace Ember. its Volt but with this teal instead of the yellow". Then, with them edited to red (Accent #FF2647, Selection #FF264738, Folder icon #FF2647): "have this replace obsidian".

  • Jade (id jade) takes Ember's place, 5th card.
  • Crimson (id crimson) takes Obsidian's place, 4th card, before Jade. The owner may rename it.

Still 18 themes. Version 0.92.1 to 0.93.0 (one minor for the PR).

The colours

Built with the research build-themes.mjs (the generator that made all 18; it still reproduces Volt and Jade value for value), seeded exactly as Volt with one colour for the accent and the folder. Everything Volt's own stays identical; only the yellow-derived values change:

Role Volt Jade Crimson
Ground / panel / raised / line #050706 / #0c0e0d / #141615 / #232624 same same
Text / dim / faint #eef3ea / #91958f / #6e716d same same
Accent, accent line, folder, archive #d8ff26 #26ffb2 #ff2647
On accent #0b0b0d #0b0b0d #0b0b0d (5.26:1; white is 3.74:1)
Selection #d8ff2638 #26ffb238 #ff264738
Selection as seen #333d0d #0c3d2c #3c0e14
Code keyword (mixed from the accent) #d7c483 #75c4d0 #ed4c95
Other code colours, file kinds same as Volt same as Volt

OLED material, square corners (2), hairline edges, as Volt. Card preview strips are derived from the theme, so they follow.

One difference from the owner's hand edit: an edited accent goes through the app's derivation, which leans to white ink and deepens the fill to #e0213e for buttons and the selected rail. The built theme keeps the exact #ff2647 fill with near-black ink (the generator's rule, as Volt and Jade).

Migration (marker prism.style.v to 4)

  • RETIRED_MAP: ember to jade, obsidian to jade (nearest green), terminal to jade (it went to Obsidian), acrylic-red (Ruby) to crimson. Every target is a current theme (a test holds it), so no pass ever chains.
  • RETIRED_NAMES names Ember and Obsidian on the quiet line ("Your theme Obsidian was retired, Jade is the closest.").
  • PLACED_MOVES: a Ruby profile the first pass put on Ember (or the unreleased marker 3 put on Carbon) and that has not picked since (its line still says Ruby) moves on to Crimson, the line kept.

What each profile sees:

Profile Result
No marker, on Ruby Crimson, "Ruby was retired, Crimson is the closest"
No marker, on Terminal Jade, "Terminal was retired"
Marker 2 (released), on Ember or Obsidian Jade, line names the old theme, draft kept
Marker 2, on Ember placed from Ruby, never repicked Crimson, line still says Ruby
Marker 2, on Ember chosen by the user Jade
Marker 3 (this PR's first commit only), on Carbon placed from Ruby, never repicked Crimson
Marker 3, on Carbon chosen, or on Jade from Ember stays
Any current theme untouched
Own copies based on ember / obsidian / acrylic-red base becomes jade / jade / crimson

Legibility (Crimson)

contrast.test.ts holds all its floors (text, dim inks, accent and ink, selection with text 14.7:1 and dim 5.45:1, folders, code, terminal sixteen) plus a Crimson block: the drive's "nearly full" orange (#f0894a) is CIE76 46 from the red bar (Carbon's own warn is 21 from its amber), its words 54; the error reds (code invalid, danger button #b4353f, danger menu ink) are each 30+ from the accent; keyword vs tag 18. No adjustment needed.
Known, not Crimson's: a danger dialog button prints --p-on-accent on #b4353f, which is 3.3:1 on every theme with a near-black ink (Volt, Jade, Crimson).

Gates

  • npm run typecheck: clean
  • npm run lint: 0 errors (7 existing warnings)
  • npx vitest run: 2545 passed, 2 skipped (a timing flake in listingCache.test.ts once under load, green alone and on rerun)
  • e2e, one at a time: themeWall (one flaky draft/frame check on the first two runs, green twice after), themeLooks, themeMigration (new Obsidian and Ruby-placed cases), onboardingTheme, styleColours, settingsLook, sidebarGround: all pass
  • npm run e2e:terminal: 18 scenarios, 553 checks, all pass
  • Looked at the wall, the Explorer and the editor on Crimson, and the Ruby migration screen.

🤖 Generated with Claude Code

https://claude.ai/code/session_01FHHaWKR4M5QtW7Wecyuk4t

Maxaubert and others added 2 commits October 7, 2026 05:13
Jade is Volt with #26ffb2 for every yellow-green value (accent,
selection #26ffb238, folder, archive, the accent-mixed keyword), built
by the research generator. Ember retires: marker 3 maps ember to jade
(own copies too), and Ruby now maps to Carbon.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FHHaWKR4M5QtW7Wecyuk4t
Crimson is Volt with #ff2647 for every accent-derived value, built by the
research build-themes.mjs, 4th on the wall. Obsidian retires to Jade, Ruby
maps to Crimson, marker prism.style.v is 4; an unpicked Ruby placement on
Ember or Carbon moves on to Crimson.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FHHaWKR4M5QtW7Wecyuk4t
@Maxaubert Maxaubert changed the title feat(style): Jade, Volt in teal, takes Ember's place (#316) feat(style): Jade and Crimson, Volt in teal and red, take Ember's and Obsidian's places (#316) Oct 7, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FHHaWKR4M5QtW7Wecyuk4t
@Maxaubert
Maxaubert merged commit ee20e98 into main Oct 7, 2026
3 checks passed
@Maxaubert
Maxaubert deleted the feat/316-jade-replaces-ember branch October 7, 2026 15:57
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.

Replace Ember with Volt in teal (Jade)

1 participant