diff --git a/README.md b/README.md index 0939707..210c2c4 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Zenbones -Zenbones is a collection of vim/neovim colorschemes designed to highlight code +Zenbones is a collection of Vim/Neovim colorschemes designed to highlight code using contrasts and font variations. Colors are tasked only for other roles such as diagnostics, diffs, search matches. @@ -29,8 +29,8 @@ Example installation using packer: use { "mcchrish/zenbones.nvim", -- Optionally install Lush. Allows for more configuration or extending the colorscheme - requires = "rktjmp/lush.nvim" -- If you don't want to install lush, make sure to set g:zenbones_compat = 1 + requires = "rktjmp/lush.nvim" } ``` @@ -40,8 +40,9 @@ Just apply the colorscheme as usual: ```vim set termguicolors +set background=light " or dark -colorscheme zenbones " light +colorscheme zenbones colorscheme zenwritten " Zero hue and saturation version colorscheme neobones " https://neovim.io flavor @@ -50,6 +51,7 @@ colorscheme rosebones " Rosé Pine flavor - https://rosepinetheme.com colorscheme forestbones " Everforest flavor - https://github.com/sainnhe/everforest colorscheme nordbones " Nord flavor - https://www.nordtheme.com/docs/colors-and-palettes colorscheme tokyobones " Tokyo Night flavor - https://github.com/enkia/tokyo-night-vscode-theme#color-palette +colorscheme duckbones " Spaceduck flavor - https://pineapplegiant.github.io/spaceduck ``` ## [Configuration and other documentations](doc/zenbones.md) @@ -58,7 +60,7 @@ See [documentations](doc/zenbones.md) or `:help zenbones.txt`. ## Showcase -| light | dark | +| light | dark | | :------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------: | | ![diff](https://user-images.githubusercontent.com/7200153/133882734-de14cbb7-2faa-431b-9cb4-d674bf0f1d6a.png) | ![diff](https://user-images.githubusercontent.com/7200153/133882728-69abeca4-65d2-44e9-bddb-955e871c3143.png) | | ![diagnostics](https://user-images.githubusercontent.com/7200153/133882735-974ce339-1d5e-4bc0-9a95-82d21934222b.png) | ![diagnostics](https://user-images.githubusercontent.com/7200153/133882738-1b11be5f-5885-4ff9-9670-7e0bacbb6dd8.png) | diff --git a/autoload/lightline/colorscheme/zenbones.vim b/autoload/lightline/colorscheme/zenbones.vim index 893c826..1af817e 100644 --- a/autoload/lightline/colorscheme/zenbones.vim +++ b/autoload/lightline/colorscheme/zenbones.vim @@ -1,23 +1,5 @@ -" This file is auto-generated from lua/zenbones/template/lightline.lua -let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}} - -let s:p.normal.left = [ [ "#564E4A", "#B2A39B", "bold" ], [ "#564E4A", "#C4B6AF" ] ] -let s:p.normal.middle = [ [ "#2C363C", "#D1C7C3" ] ] -let s:p.normal.right = [ [ "#564E4A", "#C4B6AF" ], [ "#564E4A", "#C4B6AF" ] ] -let s:p.normal.warning = [ [ "#944927", "#F2DEDA" ] ] -let s:p.normal.error = [ [ "#A8334C", "#F2DEE0" ] ] - -let s:p.inactive.left = [ [ "#596A76", "#DAD3CF" ], [ "#596A76", "#DAD3CF" ] ] -let s:p.inactive.middle = [ [ "#596A76", "#DAD3CF" ] ] -let s:p.inactive.right = [ [ "#596A76", "#DAD3CF" ] ] - -let s:p.insert.left = [ [ "#564E4A", "#A9BED1", "bold" ], [ "#564E4A", "#C4B6AF" ] ] -let s:p.replace.left = [ [ "#564E4A", "#EBD8DA", "bold" ], [ "#564E4A", "#C4B6AF" ] ] -let s:p.visual.left = [ [ "#564E4A", "#CBD9E3", "bold" ], [ "#564E4A", "#C4B6AF" ] ] - -let s:p.tabline.left = [ [ "#2C363C", "#C4B6AF", "italic" ] ] -let s:p.tabline.middle = [ [ "#596A76", "#DAD3CF" ] ] -let s:p.tabline.right = [ [ "#2C363C", "#C4B6AF" ] ] -let s:p.tabline.tabsel = [ [ "#2C363C", "#F0EDEC", "bold" ] ] - -let g:lightline#colorscheme#zenbones#palette = lightline#colorscheme#fill(s:p) +if lightline#colorscheme#background() ==# 'light' + let g:lightline#colorscheme#zenbones#palette = g:lightline#colorscheme#zenbones_light#palette +else + let g:lightline#colorscheme#zenbones#palette = g:lightline#colorscheme#zenbones_dark#palette +endif diff --git a/autoload/lightline/colorscheme/zenbones_dark.vim b/autoload/lightline/colorscheme/zenbones_dark.vim new file mode 100644 index 0000000..f89c73f --- /dev/null +++ b/autoload/lightline/colorscheme/zenbones_dark.vim @@ -0,0 +1,23 @@ +" This file is auto-generated from lua/zenbones/template/lightline.lua +let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}} + +let s:p.normal.left = [ [ "#AFA099", "#736863", "bold" ], [ "#AFA099", "#4F4844" ] ] +let s:p.normal.middle = [ [ "#B4BDC3", "#3E3835" ] ] +let s:p.normal.right = [ [ "#AFA099", "#4F4844" ], [ "#AFA099", "#4F4844" ] ] +let s:p.normal.warning = [ [ "#B77E64", "#211D1B" ] ] +let s:p.normal.error = [ [ "#DE6E7C", "#251B1C" ] ] + +let s:p.inactive.left = [ [ "#CAD0D4", "#322D2B" ], [ "#CAD0D4", "#322D2B" ] ] +let s:p.inactive.middle = [ [ "#CAD0D4", "#322D2B" ] ] +let s:p.inactive.right = [ [ "#CAD0D4", "#322D2B" ] ] + +let s:p.insert.left = [ [ "#AFA099", "#324757", "bold" ], [ "#AFA099", "#4F4844" ] ] +let s:p.replace.left = [ [ "#AFA099", "#3E2225", "bold" ], [ "#AFA099", "#4F4844" ] ] +let s:p.visual.left = [ [ "#AFA099", "#3D4042", "bold" ], [ "#AFA099", "#4F4844" ] ] + +let s:p.tabline.left = [ [ "#B4BDC3", "#4F4844", "italic" ] ] +let s:p.tabline.middle = [ [ "#CAD0D4", "#322D2B" ] ] +let s:p.tabline.right = [ [ "#B4BDC3", "#4F4844" ] ] +let s:p.tabline.tabsel = [ [ "#B4BDC3", "#1C1917", "bold" ] ] + +let g:lightline#colorscheme#zenbones#palette = lightline#colorscheme#fill(s:p) diff --git a/autoload/lightline/colorscheme/zenbones_light.vim b/autoload/lightline/colorscheme/zenbones_light.vim new file mode 100644 index 0000000..893c826 --- /dev/null +++ b/autoload/lightline/colorscheme/zenbones_light.vim @@ -0,0 +1,23 @@ +" This file is auto-generated from lua/zenbones/template/lightline.lua +let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}} + +let s:p.normal.left = [ [ "#564E4A", "#B2A39B", "bold" ], [ "#564E4A", "#C4B6AF" ] ] +let s:p.normal.middle = [ [ "#2C363C", "#D1C7C3" ] ] +let s:p.normal.right = [ [ "#564E4A", "#C4B6AF" ], [ "#564E4A", "#C4B6AF" ] ] +let s:p.normal.warning = [ [ "#944927", "#F2DEDA" ] ] +let s:p.normal.error = [ [ "#A8334C", "#F2DEE0" ] ] + +let s:p.inactive.left = [ [ "#596A76", "#DAD3CF" ], [ "#596A76", "#DAD3CF" ] ] +let s:p.inactive.middle = [ [ "#596A76", "#DAD3CF" ] ] +let s:p.inactive.right = [ [ "#596A76", "#DAD3CF" ] ] + +let s:p.insert.left = [ [ "#564E4A", "#A9BED1", "bold" ], [ "#564E4A", "#C4B6AF" ] ] +let s:p.replace.left = [ [ "#564E4A", "#EBD8DA", "bold" ], [ "#564E4A", "#C4B6AF" ] ] +let s:p.visual.left = [ [ "#564E4A", "#CBD9E3", "bold" ], [ "#564E4A", "#C4B6AF" ] ] + +let s:p.tabline.left = [ [ "#2C363C", "#C4B6AF", "italic" ] ] +let s:p.tabline.middle = [ [ "#596A76", "#DAD3CF" ] ] +let s:p.tabline.right = [ [ "#2C363C", "#C4B6AF" ] ] +let s:p.tabline.tabsel = [ [ "#2C363C", "#F0EDEC", "bold" ] ] + +let g:lightline#colorscheme#zenbones#palette = lightline#colorscheme#fill(s:p) diff --git a/colors/duckbones.lua b/colors/duckbones.lua new file mode 100644 index 0000000..04b938b --- /dev/null +++ b/colors/duckbones.lua @@ -0,0 +1,12 @@ +if vim.g.colors_name then + vim.api.nvim_command "highlight clear" +end + +vim.g.colors_name = "duckbones" +vim.opt.background = "dark" + +package.loaded["duckbones"] = nil +require "lush"(require "duckbones", { force_clean = false }) + +local p = require("duckbones.palette").dark +require("zenbones.term").apply_colors(p) diff --git a/doc/showcase.md b/doc/showcase.md index 81f389c..1772bdf 100644 --- a/doc/showcase.md +++ b/doc/showcase.md @@ -32,3 +32,7 @@ Screen Shot 2021-10-31 at 8 52 12 AM Screen Shot 2021-10-31 at 8 52 20 AM + +## Duckbones + +Screen Shot 2021-11-04 at 9 45 11 AM diff --git a/doc/zenbones.md b/doc/zenbones.md index ad6ff46..70bb714 100644 --- a/doc/zenbones.md +++ b/doc/zenbones.md @@ -1,6 +1,6 @@ -# Zenbones +# Documentation -Zenbones is a collection of vim/neovim colorschemes designed to highlight code +Zenbones is a collection of Vim/Neovim colorschemes designed to highlight code using contrasts and font variations. Colors are tasked only for other roles such as diagnostics, diffs, search matches. @@ -10,8 +10,9 @@ Just apply the colorscheme as usual: ```vim set termguicolors +set background=light " or dark -colorscheme zenbones " light +colorscheme zenbones colorscheme zenwritten " Zero hue and saturation version colorscheme neobones " https://neovim.io flavor @@ -20,6 +21,7 @@ colorscheme rosebones " Rosé Pine flavor - https://rosepinetheme.com colorscheme forestbones " Everforest flavor - https://github.com/sainnhe/everforest colorscheme nordbones " Nord flavor - https://www.nordtheme.com/docs/colors-and-palettes colorscheme tokyobones " Tokyo Night flavor - https://github.com/enkia/tokyo-night-vscode-theme#color-palette +colorscheme duckbones " Spaceduck flavor - https://pineapplegiant.github.io/spaceduck ``` It works pretty much the same as the first one but pretty handy when extending @@ -27,7 +29,7 @@ or customizing the colors to your likings. ## Configuration -Configuration is only available for neovim. There are two ways to set +Configuration is only available for Neovim. There are two ways to set configuration. First: ```vim @@ -57,26 +59,29 @@ vim.g.forestbones = { solid_line_nr = true, darken_comments = 45 } **Notes**: Flavors accept their own configuration by replacing the prefix with the flavor name e.g. `g:rosebones_italic_comments`. -| Option | Background | Default | Description | -| ------------------------- | ---------- | ------- | ------------------------------------------------------------------------------------------- | -| lightness | light | `nil` | Change background colors lightness. Options: `'bright'`, `'dim'`. | -| darkness | dark | `nil` | Change background colors darkness. Options: `'stark'`, `'warm'`. | -| solid_vert_split | both | `false` | Solid \|hl-VertSplit\| background. | -| solid_line_nr | both | `false` | Solid \|hl-LineNr\| background. | -| solid_float_border | both | `false` | Make \|hl-FloatBorder\| have a more distinguishable background highlight. | -| darken_noncurrent_window | light | `false` | Make non-current window background darker than _Normal_. | -| lighten_noncurrent_window | dark | `false` | Make non-current window background lighter than _Normal_. | -| italic_comments | both | `true` | Make comments italicize. | -| darken_comments | light | `38` | Percentage to darken comments relative to Normal bg. See also \|lush-color-darken\|. | -| lighten_comments | dark | `38` | Percentage to lighten comments relative to Normal bg. See also \|lush-color-lighten\|. | -| darken_non_text | light | `25` | Percentage to darken \|hl-NonText\| relative to Normal bg. See also \|lush-color-darken\|. | -| lighten_non_text | dark | `30` | Percentage to lighten \|hl-NonText\| relative to Normal bg. See also \|lush-color-darken\|. | -| darken_line_nr | light | `33` | Percentage to darken \|hl-LineNr\| relative to Normal bg. See also \|lush-color-darken\|. | -| lighten_line_nr | dark | `35` | Percentage to lighten \|hl-LineNr\| relative to Normal bg. See also \|lush-color-darken\|. | +| Option | Background | Default | Description | +| ------------------------- | ---------- | ------- | ------------------------------------------------------------------------- | +| lightness | light | `nil` | Change background colors lightness. Options: `'bright'`, `'dim'`. | +| darkness | dark | `nil` | Change background colors darkness. Options: `'stark'`, `'warm'`. | +| solid_vert_split | both | `false` | Solid \|hl-VertSplit\| background. | +| solid_line_nr | both | `false` | Solid \|hl-LineNr\| background. | +| solid_float_border | both | `false` | Make \|hl-FloatBorder\| have a more distinguishable background highlight. | +| darken_noncurrent_window | light | `false` | Make non-current window background darker than _Normal_. | +| lighten_noncurrent_window | dark | `false` | Make non-current window background lighter than _Normal_. | +| italic_comments | both | `true` | Make comments italicize. | +| darken_comments | light | `38` | Percentage to darken comments relative to Normal bg. | +| lighten_comments | dark | `38` | Percentage to lighten comments relative to Normal bg. | +| darken_non_text | light | `25` | Percentage to darken \|hl-NonText\| relative to Normal bg. | +| lighten_non_text | dark | `30` | Percentage to lighten \|hl-NonText\| relative to Normal bg. | +| darken_line_nr | light | `33` | Percentage to darken \|hl-LineNr\| relative to Normal bg. | +| lighten_line_nr | dark | `35` | Percentage to lighten \|hl-LineNr\| relative to Normal bg. | +| darken_cursor_line | light | `3` | Percentage to darken \|hl-CursorLine\| relative to Normal bg. | +| lighten_cursor_line | dark | `4` | Percentage to lighten \|hl-CursorLine\| relative to Normal bg. | +| transparent_background | both | `false` | Make background transparent. | #### g:zenbones_compat -Set to `1` to enable compatibility mode. Enable in vim. +Set to `1` to enable compatibility mode. Enable in Vim. ### lightline @@ -105,6 +110,8 @@ print(theme.StatusLine.bg.hex) print(palette.blossom.darken(20).hex) ``` +### Extend/override highlights + Here's an example of how to extend/override some highlights. `lua/customize_zenbones.lua`: diff --git a/doc/zenbones.txt b/doc/zenbones.txt index 6f0a3cc..ceffbb8 100644 --- a/doc/zenbones.txt +++ b/doc/zenbones.txt @@ -3,15 +3,15 @@ ============================================================================== Table of Contents *zenbones-table-of-contents* -1. Zenbones |zenbones-zenbones| +1. Documentation |zenbones-documentation| - Usage |zenbones-usage| - Configuration |zenbones-configuration| - Advanced Usage |zenbones-advanced-usage| ============================================================================== -1. Zenbones *zenbones-zenbones* +1. Documentation *zenbones-documentation* -Zenbones is a collection of vim/neovim colorschemes designed to highlight code +Zenbones is a collection of Vim/Neovim colorschemes designed to highlight code using contrasts and font variations. Colors are tasked only for other roles such as diagnostics, diffs, search matches. @@ -21,9 +21,9 @@ Just apply the colorscheme as usual: > set termguicolors + set background=light " or dark - colorscheme zenbones " light - colorscheme zenflesh " dark + colorscheme zenbones colorscheme zenwritten " Zero hue and saturation version colorscheme neobones " https://neovim.io flavor @@ -32,6 +32,7 @@ Just apply the colorscheme as usual: colorscheme forestbones " Everforest flavor - https://github.com/sainnhe/everforest colorscheme nordbones " Nord flavor - https://www.nordtheme.com/docs/colors-and-palettes colorscheme tokyobones " Tokyo Night flavor - https://github.com/enkia/tokyo-night-vscode-theme#color-palette + colorscheme duckbones " Spaceduck flavor - https://pineapplegiant.github.io/spaceduck < @@ -40,7 +41,7 @@ or customizing the colors to your likings. CONFIGURATION *zenbones-configuration* -Configuration is only available for neovim. There are two ways to set +Configuration is only available for Neovim. There are two ways to set configuration. First: > @@ -74,49 +75,54 @@ Second way is to set configuration is to assign a dictionary to the prefix: **Notes**: Flavors accept their own configuration by replacing the prefix with the flavor name e.g. `g:rosebones_italic_comments`. -│ Option │Backg│Defau│ Description │ -│ │round│ lt │ │ -│ │ │ │ │ -│lightness │light│nil │Change background colors lightness. Options: 'bri│ -│ │ │ │ght', 'dim'. │ -│darkness │dark │nil │Change background colors darkness. Options: 'star│ -│ │ │ │k', 'warm'. │ -│solid_vert_spl│both │false│Solid |hl-VertSplit| background. │ -│it │ │ │ │ -│solid_line_nr │both │false│Solid |hl-LineNr| background. │ -│ │ │ │ │ -│solid_float_bo│both │false│Make |hl-FloatBorder| have a more distinguishable│ -│rder │ │ │ background highlight. │ -│darken_noncurr│light│false│Make non-current window background darker than _N│ -│ent_window │ │ │ormal_. │ -│lighten_noncur│dark │false│Make non-current window background lighter than _│ -│rent_window │ │ │Normal_. │ -│italic_comment│both │true │Make comments italicize. │ -│s │ │ │ │ -│darken_comment│light│38 │Percentage to darken comments relative to Normal │ -│s │ │ │bg. See also |lush-color-darken|. │ -│lighten_commen│dark │38 │Percentage to lighten comments relative to Normal│ -│ts │ │ │ bg. See also |lush-color-lighten|. │ -│darken_non_tex│light│25 │Percentage to darken |hl-NonText| relative to Nor│ -│t │ │ │mal bg. See also |lush-color-darken|. │ -│lighten_non_te│dark │30 │Percentage to lighten |hl-NonText| relative to No│ -│xt │ │ │rmal bg. See also |lush-color-darken|. │ -│darken_line_nr│light│33 │Percentage to darken |hl-LineNr| relative to Norm│ -│ │ │ │al bg. See also |lush-color-darken|. │ -│lighten_line_n│dark │35 │Percentage to lighten |hl-LineNr| relative to Nor│ -│r │ │ │mal bg. See also |lush-color-darken|. │ +│ Option │Backgr│Defau│ Description │ +│ │ ound │ lt │ │ +│lightness │light │nil │Change background colors lightness. Options: │ +│ │ │ │'bright', 'dim'. │ +│darkness │dark │nil │Change background colors darkness. Options: '│ +│ │ │ │stark', 'warm'. │ +│solid_vert_spli│both │false│Solid |hl-VertSplit| background. │ +│t │ │ │ │ +│solid_line_nr │both │false│Solid |hl-LineNr| background. │ +│ │ │ │ │ +│solid_float_bor│both │false│Make |hl-FloatBorder| have a more distinguish│ +│der │ │ │able background highlight. │ +│darken_noncurre│light │false│Make non-current window background darker tha│ +│nt_window │ │ │n _Normal_. │ +│lighten_noncurr│dark │false│Make non-current window background lighter th│ +│ent_window │ │ │an _Normal_. │ +│italic_comments│both │true │Make comments italicize. │ +│ │ │ │ │ +│darken_comments│light │38 │Percentage to darken comments relative to Nor│ +│ │ │ │mal bg. │ +│lighten_comment│dark │38 │Percentage to lighten comments relative to No│ +│s │ │ │rmal bg. │ +│darken_non_text│light │25 │Percentage to darken |hl-NonText| relative to│ +│ │ │ │ Normal bg. │ +│lighten_non_tex│dark │30 │Percentage to lighten |hl-NonText| relative t│ +│t │ │ │o Normal bg. │ +│darken_line_nr │light │33 │Percentage to darken |hl-LineNr| relative to │ +│ │ │ │Normal bg. │ +│lighten_line_nr│dark │35 │Percentage to lighten |hl-LineNr| relative to│ +│ │ │ │ Normal bg. │ +│darken_cursor_l│light │3 │Percentage to darken |hl-CursorLine| relative│ +│ine │ │ │ to Normal bg. │ +│lighten_cursor_│dark │4 │Percentage to lighten |hl-CursorLine| relativ│ +│line │ │ │e to Normal bg. │ +│transparent_bac│both │false│Make background transparent. │ +│kground │ │ │ │ *zenbones-g:zenbones_compat* g:zenbones_compat Set to `1` to enable compatibility mode. - Enable in vim. + Enable in Vim. LIGHTLINE ~ > - let g:lightline = #{ colorscheme: 'zenbones' } " or zenflesh + let g:lightline = #{ colorscheme: 'zenbones' } < @@ -124,7 +130,7 @@ LUALINE ~ > require("lualine").setup { - options = { theme = "zenbones" }, -- or zenflesh + options = { theme = "zenbones" }, } < @@ -135,7 +141,7 @@ Zenbones is pretty extensible thanks to Lush. You can easily retrieve the colors in lua: > - local theme = require "zenbones" -- or zenflesh + local theme = require "zenbones" local palette = require "zenbones.palette" print(theme.StatusLine.bg.hex) @@ -143,6 +149,8 @@ colors in lua: < +EXTEND/OVERRIDE HIGHLIGHTS ~ + Here’s an example of how to extend/override some highlights. `lua/customize_zenbones.lua`: diff --git a/extras/alacritty/zenbones_dark.yml b/extras/alacritty/zenbones_dark.yml new file mode 100644 index 0000000..da966e4 --- /dev/null +++ b/extras/alacritty/zenbones_dark.yml @@ -0,0 +1,27 @@ +# This file is auto-generated from lua/zenbones/template/alacritty.lua +# zenbones_dark alacritty colors +colors: + # Default colors + primary: + background: '#1C1917' + foreground: '#B4BDC3' + # Normal colors + normal: + black: '#0F191F' + red: '#DE6E7C' + green: '#90FF6B' + yellow: '#B77E64' + blue: '#8190D4' + magenta: '#B279A7' + cyan: '#66A5AD' + white: '#C6D5CF' + # Bright colors + bright: + black: '#263945' + red: '#E8838F' + green: '#A0FF85' + yellow: '#D68C67' + blue: '#92A0E2' + magenta: '#CF86C1' + cyan: '#65B8C1' + white: '#98A39E' diff --git a/extras/alacritty/zenbones_light.yml b/extras/alacritty/zenbones_light.yml new file mode 100644 index 0000000..3c4112a --- /dev/null +++ b/extras/alacritty/zenbones_light.yml @@ -0,0 +1,27 @@ +# This file is auto-generated from lua/zenbones/template/alacritty.lua +# zenbones_light alacritty colors +colors: + # Default colors + primary: + background: '#F0EDEC' + foreground: '#2C363C' + # Normal colors + normal: + black: '#E5EDE6' + red: '#A8334C' + green: '#567A30' + yellow: '#944927' + blue: '#286486' + magenta: '#88507D' + cyan: '#3B8992' + white: '#202E18' + # Bright colors + bright: + black: '#B3C6B6' + red: '#94253E' + green: '#3F5A22' + yellow: '#803D1C' + blue: '#1D5573' + magenta: '#7B3B70' + cyan: '#2B747C' + white: '#415934' diff --git a/extras/iterm/zenbones_dark.itermcolors b/extras/iterm/zenbones_dark.itermcolors new file mode 100644 index 0000000..194311a --- /dev/null +++ b/extras/iterm/zenbones_dark.itermcolors @@ -0,0 +1,357 @@ + + + + + Ansi 0 Color + + Alpha Component + 1 + Blue Component + 0.1215686274509804 + Color Space + sRGB + Green Component + 0.0980392156862745 + Red Component + 0.0588235294117647 + + Ansi 1 Color + + Alpha Component + 1 + Blue Component + 0.4862745098039216 + Color Space + sRGB + Green Component + 0.4313725490196079 + Red Component + 0.8705882352941177 + + Ansi 10 Color + + Alpha Component + 1 + Blue Component + 0.5215686274509804 + Color Space + sRGB + Green Component + 1.0000000000000000 + Red Component + 0.6274509803921569 + + Ansi 11 Color + + Alpha Component + 1 + Blue Component + 0.4039215686274510 + Color Space + sRGB + Green Component + 0.5490196078431373 + Red Component + 0.8392156862745098 + + Ansi 12 Color + + Alpha Component + 1 + Blue Component + 0.8862745098039215 + Color Space + sRGB + Green Component + 0.6274509803921569 + Red Component + 0.5725490196078431 + + Ansi 13 Color + + Alpha Component + 1 + Blue Component + 0.7568627450980392 + Color Space + sRGB + Green Component + 0.5254901960784314 + Red Component + 0.8117647058823529 + + Ansi 14 Color + + Alpha Component + 1 + Blue Component + 0.7568627450980392 + Color Space + sRGB + Green Component + 0.7215686274509804 + Red Component + 0.3960784313725490 + + Ansi 15 Color + + Alpha Component + 1 + Blue Component + 0.6196078431372549 + Color Space + sRGB + Green Component + 0.6392156862745098 + Red Component + 0.5960784313725490 + + Ansi 2 Color + + Alpha Component + 1 + Blue Component + 0.4196078431372549 + Color Space + sRGB + Green Component + 1.0000000000000000 + Red Component + 0.5647058823529412 + + Ansi 3 Color + + Alpha Component + 1 + Blue Component + 0.3921568627450980 + Color Space + sRGB + Green Component + 0.4941176470588236 + Red Component + 0.7176470588235294 + + Ansi 4 Color + + Alpha Component + 1 + Blue Component + 0.8313725490196079 + Color Space + sRGB + Green Component + 0.5647058823529412 + Red Component + 0.5058823529411764 + + Ansi 5 Color + + Alpha Component + 1 + Blue Component + 0.6549019607843137 + Color Space + sRGB + Green Component + 0.4745098039215686 + Red Component + 0.6980392156862745 + + Ansi 6 Color + + Alpha Component + 1 + Blue Component + 0.6784313725490196 + Color Space + sRGB + Green Component + 0.6470588235294118 + Red Component + 0.4000000000000000 + + Ansi 7 Color + + Alpha Component + 1 + Blue Component + 0.8117647058823529 + Color Space + sRGB + Green Component + 0.8352941176470589 + Red Component + 0.7764705882352941 + + Ansi 8 Color + + Alpha Component + 1 + Blue Component + 0.2705882352941176 + Color Space + sRGB + Green Component + 0.2235294117647059 + Red Component + 0.1490196078431373 + + Ansi 9 Color + + Alpha Component + 1 + Blue Component + 0.5607843137254902 + Color Space + sRGB + Green Component + 0.5137254901960784 + Red Component + 0.9098039215686274 + + Background Color + + Alpha Component + 1 + Blue Component + 0.0901960784313725 + Color Space + sRGB + Green Component + 0.0980392156862745 + Red Component + 0.1098039215686274 + + Badge Color + + Alpha Component + 1 + Blue Component + 0.3882352941176471 + Color Space + sRGB + Green Component + 0.4039215686274510 + Red Component + 0.4313725490196079 + + Bold Color + + Alpha Component + 1 + Blue Component + 0.2705882352941176 + Color Space + sRGB + Green Component + 0.2235294117647059 + Red Component + 0.1490196078431373 + + Cursor Color + + Alpha Component + 1 + Blue Component + 0.8117647058823529 + Color Space + sRGB + Green Component + 0.7921568627450980 + Red Component + 0.7686274509803922 + + Cursor Guide Color + + Alpha Component + 1 + Blue Component + 0.1215686274509804 + Color Space + sRGB + Green Component + 0.1294117647058824 + Red Component + 0.1450980392156863 + + Cursor Text Color + + Alpha Component + 1 + Blue Component + 0.0901960784313725 + Color Space + sRGB + Green Component + 0.0980392156862745 + Red Component + 0.1098039215686274 + + Foreground Color + + Alpha Component + 1 + Blue Component + 0.7647058823529411 + Color Space + sRGB + Green Component + 0.7411764705882353 + Red Component + 0.7058823529411765 + + Link Color + + Alpha Component + 1 + Blue Component + 0.8862745098039215 + Color Space + sRGB + Green Component + 0.6274509803921569 + Red Component + 0.5725490196078431 + + Selected Text Color + + Alpha Component + 1 + Blue Component + 0.7647058823529411 + Color Space + sRGB + Green Component + 0.7411764705882353 + Red Component + 0.7058823529411765 + + Selection Color + + Alpha Component + 1 + Blue Component + 0.2588235294117647 + Color Space + sRGB + Green Component + 0.2509803921568627 + Red Component + 0.2392156862745098 + + Tab Color + + Alpha Component + 1 + Blue Component + 0.0901960784313725 + Color Space + sRGB + Green Component + 0.0980392156862745 + Red Component + 0.1098039215686274 + + + \ No newline at end of file diff --git a/extras/iterm/zenbones_light.itermcolors b/extras/iterm/zenbones_light.itermcolors new file mode 100644 index 0000000..c027e3e --- /dev/null +++ b/extras/iterm/zenbones_light.itermcolors @@ -0,0 +1,357 @@ + + + + + Ansi 0 Color + + Alpha Component + 1 + Blue Component + 0.9019607843137255 + Color Space + sRGB + Green Component + 0.9294117647058824 + Red Component + 0.8980392156862745 + + Ansi 1 Color + + Alpha Component + 1 + Blue Component + 0.2980392156862745 + Color Space + sRGB + Green Component + 0.2000000000000000 + Red Component + 0.6588235294117647 + + Ansi 10 Color + + Alpha Component + 1 + Blue Component + 0.1333333333333333 + Color Space + sRGB + Green Component + 0.3529411764705883 + Red Component + 0.2470588235294118 + + Ansi 11 Color + + Alpha Component + 1 + Blue Component + 0.1098039215686274 + Color Space + sRGB + Green Component + 0.2392156862745098 + Red Component + 0.5019607843137255 + + Ansi 12 Color + + Alpha Component + 1 + Blue Component + 0.4509803921568628 + Color Space + sRGB + Green Component + 0.3333333333333333 + Red Component + 0.1137254901960784 + + Ansi 13 Color + + Alpha Component + 1 + Blue Component + 0.4392156862745098 + Color Space + sRGB + Green Component + 0.2313725490196079 + Red Component + 0.4823529411764706 + + Ansi 14 Color + + Alpha Component + 1 + Blue Component + 0.4862745098039216 + Color Space + sRGB + Green Component + 0.4549019607843137 + Red Component + 0.1686274509803922 + + Ansi 15 Color + + Alpha Component + 1 + Blue Component + 0.2039215686274510 + Color Space + sRGB + Green Component + 0.3490196078431372 + Red Component + 0.2549019607843137 + + Ansi 2 Color + + Alpha Component + 1 + Blue Component + 0.1882352941176471 + Color Space + sRGB + Green Component + 0.4784313725490196 + Red Component + 0.3372549019607843 + + Ansi 3 Color + + Alpha Component + 1 + Blue Component + 0.1529411764705882 + Color Space + sRGB + Green Component + 0.2862745098039216 + Red Component + 0.5803921568627451 + + Ansi 4 Color + + Alpha Component + 1 + Blue Component + 0.5254901960784314 + Color Space + sRGB + Green Component + 0.3921568627450980 + Red Component + 0.1568627450980392 + + Ansi 5 Color + + Alpha Component + 1 + Blue Component + 0.4901960784313725 + Color Space + sRGB + Green Component + 0.3137254901960784 + Red Component + 0.5333333333333333 + + Ansi 6 Color + + Alpha Component + 1 + Blue Component + 0.5725490196078431 + Color Space + sRGB + Green Component + 0.5372549019607843 + Red Component + 0.2313725490196079 + + Ansi 7 Color + + Alpha Component + 1 + Blue Component + 0.0941176470588235 + Color Space + sRGB + Green Component + 0.1803921568627451 + Red Component + 0.1254901960784314 + + Ansi 8 Color + + Alpha Component + 1 + Blue Component + 0.7137254901960784 + Color Space + sRGB + Green Component + 0.7764705882352941 + Red Component + 0.7019607843137254 + + Ansi 9 Color + + Alpha Component + 1 + Blue Component + 0.2431372549019608 + Color Space + sRGB + Green Component + 0.1450980392156863 + Red Component + 0.5803921568627451 + + Background Color + + Alpha Component + 1 + Blue Component + 0.9254901960784314 + Color Space + sRGB + Green Component + 0.9294117647058824 + Red Component + 0.9411764705882353 + + Badge Color + + Alpha Component + 1 + Blue Component + 0.5215686274509804 + Color Space + sRGB + Green Component + 0.5372549019607843 + Red Component + 0.5803921568627451 + + Bold Color + + Alpha Component + 1 + Blue Component + 0.7137254901960784 + Color Space + sRGB + Green Component + 0.7764705882352941 + Red Component + 0.7019607843137254 + + Cursor Color + + Alpha Component + 1 + Blue Component + 0.2352941176470588 + Color Space + sRGB + Green Component + 0.2117647058823529 + Red Component + 0.1725490196078431 + + Cursor Guide Color + + Alpha Component + 1 + Blue Component + 0.8862745098039215 + Color Space + sRGB + Green Component + 0.8941176470588236 + Red Component + 0.9137254901960784 + + Cursor Text Color + + Alpha Component + 1 + Blue Component + 0.9254901960784314 + Color Space + sRGB + Green Component + 0.9294117647058824 + Red Component + 0.9411764705882353 + + Foreground Color + + Alpha Component + 1 + Blue Component + 0.2352941176470588 + Color Space + sRGB + Green Component + 0.2117647058823529 + Red Component + 0.1725490196078431 + + Link Color + + Alpha Component + 1 + Blue Component + 0.4509803921568628 + Color Space + sRGB + Green Component + 0.3333333333333333 + Red Component + 0.1137254901960784 + + Selected Text Color + + Alpha Component + 1 + Blue Component + 0.2352941176470588 + Color Space + sRGB + Green Component + 0.2117647058823529 + Red Component + 0.1725490196078431 + + Selection Color + + Alpha Component + 1 + Blue Component + 0.8901960784313725 + Color Space + sRGB + Green Component + 0.8509803921568627 + Red Component + 0.7960784313725490 + + Tab Color + + Alpha Component + 1 + Blue Component + 0.9254901960784314 + Color Space + sRGB + Green Component + 0.9294117647058824 + Red Component + 0.9411764705882353 + + + \ No newline at end of file diff --git a/extras/kitty/zenbones_dark.conf b/extras/kitty/zenbones_dark.conf new file mode 100644 index 0000000..89e7064 --- /dev/null +++ b/extras/kitty/zenbones_dark.conf @@ -0,0 +1,40 @@ +# This file is auto-generated from lua/zenbones/template/kitty.lua +# vim:ft=kitty +## name: zenbones_dark +## license: MIT +## author: Michael Chris Lopez +## upstream: https://github.com/mcchrish/zenbones.nvim/raw/main/extras/kitty/zenbones_dark.conf + +background #1C1917 +foreground #B4BDC3 +selection_background #3D4042 +selection_foreground #B4BDC3 +url_color #92A0E2 +cursor #B4BDC3 + +# Tabs +active_tab_background #65435E +active_tab_foreground #B4BDC3 +inactive_tab_background #3E3835 +inactive_tab_foreground #B4BDC3 +#tab_bar_background ${tab_bar_background} + +# normal +color0 #0F191F +color1 #DE6E7C +color2 #90FF6B +color3 #B77E64 +color4 #8190D4 +color5 #B279A7 +color6 #66A5AD +color7 #C6D5CF + +# bright +color8 #263945 +color9 #E8838F +color10 #A0FF85 +color11 #D68C67 +color12 #92A0E2 +color13 #CF86C1 +color14 #65B8C1 +color15 #98A39E diff --git a/extras/kitty/zenbones_light.conf b/extras/kitty/zenbones_light.conf new file mode 100644 index 0000000..905c35a --- /dev/null +++ b/extras/kitty/zenbones_light.conf @@ -0,0 +1,40 @@ +# This file is auto-generated from lua/zenbones/template/kitty.lua +# vim:ft=kitty +## name: zenbones_light +## license: MIT +## author: Michael Chris Lopez +## upstream: https://github.com/mcchrish/zenbones.nvim/raw/main/extras/kitty/zenbones_light.conf + +background #F0EDEC +foreground #2C363C +selection_background #CBD9E3 +selection_foreground #2C363C +url_color #1D5573 +cursor #2C363C + +# Tabs +active_tab_background #DEB9D6 +active_tab_foreground #2C363C +inactive_tab_background #D1C7C3 +inactive_tab_foreground #2C363C +#tab_bar_background ${tab_bar_background} + +# normal +color0 #E5EDE6 +color1 #A8334C +color2 #567A30 +color3 #944927 +color4 #286486 +color5 #88507D +color6 #3B8992 +color7 #202E18 + +# bright +color8 #B3C6B6 +color9 #94253E +color10 #3F5A22 +color11 #803D1C +color12 #1D5573 +color13 #7B3B70 +color14 #2B747C +color15 #415934 diff --git a/extras/tmux/zenbones_dark.tmux b/extras/tmux/zenbones_dark.tmux new file mode 100644 index 0000000..6b54c1e --- /dev/null +++ b/extras/tmux/zenbones_dark.tmux @@ -0,0 +1,18 @@ +# This file is auto-generated from lua/zenbones/template/tmux.lua +set -g status-left ' #[fg=#B279A7,bold]#{s/root//:client_key_table} ' +set -g status-right '#[fg=#B279A7,bold] [#S]#[fg=#B279A7,bold] [%d/%m] #[fg=#B279A7,bold][%I:%M%p] ' +set -g status-style fg='#B279A7',bg='#C6D5CF' + +set -g window-status-current-style fg='#B279A7',bg='#C6D5CF',bold + +set -g pane-border-style fg='#B279A7' +set -g pane-active-border-style fg='#B279A7' + +set -g message-style fg='#0F191F',bg='#3D4042' + +set -g display-panes-active-colour '#B279A7' +set -g display-panes-colour '#B279A7' + +set -g clock-mode-colour '#B279A7' + +set -g mode-style fg='#0F191F',bg='#3D4042' diff --git a/extras/tmux/zenbones_light.tmux b/extras/tmux/zenbones_light.tmux new file mode 100644 index 0000000..d73c3bb --- /dev/null +++ b/extras/tmux/zenbones_light.tmux @@ -0,0 +1,18 @@ +# This file is auto-generated from lua/zenbones/template/tmux.lua +set -g status-left ' #[fg=#88507D,bold]#{s/root//:client_key_table} ' +set -g status-right '#[fg=#88507D,bold] [#S]#[fg=#88507D,bold] [%d/%m] #[fg=#88507D,bold][%I:%M%p] ' +set -g status-style fg='#88507D',bg='#202E18' + +set -g window-status-current-style fg='#88507D',bg='#202E18',bold + +set -g pane-border-style fg='#88507D' +set -g pane-active-border-style fg='#88507D' + +set -g message-style fg='#E5EDE6',bg='#CBD9E3' + +set -g display-panes-active-colour '#88507D' +set -g display-panes-colour '#88507D' + +set -g clock-mode-colour '#88507D' + +set -g mode-style fg='#E5EDE6',bg='#CBD9E3' diff --git a/extras/wezterm/Zenbones_dark.toml b/extras/wezterm/Zenbones_dark.toml new file mode 100644 index 0000000..aeee76b --- /dev/null +++ b/extras/wezterm/Zenbones_dark.toml @@ -0,0 +1,13 @@ +# This file is auto-generated from lua/zenbones/template/wezterm.lua +# Zenbones_dark +[colors] +foreground = "#B4BDC3" +background = "#1C1917" +cursor_bg = "#C4CACF" +cursor_border = "#1C1917" +cursor_fg = "#1C1917" +selection_bg = "#3D4042" +selection_fg = "#B4BDC3" + +ansi = ["#0F191F", "#DE6E7C", "#90FF6B", "#B77E64", "#8190D4", "#B279A7", "#66A5AD", "#C6D5CF"] +brights = ["#263945", "#E8838F", "#A0FF85", "#D68C67", "#92A0E2", "#CF86C1", "#65B8C1", "#98A39E"] diff --git a/extras/wezterm/Zenbones_light.toml b/extras/wezterm/Zenbones_light.toml new file mode 100644 index 0000000..8afb414 --- /dev/null +++ b/extras/wezterm/Zenbones_light.toml @@ -0,0 +1,13 @@ +# This file is auto-generated from lua/zenbones/template/wezterm.lua +# Zenbones_light +[colors] +foreground = "#2C363C" +background = "#F0EDEC" +cursor_bg = "#2C363C" +cursor_border = "#F0EDEC" +cursor_fg = "#F0EDEC" +selection_bg = "#CBD9E3" +selection_fg = "#2C363C" + +ansi = ["#E5EDE6", "#A8334C", "#567A30", "#944927", "#286486", "#88507D", "#3B8992", "#202E18"] +brights = ["#B3C6B6", "#94253E", "#3F5A22", "#803D1C", "#1D5573", "#7B3B70", "#2B747C", "#415934"] diff --git a/lua/duckbones/init.lua b/lua/duckbones/init.lua new file mode 100644 index 0000000..22a688b --- /dev/null +++ b/lua/duckbones/init.lua @@ -0,0 +1,17 @@ +local lush = require "lush" +local generator = require "zenbones.specs" +local p = require("duckbones.palette").dark + +local specs = generator.generate(p, "dark", generator.get_global_config("duckbones", "dark")) + +return lush.extends({ specs }).with(function() + ---@diagnostic disable: undefined-global + -- selene: allow(undefined_variable) + return { + Statement { specs.Statement, fg = p.blossom }, + Special { fg = p.leaf }, + PreProc { fg = p.sky }, + } + -- selene: deny(undefined_variable) + ---@diagnostic enable: undefined-global +end) diff --git a/lua/duckbones/palette.lua b/lua/duckbones/palette.lua new file mode 100644 index 0000000..d61c2d1 --- /dev/null +++ b/lua/duckbones/palette.lua @@ -0,0 +1,19 @@ +local util = require "zenbones.util" +local lush = require "lush" +local hsluv = lush.hsluv + +local M = {} + +M.dark = util.palette_extend { + bg = hsluv "#0f111b", + fg = hsluv "#ecf0c1", + rose = hsluv "#e33400", + leaf = hsluv "#5ccc96", + wood = hsluv "#e39400", + water = hsluv "#00a3cc", + blossom = hsluv "#7a5ccc", + blossom1 = hsluv "#b3a1e6", + sky = hsluv "#00a3cc", +} + +return M diff --git a/lua/lualine/themes/zenbones.lua b/lua/lualine/themes/zenbones.lua index 01a459f..7f82ebe 100644 --- a/lua/lualine/themes/zenbones.lua +++ b/lua/lualine/themes/zenbones.lua @@ -1,34 +1 @@ --- This file is auto-generated from lua/zenbones/template/lualine.lua -local common_fg = "#564E4A" -local inactive_bg = "#DAD3CF" -local inactive_fg = "#596A76" - -return { - normal = { - a = { bg = "#B2A39B", fg = common_fg, gui = "bold" }, - b = { bg = "#C4B6AF", fg = common_fg }, - c = { bg = "#D1C7C3", fg = "#2C363C" }, - }, - - insert = { - a = { bg = "#A9BED1", fg = common_fg, gui = "bold" }, - }, - - command = { - a = { bg = "#DEB9D6", fg = common_fg, gui = "bold" }, - }, - - visual = { - a = { bg = "#CBD9E3", fg = common_fg, gui = "bold" }, - }, - - replace = { - a = { bg = "#EBD8DA", fg = common_fg, gui = "bold" }, - }, - - inactive = { - a = { bg = inactive_bg, fg = inactive_fg, gui = "bold" }, - b = { bg = inactive_bg, fg = inactive_fg }, - c = { bg = inactive_bg, fg = inactive_fg }, - }, -} +return require("lualine.themes.zenbones_" .. vim.opt.background:get()) diff --git a/lua/lualine/themes/zenbones_dark.lua b/lua/lualine/themes/zenbones_dark.lua new file mode 100644 index 0000000..7ee10cd --- /dev/null +++ b/lua/lualine/themes/zenbones_dark.lua @@ -0,0 +1,34 @@ +-- This file is auto-generated from lua/zenbones/template/lualine.lua +local common_fg = "#AFA099" +local inactive_bg = "#322D2B" +local inactive_fg = "#CAD0D4" + +return { + normal = { + a = { bg = "#736863", fg = common_fg, gui = "bold" }, + b = { bg = "#4F4844", fg = common_fg }, + c = { bg = "#3E3835", fg = "#B4BDC3" }, + }, + + insert = { + a = { bg = "#324757", fg = common_fg, gui = "bold" }, + }, + + command = { + a = { bg = "#65435E", fg = common_fg, gui = "bold" }, + }, + + visual = { + a = { bg = "#3D4042", fg = common_fg, gui = "bold" }, + }, + + replace = { + a = { bg = "#3E2225", fg = common_fg, gui = "bold" }, + }, + + inactive = { + a = { bg = inactive_bg, fg = inactive_fg, gui = "bold" }, + b = { bg = inactive_bg, fg = inactive_fg }, + c = { bg = inactive_bg, fg = inactive_fg }, + }, +} diff --git a/lua/lualine/themes/zenbones_light.lua b/lua/lualine/themes/zenbones_light.lua new file mode 100644 index 0000000..01a459f --- /dev/null +++ b/lua/lualine/themes/zenbones_light.lua @@ -0,0 +1,34 @@ +-- This file is auto-generated from lua/zenbones/template/lualine.lua +local common_fg = "#564E4A" +local inactive_bg = "#DAD3CF" +local inactive_fg = "#596A76" + +return { + normal = { + a = { bg = "#B2A39B", fg = common_fg, gui = "bold" }, + b = { bg = "#C4B6AF", fg = common_fg }, + c = { bg = "#D1C7C3", fg = "#2C363C" }, + }, + + insert = { + a = { bg = "#A9BED1", fg = common_fg, gui = "bold" }, + }, + + command = { + a = { bg = "#DEB9D6", fg = common_fg, gui = "bold" }, + }, + + visual = { + a = { bg = "#CBD9E3", fg = common_fg, gui = "bold" }, + }, + + replace = { + a = { bg = "#EBD8DA", fg = common_fg, gui = "bold" }, + }, + + inactive = { + a = { bg = inactive_bg, fg = inactive_fg, gui = "bold" }, + b = { bg = inactive_bg, fg = inactive_fg }, + c = { bg = inactive_bg, fg = inactive_fg }, + }, +} diff --git a/lua/zenbones/specs/dark.lua b/lua/zenbones/specs/dark.lua index fc34c50..62fd3a6 100644 --- a/lua/zenbones/specs/dark.lua +++ b/lua/zenbones/specs/dark.lua @@ -37,7 +37,7 @@ local function generate(p, opt) -- styling for that group (meaning they mostly get styled as Normal) -- or leave them commented to apply vims default colouring or linking. - Normal { bg = p1.bg, fg = p.fg }, -- normal text + Normal { bg = not opt.transparent_background and p1.bg or "NONE", fg = p.fg }, -- normal text Underlined { gui = "underline" }, -- (preferred) text that stands out, HTML links Bold { gui = "bold" }, @@ -47,7 +47,7 @@ local function generate(p, opt) ErrorMsg { Error }, -- error messages on the command line WarningMsg { fg = p.wood }, -- warning messages - Comment { fg = Normal.bg.li(opt.lighten_comments or 38).de(24), gui = opt.italic_comments ~= false and "italic" or "NONE" }, -- any comment + Comment { fg = p1.bg.li(opt.lighten_comments or 38).de(24), gui = opt.italic_comments ~= false and "italic" or "NONE" }, -- any comment Conceal { fg = p1.fg5, gui = "bold,italic" }, -- placeholder characters substituted for concealed text (see 'conceallevel') Cursor { bg = p.fg.li(20), fg = p1.bg }, -- character under the cursor @@ -56,35 +56,35 @@ local function generate(p, opt) TermCursor { Cursor }, -- cursor in a focused terminal TermCursorNC { lCursor }, -- cursor in an unfocused terminal - CursorLine { bg = Normal.bg.li(4) }, -- Screen-line at the cursor, when 'cursorline' is set. Low-priority if foreground (ctermfg OR guifg) is not set. + CursorLine { bg = p1.bg.li(opt.lighten_cursor_line or 4) }, -- Screen-line at the cursor, when 'cursorline' is set. Low-priority if foreground (ctermfg OR guifg) is not set. CursorColumn { CursorLine }, -- Screen-column at the cursor, when 'cursorcolumn' is set. - ColorColumn { bg = p.wood.saturation(46).lightness(Normal.bg.l + 18) }, -- used for the columns set with 'colorcolumn' + ColorColumn { bg = p.wood.saturation(46).lightness(p1.bg.l + 18) }, -- used for the columns set with 'colorcolumn' DiffAdd { bg = p.leaf.saturation(50).lightness(p1.bg.l + 8) }, -- diff mode: Added line |diff.txt| DiffChange { bg = p.water.saturation(50).lightness(p1.bg.l + 8) }, -- diff mode: Changed line |diff.txt| DiffDelete { bg = p.rose.saturation(30).lightness(p1.bg.l + 8) }, -- diff mode: Deleted line |diff.txt| DiffText { bg = p.water.saturation(50).lightness(p1.bg.l + 20), fg = p.fg }, -- diff mode: Changed text within a changed line |diff.txt| - LineNr { fg = Normal.bg.li(opt.lighten_line_nr or 35), bg = opt.solid_line_nr and Normal.bg.li(6) or "NONE" }, -- Line number for ":number" and ":#" commands, and when 'number' or 'relativenumber' option is set. + LineNr { fg = p1.bg.li(opt.lighten_line_nr or 35), bg = opt.solid_line_nr and p1.bg.li(6) or "NONE" }, -- Line number for ":number" and ":#" commands, and when 'number' or 'relativenumber' option is set. SignColumn { LineNr }, -- column where |signs| are displayed FoldColumn { LineNr, gui = "bold" }, -- 'foldcolumn' - Folded { bg = Normal.bg.li(16), fg = Normal.bg.li(64) }, -- line used for closed folds + Folded { bg = p1.bg.li(16), fg = p1.bg.li(64) }, -- line used for closed folds CursorLineNr { LineNr, fg = p.fg, gui = "bold" }, -- Like LineNr when 'cursorline' or 'relativenumber' is set for the cursor line. -- ModeMsg { }, -- 'showmode' message (e.g., "-- INSERT -- ") -- MsgArea { }, -- Area for messages and cmdline -- MsgSeparator { }, -- Separator for scrolled messages, `msgsep` flag of 'display' MoreMsg { fg = p.leaf, gui = "bold" }, -- |more-prompt| - NormalFloat { bg = Normal.bg.li(8) }, -- Normal text in floating windows. - FloatBorder { fg = Normal.bg.li(46), bg = opt.solid_float_border and NormalFloat.bg or "NONE" }, -- Normal text in floating windows. + NormalFloat { bg = p1.bg.li(8) }, -- Normal text in floating windows. + FloatBorder { fg = p1.bg.li(46), bg = opt.solid_float_border and NormalFloat.bg or "NONE" }, -- Normal text in floating windows. - Pmenu { bg = Normal.bg.li(12) }, -- Popup menu: normal item. - PmenuSel { bg = Normal.bg.li(24) }, -- Popup menu: selected item. - PmenuSbar { bg = Normal.bg.li(40) }, -- Popup menu: scrollbar. - PmenuThumb { bg = Normal.bg.li(50) }, -- Popup menu: Thumb of the scrollbar. + Pmenu { bg = p1.bg.li(12) }, -- Popup menu: normal item. + PmenuSel { bg = p1.bg.li(24) }, -- Popup menu: selected item. + PmenuSbar { bg = p1.bg.li(40) }, -- Popup menu: scrollbar. + PmenuThumb { bg = p1.bg.li(50) }, -- Popup menu: Thumb of the scrollbar. - Search { bg = p.blossom.lightness(Normal.bg.l + 24), fg = p.fg }, -- Last search pattern highlighting (see 'hlsearch'). Also used for similar items that need to stand out. - IncSearch { bg = p.blossom.lightness(Normal.bg.l + 56), fg = p1.bg, gui = "bold" }, -- 'incsearch' highlighting; also used for the text replaced with ":s///c" + Search { bg = p.blossom.lightness(p1.bg.l + 24), fg = p.fg }, -- Last search pattern highlighting (see 'hlsearch'). Also used for similar items that need to stand out. + IncSearch { bg = p.blossom.lightness(p1.bg.l + 56), fg = p1.bg, gui = "bold" }, -- 'incsearch' highlighting; also used for the text replaced with ":s///c" -- Substitute { }, -- |:substitute| replacement text highlighting MatchParen { Search }, -- The character under the cursor or just before it, if it is a paired bracket, and its match. |pi_paren.txt| -- QuickFixLine { }, -- Current |quickfix| item in the quickfix window. Combined with |hl-CursorLine| when the cursor is there. @@ -94,17 +94,17 @@ local function generate(p, opt) SpellLocal { SpellCap }, -- Word that is recognized by the spellchecker as one that is used in another region. |spell| Combined with the highlighting used otherwise. SpellRare { SpellBad, guisp = p.wood }, -- Word that is recognized by the spellchecker as one that is hardly ever used. |spell| Combined with the highlighting used otherwise. - StatusLine { bg = Normal.bg.li(16), fg = p.fg }, -- status line of current window - StatusLineNC { bg = Normal.bg.li(11), fg = p.fg.li(28) }, -- status lines of not-current windows Note: if this is equal to "StatusLine" Vim will use "^^^" in the status line of the current window. + StatusLine { bg = p1.bg.li(16), fg = p.fg }, -- status line of current window + StatusLineNC { bg = p1.bg.li(11), fg = p.fg.li(28) }, -- status lines of not-current windows Note: if this is equal to "StatusLine" Vim will use "^^^" in the status line of the current window. TabLine { StatusLine }, -- tab pages line, not active tab page label TabLineFill { StatusLineNC }, -- tab pages line, where there are no labels TabLineSel { gui = "bold" }, -- tab pages line, active tab page label VertSplit { fg = LineNr.fg, bg = opt.solid_vert_split and StatusLineNC.bg or "NONE" }, -- the column separating vertically split windows - Visual { bg = p.fg.de(18).lightness(Normal.bg.l + 18) }, -- Visual mode selection + Visual { bg = p.fg.de(18).lightness(p1.bg.l + 18) }, -- Visual mode selection -- VisualNOS { }, -- Visual mode selection when vim is "Not Owning the Selection". - NonText { fg = Normal.bg.li(opt.lighten_non_text or 30) }, -- '@' at the end of the window, characters from 'showbreak' and other characters that do not really exist in the text (e.g., ">" displayed when a double-wide character doesn't fit at the end of the line). See also |hl-EndOfBuffer|. + NonText { fg = p1.bg.li(opt.lighten_non_text or 30) }, -- '@' at the end of the window, characters from 'showbreak' and other characters that do not really exist in the text (e.g., ">" displayed when a double-wide character doesn't fit at the end of the line). See also |hl-EndOfBuffer|. SpecialKey { NonText, gui = "italic" }, -- Unprintable characters: text displayed differently from what it really is. But not 'listchars' whitespace. |hl-Whitespace| Whitespace { NonText }, -- "nbsp", "space", "tab" and "trail" in 'listchars' EndOfBuffer { NonText }, -- filler lines (~) after the end of the buffer. By default, this is highlighted like |hl-NonText|. @@ -145,7 +145,7 @@ local function generate(p, opt) -- Macro { }, -- same as Define -- PreCondit { }, -- preprocessor #if, #else, #endif, etc. - Type { fg = Normal.bg.li(58) }, -- (preferred) int, long, char, etc. + Type { fg = p1.bg.li(58) }, -- (preferred) int, long, char, etc. -- StorageClass { }, -- static, register, volatile, etc. -- Structure { }, -- struct, union, enum, etc. -- Typedef { }, -- A typedef @@ -153,7 +153,7 @@ local function generate(p, opt) Special { fg = p1.fg3, gui = "bold" }, -- (preferred) any special symbol -- SpecialChar { }, -- special character in a constant -- Tag { }, -- you can use CTRL-] on this - Delimiter { fg = Normal.bg.li(47) }, -- character that needs attention + Delimiter { fg = p1.bg.li(47) }, -- character that needs attention SpecialComment { Comment, gui = "bold" }, -- special things inside a comment -- Debug { }, -- debugging statements @@ -181,8 +181,8 @@ local function generate(p, opt) DiagnosticSignInfo { SignColumn, fg = DiagnosticInfo.fg }, DiagnosticSignHint { SignColumn, fg = DiagnosticHint.fg }, - DiagnosticVirtualTextError { DiagnosticError, bg = p.rose.saturation(12).lightness(Normal.bg.l + 2) }, - DiagnosticVirtualTextWarn { DiagnosticWarn, bg = p.wood.saturation(12).lightness(Normal.bg.l + 2) }, + DiagnosticVirtualTextError { DiagnosticError, bg = p.rose.saturation(12).lightness(p1.bg.l + 2) }, + DiagnosticVirtualTextWarn { DiagnosticWarn, bg = p.wood.saturation(12).lightness(p1.bg.l + 2) }, DiagnosticUnderlineError { DiagnosticError, gui = "undercurl" }, DiagnosticUnderlineWarn { DiagnosticWarn, gui = "undercurl" }, @@ -286,7 +286,7 @@ local function generate(p, opt) GitGutterChange { GitSignsChange }, GitGutterDelete { GitSignsDelete }, - IndentBlanklineChar { fg = Normal.bg.li(14).de(22) }, + IndentBlanklineChar { fg = p1.bg.li(14).de(22) }, TelescopeSelection { CursorLine }, TelescopeSelectionCaret { TelescopeSelection, fg = p.rose }, @@ -352,7 +352,7 @@ local function generate(p, opt) TroubleText { Function }, TroubleSource { Constant }, - NvimTreeNormal { Normal, bg = Normal.bg.li(3) }, + NvimTreeNormal { Normal, bg = not opt.transparent_background and p1.bg.li(3) or "NONE" }, NvimTreeVertSplit { fg = "bg" }, NvimTreeCursorLine { bg = StatusLineNC.bg }, NvimTreeCursorColumn { NvimTreeCursorLine }, @@ -370,7 +370,7 @@ local function generate(p, opt) CmpItemKind { fg = p1.fg4 }, CmpItemMenu { fg = p1.fg5 }, - NnnNormal { Normal, bg = Normal.bg.li(3) }, + NnnNormal { NvimTreeNormal }, NnnNormalNC { NnnNormal }, NnnVertSplit { fg = "bg" }, } @@ -390,7 +390,7 @@ local function generate(p, opt) -- selene: allow(undefined_variable) lush(function() return { - NormalNC { base.Normal, bg = base.Normal.bg.li(2) }, -- normal text in non-current windows + NormalNC { base.Normal, bg = not opt.transparent_background and base.Normal.bg.li(2) or "NONE" }, -- normal text in non-current windows } end) -- selene: deny(undefined_variable) diff --git a/lua/zenbones/specs/init.lua b/lua/zenbones/specs/init.lua index be5b8c5..b3c8475 100644 --- a/lua/zenbones/specs/init.lua +++ b/lua/zenbones/specs/init.lua @@ -2,7 +2,7 @@ local M = {} local function concat_config(prefix, suffixes) local config = {} - for _i, suffix in ipairs(suffixes) do + for _, suffix in ipairs(suffixes) do config[suffix] = vim.g[prefix .. "_" .. suffix] end return config @@ -18,6 +18,7 @@ function M.get_global_config(prefix, base_bg) "solid_float_border", "solid_line_nr", "italic_comments", + "transparent_background", }) if base_bg == "light" then @@ -36,6 +37,7 @@ function M.get_global_config(prefix, base_bg) "darken_comments", "darken_line_nr", "darken_non_text", + "darken_cursor_line", }), common ) @@ -48,6 +50,7 @@ function M.get_global_config(prefix, base_bg) "lighten_comments", "lighten_line_nr", "lighten_non_text", + "lighten_cursor_line", }), common ) diff --git a/lua/zenbones/specs/light.lua b/lua/zenbones/specs/light.lua index 3d29ffb..07e0a55 100644 --- a/lua/zenbones/specs/light.lua +++ b/lua/zenbones/specs/light.lua @@ -37,7 +37,7 @@ local function generate(p, opt) -- styling for that group (meaning they mostly get styled as Normal) -- or leave them commented to apply vims default colouring or linking. - Normal { bg = p1.bg, fg = p.fg }, -- normal text + Normal { bg = not opt.transparent_background and p1.bg or "NONE", fg = p.fg }, -- normal text Underlined { gui = "underline" }, -- (preferred) text that stands out, HTML links Bold { gui = "bold" }, @@ -47,7 +47,7 @@ local function generate(p, opt) ErrorMsg { Error }, -- error messages on the command line WarningMsg { fg = p.wood }, -- warning messages - Comment { fg = Normal.bg.da(opt.darken_comments or 38).de(28), gui = opt.italic_comments ~= false and "italic" or "NONE" }, -- any comment + Comment { fg = p1.bg.da(opt.darken_comments or 38).de(28), gui = opt.italic_comments ~= false and "italic" or "NONE" }, -- any comment Conceal { fg = p1.fg3, gui = "bold,italic" }, -- placeholder characters substituted for concealed text (see 'conceallevel') Cursor { bg = p.fg, fg = p1.bg }, -- character under the cursor @@ -56,35 +56,35 @@ local function generate(p, opt) TermCursor { Cursor }, -- cursor in a focused terminal TermCursorNC { lCursor }, -- cursor in an unfocused terminal - CursorLine { bg = Normal.bg.da(3) }, -- Screen-line at the cursor, when 'cursorline' is set. Low-priority if foreground (ctermfg OR guifg) is not set. + CursorLine { bg = p1.bg.da(opt.darken_cursor_line or 3) }, -- Screen-line at the cursor, when 'cursorline' is set. Low-priority if foreground (ctermfg OR guifg) is not set. CursorColumn { CursorLine }, -- Screen-column at the cursor, when 'cursorcolumn' is set. - ColorColumn { bg = p.wood.saturation(46).lightness(Normal.bg.l - 12) }, -- used for the columns set with 'colorcolumn' + ColorColumn { bg = p.wood.saturation(46).lightness(p1.bg.l - 12) }, -- used for the columns set with 'colorcolumn' DiffAdd { bg = p.leaf.saturation(30).lightness(p1.bg.l - 6) }, -- diff mode: Added line |diff.txt| DiffChange { bg = p.water.saturation(30).lightness(p1.bg.l - 6) }, -- diff mode: Changed line |diff.txt| DiffDelete { bg = p.rose.saturation(40).lightness(p1.bg.l - 6) }, -- diff mode: Deleted line |diff.txt| DiffText { bg = p.water.saturation(30).lightness(p1.bg.l - 18), fg = p.fg }, -- diff mode: Changed text within a changed line |diff.txt| - LineNr { fg = Normal.bg.da(opt.darken_line_nr or 33), bg = opt.solid_line_nr and Normal.bg.da(4) or "NONE" }, -- Line number for ":number" and ":#" commands, and when 'number' or 'relativenumber' option is set. + LineNr { fg = p1.bg.da(opt.darken_line_nr or 33), bg = opt.solid_line_nr and p1.bg.da(4) or "NONE" }, -- Line number for ":number" and ":#" commands, and when 'number' or 'relativenumber' option is set. SignColumn { LineNr }, -- column where |signs| are displayed FoldColumn { LineNr, gui = "bold" }, -- 'foldcolumn' - Folded { bg = Normal.bg.da(16), fg = Normal.bg.da(64) }, -- line used for closed folds + Folded { bg = p1.bg.da(16), fg = p1.bg.da(64) }, -- line used for closed folds CursorLineNr { LineNr, fg = p.fg, gui = "bold" }, -- Like LineNr when 'cursorline' or 'relativenumber' is set for the cursor line. -- ModeMsg { }, -- 'showmode' message (e.g., "-- INSERT -- ") -- MsgArea { }, -- Area for messages and cmdline -- MsgSeparator { }, -- Separator for scrolled messages, `msgsep` flag of 'display' MoreMsg { fg = p.leaf, gui = "bold" }, -- |more-prompt| - NormalFloat { bg = Normal.bg.da(6) }, -- Normal text in floating windows. - FloatBorder { fg = Normal.bg.da(50), bg = opt.solid_float_border and NormalFloat.bg or "NONE" }, -- Normal text in floating windows. + NormalFloat { bg = p1.bg.da(6) }, -- Normal text in floating windows. + FloatBorder { fg = p1.bg.da(50), bg = opt.solid_float_border and NormalFloat.bg or "NONE" }, -- Normal text in floating windows. - Pmenu { bg = Normal.bg.da(10) }, -- Popup menu: normal item. - PmenuSel { bg = Normal.bg.da(20) }, -- Popup menu: selected item. - PmenuSbar { bg = Normal.bg.da(28) }, -- Popup menu: scrollbar. - PmenuThumb { bg = Normal.bg.li(58) }, -- Popup menu: Thumb of the scrollbar. + Pmenu { bg = p1.bg.da(10) }, -- Popup menu: normal item. + PmenuSel { bg = p1.bg.da(20) }, -- Popup menu: selected item. + PmenuSbar { bg = p1.bg.da(28) }, -- Popup menu: scrollbar. + PmenuThumb { bg = p1.bg.li(58) }, -- Popup menu: Thumb of the scrollbar. - Search { bg = p.blossom.lightness(Normal.bg.l - 15), fg = p.fg }, -- Last search pattern highlighting (see 'hlsearch'). Also used for similar items that need to stand out. - IncSearch { bg = p.blossom.lightness(Normal.bg.l - 35), fg = p1.bg, gui = "bold" }, -- 'incsearch' highlighting; also used for the text replaced with ":s///c" + Search { bg = p.blossom.lightness(p1.bg.l - 15), fg = p.fg }, -- Last search pattern highlighting (see 'hlsearch'). Also used for similar items that need to stand out. + IncSearch { bg = p.blossom.lightness(p1.bg.l - 35), fg = p1.bg, gui = "bold" }, -- 'incsearch' highlighting; also used for the text replaced with ":s///c" -- Substitute { }, -- |:substitute| replacement text highlighting MatchParen { Search }, -- The character under the cursor or just before it, if it is a paired bracket, and its match. |pi_paren.txt| -- QuickFixLine { }, -- Current |quickfix| item in the quickfix window. Combined with |hl-CursorLine| when the cursor is there. @@ -94,17 +94,17 @@ local function generate(p, opt) SpellLocal { SpellCap }, -- Word that is recognized by the spellchecker as one that is used in another region. |spell| Combined with the highlighting used otherwise. SpellRare { SpellBad, guisp = p.wood }, -- Word that is recognized by the spellchecker as one that is hardly ever used. |spell| Combined with the highlighting used otherwise. - StatusLine { bg = Normal.bg.da(14), fg = p.fg }, -- status line of current window - StatusLineNC { bg = Normal.bg.da(10), fg = p.fg.li(28) }, -- status lines of not-current windows Note: if this is equal to "StatusLine" Vim will use "^^^" in the status line of the current window. + StatusLine { bg = p1.bg.da(14), fg = p.fg }, -- status line of current window + StatusLineNC { bg = p1.bg.da(10), fg = p.fg.li(28) }, -- status lines of not-current windows Note: if this is equal to "StatusLine" Vim will use "^^^" in the status line of the current window. TabLine { StatusLine }, -- tab pages line, not active tab page label TabLineFill { StatusLineNC }, -- tab pages line, where there are no labels TabLineSel { gui = "bold" }, -- tab pages line, active tab page label VertSplit { fg = LineNr.fg, bg = opt.solid_vert_split and StatusLineNC.bg or "NONE" }, -- the column separating vertically split windows - Visual { bg = p.fg.lightness(Normal.bg.l - 8) }, -- Visual mode selection + Visual { bg = p.fg.lightness(p1.bg.l - 8) }, -- Visual mode selection -- VisualNOS { }, -- Visual mode selection when vim is "Not Owning the Selection". - NonText { fg = Normal.bg.da(opt.darken_non_text or 25) }, -- '@' at the end of the window, characters from 'showbreak' and other characters that do not really exist in the text (e.g., ">" displayed when a double-wide character doesn't fit at the end of the line). See also |hl-EndOfBuffer|. + NonText { fg = p1.bg.da(opt.darken_non_text or 25) }, -- '@' at the end of the window, characters from 'showbreak' and other characters that do not really exist in the text (e.g., ">" displayed when a double-wide character doesn't fit at the end of the line). See also |hl-EndOfBuffer|. SpecialKey { NonText, gui = "italic" }, -- Unprintable characters: text displayed differently from what it really is. But not 'listchars' whitespace. |hl-Whitespace| Whitespace { NonText }, -- "nbsp", "space", "tab" and "trail" in 'listchars' EndOfBuffer { NonText }, -- filler lines (~) after the end of the buffer. By default, this is highlighted like |hl-NonText|. @@ -145,7 +145,7 @@ local function generate(p, opt) -- Macro { }, -- same as Define -- PreCondit { }, -- preprocessor #if, #else, #endif, etp. - Type { fg = Normal.bg.sa(20).da(60) }, -- (preferred) int, long, char, etp. + Type { fg = p1.bg.sa(20).da(60) }, -- (preferred) int, long, char, etp. -- StorageClass { }, -- static, register, volatile, etc. -- Structure { }, -- struct, union, enum, etc. -- Typedef { }, -- A typedef @@ -153,7 +153,7 @@ local function generate(p, opt) Special { fg = p1.fg3, gui = "bold" }, -- (preferred) any special symbol -- SpecialChar { }, -- special character in a constant -- Tag { }, -- you can use CTRL-] on this - Delimiter { fg = Normal.bg.da(42) }, -- character that needs attention + Delimiter { fg = p1.bg.da(42) }, -- character that needs attention SpecialComment { Comment, gui = "bold" }, -- special things inside a comment -- Debug { }, -- debugging statements @@ -181,8 +181,8 @@ local function generate(p, opt) DiagnosticSignInfo { SignColumn, fg = DiagnosticInfo.fg }, DiagnosticSignHint { SignColumn, fg = DiagnosticHint.fg }, - DiagnosticVirtualTextError { DiagnosticError, bg = p.rose.saturation(52).lightness(Normal.bg.l - 4) }, - DiagnosticVirtualTextWarn { DiagnosticWarn, bg = p.wood.saturation(52).lightness(Normal.bg.l - 4)}, + DiagnosticVirtualTextError { DiagnosticError, bg = p.rose.saturation(52).lightness(p1.bg.l - 4) }, + DiagnosticVirtualTextWarn { DiagnosticWarn, bg = p.wood.saturation(52).lightness(p1.bg.l - 4)}, DiagnosticUnderlineError { DiagnosticError, gui = "undercurl" }, DiagnosticUnderlineWarn { DiagnosticWarn, gui = "undercurl" }, @@ -286,7 +286,7 @@ local function generate(p, opt) GitGutterChange { GitSignsChange }, GitGutterDelete { GitSignsDelete }, - IndentBlanklineChar { fg = Normal.bg.da(12).de(20) }, + IndentBlanklineChar { fg = p1.bg.da(12).de(20) }, TelescopeSelection { CursorLine }, TelescopeSelectionCaret { TelescopeSelection, fg = p.rose }, @@ -352,7 +352,7 @@ local function generate(p, opt) TroubleText { Function }, TroubleSource { Constant }, - NvimTreeNormal { Normal, bg = Normal.bg.da(3) }, + NvimTreeNormal { Normal, bg = not opt.transparent_background and p1.bg.da(3) or "NONE" }, NvimTreeVertSplit { fg = "bg" }, NvimTreeCursorLine { bg = StatusLineNC.bg }, NvimTreeCursorColumn { NvimTreeCursorLine }, @@ -370,7 +370,7 @@ local function generate(p, opt) CmpItemKind { fg = p1.fg4 }, CmpItemMenu { fg = p1.fg5 }, - NnnNormal { Normal, bg = Normal.bg.da(3) }, + NnnNormal { NvimTreeNormal }, NnnNormalNC { NnnNormal }, NnnVertSplit { fg = "bg" }, } @@ -390,7 +390,7 @@ local function generate(p, opt) -- selene: allow(undefined_variable) lush(function() return { - NormalNC { base.Normal, bg = base.Normal.bg.da(2) }, -- normal text in non-current windows + NormalNC { base.Normal, bg = not opt.transparent_background and base.Normal.bg.da(2) or "NONE" }, -- normal text in non-current windows } end) -- selene: deny(undefined_variable)