Skip to content

A new install opens on a theme choice before the board: Dark, Light or Classic, each previewed, applied as you pick and saved on Continue - #469

Merged
pallaoro merged 1 commit into
mainfrom
first-run-theme-choice
Nov 3, 2026
Merged

pallaoro merged 1 commit into
mainfrom
first-run-theme-choice

Conversation

@pallaoro

@pallaoro pallaoro commented Nov 3, 2026

Copy link
Copy Markdown
Member

A new install now opens on a theme choice before the board: Dark, Light or Classic, each shown as a small preview of the board in that theme. Picking one repaints the window straight away. Continue saves it and opens the board. Settings → General → Theme still changes it later.

Who sees it

Only a new install: no theme saved in ~/.ateam/settings.json, no project, and no box ever connected. Someone updating from an older version has projects, so they go straight to the board in Dark, as before this PR. A detached project window never shows it.

How it works

  • ateamTheme.firstRun() asks main, which checks the settings file for a saved client.theme and asks the host for projects and known boxes.
  • Picking a theme only repaints. Quitting before Continue brings the screen back on the next launch.
  • Each preview is drawn in its own theme's tokens: the theme blocks in index.css now also apply to any element carrying data-theme.
  • The choice is three native radio inputs, so the arrow keys move it and Tab goes on to Continue.

Checked

  • bun run typecheck, and bun test (1310 pass, 0 fail) on the tree merged with main.
  • In an isolated dev instance (its own app data and settings file, so it acted as a fresh install): it opens on the choice. The arrow keys repaint and save nothing. A reload before Continue shows it again. Light, then Continue, saves light and opens an empty board in Light. A reload goes straight to the board.
  • With an existing database (10 projects) and an empty settings file, it doesn't show, and the app opens in Dark.

…r Classic, each previewed, applied as you pick and saved on Continue

Shown only to a new install: no theme saved yet, no project, and no box ever
connected. Someone updating from an older version has projects, so they go
straight to the board in Dark. Picking repaints the window but saves nothing,
so quitting before Continue brings the screen back. Each preview is a
miniature board drawn in its own theme's tokens: any element with data-theme
now takes that theme's block. The choice is three native radios, so the arrow
keys move it.
@pallaoro
pallaoro merged commit 483f68e into main Nov 3, 2026
1 check passed
@pallaoro pallaoro mentioned this pull request Nov 3, 2026
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