restructured for vim.pack
This commit is contained in:
122
lua/n8n/theme.lua
Normal file
122
lua/n8n/theme.lua
Normal file
@ -0,0 +1,122 @@
|
||||
local palette = require("n8n.palette")
|
||||
|
||||
---@class N8nTheme
|
||||
local M = {}
|
||||
|
||||
function M.colors()
|
||||
return {
|
||||
-- Editor backgrounds (mirroring n8n's layered dark surfaces)
|
||||
bg = palette.neutral_950, -- #171717 canvas background
|
||||
bg_dark = palette.neutral_black, -- #000000 deepest bg
|
||||
bg_float = palette.neutral_900, -- #212121 floating panels
|
||||
bg_popup = palette.neutral_850, -- #2b2b2b popup menus
|
||||
bg_sidebar = palette.neutral_900, -- #212121 sidebar/tree
|
||||
bg_statusline = palette.neutral_900, -- #212121 statusline
|
||||
bg_visual = palette.neutral_750, -- #424242 visual selection
|
||||
bg_highlight = palette.neutral_850, -- #2b2b2b cursorline
|
||||
bg_search = palette.yellow_900, -- #332700 search highlight bg
|
||||
|
||||
-- Foregrounds
|
||||
fg = palette.neutral_200, -- #e0e0e0 primary text
|
||||
fg_bright = palette.neutral_white, -- #ffffff bright text
|
||||
fg_dark = palette.neutral_400, -- #949494 muted text
|
||||
fg_gutter = palette.neutral_600, -- #757575 gutter/line numbers
|
||||
fg_sidebar = palette.neutral_300, -- #adadad sidebar text
|
||||
|
||||
-- Borders (n8n uses white alpha overlays on dark)
|
||||
border = palette.neutral_700, -- #4d4d4d default border
|
||||
border_highlight = palette.neutral_600, -- #757575 active border
|
||||
|
||||
-- Brand accent (n8n orange in dark mode)
|
||||
accent = palette.orange_300, -- #ff6f5c brand accent
|
||||
accent_hover = palette.orange_400, -- #ff4b33 hover state
|
||||
accent_active = palette.orange_500, -- #ff1e00 active/pressed
|
||||
|
||||
-- Syntax colors (derived from n8n's code editor + JSON viewer)
|
||||
keyword = palette.orange_300, -- #ff6f5c keywords (brand color)
|
||||
string = palette.purple_400, -- #a098dc strings
|
||||
func = palette.blue_300, -- #7fb3e6 functions
|
||||
variable = palette.neutral_200, -- #e0e0e0 variables
|
||||
constant = palette.gold_400, -- #e6a23d constants
|
||||
number = palette.green_600, -- #29a360 numbers
|
||||
boolean = palette.green_600, -- #29a360 booleans
|
||||
type = palette.purple_300, -- #c3bee9 types
|
||||
operator = palette.orange_250, -- #ff9c8f operators
|
||||
property = palette.blue_400, -- #4891db properties/fields
|
||||
parameter = palette.gold_300, -- #efc381 parameters
|
||||
comment = palette.neutral_500, -- #828282 comments
|
||||
punctuation = palette.neutral_400, -- #949494 punctuation
|
||||
tag = palette.orange_300, -- #ff6f5c HTML/XML tags
|
||||
attribute = palette.purple_400, -- #a098dc attributes
|
||||
namespace = palette.slate_300, -- #adabba namespaces
|
||||
preproc = palette.brand_pink, -- #EA4B71 preprocessor
|
||||
special = palette.highlight_2, -- #a977f0 special symbols
|
||||
regex = palette.mint_500, -- #16e975 regex
|
||||
escape = palette.mint_600, -- #13cd67 escape sequences
|
||||
builtin = palette.blue_300, -- #7fb3e6 built-in functions
|
||||
|
||||
-- JSON viewer colors (directly from n8n's JSON display)
|
||||
json_key = palette.neutral_125, -- #f5f5f5 JSON keys
|
||||
json_string = palette.purple_400, -- #a098dc JSON string values
|
||||
json_number = palette.green_600, -- #29a360 JSON numbers
|
||||
json_boolean = palette.green_600, -- #29a360 JSON booleans
|
||||
json_null = palette.red_400, -- #f16a75 JSON null
|
||||
json_bracket = palette.neutral_700, -- #4d4d4d brackets
|
||||
|
||||
-- Diagnostics
|
||||
error = palette.red_600, -- #ea1f30
|
||||
warning = palette.yellow_500, -- #ffc400
|
||||
info = palette.blue_500, -- #2878c8
|
||||
hint = palette.green_500, -- #33cc78
|
||||
|
||||
-- Diff
|
||||
diff_add = palette.green_950, -- #0a291a
|
||||
diff_change = palette.blue_900, -- #081a2b
|
||||
diff_delete = palette.red_950, -- #4f070d
|
||||
diff_text = palette.blue_800, -- #13385e
|
||||
|
||||
-- Git signs
|
||||
git_add = palette.green_500, -- #33cc78
|
||||
git_change = palette.blue_400, -- #4891db
|
||||
git_delete = palette.red_500, -- #ee4452
|
||||
|
||||
-- Raw neutrals (used in groups for subtle UI elements)
|
||||
neutral_700 = palette.neutral_700, -- #4d4d4d
|
||||
neutral_800 = palette.neutral_800, -- #3d3d3d
|
||||
|
||||
-- n8n-specific semantic colors
|
||||
node_bg = palette.neutral_850, -- node card background
|
||||
node_border = palette.purple_500, -- pinned node border
|
||||
sticky_bg = palette.yellow_900, -- sticky note background
|
||||
sticky_border = palette.yellow_800, -- sticky note border
|
||||
sticky_text = palette.neutral_125, -- sticky note text
|
||||
success_bg = palette.green_950, -- success state bg
|
||||
success_fg = palette.green_50, -- success state text
|
||||
danger_bg = palette.red_950, -- danger state bg
|
||||
danger_fg = palette.red_50, -- danger state text
|
||||
info_bg = palette.blue_900, -- info state bg
|
||||
info_fg = palette.blue_50, -- info state text
|
||||
|
||||
-- Terminal colors
|
||||
terminal = {
|
||||
black = palette.neutral_950,
|
||||
red = palette.red_500,
|
||||
green = palette.green_500,
|
||||
yellow = palette.yellow_500,
|
||||
blue = palette.blue_400,
|
||||
magenta = palette.purple_500,
|
||||
cyan = palette.mint_500,
|
||||
white = palette.neutral_200,
|
||||
bright_black = palette.neutral_600,
|
||||
bright_red = palette.red_400,
|
||||
bright_green = palette.green_400,
|
||||
bright_yellow = palette.yellow_300,
|
||||
bright_blue = palette.blue_300,
|
||||
bright_magenta = palette.purple_400,
|
||||
bright_cyan = palette.mint_600,
|
||||
bright_white = palette.neutral_white,
|
||||
},
|
||||
}
|
||||
end
|
||||
|
||||
return M
|
||||
Reference in New Issue
Block a user