phase4: checkpoint
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Showing 1 changed file with +20 and −5
modified
docs/PLAN.md
+20 −5
@@ -57,12 +57,27 @@ round-trip, GCM tamper detection, cross-machine rejection (injected entropy), sa | ||
| 57 | 57 | a scan proving no key material or field names appear in the vault file. Zero Keychain/SecItem usage |
| 58 | 58 | in the codebase. Keys redact to `••••` + last 4 via `SecureKeyStore.redacted`. |
| 59 | 59 | |
| 60 | −## Phase 4 — Design System & UI Spec (in progress) | |
| 60 | +## Phase 4 — Design System & UI Spec ✅ (completed 2026-07-30) | |
| 61 | 61 | |
| 62 | −- [ ] `ZyquoTheme` tokens: colors (light flagship + dark derivation), typography, spacing, radii, shadows | |
| 63 | −- [ ] Reusable components: hairline, badges, hover states, buttons | |
| 64 | −- [ ] Appearance store (light/dark/system, accent choices, chat font size 12–18) | |
| 65 | −- [ ] Phase checkpoint: builds clean; tokens are the only color/size source (no raw hex in views) | |
| 62 | +- [x] `ZyquoTheme` tokens: full color spec (light flagship + night-sky dark derivation as dynamic | |
| 63 | + NSColors), typography scale (title/body 13.5 lh 1.45/caption/code SF Mono), spacing 4–32, | |
| 64 | + radii 6/10/14, soft shadow token, layout metrics (sidebar 260, header 52, column 760…), motion tokens | |
| 65 | +- [x] Reusable components: `ZyquoHairline` (0.5pt), `ZyquoBadge`, `StatusDot`, hover highlight (80ms), | |
| 66 | + pressable style (0.97), provider glyphs | |
| 67 | +- [x] `AppearanceStore`: light/dark/system, 5 accent choices (sky-indigo default), chat font size 12–18 clamped, persisted | |
| 68 | +- [x] Phase checkpoint: builds clean; tokens are the only color/size source (raw-hex sweep of Views/ViewModels clean) | |
| 69 | + | |
| 70 | +**Phase 4 checkpoint summary:** Design system complete per spec; the Phase 4.2 layout spec is the | |
| 71 | +contract for all Phase 6 UI and the 4.4 quality gate is re-checked before "done". Toolchain: builds | |
| 72 | +pinned to macOS 26 SDK (`SDKROOT` in Makefile/test.sh) because CLT lacks Xcode's SwiftUIMacros | |
| 73 | +plugin required by SDK 27's macro-based @State. | |
| 74 | + | |
| 75 | +## Phase 5 — App Icon (in progress) | |
| 76 | + | |
| 77 | +- [ ] `assets/icon/zyquo-cloud.svg` — Z+cloud fusion on Apple-squircle, sky gradient | |
| 78 | +- [ ] Render 16→1024, visually inspect, iterate until crisp at 16/32px (small-size variant if needed) | |
| 79 | +- [ ] `scripts/generate-icon.sh` → AppIcon.iconset → `Resources/AppIcon.icns` | |
| 80 | +- [ ] Menu bar template icon (18pt, isTemplate) + wordmark/empty-state glyph derivation | |
| 66 | 81 | ## Phase 2 — Architecture (pending) |
| 67 | 82 | ## Phase 3 — SecureKeyStore (pending) |
| 68 | 83 | ## Phase 4 — Design System (pending) |
| 69 | 84 | |