From 49aaf8ca89e2834174dca8aa23902c9890edd381 Mon Sep 17 00:00:00 2001 From: Andrew Blakeslee Moore Date: Wed, 17 Jun 2026 19:45:57 -0700 Subject: [PATCH] Nucleic: restore teal default accent (keep lavender for Control projects only) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit dev received an intermediate snapshot of this branch that had the accent scoping machinery (AppPalette.make(controlled:), controlAccent, RootView's contextProjectID gate) but NOT the reverts of the base accent back to teal. Result: the standard palette's base accent AND controlAccent were both lavender, so control and non-control projects rendered identically lavender. Re-assert the defaults so the gate is actually visible: - macOS AppTheme: standard base accent -> teal (0.04,0.52,0.50); controlAccent stays lavender (0.45,0.32,0.82). Non-control/home now render teal; only Nucleic Control projects get lavender. - iOS NucleicRemote: Palette.accent + AccentColor.colorset back to flat teal (remote has no Control concept). Merges current dev first so this branch is strictly ahead of it — autoshipping it back to dev will now override dev's lavender base with teal. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../AccentColor.colorset/Contents.json | 12 +---------- NucleicRemote/NucleicRemote/Views/Theme.swift | 21 ++++++------------- 2 files changed, 7 insertions(+), 26 deletions(-) diff --git a/NucleicRemote/NucleicRemote/Assets.xcassets/AccentColor.colorset/Contents.json b/NucleicRemote/NucleicRemote/Assets.xcassets/AccentColor.colorset/Contents.json index aa680dc..8e37716 100644 --- a/NucleicRemote/NucleicRemote/Assets.xcassets/AccentColor.colorset/Contents.json +++ b/NucleicRemote/NucleicRemote/Assets.xcassets/AccentColor.colorset/Contents.json @@ -1,14 +1,4 @@ { - "colors" : [ - { - "color" : { "color-space" : "srgb", "components" : { "red" : "0.450", "green" : "0.320", "blue" : "0.820", "alpha" : "1.000" } }, - "idiom" : "universal" - }, - { - "appearances" : [ { "appearance" : "luminosity", "value" : "dark" } ], - "color" : { "color-space" : "srgb", "components" : { "red" : "0.660", "green" : "0.550", "blue" : "0.950", "alpha" : "1.000" } }, - "idiom" : "universal" - } - ], + "colors" : [ { "color" : { "color-space" : "srgb", "components" : { "red" : "0.118", "green" : "0.565", "blue" : "0.553", "alpha" : "1.000" } }, "idiom" : "universal" } ], "info" : { "author" : "xcode", "version" : 1 } } diff --git a/NucleicRemote/NucleicRemote/Views/Theme.swift b/NucleicRemote/NucleicRemote/Views/Theme.swift index 9dd9d0d..9b972c5 100644 --- a/NucleicRemote/NucleicRemote/Views/Theme.swift +++ b/NucleicRemote/NucleicRemote/Views/Theme.swift @@ -1,21 +1,12 @@ import SwiftUI -import UIKit import NucleicProtocol -/// The mobile mirror of the Mac's design language (AppTheme/AppPalette on desktop): a -/// lavender/purple accent, the same categorical status palette, and the same status→color -/// mapping refined by turn disposition — so the two devices read identically. Pure SwiftUI -/// Color, adapting to light/dark via the system. +/// The mobile mirror of the Mac's design language (AppTheme/AppPalette on desktop): a deep +/// teal accent, the same categorical status palette, and the same status→color mapping +/// refined by turn disposition — so the two devices read identically. Pure SwiftUI Color +/// (no AppKit), adapting to light/dark via the system. enum Palette { - /// Lavender/purple accent with a separate shade per appearance: a deep violet in light - /// (white labels read at ~5.4:1) and a brighter lavender in dark, so it lifts off the - /// near-black background instead of muddying into it. Mirrors the Mac's appearance-aware - /// accent (AppPalette, nightSoftened for dark). - static let accent = Color(uiColor: UIColor { trait in - trait.userInterfaceStyle == .dark - ? UIColor(red: 0.66, green: 0.55, blue: 0.95, alpha: 1) // brighter lavender — dark mode - : UIColor(red: 0.45, green: 0.32, blue: 0.82, alpha: 1) // deep violet — light mode - }) + static let accent = Color(red: 0.04, green: 0.52, blue: 0.50) // deep teal static let active = Color(red: 0.20, green: 0.55, blue: 0.95) // blue static let attention = Color(red: 1.00, green: 0.65, blue: 0.15) // amber static let success = Color(red: 0.30, green: 0.80, blue: 0.45) // green @@ -120,6 +111,6 @@ struct CardBackground: ViewModifier { extension View { func card(padding: CGFloat = 14) -> some View { modifier(CardBackground(padding: padding)) } - /// Apply the lavender accent app-wide. + /// Apply the teal accent app-wide. func nucleicTint() -> some View { tint(Palette.accent) } }