shades-of-purple-nvim/lua/shades_of_purple/shades_of_purple.lua

172 lines
6.5 KiB
Lua
Raw Normal View History

2024-12-16 19:18:38 +01:00
local lush = require('lush')
local hsl = lush.hsl
local base00 = "#191830"
local base06 = "#ffffff"
local base09 = "#78a9ff"
local colors = {
2024-12-17 18:57:11 +01:00
base00 = base00,
2024-12-16 19:18:38 +01:00
base01 = base00,
2024-12-17 18:57:11 +01:00
base02 = "#fad000",
2024-12-16 19:18:38 +01:00
base03 = "#FFFFFF",
base04 = "#FFFFFF",
base05 = "#FFFFFF",
base06 = "#FFFFFF",
base07 = "#fad000",
base08 = "#3ddbd9",
base09 = base09,
base10 = "#ee5396",
base11 = "#33b1ff",
base12 = "#ff7eb6",
base13 = "#42be65",
base14 = "#be95ff",
base15 = "#82cfff",
blend = "#131313",
string = "#A5FF90",
keyword = "#ff9d00",
type = "#fad000",
error = "#EC3A37F5",
storage = "#FB94FF",
macro = "#fad000",
fg = "#FFFFFF",
lineNumber = "#7870ab",
bg = "#191830",
white = "#FFFFFF",
meta = "#9efff",
2024-12-17 18:57:11 +01:00
number = "#FF628C",
cyan = "#9EFFFF",
2024-12-16 19:18:38 +01:00
none = "NONE"
}
-- LSP/Linters mistakenly show `undefined global` errors in the spec, they may
-- support an annotation like the following. Consult your server documentation.
---@diagnostic disable: undefined-global
local theme = lush(function(injected_functions)
local sym = injected_functions.sym
return {
ColorColumn {fg = colors.none, bg = colors.bg },
Cursor {fg = colors.base00, bg = colors.base04},
CursorLine {fg = colors.none, bg = colors.base01},
CursorColumn {fg = colors.none, bg = colors.base01},
CursorLineNr {fg = colors.base04, bg = colors.none},
QuickFixLine {fg = colors.none, bg = colors.base01},
Error {fg = colors.error, bg = colors.base01},
LineNr {fg = colors.lineNumber, bg = colors.base00},
NonText {fg = colors.fg, bg = colors.none},
Normal {fg = colors.fg, bg = colors.base00},
Pmenu {fg = colors.base04, bg = colors.base01},
PmenuSbar {fg = colors.base04, bg = colors.base01},
PmenuSel {fg = colors.base08, bg = colors.base02},
PmenuThumb {fg = colors.base08, bg = colors.base02},
SpecialKey {fg = colors.base03, bg = colors.none},
Visual {fg = colors.none, bg = colors.base02},
VisualNOS {fg = colors.none, bg = colors.base02},
TooLong {fg = colors.none, bg = colors.base02},
Debug {fg = colors.white, bg = colors.none},
2024-12-17 18:57:11 +01:00
Macro {fg = colors.cyan, bg = colors.none},
2024-12-16 19:18:38 +01:00
MatchParen {fg = colors.none, bg = colors.base02, underline = true},
Bold {fg = colors.none, bg = colors.none, bold = true},
Italic {fg = colors.none, bg = colors.none, italic = true},
Underlined {fg = colors.none, bg = colors.none, underline = true},
DiagnosticWarn {fg = colors.base14, bg = colors.none},
DiagnosticError {fg = colors.base10, bg = colors.none},
DiagnosticInfo {fg = colors.base09, bg = colors.none},
DiagnosticHint {fg = colors.base04, bg = colors.none},
DiagnosticUnderlineWarn {fg = colors.base14, bg = colors.none, undercurl = true},
DiagnosticUnderlineError {fg = colors.base10, bg = colors.none, undercurl = true},
2024-12-17 18:57:11 +01:00
DiagnosticUnderlineInfo {fg = colors.macro, bg = colors.none, undercurl = true},
DiagnosticUnderlineHint {fg = colors.macro, bg = colors.none, undercurl = true},
2024-12-16 19:18:38 +01:00
HealthError {fg = colors.base10, bg = colors.none},
HealthWarning {fg = colors.base14, bg = colors.none},
HealthSuccess {fg = colors.base13, bg = colors.none},
LspCodeLens {fg = colors.none, bg = colors.base03},
LspReferenceText {fg = colors.none, bg = colors.base03},
LspReferenceread {fg = colors.none, bg = colors.base03},
LspReferenceWrite {fg = colors.none, bg = colors.base03},
LspSignatureActiveParameter {fg = colors.base08, bg = colors.none},
Folded {fg = colors.base02, bg = colors.base01},
FoldColumn {fg = colors.base01, bg = colors.base00},
SignColumn {fg = colors.base01, bg = colors.base00},
Directory {fg = colors.base08, bg = colors.none},
EndOfBuffer {fg = colors.base01, bg = colors.none},
2024-12-17 18:57:11 +01:00
2024-12-16 19:18:38 +01:00
ErrorMsg {fg = colors.error, bg = colors.none},
ModeMsg {fg = colors.base04, bg = colors.none},
MoreMsg {fg = colors.base08, bg = colors.none},
Question {fg = colors.base04, bg = colors.none},
Substitute {fg = colors.base01, bg = colors.base08},
WarningMsg {fg = colors.base14, bg = colors.none},
WildMenu {fg = colors.base08, bg = colors.base01},
helpHyperTextJump {fg = colors.base08, bg = colors.none},
helpSpecial {fg = colors.base09, bg = colors.none},
helpHeadline {fg = colors.base10, bg = colors.none},
helpHeader {fg = colors.base15, bg = colors.none},
DiffAdded {fg = colors.base07, bg = colors.none},
DiffChanged {fg = colors.base09, bg = colors.none},
DiffRemoved {fg = colors.base10, bg = colors.none},
DiffAdd {bg = "#122f2f", fg = colors.none},
DiffChange {bg = "#222a39", fg = colors.none},
DiffText {bg = "#2f3f5c", fg = colors.none},
DiffDelete {bg = "#361c28", fg = colors.none},
IncSearch {fg = colors.base06, bg = colors.base10},
Search {fg = colors.base01, bg = colors.base08},
TabLine {link = "StatusLineNC"},
TabLineFill {link = "TabLine"},
TabLineSel {link = "StatusLine"},
Title {fg = colors.base04, bg = colors.none},
VertSplit {fg = colors.base01, bg = colors.base00},
WinSeparator {fg = colors.base01, bg = colors.base00},
2024-12-17 18:57:11 +01:00
Boolean {fg = colors.number, bg = colors.none},
2024-12-16 19:18:38 +01:00
Character {fg = colors.base14, bg = colors.none},
2024-12-17 18:57:11 +01:00
Comment {fg = colors.error, bg = colors.none, italic = true},
2024-12-16 19:18:38 +01:00
Conceal {fg = colors.none, bg = colors.none},
Conditional {fg = colors.base09, bg = colors.none},
2024-12-17 18:57:11 +01:00
Constant {fg = colors.macro, bg = colors.none},
2024-12-16 19:18:38 +01:00
Decorator {fg = colors.base12, bg = colors.none},
Define {fg = colors.storage, bg = colors.none},
2024-12-17 18:57:11 +01:00
Delimeter {fg = colors.keyword, bg = colors.none},
2024-12-16 19:18:38 +01:00
Exception {fg = colors.base09, bg = colors.none},
Float {link = "Number"},
Function {fg = colors.type, bg = colors.none},
2024-12-17 18:57:11 +01:00
Identifier {fg = colors.white, bg = colors.none},
2024-12-16 19:18:38 +01:00
Include {fg = colors.macro, bg = colors.none},
Keyword {fg = colors.keyword, bg = colors.none},
Label {fg = colors.type, bg = colors.none},
2024-12-17 18:57:11 +01:00
Number {fg = colors.number, bg = colors.none},
Operator {fg = colors.keyword, bg = colors.none},
2024-12-16 19:18:38 +01:00
PreProc {fg = colors.meta, bg = colors.none},
Repeat {fg = colors.base09, bg = colors.none},
Special {fg = colors.base04, bg = colors.none},
SpecialChar {fg = colors.base04, bg = colors.none},
SpecialComment {fg = colors.base08, bg = colors.none},
Statement {fg = colors.type, bg = colors.none},
StorageClass {fg = colors.keyword, bg = colors.none},
String {fg = colors.string, bg = colors.none},
2024-12-17 18:57:11 +01:00
Structure {fg = colors.macro, bg = colors.none},
2024-12-16 19:18:38 +01:00
Tag {fg = colors.base04, bg = colors.none},
Todo {fg = colors.base13, bg = colors.none},
Type {fg = colors.type, bg = colors.none},
-- Language specific stuff
-- rustModPath {fg = "#fad000" },
2024-12-17 18:57:11 +01:00
rustFoldBraces = {fg = colors.macro },
rustFloat = { fg = colors.number },
-- Plugins
RainbowRed = { fg = "#E06C75" },
RainbowYellow= { fg = "#E5C07B" },
2024-12-16 19:18:38 +01:00
}
end)
-- Return our parsed theme for extension or use elsewhere.
return theme
-- vi:nowrap