From bc94bc7e61e3c4faa355be60c2cbaa085aa1e176 Mon Sep 17 00:00:00 2001 From: Andrey Nering Date: Fri, 17 Apr 2026 19:17:45 -0300 Subject: [PATCH] WIP fix: attempt to address invisible text with terminal in light mode --- internal/ui/styles/styles.go | 190 +++++++++++++++++++++++++++++++++-- 1 file changed, 180 insertions(+), 10 deletions(-) diff --git a/internal/ui/styles/styles.go b/internal/ui/styles/styles.go index 12c5c99e0e2b9619777d64b746c053e0bd3e165b..813c6c0e96518016f7b78d3ffd05810f349f1398 100644 --- a/internal/ui/styles/styles.go +++ b/internal/ui/styles/styles.go @@ -459,6 +459,8 @@ func (s *Styles) ChromaTheme() chroma.StyleEntries { return chroma.StyleEntries{ chroma.Text: chromaStyle(rules.Chroma.Text), + chroma.TextWhitespace: chromaStyle(rules.Chroma.Text), + chroma.Other: chromaStyle(rules.Chroma.Text), chroma.Error: chromaStyle(rules.Chroma.Error), chroma.Comment: chromaStyle(rules.Chroma.Comment), chroma.CommentPreproc: chromaStyle(rules.Chroma.CommentPreproc), @@ -483,12 +485,48 @@ func (s *Styles) ChromaTheme() chroma.StyleEntries { chroma.LiteralDate: chromaStyle(rules.Chroma.LiteralDate), chroma.LiteralString: chromaStyle(rules.Chroma.LiteralString), chroma.LiteralStringEscape: chromaStyle(rules.Chroma.LiteralStringEscape), + chroma.LiteralOther: chromaStyle(rules.Chroma.Text), chroma.GenericDeleted: chromaStyle(rules.Chroma.GenericDeleted), chroma.GenericEmph: chromaStyle(rules.Chroma.GenericEmph), chroma.GenericInserted: chromaStyle(rules.Chroma.GenericInserted), chroma.GenericStrong: chromaStyle(rules.Chroma.GenericStrong), chroma.GenericSubheading: chromaStyle(rules.Chroma.GenericSubheading), chroma.Background: chromaStyle(rules.Chroma.Background), + // Additional Chroma token types that map to parent categories + // chroma.KeywordConstant: chromaStyle(rules.Chroma.Keyword), + // chroma.KeywordDeclaration: chromaStyle(rules.Chroma.Keyword), + // chroma.KeywordPseudo: chromaStyle(rules.Chroma.Keyword), + // chroma.NameVariable: chromaStyle(rules.Chroma.Name), + // chroma.NameLabel: chromaStyle(rules.Chroma.Name), + // chroma.NameNamespace: chromaStyle(rules.Chroma.Name), + // chroma.NameProperty: chromaStyle(rules.Chroma.Name), + // chroma.NameEntity: chromaStyle(rules.Chroma.Name), + // chroma.NameKeyword: chromaStyle(rules.Chroma.Keyword), + // chroma.NameOperator: chromaStyle(rules.Chroma.Operator), + // chroma.OperatorWord: chromaStyle(rules.Chroma.Operator), + // chroma.CommentHashbang: chromaStyle(rules.Chroma.Comment), + // chroma.CommentMultiline: chromaStyle(rules.Chroma.Comment), + // chroma.CommentSingle: chromaStyle(rules.Chroma.Comment), + // chroma.CommentSpecial: chromaStyle(rules.Chroma.Comment), + // chroma.LiteralStringAffix: chromaStyle(rules.Chroma.LiteralString), + // chroma.LiteralStringBacktick: chromaStyle(rules.Chroma.LiteralString), + // chroma.LiteralStringChar: chromaStyle(rules.Chroma.LiteralString), + // chroma.LiteralStringDelimiter: chromaStyle(rules.Chroma.LiteralString), + // chroma.LiteralStringDoc: chromaStyle(rules.Chroma.LiteralString), + // chroma.LiteralStringDouble: chromaStyle(rules.Chroma.LiteralString), + // chroma.LiteralStringHeredoc: chromaStyle(rules.Chroma.LiteralString), + // chroma.LiteralStringInterpol: chromaStyle(rules.Chroma.LiteralString), + // chroma.LiteralStringName: chromaStyle(rules.Chroma.LiteralString), + // chroma.LiteralStringOther: chromaStyle(rules.Chroma.LiteralString), + // chroma.LiteralStringRegex: chromaStyle(rules.Chroma.LiteralString), + // chroma.LiteralStringSingle: chromaStyle(rules.Chroma.LiteralString), + // chroma.LiteralStringSymbol: chromaStyle(rules.Chroma.LiteralString), + // chroma.LiteralNumberBin: chromaStyle(rules.Chroma.LiteralNumber), + // chroma.LiteralNumberFloat: chromaStyle(rules.Chroma.LiteralNumber), + // chroma.LiteralNumberHex: chromaStyle(rules.Chroma.LiteralNumber), + // chroma.LiteralNumberInteger: chromaStyle(rules.Chroma.LiteralNumber), + // chroma.LiteralNumberOct: chromaStyle(rules.Chroma.LiteralNumber), + // chroma.LiteralNumberByte: chromaStyle(rules.Chroma.LiteralNumber), } } @@ -641,9 +679,16 @@ func DefaultStyles() Styles { // Margin: new(uint(defaultMargin)), }, BlockQuote: ansi.StyleBlock{ - StylePrimitive: ansi.StylePrimitive{}, - Indent: new(uint(1)), - IndentToken: new("│ "), + StylePrimitive: ansi.StylePrimitive{ + Color: new(charmtone.Smoke.Hex()), + }, + Indent: new(uint(1)), + IndentToken: new("│ "), + }, + Paragraph: ansi.StyleBlock{ + StylePrimitive: ansi.StylePrimitive{ + Color: new(charmtone.Smoke.Hex()), + }, }, List: ansi.StyleList{ LevelIndent: defaultListIndent, @@ -693,12 +738,15 @@ func DefaultStyles() Styles { }, Strikethrough: ansi.StylePrimitive{ CrossedOut: new(true), + Color: new(charmtone.Smoke.Hex()), }, Emph: ansi.StylePrimitive{ Italic: new(true), + Color: new(charmtone.Smoke.Hex()), }, Strong: ansi.StylePrimitive{ - Bold: new(true), + Bold: new(true), + Color: new(charmtone.Smoke.Hex()), }, HorizontalRule: ansi.StylePrimitive{ Color: new(charmtone.Charcoal.Hex()), @@ -706,14 +754,21 @@ func DefaultStyles() Styles { }, Item: ansi.StylePrimitive{ BlockPrefix: "• ", + Color: new(charmtone.Smoke.Hex()), }, Enumeration: ansi.StylePrimitive{ BlockPrefix: ". ", + Color: new(charmtone.Smoke.Hex()), + }, + Text: ansi.StylePrimitive{ + Color: new(charmtone.Smoke.Hex()), }, Task: ansi.StyleTask{ - StylePrimitive: ansi.StylePrimitive{}, - Ticked: "[✓] ", - Unticked: "[ ] ", + StylePrimitive: ansi.StylePrimitive{ + Color: new(charmtone.Smoke.Hex()), + }, + Ticked: "[✓] ", + Unticked: "[ ] ", }, Link: ansi.StylePrimitive{ Color: new(charmtone.Zinc.Hex()), @@ -742,7 +797,7 @@ func DefaultStyles() Styles { CodeBlock: ansi.StyleCodeBlock{ StyleBlock: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ - Color: new(charmtone.Charcoal.Hex()), + Color: new(charmtone.Smoke.Hex()), }, Margin: new(uint(defaultMargin)), }, @@ -832,11 +887,24 @@ func DefaultStyles() Styles { }, Table: ansi.StyleTable{ StyleBlock: ansi.StyleBlock{ - StylePrimitive: ansi.StylePrimitive{}, + StylePrimitive: ansi.StylePrimitive{ + Color: new(charmtone.Smoke.Hex()), + }, }, }, DefinitionDescription: ansi.StylePrimitive{ BlockPrefix: "\n ", + Color: new(charmtone.Smoke.Hex()), + }, + HTMLBlock: ansi.StyleBlock{ + StylePrimitive: ansi.StylePrimitive{ + Color: new(charmtone.Smoke.Hex()), + }, + }, + HTMLSpan: ansi.StyleBlock{ + StylePrimitive: ansi.StylePrimitive{ + Color: new(charmtone.Smoke.Hex()), + }, }, } @@ -858,6 +926,12 @@ func DefaultStyles() Styles { Indent: new(uint(1)), IndentToken: new("│ "), }, + Paragraph: ansi.StyleBlock{ + StylePrimitive: ansi.StylePrimitive{ + Color: plainFg, + BackgroundColor: plainBg, + }, + }, List: ansi.StyleList{ LevelIndent: defaultListIndent, }, @@ -943,6 +1017,10 @@ func DefaultStyles() Styles { Color: plainFg, BackgroundColor: plainBg, }, + Text: ansi.StylePrimitive{ + Color: plainFg, + BackgroundColor: plainBg, + }, Task: ansi.StyleTask{ StylePrimitive: ansi.StylePrimitive{ Color: plainFg, @@ -982,11 +1060,91 @@ func DefaultStyles() Styles { CodeBlock: ansi.StyleCodeBlock{ StyleBlock: ansi.StyleBlock{ StylePrimitive: ansi.StylePrimitive{ - Color: plainFg, BackgroundColor: plainBg, }, Margin: new(uint(defaultMargin)), }, + Chroma: &ansi.Chroma{ + Text: ansi.StylePrimitive{ + Color: plainFg, + }, + Error: ansi.StylePrimitive{ + Color: new(charmtone.Butter.Hex()), + BackgroundColor: new(charmtone.Sriracha.Hex()), + }, + Comment: ansi.StylePrimitive{ + Color: plainFg, + }, + CommentPreproc: ansi.StylePrimitive{ + Color: plainFg, + }, + Keyword: ansi.StylePrimitive{ + Color: plainFg, + }, + KeywordReserved: ansi.StylePrimitive{ + Color: plainFg, + }, + KeywordNamespace: ansi.StylePrimitive{ + Color: plainFg, + }, + KeywordType: ansi.StylePrimitive{ + Color: plainFg, + }, + Operator: ansi.StylePrimitive{ + Color: plainFg, + }, + Punctuation: ansi.StylePrimitive{ + Color: plainFg, + }, + Name: ansi.StylePrimitive{ + Color: plainFg, + }, + NameBuiltin: ansi.StylePrimitive{ + Color: plainFg, + }, + NameTag: ansi.StylePrimitive{ + Color: plainFg, + }, + NameAttribute: ansi.StylePrimitive{ + Color: plainFg, + }, + NameClass: ansi.StylePrimitive{ + Color: plainFg, + }, + NameDecorator: ansi.StylePrimitive{ + Color: plainFg, + }, + NameFunction: ansi.StylePrimitive{ + Color: plainFg, + }, + LiteralNumber: ansi.StylePrimitive{ + Color: plainFg, + }, + LiteralString: ansi.StylePrimitive{ + Color: plainFg, + }, + LiteralStringEscape: ansi.StylePrimitive{ + Color: plainFg, + }, + GenericDeleted: ansi.StylePrimitive{ + Color: plainFg, + }, + GenericEmph: ansi.StylePrimitive{ + Italic: new(true), + }, + GenericInserted: ansi.StylePrimitive{ + Color: plainFg, + }, + GenericStrong: ansi.StylePrimitive{ + Bold: new(true), + }, + GenericSubheading: ansi.StylePrimitive{ + Color: plainFg, + }, + Background: ansi.StylePrimitive{ + BackgroundColor: plainBg, + }, + }, }, Table: ansi.StyleTable{ StyleBlock: ansi.StyleBlock{ @@ -1001,6 +1159,18 @@ func DefaultStyles() Styles { Color: plainFg, BackgroundColor: plainBg, }, + HTMLBlock: ansi.StyleBlock{ + StylePrimitive: ansi.StylePrimitive{ + Color: plainFg, + BackgroundColor: plainBg, + }, + }, + HTMLSpan: ansi.StyleBlock{ + StylePrimitive: ansi.StylePrimitive{ + Color: plainFg, + BackgroundColor: plainBg, + }, + }, } s.Help = help.Styles{