@@ -13,6 +13,7 @@ import (
13 "github.com/charmbracelet/crush/internal/exp/diffview"
13 "github.com/charmbracelet/crush/internal/exp/diffview"
14 "github.com/charmbracelet/glamour/v2/ansi"
14 "github.com/charmbracelet/glamour/v2/ansi"
15 "github.com/charmbracelet/lipgloss/v2"
15 "github.com/charmbracelet/lipgloss/v2"
16+ "github.com/charmbracelet/x/exp/charmtone"
16 "github.com/lucasb-eyer/go-colorful"
17 "github.com/lucasb-eyer/go-colorful"
17 "github.com/rivo/uniseg"
18 "github.com/rivo/uniseg"
@@ -191,13 +192,12 @@ func (t *Theme) buildStyles() *Styles {
194− // TODO: update using the colors and add colors if missing
195 Markdown: ansi.StyleConfig{
195 Markdown: ansi.StyleConfig{
196 Document: ansi.StyleBlock{
196 Document: ansi.StyleBlock{
197 StylePrimitive: ansi.StylePrimitive{
197 StylePrimitive: ansi.StylePrimitive{
198 // BlockPrefix: "\n",
198 // BlockPrefix: "\n",
199 // BlockSuffix: "\n",
199 // BlockSuffix: "\n",
200− Color: stringPtr("252"),
200+ Color: stringPtr(charmtone.Smoke.Hex()),
202 // Margin: uintPtr(defaultMargin),
202 // Margin: uintPtr(defaultMargin),
@@ -212,7 +212,7 @@ func (t *Theme) buildStyles() *Styles {
212 Heading: ansi.StyleBlock{
212 Heading: ansi.StyleBlock{
213 StylePrimitive: ansi.StylePrimitive{
213 StylePrimitive: ansi.StylePrimitive{
214 BlockSuffix: "\n",
214 BlockSuffix: "\n",
215− Color: stringPtr("39"),
215+ Color: stringPtr(charmtone.Malibu.Hex()),
216 Bold: boolPtr(true),
216 Bold: boolPtr(true),
@@ -220,8 +220,8 @@ func (t *Theme) buildStyles() *Styles {
220 StylePrimitive: ansi.StylePrimitive{
220 StylePrimitive: ansi.StylePrimitive{
221 Prefix: " ",
221 Prefix: " ",
222 Suffix: " ",
222 Suffix: " ",
223− Color: stringPtr("228"),
223+ Color: stringPtr(charmtone.Zest.Hex()),
224− BackgroundColor: stringPtr("63"),
224+ BackgroundColor: stringPtr(charmtone.Charple.Hex()),
225 Bold: boolPtr(true),
225 Bold: boolPtr(true),
@@ -248,7 +248,7 @@ func (t *Theme) buildStyles() *Styles {
248 H6: ansi.StyleBlock{
248 H6: ansi.StyleBlock{
249 StylePrimitive: ansi.StylePrimitive{
249 StylePrimitive: ansi.StylePrimitive{
250 Prefix: "###### ",
250 Prefix: "###### ",
251− Color: stringPtr("35"),
251+ Color: stringPtr(charmtone.Guac.Hex()),
252 Bold: boolPtr(false),
252 Bold: boolPtr(false),
@@ -262,7 +262,7 @@ func (t *Theme) buildStyles() *Styles {
262 Bold: boolPtr(true),
262 Bold: boolPtr(true),
264 HorizontalRule: ansi.StylePrimitive{
264 HorizontalRule: ansi.StylePrimitive{
265− Color: stringPtr("240"),
265+ Color: stringPtr(charmtone.Charcoal.Hex()),
266 Format: "\n--------\n",
266 Format: "\n--------\n",
268 Item: ansi.StylePrimitive{
268 Item: ansi.StylePrimitive{
@@ -277,117 +277,117 @@ func (t *Theme) buildStyles() *Styles {
277 Unticked: "[ ] ",
277 Unticked: "[ ] ",
279 Link: ansi.StylePrimitive{
279 Link: ansi.StylePrimitive{
280− Color: stringPtr("30"),
280+ Color: stringPtr(charmtone.Zinc.Hex()),
281 Underline: boolPtr(true),
281 Underline: boolPtr(true),
283 LinkText: ansi.StylePrimitive{
283 LinkText: ansi.StylePrimitive{
284− Color: stringPtr("35"),
284+ Color: stringPtr(charmtone.Guac.Hex()),
285 Bold: boolPtr(true),
285 Bold: boolPtr(true),
287 Image: ansi.StylePrimitive{
287 Image: ansi.StylePrimitive{
288− Color: stringPtr("212"),
288+ Color: stringPtr(charmtone.Cheeky.Hex()),
289 Underline: boolPtr(true),
289 Underline: boolPtr(true),
291 ImageText: ansi.StylePrimitive{
291 ImageText: ansi.StylePrimitive{
292− Color: stringPtr("243"),
292+ Color: stringPtr(charmtone.Squid.Hex()),
293 Format: "Image: {{.text}} →",
293 Format: "Image: {{.text}} →",
295 Code: ansi.StyleBlock{
295 Code: ansi.StyleBlock{
296 StylePrimitive: ansi.StylePrimitive{
296 StylePrimitive: ansi.StylePrimitive{
297 Prefix: " ",
297 Prefix: " ",
298 Suffix: " ",
298 Suffix: " ",
299− Color: stringPtr("203"),
299+ Color: stringPtr(charmtone.Coral.Hex()),
300− BackgroundColor: stringPtr("236"),
300+ BackgroundColor: stringPtr(charmtone.Charcoal.Hex()),
303 CodeBlock: ansi.StyleCodeBlock{
303 CodeBlock: ansi.StyleCodeBlock{
304 StyleBlock: ansi.StyleBlock{
304 StyleBlock: ansi.StyleBlock{
305 StylePrimitive: ansi.StylePrimitive{
305 StylePrimitive: ansi.StylePrimitive{
306− Color: stringPtr("244"),
306+ Color: stringPtr(charmtone.Charcoal.Hex()),
308 Margin: uintPtr(defaultMargin),
308 Margin: uintPtr(defaultMargin),
310 Chroma: &ansi.Chroma{
310 Chroma: &ansi.Chroma{
311 Text: ansi.StylePrimitive{
311 Text: ansi.StylePrimitive{
312− Color: stringPtr("#C4C4C4"),
312+ Color: stringPtr(charmtone.Smoke.Hex()),
314 Error: ansi.StylePrimitive{
314 Error: ansi.StylePrimitive{
315− Color: stringPtr("#F1F1F1"),
315+ Color: stringPtr(charmtone.Butter.Hex()),
316− BackgroundColor: stringPtr("#F05B5B"),
316+ BackgroundColor: stringPtr(charmtone.Sriracha.Hex()),
318 Comment: ansi.StylePrimitive{
318 Comment: ansi.StylePrimitive{
319− Color: stringPtr("#676767"),
319+ Color: stringPtr(charmtone.Oyster.Hex()),
321 CommentPreproc: ansi.StylePrimitive{
321 CommentPreproc: ansi.StylePrimitive{
322− Color: stringPtr("#FF875F"),
322+ Color: stringPtr(charmtone.Bengal.Hex()),
324 Keyword: ansi.StylePrimitive{
324 Keyword: ansi.StylePrimitive{
325− Color: stringPtr("#00AAFF"),
325+ Color: stringPtr(charmtone.Malibu.Hex()),
327 KeywordReserved: ansi.StylePrimitive{
327 KeywordReserved: ansi.StylePrimitive{
328− Color: stringPtr("#FF5FD2"),
328+ Color: stringPtr(charmtone.Pony.Hex()),
330 KeywordNamespace: ansi.StylePrimitive{
330 KeywordNamespace: ansi.StylePrimitive{
331− Color: stringPtr("#FF5F87"),
331+ Color: stringPtr(charmtone.Pony.Hex()),
333 KeywordType: ansi.StylePrimitive{
333 KeywordType: ansi.StylePrimitive{
334− Color: stringPtr("#6E6ED8"),
334+ Color: stringPtr(charmtone.Guppy.Hex()),
336 Operator: ansi.StylePrimitive{
336 Operator: ansi.StylePrimitive{
337− Color: stringPtr("#EF8080"),
337+ Color: stringPtr(charmtone.Salmon.Hex()),
339 Punctuation: ansi.StylePrimitive{
339 Punctuation: ansi.StylePrimitive{
340− Color: stringPtr("#E8E8A8"),
340+ Color: stringPtr(charmtone.Zest.Hex()),
342 Name: ansi.StylePrimitive{
342 Name: ansi.StylePrimitive{
343− Color: stringPtr("#C4C4C4"),
343+ Color: stringPtr(charmtone.Smoke.Hex()),
345 NameBuiltin: ansi.StylePrimitive{
345 NameBuiltin: ansi.StylePrimitive{
346− Color: stringPtr("#FF8EC7"),
346+ Color: stringPtr(charmtone.Cheeky.Hex()),
348 NameTag: ansi.StylePrimitive{
348 NameTag: ansi.StylePrimitive{
349− Color: stringPtr("#B083EA"),
349+ Color: stringPtr(charmtone.Mauve.Hex()),
351 NameAttribute: ansi.StylePrimitive{
351 NameAttribute: ansi.StylePrimitive{
352− Color: stringPtr("#7A7AE6"),
352+ Color: stringPtr(charmtone.Hazy.Hex()),
354 NameClass: ansi.StylePrimitive{
354 NameClass: ansi.StylePrimitive{
355− Color: stringPtr("#F1F1F1"),
355+ Color: stringPtr(charmtone.Salt.Hex()),
356 Underline: boolPtr(true),
356 Underline: boolPtr(true),
357 Bold: boolPtr(true),
357 Bold: boolPtr(true),
359 NameDecorator: ansi.StylePrimitive{
359 NameDecorator: ansi.StylePrimitive{
360− Color: stringPtr("#FFFF87"),
360+ Color: stringPtr(charmtone.Citron.Hex()),
362 NameFunction: ansi.StylePrimitive{
362 NameFunction: ansi.StylePrimitive{
363− Color: stringPtr("#00D787"),
363+ Color: stringPtr(charmtone.Guac.Hex()),
365 LiteralNumber: ansi.StylePrimitive{
365 LiteralNumber: ansi.StylePrimitive{
366− Color: stringPtr("#6EEFC0"),
366+ Color: stringPtr(charmtone.Julep.Hex()),
368 LiteralString: ansi.StylePrimitive{
368 LiteralString: ansi.StylePrimitive{
369− Color: stringPtr("#C69669"),
369+ Color: stringPtr(charmtone.Cumin.Hex()),
371 LiteralStringEscape: ansi.StylePrimitive{
371 LiteralStringEscape: ansi.StylePrimitive{
372− Color: stringPtr("#AFFFD7"),
372+ Color: stringPtr(charmtone.Bok.Hex()),
374 GenericDeleted: ansi.StylePrimitive{
374 GenericDeleted: ansi.StylePrimitive{
375− Color: stringPtr("#FD5B5B"),
375+ Color: stringPtr(charmtone.Coral.Hex()),
377 GenericEmph: ansi.StylePrimitive{
377 GenericEmph: ansi.StylePrimitive{
378 Italic: boolPtr(true),
378 Italic: boolPtr(true),
380 GenericInserted: ansi.StylePrimitive{
380 GenericInserted: ansi.StylePrimitive{
381− Color: stringPtr("#00D787"),
381+ Color: stringPtr(charmtone.Guac.Hex()),
383 GenericStrong: ansi.StylePrimitive{
383 GenericStrong: ansi.StylePrimitive{
384 Bold: boolPtr(true),
384 Bold: boolPtr(true),
386 GenericSubheading: ansi.StylePrimitive{
386 GenericSubheading: ansi.StylePrimitive{
387− Color: stringPtr("#777777"),
387+ Color: stringPtr(charmtone.Squid.Hex()),
389 Background: ansi.StylePrimitive{
389 Background: ansi.StylePrimitive{
390− BackgroundColor: stringPtr("#373737"),
390+ BackgroundColor: stringPtr(charmtone.Charcoal.Hex()),