1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
;; fnl/alphabaster/palette.fnl
;;
;; Terminal color numbers rather than hex, so Neovim draws with whichever
;; theme the terminal has loaded: ~/.config/ghostty/themes/alphabaster or
;; alphabaster-light. Requires termguicolors off.

(local colors
  {;; ANSI slots
   :red            1
   :green          2
   :yellow         3
   :blue           4
   :magenta        5
   :cyan           6
   :bright-black   8
   :bright-red     9
   :bright-green   10
   :bright-yellow  11
   :bright-blue    12
   :bright-magenta 13
   :bright-cyan    14

   ;; No ANSI slot reads as a fill in both themes, so the theme files redefine
   ;; these xterm slots. Rex needs "Use extended theme palette" on for them.
   :surface      235
   :dim-bg       236  ;; unfocused background (matches tmux pane-focus-out)
   :selection-bg 60})

;; Semantic roles (Alabaster philosophy)
;; Only 4 categories get color. Everything else is default fg.
(local semantic
  {:comment    colors.bright-black ;; visible but secondary
   :string     colors.bright-blue  ;; lavender/purple
   :constant   colors.bright-blue  ;; same as strings — all literal values are lavender
   :definition colors.cyan

   ;; Diagnostics
   :error      colors.red
   :warn       colors.yellow
   :info       colors.cyan
   :hint       colors.bright-magenta

   ;; Diff
   :added      colors.bright-green
   :removed    colors.red
   :changed    colors.bright-blue})

{: colors : semantic}