The panel is a full-height strip that sits beside your work, where the system grey reads as a half-lit window next to a dark editor. Dark mode is now pure black, with card and row colours in one Theme file so both the panel background and the strip under the titlebar match.
29 lines
1.0 KiB
Swift
29 lines
1.0 KiB
Swift
import AppKit
|
|
import SwiftUI
|
|
|
|
/// Appearance-aware colours for the panel.
|
|
///
|
|
/// Dark mode is pure black rather than the system window grey: the panel is a
|
|
/// full-height strip that sits beside your work, and the grey reads as a
|
|
/// half-lit window next to a dark editor or terminal.
|
|
enum Theme {
|
|
static func isDark(_ appearance: NSAppearance) -> Bool {
|
|
appearance.bestMatch(from: [.aqua, .darkAqua]) == .darkAqua
|
|
}
|
|
|
|
/// The panel's own background (also handed to the NSPanel so the area under
|
|
/// the transparent titlebar matches).
|
|
static let background = NSColor(name: nil) { appearance in
|
|
isDark(appearance) ? .black : .windowBackgroundColor
|
|
}
|
|
|
|
/// Card background, kept subtle but visible against pure black.
|
|
static let row = NSColor(name: nil) { appearance in
|
|
isDark(appearance) ? NSColor(white: 1, alpha: 0.07) : NSColor(white: 0, alpha: 0.05)
|
|
}
|
|
|
|
/// Same colours for SwiftUI.
|
|
static let backgroundSwiftUI = Color(nsColor: background)
|
|
static let rowSwiftUI = Color(nsColor: row)
|
|
}
|