Files
zenbones-theme/doc/zenbones.txt
2021-09-30 23:42:01 +00:00

210 lines
6.7 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
*zenbones.txt* A contrast-focused vim/neovim colorscheme
==============================================================================
Table of Contents *zenbones-table-of-contents*
1. Zenbones |zenbones-zenbones|
- Usage |zenbones-usage|
- Configuration |zenbones-configuration|
- Advanced Usage |zenbones-advanced-usage|
==============================================================================
1. Zenbones *zenbones-zenbones*
**Zenflesh, Zenbones** is a vim/neovim colorscheme designed to highlight code
using contrasts and font variations. Colors are tasked only for other roles
such as diagnostics, diffs, search matches.
USAGE *zenbones-usage*
Just apply the colorscheme as usual:
>
colorscheme zenbones " light
colorscheme zenflesh " dark
<
If you want to make use of the lua version:
>
" Requires `neovim` and `rktjmp/lush.nvim` installed
colorscheme zenbones-lush
colorscheme zenflesh-lush
" Secret https://neovim.io colorscheme
colorscheme neovim
<
It works pretty much the same as the first one but pretty handy when extending
or customizing the colors to your likings.
CONFIGURATION *zenbones-configuration*
Configuration is only available for `zenbones-lush` and `zenflesh-lush`.
*zenbones-g:zenbones_lightness*
g:zenbones_lightness Change background colors lightness.
Options: `'bright'`, `'dim'`.
*zenbones-g:zenflesh_darkness*
g:zenflesh_darkness Change background colors darkness.
Options: `'stark'`, `'warm'`.
*zenbones-g:zenbones_solid_vert_split*
*zenbones-g:zenflesh_solid_vert_split*
g:zenflesh_solid_vert_split Default: `v:false`. Make vertical split
more distinguishable background
highlight.
*zenbones-g:zenbones_dim_noncurrent_window*
g:zenbones_dim_noncurrent_window Default: `v:false`. Make non-current
window background dimmer than _Normal_.
*zenbones-g:zenflesh_lighten_noncurrent_window*
g:zenflesh_lighten_noncurrent_window Default: `v:false`. Make non-current
window background warmer than _Normal_.
*zenbones-g:zenbones_italic_comments*
*zenbones-g:zenflesh_italic_comments*
g:zenflesh_italic_comments Default: `v:true`. Make comments
italicize.
*zenbones-lightline*
>
let g:lightline = {
\ 'colorscheme': 'zenbones', " or 'zenflesh'
\ }
<
*zenbones-lualine*
>
options = { theme = 'zenbones' } -- or 'zenflesh'
<
ADVANCED USAGE *zenbones-advanced-usage*
Zenbones is pretty extensible thanks to Lush. You can easily retrieve the
colors in lua:
>
local theme = require "zenbones" -- or zenflesh
local palette = require "zenbones.palette"
print(theme.StatusLine.bg.hex)
print(palette.blossom.darken(20).hex)
<
See also Lushs documentation
<https://github.com/rktjmp/lush.nvim#advanced-usage> for more options.
CREATE YOUR OWN COLORSCHEME ~
You can ultimately create your own colorscheme that is based on Zenbones by
modifying the base palette and extending the specs. Best way to demonstrate
this is through an example. Lets make a zenbones-flavored Gruvbox
colorscheme called `gruvbones`.
Lets define our |colorscheme| in `nvim/colors/gruvbones.lua`. And it
contains the following:
>
vim.g.colors_name = "gruvbones"
-- let's base bg=dark, bg=light on zenflesh, zenbones specs respectively
local base_name = vim.opt.background:get() == "dark" and "zenflesh" or "zenbones"
-- reset base palette and specs
package.loaded[base_name .. ".palette"] = nil
package.loaded[base_name] = nil
local lush = require "lush"
local hsl = lush.hsl
-- modify base palette (before requiring specs)
-- and we can also define our own
-- note: non-exhaustive copy of gruvbox palette. Ref: https://github.com/gruvbox-community/gruvbox#palette
local base = require(base_name .. ".palette")
local gruv
if base_name == "zenbones" then
base.bg = hsl "#fbf1c7"
base.fg = hsl "#3c3836"
gruv = {
gray = hsl "#7c6f64",
fg0 = hsl "#282828",
fg1 = hsl "#3c3836",
fg2 = hsl "#504945",
fg3 = hsl "#665c54",
fg4 = hsl "#7c6f64",
}
else
base.bg = hsl "#282828"
base.fg = hsl "#ebdbb2"
gruv = {
gray = hsl "#a89984",
fg0 = hsl "#fbf1c7",
fg1 = hsl "#ebdbb2",
fg2 = hsl "#d5c4a1",
fg3 = hsl "#d5c4a1",
fg4 = hsl "#a89984",
}
end
base.rose = hsl "#cc241d"
base.leaf = hsl "#98971a"
base.wood = hsl "#d79921"
base.water = hsl "#458588"
base.blossom = hsl "#b16286"
base.sky = hsl "#689d6a"
-- extend specs using Lush
local theme = require(base_name)
local specs = lush.extends({ theme }).with(function()
return {
Constant { fg = gruv.fg4, gui = "italic" },
Identifier { fg = gruv.fg2, gui = "italic" },
Special { fg = gruv.fg3, gui = "bold" },
Delimiter { fg = gruv.gray },
Comment { fg = gruv.gray, gui = "italic" },
LineNr { fg = Comment.fg },
}
end)
-- apply terminal colors
require(base_name .. ".terminal").setup()
-- include our theme file and pass it to lush to apply
lush(specs)
<
And there you have it. Just call `colorscheme gruvbones` to use your new
colorscheme. It respects `&background` and other configurations too.
Also checkout the neovim <../colors/neovim.lua> colorscheme for a similar and
complete example.
Generated by panvimdoc <https://github.com/kdheepak/panvimdoc>
vim:tw=78:ts=8:noet:ft=help:norl: