This commit is contained in:
Barna Máté 2024-12-16 19:18:38 +01:00
commit d14fcd084e
2 changed files with 340 additions and 0 deletions

View file

@ -0,0 +1,21 @@
-- You probably always want to set this in your vim file
vim.opt.background = 'dark'
vim.g.colors_name = 'shades_of_purple'
-- By setting our module to nil, we clear lua's cache,
-- which means the require ahead will *always* occur.
--
-- This isn't strictly required but it can be a useful trick if you are
-- incrementally editing your config a lot and want to be sure your themes
-- changes are being picked up without restarting neovim.
--
-- Note if you're working in on your theme and have :Lushify'd the buffer,
-- your changes will be applied with our without the following line.
--
-- The performance impact of this call can be measured in the hundreds of
-- *nanoseconds* and such could be considered "production safe".
package.loaded['lush_theme.shades_of_purple'] = nil
-- include our theme file and pass it to lush to apply
require('lush')(require('lush_theme.shades_of_purple'))

View file

@ -0,0 +1,319 @@
--
-- Built with,
--
-- ,gggg,
-- d8" "8I ,dPYb,
-- 88 ,dP IP'`Yb
-- 8888888P" I8 8I
-- 88 I8 8'
-- 88 gg gg ,g, I8 dPgg,
-- ,aa,_88 I8 8I ,8'8, I8dP" "8I
-- dP" "88P I8, ,8I ,8' Yb I8P I8
-- Yb,_,d88b,,_ ,d8b, ,d8b,,8'_ 8) ,d8 I8,
-- "Y8P" "Y888888P'"Y88P"`Y8P' "YY8P8P88P `Y8
--
-- This is a starter colorscheme for use with Lush,
-- for usage guides, see :h lush or :LushRunTutorial
--
-- Note: Because this is a lua file, vim will append it to the runtime,
-- which means you can require(...) it in other lua code (this is useful),
-- but you should also take care not to conflict with other libraries.
--
-- (This is a lua quirk, as it has somewhat poor support for namespacing.)
local lush = require('lush')
local hsl = lush.hsl
local base00 = "#191830"
local base06 = "#ffffff"
local base09 = "#78a9ff"
local colors = {
base00 = base00,
base01 = base00,
base02 = "#FFFFFF",
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",
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},
Macro {fg = colors.macro, bg = colors.none},
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},
DiagnosticUnderlineInfo {fg = colors.base04, bg = colors.none, undercurl = true},
DiagnosticUnderlineHint {fg = colors.base04, bg = colors.none, undercurl = true},
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},
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},
Boolean {fg = colors.base09, bg = colors.none},
Character {fg = colors.base14, bg = colors.none},
Comment {fg = colors.base03, bg = colors.none, italic = true},
Conceal {fg = colors.none, bg = colors.none},
Conditional {fg = colors.base09, bg = colors.none},
Constant {fg = colors.base04, bg = colors.none},
Decorator {fg = colors.base12, bg = colors.none},
Define {fg = colors.storage, bg = colors.none},
Delimeter {fg = colors.base06, bg = colors.none},
Exception {fg = colors.base09, bg = colors.none},
Float {link = "Number"},
Function {fg = colors.type, bg = colors.none},
Identifier {fg = colors.type, bg = colors.none},
Include {fg = colors.macro, bg = colors.none},
Keyword {fg = colors.keyword, bg = colors.none},
Label {fg = colors.type, bg = colors.none},
Number {fg = colors.base15, bg = colors.none},
Operator {fg = colors.base09, bg = colors.none},
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},
Structure {fg = colors.base09, bg = colors.none},
Tag {fg = colors.base04, bg = colors.none},
Todo {fg = colors.base13, bg = colors.none},
Type {fg = colors.type, bg = colors.none},
markdownBlockquote {fg = colors.base08, bg = colors.none},
markdownBold {link = "Bold"},
markdownItalic {link = "Italic"},
markdownBoldItalic {fg = colors.none, bg = colors.none, bold = true, italic = true},
markdownRule {link = "Comment"},
markdownH1 {fg = colors.base10, bg = colors.none},
markdownH2 {link = "markdownH1"},
markdownH3 {link = "markdownH1"},
markdownH4 {link = "markdownH1"},
markdownH5 {link = "markdownH1"},
markdownH6 {link = "markdownH1"},
markdownHeadingDelimiter {link = "markdownH1"},
markdownHeadingRule {link = "markdownH1"},
markdownCode {link = "String"},
markdownCodeBlock {link = "markdownCode"},
markdownCodeDelimiter {link = "markdownCode"},
markdownUrl {link = "String"},
markdownListMarker {fg = colors.base08, bg = colors.none},
markdownOrderedListMarker {fg = colors.base08, bg = colors.none},
asciidocAttributeEntry {fg = colors.base15, bg = colors.none},
asciidocAttributeList {link = "asciidocAttributeEntry"},
asciidocAttributeRef {link = "asciidocAttributeEntry"},
NvimInternalError {fg = colors.base00, bg = colors.base08},
NormalFloat {fg = colors.base05, bg = colors.blend},
FloatBorder {fg = colors.blend, bg = colors.blend},
NormalNC {fg = colors.base05, bg = colors.base00},
TermCursor {fg = colors.base00, bg = colors.base04},
TermCursorNC {fg = colors.base00, bg = colors.base04},
StatusLine {fg = colors.base04, bg = colors.base00},
StatusLineNC {fg = colors.base04, bg = colors.base01},
StatusReplace {fg = colors.base00, bg = colors.base08},
StatusInsert {fg = colors.base00, bg = colors.base12},
StatusVisual {fg = colors.base00, bg = colors.base14},
StatusTerminal {fg = colors.base00, bg = colors.base11},
StatusNormal {fg = colors.base00, bg = colors.base15},
StatusCommand {fg = colors.base00, bg = colors.base13},
StatusLineDiagnosticWarn {fg = colors.base14, bg = colors.base00, bold = true},
StatusLineDiagnosticError {fg = colors.base10, bg = colors.base00, bold = true},
TelescopeBorder {fg = colors.blend, bg = colors.blend},
TelescopePromptBorder {fg = colors.base02, bg = colors.base02},
TelescopePromptNormal {fg = colors.base05, bg = colors.base02},
TelescopePromptPrefix {fg = colors.base08, bg = colors.base02},
TelescopeNormal {fg = colors.none, bg = colors.blend},
TelescopePreviewTitle {fg = colors.base02, bg = colors.base12},
TelescopePromptTitle {fg = colors.base02, bg = colors.base11},
TelescopeResultsTitle {fg = colors.blend, bg = colors.blend},
TelescopeSelection {fg = colors.none, bg = colors.base02},
TelescopePreviewLine {fg = colors.none, bg = colors.base01},
TelescopeMatching {fg = colors.base08, bg = colors.none, bold = true, italic = true},
NotifyERRORBorder {fg = colors.base08, bg = colors.none},
NotifyWARNBorder {fg = colors.base14, bg = colors.none},
NotifyINFOBorder {fg = colors.base05, bg = colors.none},
NotifyDEBUGBorder {fg = colors.base13, bg = colors.none},
NotifyTRACEBorder {fg = colors.base13, bg = colors.none},
NotifyERRORIcon {fg = colors.base08, bg = colors.none},
NotifyWARNIcon {fg = colors.base14, bg = colors.none},
NotifyINFOIcon {fg = colors.base05, bg = colors.none},
NotifyDEBUGIcon {fg = colors.base13, bg = colors.none},
NotifyTRACEIcon {fg = colors.base13, bg = colors.none},
NotifyERRORTitle {fg = colors.base08, bg = colors.none},
NotifyWARNTitle {fg = colors.base14, bg = colors.none},
NotifyINFOTitle {fg = colors.base05, bg = colors.none},
NotifyDEBUGTitle {fg = colors.base13, bg = colors.none},
NotifyTRACETitle {fg = colors.base13, bg = colors.none},
CmpItemAbbr {fg = "#adadad", bg = colors.none},
CmpItemAbbrMatch {fg = colors.base05, bg = colors.none, bold = true},
CmpItemAbbrMatchFuzzy {fg = colors.base04, bg = colors.none, bold = true},
CmpItemMenu {fg = colors.base04, bg = colors.none, italic = true},
CmpItemKindInterface {fg = colors.white, bg = colors.macro},
CmpItemKindColor {fg = colors.base01, bg = colors.base08},
CmpItemKindTypeParameter {fg = colors.base01, bg = colors.base08},
CmpItemKindText {fg = colors.macro, bg = colors.bg},
CmpItemKindEnum {fg = colors.base01, bg = colors.base09},
CmpItemKindKeyword {fg = colors.base01, bg = colors.base09},
CmpItemKindConstant {fg = colors.base01, bg = colors.base10},
CmpItemKindConstructor {fg = colors.base01, bg = colors.base10},
CmpItemKindReference {fg = colors.base01, bg = colors.base10},
CmpItemKindFunction {fg = colors.base01, bg = colors.base11},
CmpItemKindStruct {fg = colors.base01, bg = colors.base11},
CmpItemKindClass {fg = colors.base01, bg = colors.base11},
CmpItemKindModule {fg = colors.base01, bg = colors.base11},
CmpItemKindOperator {fg = colors.base01, bg = colors.base11},
CmpItemKindField {fg = colors.base01, bg = colors.base12},
CmpItemKindProperty {fg = colors.base01, bg = colors.base12},
CmpItemKindEvent {fg = colors.base01, bg = colors.base12},
CmpItemKindUnit {fg = colors.base01, bg = colors.base13},
CmpItemKindSnippet {fg = colors.base01, bg = colors.base13},
CmpItemKindFolder {fg = colors.base01, bg = colors.base13},
CmpItemKindVariable {fg = colors.base01, bg = colors.base14},
CmpItemKindFile {fg = colors.base01, bg = colors.base14},
CmpItemKindMethod {fg = colors.base01, bg = colors.base15},
CmpItemKindValue {fg = colors.base01, bg = colors.base15},
CmpItemKindEnumMember {fg = colors.base01, bg = colors.base15},
NvimTreeImageFile {fg = colors.base12, bg = colors.none},
NvimTreeFolderIcon {fg = colors.base12, bg = colors.none},
NvimTreeWinSeparator {fg = colors.base00, bg = colors.base00},
NvimTreeFolderName {fg = colors.base09, bg = colors.none},
NvimTreeIndentMarker {fg = colors.base02, bg = colors.none},
NvimTreeEmptyFolderName {fg = colors.base15, bg = colors.none},
NvimTreeOpenedFolderName {fg = colors.base15, bg = colors.none},
NvimTreeNormal {fg = colors.base04, bg = colors.base00},
NeogitBranch {fg = colors.base10, bg = colors.none},
NeogitRemote {fg = colors.base09, bg = colors.none},
NeogitHunkHeader {fg = colors.base04, bg = colors.base02},
NeogitHunkHeaderHighlight {fg = colors.base04, bg = colors.base03},
HydraRed {fg = colors.base12, bg = colors.none},
HydraBlue {fg = colors.base09, bg = colors.none},
HydraAmaranth {fg = colors.base10, bg = colors.none},
HydraTeal {fg = colors.base08, bg = colors.none},
HydraHint {fg = colors.none, bg = colors.blend},
alpha1 {fg = colors.base03, bg = colors.none},
alpha2 {fg = colors.base04, bg = colors.none},
alpha3 {fg = colors.base03, bg = colors.none},
CodeBlock {fg = colors.none, bg = colors.base01},
BufferLineDiagnostic {fg = colors.base10, bg = colors.none, bold = true},
BufferLineDiagnosticVisible {fg = colors.base10, bg = colors.none, bold = true},
htmlH1 {link = "markdownH1"},
mkdRule {link = "markdownRule"},
mkdListItem {link = "markdownListMarker"},
mkdListItemCheckbox {link = "markdownListMarker"},
VimwikiHeader1 {link = "markdownH1"},
VimwikiHeader2 {link = "markdownH1"},
VimwikiHeader3 {link = "markdownH1"},
VimwikiHeader4 {link = "markdownH1"},
VimwikiHeader5 {link = "markdownH1"},
VimwikiHeader6 {link = "markdownH1"},
VimwikiHeaderChar {link = "markdownH1"},
VimwikiList {link = "markdownListMarker"},
VimwikiCode {link = "markdownCode"},
-- Language specific stuff
-- rustModPath {fg = "#fad000" },
}
end)
-- Return our parsed theme for extension or use elsewhere.
return theme
-- vi:nowrap