Skip to content

Make Safari honor the night sky's toolbar tint - #65

Merged
amyrlam merged 1 commit into
mainfrom
claude/github-issue-60-safari-theme-color
Aug 17, 2026
Merged

Make Safari honor the night sky's toolbar tint#65
amyrlam merged 1 commit into
mainfrom
claude/github-issue-60-safari-theme-color

Conversation

@amyrlam

@amyrlam amyrlam commented Aug 17, 2026

Copy link
Copy Markdown
Owner

Follow-up to #63 for the re-report on #60: the toolbar tint tracked the sky by day but persisted as grey at night on iOS Safari.

Why night stayed grey

Two Safari-specific causes, either of which lands you on its default grey chrome:

  1. iOS Safari treats a bare theme-color meta as a light-mode suggestion. In dark mode it ignores it and paints its own neutral grey unless a media="(prefers-color-scheme: dark)" variant exists. The day tint only looked correct because the day chip is itself a grey-slate, close to Safari's default. The layout now ships a media-gated light/dark pair, and sky.ts rewrites both on every render, so whichever meta Safari is reading always carries the current sky.
  2. The static fallback was oklch(), which Safari's theme-color parser rejects — a rejected value also falls back to grey. The pair now starts from the midnight chip as plain hex (#141a3d), and runtime updates were already plain rgb().

Belt and braces: body now gets an explicit background-color: var(--sky-bottom) — the gradient shorthand left it transparent, and Safari derives chrome/overscroll tint from background-color when it distrusts or lacks a theme-color. README updated to describe the pair.

Verified

Both metas and the body background-color confirmed updating through auto/day/night switches in the dev server (night navy rgb(29, 42, 97) ↔ day slate rgb(66, 83, 101)). All 19 Playwright tests pass; check:contrast holds; Prettier and stylelint clean. I could not exercise real iOS Safari chrome from this machine (no Xcode/simulator installed), so please re-check on your phone — the dark-mode meta pair is the documented fix for exactly this grey-toolbar behavior.

🤖 Generated with Claude Code

Follow-up to #63 for #60: the toolbar tint worked by day but stayed
Safari's default grey at night. Two causes, both Safari-specific:

- iOS Safari treats a bare theme-color meta as a light-mode suggestion
  and falls back to neutral grey chrome in dark mode. Ship a
  media-gated pair (light/dark) instead; sky.ts rewrites both each
  render so whichever one Safari is reading carries the current sky.
- The static fallback was oklch(), which Safari's theme-color parser
  rejects — and a rejected value also lands on grey. The pair now
  starts from the midnight chip as plain hex.

Belt and braces, body gets an explicit background-color (--sky-bottom):
the gradient shorthand left it transparent, and Safari derives chrome
and overscroll tint from background-color when it distrusts or lacks a
theme-color — white/grey is the one thing a night sky must never fade
into.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@vercel

vercel Bot commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
youthphase Ready Ready Preview Aug 17, 2026 10:19pm

@amyrlam
amyrlam merged commit ae6a94c into main Aug 17, 2026
8 checks passed
@amyrlam
amyrlam deleted the claude/github-issue-60-safari-theme-color branch August 17, 2026 22:46
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