commit d14fcd084eabb12e3f3d1ff838170d67baf64721 Author: 4o1x5 <4o1x5@4o1x5.dev> Date: Mon Dec 16 19:18:38 2024 +0100 initial diff --git a/colors/shades_of_purple.lua b/colors/shades_of_purple.lua new file mode 100644 index 0000000..06db124 --- /dev/null +++ b/colors/shades_of_purple.lua @@ -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')) + diff --git a/lua/shades_of_purple/shades_of_purple.lua b/lua/shades_of_purple/shades_of_purple.lua new file mode 100644 index 0000000..0babe8e --- /dev/null +++ b/lua/shades_of_purple/shades_of_purple.lua @@ -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