feat(app): add flow diagnostics and refine interface
Improve failure recovery visibility, strengthen account-session handling, and make the cross-platform interface more consistent.
This commit is contained in:
@@ -30,6 +30,7 @@ enum MacSystemPalette {
|
||||
ThemePalette(
|
||||
background: resolved(dark ? darkBackground : warmBackground, dark: dark),
|
||||
surface: resolved(dark ? darkSurface : warmSurface, dark: dark),
|
||||
formSurface: resolved(dark ? darkFormSurface : warmFormSurface, dark: dark),
|
||||
surfaceElevated: resolved(dark ? darkElevated : warmElevated, dark: dark),
|
||||
surfaceMuted: resolved(dark ? darkMuted : warmMuted, dark: dark),
|
||||
|
||||
@@ -45,14 +46,14 @@ enum MacSystemPalette {
|
||||
textPrimary: resolved(.labelColor, dark: dark),
|
||||
textSecondary: resolved(.secondaryLabelColor, dark: dark),
|
||||
textTertiary: resolved(.tertiaryLabelColor, dark: dark),
|
||||
textOnAccent: Color.white,
|
||||
textOnAccent: OSGColor.fixedLightContent,
|
||||
|
||||
divider: dark
|
||||
? Color.white.opacity(0.08)
|
||||
: Color.black.opacity(0.06),
|
||||
? OSGColor.macDarkDivider
|
||||
: OSGColor.lightDivider,
|
||||
dividerStrong: dark
|
||||
? Color.white.opacity(0.12)
|
||||
: Color.black.opacity(0.10),
|
||||
? OSGColor.macDarkDividerStrong
|
||||
: OSGColor.lightDividerStrong,
|
||||
|
||||
recordRed: resolved(.systemRed, dark: dark),
|
||||
recordBlue: resolved(.systemBlue, dark: dark)
|
||||
@@ -62,13 +63,15 @@ enum MacSystemPalette {
|
||||
// MARK: - Warm Light-mode surfaces (matched to iOS `Palette.light`)
|
||||
|
||||
/// #F2F1EE — warm gray page background.
|
||||
private static let warmBackground = NSColor(srgbRed: 0.949, green: 0.945, blue: 0.933, alpha: 1)
|
||||
private static let warmBackground = NSColor(OSGColor.lightBackground)
|
||||
/// #FCFBF9 — warm off-white card/control surface.
|
||||
private static let warmSurface = NSColor(srgbRed: 0.988, green: 0.984, blue: 0.976, alpha: 1)
|
||||
private static let warmSurface = NSColor(OSGColor.lightSurface)
|
||||
/// #FCFBF9 — forms retain the ordinary card fill in light mode.
|
||||
private static let warmFormSurface = warmSurface
|
||||
/// #EBEAE7 — slightly recessed elevated surface.
|
||||
private static let warmElevated = NSColor(srgbRed: 0.922, green: 0.918, blue: 0.906, alpha: 1)
|
||||
private static let warmElevated = NSColor(OSGColor.lightSurfaceElevated)
|
||||
/// #EEEDE9 — muted fill between background and surface.
|
||||
private static let warmMuted = NSColor(srgbRed: 0.933, green: 0.929, blue: 0.918, alpha: 1)
|
||||
private static let warmMuted = NSColor(OSGColor.lightSurfaceMuted)
|
||||
|
||||
// MARK: - Dark-mode surfaces (Apple standard elevated grays)
|
||||
//
|
||||
@@ -78,13 +81,15 @@ enum MacSystemPalette {
|
||||
// clearly elevated above the background — mirroring the iOS dark palette.
|
||||
|
||||
/// #1C1C1E — page background.
|
||||
private static let darkBackground = NSColor(srgbRed: 0.110, green: 0.110, blue: 0.118, alpha: 1)
|
||||
private static let darkBackground = NSColor(OSGColor.macDarkBackground)
|
||||
/// #2C2C2E — card / control surface, clearly lighter than the background.
|
||||
private static let darkSurface = NSColor(srgbRed: 0.173, green: 0.173, blue: 0.180, alpha: 1)
|
||||
private static let darkSurface = NSColor(OSGColor.macDarkSurface)
|
||||
/// #343438 — interactive form fill between cards and elevated chrome.
|
||||
private static let darkFormSurface = NSColor(OSGColor.macDarkFormSurface)
|
||||
/// #3A3A3C — elevated fill for selected / raised chrome.
|
||||
private static let darkElevated = NSColor(srgbRed: 0.227, green: 0.227, blue: 0.235, alpha: 1)
|
||||
private static let darkElevated = NSColor(OSGColor.macDarkSurfaceElevated)
|
||||
/// #242426 — muted fill between background and surface.
|
||||
private static let darkMuted = NSColor(srgbRed: 0.141, green: 0.141, blue: 0.149, alpha: 1)
|
||||
private static let darkMuted = NSColor(OSGColor.macDarkSurfaceMuted)
|
||||
|
||||
/// Resolves a (possibly dynamic) AppKit colour to its concrete value under
|
||||
/// the requested appearance, so the two static palettes differ by value.
|
||||
|
||||
Reference in New Issue
Block a user