on main help sign in
chore(theme): use charmtone in glamour theme
commitfe3ad5bc8695759f6d1c704d35802bcd7286e35e authorChristian Rocha <christian@rocha.is> dateMon 30 Jun 2025, 11:01 (1 year ago) parent431a6c4
4 files changed+45−42
go.mod+3−3 go.sum+2 internal/tui/styles/crush.go+1 internal/tui/styles/theme.go+39−39
go.mod+3−3
@@ -18,7 +18,7 @@ require (
1818 github.com/charmbracelet/glamour/v2 v2.0.0-20250516160903-6f1e2c8f9ebe
1919 github.com/charmbracelet/lipgloss/v2 v2.0.0-beta.1.0.20250523195325-2d1af06b557c
2020 github.com/charmbracelet/x/ansi v0.9.3-0.20250602153603-fb931ed90413
21− github.com/charmbracelet/x/exp/charmtone v0.0.0-20250603201427-c31516f43444
21+ github.com/charmbracelet/x/exp/charmtone v0.0.0-20250627134340-c144409e381c
2222 github.com/charmbracelet/x/exp/golden v0.0.0-20250207160936-21c02780d27a
2323 github.com/disintegration/imageorient v0.0.0-20180920195336-8147d86e83ec
2424 github.com/fsnotify/fsnotify v1.8.0
@@ -41,7 +41,6 @@ require (
4141)
4242
4343require (
44− golang.org/x/term v0.31.0 // indirect
4544 cloud.google.com/go v0.116.0 // indirect
4645 cloud.google.com/go/auth v0.13.0 // indirect
4746 cloud.google.com/go/compute/metadata v0.6.0 // indirect
@@ -108,7 +107,7 @@ require (
108107 github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect
109108 github.com/sethvargo/go-retry v0.3.0 // indirect
110109 github.com/sourcegraph/conc v0.3.0 // indirect
111− github.com/spf13/afero v1.12.0 // indirect
110+ github.com/spf13/afero v1.12.0
112111 github.com/spf13/cast v1.7.1 // indirect
113112 github.com/spf13/pflag v1.0.6 // indirect
114113 github.com/subosito/gotenv v1.6.0 // indirect
@@ -132,6 +131,7 @@ require (
132131 golang.org/x/net v0.39.0 // indirect
133132 golang.org/x/sync v0.13.0 // indirect
134133 golang.org/x/sys v0.32.0 // indirect
134+ golang.org/x/term v0.31.0 // indirect
135135 golang.org/x/text v0.24.0 // indirect
136136 google.golang.org/genai v1.3.0
137137 google.golang.org/genproto/googleapis/rpc v0.0.0-20250324211829-b45e905df463 // indirect
go.sum+2
@@ -86,6 +86,8 @@ github.com/charmbracelet/x/cellbuf v0.0.14-0.20250516160309-24eee56f89fa h1:lphz
8686github.com/charmbracelet/x/cellbuf v0.0.14-0.20250516160309-24eee56f89fa/go.mod h1:xBlh2Yi3DL3zy/2n15kITpg0YZardf/aa/hgUaIM6Rk=
8787github.com/charmbracelet/x/exp/charmtone v0.0.0-20250603201427-c31516f43444 h1:IJDiTgVE56gkAGfq0lBEloWgkXMk4hl/bmuPoicI4R0=
8888github.com/charmbracelet/x/exp/charmtone v0.0.0-20250603201427-c31516f43444/go.mod h1:T9jr8CzFpjhFVHjNjKwbAD7KwBNyFnj2pntAO7F2zw0=
89+github.com/charmbracelet/x/exp/charmtone v0.0.0-20250627134340-c144409e381c h1:2GELBLPgfSbHU53bsQhR9XIgNuVZ6w+Rz8RWV5Lq+A4=
90+github.com/charmbracelet/x/exp/charmtone v0.0.0-20250627134340-c144409e381c/go.mod h1:T9jr8CzFpjhFVHjNjKwbAD7KwBNyFnj2pntAO7F2zw0=
8991github.com/charmbracelet/x/exp/golden v0.0.0-20250207160936-21c02780d27a h1:FsHEJ52OC4VuTzU8t+n5frMjLvpYWEznSr/u8tnkCYw=
9092github.com/charmbracelet/x/exp/golden v0.0.0-20250207160936-21c02780d27a/go.mod h1:wDlXFlCrmJ8J+swcL/MnGUuYnqgQdW9rhSD61oNMb6U=
9193github.com/charmbracelet/x/exp/slice v0.0.0-20250611152503-f53cdd7e01ef h1:v7qwsZ2OxzlwvpKwz8dtZXp7fIJlcDEUOyFBNE4fz4Q=
internal/tui/styles/crush.go+1
@@ -13,6 +13,7 @@ func NewCrushTheme() *Theme {
1313 Secondary: charmtone.Dolly,
1414 Tertiary: charmtone.Bok,
1515 Accent: charmtone.Zest,
16+
1617 // Backgrounds
1718 BgBase: charmtone.Pepper,
1819 BgBaseLighter: Lighten(charmtone.Pepper, 2),
internal/tui/styles/theme.go+39−39
@@ -13,6 +13,7 @@ import (
1313 "github.com/charmbracelet/crush/internal/exp/diffview"
1414 "github.com/charmbracelet/glamour/v2/ansi"
1515 "github.com/charmbracelet/lipgloss/v2"
16+ "github.com/charmbracelet/x/exp/charmtone"
1617 "github.com/lucasb-eyer/go-colorful"
1718 "github.com/rivo/uniseg"
1819)
@@ -191,13 +192,12 @@ func (t *Theme) buildStyles() *Styles {
191192 },
192193 },
193194
194− // TODO: update using the colors and add colors if missing
195195 Markdown: ansi.StyleConfig{
196196 Document: ansi.StyleBlock{
197197 StylePrimitive: ansi.StylePrimitive{
198198 // BlockPrefix: "\n",
199199 // BlockSuffix: "\n",
200− Color: stringPtr("252"),
200+ Color: stringPtr(charmtone.Smoke.Hex()),
201201 },
202202 // Margin: uintPtr(defaultMargin),
203203 },
@@ -212,7 +212,7 @@ func (t *Theme) buildStyles() *Styles {
212212 Heading: ansi.StyleBlock{
213213 StylePrimitive: ansi.StylePrimitive{
214214 BlockSuffix: "\n",
215− Color: stringPtr("39"),
215+ Color: stringPtr(charmtone.Malibu.Hex()),
216216 Bold: boolPtr(true),
217217 },
218218 },
@@ -220,8 +220,8 @@ func (t *Theme) buildStyles() *Styles {
220220 StylePrimitive: ansi.StylePrimitive{
221221 Prefix: " ",
222222 Suffix: " ",
223− Color: stringPtr("228"),
224− BackgroundColor: stringPtr("63"),
223+ Color: stringPtr(charmtone.Zest.Hex()),
224+ BackgroundColor: stringPtr(charmtone.Charple.Hex()),
225225 Bold: boolPtr(true),
226226 },
227227 },
@@ -248,7 +248,7 @@ func (t *Theme) buildStyles() *Styles {
248248 H6: ansi.StyleBlock{
249249 StylePrimitive: ansi.StylePrimitive{
250250 Prefix: "###### ",
251− Color: stringPtr("35"),
251+ Color: stringPtr(charmtone.Guac.Hex()),
252252 Bold: boolPtr(false),
253253 },
254254 },
@@ -262,7 +262,7 @@ func (t *Theme) buildStyles() *Styles {
262262 Bold: boolPtr(true),
263263 },
264264 HorizontalRule: ansi.StylePrimitive{
265− Color: stringPtr("240"),
265+ Color: stringPtr(charmtone.Charcoal.Hex()),
266266 Format: "\n--------\n",
267267 },
268268 Item: ansi.StylePrimitive{
@@ -277,117 +277,117 @@ func (t *Theme) buildStyles() *Styles {
277277 Unticked: "[ ] ",
278278 },
279279 Link: ansi.StylePrimitive{
280− Color: stringPtr("30"),
280+ Color: stringPtr(charmtone.Zinc.Hex()),
281281 Underline: boolPtr(true),
282282 },
283283 LinkText: ansi.StylePrimitive{
284− Color: stringPtr("35"),
284+ Color: stringPtr(charmtone.Guac.Hex()),
285285 Bold: boolPtr(true),
286286 },
287287 Image: ansi.StylePrimitive{
288− Color: stringPtr("212"),
288+ Color: stringPtr(charmtone.Cheeky.Hex()),
289289 Underline: boolPtr(true),
290290 },
291291 ImageText: ansi.StylePrimitive{
292− Color: stringPtr("243"),
292+ Color: stringPtr(charmtone.Squid.Hex()),
293293 Format: "Image: {{.text}} →",
294294 },
295295 Code: ansi.StyleBlock{
296296 StylePrimitive: ansi.StylePrimitive{
297297 Prefix: " ",
298298 Suffix: " ",
299− Color: stringPtr("203"),
300− BackgroundColor: stringPtr("236"),
299+ Color: stringPtr(charmtone.Coral.Hex()),
300+ BackgroundColor: stringPtr(charmtone.Charcoal.Hex()),
301301 },
302302 },
303303 CodeBlock: ansi.StyleCodeBlock{
304304 StyleBlock: ansi.StyleBlock{
305305 StylePrimitive: ansi.StylePrimitive{
306− Color: stringPtr("244"),
306+ Color: stringPtr(charmtone.Charcoal.Hex()),
307307 },
308308 Margin: uintPtr(defaultMargin),
309309 },
310310 Chroma: &ansi.Chroma{
311311 Text: ansi.StylePrimitive{
312− Color: stringPtr("#C4C4C4"),
312+ Color: stringPtr(charmtone.Smoke.Hex()),
313313 },
314314 Error: ansi.StylePrimitive{
315− Color: stringPtr("#F1F1F1"),
316− BackgroundColor: stringPtr("#F05B5B"),
315+ Color: stringPtr(charmtone.Butter.Hex()),
316+ BackgroundColor: stringPtr(charmtone.Sriracha.Hex()),
317317 },
318318 Comment: ansi.StylePrimitive{
319− Color: stringPtr("#676767"),
319+ Color: stringPtr(charmtone.Oyster.Hex()),
320320 },
321321 CommentPreproc: ansi.StylePrimitive{
322− Color: stringPtr("#FF875F"),
322+ Color: stringPtr(charmtone.Bengal.Hex()),
323323 },
324324 Keyword: ansi.StylePrimitive{
325− Color: stringPtr("#00AAFF"),
325+ Color: stringPtr(charmtone.Malibu.Hex()),
326326 },
327327 KeywordReserved: ansi.StylePrimitive{
328− Color: stringPtr("#FF5FD2"),
328+ Color: stringPtr(charmtone.Pony.Hex()),
329329 },
330330 KeywordNamespace: ansi.StylePrimitive{
331− Color: stringPtr("#FF5F87"),
331+ Color: stringPtr(charmtone.Pony.Hex()),
332332 },
333333 KeywordType: ansi.StylePrimitive{
334− Color: stringPtr("#6E6ED8"),
334+ Color: stringPtr(charmtone.Guppy.Hex()),
335335 },
336336 Operator: ansi.StylePrimitive{
337− Color: stringPtr("#EF8080"),
337+ Color: stringPtr(charmtone.Salmon.Hex()),
338338 },
339339 Punctuation: ansi.StylePrimitive{
340− Color: stringPtr("#E8E8A8"),
340+ Color: stringPtr(charmtone.Zest.Hex()),
341341 },
342342 Name: ansi.StylePrimitive{
343− Color: stringPtr("#C4C4C4"),
343+ Color: stringPtr(charmtone.Smoke.Hex()),
344344 },
345345 NameBuiltin: ansi.StylePrimitive{
346− Color: stringPtr("#FF8EC7"),
346+ Color: stringPtr(charmtone.Cheeky.Hex()),
347347 },
348348 NameTag: ansi.StylePrimitive{
349− Color: stringPtr("#B083EA"),
349+ Color: stringPtr(charmtone.Mauve.Hex()),
350350 },
351351 NameAttribute: ansi.StylePrimitive{
352− Color: stringPtr("#7A7AE6"),
352+ Color: stringPtr(charmtone.Hazy.Hex()),
353353 },
354354 NameClass: ansi.StylePrimitive{
355− Color: stringPtr("#F1F1F1"),
355+ Color: stringPtr(charmtone.Salt.Hex()),
356356 Underline: boolPtr(true),
357357 Bold: boolPtr(true),
358358 },
359359 NameDecorator: ansi.StylePrimitive{
360− Color: stringPtr("#FFFF87"),
360+ Color: stringPtr(charmtone.Citron.Hex()),
361361 },
362362 NameFunction: ansi.StylePrimitive{
363− Color: stringPtr("#00D787"),
363+ Color: stringPtr(charmtone.Guac.Hex()),
364364 },
365365 LiteralNumber: ansi.StylePrimitive{
366− Color: stringPtr("#6EEFC0"),
366+ Color: stringPtr(charmtone.Julep.Hex()),
367367 },
368368 LiteralString: ansi.StylePrimitive{
369− Color: stringPtr("#C69669"),
369+ Color: stringPtr(charmtone.Cumin.Hex()),
370370 },
371371 LiteralStringEscape: ansi.StylePrimitive{
372− Color: stringPtr("#AFFFD7"),
372+ Color: stringPtr(charmtone.Bok.Hex()),
373373 },
374374 GenericDeleted: ansi.StylePrimitive{
375− Color: stringPtr("#FD5B5B"),
375+ Color: stringPtr(charmtone.Coral.Hex()),
376376 },
377377 GenericEmph: ansi.StylePrimitive{
378378 Italic: boolPtr(true),
379379 },
380380 GenericInserted: ansi.StylePrimitive{
381− Color: stringPtr("#00D787"),
381+ Color: stringPtr(charmtone.Guac.Hex()),
382382 },
383383 GenericStrong: ansi.StylePrimitive{
384384 Bold: boolPtr(true),
385385 },
386386 GenericSubheading: ansi.StylePrimitive{
387− Color: stringPtr("#777777"),
387+ Color: stringPtr(charmtone.Squid.Hex()),
388388 },
389389 Background: ansi.StylePrimitive{
390− BackgroundColor: stringPtr("#373737"),
390+ BackgroundColor: stringPtr(charmtone.Charcoal.Hex()),
391391 },
392392 },
393393 },