Skip to content

Extensible theme families (Jewel, macOS, iOS, Windows) beyond Material 3 #16

Description

@LizAinslie

Follow-up to the desktop Compose port and the shared theme work.

Goal

Theme should be a first-class, extensible layer — not hardcoded to Material 3. M3 is the default family today (light/dark + accent swatches + Android Material You). Later families should plug in without rewriting screens.

Proposed shape

  • ThemeFamily enum / registry in :components (or a dedicated :theme module later).
  • Each family supplies light + dark palettes, shape language, and optional chrome (window controls, sidebar treatment).
  • Screens consume ColorScheme + shapes through a thin YuriTheme API so they don't import M3 tokens directly where we can help it.
  • Playback chrome (now playing, mini player) still tints from cover art on top of the family.

Families to add

  1. Jewel (desktop-first) — faceted / gem-cut surfaces, high-contrast metals, decorative corners. Not M3.
  2. macOS / iOS — system-adjacent: vibrancy, sidebar, liquid-glass-ish chrome where the OS allows it. Use platform APIs instead of faking Aqua.
  3. Windows — Mica / Acrylic / WinUI-adjacent when running on Windows.

Out of scope for the first pass (already shipping)

  • Built-in light + dark
  • Accent color picker (M3 primary)
  • Desktop appearance: manual dark, manual light, follow system
  • Android 12+ Material You for the main chrome

Notes

Desktop should keep ThemeMode.SYSTEM wired to OS dark/light even after Jewel lands — Jewel still has a light and a dark cut.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    c/enhancementImprovement or additions to existing codec/featureA new feature

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions