summaryrefslogtreecommitdiffhomepage
path: root/packages/tui/internal/theme
diff options
context:
space:
mode:
authoradamdottv <[email protected]>2025-06-12 05:35:40 -0500
committeradamdottv <[email protected]>2025-06-12 16:00:24 -0500
commitcce2e4ad754479917fc8f6f24c1421cf19c04573 (patch)
tree62c0ec32358932a468af73b44fd28e7de7859bbe /packages/tui/internal/theme
parenta1ce35c208bf9ebca37f722e845035bd7fd5e801 (diff)
downloadopencode-cce2e4ad754479917fc8f6f24c1421cf19c04573.tar.gz
opencode-cce2e4ad754479917fc8f6f24c1421cf19c04573.zip
wip: refactoring tui
Diffstat (limited to 'packages/tui/internal/theme')
-rw-r--r--packages/tui/internal/theme/ayu.go276
-rw-r--r--packages/tui/internal/theme/catppuccin.go244
-rw-r--r--packages/tui/internal/theme/dracula.go270
-rw-r--r--packages/tui/internal/theme/flexoki.go278
-rw-r--r--packages/tui/internal/theme/gruvbox.go298
-rw-r--r--packages/tui/internal/theme/manager.go5
-rw-r--r--packages/tui/internal/theme/monokai.go269
-rw-r--r--packages/tui/internal/theme/onedark.go270
-rw-r--r--packages/tui/internal/theme/opencode.go303
-rw-r--r--packages/tui/internal/theme/theme.go359
-rw-r--r--packages/tui/internal/theme/tokyonight.go303
-rw-r--r--packages/tui/internal/theme/tron.go272
12 files changed, 486 insertions, 2661 deletions
diff --git a/packages/tui/internal/theme/ayu.go b/packages/tui/internal/theme/ayu.go
deleted file mode 100644
index 947e41e5b..000000000
--- a/packages/tui/internal/theme/ayu.go
+++ /dev/null
@@ -1,276 +0,0 @@
-package theme
-
-import (
- "github.com/charmbracelet/lipgloss"
-)
-
-// AyuDarkTheme implements the Theme interface with Ayu Dark colors.
-type AyuDarkTheme struct {
- BaseTheme
-}
-
-// AyuLightTheme implements the Theme interface with Ayu Light colors.
-type AyuLightTheme struct {
- BaseTheme
-}
-
-// AyuMirageTheme implements the Theme interface with Ayu Mirage colors.
-type AyuMirageTheme struct {
- BaseTheme
-}
-
-// NewAyuDarkTheme creates a new instance of the Ayu Dark theme.
-func NewAyuDarkTheme() *AyuDarkTheme {
- // Ayu Dark color palette
- darkBackground := "#0f1419"
- darkCurrentLine := "#191f26"
- darkSelection := "#253340"
- darkForeground := "#b3b1ad"
- darkComment := "#5c6773"
- darkBlue := "#53bdfa"
- darkCyan := "#90e1c6"
- darkGreen := "#91b362"
- darkOrange := "#f9af4f"
- darkPurple := "#fae994"
- darkRed := "#ea6c73"
- darkBorder := "#253340"
-
- // Light mode approximation for terminal compatibility
- lightBackground := "#fafafa"
- lightCurrentLine := "#f0f0f0"
- lightSelection := "#d1d1d1"
- lightForeground := "#5c6773"
- lightComment := "#828c99"
- lightBlue := "#3199e1"
- lightCyan := "#46ba94"
- lightGreen := "#7c9f32"
- lightOrange := "#f29718"
- lightPurple := "#9e75c7"
- lightRed := "#f07171"
- lightBorder := "#d1d1d1"
-
- theme := &AyuDarkTheme{}
-
- // Base colors
- theme.PrimaryColor = lipgloss.AdaptiveColor{
- Dark: darkBlue,
- Light: lightBlue,
- }
- theme.SecondaryColor = lipgloss.AdaptiveColor{
- Dark: darkCyan,
- Light: lightCyan,
- }
- theme.AccentColor = lipgloss.AdaptiveColor{
- Dark: darkOrange,
- Light: lightOrange,
- }
-
- // Status colors
- theme.ErrorColor = lipgloss.AdaptiveColor{
- Dark: darkRed,
- Light: lightRed,
- }
- theme.WarningColor = lipgloss.AdaptiveColor{
- Dark: darkOrange,
- Light: lightOrange,
- }
- theme.SuccessColor = lipgloss.AdaptiveColor{
- Dark: darkGreen,
- Light: lightGreen,
- }
- theme.InfoColor = lipgloss.AdaptiveColor{
- Dark: darkCyan,
- Light: lightCyan,
- }
-
- // Text colors
- theme.TextColor = lipgloss.AdaptiveColor{
- Dark: darkForeground,
- Light: lightForeground,
- }
- theme.TextMutedColor = lipgloss.AdaptiveColor{
- Dark: darkComment,
- Light: lightComment,
- }
-
- // Background colors
- theme.BackgroundColor = lipgloss.AdaptiveColor{
- Dark: darkBackground,
- Light: lightBackground,
- }
- theme.BackgroundSubtleColor = lipgloss.AdaptiveColor{
- Dark: darkCurrentLine,
- Light: lightCurrentLine,
- }
- theme.BackgroundElementColor = lipgloss.AdaptiveColor{
- Dark: "#0b0e14", // Darker than background
- Light: "#ffffff", // Lighter than background
- }
-
- // Border colors
- theme.BorderColor = lipgloss.AdaptiveColor{
- Dark: darkBorder,
- Light: lightBorder,
- }
- theme.BorderActiveColor = lipgloss.AdaptiveColor{
- Dark: darkBlue,
- Light: lightBlue,
- }
- theme.BorderSubtleColor = lipgloss.AdaptiveColor{
- Dark: darkSelection,
- Light: lightSelection,
- }
-
- // Diff view colors
- theme.DiffAddedColor = lipgloss.AdaptiveColor{
- Dark: darkGreen,
- Light: lightGreen,
- }
- theme.DiffRemovedColor = lipgloss.AdaptiveColor{
- Dark: darkRed,
- Light: lightRed,
- }
- theme.DiffContextColor = lipgloss.AdaptiveColor{
- Dark: darkComment,
- Light: lightComment,
- }
- theme.DiffHunkHeaderColor = lipgloss.AdaptiveColor{
- Dark: darkBlue,
- Light: lightBlue,
- }
- theme.DiffHighlightAddedColor = lipgloss.AdaptiveColor{
- Dark: "#91b362",
- Light: "#a5d6a7",
- }
- theme.DiffHighlightRemovedColor = lipgloss.AdaptiveColor{
- Dark: "#ea6c73",
- Light: "#ef9a9a",
- }
- theme.DiffAddedBgColor = lipgloss.AdaptiveColor{
- Dark: "#1f2c1f",
- Light: "#e8f5e9",
- }
- theme.DiffRemovedBgColor = lipgloss.AdaptiveColor{
- Dark: "#2c1f1f",
- Light: "#ffebee",
- }
- theme.DiffContextBgColor = lipgloss.AdaptiveColor{
- Dark: darkBackground,
- Light: lightBackground,
- }
- theme.DiffLineNumberColor = lipgloss.AdaptiveColor{
- Dark: darkComment,
- Light: lightComment,
- }
- theme.DiffAddedLineNumberBgColor = lipgloss.AdaptiveColor{
- Dark: "#1a261a",
- Light: "#c8e6c9",
- }
- theme.DiffRemovedLineNumberBgColor = lipgloss.AdaptiveColor{
- Dark: "#261a1a",
- Light: "#ffcdd2",
- }
-
- // Markdown colors
- theme.MarkdownTextColor = lipgloss.AdaptiveColor{
- Dark: darkForeground,
- Light: lightForeground,
- }
- theme.MarkdownHeadingColor = lipgloss.AdaptiveColor{
- Dark: darkBlue,
- Light: lightBlue,
- }
- theme.MarkdownLinkColor = lipgloss.AdaptiveColor{
- Dark: darkCyan,
- Light: lightCyan,
- }
- theme.MarkdownLinkTextColor = lipgloss.AdaptiveColor{
- Dark: darkBlue,
- Light: lightBlue,
- }
- theme.MarkdownCodeColor = lipgloss.AdaptiveColor{
- Dark: darkGreen,
- Light: lightGreen,
- }
- theme.MarkdownBlockQuoteColor = lipgloss.AdaptiveColor{
- Dark: darkComment,
- Light: lightComment,
- }
- theme.MarkdownEmphColor = lipgloss.AdaptiveColor{
- Dark: darkPurple,
- Light: lightPurple,
- }
- theme.MarkdownStrongColor = lipgloss.AdaptiveColor{
- Dark: darkOrange,
- Light: lightOrange,
- }
- theme.MarkdownHorizontalRuleColor = lipgloss.AdaptiveColor{
- Dark: darkComment,
- Light: lightComment,
- }
- theme.MarkdownListItemColor = lipgloss.AdaptiveColor{
- Dark: darkBlue,
- Light: lightBlue,
- }
- theme.MarkdownListEnumerationColor = lipgloss.AdaptiveColor{
- Dark: darkCyan,
- Light: lightCyan,
- }
- theme.MarkdownImageColor = lipgloss.AdaptiveColor{
- Dark: darkBlue,
- Light: lightBlue,
- }
- theme.MarkdownImageTextColor = lipgloss.AdaptiveColor{
- Dark: darkCyan,
- Light: lightCyan,
- }
- theme.MarkdownCodeBlockColor = lipgloss.AdaptiveColor{
- Dark: darkForeground,
- Light: lightForeground,
- }
-
- // Syntax highlighting colors
- theme.SyntaxCommentColor = lipgloss.AdaptiveColor{
- Dark: darkComment,
- Light: lightComment,
- }
- theme.SyntaxKeywordColor = lipgloss.AdaptiveColor{
- Dark: darkPurple,
- Light: lightPurple,
- }
- theme.SyntaxFunctionColor = lipgloss.AdaptiveColor{
- Dark: darkBlue,
- Light: lightBlue,
- }
- theme.SyntaxVariableColor = lipgloss.AdaptiveColor{
- Dark: darkForeground,
- Light: lightForeground,
- }
- theme.SyntaxStringColor = lipgloss.AdaptiveColor{
- Dark: darkGreen,
- Light: lightGreen,
- }
- theme.SyntaxNumberColor = lipgloss.AdaptiveColor{
- Dark: darkPurple,
- Light: lightPurple,
- }
- theme.SyntaxTypeColor = lipgloss.AdaptiveColor{
- Dark: darkCyan,
- Light: lightCyan,
- }
- theme.SyntaxOperatorColor = lipgloss.AdaptiveColor{
- Dark: darkOrange,
- Light: lightOrange,
- }
- theme.SyntaxPunctuationColor = lipgloss.AdaptiveColor{
- Dark: darkForeground,
- Light: lightForeground,
- }
-
- return theme
-}
-
-func init() {
- // Register all three Ayu theme variants with the theme manager
- RegisterTheme("ayu", NewAyuDarkTheme())
-}
diff --git a/packages/tui/internal/theme/catppuccin.go b/packages/tui/internal/theme/catppuccin.go
deleted file mode 100644
index 976eb7fbd..000000000
--- a/packages/tui/internal/theme/catppuccin.go
+++ /dev/null
@@ -1,244 +0,0 @@
-package theme
-
-import (
- catppuccin "github.com/catppuccin/go"
- "github.com/charmbracelet/lipgloss"
-)
-
-// CatppuccinTheme implements the Theme interface with Catppuccin colors.
-// It provides both dark (Mocha) and light (Latte) variants.
-type CatppuccinTheme struct {
- BaseTheme
-}
-
-// NewCatppuccinTheme creates a new instance of the Catppuccin theme.
-func NewCatppuccinTheme() *CatppuccinTheme {
- // Get the Catppuccin palettes
- mocha := catppuccin.Mocha
- latte := catppuccin.Latte
-
- theme := &CatppuccinTheme{}
-
- // Base colors
- theme.PrimaryColor = lipgloss.AdaptiveColor{
- Dark: mocha.Blue().Hex,
- Light: latte.Blue().Hex,
- }
- theme.SecondaryColor = lipgloss.AdaptiveColor{
- Dark: mocha.Mauve().Hex,
- Light: latte.Mauve().Hex,
- }
- theme.AccentColor = lipgloss.AdaptiveColor{
- Dark: mocha.Peach().Hex,
- Light: latte.Peach().Hex,
- }
-
- // Status colors
- theme.ErrorColor = lipgloss.AdaptiveColor{
- Dark: mocha.Red().Hex,
- Light: latte.Red().Hex,
- }
- theme.WarningColor = lipgloss.AdaptiveColor{
- Dark: mocha.Peach().Hex,
- Light: latte.Peach().Hex,
- }
- theme.SuccessColor = lipgloss.AdaptiveColor{
- Dark: mocha.Green().Hex,
- Light: latte.Green().Hex,
- }
- theme.InfoColor = lipgloss.AdaptiveColor{
- Dark: mocha.Blue().Hex,
- Light: latte.Blue().Hex,
- }
-
- // Text colors
- theme.TextColor = lipgloss.AdaptiveColor{
- Dark: mocha.Text().Hex,
- Light: latte.Text().Hex,
- }
- theme.TextMutedColor = lipgloss.AdaptiveColor{
- Dark: mocha.Subtext0().Hex,
- Light: latte.Subtext0().Hex,
- }
-
- // Background colors
- theme.BackgroundColor = lipgloss.AdaptiveColor{
- Dark: "#212121", // From existing styles
- Light: "#EEEEEE", // Light equivalent
- }
- theme.BackgroundSubtleColor = lipgloss.AdaptiveColor{
- Dark: "#2c2c2c", // From existing styles
- Light: "#E0E0E0", // Light equivalent
- }
- theme.BackgroundElementColor = lipgloss.AdaptiveColor{
- Dark: "#181818", // From existing styles
- Light: "#F5F5F5", // Light equivalent
- }
-
- // Border colors
- theme.BorderColor = lipgloss.AdaptiveColor{
- Dark: "#4b4c5c", // From existing styles
- Light: "#BDBDBD", // Light equivalent
- }
- theme.BorderActiveColor = lipgloss.AdaptiveColor{
- Dark: mocha.Blue().Hex,
- Light: latte.Blue().Hex,
- }
- theme.BorderSubtleColor = lipgloss.AdaptiveColor{
- Dark: mocha.Surface0().Hex,
- Light: latte.Surface0().Hex,
- }
-
- // Diff view colors
- theme.DiffAddedColor = lipgloss.AdaptiveColor{
- Dark: "#478247", // From existing diff.go
- Light: "#2E7D32", // Light equivalent
- }
- theme.DiffRemovedColor = lipgloss.AdaptiveColor{
- Dark: "#7C4444", // From existing diff.go
- Light: "#C62828", // Light equivalent
- }
- theme.DiffContextColor = lipgloss.AdaptiveColor{
- Dark: "#a0a0a0", // From existing diff.go
- Light: "#757575", // Light equivalent
- }
- theme.DiffHunkHeaderColor = lipgloss.AdaptiveColor{
- Dark: "#a0a0a0", // From existing diff.go
- Light: "#757575", // Light equivalent
- }
- theme.DiffHighlightAddedColor = lipgloss.AdaptiveColor{
- Dark: "#DAFADA", // From existing diff.go
- Light: "#A5D6A7", // Light equivalent
- }
- theme.DiffHighlightRemovedColor = lipgloss.AdaptiveColor{
- Dark: "#FADADD", // From existing diff.go
- Light: "#EF9A9A", // Light equivalent
- }
- theme.DiffAddedBgColor = lipgloss.AdaptiveColor{
- Dark: "#303A30", // From existing diff.go
- Light: "#E8F5E9", // Light equivalent
- }
- theme.DiffRemovedBgColor = lipgloss.AdaptiveColor{
- Dark: "#3A3030", // From existing diff.go
- Light: "#FFEBEE", // Light equivalent
- }
- theme.DiffContextBgColor = lipgloss.AdaptiveColor{
- Dark: "#212121", // From existing diff.go
- Light: "#F5F5F5", // Light equivalent
- }
- theme.DiffLineNumberColor = lipgloss.AdaptiveColor{
- Dark: "#888888", // From existing diff.go
- Light: "#9E9E9E", // Light equivalent
- }
- theme.DiffAddedLineNumberBgColor = lipgloss.AdaptiveColor{
- Dark: "#293229", // From existing diff.go
- Light: "#C8E6C9", // Light equivalent
- }
- theme.DiffRemovedLineNumberBgColor = lipgloss.AdaptiveColor{
- Dark: "#332929", // From existing diff.go
- Light: "#FFCDD2", // Light equivalent
- }
-
- // Markdown colors
- theme.MarkdownTextColor = lipgloss.AdaptiveColor{
- Dark: mocha.Text().Hex,
- Light: latte.Text().Hex,
- }
- theme.MarkdownHeadingColor = lipgloss.AdaptiveColor{
- Dark: mocha.Mauve().Hex,
- Light: latte.Mauve().Hex,
- }
- theme.MarkdownLinkColor = lipgloss.AdaptiveColor{
- Dark: mocha.Sky().Hex,
- Light: latte.Sky().Hex,
- }
- theme.MarkdownLinkTextColor = lipgloss.AdaptiveColor{
- Dark: mocha.Pink().Hex,
- Light: latte.Pink().Hex,
- }
- theme.MarkdownCodeColor = lipgloss.AdaptiveColor{
- Dark: mocha.Green().Hex,
- Light: latte.Green().Hex,
- }
- theme.MarkdownBlockQuoteColor = lipgloss.AdaptiveColor{
- Dark: mocha.Yellow().Hex,
- Light: latte.Yellow().Hex,
- }
- theme.MarkdownEmphColor = lipgloss.AdaptiveColor{
- Dark: mocha.Yellow().Hex,
- Light: latte.Yellow().Hex,
- }
- theme.MarkdownStrongColor = lipgloss.AdaptiveColor{
- Dark: mocha.Peach().Hex,
- Light: latte.Peach().Hex,
- }
- theme.MarkdownHorizontalRuleColor = lipgloss.AdaptiveColor{
- Dark: mocha.Overlay0().Hex,
- Light: latte.Overlay0().Hex,
- }
- theme.MarkdownListItemColor = lipgloss.AdaptiveColor{
- Dark: mocha.Blue().Hex,
- Light: latte.Blue().Hex,
- }
- theme.MarkdownListEnumerationColor = lipgloss.AdaptiveColor{
- Dark: mocha.Sky().Hex,
- Light: latte.Sky().Hex,
- }
- theme.MarkdownImageColor = lipgloss.AdaptiveColor{
- Dark: mocha.Sapphire().Hex,
- Light: latte.Sapphire().Hex,
- }
- theme.MarkdownImageTextColor = lipgloss.AdaptiveColor{
- Dark: mocha.Pink().Hex,
- Light: latte.Pink().Hex,
- }
- theme.MarkdownCodeBlockColor = lipgloss.AdaptiveColor{
- Dark: mocha.Text().Hex,
- Light: latte.Text().Hex,
- }
-
- // Syntax highlighting colors
- theme.SyntaxCommentColor = lipgloss.AdaptiveColor{
- Dark: mocha.Overlay1().Hex,
- Light: latte.Overlay1().Hex,
- }
- theme.SyntaxKeywordColor = lipgloss.AdaptiveColor{
- Dark: mocha.Pink().Hex,
- Light: latte.Pink().Hex,
- }
- theme.SyntaxFunctionColor = lipgloss.AdaptiveColor{
- Dark: mocha.Green().Hex,
- Light: latte.Green().Hex,
- }
- theme.SyntaxVariableColor = lipgloss.AdaptiveColor{
- Dark: mocha.Sky().Hex,
- Light: latte.Sky().Hex,
- }
- theme.SyntaxStringColor = lipgloss.AdaptiveColor{
- Dark: mocha.Yellow().Hex,
- Light: latte.Yellow().Hex,
- }
- theme.SyntaxNumberColor = lipgloss.AdaptiveColor{
- Dark: mocha.Teal().Hex,
- Light: latte.Teal().Hex,
- }
- theme.SyntaxTypeColor = lipgloss.AdaptiveColor{
- Dark: mocha.Sky().Hex,
- Light: latte.Sky().Hex,
- }
- theme.SyntaxOperatorColor = lipgloss.AdaptiveColor{
- Dark: mocha.Pink().Hex,
- Light: latte.Pink().Hex,
- }
- theme.SyntaxPunctuationColor = lipgloss.AdaptiveColor{
- Dark: mocha.Text().Hex,
- Light: latte.Text().Hex,
- }
-
- return theme
-}
-
-func init() {
- // Register the Catppuccin theme with the theme manager
- RegisterTheme("catppuccin", NewCatppuccinTheme())
-}
diff --git a/packages/tui/internal/theme/dracula.go b/packages/tui/internal/theme/dracula.go
deleted file mode 100644
index 7f14d6290..000000000
--- a/packages/tui/internal/theme/dracula.go
+++ /dev/null
@@ -1,270 +0,0 @@
-package theme
-
-import (
- "github.com/charmbracelet/lipgloss"
-)
-
-// DraculaTheme implements the Theme interface with Dracula colors.
-// It provides both dark and light variants, though Dracula is primarily a dark theme.
-type DraculaTheme struct {
- BaseTheme
-}
-
-// NewDraculaTheme creates a new instance of the Dracula theme.
-func NewDraculaTheme() *DraculaTheme {
- // Dracula color palette
- // Official colors from https://draculatheme.com/
- darkBackground := "#282a36"
- darkCurrentLine := "#44475a"
- darkSelection := "#44475a"
- darkForeground := "#f8f8f2"
- darkComment := "#6272a4"
- darkCyan := "#8be9fd"
- darkGreen := "#50fa7b"
- darkOrange := "#ffb86c"
- darkPink := "#ff79c6"
- darkPurple := "#bd93f9"
- darkRed := "#ff5555"
- darkYellow := "#f1fa8c"
- darkBorder := "#44475a"
-
- // Light mode approximation (Dracula is primarily a dark theme)
- lightBackground := "#f8f8f2"
- lightCurrentLine := "#e6e6e6"
- lightSelection := "#d8d8d8"
- lightForeground := "#282a36"
- lightComment := "#6272a4"
- lightCyan := "#0097a7"
- lightGreen := "#388e3c"
- lightOrange := "#f57c00"
- lightPink := "#d81b60"
- lightPurple := "#7e57c2"
- lightRed := "#e53935"
- lightYellow := "#fbc02d"
- lightBorder := "#d8d8d8"
-
- theme := &DraculaTheme{}
-
- // Base colors
- theme.PrimaryColor = lipgloss.AdaptiveColor{
- Dark: darkPurple,
- Light: lightPurple,
- }
- theme.SecondaryColor = lipgloss.AdaptiveColor{
- Dark: darkPink,
- Light: lightPink,
- }
- theme.AccentColor = lipgloss.AdaptiveColor{
- Dark: darkCyan,
- Light: lightCyan,
- }
-
- // Status colors
- theme.ErrorColor = lipgloss.AdaptiveColor{
- Dark: darkRed,
- Light: lightRed,
- }
- theme.WarningColor = lipgloss.AdaptiveColor{
- Dark: darkOrange,
- Light: lightOrange,
- }
- theme.SuccessColor = lipgloss.AdaptiveColor{
- Dark: darkGreen,
- Light: lightGreen,
- }
- theme.InfoColor = lipgloss.AdaptiveColor{
- Dark: darkCyan,
- Light: lightCyan,
- }
-
- // Text colors
- theme.TextColor = lipgloss.AdaptiveColor{
- Dark: darkForeground,
- Light: lightForeground,
- }
- theme.TextMutedColor = lipgloss.AdaptiveColor{
- Dark: darkComment,
- Light: lightComment,
- }
-
- // Background colors
- theme.BackgroundElementColor = lipgloss.AdaptiveColor{
- Dark: darkBackground,
- Light: lightBackground,
- }
- theme.BackgroundSubtleColor = lipgloss.AdaptiveColor{
- Dark: darkCurrentLine,
- Light: lightCurrentLine,
- }
- theme.BackgroundColor = lipgloss.AdaptiveColor{
- Dark: "#21222c", // Slightly darker than background
- Light: "#ffffff", // Slightly lighter than background
- }
-
- // Border colors
- theme.BorderColor = lipgloss.AdaptiveColor{
- Dark: darkBorder,
- Light: lightBorder,
- }
- theme.BorderActiveColor = lipgloss.AdaptiveColor{
- Dark: darkPurple,
- Light: lightPurple,
- }
- theme.BorderSubtleColor = lipgloss.AdaptiveColor{
- Dark: darkSelection,
- Light: lightSelection,
- }
-
- // Diff view colors
- theme.DiffAddedColor = lipgloss.AdaptiveColor{
- Dark: darkGreen,
- Light: lightGreen,
- }
- theme.DiffRemovedColor = lipgloss.AdaptiveColor{
- Dark: darkRed,
- Light: lightRed,
- }
- theme.DiffContextColor = lipgloss.AdaptiveColor{
- Dark: darkComment,
- Light: lightComment,
- }
- theme.DiffHunkHeaderColor = lipgloss.AdaptiveColor{
- Dark: darkCurrentLine,
- Light: lightCurrentLine,
- }
- theme.DiffHighlightAddedColor = lipgloss.AdaptiveColor{
- Dark: "#50fa7b",
- Light: "#a5d6a7",
- }
- theme.DiffHighlightRemovedColor = lipgloss.AdaptiveColor{
- Dark: "#ff5555",
- Light: "#ef9a9a",
- }
- theme.DiffAddedBgColor = lipgloss.AdaptiveColor{
- Dark: "#2c3b2c",
- Light: "#e8f5e9",
- }
- theme.DiffRemovedBgColor = lipgloss.AdaptiveColor{
- Dark: "#3b2c2c",
- Light: "#ffebee",
- }
- theme.DiffContextBgColor = lipgloss.AdaptiveColor{
- Dark: darkBackground,
- Light: lightBackground,
- }
- theme.DiffLineNumberColor = lipgloss.AdaptiveColor{
- Dark: darkComment,
- Light: lightComment,
- }
- theme.DiffAddedLineNumberBgColor = lipgloss.AdaptiveColor{
- Dark: "#253025",
- Light: "#c8e6c9",
- }
- theme.DiffRemovedLineNumberBgColor = lipgloss.AdaptiveColor{
- Dark: "#302525",
- Light: "#ffcdd2",
- }
-
- // Markdown colors
- theme.MarkdownTextColor = lipgloss.AdaptiveColor{
- Dark: darkForeground,
- Light: lightForeground,
- }
- theme.MarkdownHeadingColor = lipgloss.AdaptiveColor{
- Dark: darkPink,
- Light: lightPink,
- }
- theme.MarkdownLinkColor = lipgloss.AdaptiveColor{
- Dark: darkPurple,
- Light: lightPurple,
- }
- theme.MarkdownLinkTextColor = lipgloss.AdaptiveColor{
- Dark: darkCyan,
- Light: lightCyan,
- }
- theme.MarkdownCodeColor = lipgloss.AdaptiveColor{
- Dark: darkGreen,
- Light: lightGreen,
- }
- theme.MarkdownBlockQuoteColor = lipgloss.AdaptiveColor{
- Dark: darkYellow,
- Light: lightYellow,
- }
- theme.MarkdownEmphColor = lipgloss.AdaptiveColor{
- Dark: darkYellow,
- Light: lightYellow,
- }
- theme.MarkdownStrongColor = lipgloss.AdaptiveColor{
- Dark: darkOrange,
- Light: lightOrange,
- }
- theme.MarkdownHorizontalRuleColor = lipgloss.AdaptiveColor{
- Dark: darkComment,
- Light: lightComment,
- }
- theme.MarkdownListItemColor = lipgloss.AdaptiveColor{
- Dark: darkPurple,
- Light: lightPurple,
- }
- theme.MarkdownListEnumerationColor = lipgloss.AdaptiveColor{
- Dark: darkCyan,
- Light: lightCyan,
- }
- theme.MarkdownImageColor = lipgloss.AdaptiveColor{
- Dark: darkPurple,
- Light: lightPurple,
- }
- theme.MarkdownImageTextColor = lipgloss.AdaptiveColor{
- Dark: darkCyan,
- Light: lightCyan,
- }
- theme.MarkdownCodeBlockColor = lipgloss.AdaptiveColor{
- Dark: darkForeground,
- Light: lightForeground,
- }
-
- // Syntax highlighting colors
- theme.SyntaxCommentColor = lipgloss.AdaptiveColor{
- Dark: darkComment,
- Light: lightComment,
- }
- theme.SyntaxKeywordColor = lipgloss.AdaptiveColor{
- Dark: darkPink,
- Light: lightPink,
- }
- theme.SyntaxFunctionColor = lipgloss.AdaptiveColor{
- Dark: darkGreen,
- Light: lightGreen,
- }
- theme.SyntaxVariableColor = lipgloss.AdaptiveColor{
- Dark: darkOrange,
- Light: lightOrange,
- }
- theme.SyntaxStringColor = lipgloss.AdaptiveColor{
- Dark: darkYellow,
- Light: lightYellow,
- }
- theme.SyntaxNumberColor = lipgloss.AdaptiveColor{
- Dark: darkPurple,
- Light: lightPurple,
- }
- theme.SyntaxTypeColor = lipgloss.AdaptiveColor{
- Dark: darkCyan,
- Light: lightCyan,
- }
- theme.SyntaxOperatorColor = lipgloss.AdaptiveColor{
- Dark: darkPink,
- Light: lightPink,
- }
- theme.SyntaxPunctuationColor = lipgloss.AdaptiveColor{
- Dark: darkForeground,
- Light: lightForeground,
- }
-
- return theme
-}
-
-func init() {
- // Register the Dracula theme with the theme manager
- RegisterTheme("dracula", NewDraculaTheme())
-}
diff --git a/packages/tui/internal/theme/flexoki.go b/packages/tui/internal/theme/flexoki.go
deleted file mode 100644
index ad5443869..000000000
--- a/packages/tui/internal/theme/flexoki.go
+++ /dev/null
@@ -1,278 +0,0 @@
-package theme
-
-import (
- "github.com/charmbracelet/lipgloss"
-)
-
-// Flexoki color palette constants
-const (
- // Base colors
- flexokiPaper = "#FFFCF0" // Paper (lightest)
- flexokiBase50 = "#F2F0E5" // bg-2 (light)
- flexokiBase100 = "#E6E4D9" // ui (light)
- flexokiBase150 = "#DAD8CE" // ui-2 (light)
- flexokiBase200 = "#CECDC3" // ui-3 (light)
- flexokiBase300 = "#B7B5AC" // tx-3 (light)
- flexokiBase500 = "#878580" // tx-2 (light)
- flexokiBase600 = "#6F6E69" // tx (light)
- flexokiBase700 = "#575653" // tx-3 (dark)
- flexokiBase800 = "#403E3C" // ui-3 (dark)
- flexokiBase850 = "#343331" // ui-2 (dark)
- flexokiBase900 = "#282726" // ui (dark)
- flexokiBase950 = "#1C1B1A" // bg-2 (dark)
- flexokiBlack = "#100F0F" // bg (darkest)
-
- // Accent colors - Light theme (600)
- flexokiRed600 = "#AF3029"
- flexokiOrange600 = "#BC5215"
- flexokiYellow600 = "#AD8301"
- flexokiGreen600 = "#66800B"
- flexokiCyan600 = "#24837B"
- flexokiBlue600 = "#205EA6"
- flexokiPurple600 = "#5E409D"
- flexokiMagenta600 = "#A02F6F"
-
- // Accent colors - Dark theme (400)
- flexokiRed400 = "#D14D41"
- flexokiOrange400 = "#DA702C"
- flexokiYellow400 = "#D0A215"
- flexokiGreen400 = "#879A39"
- flexokiCyan400 = "#3AA99F"
- flexokiBlue400 = "#4385BE"
- flexokiPurple400 = "#8B7EC8"
- flexokiMagenta400 = "#CE5D97"
-)
-
-// FlexokiTheme implements the Theme interface with Flexoki colors.
-// It provides both dark and light variants.
-type FlexokiTheme struct {
- BaseTheme
-}
-
-// NewFlexokiTheme creates a new instance of the Flexoki theme.
-func NewFlexokiTheme() *FlexokiTheme {
- theme := &FlexokiTheme{}
-
- // Base colors
- theme.PrimaryColor = lipgloss.AdaptiveColor{
- Dark: flexokiBlue400,
- Light: flexokiBlue600,
- }
- theme.SecondaryColor = lipgloss.AdaptiveColor{
- Dark: flexokiPurple400,
- Light: flexokiPurple600,
- }
- theme.AccentColor = lipgloss.AdaptiveColor{
- Dark: flexokiOrange400,
- Light: flexokiOrange600,
- }
-
- // Status colors
- theme.ErrorColor = lipgloss.AdaptiveColor{
- Dark: flexokiRed400,
- Light: flexokiRed600,
- }
- theme.WarningColor = lipgloss.AdaptiveColor{
- Dark: flexokiYellow400,
- Light: flexokiYellow600,
- }
- theme.SuccessColor = lipgloss.AdaptiveColor{
- Dark: flexokiGreen400,
- Light: flexokiGreen600,
- }
- theme.InfoColor = lipgloss.AdaptiveColor{
- Dark: flexokiCyan400,
- Light: flexokiCyan600,
- }
-
- // Text colors
- theme.TextColor = lipgloss.AdaptiveColor{
- Dark: flexokiBase300,
- Light: flexokiBase600,
- }
- theme.TextMutedColor = lipgloss.AdaptiveColor{
- Dark: flexokiBase700,
- Light: flexokiBase500,
- }
-
- // Background colors
- theme.BackgroundColor = lipgloss.AdaptiveColor{
- Dark: flexokiBlack,
- Light: flexokiPaper,
- }
- theme.BackgroundSubtleColor = lipgloss.AdaptiveColor{
- Dark: flexokiBase950,
- Light: flexokiBase50,
- }
- theme.BackgroundElementColor = lipgloss.AdaptiveColor{
- Dark: flexokiBase900,
- Light: flexokiBase100,
- }
-
- // Border colors
- theme.BorderColor = lipgloss.AdaptiveColor{
- Dark: flexokiBase900,
- Light: flexokiBase100,
- }
- theme.BorderActiveColor = lipgloss.AdaptiveColor{
- Dark: flexokiBlue400,
- Light: flexokiBlue600,
- }
- theme.BorderSubtleColor = lipgloss.AdaptiveColor{
- Dark: flexokiBase850,
- Light: flexokiBase150,
- }
-
- // Diff view colors
- theme.DiffAddedColor = lipgloss.AdaptiveColor{
- Dark: flexokiGreen400,
- Light: flexokiGreen600,
- }
- theme.DiffRemovedColor = lipgloss.AdaptiveColor{
- Dark: flexokiRed400,
- Light: flexokiRed600,
- }
- theme.DiffContextColor = lipgloss.AdaptiveColor{
- Dark: flexokiBase700,
- Light: flexokiBase500,
- }
- theme.DiffHunkHeaderColor = lipgloss.AdaptiveColor{
- Dark: flexokiBase700,
- Light: flexokiBase500,
- }
- theme.DiffHighlightAddedColor = lipgloss.AdaptiveColor{
- Dark: flexokiGreen400,
- Light: flexokiGreen600,
- }
- theme.DiffHighlightRemovedColor = lipgloss.AdaptiveColor{
- Dark: flexokiRed400,
- Light: flexokiRed600,
- }
- theme.DiffAddedBgColor = lipgloss.AdaptiveColor{
- Dark: "#1D2419", // Darker green background
- Light: "#EFF2E2", // Light green background
- }
- theme.DiffRemovedBgColor = lipgloss.AdaptiveColor{
- Dark: "#241919", // Darker red background
- Light: "#F2E2E2", // Light red background
- }
- theme.DiffContextBgColor = lipgloss.AdaptiveColor{
- Dark: flexokiBlack,
- Light: flexokiPaper,
- }
- theme.DiffLineNumberColor = lipgloss.AdaptiveColor{
- Dark: flexokiBase700,
- Light: flexokiBase500,
- }
- theme.DiffAddedLineNumberBgColor = lipgloss.AdaptiveColor{
- Dark: "#1A2017", // Slightly darker green
- Light: "#E5EBD9", // Light green
- }
- theme.DiffRemovedLineNumberBgColor = lipgloss.AdaptiveColor{
- Dark: "#201717", // Slightly darker red
- Light: "#EBD9D9", // Light red
- }
-
- // Markdown colors
- theme.MarkdownTextColor = lipgloss.AdaptiveColor{
- Dark: flexokiBase300,
- Light: flexokiBase600,
- }
- theme.MarkdownHeadingColor = lipgloss.AdaptiveColor{
- Dark: flexokiYellow400,
- Light: flexokiYellow600,
- }
- theme.MarkdownLinkColor = lipgloss.AdaptiveColor{
- Dark: flexokiCyan400,
- Light: flexokiCyan600,
- }
- theme.MarkdownLinkTextColor = lipgloss.AdaptiveColor{
- Dark: flexokiMagenta400,
- Light: flexokiMagenta600,
- }
- theme.MarkdownCodeColor = lipgloss.AdaptiveColor{
- Dark: flexokiGreen400,
- Light: flexokiGreen600,
- }
- theme.MarkdownBlockQuoteColor = lipgloss.AdaptiveColor{
- Dark: flexokiCyan400,
- Light: flexokiCyan600,
- }
- theme.MarkdownEmphColor = lipgloss.AdaptiveColor{
- Dark: flexokiYellow400,
- Light: flexokiYellow600,
- }
- theme.MarkdownStrongColor = lipgloss.AdaptiveColor{
- Dark: flexokiOrange400,
- Light: flexokiOrange600,
- }
- theme.MarkdownHorizontalRuleColor = lipgloss.AdaptiveColor{
- Dark: flexokiBase800,
- Light: flexokiBase200,
- }
- theme.MarkdownListItemColor = lipgloss.AdaptiveColor{
- Dark: flexokiBlue400,
- Light: flexokiBlue600,
- }
- theme.MarkdownListEnumerationColor = lipgloss.AdaptiveColor{
- Dark: flexokiBlue400,
- Light: flexokiBlue600,
- }
- theme.MarkdownImageColor = lipgloss.AdaptiveColor{
- Dark: flexokiPurple400,
- Light: flexokiPurple600,
- }
- theme.MarkdownImageTextColor = lipgloss.AdaptiveColor{
- Dark: flexokiMagenta400,
- Light: flexokiMagenta600,
- }
- theme.MarkdownCodeBlockColor = lipgloss.AdaptiveColor{
- Dark: flexokiBase300,
- Light: flexokiBase600,
- }
-
- // Syntax highlighting colors (based on Flexoki's mappings)
- theme.SyntaxCommentColor = lipgloss.AdaptiveColor{
- Dark: flexokiBase700, // tx-3
- Light: flexokiBase300, // tx-3
- }
- theme.SyntaxKeywordColor = lipgloss.AdaptiveColor{
- Dark: flexokiGreen400, // gr
- Light: flexokiGreen600, // gr
- }
- theme.SyntaxFunctionColor = lipgloss.AdaptiveColor{
- Dark: flexokiOrange400, // or
- Light: flexokiOrange600, // or
- }
- theme.SyntaxVariableColor = lipgloss.AdaptiveColor{
- Dark: flexokiBlue400, // bl
- Light: flexokiBlue600, // bl
- }
- theme.SyntaxStringColor = lipgloss.AdaptiveColor{
- Dark: flexokiCyan400, // cy
- Light: flexokiCyan600, // cy
- }
- theme.SyntaxNumberColor = lipgloss.AdaptiveColor{
- Dark: flexokiPurple400, // pu
- Light: flexokiPurple600, // pu
- }
- theme.SyntaxTypeColor = lipgloss.AdaptiveColor{
- Dark: flexokiYellow400, // ye
- Light: flexokiYellow600, // ye
- }
- theme.SyntaxOperatorColor = lipgloss.AdaptiveColor{
- Dark: flexokiBase500, // tx-2
- Light: flexokiBase500, // tx-2
- }
- theme.SyntaxPunctuationColor = lipgloss.AdaptiveColor{
- Dark: flexokiBase500, // tx-2
- Light: flexokiBase500, // tx-2
- }
-
- return theme
-}
-
-func init() {
- // Register the Flexoki theme with the theme manager
- RegisterTheme("flexoki", NewFlexokiTheme())
-}
diff --git a/packages/tui/internal/theme/gruvbox.go b/packages/tui/internal/theme/gruvbox.go
deleted file mode 100644
index da9aab50e..000000000
--- a/packages/tui/internal/theme/gruvbox.go
+++ /dev/null
@@ -1,298 +0,0 @@
-package theme
-
-import (
- "github.com/charmbracelet/lipgloss"
-)
-
-// Gruvbox color palette constants
-const (
- // Dark theme colors
- gruvboxDarkBg0 = "#282828"
- gruvboxDarkBg0Soft = "#32302f"
- gruvboxDarkBg1 = "#3c3836"
- gruvboxDarkBg2 = "#504945"
- gruvboxDarkBg3 = "#665c54"
- gruvboxDarkBg4 = "#7c6f64"
- gruvboxDarkFg0 = "#fbf1c7"
- gruvboxDarkFg1 = "#ebdbb2"
- gruvboxDarkFg2 = "#d5c4a1"
- gruvboxDarkFg3 = "#bdae93"
- gruvboxDarkFg4 = "#a89984"
- gruvboxDarkGray = "#928374"
- gruvboxDarkRed = "#cc241d"
- gruvboxDarkRedBright = "#fb4934"
- gruvboxDarkGreen = "#98971a"
- gruvboxDarkGreenBright = "#b8bb26"
- gruvboxDarkYellow = "#d79921"
- gruvboxDarkYellowBright = "#fabd2f"
- gruvboxDarkBlue = "#458588"
- gruvboxDarkBlueBright = "#83a598"
- gruvboxDarkPurple = "#b16286"
- gruvboxDarkPurpleBright = "#d3869b"
- gruvboxDarkAqua = "#689d6a"
- gruvboxDarkAquaBright = "#8ec07c"
- gruvboxDarkOrange = "#d65d0e"
- gruvboxDarkOrangeBright = "#fe8019"
-
- // Light theme colors
- gruvboxLightBg0 = "#fbf1c7"
- gruvboxLightBg0Soft = "#f2e5bc"
- gruvboxLightBg1 = "#ebdbb2"
- gruvboxLightBg2 = "#d5c4a1"
- gruvboxLightBg3 = "#bdae93"
- gruvboxLightBg4 = "#a89984"
- gruvboxLightFg0 = "#282828"
- gruvboxLightFg1 = "#3c3836"
- gruvboxLightFg2 = "#504945"
- gruvboxLightFg3 = "#665c54"
- gruvboxLightFg4 = "#7c6f64"
- gruvboxLightGray = "#928374"
- gruvboxLightRed = "#9d0006"
- gruvboxLightRedBright = "#cc241d"
- gruvboxLightGreen = "#79740e"
- gruvboxLightGreenBright = "#98971a"
- gruvboxLightYellow = "#b57614"
- gruvboxLightYellowBright = "#d79921"
- gruvboxLightBlue = "#076678"
- gruvboxLightBlueBright = "#458588"
- gruvboxLightPurple = "#8f3f71"
- gruvboxLightPurpleBright = "#b16286"
- gruvboxLightAqua = "#427b58"
- gruvboxLightAquaBright = "#689d6a"
- gruvboxLightOrange = "#af3a03"
- gruvboxLightOrangeBright = "#d65d0e"
-)
-
-// GruvboxTheme implements the Theme interface with Gruvbox colors.
-// It provides both dark and light variants.
-type GruvboxTheme struct {
- BaseTheme
-}
-
-// NewGruvboxTheme creates a new instance of the Gruvbox theme.
-func NewGruvboxTheme() *GruvboxTheme {
- theme := &GruvboxTheme{}
-
- // Base colors
- theme.PrimaryColor = lipgloss.AdaptiveColor{
- Dark: gruvboxDarkBlueBright,
- Light: gruvboxLightBlueBright,
- }
- theme.SecondaryColor = lipgloss.AdaptiveColor{
- Dark: gruvboxDarkPurpleBright,
- Light: gruvboxLightPurpleBright,
- }
- theme.AccentColor = lipgloss.AdaptiveColor{
- Dark: gruvboxDarkOrangeBright,
- Light: gruvboxLightOrangeBright,
- }
-
- // Status colors
- theme.ErrorColor = lipgloss.AdaptiveColor{
- Dark: gruvboxDarkRedBright,
- Light: gruvboxLightRedBright,
- }
- theme.WarningColor = lipgloss.AdaptiveColor{
- Dark: gruvboxDarkYellowBright,
- Light: gruvboxLightYellowBright,
- }
- theme.SuccessColor = lipgloss.AdaptiveColor{
- Dark: gruvboxDarkGreenBright,
- Light: gruvboxLightGreenBright,
- }
- theme.InfoColor = lipgloss.AdaptiveColor{
- Dark: gruvboxDarkBlueBright,
- Light: gruvboxLightBlueBright,
- }
-
- // Text colors
- theme.TextColor = lipgloss.AdaptiveColor{
- Dark: gruvboxDarkFg1,
- Light: gruvboxLightFg1,
- }
- theme.TextMutedColor = lipgloss.AdaptiveColor{
- Dark: gruvboxDarkFg4,
- Light: gruvboxLightFg4,
- }
-
- // Background colors
- theme.BackgroundColor = lipgloss.AdaptiveColor{
- Dark: gruvboxDarkBg0,
- Light: gruvboxLightBg0,
- }
- theme.BackgroundSubtleColor = lipgloss.AdaptiveColor{
- Dark: gruvboxDarkBg1,
- Light: gruvboxLightBg1,
- }
- theme.BackgroundElementColor = lipgloss.AdaptiveColor{
- Dark: gruvboxDarkBg0Soft,
- Light: gruvboxLightBg0Soft,
- }
-
- // Border colors
- theme.BorderColor = lipgloss.AdaptiveColor{
- Dark: gruvboxDarkBg2,
- Light: gruvboxLightBg2,
- }
- theme.BorderActiveColor = lipgloss.AdaptiveColor{
- Dark: gruvboxDarkBlueBright,
- Light: gruvboxLightBlueBright,
- }
- theme.BorderSubtleColor = lipgloss.AdaptiveColor{
- Dark: gruvboxDarkBg1,
- Light: gruvboxLightBg1,
- }
-
- // Diff view colors
- theme.DiffAddedColor = lipgloss.AdaptiveColor{
- Dark: gruvboxDarkGreenBright,
- Light: gruvboxLightGreenBright,
- }
- theme.DiffRemovedColor = lipgloss.AdaptiveColor{
- Dark: gruvboxDarkRedBright,
- Light: gruvboxLightRedBright,
- }
- theme.DiffContextColor = lipgloss.AdaptiveColor{
- Dark: gruvboxDarkFg4,
- Light: gruvboxLightFg4,
- }
- theme.DiffHunkHeaderColor = lipgloss.AdaptiveColor{
- Dark: gruvboxDarkFg3,
- Light: gruvboxLightFg3,
- }
- theme.DiffHighlightAddedColor = lipgloss.AdaptiveColor{
- Dark: gruvboxDarkGreenBright,
- Light: gruvboxLightGreenBright,
- }
- theme.DiffHighlightRemovedColor = lipgloss.AdaptiveColor{
- Dark: gruvboxDarkRedBright,
- Light: gruvboxLightRedBright,
- }
- theme.DiffAddedBgColor = lipgloss.AdaptiveColor{
- Dark: "#3C4C3C", // Darker green background
- Light: "#E8F5E9", // Light green background
- }
- theme.DiffRemovedBgColor = lipgloss.AdaptiveColor{
- Dark: "#4C3C3C", // Darker red background
- Light: "#FFEBEE", // Light red background
- }
- theme.DiffContextBgColor = lipgloss.AdaptiveColor{
- Dark: gruvboxDarkBg0,
- Light: gruvboxLightBg0,
- }
- theme.DiffLineNumberColor = lipgloss.AdaptiveColor{
- Dark: gruvboxDarkFg4,
- Light: gruvboxLightFg4,
- }
- theme.DiffAddedLineNumberBgColor = lipgloss.AdaptiveColor{
- Dark: "#32432F", // Slightly darker green
- Light: "#C8E6C9", // Light green
- }
- theme.DiffRemovedLineNumberBgColor = lipgloss.AdaptiveColor{
- Dark: "#43322F", // Slightly darker red
- Light: "#FFCDD2", // Light red
- }
-
- // Markdown colors
- theme.MarkdownTextColor = lipgloss.AdaptiveColor{
- Dark: gruvboxDarkFg1,
- Light: gruvboxLightFg1,
- }
- theme.MarkdownHeadingColor = lipgloss.AdaptiveColor{
- Dark: gruvboxDarkYellowBright,
- Light: gruvboxLightYellowBright,
- }
- theme.MarkdownLinkColor = lipgloss.AdaptiveColor{
- Dark: gruvboxDarkBlueBright,
- Light: gruvboxLightBlueBright,
- }
- theme.MarkdownLinkTextColor = lipgloss.AdaptiveColor{
- Dark: gruvboxDarkAquaBright,
- Light: gruvboxLightAquaBright,
- }
- theme.MarkdownCodeColor = lipgloss.AdaptiveColor{
- Dark: gruvboxDarkGreenBright,
- Light: gruvboxLightGreenBright,
- }
- theme.MarkdownBlockQuoteColor = lipgloss.AdaptiveColor{
- Dark: gruvboxDarkAquaBright,
- Light: gruvboxLightAquaBright,
- }
- theme.MarkdownEmphColor = lipgloss.AdaptiveColor{
- Dark: gruvboxDarkYellowBright,
- Light: gruvboxLightYellowBright,
- }
- theme.MarkdownStrongColor = lipgloss.AdaptiveColor{
- Dark: gruvboxDarkOrangeBright,
- Light: gruvboxLightOrangeBright,
- }
- theme.MarkdownHorizontalRuleColor = lipgloss.AdaptiveColor{
- Dark: gruvboxDarkBg3,
- Light: gruvboxLightBg3,
- }
- theme.MarkdownListItemColor = lipgloss.AdaptiveColor{
- Dark: gruvboxDarkBlueBright,
- Light: gruvboxLightBlueBright,
- }
- theme.MarkdownListEnumerationColor = lipgloss.AdaptiveColor{
- Dark: gruvboxDarkBlueBright,
- Light: gruvboxLightBlueBright,
- }
- theme.MarkdownImageColor = lipgloss.AdaptiveColor{
- Dark: gruvboxDarkPurpleBright,
- Light: gruvboxLightPurpleBright,
- }
- theme.MarkdownImageTextColor = lipgloss.AdaptiveColor{
- Dark: gruvboxDarkAquaBright,
- Light: gruvboxLightAquaBright,
- }
- theme.MarkdownCodeBlockColor = lipgloss.AdaptiveColor{
- Dark: gruvboxDarkFg1,
- Light: gruvboxLightFg1,
- }
-
- // Syntax highlighting colors
- theme.SyntaxCommentColor = lipgloss.AdaptiveColor{
- Dark: gruvboxDarkGray,
- Light: gruvboxLightGray,
- }
- theme.SyntaxKeywordColor = lipgloss.AdaptiveColor{
- Dark: gruvboxDarkRedBright,
- Light: gruvboxLightRedBright,
- }
- theme.SyntaxFunctionColor = lipgloss.AdaptiveColor{
- Dark: gruvboxDarkGreenBright,
- Light: gruvboxLightGreenBright,
- }
- theme.SyntaxVariableColor = lipgloss.AdaptiveColor{
- Dark: gruvboxDarkBlueBright,
- Light: gruvboxLightBlueBright,
- }
- theme.SyntaxStringColor = lipgloss.AdaptiveColor{
- Dark: gruvboxDarkYellowBright,
- Light: gruvboxLightYellowBright,
- }
- theme.SyntaxNumberColor = lipgloss.AdaptiveColor{
- Dark: gruvboxDarkPurpleBright,
- Light: gruvboxLightPurpleBright,
- }
- theme.SyntaxTypeColor = lipgloss.AdaptiveColor{
- Dark: gruvboxDarkYellow,
- Light: gruvboxLightYellow,
- }
- theme.SyntaxOperatorColor = lipgloss.AdaptiveColor{
- Dark: gruvboxDarkAquaBright,
- Light: gruvboxLightAquaBright,
- }
- theme.SyntaxPunctuationColor = lipgloss.AdaptiveColor{
- Dark: gruvboxDarkFg1,
- Light: gruvboxLightFg1,
- }
-
- return theme
-}
-
-func init() {
- // Register the Gruvbox theme with the theme manager
- RegisterTheme("gruvbox", NewGruvboxTheme())
-}
diff --git a/packages/tui/internal/theme/manager.go b/packages/tui/internal/theme/manager.go
index 020e3e193..3e351f7f1 100644
--- a/packages/tui/internal/theme/manager.go
+++ b/packages/tui/internal/theme/manager.go
@@ -6,8 +6,7 @@ import (
"slices"
"strings"
"sync"
-
- "github.com/alecthomas/chroma/v2/styles"
+ // "github.com/alecthomas/chroma/v2/styles"
)
// Manager handles theme registration, selection, and retrieval.
@@ -46,7 +45,7 @@ func RegisterTheme(name string, theme Theme) {
func SetTheme(name string) error {
globalManager.mu.Lock()
defer globalManager.mu.Unlock()
- delete(styles.Registry, "charm")
+ // delete(styles.Registry, "charm")
// Handle custom theme
// if name == "custom" {
diff --git a/packages/tui/internal/theme/monokai.go b/packages/tui/internal/theme/monokai.go
deleted file mode 100644
index 71234d025..000000000
--- a/packages/tui/internal/theme/monokai.go
+++ /dev/null
@@ -1,269 +0,0 @@
-package theme
-
-import (
- "github.com/charmbracelet/lipgloss"
-)
-
-// MonokaiProTheme implements the Theme interface with Monokai Pro colors.
-// It provides both dark and light variants.
-type MonokaiProTheme struct {
- BaseTheme
-}
-
-// NewMonokaiProTheme creates a new instance of the Monokai Pro theme.
-func NewMonokaiProTheme() *MonokaiProTheme {
- // Monokai Pro color palette (dark mode)
- darkBackground := "#2d2a2e"
- darkCurrentLine := "#403e41"
- darkSelection := "#5b595c"
- darkForeground := "#fcfcfa"
- darkComment := "#727072"
- darkRed := "#ff6188"
- darkOrange := "#fc9867"
- darkYellow := "#ffd866"
- darkGreen := "#a9dc76"
- darkCyan := "#78dce8"
- darkBlue := "#ab9df2"
- darkPurple := "#ab9df2"
- darkBorder := "#403e41"
-
- // Light mode colors (adapted from dark)
- lightBackground := "#fafafa"
- lightCurrentLine := "#f0f0f0"
- lightSelection := "#e5e5e6"
- lightForeground := "#2d2a2e"
- lightComment := "#939293"
- lightRed := "#f92672"
- lightOrange := "#fd971f"
- lightYellow := "#e6db74"
- lightGreen := "#9bca65"
- lightCyan := "#66d9ef"
- lightBlue := "#7e75db"
- lightPurple := "#ae81ff"
- lightBorder := "#d3d3d3"
-
- theme := &MonokaiProTheme{}
-
- // Base colors
- theme.PrimaryColor = lipgloss.AdaptiveColor{
- Dark: darkCyan,
- Light: lightCyan,
- }
- theme.SecondaryColor = lipgloss.AdaptiveColor{
- Dark: darkPurple,
- Light: lightPurple,
- }
- theme.AccentColor = lipgloss.AdaptiveColor{
- Dark: darkOrange,
- Light: lightOrange,
- }
-
- // Status colors
- theme.ErrorColor = lipgloss.AdaptiveColor{
- Dark: darkRed,
- Light: lightRed,
- }
- theme.WarningColor = lipgloss.AdaptiveColor{
- Dark: darkOrange,
- Light: lightOrange,
- }
- theme.SuccessColor = lipgloss.AdaptiveColor{
- Dark: darkGreen,
- Light: lightGreen,
- }
- theme.InfoColor = lipgloss.AdaptiveColor{
- Dark: darkBlue,
- Light: lightBlue,
- }
-
- // Text colors
- theme.TextColor = lipgloss.AdaptiveColor{
- Dark: darkForeground,
- Light: lightForeground,
- }
- theme.TextMutedColor = lipgloss.AdaptiveColor{
- Dark: darkComment,
- Light: lightComment,
- }
-
- // Background colors
- theme.BackgroundColor = lipgloss.AdaptiveColor{
- Dark: darkBackground,
- Light: lightBackground,
- }
- theme.BackgroundSubtleColor = lipgloss.AdaptiveColor{
- Dark: darkCurrentLine,
- Light: lightCurrentLine,
- }
- theme.BackgroundElementColor = lipgloss.AdaptiveColor{
- Dark: "#221f22", // Slightly darker than background
- Light: "#ffffff", // Slightly lighter than background
- }
-
- // Border colors
- theme.BorderColor = lipgloss.AdaptiveColor{
- Dark: darkBorder,
- Light: lightBorder,
- }
- theme.BorderActiveColor = lipgloss.AdaptiveColor{
- Dark: darkCyan,
- Light: lightCyan,
- }
- theme.BorderSubtleColor = lipgloss.AdaptiveColor{
- Dark: darkSelection,
- Light: lightSelection,
- }
-
- // Diff view colors
- theme.DiffAddedColor = lipgloss.AdaptiveColor{
- Dark: "#a9dc76",
- Light: "#9bca65",
- }
- theme.DiffRemovedColor = lipgloss.AdaptiveColor{
- Dark: "#ff6188",
- Light: "#f92672",
- }
- theme.DiffContextColor = lipgloss.AdaptiveColor{
- Dark: "#a0a0a0",
- Light: "#757575",
- }
- theme.DiffHunkHeaderColor = lipgloss.AdaptiveColor{
- Dark: "#a0a0a0",
- Light: "#757575",
- }
- theme.DiffHighlightAddedColor = lipgloss.AdaptiveColor{
- Dark: "#c2e7a9",
- Light: "#c5e0b4",
- }
- theme.DiffHighlightRemovedColor = lipgloss.AdaptiveColor{
- Dark: "#ff8ca6",
- Light: "#ffb3c8",
- }
- theme.DiffAddedBgColor = lipgloss.AdaptiveColor{
- Dark: "#3a4a35",
- Light: "#e8f5e9",
- }
- theme.DiffRemovedBgColor = lipgloss.AdaptiveColor{
- Dark: "#4a3439",
- Light: "#ffebee",
- }
- theme.DiffContextBgColor = lipgloss.AdaptiveColor{
- Dark: darkBackground,
- Light: lightBackground,
- }
- theme.DiffLineNumberColor = lipgloss.AdaptiveColor{
- Dark: "#888888",
- Light: "#9e9e9e",
- }
- theme.DiffAddedLineNumberBgColor = lipgloss.AdaptiveColor{
- Dark: "#2d3a28",
- Light: "#c8e6c9",
- }
- theme.DiffRemovedLineNumberBgColor = lipgloss.AdaptiveColor{
- Dark: "#3d2a2e",
- Light: "#ffcdd2",
- }
-
- // Markdown colors
- theme.MarkdownTextColor = lipgloss.AdaptiveColor{
- Dark: darkForeground,
- Light: lightForeground,
- }
- theme.MarkdownHeadingColor = lipgloss.AdaptiveColor{
- Dark: darkPurple,
- Light: lightPurple,
- }
- theme.MarkdownLinkColor = lipgloss.AdaptiveColor{
- Dark: darkCyan,
- Light: lightCyan,
- }
- theme.MarkdownLinkTextColor = lipgloss.AdaptiveColor{
- Dark: darkBlue,
- Light: lightBlue,
- }
- theme.MarkdownCodeColor = lipgloss.AdaptiveColor{
- Dark: darkGreen,
- Light: lightGreen,
- }
- theme.MarkdownBlockQuoteColor = lipgloss.AdaptiveColor{
- Dark: darkYellow,
- Light: lightYellow,
- }
- theme.MarkdownEmphColor = lipgloss.AdaptiveColor{
- Dark: darkYellow,
- Light: lightYellow,
- }
- theme.MarkdownStrongColor = lipgloss.AdaptiveColor{
- Dark: darkOrange,
- Light: lightOrange,
- }
- theme.MarkdownHorizontalRuleColor = lipgloss.AdaptiveColor{
- Dark: darkComment,
- Light: lightComment,
- }
- theme.MarkdownListItemColor = lipgloss.AdaptiveColor{
- Dark: darkCyan,
- Light: lightCyan,
- }
- theme.MarkdownListEnumerationColor = lipgloss.AdaptiveColor{
- Dark: darkBlue,
- Light: lightBlue,
- }
- theme.MarkdownImageColor = lipgloss.AdaptiveColor{
- Dark: darkCyan,
- Light: lightCyan,
- }
- theme.MarkdownImageTextColor = lipgloss.AdaptiveColor{
- Dark: darkBlue,
- Light: lightBlue,
- }
- theme.MarkdownCodeBlockColor = lipgloss.AdaptiveColor{
- Dark: darkForeground,
- Light: lightForeground,
- }
-
- // Syntax highlighting colors
- theme.SyntaxCommentColor = lipgloss.AdaptiveColor{
- Dark: darkComment,
- Light: lightComment,
- }
- theme.SyntaxKeywordColor = lipgloss.AdaptiveColor{
- Dark: darkRed,
- Light: lightRed,
- }
- theme.SyntaxFunctionColor = lipgloss.AdaptiveColor{
- Dark: darkGreen,
- Light: lightGreen,
- }
- theme.SyntaxVariableColor = lipgloss.AdaptiveColor{
- Dark: darkForeground,
- Light: lightForeground,
- }
- theme.SyntaxStringColor = lipgloss.AdaptiveColor{
- Dark: darkYellow,
- Light: lightYellow,
- }
- theme.SyntaxNumberColor = lipgloss.AdaptiveColor{
- Dark: darkPurple,
- Light: lightPurple,
- }
- theme.SyntaxTypeColor = lipgloss.AdaptiveColor{
- Dark: darkBlue,
- Light: lightBlue,
- }
- theme.SyntaxOperatorColor = lipgloss.AdaptiveColor{
- Dark: darkCyan,
- Light: lightCyan,
- }
- theme.SyntaxPunctuationColor = lipgloss.AdaptiveColor{
- Dark: darkForeground,
- Light: lightForeground,
- }
-
- return theme
-}
-
-func init() {
- // Register the Monokai Pro theme with the theme manager
- RegisterTheme("monokai", NewMonokaiProTheme())
-}
diff --git a/packages/tui/internal/theme/onedark.go b/packages/tui/internal/theme/onedark.go
deleted file mode 100644
index 21953c10d..000000000
--- a/packages/tui/internal/theme/onedark.go
+++ /dev/null
@@ -1,270 +0,0 @@
-package theme
-
-import (
- "github.com/charmbracelet/lipgloss"
-)
-
-// OneDarkTheme implements the Theme interface with Atom's One Dark colors.
-// It provides both dark and light variants.
-type OneDarkTheme struct {
- BaseTheme
-}
-
-// NewOneDarkTheme creates a new instance of the One Dark theme.
-func NewOneDarkTheme() *OneDarkTheme {
- // One Dark color palette
- // Dark mode colors from Atom One Dark
- darkBackground := "#282c34"
- darkCurrentLine := "#2c313c"
- darkSelection := "#3e4451"
- darkForeground := "#abb2bf"
- darkComment := "#5c6370"
- darkRed := "#e06c75"
- darkOrange := "#d19a66"
- darkYellow := "#e5c07b"
- darkGreen := "#98c379"
- darkCyan := "#56b6c2"
- darkBlue := "#61afef"
- darkPurple := "#c678dd"
- darkBorder := "#3b4048"
-
- // Light mode colors from Atom One Light
- lightBackground := "#fafafa"
- lightCurrentLine := "#f0f0f0"
- lightSelection := "#e5e5e6"
- lightForeground := "#383a42"
- lightComment := "#a0a1a7"
- lightRed := "#e45649"
- lightOrange := "#da8548"
- lightYellow := "#c18401"
- lightGreen := "#50a14f"
- lightCyan := "#0184bc"
- lightBlue := "#4078f2"
- lightPurple := "#a626a4"
- lightBorder := "#d3d3d3"
-
- theme := &OneDarkTheme{}
-
- // Base colors
- theme.PrimaryColor = lipgloss.AdaptiveColor{
- Dark: darkBlue,
- Light: lightBlue,
- }
- theme.SecondaryColor = lipgloss.AdaptiveColor{
- Dark: darkPurple,
- Light: lightPurple,
- }
- theme.AccentColor = lipgloss.AdaptiveColor{
- Dark: darkOrange,
- Light: lightOrange,
- }
-
- // Status colors
- theme.ErrorColor = lipgloss.AdaptiveColor{
- Dark: darkRed,
- Light: lightRed,
- }
- theme.WarningColor = lipgloss.AdaptiveColor{
- Dark: darkOrange,
- Light: lightOrange,
- }
- theme.SuccessColor = lipgloss.AdaptiveColor{
- Dark: darkGreen,
- Light: lightGreen,
- }
- theme.InfoColor = lipgloss.AdaptiveColor{
- Dark: darkBlue,
- Light: lightBlue,
- }
-
- // Text colors
- theme.TextColor = lipgloss.AdaptiveColor{
- Dark: darkForeground,
- Light: lightForeground,
- }
- theme.TextMutedColor = lipgloss.AdaptiveColor{
- Dark: darkComment,
- Light: lightComment,
- }
-
- // Background colors
- theme.BackgroundColor = lipgloss.AdaptiveColor{
- Dark: darkBackground,
- Light: lightBackground,
- }
- theme.BackgroundSubtleColor = lipgloss.AdaptiveColor{
- Dark: darkCurrentLine,
- Light: lightCurrentLine,
- }
- theme.BackgroundElementColor = lipgloss.AdaptiveColor{
- Dark: "#21252b", // Slightly darker than background
- Light: "#ffffff", // Slightly lighter than background
- }
-
- // Border colors
- theme.BorderColor = lipgloss.AdaptiveColor{
- Dark: darkBorder,
- Light: lightBorder,
- }
- theme.BorderActiveColor = lipgloss.AdaptiveColor{
- Dark: darkBlue,
- Light: lightBlue,
- }
- theme.BorderSubtleColor = lipgloss.AdaptiveColor{
- Dark: darkSelection,
- Light: lightSelection,
- }
-
- // Diff view colors
- theme.DiffAddedColor = lipgloss.AdaptiveColor{
- Dark: "#478247",
- Light: "#2E7D32",
- }
- theme.DiffRemovedColor = lipgloss.AdaptiveColor{
- Dark: "#7C4444",
- Light: "#C62828",
- }
- theme.DiffContextColor = lipgloss.AdaptiveColor{
- Dark: "#a0a0a0",
- Light: "#757575",
- }
- theme.DiffHunkHeaderColor = lipgloss.AdaptiveColor{
- Dark: "#a0a0a0",
- Light: "#757575",
- }
- theme.DiffHighlightAddedColor = lipgloss.AdaptiveColor{
- Dark: "#DAFADA",
- Light: "#A5D6A7",
- }
- theme.DiffHighlightRemovedColor = lipgloss.AdaptiveColor{
- Dark: "#FADADD",
- Light: "#EF9A9A",
- }
- theme.DiffAddedBgColor = lipgloss.AdaptiveColor{
- Dark: "#303A30",
- Light: "#E8F5E9",
- }
- theme.DiffRemovedBgColor = lipgloss.AdaptiveColor{
- Dark: "#3A3030",
- Light: "#FFEBEE",
- }
- theme.DiffContextBgColor = lipgloss.AdaptiveColor{
- Dark: darkBackground,
- Light: lightBackground,
- }
- theme.DiffLineNumberColor = lipgloss.AdaptiveColor{
- Dark: "#888888",
- Light: "#9E9E9E",
- }
- theme.DiffAddedLineNumberBgColor = lipgloss.AdaptiveColor{
- Dark: "#293229",
- Light: "#C8E6C9",
- }
- theme.DiffRemovedLineNumberBgColor = lipgloss.AdaptiveColor{
- Dark: "#332929",
- Light: "#FFCDD2",
- }
-
- // Markdown colors
- theme.MarkdownTextColor = lipgloss.AdaptiveColor{
- Dark: darkForeground,
- Light: lightForeground,
- }
- theme.MarkdownHeadingColor = lipgloss.AdaptiveColor{
- Dark: darkPurple,
- Light: lightPurple,
- }
- theme.MarkdownLinkColor = lipgloss.AdaptiveColor{
- Dark: darkBlue,
- Light: lightBlue,
- }
- theme.MarkdownLinkTextColor = lipgloss.AdaptiveColor{
- Dark: darkCyan,
- Light: lightCyan,
- }
- theme.MarkdownCodeColor = lipgloss.AdaptiveColor{
- Dark: darkGreen,
- Light: lightGreen,
- }
- theme.MarkdownBlockQuoteColor = lipgloss.AdaptiveColor{
- Dark: darkYellow,
- Light: lightYellow,
- }
- theme.MarkdownEmphColor = lipgloss.AdaptiveColor{
- Dark: darkYellow,
- Light: lightYellow,
- }
- theme.MarkdownStrongColor = lipgloss.AdaptiveColor{
- Dark: darkOrange,
- Light: lightOrange,
- }
- theme.MarkdownHorizontalRuleColor = lipgloss.AdaptiveColor{
- Dark: darkComment,
- Light: lightComment,
- }
- theme.MarkdownListItemColor = lipgloss.AdaptiveColor{
- Dark: darkBlue,
- Light: lightBlue,
- }
- theme.MarkdownListEnumerationColor = lipgloss.AdaptiveColor{
- Dark: darkCyan,
- Light: lightCyan,
- }
- theme.MarkdownImageColor = lipgloss.AdaptiveColor{
- Dark: darkBlue,
- Light: lightBlue,
- }
- theme.MarkdownImageTextColor = lipgloss.AdaptiveColor{
- Dark: darkCyan,
- Light: lightCyan,
- }
- theme.MarkdownCodeBlockColor = lipgloss.AdaptiveColor{
- Dark: darkForeground,
- Light: lightForeground,
- }
-
- // Syntax highlighting colors
- theme.SyntaxCommentColor = lipgloss.AdaptiveColor{
- Dark: darkComment,
- Light: lightComment,
- }
- theme.SyntaxKeywordColor = lipgloss.AdaptiveColor{
- Dark: darkPurple,
- Light: lightPurple,
- }
- theme.SyntaxFunctionColor = lipgloss.AdaptiveColor{
- Dark: darkBlue,
- Light: lightBlue,
- }
- theme.SyntaxVariableColor = lipgloss.AdaptiveColor{
- Dark: darkRed,
- Light: lightRed,
- }
- theme.SyntaxStringColor = lipgloss.AdaptiveColor{
- Dark: darkGreen,
- Light: lightGreen,
- }
- theme.SyntaxNumberColor = lipgloss.AdaptiveColor{
- Dark: darkOrange,
- Light: lightOrange,
- }
- theme.SyntaxTypeColor = lipgloss.AdaptiveColor{
- Dark: darkYellow,
- Light: lightYellow,
- }
- theme.SyntaxOperatorColor = lipgloss.AdaptiveColor{
- Dark: darkCyan,
- Light: lightCyan,
- }
- theme.SyntaxPunctuationColor = lipgloss.AdaptiveColor{
- Dark: darkForeground,
- Light: lightForeground,
- }
-
- return theme
-}
-
-func init() {
- // Register the One Dark theme with the theme manager
- RegisterTheme("onedark", NewOneDarkTheme())
-}
diff --git a/packages/tui/internal/theme/opencode.go b/packages/tui/internal/theme/opencode.go
index 4de88ae4e..8f188be3c 100644
--- a/packages/tui/internal/theme/opencode.go
+++ b/packages/tui/internal/theme/opencode.go
@@ -1,7 +1,8 @@
package theme
import (
- "github.com/charmbracelet/lipgloss"
+ "github.com/charmbracelet/lipgloss/v2"
+ "github.com/charmbracelet/lipgloss/v2/compat"
)
// OpenCodeTheme implements the Theme interface with OpenCode brand colors.
@@ -72,219 +73,219 @@ func NewOpenCodeTheme() *OpenCodeTheme {
theme := &OpenCodeTheme{}
// Base colors
- theme.PrimaryColor = lipgloss.AdaptiveColor{
- Dark: darkPrimary,
- Light: lightPrimary,
+ theme.PrimaryColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkPrimary),
+ Light: lipgloss.Color(lightPrimary),
}
- theme.SecondaryColor = lipgloss.AdaptiveColor{
- Dark: darkSecondary,
- Light: lightSecondary,
+ theme.SecondaryColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkSecondary),
+ Light: lipgloss.Color(lightSecondary),
}
- theme.AccentColor = lipgloss.AdaptiveColor{
- Dark: darkAccent,
- Light: lightAccent,
+ theme.AccentColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkAccent),
+ Light: lipgloss.Color(lightAccent),
}
// Status colors
- theme.ErrorColor = lipgloss.AdaptiveColor{
- Dark: darkRed,
- Light: lightRed,
+ theme.ErrorColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkRed),
+ Light: lipgloss.Color(lightRed),
}
- theme.WarningColor = lipgloss.AdaptiveColor{
- Dark: darkOrange,
- Light: lightOrange,
+ theme.WarningColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkOrange),
+ Light: lipgloss.Color(lightOrange),
}
- theme.SuccessColor = lipgloss.AdaptiveColor{
- Dark: darkGreen,
- Light: lightGreen,
+ theme.SuccessColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkGreen),
+ Light: lipgloss.Color(lightGreen),
}
- theme.InfoColor = lipgloss.AdaptiveColor{
- Dark: darkCyan,
- Light: lightCyan,
+ theme.InfoColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkCyan),
+ Light: lipgloss.Color(lightCyan),
}
// Text colors
- theme.TextColor = lipgloss.AdaptiveColor{
- Dark: darkStep12,
- Light: lightStep12,
+ theme.TextColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkStep12),
+ Light: lipgloss.Color(lightStep12),
}
- theme.TextMutedColor = lipgloss.AdaptiveColor{
- Dark: darkStep11,
- Light: lightStep11,
+ theme.TextMutedColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkStep11),
+ Light: lipgloss.Color(lightStep11),
}
// Background colors
- theme.BackgroundColor = lipgloss.AdaptiveColor{
- Dark: darkStep1,
- Light: lightStep1,
+ theme.BackgroundColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkStep1),
+ Light: lipgloss.Color(lightStep1),
}
- theme.BackgroundSubtleColor = lipgloss.AdaptiveColor{
- Dark: darkStep2,
- Light: lightStep2,
+ theme.BackgroundSubtleColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkStep2),
+ Light: lipgloss.Color(lightStep2),
}
- theme.BackgroundElementColor = lipgloss.AdaptiveColor{
- Dark: darkStep3,
- Light: lightStep3,
+ theme.BackgroundElementColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkStep3),
+ Light: lipgloss.Color(lightStep3),
}
// Border colors
- theme.BorderColor = lipgloss.AdaptiveColor{
- Dark: darkStep7,
- Light: lightStep7,
+ theme.BorderColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkStep7),
+ Light: lipgloss.Color(lightStep7),
}
- theme.BorderActiveColor = lipgloss.AdaptiveColor{
- Dark: darkStep8,
- Light: lightStep8,
+ theme.BorderActiveColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkStep8),
+ Light: lipgloss.Color(lightStep8),
}
- theme.BorderSubtleColor = lipgloss.AdaptiveColor{
- Dark: darkStep6,
- Light: lightStep6,
+ theme.BorderSubtleColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkStep6),
+ Light: lipgloss.Color(lightStep6),
}
// Diff view colors
- theme.DiffAddedColor = lipgloss.AdaptiveColor{
- Dark: "#478247",
- Light: "#2E7D32",
+ theme.DiffAddedColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color("#478247"),
+ Light: lipgloss.Color("#2E7D32"),
}
- theme.DiffRemovedColor = lipgloss.AdaptiveColor{
- Dark: "#7C4444",
- Light: "#C62828",
+ theme.DiffRemovedColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color("#7C4444"),
+ Light: lipgloss.Color("#C62828"),
}
- theme.DiffContextColor = lipgloss.AdaptiveColor{
- Dark: "#a0a0a0",
- Light: "#757575",
+ theme.DiffContextColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color("#a0a0a0"),
+ Light: lipgloss.Color("#757575"),
}
- theme.DiffHunkHeaderColor = lipgloss.AdaptiveColor{
- Dark: "#a0a0a0",
- Light: "#757575",
+ theme.DiffHunkHeaderColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color("#a0a0a0"),
+ Light: lipgloss.Color("#757575"),
}
- theme.DiffHighlightAddedColor = lipgloss.AdaptiveColor{
- Dark: "#DAFADA",
- Light: "#A5D6A7",
+ theme.DiffHighlightAddedColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color("#DAFADA"),
+ Light: lipgloss.Color("#A5D6A7"),
}
- theme.DiffHighlightRemovedColor = lipgloss.AdaptiveColor{
- Dark: "#FADADD",
- Light: "#EF9A9A",
+ theme.DiffHighlightRemovedColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color("#FADADD"),
+ Light: lipgloss.Color("#EF9A9A"),
}
- theme.DiffAddedBgColor = lipgloss.AdaptiveColor{
- Dark: "#303A30",
- Light: "#E8F5E9",
+ theme.DiffAddedBgColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color("#303A30"),
+ Light: lipgloss.Color("#E8F5E9"),
}
- theme.DiffRemovedBgColor = lipgloss.AdaptiveColor{
- Dark: "#3A3030",
- Light: "#FFEBEE",
+ theme.DiffRemovedBgColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color("#3A3030"),
+ Light: lipgloss.Color("#FFEBEE"),
}
- theme.DiffContextBgColor = lipgloss.AdaptiveColor{
- Dark: darkStep2,
- Light: lightStep2,
+ theme.DiffContextBgColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkStep2),
+ Light: lipgloss.Color(lightStep2),
}
- theme.DiffLineNumberColor = lipgloss.AdaptiveColor{
- Dark: darkStep3,
- Light: lightStep3,
+ theme.DiffLineNumberColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkStep3),
+ Light: lipgloss.Color(lightStep3),
}
- theme.DiffAddedLineNumberBgColor = lipgloss.AdaptiveColor{
- Dark: "#293229",
- Light: "#C8E6C9",
+ theme.DiffAddedLineNumberBgColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color("#293229"),
+ Light: lipgloss.Color("#C8E6C9"),
}
- theme.DiffRemovedLineNumberBgColor = lipgloss.AdaptiveColor{
- Dark: "#332929",
- Light: "#FFCDD2",
+ theme.DiffRemovedLineNumberBgColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color("#332929"),
+ Light: lipgloss.Color("#FFCDD2"),
}
// Markdown colors
- theme.MarkdownTextColor = lipgloss.AdaptiveColor{
- Dark: darkStep12,
- Light: lightStep12,
+ theme.MarkdownTextColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkStep12),
+ Light: lipgloss.Color(lightStep12),
}
- theme.MarkdownHeadingColor = lipgloss.AdaptiveColor{
- Dark: darkSecondary,
- Light: lightSecondary,
+ theme.MarkdownHeadingColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkSecondary),
+ Light: lipgloss.Color(lightSecondary),
}
- theme.MarkdownLinkColor = lipgloss.AdaptiveColor{
- Dark: darkPrimary,
- Light: lightPrimary,
+ theme.MarkdownLinkColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkPrimary),
+ Light: lipgloss.Color(lightPrimary),
}
- theme.MarkdownLinkTextColor = lipgloss.AdaptiveColor{
- Dark: darkCyan,
- Light: lightCyan,
+ theme.MarkdownLinkTextColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkCyan),
+ Light: lipgloss.Color(lightCyan),
}
- theme.MarkdownCodeColor = lipgloss.AdaptiveColor{
- Dark: darkGreen,
- Light: lightGreen,
+ theme.MarkdownCodeColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkGreen),
+ Light: lipgloss.Color(lightGreen),
}
- theme.MarkdownBlockQuoteColor = lipgloss.AdaptiveColor{
- Dark: darkYellow,
- Light: lightYellow,
+ theme.MarkdownBlockQuoteColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkYellow),
+ Light: lipgloss.Color(lightYellow),
}
- theme.MarkdownEmphColor = lipgloss.AdaptiveColor{
- Dark: darkYellow,
- Light: lightYellow,
+ theme.MarkdownEmphColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkYellow),
+ Light: lipgloss.Color(lightYellow),
}
- theme.MarkdownStrongColor = lipgloss.AdaptiveColor{
- Dark: darkAccent,
- Light: lightAccent,
+ theme.MarkdownStrongColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkAccent),
+ Light: lipgloss.Color(lightAccent),
}
- theme.MarkdownHorizontalRuleColor = lipgloss.AdaptiveColor{
- Dark: darkStep11,
- Light: lightStep11,
+ theme.MarkdownHorizontalRuleColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkStep11),
+ Light: lipgloss.Color(lightStep11),
}
- theme.MarkdownListItemColor = lipgloss.AdaptiveColor{
- Dark: darkPrimary,
- Light: lightPrimary,
+ theme.MarkdownListItemColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkPrimary),
+ Light: lipgloss.Color(lightPrimary),
}
- theme.MarkdownListEnumerationColor = lipgloss.AdaptiveColor{
- Dark: darkCyan,
- Light: lightCyan,
+ theme.MarkdownListEnumerationColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkCyan),
+ Light: lipgloss.Color(lightCyan),
}
- theme.MarkdownImageColor = lipgloss.AdaptiveColor{
- Dark: darkPrimary,
- Light: lightPrimary,
+ theme.MarkdownImageColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkPrimary),
+ Light: lipgloss.Color(lightPrimary),
}
- theme.MarkdownImageTextColor = lipgloss.AdaptiveColor{
- Dark: darkCyan,
- Light: lightCyan,
+ theme.MarkdownImageTextColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkCyan),
+ Light: lipgloss.Color(lightCyan),
}
- theme.MarkdownCodeBlockColor = lipgloss.AdaptiveColor{
- Dark: darkStep12,
- Light: lightStep12,
+ theme.MarkdownCodeBlockColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkStep12),
+ Light: lipgloss.Color(lightStep12),
}
// Syntax highlighting colors
- theme.SyntaxCommentColor = lipgloss.AdaptiveColor{
- Dark: darkStep11,
- Light: lightStep11,
+ theme.SyntaxCommentColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkStep11),
+ Light: lipgloss.Color(lightStep11),
}
- theme.SyntaxKeywordColor = lipgloss.AdaptiveColor{
- Dark: darkSecondary,
- Light: lightSecondary,
+ theme.SyntaxKeywordColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkPrimary),
+ Light: lipgloss.Color(lightPrimary),
}
- theme.SyntaxFunctionColor = lipgloss.AdaptiveColor{
- Dark: darkPrimary,
- Light: lightPrimary,
+ theme.SyntaxFunctionColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkPrimary),
+ Light: lipgloss.Color(lightPrimary),
}
- theme.SyntaxVariableColor = lipgloss.AdaptiveColor{
- Dark: darkRed,
- Light: lightRed,
+ theme.SyntaxVariableColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkRed),
+ Light: lipgloss.Color(lightRed),
}
- theme.SyntaxStringColor = lipgloss.AdaptiveColor{
- Dark: darkGreen,
- Light: lightGreen,
+ theme.SyntaxStringColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkGreen),
+ Light: lipgloss.Color(lightGreen),
}
- theme.SyntaxNumberColor = lipgloss.AdaptiveColor{
- Dark: darkAccent,
- Light: lightAccent,
+ theme.SyntaxNumberColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkAccent),
+ Light: lipgloss.Color(lightAccent),
}
- theme.SyntaxTypeColor = lipgloss.AdaptiveColor{
- Dark: darkYellow,
- Light: lightYellow,
+ theme.SyntaxTypeColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkYellow),
+ Light: lipgloss.Color(lightYellow),
}
- theme.SyntaxOperatorColor = lipgloss.AdaptiveColor{
- Dark: darkCyan,
- Light: lightCyan,
+ theme.SyntaxOperatorColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkCyan),
+ Light: lipgloss.Color(lightCyan),
}
- theme.SyntaxPunctuationColor = lipgloss.AdaptiveColor{
- Dark: darkStep12,
- Light: lightStep12,
+ theme.SyntaxPunctuationColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkStep12),
+ Light: lipgloss.Color(lightStep12),
}
return theme
diff --git a/packages/tui/internal/theme/theme.go b/packages/tui/internal/theme/theme.go
index 8b2d926b1..2769a1720 100644
--- a/packages/tui/internal/theme/theme.go
+++ b/packages/tui/internal/theme/theme.go
@@ -4,231 +4,232 @@ import (
"fmt"
"regexp"
- "github.com/charmbracelet/lipgloss"
+ "github.com/charmbracelet/lipgloss/v2"
+ "github.com/charmbracelet/lipgloss/v2/compat"
)
// Theme defines the interface for all UI themes in the application.
-// All colors must be defined as lipgloss.AdaptiveColor to support
+// All colors must be defined as compat.AdaptiveColor to support
// both light and dark terminal backgrounds.
type Theme interface {
// Background colors
- Background() lipgloss.AdaptiveColor // Radix 1
- BackgroundSubtle() lipgloss.AdaptiveColor // Radix 2
- BackgroundElement() lipgloss.AdaptiveColor // Radix 3
+ Background() compat.AdaptiveColor // Radix 1
+ BackgroundSubtle() compat.AdaptiveColor // Radix 2
+ BackgroundElement() compat.AdaptiveColor // Radix 3
// Border colors
- BorderSubtle() lipgloss.AdaptiveColor // Radix 6
- Border() lipgloss.AdaptiveColor // Radix 7
- BorderActive() lipgloss.AdaptiveColor // Radix 8
+ BorderSubtle() compat.AdaptiveColor // Radix 6
+ Border() compat.AdaptiveColor // Radix 7
+ BorderActive() compat.AdaptiveColor // Radix 8
// Brand colors
- Primary() lipgloss.AdaptiveColor // Radix 9
- Secondary() lipgloss.AdaptiveColor
- Accent() lipgloss.AdaptiveColor
+ Primary() compat.AdaptiveColor // Radix 9
+ Secondary() compat.AdaptiveColor
+ Accent() compat.AdaptiveColor
// Text colors
- TextMuted() lipgloss.AdaptiveColor // Radix 11
- Text() lipgloss.AdaptiveColor // Radix 12
+ TextMuted() compat.AdaptiveColor // Radix 11
+ Text() compat.AdaptiveColor // Radix 12
// Status colors
- Error() lipgloss.AdaptiveColor
- Warning() lipgloss.AdaptiveColor
- Success() lipgloss.AdaptiveColor
- Info() lipgloss.AdaptiveColor
+ Error() compat.AdaptiveColor
+ Warning() compat.AdaptiveColor
+ Success() compat.AdaptiveColor
+ Info() compat.AdaptiveColor
// Diff view colors
- DiffAdded() lipgloss.AdaptiveColor
- DiffRemoved() lipgloss.AdaptiveColor
- DiffContext() lipgloss.AdaptiveColor
- DiffHunkHeader() lipgloss.AdaptiveColor
- DiffHighlightAdded() lipgloss.AdaptiveColor
- DiffHighlightRemoved() lipgloss.AdaptiveColor
- DiffAddedBg() lipgloss.AdaptiveColor
- DiffRemovedBg() lipgloss.AdaptiveColor
- DiffContextBg() lipgloss.AdaptiveColor
- DiffLineNumber() lipgloss.AdaptiveColor
- DiffAddedLineNumberBg() lipgloss.AdaptiveColor
- DiffRemovedLineNumberBg() lipgloss.AdaptiveColor
+ 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() lipgloss.AdaptiveColor
- MarkdownHeading() lipgloss.AdaptiveColor
- MarkdownLink() lipgloss.AdaptiveColor
- MarkdownLinkText() lipgloss.AdaptiveColor
- MarkdownCode() lipgloss.AdaptiveColor
- MarkdownBlockQuote() lipgloss.AdaptiveColor
- MarkdownEmph() lipgloss.AdaptiveColor
- MarkdownStrong() lipgloss.AdaptiveColor
- MarkdownHorizontalRule() lipgloss.AdaptiveColor
- MarkdownListItem() lipgloss.AdaptiveColor
- MarkdownListEnumeration() lipgloss.AdaptiveColor
- MarkdownImage() lipgloss.AdaptiveColor
- MarkdownImageText() lipgloss.AdaptiveColor
- MarkdownCodeBlock() lipgloss.AdaptiveColor
+ 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() lipgloss.AdaptiveColor
- SyntaxKeyword() lipgloss.AdaptiveColor
- SyntaxFunction() lipgloss.AdaptiveColor
- SyntaxVariable() lipgloss.AdaptiveColor
- SyntaxString() lipgloss.AdaptiveColor
- SyntaxNumber() lipgloss.AdaptiveColor
- SyntaxType() lipgloss.AdaptiveColor
- SyntaxOperator() lipgloss.AdaptiveColor
- SyntaxPunctuation() lipgloss.AdaptiveColor
+ 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 lipgloss.AdaptiveColor
- BackgroundSubtleColor lipgloss.AdaptiveColor
- BackgroundElementColor lipgloss.AdaptiveColor
+ BackgroundColor compat.AdaptiveColor
+ BackgroundSubtleColor compat.AdaptiveColor
+ BackgroundElementColor compat.AdaptiveColor
// Border colors
- BorderSubtleColor lipgloss.AdaptiveColor
- BorderColor lipgloss.AdaptiveColor
- BorderActiveColor lipgloss.AdaptiveColor
+ BorderSubtleColor compat.AdaptiveColor
+ BorderColor compat.AdaptiveColor
+ BorderActiveColor compat.AdaptiveColor
// Brand colors
- PrimaryColor lipgloss.AdaptiveColor
- SecondaryColor lipgloss.AdaptiveColor
- AccentColor lipgloss.AdaptiveColor
+ PrimaryColor compat.AdaptiveColor
+ SecondaryColor compat.AdaptiveColor
+ AccentColor compat.AdaptiveColor
// Text colors
- TextMutedColor lipgloss.AdaptiveColor
- TextColor lipgloss.AdaptiveColor
+ TextMutedColor compat.AdaptiveColor
+ TextColor compat.AdaptiveColor
// Status colors
- ErrorColor lipgloss.AdaptiveColor
- WarningColor lipgloss.AdaptiveColor
- SuccessColor lipgloss.AdaptiveColor
- InfoColor lipgloss.AdaptiveColor
+ ErrorColor compat.AdaptiveColor
+ WarningColor compat.AdaptiveColor
+ SuccessColor compat.AdaptiveColor
+ InfoColor compat.AdaptiveColor
// Diff view colors
- DiffAddedColor lipgloss.AdaptiveColor
- DiffRemovedColor lipgloss.AdaptiveColor
- DiffContextColor lipgloss.AdaptiveColor
- DiffHunkHeaderColor lipgloss.AdaptiveColor
- DiffHighlightAddedColor lipgloss.AdaptiveColor
- DiffHighlightRemovedColor lipgloss.AdaptiveColor
- DiffAddedBgColor lipgloss.AdaptiveColor
- DiffRemovedBgColor lipgloss.AdaptiveColor
- DiffContextBgColor lipgloss.AdaptiveColor
- DiffLineNumberColor lipgloss.AdaptiveColor
- DiffAddedLineNumberBgColor lipgloss.AdaptiveColor
- DiffRemovedLineNumberBgColor lipgloss.AdaptiveColor
+ 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 lipgloss.AdaptiveColor
- MarkdownHeadingColor lipgloss.AdaptiveColor
- MarkdownLinkColor lipgloss.AdaptiveColor
- MarkdownLinkTextColor lipgloss.AdaptiveColor
- MarkdownCodeColor lipgloss.AdaptiveColor
- MarkdownBlockQuoteColor lipgloss.AdaptiveColor
- MarkdownEmphColor lipgloss.AdaptiveColor
- MarkdownStrongColor lipgloss.AdaptiveColor
- MarkdownHorizontalRuleColor lipgloss.AdaptiveColor
- MarkdownListItemColor lipgloss.AdaptiveColor
- MarkdownListEnumerationColor lipgloss.AdaptiveColor
- MarkdownImageColor lipgloss.AdaptiveColor
- MarkdownImageTextColor lipgloss.AdaptiveColor
- MarkdownCodeBlockColor lipgloss.AdaptiveColor
+ 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 lipgloss.AdaptiveColor
- SyntaxKeywordColor lipgloss.AdaptiveColor
- SyntaxFunctionColor lipgloss.AdaptiveColor
- SyntaxVariableColor lipgloss.AdaptiveColor
- SyntaxStringColor lipgloss.AdaptiveColor
- SyntaxNumberColor lipgloss.AdaptiveColor
- SyntaxTypeColor lipgloss.AdaptiveColor
- SyntaxOperatorColor lipgloss.AdaptiveColor
- SyntaxPunctuationColor lipgloss.AdaptiveColor
+ 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() lipgloss.AdaptiveColor { return t.PrimaryColor }
-func (t *BaseTheme) Secondary() lipgloss.AdaptiveColor { return t.SecondaryColor }
-func (t *BaseTheme) Accent() lipgloss.AdaptiveColor { return t.AccentColor }
-
-func (t *BaseTheme) Error() lipgloss.AdaptiveColor { return t.ErrorColor }
-func (t *BaseTheme) Warning() lipgloss.AdaptiveColor { return t.WarningColor }
-func (t *BaseTheme) Success() lipgloss.AdaptiveColor { return t.SuccessColor }
-func (t *BaseTheme) Info() lipgloss.AdaptiveColor { return t.InfoColor }
-
-func (t *BaseTheme) Text() lipgloss.AdaptiveColor { return t.TextColor }
-func (t *BaseTheme) TextMuted() lipgloss.AdaptiveColor { return t.TextMutedColor }
-
-func (t *BaseTheme) Background() lipgloss.AdaptiveColor { return t.BackgroundColor }
-func (t *BaseTheme) BackgroundSubtle() lipgloss.AdaptiveColor { return t.BackgroundSubtleColor }
-func (t *BaseTheme) BackgroundElement() lipgloss.AdaptiveColor { return t.BackgroundElementColor }
-
-func (t *BaseTheme) Border() lipgloss.AdaptiveColor { return t.BorderColor }
-func (t *BaseTheme) BorderActive() lipgloss.AdaptiveColor { return t.BorderActiveColor }
-func (t *BaseTheme) BorderSubtle() lipgloss.AdaptiveColor { return t.BorderSubtleColor }
-
-func (t *BaseTheme) DiffAdded() lipgloss.AdaptiveColor { return t.DiffAddedColor }
-func (t *BaseTheme) DiffRemoved() lipgloss.AdaptiveColor { return t.DiffRemovedColor }
-func (t *BaseTheme) DiffContext() lipgloss.AdaptiveColor { return t.DiffContextColor }
-func (t *BaseTheme) DiffHunkHeader() lipgloss.AdaptiveColor { return t.DiffHunkHeaderColor }
-func (t *BaseTheme) DiffHighlightAdded() lipgloss.AdaptiveColor { return t.DiffHighlightAddedColor }
-func (t *BaseTheme) DiffHighlightRemoved() lipgloss.AdaptiveColor { return t.DiffHighlightRemovedColor }
-func (t *BaseTheme) DiffAddedBg() lipgloss.AdaptiveColor { return t.DiffAddedBgColor }
-func (t *BaseTheme) DiffRemovedBg() lipgloss.AdaptiveColor { return t.DiffRemovedBgColor }
-func (t *BaseTheme) DiffContextBg() lipgloss.AdaptiveColor { return t.DiffContextBgColor }
-func (t *BaseTheme) DiffLineNumber() lipgloss.AdaptiveColor { return t.DiffLineNumberColor }
-func (t *BaseTheme) DiffAddedLineNumberBg() lipgloss.AdaptiveColor {
+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) BackgroundSubtle() compat.AdaptiveColor { return t.BackgroundSubtleColor }
+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() lipgloss.AdaptiveColor {
+func (t *BaseTheme) DiffRemovedLineNumberBg() compat.AdaptiveColor {
return t.DiffRemovedLineNumberBgColor
}
-func (t *BaseTheme) MarkdownText() lipgloss.AdaptiveColor { return t.MarkdownTextColor }
-func (t *BaseTheme) MarkdownHeading() lipgloss.AdaptiveColor { return t.MarkdownHeadingColor }
-func (t *BaseTheme) MarkdownLink() lipgloss.AdaptiveColor { return t.MarkdownLinkColor }
-func (t *BaseTheme) MarkdownLinkText() lipgloss.AdaptiveColor { return t.MarkdownLinkTextColor }
-func (t *BaseTheme) MarkdownCode() lipgloss.AdaptiveColor { return t.MarkdownCodeColor }
-func (t *BaseTheme) MarkdownBlockQuote() lipgloss.AdaptiveColor { return t.MarkdownBlockQuoteColor }
-func (t *BaseTheme) MarkdownEmph() lipgloss.AdaptiveColor { return t.MarkdownEmphColor }
-func (t *BaseTheme) MarkdownStrong() lipgloss.AdaptiveColor { return t.MarkdownStrongColor }
-func (t *BaseTheme) MarkdownHorizontalRule() lipgloss.AdaptiveColor {
+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() lipgloss.AdaptiveColor { return t.MarkdownListItemColor }
-func (t *BaseTheme) MarkdownListEnumeration() lipgloss.AdaptiveColor {
+func (t *BaseTheme) MarkdownListItem() compat.AdaptiveColor { return t.MarkdownListItemColor }
+func (t *BaseTheme) MarkdownListEnumeration() compat.AdaptiveColor {
return t.MarkdownListEnumerationColor
}
-func (t *BaseTheme) MarkdownImage() lipgloss.AdaptiveColor { return t.MarkdownImageColor }
-func (t *BaseTheme) MarkdownImageText() lipgloss.AdaptiveColor { return t.MarkdownImageTextColor }
-func (t *BaseTheme) MarkdownCodeBlock() lipgloss.AdaptiveColor { return t.MarkdownCodeBlockColor }
-
-func (t *BaseTheme) SyntaxComment() lipgloss.AdaptiveColor { return t.SyntaxCommentColor }
-func (t *BaseTheme) SyntaxKeyword() lipgloss.AdaptiveColor { return t.SyntaxKeywordColor }
-func (t *BaseTheme) SyntaxFunction() lipgloss.AdaptiveColor { return t.SyntaxFunctionColor }
-func (t *BaseTheme) SyntaxVariable() lipgloss.AdaptiveColor { return t.SyntaxVariableColor }
-func (t *BaseTheme) SyntaxString() lipgloss.AdaptiveColor { return t.SyntaxStringColor }
-func (t *BaseTheme) SyntaxNumber() lipgloss.AdaptiveColor { return t.SyntaxNumberColor }
-func (t *BaseTheme) SyntaxType() lipgloss.AdaptiveColor { return t.SyntaxTypeColor }
-func (t *BaseTheme) SyntaxOperator() lipgloss.AdaptiveColor { return t.SyntaxOperatorColor }
-func (t *BaseTheme) SyntaxPunctuation() lipgloss.AdaptiveColor { return t.SyntaxPunctuationColor }
-
-// ParseAdaptiveColor parses a color value from the config file into a lipgloss.AdaptiveColor.
+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 }
+
+// ParseAdaptiveColor parses a color value from the config file into a compat.AdaptiveColor.
// It accepts either a string (hex color) or a map with "dark" and "light" keys.
-func ParseAdaptiveColor(value any) (lipgloss.AdaptiveColor, error) {
+func ParseAdaptiveColor(value any) (compat.AdaptiveColor, error) {
// Regular expression to validate hex color format
hexColorRegex := regexp.MustCompile(`^#[0-9a-fA-F]{6}$`)
// Case 1: String value (same color for both dark and light modes)
if hexColor, ok := value.(string); ok {
if !hexColorRegex.MatchString(hexColor) {
- return lipgloss.AdaptiveColor{}, fmt.Errorf("invalid hex color format: %s", hexColor)
+ return compat.AdaptiveColor{}, fmt.Errorf("invalid hex color format: %s", hexColor)
}
- return lipgloss.AdaptiveColor{
- Dark: hexColor,
- Light: hexColor,
+ return compat.AdaptiveColor{
+ Dark: lipgloss.Color(hexColor),
+ Light: lipgloss.Color(hexColor),
}, nil
}
@@ -236,11 +237,11 @@ func ParseAdaptiveColor(value any) (lipgloss.AdaptiveColor, error) {
if numericVal, ok := value.(float64); ok {
intVal := int(numericVal)
if intVal < 0 || intVal > 255 {
- return lipgloss.AdaptiveColor{}, fmt.Errorf("invalid int color value (must be between 0 and 255): %d", intVal)
+ return compat.AdaptiveColor{}, fmt.Errorf("invalid int color value (must be between 0 and 255): %d", intVal)
}
- return lipgloss.AdaptiveColor{
- Dark: fmt.Sprintf("%d", intVal),
- Light: fmt.Sprintf("%d", intVal),
+ return compat.AdaptiveColor{
+ Dark: lipgloss.Color(fmt.Sprintf("%d", intVal)),
+ Light: lipgloss.Color(fmt.Sprintf("%d", intVal)),
}, nil
}
@@ -250,7 +251,7 @@ func ParseAdaptiveColor(value any) (lipgloss.AdaptiveColor, error) {
lightVal, lightOk := colorMap["light"]
if !darkOk || !lightOk {
- return lipgloss.AdaptiveColor{}, fmt.Errorf("color map must contain both 'dark' and 'light' keys")
+ return compat.AdaptiveColor{}, fmt.Errorf("color map must contain both 'dark' and 'light' keys")
}
darkHex, darkIsString := darkVal.(string)
@@ -261,27 +262,27 @@ func ParseAdaptiveColor(value any) (lipgloss.AdaptiveColor, error) {
lightVal, lightIsNumber := lightVal.(float64)
if !darkIsNumber || !lightIsNumber {
- return lipgloss.AdaptiveColor{}, fmt.Errorf("color map values must be strings or ints")
+ return compat.AdaptiveColor{}, fmt.Errorf("color map values must be strings or ints")
}
darkInt := int(darkVal)
lightInt := int(lightVal)
- return lipgloss.AdaptiveColor{
- Dark: fmt.Sprintf("%d", darkInt),
- Light: fmt.Sprintf("%d", lightInt),
+ return compat.AdaptiveColor{
+ Dark: lipgloss.Color(fmt.Sprintf("%d", darkInt)),
+ Light: lipgloss.Color(fmt.Sprintf("%d", lightInt)),
}, nil
}
if !hexColorRegex.MatchString(darkHex) || !hexColorRegex.MatchString(lightHex) {
- return lipgloss.AdaptiveColor{}, fmt.Errorf("invalid hex color format")
+ return compat.AdaptiveColor{}, fmt.Errorf("invalid hex color format")
}
- return lipgloss.AdaptiveColor{
- Dark: darkHex,
- Light: lightHex,
+ return compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkHex),
+ Light: lipgloss.Color(lightHex),
}, nil
}
- return lipgloss.AdaptiveColor{}, fmt.Errorf("color must be either a hex string or an object with dark/light keys")
+ return compat.AdaptiveColor{}, fmt.Errorf("color must be either a hex string or an object with dark/light keys")
}
diff --git a/packages/tui/internal/theme/tokyonight.go b/packages/tui/internal/theme/tokyonight.go
index 7ae53abc5..8bb32dced 100644
--- a/packages/tui/internal/theme/tokyonight.go
+++ b/packages/tui/internal/theme/tokyonight.go
@@ -1,7 +1,8 @@
package theme
import (
- "github.com/charmbracelet/lipgloss"
+ "github.com/charmbracelet/lipgloss/v2"
+ "github.com/charmbracelet/lipgloss/v2/compat"
)
// TokyoNightTheme implements the Theme interface with Tokyo Night colors.
@@ -70,219 +71,219 @@ func NewTokyoNightTheme() *TokyoNightTheme {
theme := &TokyoNightTheme{}
// Base colors
- theme.PrimaryColor = lipgloss.AdaptiveColor{
- Dark: darkBlue,
- Light: lightBlue,
+ theme.PrimaryColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkBlue),
+ Light: lipgloss.Color(lightBlue),
}
- theme.SecondaryColor = lipgloss.AdaptiveColor{
- Dark: darkPurple,
- Light: lightPurple,
+ theme.SecondaryColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkPurple),
+ Light: lipgloss.Color(lightPurple),
}
- theme.AccentColor = lipgloss.AdaptiveColor{
- Dark: darkOrange,
- Light: lightOrange,
+ theme.AccentColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkOrange),
+ Light: lipgloss.Color(lightOrange),
}
// Status colors
- theme.ErrorColor = lipgloss.AdaptiveColor{
- Dark: darkRed,
- Light: lightRed,
+ theme.ErrorColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkRed),
+ Light: lipgloss.Color(lightRed),
}
- theme.WarningColor = lipgloss.AdaptiveColor{
- Dark: darkOrange,
- Light: lightOrange,
+ theme.WarningColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkOrange),
+ Light: lipgloss.Color(lightOrange),
}
- theme.SuccessColor = lipgloss.AdaptiveColor{
- Dark: darkGreen,
- Light: lightGreen,
+ theme.SuccessColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkGreen),
+ Light: lipgloss.Color(lightGreen),
}
- theme.InfoColor = lipgloss.AdaptiveColor{
- Dark: darkBlue,
- Light: lightBlue,
+ theme.InfoColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkBlue),
+ Light: lipgloss.Color(lightBlue),
}
// Text colors
- theme.TextColor = lipgloss.AdaptiveColor{
- Dark: darkStep12,
- Light: lightStep12,
+ theme.TextColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkStep12),
+ Light: lipgloss.Color(lightStep12),
}
- theme.TextMutedColor = lipgloss.AdaptiveColor{
- Dark: darkStep11,
- Light: lightStep11,
+ theme.TextMutedColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkStep11),
+ Light: lipgloss.Color(lightStep11),
}
// Background colors
- theme.BackgroundColor = lipgloss.AdaptiveColor{
- Dark: darkStep1,
- Light: lightStep1,
+ theme.BackgroundColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkStep1),
+ Light: lipgloss.Color(lightStep1),
}
- theme.BackgroundSubtleColor = lipgloss.AdaptiveColor{
- Dark: darkStep2,
- Light: lightStep2,
+ theme.BackgroundSubtleColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkStep2),
+ Light: lipgloss.Color(lightStep2),
}
- theme.BackgroundElementColor = lipgloss.AdaptiveColor{
- Dark: darkStep3,
- Light: lightStep3,
+ theme.BackgroundElementColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkStep3),
+ Light: lipgloss.Color(lightStep3),
}
// Border colors
- theme.BorderColor = lipgloss.AdaptiveColor{
- Dark: darkStep7,
- Light: lightStep7,
+ theme.BorderColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkStep7),
+ Light: lipgloss.Color(lightStep7),
}
- theme.BorderActiveColor = lipgloss.AdaptiveColor{
- Dark: darkStep8,
- Light: lightStep8,
+ theme.BorderActiveColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkStep8),
+ Light: lipgloss.Color(lightStep8),
}
- theme.BorderSubtleColor = lipgloss.AdaptiveColor{
- Dark: darkStep6,
- Light: lightStep6,
+ theme.BorderSubtleColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkStep6),
+ Light: lipgloss.Color(lightStep6),
}
// Diff view colors
- theme.DiffAddedColor = lipgloss.AdaptiveColor{
- Dark: "#4fd6be", // teal from palette
- Light: "#1e725c",
+ theme.DiffAddedColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color("#4fd6be"), // teal from palette
+ Light: lipgloss.Color("#1e725c"),
}
- theme.DiffRemovedColor = lipgloss.AdaptiveColor{
- Dark: "#c53b53", // red1 from palette
- Light: "#c53b53",
+ theme.DiffRemovedColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color("#c53b53"), // red1 from palette
+ Light: lipgloss.Color("#c53b53"),
}
- theme.DiffContextColor = lipgloss.AdaptiveColor{
- Dark: "#828bb8", // fg_dark from palette
- Light: "#7086b5",
+ theme.DiffContextColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color("#828bb8"), // fg_dark from palette
+ Light: lipgloss.Color("#7086b5"),
}
- theme.DiffHunkHeaderColor = lipgloss.AdaptiveColor{
- Dark: "#828bb8", // fg_dark from palette
- Light: "#7086b5",
+ theme.DiffHunkHeaderColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color("#828bb8"), // fg_dark from palette
+ Light: lipgloss.Color("#7086b5"),
}
- theme.DiffHighlightAddedColor = lipgloss.AdaptiveColor{
- Dark: "#b8db87", // git.add from palette
- Light: "#4db380",
+ theme.DiffHighlightAddedColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color("#b8db87"), // git.add from palette
+ Light: lipgloss.Color("#4db380"),
}
- theme.DiffHighlightRemovedColor = lipgloss.AdaptiveColor{
- Dark: "#e26a75", // git.delete from palette
- Light: "#f52a65",
+ theme.DiffHighlightRemovedColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color("#e26a75"), // git.delete from palette
+ Light: lipgloss.Color("#f52a65"),
}
- theme.DiffAddedBgColor = lipgloss.AdaptiveColor{
- Dark: "#20303b",
- Light: "#d5e5d5",
+ theme.DiffAddedBgColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color("#20303b"),
+ Light: lipgloss.Color("#d5e5d5"),
}
- theme.DiffRemovedBgColor = lipgloss.AdaptiveColor{
- Dark: "#37222c",
- Light: "#f7d8db",
+ theme.DiffRemovedBgColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color("#37222c"),
+ Light: lipgloss.Color("#f7d8db"),
}
- theme.DiffContextBgColor = lipgloss.AdaptiveColor{
- Dark: darkStep2,
- Light: lightStep2,
+ theme.DiffContextBgColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkStep2),
+ Light: lipgloss.Color(lightStep2),
}
- theme.DiffLineNumberColor = lipgloss.AdaptiveColor{
- Dark: darkStep3, // dark3 from palette
- Light: lightStep3,
+ theme.DiffLineNumberColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkStep3), // dark3 from palette
+ Light: lipgloss.Color(lightStep3),
}
- theme.DiffAddedLineNumberBgColor = lipgloss.AdaptiveColor{
- Dark: "#1b2b34",
- Light: "#c5d5c5",
+ theme.DiffAddedLineNumberBgColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color("#1b2b34"),
+ Light: lipgloss.Color("#c5d5c5"),
}
- theme.DiffRemovedLineNumberBgColor = lipgloss.AdaptiveColor{
- Dark: "#2d1f26",
- Light: "#e7c8cb",
+ theme.DiffRemovedLineNumberBgColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color("#2d1f26"),
+ Light: lipgloss.Color("#e7c8cb"),
}
// Markdown colors
- theme.MarkdownTextColor = lipgloss.AdaptiveColor{
- Dark: darkStep12,
- Light: lightStep12,
+ theme.MarkdownTextColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkStep12),
+ Light: lipgloss.Color(lightStep12),
}
- theme.MarkdownHeadingColor = lipgloss.AdaptiveColor{
- Dark: darkPurple,
- Light: lightPurple,
+ theme.MarkdownHeadingColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkPurple),
+ Light: lipgloss.Color(lightPurple),
}
- theme.MarkdownLinkColor = lipgloss.AdaptiveColor{
- Dark: darkBlue,
- Light: lightBlue,
+ theme.MarkdownLinkColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkBlue),
+ Light: lipgloss.Color(lightBlue),
}
- theme.MarkdownLinkTextColor = lipgloss.AdaptiveColor{
- Dark: darkCyan,
- Light: lightCyan,
+ theme.MarkdownLinkTextColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkCyan),
+ Light: lipgloss.Color(lightCyan),
}
- theme.MarkdownCodeColor = lipgloss.AdaptiveColor{
- Dark: darkGreen,
- Light: lightGreen,
+ theme.MarkdownCodeColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkGreen),
+ Light: lipgloss.Color(lightGreen),
}
- theme.MarkdownBlockQuoteColor = lipgloss.AdaptiveColor{
- Dark: darkYellow,
- Light: lightYellow,
+ theme.MarkdownBlockQuoteColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkYellow),
+ Light: lipgloss.Color(lightYellow),
}
- theme.MarkdownEmphColor = lipgloss.AdaptiveColor{
- Dark: darkYellow,
- Light: lightYellow,
+ theme.MarkdownEmphColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkYellow),
+ Light: lipgloss.Color(lightYellow),
}
- theme.MarkdownStrongColor = lipgloss.AdaptiveColor{
- Dark: darkOrange,
- Light: lightOrange,
+ theme.MarkdownStrongColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkOrange),
+ Light: lipgloss.Color(lightOrange),
}
- theme.MarkdownHorizontalRuleColor = lipgloss.AdaptiveColor{
- Dark: darkStep11,
- Light: lightStep11,
+ theme.MarkdownHorizontalRuleColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkStep11),
+ Light: lipgloss.Color(lightStep11),
}
- theme.MarkdownListItemColor = lipgloss.AdaptiveColor{
- Dark: darkBlue,
- Light: lightBlue,
+ theme.MarkdownListItemColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkBlue),
+ Light: lipgloss.Color(lightBlue),
}
- theme.MarkdownListEnumerationColor = lipgloss.AdaptiveColor{
- Dark: darkCyan,
- Light: lightCyan,
+ theme.MarkdownListEnumerationColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkCyan),
+ Light: lipgloss.Color(lightCyan),
}
- theme.MarkdownImageColor = lipgloss.AdaptiveColor{
- Dark: darkBlue,
- Light: lightBlue,
+ theme.MarkdownImageColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkBlue),
+ Light: lipgloss.Color(lightBlue),
}
- theme.MarkdownImageTextColor = lipgloss.AdaptiveColor{
- Dark: darkCyan,
- Light: lightCyan,
+ theme.MarkdownImageTextColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkCyan),
+ Light: lipgloss.Color(lightCyan),
}
- theme.MarkdownCodeBlockColor = lipgloss.AdaptiveColor{
- Dark: darkStep12,
- Light: lightStep12,
+ theme.MarkdownCodeBlockColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkStep12),
+ Light: lipgloss.Color(lightStep12),
}
// Syntax highlighting colors
- theme.SyntaxCommentColor = lipgloss.AdaptiveColor{
- Dark: darkStep11,
- Light: lightStep11,
+ theme.SyntaxCommentColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkStep11),
+ Light: lipgloss.Color(lightStep11),
}
- theme.SyntaxKeywordColor = lipgloss.AdaptiveColor{
- Dark: darkPurple,
- Light: lightPurple,
+ theme.SyntaxKeywordColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkPurple),
+ Light: lipgloss.Color(lightPurple),
}
- theme.SyntaxFunctionColor = lipgloss.AdaptiveColor{
- Dark: darkBlue,
- Light: lightBlue,
+ theme.SyntaxFunctionColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkBlue),
+ Light: lipgloss.Color(lightBlue),
}
- theme.SyntaxVariableColor = lipgloss.AdaptiveColor{
- Dark: darkRed,
- Light: lightRed,
+ theme.SyntaxVariableColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkRed),
+ Light: lipgloss.Color(lightRed),
}
- theme.SyntaxStringColor = lipgloss.AdaptiveColor{
- Dark: darkGreen,
- Light: lightGreen,
+ theme.SyntaxStringColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkGreen),
+ Light: lipgloss.Color(lightGreen),
}
- theme.SyntaxNumberColor = lipgloss.AdaptiveColor{
- Dark: darkOrange,
- Light: lightOrange,
+ theme.SyntaxNumberColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkOrange),
+ Light: lipgloss.Color(lightOrange),
}
- theme.SyntaxTypeColor = lipgloss.AdaptiveColor{
- Dark: darkYellow,
- Light: lightYellow,
+ theme.SyntaxTypeColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkYellow),
+ Light: lipgloss.Color(lightYellow),
}
- theme.SyntaxOperatorColor = lipgloss.AdaptiveColor{
- Dark: darkCyan,
- Light: lightCyan,
+ theme.SyntaxOperatorColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkCyan),
+ Light: lipgloss.Color(lightCyan),
}
- theme.SyntaxPunctuationColor = lipgloss.AdaptiveColor{
- Dark: darkStep12,
- Light: lightStep12,
+ theme.SyntaxPunctuationColor = compat.AdaptiveColor{
+ Dark: lipgloss.Color(darkStep12),
+ Light: lipgloss.Color(lightStep12),
}
return theme
diff --git a/packages/tui/internal/theme/tron.go b/packages/tui/internal/theme/tron.go
deleted file mode 100644
index ea9756753..000000000
--- a/packages/tui/internal/theme/tron.go
+++ /dev/null
@@ -1,272 +0,0 @@
-package theme
-
-import (
- "github.com/charmbracelet/lipgloss"
-)
-
-// TronTheme implements the Theme interface with Tron-inspired colors.
-// It provides both dark and light variants, though Tron is primarily a dark theme.
-type TronTheme struct {
- BaseTheme
-}
-
-// NewTronTheme creates a new instance of the Tron theme.
-func NewTronTheme() *TronTheme {
- // Tron color palette
- // Inspired by the Tron movie's neon aesthetic
- darkBackground := "#0c141f"
- darkCurrentLine := "#1a2633"
- darkSelection := "#1a2633"
- darkForeground := "#caf0ff"
- darkComment := "#4d6b87"
- darkCyan := "#00d9ff"
- darkBlue := "#007fff"
- darkOrange := "#ff9000"
- darkPink := "#ff00a0"
- darkPurple := "#b73fff"
- darkRed := "#ff3333"
- darkYellow := "#ffcc00"
- darkGreen := "#00ff8f"
- darkBorder := "#1a2633"
-
- // Light mode approximation
- lightBackground := "#f0f8ff"
- lightCurrentLine := "#e0f0ff"
- lightSelection := "#d0e8ff"
- lightForeground := "#0c141f"
- lightComment := "#4d6b87"
- lightCyan := "#0097b3"
- lightBlue := "#0066cc"
- lightOrange := "#cc7300"
- lightPink := "#cc0080"
- lightPurple := "#9932cc"
- lightRed := "#cc2929"
- lightYellow := "#cc9900"
- lightGreen := "#00cc72"
- lightBorder := "#d0e8ff"
-
- theme := &TronTheme{}
-
- // Base colors
- theme.PrimaryColor = lipgloss.AdaptiveColor{
- Dark: darkCyan,
- Light: lightCyan,
- }
- theme.SecondaryColor = lipgloss.AdaptiveColor{
- Dark: darkBlue,
- Light: lightBlue,
- }
- theme.AccentColor = lipgloss.AdaptiveColor{
- Dark: darkOrange,
- Light: lightOrange,
- }
-
- // Status colors
- theme.ErrorColor = lipgloss.AdaptiveColor{
- Dark: darkRed,
- Light: lightRed,
- }
- theme.WarningColor = lipgloss.AdaptiveColor{
- Dark: darkOrange,
- Light: lightOrange,
- }
- theme.SuccessColor = lipgloss.AdaptiveColor{
- Dark: darkGreen,
- Light: lightGreen,
- }
- theme.InfoColor = lipgloss.AdaptiveColor{
- Dark: darkCyan,
- Light: lightCyan,
- }
-
- // Text colors
- theme.TextColor = lipgloss.AdaptiveColor{
- Dark: darkForeground,
- Light: lightForeground,
- }
- theme.TextMutedColor = lipgloss.AdaptiveColor{
- Dark: darkComment,
- Light: lightComment,
- }
-
- // Background colors
- theme.BackgroundColor = lipgloss.AdaptiveColor{
- Dark: darkBackground,
- Light: lightBackground,
- }
- theme.BackgroundSubtleColor = lipgloss.AdaptiveColor{
- Dark: darkCurrentLine,
- Light: lightCurrentLine,
- }
- theme.BackgroundElementColor = lipgloss.AdaptiveColor{
- Dark: "#070d14", // Slightly darker than background
- Light: "#ffffff", // Slightly lighter than background
- }
-
- // Border colors
- theme.BorderColor = lipgloss.AdaptiveColor{
- Dark: darkBorder,
- Light: lightBorder,
- }
- theme.BorderActiveColor = lipgloss.AdaptiveColor{
- Dark: darkCyan,
- Light: lightCyan,
- }
- theme.BorderSubtleColor = lipgloss.AdaptiveColor{
- Dark: darkSelection,
- Light: lightSelection,
- }
-
- // Diff view colors
- theme.DiffAddedColor = lipgloss.AdaptiveColor{
- Dark: darkGreen,
- Light: lightGreen,
- }
- theme.DiffRemovedColor = lipgloss.AdaptiveColor{
- Dark: darkRed,
- Light: lightRed,
- }
- theme.DiffContextColor = lipgloss.AdaptiveColor{
- Dark: darkComment,
- Light: lightComment,
- }
- theme.DiffHunkHeaderColor = lipgloss.AdaptiveColor{
- Dark: darkBlue,
- Light: lightBlue,
- }
- theme.DiffHighlightAddedColor = lipgloss.AdaptiveColor{
- Dark: "#00ff8f",
- Light: "#a5d6a7",
- }
- theme.DiffHighlightRemovedColor = lipgloss.AdaptiveColor{
- Dark: "#ff3333",
- Light: "#ef9a9a",
- }
- theme.DiffAddedBgColor = lipgloss.AdaptiveColor{
- Dark: "#0a2a1a",
- Light: "#e8f5e9",
- }
- theme.DiffRemovedBgColor = lipgloss.AdaptiveColor{
- Dark: "#2a0a0a",
- Light: "#ffebee",
- }
- theme.DiffContextBgColor = lipgloss.AdaptiveColor{
- Dark: darkBackground,
- Light: lightBackground,
- }
- theme.DiffLineNumberColor = lipgloss.AdaptiveColor{
- Dark: darkComment,
- Light: lightComment,
- }
- theme.DiffAddedLineNumberBgColor = lipgloss.AdaptiveColor{
- Dark: "#082015",
- Light: "#c8e6c9",
- }
- theme.DiffRemovedLineNumberBgColor = lipgloss.AdaptiveColor{
- Dark: "#200808",
- Light: "#ffcdd2",
- }
-
- // Markdown colors
- theme.MarkdownTextColor = lipgloss.AdaptiveColor{
- Dark: darkForeground,
- Light: lightForeground,
- }
- theme.MarkdownHeadingColor = lipgloss.AdaptiveColor{
- Dark: darkCyan,
- Light: lightCyan,
- }
- theme.MarkdownLinkColor = lipgloss.AdaptiveColor{
- Dark: darkBlue,
- Light: lightBlue,
- }
- theme.MarkdownLinkTextColor = lipgloss.AdaptiveColor{
- Dark: darkCyan,
- Light: lightCyan,
- }
- theme.MarkdownCodeColor = lipgloss.AdaptiveColor{
- Dark: darkGreen,
- Light: lightGreen,
- }
- theme.MarkdownBlockQuoteColor = lipgloss.AdaptiveColor{
- Dark: darkYellow,
- Light: lightYellow,
- }
- theme.MarkdownEmphColor = lipgloss.AdaptiveColor{
- Dark: darkYellow,
- Light: lightYellow,
- }
- theme.MarkdownStrongColor = lipgloss.AdaptiveColor{
- Dark: darkOrange,
- Light: lightOrange,
- }
- theme.MarkdownHorizontalRuleColor = lipgloss.AdaptiveColor{
- Dark: darkComment,
- Light: lightComment,
- }
- theme.MarkdownListItemColor = lipgloss.AdaptiveColor{
- Dark: darkBlue,
- Light: lightBlue,
- }
- theme.MarkdownListEnumerationColor = lipgloss.AdaptiveColor{
- Dark: darkCyan,
- Light: lightCyan,
- }
- theme.MarkdownImageColor = lipgloss.AdaptiveColor{
- Dark: darkBlue,
- Light: lightBlue,
- }
- theme.MarkdownImageTextColor = lipgloss.AdaptiveColor{
- Dark: darkCyan,
- Light: lightCyan,
- }
- theme.MarkdownCodeBlockColor = lipgloss.AdaptiveColor{
- Dark: darkForeground,
- Light: lightForeground,
- }
-
- // Syntax highlighting colors
- theme.SyntaxCommentColor = lipgloss.AdaptiveColor{
- Dark: darkComment,
- Light: lightComment,
- }
- theme.SyntaxKeywordColor = lipgloss.AdaptiveColor{
- Dark: darkCyan,
- Light: lightCyan,
- }
- theme.SyntaxFunctionColor = lipgloss.AdaptiveColor{
- Dark: darkGreen,
- Light: lightGreen,
- }
- theme.SyntaxVariableColor = lipgloss.AdaptiveColor{
- Dark: darkOrange,
- Light: lightOrange,
- }
- theme.SyntaxStringColor = lipgloss.AdaptiveColor{
- Dark: darkYellow,
- Light: lightYellow,
- }
- theme.SyntaxNumberColor = lipgloss.AdaptiveColor{
- Dark: darkBlue,
- Light: lightBlue,
- }
- theme.SyntaxTypeColor = lipgloss.AdaptiveColor{
- Dark: darkPurple,
- Light: lightPurple,
- }
- theme.SyntaxOperatorColor = lipgloss.AdaptiveColor{
- Dark: darkPink,
- Light: lightPink,
- }
- theme.SyntaxPunctuationColor = lipgloss.AdaptiveColor{
- Dark: darkForeground,
- Light: lightForeground,
- }
-
- return theme
-}
-
-func init() {
- // Register the Tron theme with the theme manager
- RegisterTheme("tron", NewTronTheme())
-}