Skip to content

feat: wire theme provider and appearance picker - #1243

Draft
calebmcquaid wants to merge 2 commits into
caleb/365-theme-serverfrom
caleb/365-theme-picker
Draft

calebmcquaid wants to merge 2 commits into
caleb/365-theme-serverfrom
caleb/365-theme-picker

Conversation

@calebmcquaid

@calebmcquaid calebmcquaid commented Sep 17, 2026 •

Copy link
Copy Markdown
Contributor

Context & Requests for Reviewers

This PR adds a ThemeProvider that defaults to light. ThemeSync applies the users saved choice. The users choice is setup in #1220. This also adds a theme picker in Account Settings.

Tests

Clean build, tests pass. No tests added for this.

Checklist

Only check items that apply to this PR; leave the rest unchecked.

  • If you changed anything user-facing (i.e. user interface or APIs):
    Did you update related docs?

  • If the change is notable (refer to Keep a Changelog conventions):
    Did you update CHANGELOG.md?

  • If you changed db/src/scripts/** and used CREATE TABLE, ADD COLUMN, or ALTER COLUMN:
    Are as many columns marked NOT NULL as possible? If some columns can sometimes be null depending on other columns, are there CHECK constraints capturing those relationships, and are these also reflected using unions in the associated Kysely types?

  • If you added a new signal in server/services/signalsService/signals/**:
    Did you classify every error case as a permanent error (SignalPermanentError, no retry) or a normal error (retryable)? Any case where the signal can't determine a score should be a SignalPermanentError.


Summary by cubic

Adds a theme picker to Account Settings. Users can now choose Light, Dark, or System, and the selection persists across sessions and applies on login. The default stays light until the app-wide dark restyle lands.

  • Saves the preference server-side via a new setThemePreference mutation.
  • Applies the persisted theme using next-themes and the new ThemeSync component.
  • Updates dashboard and app backgrounds to use theme tokens instead of hardcoded colors.

Written for commit 1aa326c. Summary will update on new commits.

Review in cubic

@calebmcquaid
calebmcquaid added this pull request to stack #1244 September 17, 2026 03:51
@coderabbitai

coderabbitai Bot commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@calebmcquaid calebmcquaid changed the title Caleb/365 theme picker feat: wire theme provider and appearance picker Sep 23, 2026

This branch has not been deployed

No deployments
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