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