neovim-rose-pine/lua/rose-pine/util.lua
not e0fd291fb0 Update palette (#58)
* chore: format

* feat!: use new palette

- color "inactive" has been renamed to "muted"
- update subtle and muted colors
2022-01-21 20:27:22 -06:00

32 lines
851 B
Lua

local util = {}
local function get_byte(value, offset)
return bit.band(bit.rshift(value, offset), 0xFF)
end
local function get_color(color)
color = vim.api.nvim_get_color_by_name(color)
if color == -1 then
color = vim.opt.background:get() == 'dark' and 000 or 255255255
end
return { get_byte(color, 16), get_byte(color, 8), get_byte(color, 0) }
end
---@param fg string foreground color
---@param bg string background color
---@param alpha number number between 0 and 1. 0 results in bg, 1 results in fg
function util.blend(fg, bg, alpha)
bg = get_color(bg)
fg = get_color(fg)
local blendChannel = function(i)
local ret = (alpha * fg[i] + ((1 - alpha) * bg[i]))
return math.floor(math.min(math.max(0, ret), 255) + 0.5)
end
return string.format('#%02X%02X%02X', blendChannel(1), blendChannel(2), blendChannel(3))
end
return util