42 lines
1.4 KiB
Markdown
42 lines
1.4 KiB
Markdown
---
|
|
epic: 7
|
|
story: 7.12
|
|
title: "Dark/Light/Auto Theme"
|
|
status: draft
|
|
---
|
|
|
|
## Epic 7 — macOS App (Swift/SwiftUI)
|
|
**Goal:** A beautiful, native macOS app that feels like it belongs on the platform.
|
|
|
|
### Story 7.12: Dark/Light/Auto Theme
|
|
|
|
As a **macOS user**,
|
|
I want CalcPad to follow the system appearance or let me manually override the theme,
|
|
So that the app always looks good in my preferred visual environment.
|
|
|
|
**Acceptance Criteria:**
|
|
|
|
**Given** the system appearance is set to Light mode and CalcPad is set to "Auto"
|
|
**When** the app renders its UI
|
|
**Then** the app uses a light theme
|
|
|
|
**Given** the system appearance is set to Dark mode and CalcPad is set to "Auto"
|
|
**When** the app renders its UI
|
|
**Then** the app uses a dark theme
|
|
|
|
**Given** the user sets CalcPad's theme to "Dark" manually
|
|
**When** the system is in Light mode
|
|
**Then** CalcPad uses a dark theme regardless of the system setting
|
|
|
|
**Given** the user sets CalcPad's theme to "Light" manually
|
|
**When** the system is in Dark mode
|
|
**Then** CalcPad uses a light theme regardless of the system setting
|
|
|
|
**Given** the system appearance changes while CalcPad is running (and CalcPad is set to "Auto")
|
|
**When** the system switches from Light to Dark (or vice versa)
|
|
**Then** CalcPad transitions to the new theme immediately without requiring a restart
|
|
|
|
**Given** the theme preference is implemented
|
|
**When** the SwiftUI view hierarchy renders
|
|
**Then** the `preferredColorScheme` modifier is applied at the root level
|