Initial commit
This commit is contained in:
219
colors/sweet.lua
Normal file
219
colors/sweet.lua
Normal file
@@ -0,0 +1,219 @@
|
||||
-- ~/.config/nvim/colors/sweet.lua
|
||||
-- Sweet colorscheme for Neovim
|
||||
-- Based on the Sweet GTK theme colors
|
||||
|
||||
-- Reset colors
|
||||
vim.cmd("highlight clear")
|
||||
if vim.fn.exists("syntax_on") then
|
||||
vim.cmd("syntax reset")
|
||||
end
|
||||
|
||||
vim.o.termguicolors = true
|
||||
vim.g.colors_name = "sweet"
|
||||
|
||||
-- Sweet GTK Theme Colors (from actual source code)
|
||||
local colors = {
|
||||
-- Core colors
|
||||
bg = "#161925", -- Sweet background
|
||||
fg = "#C3C7D1", -- Sweet foreground
|
||||
bg_dark = "#121520", -- Darker background
|
||||
bg_light = "#1a1f2e", -- Lighter background
|
||||
bg_sidebar = "#222e39", -- Panel background
|
||||
|
||||
-- Sweet Primary Colors
|
||||
lime = "#71f79f", -- Sweet lime
|
||||
red = "#ed254e", -- Sweet red
|
||||
orange = "#ff6a00", -- Sweet orange
|
||||
yellow = "#f9dc5c", -- Sweet yellow
|
||||
purple = "#c74ded", -- Sweet purple
|
||||
dark_purple = "#7b7bbd", -- Sweet dark purple
|
||||
blue = "#7cb7ff", -- Sweet blue
|
||||
cyan = "#00c1e4", -- Sweet cyan
|
||||
teal = "#00e8c6", -- Sweet teal
|
||||
|
||||
-- Sweet UI Colors
|
||||
selected_bg = "#00D3A7", -- Sweet selected background
|
||||
selected_fg = "#fefefe", -- Sweet selected foreground
|
||||
|
||||
-- Derived colors
|
||||
comment = "#6c7086", -- Muted text
|
||||
line_number = "#585b70", -- Line numbers
|
||||
cursor_line = "#1e1e2e", -- Current line highlight
|
||||
visual = "#313244", -- Visual selection
|
||||
search = "#45475a", -- Search highlight
|
||||
|
||||
-- Status colors
|
||||
error = "#ed254e", -- Error (Sweet red)
|
||||
warning = "#f9dc5c", -- Warning (Sweet yellow)
|
||||
info = "#7cb7ff", -- Info (Sweet blue)
|
||||
hint = "#00e8c6", -- Hint (Sweet teal)
|
||||
success = "#71f79f", -- Success (Sweet lime)
|
||||
}
|
||||
|
||||
-- Helper function to set highlight groups
|
||||
local function hl(group, opts)
|
||||
vim.api.nvim_set_hl(0, group, opts)
|
||||
end
|
||||
|
||||
-- Editor highlights
|
||||
hl("Normal", { fg = colors.fg, bg = colors.bg })
|
||||
hl("NormalFloat", { fg = colors.fg, bg = colors.bg_light })
|
||||
hl("CursorLine", { bg = colors.cursor_line })
|
||||
hl("CursorColumn", { bg = colors.cursor_line })
|
||||
hl("ColorColumn", { bg = colors.bg_light })
|
||||
hl("LineNr", { fg = colors.line_number })
|
||||
hl("CursorLineNr", { fg = colors.yellow, bold = true })
|
||||
hl("SignColumn", { fg = colors.line_number, bg = colors.bg })
|
||||
hl("Folded", { fg = colors.comment, bg = colors.bg_light })
|
||||
hl("FoldColumn", { fg = colors.comment, bg = colors.bg })
|
||||
|
||||
-- Search and selection
|
||||
hl("Visual", { bg = colors.visual })
|
||||
hl("VisualNOS", { bg = colors.visual })
|
||||
hl("Search", { bg = colors.search, fg = colors.yellow })
|
||||
hl("IncSearch", { bg = colors.yellow, fg = colors.bg })
|
||||
hl("CurSearch", { bg = colors.orange, fg = colors.bg })
|
||||
|
||||
-- UI elements
|
||||
hl("Pmenu", { fg = colors.fg, bg = colors.bg_light })
|
||||
hl("PmenuSel", { fg = colors.selected_fg, bg = colors.selected_bg })
|
||||
hl("PmenuSbar", { bg = colors.bg_sidebar })
|
||||
hl("PmenuThumb", { bg = colors.purple })
|
||||
hl("StatusLine", { fg = colors.fg, bg = colors.bg_sidebar })
|
||||
hl("StatusLineNC", { fg = colors.comment, bg = colors.bg_light })
|
||||
hl("TabLine", { fg = colors.comment, bg = colors.bg_light })
|
||||
hl("TabLineFill", { bg = colors.bg_light })
|
||||
hl("TabLineSel", { fg = colors.fg, bg = colors.bg })
|
||||
hl("WinSeparator", { fg = colors.bg_light })
|
||||
hl("VertSplit", { fg = colors.bg_light })
|
||||
|
||||
-- Syntax highlighting
|
||||
hl("Comment", { fg = colors.comment, italic = true })
|
||||
hl("Constant", { fg = colors.orange })
|
||||
hl("String", { fg = colors.lime })
|
||||
hl("Character", { fg = colors.lime })
|
||||
hl("Number", { fg = colors.purple })
|
||||
hl("Boolean", { fg = colors.purple })
|
||||
hl("Float", { fg = colors.purple })
|
||||
|
||||
hl("Identifier", { fg = colors.cyan })
|
||||
hl("Function", { fg = colors.blue })
|
||||
|
||||
hl("Statement", { fg = colors.red })
|
||||
hl("Conditional", { fg = colors.red })
|
||||
hl("Repeat", { fg = colors.red })
|
||||
hl("Label", { fg = colors.red })
|
||||
hl("Operator", { fg = colors.teal })
|
||||
hl("Keyword", { fg = colors.red })
|
||||
hl("Exception", { fg = colors.red })
|
||||
|
||||
hl("PreProc", { fg = colors.yellow })
|
||||
hl("Include", { fg = colors.yellow })
|
||||
hl("Define", { fg = colors.yellow })
|
||||
hl("Macro", { fg = colors.yellow })
|
||||
hl("PreCondit", { fg = colors.yellow })
|
||||
|
||||
hl("Type", { fg = colors.teal })
|
||||
hl("StorageClass", { fg = colors.teal })
|
||||
hl("Structure", { fg = colors.teal })
|
||||
hl("Typedef", { fg = colors.teal })
|
||||
|
||||
hl("Special", { fg = colors.purple })
|
||||
hl("SpecialChar", { fg = colors.purple })
|
||||
hl("Tag", { fg = colors.cyan })
|
||||
hl("Delimiter", { fg = colors.fg })
|
||||
hl("SpecialComment", { fg = colors.comment, italic = true })
|
||||
hl("Debug", { fg = colors.red })
|
||||
|
||||
-- Diagnostics
|
||||
hl("DiagnosticError", { fg = colors.error })
|
||||
hl("DiagnosticWarn", { fg = colors.warning })
|
||||
hl("DiagnosticInfo", { fg = colors.info })
|
||||
hl("DiagnosticHint", { fg = colors.hint })
|
||||
hl("DiagnosticUnderlineError", { undercurl = true, sp = colors.error })
|
||||
hl("DiagnosticUnderlineWarn", { undercurl = true, sp = colors.warning })
|
||||
hl("DiagnosticUnderlineInfo", { undercurl = true, sp = colors.info })
|
||||
hl("DiagnosticUnderlineHint", { undercurl = true, sp = colors.hint })
|
||||
|
||||
-- Git signs
|
||||
hl("GitSignsAdd", { fg = colors.success })
|
||||
hl("GitSignsChange", { fg = colors.warning })
|
||||
hl("GitSignsDelete", { fg = colors.error })
|
||||
|
||||
-- Tree-sitter highlights
|
||||
hl("@variable", { fg = colors.fg })
|
||||
hl("@variable.builtin", { fg = colors.purple })
|
||||
hl("@variable.parameter", { fg = colors.orange })
|
||||
hl("@variable.member", { fg = colors.cyan })
|
||||
|
||||
hl("@constant", { fg = colors.orange })
|
||||
hl("@constant.builtin", { fg = colors.purple })
|
||||
hl("@constant.macro", { fg = colors.yellow })
|
||||
|
||||
hl("@string", { fg = colors.lime })
|
||||
hl("@string.escape", { fg = colors.purple })
|
||||
hl("@string.special", { fg = colors.purple })
|
||||
|
||||
hl("@character", { fg = colors.lime })
|
||||
hl("@number", { fg = colors.purple })
|
||||
hl("@boolean", { fg = colors.purple })
|
||||
hl("@float", { fg = colors.purple })
|
||||
|
||||
hl("@function", { fg = colors.blue })
|
||||
hl("@function.builtin", { fg = colors.cyan })
|
||||
hl("@function.call", { fg = colors.blue })
|
||||
hl("@function.macro", { fg = colors.yellow })
|
||||
|
||||
hl("@method", { fg = colors.blue })
|
||||
hl("@method.call", { fg = colors.blue })
|
||||
|
||||
hl("@constructor", { fg = colors.teal })
|
||||
hl("@parameter", { fg = colors.orange })
|
||||
|
||||
hl("@keyword", { fg = colors.red })
|
||||
hl("@keyword.function", { fg = colors.red })
|
||||
hl("@keyword.operator", { fg = colors.red })
|
||||
hl("@keyword.return", { fg = colors.red })
|
||||
hl("@keyword.conditional", { fg = colors.red })
|
||||
hl("@keyword.repeat", { fg = colors.red })
|
||||
hl("@keyword.import", { fg = colors.yellow })
|
||||
|
||||
hl("@operator", { fg = colors.teal })
|
||||
|
||||
hl("@type", { fg = colors.teal })
|
||||
hl("@type.builtin", { fg = colors.purple })
|
||||
hl("@type.definition", { fg = colors.teal })
|
||||
|
||||
hl("@property", { fg = colors.cyan })
|
||||
hl("@field", { fg = colors.cyan })
|
||||
|
||||
hl("@tag", { fg = colors.red })
|
||||
hl("@tag.attribute", { fg = colors.orange })
|
||||
hl("@tag.delimiter", { fg = colors.fg })
|
||||
|
||||
hl("@comment", { fg = colors.comment, italic = true })
|
||||
hl("@comment.todo", { fg = colors.yellow, bold = true })
|
||||
hl("@comment.warning", { fg = colors.warning, bold = true })
|
||||
hl("@comment.note", { fg = colors.info, bold = true })
|
||||
hl("@comment.error", { fg = colors.error, bold = true })
|
||||
|
||||
-- Error and warning
|
||||
hl("Error", { fg = colors.error })
|
||||
hl("ErrorMsg", { fg = colors.error })
|
||||
hl("WarningMsg", { fg = colors.warning })
|
||||
hl("Title", { fg = colors.purple, bold = true })
|
||||
hl("Directory", { fg = colors.blue })
|
||||
hl("MoreMsg", { fg = colors.lime })
|
||||
hl("Question", { fg = colors.cyan })
|
||||
|
||||
-- Diff
|
||||
hl("DiffAdd", { bg = "#2a3a2d" })
|
||||
hl("DiffChange", { bg = "#3a3a2d" })
|
||||
hl("DiffDelete", { bg = "#3a2a2d" })
|
||||
hl("DiffText", { bg = "#4a4a3d" })
|
||||
|
||||
-- Spell
|
||||
hl("SpellBad", { undercurl = true, sp = colors.error })
|
||||
hl("SpellCap", { undercurl = true, sp = colors.warning })
|
||||
hl("SpellLocal", { undercurl = true, sp = colors.info })
|
||||
hl("SpellRare", { undercurl = true, sp = colors.hint })
|
||||
Reference in New Issue
Block a user