diff options
Diffstat (limited to 'panto-popular-themes/init.lua')
| -rw-r--r-- | panto-popular-themes/init.lua | 548 |
1 files changed, 548 insertions, 0 deletions
diff --git a/panto-popular-themes/init.lua b/panto-popular-themes/init.lua new file mode 100644 index 0000000..51f3ca5 --- /dev/null +++ b/panto-popular-themes/init.lua @@ -0,0 +1,548 @@ +-- Popular terminal palettes for pantograph. The first 19 entries are copied +-- from pantograph/src/tui_theme.zig; the final three are Kanagawa reductions. +-- Activation probes panto.ext.style(name) before registering so an existing +-- core or third-party theme wins without hiding validation errors. + +local palettes = { + { name = 'Tokyo Night', palette = { + canvas_fg = { r = 0xc0, g = 0xca, b = 0xf5 }, + canvas_bg = { r = 0x1a, g = 0x1b, b = 0x26 }, + surface = { r = 0x16, g = 0x16, b = 0x1e }, + accent = { r = 0x7a, g = 0xa2, b = 0xf7 }, + muted = { r = 0x56, g = 0x5f, b = 0x89 }, + success = { r = 0x73, g = 0xda, b = 0xca }, + err = { r = 0xdb, g = 0x4b, b = 0x4b }, + warn = { r = 0xe0, g = 0xaf, b = 0x68 }, + purple = { r = 0xbb, g = 0x9a, b = 0xf7 }, + secondary = { r = 0x7d, g = 0xcf, b = 0xff }, + syntax_string = { r = 0x9e, g = 0xce, b = 0x6a }, + syntax_number = { r = 0xff, g = 0x9e, b = 0x64 }, + syntax_keyword = { r = 0x9d, g = 0x7c, b = 0xd8 }, + syntax_function = { r = 0x7a, g = 0xa2, b = 0xf7 }, + syntax_type = { r = 0x2a, g = 0xc3, b = 0xde }, + syntax_variable = { r = 0xc0, g = 0xca, b = 0xf5 }, + syntax_tag = { r = 0xbb, g = 0x9a, b = 0xf7 }, + diff_add_bg = { r = 0x24, g = 0x3e, b = 0x4a }, + diff_remove_bg = { r = 0x4a, g = 0x27, b = 0x2f }, + } }, + { name = 'Catppuccin Mocha', palette = { + canvas_fg = { r = 0xcd, g = 0xd6, b = 0xf4 }, + canvas_bg = { r = 0x1e, g = 0x1e, b = 0x2e }, + surface = { r = 0x18, g = 0x18, b = 0x25 }, + accent = { r = 0x89, g = 0xb4, b = 0xfa }, + muted = { r = 0x93, g = 0x99, b = 0xb2 }, + success = { r = 0x94, g = 0xe2, b = 0xd5 }, + err = { r = 0xf3, g = 0x8b, b = 0xa8 }, + warn = { r = 0xf9, g = 0xe2, b = 0xaf }, + purple = { r = 0xcb, g = 0xa6, b = 0xf7 }, + secondary = { r = 0x89, g = 0xdc, b = 0xeb }, + syntax_string = { r = 0xa6, g = 0xe3, b = 0xa1 }, + syntax_number = { r = 0xfa, g = 0xb3, b = 0x87 }, + syntax_keyword = { r = 0xcb, g = 0xa6, b = 0xf7 }, + syntax_function = { r = 0x89, g = 0xb4, b = 0xfa }, + syntax_type = { r = 0xf9, g = 0xe2, b = 0xaf }, + syntax_variable = { r = 0xcd, g = 0xd6, b = 0xf4 }, + syntax_tag = { r = 0x89, g = 0xb4, b = 0xfa }, + diff_add_bg = { r = 0x36, g = 0x41, b = 0x43 }, + diff_remove_bg = { r = 0x44, g = 0x32, b = 0x44 }, + } }, + { name = 'Gruvbox Dark', palette = { + canvas_fg = { r = 0xeb, g = 0xdb, b = 0xb2 }, + canvas_bg = { r = 0x28, g = 0x28, b = 0x28 }, + surface = { r = 0x3c, g = 0x38, b = 0x36 }, + accent = { r = 0x83, g = 0xa5, b = 0x98 }, + muted = { r = 0x92, g = 0x83, b = 0x74 }, + success = { r = 0xb8, g = 0xbb, b = 0x26 }, + err = { r = 0xfb, g = 0x49, b = 0x34 }, + warn = { r = 0xfa, g = 0xbd, b = 0x2f }, + purple = { r = 0xd3, g = 0x86, b = 0x9b }, + secondary = { r = 0x8e, g = 0xc0, b = 0x7c }, + syntax_string = { r = 0xb8, g = 0xbb, b = 0x26 }, + syntax_number = { r = 0xd3, g = 0x86, b = 0x9b }, + syntax_keyword = { r = 0xfb, g = 0x49, b = 0x34 }, + syntax_function = { r = 0xb8, g = 0xbb, b = 0x26 }, + syntax_type = { r = 0xfa, g = 0xbd, b = 0x2f }, + syntax_variable = { r = 0xeb, g = 0xdb, b = 0xb2 }, + syntax_tag = { r = 0xfe, g = 0x80, b = 0x19 }, + diff_add_bg = { r = 0x62, g = 0x69, b = 0x3e }, + diff_remove_bg = { r = 0x72, g = 0x25, b = 0x29 }, + } }, + { name = 'Solarized Light', palette = { + canvas_fg = { r = 0x65, g = 0x7b, b = 0x83 }, + canvas_bg = { r = 0xfd, g = 0xf6, b = 0xe3 }, + surface = { r = 0xfb, g = 0xf3, b = 0xdb }, + accent = { r = 0x26, g = 0x8b, b = 0xd2 }, + muted = { r = 0x93, g = 0xa1, b = 0xa1 }, + success = { r = 0x85, g = 0x99, b = 0x00 }, + err = { r = 0xdc, g = 0x32, b = 0x2f }, + warn = { r = 0xb5, g = 0x89, b = 0x00 }, + purple = { r = 0xd3, g = 0x36, b = 0x82 }, + secondary = { r = 0x2a, g = 0xa1, b = 0x98 }, + syntax_string = { r = 0x2a, g = 0xa1, b = 0x98 }, + syntax_number = { r = 0xd3, g = 0x36, b = 0x82 }, + syntax_keyword = { r = 0x58, g = 0x6e, b = 0x75 }, + syntax_function = { r = 0x26, g = 0x8b, b = 0xd2 }, + syntax_type = { r = 0xb5, g = 0x89, b = 0x00 }, + syntax_variable = { r = 0x26, g = 0x8b, b = 0xd2 }, + syntax_tag = { r = 0x26, g = 0x8b, b = 0xd2 }, + } }, + { name = 'Solarized Dark', palette = { + canvas_fg = { r = 0x83, g = 0x94, b = 0x96 }, + canvas_bg = { r = 0x00, g = 0x2b, b = 0x36 }, + surface = { r = 0x00, g = 0x27, b = 0x31 }, + accent = { r = 0x26, g = 0x8b, b = 0xd2 }, + muted = { r = 0x58, g = 0x6e, b = 0x75 }, + success = { r = 0x85, g = 0x99, b = 0x00 }, + err = { r = 0xdc, g = 0x32, b = 0x2f }, + warn = { r = 0xb5, g = 0x89, b = 0x00 }, + purple = { r = 0x6c, g = 0x71, b = 0xc4 }, + secondary = { r = 0x2a, g = 0xa1, b = 0x98 }, + syntax_string = { r = 0x2a, g = 0xa1, b = 0x98 }, + syntax_number = { r = 0x6c, g = 0x71, b = 0xc4 }, + syntax_keyword = { r = 0x93, g = 0xa1, b = 0xa1 }, + syntax_function = { r = 0x26, g = 0x8b, b = 0xd2 }, + syntax_type = { r = 0xcb, g = 0x4b, b = 0x16 }, + syntax_variable = { r = 0x26, g = 0x8b, b = 0xd2 }, + syntax_tag = { r = 0x26, g = 0x8b, b = 0xd2 }, + } }, + { name = 'Nord', palette = { + canvas_fg = { r = 0xd8, g = 0xde, b = 0xe9 }, + canvas_bg = { r = 0x2e, g = 0x34, b = 0x40 }, + surface = { r = 0x43, g = 0x4c, b = 0x5e }, + accent = { r = 0x88, g = 0xc0, b = 0xd0 }, + muted = { r = 0x61, g = 0x6e, b = 0x88 }, + success = { r = 0xa3, g = 0xbe, b = 0x8c }, + err = { r = 0xbf, g = 0x61, b = 0x6a }, + warn = { r = 0xeb, g = 0xcb, b = 0x8b }, + purple = { r = 0xb4, g = 0x8e, b = 0xad }, + secondary = { r = 0x5e, g = 0x81, b = 0xac }, + syntax_string = { r = 0xa3, g = 0xbe, b = 0x8c }, + syntax_number = { r = 0xb4, g = 0x8e, b = 0xad }, + syntax_keyword = { r = 0x81, g = 0xa1, b = 0xc1 }, + syntax_function = { r = 0x88, g = 0xc0, b = 0xd0 }, + syntax_type = { r = 0x81, g = 0xa1, b = 0xc1 }, + syntax_variable = { r = 0xd8, g = 0xde, b = 0xe9 }, + syntax_tag = { r = 0xd8, g = 0xde, b = 0xe9 }, + } }, + { name = 'Dracula', palette = { + canvas_fg = { r = 0xf8, g = 0xf8, b = 0xf2 }, + canvas_bg = { r = 0x28, g = 0x2a, b = 0x36 }, + surface = { r = 0x21, g = 0x22, b = 0x2c }, + accent = { r = 0x8b, g = 0xe9, b = 0xfd }, + muted = { r = 0x62, g = 0x72, b = 0xa4 }, + success = { r = 0x50, g = 0xfa, b = 0x7b }, + err = { r = 0xff, g = 0x55, b = 0x55 }, + warn = { r = 0xf1, g = 0xfa, b = 0x8c }, + purple = { r = 0xbd, g = 0x93, b = 0xf9 }, + secondary = { r = 0xff, g = 0x79, b = 0xc6 }, + syntax_string = { r = 0xf1, g = 0xfa, b = 0x8c }, + syntax_number = { r = 0xbd, g = 0x93, b = 0xf9 }, + syntax_keyword = { r = 0xff, g = 0x79, b = 0xc6 }, + syntax_function = { r = 0x50, g = 0xfa, b = 0x7b }, + syntax_type = { r = 0xa4, g = 0xff, b = 0xff }, + syntax_variable = { r = 0xf8, g = 0xf8, b = 0xf2 }, + syntax_tag = { r = 0x8b, g = 0xe9, b = 0xfd }, + } }, + { name = 'Tokyo Storm', palette = { + canvas_fg = { r = 0xc0, g = 0xca, b = 0xf5 }, + canvas_bg = { r = 0x24, g = 0x28, b = 0x3b }, + surface = { r = 0x1f, g = 0x23, b = 0x35 }, + accent = { r = 0x7a, g = 0xa2, b = 0xf7 }, + muted = { r = 0x56, g = 0x5f, b = 0x89 }, + success = { r = 0x73, g = 0xda, b = 0xca }, + err = { r = 0xdb, g = 0x4b, b = 0x4b }, + warn = { r = 0xe0, g = 0xaf, b = 0x68 }, + purple = { r = 0xbb, g = 0x9a, b = 0xf7 }, + secondary = { r = 0x7d, g = 0xcf, b = 0xff }, + syntax_string = { r = 0x9e, g = 0xce, b = 0x6a }, + syntax_number = { r = 0xff, g = 0x9e, b = 0x64 }, + syntax_keyword = { r = 0x9d, g = 0x7c, b = 0xd8 }, + syntax_function = { r = 0x7a, g = 0xa2, b = 0xf7 }, + syntax_type = { r = 0x2a, g = 0xc3, b = 0xde }, + syntax_variable = { r = 0xc0, g = 0xca, b = 0xf5 }, + syntax_tag = { r = 0xbb, g = 0x9a, b = 0xf7 }, + diff_add_bg = { r = 0x2b, g = 0x48, b = 0x5a }, + diff_remove_bg = { r = 0x52, g = 0x31, b = 0x3f }, + } }, + { name = 'Tokyo Moon', palette = { + canvas_fg = { r = 0xc8, g = 0xd3, b = 0xf5 }, + canvas_bg = { r = 0x22, g = 0x24, b = 0x36 }, + surface = { r = 0x1e, g = 0x20, b = 0x30 }, + accent = { r = 0x82, g = 0xaa, b = 0xff }, + muted = { r = 0x63, g = 0x6d, b = 0xa6 }, + success = { r = 0x4f, g = 0xd6, b = 0xbe }, + err = { r = 0xc5, g = 0x3b, b = 0x53 }, + warn = { r = 0xff, g = 0xc7, b = 0x77 }, + purple = { r = 0xc0, g = 0x99, b = 0xff }, + secondary = { r = 0x86, g = 0xe1, b = 0xfc }, + syntax_string = { r = 0xc3, g = 0xe8, b = 0x8d }, + syntax_number = { r = 0xff, g = 0x96, b = 0x6c }, + syntax_keyword = { r = 0xfc, g = 0xa7, b = 0xea }, + syntax_function = { r = 0x82, g = 0xaa, b = 0xff }, + syntax_type = { r = 0x65, g = 0xbc, b = 0xff }, + syntax_variable = { r = 0xc8, g = 0xd3, b = 0xf5 }, + syntax_tag = { r = 0xc0, g = 0x99, b = 0xff }, + diff_add_bg = { r = 0x2a, g = 0x45, b = 0x56 }, + diff_remove_bg = { r = 0x4b, g = 0x2a, b = 0x3d }, + } }, + { name = 'Tokyo Day', palette = { + canvas_fg = { r = 0x37, g = 0x60, b = 0xbf }, + canvas_bg = { r = 0xe1, g = 0xe2, b = 0xe7 }, + surface = { r = 0xd0, g = 0xd5, b = 0xe3 }, + accent = { r = 0x2e, g = 0x7d, b = 0xe9 }, + muted = { r = 0x84, g = 0x8c, b = 0xb5 }, + success = { r = 0x38, g = 0x70, b = 0x68 }, + err = { r = 0xc6, g = 0x43, b = 0x43 }, + warn = { r = 0x8c, g = 0x6c, b = 0x3e }, + purple = { r = 0x98, g = 0x54, b = 0xf1 }, + secondary = { r = 0x00, g = 0x71, b = 0x97 }, + syntax_string = { r = 0x58, g = 0x75, b = 0x39 }, + syntax_number = { r = 0xb1, g = 0x5c, b = 0x00 }, + syntax_keyword = { r = 0x78, g = 0x47, b = 0xbd }, + syntax_function = { r = 0x2e, g = 0x7d, b = 0xe9 }, + syntax_type = { r = 0x18, g = 0x80, b = 0x92 }, + syntax_variable = { r = 0x37, g = 0x60, b = 0xbf }, + syntax_tag = { r = 0x98, g = 0x54, b = 0xf1 }, + diff_add_bg = { r = 0xb7, g = 0xce, b = 0xd5 }, + diff_remove_bg = { r = 0xda, g = 0xba, b = 0xbe }, + } }, + { name = 'Catppuccin Latte', palette = { + canvas_fg = { r = 0x4c, g = 0x4f, b = 0x69 }, + canvas_bg = { r = 0xef, g = 0xf1, b = 0xf5 }, + surface = { r = 0xe6, g = 0xe9, b = 0xef }, + accent = { r = 0x1e, g = 0x66, b = 0xf5 }, + muted = { r = 0x7c, g = 0x7f, b = 0x93 }, + success = { r = 0x17, g = 0x92, b = 0x99 }, + err = { r = 0xd2, g = 0x0f, b = 0x39 }, + warn = { r = 0xdf, g = 0x8e, b = 0x1d }, + purple = { r = 0x88, g = 0x39, b = 0xef }, + secondary = { r = 0x04, g = 0xa5, b = 0xe5 }, + syntax_string = { r = 0x40, g = 0xa0, b = 0x2b }, + syntax_number = { r = 0xfe, g = 0x64, b = 0x0b }, + syntax_keyword = { r = 0x88, g = 0x39, b = 0xef }, + syntax_function = { r = 0x1e, g = 0x66, b = 0xf5 }, + syntax_type = { r = 0xdf, g = 0x8e, b = 0x1d }, + syntax_variable = { r = 0x4c, g = 0x4f, b = 0x69 }, + syntax_tag = { r = 0x1e, g = 0x66, b = 0xf5 }, + diff_add_bg = { r = 0xd0, g = 0xe2, b = 0xd1 }, + diff_remove_bg = { r = 0xea, g = 0xc8, b = 0xd3 }, + } }, + { name = 'Catppuccin Frappe', palette = { + canvas_fg = { r = 0xc6, g = 0xd0, b = 0xf5 }, + canvas_bg = { r = 0x30, g = 0x34, b = 0x46 }, + surface = { r = 0x29, g = 0x2c, b = 0x3c }, + accent = { r = 0x8c, g = 0xaa, b = 0xee }, + muted = { r = 0x94, g = 0x9c, b = 0xbb }, + success = { r = 0x81, g = 0xc8, b = 0xbe }, + err = { r = 0xe7, g = 0x82, b = 0x84 }, + warn = { r = 0xe5, g = 0xc8, b = 0x90 }, + purple = { r = 0xca, g = 0x9e, b = 0xe6 }, + secondary = { r = 0x99, g = 0xd1, b = 0xdb }, + syntax_string = { r = 0xa6, g = 0xd1, b = 0x89 }, + syntax_number = { r = 0xef, g = 0x9f, b = 0x76 }, + syntax_keyword = { r = 0xca, g = 0x9e, b = 0xe6 }, + syntax_function = { r = 0x8c, g = 0xaa, b = 0xee }, + syntax_type = { r = 0xe5, g = 0xc8, b = 0x90 }, + syntax_variable = { r = 0xc6, g = 0xd0, b = 0xf5 }, + syntax_tag = { r = 0x8c, g = 0xaa, b = 0xee }, + diff_add_bg = { r = 0x45, g = 0x50, b = 0x52 }, + diff_remove_bg = { r = 0x51, g = 0x42, b = 0x51 }, + } }, + { name = 'Catppuccin Macchiato', palette = { + canvas_fg = { r = 0xca, g = 0xd3, b = 0xf5 }, + canvas_bg = { r = 0x24, g = 0x27, b = 0x3a }, + surface = { r = 0x1e, g = 0x20, b = 0x30 }, + accent = { r = 0x8a, g = 0xad, b = 0xf4 }, + muted = { r = 0x93, g = 0x9a, b = 0xb7 }, + success = { r = 0x8b, g = 0xd5, b = 0xca }, + err = { r = 0xed, g = 0x87, b = 0x96 }, + warn = { r = 0xee, g = 0xd4, b = 0x9f }, + purple = { r = 0xc6, g = 0xa0, b = 0xf6 }, + secondary = { r = 0x91, g = 0xd7, b = 0xe3 }, + syntax_string = { r = 0xa6, g = 0xda, b = 0x95 }, + syntax_number = { r = 0xf5, g = 0xa9, b = 0x7f }, + syntax_keyword = { r = 0xc6, g = 0xa0, b = 0xf6 }, + syntax_function = { r = 0x8a, g = 0xad, b = 0xf4 }, + syntax_type = { r = 0xee, g = 0xd4, b = 0x9f }, + syntax_variable = { r = 0xca, g = 0xd3, b = 0xf5 }, + syntax_tag = { r = 0x8a, g = 0xad, b = 0xf4 }, + diff_add_bg = { r = 0x3b, g = 0x47, b = 0x4a }, + diff_remove_bg = { r = 0x48, g = 0x38, b = 0x4b }, + } }, + { name = 'Gruvbox Dark Hard', palette = { + canvas_fg = { r = 0xeb, g = 0xdb, b = 0xb2 }, + canvas_bg = { r = 0x1d, g = 0x20, b = 0x21 }, + surface = { r = 0x3c, g = 0x38, b = 0x36 }, + accent = { r = 0x83, g = 0xa5, b = 0x98 }, + muted = { r = 0x92, g = 0x83, b = 0x74 }, + success = { r = 0xb8, g = 0xbb, b = 0x26 }, + err = { r = 0xfb, g = 0x49, b = 0x34 }, + warn = { r = 0xfa, g = 0xbd, b = 0x2f }, + purple = { r = 0xd3, g = 0x86, b = 0x9b }, + secondary = { r = 0x8e, g = 0xc0, b = 0x7c }, + syntax_string = { r = 0xb8, g = 0xbb, b = 0x26 }, + syntax_number = { r = 0xd3, g = 0x86, b = 0x9b }, + syntax_keyword = { r = 0xfb, g = 0x49, b = 0x34 }, + syntax_function = { r = 0xb8, g = 0xbb, b = 0x26 }, + syntax_type = { r = 0xfa, g = 0xbd, b = 0x2f }, + syntax_variable = { r = 0xeb, g = 0xdb, b = 0xb2 }, + syntax_tag = { r = 0xfe, g = 0x80, b = 0x19 }, + diff_add_bg = { r = 0x5a, g = 0x63, b = 0x3a }, + diff_remove_bg = { r = 0x79, g = 0x23, b = 0x29 }, + } }, + { name = 'Gruvbox Dark Soft', palette = { + canvas_fg = { r = 0xeb, g = 0xdb, b = 0xb2 }, + canvas_bg = { r = 0x32, g = 0x30, b = 0x2f }, + surface = { r = 0x3c, g = 0x38, b = 0x36 }, + accent = { r = 0x83, g = 0xa5, b = 0x98 }, + muted = { r = 0x92, g = 0x83, b = 0x74 }, + success = { r = 0xb8, g = 0xbb, b = 0x26 }, + err = { r = 0xfb, g = 0x49, b = 0x34 }, + warn = { r = 0xfa, g = 0xbd, b = 0x2f }, + purple = { r = 0xd3, g = 0x86, b = 0x9b }, + secondary = { r = 0x8e, g = 0xc0, b = 0x7c }, + syntax_string = { r = 0xb8, g = 0xbb, b = 0x26 }, + syntax_number = { r = 0xd3, g = 0x86, b = 0x9b }, + syntax_keyword = { r = 0xfb, g = 0x49, b = 0x34 }, + syntax_function = { r = 0xb8, g = 0xbb, b = 0x26 }, + syntax_type = { r = 0xfa, g = 0xbd, b = 0x2f }, + syntax_variable = { r = 0xeb, g = 0xdb, b = 0xb2 }, + syntax_tag = { r = 0xfe, g = 0x80, b = 0x19 }, + diff_add_bg = { r = 0x68, g = 0x6d, b = 0x43 }, + diff_remove_bg = { r = 0x7b, g = 0x2c, b = 0x2f }, + } }, + { name = 'Gruvbox Light', palette = { + canvas_fg = { r = 0x3c, g = 0x38, b = 0x36 }, + canvas_bg = { r = 0xfb, g = 0xf1, b = 0xc7 }, + surface = { r = 0xeb, g = 0xdb, b = 0xb2 }, + accent = { r = 0x07, g = 0x66, b = 0x78 }, + muted = { r = 0x92, g = 0x83, b = 0x74 }, + success = { r = 0x79, g = 0x74, b = 0x0e }, + err = { r = 0x9d, g = 0x00, b = 0x06 }, + warn = { r = 0xb5, g = 0x76, b = 0x14 }, + purple = { r = 0x8f, g = 0x3f, b = 0x71 }, + secondary = { r = 0x42, g = 0x7b, b = 0x58 }, + syntax_string = { r = 0x79, g = 0x74, b = 0x0e }, + syntax_number = { r = 0x8f, g = 0x3f, b = 0x71 }, + syntax_keyword = { r = 0x9d, g = 0x00, b = 0x06 }, + syntax_function = { r = 0x79, g = 0x74, b = 0x0e }, + syntax_type = { r = 0xb5, g = 0x76, b = 0x14 }, + syntax_variable = { r = 0x3c, g = 0x38, b = 0x36 }, + syntax_tag = { r = 0xaf, g = 0x3a, b = 0x03 }, + diff_add_bg = { r = 0xd5, g = 0xd3, b = 0x9b }, + diff_remove_bg = { r = 0xfc, g = 0x94, b = 0x87 }, + } }, + { name = 'Gruvbox Light Hard', palette = { + canvas_fg = { r = 0x3c, g = 0x38, b = 0x36 }, + canvas_bg = { r = 0xf9, g = 0xf5, b = 0xd7 }, + surface = { r = 0xeb, g = 0xdb, b = 0xb2 }, + accent = { r = 0x07, g = 0x66, b = 0x78 }, + muted = { r = 0x92, g = 0x83, b = 0x74 }, + success = { r = 0x79, g = 0x74, b = 0x0e }, + err = { r = 0x9d, g = 0x00, b = 0x06 }, + warn = { r = 0xb5, g = 0x76, b = 0x14 }, + purple = { r = 0x8f, g = 0x3f, b = 0x71 }, + secondary = { r = 0x42, g = 0x7b, b = 0x58 }, + syntax_string = { r = 0x79, g = 0x74, b = 0x0e }, + syntax_number = { r = 0x8f, g = 0x3f, b = 0x71 }, + syntax_keyword = { r = 0x9d, g = 0x00, b = 0x06 }, + syntax_function = { r = 0x79, g = 0x74, b = 0x0e }, + syntax_type = { r = 0xb5, g = 0x76, b = 0x14 }, + syntax_variable = { r = 0x3c, g = 0x38, b = 0x36 }, + syntax_tag = { r = 0xaf, g = 0x3a, b = 0x03 }, + diff_add_bg = { r = 0xd3, g = 0xd6, b = 0xa5 }, + diff_remove_bg = { r = 0xfc, g = 0x96, b = 0x90 }, + } }, + { name = 'Gruvbox Light Soft', palette = { + canvas_fg = { r = 0x3c, g = 0x38, b = 0x36 }, + canvas_bg = { r = 0xf2, g = 0xe5, b = 0xbc }, + surface = { r = 0xeb, g = 0xdb, b = 0xb2 }, + accent = { r = 0x07, g = 0x66, b = 0x78 }, + muted = { r = 0x92, g = 0x83, b = 0x74 }, + success = { r = 0x79, g = 0x74, b = 0x0e }, + err = { r = 0x9d, g = 0x00, b = 0x06 }, + warn = { r = 0xb5, g = 0x76, b = 0x14 }, + purple = { r = 0x8f, g = 0x3f, b = 0x71 }, + secondary = { r = 0x42, g = 0x7b, b = 0x58 }, + syntax_string = { r = 0x79, g = 0x74, b = 0x0e }, + syntax_number = { r = 0x8f, g = 0x3f, b = 0x71 }, + syntax_keyword = { r = 0x9d, g = 0x00, b = 0x06 }, + syntax_function = { r = 0x79, g = 0x74, b = 0x0e }, + syntax_type = { r = 0xb5, g = 0x76, b = 0x14 }, + syntax_variable = { r = 0x3c, g = 0x38, b = 0x36 }, + syntax_tag = { r = 0xaf, g = 0x3a, b = 0x03 }, + diff_add_bg = { r = 0xce, g = 0xcb, b = 0x94 }, + diff_remove_bg = { r = 0xf7, g = 0x8b, b = 0x7f }, + } }, + { name = 'Dracula Soft', palette = { + canvas_fg = { r = 0xf6, g = 0xf6, b = 0xf5 }, + canvas_bg = { r = 0x29, g = 0x2a, b = 0x35 }, + surface = { r = 0x21, g = 0x22, b = 0x2c }, + accent = { r = 0xa7, g = 0xdf, b = 0xef }, + muted = { r = 0x70, g = 0x74, b = 0x7f }, + success = { r = 0x87, g = 0xe5, b = 0x8e }, + err = { r = 0xdd, g = 0x6e, b = 0x6b }, + warn = { r = 0xe8, g = 0xed, b = 0xa2 }, + purple = { r = 0xba, g = 0xa0, b = 0xe8 }, + secondary = { r = 0xe4, g = 0x8c, b = 0xc1 }, + syntax_string = { r = 0xe8, g = 0xed, b = 0xa2 }, + syntax_number = { r = 0xba, g = 0xa0, b = 0xe8 }, + syntax_keyword = { r = 0xe4, g = 0x8c, b = 0xc1 }, + syntax_function = { r = 0x87, g = 0xe5, b = 0x8e }, + syntax_type = { r = 0xbc, g = 0xf4, b = 0xf5 }, + syntax_variable = { r = 0xf6, g = 0xf6, b = 0xf5 }, + syntax_tag = { r = 0xa7, g = 0xdf, b = 0xef }, + } }, + { name = 'Kanagawa Wave', palette = { + canvas_fg = { r = 0xdc, g = 0xd7, b = 0xba }, + canvas_bg = { r = 0x1f, g = 0x1f, b = 0x28 }, + surface = { r = 0x16, g = 0x16, b = 0x1d }, + accent = { r = 0x7e, g = 0x9c, b = 0xd8 }, + muted = { r = 0x72, g = 0x71, b = 0x69 }, + success = { r = 0x98, g = 0xbb, b = 0x6c }, + err = { r = 0xe8, g = 0x24, b = 0x24 }, + warn = { r = 0xff, g = 0x9e, b = 0x3b }, + purple = { r = 0x95, g = 0x7f, b = 0xb8 }, + secondary = { r = 0x7a, g = 0xa8, b = 0x9f }, + syntax_string = { r = 0x98, g = 0xbb, b = 0x6c }, + syntax_number = { r = 0xd2, g = 0x7e, b = 0x99 }, + syntax_keyword = { r = 0x95, g = 0x7f, b = 0xb8 }, + syntax_function = { r = 0x7e, g = 0x9c, b = 0xd8 }, + syntax_type = { r = 0x7a, g = 0xa8, b = 0x9f }, + syntax_variable = { r = 0xdc, g = 0xd7, b = 0xba }, + syntax_tag = { r = 0x7f, g = 0xb4, b = 0xca }, + diff_add_bg = { r = 0x2b, g = 0x33, b = 0x28 }, + diff_remove_bg = { r = 0x43, g = 0x24, b = 0x2b }, + } }, + { name = 'Kanagawa Dragon', palette = { + canvas_fg = { r = 0xc5, g = 0xc9, b = 0xc5 }, + canvas_bg = { r = 0x18, g = 0x16, b = 0x16 }, + surface = { r = 0x0d, g = 0x0c, b = 0x0c }, + accent = { r = 0x8b, g = 0xa4, b = 0xb0 }, + muted = { r = 0x73, g = 0x7c, b = 0x73 }, + success = { r = 0x98, g = 0xbb, b = 0x6c }, + err = { r = 0xe8, g = 0x24, b = 0x24 }, + warn = { r = 0xff, g = 0x9e, b = 0x3b }, + purple = { r = 0x89, g = 0x92, b = 0xa7 }, + secondary = { r = 0x8e, g = 0xa4, b = 0xa2 }, + syntax_string = { r = 0x8a, g = 0x9a, b = 0x7b }, + syntax_number = { r = 0xa2, g = 0x92, b = 0xa3 }, + syntax_keyword = { r = 0x89, g = 0x92, b = 0xa7 }, + syntax_function = { r = 0x8b, g = 0xa4, b = 0xb0 }, + syntax_type = { r = 0x8e, g = 0xa4, b = 0xa2 }, + syntax_variable = { r = 0xc5, g = 0xc9, b = 0xc5 }, + syntax_tag = { r = 0x94, g = 0x9f, b = 0xb5 }, + diff_add_bg = { r = 0x2b, g = 0x33, b = 0x28 }, + diff_remove_bg = { r = 0x43, g = 0x24, b = 0x2b }, + } }, + { name = 'Kanagawa Lotus', palette = { + canvas_fg = { r = 0x54, g = 0x54, b = 0x64 }, + canvas_bg = { r = 0xf2, g = 0xec, b = 0xbc }, + surface = { r = 0xd5, g = 0xce, b = 0xa3 }, + accent = { r = 0x4d, g = 0x69, b = 0x9b }, + muted = { r = 0x8a, g = 0x89, b = 0x80 }, + success = { r = 0x6f, g = 0x89, b = 0x4e }, + err = { r = 0xe8, g = 0x24, b = 0x24 }, + warn = { r = 0xe9, g = 0x8a, b = 0x00 }, + purple = { r = 0x62, g = 0x4c, b = 0x83 }, + secondary = { r = 0x59, g = 0x7b, b = 0x75 }, + syntax_string = { r = 0x6f, g = 0x89, b = 0x4e }, + syntax_number = { r = 0xb3, g = 0x5b, b = 0x79 }, + syntax_keyword = { r = 0x62, g = 0x4c, b = 0x83 }, + syntax_function = { r = 0x4d, g = 0x69, b = 0x9b }, + syntax_type = { r = 0x59, g = 0x7b, b = 0x75 }, + syntax_variable = { r = 0x54, g = 0x54, b = 0x64 }, + syntax_tag = { r = 0x66, g = 0x93, b = 0xbf }, + diff_add_bg = { r = 0xb7, g = 0xd0, b = 0xae }, + diff_remove_bg = { r = 0xd9, g = 0xa5, b = 0x94 }, + } }, +} + +local function blend(base, accent, percent) + local q = 100 - percent + return { + r = math.floor((base.r * q + accent.r * percent) / 100), + g = math.floor((base.g * q + accent.g * percent) / 100), + b = math.floor((base.b * q + accent.b * percent) / 100), + } +end + +local function fg(color) + return string.format("\27[38;2;%d;%d;%dm", color.r, color.g, color.b) +end + +local function bg(color) + return string.format("\27[48;2;%d;%d;%dm", color.r, color.g, color.b) +end + +local function derive(p) + local values = { + canvas_fg = fg(p.canvas_fg), + canvas_bg = bg(p.canvas_bg), + dim = fg(p.muted), + assistant = fg(p.canvas_fg), + user = fg(p.canvas_fg), + tool = fg(p.accent), + footer = fg(p.muted), + tool_text = fg(p.canvas_fg), + tool_pending = fg(p.muted), + tool_success = fg(p.success), + tool_error = fg(p.err), + compaction_header = fg(p.warn), + thinking_header = fg(p.purple), + cursor = "\27[7m", + err = fg(p.err), + welcome = fg(p.accent), + waiting_peak = fg(p.canvas_fg), + waiting_near = fg(p.secondary), + waiting_far = fg(p.muted), + err_diff = fg(p.err), + add_diff = fg(p.success), + thinking = fg(p.muted), + compaction = fg(p.muted), + + user_bg = bg(p.surface), + tool_pending_bg = bg(p.surface), + tool_success_bg = bg(blend(p.canvas_bg, p.success, 20)), + tool_error_bg = bg(blend(p.canvas_bg, p.err, 20)), + diff_remove_bg = bg(p.diff_remove_bg or blend(p.canvas_bg, p.err, 20)), + diff_add_bg = bg(p.diff_add_bg or blend(p.canvas_bg, p.success, 20)), + user_text = fg(p.canvas_fg), + tool_header = fg(p.accent), + + syntax_base = fg(p.canvas_fg), + syntax_comment = fg(p.muted), + syntax_string = fg(p.syntax_string), + syntax_number = fg(p.syntax_number), + syntax_keyword = fg(p.syntax_keyword), + syntax_function = fg(p.syntax_function), + syntax_type = fg(p.syntax_type), + syntax_variable = fg(p.syntax_variable), + syntax_tag = fg(p.syntax_tag), + + reset = "\27[0m", + } + return values +end + +local M = {} + +function M.activate() + local panto = require("panto") + for _, item in ipairs(palettes) do + local exists = pcall(panto.ext.style, item.name) + if not exists then + panto.ext.style(item.name, derive(item.palette)) + end + end +end + +function M.values(name) + for _, item in ipairs(palettes) do + if item.name == name then + return derive(item.palette) + end + end +end + +return { name = "themes.popular", activate = M.activate, values = M.values } |
