textbringer 25 → 27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,70 +2,71 @@
2
2
  # Based on https://github.com/catppuccin/nvim
3
3
  #
4
4
  # Dark variant: Mocha Light variant: Latte
5
+ # GUI hex values from the official palette definitions.
5
6
 
6
7
  Textbringer::Theme.define "catppuccin" do |t|
7
8
  t.palette :dark do |p|
8
9
  # Catppuccin Mocha base tones
9
- p.color :text, hex: "#d7d7ff", ansi: "white"
10
- p.color :subtext1, hex: "#afafd7", ansi: "white"
11
- p.color :subtext0, hex: "#afafd7", ansi: "white"
12
- p.color :overlay2, hex: "#8787af", ansi: "white"
13
- p.color :overlay1, hex: "#8787af", ansi: "white"
14
- p.color :overlay0, hex: "#767676", ansi: "brightblack"
15
- p.color :surface2, hex: "#626262", ansi: "brightblack"
16
- p.color :surface1, hex: "#4e4e4e", ansi: "brightblack"
17
- p.color :surface0, hex: "#3a3a3a", ansi: "brightblack"
18
- p.color :base, hex: "#262626", ansi: "black"
19
- p.color :mantle, hex: "#1c1c1c", ansi: "black"
20
- p.color :crust, hex: "#121212", ansi: "black"
10
+ p.color :text, hex: "#cdd6f4", ansi: "white"
11
+ p.color :subtext1, hex: "#bac2de", ansi: "white"
12
+ p.color :subtext0, hex: "#a6adc8", ansi: "white"
13
+ p.color :overlay2, hex: "#9399b2", ansi: "white"
14
+ p.color :overlay1, hex: "#7f849c", ansi: "brightblack"
15
+ p.color :overlay0, hex: "#6c7086", ansi: "brightblack"
16
+ p.color :surface2, hex: "#585b70", ansi: "brightblack"
17
+ p.color :surface1, hex: "#45475a", ansi: "brightblack"
18
+ p.color :surface0, hex: "#313244", ansi: "brightblack"
19
+ p.color :base, hex: "#1e1e2e", ansi: "black"
20
+ p.color :mantle, hex: "#181825", ansi: "black"
21
+ p.color :crust, hex: "#11111b", ansi: "black"
21
22
 
22
23
  # Catppuccin Mocha accent colors
23
- p.color :red, hex: "#ff87af", ansi: "red"
24
- p.color :maroon, hex: "#d7afaf", ansi: "red"
25
- p.color :peach, hex: "#ffaf87", ansi: "yellow"
26
- p.color :yellow, hex: "#ffd7af", ansi: "yellow"
27
- p.color :green, hex: "#afd7af", ansi: "green"
28
- p.color :teal, hex: "#87d7d7", ansi: "cyan"
29
- p.color :sky, hex: "#87d7d7", ansi: "cyan"
30
- p.color :sapphire, hex: "#87d7ff", ansi: "cyan"
31
- p.color :blue, hex: "#87afff", ansi: "blue"
32
- p.color :lavender, hex: "#afafff", ansi: "blue"
33
- p.color :mauve, hex: "#d7afff", ansi: "magenta"
34
- p.color :pink, hex: "#ffafd7", ansi: "magenta"
35
- p.color :flamingo, hex: "#ffd7d7", ansi: "red"
36
- p.color :rosewater, hex: "#ffd7d7", ansi: "red"
24
+ p.color :red, hex: "#f38ba8", ansi: "red"
25
+ p.color :maroon, hex: "#eba0ac", ansi: "red"
26
+ p.color :peach, hex: "#fab387", ansi: "yellow"
27
+ p.color :yellow, hex: "#f9e2af", ansi: "yellow"
28
+ p.color :green, hex: "#a6e3a1", ansi: "green"
29
+ p.color :teal, hex: "#94e2d5", ansi: "cyan"
30
+ p.color :sky, hex: "#89dceb", ansi: "cyan"
31
+ p.color :sapphire, hex: "#74c7ec", ansi: "cyan"
32
+ p.color :blue, hex: "#89b4fa", ansi: "blue"
33
+ p.color :lavender, hex: "#b4befe", ansi: "blue"
34
+ p.color :mauve, hex: "#cba6f7", ansi: "magenta"
35
+ p.color :pink, hex: "#f5c2e7", ansi: "magenta"
36
+ p.color :flamingo, hex: "#f2cdcd", ansi: "red"
37
+ p.color :rosewater, hex: "#f5e0dc", ansi: "red"
37
38
  end
38
39
 
39
40
  t.palette :light do |p|
40
41
  # Catppuccin Latte base tones
41
- p.color :text, hex: "#585858", ansi: "black"
42
- p.color :subtext1, hex: "#5f5f87", ansi: "black"
43
- p.color :subtext0, hex: "#767676", ansi: "brightblack"
44
- p.color :overlay2, hex: "#878787", ansi: "brightblack"
45
- p.color :overlay1, hex: "#949494", ansi: "white"
46
- p.color :overlay0, hex: "#a8a8a8", ansi: "white"
47
- p.color :surface2, hex: "#b2b2b2", ansi: "white"
48
- p.color :surface1, hex: "#c6c6c6", ansi: "white"
49
- p.color :surface0, hex: "#d0d0d0", ansi: "white"
50
- p.color :base, hex: "#eeeeee", ansi: "white"
51
- p.color :mantle, hex: "#eeeeee", ansi: "white"
52
- p.color :crust, hex: "#e4e4e4", ansi: "white"
42
+ p.color :text, hex: "#4c4f69", ansi: "black"
43
+ p.color :subtext1, hex: "#5c5f77", ansi: "black"
44
+ p.color :subtext0, hex: "#6c6f85", ansi: "brightblack"
45
+ p.color :overlay2, hex: "#7c7f93", ansi: "brightblack"
46
+ p.color :overlay1, hex: "#8c8fa1", ansi: "white"
47
+ p.color :overlay0, hex: "#9ca0b0", ansi: "white"
48
+ p.color :surface2, hex: "#acb0be", ansi: "white"
49
+ p.color :surface1, hex: "#bcc0cc", ansi: "white"
50
+ p.color :surface0, hex: "#ccd0da", ansi: "white"
51
+ p.color :base, hex: "#eff1f5", ansi: "white"
52
+ p.color :mantle, hex: "#e6e9ef", ansi: "white"
53
+ p.color :crust, hex: "#dce0e8", ansi: "white"
53
54
 
54
55
  # Catppuccin Latte accent colors
55
- p.color :red, hex: "#d7005f", ansi: "red"
56
- p.color :maroon, hex: "#d75f5f", ansi: "red"
57
- p.color :peach, hex: "#ff5f00", ansi: "red"
58
- p.color :yellow, hex: "#d78700", ansi: "yellow"
59
- p.color :green, hex: "#5faf00", ansi: "green"
60
- p.color :teal, hex: "#008787", ansi: "cyan"
61
- p.color :sky, hex: "#00afd7", ansi: "cyan"
62
- p.color :sapphire, hex: "#00afaf", ansi: "cyan"
63
- p.color :blue, hex: "#005fff", ansi: "blue"
64
- p.color :lavender, hex: "#5f87ff", ansi: "blue"
65
- p.color :mauve, hex: "#875fff", ansi: "magenta"
66
- p.color :pink, hex: "#d787d7", ansi: "magenta"
67
- p.color :flamingo, hex: "#d78787", ansi: "red"
68
- p.color :rosewater, hex: "#d78787", ansi: "red"
56
+ p.color :red, hex: "#d20f39", ansi: "red"
57
+ p.color :maroon, hex: "#e64553", ansi: "red"
58
+ p.color :peach, hex: "#fe640b", ansi: "red"
59
+ p.color :yellow, hex: "#df8e1d", ansi: "yellow"
60
+ p.color :green, hex: "#40a02b", ansi: "green"
61
+ p.color :teal, hex: "#179299", ansi: "cyan"
62
+ p.color :sky, hex: "#04a5e5", ansi: "cyan"
63
+ p.color :sapphire, hex: "#209fb5", ansi: "cyan"
64
+ p.color :blue, hex: "#1e66f5", ansi: "blue"
65
+ p.color :lavender, hex: "#7287fd", ansi: "blue"
66
+ p.color :mauve, hex: "#8839ef", ansi: "magenta"
67
+ p.color :pink, hex: "#ea76cb", ansi: "magenta"
68
+ p.color :flamingo, hex: "#dd7878", ansi: "red"
69
+ p.color :rosewater, hex: "#dc8a78", ansi: "red"
69
70
  end
70
71
 
71
72
  t.default_colors foreground: :text, background: :base
@@ -2,34 +2,31 @@
2
2
  # Based on https://github.com/cormacrelf/vim-colors-github
3
3
  # Inspired by GitHub's syntax highlighting as of 2018.
4
4
  #
5
- # Light palette: cterm values from source (accurate).
6
- # Dark palette: GUI hex values — dark-mode cterm values in source are unreliable
7
- # (e.g. dcolors.blue has cterm=167 which maps to red, overlay has cterm=123
8
- # which maps to bright cyan).
5
+ # GUI hex values from the source's guifg/guibg definitions.
9
6
 
10
7
  Textbringer::Theme.define "github" do |t|
11
8
  t.palette :light do |p|
12
9
  # Backgrounds / foreground
13
- p.color :bg, hex: "#ffffff", ansi: "white" # 231 Normal bg
14
- p.color :bg1, hex: "#eeeeee", ansi: "white" # 255 overlay/gutter/panels
15
- p.color :vis, hex: "#afd7ff", ansi: "blue" # 153 Visual selection bg (blue2)
16
- p.color :search, hex: "#ffffd7", ansi: "yellow" # 230 Search bg (yellow)
17
- p.color :fg, hex: "#262626", ansi: "black" # 235 Normal fg (base0)
18
- p.color :comment, hex: "#767676", ansi: "brightblack" # 243 Comment (base2)
19
- p.color :line_nr, hex: "#bcbcbc", ansi: "white" # 250 LineNr fg (base4)
10
+ p.color :bg, hex: "#ffffff", ansi: "white" # Normal guibg
11
+ p.color :bg1, hex: "#f6f8fa", ansi: "white" # overlay/gutter (grey2)
12
+ p.color :vis, hex: "#e4effb", ansi: "blue" # Visual guibg (blue2)
13
+ p.color :search, hex: "#ffffc5", ansi: "yellow" # Search guibg
14
+ p.color :fg, hex: "#24292e", ansi: "black" # Normal guifg (base0)
15
+ p.color :comment, hex: "#6a737d", ansi: "brightblack" # Comment guifg (base2)
16
+ p.color :line_nr, hex: "#babbbc", ansi: "white" # LineNr guifg (base4)
20
17
 
21
18
  # Syntax colors
22
- p.color :red, hex: "#d75f5f", ansi: "red" # 167 Statement, Type, PreProc
23
- p.color :darkred, hex: "#af0000", ansi: "red" # 124 darkred
24
- p.color :purple, hex: "#8700af", ansi: "magenta" # 91 Function, Define, Special
25
- p.color :green, hex: "#00875f", ansi: "green" # 29 html/xml tags
26
- p.color :orange, hex: "#d75f00", ansi: "yellow" # 166 orange
27
- p.color :blue, hex: "#005fd7", ansi: "blue" # 26 Identifier, Constant, Macro
28
- p.color :darkblue, hex: "#00005f", ansi: "blue" # 17 String
19
+ p.color :red, hex: "#d73a49", ansi: "red" # Statement guifg
20
+ p.color :darkred, hex: "#b31d28", ansi: "red" # darkred
21
+ p.color :purple, hex: "#6f42c1", ansi: "magenta" # Function guifg
22
+ p.color :green, hex: "#22863a", ansi: "green" # html/xml tags
23
+ p.color :orange, hex: "#e36209", ansi: "yellow" # orange
24
+ p.color :blue, hex: "#005cc5", ansi: "blue" # Identifier guifg
25
+ p.color :darkblue, hex: "#032f62", ansi: "blue" # String guifg
29
26
  end
30
27
 
31
28
  t.palette :dark do |p|
32
- # Backgrounds / foreground (GUI hex cterm values are unreliable in source)
29
+ # Backgrounds / foreground (GUI hex from dark mode definitions)
33
30
  p.color :bg, hex: "#24292e", ansi: "black" # base0 (Normal bg)
34
31
  p.color :bg1, hex: "#353a3f", ansi: "brightblack" # dcolors.overlay (panels/popups)
35
32
  p.color :vis, hex: "#354a60", ansi: "blue" # dcolors.blue2 / blues[4]
@@ -58,7 +55,7 @@ Textbringer::Theme.define "github" do |t|
58
55
  t.face :number, foreground: :blue # Number → Constant = blue
59
56
  t.face :constant, foreground: :blue # Constant = blue
60
57
  t.face :function_name, foreground: :purple # Function = purple
61
- t.face :type, foreground: :orange # Type = orange
58
+ t.face :type, foreground: :orange # Type = orange (current GitHub style; vim source used red)
62
59
  t.face :variable, foreground: :blue # Identifier = blue
63
60
  t.face :operator # no explicit color in source
64
61
  t.face :punctuation # Delimiter = fg (ghNormalNoBg)
@@ -1,50 +1,51 @@
1
1
  # Gruvbox theme for Textbringer
2
2
  # Based on https://github.com/morhetz/gruvbox
3
3
  #
4
+ # GUI hex values from the source's guifg/guibg definitions.
4
5
  # Dark: bright accent colors on warm dark background
5
- # Light: neutral accent colors on warm light background
6
+ # Light: faded accent colors on warm light background
6
7
 
7
8
  Textbringer::Theme.define "gruvbox" do |t|
8
9
  t.palette :dark do |p|
9
10
  # Base tones (dark background, light foreground)
10
- p.color :bg0, hex: "#262626", ansi: "black"
11
- p.color :bg1, hex: "#3a3a3a", ansi: "brightblack"
12
- p.color :bg2, hex: "#4e4e4e", ansi: "brightblack"
13
- p.color :bg3, hex: "#626262", ansi: "brightblack"
14
- p.color :bg4, hex: "#767676", ansi: "white"
15
- p.color :fg1, hex: "#ffd7af", ansi: "white"
16
- p.color :fg4, hex: "#949494", ansi: "white"
17
- p.color :gray, hex: "#8a8a8a", ansi: "white"
11
+ p.color :bg0, hex: "#282828", ansi: "black" # dark0
12
+ p.color :bg1, hex: "#3c3836", ansi: "brightblack" # dark1
13
+ p.color :bg2, hex: "#504945", ansi: "brightblack" # dark2
14
+ p.color :bg3, hex: "#665c54", ansi: "brightblack" # dark3
15
+ p.color :bg4, hex: "#7c6f64", ansi: "white" # dark4
16
+ p.color :fg1, hex: "#ebdbb2", ansi: "white" # light1 (Normal guifg)
17
+ p.color :fg4, hex: "#a89984", ansi: "white" # light4
18
+ p.color :gray, hex: "#928374", ansi: "white" # gray_245
18
19
 
19
20
  # Bright accent colors
20
- p.color :red, hex: "#d75f5f", ansi: "red"
21
- p.color :green, hex: "#afaf00", ansi: "green"
22
- p.color :yellow, hex: "#ffaf00", ansi: "yellow"
23
- p.color :blue, hex: "#87afaf", ansi: "blue"
24
- p.color :purple, hex: "#d787af", ansi: "magenta"
25
- p.color :aqua, hex: "#87af87", ansi: "cyan"
26
- p.color :orange, hex: "#ff8700", ansi: "yellow"
21
+ p.color :red, hex: "#fb4934", ansi: "red" # bright_red
22
+ p.color :green, hex: "#b8bb26", ansi: "green" # bright_green
23
+ p.color :yellow, hex: "#fabd2f", ansi: "yellow" # bright_yellow
24
+ p.color :blue, hex: "#83a598", ansi: "blue" # bright_blue
25
+ p.color :purple, hex: "#d3869b", ansi: "magenta" # bright_purple
26
+ p.color :aqua, hex: "#8ec07c", ansi: "cyan" # bright_aqua
27
+ p.color :orange, hex: "#fe8019", ansi: "yellow" # bright_orange
27
28
  end
28
29
 
29
30
  t.palette :light do |p|
30
31
  # Base tones (light background, dark foreground)
31
- p.color :bg0, hex: "#ffffaf", ansi: "white"
32
- p.color :bg1, hex: "#ffd7af", ansi: "white"
33
- p.color :bg2, hex: "#bcbcbc", ansi: "white"
34
- p.color :bg3, hex: "#a8a8a8", ansi: "white"
35
- p.color :bg4, hex: "#949494", ansi: "brightblack"
36
- p.color :fg1, hex: "#3a3a3a", ansi: "black"
37
- p.color :fg4, hex: "#767676", ansi: "brightblack"
38
- p.color :gray, hex: "#8a8a8a", ansi: "brightblack"
32
+ p.color :bg0, hex: "#fbf1c7", ansi: "white" # light0
33
+ p.color :bg1, hex: "#ebdbb2", ansi: "white" # light1
34
+ p.color :bg2, hex: "#d5c4a1", ansi: "white" # light2
35
+ p.color :bg3, hex: "#bdae93", ansi: "white" # light3
36
+ p.color :bg4, hex: "#a89984", ansi: "brightblack" # light4
37
+ p.color :fg1, hex: "#3c3836", ansi: "black" # dark1 (Normal guifg)
38
+ p.color :fg4, hex: "#7c6f64", ansi: "brightblack" # dark4
39
+ p.color :gray, hex: "#928374", ansi: "brightblack" # gray_244
39
40
 
40
- # Neutral accent colors
41
- p.color :red, hex: "#af0000", ansi: "red"
42
- p.color :green, hex: "#87af00", ansi: "green"
43
- p.color :yellow, hex: "#d78700", ansi: "yellow"
44
- p.color :blue, hex: "#5f8787", ansi: "blue"
45
- p.color :purple, hex: "#af5f87", ansi: "magenta"
46
- p.color :aqua, hex: "#5faf87", ansi: "cyan"
47
- p.color :orange, hex: "#d75f00", ansi: "red"
41
+ # Faded accent colors
42
+ p.color :red, hex: "#9d0006", ansi: "red" # faded_red
43
+ p.color :green, hex: "#79740e", ansi: "green" # faded_green
44
+ p.color :yellow, hex: "#b57614", ansi: "yellow" # faded_yellow
45
+ p.color :blue, hex: "#076678", ansi: "blue" # faded_blue
46
+ p.color :purple, hex: "#8f3f71", ansi: "magenta" # faded_purple
47
+ p.color :aqua, hex: "#427b58", ansi: "cyan" # faded_aqua
48
+ p.color :orange, hex: "#af3a03", ansi: "red" # faded_orange
48
49
  end
49
50
 
50
51
  t.default_colors foreground: :fg1, background: :bg0
@@ -56,7 +57,7 @@ Textbringer::Theme.define "gruvbox" do |t|
56
57
  t.face :string, foreground: :green
57
58
  t.face :number, foreground: :purple
58
59
  t.face :constant, foreground: :purple
59
- t.face :function_name, foreground: :green
60
+ t.face :function_name, foreground: :green, bold: true
60
61
  t.face :type, foreground: :yellow
61
62
  t.face :variable, foreground: :blue
62
63
  t.face :operator
@@ -0,0 +1,88 @@
1
+ # Iceberg theme for Textbringer
2
+ # Based on https://github.com/cocopon/iceberg.vim
3
+ # A well-designed dark blue color scheme.
4
+ #
5
+ # GUI hex values from the source's guifg/guibg definitions.
6
+
7
+ Textbringer::Theme.define "iceberg" do |t|
8
+ t.palette :dark do |p|
9
+ # Background / foreground
10
+ p.color :bg, hex: "#161821", ansi: "black" # Normal guibg
11
+ p.color :bg1, hex: "#1e2132", ansi: "black" # terminal color0
12
+ p.color :bg_vis, hex: "#272c42", ansi: "brightblack" # Visual guibg
13
+ p.color :bg_popup, hex: "#3d425b", ansi: "brightblack" # Pmenu guibg
14
+ p.color :bg_sel, hex: "#5b6389", ansi: "brightblack" # PmenuSel guibg
15
+ p.color :fg, hex: "#c6c8d1", ansi: "white" # Normal guifg
16
+ p.color :fg_sel, hex: "#eff0f4", ansi: "white" # PmenuSel guifg
17
+ p.color :comment, hex: "#6b7089", ansi: "brightblack" # Comment guifg
18
+ p.color :status_bg, hex: "#818596", ansi: "white" # StatusLine (reverse)
19
+ p.color :status_fg, hex: "#17171b", ansi: "black" # StatusLine (reverse)
20
+
21
+ # Accent colors
22
+ p.color :blue, hex: "#84a0c6", ansi: "blue" # Statement/Keyword guifg
23
+ p.color :cyan, hex: "#89b8c2", ansi: "cyan" # String/Identifier guifg
24
+ p.color :green, hex: "#b4be82", ansi: "green" # PreProc/Special guifg
25
+ p.color :purple, hex: "#a093c7", ansi: "magenta" # Constant guifg
26
+ p.color :orange, hex: "#e4aa80", ansi: "yellow" # Search guibg
27
+ p.color :search_fg, hex: "#392313", ansi: "black" # Search guifg
28
+ p.color :red, hex: "#e27878", ansi: "red" # terminal color1
29
+ end
30
+
31
+ t.palette :light do |p|
32
+ # Background / foreground
33
+ p.color :bg, hex: "#e8e9ec", ansi: "white" # Normal guibg
34
+ p.color :bg1, hex: "#dcdfe7", ansi: "white" # terminal color0
35
+ p.color :bg_vis, hex: "#c9cdd7", ansi: "white" # Visual guibg
36
+ p.color :bg_popup, hex: "#cad0de", ansi: "white" # Pmenu guibg
37
+ p.color :bg_sel, hex: "#a7b2cd", ansi: "white" # PmenuSel guibg
38
+ p.color :fg, hex: "#33374c", ansi: "black" # Normal guifg
39
+ p.color :fg_sel, hex: "#33374c", ansi: "black" # PmenuSel guifg
40
+ p.color :comment, hex: "#8389a3", ansi: "brightblack" # Comment guifg
41
+ p.color :status_bg, hex: "#757ca3", ansi: "brightblack" # StatusLine (reverse)
42
+ p.color :status_fg, hex: "#e8e9ec", ansi: "white" # StatusLine (reverse)
43
+
44
+ # Accent colors
45
+ p.color :blue, hex: "#2d539e", ansi: "blue" # Statement/Keyword guifg
46
+ p.color :cyan, hex: "#3f83a6", ansi: "cyan" # String/Identifier guifg
47
+ p.color :green, hex: "#668e3d", ansi: "green" # PreProc/Special guifg
48
+ p.color :purple, hex: "#7759b4", ansi: "magenta" # Constant guifg
49
+ p.color :orange, hex: "#eac6ad", ansi: "yellow" # Search guibg
50
+ p.color :search_fg, hex: "#85512c", ansi: "black" # Search guifg
51
+ p.color :red, hex: "#cc517a", ansi: "red" # terminal color1
52
+ end
53
+
54
+ t.default_colors foreground: :fg, background: :bg
55
+
56
+ # Programming faces
57
+ t.face :comment, foreground: :comment
58
+ t.face :preprocessing_directive, foreground: :green # PreProc
59
+ t.face :keyword, foreground: :blue # Statement
60
+ t.face :string, foreground: :cyan # String
61
+ t.face :number, foreground: :purple # Constant
62
+ t.face :constant, foreground: :purple # Constant
63
+ t.face :function_name, foreground: :blue # Function
64
+ t.face :type, foreground: :blue # Type
65
+ t.face :variable, foreground: :cyan # Identifier
66
+ t.face :operator, foreground: :blue # Operator
67
+ t.face :punctuation # Delimiter = fg
68
+ t.face :builtin, foreground: :green # Special
69
+ t.face :property, foreground: :cyan # Identifier
70
+
71
+ # Basic faces
72
+ t.face :mode_line, foreground: :status_fg, background: :status_bg
73
+ t.face :link, foreground: :cyan, underline: true
74
+ t.face :control
75
+ t.face :region, background: :bg_vis
76
+ t.face :isearch, foreground: :search_fg, background: :orange
77
+ t.face :floating_window, foreground: :fg, background: :bg_popup
78
+
79
+ # Completion faces
80
+ t.face :completion_popup, foreground: :fg, background: :bg_popup
81
+ t.face :completion_popup_selected, foreground: :fg_sel, background: :bg_sel
82
+
83
+ # Dired faces
84
+ t.face :dired_directory, foreground: :cyan # Directory
85
+ t.face :dired_symlink, foreground: :green # Tag → Special
86
+ t.face :dired_executable, foreground: :green
87
+ t.face :dired_flagged, foreground: :red
88
+ end
@@ -0,0 +1,94 @@
1
+ # Kanagawa theme for Textbringer
2
+ # Based on https://github.com/rebelot/kanagawa.nvim
3
+ # Wave (dark) and Lotus (light) variants.
4
+ #
5
+ # GUI hex values from the source palette and theme definitions.
6
+
7
+ Textbringer::Theme.define "kanagawa" do |t|
8
+ t.palette :dark do |p|
9
+ # Background / foreground (wave variant)
10
+ p.color :bg, hex: "#1f1f28", ansi: "black" # sumiInk3 – Normal bg
11
+ p.color :bg_dark, hex: "#181820", ansi: "black" # sumiInk1 – StatusLine bg
12
+ p.color :bg_popup, hex: "#223249", ansi: "brightblack" # waveBlue1 – Pmenu bg
13
+ p.color :bg_vis, hex: "#223249", ansi: "brightblack" # waveBlue1 – Visual bg
14
+ p.color :bg_sel, hex: "#2d4f67", ansi: "brightblack" # waveBlue2 – PmenuSel bg, Search bg
15
+ p.color :bg_float, hex: "#16161d", ansi: "black" # sumiInk0 – float bg
16
+ p.color :fg, hex: "#dcd7ba", ansi: "white" # fujiWhite – Normal fg
17
+ p.color :fg_dim, hex: "#c8c093", ansi: "white" # oldWhite – StatusLine fg, float fg
18
+
19
+ # Syntax colors
20
+ p.color :comment, hex: "#727169", ansi: "brightblack" # fujiGray – Comment
21
+ p.color :string, hex: "#98bb6c", ansi: "green" # springGreen – String
22
+ p.color :pink, hex: "#d27e99", ansi: "magenta" # sakuraPink – Number
23
+ p.color :orange, hex: "#ffa066", ansi: "yellow" # surimiOrange – Constant
24
+ p.color :yellow, hex: "#e6c384", ansi: "yellow" # carpYellow – Identifier
25
+ p.color :blue, hex: "#7e9cd8", ansi: "blue" # crystalBlue – Function
26
+ p.color :violet, hex: "#957fb8", ansi: "magenta" # oniViolet – Keyword/Statement
27
+ p.color :gold, hex: "#c0a36e", ansi: "yellow" # boatYellow2 – Operator
28
+ p.color :red, hex: "#e46876", ansi: "red" # waveRed – PreProc
29
+ p.color :aqua, hex: "#7aa89f", ansi: "cyan" # waveAqua2 – Type
30
+ p.color :light_blue, hex: "#9cabca", ansi: "cyan" # springViolet2 – Punctuation
31
+ p.color :spring_blue, hex: "#7fb4ca", ansi: "cyan" # springBlue – Special/Builtin
32
+ end
33
+
34
+ t.palette :light do |p|
35
+ # Background / foreground (lotus variant)
36
+ p.color :bg, hex: "#f2ecbc", ansi: "white" # lotusWhite3 – Normal bg
37
+ p.color :bg_dark, hex: "#dcd7ba", ansi: "white" # lotusGray – StatusLine bg
38
+ p.color :bg_popup, hex: "#c7d7e0", ansi: "white" # lotusBlue1 – Pmenu bg
39
+ p.color :bg_sel, hex: "#9fb5c9", ansi: "white" # lotusBlue3 – PmenuSel bg, Search bg
40
+ p.color :bg_float, hex: "#d5cea3", ansi: "white" # lotusWhite0 – float bg
41
+ p.color :bg_vis, hex: "#c9cbd1", ansi: "white" # lotusViolet3 – Visual bg
42
+ p.color :fg, hex: "#545464", ansi: "black" # lotusInk1 – Normal fg
43
+ p.color :fg_dim, hex: "#43436c", ansi: "black" # lotusInk2 – StatusLine fg
44
+
45
+ # Syntax colors
46
+ p.color :comment, hex: "#8a8980", ansi: "brightblack" # lotusGray3 – Comment
47
+ p.color :string, hex: "#6f894e", ansi: "green" # lotusGreen – String
48
+ p.color :pink, hex: "#b35b79", ansi: "magenta" # lotusPink – Number
49
+ p.color :orange, hex: "#cc6d00", ansi: "yellow" # lotusOrange – Constant
50
+ p.color :yellow, hex: "#77713f", ansi: "yellow" # lotusYellow – Identifier
51
+ p.color :blue, hex: "#4d699b", ansi: "blue" # lotusBlue4 – Function
52
+ p.color :violet, hex: "#624c83", ansi: "magenta" # lotusViolet4 – Keyword/Statement
53
+ p.color :gold, hex: "#836f4a", ansi: "yellow" # lotusYellow2 – Operator
54
+ p.color :red, hex: "#c84053", ansi: "red" # lotusRed – PreProc
55
+ p.color :aqua, hex: "#597b75", ansi: "cyan" # lotusAqua – Type
56
+ p.color :light_blue, hex: "#4e8ca2", ansi: "cyan" # lotusTeal1 – Punctuation
57
+ p.color :spring_blue, hex: "#6693bf", ansi: "cyan" # lotusTeal2 – Special/Builtin
58
+ end
59
+
60
+ t.default_colors foreground: :fg, background: :bg
61
+
62
+ # Programming faces
63
+ t.face :comment, foreground: :comment
64
+ t.face :string, foreground: :string # syn.string
65
+ t.face :number, foreground: :pink # syn.number
66
+ t.face :constant, foreground: :orange # syn.constant
67
+ t.face :keyword, foreground: :violet, bold: true # syn.keyword + statementStyle
68
+ t.face :preprocessing_directive, foreground: :red # syn.preproc
69
+ t.face :function_name, foreground: :blue # syn.fun
70
+ t.face :type, foreground: :aqua # syn.type
71
+ t.face :variable, foreground: :yellow # syn.identifier
72
+ t.face :operator, foreground: :gold # syn.operator
73
+ t.face :punctuation, foreground: :light_blue # syn.punct
74
+ t.face :builtin, foreground: :spring_blue # syn.special1
75
+ t.face :property, foreground: :yellow # syn.identifier (carpYellow)
76
+
77
+ # Basic faces
78
+ t.face :mode_line, foreground: :fg_dim, background: :bg_dark
79
+ t.face :link, foreground: :blue, underline: true
80
+ t.face :control
81
+ t.face :region, background: :bg_vis # Visual = waveBlue1 / lotusViolet3
82
+ t.face :isearch, foreground: :fg, background: :bg_sel # bg_search
83
+ t.face :floating_window, foreground: :fg_dim, background: :bg_float
84
+
85
+ # Completion faces
86
+ t.face :completion_popup, foreground: :fg, background: :bg_popup
87
+ t.face :completion_popup_selected, foreground: :fg, background: :bg_sel
88
+
89
+ # Dired faces
90
+ t.face :dired_directory, foreground: :blue, bold: true # Directory
91
+ t.face :dired_symlink, foreground: :spring_blue # special1
92
+ t.face :dired_executable, foreground: :string # springGreen / lotusGreen
93
+ t.face :dired_flagged, foreground: :red
94
+ end
@@ -2,29 +2,30 @@
2
2
  # Based on https://github.com/tomasr/molokai
3
3
  # Original Monokai theme by Wimer Hazenberg; darker variant by Hamish Stuart Macpherson
4
4
  #
5
- # Colors derived from molokai's 256-color (cterm) values.
6
- # Dark only.
5
+ # GUI hex values from the source's guifg/guibg definitions.
6
+ # Dark only (default darker variant, s:molokai_original = 0).
7
7
 
8
8
  Textbringer::Theme.define "molokai" do |t|
9
9
  t.palette :dark do |p|
10
- # Background / foreground (cterm numbers in comments)
11
- p.color :bg, hex: "#121212", ansi: "black" # 233 Normal bg
12
- p.color :bg1, hex: "#262626", ansi: "brightblack" # 235 Visual, region
13
- p.color :bg2, hex: "#303030", ansi: "brightblack" # 236 LineNr bg, floating windows
14
- p.color :fg, hex: "#d0d0d0", ansi: "white" # 252 Normal fg
15
- p.color :comment, hex: "#5f5f5f", ansi: "brightblack" # 59 Comment
16
- p.color :gray, hex: "#444444", ansi: "brightblack" # 238 StatusLine fg
17
- p.color :silver, hex: "#dadada", ansi: "white" # 253 StatusLine bg
18
- p.color :mid_gray, hex: "#6c6c6c", ansi: "brightblack" # 242 PmenuSel bg
10
+ # Background / foreground
11
+ p.color :bg, hex: "#1b1d1e", ansi: "black" # Normal guibg
12
+ p.color :bg1, hex: "#403d3d", ansi: "brightblack" # Visual guibg
13
+ p.color :bg2, hex: "#1b1d1e", ansi: "black" # floating window bg (same as bg)
14
+ p.color :fg, hex: "#f8f8f2", ansi: "white" # Normal guifg
15
+ p.color :comment, hex: "#7e8e91", ansi: "brightblack" # Comment guifg
16
+ p.color :gray, hex: "#455354", ansi: "brightblack" # StatusLine guifg
17
+ p.color :silver, hex: "#f8f8f2", ansi: "white" # StatusLine guibg = fg
18
+ p.color :mid_gray, hex: "#808080", ansi: "brightblack" # PmenuSel guibg
19
+ p.color :delim, hex: "#8f8f8f", ansi: "white" # Delimiter guifg
19
20
 
20
21
  # Accent colors
21
- p.color :pink, hex: "#d7005f", ansi: "red" # 161 Keyword, Operator
22
- p.color :green, hex: "#87ff00", ansi: "green" # 118 Function, PreProc
23
- p.color :yellow, hex: "#afaf87", ansi: "yellow" # 144 String, Character
24
- p.color :purple, hex: "#af5fff", ansi: "magenta" # 135 Number, Boolean, Constant
25
- p.color :orange, hex: "#ff8700", ansi: "yellow" # 208 Identifier, StorageClass
26
- p.color :cyan, hex: "#5fd7ff", ansi: "cyan" # 81 Type, Define, Structure
27
- p.color :search, hex: "#ffd787", ansi: "yellow" # 222 Search bg
22
+ p.color :pink, hex: "#f92672", ansi: "red" # Keyword guifg
23
+ p.color :green, hex: "#a6e22e", ansi: "green" # Function guifg
24
+ p.color :yellow, hex: "#e6db74", ansi: "yellow" # String guifg
25
+ p.color :purple, hex: "#ae81ff", ansi: "magenta" # Number guifg
26
+ p.color :orange, hex: "#fd971f", ansi: "yellow" # Identifier guifg
27
+ p.color :cyan, hex: "#66d9ef", ansi: "cyan" # Type guifg
28
+ p.color :search, hex: "#ffe792", ansi: "yellow" # Search guibg
28
29
  end
29
30
 
30
31
  t.default_colors foreground: :fg, background: :bg
@@ -40,22 +41,19 @@ Textbringer::Theme.define "molokai" do |t|
40
41
  t.face :type, foreground: :cyan
41
42
  t.face :variable, foreground: :orange
42
43
  t.face :operator, foreground: :pink
43
- t.face :punctuation
44
+ t.face :punctuation, foreground: :delim
44
45
  t.face :builtin, foreground: :cyan
45
46
  t.face :property, foreground: :orange
46
47
 
47
48
  # Basic faces
48
- # StatusLine: ctermfg=238 (#444444) on ctermbg=253 (#DADADA)
49
49
  t.face :mode_line, foreground: :gray, background: :silver
50
50
  t.face :link, foreground: :cyan, underline: true
51
51
  t.face :control
52
52
  t.face :region, background: :bg1
53
- # Search: ctermfg=0 ctermbg=222
54
53
  t.face :isearch, foreground: :bg, background: :search
55
54
  t.face :floating_window, foreground: :fg, background: :bg2
56
55
 
57
56
  # Completion faces
58
- # Pmenu: ctermfg=81 ctermbg=16; PmenuSel: ctermfg=252 ctermbg=242
59
57
  t.face :completion_popup, foreground: :cyan, background: :bg
60
58
  t.face :completion_popup_selected, foreground: :fg, background: :mid_gray
61
59
 
@@ -1,29 +1,33 @@
1
1
  # Sonokai theme for Textbringer (default style)
2
2
  # Based on https://github.com/sainnhe/sonokai
3
3
  #
4
+ # GUI hex values from the source's default style palette.
4
5
  # A dark theme only. Falls back to dark palette on light terminals.
5
6
 
6
7
  Textbringer::Theme.define "sonokai" do |t|
7
8
  t.palette :dark do |p|
8
9
  # Base tones
9
- p.color :black, hex: "#080808", ansi: "black"
10
- p.color :bg_dim, hex: "#080808", ansi: "black"
11
- p.color :bg0, hex: "#262626", ansi: "black"
12
- p.color :bg1, hex: "#303030", ansi: "brightblack"
13
- p.color :bg2, hex: "#303030", ansi: "brightblack"
14
- p.color :bg3, hex: "#3a3a3a", ansi: "brightblack"
15
- p.color :bg4, hex: "#3a3a3a", ansi: "brightblack"
16
- p.color :fg, hex: "#bcbcbc", ansi: "white"
17
- p.color :grey, hex: "#949494", ansi: "white"
18
- p.color :grey_dim, hex: "#585858", ansi: "brightblack"
10
+ p.color :black, hex: "#181819", ansi: "black"
11
+ p.color :bg_dim, hex: "#222327", ansi: "black"
12
+ p.color :bg0, hex: "#2c2e34", ansi: "black"
13
+ p.color :bg1, hex: "#33353f", ansi: "brightblack"
14
+ p.color :bg2, hex: "#363944", ansi: "brightblack"
15
+ p.color :bg3, hex: "#3b3e48", ansi: "brightblack"
16
+ p.color :bg4, hex: "#414550", ansi: "brightblack"
17
+ p.color :fg, hex: "#e2e2e3", ansi: "white"
18
+ p.color :grey, hex: "#7f8490", ansi: "white"
19
+ p.color :grey_dim, hex: "#595f6f", ansi: "brightblack"
19
20
 
20
21
  # Accent colors
21
- p.color :red, hex: "#ff5f5f", ansi: "red"
22
- p.color :orange, hex: "#ffaf5f", ansi: "yellow"
23
- p.color :yellow, hex: "#d7af5f", ansi: "yellow"
24
- p.color :green, hex: "#87af5f", ansi: "green"
25
- p.color :blue, hex: "#87afd7", ansi: "cyan"
26
- p.color :purple, hex: "#d787d7", ansi: "magenta"
22
+ p.color :red, hex: "#fc5d7c", ansi: "red"
23
+ p.color :orange, hex: "#f39660", ansi: "yellow"
24
+ p.color :yellow, hex: "#e7c664", ansi: "yellow"
25
+ p.color :green, hex: "#9ed072", ansi: "green"
26
+ p.color :blue, hex: "#76cce0", ansi: "cyan"
27
+ p.color :purple, hex: "#b39df3", ansi: "magenta"
28
+
29
+ # Filled colors for UI
30
+ p.color :filled_blue, hex: "#85d3f2", ansi: "cyan"
27
31
  end
28
32
 
29
33
  t.default_colors foreground: :fg, background: :bg0
@@ -48,12 +52,12 @@ Textbringer::Theme.define "sonokai" do |t|
48
52
  t.face :link, foreground: :blue, underline: true
49
53
  t.face :control
50
54
  t.face :region, background: :bg4
51
- t.face :isearch, foreground: :bg0, background: :green
55
+ t.face :isearch, foreground: :green, background: :bg0, reverse: true
52
56
  t.face :floating_window, foreground: :fg, background: :bg_dim
53
57
 
54
58
  # Completion faces
55
59
  t.face :completion_popup, foreground: :fg, background: :bg2
56
- t.face :completion_popup_selected, foreground: :bg0, background: :blue
60
+ t.face :completion_popup_selected, foreground: :bg0, background: :filled_blue
57
61
 
58
62
  # Dired faces
59
63
  t.face :dired_directory, foreground: :green
@@ -1,7 +1,7 @@
1
1
  # Tokyo Night theme for Textbringer
2
2
  # Based on https://github.com/folke/tokyonight.nvim
3
- # Night variant (dark only). GUI hex colors — no cterm values in source.
4
- # Computed colors derived from tokyonight's blend formulas.
3
+ # Night variant (dark only).
4
+ # GUI hex values from the source palette definitions.
5
5
 
6
6
  Textbringer::Theme.define "tokyonight" do |t|
7
7
  t.palette :dark do |p|
@@ -9,7 +9,7 @@ Textbringer::Theme.define "tokyonight" do |t|
9
9
  p.color :bg, hex: "#1a1b26", ansi: "black" # bg
10
10
  p.color :bg_dark, hex: "#16161e", ansi: "black" # bg_dark → popups, statusline
11
11
  p.color :bg_hl, hex: "#292e42", ansi: "brightblack" # bg_highlight → floating windows
12
- p.color :bg_vis, hex: "#283457", ansi: "brightblack" # bg_visual = blend(blue0, 0.4, bg)
12
+ p.color :bg_vis, hex: "#283357", ansi: "brightblack" # bg_visual = blend(blue0, 0.4, bg)
13
13
  p.color :sel_bg, hex: "#343a55", ansi: "brightblack" # PmenuSel bg = blend(fg_gutter, 0.8, bg)
14
14
  p.color :search, hex: "#3d59a1", ansi: "blue" # bg_search = blue0
15
15
  p.color :fg, hex: "#c0caf5", ansi: "white" # fg