summaryrefslogtreecommitdiffhomepage
path: root/packages/tui/internal/theme/loader.go
diff options
context:
space:
mode:
authorAdam <[email protected]>2025-06-26 10:16:07 -0500
committerJay V <[email protected]>2025-06-26 17:21:53 -0400
commit2e26b58d160cc7cfc5c403cd63cbb30fad9fe8d0 (patch)
tree8adf56cd142dd6426bfa93aa8ed891d326f69231 /packages/tui/internal/theme/loader.go
parent31b56e5a05313fea9232bea4c9e90db00a2d23e7 (diff)
downloadopencode-2e26b58d160cc7cfc5c403cd63cbb30fad9fe8d0.tar.gz
opencode-2e26b58d160cc7cfc5c403cd63cbb30fad9fe8d0.zip
feat: default system theme (#419)
Co-authored-by: adamdottv <[email protected]>
Diffstat (limited to 'packages/tui/internal/theme/loader.go')
-rw-r--r--packages/tui/internal/theme/loader.go13
1 files changed, 11 insertions, 2 deletions
diff --git a/packages/tui/internal/theme/loader.go b/packages/tui/internal/theme/loader.go
index 7df46b7fe..82c2fcd24 100644
--- a/packages/tui/internal/theme/loader.go
+++ b/packages/tui/internal/theme/loader.go
@@ -171,7 +171,7 @@ func (r *colorResolver) resolveColor(key string, value any) (any, error) {
switch v := value.(type) {
case string:
- if strings.HasPrefix(v, "#") {
+ if strings.HasPrefix(v, "#") || v == "none" {
return v, nil
}
return r.resolveReference(v)
@@ -205,7 +205,7 @@ func (r *colorResolver) resolveColor(key string, value any) (any, error) {
func (r *colorResolver) resolveColorValue(value any) (any, error) {
switch v := value.(type) {
case string:
- if strings.HasPrefix(v, "#") {
+ if strings.HasPrefix(v, "#") || v == "none" {
return v, nil
}
return r.resolveReference(v)
@@ -240,6 +240,12 @@ func (r *colorResolver) resolveReference(ref string) (any, error) {
func parseResolvedColor(value any) (compat.AdaptiveColor, error) {
switch v := value.(type) {
case string:
+ if v == "none" {
+ return compat.AdaptiveColor{
+ Dark: lipgloss.NoColor{},
+ Light: lipgloss.NoColor{},
+ }, nil
+ }
return compat.AdaptiveColor{
Dark: lipgloss.Color(v),
Light: lipgloss.Color(v),
@@ -277,6 +283,9 @@ func parseResolvedColor(value any) (compat.AdaptiveColor, error) {
func parseColorValue(value any) (color.Color, error) {
switch v := value.(type) {
case string:
+ if v == "none" {
+ return lipgloss.NoColor{}, nil
+ }
return lipgloss.Color(v), nil
case float64:
return lipgloss.Color(fmt.Sprintf("%d", int(v))), nil