diff options
Diffstat (limited to 'packages/tui/internal/theme')
29 files changed, 0 insertions, 5632 deletions
diff --git a/packages/tui/internal/theme/loader.go b/packages/tui/internal/theme/loader.go deleted file mode 100644 index b3d2f0982..000000000 --- a/packages/tui/internal/theme/loader.go +++ /dev/null @@ -1,408 +0,0 @@ -package theme - -import ( - "embed" - "encoding/json" - "fmt" - "image/color" - "os" - "path" - "path/filepath" - "strings" - - "github.com/charmbracelet/lipgloss/v2" - "github.com/charmbracelet/lipgloss/v2/compat" -) - -//go:embed themes/*.json -var themesFS embed.FS - -type JSONTheme struct { - Defs map[string]any `json:"defs,omitempty"` - Theme map[string]any `json:"theme"` -} - -type LoadedTheme struct { - BaseTheme - name string -} - -func (t *LoadedTheme) Name() string { - return t.name -} - -type colorRef struct { - value any - resolved bool -} - -func LoadThemesFromJSON() error { - entries, err := themesFS.ReadDir("themes") - if err != nil { - return fmt.Errorf("failed to read themes directory: %w", err) - } - - for _, entry := range entries { - if !strings.HasSuffix(entry.Name(), ".json") { - continue - } - themeName := strings.TrimSuffix(entry.Name(), ".json") - data, err := themesFS.ReadFile(path.Join("themes", entry.Name())) - if err != nil { - return fmt.Errorf("failed to read theme file %s: %w", entry.Name(), err) - } - theme, err := parseJSONTheme(themeName, data) - if err != nil { - return fmt.Errorf("failed to parse theme %s: %w", themeName, err) - } - RegisterTheme(themeName, theme) - } - - return nil -} - -// LoadThemesFromDirectories loads themes from user directories in the correct override order. -// The hierarchy is (from lowest to highest priority): -// 1. Built-in themes (embedded) -// 2. USER_CONFIG/opencode/themes/*.json -// 3. PROJECT_ROOT/.opencode/themes/*.json -// 4. CWD/.opencode/themes/*.json -func LoadThemesFromDirectories(userConfig, projectRoot, cwd string) error { - if err := LoadThemesFromJSON(); err != nil { - return fmt.Errorf("failed to load built-in themes: %w", err) - } - - dirs := []string{ - filepath.Join(userConfig, "themes"), - filepath.Join(projectRoot, ".opencode", "themes"), - } - if cwd != projectRoot { - dirs = append(dirs, filepath.Join(cwd, ".opencode", "themes")) - } - - for _, dir := range dirs { - if err := loadThemesFromDirectory(dir); err != nil { - fmt.Printf("Warning: Failed to load themes from %s: %v\n", dir, err) - } - } - - return nil -} - -func loadThemesFromDirectory(dir string) error { - if _, err := os.Stat(dir); os.IsNotExist(err) { - return nil // Directory doesn't exist, which is fine - } - - entries, err := os.ReadDir(dir) - if err != nil { - return fmt.Errorf("failed to read directory: %w", err) - } - - for _, entry := range entries { - if entry.IsDir() || !strings.HasSuffix(entry.Name(), ".json") { - continue - } - - themeName := strings.TrimSuffix(entry.Name(), ".json") - filePath := filepath.Join(dir, entry.Name()) - - data, err := os.ReadFile(filePath) - if err != nil { - fmt.Printf("Warning: Failed to read theme file %s: %v\n", filePath, err) - continue - } - - theme, err := parseJSONTheme(themeName, data) - if err != nil { - fmt.Printf("Warning: Failed to parse theme %s: %v\n", filePath, err) - continue - } - - RegisterTheme(themeName, theme) - } - - return nil -} - -func parseJSONTheme(name string, data []byte) (Theme, error) { - var jsonTheme JSONTheme - if err := json.Unmarshal(data, &jsonTheme); err != nil { - return nil, fmt.Errorf("failed to unmarshal JSON: %w", err) - } - theme := &LoadedTheme{ - name: name, - } - colorMap := make(map[string]*colorRef) - for key, value := range jsonTheme.Defs { - colorMap[key] = &colorRef{value: value, resolved: false} - } - for key, value := range jsonTheme.Theme { - colorMap[key] = &colorRef{value: value, resolved: false} - } - resolver := &colorResolver{ - colors: colorMap, - visited: make(map[string]bool), - } - for key, value := range jsonTheme.Theme { - resolved, err := resolver.resolveColor(key, value) - if err != nil { - return nil, fmt.Errorf("failed to resolve color %s: %w", key, err) - } - adaptiveColor, err := parseResolvedColor(resolved) - if err != nil { - return nil, fmt.Errorf("failed to parse color %s: %w", key, err) - } - if err := setThemeColor(theme, key, adaptiveColor); err != nil { - return nil, fmt.Errorf("failed to set color %s: %w", key, err) - } - } - - return theme, nil -} - -type colorResolver struct { - colors map[string]*colorRef - visited map[string]bool -} - -func (r *colorResolver) resolveColor(key string, value any) (any, error) { - if r.visited[key] { - return nil, fmt.Errorf("circular reference detected for color %s", key) - } - r.visited[key] = true - defer func() { r.visited[key] = false }() - - switch v := value.(type) { - case string: - if strings.HasPrefix(v, "#") || v == "none" { - return v, nil - } - return r.resolveReference(v) - case float64: - return v, nil - case map[string]any: - resolved := make(map[string]any) - - if dark, ok := v["dark"]; ok { - resolvedDark, err := r.resolveColorValue(dark) - if err != nil { - return nil, fmt.Errorf("failed to resolve dark variant: %w", err) - } - resolved["dark"] = resolvedDark - } - - if light, ok := v["light"]; ok { - resolvedLight, err := r.resolveColorValue(light) - if err != nil { - return nil, fmt.Errorf("failed to resolve light variant: %w", err) - } - resolved["light"] = resolvedLight - } - - return resolved, nil - default: - return nil, fmt.Errorf("invalid color value type: %T", value) - } -} - -func (r *colorResolver) resolveColorValue(value any) (any, error) { - switch v := value.(type) { - case string: - if strings.HasPrefix(v, "#") || v == "none" { - return v, nil - } - return r.resolveReference(v) - case float64: - return v, nil - default: - return nil, fmt.Errorf("invalid color value type: %T", value) - } -} - -func (r *colorResolver) resolveReference(ref string) (any, error) { - colorRef, exists := r.colors[ref] - if !exists { - return nil, fmt.Errorf("color reference '%s' not found", ref) - } - - if colorRef.resolved { - return colorRef.value, nil - } - - resolved, err := r.resolveColor(ref, colorRef.value) - if err != nil { - return nil, err - } - - colorRef.value = resolved - colorRef.resolved = true - - return resolved, nil -} - -func parseResolvedColor(value any) (compat.AdaptiveColor, error) { - switch v := value.(type) { - case string: - if v == "none" { - return compat.AdaptiveColor{ - Dark: lipgloss.NoColor{}, - Light: lipgloss.NoColor{}, - }, nil - } - return compat.AdaptiveColor{ - Dark: lipgloss.Color(v), - Light: lipgloss.Color(v), - }, nil - case float64: - colorStr := fmt.Sprintf("%d", int(v)) - return compat.AdaptiveColor{ - Dark: lipgloss.Color(colorStr), - Light: lipgloss.Color(colorStr), - }, nil - case map[string]any: - dark, darkOk := v["dark"] - light, lightOk := v["light"] - - if !darkOk || !lightOk { - return compat.AdaptiveColor{}, fmt.Errorf("color object must have both 'dark' and 'light' keys") - } - darkColor, err := parseColorValue(dark) - if err != nil { - return compat.AdaptiveColor{}, fmt.Errorf("failed to parse dark color: %w", err) - } - lightColor, err := parseColorValue(light) - if err != nil { - return compat.AdaptiveColor{}, fmt.Errorf("failed to parse light color: %w", err) - } - return compat.AdaptiveColor{ - Dark: darkColor, - Light: lightColor, - }, nil - default: - return compat.AdaptiveColor{}, fmt.Errorf("invalid resolved color type: %T", value) - } -} - -func parseColorValue(value any) (color.Color, error) { - switch v := value.(type) { - case string: - if v == "none" { - return lipgloss.NoColor{}, nil - } - return lipgloss.Color(v), nil - case float64: - return lipgloss.Color(fmt.Sprintf("%d", int(v))), nil - default: - return nil, fmt.Errorf("invalid color value type: %T", value) - } -} - -func setThemeColor(theme *LoadedTheme, key string, color compat.AdaptiveColor) error { - switch key { - case "primary": - theme.PrimaryColor = color - case "secondary": - theme.SecondaryColor = color - case "accent": - theme.AccentColor = color - case "error": - theme.ErrorColor = color - case "warning": - theme.WarningColor = color - case "success": - theme.SuccessColor = color - case "info": - theme.InfoColor = color - case "text": - theme.TextColor = color - case "textMuted": - theme.TextMutedColor = color - case "background": - theme.BackgroundColor = color - case "backgroundPanel": - theme.BackgroundPanelColor = color - case "backgroundElement": - theme.BackgroundElementColor = color - case "border": - theme.BorderColor = color - case "borderActive": - theme.BorderActiveColor = color - case "borderSubtle": - theme.BorderSubtleColor = color - case "diffAdded": - theme.DiffAddedColor = color - case "diffRemoved": - theme.DiffRemovedColor = color - case "diffContext": - theme.DiffContextColor = color - case "diffHunkHeader": - theme.DiffHunkHeaderColor = color - case "diffHighlightAdded": - theme.DiffHighlightAddedColor = color - case "diffHighlightRemoved": - theme.DiffHighlightRemovedColor = color - case "diffAddedBg": - theme.DiffAddedBgColor = color - case "diffRemovedBg": - theme.DiffRemovedBgColor = color - case "diffContextBg": - theme.DiffContextBgColor = color - case "diffLineNumber": - theme.DiffLineNumberColor = color - case "diffAddedLineNumberBg": - theme.DiffAddedLineNumberBgColor = color - case "diffRemovedLineNumberBg": - theme.DiffRemovedLineNumberBgColor = color - case "markdownText": - theme.MarkdownTextColor = color - case "markdownHeading": - theme.MarkdownHeadingColor = color - case "markdownLink": - theme.MarkdownLinkColor = color - case "markdownLinkText": - theme.MarkdownLinkTextColor = color - case "markdownCode": - theme.MarkdownCodeColor = color - case "markdownBlockQuote": - theme.MarkdownBlockQuoteColor = color - case "markdownEmph": - theme.MarkdownEmphColor = color - case "markdownStrong": - theme.MarkdownStrongColor = color - case "markdownHorizontalRule": - theme.MarkdownHorizontalRuleColor = color - case "markdownListItem": - theme.MarkdownListItemColor = color - case "markdownListEnumeration": - theme.MarkdownListEnumerationColor = color - case "markdownImage": - theme.MarkdownImageColor = color - case "markdownImageText": - theme.MarkdownImageTextColor = color - case "markdownCodeBlock": - theme.MarkdownCodeBlockColor = color - case "syntaxComment": - theme.SyntaxCommentColor = color - case "syntaxKeyword": - theme.SyntaxKeywordColor = color - case "syntaxFunction": - theme.SyntaxFunctionColor = color - case "syntaxVariable": - theme.SyntaxVariableColor = color - case "syntaxString": - theme.SyntaxStringColor = color - case "syntaxNumber": - theme.SyntaxNumberColor = color - case "syntaxType": - theme.SyntaxTypeColor = color - case "syntaxOperator": - theme.SyntaxOperatorColor = color - case "syntaxPunctuation": - theme.SyntaxPunctuationColor = color - default: - // Ignore unknown keys for forward compatibility - return nil - } - return nil -} diff --git a/packages/tui/internal/theme/loader_test.go b/packages/tui/internal/theme/loader_test.go deleted file mode 100644 index 37546789b..000000000 --- a/packages/tui/internal/theme/loader_test.go +++ /dev/null @@ -1,141 +0,0 @@ -package theme - -import ( - "os" - "path/filepath" - "slices" - "testing" -) - -func TestLoadThemesFromJSON(t *testing.T) { - // Test loading themes - err := LoadThemesFromJSON() - if err != nil { - t.Fatalf("Failed to load themes: %v", err) - } - - // Check that themes were loaded - themes := AvailableThemes() - if len(themes) == 0 { - t.Fatal("No themes were loaded") - } - - // Check for expected themes - expectedThemes := []string{"tokyonight", "opencode", "everforest", "ayu"} - for _, expected := range expectedThemes { - found := slices.Contains(themes, expected) - if !found { - t.Errorf("Expected theme %s not found", expected) - } - } - - // Test getting a specific theme - tokyonight := GetTheme("tokyonight") - if tokyonight == nil { - t.Fatal("Failed to get tokyonight theme") - } - - // Test theme colors - primary := tokyonight.Primary() - if primary.Dark == nil || primary.Light == nil { - t.Error("Primary color not properly set") - } -} - -func TestColorReferenceResolution(t *testing.T) { - // Load themes first - err := LoadThemesFromJSON() - if err != nil { - t.Fatalf("Failed to load themes: %v", err) - } - - // Test a theme that uses references (e.g., solarized uses color definitions) - solarized := GetTheme("solarized") - if solarized == nil { - t.Fatal("Failed to get solarized theme") - } - - // Check that color references were resolved - primary := solarized.Primary() - if primary.Dark == nil || primary.Light == nil { - t.Error("Primary color reference not resolved") - } - - // Check that all colors are properly resolved - text := solarized.Text() - if text.Dark == nil || text.Light == nil { - t.Error("Text color reference not resolved") - } -} - -func TestLoadThemesFromDirectories(t *testing.T) { - // Create temporary directories for testing - tempDir := t.TempDir() - - userConfig := filepath.Join(tempDir, "config") - projectRoot := filepath.Join(tempDir, "project") - cwd := filepath.Join(tempDir, "cwd") - - // Create theme directories - os.MkdirAll(filepath.Join(userConfig, "opencode", "themes"), 0755) - os.MkdirAll(filepath.Join(projectRoot, ".opencode", "themes"), 0755) - os.MkdirAll(filepath.Join(cwd, ".opencode", "themes"), 0755) - - // Create test themes with same name to test override behavior - testTheme1 := `{ - "theme": { - "primary": "#111111", - "secondary": "#222222", - "accent": "#333333", - "text": "#ffffff", - "textMuted": "#cccccc", - "background": "#000000" - } - }` - - testTheme2 := `{ - "theme": { - "primary": "#444444", - "secondary": "#555555", - "accent": "#666666", - "text": "#ffffff", - "textMuted": "#cccccc", - "background": "#000000" - } - }` - - testTheme3 := `{ - "theme": { - "primary": "#777777", - "secondary": "#888888", - "accent": "#999999", - "text": "#ffffff", - "textMuted": "#cccccc", - "background": "#000000" - } - }` - - // Write themes to different directories - os.WriteFile(filepath.Join(userConfig, "opencode", "themes", "override-test.json"), []byte(testTheme1), 0644) - os.WriteFile(filepath.Join(projectRoot, ".opencode", "themes", "override-test.json"), []byte(testTheme2), 0644) - os.WriteFile(filepath.Join(cwd, ".opencode", "themes", "override-test.json"), []byte(testTheme3), 0644) - - // Load themes - err := LoadThemesFromDirectories(userConfig, projectRoot, cwd) - if err != nil { - t.Fatalf("Failed to load themes from directories: %v", err) - } - - // Check that the theme from CWD (highest priority) won - overrideTheme := GetTheme("override-test") - if overrideTheme == nil { - t.Fatal("Failed to get override-test theme") - } - - // The primary color should be from testTheme3 (#777777) - primary := overrideTheme.Primary() - // We can't directly check the color value, but we can verify it was loaded - if primary.Dark == nil || primary.Light == nil { - t.Error("Override theme not properly loaded") - } -} diff --git a/packages/tui/internal/theme/manager.go b/packages/tui/internal/theme/manager.go deleted file mode 100644 index 420b96dea..000000000 --- a/packages/tui/internal/theme/manager.go +++ /dev/null @@ -1,229 +0,0 @@ -package theme - -import ( - "fmt" - "image/color" - "slices" - "strconv" - "strings" - "sync" - - "github.com/alecthomas/chroma/v2/styles" - "github.com/charmbracelet/lipgloss/v2" - "github.com/charmbracelet/lipgloss/v2/compat" - "github.com/charmbracelet/x/ansi" -) - -// Manager handles theme registration, selection, and retrieval. -// It maintains a registry of available themes and tracks the currently active theme. -type Manager struct { - themes map[string]Theme - currentName string - currentUsesAnsiCache bool // Cache whether current theme uses ANSI colors - mu sync.RWMutex -} - -// Global instance of the theme manager -var globalManager = &Manager{ - themes: make(map[string]Theme), - currentName: "", -} - -// RegisterTheme adds a new theme to the registry. -// If this is the first theme registered, it becomes the default. -func RegisterTheme(name string, theme Theme) { - globalManager.mu.Lock() - defer globalManager.mu.Unlock() - - globalManager.themes[name] = theme - - // If this is the first theme, make it the default - if globalManager.currentName == "" { - globalManager.currentName = name - globalManager.currentUsesAnsiCache = themeUsesAnsiColors(theme) - } -} - -// SetTheme changes the active theme to the one with the specified name. -// Returns an error if the theme doesn't exist. -func SetTheme(name string) error { - globalManager.mu.Lock() - defer globalManager.mu.Unlock() - delete(styles.Registry, "charm") - - theme, exists := globalManager.themes[name] - if !exists { - return fmt.Errorf("theme '%s' not found", name) - } - - globalManager.currentName = name - globalManager.currentUsesAnsiCache = themeUsesAnsiColors(theme) - - return nil -} - -// CurrentTheme returns the currently active theme. -// If no theme is set, it returns nil. -func CurrentTheme() Theme { - globalManager.mu.RLock() - defer globalManager.mu.RUnlock() - - if globalManager.currentName == "" { - return nil - } - - return globalManager.themes[globalManager.currentName] -} - -// CurrentThemeName returns the name of the currently active theme. -func CurrentThemeName() string { - globalManager.mu.RLock() - defer globalManager.mu.RUnlock() - - return globalManager.currentName -} - -// AvailableThemes returns a list of all registered theme names. -func AvailableThemes() []string { - globalManager.mu.RLock() - defer globalManager.mu.RUnlock() - - names := make([]string, 0, len(globalManager.themes)) - for name := range globalManager.themes { - names = append(names, name) - } - slices.SortFunc(names, func(a, b string) int { - if a == "opencode" { - return -1 - } else if b == "opencode" { - return 1 - } - if a == "system" { - return -1 - } else if b == "system" { - return 1 - } - return strings.Compare(a, b) - }) - return names -} - -// GetTheme returns a specific theme by name. -// Returns nil if the theme doesn't exist. -func GetTheme(name string) Theme { - globalManager.mu.RLock() - defer globalManager.mu.RUnlock() - - return globalManager.themes[name] -} - -// UpdateSystemTheme updates the system theme with terminal background info -func UpdateSystemTheme(terminalBg color.Color, isDark bool) { - globalManager.mu.Lock() - defer globalManager.mu.Unlock() - - dynamicTheme := NewSystemTheme(terminalBg, isDark) - globalManager.themes["system"] = dynamicTheme - if globalManager.currentName == "system" { - globalManager.currentUsesAnsiCache = themeUsesAnsiColors(dynamicTheme) - } -} - -// CurrentThemeUsesAnsiColors returns true if the current theme uses ANSI 0-16 colors -func CurrentThemeUsesAnsiColors() bool { - // globalManager.mu.RLock() - // defer globalManager.mu.RUnlock() - - return globalManager.currentUsesAnsiCache -} - -// isAnsiColor checks if a color represents an ANSI 0-16 color -func isAnsiColor(c color.Color) bool { - if _, ok := c.(lipgloss.NoColor); ok { - return false - } - if _, ok := c.(ansi.BasicColor); ok { - return true - } - - // For other color types, check if they represent ANSI colors - // by examining their string representation - if stringer, ok := c.(fmt.Stringer); ok { - str := stringer.String() - // Check if it's a numeric ANSI color (0-15) - if num, err := strconv.Atoi(str); err == nil && num >= 0 && num <= 15 { - return true - } - } - - return false -} - -// adaptiveColorUsesAnsi checks if an AdaptiveColor uses ANSI colors -func adaptiveColorUsesAnsi(ac compat.AdaptiveColor) bool { - if isAnsiColor(ac.Dark) { - return true - } - if isAnsiColor(ac.Light) { - return true - } - return false -} - -// themeUsesAnsiColors checks if a theme uses any ANSI 0-16 colors -func themeUsesAnsiColors(theme Theme) bool { - if theme == nil { - return false - } - - return adaptiveColorUsesAnsi(theme.Primary()) || - adaptiveColorUsesAnsi(theme.Secondary()) || - adaptiveColorUsesAnsi(theme.Accent()) || - adaptiveColorUsesAnsi(theme.Error()) || - adaptiveColorUsesAnsi(theme.Warning()) || - adaptiveColorUsesAnsi(theme.Success()) || - adaptiveColorUsesAnsi(theme.Info()) || - adaptiveColorUsesAnsi(theme.Text()) || - adaptiveColorUsesAnsi(theme.TextMuted()) || - adaptiveColorUsesAnsi(theme.Background()) || - adaptiveColorUsesAnsi(theme.BackgroundPanel()) || - adaptiveColorUsesAnsi(theme.BackgroundElement()) || - adaptiveColorUsesAnsi(theme.Border()) || - adaptiveColorUsesAnsi(theme.BorderActive()) || - adaptiveColorUsesAnsi(theme.BorderSubtle()) || - adaptiveColorUsesAnsi(theme.DiffAdded()) || - adaptiveColorUsesAnsi(theme.DiffRemoved()) || - adaptiveColorUsesAnsi(theme.DiffContext()) || - adaptiveColorUsesAnsi(theme.DiffHunkHeader()) || - adaptiveColorUsesAnsi(theme.DiffHighlightAdded()) || - adaptiveColorUsesAnsi(theme.DiffHighlightRemoved()) || - adaptiveColorUsesAnsi(theme.DiffAddedBg()) || - adaptiveColorUsesAnsi(theme.DiffRemovedBg()) || - adaptiveColorUsesAnsi(theme.DiffContextBg()) || - adaptiveColorUsesAnsi(theme.DiffLineNumber()) || - adaptiveColorUsesAnsi(theme.DiffAddedLineNumberBg()) || - adaptiveColorUsesAnsi(theme.DiffRemovedLineNumberBg()) || - adaptiveColorUsesAnsi(theme.MarkdownText()) || - adaptiveColorUsesAnsi(theme.MarkdownHeading()) || - adaptiveColorUsesAnsi(theme.MarkdownLink()) || - adaptiveColorUsesAnsi(theme.MarkdownLinkText()) || - adaptiveColorUsesAnsi(theme.MarkdownCode()) || - adaptiveColorUsesAnsi(theme.MarkdownBlockQuote()) || - adaptiveColorUsesAnsi(theme.MarkdownEmph()) || - adaptiveColorUsesAnsi(theme.MarkdownStrong()) || - adaptiveColorUsesAnsi(theme.MarkdownHorizontalRule()) || - adaptiveColorUsesAnsi(theme.MarkdownListItem()) || - adaptiveColorUsesAnsi(theme.MarkdownListEnumeration()) || - adaptiveColorUsesAnsi(theme.MarkdownImage()) || - adaptiveColorUsesAnsi(theme.MarkdownImageText()) || - adaptiveColorUsesAnsi(theme.MarkdownCodeBlock()) || - adaptiveColorUsesAnsi(theme.SyntaxComment()) || - adaptiveColorUsesAnsi(theme.SyntaxKeyword()) || - adaptiveColorUsesAnsi(theme.SyntaxFunction()) || - adaptiveColorUsesAnsi(theme.SyntaxVariable()) || - adaptiveColorUsesAnsi(theme.SyntaxString()) || - adaptiveColorUsesAnsi(theme.SyntaxNumber()) || - adaptiveColorUsesAnsi(theme.SyntaxType()) || - adaptiveColorUsesAnsi(theme.SyntaxOperator()) || - adaptiveColorUsesAnsi(theme.SyntaxPunctuation()) -} diff --git a/packages/tui/internal/theme/system.go b/packages/tui/internal/theme/system.go deleted file mode 100644 index 8dd48cfec..000000000 --- a/packages/tui/internal/theme/system.go +++ /dev/null @@ -1,303 +0,0 @@ -package theme - -import ( - "fmt" - "image/color" - "math" - - "github.com/charmbracelet/lipgloss/v2" - "github.com/charmbracelet/lipgloss/v2/compat" -) - -// SystemTheme is a dynamic theme that derives its gray scale colors -// from the terminal's background color at runtime -type SystemTheme struct { - BaseTheme - terminalBg color.Color - terminalBgIsDark bool -} - -// NewSystemTheme creates a new instance of the dynamic system theme -func NewSystemTheme(terminalBg color.Color, isDark bool) *SystemTheme { - theme := &SystemTheme{ - terminalBg: terminalBg, - terminalBgIsDark: isDark, - } - theme.initializeColors() - return theme -} - -func (t *SystemTheme) Name() string { - return "system" -} - -// initializeColors sets up all theme colors -func (t *SystemTheme) initializeColors() { - // Generate gray scale based on terminal background - grays := t.generateGrayScale() - - // Set ANSI colors for primary colors - t.PrimaryColor = compat.AdaptiveColor{ - Dark: lipgloss.Cyan, - Light: lipgloss.Cyan, - } - t.SecondaryColor = compat.AdaptiveColor{ - Dark: lipgloss.Magenta, - Light: lipgloss.Magenta, - } - t.AccentColor = compat.AdaptiveColor{ - Dark: lipgloss.Cyan, - Light: lipgloss.Cyan, - } - - // Status colors using ANSI - t.ErrorColor = compat.AdaptiveColor{ - Dark: lipgloss.Red, - Light: lipgloss.Red, - } - t.WarningColor = compat.AdaptiveColor{ - Dark: lipgloss.Yellow, - Light: lipgloss.Yellow, - } - t.SuccessColor = compat.AdaptiveColor{ - Dark: lipgloss.Green, - Light: lipgloss.Green, - } - t.InfoColor = compat.AdaptiveColor{ - Dark: lipgloss.Cyan, - Light: lipgloss.Cyan, - } - - // Text colors - t.TextColor = compat.AdaptiveColor{ - Dark: lipgloss.NoColor{}, - Light: lipgloss.NoColor{}, - } - // Derive muted text color from terminal foreground - t.TextMutedColor = t.generateMutedTextColor() - - // Background colors - t.BackgroundColor = compat.AdaptiveColor{ - Dark: lipgloss.NoColor{}, - Light: lipgloss.NoColor{}, - } - t.BackgroundPanelColor = grays[2] - t.BackgroundElementColor = grays[3] - - // Border colors - t.BorderSubtleColor = grays[6] - t.BorderColor = grays[7] - t.BorderActiveColor = grays[8] - - // Diff colors using ANSI colors - t.DiffAddedColor = compat.AdaptiveColor{ - Dark: lipgloss.Color("2"), // green - Light: lipgloss.Color("2"), - } - t.DiffRemovedColor = compat.AdaptiveColor{ - Dark: lipgloss.Color("1"), // red - Light: lipgloss.Color("1"), - } - t.DiffContextColor = grays[7] // Use gray for context - t.DiffHunkHeaderColor = grays[7] - t.DiffHighlightAddedColor = compat.AdaptiveColor{ - Dark: lipgloss.Color("2"), // green - Light: lipgloss.Color("2"), - } - t.DiffHighlightRemovedColor = compat.AdaptiveColor{ - Dark: lipgloss.Color("1"), // red - Light: lipgloss.Color("1"), - } - // Use subtle gray backgrounds for diff - t.DiffAddedBgColor = grays[2] - t.DiffRemovedBgColor = grays[2] - t.DiffContextBgColor = grays[1] - t.DiffLineNumberColor = grays[6] - t.DiffAddedLineNumberBgColor = grays[3] - t.DiffRemovedLineNumberBgColor = grays[3] - - // Markdown colors using ANSI - t.MarkdownTextColor = compat.AdaptiveColor{ - Dark: lipgloss.NoColor{}, - Light: lipgloss.NoColor{}, - } - t.MarkdownHeadingColor = compat.AdaptiveColor{ - Dark: lipgloss.NoColor{}, - Light: lipgloss.NoColor{}, - } - t.MarkdownLinkColor = compat.AdaptiveColor{ - Dark: lipgloss.Color("4"), // blue - Light: lipgloss.Color("4"), - } - t.MarkdownLinkTextColor = compat.AdaptiveColor{ - Dark: lipgloss.Color("6"), // cyan - Light: lipgloss.Color("6"), - } - t.MarkdownCodeColor = compat.AdaptiveColor{ - Dark: lipgloss.Color("2"), // green - Light: lipgloss.Color("2"), - } - t.MarkdownBlockQuoteColor = compat.AdaptiveColor{ - Dark: lipgloss.Color("3"), // yellow - Light: lipgloss.Color("3"), - } - t.MarkdownEmphColor = compat.AdaptiveColor{ - Dark: lipgloss.Color("3"), // yellow - Light: lipgloss.Color("3"), - } - t.MarkdownStrongColor = compat.AdaptiveColor{ - Dark: lipgloss.NoColor{}, - Light: lipgloss.NoColor{}, - } - t.MarkdownHorizontalRuleColor = t.BorderColor - t.MarkdownListItemColor = compat.AdaptiveColor{ - Dark: lipgloss.Color("4"), // blue - Light: lipgloss.Color("4"), - } - t.MarkdownListEnumerationColor = compat.AdaptiveColor{ - Dark: lipgloss.Color("6"), // cyan - Light: lipgloss.Color("6"), - } - t.MarkdownImageColor = compat.AdaptiveColor{ - Dark: lipgloss.Color("4"), // blue - Light: lipgloss.Color("4"), - } - t.MarkdownImageTextColor = compat.AdaptiveColor{ - Dark: lipgloss.Color("6"), // cyan - Light: lipgloss.Color("6"), - } - t.MarkdownCodeBlockColor = compat.AdaptiveColor{ - Dark: lipgloss.NoColor{}, - Light: lipgloss.NoColor{}, - } - - // Syntax colors - t.SyntaxCommentColor = t.TextMutedColor // Use same as muted text - t.SyntaxKeywordColor = compat.AdaptiveColor{ - Dark: lipgloss.Color("5"), // magenta - Light: lipgloss.Color("5"), - } - t.SyntaxFunctionColor = compat.AdaptiveColor{ - Dark: lipgloss.Color("4"), // blue - Light: lipgloss.Color("4"), - } - t.SyntaxVariableColor = compat.AdaptiveColor{ - Dark: lipgloss.NoColor{}, - Light: lipgloss.NoColor{}, - } - t.SyntaxStringColor = compat.AdaptiveColor{ - Dark: lipgloss.Color("2"), // green - Light: lipgloss.Color("2"), - } - t.SyntaxNumberColor = compat.AdaptiveColor{ - Dark: lipgloss.Color("3"), // yellow - Light: lipgloss.Color("3"), - } - t.SyntaxTypeColor = compat.AdaptiveColor{ - Dark: lipgloss.Color("6"), // cyan - Light: lipgloss.Color("6"), - } - t.SyntaxOperatorColor = compat.AdaptiveColor{ - Dark: lipgloss.Color("6"), // cyan - Light: lipgloss.Color("6"), - } - t.SyntaxPunctuationColor = compat.AdaptiveColor{ - Dark: lipgloss.NoColor{}, - Light: lipgloss.NoColor{}, - } -} - -// generateGrayScale creates a gray scale based on the terminal background -func (t *SystemTheme) generateGrayScale() map[int]compat.AdaptiveColor { - grays := make(map[int]compat.AdaptiveColor) - - r, g, b, _ := t.terminalBg.RGBA() - bgR := float64(r >> 8) - bgG := float64(g >> 8) - bgB := float64(b >> 8) - - luminance := 0.299*bgR + 0.587*bgG + 0.114*bgB - - for i := 1; i <= 12; i++ { - var stepColor string - factor := float64(i) / 12.0 - - if t.terminalBgIsDark { - if luminance < 10 { - grayValue := int(factor * 0.4 * 255) - stepColor = fmt.Sprintf("#%02x%02x%02x", grayValue, grayValue, grayValue) - } else { - newLum := luminance + (255-luminance)*factor*0.4 - - ratio := newLum / luminance - newR := math.Min(bgR*ratio, 255) - newG := math.Min(bgG*ratio, 255) - newB := math.Min(bgB*ratio, 255) - - stepColor = fmt.Sprintf("#%02x%02x%02x", int(newR), int(newG), int(newB)) - } - } else { - if luminance > 245 { - grayValue := int(255 - factor*0.4*255) - stepColor = fmt.Sprintf("#%02x%02x%02x", grayValue, grayValue, grayValue) - } else { - newLum := luminance * (1 - factor*0.4) - - ratio := newLum / luminance - newR := math.Max(bgR*ratio, 0) - newG := math.Max(bgG*ratio, 0) - newB := math.Max(bgB*ratio, 0) - - stepColor = fmt.Sprintf("#%02x%02x%02x", int(newR), int(newG), int(newB)) - } - } - - grays[i] = compat.AdaptiveColor{ - Dark: lipgloss.Color(stepColor), - Light: lipgloss.Color(stepColor), - } - } - - return grays -} - -// generateMutedTextColor creates a muted gray color based on the terminal background -func (t *SystemTheme) generateMutedTextColor() compat.AdaptiveColor { - bgR, bgG, bgB, _ := t.terminalBg.RGBA() - - bgRf := float64(bgR >> 8) - bgGf := float64(bgG >> 8) - bgBf := float64(bgB >> 8) - - bgLum := 0.299*bgRf + 0.587*bgGf + 0.114*bgBf - - var grayValue int - if t.terminalBgIsDark { - if bgLum < 10 { - // Very dark/black background - // grays[3] would be around #2e (46), so we need much lighter - grayValue = 180 // #b4b4b4 - } else { - // Scale up for lighter dark backgrounds - // Ensure we're always significantly brighter than BackgroundElement - grayValue = min(int(160+(bgLum*0.3)), 200) - } - } else { - if bgLum > 245 { - // Very light/white background - // grays[3] would be around #f5 (245), so we need much darker - grayValue = 75 // #4b4b4b - } else { - // Scale down for darker light backgrounds - // Ensure we're always significantly darker than BackgroundElement - grayValue = max(int(100-((255-bgLum)*0.2)), 60) - } - } - - mutedColor := fmt.Sprintf("#%02x%02x%02x", grayValue, grayValue, grayValue) - - return compat.AdaptiveColor{ - Dark: lipgloss.Color(mutedColor), - Light: lipgloss.Color(mutedColor), - } -} diff --git a/packages/tui/internal/theme/theme.go b/packages/tui/internal/theme/theme.go deleted file mode 100644 index d5d27a1e1..000000000 --- a/packages/tui/internal/theme/theme.go +++ /dev/null @@ -1,215 +0,0 @@ -package theme - -import ( - "github.com/charmbracelet/lipgloss/v2/compat" -) - -// Theme defines the interface for all UI themes in the application. -// All colors must be defined as compat.AdaptiveColor to support -// both light and dark terminal backgrounds. -type Theme interface { - Name() string - - // Background colors - Background() compat.AdaptiveColor // Radix 1 - BackgroundPanel() compat.AdaptiveColor // Radix 2 - BackgroundElement() compat.AdaptiveColor // Radix 3 - - // Border colors - BorderSubtle() compat.AdaptiveColor // Radix 6 - Border() compat.AdaptiveColor // Radix 7 - BorderActive() compat.AdaptiveColor // Radix 8 - - // Brand colors - Primary() compat.AdaptiveColor // Radix 9 - Secondary() compat.AdaptiveColor - Accent() compat.AdaptiveColor - - // Text colors - TextMuted() compat.AdaptiveColor // Radix 11 - Text() compat.AdaptiveColor // Radix 12 - - // Status colors - Error() compat.AdaptiveColor - Warning() compat.AdaptiveColor - Success() compat.AdaptiveColor - Info() compat.AdaptiveColor - - // Diff view colors - DiffAdded() compat.AdaptiveColor - DiffRemoved() compat.AdaptiveColor - DiffContext() compat.AdaptiveColor - DiffHunkHeader() compat.AdaptiveColor - DiffHighlightAdded() compat.AdaptiveColor - DiffHighlightRemoved() compat.AdaptiveColor - DiffAddedBg() compat.AdaptiveColor - DiffRemovedBg() compat.AdaptiveColor - DiffContextBg() compat.AdaptiveColor - DiffLineNumber() compat.AdaptiveColor - DiffAddedLineNumberBg() compat.AdaptiveColor - DiffRemovedLineNumberBg() compat.AdaptiveColor - - // Markdown colors - MarkdownText() compat.AdaptiveColor - MarkdownHeading() compat.AdaptiveColor - MarkdownLink() compat.AdaptiveColor - MarkdownLinkText() compat.AdaptiveColor - MarkdownCode() compat.AdaptiveColor - MarkdownBlockQuote() compat.AdaptiveColor - MarkdownEmph() compat.AdaptiveColor - MarkdownStrong() compat.AdaptiveColor - MarkdownHorizontalRule() compat.AdaptiveColor - MarkdownListItem() compat.AdaptiveColor - MarkdownListEnumeration() compat.AdaptiveColor - MarkdownImage() compat.AdaptiveColor - MarkdownImageText() compat.AdaptiveColor - MarkdownCodeBlock() compat.AdaptiveColor - - // Syntax highlighting colors - SyntaxComment() compat.AdaptiveColor - SyntaxKeyword() compat.AdaptiveColor - SyntaxFunction() compat.AdaptiveColor - SyntaxVariable() compat.AdaptiveColor - SyntaxString() compat.AdaptiveColor - SyntaxNumber() compat.AdaptiveColor - SyntaxType() compat.AdaptiveColor - SyntaxOperator() compat.AdaptiveColor - SyntaxPunctuation() compat.AdaptiveColor -} - -// BaseTheme provides a default implementation of the Theme interface -// that can be embedded in concrete theme implementations. -type BaseTheme struct { - // Background colors - BackgroundColor compat.AdaptiveColor - BackgroundPanelColor compat.AdaptiveColor - BackgroundElementColor compat.AdaptiveColor - - // Border colors - BorderSubtleColor compat.AdaptiveColor - BorderColor compat.AdaptiveColor - BorderActiveColor compat.AdaptiveColor - - // Brand colors - PrimaryColor compat.AdaptiveColor - SecondaryColor compat.AdaptiveColor - AccentColor compat.AdaptiveColor - - // Text colors - TextMutedColor compat.AdaptiveColor - TextColor compat.AdaptiveColor - - // Status colors - ErrorColor compat.AdaptiveColor - WarningColor compat.AdaptiveColor - SuccessColor compat.AdaptiveColor - InfoColor compat.AdaptiveColor - - // Diff view colors - DiffAddedColor compat.AdaptiveColor - DiffRemovedColor compat.AdaptiveColor - DiffContextColor compat.AdaptiveColor - DiffHunkHeaderColor compat.AdaptiveColor - DiffHighlightAddedColor compat.AdaptiveColor - DiffHighlightRemovedColor compat.AdaptiveColor - DiffAddedBgColor compat.AdaptiveColor - DiffRemovedBgColor compat.AdaptiveColor - DiffContextBgColor compat.AdaptiveColor - DiffLineNumberColor compat.AdaptiveColor - DiffAddedLineNumberBgColor compat.AdaptiveColor - DiffRemovedLineNumberBgColor compat.AdaptiveColor - - // Markdown colors - MarkdownTextColor compat.AdaptiveColor - MarkdownHeadingColor compat.AdaptiveColor - MarkdownLinkColor compat.AdaptiveColor - MarkdownLinkTextColor compat.AdaptiveColor - MarkdownCodeColor compat.AdaptiveColor - MarkdownBlockQuoteColor compat.AdaptiveColor - MarkdownEmphColor compat.AdaptiveColor - MarkdownStrongColor compat.AdaptiveColor - MarkdownHorizontalRuleColor compat.AdaptiveColor - MarkdownListItemColor compat.AdaptiveColor - MarkdownListEnumerationColor compat.AdaptiveColor - MarkdownImageColor compat.AdaptiveColor - MarkdownImageTextColor compat.AdaptiveColor - MarkdownCodeBlockColor compat.AdaptiveColor - - // Syntax highlighting colors - SyntaxCommentColor compat.AdaptiveColor - SyntaxKeywordColor compat.AdaptiveColor - SyntaxFunctionColor compat.AdaptiveColor - SyntaxVariableColor compat.AdaptiveColor - SyntaxStringColor compat.AdaptiveColor - SyntaxNumberColor compat.AdaptiveColor - SyntaxTypeColor compat.AdaptiveColor - SyntaxOperatorColor compat.AdaptiveColor - SyntaxPunctuationColor compat.AdaptiveColor -} - -// Implement the Theme interface for BaseTheme -func (t *BaseTheme) Primary() compat.AdaptiveColor { return t.PrimaryColor } -func (t *BaseTheme) Secondary() compat.AdaptiveColor { return t.SecondaryColor } -func (t *BaseTheme) Accent() compat.AdaptiveColor { return t.AccentColor } - -func (t *BaseTheme) Error() compat.AdaptiveColor { return t.ErrorColor } -func (t *BaseTheme) Warning() compat.AdaptiveColor { return t.WarningColor } -func (t *BaseTheme) Success() compat.AdaptiveColor { return t.SuccessColor } -func (t *BaseTheme) Info() compat.AdaptiveColor { return t.InfoColor } - -func (t *BaseTheme) Text() compat.AdaptiveColor { return t.TextColor } -func (t *BaseTheme) TextMuted() compat.AdaptiveColor { return t.TextMutedColor } - -func (t *BaseTheme) Background() compat.AdaptiveColor { return t.BackgroundColor } -func (t *BaseTheme) BackgroundPanel() compat.AdaptiveColor { return t.BackgroundPanelColor } -func (t *BaseTheme) BackgroundElement() compat.AdaptiveColor { return t.BackgroundElementColor } - -func (t *BaseTheme) Border() compat.AdaptiveColor { return t.BorderColor } -func (t *BaseTheme) BorderActive() compat.AdaptiveColor { return t.BorderActiveColor } -func (t *BaseTheme) BorderSubtle() compat.AdaptiveColor { return t.BorderSubtleColor } - -func (t *BaseTheme) DiffAdded() compat.AdaptiveColor { return t.DiffAddedColor } -func (t *BaseTheme) DiffRemoved() compat.AdaptiveColor { return t.DiffRemovedColor } -func (t *BaseTheme) DiffContext() compat.AdaptiveColor { return t.DiffContextColor } -func (t *BaseTheme) DiffHunkHeader() compat.AdaptiveColor { return t.DiffHunkHeaderColor } -func (t *BaseTheme) DiffHighlightAdded() compat.AdaptiveColor { return t.DiffHighlightAddedColor } -func (t *BaseTheme) DiffHighlightRemoved() compat.AdaptiveColor { return t.DiffHighlightRemovedColor } -func (t *BaseTheme) DiffAddedBg() compat.AdaptiveColor { return t.DiffAddedBgColor } -func (t *BaseTheme) DiffRemovedBg() compat.AdaptiveColor { return t.DiffRemovedBgColor } -func (t *BaseTheme) DiffContextBg() compat.AdaptiveColor { return t.DiffContextBgColor } -func (t *BaseTheme) DiffLineNumber() compat.AdaptiveColor { return t.DiffLineNumberColor } -func (t *BaseTheme) DiffAddedLineNumberBg() compat.AdaptiveColor { - return t.DiffAddedLineNumberBgColor -} -func (t *BaseTheme) DiffRemovedLineNumberBg() compat.AdaptiveColor { - return t.DiffRemovedLineNumberBgColor -} - -func (t *BaseTheme) MarkdownText() compat.AdaptiveColor { return t.MarkdownTextColor } -func (t *BaseTheme) MarkdownHeading() compat.AdaptiveColor { return t.MarkdownHeadingColor } -func (t *BaseTheme) MarkdownLink() compat.AdaptiveColor { return t.MarkdownLinkColor } -func (t *BaseTheme) MarkdownLinkText() compat.AdaptiveColor { return t.MarkdownLinkTextColor } -func (t *BaseTheme) MarkdownCode() compat.AdaptiveColor { return t.MarkdownCodeColor } -func (t *BaseTheme) MarkdownBlockQuote() compat.AdaptiveColor { return t.MarkdownBlockQuoteColor } -func (t *BaseTheme) MarkdownEmph() compat.AdaptiveColor { return t.MarkdownEmphColor } -func (t *BaseTheme) MarkdownStrong() compat.AdaptiveColor { return t.MarkdownStrongColor } -func (t *BaseTheme) MarkdownHorizontalRule() compat.AdaptiveColor { - return t.MarkdownHorizontalRuleColor -} -func (t *BaseTheme) MarkdownListItem() compat.AdaptiveColor { return t.MarkdownListItemColor } -func (t *BaseTheme) MarkdownListEnumeration() compat.AdaptiveColor { - return t.MarkdownListEnumerationColor -} -func (t *BaseTheme) MarkdownImage() compat.AdaptiveColor { return t.MarkdownImageColor } -func (t *BaseTheme) MarkdownImageText() compat.AdaptiveColor { return t.MarkdownImageTextColor } -func (t *BaseTheme) MarkdownCodeBlock() compat.AdaptiveColor { return t.MarkdownCodeBlockColor } - -func (t *BaseTheme) SyntaxComment() compat.AdaptiveColor { return t.SyntaxCommentColor } -func (t *BaseTheme) SyntaxKeyword() compat.AdaptiveColor { return t.SyntaxKeywordColor } -func (t *BaseTheme) SyntaxFunction() compat.AdaptiveColor { return t.SyntaxFunctionColor } -func (t *BaseTheme) SyntaxVariable() compat.AdaptiveColor { return t.SyntaxVariableColor } -func (t *BaseTheme) SyntaxString() compat.AdaptiveColor { return t.SyntaxStringColor } -func (t *BaseTheme) SyntaxNumber() compat.AdaptiveColor { return t.SyntaxNumberColor } -func (t *BaseTheme) SyntaxType() compat.AdaptiveColor { return t.SyntaxTypeColor } -func (t *BaseTheme) SyntaxOperator() compat.AdaptiveColor { return t.SyntaxOperatorColor } -func (t *BaseTheme) SyntaxPunctuation() compat.AdaptiveColor { return t.SyntaxPunctuationColor } diff --git a/packages/tui/internal/theme/themes/aura.json b/packages/tui/internal/theme/themes/aura.json deleted file mode 100644 index e7798d520..000000000 --- a/packages/tui/internal/theme/themes/aura.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "$schema": "https://opencode.ai/theme.json", - "defs": { - "darkBg": "#0f0f0f", - "darkBgPanel": "#15141b", - "darkBorder": "#2d2d2d", - "darkFgMuted": "#6d6d6d", - "darkFg": "#edecee", - "purple": "#a277ff", - "pink": "#f694ff", - "blue": "#82e2ff", - "red": "#ff6767", - "orange": "#ffca85", - "cyan": "#61ffca", - "green": "#9dff65" - }, - "theme": { - "primary": "purple", - "secondary": "pink", - "accent": "purple", - "error": "red", - "warning": "orange", - "success": "cyan", - "info": "purple", - "text": "darkFg", - "textMuted": "darkFgMuted", - "background": "darkBg", - "backgroundPanel": "darkBgPanel", - "backgroundElement": "darkBgPanel", - "border": "darkBorder", - "borderActive": "darkFgMuted", - "borderSubtle": "darkBorder", - "diffAdded": "cyan", - "diffRemoved": "red", - "diffContext": "darkFgMuted", - "diffHunkHeader": "darkFgMuted", - "diffHighlightAdded": "cyan", - "diffHighlightRemoved": "red", - "diffAddedBg": "#354933", - "diffRemovedBg": "#3f191a", - "diffContextBg": "darkBgPanel", - "diffLineNumber": "darkBorder", - "diffAddedLineNumberBg": "#162620", - "diffRemovedLineNumberBg": "#26161a", - "markdownText": "darkFg", - "markdownHeading": "purple", - "markdownLink": "pink", - "markdownLinkText": "purple", - "markdownCode": "cyan", - "markdownBlockQuote": "darkFgMuted", - "markdownEmph": "orange", - "markdownStrong": "purple", - "markdownHorizontalRule": "darkFgMuted", - "markdownListItem": "purple", - "markdownListEnumeration": "purple", - "markdownImage": "pink", - "markdownImageText": "purple", - "markdownCodeBlock": "darkFg", - "syntaxComment": "darkFgMuted", - "syntaxKeyword": "pink", - "syntaxFunction": "purple", - "syntaxVariable": "purple", - "syntaxString": "cyan", - "syntaxNumber": "green", - "syntaxType": "purple", - "syntaxOperator": "pink", - "syntaxPunctuation": "darkFg" - } -} diff --git a/packages/tui/internal/theme/themes/ayu.json b/packages/tui/internal/theme/themes/ayu.json deleted file mode 100644 index a42fce4c4..000000000 --- a/packages/tui/internal/theme/themes/ayu.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "$schema": "https://opencode.ai/theme.json", - "defs": { - "darkBg": "#0B0E14", - "darkBgAlt": "#0D1017", - "darkLine": "#11151C", - "darkPanel": "#0F131A", - "darkFg": "#BFBDB6", - "darkFgMuted": "#565B66", - "darkGutter": "#6C7380", - "darkTag": "#39BAE6", - "darkFunc": "#FFB454", - "darkEntity": "#59C2FF", - "darkString": "#AAD94C", - "darkRegexp": "#95E6CB", - "darkMarkup": "#F07178", - "darkKeyword": "#FF8F40", - "darkSpecial": "#E6B673", - "darkComment": "#ACB6BF", - "darkConstant": "#D2A6FF", - "darkOperator": "#F29668", - "darkAdded": "#7FD962", - "darkRemoved": "#F26D78", - "darkAccent": "#E6B450", - "darkError": "#D95757", - "darkIndentActive": "#6C7380" - }, - "theme": { - "primary": "darkEntity", - "secondary": "darkConstant", - "accent": "darkAccent", - "error": "darkError", - "warning": "darkSpecial", - "success": "darkAdded", - "info": "darkTag", - "text": "darkFg", - "textMuted": "darkFgMuted", - "background": "darkBg", - "backgroundPanel": "darkPanel", - "backgroundElement": "darkBgAlt", - "border": "darkGutter", - "borderActive": "darkIndentActive", - "borderSubtle": "darkLine", - "diffAdded": "darkAdded", - "diffRemoved": "darkRemoved", - "diffContext": "darkComment", - "diffHunkHeader": "darkComment", - "diffHighlightAdded": "darkString", - "diffHighlightRemoved": "darkMarkup", - "diffAddedBg": "#20303b", - "diffRemovedBg": "#37222c", - "diffContextBg": "darkPanel", - "diffLineNumber": "darkGutter", - "diffAddedLineNumberBg": "#1b2b34", - "diffRemovedLineNumberBg": "#2d1f26", - "markdownText": "darkFg", - "markdownHeading": "darkConstant", - "markdownLink": "darkEntity", - "markdownLinkText": "darkTag", - "markdownCode": "darkString", - "markdownBlockQuote": "darkSpecial", - "markdownEmph": "darkSpecial", - "markdownStrong": "darkFunc", - "markdownHorizontalRule": "darkFgMuted", - "markdownListItem": "darkEntity", - "markdownListEnumeration": "darkTag", - "markdownImage": "darkEntity", - "markdownImageText": "darkTag", - "markdownCodeBlock": "darkFg", - "syntaxComment": "darkComment", - "syntaxKeyword": "darkKeyword", - "syntaxFunction": "darkFunc", - "syntaxVariable": "darkEntity", - "syntaxString": "darkString", - "syntaxNumber": "darkConstant", - "syntaxType": "darkSpecial", - "syntaxOperator": "darkOperator", - "syntaxPunctuation": "darkFg" - } -} diff --git a/packages/tui/internal/theme/themes/catppuccin.json b/packages/tui/internal/theme/themes/catppuccin.json deleted file mode 100644 index d0fa6a11d..000000000 --- a/packages/tui/internal/theme/themes/catppuccin.json +++ /dev/null @@ -1,112 +0,0 @@ -{ - "$schema": "https://opencode.ai/theme.json", - "defs": { - "lightRosewater": "#dc8a78", - "lightFlamingo": "#dd7878", - "lightPink": "#ea76cb", - "lightMauve": "#8839ef", - "lightRed": "#d20f39", - "lightMaroon": "#e64553", - "lightPeach": "#fe640b", - "lightYellow": "#df8e1d", - "lightGreen": "#40a02b", - "lightTeal": "#179299", - "lightSky": "#04a5e5", - "lightSapphire": "#209fb5", - "lightBlue": "#1e66f5", - "lightLavender": "#7287fd", - "lightText": "#4c4f69", - "lightSubtext1": "#5c5f77", - "lightSubtext0": "#6c6f85", - "lightOverlay2": "#7c7f93", - "lightOverlay1": "#8c8fa1", - "lightOverlay0": "#9ca0b0", - "lightSurface2": "#acb0be", - "lightSurface1": "#bcc0cc", - "lightSurface0": "#ccd0da", - "lightBase": "#eff1f5", - "lightMantle": "#e6e9ef", - "lightCrust": "#dce0e8", - "darkRosewater": "#f5e0dc", - "darkFlamingo": "#f2cdcd", - "darkPink": "#f5c2e7", - "darkMauve": "#cba6f7", - "darkRed": "#f38ba8", - "darkMaroon": "#eba0ac", - "darkPeach": "#fab387", - "darkYellow": "#f9e2af", - "darkGreen": "#a6e3a1", - "darkTeal": "#94e2d5", - "darkSky": "#89dceb", - "darkSapphire": "#74c7ec", - "darkBlue": "#89b4fa", - "darkLavender": "#b4befe", - "darkText": "#cdd6f4", - "darkSubtext1": "#bac2de", - "darkSubtext0": "#a6adc8", - "darkOverlay2": "#9399b2", - "darkOverlay1": "#7f849c", - "darkOverlay0": "#6c7086", - "darkSurface2": "#585b70", - "darkSurface1": "#45475a", - "darkSurface0": "#313244", - "darkBase": "#1e1e2e", - "darkMantle": "#181825", - "darkCrust": "#11111b" - }, - "theme": { - "primary": { "dark": "darkBlue", "light": "lightBlue" }, - "secondary": { "dark": "darkMauve", "light": "lightMauve" }, - "accent": { "dark": "darkPink", "light": "lightPink" }, - "error": { "dark": "darkRed", "light": "lightRed" }, - "warning": { "dark": "darkYellow", "light": "lightYellow" }, - "success": { "dark": "darkGreen", "light": "lightGreen" }, - "info": { "dark": "darkTeal", "light": "lightTeal" }, - "text": { "dark": "darkText", "light": "lightText" }, - "textMuted": { "dark": "darkSubtext1", "light": "lightSubtext1" }, - "background": { "dark": "darkBase", "light": "lightBase" }, - "backgroundPanel": { "dark": "darkMantle", "light": "lightMantle" }, - "backgroundElement": { "dark": "darkCrust", "light": "lightCrust" }, - "border": { "dark": "darkSurface0", "light": "lightSurface0" }, - "borderActive": { "dark": "darkSurface1", "light": "lightSurface1" }, - "borderSubtle": { "dark": "darkSurface2", "light": "lightSurface2" }, - "diffAdded": { "dark": "darkGreen", "light": "lightGreen" }, - "diffRemoved": { "dark": "darkRed", "light": "lightRed" }, - "diffContext": { "dark": "darkOverlay2", "light": "lightOverlay2" }, - "diffHunkHeader": { "dark": "darkPeach", "light": "lightPeach" }, - "diffHighlightAdded": { "dark": "darkGreen", "light": "lightGreen" }, - "diffHighlightRemoved": { "dark": "darkRed", "light": "lightRed" }, - "diffAddedBg": { "dark": "#24312b", "light": "#d6f0d9" }, - "diffRemovedBg": { "dark": "#3c2a32", "light": "#f6dfe2" }, - "diffContextBg": { "dark": "darkMantle", "light": "lightMantle" }, - "diffLineNumber": { "dark": "darkSurface1", "light": "lightSurface1" }, - "diffAddedLineNumberBg": { "dark": "#1e2a25", "light": "#c9e3cb" }, - "diffRemovedLineNumberBg": { "dark": "#32232a", "light": "#e9d3d6" }, - "markdownText": { "dark": "darkText", "light": "lightText" }, - "markdownHeading": { "dark": "darkMauve", "light": "lightMauve" }, - "markdownLink": { "dark": "darkBlue", "light": "lightBlue" }, - "markdownLinkText": { "dark": "darkSky", "light": "lightSky" }, - "markdownCode": { "dark": "darkGreen", "light": "lightGreen" }, - "markdownBlockQuote": { "dark": "darkYellow", "light": "lightYellow" }, - "markdownEmph": { "dark": "darkYellow", "light": "lightYellow" }, - "markdownStrong": { "dark": "darkPeach", "light": "lightPeach" }, - "markdownHorizontalRule": { - "dark": "darkSubtext0", - "light": "lightSubtext0" - }, - "markdownListItem": { "dark": "darkBlue", "light": "lightBlue" }, - "markdownListEnumeration": { "dark": "darkSky", "light": "lightSky" }, - "markdownImage": { "dark": "darkBlue", "light": "lightBlue" }, - "markdownImageText": { "dark": "darkSky", "light": "lightSky" }, - "markdownCodeBlock": { "dark": "darkText", "light": "lightText" }, - "syntaxComment": { "dark": "darkOverlay2", "light": "lightOverlay2" }, - "syntaxKeyword": { "dark": "darkMauve", "light": "lightMauve" }, - "syntaxFunction": { "dark": "darkBlue", "light": "lightBlue" }, - "syntaxVariable": { "dark": "darkRed", "light": "lightRed" }, - "syntaxString": { "dark": "darkGreen", "light": "lightGreen" }, - "syntaxNumber": { "dark": "darkPeach", "light": "lightPeach" }, - "syntaxType": { "dark": "darkYellow", "light": "lightYellow" }, - "syntaxOperator": { "dark": "darkSky", "light": "lightSky" }, - "syntaxPunctuation": { "dark": "darkText", "light": "lightText" } - } -} diff --git a/packages/tui/internal/theme/themes/cobalt2.json b/packages/tui/internal/theme/themes/cobalt2.json deleted file mode 100644 index 2967eae58..000000000 --- a/packages/tui/internal/theme/themes/cobalt2.json +++ /dev/null @@ -1,228 +0,0 @@ -{ - "$schema": "https://opencode.ai/theme.json", - "defs": { - "background": "#193549", - "backgroundAlt": "#122738", - "backgroundPanel": "#1f4662", - "foreground": "#ffffff", - "foregroundMuted": "#adb7c9", - "yellow": "#ffc600", - "yellowBright": "#ffe14c", - "orange": "#ff9d00", - "orangeBright": "#ffb454", - "mint": "#2affdf", - "mintBright": "#7efff5", - "blue": "#0088ff", - "blueBright": "#5cb7ff", - "pink": "#ff628c", - "pinkBright": "#ff86a5", - "green": "#9eff80", - "greenBright": "#b9ff9f", - "purple": "#9a5feb", - "purpleBright": "#b88cfd", - "red": "#ff0088", - "redBright": "#ff5fb3" - }, - "theme": { - "primary": { - "dark": "blue", - "light": "#0066cc" - }, - "secondary": { - "dark": "purple", - "light": "#7c4dff" - }, - "accent": { - "dark": "mint", - "light": "#00acc1" - }, - "error": { - "dark": "red", - "light": "#e91e63" - }, - "warning": { - "dark": "yellow", - "light": "#ff9800" - }, - "success": { - "dark": "green", - "light": "#4caf50" - }, - "info": { - "dark": "orange", - "light": "#ff5722" - }, - "text": { - "dark": "foreground", - "light": "#193549" - }, - "textMuted": { - "dark": "foregroundMuted", - "light": "#5c6b7d" - }, - "background": { - "dark": "#193549", - "light": "#ffffff" - }, - "backgroundPanel": { - "dark": "#122738", - "light": "#f5f7fa" - }, - "backgroundElement": { - "dark": "#1f4662", - "light": "#e8ecf1" - }, - "border": { - "dark": "#1f4662", - "light": "#d3dae3" - }, - "borderActive": { - "dark": "blue", - "light": "#0066cc" - }, - "borderSubtle": { - "dark": "#0e1e2e", - "light": "#e8ecf1" - }, - "diffAdded": { - "dark": "green", - "light": "#4caf50" - }, - "diffRemoved": { - "dark": "red", - "light": "#e91e63" - }, - "diffContext": { - "dark": "foregroundMuted", - "light": "#5c6b7d" - }, - "diffHunkHeader": { - "dark": "mint", - "light": "#00acc1" - }, - "diffHighlightAdded": { - "dark": "greenBright", - "light": "#4caf50" - }, - "diffHighlightRemoved": { - "dark": "redBright", - "light": "#e91e63" - }, - "diffAddedBg": { - "dark": "#1a3a2a", - "light": "#e8f5e9" - }, - "diffRemovedBg": { - "dark": "#3a1a2a", - "light": "#ffebee" - }, - "diffContextBg": { - "dark": "#122738", - "light": "#f5f7fa" - }, - "diffLineNumber": { - "dark": "#2d5a7b", - "light": "#b0bec5" - }, - "diffAddedLineNumberBg": { - "dark": "#1a3a2a", - "light": "#e8f5e9" - }, - "diffRemovedLineNumberBg": { - "dark": "#3a1a2a", - "light": "#ffebee" - }, - "markdownText": { - "dark": "foreground", - "light": "#193549" - }, - "markdownHeading": { - "dark": "yellow", - "light": "#ff9800" - }, - "markdownLink": { - "dark": "blue", - "light": "#0066cc" - }, - "markdownLinkText": { - "dark": "mint", - "light": "#00acc1" - }, - "markdownCode": { - "dark": "green", - "light": "#4caf50" - }, - "markdownBlockQuote": { - "dark": "foregroundMuted", - "light": "#5c6b7d" - }, - "markdownEmph": { - "dark": "orange", - "light": "#ff5722" - }, - "markdownStrong": { - "dark": "pink", - "light": "#e91e63" - }, - "markdownHorizontalRule": { - "dark": "#2d5a7b", - "light": "#d3dae3" - }, - "markdownListItem": { - "dark": "blue", - "light": "#0066cc" - }, - "markdownListEnumeration": { - "dark": "mint", - "light": "#00acc1" - }, - "markdownImage": { - "dark": "blue", - "light": "#0066cc" - }, - "markdownImageText": { - "dark": "mint", - "light": "#00acc1" - }, - "markdownCodeBlock": { - "dark": "foreground", - "light": "#193549" - }, - "syntaxComment": { - "dark": "#0088ff", - "light": "#5c6b7d" - }, - "syntaxKeyword": { - "dark": "orange", - "light": "#ff5722" - }, - "syntaxFunction": { - "dark": "yellow", - "light": "#ff9800" - }, - "syntaxVariable": { - "dark": "foreground", - "light": "#193549" - }, - "syntaxString": { - "dark": "green", - "light": "#4caf50" - }, - "syntaxNumber": { - "dark": "pink", - "light": "#e91e63" - }, - "syntaxType": { - "dark": "mint", - "light": "#00acc1" - }, - "syntaxOperator": { - "dark": "orange", - "light": "#ff5722" - }, - "syntaxPunctuation": { - "dark": "foreground", - "light": "#193549" - } - } -} diff --git a/packages/tui/internal/theme/themes/dracula.json b/packages/tui/internal/theme/themes/dracula.json deleted file mode 100644 index c837a0b58..000000000 --- a/packages/tui/internal/theme/themes/dracula.json +++ /dev/null @@ -1,219 +0,0 @@ -{ - "$schema": "https://opencode.ai/theme.json", - "defs": { - "background": "#282a36", - "currentLine": "#44475a", - "selection": "#44475a", - "foreground": "#f8f8f2", - "comment": "#6272a4", - "cyan": "#8be9fd", - "green": "#50fa7b", - "orange": "#ffb86c", - "pink": "#ff79c6", - "purple": "#bd93f9", - "red": "#ff5555", - "yellow": "#f1fa8c" - }, - "theme": { - "primary": { - "dark": "purple", - "light": "purple" - }, - "secondary": { - "dark": "pink", - "light": "pink" - }, - "accent": { - "dark": "cyan", - "light": "cyan" - }, - "error": { - "dark": "red", - "light": "red" - }, - "warning": { - "dark": "yellow", - "light": "yellow" - }, - "success": { - "dark": "green", - "light": "green" - }, - "info": { - "dark": "orange", - "light": "orange" - }, - "text": { - "dark": "foreground", - "light": "#282a36" - }, - "textMuted": { - "dark": "comment", - "light": "#6272a4" - }, - "background": { - "dark": "#282a36", - "light": "#f8f8f2" - }, - "backgroundPanel": { - "dark": "#21222c", - "light": "#e8e8e2" - }, - "backgroundElement": { - "dark": "currentLine", - "light": "#d8d8d2" - }, - "border": { - "dark": "currentLine", - "light": "#c8c8c2" - }, - "borderActive": { - "dark": "purple", - "light": "purple" - }, - "borderSubtle": { - "dark": "#191a21", - "light": "#e0e0e0" - }, - "diffAdded": { - "dark": "green", - "light": "green" - }, - "diffRemoved": { - "dark": "red", - "light": "red" - }, - "diffContext": { - "dark": "comment", - "light": "#6272a4" - }, - "diffHunkHeader": { - "dark": "comment", - "light": "#6272a4" - }, - "diffHighlightAdded": { - "dark": "green", - "light": "green" - }, - "diffHighlightRemoved": { - "dark": "red", - "light": "red" - }, - "diffAddedBg": { - "dark": "#1a3a1a", - "light": "#e0ffe0" - }, - "diffRemovedBg": { - "dark": "#3a1a1a", - "light": "#ffe0e0" - }, - "diffContextBg": { - "dark": "#21222c", - "light": "#e8e8e2" - }, - "diffLineNumber": { - "dark": "currentLine", - "light": "#c8c8c2" - }, - "diffAddedLineNumberBg": { - "dark": "#1a3a1a", - "light": "#e0ffe0" - }, - "diffRemovedLineNumberBg": { - "dark": "#3a1a1a", - "light": "#ffe0e0" - }, - "markdownText": { - "dark": "foreground", - "light": "#282a36" - }, - "markdownHeading": { - "dark": "purple", - "light": "purple" - }, - "markdownLink": { - "dark": "cyan", - "light": "cyan" - }, - "markdownLinkText": { - "dark": "pink", - "light": "pink" - }, - "markdownCode": { - "dark": "green", - "light": "green" - }, - "markdownBlockQuote": { - "dark": "comment", - "light": "#6272a4" - }, - "markdownEmph": { - "dark": "yellow", - "light": "yellow" - }, - "markdownStrong": { - "dark": "orange", - "light": "orange" - }, - "markdownHorizontalRule": { - "dark": "comment", - "light": "#6272a4" - }, - "markdownListItem": { - "dark": "purple", - "light": "purple" - }, - "markdownListEnumeration": { - "dark": "cyan", - "light": "cyan" - }, - "markdownImage": { - "dark": "cyan", - "light": "cyan" - }, - "markdownImageText": { - "dark": "pink", - "light": "pink" - }, - "markdownCodeBlock": { - "dark": "foreground", - "light": "#282a36" - }, - "syntaxComment": { - "dark": "comment", - "light": "#6272a4" - }, - "syntaxKeyword": { - "dark": "pink", - "light": "pink" - }, - "syntaxFunction": { - "dark": "green", - "light": "green" - }, - "syntaxVariable": { - "dark": "foreground", - "light": "#282a36" - }, - "syntaxString": { - "dark": "yellow", - "light": "yellow" - }, - "syntaxNumber": { - "dark": "purple", - "light": "purple" - }, - "syntaxType": { - "dark": "cyan", - "light": "cyan" - }, - "syntaxOperator": { - "dark": "pink", - "light": "pink" - }, - "syntaxPunctuation": { - "dark": "foreground", - "light": "#282a36" - } - } -} diff --git a/packages/tui/internal/theme/themes/everforest.json b/packages/tui/internal/theme/themes/everforest.json deleted file mode 100644 index 62dfb31ba..000000000 --- a/packages/tui/internal/theme/themes/everforest.json +++ /dev/null @@ -1,241 +0,0 @@ -{ - "$schema": "https://opencode.ai/theme.json", - "defs": { - "darkStep1": "#2d353b", - "darkStep2": "#333c43", - "darkStep3": "#343f44", - "darkStep4": "#3d484d", - "darkStep5": "#475258", - "darkStep6": "#7a8478", - "darkStep7": "#859289", - "darkStep8": "#9da9a0", - "darkStep9": "#a7c080", - "darkStep10": "#83c092", - "darkStep11": "#7a8478", - "darkStep12": "#d3c6aa", - "darkRed": "#e67e80", - "darkOrange": "#e69875", - "darkGreen": "#a7c080", - "darkCyan": "#83c092", - "darkYellow": "#dbbc7f", - "lightStep1": "#fdf6e3", - "lightStep2": "#efebd4", - "lightStep3": "#f4f0d9", - "lightStep4": "#efebd4", - "lightStep5": "#e6e2cc", - "lightStep6": "#a6b0a0", - "lightStep7": "#939f91", - "lightStep8": "#829181", - "lightStep9": "#8da101", - "lightStep10": "#35a77c", - "lightStep11": "#a6b0a0", - "lightStep12": "#5c6a72", - "lightRed": "#f85552", - "lightOrange": "#f57d26", - "lightGreen": "#8da101", - "lightCyan": "#35a77c", - "lightYellow": "#dfa000" - }, - "theme": { - "primary": { - "dark": "darkStep9", - "light": "lightStep9" - }, - "secondary": { - "dark": "#7fbbb3", - "light": "#3a94c5" - }, - "accent": { - "dark": "#d699b6", - "light": "#df69ba" - }, - "error": { - "dark": "darkRed", - "light": "lightRed" - }, - "warning": { - "dark": "darkOrange", - "light": "lightOrange" - }, - "success": { - "dark": "darkGreen", - "light": "lightGreen" - }, - "info": { - "dark": "darkCyan", - "light": "lightCyan" - }, - "text": { - "dark": "darkStep12", - "light": "lightStep12" - }, - "textMuted": { - "dark": "darkStep11", - "light": "lightStep11" - }, - "background": { - "dark": "darkStep1", - "light": "lightStep1" - }, - "backgroundPanel": { - "dark": "darkStep2", - "light": "lightStep2" - }, - "backgroundElement": { - "dark": "darkStep3", - "light": "lightStep3" - }, - "border": { - "dark": "darkStep7", - "light": "lightStep7" - }, - "borderActive": { - "dark": "darkStep8", - "light": "lightStep8" - }, - "borderSubtle": { - "dark": "darkStep6", - "light": "lightStep6" - }, - "diffAdded": { - "dark": "#4fd6be", - "light": "#1e725c" - }, - "diffRemoved": { - "dark": "#c53b53", - "light": "#c53b53" - }, - "diffContext": { - "dark": "#828bb8", - "light": "#7086b5" - }, - "diffHunkHeader": { - "dark": "#828bb8", - "light": "#7086b5" - }, - "diffHighlightAdded": { - "dark": "#b8db87", - "light": "#4db380" - }, - "diffHighlightRemoved": { - "dark": "#e26a75", - "light": "#f52a65" - }, - "diffAddedBg": { - "dark": "#20303b", - "light": "#d5e5d5" - }, - "diffRemovedBg": { - "dark": "#37222c", - "light": "#f7d8db" - }, - "diffContextBg": { - "dark": "darkStep2", - "light": "lightStep2" - }, - "diffLineNumber": { - "dark": "darkStep3", - "light": "lightStep3" - }, - "diffAddedLineNumberBg": { - "dark": "#1b2b34", - "light": "#c5d5c5" - }, - "diffRemovedLineNumberBg": { - "dark": "#2d1f26", - "light": "#e7c8cb" - }, - "markdownText": { - "dark": "darkStep12", - "light": "lightStep12" - }, - "markdownHeading": { - "dark": "#d699b6", - "light": "#df69ba" - }, - "markdownLink": { - "dark": "darkStep9", - "light": "lightStep9" - }, - "markdownLinkText": { - "dark": "darkCyan", - "light": "lightCyan" - }, - "markdownCode": { - "dark": "darkGreen", - "light": "lightGreen" - }, - "markdownBlockQuote": { - "dark": "darkYellow", - "light": "lightYellow" - }, - "markdownEmph": { - "dark": "darkYellow", - "light": "lightYellow" - }, - "markdownStrong": { - "dark": "darkOrange", - "light": "lightOrange" - }, - "markdownHorizontalRule": { - "dark": "darkStep11", - "light": "lightStep11" - }, - "markdownListItem": { - "dark": "darkStep9", - "light": "lightStep9" - }, - "markdownListEnumeration": { - "dark": "darkCyan", - "light": "lightCyan" - }, - "markdownImage": { - "dark": "darkStep9", - "light": "lightStep9" - }, - "markdownImageText": { - "dark": "darkCyan", - "light": "lightCyan" - }, - "markdownCodeBlock": { - "dark": "darkStep12", - "light": "lightStep12" - }, - "syntaxComment": { - "dark": "darkStep11", - "light": "lightStep11" - }, - "syntaxKeyword": { - "dark": "#d699b6", - "light": "#df69ba" - }, - "syntaxFunction": { - "dark": "darkStep9", - "light": "lightStep9" - }, - "syntaxVariable": { - "dark": "darkRed", - "light": "lightRed" - }, - "syntaxString": { - "dark": "darkGreen", - "light": "lightGreen" - }, - "syntaxNumber": { - "dark": "darkOrange", - "light": "lightOrange" - }, - "syntaxType": { - "dark": "darkYellow", - "light": "lightYellow" - }, - "syntaxOperator": { - "dark": "darkCyan", - "light": "lightCyan" - }, - "syntaxPunctuation": { - "dark": "darkStep12", - "light": "lightStep12" - } - } -} diff --git a/packages/tui/internal/theme/themes/github.json b/packages/tui/internal/theme/themes/github.json deleted file mode 100644 index 99a80879e..000000000 --- a/packages/tui/internal/theme/themes/github.json +++ /dev/null @@ -1,233 +0,0 @@ -{ - "$schema": "https://opencode.ai/theme.json", - "defs": { - "darkBg": "#0d1117", - "darkBgAlt": "#010409", - "darkBgPanel": "#161b22", - "darkFg": "#c9d1d9", - "darkFgMuted": "#8b949e", - "darkBlue": "#58a6ff", - "darkGreen": "#3fb950", - "darkRed": "#f85149", - "darkOrange": "#d29922", - "darkPurple": "#bc8cff", - "darkPink": "#ff7b72", - "darkYellow": "#e3b341", - "darkCyan": "#39c5cf", - "lightBg": "#ffffff", - "lightBgAlt": "#f6f8fa", - "lightBgPanel": "#f0f3f6", - "lightFg": "#24292f", - "lightFgMuted": "#57606a", - "lightBlue": "#0969da", - "lightGreen": "#1a7f37", - "lightRed": "#cf222e", - "lightOrange": "#bc4c00", - "lightPurple": "#8250df", - "lightPink": "#bf3989", - "lightYellow": "#9a6700", - "lightCyan": "#1b7c83" - }, - "theme": { - "primary": { - "dark": "darkBlue", - "light": "lightBlue" - }, - "secondary": { - "dark": "darkPurple", - "light": "lightPurple" - }, - "accent": { - "dark": "darkCyan", - "light": "lightCyan" - }, - "error": { - "dark": "darkRed", - "light": "lightRed" - }, - "warning": { - "dark": "darkYellow", - "light": "lightYellow" - }, - "success": { - "dark": "darkGreen", - "light": "lightGreen" - }, - "info": { - "dark": "darkOrange", - "light": "lightOrange" - }, - "text": { - "dark": "darkFg", - "light": "lightFg" - }, - "textMuted": { - "dark": "darkFgMuted", - "light": "lightFgMuted" - }, - "background": { - "dark": "darkBg", - "light": "lightBg" - }, - "backgroundPanel": { - "dark": "darkBgAlt", - "light": "lightBgAlt" - }, - "backgroundElement": { - "dark": "darkBgPanel", - "light": "lightBgPanel" - }, - "border": { - "dark": "#30363d", - "light": "#d0d7de" - }, - "borderActive": { - "dark": "darkBlue", - "light": "lightBlue" - }, - "borderSubtle": { - "dark": "#21262d", - "light": "#d8dee4" - }, - "diffAdded": { - "dark": "darkGreen", - "light": "lightGreen" - }, - "diffRemoved": { - "dark": "darkRed", - "light": "lightRed" - }, - "diffContext": { - "dark": "darkFgMuted", - "light": "lightFgMuted" - }, - "diffHunkHeader": { - "dark": "darkBlue", - "light": "lightBlue" - }, - "diffHighlightAdded": { - "dark": "#3fb950", - "light": "#1a7f37" - }, - "diffHighlightRemoved": { - "dark": "#f85149", - "light": "#cf222e" - }, - "diffAddedBg": { - "dark": "#033a16", - "light": "#dafbe1" - }, - "diffRemovedBg": { - "dark": "#67060c", - "light": "#ffebe9" - }, - "diffContextBg": { - "dark": "darkBgAlt", - "light": "lightBgAlt" - }, - "diffLineNumber": { - "dark": "#484f58", - "light": "#afb8c1" - }, - "diffAddedLineNumberBg": { - "dark": "#033a16", - "light": "#dafbe1" - }, - "diffRemovedLineNumberBg": { - "dark": "#67060c", - "light": "#ffebe9" - }, - "markdownText": { - "dark": "darkFg", - "light": "lightFg" - }, - "markdownHeading": { - "dark": "darkBlue", - "light": "lightBlue" - }, - "markdownLink": { - "dark": "darkBlue", - "light": "lightBlue" - }, - "markdownLinkText": { - "dark": "darkCyan", - "light": "lightCyan" - }, - "markdownCode": { - "dark": "darkPink", - "light": "lightPink" - }, - "markdownBlockQuote": { - "dark": "darkFgMuted", - "light": "lightFgMuted" - }, - "markdownEmph": { - "dark": "darkYellow", - "light": "lightYellow" - }, - "markdownStrong": { - "dark": "darkOrange", - "light": "lightOrange" - }, - "markdownHorizontalRule": { - "dark": "#30363d", - "light": "#d0d7de" - }, - "markdownListItem": { - "dark": "darkBlue", - "light": "lightBlue" - }, - "markdownListEnumeration": { - "dark": "darkCyan", - "light": "lightCyan" - }, - "markdownImage": { - "dark": "darkBlue", - "light": "lightBlue" - }, - "markdownImageText": { - "dark": "darkCyan", - "light": "lightCyan" - }, - "markdownCodeBlock": { - "dark": "darkFg", - "light": "lightFg" - }, - "syntaxComment": { - "dark": "darkFgMuted", - "light": "lightFgMuted" - }, - "syntaxKeyword": { - "dark": "darkPink", - "light": "lightRed" - }, - "syntaxFunction": { - "dark": "darkPurple", - "light": "lightPurple" - }, - "syntaxVariable": { - "dark": "darkOrange", - "light": "lightOrange" - }, - "syntaxString": { - "dark": "darkCyan", - "light": "lightBlue" - }, - "syntaxNumber": { - "dark": "darkBlue", - "light": "lightCyan" - }, - "syntaxType": { - "dark": "darkOrange", - "light": "lightOrange" - }, - "syntaxOperator": { - "dark": "darkPink", - "light": "lightRed" - }, - "syntaxPunctuation": { - "dark": "darkFg", - "light": "lightFg" - } - } -} diff --git a/packages/tui/internal/theme/themes/gruvbox.json b/packages/tui/internal/theme/themes/gruvbox.json deleted file mode 100644 index c3101b565..000000000 --- a/packages/tui/internal/theme/themes/gruvbox.json +++ /dev/null @@ -1,95 +0,0 @@ -{ - "$schema": "https://opencode.ai/theme.json", - "defs": { - "darkBg0": "#282828", - "darkBg1": "#3c3836", - "darkBg2": "#504945", - "darkBg3": "#665c54", - "darkFg0": "#fbf1c7", - "darkFg1": "#ebdbb2", - "darkGray": "#928374", - "darkRed": "#cc241d", - "darkGreen": "#98971a", - "darkYellow": "#d79921", - "darkBlue": "#458588", - "darkPurple": "#b16286", - "darkAqua": "#689d6a", - "darkOrange": "#d65d0e", - "darkRedBright": "#fb4934", - "darkGreenBright": "#b8bb26", - "darkYellowBright": "#fabd2f", - "darkBlueBright": "#83a598", - "darkPurpleBright": "#d3869b", - "darkAquaBright": "#8ec07c", - "darkOrangeBright": "#fe8019", - "lightBg0": "#fbf1c7", - "lightBg1": "#ebdbb2", - "lightBg2": "#d5c4a1", - "lightBg3": "#bdae93", - "lightFg0": "#282828", - "lightFg1": "#3c3836", - "lightGray": "#7c6f64", - "lightRed": "#9d0006", - "lightGreen": "#79740e", - "lightYellow": "#b57614", - "lightBlue": "#076678", - "lightPurple": "#8f3f71", - "lightAqua": "#427b58", - "lightOrange": "#af3a03" - }, - "theme": { - "primary": { "dark": "darkBlueBright", "light": "lightBlue" }, - "secondary": { "dark": "darkPurpleBright", "light": "lightPurple" }, - "accent": { "dark": "darkAquaBright", "light": "lightAqua" }, - "error": { "dark": "darkRedBright", "light": "lightRed" }, - "warning": { "dark": "darkOrangeBright", "light": "lightOrange" }, - "success": { "dark": "darkGreenBright", "light": "lightGreen" }, - "info": { "dark": "darkYellowBright", "light": "lightYellow" }, - "text": { "dark": "darkFg1", "light": "lightFg1" }, - "textMuted": { "dark": "darkGray", "light": "lightGray" }, - "background": { "dark": "darkBg0", "light": "lightBg0" }, - "backgroundPanel": { "dark": "darkBg1", "light": "lightBg1" }, - "backgroundElement": { "dark": "darkBg2", "light": "lightBg2" }, - "border": { "dark": "darkBg3", "light": "lightBg3" }, - "borderActive": { "dark": "darkFg1", "light": "lightFg1" }, - "borderSubtle": { "dark": "darkBg2", "light": "lightBg2" }, - "diffAdded": { "dark": "darkGreen", "light": "lightGreen" }, - "diffRemoved": { "dark": "darkRed", "light": "lightRed" }, - "diffContext": { "dark": "darkGray", "light": "lightGray" }, - "diffHunkHeader": { "dark": "darkAqua", "light": "lightAqua" }, - "diffHighlightAdded": { "dark": "darkGreenBright", "light": "lightGreen" }, - "diffHighlightRemoved": { "dark": "darkRedBright", "light": "lightRed" }, - "diffAddedBg": { "dark": "#32302f", "light": "#e2e0b5" }, - "diffRemovedBg": { "dark": "#322929", "light": "#e9d8d5" }, - "diffContextBg": { "dark": "darkBg1", "light": "lightBg1" }, - "diffLineNumber": { "dark": "darkBg3", "light": "lightBg3" }, - "diffAddedLineNumberBg": { "dark": "#2a2827", "light": "#d4d2a9" }, - "diffRemovedLineNumberBg": { "dark": "#2a2222", "light": "#d8cbc8" }, - "markdownText": { "dark": "darkFg1", "light": "lightFg1" }, - "markdownHeading": { "dark": "darkBlueBright", "light": "lightBlue" }, - "markdownLink": { "dark": "darkAquaBright", "light": "lightAqua" }, - "markdownLinkText": { "dark": "darkGreenBright", "light": "lightGreen" }, - "markdownCode": { "dark": "darkYellowBright", "light": "lightYellow" }, - "markdownBlockQuote": { "dark": "darkGray", "light": "lightGray" }, - "markdownEmph": { "dark": "darkPurpleBright", "light": "lightPurple" }, - "markdownStrong": { "dark": "darkOrangeBright", "light": "lightOrange" }, - "markdownHorizontalRule": { "dark": "darkGray", "light": "lightGray" }, - "markdownListItem": { "dark": "darkBlueBright", "light": "lightBlue" }, - "markdownListEnumeration": { - "dark": "darkAquaBright", - "light": "lightAqua" - }, - "markdownImage": { "dark": "darkAquaBright", "light": "lightAqua" }, - "markdownImageText": { "dark": "darkGreenBright", "light": "lightGreen" }, - "markdownCodeBlock": { "dark": "darkFg1", "light": "lightFg1" }, - "syntaxComment": { "dark": "darkGray", "light": "lightGray" }, - "syntaxKeyword": { "dark": "darkRedBright", "light": "lightRed" }, - "syntaxFunction": { "dark": "darkGreenBright", "light": "lightGreen" }, - "syntaxVariable": { "dark": "darkBlueBright", "light": "lightBlue" }, - "syntaxString": { "dark": "darkYellowBright", "light": "lightYellow" }, - "syntaxNumber": { "dark": "darkPurpleBright", "light": "lightPurple" }, - "syntaxType": { "dark": "darkAquaBright", "light": "lightAqua" }, - "syntaxOperator": { "dark": "darkOrangeBright", "light": "lightOrange" }, - "syntaxPunctuation": { "dark": "darkFg1", "light": "lightFg1" } - } -} diff --git a/packages/tui/internal/theme/themes/kanagawa.json b/packages/tui/internal/theme/themes/kanagawa.json deleted file mode 100644 index 91a784014..000000000 --- a/packages/tui/internal/theme/themes/kanagawa.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "$schema": "https://opencode.ai/theme.json", - "defs": { - "sumiInk0": "#1F1F28", - "sumiInk1": "#2A2A37", - "sumiInk2": "#363646", - "sumiInk3": "#54546D", - "fujiWhite": "#DCD7BA", - "oldWhite": "#C8C093", - "fujiGray": "#727169", - "oniViolet": "#957FB8", - "crystalBlue": "#7E9CD8", - "carpYellow": "#C38D9D", - "sakuraPink": "#D27E99", - "waveAqua": "#76946A", - "roninYellow": "#D7A657", - "dragonRed": "#E82424", - "lotusGreen": "#98BB6C", - "waveBlue": "#2D4F67", - "lightBg": "#F2E9DE", - "lightPaper": "#EAE4D7", - "lightText": "#54433A", - "lightGray": "#9E9389" - }, - "theme": { - "primary": { "dark": "crystalBlue", "light": "waveBlue" }, - "secondary": { "dark": "oniViolet", "light": "oniViolet" }, - "accent": { "dark": "sakuraPink", "light": "sakuraPink" }, - "error": { "dark": "dragonRed", "light": "dragonRed" }, - "warning": { "dark": "roninYellow", "light": "roninYellow" }, - "success": { "dark": "lotusGreen", "light": "lotusGreen" }, - "info": { "dark": "waveAqua", "light": "waveAqua" }, - "text": { "dark": "fujiWhite", "light": "lightText" }, - "textMuted": { "dark": "fujiGray", "light": "lightGray" }, - "background": { "dark": "sumiInk0", "light": "lightBg" }, - "backgroundPanel": { "dark": "sumiInk1", "light": "lightPaper" }, - "backgroundElement": { "dark": "sumiInk2", "light": "#E3DCD2" }, - "border": { "dark": "sumiInk3", "light": "#D4CBBF" }, - "borderActive": { "dark": "carpYellow", "light": "carpYellow" }, - "borderSubtle": { "dark": "sumiInk2", "light": "#DCD4C9" }, - "diffAdded": { "dark": "lotusGreen", "light": "lotusGreen" }, - "diffRemoved": { "dark": "dragonRed", "light": "dragonRed" }, - "diffContext": { "dark": "fujiGray", "light": "lightGray" }, - "diffHunkHeader": { "dark": "waveBlue", "light": "waveBlue" }, - "diffHighlightAdded": { "dark": "#A9D977", "light": "#89AF5B" }, - "diffHighlightRemoved": { "dark": "#F24A4A", "light": "#D61F1F" }, - "diffAddedBg": { "dark": "#252E25", "light": "#EAF3E4" }, - "diffRemovedBg": { "dark": "#362020", "light": "#FBE6E6" }, - "diffContextBg": { "dark": "sumiInk1", "light": "lightPaper" }, - "diffLineNumber": { "dark": "sumiInk3", "light": "#C7BEB4" }, - "diffAddedLineNumberBg": { "dark": "#202820", "light": "#DDE8D6" }, - "diffRemovedLineNumberBg": { "dark": "#2D1C1C", "light": "#F2DADA" }, - "markdownText": { "dark": "fujiWhite", "light": "lightText" }, - "markdownHeading": { "dark": "oniViolet", "light": "oniViolet" }, - "markdownLink": { "dark": "crystalBlue", "light": "waveBlue" }, - "markdownLinkText": { "dark": "waveAqua", "light": "waveAqua" }, - "markdownCode": { "dark": "lotusGreen", "light": "lotusGreen" }, - "markdownBlockQuote": { "dark": "fujiGray", "light": "lightGray" }, - "markdownEmph": { "dark": "carpYellow", "light": "carpYellow" }, - "markdownStrong": { "dark": "roninYellow", "light": "roninYellow" }, - "markdownHorizontalRule": { "dark": "fujiGray", "light": "lightGray" }, - "markdownListItem": { "dark": "crystalBlue", "light": "waveBlue" }, - "markdownListEnumeration": { "dark": "waveAqua", "light": "waveAqua" }, - "markdownImage": { "dark": "crystalBlue", "light": "waveBlue" }, - "markdownImageText": { "dark": "waveAqua", "light": "waveAqua" }, - "markdownCodeBlock": { "dark": "fujiWhite", "light": "lightText" }, - "syntaxComment": { "dark": "fujiGray", "light": "lightGray" }, - "syntaxKeyword": { "dark": "oniViolet", "light": "oniViolet" }, - "syntaxFunction": { "dark": "crystalBlue", "light": "waveBlue" }, - "syntaxVariable": { "dark": "fujiWhite", "light": "lightText" }, - "syntaxString": { "dark": "lotusGreen", "light": "lotusGreen" }, - "syntaxNumber": { "dark": "roninYellow", "light": "roninYellow" }, - "syntaxType": { "dark": "carpYellow", "light": "carpYellow" }, - "syntaxOperator": { "dark": "sakuraPink", "light": "sakuraPink" }, - "syntaxPunctuation": { "dark": "fujiWhite", "light": "lightText" } - } -} diff --git a/packages/tui/internal/theme/themes/material.json b/packages/tui/internal/theme/themes/material.json deleted file mode 100644 index c3a106808..000000000 --- a/packages/tui/internal/theme/themes/material.json +++ /dev/null @@ -1,235 +0,0 @@ -{ - "$schema": "https://opencode.ai/theme.json", - "defs": { - "darkBg": "#263238", - "darkBgAlt": "#1e272c", - "darkBgPanel": "#37474f", - "darkFg": "#eeffff", - "darkFgMuted": "#546e7a", - "darkRed": "#f07178", - "darkPink": "#f78c6c", - "darkOrange": "#ffcb6b", - "darkYellow": "#ffcb6b", - "darkGreen": "#c3e88d", - "darkCyan": "#89ddff", - "darkBlue": "#82aaff", - "darkPurple": "#c792ea", - "darkViolet": "#bb80b3", - "lightBg": "#fafafa", - "lightBgAlt": "#f5f5f5", - "lightBgPanel": "#e7e7e8", - "lightFg": "#263238", - "lightFgMuted": "#90a4ae", - "lightRed": "#e53935", - "lightPink": "#ec407a", - "lightOrange": "#f4511e", - "lightYellow": "#ffb300", - "lightGreen": "#91b859", - "lightCyan": "#39adb5", - "lightBlue": "#6182b8", - "lightPurple": "#7c4dff", - "lightViolet": "#945eb8" - }, - "theme": { - "primary": { - "dark": "darkBlue", - "light": "lightBlue" - }, - "secondary": { - "dark": "darkPurple", - "light": "lightPurple" - }, - "accent": { - "dark": "darkCyan", - "light": "lightCyan" - }, - "error": { - "dark": "darkRed", - "light": "lightRed" - }, - "warning": { - "dark": "darkYellow", - "light": "lightYellow" - }, - "success": { - "dark": "darkGreen", - "light": "lightGreen" - }, - "info": { - "dark": "darkOrange", - "light": "lightOrange" - }, - "text": { - "dark": "darkFg", - "light": "lightFg" - }, - "textMuted": { - "dark": "darkFgMuted", - "light": "lightFgMuted" - }, - "background": { - "dark": "darkBg", - "light": "lightBg" - }, - "backgroundPanel": { - "dark": "darkBgAlt", - "light": "lightBgAlt" - }, - "backgroundElement": { - "dark": "darkBgPanel", - "light": "lightBgPanel" - }, - "border": { - "dark": "#37474f", - "light": "#e0e0e0" - }, - "borderActive": { - "dark": "darkBlue", - "light": "lightBlue" - }, - "borderSubtle": { - "dark": "#1e272c", - "light": "#eeeeee" - }, - "diffAdded": { - "dark": "darkGreen", - "light": "lightGreen" - }, - "diffRemoved": { - "dark": "darkRed", - "light": "lightRed" - }, - "diffContext": { - "dark": "darkFgMuted", - "light": "lightFgMuted" - }, - "diffHunkHeader": { - "dark": "darkCyan", - "light": "lightCyan" - }, - "diffHighlightAdded": { - "dark": "darkGreen", - "light": "lightGreen" - }, - "diffHighlightRemoved": { - "dark": "darkRed", - "light": "lightRed" - }, - "diffAddedBg": { - "dark": "#2e3c2b", - "light": "#e8f5e9" - }, - "diffRemovedBg": { - "dark": "#3c2b2b", - "light": "#ffebee" - }, - "diffContextBg": { - "dark": "darkBgAlt", - "light": "lightBgAlt" - }, - "diffLineNumber": { - "dark": "#37474f", - "light": "#cfd8dc" - }, - "diffAddedLineNumberBg": { - "dark": "#2e3c2b", - "light": "#e8f5e9" - }, - "diffRemovedLineNumberBg": { - "dark": "#3c2b2b", - "light": "#ffebee" - }, - "markdownText": { - "dark": "darkFg", - "light": "lightFg" - }, - "markdownHeading": { - "dark": "darkBlue", - "light": "lightBlue" - }, - "markdownLink": { - "dark": "darkCyan", - "light": "lightCyan" - }, - "markdownLinkText": { - "dark": "darkPurple", - "light": "lightPurple" - }, - "markdownCode": { - "dark": "darkGreen", - "light": "lightGreen" - }, - "markdownBlockQuote": { - "dark": "darkFgMuted", - "light": "lightFgMuted" - }, - "markdownEmph": { - "dark": "darkYellow", - "light": "lightYellow" - }, - "markdownStrong": { - "dark": "darkOrange", - "light": "lightOrange" - }, - "markdownHorizontalRule": { - "dark": "#37474f", - "light": "#e0e0e0" - }, - "markdownListItem": { - "dark": "darkBlue", - "light": "lightBlue" - }, - "markdownListEnumeration": { - "dark": "darkCyan", - "light": "lightCyan" - }, - "markdownImage": { - "dark": "darkCyan", - "light": "lightCyan" - }, - "markdownImageText": { - "dark": "darkPurple", - "light": "lightPurple" - }, - "markdownCodeBlock": { - "dark": "darkFg", - "light": "lightFg" - }, - "syntaxComment": { - "dark": "darkFgMuted", - "light": "lightFgMuted" - }, - "syntaxKeyword": { - "dark": "darkPurple", - "light": "lightPurple" - }, - "syntaxFunction": { - "dark": "darkBlue", - "light": "lightBlue" - }, - "syntaxVariable": { - "dark": "darkFg", - "light": "lightFg" - }, - "syntaxString": { - "dark": "darkGreen", - "light": "lightGreen" - }, - "syntaxNumber": { - "dark": "darkOrange", - "light": "lightOrange" - }, - "syntaxType": { - "dark": "darkYellow", - "light": "lightYellow" - }, - "syntaxOperator": { - "dark": "darkCyan", - "light": "lightCyan" - }, - "syntaxPunctuation": { - "dark": "darkFg", - "light": "lightFg" - } - } -} diff --git a/packages/tui/internal/theme/themes/matrix.json b/packages/tui/internal/theme/themes/matrix.json deleted file mode 100644 index 354946284..000000000 --- a/packages/tui/internal/theme/themes/matrix.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "$schema": "https://opencode.ai/theme.json", - "defs": { - "matrixInk0": "#0a0e0a", - "matrixInk1": "#0e130d", - "matrixInk2": "#141c12", - "matrixInk3": "#1e2a1b", - "rainGreen": "#2eff6a", - "rainGreenDim": "#1cc24b", - "rainGreenHi": "#62ff94", - "rainCyan": "#00efff", - "rainTeal": "#24f6d9", - "rainPurple": "#c770ff", - "rainOrange": "#ffa83d", - "alertRed": "#ff4b4b", - "alertYellow": "#e6ff57", - "alertBlue": "#30b3ff", - "rainGray": "#8ca391", - "lightBg": "#eef3ea", - "lightPaper": "#e4ebe1", - "lightInk1": "#dae1d7", - "lightText": "#203022", - "lightGray": "#748476" - }, - "theme": { - "primary": { "dark": "rainGreen", "light": "rainGreenDim" }, - "secondary": { "dark": "rainCyan", "light": "rainTeal" }, - "accent": { "dark": "rainPurple", "light": "rainPurple" }, - "error": { "dark": "alertRed", "light": "alertRed" }, - "warning": { "dark": "alertYellow", "light": "alertYellow" }, - "success": { "dark": "rainGreenHi", "light": "rainGreenDim" }, - "info": { "dark": "alertBlue", "light": "alertBlue" }, - "text": { "dark": "rainGreenHi", "light": "lightText" }, - "textMuted": { "dark": "rainGray", "light": "lightGray" }, - "background": { "dark": "matrixInk0", "light": "lightBg" }, - "backgroundPanel": { "dark": "matrixInk1", "light": "lightPaper" }, - "backgroundElement": { "dark": "matrixInk2", "light": "lightInk1" }, - "border": { "dark": "matrixInk3", "light": "lightGray" }, - "borderActive": { "dark": "rainGreen", "light": "rainGreenDim" }, - "borderSubtle": { "dark": "matrixInk2", "light": "lightInk1" }, - "diffAdded": { "dark": "rainGreenDim", "light": "rainGreenDim" }, - "diffRemoved": { "dark": "alertRed", "light": "alertRed" }, - "diffContext": { "dark": "rainGray", "light": "lightGray" }, - "diffHunkHeader": { "dark": "alertBlue", "light": "alertBlue" }, - "diffHighlightAdded": { "dark": "#77ffaf", "light": "#5dac7e" }, - "diffHighlightRemoved": { "dark": "#ff7171", "light": "#d53a3a" }, - "diffAddedBg": { "dark": "#132616", "light": "#e0efde" }, - "diffRemovedBg": { "dark": "#261212", "light": "#f9e5e5" }, - "diffContextBg": { "dark": "matrixInk1", "light": "lightPaper" }, - "diffLineNumber": { "dark": "matrixInk3", "light": "lightGray" }, - "diffAddedLineNumberBg": { "dark": "#0f1b11", "light": "#d6e7d2" }, - "diffRemovedLineNumberBg": { "dark": "#1b1414", "light": "#f2d2d2" }, - "markdownText": { "dark": "rainGreenHi", "light": "lightText" }, - "markdownHeading": { "dark": "rainCyan", "light": "rainTeal" }, - "markdownLink": { "dark": "alertBlue", "light": "alertBlue" }, - "markdownLinkText": { "dark": "rainTeal", "light": "rainTeal" }, - "markdownCode": { "dark": "rainGreenDim", "light": "rainGreenDim" }, - "markdownBlockQuote": { "dark": "rainGray", "light": "lightGray" }, - "markdownEmph": { "dark": "rainOrange", "light": "rainOrange" }, - "markdownStrong": { "dark": "alertYellow", "light": "alertYellow" }, - "markdownHorizontalRule": { "dark": "rainGray", "light": "lightGray" }, - "markdownListItem": { "dark": "alertBlue", "light": "alertBlue" }, - "markdownListEnumeration": { "dark": "rainTeal", "light": "rainTeal" }, - "markdownImage": { "dark": "alertBlue", "light": "alertBlue" }, - "markdownImageText": { "dark": "rainTeal", "light": "rainTeal" }, - "markdownCodeBlock": { "dark": "rainGreenHi", "light": "lightText" }, - "syntaxComment": { "dark": "rainGray", "light": "lightGray" }, - "syntaxKeyword": { "dark": "rainPurple", "light": "rainPurple" }, - "syntaxFunction": { "dark": "alertBlue", "light": "alertBlue" }, - "syntaxVariable": { "dark": "rainGreenHi", "light": "lightText" }, - "syntaxString": { "dark": "rainGreenDim", "light": "rainGreenDim" }, - "syntaxNumber": { "dark": "rainOrange", "light": "rainOrange" }, - "syntaxType": { "dark": "alertYellow", "light": "alertYellow" }, - "syntaxOperator": { "dark": "rainTeal", "light": "rainTeal" }, - "syntaxPunctuation": { "dark": "rainGreenHi", "light": "lightText" } - } -} diff --git a/packages/tui/internal/theme/themes/mellow.json b/packages/tui/internal/theme/themes/mellow.json deleted file mode 100644 index f2a00a47f..000000000 --- a/packages/tui/internal/theme/themes/mellow.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "$schema": "https://opencode.ai/theme.json", - "defs": { - "dark_bg": "#161617", - "dark_fg": "#c9c7cd", - "dark_bg_dark": "#131314", - - "dark_black": "#27272a", - "dark_red": "#f5a191", - "dark_green": "#90b99f", - "dark_yellow": "#e6b99d", - "dark_blue": "#aca1cf", - "dark_magenta": "#e29eca", - "dark_cyan": "#ea83a5", - "dark_white": "#c1c0d4", - - "dark_bright_black": "#353539", - "dark_bright_red": "#ffae9f", - "dark_bright_green": "#9dc6ac", - "dark_bright_yellow": "#f0c5a9", - "dark_bright_blue": "#b9aeda", - "dark_bright_magenta": "#ecaad6", - "dark_bright_cyan": "#f591b2", - "dark_bright_white": "#cac9dd", - - "dark_gray00": "#18181a", - "dark_gray01": "#1b1b1d", - "dark_gray02": "#2a2a2d", - "dark_gray03": "#3e3e43", - "dark_gray04": "#57575f", - "dark_gray05": "#757581", - "dark_gray06": "#9998a8", - "dark_gray07": "#c1c0d4" - }, - "theme": { - "primary": "dark_cyan", - "secondary": "dark_cyan", - "accent": "dark_blue", - "error": "dark_cyan", - "warning": "dark_yellow", - "success": "dark_green", - "info": "dark_blue", - "text": "dark_fg", - "textMuted": "dark_white", - "background": "dark_bg", - "backgroundPanel": "dark_gray01", - "backgroundElement": "dark_gray02", - "border": "dark_gray02", - "borderActive": "dark_gray01", - "borderSubtle": "dark_gray00", - "diffAdded": "dark_black", - "diffRemoved": "dark_black", - "diffContext": "dark_fg", - "diffHunkHeader": "dark_magenta", - "diffHighlightAdded": "dark_bright_green", - "diffHighlightRemoved": "dark_bright_red", - "diffAddedBg": "dark_green", - "diffRemovedBg": "dark_red", - "diffContextBg": "dark_gray00", - "diffLineNumber": "diffContextBg", - "diffAddedLineNumberBg": "dark_green", - "diffRemovedLineNumberBg": "dark_red", - "markdownText": "dark_fg", - "markdownHeading": "dark_gray06", - "markdownLink": "dark_blue", - "markdownLinkText": "dark_cyan", - "markdownCode": "dark_bright_green", - "markdownBlockQuote": "dark_gray00", - "markdownEmph": "dark_bright_yellow", - "markdownStrong": "dark_bright_red", - "markdownHorizontalRule": "markdownText", - "markdownListItem": "dark_blue", - "markdownListEnumeration": "dark_bright_blue", - "markdownImage": "markdownLink", - "markdownImageText": "markdownLinkText", - "markdownCodeBlock": "dark_fg", - "syntaxComment": "dark_gray05", - "syntaxKeyword": "dark_blue", - "syntaxFunction": "dark_gray07", - "syntaxVariable": "dark_fg", - "syntaxString": "dark_green", - "syntaxNumber": "dark_magenta", - "syntaxType": "dark_magenta", - "syntaxOperator": "dark_yellow", - "syntaxPunctuation": "dark_gray06" - } -} diff --git a/packages/tui/internal/theme/themes/monokai.json b/packages/tui/internal/theme/themes/monokai.json deleted file mode 100644 index 09637a1e2..000000000 --- a/packages/tui/internal/theme/themes/monokai.json +++ /dev/null @@ -1,221 +0,0 @@ -{ - "$schema": "https://opencode.ai/theme.json", - "defs": { - "background": "#272822", - "backgroundAlt": "#1e1f1c", - "backgroundPanel": "#3e3d32", - "foreground": "#f8f8f2", - "comment": "#75715e", - "red": "#f92672", - "orange": "#fd971f", - "lightOrange": "#e69f66", - "yellow": "#e6db74", - "green": "#a6e22e", - "cyan": "#66d9ef", - "blue": "#66d9ef", - "purple": "#ae81ff", - "pink": "#f92672" - }, - "theme": { - "primary": { - "dark": "cyan", - "light": "blue" - }, - "secondary": { - "dark": "purple", - "light": "purple" - }, - "accent": { - "dark": "green", - "light": "green" - }, - "error": { - "dark": "red", - "light": "red" - }, - "warning": { - "dark": "yellow", - "light": "orange" - }, - "success": { - "dark": "green", - "light": "green" - }, - "info": { - "dark": "orange", - "light": "orange" - }, - "text": { - "dark": "foreground", - "light": "#272822" - }, - "textMuted": { - "dark": "comment", - "light": "#75715e" - }, - "background": { - "dark": "#272822", - "light": "#fafafa" - }, - "backgroundPanel": { - "dark": "#1e1f1c", - "light": "#f0f0f0" - }, - "backgroundElement": { - "dark": "#3e3d32", - "light": "#e0e0e0" - }, - "border": { - "dark": "#3e3d32", - "light": "#d0d0d0" - }, - "borderActive": { - "dark": "cyan", - "light": "blue" - }, - "borderSubtle": { - "dark": "#1e1f1c", - "light": "#e8e8e8" - }, - "diffAdded": { - "dark": "green", - "light": "green" - }, - "diffRemoved": { - "dark": "red", - "light": "red" - }, - "diffContext": { - "dark": "comment", - "light": "#75715e" - }, - "diffHunkHeader": { - "dark": "comment", - "light": "#75715e" - }, - "diffHighlightAdded": { - "dark": "green", - "light": "green" - }, - "diffHighlightRemoved": { - "dark": "red", - "light": "red" - }, - "diffAddedBg": { - "dark": "#1a3a1a", - "light": "#e0ffe0" - }, - "diffRemovedBg": { - "dark": "#3a1a1a", - "light": "#ffe0e0" - }, - "diffContextBg": { - "dark": "#1e1f1c", - "light": "#f0f0f0" - }, - "diffLineNumber": { - "dark": "#3e3d32", - "light": "#d0d0d0" - }, - "diffAddedLineNumberBg": { - "dark": "#1a3a1a", - "light": "#e0ffe0" - }, - "diffRemovedLineNumberBg": { - "dark": "#3a1a1a", - "light": "#ffe0e0" - }, - "markdownText": { - "dark": "foreground", - "light": "#272822" - }, - "markdownHeading": { - "dark": "pink", - "light": "pink" - }, - "markdownLink": { - "dark": "cyan", - "light": "blue" - }, - "markdownLinkText": { - "dark": "purple", - "light": "purple" - }, - "markdownCode": { - "dark": "green", - "light": "green" - }, - "markdownBlockQuote": { - "dark": "comment", - "light": "#75715e" - }, - "markdownEmph": { - "dark": "yellow", - "light": "orange" - }, - "markdownStrong": { - "dark": "orange", - "light": "orange" - }, - "markdownHorizontalRule": { - "dark": "comment", - "light": "#75715e" - }, - "markdownListItem": { - "dark": "cyan", - "light": "blue" - }, - "markdownListEnumeration": { - "dark": "purple", - "light": "purple" - }, - "markdownImage": { - "dark": "cyan", - "light": "blue" - }, - "markdownImageText": { - "dark": "purple", - "light": "purple" - }, - "markdownCodeBlock": { - "dark": "foreground", - "light": "#272822" - }, - "syntaxComment": { - "dark": "comment", - "light": "#75715e" - }, - "syntaxKeyword": { - "dark": "pink", - "light": "pink" - }, - "syntaxFunction": { - "dark": "green", - "light": "green" - }, - "syntaxVariable": { - "dark": "foreground", - "light": "#272822" - }, - "syntaxString": { - "dark": "yellow", - "light": "orange" - }, - "syntaxNumber": { - "dark": "purple", - "light": "purple" - }, - "syntaxType": { - "dark": "cyan", - "light": "blue" - }, - "syntaxOperator": { - "dark": "pink", - "light": "pink" - }, - "syntaxPunctuation": { - "dark": "foreground", - "light": "#272822" - } - } -} diff --git a/packages/tui/internal/theme/themes/nightowl.json b/packages/tui/internal/theme/themes/nightowl.json deleted file mode 100644 index 8eff42c5f..000000000 --- a/packages/tui/internal/theme/themes/nightowl.json +++ /dev/null @@ -1,221 +0,0 @@ -{ - "$schema": "https://opencode.ai/theme.json", - "defs": { - "nightOwlBg": "#011627", - "nightOwlFg": "#d6deeb", - "nightOwlBlue": "#82AAFF", - "nightOwlCyan": "#7fdbca", - "nightOwlGreen": "#c5e478", - "nightOwlYellow": "#ecc48d", - "nightOwlOrange": "#F78C6C", - "nightOwlRed": "#EF5350", - "nightOwlPink": "#ff5874", - "nightOwlPurple": "#c792ea", - "nightOwlMuted": "#5f7e97", - "nightOwlGray": "#637777", - "nightOwlLightGray": "#89a4bb", - "nightOwlPanel": "#0b253a" - }, - "theme": { - "primary": { - "dark": "nightOwlBlue", - "light": "nightOwlBlue" - }, - "secondary": { - "dark": "nightOwlCyan", - "light": "nightOwlCyan" - }, - "accent": { - "dark": "nightOwlPurple", - "light": "nightOwlPurple" - }, - "error": { - "dark": "nightOwlRed", - "light": "nightOwlRed" - }, - "warning": { - "dark": "nightOwlYellow", - "light": "nightOwlYellow" - }, - "success": { - "dark": "nightOwlGreen", - "light": "nightOwlGreen" - }, - "info": { - "dark": "nightOwlBlue", - "light": "nightOwlBlue" - }, - "text": { - "dark": "nightOwlFg", - "light": "nightOwlFg" - }, - "textMuted": { - "dark": "nightOwlMuted", - "light": "nightOwlMuted" - }, - "background": { - "dark": "nightOwlBg", - "light": "nightOwlBg" - }, - "backgroundPanel": { - "dark": "nightOwlPanel", - "light": "nightOwlPanel" - }, - "backgroundElement": { - "dark": "nightOwlPanel", - "light": "nightOwlPanel" - }, - "border": { - "dark": "nightOwlMuted", - "light": "nightOwlMuted" - }, - "borderActive": { - "dark": "nightOwlBlue", - "light": "nightOwlBlue" - }, - "borderSubtle": { - "dark": "nightOwlMuted", - "light": "nightOwlMuted" - }, - "diffAdded": { - "dark": "nightOwlGreen", - "light": "nightOwlGreen" - }, - "diffRemoved": { - "dark": "nightOwlRed", - "light": "nightOwlRed" - }, - "diffContext": { - "dark": "nightOwlMuted", - "light": "nightOwlMuted" - }, - "diffHunkHeader": { - "dark": "nightOwlMuted", - "light": "nightOwlMuted" - }, - "diffHighlightAdded": { - "dark": "nightOwlGreen", - "light": "nightOwlGreen" - }, - "diffHighlightRemoved": { - "dark": "nightOwlRed", - "light": "nightOwlRed" - }, - "diffAddedBg": { - "dark": "#0a2e1a", - "light": "#0a2e1a" - }, - "diffRemovedBg": { - "dark": "#2d1b1b", - "light": "#2d1b1b" - }, - "diffContextBg": { - "dark": "nightOwlPanel", - "light": "nightOwlPanel" - }, - "diffLineNumber": { - "dark": "nightOwlMuted", - "light": "nightOwlMuted" - }, - "diffAddedLineNumberBg": { - "dark": "#0a2e1a", - "light": "#0a2e1a" - }, - "diffRemovedLineNumberBg": { - "dark": "#2d1b1b", - "light": "#2d1b1b" - }, - "markdownText": { - "dark": "nightOwlFg", - "light": "nightOwlFg" - }, - "markdownHeading": { - "dark": "nightOwlBlue", - "light": "nightOwlBlue" - }, - "markdownLink": { - "dark": "nightOwlCyan", - "light": "nightOwlCyan" - }, - "markdownLinkText": { - "dark": "nightOwlBlue", - "light": "nightOwlBlue" - }, - "markdownCode": { - "dark": "nightOwlGreen", - "light": "nightOwlGreen" - }, - "markdownBlockQuote": { - "dark": "nightOwlMuted", - "light": "nightOwlMuted" - }, - "markdownEmph": { - "dark": "nightOwlPurple", - "light": "nightOwlPurple" - }, - "markdownStrong": { - "dark": "nightOwlYellow", - "light": "nightOwlYellow" - }, - "markdownHorizontalRule": { - "dark": "nightOwlMuted", - "light": "nightOwlMuted" - }, - "markdownListItem": { - "dark": "nightOwlBlue", - "light": "nightOwlBlue" - }, - "markdownListEnumeration": { - "dark": "nightOwlCyan", - "light": "nightOwlCyan" - }, - "markdownImage": { - "dark": "nightOwlCyan", - "light": "nightOwlCyan" - }, - "markdownImageText": { - "dark": "nightOwlBlue", - "light": "nightOwlBlue" - }, - "markdownCodeBlock": { - "dark": "nightOwlFg", - "light": "nightOwlFg" - }, - "syntaxComment": { - "dark": "nightOwlGray", - "light": "nightOwlGray" - }, - "syntaxKeyword": { - "dark": "nightOwlPurple", - "light": "nightOwlPurple" - }, - "syntaxFunction": { - "dark": "nightOwlBlue", - "light": "nightOwlBlue" - }, - "syntaxVariable": { - "dark": "nightOwlFg", - "light": "nightOwlFg" - }, - "syntaxString": { - "dark": "nightOwlYellow", - "light": "nightOwlYellow" - }, - "syntaxNumber": { - "dark": "nightOwlOrange", - "light": "nightOwlOrange" - }, - "syntaxType": { - "dark": "nightOwlGreen", - "light": "nightOwlGreen" - }, - "syntaxOperator": { - "dark": "nightOwlCyan", - "light": "nightOwlCyan" - }, - "syntaxPunctuation": { - "dark": "nightOwlFg", - "light": "nightOwlFg" - } - } -}
\ No newline at end of file diff --git a/packages/tui/internal/theme/themes/nord.json b/packages/tui/internal/theme/themes/nord.json deleted file mode 100644 index 4a525382a..000000000 --- a/packages/tui/internal/theme/themes/nord.json +++ /dev/null @@ -1,223 +0,0 @@ -{ - "$schema": "https://opencode.ai/theme.json", - "defs": { - "nord0": "#2E3440", - "nord1": "#3B4252", - "nord2": "#434C5E", - "nord3": "#4C566A", - "nord4": "#D8DEE9", - "nord5": "#E5E9F0", - "nord6": "#ECEFF4", - "nord7": "#8FBCBB", - "nord8": "#88C0D0", - "nord9": "#81A1C1", - "nord10": "#5E81AC", - "nord11": "#BF616A", - "nord12": "#D08770", - "nord13": "#EBCB8B", - "nord14": "#A3BE8C", - "nord15": "#B48EAD" - }, - "theme": { - "primary": { - "dark": "nord8", - "light": "nord10" - }, - "secondary": { - "dark": "nord9", - "light": "nord9" - }, - "accent": { - "dark": "nord7", - "light": "nord7" - }, - "error": { - "dark": "nord11", - "light": "nord11" - }, - "warning": { - "dark": "nord12", - "light": "nord12" - }, - "success": { - "dark": "nord14", - "light": "nord14" - }, - "info": { - "dark": "nord8", - "light": "nord10" - }, - "text": { - "dark": "nord6", - "light": "nord0" - }, - "textMuted": { - "dark": "#8B95A7", - "light": "nord1" - }, - "background": { - "dark": "nord0", - "light": "nord6" - }, - "backgroundPanel": { - "dark": "nord1", - "light": "nord5" - }, - "backgroundElement": { - "dark": "nord2", - "light": "nord4" - }, - "border": { - "dark": "nord2", - "light": "nord3" - }, - "borderActive": { - "dark": "nord3", - "light": "nord2" - }, - "borderSubtle": { - "dark": "nord2", - "light": "nord3" - }, - "diffAdded": { - "dark": "nord14", - "light": "nord14" - }, - "diffRemoved": { - "dark": "nord11", - "light": "nord11" - }, - "diffContext": { - "dark": "#8B95A7", - "light": "nord3" - }, - "diffHunkHeader": { - "dark": "#8B95A7", - "light": "nord3" - }, - "diffHighlightAdded": { - "dark": "nord14", - "light": "nord14" - }, - "diffHighlightRemoved": { - "dark": "nord11", - "light": "nord11" - }, - "diffAddedBg": { - "dark": "#3B4252", - "light": "#E5E9F0" - }, - "diffRemovedBg": { - "dark": "#3B4252", - "light": "#E5E9F0" - }, - "diffContextBg": { - "dark": "nord1", - "light": "nord5" - }, - "diffLineNumber": { - "dark": "nord2", - "light": "nord4" - }, - "diffAddedLineNumberBg": { - "dark": "#3B4252", - "light": "#E5E9F0" - }, - "diffRemovedLineNumberBg": { - "dark": "#3B4252", - "light": "#E5E9F0" - }, - "markdownText": { - "dark": "nord4", - "light": "nord0" - }, - "markdownHeading": { - "dark": "nord8", - "light": "nord10" - }, - "markdownLink": { - "dark": "nord9", - "light": "nord9" - }, - "markdownLinkText": { - "dark": "nord7", - "light": "nord7" - }, - "markdownCode": { - "dark": "nord14", - "light": "nord14" - }, - "markdownBlockQuote": { - "dark": "#8B95A7", - "light": "nord3" - }, - "markdownEmph": { - "dark": "nord12", - "light": "nord12" - }, - "markdownStrong": { - "dark": "nord13", - "light": "nord13" - }, - "markdownHorizontalRule": { - "dark": "#8B95A7", - "light": "nord3" - }, - "markdownListItem": { - "dark": "nord8", - "light": "nord10" - }, - "markdownListEnumeration": { - "dark": "nord7", - "light": "nord7" - }, - "markdownImage": { - "dark": "nord9", - "light": "nord9" - }, - "markdownImageText": { - "dark": "nord7", - "light": "nord7" - }, - "markdownCodeBlock": { - "dark": "nord4", - "light": "nord0" - }, - "syntaxComment": { - "dark": "#8B95A7", - "light": "nord3" - }, - "syntaxKeyword": { - "dark": "nord9", - "light": "nord9" - }, - "syntaxFunction": { - "dark": "nord8", - "light": "nord8" - }, - "syntaxVariable": { - "dark": "nord7", - "light": "nord7" - }, - "syntaxString": { - "dark": "nord14", - "light": "nord14" - }, - "syntaxNumber": { - "dark": "nord15", - "light": "nord15" - }, - "syntaxType": { - "dark": "nord7", - "light": "nord7" - }, - "syntaxOperator": { - "dark": "nord9", - "light": "nord9" - }, - "syntaxPunctuation": { - "dark": "nord4", - "light": "nord0" - } - } -} diff --git a/packages/tui/internal/theme/themes/one-dark.json b/packages/tui/internal/theme/themes/one-dark.json deleted file mode 100644 index 73b24e929..000000000 --- a/packages/tui/internal/theme/themes/one-dark.json +++ /dev/null @@ -1,84 +0,0 @@ -{ - "$schema": "https://opencode.ai/theme.json", - "defs": { - "darkBg": "#282c34", - "darkBgAlt": "#21252b", - "darkBgPanel": "#353b45", - "darkFg": "#abb2bf", - "darkFgMuted": "#5c6370", - "darkPurple": "#c678dd", - "darkBlue": "#61afef", - "darkRed": "#e06c75", - "darkGreen": "#98c379", - "darkYellow": "#e5c07b", - "darkOrange": "#d19a66", - "darkCyan": "#56b6c2", - "lightBg": "#fafafa", - "lightBgAlt": "#f0f0f1", - "lightBgPanel": "#eaeaeb", - "lightFg": "#383a42", - "lightFgMuted": "#a0a1a7", - "lightPurple": "#a626a4", - "lightBlue": "#4078f2", - "lightRed": "#e45649", - "lightGreen": "#50a14f", - "lightYellow": "#c18401", - "lightOrange": "#986801", - "lightCyan": "#0184bc" - }, - "theme": { - "primary": { "dark": "darkBlue", "light": "lightBlue" }, - "secondary": { "dark": "darkPurple", "light": "lightPurple" }, - "accent": { "dark": "darkCyan", "light": "lightCyan" }, - "error": { "dark": "darkRed", "light": "lightRed" }, - "warning": { "dark": "darkYellow", "light": "lightYellow" }, - "success": { "dark": "darkGreen", "light": "lightGreen" }, - "info": { "dark": "darkOrange", "light": "lightOrange" }, - "text": { "dark": "darkFg", "light": "lightFg" }, - "textMuted": { "dark": "darkFgMuted", "light": "lightFgMuted" }, - "background": { "dark": "darkBg", "light": "lightBg" }, - "backgroundPanel": { "dark": "darkBgAlt", "light": "lightBgAlt" }, - "backgroundElement": { "dark": "darkBgPanel", "light": "lightBgPanel" }, - "border": { "dark": "#393f4a", "light": "#d1d1d2" }, - "borderActive": { "dark": "darkBlue", "light": "lightBlue" }, - "borderSubtle": { "dark": "#2c313a", "light": "#e0e0e1" }, - "diffAdded": { "dark": "darkGreen", "light": "lightGreen" }, - "diffRemoved": { "dark": "darkRed", "light": "lightRed" }, - "diffContext": { "dark": "darkFgMuted", "light": "lightFgMuted" }, - "diffHunkHeader": { "dark": "darkCyan", "light": "lightCyan" }, - "diffHighlightAdded": { "dark": "#aad482", "light": "#489447" }, - "diffHighlightRemoved": { "dark": "#e8828b", "light": "#d65145" }, - "diffAddedBg": { "dark": "#2c382b", "light": "#eafbe9" }, - "diffRemovedBg": { "dark": "#3a2d2f", "light": "#fce9e8" }, - "diffContextBg": { "dark": "darkBgAlt", "light": "lightBgAlt" }, - "diffLineNumber": { "dark": "#495162", "light": "#c9c9ca" }, - "diffAddedLineNumberBg": { "dark": "#283427", "light": "#e1f3df" }, - "diffRemovedLineNumberBg": { "dark": "#36292b", "light": "#f5e2e1" }, - "markdownText": { "dark": "darkFg", "light": "lightFg" }, - "markdownHeading": { "dark": "darkPurple", "light": "lightPurple" }, - "markdownLink": { "dark": "darkBlue", "light": "lightBlue" }, - "markdownLinkText": { "dark": "darkCyan", "light": "lightCyan" }, - "markdownCode": { "dark": "darkGreen", "light": "lightGreen" }, - "markdownBlockQuote": { "dark": "darkFgMuted", "light": "lightFgMuted" }, - "markdownEmph": { "dark": "darkYellow", "light": "lightYellow" }, - "markdownStrong": { "dark": "darkOrange", "light": "lightOrange" }, - "markdownHorizontalRule": { - "dark": "darkFgMuted", - "light": "lightFgMuted" - }, - "markdownListItem": { "dark": "darkBlue", "light": "lightBlue" }, - "markdownListEnumeration": { "dark": "darkCyan", "light": "lightCyan" }, - "markdownImage": { "dark": "darkBlue", "light": "lightBlue" }, - "markdownImageText": { "dark": "darkCyan", "light": "lightCyan" }, - "markdownCodeBlock": { "dark": "darkFg", "light": "lightFg" }, - "syntaxComment": { "dark": "darkFgMuted", "light": "lightFgMuted" }, - "syntaxKeyword": { "dark": "darkPurple", "light": "lightPurple" }, - "syntaxFunction": { "dark": "darkBlue", "light": "lightBlue" }, - "syntaxVariable": { "dark": "darkRed", "light": "lightRed" }, - "syntaxString": { "dark": "darkGreen", "light": "lightGreen" }, - "syntaxNumber": { "dark": "darkOrange", "light": "lightOrange" }, - "syntaxType": { "dark": "darkYellow", "light": "lightYellow" }, - "syntaxOperator": { "dark": "darkCyan", "light": "lightCyan" }, - "syntaxPunctuation": { "dark": "darkFg", "light": "lightFg" } - } -} diff --git a/packages/tui/internal/theme/themes/opencode.json b/packages/tui/internal/theme/themes/opencode.json deleted file mode 100644 index 8f585a450..000000000 --- a/packages/tui/internal/theme/themes/opencode.json +++ /dev/null @@ -1,245 +0,0 @@ -{ - "$schema": "https://opencode.ai/theme.json", - "defs": { - "darkStep1": "#0a0a0a", - "darkStep2": "#141414", - "darkStep3": "#1e1e1e", - "darkStep4": "#282828", - "darkStep5": "#323232", - "darkStep6": "#3c3c3c", - "darkStep7": "#484848", - "darkStep8": "#606060", - "darkStep9": "#fab283", - "darkStep10": "#ffc09f", - "darkStep11": "#808080", - "darkStep12": "#eeeeee", - "darkSecondary": "#5c9cf5", - "darkAccent": "#9d7cd8", - "darkRed": "#e06c75", - "darkOrange": "#f5a742", - "darkGreen": "#7fd88f", - "darkCyan": "#56b6c2", - "darkYellow": "#e5c07b", - "lightStep1": "#ffffff", - "lightStep2": "#fafafa", - "lightStep3": "#f5f5f5", - "lightStep4": "#ebebeb", - "lightStep5": "#e1e1e1", - "lightStep6": "#d4d4d4", - "lightStep7": "#b8b8b8", - "lightStep8": "#a0a0a0", - "lightStep9": "#3b7dd8", - "lightStep10": "#2968c3", - "lightStep11": "#8a8a8a", - "lightStep12": "#1a1a1a", - "lightSecondary": "#7b5bb6", - "lightAccent": "#d68c27", - "lightRed": "#d1383d", - "lightOrange": "#d68c27", - "lightGreen": "#3d9a57", - "lightCyan": "#318795", - "lightYellow": "#b0851f" - }, - "theme": { - "primary": { - "dark": "darkStep9", - "light": "lightStep9" - }, - "secondary": { - "dark": "darkSecondary", - "light": "lightSecondary" - }, - "accent": { - "dark": "darkAccent", - "light": "lightAccent" - }, - "error": { - "dark": "darkRed", - "light": "lightRed" - }, - "warning": { - "dark": "darkOrange", - "light": "lightOrange" - }, - "success": { - "dark": "darkGreen", - "light": "lightGreen" - }, - "info": { - "dark": "darkCyan", - "light": "lightCyan" - }, - "text": { - "dark": "darkStep12", - "light": "lightStep12" - }, - "textMuted": { - "dark": "darkStep11", - "light": "lightStep11" - }, - "background": { - "dark": "darkStep1", - "light": "lightStep1" - }, - "backgroundPanel": { - "dark": "darkStep2", - "light": "lightStep2" - }, - "backgroundElement": { - "dark": "darkStep3", - "light": "lightStep3" - }, - "border": { - "dark": "darkStep7", - "light": "lightStep7" - }, - "borderActive": { - "dark": "darkStep8", - "light": "lightStep8" - }, - "borderSubtle": { - "dark": "darkStep6", - "light": "lightStep6" - }, - "diffAdded": { - "dark": "#4fd6be", - "light": "#1e725c" - }, - "diffRemoved": { - "dark": "#c53b53", - "light": "#c53b53" - }, - "diffContext": { - "dark": "#828bb8", - "light": "#7086b5" - }, - "diffHunkHeader": { - "dark": "#828bb8", - "light": "#7086b5" - }, - "diffHighlightAdded": { - "dark": "#b8db87", - "light": "#4db380" - }, - "diffHighlightRemoved": { - "dark": "#e26a75", - "light": "#f52a65" - }, - "diffAddedBg": { - "dark": "#20303b", - "light": "#d5e5d5" - }, - "diffRemovedBg": { - "dark": "#37222c", - "light": "#f7d8db" - }, - "diffContextBg": { - "dark": "darkStep2", - "light": "lightStep2" - }, - "diffLineNumber": { - "dark": "darkStep3", - "light": "lightStep3" - }, - "diffAddedLineNumberBg": { - "dark": "#1b2b34", - "light": "#c5d5c5" - }, - "diffRemovedLineNumberBg": { - "dark": "#2d1f26", - "light": "#e7c8cb" - }, - "markdownText": { - "dark": "darkStep12", - "light": "lightStep12" - }, - "markdownHeading": { - "dark": "darkAccent", - "light": "lightAccent" - }, - "markdownLink": { - "dark": "darkStep9", - "light": "lightStep9" - }, - "markdownLinkText": { - "dark": "darkCyan", - "light": "lightCyan" - }, - "markdownCode": { - "dark": "darkGreen", - "light": "lightGreen" - }, - "markdownBlockQuote": { - "dark": "darkYellow", - "light": "lightYellow" - }, - "markdownEmph": { - "dark": "darkYellow", - "light": "lightYellow" - }, - "markdownStrong": { - "dark": "darkOrange", - "light": "lightOrange" - }, - "markdownHorizontalRule": { - "dark": "darkStep11", - "light": "lightStep11" - }, - "markdownListItem": { - "dark": "darkStep9", - "light": "lightStep9" - }, - "markdownListEnumeration": { - "dark": "darkCyan", - "light": "lightCyan" - }, - "markdownImage": { - "dark": "darkStep9", - "light": "lightStep9" - }, - "markdownImageText": { - "dark": "darkCyan", - "light": "lightCyan" - }, - "markdownCodeBlock": { - "dark": "darkStep12", - "light": "lightStep12" - }, - "syntaxComment": { - "dark": "darkStep11", - "light": "lightStep11" - }, - "syntaxKeyword": { - "dark": "darkAccent", - "light": "lightAccent" - }, - "syntaxFunction": { - "dark": "darkStep9", - "light": "lightStep9" - }, - "syntaxVariable": { - "dark": "darkRed", - "light": "lightRed" - }, - "syntaxString": { - "dark": "darkGreen", - "light": "lightGreen" - }, - "syntaxNumber": { - "dark": "darkOrange", - "light": "lightOrange" - }, - "syntaxType": { - "dark": "darkYellow", - "light": "lightYellow" - }, - "syntaxOperator": { - "dark": "darkCyan", - "light": "lightCyan" - }, - "syntaxPunctuation": { - "dark": "darkStep12", - "light": "lightStep12" - } - } -} diff --git a/packages/tui/internal/theme/themes/palenight.json b/packages/tui/internal/theme/themes/palenight.json deleted file mode 100644 index 79f7c59e8..000000000 --- a/packages/tui/internal/theme/themes/palenight.json +++ /dev/null @@ -1,222 +0,0 @@ -{ - "$schema": "https://opencode.ai/theme.json", - "defs": { - "background": "#292d3e", - "backgroundAlt": "#1e2132", - "backgroundPanel": "#32364a", - "foreground": "#a6accd", - "foregroundBright": "#bfc7d5", - "comment": "#676e95", - "red": "#f07178", - "orange": "#f78c6c", - "yellow": "#ffcb6b", - "green": "#c3e88d", - "cyan": "#89ddff", - "blue": "#82aaff", - "purple": "#c792ea", - "magenta": "#ff5370", - "pink": "#f07178" - }, - "theme": { - "primary": { - "dark": "blue", - "light": "#4976eb" - }, - "secondary": { - "dark": "purple", - "light": "#a854f2" - }, - "accent": { - "dark": "cyan", - "light": "#00acc1" - }, - "error": { - "dark": "red", - "light": "#e53935" - }, - "warning": { - "dark": "yellow", - "light": "#ffb300" - }, - "success": { - "dark": "green", - "light": "#91b859" - }, - "info": { - "dark": "orange", - "light": "#f4511e" - }, - "text": { - "dark": "foreground", - "light": "#292d3e" - }, - "textMuted": { - "dark": "comment", - "light": "#8796b0" - }, - "background": { - "dark": "#292d3e", - "light": "#fafafa" - }, - "backgroundPanel": { - "dark": "#1e2132", - "light": "#f5f5f5" - }, - "backgroundElement": { - "dark": "#32364a", - "light": "#e7e7e8" - }, - "border": { - "dark": "#32364a", - "light": "#e0e0e0" - }, - "borderActive": { - "dark": "blue", - "light": "#4976eb" - }, - "borderSubtle": { - "dark": "#1e2132", - "light": "#eeeeee" - }, - "diffAdded": { - "dark": "green", - "light": "#91b859" - }, - "diffRemoved": { - "dark": "red", - "light": "#e53935" - }, - "diffContext": { - "dark": "comment", - "light": "#8796b0" - }, - "diffHunkHeader": { - "dark": "cyan", - "light": "#00acc1" - }, - "diffHighlightAdded": { - "dark": "green", - "light": "#91b859" - }, - "diffHighlightRemoved": { - "dark": "red", - "light": "#e53935" - }, - "diffAddedBg": { - "dark": "#2e3c2b", - "light": "#e8f5e9" - }, - "diffRemovedBg": { - "dark": "#3c2b2b", - "light": "#ffebee" - }, - "diffContextBg": { - "dark": "#1e2132", - "light": "#f5f5f5" - }, - "diffLineNumber": { - "dark": "#444760", - "light": "#cfd8dc" - }, - "diffAddedLineNumberBg": { - "dark": "#2e3c2b", - "light": "#e8f5e9" - }, - "diffRemovedLineNumberBg": { - "dark": "#3c2b2b", - "light": "#ffebee" - }, - "markdownText": { - "dark": "foreground", - "light": "#292d3e" - }, - "markdownHeading": { - "dark": "purple", - "light": "#a854f2" - }, - "markdownLink": { - "dark": "blue", - "light": "#4976eb" - }, - "markdownLinkText": { - "dark": "cyan", - "light": "#00acc1" - }, - "markdownCode": { - "dark": "green", - "light": "#91b859" - }, - "markdownBlockQuote": { - "dark": "comment", - "light": "#8796b0" - }, - "markdownEmph": { - "dark": "yellow", - "light": "#ffb300" - }, - "markdownStrong": { - "dark": "orange", - "light": "#f4511e" - }, - "markdownHorizontalRule": { - "dark": "comment", - "light": "#8796b0" - }, - "markdownListItem": { - "dark": "blue", - "light": "#4976eb" - }, - "markdownListEnumeration": { - "dark": "cyan", - "light": "#00acc1" - }, - "markdownImage": { - "dark": "blue", - "light": "#4976eb" - }, - "markdownImageText": { - "dark": "cyan", - "light": "#00acc1" - }, - "markdownCodeBlock": { - "dark": "foreground", - "light": "#292d3e" - }, - "syntaxComment": { - "dark": "comment", - "light": "#8796b0" - }, - "syntaxKeyword": { - "dark": "purple", - "light": "#a854f2" - }, - "syntaxFunction": { - "dark": "blue", - "light": "#4976eb" - }, - "syntaxVariable": { - "dark": "foreground", - "light": "#292d3e" - }, - "syntaxString": { - "dark": "green", - "light": "#91b859" - }, - "syntaxNumber": { - "dark": "orange", - "light": "#f4511e" - }, - "syntaxType": { - "dark": "yellow", - "light": "#ffb300" - }, - "syntaxOperator": { - "dark": "cyan", - "light": "#00acc1" - }, - "syntaxPunctuation": { - "dark": "foreground", - "light": "#292d3e" - } - } -} diff --git a/packages/tui/internal/theme/themes/rosepine.json b/packages/tui/internal/theme/themes/rosepine.json deleted file mode 100644 index 444cdbd13..000000000 --- a/packages/tui/internal/theme/themes/rosepine.json +++ /dev/null @@ -1,234 +0,0 @@ -{ - "$schema": "https://opencode.ai/theme.json", - "defs": { - "base": "#191724", - "surface": "#1f1d2e", - "overlay": "#26233a", - "muted": "#6e6a86", - "subtle": "#908caa", - "text": "#e0def4", - "love": "#eb6f92", - "gold": "#f6c177", - "rose": "#ebbcba", - "pine": "#31748f", - "foam": "#9ccfd8", - "iris": "#c4a7e7", - "highlightLow": "#21202e", - "highlightMed": "#403d52", - "highlightHigh": "#524f67", - "moonBase": "#232136", - "moonSurface": "#2a273f", - "moonOverlay": "#393552", - "moonMuted": "#6e6a86", - "moonSubtle": "#908caa", - "moonText": "#e0def4", - "dawnBase": "#faf4ed", - "dawnSurface": "#fffaf3", - "dawnOverlay": "#f2e9e1", - "dawnMuted": "#9893a5", - "dawnSubtle": "#797593", - "dawnText": "#575279" - }, - "theme": { - "primary": { - "dark": "foam", - "light": "pine" - }, - "secondary": { - "dark": "iris", - "light": "#907aa9" - }, - "accent": { - "dark": "rose", - "light": "#d7827e" - }, - "error": { - "dark": "love", - "light": "#b4637a" - }, - "warning": { - "dark": "gold", - "light": "#ea9d34" - }, - "success": { - "dark": "pine", - "light": "#286983" - }, - "info": { - "dark": "foam", - "light": "#56949f" - }, - "text": { - "dark": "#e0def4", - "light": "#575279" - }, - "textMuted": { - "dark": "muted", - "light": "dawnMuted" - }, - "background": { - "dark": "base", - "light": "dawnBase" - }, - "backgroundPanel": { - "dark": "surface", - "light": "dawnSurface" - }, - "backgroundElement": { - "dark": "overlay", - "light": "dawnOverlay" - }, - "border": { - "dark": "highlightMed", - "light": "#dfdad9" - }, - "borderActive": { - "dark": "foam", - "light": "pine" - }, - "borderSubtle": { - "dark": "highlightLow", - "light": "#f4ede8" - }, - "diffAdded": { - "dark": "pine", - "light": "#286983" - }, - "diffRemoved": { - "dark": "love", - "light": "#b4637a" - }, - "diffContext": { - "dark": "muted", - "light": "dawnMuted" - }, - "diffHunkHeader": { - "dark": "iris", - "light": "#907aa9" - }, - "diffHighlightAdded": { - "dark": "pine", - "light": "#286983" - }, - "diffHighlightRemoved": { - "dark": "love", - "light": "#b4637a" - }, - "diffAddedBg": { - "dark": "#1f2d3a", - "light": "#e5f2f3" - }, - "diffRemovedBg": { - "dark": "#3a1f2d", - "light": "#fce5e8" - }, - "diffContextBg": { - "dark": "surface", - "light": "dawnSurface" - }, - "diffLineNumber": { - "dark": "muted", - "light": "dawnMuted" - }, - "diffAddedLineNumberBg": { - "dark": "#1f2d3a", - "light": "#e5f2f3" - }, - "diffRemovedLineNumberBg": { - "dark": "#3a1f2d", - "light": "#fce5e8" - }, - "markdownText": { - "dark": "#e0def4", - "light": "#575279" - }, - "markdownHeading": { - "dark": "iris", - "light": "#907aa9" - }, - "markdownLink": { - "dark": "foam", - "light": "pine" - }, - "markdownLinkText": { - "dark": "rose", - "light": "#d7827e" - }, - "markdownCode": { - "dark": "pine", - "light": "#286983" - }, - "markdownBlockQuote": { - "dark": "muted", - "light": "dawnMuted" - }, - "markdownEmph": { - "dark": "gold", - "light": "#ea9d34" - }, - "markdownStrong": { - "dark": "love", - "light": "#b4637a" - }, - "markdownHorizontalRule": { - "dark": "highlightMed", - "light": "#dfdad9" - }, - "markdownListItem": { - "dark": "foam", - "light": "pine" - }, - "markdownListEnumeration": { - "dark": "rose", - "light": "#d7827e" - }, - "markdownImage": { - "dark": "foam", - "light": "pine" - }, - "markdownImageText": { - "dark": "rose", - "light": "#d7827e" - }, - "markdownCodeBlock": { - "dark": "#e0def4", - "light": "#575279" - }, - "syntaxComment": { - "dark": "muted", - "light": "dawnMuted" - }, - "syntaxKeyword": { - "dark": "pine", - "light": "#286983" - }, - "syntaxFunction": { - "dark": "rose", - "light": "#d7827e" - }, - "syntaxVariable": { - "dark": "#e0def4", - "light": "#575279" - }, - "syntaxString": { - "dark": "gold", - "light": "#ea9d34" - }, - "syntaxNumber": { - "dark": "iris", - "light": "#907aa9" - }, - "syntaxType": { - "dark": "foam", - "light": "#56949f" - }, - "syntaxOperator": { - "dark": "subtle", - "light": "dawnSubtle" - }, - "syntaxPunctuation": { - "dark": "subtle", - "light": "dawnSubtle" - } - } -} diff --git a/packages/tui/internal/theme/themes/solarized.json b/packages/tui/internal/theme/themes/solarized.json deleted file mode 100644 index e4de11367..000000000 --- a/packages/tui/internal/theme/themes/solarized.json +++ /dev/null @@ -1,223 +0,0 @@ -{ - "$schema": "https://opencode.ai/theme.json", - "defs": { - "base03": "#002b36", - "base02": "#073642", - "base01": "#586e75", - "base00": "#657b83", - "base0": "#839496", - "base1": "#93a1a1", - "base2": "#eee8d5", - "base3": "#fdf6e3", - "yellow": "#b58900", - "orange": "#cb4b16", - "red": "#dc322f", - "magenta": "#d33682", - "violet": "#6c71c4", - "blue": "#268bd2", - "cyan": "#2aa198", - "green": "#859900" - }, - "theme": { - "primary": { - "dark": "blue", - "light": "blue" - }, - "secondary": { - "dark": "violet", - "light": "violet" - }, - "accent": { - "dark": "cyan", - "light": "cyan" - }, - "error": { - "dark": "red", - "light": "red" - }, - "warning": { - "dark": "yellow", - "light": "yellow" - }, - "success": { - "dark": "green", - "light": "green" - }, - "info": { - "dark": "orange", - "light": "orange" - }, - "text": { - "dark": "base0", - "light": "base00" - }, - "textMuted": { - "dark": "base01", - "light": "base1" - }, - "background": { - "dark": "base03", - "light": "base3" - }, - "backgroundPanel": { - "dark": "base02", - "light": "base2" - }, - "backgroundElement": { - "dark": "#073642", - "light": "#eee8d5" - }, - "border": { - "dark": "base02", - "light": "base2" - }, - "borderActive": { - "dark": "base01", - "light": "base1" - }, - "borderSubtle": { - "dark": "#073642", - "light": "#eee8d5" - }, - "diffAdded": { - "dark": "green", - "light": "green" - }, - "diffRemoved": { - "dark": "red", - "light": "red" - }, - "diffContext": { - "dark": "base01", - "light": "base1" - }, - "diffHunkHeader": { - "dark": "base01", - "light": "base1" - }, - "diffHighlightAdded": { - "dark": "green", - "light": "green" - }, - "diffHighlightRemoved": { - "dark": "red", - "light": "red" - }, - "diffAddedBg": { - "dark": "#073642", - "light": "#eee8d5" - }, - "diffRemovedBg": { - "dark": "#073642", - "light": "#eee8d5" - }, - "diffContextBg": { - "dark": "base02", - "light": "base2" - }, - "diffLineNumber": { - "dark": "base01", - "light": "base1" - }, - "diffAddedLineNumberBg": { - "dark": "#073642", - "light": "#eee8d5" - }, - "diffRemovedLineNumberBg": { - "dark": "#073642", - "light": "#eee8d5" - }, - "markdownText": { - "dark": "base0", - "light": "base00" - }, - "markdownHeading": { - "dark": "blue", - "light": "blue" - }, - "markdownLink": { - "dark": "cyan", - "light": "cyan" - }, - "markdownLinkText": { - "dark": "violet", - "light": "violet" - }, - "markdownCode": { - "dark": "green", - "light": "green" - }, - "markdownBlockQuote": { - "dark": "base01", - "light": "base1" - }, - "markdownEmph": { - "dark": "yellow", - "light": "yellow" - }, - "markdownStrong": { - "dark": "orange", - "light": "orange" - }, - "markdownHorizontalRule": { - "dark": "base01", - "light": "base1" - }, - "markdownListItem": { - "dark": "blue", - "light": "blue" - }, - "markdownListEnumeration": { - "dark": "cyan", - "light": "cyan" - }, - "markdownImage": { - "dark": "cyan", - "light": "cyan" - }, - "markdownImageText": { - "dark": "violet", - "light": "violet" - }, - "markdownCodeBlock": { - "dark": "base0", - "light": "base00" - }, - "syntaxComment": { - "dark": "base01", - "light": "base1" - }, - "syntaxKeyword": { - "dark": "green", - "light": "green" - }, - "syntaxFunction": { - "dark": "blue", - "light": "blue" - }, - "syntaxVariable": { - "dark": "cyan", - "light": "cyan" - }, - "syntaxString": { - "dark": "cyan", - "light": "cyan" - }, - "syntaxNumber": { - "dark": "magenta", - "light": "magenta" - }, - "syntaxType": { - "dark": "yellow", - "light": "yellow" - }, - "syntaxOperator": { - "dark": "green", - "light": "green" - }, - "syntaxPunctuation": { - "dark": "base0", - "light": "base00" - } - } -} diff --git a/packages/tui/internal/theme/themes/synthwave84.json b/packages/tui/internal/theme/themes/synthwave84.json deleted file mode 100644 index d25bf3b49..000000000 --- a/packages/tui/internal/theme/themes/synthwave84.json +++ /dev/null @@ -1,226 +0,0 @@ -{ - "$schema": "https://opencode.ai/theme.json", - "defs": { - "background": "#262335", - "backgroundAlt": "#1e1a29", - "backgroundPanel": "#2a2139", - "foreground": "#ffffff", - "foregroundMuted": "#848bbd", - "pink": "#ff7edb", - "pinkBright": "#ff92df", - "cyan": "#36f9f6", - "cyanBright": "#72f1f8", - "yellow": "#fede5d", - "yellowBright": "#fff95d", - "orange": "#ff8b39", - "orangeBright": "#ff9f43", - "purple": "#b084eb", - "purpleBright": "#c792ea", - "red": "#fe4450", - "redBright": "#ff5e5b", - "green": "#72f1b8", - "greenBright": "#97f1d8" - }, - "theme": { - "primary": { - "dark": "cyan", - "light": "#00bcd4" - }, - "secondary": { - "dark": "pink", - "light": "#e91e63" - }, - "accent": { - "dark": "purple", - "light": "#9c27b0" - }, - "error": { - "dark": "red", - "light": "#f44336" - }, - "warning": { - "dark": "yellow", - "light": "#ff9800" - }, - "success": { - "dark": "green", - "light": "#4caf50" - }, - "info": { - "dark": "orange", - "light": "#ff5722" - }, - "text": { - "dark": "foreground", - "light": "#262335" - }, - "textMuted": { - "dark": "foregroundMuted", - "light": "#5c5c8a" - }, - "background": { - "dark": "#262335", - "light": "#fafafa" - }, - "backgroundPanel": { - "dark": "#1e1a29", - "light": "#f5f5f5" - }, - "backgroundElement": { - "dark": "#2a2139", - "light": "#eeeeee" - }, - "border": { - "dark": "#495495", - "light": "#e0e0e0" - }, - "borderActive": { - "dark": "cyan", - "light": "#00bcd4" - }, - "borderSubtle": { - "dark": "#241b2f", - "light": "#f0f0f0" - }, - "diffAdded": { - "dark": "green", - "light": "#4caf50" - }, - "diffRemoved": { - "dark": "red", - "light": "#f44336" - }, - "diffContext": { - "dark": "foregroundMuted", - "light": "#5c5c8a" - }, - "diffHunkHeader": { - "dark": "purple", - "light": "#9c27b0" - }, - "diffHighlightAdded": { - "dark": "greenBright", - "light": "#4caf50" - }, - "diffHighlightRemoved": { - "dark": "redBright", - "light": "#f44336" - }, - "diffAddedBg": { - "dark": "#1a3a2a", - "light": "#e8f5e9" - }, - "diffRemovedBg": { - "dark": "#3a1a2a", - "light": "#ffebee" - }, - "diffContextBg": { - "dark": "#1e1a29", - "light": "#f5f5f5" - }, - "diffLineNumber": { - "dark": "#495495", - "light": "#b0b0b0" - }, - "diffAddedLineNumberBg": { - "dark": "#1a3a2a", - "light": "#e8f5e9" - }, - "diffRemovedLineNumberBg": { - "dark": "#3a1a2a", - "light": "#ffebee" - }, - "markdownText": { - "dark": "foreground", - "light": "#262335" - }, - "markdownHeading": { - "dark": "pink", - "light": "#e91e63" - }, - "markdownLink": { - "dark": "cyan", - "light": "#00bcd4" - }, - "markdownLinkText": { - "dark": "purple", - "light": "#9c27b0" - }, - "markdownCode": { - "dark": "green", - "light": "#4caf50" - }, - "markdownBlockQuote": { - "dark": "foregroundMuted", - "light": "#5c5c8a" - }, - "markdownEmph": { - "dark": "yellow", - "light": "#ff9800" - }, - "markdownStrong": { - "dark": "orange", - "light": "#ff5722" - }, - "markdownHorizontalRule": { - "dark": "#495495", - "light": "#e0e0e0" - }, - "markdownListItem": { - "dark": "cyan", - "light": "#00bcd4" - }, - "markdownListEnumeration": { - "dark": "purple", - "light": "#9c27b0" - }, - "markdownImage": { - "dark": "cyan", - "light": "#00bcd4" - }, - "markdownImageText": { - "dark": "purple", - "light": "#9c27b0" - }, - "markdownCodeBlock": { - "dark": "foreground", - "light": "#262335" - }, - "syntaxComment": { - "dark": "foregroundMuted", - "light": "#5c5c8a" - }, - "syntaxKeyword": { - "dark": "pink", - "light": "#e91e63" - }, - "syntaxFunction": { - "dark": "orange", - "light": "#ff5722" - }, - "syntaxVariable": { - "dark": "foreground", - "light": "#262335" - }, - "syntaxString": { - "dark": "yellow", - "light": "#ff9800" - }, - "syntaxNumber": { - "dark": "purple", - "light": "#9c27b0" - }, - "syntaxType": { - "dark": "cyan", - "light": "#00bcd4" - }, - "syntaxOperator": { - "dark": "pink", - "light": "#e91e63" - }, - "syntaxPunctuation": { - "dark": "foreground", - "light": "#262335" - } - } -} diff --git a/packages/tui/internal/theme/themes/tokyonight.json b/packages/tui/internal/theme/themes/tokyonight.json deleted file mode 100644 index 1c9503a42..000000000 --- a/packages/tui/internal/theme/themes/tokyonight.json +++ /dev/null @@ -1,243 +0,0 @@ -{ - "$schema": "https://opencode.ai/theme.json", - "defs": { - "darkStep1": "#1a1b26", - "darkStep2": "#1e2030", - "darkStep3": "#222436", - "darkStep4": "#292e42", - "darkStep5": "#3b4261", - "darkStep6": "#545c7e", - "darkStep7": "#737aa2", - "darkStep8": "#9099b2", - "darkStep9": "#82aaff", - "darkStep10": "#89b4fa", - "darkStep11": "#828bb8", - "darkStep12": "#c8d3f5", - "darkRed": "#ff757f", - "darkOrange": "#ff966c", - "darkYellow": "#ffc777", - "darkGreen": "#c3e88d", - "darkCyan": "#86e1fc", - "darkPurple": "#c099ff", - "lightStep1": "#e1e2e7", - "lightStep2": "#d5d6db", - "lightStep3": "#c8c9ce", - "lightStep4": "#b9bac1", - "lightStep5": "#a8aecb", - "lightStep6": "#9699a8", - "lightStep7": "#737a8c", - "lightStep8": "#5a607d", - "lightStep9": "#2e7de9", - "lightStep10": "#1a6ce7", - "lightStep11": "#8990a3", - "lightStep12": "#3760bf", - "lightRed": "#f52a65", - "lightOrange": "#b15c00", - "lightYellow": "#8c6c3e", - "lightGreen": "#587539", - "lightCyan": "#007197", - "lightPurple": "#9854f1" - }, - "theme": { - "primary": { - "dark": "darkStep9", - "light": "lightStep9" - }, - "secondary": { - "dark": "darkPurple", - "light": "lightPurple" - }, - "accent": { - "dark": "darkOrange", - "light": "lightOrange" - }, - "error": { - "dark": "darkRed", - "light": "lightRed" - }, - "warning": { - "dark": "darkOrange", - "light": "lightOrange" - }, - "success": { - "dark": "darkGreen", - "light": "lightGreen" - }, - "info": { - "dark": "darkStep9", - "light": "lightStep9" - }, - "text": { - "dark": "darkStep12", - "light": "lightStep12" - }, - "textMuted": { - "dark": "darkStep11", - "light": "lightStep11" - }, - "background": { - "dark": "darkStep1", - "light": "lightStep1" - }, - "backgroundPanel": { - "dark": "darkStep2", - "light": "lightStep2" - }, - "backgroundElement": { - "dark": "darkStep3", - "light": "lightStep3" - }, - "border": { - "dark": "darkStep7", - "light": "lightStep7" - }, - "borderActive": { - "dark": "darkStep8", - "light": "lightStep8" - }, - "borderSubtle": { - "dark": "darkStep6", - "light": "lightStep6" - }, - "diffAdded": { - "dark": "#4fd6be", - "light": "#1e725c" - }, - "diffRemoved": { - "dark": "#c53b53", - "light": "#c53b53" - }, - "diffContext": { - "dark": "#828bb8", - "light": "#7086b5" - }, - "diffHunkHeader": { - "dark": "#828bb8", - "light": "#7086b5" - }, - "diffHighlightAdded": { - "dark": "#b8db87", - "light": "#4db380" - }, - "diffHighlightRemoved": { - "dark": "#e26a75", - "light": "#f52a65" - }, - "diffAddedBg": { - "dark": "#20303b", - "light": "#d5e5d5" - }, - "diffRemovedBg": { - "dark": "#37222c", - "light": "#f7d8db" - }, - "diffContextBg": { - "dark": "darkStep2", - "light": "lightStep2" - }, - "diffLineNumber": { - "dark": "darkStep3", - "light": "lightStep3" - }, - "diffAddedLineNumberBg": { - "dark": "#1b2b34", - "light": "#c5d5c5" - }, - "diffRemovedLineNumberBg": { - "dark": "#2d1f26", - "light": "#e7c8cb" - }, - "markdownText": { - "dark": "darkStep12", - "light": "lightStep12" - }, - "markdownHeading": { - "dark": "darkPurple", - "light": "lightPurple" - }, - "markdownLink": { - "dark": "darkStep9", - "light": "lightStep9" - }, - "markdownLinkText": { - "dark": "darkCyan", - "light": "lightCyan" - }, - "markdownCode": { - "dark": "darkGreen", - "light": "lightGreen" - }, - "markdownBlockQuote": { - "dark": "darkYellow", - "light": "lightYellow" - }, - "markdownEmph": { - "dark": "darkYellow", - "light": "lightYellow" - }, - "markdownStrong": { - "dark": "darkOrange", - "light": "lightOrange" - }, - "markdownHorizontalRule": { - "dark": "darkStep11", - "light": "lightStep11" - }, - "markdownListItem": { - "dark": "darkStep9", - "light": "lightStep9" - }, - "markdownListEnumeration": { - "dark": "darkCyan", - "light": "lightCyan" - }, - "markdownImage": { - "dark": "darkStep9", - "light": "lightStep9" - }, - "markdownImageText": { - "dark": "darkCyan", - "light": "lightCyan" - }, - "markdownCodeBlock": { - "dark": "darkStep12", - "light": "lightStep12" - }, - "syntaxComment": { - "dark": "darkStep11", - "light": "lightStep11" - }, - "syntaxKeyword": { - "dark": "darkPurple", - "light": "lightPurple" - }, - "syntaxFunction": { - "dark": "darkStep9", - "light": "lightStep9" - }, - "syntaxVariable": { - "dark": "darkRed", - "light": "lightRed" - }, - "syntaxString": { - "dark": "darkGreen", - "light": "lightGreen" - }, - "syntaxNumber": { - "dark": "darkOrange", - "light": "lightOrange" - }, - "syntaxType": { - "dark": "darkYellow", - "light": "lightYellow" - }, - "syntaxOperator": { - "dark": "darkCyan", - "light": "lightCyan" - }, - "syntaxPunctuation": { - "dark": "darkStep12", - "light": "lightStep12" - } - } -} diff --git a/packages/tui/internal/theme/themes/vesper.json b/packages/tui/internal/theme/themes/vesper.json deleted file mode 100644 index 758c8f20c..000000000 --- a/packages/tui/internal/theme/themes/vesper.json +++ /dev/null @@ -1,218 +0,0 @@ -{ - "$schema": "https://opencode.ai/theme.json", - "defs": { - "vesperBg": "#101010", - "vesperFg": "#FFF", - "vesperComment": "#8b8b8b", - "vesperKeyword": "#A0A0A0", - "vesperFunction": "#FFC799", - "vesperString": "#99FFE4", - "vesperNumber": "#FFC799", - "vesperError": "#FF8080", - "vesperWarning": "#FFC799", - "vesperSuccess": "#99FFE4", - "vesperMuted": "#A0A0A0" - }, - "theme": { - "primary": { - "dark": "#FFC799", - "light": "#FFC799" - }, - "secondary": { - "dark": "#99FFE4", - "light": "#99FFE4" - }, - "accent": { - "dark": "#FFC799", - "light": "#FFC799" - }, - "error": { - "dark": "vesperError", - "light": "vesperError" - }, - "warning": { - "dark": "vesperWarning", - "light": "vesperWarning" - }, - "success": { - "dark": "vesperSuccess", - "light": "vesperSuccess" - }, - "info": { - "dark": "#FFC799", - "light": "#FFC799" - }, - "text": { - "dark": "vesperFg", - "light": "vesperBg" - }, - "textMuted": { - "dark": "vesperMuted", - "light": "vesperMuted" - }, - "background": { - "dark": "vesperBg", - "light": "#FFF" - }, - "backgroundPanel": { - "dark": "vesperBg", - "light": "#F0F0F0" - }, - "backgroundElement": { - "dark": "vesperBg", - "light": "#E0E0E0" - }, - "border": { - "dark": "#282828", - "light": "#D0D0D0" - }, - "borderActive": { - "dark": "#FFC799", - "light": "#FFC799" - }, - "borderSubtle": { - "dark": "#1C1C1C", - "light": "#E8E8E8" - }, - "diffAdded": { - "dark": "vesperSuccess", - "light": "vesperSuccess" - }, - "diffRemoved": { - "dark": "vesperError", - "light": "vesperError" - }, - "diffContext": { - "dark": "vesperMuted", - "light": "vesperMuted" - }, - "diffHunkHeader": { - "dark": "vesperMuted", - "light": "vesperMuted" - }, - "diffHighlightAdded": { - "dark": "vesperSuccess", - "light": "vesperSuccess" - }, - "diffHighlightRemoved": { - "dark": "vesperError", - "light": "vesperError" - }, - "diffAddedBg": { - "dark": "#0d2818", - "light": "#e8f5e8" - }, - "diffRemovedBg": { - "dark": "#281a1a", - "light": "#f5e8e8" - }, - "diffContextBg": { - "dark": "vesperBg", - "light": "#F8F8F8" - }, - "diffLineNumber": { - "dark": "#505050", - "light": "#808080" - }, - "diffAddedLineNumberBg": { - "dark": "#0d2818", - "light": "#e8f5e8" - }, - "diffRemovedLineNumberBg": { - "dark": "#281a1a", - "light": "#f5e8e8" - }, - "markdownText": { - "dark": "vesperFg", - "light": "vesperBg" - }, - "markdownHeading": { - "dark": "#FFC799", - "light": "#FFC799" - }, - "markdownLink": { - "dark": "#FFC799", - "light": "#FFC799" - }, - "markdownLinkText": { - "dark": "vesperMuted", - "light": "vesperMuted" - }, - "markdownCode": { - "dark": "vesperMuted", - "light": "vesperMuted" - }, - "markdownBlockQuote": { - "dark": "vesperFg", - "light": "vesperBg" - }, - "markdownEmph": { - "dark": "vesperFg", - "light": "vesperBg" - }, - "markdownStrong": { - "dark": "vesperFg", - "light": "vesperBg" - }, - "markdownHorizontalRule": { - "dark": "#65737E", - "light": "#65737E" - }, - "markdownListItem": { - "dark": "vesperFg", - "light": "vesperBg" - }, - "markdownListEnumeration": { - "dark": "vesperFg", - "light": "vesperBg" - }, - "markdownImage": { - "dark": "#FFC799", - "light": "#FFC799" - }, - "markdownImageText": { - "dark": "vesperMuted", - "light": "vesperMuted" - }, - "markdownCodeBlock": { - "dark": "vesperFg", - "light": "vesperBg" - }, - "syntaxComment": { - "dark": "vesperComment", - "light": "vesperComment" - }, - "syntaxKeyword": { - "dark": "vesperKeyword", - "light": "vesperKeyword" - }, - "syntaxFunction": { - "dark": "vesperFunction", - "light": "vesperFunction" - }, - "syntaxVariable": { - "dark": "vesperFg", - "light": "vesperBg" - }, - "syntaxString": { - "dark": "vesperString", - "light": "vesperString" - }, - "syntaxNumber": { - "dark": "vesperNumber", - "light": "vesperNumber" - }, - "syntaxType": { - "dark": "vesperFunction", - "light": "vesperFunction" - }, - "syntaxOperator": { - "dark": "vesperKeyword", - "light": "vesperKeyword" - }, - "syntaxPunctuation": { - "dark": "vesperFg", - "light": "vesperBg" - } - } -} diff --git a/packages/tui/internal/theme/themes/zenburn.json b/packages/tui/internal/theme/themes/zenburn.json deleted file mode 100644 index c4475923b..000000000 --- a/packages/tui/internal/theme/themes/zenburn.json +++ /dev/null @@ -1,223 +0,0 @@ -{ - "$schema": "https://opencode.ai/theme.json", - "defs": { - "bg": "#3f3f3f", - "bgAlt": "#4f4f4f", - "bgPanel": "#5f5f5f", - "fg": "#dcdccc", - "fgMuted": "#9f9f9f", - "red": "#cc9393", - "redBright": "#dca3a3", - "green": "#7f9f7f", - "greenBright": "#8fb28f", - "yellow": "#f0dfaf", - "yellowDim": "#e0cf9f", - "blue": "#8cd0d3", - "blueDim": "#7cb8bb", - "magenta": "#dc8cc3", - "cyan": "#93e0e3", - "orange": "#dfaf8f" - }, - "theme": { - "primary": { - "dark": "blue", - "light": "#5f7f8f" - }, - "secondary": { - "dark": "magenta", - "light": "#8f5f8f" - }, - "accent": { - "dark": "cyan", - "light": "#5f8f8f" - }, - "error": { - "dark": "red", - "light": "#8f5f5f" - }, - "warning": { - "dark": "yellow", - "light": "#8f8f5f" - }, - "success": { - "dark": "green", - "light": "#5f8f5f" - }, - "info": { - "dark": "orange", - "light": "#8f7f5f" - }, - "text": { - "dark": "fg", - "light": "#3f3f3f" - }, - "textMuted": { - "dark": "fgMuted", - "light": "#6f6f6f" - }, - "background": { - "dark": "bg", - "light": "#ffffef" - }, - "backgroundPanel": { - "dark": "bgAlt", - "light": "#f5f5e5" - }, - "backgroundElement": { - "dark": "bgPanel", - "light": "#ebebdb" - }, - "border": { - "dark": "#5f5f5f", - "light": "#d0d0c0" - }, - "borderActive": { - "dark": "blue", - "light": "#5f7f8f" - }, - "borderSubtle": { - "dark": "#4f4f4f", - "light": "#e0e0d0" - }, - "diffAdded": { - "dark": "green", - "light": "#5f8f5f" - }, - "diffRemoved": { - "dark": "red", - "light": "#8f5f5f" - }, - "diffContext": { - "dark": "fgMuted", - "light": "#6f6f6f" - }, - "diffHunkHeader": { - "dark": "cyan", - "light": "#5f8f8f" - }, - "diffHighlightAdded": { - "dark": "greenBright", - "light": "#5f8f5f" - }, - "diffHighlightRemoved": { - "dark": "redBright", - "light": "#8f5f5f" - }, - "diffAddedBg": { - "dark": "#4f5f4f", - "light": "#efffef" - }, - "diffRemovedBg": { - "dark": "#5f4f4f", - "light": "#ffefef" - }, - "diffContextBg": { - "dark": "bgAlt", - "light": "#f5f5e5" - }, - "diffLineNumber": { - "dark": "#6f6f6f", - "light": "#b0b0a0" - }, - "diffAddedLineNumberBg": { - "dark": "#4f5f4f", - "light": "#efffef" - }, - "diffRemovedLineNumberBg": { - "dark": "#5f4f4f", - "light": "#ffefef" - }, - "markdownText": { - "dark": "fg", - "light": "#3f3f3f" - }, - "markdownHeading": { - "dark": "yellow", - "light": "#8f8f5f" - }, - "markdownLink": { - "dark": "blue", - "light": "#5f7f8f" - }, - "markdownLinkText": { - "dark": "cyan", - "light": "#5f8f8f" - }, - "markdownCode": { - "dark": "green", - "light": "#5f8f5f" - }, - "markdownBlockQuote": { - "dark": "fgMuted", - "light": "#6f6f6f" - }, - "markdownEmph": { - "dark": "yellowDim", - "light": "#8f8f5f" - }, - "markdownStrong": { - "dark": "orange", - "light": "#8f7f5f" - }, - "markdownHorizontalRule": { - "dark": "fgMuted", - "light": "#6f6f6f" - }, - "markdownListItem": { - "dark": "blue", - "light": "#5f7f8f" - }, - "markdownListEnumeration": { - "dark": "cyan", - "light": "#5f8f8f" - }, - "markdownImage": { - "dark": "blue", - "light": "#5f7f8f" - }, - "markdownImageText": { - "dark": "cyan", - "light": "#5f8f8f" - }, - "markdownCodeBlock": { - "dark": "fg", - "light": "#3f3f3f" - }, - "syntaxComment": { - "dark": "#7f9f7f", - "light": "#5f7f5f" - }, - "syntaxKeyword": { - "dark": "yellow", - "light": "#8f8f5f" - }, - "syntaxFunction": { - "dark": "blue", - "light": "#5f7f8f" - }, - "syntaxVariable": { - "dark": "fg", - "light": "#3f3f3f" - }, - "syntaxString": { - "dark": "red", - "light": "#8f5f5f" - }, - "syntaxNumber": { - "dark": "greenBright", - "light": "#5f8f5f" - }, - "syntaxType": { - "dark": "cyan", - "light": "#5f8f8f" - }, - "syntaxOperator": { - "dark": "yellow", - "light": "#8f8f5f" - }, - "syntaxPunctuation": { - "dark": "fg", - "light": "#3f3f3f" - } - } -} |
