Skip to main content

Theme Engine

Terminal theme management with built-in themes and custom theme support.

Built-in Themes

ThemeDescription
DarkDefault dark theme
LightClean light theme
Solarized DarkSolarized color scheme
MonokaiMonokai Pro inspired
NordNord color palette

Theme Structure

public struct TerminalTheme {
let name: String
let author: String
let background: ThemeColor
let foreground: ThemeColor
let cursor: ThemeColor
let selection: ThemeColor
let ansi: ANSIColors // All 16 ANSI colors
}

ThemeColor

Supports hex initialization and conversion to NSColor/SIMD4:

let color = ThemeColor(hex: "#A78BFA")
let nsColor = color.nsColor // For AppKit
let simd = color.simd4 // For Metal shaders

Custom Themes

let engine = ThemeEngine()
engine.addCustomTheme(myTheme)
try engine.loadTheme(named: "my-custom-theme")

Hot Reload

Theme changes are reflected immediately through @Observable:

engine.onThemeChange = { newTheme in
// Re-render terminal with new colors
}