--- 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