71 lines
1.7 KiB
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
|