381 lines
12 KiB
Nix
381 lines
12 KiB
Nix
{
|
|
lib,
|
|
config,
|
|
...
|
|
}: let
|
|
inherit (lib) mkOption types;
|
|
|
|
cfg = config.horseman.catppuccin;
|
|
|
|
flavors = {
|
|
mocha = {
|
|
rosewater = "#f5e0dc";
|
|
rosewater-rgb = "rgb(245, 224, 220)";
|
|
rosewater-hsl = "hsl(10, 56%, 91%)";
|
|
flamingo = "#f2cdcd";
|
|
flamingo-rgb = "rgb(242, 205, 205)";
|
|
flamingo-hsl = "hsl(0, 59%, 88%)";
|
|
pink = "#f5c2e7";
|
|
pink-rgb = "rgb(245, 194, 231)";
|
|
pink-hsl = "hsl(316, 72%, 86%)";
|
|
mauve = "#cba6f7";
|
|
mauve-rgb = "rgb(203, 166, 247)";
|
|
mauve-hsl = "hsl(267, 84%, 81%)";
|
|
red = "#f38ba8";
|
|
red-rgb = "rgb(243, 139, 168)";
|
|
red-hsl = "hsl(343, 81%, 75%)";
|
|
maroon = "#eba0ac";
|
|
maroon-rgb = "rgb(235, 160, 172)";
|
|
maroon-hsl = "hsl(350, 65%, 77%)";
|
|
peach = "#fab387";
|
|
peach-rgb = "rgb(250, 179, 135)";
|
|
peach-hsl = "hsl(23, 92%, 75%)";
|
|
yellow = "#f9e2af";
|
|
yellow-rgb = "rgb(249, 226, 175)";
|
|
yellow-hsl = "hsl(41, 86%, 83%)";
|
|
green = "#a6e3a1";
|
|
green-rgb = "rgb(166, 227, 161)";
|
|
green-hsl = "hsl(115, 54%, 76%)";
|
|
teal = "#94e2d5";
|
|
teal-rgb = "rgb(148, 226, 213)";
|
|
teal-hsl = "hsl(170, 57%, 73%)";
|
|
sky = "#89dceb";
|
|
sky-rgb = "rgb(137, 220, 235)";
|
|
sky-hsl = "hsl(189, 71%, 73%)";
|
|
sapphire = "#74c7ec";
|
|
sapphire-rgb = "rgb(116, 199, 236)";
|
|
sapphire-hsl = "hsl(199, 76%, 69%)";
|
|
blue = "#89b4fa";
|
|
blue-rgb = "rgb(137, 180, 250)";
|
|
blue-hsl = "hsl(217, 92%, 76%)";
|
|
lavender = "#b4befe";
|
|
lavender-rgb = "rgb(180, 190, 254)";
|
|
lavender-hsl = "hsl(232, 97%, 85%)";
|
|
text = "#cdd6f4";
|
|
text-rgb = "rgb(205, 214, 244)";
|
|
text-hsl = "hsl(226, 64%, 88%)";
|
|
subtext1 = "#bac2de";
|
|
subtext1-rgb = "rgb(186, 194, 222)";
|
|
subtext1-hsl = "hsl(227, 35%, 80%)";
|
|
subtext0 = "#a6adc8";
|
|
subtext0-rgb = "rgb(166, 173, 200)";
|
|
subtext0-hsl = "hsl(228, 24%, 72%)";
|
|
overlay2 = "#9399b2";
|
|
overlay2-rgb = "rgb(147, 153, 178)";
|
|
overlay2-hsl = "hsl(228, 17%, 64%)";
|
|
overlay1 = "#7f849c";
|
|
overlay1-rgb = "rgb(127, 132, 156)";
|
|
overlay1-hsl = "hsl(230, 13%, 55%)";
|
|
overlay0 = "#6c7086";
|
|
overlay0-rgb = "rgb(108, 112, 134)";
|
|
overlay0-hsl = "hsl(231, 11%, 47%)";
|
|
surface2 = "#585b70";
|
|
surface2-rgb = "rgb(88, 91, 112)";
|
|
surface2-hsl = "hsl(233, 12%, 39%)";
|
|
surface1 = "#45475a";
|
|
surface1-rgb = "rgb(69, 71, 90)";
|
|
surface1-hsl = "hsl(234, 13%, 31%)";
|
|
surface0 = "#313244";
|
|
surface0-rgb = "rgb(49, 50, 68)";
|
|
surface0-hsl = "hsl(237, 16%, 23%)";
|
|
base = "#1e1e2e";
|
|
base-rgb = "rgb(30, 30, 46)";
|
|
base-hsl = "hsl(240, 21%, 15%)";
|
|
mantle = "#181825";
|
|
mantle-rgb = "rgb(24, 24, 37)";
|
|
mantle-hsl = "hsl(240, 21%, 12%)";
|
|
crust = "#11111b";
|
|
crust-rgb = "rgb(17, 17, 27)";
|
|
crust-hsl = "hsl(240, 23%, 9%)";
|
|
};
|
|
macchiato = {
|
|
rosewater = "#f4dbd6";
|
|
rosewater-rgb = "rgb(244, 219, 214)";
|
|
rosewater-hsl = "hsl(10, 58%, 90%)";
|
|
flamingo = "#f0c6c6";
|
|
flamingo-rgb = "rgb(240, 198, 198)";
|
|
flamingo-hsl = "hsl(0, 58%, 86%)";
|
|
pink = "#f5bde6";
|
|
pink-rgb = "rgb(245, 189, 230)";
|
|
pink-hsl = "hsl(316, 74%, 85%)";
|
|
mauve = "#c6a0f6";
|
|
mauve-rgb = "rgb(198, 160, 246)";
|
|
mauve-hsl = "hsl(267, 83%, 80%)";
|
|
red = "#ed8796";
|
|
red-rgb = "rgb(237, 135, 150)";
|
|
red-hsl = "hsl(351, 74%, 73%)";
|
|
maroon = "#ee99a0";
|
|
maroon-rgb = "rgb(238, 153, 160)";
|
|
maroon-hsl = "hsl(355, 71%, 77%)";
|
|
peach = "#f5a97f";
|
|
peach-rgb = "rgb(245, 169, 127)";
|
|
peach-hsl = "hsl(21, 86%, 73%)";
|
|
yellow = "#eed49f";
|
|
yellow-rgb = "rgb(238, 212, 159)";
|
|
yellow-hsl = "hsl(40, 70%, 78%)";
|
|
green = "#a6da95";
|
|
green-rgb = "rgb(166, 218, 149)";
|
|
green-hsl = "hsl(105, 48%, 72%)";
|
|
teal = "#8bd5ca";
|
|
teal-rgb = "rgb(139, 213, 202)";
|
|
teal-hsl = "hsl(171, 47%, 69%)";
|
|
sky = "#91d7e3";
|
|
sky-rgb = "rgb(145, 215, 227)";
|
|
sky-hsl = "hsl(189, 59%, 73%)";
|
|
sapphire = "#7dc4e4";
|
|
sapphire-rgb = "rgb(125, 196, 228)";
|
|
sapphire-hsl = "hsl(199, 66%, 69%)";
|
|
blue = "#8aadf4";
|
|
blue-rgb = "rgb(138, 173, 244)";
|
|
blue-hsl = "hsl(220, 83%, 75%)";
|
|
lavender = "#b7bdf8";
|
|
lavender-rgb = "rgb(183, 189, 248)";
|
|
lavender-hsl = "hsl(234, 82%, 85%)";
|
|
text = "#cad3f5";
|
|
text-rgb = "rgb(202, 211, 245)";
|
|
text-hsl = "hsl(227, 68%, 88%)";
|
|
subtext1 = "#b8c0e0";
|
|
subtext1-rgb = "rgb(184, 192, 224)";
|
|
subtext1-hsl = "hsl(228, 39%, 80%)";
|
|
subtext0 = "#a5adcb";
|
|
subtext0-rgb = "rgb(165, 173, 203)";
|
|
subtext0-hsl = "hsl(227, 27%, 72%)";
|
|
overlay2 = "#939ab7";
|
|
overlay2-rgb = "rgb(147, 154, 183)";
|
|
overlay2-hsl = "hsl(228, 20%, 65%)";
|
|
overlay1 = "#8087a2";
|
|
overlay1-rgb = "rgb(128, 135, 162)";
|
|
overlay1-hsl = "hsl(228, 15%, 57%)";
|
|
overlay0 = "#6e738d";
|
|
overlay0-rgb = "rgb(110, 115, 141)";
|
|
overlay0-hsl = "hsl(230, 12%, 49%)";
|
|
surface2 = "#5b6078";
|
|
surface2-rgb = "rgb(91, 96, 120)";
|
|
surface2-hsl = "hsl(230, 14%, 41%)";
|
|
surface1 = "#494d64";
|
|
surface1-rgb = "rgb(73, 77, 100)";
|
|
surface1-hsl = "hsl(231, 16%, 34%)";
|
|
surface0 = "#363a4f";
|
|
surface0-rgb = "rgb(54, 58, 79)";
|
|
surface0-hsl = "hsl(230, 19%, 26%)";
|
|
base = "#24273a";
|
|
base-rgb = "rgb(36, 39, 58)";
|
|
base-hsl = "hsl(232, 23%, 18%)";
|
|
mantle = "#1e2030";
|
|
mantle-rgb = "rgb(30, 32, 48)";
|
|
mantle-hsl = "hsl(233, 23%, 15%)";
|
|
crust = "#181926";
|
|
crust-rgb = "rgb(24, 25, 38)";
|
|
crust-hsl = "hsl(236, 23%, 12%)";
|
|
};
|
|
frappe = {
|
|
rosewater = "#f2d5cf";
|
|
rosewater-rgb = "rgb(242, 213, 207)";
|
|
rosewater-hsl = "hsl(10, 57%, 88%)";
|
|
flamingo = "#eebebe";
|
|
flamingo-rgb = "rgb(238, 190, 190)";
|
|
flamingo-hsl = "hsl(0, 59%, 84%)";
|
|
pink = "#f4b8e4";
|
|
pink-rgb = "rgb(244, 184, 228)";
|
|
pink-hsl = "hsl(316, 73%, 84%)";
|
|
mauve = "#ca9ee6";
|
|
mauve-rgb = "rgb(202, 158, 230)";
|
|
mauve-hsl = "hsl(277, 59%, 76%)";
|
|
red = "#e78284";
|
|
red-rgb = "rgb(231, 130, 132)";
|
|
red-hsl = "hsl(359, 68%, 71%)";
|
|
maroon = "#ea999c";
|
|
maroon-rgb = "rgb(234, 153, 156)";
|
|
maroon-hsl = "hsl(358, 66%, 76%)";
|
|
peach = "#ef9f76";
|
|
peach-rgb = "rgb(239, 159, 118)";
|
|
peach-hsl = "hsl(20, 79%, 70%)";
|
|
yellow = "#e5c890";
|
|
yellow-rgb = "rgb(229, 200, 144)";
|
|
yellow-hsl = "hsl(40, 62%, 73%)";
|
|
green = "#a6d189";
|
|
green-rgb = "rgb(166, 209, 137)";
|
|
green-hsl = "hsl(96, 44%, 68%)";
|
|
teal = "#81c8be";
|
|
teal-rgb = "rgb(129, 200, 190)";
|
|
teal-hsl = "hsl(172, 39%, 65%)";
|
|
sky = "#99d1db";
|
|
sky-rgb = "rgb(153, 209, 219)";
|
|
sky-hsl = "hsl(189, 48%, 73%)";
|
|
sapphire = "#85c1dc";
|
|
sapphire-rgb = "rgb(133, 193, 220)";
|
|
sapphire-hsl = "hsl(199, 55%, 69%)";
|
|
blue = "#8caaee";
|
|
blue-rgb = "rgb(140, 170, 238)";
|
|
blue-hsl = "hsl(222, 74%, 74%)";
|
|
lavender = "#babbf1";
|
|
lavender-rgb = "rgb(186, 187, 241)";
|
|
lavender-hsl = "hsl(239, 66%, 84%)";
|
|
text = "#c6d0f5";
|
|
text-rgb = "rgb(198, 208, 245)";
|
|
text-hsl = "hsl(227, 70%, 87%)";
|
|
subtext1 = "#b5bfe2";
|
|
subtext1-rgb = "rgb(181, 191, 226)";
|
|
subtext1-hsl = "hsl(227, 44%, 80%)";
|
|
subtext0 = "#a5adce";
|
|
subtext0-rgb = "rgb(165, 173, 206)";
|
|
subtext0-hsl = "hsl(228, 29%, 73%)";
|
|
overlay2 = "#949cbb";
|
|
overlay2-rgb = "rgb(148, 156, 187)";
|
|
overlay2-hsl = "hsl(228, 22%, 66%)";
|
|
overlay1 = "#838ba7";
|
|
overlay1-rgb = "rgb(131, 139, 167)";
|
|
overlay1-hsl = "hsl(227, 17%, 58%)";
|
|
overlay0 = "#737994";
|
|
overlay0-rgb = "rgb(115, 121, 148)";
|
|
overlay0-hsl = "hsl(229, 13%, 52%)";
|
|
surface2 = "#626880";
|
|
surface2-rgb = "rgb(98, 104, 128)";
|
|
surface2-hsl = "hsl(228, 13%, 44%)";
|
|
surface1 = "#51576d";
|
|
surface1-rgb = "rgb(81, 87, 109)";
|
|
surface1-hsl = "hsl(227, 15%, 37%)";
|
|
surface0 = "#414559";
|
|
surface0-rgb = "rgb(65, 69, 89)";
|
|
surface0-hsl = "hsl(230, 16%, 30%)";
|
|
base = "#303446";
|
|
base-rgb = "rgb(48, 52, 70)";
|
|
base-hsl = "hsl(229, 19%, 23%)";
|
|
mantle = "#292c3c";
|
|
mantle-rgb = "rgb(41, 44, 60)";
|
|
mantle-hsl = "hsl(231, 19%, 20%)";
|
|
crust = "#232634";
|
|
crust-rgb = "rgb(35, 38, 52)";
|
|
crust-hsl = "hsl(229, 20%, 17%)";
|
|
};
|
|
latte = {
|
|
rosewater = "#dc8a78";
|
|
rosewater-rgb = "rgb(220, 138, 120)";
|
|
rosewater-hsl = "hsl(11, 59%, 67%)";
|
|
flamingo = "#dd7878";
|
|
flamingo-rgb = "rgb(221, 120, 120)";
|
|
flamingo-hsl = "hsl(0, 60%, 67%)";
|
|
pink = "#ea76cb";
|
|
pink-rgb = "rgb(234, 118, 203)";
|
|
pink-hsl = "hsl(316, 73%, 69%)";
|
|
mauve = "#8839ef";
|
|
mauve-rgb = "rgb(136, 57, 239)";
|
|
mauve-hsl = "hsl(266, 85%, 58%)";
|
|
red = "#d20f39";
|
|
red-rgb = "rgb(210, 15, 57)";
|
|
red-hsl = "hsl(347, 87%, 44%)";
|
|
maroon = "#e64553";
|
|
maroon-rgb = "rgb(230, 69, 83)";
|
|
maroon-hsl = "hsl(355, 76%, 59%)";
|
|
peach = "#fe640b";
|
|
peach-rgb = "rgb(254, 100, 11)";
|
|
peach-hsl = "hsl(22, 99%, 52%)";
|
|
yellow = "#df8e1d";
|
|
yellow-rgb = "rgb(223, 142, 29)";
|
|
yellow-hsl = "hsl(35, 77%, 49%)";
|
|
green = "#40a02b";
|
|
green-rgb = "rgb(64, 160, 43)";
|
|
green-hsl = "hsl(109, 58%, 40%)";
|
|
teal = "#179299";
|
|
teal-rgb = "rgb(23, 146, 153)";
|
|
teal-hsl = "hsl(183, 74%, 35%)";
|
|
sky = "#04a5e5";
|
|
sky-rgb = "rgb(4, 165, 229)";
|
|
sky-hsl = "hsl(197, 97%, 46%)";
|
|
sapphire = "#209fb5";
|
|
sapphire-rgb = "rgb(32, 159, 181)";
|
|
sapphire-hsl = "hsl(189, 70%, 42%)";
|
|
blue = "#1e66f5";
|
|
blue-rgb = "rgb(30, 102, 245)";
|
|
blue-hsl = "hsl(220, 91%, 54%)";
|
|
lavender = "#7287fd";
|
|
lavender-rgb = "rgb(114, 135, 253)";
|
|
lavender-hsl = "hsl(231, 97%, 72%)";
|
|
text = "#4c4f69";
|
|
text-rgb = "rgb(76, 79, 105)";
|
|
text-hsl = "hsl(234, 16%, 35%)";
|
|
subtext1 = "#5c5f77";
|
|
subtext1-rgb = "rgb(92, 95, 119)";
|
|
subtext1-hsl = "hsl(233, 13%, 41%)";
|
|
subtext0 = "#6c6f85";
|
|
subtext0-rgb = "rgb(108, 111, 133)";
|
|
subtext0-hsl = "hsl(233, 10%, 47%)";
|
|
overlay2 = "#7c7f93";
|
|
overlay2-rgb = "rgb(124, 127, 147)";
|
|
overlay2-hsl = "hsl(232, 10%, 53%)";
|
|
overlay1 = "#8c8fa1";
|
|
overlay1-rgb = "rgb(140, 143, 161)";
|
|
overlay1-hsl = "hsl(231, 10%, 59%)";
|
|
overlay0 = "#9ca0b0";
|
|
overlay0-rgb = "rgb(156, 160, 176)";
|
|
overlay0-hsl = "hsl(228, 11%, 65%)";
|
|
surface2 = "#acb0be";
|
|
surface2-rgb = "rgb(172, 176, 190)";
|
|
surface2-hsl = "hsl(227, 12%, 71%)";
|
|
surface1 = "#bcc0cc";
|
|
surface1-rgb = "rgb(188, 192, 204)";
|
|
surface1-hsl = "hsl(225, 14%, 77%)";
|
|
surface0 = "#ccd0da";
|
|
surface0-rgb = "rgb(204, 208, 218)";
|
|
surface0-hsl = "hsl(223, 16%, 83%)";
|
|
base = "#eff1f5";
|
|
base-rgb = "rgb(239, 241, 245)";
|
|
base-hsl = "hsl(220, 23%, 95%)";
|
|
mantle = "#e6e9ef";
|
|
mantle-rgb = "rgb(230, 233, 239)";
|
|
mantle-hsl = "hsl(220, 22%, 92%)";
|
|
crust = "#dce0e8";
|
|
crust-rgb = "rgb(220, 224, 232)";
|
|
crust-hsl = "hsl(220, 21%, 89%)";
|
|
};
|
|
};
|
|
in {
|
|
options = {
|
|
horseman.catppuccin = {
|
|
flavor = mkOption {
|
|
type = types.enum ["latte" "frappe" "mocha" "macchiato"];
|
|
default = "mocha";
|
|
};
|
|
|
|
accent = mkOption {
|
|
type = types.enum [
|
|
"rosewater"
|
|
"flamingo"
|
|
"pink"
|
|
"mauve"
|
|
"red"
|
|
"maroon"
|
|
"peach"
|
|
"yellow"
|
|
"green"
|
|
"teal"
|
|
"sky"
|
|
"sapphire"
|
|
"blue"
|
|
"lavender"
|
|
"text"
|
|
"subtext1"
|
|
"subtext0"
|
|
"overlay2"
|
|
"overlay1"
|
|
"overlay0"
|
|
"surface2"
|
|
"surface1"
|
|
"surface0"
|
|
"base"
|
|
"mantle"
|
|
"crust"
|
|
];
|
|
|
|
default = "lavender";
|
|
};
|
|
|
|
colors = mkOption {
|
|
type = types.attrsOf types.anything;
|
|
readOnly = true;
|
|
};
|
|
};
|
|
};
|
|
|
|
config.horseman.catppuccin.colors = lib.mkDefault flavors.${cfg.flavor};
|
|
}
|