Recolor Orchestra gold and make the composer glow more aggressive

Swaps the Orchestra accent from violet to a warm gold (AppTheme.orchestra +
iOS Palette.orchestra), so the composer glow, effort label, and subagent cards all
read gold. Tunes the glow harder — a ~0.9s pulse (was 1.8s) with a thicker stroke
and a bigger outer bloom that swells on the beat — so an Orchestra turn announces
itself. Reduce Motion still holds the glow steady. Against a Control project's
lavender accent, the gold glow stands out cleanly.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
This commit is contained in:
Nucleic
2026-06-21 01:12:24 +00:00
co-authored by Claude Opus 4.8
parent e03ce837cf
commit 19c5e20503
+13 -10
View File
@@ -13,10 +13,10 @@ enum Palette {
static let paused = Color(red: 0.62, green: 0.49, blue: 0.93) // purple static let paused = Color(red: 0.62, green: 0.49, blue: 0.93) // purple
static let danger = Color(red: 0.92, green: 0.34, blue: 0.34) // red static let danger = Color(red: 0.92, green: 0.34, blue: 0.34) // red
static let neutral = Color.secondary static let neutral = Color.secondary
/// The orchestra (orchestration mode) signature purple — mirrors the Mac's /// The orchestra (orchestration mode) signature gold — mirrors the Mac's
/// `AppTheme.orchestra`. Used for the effort picker's Orchestra option and the /// `AppTheme.orchestra`. Used for the effort picker's Orchestra option and the
/// composer's purple ring. /// composer's golden ring.
static let orchestra = Color(red: 0.55, green: 0.28, blue: 0.95) static let orchestra = Color(red: 0.90, green: 0.66, blue: 0.16)
/// Dot/accent color for a session's status, refined by the last turn's disposition — a /// Dot/accent color for a session's status, refined by the last turn's disposition — a
/// finished-the-work turn reads as "done" (success) rather than the calm "ready" accent. /// finished-the-work turn reads as "done" (success) rather than the calm "ready" accent.
@@ -178,8 +178,9 @@ struct EffortMenu: View {
} }
} }
/// A gentle purple ring that breathes around a composer while orchestra is selected — the /// A bright golden ring that throbs around a composer while orchestra is selected — the
/// remote echo of the Mac's `OrchestraGlow`. Honors Reduce Motion (holds steady). /// remote echo of the Mac's `OrchestraGlow`, tuned to the same fast, high-amplitude pulse.
/// Honors Reduce Motion (holds steady).
struct OrchestraGlowModifier: ViewModifier { struct OrchestraGlowModifier: ViewModifier {
var active: Bool var active: Bool
var cornerRadius: CGFloat var cornerRadius: CGFloat
@@ -192,13 +193,15 @@ struct OrchestraGlowModifier: ViewModifier {
.overlay { .overlay {
if active { if active {
RoundedRectangle(cornerRadius: cornerRadius, style: .continuous) RoundedRectangle(cornerRadius: cornerRadius, style: .continuous)
.strokeBorder(Palette.orchestra.opacity(animating ? 0.9 : 0.5), .strokeBorder(Palette.orchestra.opacity(animating ? 0.95 : 0.5),
lineWidth: animating ? 1.6 : 1.2) lineWidth: animating ? 2.2 : 1.3)
.shadow(color: Palette.orchestra.opacity(animating ? 0.5 : 0.2), .shadow(color: Palette.orchestra.opacity(animating ? 0.7 : 0.22),
radius: animating ? 8 : 3) radius: animating ? 13 : 4)
.shadow(color: Palette.orchestra.opacity(animating ? 0.4 : 0.06),
radius: animating ? 20 : 4)
.animation( .animation(
reduceMotion ? .default reduceMotion ? .default
: .easeInOut(duration: 1.8).repeatForever(autoreverses: true), : .easeInOut(duration: 0.9).repeatForever(autoreverses: true),
value: pulsing) value: pulsing)
.allowsHitTesting(false) .allowsHitTesting(false)
} }