Skip to content

feat(branding): Ocean dark default theme, drop starry sidebar header - #438

Merged
shuv1337 merged 4 commits into
mainfrom
t3/ocean-default-no-stars
Nov 15, 2026
Merged

shuv1337 merged 4 commits into
mainfrom
t3/ocean-default-no-stars

Conversation

@shuv1337

@shuv1337 shuv1337 commented Nov 15, 2026 •

Copy link
Copy Markdown
Owner

Summary

Use the upstream Ocean palette in dark mode as the implicit default instead of the fork's standard palette/System appearance. Stored palette and Light/System appearance choices still win; S2Code remains available and Ocean's colors are unchanged. Mobile's independent preference resolver also defaults to Ocean dark; desktop uses the shared web resolver and desktop theme bridge.

Remove the starry sidebar header artwork for every theme/channel while keeping the wordmark, navigation controls and theme-aware control colors. Preserve artwork still used by the composer send button.

Fix device-default restoration to match the new default: fresh installs have nothing to restore, and restoring clears explicit palette, appearance, legacy follow-system and mix keys instead of selecting System. Preference-presence flags are part of the reactive theme snapshot, so clearing even explicit Ocean/dark preferences updates the button immediately. Failed clears retain the previous stored preferences.

Preserve the legacy theme=system + theme-follow-system=false light appearance in both boot and runtime. Remove boot fallback/selection branches made unreachable by the normalized Ocean default.

Base and scope

Based on main, including #437 merged as 7a72a3f22345. Merged origin/main into this branch with merge commit 0e64b516ea19be03980d8bb0fe45ef830a5c5b30; no rebase or force push. The PR diff against main contains only the Ocean-default/plain-header change and its regression fixes.

Verification

  • New boot/runtime parity rows and device-restore browser tests reproduce the reported failures before the fix.
  • 138 tests across 10 affected web/mobile/desktop suites pass, including fresh-install restore availability, clearing explicit and legacy preferences/mixes, reactive dirty-state updates, and storage-failure rollback.
  • vp run check:changed origin/main: changed-file lint, both knip passes, all three affected package typechecks, adjacent tests and React Compiler checks pass. Its formatter still hits the existing local formatter-resolution issue (pc_a14f73980ba6); direct oxfmt --check with the exact exported vite.config.ts fmt configuration passes all 13 changed files. git diff --check passes.
  • Original integrated preview verification: light OS + fresh preferences resolves to Ocean dark with no sidebar artwork; explicit S2Code Light and Grove Light survive reload; light-theme controls remain readable. This implementation sub-agent did not launch another dev server.
  • Before/after screenshot evidence on GitHub: download the self-contained HTML to view its embedded PNGs. No evidence assets are committed.
  • Final-head GitHub CI: CI and CI Full / Test Web requested for 66a95eabc0c2a061f1db5e489fe3da3ca28918f6; results pending.

Implemented and updated with GPT-6.1-Sol in pi (shuvpi).

@shuv1337
shuv1337 merged commit 424a345 into main Nov 15, 2026
20 of 24 checks passed
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