@@ -58,28 +58,19 @@ const (
5858)
5959
6060type Styles struct {
61− WindowTooSmall lipgloss.Style
62−
63− // Reusable text styles
64− Base lipgloss.Style
65− Muted lipgloss.Style
66− HalfMuted lipgloss.Style
67− Subtle lipgloss.Style
68−
69− // Tags
70− TagBase lipgloss.Style
71− TagError lipgloss.Style
72− TagInfo lipgloss.Style
73−
7461 // Header
7562 Header struct {
76− Charm lipgloss.Style // Style for "Charm™" label
77− Diagonals lipgloss.Style // Style for diagonal separators (╱)
78− Percentage lipgloss.Style // Style for context percentage
79− Keystroke lipgloss.Style // Style for keystroke hints (e.g., "ctrl+d")
80− KeystrokeTip lipgloss.Style // Style for keystroke action text (e.g., "open", "close")
81− WorkingDir lipgloss.Style // Style for current working directory
82− Separator lipgloss.Style // Style for separator dots (•)
63+ Charm lipgloss.Style // Style for "Charm™" label
64+ Diagonals lipgloss.Style // Style for diagonal separators (╱)
65+ Percentage lipgloss.Style // Style for context percentage
66+ Keystroke lipgloss.Style // Style for keystroke hints (e.g., "ctrl+d")
67+ KeystrokeTip lipgloss.Style // Style for keystroke action text (e.g., "open", "close")
68+ WorkingDir lipgloss.Style // Style for current working directory
69+ Separator lipgloss.Style // Style for separator dots (•)
70+ Wrapper lipgloss.Style // Outer container for the entire header row
71+ LogoGradCanvas lipgloss.Style // Canvas for the compact "CRUSH" gradient
72+ LogoGradFromColor color.Color // "CRUSH" wordmark gradient start
73+ LogoGradToColor color.Color // "CRUSH" wordmark gradient end
8374 }
8475
8576 CompactDetails struct {
@@ -88,43 +79,18 @@ type Styles struct {
8879 Title lipgloss.Style
8980 }
9081
91− // Panels
92− PanelMuted lipgloss.Style
93− PanelBase lipgloss.Style
94−
95− // Line numbers for code blocks
96− LineNumber lipgloss.Style
97−
98− // Message borders
99− FocusedMessageBorder lipgloss.Border
100−
10182 // Tool calls
102− ToolCallPending lipgloss.Style
103− ToolCallError lipgloss.Style
104− ToolCallSuccess lipgloss.Style
105− ToolCallCancelled lipgloss.Style
106− EarlyStateMessage lipgloss.Style
83+ ToolCallSuccess lipgloss.Style
10784
10885 // Text selection
10986 TextSelection lipgloss.Style
11087
111− // LSP and MCP status indicators
112− ResourceGroupTitle lipgloss.Style
113− ResourceOfflineIcon lipgloss.Style
114− ResourceBusyIcon lipgloss.Style
115− ResourceErrorIcon lipgloss.Style
116− ResourceOnlineIcon lipgloss.Style
117− ResourceName lipgloss.Style
118− ResourceStatus lipgloss.Style
119− ResourceAdditionalText lipgloss.Style
120−
12188 // Markdown & Chroma
12289 Markdown ansi.StyleConfig
123− PlainMarkdown ansi.StyleConfig
90+ QuietMarkdown ansi.StyleConfig
12491
12592 // Inputs
12693 TextInput textinput.Styles
127− TextArea textarea.Styles
12894
12995 // Help
13096 Help help.Styles
@@ -136,62 +102,55 @@ type Styles struct {
136102 FilePicker filepicker.Styles
137103
138104 // Buttons
139− ButtonFocus lipgloss.Style
140− ButtonBlur lipgloss.Style
141−
142− // Borders
143− BorderFocus lipgloss.Style
144− BorderBlur lipgloss.Style
105+ Button struct {
106+ Focused lipgloss.Style
107+ Blurred lipgloss.Style
108+ }
145109
146110 // Editor
147− EditorPromptNormalFocused lipgloss.Style
148− EditorPromptNormalBlurred lipgloss.Style
149− EditorPromptYoloIconFocused lipgloss.Style
150− EditorPromptYoloIconBlurred lipgloss.Style
151− EditorPromptYoloDotsFocused lipgloss.Style
152− EditorPromptYoloDotsBlurred lipgloss.Style
111+ Editor struct {
112+ Textarea textarea.Styles
113+
114+ // Normal mode prompt (default "::: ").
115+ PromptNormalFocused lipgloss.Style
116+ PromptNormalBlurred lipgloss.Style
117+
118+ // YOLO mode prompt (" ! " icon + ":::" dots).
119+ PromptYoloIconFocused lipgloss.Style
120+ PromptYoloIconBlurred lipgloss.Style
121+ PromptYoloDotsFocused lipgloss.Style
122+ PromptYoloDotsBlurred lipgloss.Style
123+ }
153124
154125 // Radio
155− RadioOn lipgloss.Style
156− RadioOff lipgloss.Style
126+ Radio struct {
127+ On lipgloss.Style
128+ Off lipgloss.Style
129+ Label lipgloss.Style // Text next to a radio button
130+ }
157131
158132 // Background
159133 Background color.Color
160134
161135 // Logo
162− LogoFieldColor color.Color
163− LogoTitleColorA color.Color
164− LogoTitleColorB color.Color
165− LogoCharmColor color.Color
166− LogoVersionColor color.Color
167−
168− // Colors - semantic colors for tool rendering.
169− Primary color.Color
170− Secondary color.Color
171− Tertiary color.Color
172− BgBase color.Color
173− BgBaseLighter color.Color
174− BgSubtle color.Color
175− BgOverlay color.Color
176− FgBase color.Color
177− FgMuted color.Color
178− FgHalfMuted color.Color
179− FgSubtle color.Color
180− Border color.Color
181− BorderColor color.Color // Border focus color
182− Error color.Color
183− Warning color.Color
184− Info color.Color
185− White color.Color
186− BlueLight color.Color
187− Blue color.Color
188− BlueDark color.Color
189− GreenLight color.Color
190− Green color.Color
191− GreenDark color.Color
192− Red color.Color
193− RedDark color.Color
194− Yellow color.Color
136+ Logo struct {
137+ FieldColor color.Color
138+ TitleColorA color.Color
139+ TitleColorB color.Color
140+ CharmColor color.Color
141+ VersionColor color.Color
142+ SmallCharm lipgloss.Style // "Charm™" label in SmallRender
143+ SmallDiagonals lipgloss.Style // Diagonal line fill in SmallRender
144+ GradCanvas lipgloss.Style // Blank canvas for gradient painting
145+ SmallGradFromColor color.Color // Small "Crush" wordmark gradient start
146+ SmallGradToColor color.Color // Small "Crush" wordmark gradient end
147+ }
148+
149+ // Working indicator gradient (spinners/shimmers on assistant "thinking",
150+ // tool-call pending, CLI generating, startup).
151+ WorkingGradFromColor color.Color
152+ WorkingGradToColor color.Color
153+ WorkingLabelColor color.Color // Label text color next to the indicator
195154
196155 // Section Title
197156 Section struct {
@@ -214,41 +173,80 @@ type Styles struct {
214173 InfoDiagnostic lipgloss.Style
215174 }
216175
176+ // Sidebar
177+ Sidebar struct {
178+ SessionTitle lipgloss.Style // Current session title at top of sidebar
179+ WorkingDir lipgloss.Style // Working directory path (PrettyPath)
180+ }
181+
182+ // ModelInfo (model name, provider, reasoning, token/cost summary)
183+ ModelInfo struct {
184+ Icon lipgloss.Style // Model icon (◇)
185+ Name lipgloss.Style // Model name text
186+ Provider lipgloss.Style // "via <provider>" text
187+ ProviderFallback lipgloss.Style // Provider on its own second line
188+ Reasoning lipgloss.Style // Reasoning effort text
189+ TokenCount lipgloss.Style // "(42K)" token count
190+ TokenPercentage lipgloss.Style // "42%" percent of context window
191+ Cost lipgloss.Style // "$0.42" cost readout
192+ }
193+
194+ // Resource styles the LSP/MCP/skills sidebar lists: their heading,
195+ // each row's status icon, name, status text, and truncation hints.
196+ Resource struct {
197+ Heading lipgloss.Style // Section header ("LSPs", "MCPs", "Skills")
198+ Name lipgloss.Style // Resource name (e.g. "gopls")
199+ StatusText lipgloss.Style // Row status description (e.g. "starting...")
200+ OfflineIcon lipgloss.Style // Offline/unstarted/stopped status icon
201+ DisabledIcon lipgloss.Style // Disabled status icon
202+ BusyIcon lipgloss.Style // Busy/starting status icon
203+ ErrorIcon lipgloss.Style // Error status icon
204+ OnlineIcon lipgloss.Style // Online/ready status icon
205+ AdditionalText lipgloss.Style // "None" and "…and N more" text
206+ CapabilityCount lipgloss.Style // "N tools" / "N prompts" / "N resources"
207+ RowTitleBase lipgloss.Style // Base style applied over row titles in common.Status
208+ RowDescBase lipgloss.Style // Base style applied over row descriptions in common.Status
209+ DefaultTitleFg color.Color // Default title color when opt is zero
210+ DefaultDescFg color.Color // Default description color when opt is zero
211+ }
212+
217213 // Files
218214 Files struct {
219− Path lipgloss.Style
220− Additions lipgloss.Style
221− Deletions lipgloss.Style
215+ Path lipgloss.Style
216+ Additions lipgloss.Style
217+ Deletions lipgloss.Style
218+ SectionTitle lipgloss.Style // "Modified Files" heading
219+ EmptyMessage lipgloss.Style // "None" placeholder when no files
220+ TruncationHint lipgloss.Style // "…and N more" message
222221 }
223222
224223 // Chat
225− Chat struct {
226− // Message item styles
227− Message struct {
228− UserBlurred lipgloss.Style
229− UserFocused lipgloss.Style
230− AssistantBlurred lipgloss.Style
231− AssistantFocused lipgloss.Style
232− NoContent lipgloss.Style
233− Thinking lipgloss.Style
234− ErrorTag lipgloss.Style
235− ErrorTitle lipgloss.Style
236− ErrorDetails lipgloss.Style
237− ToolCallFocused lipgloss.Style
238− ToolCallCompact lipgloss.Style
239− ToolCallBlurred lipgloss.Style
240− SectionHeader lipgloss.Style
241−
242− // Thinking section styles
243− ThinkingBox lipgloss.Style // Background for thinking content
244− ThinkingTruncationHint lipgloss.Style // "… (N lines hidden)" hint
245− ThinkingFooterTitle lipgloss.Style // "Thought for" text
246− ThinkingFooterDuration lipgloss.Style // Duration value
247− AssistantInfoIcon lipgloss.Style
248− AssistantInfoModel lipgloss.Style
249− AssistantInfoProvider lipgloss.Style
250− AssistantInfoDuration lipgloss.Style
251− }
224+ // Messages - chat message item styles
225+ Messages struct {
226+ UserBlurred lipgloss.Style
227+ UserFocused lipgloss.Style
228+ AssistantBlurred lipgloss.Style
229+ AssistantFocused lipgloss.Style
230+ NoContent lipgloss.Style
231+ Thinking lipgloss.Style
232+ ErrorTag lipgloss.Style
233+ ErrorTitle lipgloss.Style
234+ ErrorDetails lipgloss.Style
235+ ToolCallFocused lipgloss.Style
236+ ToolCallCompact lipgloss.Style
237+ ToolCallBlurred lipgloss.Style
238+ SectionHeader lipgloss.Style
239+
240+ // Thinking section styles
241+ ThinkingBox lipgloss.Style // Background for thinking content
242+ ThinkingTruncationHint lipgloss.Style // "… (N lines hidden)" hint
243+ ThinkingFooterTitle lipgloss.Style // "Thought for" text
244+ ThinkingFooterDuration lipgloss.Style // Duration value
245+ AssistantInfoIcon lipgloss.Style
246+ AssistantInfoModel lipgloss.Style
247+ AssistantInfoProvider lipgloss.Style
248+ AssistantInfoDuration lipgloss.Style
249+ AssistantCanceled lipgloss.Style // Italic "Canceled" footer
252250 }
253251
254252 // Tool - styles for tool call rendering
@@ -316,6 +314,9 @@ type Styles struct {
316314 TodoCompletedIcon lipgloss.Style // Completed todo icon
317315 TodoInProgressIcon lipgloss.Style // In-progress todo icon
318316 TodoPendingIcon lipgloss.Style // Pending todo icon
317+ TodoStatusNote lipgloss.Style // " · completed N" / " · starting task" trailing note
318+ TodoItem lipgloss.Style // Default body text for todo list items
319+ TodoJustStarted lipgloss.Style // Text of the just-started todo in tool-call bodies
319320
320321 // MCP tools
321322 MCPName lipgloss.Style // The mcp name
@@ -329,17 +330,26 @@ type Styles struct {
329330 ResourceSize lipgloss.Style
330331 MediaType lipgloss.Style
331332
332− // Docker MCP tools
333− DockerMCPActionAdd lipgloss.Style // Docker MCP add action (green)
334− DockerMCPActionDel lipgloss.Style // Docker MCP remove action (red)
333+ // Action verb colors for tool-call headers.
334+ ActionCreate lipgloss.Style // Constructive actions (e.g. "Add", "Create")
335+ ActionDestroy lipgloss.Style // Destructive actions (e.g. "Remove", "Delete")
336+
337+ // Tool result helpers.
338+ ResultEmpty lipgloss.Style // "No results" placeholder
339+ ResultTruncation lipgloss.Style // "… and N more" truncation line
340+ ResultItemName lipgloss.Style // Item name (left column in result lists)
341+ ResultItemDesc lipgloss.Style // Item description (right column)
335342 }
336343
337344 // Dialog styles
338345 Dialog struct {
339− Title lipgloss.Style
340− TitleText lipgloss.Style
341− TitleError lipgloss.Style
342− TitleAccent lipgloss.Style
346+ Title lipgloss.Style
347+ TitleText lipgloss.Style
348+ TitleError lipgloss.Style
349+ TitleAccent lipgloss.Style
350+ TitleLineBase lipgloss.Style // Base for the gradient ╱╱╱ next to dialog titles
351+ TitleGradFromColor color.Color // Default dialog title ╱╱╱ gradient start
352+ TitleGradToColor color.Color // Default dialog title ╱╱╱ gradient end
343353 // View is the main content area style.
344354 View lipgloss.Style
345355 PrimaryText lipgloss.Style
@@ -381,7 +391,43 @@ type Styles struct {
381391 InputRequiredMarkFocused lipgloss.Style
382392 }
383393
384− Commands struct{}
394+ // ListItem styles the info-text rendered alongside list items (commands,
395+ // models, reasoning options). Sessions have their own overrides below.
396+ ListItem struct {
397+ InfoBlurred lipgloss.Style
398+ InfoFocused lipgloss.Style
399+ }
400+
401+ Models struct {
402+ ConfiguredText lipgloss.Style // "Configured" badge shown on the ModelGroup header
403+ }
404+
405+ Permissions struct {
406+ KeyText lipgloss.Style // Left key cell of a key/value row
407+ ValueText lipgloss.Style // Right value cell of a key/value row
408+ ParamsBg color.Color // Background color behind highlighted JSON parameters
409+ }
410+
411+ Quit struct {
412+ Content lipgloss.Style // Wrapper for the quit dialog's inner content
413+ Frame lipgloss.Style // Outer rounded border framing the quit dialog
414+ }
415+
416+ APIKey struct {
417+ Spinner lipgloss.Style // Loading spinner while validating the key
418+ }
419+
420+ OAuth struct {
421+ Spinner lipgloss.Style // Loading spinner
422+ Instructions lipgloss.Style // Emphasized instruction text
423+ UserCode lipgloss.Style // Prominent user code display
424+ Success lipgloss.Style // Positive status text (e.g. "Authentication successful!")
425+ Link lipgloss.Style // Underlined verification URL
426+ Enter lipgloss.Style // "enter" keyword highlight in instructions
427+ ErrorText lipgloss.Style // Error message when authentication fails
428+ StatusText lipgloss.Style // Narrative status text ("Initializing...", "Verifying...", etc.)
429+ UserCodeBg color.Color // Background color of the centered user-code box
430+ }
385431
386432 ImagePreview lipgloss.Style
387433
@@ -404,6 +450,9 @@ type Styles struct {
404450 RenamingTitleGradientFromColor color.Color
405451 RenamingTitleGradientToColor color.Color
406452 RenamingPlaceholder lipgloss.Style
453+
454+ InfoBlurred lipgloss.Style // Timestamp text on unfocused session items
455+ InfoFocused lipgloss.Style // Timestamp text on the focused session item
407456 }
408457 }
409458
@@ -441,14 +490,22 @@ type Styles struct {
441490
442491 // Pills styles for todo/queue pills
443492 Pills struct {
444− Base lipgloss.Style // Base pill style with padding
445− Focused lipgloss.Style // Focused pill with visible border
446− Blurred lipgloss.Style // Blurred pill with hidden border
447− QueueItemPrefix lipgloss.Style // Prefix for queue list items
448− HelpKey lipgloss.Style // Keystroke hint style
449− HelpText lipgloss.Style // Help action text style
450− Area lipgloss.Style // Pills area container
451− TodoSpinner lipgloss.Style // Todo spinner style
493+ Base lipgloss.Style // Base pill style with padding
494+ Focused lipgloss.Style // Focused pill with visible border
495+ Blurred lipgloss.Style // Blurred pill with hidden border
496+ QueueItemPrefix lipgloss.Style // Prefix for queue list items
497+ QueueItemText lipgloss.Style // Queue list item body text
498+ QueueLabel lipgloss.Style // "N Queued" label text
499+ QueueIconBase lipgloss.Style // Base style for queue gradient triangles
500+ QueueGradFromColor color.Color // Start color for queue indicator gradient
501+ QueueGradToColor color.Color // End color for queue indicator gradient
502+ TodoLabel lipgloss.Style // "To-Do" label
503+ TodoProgress lipgloss.Style // Todo ratio (e.g. "2/5")
504+ TodoCurrentTask lipgloss.Style // Current in-progress task name
505+ TodoSpinner lipgloss.Style // Todo spinner style
506+ HelpKey lipgloss.Style // Keystroke hint style
507+ HelpText lipgloss.Style // Help action text style
508+ Area lipgloss.Style // Pills area container
452509 }
453510}
454511
@@ -552,38 +609,17 @@ func DefaultStyles() Styles {
552609 normalBorder := lipgloss.NormalBorder()
553610
554611 base := lipgloss.NewStyle().Foreground(fgBase)
612+ muted := lipgloss.NewStyle().Foreground(fgMuted)
613+ subtle := lipgloss.NewStyle().Foreground(fgSubtle)
555614
556615 s := Styles{}
557616
558617 s.Background = bgBase
559618
560619 // Populate color fields
561− s.Primary = primary
562− s.Secondary = secondary
563− s.Tertiary = tertiary
564− s.BgBase = bgBase
565− s.BgBaseLighter = bgBaseLighter
566− s.BgSubtle = bgSubtle
567− s.BgOverlay = bgOverlay
568− s.FgBase = fgBase
569− s.FgMuted = fgMuted
570− s.FgHalfMuted = fgHalfMuted
571− s.FgSubtle = fgSubtle
572− s.Border = border
573− s.BorderColor = borderFocus
574− s.Error = error
575− s.Warning = warning
576− s.Info = info
577− s.White = white
578− s.BlueLight = blueLight
579− s.Blue = blue
580− s.BlueDark = blueDark
581− s.GreenLight = greenLight
582− s.Green = green
583− s.GreenDark = greenDark
584− s.Red = red
585− s.RedDark = redDark
586− s.Yellow = yellow
620+ s.WorkingGradFromColor = primary
621+ s.WorkingGradToColor = secondary
622+ s.WorkingLabelColor = fgBase
587623
588624 s.TextInput = textinput.Styles{
589625 Focused: textinput.StyleState{
@@ -605,7 +641,7 @@ func DefaultStyles() Styles {
605641 },
606642 }
607643
608− s.TextArea = textarea.Styles{
644+ s.Editor.Textarea = textarea.Styles{
609645 Focused: textarea.StyleState{
610646 Base: base,
611647 Text: base,
@@ -840,10 +876,10 @@ func DefaultStyles() Styles {
840876 },
841877 }
842878
843− // PlainMarkdown style - muted colors on subtle background for thinking content.
879+ // QuietMarkdown style - muted colors on subtle background for thinking content.
844880 plainBg := new(bgBaseLighter.Hex())
845881 plainFg := new(fgMuted.Hex())
846− s.PlainMarkdown = ansi.StyleConfig{
882+ s.QuietMarkdown = ansi.StyleConfig{
847883 Document: ansi.StyleBlock{
848884 StylePrimitive: ansi.StylePrimitive{
849885 Color: plainFg,
@@ -1081,72 +1117,47 @@ func DefaultStyles() Styles {
10811117 }
10821118
10831119 // borders
1084− s.FocusedMessageBorder = lipgloss.Border{Left: BorderThick}
1085−
1086− // text presets
1087− s.Base = lipgloss.NewStyle().Foreground(fgBase)
1088− s.Muted = lipgloss.NewStyle().Foreground(fgMuted)
1089− s.HalfMuted = lipgloss.NewStyle().Foreground(fgHalfMuted)
1090− s.Subtle = lipgloss.NewStyle().Foreground(fgSubtle)
1091−
1092− s.WindowTooSmall = s.Muted
1093−
1094− // tag presets
1095− s.TagBase = lipgloss.NewStyle().Padding(0, 1).Foreground(white)
1096− s.TagError = s.TagBase.Background(redDark)
1097− s.TagInfo = s.TagBase.Background(blueLight)
1120+ s.ToolCallSuccess = lipgloss.NewStyle().Foreground(green).SetString(ToolSuccess)
10981121
1099− // Compact header styles
11001122 s.Header.Charm = base.Foreground(secondary)
11011123 s.Header.Diagonals = base.Foreground(primary)
1102− s.Header.Percentage = s.Muted
1103− s.Header.Keystroke = s.Muted
1104− s.Header.KeystrokeTip = s.Subtle
1105− s.Header.WorkingDir = s.Muted
1106− s.Header.Separator = s.Subtle
1107−
1108− s.CompactDetails.Title = s.Base
1109− s.CompactDetails.View = s.Base.Padding(0, 1, 1, 1).Border(lipgloss.RoundedBorder()).BorderForeground(borderFocus)
1110− s.CompactDetails.Version = s.Muted
1111−
1112− // panels
1113− s.PanelMuted = s.Muted.Background(bgBaseLighter)
1114− s.PanelBase = lipgloss.NewStyle().Background(bgBase)
1115−
1116− // code line number
1117− s.LineNumber = lipgloss.NewStyle().Foreground(fgMuted).Background(bgBase).PaddingRight(1).PaddingLeft(1)
1118−
1119− // Tool calls
1120− s.ToolCallPending = lipgloss.NewStyle().Foreground(greenDark).SetString(ToolPending)
1121− s.ToolCallError = lipgloss.NewStyle().Foreground(redDark).SetString(ToolError)
1122− s.ToolCallSuccess = lipgloss.NewStyle().Foreground(green).SetString(ToolSuccess)
1123− // Cancelled uses muted tone but same glyph as pending
1124− s.ToolCallCancelled = s.Muted.SetString(ToolPending)
1125− s.EarlyStateMessage = s.Subtle.PaddingLeft(2)
1124+ s.Header.Percentage = muted
1125+ s.Header.Keystroke = muted
1126+ s.Header.KeystrokeTip = subtle
1127+ s.Header.WorkingDir = muted
1128+ s.Header.Separator = subtle
1129+ s.Header.Wrapper = lipgloss.NewStyle().Foreground(fgBase)
1130+ s.Header.LogoGradCanvas = lipgloss.NewStyle()
1131+ s.Header.LogoGradFromColor = secondary
1132+ s.Header.LogoGradToColor = primary
1133+
1134+ s.CompactDetails.Title = base
1135+ s.CompactDetails.View = base.Padding(0, 1, 1, 1).Border(lipgloss.RoundedBorder()).BorderForeground(borderFocus)
1136+ s.CompactDetails.Version = lipgloss.NewStyle().Foreground(border)
11261137
11271138 // Tool rendering styles
11281139 s.Tool.IconPending = base.Foreground(greenDark).SetString(ToolPending)
11291140 s.Tool.IconSuccess = base.Foreground(green).SetString(ToolSuccess)
11301141 s.Tool.IconError = base.Foreground(redDark).SetString(ToolError)
1131− s.Tool.IconCancelled = s.Muted.SetString(ToolPending)
1142+ s.Tool.IconCancelled = muted.SetString(ToolPending)
11321143
11331144 s.Tool.NameNormal = base.Foreground(blue)
11341145 s.Tool.NameNested = base.Foreground(blue)
11351146
1136− s.Tool.ParamMain = s.Subtle
1137− s.Tool.ParamKey = s.Subtle
1147+ s.Tool.ParamMain = subtle
1148+ s.Tool.ParamKey = subtle
11381149
11391150 // Content rendering - prepared styles that accept width parameter
1140− s.Tool.ContentLine = s.Muted.Background(bgBaseLighter)
1141− s.Tool.ContentTruncation = s.Muted.Background(bgBaseLighter)
1142− s.Tool.ContentCodeLine = s.Base.Background(bgBase).PaddingLeft(2)
1143− s.Tool.ContentCodeTruncation = s.Muted.Background(bgBase).PaddingLeft(2)
1151+ s.Tool.ContentLine = muted.Background(bgBaseLighter)
1152+ s.Tool.ContentTruncation = muted.Background(bgBaseLighter)
1153+ s.Tool.ContentCodeLine = base.Background(bgBase).PaddingLeft(2)
1154+ s.Tool.ContentCodeTruncation = muted.Background(bgBase).PaddingLeft(2)
11441155 s.Tool.ContentCodeBg = bgBase
11451156 s.Tool.Body = base.PaddingLeft(2)
11461157
11471158 // Deprecated - kept for backward compatibility
1148− s.Tool.ContentBg = s.Muted.Background(bgBaseLighter)
1149− s.Tool.ContentText = s.Muted
1159+ s.Tool.ContentBg = muted.Background(bgBaseLighter)
1160+ s.Tool.ContentText = muted
11501161 s.Tool.ContentLineNumber = base.Foreground(fgMuted).Background(bgBase).PaddingRight(1).PaddingLeft(1)
11511162
11521163 s.Tool.StateWaiting = base.Foreground(fgSubtle)
@@ -1156,7 +1167,7 @@ func DefaultStyles() Styles {
11561167 s.Tool.ErrorMessage = base.Foreground(fgHalfMuted)
11571168
11581169 // Diff and multi-edit styles
1159− s.Tool.DiffTruncation = s.Muted.Background(bgBaseLighter).PaddingLeft(2)
1170+ s.Tool.DiffTruncation = muted.Background(bgBaseLighter).PaddingLeft(2)
11601171 s.Tool.NoteTag = base.Padding(0, 1).Background(info).Foreground(white)
11611172 s.Tool.NoteMessage = base.Foreground(fgHalfMuted)
11621173
@@ -1166,12 +1177,12 @@ func DefaultStyles() Styles {
11661177 s.Tool.JobIconSuccess = base.Foreground(green)
11671178 s.Tool.JobToolName = base.Foreground(blue)
11681179 s.Tool.JobAction = base.Foreground(blueDark)
1169− s.Tool.JobPID = s.Muted
1170− s.Tool.JobDescription = s.Subtle
1180+ s.Tool.JobPID = muted
1181+ s.Tool.JobDescription = subtle
11711182
11721183 // Agent task styles
11731184 s.Tool.AgentTaskTag = base.Bold(true).Padding(0, 1).MarginLeft(2).Background(blueLight).Foreground(white)
1174− s.Tool.AgentPrompt = s.Muted
1185+ s.Tool.AgentPrompt = muted
11751186
11761187 // Agentic fetch styles
11771188 s.Tool.AgenticFetchPromptTag = base.Bold(true).Padding(0, 1).MarginLeft(2).Background(green).Foreground(border)
@@ -1181,6 +1192,9 @@ func DefaultStyles() Styles {
11811192 s.Tool.TodoCompletedIcon = base.Foreground(green)
11821193 s.Tool.TodoInProgressIcon = base.Foreground(greenDark)
11831194 s.Tool.TodoPendingIcon = base.Foreground(fgMuted)
1195+ s.Tool.TodoStatusNote = lipgloss.NewStyle().Foreground(fgSubtle)
1196+ s.Tool.TodoItem = lipgloss.NewStyle().Foreground(fgBase)
1197+ s.Tool.TodoJustStarted = lipgloss.NewStyle().Foreground(fgBase)
11841198
11851199 // MCP styles
11861200 s.Tool.MCPName = base.Foreground(blue)
@@ -1194,103 +1208,138 @@ func DefaultStyles() Styles {
11941208 s.Tool.MediaType = base
11951209 s.Tool.ResourceSize = base.Foreground(fgMuted)
11961210
1197− // Docker MCP styles
1198− s.Tool.DockerMCPActionAdd = base.Foreground(greenLight)
1199− s.Tool.DockerMCPActionDel = base.Foreground(red)
1211+ // Tool-call action verbs and result-list styling.
1212+ s.Tool.ActionCreate = lipgloss.NewStyle().Foreground(greenLight)
1213+ s.Tool.ActionDestroy = lipgloss.NewStyle().Foreground(red)
1214+ s.Tool.ResultEmpty = lipgloss.NewStyle().Foreground(fgSubtle)
1215+ s.Tool.ResultTruncation = lipgloss.NewStyle().Foreground(fgSubtle)
1216+ s.Tool.ResultItemName = lipgloss.NewStyle().Foreground(fgBase)
1217+ s.Tool.ResultItemDesc = lipgloss.NewStyle().Foreground(fgSubtle)
12001218
12011219 // Buttons
1202− s.ButtonFocus = lipgloss.NewStyle().Foreground(white).Background(secondary)
1203− s.ButtonBlur = s.Base.Background(bgSubtle)
1204−
1205− // Borders
1206− s.BorderFocus = lipgloss.NewStyle().BorderForeground(borderFocus).Border(lipgloss.RoundedBorder()).Padding(1, 2)
1220+ s.Button.Focused = lipgloss.NewStyle().Foreground(white).Background(secondary)
1221+ s.Button.Blurred = lipgloss.NewStyle().Foreground(fgBase).Background(bgSubtle)
12071222
12081223 // Editor
1209− s.EditorPromptNormalFocused = lipgloss.NewStyle().Foreground(greenDark).SetString("::: ")
1210− s.EditorPromptNormalBlurred = s.EditorPromptNormalFocused.Foreground(fgMuted)
1211− s.EditorPromptYoloIconFocused = lipgloss.NewStyle().MarginRight(1).Foreground(charmtone.Oyster).Background(charmtone.Citron).Bold(true).SetString(" ! ")
1212− s.EditorPromptYoloIconBlurred = s.EditorPromptYoloIconFocused.Foreground(charmtone.Pepper).Background(charmtone.Squid)
1213− s.EditorPromptYoloDotsFocused = lipgloss.NewStyle().MarginRight(1).Foreground(charmtone.Zest).SetString(":::")
1214− s.EditorPromptYoloDotsBlurred = s.EditorPromptYoloDotsFocused.Foreground(charmtone.Squid)
1215−
1216− s.RadioOn = s.HalfMuted.SetString(RadioOn)
1217− s.RadioOff = s.HalfMuted.SetString(RadioOff)
1218−
1219− // Logo colors
1220− s.LogoFieldColor = primary
1221− s.LogoTitleColorA = secondary
1222− s.LogoTitleColorB = primary
1223− s.LogoCharmColor = secondary
1224− s.LogoVersionColor = primary
1224+ s.Editor.PromptNormalFocused = lipgloss.NewStyle().Foreground(greenDark).SetString("::: ")
1225+ s.Editor.PromptNormalBlurred = s.Editor.PromptNormalFocused.Foreground(fgMuted)
1226+ s.Editor.PromptYoloIconFocused = lipgloss.NewStyle().MarginRight(1).Foreground(charmtone.Oyster).Background(charmtone.Citron).Bold(true).SetString(" ! ")
1227+ s.Editor.PromptYoloIconBlurred = s.Editor.PromptYoloIconFocused.Foreground(charmtone.Pepper).Background(charmtone.Squid)
1228+ s.Editor.PromptYoloDotsFocused = lipgloss.NewStyle().MarginRight(1).Foreground(charmtone.Zest).SetString(":::")
1229+ s.Editor.PromptYoloDotsBlurred = s.Editor.PromptYoloDotsFocused.Foreground(charmtone.Squid)
1230+
1231+ s.Radio.On = lipgloss.NewStyle().Foreground(fgHalfMuted).SetString(RadioOn)
1232+ s.Radio.Off = lipgloss.NewStyle().Foreground(fgHalfMuted).SetString(RadioOff)
1233+ s.Radio.Label = lipgloss.NewStyle().Foreground(fgHalfMuted)
1234+
1235+ // Logo
1236+ s.Logo.FieldColor = primary
1237+ s.Logo.TitleColorA = secondary
1238+ s.Logo.TitleColorB = primary
1239+ s.Logo.CharmColor = secondary
1240+ s.Logo.VersionColor = primary
1241+ s.Logo.SmallCharm = lipgloss.NewStyle().Foreground(secondary)
1242+ s.Logo.SmallDiagonals = lipgloss.NewStyle().Foreground(primary)
1243+ s.Logo.GradCanvas = lipgloss.NewStyle()
1244+ s.Logo.SmallGradFromColor = secondary
1245+ s.Logo.SmallGradToColor = primary
12251246
12261247 // Section
1227− s.Section.Title = s.Subtle
1228− s.Section.Line = s.Base.Foreground(charmtone.Charcoal)
1248+ s.Section.Title = subtle
1249+ s.Section.Line = base.Foreground(charmtone.Charcoal)
12291250
12301251 // Initialize
1231− s.Initialize.Header = s.Base
1232− s.Initialize.Content = s.Muted
1233− s.Initialize.Accent = s.Base.Foreground(greenDark)
1234−
1235− // LSP and MCP status.
1236− s.ResourceGroupTitle = lipgloss.NewStyle().Foreground(charmtone.Oyster)
1237− s.ResourceOfflineIcon = lipgloss.NewStyle().Foreground(charmtone.Iron).SetString("●")
1238− s.ResourceBusyIcon = s.ResourceOfflineIcon.Foreground(charmtone.Citron)
1239− s.ResourceErrorIcon = s.ResourceOfflineIcon.Foreground(charmtone.Coral)
1240− s.ResourceOnlineIcon = s.ResourceOfflineIcon.Foreground(charmtone.Guac)
1241− s.ResourceName = lipgloss.NewStyle().Foreground(charmtone.Squid)
1242− s.ResourceStatus = lipgloss.NewStyle().Foreground(charmtone.Oyster)
1243− s.ResourceAdditionalText = lipgloss.NewStyle().Foreground(charmtone.Oyster)
1252+ s.Initialize.Header = base
1253+ s.Initialize.Content = muted
1254+ s.Initialize.Accent = base.Foreground(greenDark)
1255+
1256+ // ResourceGroup (LSP/MCP/skills sidebar lists).
1257+ s.Resource.Heading = lipgloss.NewStyle().Foreground(charmtone.Oyster)
1258+ s.Resource.Name = lipgloss.NewStyle().Foreground(charmtone.Squid)
1259+ s.Resource.StatusText = lipgloss.NewStyle().Foreground(charmtone.Oyster)
1260+ s.Resource.OfflineIcon = lipgloss.NewStyle().Foreground(charmtone.Iron).SetString("●")
1261+ s.Resource.BusyIcon = s.Resource.OfflineIcon.Foreground(charmtone.Citron)
1262+ s.Resource.ErrorIcon = s.Resource.OfflineIcon.Foreground(charmtone.Coral)
1263+ s.Resource.OnlineIcon = s.Resource.OfflineIcon.Foreground(charmtone.Guac)
1264+ s.Resource.DisabledIcon = lipgloss.NewStyle().Foreground(fgMuted).SetString("●")
1265+ s.Resource.AdditionalText = lipgloss.NewStyle().Foreground(charmtone.Oyster)
1266+ s.Resource.CapabilityCount = lipgloss.NewStyle().Foreground(fgSubtle)
1267+ s.Resource.RowTitleBase = lipgloss.NewStyle().Foreground(fgBase)
1268+ s.Resource.RowDescBase = lipgloss.NewStyle().Foreground(fgBase)
1269+ s.Resource.DefaultTitleFg = fgMuted
1270+ s.Resource.DefaultDescFg = fgSubtle
12441271
12451272 // LSP
1246− s.LSP.ErrorDiagnostic = s.Base.Foreground(redDark)
1247− s.LSP.WarningDiagnostic = s.Base.Foreground(warning)
1248− s.LSP.HintDiagnostic = s.Base.Foreground(fgHalfMuted)
1249− s.LSP.InfoDiagnostic = s.Base.Foreground(info)
1273+ s.LSP.ErrorDiagnostic = base.Foreground(redDark)
1274+ s.LSP.WarningDiagnostic = base.Foreground(warning)
1275+ s.LSP.HintDiagnostic = base.Foreground(fgHalfMuted)
1276+ s.LSP.InfoDiagnostic = base.Foreground(info)
12501277
12511278 // Files
1252− s.Files.Path = s.Muted
1253− s.Files.Additions = s.Base.Foreground(greenDark)
1254− s.Files.Deletions = s.Base.Foreground(redDark)
1279+ s.Files.Path = lipgloss.NewStyle().Foreground(fgMuted)
1280+ s.Files.Additions = lipgloss.NewStyle().Foreground(greenDark)
1281+ s.Files.Deletions = lipgloss.NewStyle().Foreground(redDark)
1282+ s.Files.SectionTitle = lipgloss.NewStyle().Foreground(fgSubtle)
1283+ s.Files.EmptyMessage = lipgloss.NewStyle().Foreground(fgSubtle)
1284+ s.Files.TruncationHint = lipgloss.NewStyle().Foreground(fgSubtle)
1285+
1286+ // Sidebar
1287+ s.Sidebar.SessionTitle = lipgloss.NewStyle().Foreground(fgMuted)
1288+ s.Sidebar.WorkingDir = lipgloss.NewStyle().Foreground(fgMuted)
1289+
1290+ // ModelInfo
1291+ s.ModelInfo.Icon = lipgloss.NewStyle().Foreground(fgSubtle)
1292+ s.ModelInfo.Name = lipgloss.NewStyle().Foreground(fgBase)
1293+ s.ModelInfo.Provider = lipgloss.NewStyle().Foreground(fgMuted)
1294+ s.ModelInfo.ProviderFallback = lipgloss.NewStyle().Foreground(fgMuted).PaddingLeft(2)
1295+ s.ModelInfo.Reasoning = lipgloss.NewStyle().Foreground(fgSubtle).PaddingLeft(2)
1296+ s.ModelInfo.TokenCount = lipgloss.NewStyle().Foreground(fgSubtle)
1297+ s.ModelInfo.TokenPercentage = lipgloss.NewStyle().Foreground(fgMuted)
1298+ s.ModelInfo.Cost = lipgloss.NewStyle().Foreground(fgMuted)
1299+
1300+ // ResourceGroup
1301+ s.Resource.DefaultTitleFg = fgMuted
1302+ s.Resource.DefaultDescFg = fgSubtle
12551303
12561304 // Chat
12571305 messageFocussedBorder := lipgloss.Border{
12581306 Left: "▌",
12591307 }
12601308
1261− s.Chat.Message.NoContent = lipgloss.NewStyle().Foreground(fgBase)
1262− s.Chat.Message.UserBlurred = s.Chat.Message.NoContent.PaddingLeft(1).BorderLeft(true).
1309+ s.Messages.NoContent = lipgloss.NewStyle().Foreground(fgBase)
1310+ s.Messages.UserBlurred = s.Messages.NoContent.PaddingLeft(1).BorderLeft(true).
12631311 BorderForeground(primary).BorderStyle(normalBorder)
1264− s.Chat.Message.UserFocused = s.Chat.Message.NoContent.PaddingLeft(1).BorderLeft(true).
1312+ s.Messages.UserFocused = s.Messages.NoContent.PaddingLeft(1).BorderLeft(true).
12651313 BorderForeground(primary).BorderStyle(messageFocussedBorder)
1266− s.Chat.Message.AssistantBlurred = s.Chat.Message.NoContent.PaddingLeft(2)
1267− s.Chat.Message.AssistantFocused = s.Chat.Message.NoContent.PaddingLeft(1).BorderLeft(true).
1314+ s.Messages.AssistantBlurred = s.Messages.NoContent.PaddingLeft(2)
1315+ s.Messages.AssistantFocused = s.Messages.NoContent.PaddingLeft(1).BorderLeft(true).
12681316 BorderForeground(greenDark).BorderStyle(messageFocussedBorder)
1269− s.Chat.Message.Thinking = lipgloss.NewStyle().MaxHeight(10)
1270− s.Chat.Message.ErrorTag = lipgloss.NewStyle().Padding(0, 1).
1317+ s.Messages.Thinking = lipgloss.NewStyle().MaxHeight(10)
1318+ s.Messages.ErrorTag = lipgloss.NewStyle().Padding(0, 1).
12711319 Background(red).Foreground(white)
1272− s.Chat.Message.ErrorTitle = lipgloss.NewStyle().Foreground(fgHalfMuted)
1273− s.Chat.Message.ErrorDetails = lipgloss.NewStyle().Foreground(fgSubtle)
1320+ s.Messages.ErrorTitle = lipgloss.NewStyle().Foreground(fgHalfMuted)
1321+ s.Messages.ErrorDetails = lipgloss.NewStyle().Foreground(fgSubtle)
12741322
12751323 // Message item styles
1276− s.Chat.Message.ToolCallFocused = s.Muted.PaddingLeft(1).
1324+ s.Messages.ToolCallFocused = muted.PaddingLeft(1).
12771325 BorderStyle(messageFocussedBorder).
12781326 BorderLeft(true).
12791327 BorderForeground(greenDark)
1280− s.Chat.Message.ToolCallBlurred = s.Muted.PaddingLeft(2)
1328+ s.Messages.ToolCallBlurred = muted.PaddingLeft(2)
12811329 // No padding or border for compact tool calls within messages
1282− s.Chat.Message.ToolCallCompact = s.Muted
1283− s.Chat.Message.SectionHeader = s.Base.PaddingLeft(2)
1284− s.Chat.Message.AssistantInfoIcon = s.Subtle
1285− s.Chat.Message.AssistantInfoModel = s.Muted
1286− s.Chat.Message.AssistantInfoProvider = s.Subtle
1287− s.Chat.Message.AssistantInfoDuration = s.Subtle
1330+ s.Messages.ToolCallCompact = muted
1331+ s.Messages.SectionHeader = base.PaddingLeft(2)
1332+ s.Messages.AssistantInfoIcon = subtle
1333+ s.Messages.AssistantInfoModel = muted
1334+ s.Messages.AssistantInfoProvider = subtle
1335+ s.Messages.AssistantInfoDuration = subtle
1336+ s.Messages.AssistantCanceled = lipgloss.NewStyle().Foreground(fgBase).Italic(true)
12881337
12891338 // Thinking section styles
1290− s.Chat.Message.ThinkingBox = s.Subtle.Background(bgBaseLighter)
1291− s.Chat.Message.ThinkingTruncationHint = s.Muted
1292− s.Chat.Message.ThinkingFooterTitle = s.Muted
1293− s.Chat.Message.ThinkingFooterDuration = s.Subtle
1339+ s.Messages.ThinkingBox = subtle.Background(bgBaseLighter)
1340+ s.Messages.ThinkingTruncationHint = muted
1341+ s.Messages.ThinkingFooterTitle = muted
1342+ s.Messages.ThinkingFooterDuration = subtle
12941343
12951344 // Text selection.
12961345 s.TextSelection = lipgloss.NewStyle().Foreground(charmtone.Salt).Background(charmtone.Charple)
@@ -1300,6 +1349,25 @@ func DefaultStyles() Styles {
13001349 s.Dialog.TitleText = base.Foreground(primary)
13011350 s.Dialog.TitleError = base.Foreground(red)
13021351 s.Dialog.TitleAccent = base.Foreground(green).Bold(true)
1352+ s.Dialog.TitleLineBase = lipgloss.NewStyle()
1353+ s.Dialog.TitleGradFromColor = primary
1354+ s.Dialog.TitleGradToColor = secondary
1355+
1356+ // Dialog.ListItem (commands, reasoning, models)
1357+ s.Dialog.ListItem.InfoBlurred = lipgloss.NewStyle().Foreground(fgBase)
1358+ s.Dialog.ListItem.InfoFocused = lipgloss.NewStyle().Foreground(fgBase)
1359+
1360+ // Dialog.Models
1361+ s.Dialog.Models.ConfiguredText = lipgloss.NewStyle().Foreground(fgSubtle)
1362+
1363+ // Dialog.Permissions
1364+ s.Dialog.Permissions.KeyText = lipgloss.NewStyle().Foreground(fgMuted)
1365+ s.Dialog.Permissions.ValueText = lipgloss.NewStyle().Foreground(fgBase)
1366+ s.Dialog.Permissions.ParamsBg = bgSubtle
1367+
1368+ // Dialog.Quit
1369+ s.Dialog.Quit.Content = lipgloss.NewStyle().Foreground(fgBase)
1370+ s.Dialog.Quit.Frame = lipgloss.NewStyle().BorderForeground(borderFocus).Border(lipgloss.RoundedBorder()).Padding(1, 2)
13031371 s.Dialog.View = base.Border(lipgloss.RoundedBorder()).BorderForeground(borderFocus)
13041372 s.Dialog.PrimaryText = base.Padding(0, 1).Foreground(primary)
13051373 s.Dialog.SecondaryText = base.Padding(0, 1).Foreground(fgSubtle)
@@ -1323,6 +1391,20 @@ func DefaultStyles() Styles {
13231391
13241392 s.Dialog.ImagePreview = lipgloss.NewStyle().Padding(0, 1).Foreground(fgSubtle)
13251393
1394+ // API key input dialog
1395+ s.Dialog.APIKey.Spinner = base.Foreground(green)
1396+
1397+ // OAuth dialog
1398+ s.Dialog.OAuth.Spinner = base.Foreground(greenLight)
1399+ s.Dialog.OAuth.Instructions = lipgloss.NewStyle().Foreground(white)
1400+ s.Dialog.OAuth.UserCode = lipgloss.NewStyle().Bold(true).Foreground(white)
1401+ s.Dialog.OAuth.Success = lipgloss.NewStyle().Foreground(greenLight)
1402+ s.Dialog.OAuth.Link = lipgloss.NewStyle().Foreground(greenDark).Underline(true)
1403+ s.Dialog.OAuth.Enter = lipgloss.NewStyle().Foreground(primary)
1404+ s.Dialog.OAuth.ErrorText = lipgloss.NewStyle().Foreground(error)
1405+ s.Dialog.OAuth.StatusText = lipgloss.NewStyle().Foreground(fgMuted)
1406+ s.Dialog.OAuth.UserCodeBg = bgBaseLighter
1407+
13261408 s.Dialog.Arguments.Content = base.Padding(1)
13271409 s.Dialog.Arguments.Description = base.MarginBottom(1).MaxHeight(3)
13281410 s.Dialog.Arguments.InputLabelBlurred = base.Foreground(fgMuted)
@@ -1332,20 +1414,22 @@ func DefaultStyles() Styles {
13321414
13331415 s.Dialog.Sessions.DeletingTitle = s.Dialog.Title.Foreground(red)
13341416 s.Dialog.Sessions.DeletingView = s.Dialog.View.BorderForeground(red)
1335− s.Dialog.Sessions.DeletingMessage = s.Base.Padding(1)
1417+ s.Dialog.Sessions.DeletingMessage = base.Padding(1)
13361418 s.Dialog.Sessions.DeletingTitleGradientFromColor = red
1337− s.Dialog.Sessions.DeletingTitleGradientToColor = s.Primary
1419+ s.Dialog.Sessions.DeletingTitleGradientToColor = primary
13381420 s.Dialog.Sessions.DeletingItemBlurred = s.Dialog.NormalItem.Foreground(fgSubtle)
13391421 s.Dialog.Sessions.DeletingItemFocused = s.Dialog.SelectedItem.Background(red).Foreground(charmtone.Butter)
13401422
13411423 s.Dialog.Sessions.RenamingingTitle = s.Dialog.Title.Foreground(charmtone.Zest)
13421424 s.Dialog.Sessions.RenamingView = s.Dialog.View.BorderForeground(charmtone.Zest)
1343− s.Dialog.Sessions.RenamingingMessage = s.Base.Padding(1)
1425+ s.Dialog.Sessions.RenamingingMessage = base.Padding(1)
13441426 s.Dialog.Sessions.RenamingTitleGradientFromColor = charmtone.Zest
13451427 s.Dialog.Sessions.RenamingTitleGradientToColor = charmtone.Bok
13461428 s.Dialog.Sessions.RenamingItemBlurred = s.Dialog.NormalItem.Foreground(fgSubtle)
13471429 s.Dialog.Sessions.RenamingingItemFocused = s.Dialog.SelectedItem.UnsetBackground().UnsetForeground()
13481430 s.Dialog.Sessions.RenamingPlaceholder = base.Foreground(charmtone.Squid)
1431+ s.Dialog.Sessions.InfoBlurred = lipgloss.NewStyle().Foreground(fgSubtle)
1432+ s.Dialog.Sessions.InfoFocused = lipgloss.NewStyle().Foreground(fgBase)
13491433
13501434 s.Status.Help = lipgloss.NewStyle().Padding(0, 1)
13511435 s.Status.SuccessIndicator = base.Foreground(bgSubtle).Background(green).Padding(0, 1).Bold(true).SetString("OKAY!")
@@ -1375,11 +1459,19 @@ func DefaultStyles() Styles {
13751459 s.Pills.Base = base.Padding(0, 1)
13761460 s.Pills.Focused = base.Padding(0, 1).BorderStyle(lipgloss.RoundedBorder()).BorderForeground(bgOverlay)
13771461 s.Pills.Blurred = base.Padding(0, 1).BorderStyle(lipgloss.HiddenBorder())
1378− s.Pills.QueueItemPrefix = s.Muted.SetString(" •")
1379− s.Pills.HelpKey = s.Muted
1380− s.Pills.HelpText = s.Subtle
1462+ s.Pills.QueueItemPrefix = lipgloss.NewStyle().Foreground(fgMuted).SetString(" •")
1463+ s.Pills.QueueItemText = lipgloss.NewStyle().Foreground(fgMuted)
1464+ s.Pills.QueueLabel = lipgloss.NewStyle().Foreground(fgBase)
1465+ s.Pills.QueueIconBase = lipgloss.NewStyle().Foreground(fgBase)
1466+ s.Pills.QueueGradFromColor = redDark
1467+ s.Pills.QueueGradToColor = secondary
1468+ s.Pills.TodoLabel = lipgloss.NewStyle().Foreground(fgBase)
1469+ s.Pills.TodoProgress = lipgloss.NewStyle().Foreground(fgMuted)
1470+ s.Pills.TodoCurrentTask = lipgloss.NewStyle().Foreground(fgSubtle)
1471+ s.Pills.TodoSpinner = lipgloss.NewStyle().Foreground(greenDark)
1472+ s.Pills.HelpKey = lipgloss.NewStyle().Foreground(fgMuted)
1473+ s.Pills.HelpText = lipgloss.NewStyle().Foreground(fgSubtle)
13811474 s.Pills.Area = base
1382− s.Pills.TodoSpinner = base.Foreground(greenDark)
13831475
13841476 return s
13851477}