Skip to content

Make the default the dashboard's light, not the system's - #81

Merged
sotashimozono merged 1 commit into
mainfrom
light-by-default
Sep 15, 2026
Merged

sotashimozono merged 1 commit into
mainfrom
light-by-default

Conversation

@sotashimozono

Copy link
Copy Markdown
Member

I unified the two looks toward the wrong one. souta asked for the folder pages to be brought to the dashboard's look; what shipped brought the dashboard to the folder's, so choosing a dark scheme turned everything dark — including the page that had been the reference.

The theme stays. Seventeen schemes and the picker were never the problem. What changes is which one you get without choosing.

Which light

Compared by rendering the three light candidates, not by reading hex:

default-light     --bg #f8f8f8  --hover/--line #e8e8e8
github            --bg #ffffff  --hover/--line #f6f8fa
catppuccin-latte  --bg #eff1f5  --hover/--line #e6e9ef

the old dashboard --bg #ffffff  --hover #fafafa  --line #e3e3e3

github matches the background exactly and then puts #f6f8fa borders on a white page, which is no border at all — base16 maps base01 to both --hover and --line, and the dashboard had those as different colours. default-light's #e8e8e8 against the old #e3e3e3 keeps a card's edge.

auto was doing two jobs

It was the default and the name of the entry that follows the system. That worked only while they were the same idea. The moment the default became a real scheme the list had two entries called default-light, and theme_names_are_unique failed — which is what a test that counts is for. auto has its own constant now and is still in the picker.

Two more tests were right to fail:

  • css_for fell back to the system pair for an unknown name. That was "the default" only while the default followed the system; it now falls back to the default itself, looked up rather than recursed into.
  • the_default_carries_a_light_and_a_dark_palette was making a claim about auto under the default's name — the same confusion, one layer up.

For anyone who has already chosen

Nothing changes. A remembered theme still wins, which is why souta's own daemon stays on catppuccin-mocha until they pick otherwise.

230 tests, 65 e2e checks against a real host, fmt/clippy clean.

I unified the two looks toward the wrong one. souta asked for the folder pages
to be brought to the dashboard's look; what shipped brought the dashboard to the
folder's, so choosing a dark scheme turned everything dark including the page
that had been the reference.

The theme stays -- seventeen schemes and the picker are not the problem. What
changes is which one you get without choosing: base16's reference light, which
reproduces what these pages looked like before any of them were themed. Its
`base01` is `#e8e8e8` against the `#e3e3e3` the dashboard drew borders in, so a
card still has an edge; `github` was closer on background and would have put
`#f6f8fa` borders on a white page, which is no border at all. Compared by
rendering the three light candidates rather than by reading hex.

`auto` was the default and was also the *name* of the entry that follows the
system -- one string doing two jobs, which only worked while they were the same
idea. The moment the default became a real scheme the list had two entries
called `default-light`. `theme_names_are_unique` failed, which is what a test
that counts is for. `auto` has its own constant now and is still in the picker.

Two more tests were right to fail. `css_for` fell back to the system pair for an
unknown name, which was "the default" only while the default followed the
system; it now falls back to the default itself, looked up rather than recursed
into. And a test named `the_default_carries_a_light_and_a_dark_palette` was
making a claim about `auto` under the default's name -- the same confusion, one
layer up.

This changes nothing for anyone who has already chosen: a remembered theme still
wins, which is why souta's own daemon stays on catppuccin-mocha until they pick
otherwise.

Signed-off-by: Souta <shimozono-sota631@g.ecc.u-tokyo.ac.jp>
@codecov

codecov Bot commented Sep 15, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 85.71429% with 1 line in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
crates/ssh-browser/src/theme/mod.rs 85.71% 1 Missing ⚠️

📢 Thoughts on this report? Let us know!

@sotashimozono
sotashimozono merged commit e5b5287 into main Sep 15, 2026
20 checks passed
@sotashimozono
sotashimozono deleted the light-by-default branch September 15, 2026 12:30
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