Skip to content

feat(ui): add accent-color picker to first-run onboarding - #11910

Merged
lalalune merged 1 commit into
developfrom
feat/11893-onboarding-accent-rebased
Jul 3, 2026
Merged

feat(ui): add accent-color picker to first-run onboarding#11910
lalalune merged 1 commit into
developfrom
feat/11893-onboarding-accent-rebased

Conversation

@lalalune

@lalalune lalalune commented Jul 3, 2026

Copy link
Copy Markdown
Member

Supersedes #11893. Closes #11892.

Summary

  • Add curated accent presets shared by onboarding and Settings Appearance
  • Persist/apply the selected accent through the existing display-preferences path
  • Seed a skippable first-run accent choice alongside the tutorial prompt, so accent selection never gates completion
  • Add regression coverage for accent persistence/application and first-run conductor handling

Validation

  • bun run --cwd packages/ui test -- --run src/state/ src/first-run/ — 83 files / 798 tests passed
  • bun run --cwd packages/ui typecheck
  • bunx @biomejs/biome check
  • git diff --check origin/develop...HEAD
  • bun run --cwd packages/app audit:app — 357 passed; 356 findings good; minimalism-budget-failures=0

Evidence

  • .github/issue-evidence/onboarding-accent-color-picker.png
  • packages/app/aesthetic-audit-output/report.json from the passing audit run

N/A: real-LLM trajectories (client-side UI preference only); audio (no voice change).

Onboarding previously left every new user stuck on the default brand
orange — there was no accent picker anywhere (Appearance settings only
exposed theme mode). This adds a small, skippable "make it yours" accent
step to the in-chat first-run conductor at wrap-up, and mirrors the same
control in Settings › Appearance so accent becomes a real, reusable,
persisted preference.

- New curated ACCENT_PRESETS (never blue, brand rule #8796) as the single
  source of truth shared by onboarding + Settings.
- persistence: loadUiAccentId/saveUiAccentId + applyUiAccent, which
  overrides the --accent family inline (winning over base.css / any host
  brand theme) and derives rgb/hover/muted/subtle; the `default` preset
  clears the override, restoring the brand accent.
- useDisplayPreferences: uiAccentId state + setUiAccent, applied live and
  persisted (same store/path Settings' theme mode uses); wired through
  AppContext + AppState/AppContextValue types.
- Onboarding: an accent CHOICE is seeded alongside the tutorial prompt, so
  it never gates completion (a user who ignores it just taps a tutorial
  option). Picking a swatch calls the shared setUiAccent.
- Settings › Appearance: a swatch grid driving the same preference.
- Tests: applyUiAccent derivation + clear, store persist/restore/normalize,
  and the conductor seeding/handling the accent pick without gating finish.

Closes #11892

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 7176e17d-57c1-4b65-8a8f-c81357859d13

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/11893-onboarding-accent-rebased

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.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your trial has ended. Reactivate Greptile to resume code reviews.

@lalalune
lalalune merged commit d6aedf8 into develop Jul 3, 2026
40 of 64 checks passed
@lalalune
lalalune deleted the feat/11893-onboarding-accent-rebased branch July 3, 2026 13:37
@claude

claude Bot commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Claude encountered an error —— View job


I'll analyze this and get back to you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

First-run onboarding: let users pick their accent color

2 participants