feat: dank themes module

This commit is contained in:
Nick 2025-01-14 20:28:48 -06:00
parent de0e79f326
commit 4f61cbcccc
4 changed files with 457 additions and 236 deletions

View file

@ -74,11 +74,18 @@ let
schemePath = ./schemes;
mkThemeMap = themes: themeColours:
if currentTheme == builtins.head themes
then builtins.head themeColours
else if themes == []
then throw errorMessage
else mkThemeMap (builtins.tail themes) (builtins.tail themeColours);
mapColour =
# Ayu
ayu-darkColour: ayu-lightColour: ayu-mirageColour:
# Catppuccin
catppuccin-latteColour: catppuccin-frappeColour: catppuccin-macchiatoColour: catppuccin-mochaColour:
catppuccin-frappeColour: catppuccin-latteColour: catppuccin-macchiatoColour: catppuccin-mochaColour:
# Cobalt2
cobalt2Colour:
# Dracula
@ -121,121 +128,147 @@ let
vesperColour:
# Wasp
waspColour:
# Ayu
if currentTheme == ayu-dark
then ayu-darkColour
else if currentTheme == ayu-light
then ayu-lightColour
else if currentTheme == ayu-mirage
then ayu-mirageColour
# Catppuccin
else if currentTheme == catppuccin-mocha
then catppuccin-mochaColour
else if currentTheme == catppuccin-macchiato
then catppuccin-macchiatoColour
else if currentTheme == catppuccin-frappe
then catppuccin-frappeColour
else if currentTheme == catppuccin-latte
then catppuccin-latteColour
else if currentTheme == cobalt2
then cobalt2Colour
# Dracula
else if currentTheme == dracula
then draculaColour
#Gruvbox
else if currentTheme == gruvbox-dark
then gruvbox-darkColour
else if currentTheme == gruvbox-light
then gruvbox-lightColour
# Houston
else if currentTheme == houston
then houstonColour
# Kanagawa
else if currentTheme == kanagawa-dragon
then kanagawa-dragonColour
else if currentTheme == kanagawa-lotus
then kanagawa-lotusColour
else if currentTheme == kanagawa-wave
then kanagawa-waveColour
# Laserwave
else if currentTheme == laserwave
then laserwaveColour
# Lunar
else if currentTheme == lunar
then lunarColour
# Material
else if currentTheme == material-darker
then material-darkerColour
else if currentTheme == material-deep-ocean
then material-deep-oceanColour
else if currentTheme == material-forest
then material-forestColour
else if currentTheme == material-lighter
then material-lighterColour
else if currentTheme == material-oceanic
then material-oceanicColour
else if currentTheme == material-palenight
then material-palenightColour
else if currentTheme == material-sandy-beach
then material-sandy-beachColour
else if currentTheme == material-sky-blue
then material-sky-blueColour
else if currentTheme == material-space
then material-spaceColour
else if currentTheme == material-volcano
then material-volcanoColour
# Monokai
else if currentTheme == monokai
then monokaiColour
# Night Owl
else if currentTheme == night-owl
then night-owlColour
# Nord
else if currentTheme == nord
then nordColour
# Ocean Next
else if currentTheme == ocean-next
then ocean-nextColour
# One Dark
else if currentTheme == one-dark
then one-darkColour
# Plastic
else if currentTheme == plastic
then plasticColour
# Poimandres
else if currentTheme == poimandres-base
then poimandres-baseColour
else if currentTheme == poimandres-storm
then poimandres-stormColour
# Rosepine
else if currentTheme == rosepine
then rosepineColour
else if currentTheme == rosepine-moon
then rosepine-moonColour
else if currentTheme == rosepine-dawn
then rosepine-dawnColour
# Solorized
else if currentTheme == solorized-dark
then solorized-darkColour
else if currentTheme == solorized-light
then solorized-lightColour
# Synthwave 84
else if currentTheme == synthwave-84
then synthwave-84Colour
# Tokyo Night
else if currentTheme == tokyo-night-night
then tokyo-night-nightColor
else if currentTheme == tokyo-night-storm
then tokyo-night-stormColor
else if currentTheme == tokyo-night-day
then tokyo-night-dayColor
# Vesper
else if currentTheme == vesper
then vesperColour
# Wasp
else if currentTheme == wasp
then waspColour
else throw errorMessage;
mkThemeMap [
# Ayu
ayu-dark
ayu-light
ayu-mirage
# Catppuccin
catppuccin-frappe
catppuccin-latte
catppuccin-macchiato
catppuccin-mocha
# Cobalt2
cobalt2
# Dracula
dracula
# Gruvbox
gruvbox-dark
gruvbox-light
# Houston
houston
# Kanagawa
kanagawa-dragon
kanagawa-lotus
kanagawa-wave
# Laserwave
laserwave
# Lunar
lunar
# Material
material-darker
material-deep-ocean
material-forest
material-lighter
material-oceanic
material-palenight
material-sandy-beach
material-sky-blue
material-space
material-volcano
# Monokai
monokai
# Night Owl
night-owl
# Nord
nord
# Ocean Next
ocean-next
# One Dark
one-dark
# Plastic
plastic
# Poimandres
poimandres-base
poimandres-storm
# Rosepine
rosepine
rosepine-moon
rosepine-dawn
# Tokyo Night
tokyo-night-night
tokyo-night-storm
tokyo-night-day
# Solorized
solorized-dark
solorized-light
# Synthwave 84
synthwave-84
# Vesper
vesper
# Wasp
wasp
] [
# Ayu
ayu-darkColour
ayu-lightColour
ayu-mirageColour
# Catppuccin
catppuccin-frappeColour
catppuccin-latteColour
catppuccin-macchiatoColour
catppuccin-mochaColour
# Cobalt2
cobalt2Colour
# Dracula
draculaColour
# Gruvbox
gruvbox-darkColour
gruvbox-lightColour
# Houston
houstonColour
# Kanagawa
kanagawa-dragonColour
kanagawa-lotusColour
kanagawa-waveColour
# Laserwave
laserwaveColour
# Lunar
lunarColour
# Material
material-darkerColour
material-deep-oceanColour
material-forestColour
material-lighterColour
material-oceanicColour
material-palenightColour
material-sandy-beachColour
material-sky-blueColour
material-spaceColour
material-volcanoColour
# Monokai
monokaiColour
# Night Owl
night-owlColour
# Nord
nordColour
# Ocean Next
ocean-nextColour
# One Dark
one-darkColour
# Plastic
plasticColour
# Poimandres
poimandres-baseColour
poimandres-stormColour
# Rosepine
rosepineColour
rosepine-moonColour
rosepine-dawnColour
# Tokyo Night
tokyo-night-nightColor
tokyo-night-stormColor
tokyo-night-dayColor
# Solorized
solorized-darkColour
solorized-lightColour
# Synthwave 84
synthwave-84Colour
# Vesper
vesperColour
# Wasp
waspColour
];
in {
themes = {
currentTheme = currentTheme;
@ -301,152 +334,358 @@ in {
# Core Text Colours
text =
mapColour
"text" # catppuccin-frappe
"text" # catppuccin-latte
"text" # catppuccin-macchiato
"text" # catppuccin-mocha
"text" # rosepine
"foreground"; #dracula
subtext1 =
mapColour
"subtext1"
"subtle"
"foreground";
"foreground"; # dracula
subtext0 =
mapColour
"subtext0"
"muted"
"foreground";
"subtext0" # catppuccin-frappe
"subtext0" # catppuccin-latte
"subtext0" # catppuccin-macchiato
"subtext0" # catppuccin-mocha
"muted" # rosepine
"foreground"; # dracula
subtext1 =
mapColour
"subtext1" # catppuccin-frappe
"subtext1" # catppuccin-latte
"subtext1" # catppuccin-macchiato
"subtext1" # catppuccin-mocha
"subtle" # rosepine
"foreground"; # dracula
# Background Colours
background0 =
mapColour
"crust"
"highlight0"
"background";
"crust" # catppuccin-frappe
"crust" # catppuccin-latte
"crust" # catppuccin-macchiato
"crust" # catppuccin-mocha
"highlight0" # rosepine
"background"; # dracula
background1 =
mapColour
"base"
"base"
"background";
"base" # catppuccin-frappe
"base" # catppuccin-latte
"base" # catppuccin-macchiato
"base" # catppuccin-mocha
"base" # rosepine
"background"; # dracula
background2 =
mapColour
"mantle"
"surface"
"background";
"mantle" # catppuccin-frappe
"mantle" # catppuccin-latte
"mantle" # catppuccin-macchiato
"mantle" # catppuccin-mocha
"surface" # rosepine
"background"; # dracula
# Surface Colours
surface0 =
mapColour
"surface0"
"highlight0"
"background";
"surface0" # catppuccin-frappe
"surface0" # catppuccin-latte
"surface0" # catppuccin-macchiato
"surface0" # catppuccin-mocha
"highlight0" # rosepine
"background"; # dracula
surface1 =
mapColour
"surface1"
"highlight1"
"background";
"surface1" # catppuccin-frappe
"surface1" # catppuccin-latte
"surface1" # catppuccin-macchiato
"surface1" # catppuccin-mocha
"highlight1" # rosepine
"background"; # dracula
surface2 =
mapColour
"surface2"
"highlight2"
"background";
"surface2" # catppuccin-frappe
"surface2" # catppuccin-latte
"surface2" # catppuccin-macchiato
"surface2" # catppuccin-mocha
"highlight2" # rosepine
"background"; # dracula
# Overlay Colours
overlay0 =
mapColour
"overlay0"
"muted"
"background";
"overlay0" # catppuccin-frappe
"overlay0" # catppuccin-latte
"overlay0" # catppuccin-macchiato
"overlay0" # catppuccin-mocha
"muted" # rosepine
"background"; # dracula
overlay1 =
mapColour
"overlay1"
"subtle"
"background";
overlay2 =
mapColour
"overlay2"
"subtle"
"background";
"overlay1" # catppuccin-frappe
"overlay1" # catppuccin-latte
"overlay1" # catppuccin-macchiato
"overlay1" # catppuccin-mocha
"subtle" # rosepine
"background"; # dracula
overlay2 =
# and comments
mapColour
"overlay2" # catppuccin-frappe
"overlay2" # catppuccin-latte
"overlay2" # catppuccin-macchiato
"overlay2" # catppuccin-mocha
"subtle" # rosepine
"background"; # dracula
# Diagnostic Colours
error =
mapColour
"red"
"love"
"red";
"red" # catppuccin-frappe
"red" # catppuccin-latte
"red" # catppuccin-macchiato
"red" # catppuccin-mocha
"love" # rosepine
"red"; # dracula
warning =
mapColour
"yellow"
"gold"
"yellow";
"yellow" # catppuccin-frappe
"yellow" # catppuccin-latte
"yellow" # catppuccin-macchiato
"yellow" # catppuccin-mocha
"gold" # rosepine
"yellow"; # dracula
noError =
mapColour
"green"
"pine"
"green";
"green" # catppuccin-frappe
# Warm Accent Colours
warmAccent0 =
mapColour
"rosewater"
"rose"
"pink";
warmAccent1 =
mapColour
"flamingo"
"rose"
"pink";
warmAccent2 =
mapColour
"mauve"
"iris"
"purple";
warmAccent3 =
mapColour
"maroon"
"love"
"orange";
warmAccent4 =
mapColour
"peach"
"gold"
"orange";
warmAccent5 =
mapColour
"pink"
"love"
"purple";
"green" # catppuccin-latte
"green" # catppuccin-macchiato
"green" # catppuccin-mocha
"pine" # rosepine
"green"; # dracula
label =
mapColour
"rosewater" # catppuccin-frappe
"rosewater" # catppuccin-latte
"rosewater" # catppuccin-macchiato
"rosewater" # catppuccin-mocha
"rose" # rosepine
"pink"; # dracula
selection =
mapColour
"flamingo" # catppuccin-latte
"flamingo" # catppuccin-frappe
"flamingo" # catppuccin-macchiato
"flamingo" # catppuccin-mocha
"rose" # rosepine
"pink"; # dracula
keyword =
mapColour
"mauve" # catppuccin-frappe
"mauve" # catppuccin-latte
"mauve" # catppuccin-macchiato
"mauve" # catppuccin-mocha
"iris" # rosepine
"purple"; # dracula
parameter =
mapColour
"maroon" # catppuccin-frappe
"maroon" # catppuccin-latte
"maroon" # catppuccin-macchiato
"maroon" # catppuccin-mocha
"love" # rosepine
"orange"; # dracula
constant =
mapColour
"peach" # catppuccin-frappe
"peach" # catppuccin-latte
"peach" # catppuccin-macchiato
"peach" # catppuccin-mocha
"gold" # rosepine
"orange"; # dracula
regex =
mapColour
"pink" # catppuccin-frappe
"pink" # catppuccin-latte
"pink" # catppuccin-macchiato
"pink" # catppuccin-mocha
"love" # rosepine
"purple"; # dracula
character =
mapColour
"teal" # catppuccin-frappe
"teal" # catppuccin-latte
"teal" # catppuccin-macchiato
"teal" # catppuccin-mocha
"foam" # rosepine
"comment"; # dracula
# Cool Accent Colours
coolAccent0 =
operator =
mapColour
"teal"
"foam"
"comment";
coolAccent1 =
"sky" # catppuccin-frappe
"sky" # catppuccin-latte
"sky" # catppuccin-macchiato
"sky" # catppuccin-mocha
"foam" # rosepine
"cyan"; # dracula
constructor =
mapColour
"sky"
"foam"
"cyan";
coolAccent2 =
"sapphire" # catppuccin-frappe
"sapphire" # catppuccin-latte
"sapphire" # catppuccin-macchiato
"sapphire" # catppuccin-mocha
"foam" # rosepine
"cyan"; # dracula
function =
mapColour
"sapphire"
"foam"
"cyan";
coolAccent3 =
"blue" # catppuccin-frappe
"blue" # catppuccin-latte
"blue" # catppuccin-macchiato
"blue" # catppuccin-mocha
"pine" # rosepine
"comment"; # dracula
link =
mapColour
"blue"
"pine"
"comment";
coolAccent4 =
mapColour
"lavender"
"iris"
"cyan";
"lavender" # catppuccin-frappe
"lavender" # catppuccin-latte
"lavender" # catppuccin-macchiato
"lavender" # catppuccin-mocha
"iris" # rosepine
"cyan"; # dracula
};
};
}

View file

@ -17,19 +17,13 @@
editor_fg = "BFBDB6";
editor_bg = "0D1017";
editor_line = "131721";
editor_selection_active = "409FFF";
editor_selection_inactive = "409FFF";
editor_findMatch_active = "6C5980";
editor_findMatch_inactive = "6C5980";
editor_gutter_active = "6C7380";
editor_gutter_normal = "6C7380";
editor_indentGuide_active = "6C7380";
editor_indentGuide_normal = "6C7380";
editor_selection = "409FFF";
editor_match = "6C5980";
editor_indent = "6C7380";
ui_fg = "565B66";
ui_bg = "0B0E14";
ui_line = "11151C";
ui_selection_active = "475266";
ui_selection_normal = "475266";
ui_selection = "475266";
ui_panel_bg = "0F131A";
ui_panel_shadow = "000000";
accent = "E6B450";

View file

@ -16,15 +16,8 @@
removed = "FF7383";
editor_fg = "5C6166";
editor_bg = "FCFCFC";
editor_line = "8A9199";
editor_selection_active = "035BD6";
editor_selection_inactive = "035BD6";
editor_findMatch_active = "9F40FF";
editor_findMatch_inactive = "9F40FF";
editor_gutter_active = "8A9199";
editor_gutter_normal = "8A9199";
editor_indentGuide_active = "8A9199";
editor_indentGuide_normal = "8A9199";
editor_selection = "035BD6";
editor_match = "9F40FF";
ui_fg = "8A9199";
ui_bg = "F8F9FA";
ui_line = "6B7D8F";

View file

@ -17,14 +17,9 @@
editor_fg = "CCCAC2";
editor_bg = "242936";
editor_line = "1A1F29";
editor_selection_active = "409FFF";
editor_selection_inactive = "409FFF";
editor_findMatch_active = "695380";
editor_findMatch_inactive = "695380";
editor_gutter_active = "8A9199";
editor_gutter_normal = "8A9199";
editor_indentGuide_active = "8A9199";
editor_indentGuide_normal = "8A9199";
editor_selection = "409FFF";
editor_match = "695380";
editor_indent = "8A9199";
ui_fg = "707A8C";
ui_bg = "1F2430";
ui_line = "171B24";