| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- -- Nord Theme for Lumacs
- -- Defined in Lua using the theme API
- local theme = editor:create_and_register_theme("nord")
- -- Nord color palette
- local nord0 = lumacs.Color(46, 52, 64) -- Polar Night - darkest
- local nord1 = lumacs.Color(59, 66, 82) -- Polar Night
- local nord2 = lumacs.Color(67, 76, 94) -- Polar Night
- local nord3 = lumacs.Color(76, 86, 106) -- Polar Night - lightest
- local nord4 = lumacs.Color(216, 222, 233) -- Snow Storm - dark
- local nord5 = lumacs.Color(229, 233, 240) -- Snow Storm
- local nord6 = lumacs.Color(236, 239, 244) -- Snow Storm - lightest
- local nord7 = lumacs.Color(143, 188, 187) -- Frost - cyan
- local nord8 = lumacs.Color(136, 192, 208) -- Frost - light blue
- local nord9 = lumacs.Color(129, 161, 193) -- Frost - blue
- local nord10 = lumacs.Color(94, 129, 172) -- Frost - dark blue
- local nord11 = lumacs.Color(191, 97, 106) -- Aurora - red
- local nord12 = lumacs.Color(208, 135, 112) -- Aurora - orange
- local nord13 = lumacs.Color(235, 203, 139) -- Aurora - yellow
- local nord14 = lumacs.Color(163, 190, 140) -- Aurora - green
- local nord15 = lumacs.Color(180, 142, 173) -- Aurora - purple
- -- Set face attributes
- local normal_attrs = lumacs.FaceAttributes()
- normal_attrs.foreground = nord4
- normal_attrs.background = nord0
- theme:set_face("normal", normal_attrs)
- local keyword_attrs = lumacs.FaceAttributes()
- keyword_attrs.foreground = nord9
- keyword_attrs.background = nord0
- keyword_attrs.weight = lumacs.FontWeight.Bold
- theme:set_face("font-lock-keyword-face", keyword_attrs)
- local string_attrs = lumacs.FaceAttributes()
- string_attrs.foreground = nord14
- string_attrs.background = nord0
- theme:set_face("font-lock-string-face", string_attrs)
- local comment_attrs = lumacs.FaceAttributes()
- comment_attrs.foreground = nord3
- comment_attrs.background = nord0
- comment_attrs.slant = lumacs.FontSlant.Italic
- theme:set_face("font-lock-comment-face", comment_attrs)
- local function_attrs = lumacs.FaceAttributes()
- function_attrs.foreground = nord8
- function_attrs.background = nord0
- theme:set_face("font-lock-function-name-face", function_attrs)
- local type_attrs = lumacs.FaceAttributes()
- type_attrs.foreground = nord7
- type_attrs.background = nord0
- theme:set_face("font-lock-type-face", type_attrs)
- local number_attrs = lumacs.FaceAttributes()
- number_attrs.foreground = nord15
- number_attrs.background = nord0
- theme:set_face("font-lock-constant-face", number_attrs) -- Number is mapped to constant face
- local constant_attrs = lumacs.FaceAttributes()
- constant_attrs.foreground = nord13
- constant_attrs.background = nord0
- theme:set_face("font-lock-constant-face", constant_attrs)
- local error_attrs = lumacs.FaceAttributes()
- error_attrs.foreground = nord11
- error_attrs.background = nord1
- error_attrs.weight = lumacs.FontWeight.Bold
- theme:set_face("error", error_attrs)
- local selection_attrs = lumacs.FaceAttributes()
- selection_attrs.foreground = nord4
- selection_attrs.background = nord2
- theme:set_face("region", selection_attrs)
- local cursor_attrs = lumacs.FaceAttributes()
- cursor_attrs.foreground = nord0
- cursor_attrs.background = nord4
- theme:set_face("cursor", cursor_attrs)
- local statusline_attrs = lumacs.FaceAttributes()
- statusline_attrs.foreground = nord6
- statusline_attrs.background = nord1
- theme:set_face("mode-line", statusline_attrs)
- local statusline_inactive_attrs = lumacs.FaceAttributes()
- statusline_inactive_attrs.foreground = nord3
- statusline_inactive_attrs.background = nord1
- theme:set_face("mode-line-inactive", statusline_inactive_attrs)
- local line_number_attrs = lumacs.FaceAttributes()
- line_number_attrs.foreground = nord3
- line_number_attrs.background = nord0
- theme:set_face("line-number", line_number_attrs)
- local minibuffer_prompt_attrs = lumacs.FaceAttributes()
- minibuffer_prompt_attrs.foreground = nord8
- minibuffer_prompt_attrs.background = nord0
- minibuffer_prompt_attrs.weight = lumacs.FontWeight.Bold
- theme:set_face("minibuffer-prompt", minibuffer_prompt_attrs)
- print(string.format("Theme '%s' loaded.", theme:name()))
|