nord.lua 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. -- Nord Theme for Lumacs
  2. -- Defined in Lua using the theme API
  3. local theme = editor:create_and_register_theme("nord")
  4. -- Nord color palette
  5. local nord0 = lumacs.Color(46, 52, 64) -- Polar Night - darkest
  6. local nord1 = lumacs.Color(59, 66, 82) -- Polar Night
  7. local nord2 = lumacs.Color(67, 76, 94) -- Polar Night
  8. local nord3 = lumacs.Color(76, 86, 106) -- Polar Night - lightest
  9. local nord4 = lumacs.Color(216, 222, 233) -- Snow Storm - dark
  10. local nord5 = lumacs.Color(229, 233, 240) -- Snow Storm
  11. local nord6 = lumacs.Color(236, 239, 244) -- Snow Storm - lightest
  12. local nord7 = lumacs.Color(143, 188, 187) -- Frost - cyan
  13. local nord8 = lumacs.Color(136, 192, 208) -- Frost - light blue
  14. local nord9 = lumacs.Color(129, 161, 193) -- Frost - blue
  15. local nord10 = lumacs.Color(94, 129, 172) -- Frost - dark blue
  16. local nord11 = lumacs.Color(191, 97, 106) -- Aurora - red
  17. local nord12 = lumacs.Color(208, 135, 112) -- Aurora - orange
  18. local nord13 = lumacs.Color(235, 203, 139) -- Aurora - yellow
  19. local nord14 = lumacs.Color(163, 190, 140) -- Aurora - green
  20. local nord15 = lumacs.Color(180, 142, 173) -- Aurora - purple
  21. -- Set face attributes
  22. local normal_attrs = lumacs.FaceAttributes()
  23. normal_attrs.foreground = nord4
  24. normal_attrs.background = nord0
  25. theme:set_face("normal", normal_attrs)
  26. local keyword_attrs = lumacs.FaceAttributes()
  27. keyword_attrs.foreground = nord9
  28. keyword_attrs.background = nord0
  29. keyword_attrs.weight = lumacs.FontWeight.Bold
  30. theme:set_face("font-lock-keyword-face", keyword_attrs)
  31. local string_attrs = lumacs.FaceAttributes()
  32. string_attrs.foreground = nord14
  33. string_attrs.background = nord0
  34. theme:set_face("font-lock-string-face", string_attrs)
  35. local comment_attrs = lumacs.FaceAttributes()
  36. comment_attrs.foreground = nord3
  37. comment_attrs.background = nord0
  38. comment_attrs.slant = lumacs.FontSlant.Italic
  39. theme:set_face("font-lock-comment-face", comment_attrs)
  40. local function_attrs = lumacs.FaceAttributes()
  41. function_attrs.foreground = nord8
  42. function_attrs.background = nord0
  43. theme:set_face("font-lock-function-name-face", function_attrs)
  44. local type_attrs = lumacs.FaceAttributes()
  45. type_attrs.foreground = nord7
  46. type_attrs.background = nord0
  47. theme:set_face("font-lock-type-face", type_attrs)
  48. local number_attrs = lumacs.FaceAttributes()
  49. number_attrs.foreground = nord15
  50. number_attrs.background = nord0
  51. theme:set_face("font-lock-constant-face", number_attrs) -- Number is mapped to constant face
  52. local constant_attrs = lumacs.FaceAttributes()
  53. constant_attrs.foreground = nord13
  54. constant_attrs.background = nord0
  55. theme:set_face("font-lock-constant-face", constant_attrs)
  56. local error_attrs = lumacs.FaceAttributes()
  57. error_attrs.foreground = nord11
  58. error_attrs.background = nord1
  59. error_attrs.weight = lumacs.FontWeight.Bold
  60. theme:set_face("error", error_attrs)
  61. local selection_attrs = lumacs.FaceAttributes()
  62. selection_attrs.foreground = nord4
  63. selection_attrs.background = nord2
  64. theme:set_face("region", selection_attrs)
  65. local cursor_attrs = lumacs.FaceAttributes()
  66. cursor_attrs.foreground = nord0
  67. cursor_attrs.background = nord4
  68. theme:set_face("cursor", cursor_attrs)
  69. local statusline_attrs = lumacs.FaceAttributes()
  70. statusline_attrs.foreground = nord6
  71. statusline_attrs.background = nord1
  72. theme:set_face("mode-line", statusline_attrs)
  73. local statusline_inactive_attrs = lumacs.FaceAttributes()
  74. statusline_inactive_attrs.foreground = nord3
  75. statusline_inactive_attrs.background = nord1
  76. theme:set_face("mode-line-inactive", statusline_inactive_attrs)
  77. local line_number_attrs = lumacs.FaceAttributes()
  78. line_number_attrs.foreground = nord3
  79. line_number_attrs.background = nord0
  80. theme:set_face("line-number", line_number_attrs)
  81. local minibuffer_prompt_attrs = lumacs.FaceAttributes()
  82. minibuffer_prompt_attrs.foreground = nord8
  83. minibuffer_prompt_attrs.background = nord0
  84. minibuffer_prompt_attrs.weight = lumacs.FontWeight.Bold
  85. theme:set_face("minibuffer-prompt", minibuffer_prompt_attrs)
  86. print(string.format("Theme '%s' loaded.", theme:name()))