Dotfiles/vim/theme/cyberqueer.nvim/lua/cyberdream/extra/rio.lua

71 lines
1.7 KiB
Lua

local colors = require("cyberdream.colors")
local util = require("cyberdream.util")
local M = {}
--- Generate cyberdream theme for https://raphamorim.io/rio/
--- @param variant string: Variation of the colorscheme to use.
function M.generate(variant)
function CreateDimColor(hex)
return util.blend(hex, variant == "default" and colors[variant].bg or colors[variant].fg, 0.8)
end
function CreateLightColor(hex)
return util.blend(hex, variant == "default" and colors[variant].fg or colors[variant].bg, 0.8)
end
local extended_colors = vim.fn.copy(colors[variant])
for key, value in pairs(colors[variant]) do
extended_colors[key .. "Dim"] = CreateDimColor(value)
extended_colors[key .. "Light"] = CreateLightColor(value)
end
local template = [==[
[colors]
# Regular colors
background = '${bg}'
black = '${bg_alt}'
blue = '${blue}'
cursor = '${fg}'
cyan = '${cyan}'
foreground = '${fg}'
green = '${green}'
magenta = '${magenta}'
red = '${red}'
white = '${fg}'
yellow = '${yellow}'
# UI colors
tabs = '${bg_highlight}'
tabs-active = '${grey}'
selection-foreground = '${fg}'
selection-background = '${bg_alt}'
# Dim colors
dim-black = '${bg_altDim}'
dim-blue = '${blueDim}'
dim-cyan = '${cyanDim}'
dim-foreground = '${fgDim}'
dim-green = '${greenDim}'
dim-magenta = '${magentaDim}'
dim-red = '${redDim}'
dim-white = '${fgDim}'
dim-yellow = '${yellowDim}'
# Light colors
light-black = '${bg_altLight}'
light-blue = '${blueLight}'
light-cyan = '${cyanLight}'
light-foreground = '${fgLight}'
light-green = '${greenLight}'
light-magenta = '${magentaLight}'
light-red = '${redLight}'
light-white = '${fgLight}'
light-yellow = '${yellowLight}'
]==]
return util.parse_extra_template(template, extended_colors)
end
return M