Skip to content

fix(theme): light-mode color polish + replace launcher icon#558

Open
dmnyc wants to merge 2 commits into
barrydeen:mainfrom
dmnyc:fix/light-mode-and-icon
Open

fix(theme): light-mode color polish + replace launcher icon#558
dmnyc wants to merge 2 commits into
barrydeen:mainfrom
dmnyc:fix/light-mode-and-icon

Conversation

@dmnyc

@dmnyc dmnyc commented May 22, 2026

Copy link
Copy Markdown
Contributor

Summary

Three coupled changes that tidy up light mode and replace the
Android-Studio-default launcher icon. Companion doc
`LIGHT_MODE_COLOR_PARITY.md` describes the contract for the iOS agent
to mirror.

  • Light-mode primary + zap animation (preserved from
    `fix/light-mode-theme-ui` — first commit) — deeper light-mode
    `primary` (`#D9730D` for the default theme; `darkenColor(..., 0.18)`
    for user-picked accents) so buttons keep contrast on near-white
    surfaces. New `zapAnimationColor` (saturation × 1.15, lightness ≥ 0.5)
    scoped to the in-flight bolt animation so the burst doesn't read
    muddy on light backgrounds. Static UI everywhere else continues to
    use plain `zapColor`.
  • Throughout-the-theme orange consistency — light-mode `zapColor`
    and `bookmarkColor` now track `customLightPrimary`. The post-zap
    icon, post-zap count text, reaction count after react, top zap
    indicators in `NotificationsScreen`, wallet accents, and the
    Lightning QR icon all render the same orange as the rest of the
    theme. Previously these were pinned to `#B85C00` against a primary
    of `#D9730D`, producing a two-shade mismatch.
  • Launcher icon — replaced the AS-default green-grid + droid icon
    with the iOS wisp artwork as a proper adaptive icon: vector
    foreground from the iOS SVG (radial-gradient orange wisp with eye
    cutouts via `evenOdd`), solid-black vector background. Group scaled
    to 65% so launcher masks (circle / squircle / rounded square / etc.)
    clip the padding rather than the wisp. Legacy bitmap fallbacks at
    every density were regenerated from the iOS-rendered Android PNGs.
  • Cross-platform doc — `LIGHT_MODE_COLOR_PARITY.md` captures
    decisions: `zapColor == primary` in light mode,
    `zapAnimationColor == vivid(zapColor)` only for the animation, default
    theme `light.primary == #D9730D`. Includes a 4-step visual test and
    an iOS port checklist.

Test plan

  • Switch to light mode (default theme). Confirm post-zap icon +
    count text on a previously-zapped post is `#D9730D` — the same
    orange as the Save / Connect / Confirm buttons elsewhere.
  • Open Notifications → find a zap row — bolt + sat count are the
    same `#D9730D`.
  • Open Wallet → Send/Receive button rings are the same `#D9730D`.
  • Trigger a fresh zap on any post. In-flight bolt animation pulses
    a noticeably brighter orange (the `zapAnimationColor` vivid
    variant). Animation is never muddy or dark.
  • Switch to dark mode. All colors unchanged from main (no
    regressions).
  • Pick a non-default custom accent color (e.g. blue) in Theme
    Settings. Confirm light-mode buttons + zap icon both render the
    darkened variant (`darkenColor(accent, 0.18)`) and match each
    other.
  • Try a non-default theme preset (Nord, Gruvbox, etc.) — their
    curated light-mode colors should remain unchanged.
  • App launcher icon: home screen shows the orange wisp on black
    background (no green grid). Recents thumbnail matches. On a
    circular-mask launcher (Pixel) the wisp is fully visible — no
    cropping of its curl/outline.
  • Splash screen on cold launch shows the wisp icon (same vector).

dmnyc added 2 commits May 22, 2026 09:13
The default ("custom") theme's light color scheme reused the raw
dark-mode accent (bright FF9800) as its primary, so light mode buttons
diverged from iOS and failed contrast against the near-white surfaces.
Light mode now uses a curated deeper primary (D9730D) for the default
accent and a darkened variant for user-picked accents.

The zap burst/pulse animations drew from the static zapColor, which is
a dark muddy brown in light mode. They now use a vivid variant with a
floored lightness so the bolts stay bright on light backgrounds while
the static zap icon keeps its contrast-safe color.

https://claude.ai/code/session_01DMzZDBEyTvWChvBxbZZUuZ
… icon

Color polish
- Light-mode `zapColor` and `bookmarkColor` now track the light-mode
  primary (`customLightPrimary`) so the post-zap icon, post-zap count,
  reaction count text, top zap indicators, wallet accents, and the
  Lightning QR icon all render the same orange as buttons. Previously
  the custom-theme + default-theme light variants hardcoded `#B85C00`
  while buttons used `#D9730D`, producing a noticeable two-shade
  mismatch.
- Default ("custom") theme `light.primary` stays at `#D9730D`; the
  matching `light.zapColor` / `light.bookmarkColor` move to `#D9730D`
  in Themes.kt for theme consumers.
- In-flight bolt animation still uses `WispThemeColors.zapAnimationColor`
  (vivid HSL variant) — that's the muddy-on-light fix from the prior
  commit and stays scoped to animation only.

Launcher icon
- Replaced the Android-Studio green-grid placeholder with the iOS
  wisp artwork as an adaptive icon: vector foreground from the iOS
  SVG (orange radial-gradient wisp with eye cutouts via `evenOdd`),
  solid-black vector background. Group scaled to 65% of the foreground
  canvas so launcher masks (circle / squircle / rounded square / etc.)
  clip the black padding rather than the wisp's curl + outline.
- Legacy bitmap fallbacks (`mipmap-*/ic_launcher.png`) regenerated from
  the iOS-rendered Android PNGs at 48/72/96/144/192. Old `.webp`
  variants removed.
- Splash-screen icon (`windowSplashScreenAnimatedIcon` in themes.xml)
  now points at the new vector `@drawable/ic_launcher_foreground`.
- `mipmap-anydpi-v26/ic_launcher.xml` + `ic_launcher_round.xml`
  reference the vector foreground.

Cross-platform doc
- New `LIGHT_MODE_COLOR_PARITY.md` describes the contract for the iOS
  agent: `primary` darkening, `zapColor == primary` in light mode,
  `zapAnimationColor` as a separate vivid variant for animation only,
  and a visual test to verify the throughout-the-theme orange is
  consistent.
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