home

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

modus-themes.el (380550B)


      1 ;;; modus-themes.el --- Highly accessible themes (WCAG AAA) -*- lexical-binding:t -*-
      2 
      3 ;; Copyright (C) 2019-2021  Free Software Foundation, Inc.
      4 
      5 ;; Author: Protesilaos Stavrou <info@protesilaos.com>
      6 ;; URL: https://gitlab.com/protesilaos/modus-themes
      7 ;; Version: 1.4.0
      8 ;; Last-Modified: <2021-07-05 08:57:05 +0300>
      9 ;; Package-Requires: ((emacs "26.1"))
     10 ;; Keywords: faces, theme, accessibility
     11 
     12 ;; This file is part of GNU Emacs.
     13 
     14 ;; This program is free software; you can redistribute it and/or modify
     15 ;; it under the terms of the GNU General Public License as published by
     16 ;; the Free Software Foundation, either version 3 of the License, or (at
     17 ;; your option) any later version.
     18 ;;
     19 ;; This program is distributed in the hope that it will be useful, but
     20 ;; WITHOUT ANY WARRANTY; without even the implied warranty of
     21 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     22 ;; General Public License for more details.
     23 ;;
     24 ;; You should have received a copy of the GNU General Public License
     25 ;; along with this program.  If not, see <https://www.gnu.org/licenses/>.
     26 
     27 ;;; Commentary:
     28 ;;
     29 ;; The Modus themes conform with the highest standard for color-contrast
     30 ;; accessibility between background and foreground values (WCAG AAA).
     31 ;; This file contains all customization variables, helper functions,
     32 ;; interactive commands, and face specifications.  Please refer to the
     33 ;; official Info manual for further documentation (distributed with the
     34 ;; themes, or available at: <https://protesilaos.com/modus-themes>).
     35 ;;
     36 ;; The themes share the following customization variables, all of which
     37 ;; are disabled by default (nil):
     38 ;;
     39 ;;     modus-themes-inhibit-reload                 (boolean)
     40 ;;     modus-themes-italic-constructs              (boolean)
     41 ;;     modus-themes-bold-constructs                (boolean)
     42 ;;     modus-themes-variable-pitch-headings        (boolean)
     43 ;;     modus-themes-variable-pitch-ui              (boolean)
     44 ;;     modus-themes-scale-headings                 (boolean)
     45 ;;     modus-themes-subtle-line-numbers            (boolean)
     46 ;;     modus-themes-success-deuteranopia           (boolean)
     47 ;;     modus-themes-no-mixed-fonts                 (boolean)
     48 ;;     modus-themes-headings                       (alist)
     49 ;;     modus-themes-fringes                        (choice)
     50 ;;     modus-themes-lang-checkers                  (choice)
     51 ;;     modus-themes-org-agenda                     (alist)
     52 ;;     modus-themes-org-blocks                     (choice)
     53 ;;     modus-themes-prompts                        (choice)
     54 ;;     modus-themes-mode-line                      (choice)
     55 ;;     modus-themes-diffs                          (choice)
     56 ;;     modus-themes-syntax                         (choice)
     57 ;;     modus-themes-hl-line                        (choice)
     58 ;;     modus-themes-paren-match                    (choice)
     59 ;;     modus-themes-region                         (choice)
     60 ;;     modus-themes-links                          (choice)
     61 ;;     modus-themes-completions                    (choice)
     62 ;;     modus-themes-mail-citations                 (choice)
     63 ;;
     64 ;; The default scale for headings is as follows (it can be customized as
     65 ;; well---remember, no scaling takes place by default):
     66 ;;
     67 ;;     modus-themes-scale-1                        1.05
     68 ;;     modus-themes-scale-2                        1.1
     69 ;;     modus-themes-scale-3                        1.15
     70 ;;     modus-themes-scale-4                        1.2
     71 ;;     modus-themes-scale-title                    1.3
     72 ;;
     73 ;; There also exist two unique customization variables for overriding
     74 ;; color palette values.  The specifics are documented in the manual.
     75 ;; The symbols are:
     76 ;;
     77 ;;     modus-themes-operandi-color-overrides       (alist)
     78 ;;     modus-themes-vivendi-color-overrides        (alist)
     79 ;;
     80 ;; Below is the list of explicitly supported packages or face groups
     81 ;; (there are implicitly supported packages as well, which inherit from
     82 ;; font-lock or some basic group).  You are encouraged to report any
     83 ;; missing package or change you would like to see.
     84 ;;
     85 ;;     ace-window
     86 ;;     ag
     87 ;;     alert
     88 ;;     all-the-icons
     89 ;;     annotate
     90 ;;     anzu
     91 ;;     apropos
     92 ;;     apt-sources-list
     93 ;;     artbollocks-mode
     94 ;;     auctex and TeX
     95 ;;     auto-dim-other-buffers
     96 ;;     avy
     97 ;;     awesome-tray
     98 ;;     bbdb
     99 ;;     binder
    100 ;;     bm
    101 ;;     bongo
    102 ;;     boon
    103 ;;     bookmark
    104 ;;     breakpoint (provided by built-in gdb-mi.el)
    105 ;;     buffer-expose
    106 ;;     calendar and diary
    107 ;;     calfw
    108 ;;     centaur-tabs
    109 ;;     cfrs
    110 ;;     change-log and log-view (`vc-print-log' and `vc-print-root-log')
    111 ;;     cider
    112 ;;     circe
    113 ;;     color-rg
    114 ;;     column-enforce-mode
    115 ;;     company-mode
    116 ;;     company-posframe
    117 ;;     compilation-mode
    118 ;;     completions
    119 ;;     consult
    120 ;;     corfu
    121 ;;     counsel
    122 ;;     counsel-css
    123 ;;     counsel-org-capture-string
    124 ;;     cov
    125 ;;     cperl-mode
    126 ;;     csv-mode
    127 ;;     ctrlf
    128 ;;     custom (M-x customize)
    129 ;;     dap-mode
    130 ;;     dashboard (emacs-dashboard)
    131 ;;     deadgrep
    132 ;;     debbugs
    133 ;;     define-word
    134 ;;     deft
    135 ;;     dictionary
    136 ;;     diff-hl
    137 ;;     diff-mode
    138 ;;     dim-autoload
    139 ;;     dir-treeview
    140 ;;     dired
    141 ;;     dired-async
    142 ;;     dired-git
    143 ;;     dired-git-info
    144 ;;     dired-narrow
    145 ;;     dired-subtree
    146 ;;     diredc
    147 ;;     diredfl
    148 ;;     diredp (dired+)
    149 ;;     disk-usage
    150 ;;     display-fill-column-indicator-mode
    151 ;;     doom-modeline
    152 ;;     dynamic-ruler
    153 ;;     easy-jekyll
    154 ;;     easy-kill
    155 ;;     ebdb
    156 ;;     ediff
    157 ;;     eglot
    158 ;;     el-search
    159 ;;     eldoc
    160 ;;     eldoc-box
    161 ;;     elfeed
    162 ;;     elfeed-score
    163 ;;     embark
    164 ;;     emms
    165 ;;     enh-ruby-mode (enhanced-ruby-mode)
    166 ;;     epa
    167 ;;     equake
    168 ;;     erc
    169 ;;     eros
    170 ;;     ert
    171 ;;     eshell
    172 ;;     eshell-fringe-status
    173 ;;     eshell-git-prompt
    174 ;;     eshell-prompt-extras (epe)
    175 ;;     eshell-syntax-highlighting
    176 ;;     evil (evil-mode)
    177 ;;     evil-goggles
    178 ;;     evil-snipe
    179 ;;     evil-visual-mark-mode
    180 ;;     eww
    181 ;;     exwm
    182 ;;     eyebrowse
    183 ;;     fancy-dabbrev
    184 ;;     flycheck
    185 ;;     flycheck-color-mode-line
    186 ;;     flycheck-indicator
    187 ;;     flycheck-posframe
    188 ;;     flymake
    189 ;;     flyspell
    190 ;;     flyspell-correct
    191 ;;     flx
    192 ;;     freeze-it
    193 ;;     frog-menu
    194 ;;     focus
    195 ;;     fold-this
    196 ;;     font-lock (generic syntax highlighting)
    197 ;;     forge
    198 ;;     fountain (fountain-mode)
    199 ;;     geiser
    200 ;;     git-commit
    201 ;;     git-gutter (and variants)
    202 ;;     git-lens
    203 ;;     git-rebase
    204 ;;     git-timemachine
    205 ;;     git-walktree
    206 ;;     gnus
    207 ;;     golden-ratio-scroll-screen
    208 ;;     helm
    209 ;;     helm-ls-git
    210 ;;     helm-switch-shell
    211 ;;     helm-xref
    212 ;;     helpful
    213 ;;     highlight-blocks
    214 ;;     highlight-defined
    215 ;;     highlight-escape-sequences (`hes-mode')
    216 ;;     highlight-indentation
    217 ;;     highlight-numbers
    218 ;;     highlight-symbol
    219 ;;     highlight-tail
    220 ;;     highlight-thing
    221 ;;     hl-defined
    222 ;;     hl-fill-column
    223 ;;     hl-line-mode
    224 ;;     hl-todo
    225 ;;     hydra
    226 ;;     hyperlist
    227 ;;     ibuffer
    228 ;;     icomplete
    229 ;;     ido-mode
    230 ;;     iedit
    231 ;;     iflipb
    232 ;;     imenu-list
    233 ;;     indium
    234 ;;     info
    235 ;;     info-colors
    236 ;;     interaction-log
    237 ;;     ioccur
    238 ;;     isearch, occur, etc.
    239 ;;     isl (isearch-light)
    240 ;;     ivy
    241 ;;     ivy-posframe
    242 ;;     jira (org-jira)
    243 ;;     journalctl-mode
    244 ;;     js2-mode
    245 ;;     julia
    246 ;;     jupyter
    247 ;;     kaocha-runner
    248 ;;     keycast
    249 ;;     ledger-mode
    250 ;;     line numbers (`display-line-numbers-mode' and global variant)
    251 ;;     lsp-mode
    252 ;;     lsp-ui
    253 ;;     macrostep
    254 ;;     magit
    255 ;;     magit-imerge
    256 ;;     make-mode
    257 ;;     man
    258 ;;     marginalia
    259 ;;     markdown-mode
    260 ;;     markup-faces (`adoc-mode')
    261 ;;     mentor
    262 ;;     messages
    263 ;;     minibuffer-line
    264 ;;     minimap
    265 ;;     mmm-mode
    266 ;;     mode-line
    267 ;;     mood-line
    268 ;;     mpdel
    269 ;;     mu4e
    270 ;;     mu4e-conversation
    271 ;;     multiple-cursors
    272 ;;     neotree
    273 ;;     no-emoji
    274 ;;     notmuch
    275 ;;     num3-mode
    276 ;;     nxml-mode
    277 ;;     objed
    278 ;;     orderless
    279 ;;     org
    280 ;;     org-journal
    281 ;;     org-noter
    282 ;;     org-pomodoro
    283 ;;     org-recur
    284 ;;     org-roam
    285 ;;     org-superstar
    286 ;;     org-table-sticky-header
    287 ;;     org-tree-slide
    288 ;;     org-treescope
    289 ;;     origami
    290 ;;     outline-mode
    291 ;;     outline-minor-faces
    292 ;;     package (M-x list-packages)
    293 ;;     page-break-lines
    294 ;;     pandoc-mode
    295 ;;     paradox
    296 ;;     paren-face
    297 ;;     parrot
    298 ;;     pass
    299 ;;     pdf-tools
    300 ;;     persp-mode
    301 ;;     perspective
    302 ;;     phi-grep
    303 ;;     phi-search
    304 ;;     pkgbuild-mode
    305 ;;     pomidor
    306 ;;     popup
    307 ;;     powerline
    308 ;;     powerline-evil
    309 ;;     prism (see "Note for prism.el" in the manual)
    310 ;;     proced
    311 ;;     prodigy
    312 ;;     pulse
    313 ;;     quick-peek
    314 ;;     racket-mode
    315 ;;     rainbow-blocks
    316 ;;     rainbow-identifiers
    317 ;;     rainbow-delimiters
    318 ;;     rcirc
    319 ;;     recursion-indicator
    320 ;;     regexp-builder (also known as `re-builder')
    321 ;;     rg
    322 ;;     ripgrep
    323 ;;     rmail
    324 ;;     ruler-mode
    325 ;;     sallet
    326 ;;     selectrum
    327 ;;     selectrum-prescient
    328 ;;     semantic
    329 ;;     sesman
    330 ;;     shell-script-mode
    331 ;;     shortdoc
    332 ;;     show-paren-mode
    333 ;;     shr
    334 ;;     side-notes
    335 ;;     sieve-mode
    336 ;;     skewer-mode
    337 ;;     smart-mode-line
    338 ;;     smartparens
    339 ;;     smerge
    340 ;;     spaceline
    341 ;;     speedbar
    342 ;;     spell-fu
    343 ;;     spray
    344 ;;     stripes
    345 ;;     suggest
    346 ;;     switch-window
    347 ;;     swiper
    348 ;;     swoop
    349 ;;     sx
    350 ;;     symbol-overlay
    351 ;;     syslog-mode
    352 ;;     tab-bar-groups
    353 ;;     tab-bar-mode
    354 ;;     tab-line-mode
    355 ;;     table (built-in table.el)
    356 ;;     telega
    357 ;;     telephone-line
    358 ;;     terraform-mode
    359 ;;     term
    360 ;;     tomatinho
    361 ;;     transient (pop-up windows like Magit's)
    362 ;;     trashed
    363 ;;     treemacs
    364 ;;     tty-menu
    365 ;;     tuareg
    366 ;;     typescript
    367 ;;     undo-tree
    368 ;;     vc (vc-dir.el, vc-hooks.el)
    369 ;;     vc-annotate (C-x v g)
    370 ;;     vdiff
    371 ;;     vertico
    372 ;;     vimish-fold
    373 ;;     visible-mark
    374 ;;     visual-regexp
    375 ;;     volatile-highlights
    376 ;;     vterm
    377 ;;     wcheck-mode
    378 ;;     web-mode
    379 ;;     wgrep
    380 ;;     which-function-mode
    381 ;;     which-key
    382 ;;     whitespace-mode
    383 ;;     window-divider-mode
    384 ;;     winum
    385 ;;     writegood-mode
    386 ;;     woman
    387 ;;     xah-elisp-mode
    388 ;;     xref
    389 ;;     xterm-color (and ansi-colors)
    390 ;;     yaml-mode
    391 ;;     yasnippet
    392 ;;     ztree
    393 ;;
    394 ;; For a complete view of the project, also refer to the following files
    395 ;; (should be distributed in the same repository/directory as the
    396 ;; current item):
    397 ;;
    398 ;; - modus-operandi-theme.el    (Light theme)
    399 ;; - modus-vivendi-theme.el     (Dark theme)
    400 
    401 ;;; News:
    402 ;;
    403 ;; Users updating from older versions to >= 1.0.0, are advised to read
    404 ;; the announcement on the emacs-devel mailing list:
    405 ;; <https://lists.gnu.org/archive/html/emacs-devel/2021-03/msg00300.html>.
    406 ;;
    407 ;; The web page of the change log is also available:
    408 ;; <https://protesilaos.com/modus-themes-changelog/>.
    409 ;;
    410 ;; An Info manual should be distributed with the Modus themes.
    411 ;; Evaluate this form to access it directly:
    412 ;;
    413 ;;    (info "(modus-themes) Top")
    414 
    415 ;;; Code:
    416 
    417 
    418 
    419 (eval-when-compile (require 'cl-lib))
    420 
    421 (defgroup modus-themes ()
    422   "Options for `modus-operandi', `modus-vivendi'.
    423 The Modus themes conform with the WCAG AAA standard for color
    424 contrast between background and foreground combinations (a
    425 minimum contrast of 7:1---the highest standard of its kind).  The
    426 themes also strive to empower users with red-green color
    427 deficiency: this is achieved through customization variables that
    428 replace all relevant instances of green with blue, as well as the
    429 overall design of the themes which relies mostly on colors that
    430 cover the blue-cyan-magenta side of the spectrum."
    431   :group 'faces
    432   :link '(info-link "(modus-themes) Top")
    433   :prefix "modus-themes-"
    434   :tag "Modus Themes")
    435 
    436 (defgroup modus-themes-faces ()
    437   "Faces defined my `modus-operandi' and `modus-vivendi'."
    438   :group 'modus-themes
    439   :link '(info-link "(modus-themes) Top")
    440   :prefix "modus-themes-"
    441   :tag "Modus Themes Faces")
    442 
    443 ;;; Variables for each theme variant
    444 
    445 ;;;; Modus Operandi
    446 
    447 (defconst modus-themes-operandi-colors
    448   '(;; base values
    449     (bg-main . "#ffffff") (fg-main . "#000000")
    450     (bg-dim . "#f8f8f8") (fg-dim . "#282828")
    451     (bg-alt . "#f0f0f0") (fg-alt . "#505050")
    452     ;; specifically for on/off states and must be combined with
    453     ;; themselves, though the backgrounds are also meant to be used with
    454     ;; other "active" values, defined further below; bg-active-accent
    455     ;; can work as a substitute for bg-active
    456     (bg-active . "#d7d7d7") (fg-active . "#0a0a0a")
    457     (bg-inactive . "#efefef") (fg-inactive . "#404148")
    458     (bg-active-accent . "#d0d6ff")
    459     ;; these special values are intended as alternatives to the base
    460     ;; values for cases where we need to avoid confusion between the
    461     ;; highlighted constructs; they must either be used as pairs based
    462     ;; on their name or each can be combined with {fg,bg}-{main,alt,dim}
    463     ;; always in accordance with their role as background or foreground
    464     (bg-special-cold . "#dde3f4") (fg-special-cold . "#093060")
    465     (bg-special-mild . "#c4ede0") (fg-special-mild . "#184034")
    466     (bg-special-warm . "#f0e0d4") (fg-special-warm . "#5d3026")
    467     (bg-special-calm . "#f8ddea") (fg-special-calm . "#61284f")
    468     ;; foregrounds that can be combined with bg-main, bg-dim, bg-alt
    469     (red . "#a60000")
    470     (red-alt . "#972500")
    471     (red-alt-other . "#a0132f")
    472     (red-faint . "#7f1010")
    473     (red-alt-faint . "#702f00")
    474     (red-alt-other-faint . "#7f002f")
    475     (green . "#005e00")
    476     (green-alt . "#315b00")
    477     (green-alt-other . "#145c33")
    478     (green-faint . "#104410")
    479     (green-alt-faint . "#30440f")
    480     (green-alt-other-faint . "#0f443f")
    481     (yellow . "#813e00")
    482     (yellow-alt . "#70480f")
    483     (yellow-alt-other . "#863927")
    484     (yellow-faint . "#5f4400")
    485     (yellow-alt-faint . "#5d5000")
    486     (yellow-alt-other-faint . "#5e3a20")
    487     (blue . "#0031a9")
    488     (blue-alt . "#2544bb")
    489     (blue-alt-other . "#0000c0")
    490     (blue-faint . "#003497")
    491     (blue-alt-faint . "#0f3d8c")
    492     (blue-alt-other-faint . "#001087")
    493     (magenta . "#721045")
    494     (magenta-alt . "#8f0075")
    495     (magenta-alt-other . "#5317ac")
    496     (magenta-faint . "#752f50")
    497     (magenta-alt-faint . "#7b206f")
    498     (magenta-alt-other-faint . "#55348e")
    499     (cyan . "#00538b")
    500     (cyan-alt . "#30517f")
    501     (cyan-alt-other . "#005a5f")
    502     (cyan-faint . "#005077")
    503     (cyan-alt-faint . "#354f6f")
    504     (cyan-alt-other-faint . "#125458")
    505     ;; these foreground values can only be combined with bg-main and are
    506     ;; thus not suitable for general purpose highlighting
    507     (red-intense . "#b60000")
    508     (orange-intense . "#904200")
    509     (green-intense . "#006800")
    510     (yellow-intense . "#605b00")
    511     (blue-intense . "#1f1fce")
    512     (magenta-intense . "#a8007f")
    513     (purple-intense . "#7f10d0")
    514     (cyan-intense . "#005f88")
    515     ;; those foregrounds are meant exclusively for bg-active, bg-inactive
    516     (red-active . "#8a0000")
    517     (green-active . "#004c2e")
    518     (yellow-active . "#702f00")
    519     (blue-active . "#0030b4")
    520     (magenta-active . "#5c2092")
    521     (cyan-active . "#003f8a")
    522     ;; the "subtle" values below be combined with fg-dim, while the
    523     ;; "intense" should be paired with fg-main
    524     (red-subtle-bg . "#f2b0a2")
    525     (red-intense-bg . "#ff9f9f")
    526     (green-subtle-bg . "#aecf90")
    527     (green-intense-bg . "#5ada88")
    528     (yellow-subtle-bg . "#e4c340")
    529     (yellow-intense-bg . "#f5df23")
    530     (blue-subtle-bg . "#b5d0ff")
    531     (blue-intense-bg . "#77baff")
    532     (magenta-subtle-bg . "#f0d3ff")
    533     (magenta-intense-bg . "#d5baff")
    534     (cyan-subtle-bg . "#c0efff")
    535     (cyan-intense-bg . "#42cbd4")
    536     ;; those background values must be combined with fg-main and should
    537     ;; only be used for indicators that are placed on the fringes
    538     (red-fringe-bg . "#f08290")
    539     (green-fringe-bg . "#62c86a")
    540     (yellow-fringe-bg . "#dbba3f")
    541     (blue-fringe-bg . "#82afff")
    542     (magenta-fringe-bg . "#e0a3ff")
    543     (cyan-fringe-bg . "#2fcddf")
    544     ;; those background values should only be used for graphs or similar
    545     ;; applications where colored blocks are expected to be positioned
    546     ;; next to each other
    547     (red-graph-0-bg . "#ef6f79")
    548     (red-graph-1-bg . "#ff9f9f")
    549     (green-graph-0-bg . "#49d239")
    550     (green-graph-1-bg . "#6dec6d")
    551     (yellow-graph-0-bg . "#efec08")
    552     (yellow-graph-1-bg . "#dbff4e")
    553     (blue-graph-0-bg . "#55a2f0")
    554     (blue-graph-1-bg . "#7fcfff")
    555     (magenta-graph-0-bg . "#ba86ef")
    556     (magenta-graph-1-bg . "#e7afff")
    557     (cyan-graph-0-bg . "#30d3f0")
    558     (cyan-graph-1-bg . "#6fefff")
    559     ;; the following are for cases where both the foreground and the
    560     ;; background need to have a similar hue and so must be combined
    561     ;; with themselves, even though the foregrounds can be paired with
    562     ;; any of the base backgrounds
    563     (red-refine-bg . "#ffcccc") (red-refine-fg . "#780000")
    564     (green-refine-bg . "#aceaac") (green-refine-fg . "#004c00")
    565     (yellow-refine-bg . "#fff29a") (yellow-refine-fg . "#604000")
    566     (blue-refine-bg . "#8fcfff") (blue-refine-fg . "#002f88")
    567     (magenta-refine-bg . "#ffccff") (magenta-refine-fg . "#770077")
    568     (cyan-refine-bg . "#8eecf4") (cyan-refine-fg . "#004850")
    569     ;; the "nuanced" backgrounds can be combined with all of the above
    570     ;; foregrounds, as well as those included here, while the "nuanced"
    571     ;; foregrounds can in turn also be combined with bg-main, bg-dim,
    572     ;; bg-alt
    573     (red-nuanced-bg . "#fff1f0") (red-nuanced-fg . "#5f0000")
    574     (green-nuanced-bg . "#ecf7ed") (green-nuanced-fg . "#004000")
    575     (yellow-nuanced-bg . "#fff3da") (yellow-nuanced-fg . "#3f3000")
    576     (blue-nuanced-bg . "#f3f3ff") (blue-nuanced-fg . "#201f55")
    577     (magenta-nuanced-bg . "#fdf0ff") (magenta-nuanced-fg . "#541f4f")
    578     (cyan-nuanced-bg . "#ebf6fa") (cyan-nuanced-fg . "#0f3360")
    579     ;; the following are reserved for specific cases
    580     ;;
    581     ;; bg-hl-line is between bg-dim and bg-alt, so it should
    582     ;; work with all accents that cover those two, plus bg-main
    583     ;;
    584     ;; bg-hl-alt and bg-hl-alt-intense should only be used when no
    585     ;; other grayscale or fairly neutral background is available to
    586     ;; properly draw attention to a given construct
    587     ;;
    588     ;; bg-header is between bg-active and bg-inactive, so it
    589     ;; can be combined with any of the "active" values, plus the
    590     ;; "special" and base foreground colors
    591     ;;
    592     ;; bg-paren-match, bg-paren-match-intense, bg-region,
    593     ;; bg-region-accent and bg-tab-active must be combined with fg-main,
    594     ;; while bg-tab-inactive should be combined with fg-dim, whereas
    595     ;; bg-tab-inactive-alt goes together with fg-main
    596     ;;
    597     ;; bg-tab-bar is only intended for the bar that holds the tabs and
    598     ;; can only be combined with fg-main
    599     ;;
    600     ;; fg-escape-char-construct and fg-escape-char-backslash can
    601     ;; be combined bg-main, bg-dim, bg-alt
    602     ;;
    603     ;; fg-lang-error, fg-lang-warning, fg-lang-note can be
    604     ;; combined with bg-main, bg-dim, bg-alt
    605     ;;
    606     ;; fg-mark-sel, fg-mark-del, fg-mark-alt can be combined
    607     ;; with bg-main, bg-dim, bg-alt, bg-hl-line
    608     ;;
    609     ;; fg-unfocused must be combined with bg-main
    610     ;;
    611     ;; fg-docstring, fg-comment-yellow can be combined with
    612     ;; bg-main, bg-dim, bg-alt
    613     ;;
    614     ;; the window divider colors apply to faces with just an fg value
    615     ;;
    616     ;; all pairs are combinable with themselves
    617     (bg-hl-line . "#f2eff3")
    618     (bg-hl-line-intense . "#e0e0e0")
    619     (bg-hl-line-intense-accent . "#b9e1ef")
    620     (bg-hl-alt . "#fbeee0")
    621     (bg-hl-alt-intense . "#e8dfd1")
    622     (bg-paren-match . "#e0af82")
    623     (bg-paren-match-intense . "#c488ff")
    624     (bg-paren-expression . "#dff0ff")
    625     (bg-region . "#bcbcbc")
    626     (bg-region-accent . "#afafef")
    627 
    628     (bg-tab-bar . "#d5d5d5")
    629     (bg-tab-active . "#f6f6f6")
    630     (bg-tab-inactive . "#bdbdbd")
    631     (bg-tab-inactive-alt . "#999999")
    632 
    633     (red-tab . "#680000")
    634     (green-tab . "#003900")
    635     (yellow-tab . "#393000")
    636     (orange-tab . "#502300")
    637     (blue-tab . "#000080")
    638     (cyan-tab . "#052f60")
    639     (magenta-tab . "#5f004d")
    640     (purple-tab . "#400487")
    641 
    642     (fg-escape-char-construct . "#8b1030")
    643     (fg-escape-char-backslash . "#654d0f")
    644 
    645     (fg-lang-error . "#9f004f")
    646     (fg-lang-warning . "#604f0f")
    647     (fg-lang-note . "#4040ae")
    648     (fg-lang-underline-error . "#ef4f54")
    649     (fg-lang-underline-warning . "#cf9f00")
    650     (fg-lang-underline-note . "#3f6fef")
    651 
    652     (fg-window-divider-inner . "#888888")
    653     (fg-window-divider-outer . "#585858")
    654 
    655     (fg-unfocused . "#56576d")
    656 
    657     (fg-docstring . "#2a486a")
    658     (fg-comment-yellow . "#794319")
    659 
    660     (bg-header . "#e5e5e5") (fg-header . "#2a2a2a")
    661 
    662     (bg-whitespace . "#f5efef") (fg-whitespace . "#624956")
    663 
    664     (bg-diff-heading . "#b7cfe0") (fg-diff-heading . "#041645")
    665     (bg-diff-added . "#d4fad4") (fg-diff-added . "#004500")
    666     (bg-diff-added-deuteran . "#daefff") (fg-diff-added-deuteran . "#002044")
    667     (bg-diff-changed . "#fcefcf") (fg-diff-changed . "#524200")
    668     (bg-diff-removed . "#ffe8ef") (fg-diff-removed . "#691616")
    669 
    670     (bg-diff-refine-added . "#94cf94") (fg-diff-refine-added . "#002a00")
    671     (bg-diff-refine-added-deuteran . "#77c0ef") (fg-diff-refine-added-deuteran . "#000035")
    672     (bg-diff-refine-changed . "#cccf8f") (fg-diff-refine-changed . "#302010")
    673     (bg-diff-refine-removed . "#daa2b0") (fg-diff-refine-removed . "#400000")
    674 
    675     (bg-diff-focus-added . "#bbeabb") (fg-diff-focus-added . "#002c00")
    676     (bg-diff-focus-added-deuteran . "#bacfff") (fg-diff-focus-added-deuteran . "#001755")
    677     (bg-diff-focus-changed . "#ecdfbf") (fg-diff-focus-changed . "#392900")
    678     (bg-diff-focus-removed . "#efcbcf") (fg-diff-focus-removed . "#4a0000")
    679 
    680     (bg-mark-sel . "#a0f0cf") (fg-mark-sel . "#005040")
    681     (bg-mark-del . "#ffccbb") (fg-mark-del . "#840040")
    682     (bg-mark-alt . "#f5d88f") (fg-mark-alt . "#782900"))
    683   "The entire palette of the `modus-operandi' theme.
    684 Each element has the form (NAME . HEX) with the former as a
    685 symbol and the latter as a string.")
    686 
    687 ;;;; Modus Vivendi
    688 
    689 (defconst modus-themes-vivendi-colors
    690   '(;; base values
    691     (bg-main . "#000000") (fg-main . "#ffffff")
    692     (bg-dim . "#100f10") (fg-dim . "#e0e6f0")
    693     (bg-alt . "#191a1b") (fg-alt . "#a8a8a8")
    694     ;; specifically for on/off states and must be combined with
    695     ;; themselves, though the backgrounds are also meant to be used with
    696     ;; other "active" values, defined further below; bg-active-accent
    697     ;; can work as a substitute for bg-active
    698     (bg-active . "#323232") (fg-active . "#f4f4f4")
    699     (bg-inactive . "#1e1e1e") (fg-inactive . "#bfc0c4")
    700     (bg-active-accent . "#2a2a66")
    701     ;; these special values are intended as alternatives to the base
    702     ;; values for cases where we need to avoid confusion between the
    703     ;; highlighted constructs; they must either be used as pairs based
    704     ;; on their name or each can be combined with {fg,bg}-{main,alt,dim}
    705     ;; always in accordance with their role as background or foreground
    706     (bg-special-cold . "#203448") (fg-special-cold . "#c6eaff")
    707     (bg-special-mild . "#00322e") (fg-special-mild . "#bfebe0")
    708     (bg-special-warm . "#382f27") (fg-special-warm . "#f8dec0")
    709     (bg-special-calm . "#392a48") (fg-special-calm . "#fbd6f4")
    710     ;; foregrounds that can be combined with bg-main, bg-dim, bg-alt
    711     (red . "#ff8059")
    712     (red-alt . "#ef8b50")
    713     (red-alt-other . "#ff9077")
    714     (red-faint . "#ffa0a0")
    715     (red-alt-faint . "#f5aa80")
    716     (red-alt-other-faint . "#ff9fbf")
    717     (green . "#44bc44")
    718     (green-alt . "#70b900")
    719     (green-alt-other . "#00c06f")
    720     (green-faint . "#78bf78")
    721     (green-alt-faint . "#99b56f")
    722     (green-alt-other-faint . "#88bf99")
    723     (yellow . "#d0bc00")
    724     (yellow-alt . "#c0c530")
    725     (yellow-alt-other . "#d3b55f")
    726     (yellow-faint . "#d2b580")
    727     (yellow-alt-faint . "#cabf77")
    728     (yellow-alt-other-faint . "#d0ba95")
    729     (blue . "#2fafff")
    730     (blue-alt . "#79a8ff" )
    731     (blue-alt-other . "#00bcff")
    732     (blue-faint . "#82b0ec")
    733     (blue-alt-faint . "#a0acef")
    734     (blue-alt-other-faint . "#80b2f0")
    735     (magenta . "#feacd0")
    736     (magenta-alt . "#f78fe7")
    737     (magenta-alt-other . "#b6a0ff")
    738     (magenta-faint . "#e0b2d6")
    739     (magenta-alt-faint . "#ef9fe4")
    740     (magenta-alt-other-faint . "#cfa6ff")
    741     (cyan . "#00d3d0")
    742     (cyan-alt . "#4ae2f0")
    743     (cyan-alt-other . "#6ae4b9")
    744     (cyan-faint . "#90c4ed")
    745     (cyan-alt-faint . "#a0bfdf")
    746     (cyan-alt-other-faint . "#a4d0bb")
    747     ;; these foreground values can only be combined with bg-main and are
    748     ;; thus not suitable for general purpose highlighting
    749     (red-intense . "#fe6060")
    750     (orange-intense . "#fba849")
    751     (green-intense . "#4fe42f")
    752     (yellow-intense . "#f0dd60")
    753     (blue-intense . "#4fafff")
    754     (magenta-intense . "#ff62d4")
    755     (purple-intense . "#9f80ff")
    756     (cyan-intense . "#3fdfd0")
    757     ;; those foregrounds are meant exclusively for bg-active, bg-inactive
    758     (red-active . "#ffa7ba")
    759     (green-active . "#70d73f")
    760     (yellow-active . "#dbbe5f")
    761     (blue-active . "#34cfff")
    762     (magenta-active . "#d5b1ff")
    763     (cyan-active . "#00d8b4")
    764     ;; the "subtle" values below be combined with fg-dim, while the
    765     ;; "intense" should be paired with fg-main
    766     (red-subtle-bg . "#762422")
    767     (red-intense-bg . "#a4202a")
    768     (green-subtle-bg . "#2f4a00")
    769     (green-intense-bg . "#006800")
    770     (yellow-subtle-bg . "#604200")
    771     (yellow-intense-bg . "#874900")
    772     (blue-subtle-bg . "#10387c")
    773     (blue-intense-bg . "#2a40b8")
    774     (magenta-subtle-bg . "#49366e")
    775     (magenta-intense-bg . "#7042a2")
    776     (cyan-subtle-bg . "#00415e")
    777     (cyan-intense-bg . "#005f88")
    778     ;; those background values must be combined with fg-main and should
    779     ;; only be used for indicators that are placed on the fringes
    780     (red-fringe-bg . "#8f1f4b")
    781     (green-fringe-bg . "#006700")
    782     (yellow-fringe-bg . "#6f4f00")
    783     (blue-fringe-bg . "#3f33af")
    784     (magenta-fringe-bg . "#6f2f89")
    785     (cyan-fringe-bg . "#004f8f")
    786     ;; those background values should only be used for graphs or similar
    787     ;; applications where colored blocks are expected to be positioned
    788     ;; next to each other
    789     (red-graph-0-bg . "#af0404")
    790     (red-graph-1-bg . "#801f2f")
    791     (green-graph-0-bg . "#24ba2f")
    792     (green-graph-1-bg . "#0f8f07")
    793     (yellow-graph-0-bg . "#ffd03e")
    794     (yellow-graph-1-bg . "#d7d800")
    795     (blue-graph-0-bg . "#406fff")
    796     (blue-graph-1-bg . "#2f50c8")
    797     (magenta-graph-0-bg . "#af7bee")
    798     (magenta-graph-1-bg . "#7f59cf")
    799     (cyan-graph-0-bg . "#47dcfa")
    800     (cyan-graph-1-bg . "#0bc0df")
    801     ;; the following are for cases where both the foreground and the
    802     ;; background need to have a similar hue and so must be combined
    803     ;; with themselves, even though the foregrounds can be paired with
    804     ;; any of the base backgrounds
    805     (red-refine-bg . "#77002a") (red-refine-fg . "#ffb9ab")
    806     (green-refine-bg . "#00422a") (green-refine-fg . "#9ff0cf")
    807     (yellow-refine-bg . "#693200") (yellow-refine-fg . "#e2d980")
    808     (blue-refine-bg . "#242679") (blue-refine-fg . "#8ecfff")
    809     (magenta-refine-bg . "#71206a") (magenta-refine-fg . "#ffcaf0")
    810     (cyan-refine-bg . "#004065") (cyan-refine-fg . "#8ae4f2")
    811     ;; the "nuanced" backgrounds can be combined with all of the above
    812     ;; foregrounds, as well as those included here, while the "nuanced"
    813     ;; foregrounds can in turn also be combined with bg-main, bg-dim,
    814     ;; bg-alt
    815     (red-nuanced-bg . "#2c0614") (red-nuanced-fg . "#ffcccc")
    816     (green-nuanced-bg . "#001904") (green-nuanced-fg . "#b8e2b8")
    817     (yellow-nuanced-bg . "#221000") (yellow-nuanced-fg . "#dfdfb0")
    818     (blue-nuanced-bg . "#0f0e39") (blue-nuanced-fg . "#bfd9ff")
    819     (magenta-nuanced-bg . "#230631") (magenta-nuanced-fg . "#e5cfef")
    820     (cyan-nuanced-bg . "#041529") (cyan-nuanced-fg . "#a8e5e5")
    821     ;; the following are reserved for specific cases
    822     ;;
    823     ;; bg-hl-line is between bg-dim and bg-alt, so it should
    824     ;; work with all accents that cover those two, plus bg-main
    825     ;;
    826     ;; bg-hl-alt and bg-hl-alt-intense should only be used when no
    827     ;; other grayscale or fairly neutral background is available to
    828     ;; properly draw attention to a given construct
    829     ;;
    830     ;; bg-header is between bg-active and bg-inactive, so it
    831     ;; can be combined with any of the "active" values, plus the
    832     ;; "special" and base foreground colors
    833     ;;
    834     ;; bg-paren-match, bg-paren-match-intense, bg-region,
    835     ;; bg-region-accent and bg-tab-active must be combined with fg-main,
    836     ;; while bg-tab-inactive should be combined with fg-dim, whereas
    837     ;; bg-tab-inactive-alt goes together with fg-main
    838     ;;
    839     ;; bg-tab-bar is only intended for the bar that holds the tabs and
    840     ;; can only be combined with fg-main
    841     ;;
    842     ;; fg-escape-char-construct and fg-escape-char-backslash can
    843     ;; be combined bg-main, bg-dim, bg-alt
    844     ;;
    845     ;; fg-lang-error, fg-lang-warning, fg-lang-note can be
    846     ;; combined with bg-main, bg-dim, bg-alt
    847     ;;
    848     ;; fg-mark-sel, fg-mark-del, fg-mark-alt can be combined
    849     ;; with bg-main, bg-dim, bg-alt, bg-hl-line
    850     ;;
    851     ;; fg-unfocused must be combined with bg-main
    852     ;;
    853     ;; fg-docstring, fg-comment-yellow can be combined with
    854     ;; bg-main, bg-dim, bg-alt
    855     ;;
    856     ;; the window divider colors apply to faces with just an fg value
    857     ;;
    858     ;; all pairs are combinable with themselves
    859     (bg-hl-line . "#151823")
    860     (bg-hl-line-intense . "#2f2f2f")
    861     (bg-hl-line-intense-accent . "#00353f")
    862     (bg-hl-alt . "#181732")
    863     (bg-hl-alt-intense . "#282e46")
    864     (bg-paren-match . "#5f362f")
    865     (bg-paren-match-intense . "#7416b5")
    866     (bg-paren-expression . "#221044")
    867     (bg-region . "#3c3c3c")
    868     (bg-region-accent . "#4f3d88")
    869 
    870     (bg-tab-bar . "#2c2c2c")
    871     (bg-tab-active . "#0e0e0e")
    872     (bg-tab-inactive . "#3d3d3d")
    873     (bg-tab-inactive-alt . "#595959")
    874 
    875     (red-tab . "#ffc0bf")
    876     (green-tab . "#88ef88")
    877     (yellow-tab . "#d2e580")
    878     (orange-tab . "#f5ca80")
    879     (blue-tab . "#92d9ff")
    880     (cyan-tab . "#60e7e0")
    881     (magenta-tab . "#ffb8ff")
    882     (purple-tab . "#cfcaff")
    883 
    884     (fg-escape-char-construct . "#e7a59a")
    885     (fg-escape-char-backslash . "#abab00")
    886 
    887     (fg-lang-error . "#ef8690")
    888     (fg-lang-warning . "#b0aa00")
    889     (fg-lang-note . "#9d9def")
    890     (fg-lang-underline-error . "#ff4a6f")
    891     (fg-lang-underline-warning . "#d0de00")
    892     (fg-lang-underline-note . "#5f6fff")
    893 
    894     (fg-window-divider-inner . "#646464")
    895     (fg-window-divider-outer . "#969696")
    896 
    897     (fg-unfocused . "#93959b")
    898 
    899     (fg-docstring . "#b0d6f5")
    900     (fg-comment-yellow . "#d0a070")
    901 
    902     (bg-header . "#212121") (fg-header . "#dddddd")
    903 
    904     (bg-whitespace . "#101424") (fg-whitespace . "#aa9e9f")
    905 
    906     (bg-diff-heading . "#304466") (fg-diff-heading . "#dae7ff")
    907     (bg-diff-added . "#0a280a") (fg-diff-added . "#94ba94")
    908     (bg-diff-added-deuteran . "#001a3f") (fg-diff-added-deuteran . "#c4cdf2")
    909     (bg-diff-changed . "#2a2000") (fg-diff-changed . "#b0ba9f")
    910     (bg-diff-removed . "#40160f") (fg-diff-removed . "#c6adaa")
    911 
    912     (bg-diff-refine-added . "#005a36") (fg-diff-refine-added . "#e0f6e0")
    913     (bg-diff-refine-added-deuteran . "#234f8f") (fg-diff-refine-added-deuteran . "#dde4ff")
    914     (bg-diff-refine-changed . "#585800") (fg-diff-refine-changed . "#ffffcc")
    915     (bg-diff-refine-removed . "#852828") (fg-diff-refine-removed . "#ffd9eb")
    916 
    917     (bg-diff-focus-added . "#203d20") (fg-diff-focus-added . "#b4ddb4")
    918     (bg-diff-focus-added-deuteran . "#00405f") (fg-diff-focus-added-deuteran . "#bfe4ff")
    919     (bg-diff-focus-changed . "#4a3a10") (fg-diff-focus-changed . "#d0daaf")
    920     (bg-diff-focus-removed . "#5e2526") (fg-diff-focus-removed . "#eebdba")
    921 
    922     (bg-mark-sel . "#002f2f") (fg-mark-sel . "#60cfa2")
    923     (bg-mark-del . "#5a0000") (fg-mark-del . "#ff99aa")
    924     (bg-mark-alt . "#3f2210") (fg-mark-alt . "#f0aa20"))
    925   "The entire palette of the `modus-vivendi' theme.
    926 Each element has the form (NAME . HEX) with the former as a
    927 symbol and the latter as a string.")
    928 
    929 
    930 
    931 ;;; Custom faces
    932 
    933 ;; These faces are used internally to ensure consistency between various
    934 ;; groups and to streamline the evaluation of relevant customization
    935 ;; options.
    936 (defface modus-themes-subtle-red nil
    937   "Subtle red background combined with a dimmed foreground.
    938 This is used for general purpose highlighting, mostly in buffers
    939 or for completion interfaces.
    940 
    941 The actual styling of the face is done by `modus-themes-faces'."
    942   :group 'modus-theme-faces)
    943 
    944 (defface modus-themes-subtle-green nil
    945   "Subtle green background combined with a dimmed foreground.
    946 This is used for general purpose highlighting, mostly in buffers
    947 or for completion interfaces.
    948 
    949 The actual styling of the face is done by `modus-themes-faces'."
    950   :group 'modus-theme-faces)
    951 
    952 (defface modus-themes-subtle-yellow nil
    953   "Subtle yellow background combined with a dimmed foreground.
    954 This is used for general purpose highlighting, mostly in buffers
    955 or for completion interfaces.
    956 
    957 The actual styling of the face is done by `modus-themes-faces'."
    958   :group 'modus-theme-faces)
    959 
    960 (defface modus-themes-subtle-blue nil
    961   "Subtle blue background combined with a dimmed foreground.
    962 This is used for general purpose highlighting, mostly in buffers
    963 or for completion interfaces.
    964 
    965 The actual styling of the face is done by `modus-themes-faces'."
    966   :group 'modus-theme-faces)
    967 
    968 (defface modus-themes-subtle-magenta nil
    969   "Subtle magenta background combined with a dimmed foreground.
    970 This is used for general purpose highlighting, mostly in buffers
    971 or for completion interfaces.
    972 
    973 The actual styling of the face is done by `modus-themes-faces'."
    974   :group 'modus-theme-faces)
    975 
    976 (defface modus-themes-subtle-cyan nil
    977   "Subtle cyan background combined with a dimmed foreground.
    978 This is used for general purpose highlighting, mostly in buffers
    979 or for completion interfaces.
    980 
    981 The actual styling of the face is done by `modus-themes-faces'."
    982   :group 'modus-theme-faces)
    983 
    984 (defface modus-themes-subtle-neutral nil
    985   "Subtle gray background combined with a dimmed foreground.
    986 This is used for general purpose highlighting, mostly in buffers
    987 or for completion interfaces.
    988 
    989 The actual styling of the face is done by `modus-themes-faces'."
    990   :group 'modus-theme-faces)
    991 
    992 (defface modus-themes-intense-red nil
    993   "Intense red background combined with the main foreground.
    994 This is used for general purpose highlighting, mostly in buffers
    995 or for completion interfaces.
    996 
    997 The actual styling of the face is done by `modus-themes-faces'."
    998   :group 'modus-theme-faces)
    999 
   1000 (defface modus-themes-intense-green nil
   1001   "Intense green background combined with the main foreground.
   1002 This is used for general purpose highlighting, mostly in buffers
   1003 or for completion interfaces.
   1004 
   1005 The actual styling of the face is done by `modus-themes-faces'."
   1006   :group 'modus-theme-faces)
   1007 
   1008 (defface modus-themes-intense-yellow nil
   1009   "Intense yellow background combined with the main foreground.
   1010 This is used for general purpose highlighting, mostly in buffers
   1011 or for completion interfaces.
   1012 
   1013 The actual styling of the face is done by `modus-themes-faces'."
   1014   :group 'modus-theme-faces)
   1015 
   1016 (defface modus-themes-intense-blue nil
   1017   "Intense blue background combined with the main foreground.
   1018 This is used for general purpose highlighting, mostly in buffers
   1019 or for completion interfaces.
   1020 
   1021 The actual styling of the face is done by `modus-themes-faces'."
   1022   :group 'modus-theme-faces)
   1023 
   1024 (defface modus-themes-intense-magenta nil
   1025   "Intense magenta background combined with the main foreground.
   1026 This is used for general purpose highlighting, mostly in buffers
   1027 or for completion interfaces.
   1028 
   1029 The actual styling of the face is done by `modus-themes-faces'."
   1030   :group 'modus-theme-faces)
   1031 
   1032 (defface modus-themes-intense-cyan nil
   1033   "Intense cyan background combined with the main foreground.
   1034 This is used for general purpose highlighting, mostly in buffers
   1035 or for completion interfaces.
   1036 
   1037 The actual styling of the face is done by `modus-themes-faces'."
   1038   :group 'modus-theme-faces)
   1039 
   1040 (defface modus-themes-intense-neutral nil
   1041   "Intense gray background combined with the main foreground.
   1042 This is used for general purpose highlighting, mostly in buffers
   1043 or for completion interfaces.
   1044 
   1045 The actual styling of the face is done by `modus-themes-faces'."
   1046   :group 'modus-theme-faces)
   1047 
   1048 (defface modus-themes-refine-red nil
   1049   "Combination of accented red background and foreground.
   1050 This is used for general purpose highlighting, mostly in buffers
   1051 or for completion interfaces.
   1052 
   1053 The actual styling of the face is done by `modus-themes-faces'."
   1054   :group 'modus-theme-faces)
   1055 
   1056 (defface modus-themes-refine-green nil
   1057   "Combination of accented green background and foreground.
   1058 This is used for general purpose highlighting, mostly in buffers
   1059 or for completion interfaces.
   1060 
   1061 The actual styling of the face is done by `modus-themes-faces'."
   1062   :group 'modus-theme-faces)
   1063 
   1064 (defface modus-themes-refine-yellow nil
   1065   "Combination of accented yellow background and foreground.
   1066 This is used for general purpose highlighting, mostly in buffers
   1067 or for completion interfaces.
   1068 
   1069 The actual styling of the face is done by `modus-themes-faces'."
   1070   :group 'modus-theme-faces)
   1071 
   1072 (defface modus-themes-refine-blue nil
   1073   "Combination of accented blue background and foreground.
   1074 This is used for general purpose highlighting, mostly in buffers
   1075 or for completion interfaces.
   1076 
   1077 The actual styling of the face is done by `modus-themes-faces'."
   1078   :group 'modus-theme-faces)
   1079 
   1080 (defface modus-themes-refine-magenta nil
   1081   "Combination of accented magenta background and foreground.
   1082 This is used for general purpose highlighting, mostly in buffers
   1083 or for completion interfaces.
   1084 
   1085 The actual styling of the face is done by `modus-themes-faces'."
   1086   :group 'modus-theme-faces)
   1087 
   1088 (defface modus-themes-refine-cyan nil
   1089   "Combination of accented cyan background and foreground.
   1090 This is used for general purpose highlighting, mostly in buffers
   1091 or for completion interfaces.
   1092 
   1093 The actual styling of the face is done by `modus-themes-faces'."
   1094   :group 'modus-theme-faces)
   1095 
   1096 (defface modus-themes-active-red nil
   1097   "A red background meant for use on the mode line or similar.
   1098 This is combined with the mode lines primary foreground value.
   1099 
   1100 The actual styling of the face is done by `modus-themes-faces'."
   1101   :group 'modus-theme-faces)
   1102 
   1103 (defface modus-themes-active-green nil
   1104   "A green background meant for use on the mode line or similar.
   1105 This is combined with the mode lines primary foreground value.
   1106 
   1107 The actual styling of the face is done by `modus-themes-faces'."
   1108   :group 'modus-theme-faces)
   1109 
   1110 (defface modus-themes-active-yellow nil
   1111   "A yellow background meant for use on the mode line or similar.
   1112 This is combined with the mode lines primary foreground value.
   1113 
   1114 The actual styling of the face is done by `modus-themes-faces'."
   1115   :group 'modus-theme-faces)
   1116 
   1117 (defface modus-themes-active-blue nil
   1118   "A blue background meant for use on the mode line or similar.
   1119 This is combined with the mode lines primary foreground value.
   1120 
   1121 The actual styling of the face is done by `modus-themes-faces'."
   1122   :group 'modus-theme-faces)
   1123 
   1124 (defface modus-themes-active-magenta nil
   1125   "A magenta background meant for use on the mode line or similar.
   1126 This is combined with the mode lines primary foreground value.
   1127 
   1128 The actual styling of the face is done by `modus-themes-faces'."
   1129   :group 'modus-theme-faces)
   1130 
   1131 (defface modus-themes-active-cyan nil
   1132   "A cyan background meant for use on the mode line or similar.
   1133 This is combined with the mode lines primary foreground value.
   1134 
   1135 The actual styling of the face is done by `modus-themes-faces'."
   1136   :group 'modus-theme-faces)
   1137 
   1138 (defface modus-themes-fringe-red nil
   1139   "A red background meant for use on the fringe or similar.
   1140 This is combined with the main foreground value.
   1141 
   1142 The actual styling of the face is done by `modus-themes-faces'."
   1143   :group 'modus-theme-faces)
   1144 
   1145 (defface modus-themes-fringe-green nil
   1146   "A green background meant for use on the fringe or similar.
   1147 This is combined with the main foreground value.
   1148 
   1149 The actual styling of the face is done by `modus-themes-faces'."
   1150   :group 'modus-theme-faces)
   1151 
   1152 (defface modus-themes-fringe-yellow nil
   1153   "A yellow background meant for use on the fringe or similar.
   1154 This is combined with the main foreground value.
   1155 
   1156 The actual styling of the face is done by `modus-themes-faces'."
   1157   :group 'modus-theme-faces)
   1158 
   1159 (defface modus-themes-fringe-blue nil
   1160   "A blue background meant for use on the fringe or similar.
   1161 This is combined with the main foreground value.
   1162 
   1163 The actual styling of the face is done by `modus-themes-faces'."
   1164   :group 'modus-theme-faces)
   1165 
   1166 (defface modus-themes-fringe-magenta nil
   1167   "A magenta background meant for use on the fringe or similar.
   1168 This is combined with the main foreground value.
   1169 
   1170 The actual styling of the face is done by `modus-themes-faces'."
   1171   :group 'modus-theme-faces)
   1172 
   1173 (defface modus-themes-fringe-cyan nil
   1174   "A cyan background meant for use on the fringe or similar.
   1175 This is combined with the main foreground value.
   1176 
   1177 The actual styling of the face is done by `modus-themes-faces'."
   1178   :group 'modus-theme-faces)
   1179 
   1180 (defface modus-themes-nuanced-red nil
   1181   "A nuanced red background.
   1182 This does not specify a foreground of its own.  Instead it is
   1183 meant to serve as the backdrop for elements such as Org blocks,
   1184 headings, and any other surface that needs to retain the colors
   1185 on display.
   1186 
   1187 The actual styling of the face is done by `modus-themes-faces'."
   1188   :group 'modus-theme-faces)
   1189 
   1190 (defface modus-themes-nuanced-green nil
   1191   "A nuanced green background.
   1192 This does not specify a foreground of its own.  Instead it is
   1193 meant to serve as the backdrop for elements such as Org blocks,
   1194 headings, and any other surface that needs to retain the colors
   1195 on display.
   1196 
   1197 The actual styling of the face is done by `modus-themes-faces'."
   1198   :group 'modus-theme-faces)
   1199 
   1200 (defface modus-themes-nuanced-yellow nil
   1201   "A nuanced yellow background.
   1202 This does not specify a foreground of its own.  Instead it is
   1203 meant to serve as the backdrop for elements such as Org blocks,
   1204 headings, and any other surface that needs to retain the colors
   1205 on display.
   1206 
   1207 The actual styling of the face is done by `modus-themes-faces'."
   1208   :group 'modus-theme-faces)
   1209 
   1210 (defface modus-themes-nuanced-blue nil
   1211   "A nuanced blue background.
   1212 This does not specify a foreground of its own.  Instead it is
   1213 meant to serve as the backdrop for elements such as Org blocks,
   1214 headings, and any other surface that needs to retain the colors
   1215 on display.
   1216 
   1217 The actual styling of the face is done by `modus-themes-faces'."
   1218   :group 'modus-theme-faces)
   1219 
   1220 (defface modus-themes-nuanced-magenta nil
   1221   "A nuanced magenta background.
   1222 This does not specify a foreground of its own.  Instead it is
   1223 meant to serve as the backdrop for elements such as Org blocks,
   1224 headings, and any other surface that needs to retain the colors
   1225 on display.
   1226 
   1227 The actual styling of the face is done by `modus-themes-faces'."
   1228   :group 'modus-theme-faces)
   1229 
   1230 (defface modus-themes-nuanced-cyan nil
   1231   "A nuanced cyan background.
   1232 This does not specify a foreground of its own.  Instead it is
   1233 meant to serve as the backdrop for elements such as Org blocks,
   1234 headings, and any other surface that needs to retain the colors
   1235 on display.
   1236 
   1237 The actual styling of the face is done by `modus-themes-faces'."
   1238   :group 'modus-theme-faces)
   1239 
   1240 (defface modus-themes-special-cold nil
   1241   "Combines the 'special cold' background and foreground values.
   1242 This is intended for cases when a neutral gray background is not
   1243 suitable and where a combination of more saturated colors would
   1244 not be appropriate.
   1245 
   1246 The actual styling of the face is done by `modus-themes-faces'."
   1247   :group 'modus-theme-faces)
   1248 
   1249 (defface modus-themes-special-mild nil
   1250   "Combines the 'special mild' background and foreground values.
   1251 This is intended for cases when a neutral gray background is not
   1252 suitable and where a combination of more saturated colors would
   1253 not be appropriate.
   1254 
   1255 The actual styling of the face is done by `modus-themes-faces'."
   1256   :group 'modus-theme-faces)
   1257 
   1258 (defface modus-themes-special-warm nil
   1259   "Combines the 'special warm' background and foreground values.
   1260 This is intended for cases when a neutral gray background is not
   1261 suitable and where a combination of more saturated colors would
   1262 not be appropriate.
   1263 
   1264 The actual styling of the face is done by `modus-themes-faces'."
   1265   :group 'modus-theme-faces)
   1266 
   1267 (defface modus-themes-special-calm nil
   1268   "Combines the 'special calm' background and foreground values.
   1269 This is intended for cases when a neutral gray background is not
   1270 suitable and where a combination of more saturated colors would
   1271 not be appropriate.
   1272 
   1273 The actual styling of the face is done by `modus-themes-faces'."
   1274   :group 'modus-theme-faces)
   1275 
   1276 (defface modus-themes-diff-added nil
   1277   "Combines green colors for the 'added' state in diffs.
   1278 The applied colors are contingent on the value assigned to
   1279 `modus-themes-diffs'.
   1280 
   1281 The actual styling of the face is done by `modus-themes-faces'."
   1282   :group 'modus-theme-faces)
   1283 
   1284 (defface modus-themes-diff-changed nil
   1285   "Combines yellow colors for the 'changed' state in diffs.
   1286 The applied colors are contingent on the value assigned to
   1287 `modus-themes-diffs'.
   1288 
   1289 The actual styling of the face is done by `modus-themes-faces'."
   1290   :group 'modus-theme-faces)
   1291 
   1292 (defface modus-themes-diff-removed nil
   1293   "Combines red colors for the 'removed' state in diffs.
   1294 The applied colors are contingent on the value assigned to
   1295 `modus-themes-diffs'.
   1296 
   1297 The actual styling of the face is done by `modus-themes-faces'."
   1298   :group 'modus-theme-faces)
   1299 
   1300 (defface modus-themes-diff-refine-added nil
   1301   "Combines green colors for word-wise 'added' state in diffs.
   1302 The applied colors are contingent on the value assigned to
   1303 `modus-themes-diffs'.
   1304 
   1305 The actual styling of the face is done by `modus-themes-faces'."
   1306   :group 'modus-theme-faces)
   1307 
   1308 (defface modus-themes-diff-refine-changed nil
   1309   "Combines yellow colors for word-wise 'changed' state in diffs.
   1310 The applied colors are contingent on the value assigned to
   1311 `modus-themes-diffs'.
   1312 
   1313 The actual styling of the face is done by `modus-themes-faces'."
   1314   :group 'modus-theme-faces)
   1315 
   1316 (defface modus-themes-diff-refine-removed nil
   1317   "Combines red colors for word-wise 'removed' state in diffs.
   1318 The applied colors are contingent on the value assigned to
   1319 `modus-themes-diffs'.
   1320 
   1321 The actual styling of the face is done by `modus-themes-faces'."
   1322   :group 'modus-theme-faces)
   1323 
   1324 (defface modus-themes-diff-focus-added nil
   1325   "Combines green colors for the focused 'added' state in diffs.
   1326 The applied colors are contingent on the value assigned to
   1327 `modus-themes-diffs'.
   1328 
   1329 The actual styling of the face is done by `modus-themes-faces'."
   1330   :group 'modus-theme-faces)
   1331 
   1332 (defface modus-themes-diff-focus-changed nil
   1333   "Combines yellow colors for the focused 'changed' state in.
   1334 The applied colors are contingent on the value assigned to
   1335 `modus-themes-diffs'.
   1336 
   1337 The actual styling of the face is done by `modus-themes-faces'."
   1338   :group 'modus-theme-faces)
   1339 
   1340 (defface modus-themes-diff-focus-removed nil
   1341   "Combines red colors for the focused 'removed' state in diffs.
   1342 The applied colors are contingent on the value assigned to
   1343 `modus-themes-diffs'.
   1344 
   1345 The actual styling of the face is done by `modus-themes-faces'."
   1346   :group 'modus-theme-faces)
   1347 
   1348 (defface modus-themes-diff-heading nil
   1349   "Combines blue colors for the diff hunk heading.
   1350 The applied colors are contingent on the value assigned to
   1351 `modus-themes-diffs'.
   1352 
   1353 The actual styling of the face is done by `modus-themes-faces'."
   1354   :group 'modus-theme-faces)
   1355 
   1356 (defface modus-themes-pseudo-header nil
   1357   "Generic style for some elements that function like headings.
   1358 The actual styling of the face is done by `modus-themes-faces'."
   1359   :group 'modus-theme-faces)
   1360 
   1361 (defface modus-themes-mark-alt nil
   1362   "Combines yellow colors for marking special lines.
   1363 This is intended for use in modes such as Dired, Ibuffer, Proced.
   1364 
   1365 The actual styling of the face is done by `modus-themes-faces'."
   1366   :group 'modus-theme-faces)
   1367 
   1368 (defface modus-themes-mark-del nil
   1369   "Combines red colors for marking deletable lines.
   1370 This is intended for use in modes such as Dired, Ibuffer, Proced.
   1371 
   1372 The actual styling of the face is done by `modus-themes-faces'."
   1373   :group 'modus-theme-faces)
   1374 
   1375 (defface modus-themes-mark-sel nil
   1376   "Combines green colors for marking lines.
   1377 This is intended for use in modes such as Dired, Ibuffer, Proced.
   1378 
   1379 The actual styling of the face is done by `modus-themes-faces'."
   1380   :group 'modus-theme-faces)
   1381 
   1382 (defface modus-themes-mark-symbol nil
   1383   "Applies a blue color and other styles for mark indicators.
   1384 This is intended for use in modes such as Dired, Ibuffer, Proced.
   1385 
   1386 The actual styling of the face is done by `modus-themes-faces'."
   1387   :group 'modus-theme-faces)
   1388 
   1389 (defface modus-themes-heading-1 nil
   1390   "General purpose face for use in headings level 1.
   1391 The exact attributes assigned to this face are contingent on the
   1392 values assigned to the `modus-themes-headings' variable.
   1393 
   1394 The actual styling of the face is done by `modus-themes-faces'."
   1395   :group 'modus-theme-faces)
   1396 
   1397 (defface modus-themes-heading-2 nil
   1398   "General purpose face for use in headings level 2.
   1399 The exact attributes assigned to this face are contingent on the
   1400 values assigned to the `modus-themes-headings' variable.
   1401 
   1402 The actual styling of the face is done by `modus-themes-faces'."
   1403   :group 'modus-theme-faces)
   1404 
   1405 (defface modus-themes-heading-3 nil
   1406   "General purpose face for use in headings level 3.
   1407 The exact attributes assigned to this face are contingent on the
   1408 values assigned to the `modus-themes-headings' variable.
   1409 
   1410 The actual styling of the face is done by `modus-themes-faces'."
   1411   :group 'modus-theme-faces)
   1412 
   1413 (defface modus-themes-heading-4 nil
   1414   "General purpose face for use in headings level 4.
   1415 The exact attributes assigned to this face are contingent on the
   1416 values assigned to the `modus-themes-headings' variable.
   1417 
   1418 The actual styling of the face is done by `modus-themes-faces'."
   1419   :group 'modus-theme-faces)
   1420 
   1421 (defface modus-themes-heading-5 nil
   1422   "General purpose face for use in headings level 5.
   1423 The exact attributes assigned to this face are contingent on the
   1424 values assigned to the `modus-themes-headings' variable.
   1425 
   1426 The actual styling of the face is done by `modus-themes-faces'."
   1427   :group 'modus-theme-faces)
   1428 
   1429 (defface modus-themes-heading-6 nil
   1430   "General purpose face for use in headings level 6.
   1431 The exact attributes assigned to this face are contingent on the
   1432 values assigned to the `modus-themes-headings' variable.
   1433 
   1434 The actual styling of the face is done by `modus-themes-faces'."
   1435   :group 'modus-theme-faces)
   1436 
   1437 (defface modus-themes-heading-7 nil
   1438   "General purpose face for use in headings level 7.
   1439 The exact attributes assigned to this face are contingent on the
   1440 values assigned to the `modus-themes-headings' variable.
   1441 
   1442 The actual styling of the face is done by `modus-themes-faces'."
   1443   :group 'modus-theme-faces)
   1444 
   1445 (defface modus-themes-heading-8 nil
   1446   "General purpose face for use in headings level 8.
   1447 The exact attributes assigned to this face are contingent on the
   1448 values assigned to the `modus-themes-headings' variable.
   1449 
   1450 The actual styling of the face is done by `modus-themes-faces'."
   1451   :group 'modus-theme-faces)
   1452 
   1453 (defface modus-themes-hl-line nil
   1454   "General purpose face for the current line.
   1455 The exact attributes assigned to this face are contingent on the
   1456 values assigned to the `modus-themes-hl-line' variable.
   1457 
   1458 The actual styling of the face is done by `modus-themes-faces'."
   1459   :group 'modus-theme-faces)
   1460 
   1461 (defface modus-themes-bold nil
   1462   "Generic face for applying a conditional bold weight.
   1463 This behaves in accordance with `modus-themes-bold-constructs'.
   1464 
   1465 The actual styling of the face is done by `modus-themes-faces'."
   1466   :group 'modus-theme-faces)
   1467 
   1468 (defface modus-themes-slant nil
   1469   "Generic face for applying a conditional slant (italics).
   1470 This behaves in accordance with `modus-themes-italic-constructs'.
   1471 
   1472 The actual styling of the face is done by `modus-themes-faces'."
   1473   :group 'modus-theme-faces)
   1474 
   1475 (defface modus-themes-variable-pitch nil
   1476   "Generic face for applying a conditional `variable-pitch'.
   1477 This behaves in accordance with `modus-themes-no-mixed-fonts',
   1478 `modus-themes-variable-pitch-headings' for all heading levels,
   1479 and `modus-themes-variable-pitch-ui'.
   1480 
   1481 The actual styling of the face is done by `modus-themes-faces'."
   1482   :group 'modus-theme-faces)
   1483 
   1484 (defface modus-themes-fixed-pitch nil
   1485   "Generic face for applying a conditional `fixed-pitch'.
   1486 This behaves in accordance with `modus-themes-no-mixed-fonts'.
   1487 
   1488 The actual styling of the face is done by `modus-themes-faces'."
   1489   :group 'modus-theme-faces)
   1490 
   1491 (defface modus-themes-graph-red-0 nil
   1492   "Special subdued red face for use in graphs.
   1493 This is intended to be applied in contexts such as the Org agenda
   1494 habit graph where faithfulness to the semantics of a color value
   1495 is of paramount importance.
   1496 
   1497 The actual styling of the face is done by `modus-themes-faces'."
   1498   :group 'modus-theme-faces)
   1499 
   1500 (defface modus-themes-graph-red-1 nil
   1501   "Special prominent red face for use in graphs.
   1502 This is intended to be applied in contexts such as the Org agenda
   1503 habit graph where faithfulness to the semantics of a color value
   1504 is of paramount importance.
   1505 
   1506 The actual styling of the face is done by `modus-themes-faces'."
   1507   :group 'modus-theme-faces)
   1508 
   1509 (defface modus-themes-graph-green-0 nil
   1510   "Special subdued green face for use in graphs.
   1511 This is intended to be applied in contexts such as the Org agenda
   1512 habit graph where faithfulness to the semantics of a color value
   1513 is of paramount importance.
   1514 
   1515 The actual styling of the face is done by `modus-themes-faces'."
   1516   :group 'modus-theme-faces)
   1517 
   1518 (defface modus-themes-graph-green-1 nil
   1519   "Special prominent green face for use in graphs.
   1520 This is intended to be applied in contexts such as the Org agenda
   1521 habit graph where faithfulness to the semantics of a color value
   1522 is of paramount importance.
   1523 
   1524 The actual styling of the face is done by `modus-themes-faces'."
   1525   :group 'modus-theme-faces)
   1526 
   1527 (defface modus-themes-graph-yellow-0 nil
   1528   "Special subdued yellow face for use in graphs.
   1529 This is intended to be applied in contexts such as the Org agenda
   1530 habit graph where faithfulness to the semantics of a color value
   1531 is of paramount importance.
   1532 
   1533 The actual styling of the face is done by `modus-themes-faces'."
   1534   :group 'modus-theme-faces)
   1535 
   1536 (defface modus-themes-graph-yellow-1 nil
   1537   "Special prominent yellow face for use in graphs.
   1538 This is intended to be applied in contexts such as the Org agenda
   1539 habit graph where faithfulness to the semantics of a color value
   1540 is of paramount importance.
   1541 
   1542 The actual styling of the face is done by `modus-themes-faces'."
   1543   :group 'modus-theme-faces)
   1544 
   1545 (defface modus-themes-graph-blue-0 nil
   1546   "Special subdued blue face for use in graphs.
   1547 This is intended to be applied in contexts such as the Org agenda
   1548 habit graph where faithfulness to the semantics of a color value
   1549 is of paramount importance.
   1550 
   1551 The actual styling of the face is done by `modus-themes-faces'."
   1552   :group 'modus-theme-faces)
   1553 
   1554 (defface modus-themes-graph-blue-1 nil
   1555   "Special prominent blue face for use in graphs.
   1556 This is intended to be applied in contexts such as the Org agenda
   1557 habit graph where faithfulness to the semantics of a color value
   1558 is of paramount importance.
   1559 
   1560 The actual styling of the face is done by `modus-themes-faces'."
   1561   :group 'modus-theme-faces)
   1562 
   1563 (defface modus-themes-graph-magenta-0 nil
   1564   "Special subdued magenta face for use in graphs.
   1565 This is intended to be applied in contexts such as the Org agenda
   1566 habit graph where faithfulness to the semantics of a color value
   1567 is of paramount importance.
   1568 
   1569 The actual styling of the face is done by `modus-themes-faces'."
   1570   :group 'modus-theme-faces)
   1571 
   1572 (defface modus-themes-graph-magenta-1 nil
   1573   "Special prominent magenta face for use in graphs.
   1574 This is intended to be applied in contexts such as the Org agenda
   1575 habit graph where faithfulness to the semantics of a color value
   1576 is of paramount importance.
   1577 
   1578 The actual styling of the face is done by `modus-themes-faces'."
   1579   :group 'modus-theme-faces)
   1580 
   1581 (defface modus-themes-graph-cyan-0 nil
   1582   "Special subdued cyan face for use in graphs.
   1583 This is intended to be applied in contexts such as the Org agenda
   1584 habit graph where faithfulness to the semantics of a color value
   1585 is of paramount importance.
   1586 
   1587 The actual styling of the face is done by `modus-themes-faces'."
   1588   :group 'modus-theme-faces)
   1589 
   1590 (defface modus-themes-graph-cyan-1 nil
   1591   "Special prominent cyan face for use in graphs.
   1592 This is intended to be applied in contexts such as the Org agenda
   1593 habit graph where faithfulness to the semantics of a color value
   1594 is of paramount importance.
   1595 
   1596 The actual styling of the face is done by `modus-themes-faces'."
   1597   :group 'modus-theme-faces)
   1598 
   1599 (defface modus-themes-lang-note nil
   1600   "Generic face for linter or spell checker notes.
   1601 The exact attributes and color combinations are controlled by
   1602 `modus-themes-lang-checkers'.
   1603 
   1604 The actual styling of the face is done by `modus-themes-faces'."
   1605   :group 'modus-theme-faces)
   1606 
   1607 (defface modus-themes-lang-warning nil
   1608   "Generic face for linter or spell checker warnings.
   1609 The exact attributes and color combinations are controlled by
   1610 `modus-themes-lang-checkers'.
   1611 
   1612 The actual styling of the face is done by `modus-themes-faces'."
   1613   :group 'modus-theme-faces)
   1614 
   1615 (defface modus-themes-lang-error nil
   1616   "Generic face for linter or spell checker errors.
   1617 The exact attributes and color combinations are controlled by
   1618 `modus-themes-lang-checkers'.
   1619 
   1620 The actual styling of the face is done by `modus-themes-faces'."
   1621   :group 'modus-theme-faces)
   1622 
   1623 (defface modus-themes-reset-soft nil
   1624   "Generic face to set most face properties to nil.
   1625 
   1626 This is intended to be inherited by faces that should not retain
   1627 properties from their context (e.g. an overlay over an underlined
   1628 text should not be underlined as well) yet still blend in.  Also
   1629 see `modus-themes-reset-hard'.
   1630 
   1631 The actual styling of the face is done by `modus-themes-faces'."
   1632   :group 'modus-theme-faces)
   1633 
   1634 (defface modus-themes-reset-hard nil
   1635   "Generic face to set all face properties to nil.
   1636 
   1637 This is intended to be inherited by faces that should not retain
   1638 properties from their context (e.g. an overlay over an underlined
   1639 text should not be underlined as well) and not blend in.  Also
   1640 see `modus-themes-reset-soft'.
   1641 
   1642 The actual styling of the face is done by `modus-themes-faces'."
   1643   :group 'modus-theme-faces)
   1644 
   1645 (defface modus-themes-key-binding nil
   1646   "Generic face for key bindings.
   1647 The actual styling of the face is done by `modus-themes-faces'."
   1648   :group 'modus-theme-faces)
   1649 
   1650 (defface modus-themes-search-success nil
   1651   "Generic face for successful search.
   1652 The actual styling of the face is done by `modus-themes-faces'."
   1653   :group 'modus-theme-faces)
   1654 
   1655 (defface modus-themes-search-success-modeline nil
   1656   "Generic mode line indicator for successful search.
   1657 The actual styling of the face is done by `modus-themes-faces'."
   1658   :group 'modus-theme-faces)
   1659 
   1660 (defface modus-themes-search-success-lazy nil
   1661   "Generic face for successful, lazily highlighted search.
   1662 The actual styling of the face is done by `modus-themes-faces'."
   1663   :group 'modus-theme-faces)
   1664 
   1665 (defface modus-themes-prompt nil
   1666   "Generic face for command prompts.
   1667 The actual styling of the face is done by `modus-themes-faces'."
   1668   :group 'modus-theme-faces)
   1669 
   1670 
   1671 
   1672 ;;; Customization variables
   1673 
   1674 (defcustom modus-themes-inhibit-reload nil
   1675   "Control theme reload when setting options with Customize.
   1676 
   1677 By default, customizing a theme-related user option through the
   1678 Custom interfaces or with `customize-set-variable' reloads the
   1679 currently active Modus theme.
   1680 
   1681 Disable this behaviour with a non-nil value."
   1682   :group 'modus-themes
   1683   :package-version '(modus-themes . "1.5.0")
   1684   :version "28.1"
   1685   :type 'boolean
   1686   :link '(info-link "(modus-themes) Custom reload theme"))
   1687 
   1688 (defun modus-themes--set-option (sym val)
   1689   "Custom setter for theme related user options.
   1690 Will set SYM to VAL, and reload the current theme, unless
   1691 `modus-themes-inhibit-reload' is non-nil."
   1692   (set-default sym val)
   1693   (unless modus-themes-inhibit-reload
   1694     (pcase (modus-themes--current-theme)
   1695       ('modus-operandi (modus-themes-load-operandi))
   1696       ('modus-vivendi (modus-themes-load-vivendi)))))
   1697 
   1698 (defcustom modus-themes-operandi-color-overrides nil
   1699   "Override colors in the Modus Operandi palette.
   1700 
   1701 For form, see `modus-themes-operandi-colors'."
   1702   :group 'modus-themes
   1703   :package-version '(modus-themes . "1.1.0")
   1704   :version "28.1"
   1705   :type '(alist :key-type symbol :value-type color)
   1706   :set #'modus-themes--set-option
   1707   :initialize #'custom-initialize-default
   1708   :link '(info-link "(modus-themes) Override colors (DIY)"))
   1709 
   1710 (defcustom modus-themes-vivendi-color-overrides nil
   1711   "Override colors in the Modus Vivendi palette.
   1712 
   1713 For form, see `modus-themes-vivendi-colors'."
   1714   :group 'modus-themes
   1715   :package-version '(modus-themes . "1.1.0")
   1716   :version "28.1"
   1717   :type '(alist :key-type symbol :value-type color)
   1718   :set #'modus-themes--set-option
   1719   :initialize #'custom-initialize-default
   1720   :link '(info-link "(modus-themes) Override colors (DIY)"))
   1721 
   1722 ;; The byte compiler complains when a defcustom isn't a top level form
   1723 (let* ((names (mapcar (lambda (pair)
   1724                         (symbol-name (car pair)))
   1725                       modus-themes-operandi-colors))
   1726        (colors (mapcar #'intern (sort names #'string<))))
   1727   (put 'modus-themes-operandi-color-overrides
   1728        'custom-options (copy-sequence colors))
   1729   (put 'modus-themes-vivendi-color-overrides
   1730        'custom-options (copy-sequence colors)))
   1731 
   1732 (defcustom modus-themes-slanted-constructs nil
   1733   "Use slanted text in more code constructs (italics or oblique)."
   1734   :group 'modus-themes
   1735   :package-version '(modus-themes . "1.0.0")
   1736   :version "28.1"
   1737   :type 'boolean
   1738   :set #'modus-themes--set-option
   1739   :initialize #'custom-initialize-default
   1740   :link '(info-link "(modus-themes) Slanted constructs"))
   1741 
   1742 (define-obsolete-variable-alias
   1743   'modus-themes-slanted-constructs
   1744   'modus-themes-italic-constructs
   1745   "1.5.0")
   1746 
   1747 (defcustom modus-themes-italic-constructs nil
   1748   "Use italic font forms in more code constructs."
   1749   :group 'modus-themes
   1750   :package-version '(modus-themes . "1.5.0")
   1751   :version "28.1"
   1752   :type 'boolean
   1753   :set #'modus-themes--set-option
   1754   :initialize #'custom-initialize-default
   1755   :link '(info-link "(modus-themes) Italic constructs"))
   1756 
   1757 (defcustom modus-themes-bold-constructs nil
   1758   "Use bold text in more code constructs."
   1759   :group 'modus-themes
   1760   :package-version '(modus-themes . "1.0.0")
   1761   :version "28.1"
   1762   :type 'boolean
   1763   :set #'modus-themes--set-option
   1764   :initialize #'custom-initialize-default
   1765   :link '(info-link "(modus-themes) Bold constructs"))
   1766 
   1767 (defcustom modus-themes-variable-pitch-headings nil
   1768   "Use proportional fonts (variable-pitch) in headings."
   1769   :group 'modus-themes
   1770   :package-version '(modus-themes . "1.0.0")
   1771   :version "28.1"
   1772   :type 'boolean
   1773   :set #'modus-themes--set-option
   1774   :initialize #'custom-initialize-default
   1775   :link '(info-link "(modus-themes) Headings' typeface"))
   1776 
   1777 (defcustom modus-themes-variable-pitch-ui nil
   1778   "Use proportional fonts (variable-pitch) in UI elements.
   1779 This includes the mode line, header line, tab bar, and tab line."
   1780   :group 'modus-themes
   1781   :package-version '(modus-themes . "1.1.0")
   1782   :version "28.1"
   1783   :type 'boolean
   1784   :set #'modus-themes--set-option
   1785   :initialize #'custom-initialize-default
   1786   :link '(info-link "(modus-themes) UI typeface"))
   1787 
   1788 (defcustom modus-themes-no-mixed-fonts nil
   1789   "Disable inheritance from `fixed-pitch' in some faces.
   1790 
   1791 This is done by default to allow spacing-sensitive constructs,
   1792 such as Org tables and code blocks, to remain monospaced when
   1793 users opt for something like the command `variable-pitch-mode'.
   1794 The downside with the default is that users need to explicitly
   1795 configure the font family of `fixed-pitch' in order to get a
   1796 consistent experience.  That may be something they do not want to
   1797 do.  Hence this option to disable any kind of technique for
   1798 mixing fonts."
   1799   :group 'modus-themes
   1800   :package-version '(modus-themes . "1.0.0")
   1801   :version "28.1"
   1802   :type 'boolean
   1803   :set #'modus-themes--set-option
   1804   :initialize #'custom-initialize-default
   1805   :link '(info-link "(modus-themes) No mixed fonts"))
   1806 
   1807 (defconst modus-themes--headings-choice
   1808   '(choice
   1809     (const :format "[%v] %t\n" :tag "Fairly desaturated foreground with bold weight (default)" nil)
   1810     (const :format "[%v] %t\n" :tag "Same as the default (backward-compatible)" t)
   1811     (const :format "[%v] %t\n" :tag "Like the default without bold weight" no-bold)
   1812     (const :format "[%v] %t\n" :tag "Like the default plus overline" line)
   1813     (const :format "[%v] %t\n" :tag "Like `line' without bold weight" line-no-bold)
   1814     (const :format "[%v] %t\n" :tag "Like the default but with more colorful foreground" rainbow)
   1815     (const :format "[%v] %t\n" :tag "Like `rainbow' plus overline" rainbow-line)
   1816     (const :format "[%v] %t\n" :tag "Like `rainbow' without bold weight" rainbow-no-bold)
   1817     (const :format "[%v] %t\n" :tag "Like `rainbow-line' without bold weight" rainbow-line-no-bold)
   1818     (const :format "[%v] %t\n" :tag "Like the default plus subtle background" highlight)
   1819     (const :format "[%v] %t\n" :tag "Like `highlight' without bold weight" highlight-no-bold)
   1820     (const :format "[%v] %t\n" :tag "Like `highlight' with more colorful foreground" rainbow-highlight)
   1821     (const :format "[%v] %t\n" :tag "Like `rainbow-highlight' without bold weight" rainbow-highlight-no-bold)
   1822     (const :format "[%v] %t\n" :tag "Like `highlight' plus overline" section)
   1823     (const :format "[%v] %t\n" :tag "Like `section' without bold weight" section-no-bold)
   1824     (const :format "[%v] %t\n" :tag "Like `section' with more colorful foreground" rainbow-section)
   1825     (const :format "[%v] %t\n" :tag "Like `rainbow-section' without bold weight" rainbow-section-no-bold)
   1826     (const :format "[%v] %t\n" :tag "Do not use any distinct foreground color; just bold weight" no-color)
   1827     (const :format "[%v] %t\n" :tag "Like `no-bold' but without the distinct foreground color" no-color-no-bold))
   1828   "Refer to the doc string of `modus-themes-headings'.
   1829 This is a helper variable intended for internal use.")
   1830 
   1831 (defcustom modus-themes-headings nil
   1832   "Alist of styles for headings, with optional value per level.
   1833 
   1834 To control faces per level from 1-8, use something like this:
   1835 
   1836   (setq modus-themes-headings
   1837         '((1 . highlight)
   1838           (2 . line)
   1839           (t . rainbow-line-no-bold)))
   1840 
   1841 To set a uniform value for all heading levels, use this pattern:
   1842 
   1843   (setq modus-themes-headings
   1844         '((t . rainbow-line-no-bold)))
   1845 
   1846 The default value uses a fairly desaturated foreground color in
   1847 combination with a bold typographic weight.  To specify this
   1848 style for a given level N (assuming you wish to have another
   1849 fallback option), just specify the value nil like this:
   1850 
   1851   (setq modus-themes-headings
   1852         '((1 . nil)
   1853           (2 . line)
   1854           (3) ; same as nil
   1855           (t . rainbow-line-no-bold)))
   1856 
   1857 A description of all other possible values:
   1858 
   1859 + `no-bold' retains the default text color while removing the
   1860   typographic weight.
   1861 
   1862 + `line' is the same as the default plus an overline over the
   1863   heading.
   1864 
   1865 + `line-no-bold' is the same as `line' without bold weight.
   1866 
   1867 + `rainbow' uses a more colorful foreground in combination with
   1868   bold weight.
   1869 
   1870 + `rainbow-line' is the same as `rainbow' plus an overline.
   1871 
   1872 + `rainbow-line-no-bold' is the same as `rainbow-line' without
   1873   the bold weight.
   1874 
   1875 + `highlight' retains the default style of a fairly desaturated
   1876   foreground combined with a bold weight and add to it a subtle
   1877   accented background.
   1878 
   1879 + `highlight-no-bold' is the same as `highlight' without a bold
   1880   weight.
   1881 
   1882 + `rainbow-highlight' is the same as `highlight' but with a more
   1883   colorful foreground.
   1884 
   1885 + `rainbow-highlight-no-bold' is the same as `rainbow-highlight'
   1886   without a bold weight.
   1887 
   1888 + `section' retains the default looks and adds to them both an
   1889   overline and a slightly accented background.  It is, in effect,
   1890   a combination of the `line' and `highlight' values.
   1891 
   1892 + `section-no-bold' is the same as `section' without a bold
   1893   weight.
   1894 
   1895 + `rainbow-section' is the same as `section' but with a more
   1896   colorful foreground.
   1897 
   1898 + `rainbow-section-no-bold' is the same as `rainbow-section'
   1899   without a bold weight.
   1900 
   1901 + `no-color' does not apply any color to the heading, meaning
   1902   that it uses the foreground of the `default' face.  It still
   1903   renders the text with a bold typographic weight.
   1904 
   1905 + `no-color-no-bold' is like `no-color' but without the bold
   1906   weight."
   1907   :group 'modus-themes
   1908   :package-version '(modus-themes . "1.3.0")
   1909   :version "28.1"
   1910   :type `(alist
   1911           :options ,(mapcar (lambda (el)
   1912                               (list el modus-themes--headings-choice))
   1913                             '(1 2 3 4 5 6 7 8 t))
   1914           :key-type symbol
   1915           :value-type ,modus-themes--headings-choice)
   1916   :set #'modus-themes--set-option
   1917   :initialize #'custom-initialize-default
   1918   :link '(info-link "(modus-themes) Heading styles"))
   1919 
   1920 (defcustom modus-themes-org-agenda nil
   1921   "Control the style of individual Org agenda constructs.
   1922 
   1923 This is an alist that accepts a (key . value) combination.  Here
   1924 is a sample, followed by a description of all possible
   1925 combinations:
   1926 
   1927     (setq modus-themes-org-agenda
   1928           '((header-block . (variable-pitch scale-title))
   1929             (header-date . (grayscale workaholic bold-today))
   1930             (scheduled . uniform)
   1931             (habit . traffic-light)))
   1932 
   1933 A `header-block' key applies to elements that concern the
   1934 headings which demarcate blocks in the structure of the agenda.
   1935 By default (a nil value) those are rendered in a bold typographic
   1936 weight, plus a height that is slightly taller than the default
   1937 font size.  Acceptable values come in the form of a list that can
   1938 include either or both of those properties:
   1939 
   1940 - `variable-pitch' to use a proportionately spaced typeface;
   1941 - `scale-title' to increase height to `modus-themes-scale-title'
   1942   OR `no-scale' to set the font to the same height as the rest of
   1943   the buffer.
   1944 
   1945 In case both `scale-title' and `no-scale' are in the list, the
   1946 latter takes precedence.
   1947 
   1948 Example usage:
   1949 
   1950     (header-block . nil)
   1951     (header-block . (scale-title))
   1952     (header-block . (no-scale))
   1953     (header-block . (variable-pitch scale-title))
   1954 
   1955 A `header-date' key covers date headings.  Dates use only a
   1956 foreground color by default (a nil value), with weekdays and
   1957 weekends having a slight difference in hueness.  The current date
   1958 has an added gray background.  This key accepts a list of values
   1959 that can include any of the following properties:
   1960 
   1961 - `grayscale' to make weekdays use the main foreground color and
   1962   weekends a more subtle gray;
   1963 - `workaholic' to make weekdays and weekends look the same in
   1964   terms of color;
   1965 - `bold-today' to apply a bold typographic weight to the current
   1966   date;
   1967 - `bold-all' to render all date headings in a bold weight.
   1968 
   1969 For example:
   1970 
   1971     (header-date . nil)
   1972     (header-date . (workaholic))
   1973     (header-date . (grayscale bold-all))
   1974     (header-date . (grayscale workaholic))
   1975     (header-date . (grayscale workaholic bold-today))
   1976 
   1977 A `scheduled' key applies to tasks with a scheduled date.  By
   1978 default (a nil value), these use varying shades of yellow to
   1979 denote (i) a past or current date and (ii) a future date.  Valid
   1980 values are symbols:
   1981 
   1982 - nil (default);
   1983 - `uniform' to make all scheduled dates the same color;
   1984 - `rainbow' to use contrasting colors for past, present, future
   1985   scheduled dates.
   1986 
   1987 For example:
   1988 
   1989     (scheduled . nil)
   1990     (scheduled . uniform)
   1991     (scheduled . rainbow)
   1992 
   1993 A `habit' key applies to the `org-habit' graph.  All possible
   1994 value are passed as a symbol.  Those are:
   1995 
   1996 - The default (nil) is meant to conform with the original
   1997   aesthetic of `org-habit'.  It employs all four color codes that
   1998   correspond to the org-habit states---clear, ready, alert, and
   1999   overdue---while distinguishing between their present and future
   2000   variants.  This results in a total of eight colors in use: red,
   2001   yellow, green, blue, in tinted and shaded versions.  They cover
   2002   the full set of information provided by the `org-habit'
   2003   consistency graph.
   2004 - `simplified' is like the default except that it removes the
   2005   dichotomy between current and future variants by applying
   2006   uniform color-coded values.  It applies a total of four colors:
   2007   red, yellow, green, blue.  They produce a simplified
   2008   consistency graph that is more legible (or less \"busy\") than
   2009   the default.  The intent is to shift focus towards the
   2010   distinction between the four states of a habit task, rather
   2011   than each state's present/future outlook.
   2012 - `traffic-light' further reduces the available colors to red,
   2013   yellow, and green.  As in `simplified', present and future
   2014   variants appear uniformly, but differently from it, the 'clear'
   2015   state is rendered in a green hue, instead of the original blue.
   2016   This is meant to capture the use-case where a habit task being
   2017   \"too early\" is less important than it being \"too late\".
   2018   The difference between ready and clear states is attenuated by
   2019   painting both of them using shades of green.  This option thus
   2020   highlights the alert and overdue states.
   2021 - `traffic-light-deuteranopia' is like the `traffic-light' except
   2022   its three colors are red, yellow, and blue to be suitable for
   2023   users with red-green color deficiency (deuteranopia).
   2024 
   2025 For example:
   2026 
   2027     (habit . nil)
   2028     (habit . simplified)
   2029     (habit . traffic-light)"
   2030   :group 'modus-themes
   2031   :package-version '(modus-themes . "1.5.0")
   2032   :version "28.1"
   2033   :type '(set
   2034           (cons :tag "Block header"
   2035                 (const header-block)
   2036                 (set :tag "Header presentation" :greedy t
   2037                      (choice :tag "Font style"
   2038                              (const :tag "Use the original typeface (default)" nil)
   2039                              (const :tag "Use `variable-pitch' font" variable-pitch))
   2040                      (choice :tag "Scaling"
   2041                              (const :tag "Slight increase in height (default)" nil)
   2042                              (const :tag "Do not scale" no-scale)
   2043                              (const :tag "Scale to match `modus-themes-scale-title'" scale-title))))
   2044           (cons :tag "Date header" :greedy t
   2045                 (const header-date)
   2046                 (set :tag "Header presentation" :greedy t
   2047                      (const :tag "Use grayscale for date headers" grayscale)
   2048                      (const :tag "Do not differentiate weekdays from weekends" workaholic)
   2049                      (const :tag "Make today bold" bold-today)
   2050                      (const :tag "Make all dates bold" bold-all)))
   2051           (cons :tag "Scheduled tasks"
   2052                 (const scheduled)
   2053                 (choice (const :tag "Yellow colors to distinguish current and future tasks (default)" nil)
   2054                         (const :tag "Uniform subtle warm color for all scheduled tasks" uniform)
   2055                         (const :tag "Rainbow-colored scheduled tasks" rainbow)))
   2056           (cons :tag "Habit graph"
   2057                 (const habit)
   2058                 (choice (const :tag "Follow the original design of `org-habit' (default)" nil)
   2059                         (const :tag "Do not distinguish between present and future variants" simplified)
   2060                         (const :tag "Use only red, yellow, green" traffic-light)
   2061                         (const :tag "Use only red, yellow, blue" traffic-light-deuteranopia))))
   2062   :set #'modus-themes--set-option
   2063   :initialize #'custom-initialize-default
   2064   :link '(info-link "(modus-themes) Org agenda"))
   2065 
   2066 (defcustom modus-themes-scale-headings nil
   2067   "Use font scaling for headings.
   2068 
   2069 For regular headings the scale is controlled by the variables
   2070 `modus-themes-scale-1' (smallest) and its variants all the way up
   2071 to `modus-themes-scale-4' (larger).
   2072 
   2073 While `modus-themes-scale-title' is reserved for special headings
   2074 that nominally are the largest on the scale (though that is not a
   2075 requirement).
   2076 
   2077 A special heading is, in this context, one that does not fit into
   2078 the syntax for heading levels that apply to the given mode.  For
   2079 example, Org's #+title keyword lies outside the normal eight
   2080 levels of headings.  Whereas, say, Markdown does not have such a
   2081 special heading."
   2082   :group 'modus-themes
   2083   :package-version '(modus-themes . "1.2.0")
   2084   :version "28.1"
   2085   :type 'boolean
   2086   :set #'modus-themes--set-option
   2087   :initialize #'custom-initialize-default
   2088   :link '(info-link "(modus-themes) Scaled headings"))
   2089 
   2090 (defcustom modus-themes-scale-1 1.05
   2091   "Font size that is slightly larger than the base value.
   2092 
   2093 This size is used for level 4 headings, such as in Org and
   2094 Markdown files.
   2095 
   2096 The default value is a floating point that is interpreted as a
   2097 multiple of the base font size.  It is recommended to use such a
   2098 value.
   2099 
   2100 However, the variable also accepts an integer, understood as an
   2101 absolute height that is 1/10 of the typeface's point size (e.g. a
   2102 value of 140 is the same as setting the font at 14 point size).
   2103 This will ignore the base font size and, thus, will not scale in
   2104 accordance with it in cases where it changes, such as while using
   2105 `text-scale-adjust'."
   2106   :group 'modus-themes
   2107   :package-version '(modus-themes . "1.2.0")
   2108   :version "28.1"
   2109   :type 'number
   2110   :set #'modus-themes--set-option
   2111   :initialize #'custom-initialize-default
   2112   :link '(info-link "(modus-themes) Scaled heading sizes"))
   2113 
   2114 (defcustom modus-themes-scale-2 1.1
   2115   "Font size slightly larger than `modus-themes-scale-1'.
   2116 
   2117 This size is used for level 3 headings, such as in Org and
   2118 Markdown files.
   2119 
   2120 The default value is a floating point that is interpreted as a
   2121 multiple of the base font size.  It is recommended to use such a
   2122 value.
   2123 
   2124 However, the variable also accepts an integer, understood as an
   2125 absolute height that is 1/10 of the typeface's point size (e.g. a
   2126 value of 140 is the same as setting the font at 14 point size).
   2127 This will ignore the base font size and, thus, will not scale in
   2128 accordance with it in cases where it changes, such as while using
   2129 `text-scale-adjust'."
   2130   :group 'modus-themes
   2131   :package-version '(modus-themes . "1.2.0")
   2132   :version "28.1"
   2133   :type 'number
   2134   :set #'modus-themes--set-option
   2135   :initialize #'custom-initialize-default
   2136   :link '(info-link "(modus-themes) Scaled heading sizes"))
   2137 
   2138 (defcustom modus-themes-scale-3 1.15
   2139   "Font size slightly larger than `modus-themes-scale-2'.
   2140 
   2141 This size is used for level 2 headings, such as in Org and
   2142 Markdown files.
   2143 
   2144 The default value is a floating point that is interpreted as a
   2145 multiple of the base font size.  It is recommended to use such a
   2146 value.
   2147 
   2148 However, the variable also accepts an integer, understood as an
   2149 absolute height that is 1/10 of the typeface's point size (e.g. a
   2150 value of 140 is the same as setting the font at 14 point size).
   2151 This will ignore the base font size and, thus, will not scale in
   2152 accordance with it in cases where it changes, such as while using
   2153 `text-scale-adjust'."
   2154   :group 'modus-themes
   2155   :package-version '(modus-themes . "1.2.0")
   2156   :version "28.1"
   2157   :type 'number
   2158   :set #'modus-themes--set-option
   2159   :initialize #'custom-initialize-default
   2160   :link '(info-link "(modus-themes) Scaled heading sizes"))
   2161 
   2162 (defcustom modus-themes-scale-4 1.2
   2163   "Font size slightly larger than `modus-themes-scale-3'.
   2164 
   2165 This size is used for level 1 headings, such as in Org and
   2166 Markdown files.
   2167 
   2168 The default value is a floating point that is interpreted as a
   2169 multiple of the base font size.  It is recommended to use such a
   2170 value.
   2171 
   2172 However, the variable also accepts an integer, understood as an
   2173 absolute height that is 1/10 of the typeface's point size (e.g. a
   2174 value of 140 is the same as setting the font at 14 point size).
   2175 This will ignore the base font size and, thus, will not scale in
   2176 accordance with it in cases where it changes, such as while using
   2177 `text-scale-adjust'."
   2178   :group 'modus-themes
   2179   :package-version '(modus-themes . "1.2.0")
   2180   :version "28.1"
   2181   :type 'number
   2182   :set #'modus-themes--set-option
   2183   :initialize #'custom-initialize-default
   2184   :link '(info-link "(modus-themes) Scaled heading sizes"))
   2185 
   2186 (defcustom modus-themes-scale-5 1.3
   2187   "Font size slightly larger than `modus-themes-scale-4'.
   2188 
   2189 This size is only used for 'special' top level headings, such as
   2190 Org's file title heading, denoted by the #+title key word, and
   2191 the Org agenda structure headers.
   2192 
   2193 The default value is a floating point that is interpreted as a
   2194 multiple of the base font size.  It is recommended to use such a
   2195 value.
   2196 
   2197 However, the variable also accepts an integer, understood as an
   2198 absolute height that is 1/10 of the typeface's point size (e.g. a
   2199 value of 140 is the same as setting the font at 14 point size).
   2200 This will ignore the base font size and, thus, will not scale in
   2201 accordance with it in cases where it changes, such as while using
   2202 `text-scale-adjust'."
   2203   :group 'modus-themes
   2204   :package-version '(modus-themes . "1.2.0")
   2205   :version "28.1"
   2206   :type 'number
   2207   :set #'modus-themes--set-option
   2208   :initialize #'custom-initialize-default
   2209   :link '(info-link "(modus-themes) Scaled heading sizes"))
   2210 
   2211 (define-obsolete-variable-alias 'modus-themes-scale-5 'modus-themes-scale-title "1.5.0")
   2212 
   2213 (defcustom modus-themes-scale-title 1.3
   2214   "Font size slightly larger than `modus-themes-scale-4'.
   2215 
   2216 This size is only used for 'special' top level headings, such as
   2217 Org's file title heading, denoted by the #+title key word, and
   2218 the Org agenda structure headers (see `modus-themes-org-agenda').
   2219 
   2220 The default value is a floating point that is interpreted as a
   2221 multiple of the base font size.  It is recommended to use such a
   2222 value.
   2223 
   2224 However, the variable also accepts an integer, understood as an
   2225 absolute height that is 1/10 of the typeface's point size (e.g. a
   2226 value of 140 is the same as setting the font at 14 point size).
   2227 This will ignore the base font size and, thus, will not scale in
   2228 accordance with it in cases where it changes, such as while using
   2229 `text-scale-adjust'."
   2230   :group 'modus-themes
   2231   :package-version '(modus-themes . "1.5.0")
   2232   :version "28.1"
   2233   :type 'number
   2234   :set #'modus-themes--set-option
   2235   :initialize #'custom-initialize-default
   2236   :link '(info-link "(modus-themes) Scaled heading sizes"))
   2237 
   2238 (defcustom modus-themes-fringes nil
   2239   "Define the visibility of fringes.
   2240 
   2241 Nil means the fringes have no background color.  Option `subtle'
   2242 will apply a grayscale value that is visible yet close to the
   2243 main buffer background color.  Option `intense' will use a more
   2244 pronounced grayscale value."
   2245   :group 'modus-themes
   2246   :package-version '(modus-themes . "1.0.0")
   2247   :version "28.1"
   2248   :type '(choice
   2249           (const :format "[%v] %t\n" :tag "No visible fringes (default)" nil)
   2250           (const :format "[%v] %t\n" :tag "Subtle grayscale background" subtle)
   2251           (const :format "[%v] %t\n" :tag "Intense grayscale background" intense))
   2252   :set #'modus-themes--set-option
   2253   :initialize #'custom-initialize-default
   2254   :link '(info-link "(modus-themes) Fringes"))
   2255 
   2256 (defcustom modus-themes-lang-checkers nil
   2257   "Control the style of spelling and code checkers/linters.
   2258 
   2259 Nil (the default) applies a color-coded underline to the affected
   2260 text, while it leaves the original foreground in tact.  If the
   2261 display spec of Emacs has support for it, the underline's style
   2262 is that of a wave, otherwise it is a straight line.
   2263 
   2264 Options `subtle-foreground' and `intense-foreground' add a
   2265 color-coded underline while also changing the text's foreground
   2266 accordingly.  The style of the underline is the same as with the
   2267 default option.
   2268 
   2269 Option `straight-underline' is like the default but always
   2270 applies a straight line under the affected text.  Same principle
   2271 for `subtle-foreground-straight-underline' and its counterpart
   2272 `intense-foreground-straight-underline'.
   2273 
   2274 Option `colored-background' uses a straight underline, a
   2275 background, and a foreground.  All are color-coded.  This is the
   2276 most intense combination of face properties."
   2277   :group 'modus-themes
   2278   :package-version '(modus-themes . "1.1.0")
   2279   :version "28.1"
   2280   :type '(choice
   2281           (const :format "[%v] %t\n" :tag "Only color-coded wavy underline (default)" nil)
   2282           (const :format "[%v] %t\n" :tag "Like the default, but with a straight underline" straight-underline)
   2283           (const :format "[%v] %t\n" :tag "Color-coded wavy underline; subtle foreground" subtle-foreground)
   2284           (const :format "[%v] %t\n" :tag "Combines `straight-underline' and `subtle-foreground'" subtle-foreground-straight-underline)
   2285           (const :format "[%v] %t\n" :tag "Color-coded wavy underline; intense foreground" intense-foreground)
   2286           (const :format "[%v] %t\n" :tag "Combines `straight-underline' and `intense-foreground'" intense-foreground-straight-underline)
   2287           (const :format "[%v] %t\n" :tag "Color-coded background, foreground, straight underline" colored-background))
   2288   :set #'modus-themes--set-option
   2289   :initialize #'custom-initialize-default
   2290   :link '(info-link "(modus-themes) Language checkers"))
   2291 
   2292 (defcustom modus-themes-org-blocks nil
   2293   "Use a subtle gray or color-coded background for Org blocks.
   2294 
   2295 Nil (the default) means that the block has no distinct background
   2296 of its own and uses the one that applies to the rest of the
   2297 buffer.
   2298 
   2299 Option `gray-background' applies a subtle gray background to the
   2300 block's contents.  It also affects the begin and end lines of the
   2301 block: their background extends to the edge of the window for
   2302 Emacs version >= 27 where the ':extend' keyword is recognized by
   2303 `set-face-attribute' (this is contingent on the variable
   2304 `org-fontify-whole-block-delimiter-line').
   2305 
   2306 Option `tinted-background' uses a slightly colored background for
   2307 the contents of the block.  The exact color will depend on the
   2308 programming language and is controlled by the variable
   2309 `org-src-block-faces' (refer to the theme's source code for the
   2310 current association list).  For this to take effect, the Org
   2311 buffer needs to be restarted with `org-mode-restart'.
   2312 
   2313 Code blocks use their major mode's colors only when the variable
   2314 `org-src-fontify-natively' is non-nil.  While quote/verse blocks
   2315 require setting `org-fontify-quote-and-verse-blocks' to a non-nil
   2316 value.
   2317 
   2318 Older versions of the themes provided options `grayscale' (or
   2319 `greyscale') and `rainbow'.  Those will continue to work as they
   2320 are aliases for `gray-background' and `tinted-background',
   2321 respectively."
   2322   :group 'modus-themes
   2323   :package-version '(modus-themes . "1.4.0")
   2324   :version "28.1"
   2325   :type '(choice
   2326           (const :format "[%v] %t\n" :tag "No Org block background (default)" nil)
   2327           (const :format "[%v] %t\n" :tag "Subtle gray block background" gray-background)
   2328           (const :format "[%v] %t\n" :tag "Alias for `gray-background'" grayscale) ; for backward compatibility
   2329           (const :format "[%v] %t\n" :tag "Alias for `gray-background'" greyscale)
   2330           (const :format "[%v] %t\n" :tag "Color-coded background per programming language" tinted-background)
   2331           (const :format "[%v] %t\n" :tag "Alias for `tinted-background'" rainbow)) ; back compat
   2332   :set #'modus-themes--set-option
   2333   :initialize #'custom-initialize-default
   2334   :link '(info-link "(modus-themes) Org mode blocks"))
   2335 
   2336 (defcustom modus-themes-org-habit nil
   2337   "Deprecated in version 1.5.0 favor of `modus-themes-org-agenda'.
   2338 
   2339 Control the presentation of the `org-habit' graph.
   2340 
   2341 The default is meant to conform with the original aesthetic of
   2342 `org-habit'.  It employs all four color codes that correspond to
   2343 the org-habit states---clear, ready, alert, and overdue---while
   2344 distinguishing between their present and future variants.  This
   2345 results in a total of eight colors in use: red, yellow, green,
   2346 blue, in tinted and shaded versions.  They cover the full set of
   2347 information provided by the `org-habit' consistency graph.
   2348 
   2349 Option `simplified' is like the default except that it removes
   2350 the dichotomy between current and future variants by applying
   2351 uniform color-coded values.  It applies a total of four colors:
   2352 red, yellow, green, blue.  They produce a simplified consistency
   2353 graph that is more legible (or less \"busy\") than the default.
   2354 The intent is to shift focus towards the distinction between the
   2355 four states of a habit task, rather than each state's
   2356 present/future outlook.
   2357 
   2358 Option `traffic-light' further reduces the available colors to
   2359 red, yellow, and green.  As in `simplified', present and future
   2360 variants appear uniformly, but differently from it, the 'clear'
   2361 state is rendered in a green hue, instead of the original blue.
   2362 This is meant to capture the use-case where a habit task being
   2363 \"too early\" is less important than it being \"too late\".  The
   2364 difference between ready and clear states is attenuated by
   2365 painting both of them using shades of green.  This option thus
   2366 highlights the alert and overdue states."
   2367   :group 'modus-themes
   2368   :package-version '(modus-themes . "1.1.0")
   2369   :version "28.1"
   2370   :type '(choice
   2371           (const :format "[%v] %t\n" :tag "Respect the original design of org-habit (default)" nil)
   2372           (const :format "[%v] %t\n" :tag "Like the default, but do not distinguish between present and future variants" simplified)
   2373           (const :format "[%v] %t\n" :tag "Like `simplified', but only use red, yellow, green" traffic-light))
   2374   :set #'modus-themes--set-option
   2375   :initialize #'custom-initialize-default
   2376   :link '(info-link "(modus-themes) Org agenda habits"))
   2377 
   2378 (make-obsolete 'modus-themes-org-habit 'modus-themes-org-agenda "1.5.0")
   2379 
   2380 (defcustom modus-themes-mode-line nil
   2381   "Adjust the overall style of the mode line.
   2382 
   2383 The value is a list of properties, each designated by a symbol.
   2384 The default (a nil value or an empty list) is a two-dimensional
   2385 rectangle with a border around it.  The active and the inactive
   2386 mode lines use different shades of grayscale values for the
   2387 background and foreground.
   2388 
   2389 The `3d' property will apply a three-dimensional effect to the
   2390 active mode line.  The inactive mode lines remain two-dimensional
   2391 and are toned down a bit, relative to the nil value.
   2392 
   2393 The `moody' property is meant to optimize the mode line for use
   2394 with the library of the same name.  This practically means to
   2395 remove the box effect and rely on underline and overline
   2396 properties instead.  It also tones down the inactive mode lines.
   2397 Despite its intended purpose, this option can also be used
   2398 without the `moody' library (please consult the themes' manual on
   2399 this point for more details).
   2400 
   2401 The `borderless' property removes the border effect.  This is
   2402 done by making the box property use the same color as the
   2403 background, effectively blending the two and creating some
   2404 padding.
   2405 
   2406 The `accented' property ensures that the active mode line uses a
   2407 colored background instead of the standard shade of gray.
   2408 
   2409 Valid combinations are:
   2410 - (3d)
   2411 - (moody)
   2412 - (borderless)
   2413 - (accented)
   2414 - (borderless accented)
   2415 - (3d borderless)
   2416 - (3d accented)
   2417 - (3d borderless accented)
   2418 - (moody borderless)
   2419 - (moody accented)
   2420 - (moody borderless accented)
   2421 
   2422 The order of items in those lists is not significant."
   2423   :group 'modus-themes
   2424   :package-version '(modus-themes . "1.5.0")
   2425   :version "28.1"
   2426   :type '(set :tag "Properties" :greedy t
   2427               (choice :tag "Border effects"
   2428                       (const :tag "Rectangular Border" nil)
   2429                       (const :tag "3d borders" 3d)
   2430                       (const :tag "No box effects (Moody-compatible)" moody))
   2431               (const :tag "Coloured background" accented)
   2432               (const :tag "Without noticeable border" borderless))
   2433   :set #'modus-themes--set-option
   2434   :initialize #'custom-initialize-default
   2435   :link '(info-link "(modus-themes) Mode line"))
   2436 
   2437 (defcustom modus-themes-diffs nil
   2438   "Adjust the overall style of diffs.
   2439 
   2440 The default (nil) uses fairly intense color combinations for
   2441 diffs, by applying prominently colored backgrounds, with
   2442 appropriate foregrounds.
   2443 
   2444 Option `desaturated' follows the same principles as with the
   2445 default (nil), though it tones down all relevant colors.
   2446 
   2447 Option `bg-only' applies a background but does not override the
   2448 text's foreground.  This makes it suitable for a non-nil value
   2449 passed to `diff-font-lock-syntax' (note: Magit does not support
   2450 syntax highlighting in diffs---last checked on 2021-04-21).
   2451 
   2452 Option `deuteranopia' is like the default (nil) in terms of using
   2453 prominently colored backgrounds, except that it also accounts for
   2454 red-green color defficiency by replacing all instances of green
   2455 with colors on the blue side of the spectrum.  Other stylistic
   2456 changes are made in the interest of optimizing for such a
   2457 use-case.
   2458 
   2459 Option `fg-only-deuteranopia' removes all colored backgrounds,
   2460 except from word-wise or refined changes.  Instead, it only uses
   2461 color-coded foreground values to differentiate between added,
   2462 removed, and changed lines.  If a background is necessary to
   2463 denote context, a subtle grayscale value is applied.  The color
   2464 used for added lines is a variant of blue to account for
   2465 red-green color defficiency but also because green text alone is
   2466 hard to discern in the diff's context (hard for our accessibility
   2467 purposes).  The `fg-only' option that existed in older versions
   2468 of the themes is now an alias of `fg-only-deuteranopia', in the
   2469 interest of backward compatibility."
   2470   :group 'modus-themes
   2471   :package-version '(modus-themes . "1.4.0")
   2472   :version "28.1"
   2473   :type '(choice
   2474           (const :format "[%v] %t\n" :tag "Intensely colored backgrounds (default)" nil)
   2475           (const :format "[%v] %t\n" :tag "Slightly accented backgrounds with tinted text" desaturated)
   2476           (const :format "[%v] %t\n" :tag "Apply color-coded backgrounds; keep syntax colors in tact" bg-only)
   2477           (const :format "[%v] %t\n" :tag "Like the default (nil), though optimized for red-green color defficiency" deuteranopia)
   2478           (const :format "[%v] %t\n" :tag "No backgrounds, except for refined diffs" fg-only-deuteranopia)
   2479           (const :format "[%v] %t\n" :tag "Alias of `fg-only-deuteranopia' for backward compatibility" fg-only))
   2480   :set #'modus-themes--set-option
   2481   :initialize #'custom-initialize-default
   2482   :link '(info-link "(modus-themes) Diffs"))
   2483 
   2484 (defcustom modus-themes-completions nil
   2485   "Control the style of the completion framework's interface.
   2486 
   2487 This is a special option that has different effects depending on
   2488 the completion UI.  The interfaces can be grouped in two
   2489 categories, based on their default aesthetics: (i) those that
   2490 only or mostly use foreground colors for their interaction model,
   2491 and (ii) those that combine background and foreground values for
   2492 some of their metaphors.  The former category encompasses
   2493 Icomplete, Ido, Selectrum, Vertico, as well as pattern matching
   2494 styles like Orderless and Flx.  The latter covers Helm, Ivy, and
   2495 Sallet.
   2496 
   2497 A value of nil (the default) will simply respect the metaphors of
   2498 each completion framework.
   2499 
   2500 Option `moderate' applies a combination of background and
   2501 foreground that is fairly subtle.  For Icomplete and friends this
   2502 constitutes a departure from their default aesthetics, however
   2503 the difference is small.  While Helm, Ivy et al appear slightly
   2504 different than their original looks, as they are toned down a
   2505 bit.
   2506 
   2507 Option `opinionated' uses color combinations that refashion the
   2508 completion UI.  For the Icomplete camp this means that intense
   2509 background and foreground combinations are used: in effect their
   2510 looks emulate those of Helm, Ivy and company in their original
   2511 style.  Whereas the other group of packages will revert to an
   2512 even more nuanced aesthetic with some additional changes to the
   2513 choice of hues.
   2514 
   2515 To appreciate the scope of this customization option, you should
   2516 spend some time with every one of the nil (default), `moderate',
   2517 and `opinionated' possibilities."
   2518   :group 'modus-themes
   2519   :package-version '(modus-themes . "1.0.0")
   2520   :version "28.1"
   2521   :type '(choice
   2522           (const :format "[%v] %t\n" :tag "Respect the framework's established aesthetic (default)" nil)
   2523           (const :format "[%v] %t\n" :tag "Subtle backgrounds for various elements" moderate)
   2524           (const :format "[%v] %t\n" :tag "Radical alternative to the framework's looks" opinionated))
   2525   :set #'modus-themes--set-option
   2526   :initialize #'custom-initialize-default
   2527   :link '(info-link "(modus-themes) Completion UIs"))
   2528 
   2529 (defcustom modus-themes-prompts nil
   2530   "Use subtle or intense styles for minibuffer and REPL prompts.
   2531 
   2532 The value is a list of properties, each designated by a symbol.
   2533 The default (a nil value or an empty list) means to only use a
   2534 subtle accented foreground color.
   2535 
   2536 The property `background' applies a background color to the
   2537 prompt's text.  By default, this is a subtle accented value.
   2538 
   2539 The property `intense' makes the foreground color more prominent.
   2540 If the `background' property is also set, it amplifies the value
   2541 of the background as well.
   2542 
   2543 The property `gray' changes the prompt's colors to grayscale.
   2544 This affects the foreground and, if the `background' property is
   2545 also set, the background.  Its effect is subtle, unless it is
   2546 combined with the `intense' property.
   2547 
   2548 The property `bold' makes the text use a bold typographic weight.
   2549 Similarly, `italic' adds a slant to the font's forms (italic or
   2550 oblique forms, depending on the typeface).
   2551 
   2552 Combinations of any of those properties can be expressed in a
   2553 list, as in thosep examples:
   2554 
   2555     (intense)
   2556     (bold intense)
   2557     (intense bold gray)
   2558     (intense background gray bold)
   2559 
   2560 The order in which the properties are set is not significant.
   2561 
   2562 In user configuration files the form may look like this:
   2563 
   2564     (setq modus-themes-prompts '(background gray))"
   2565   :group 'modus-themes
   2566   :package-version '(modus-themes . "1.5.0")
   2567   :version "28.1"
   2568   :type '(set :tag "Properties" :greedy t
   2569               (const :tag "With Background" background)
   2570               (const :tag "Intense" intense)
   2571               (const :tag "Grayscale" gray)
   2572               (const :tag "Bold font weight" bold)
   2573               (const :tag "Italic font slant" italic))
   2574   :set #'modus-themes--set-option
   2575   :initialize #'custom-initialize-default
   2576   :link '(info-link "(modus-themes) Command prompts"))
   2577 
   2578 (defcustom modus-themes-intense-hl-line nil
   2579   "Use a more prominent background for command `hl-line-mode'."
   2580   :group 'modus-themes
   2581   :package-version '(modus-themes . "1.0.0")
   2582   :version "28.1"
   2583   :type 'boolean
   2584   :set #'modus-themes--set-option
   2585   :initialize #'custom-initialize-default
   2586   :link '(info-link "(modus-themes) Line highlighting"))
   2587 
   2588 (make-obsolete 'modus-themes-intense-hl-line 'modus-themes-hl-line "1.3.0")
   2589 
   2590 (defcustom modus-themes-hl-line nil
   2591   "Control the current line highlight of HL-line mode.
   2592 
   2593 The default (nil) is to apply a subtle neutral background to the
   2594 current line.
   2595 
   2596 Option `intense-background' uses a prominent neutral background.
   2597 
   2598 Option `accented-background' is like the `intense-background' but
   2599 with a more colorful background.
   2600 
   2601 Option `underline-neutral' combines a subtle neutral background
   2602 with a gray underline.
   2603 
   2604 Option `underline-accented' draws an underline while applying a
   2605 subtle colored background.
   2606 
   2607 Option `underline-only-neutral' uses just a neutral underline,
   2608 without any added change to the background.
   2609 
   2610 Option `underline-only-accented' uses just a colored underline,
   2611 without any added change to the background.
   2612 
   2613 Set `x-underline-at-descent-line' to a non-nil value for better
   2614 results with underlines."
   2615   :group 'modus-themes
   2616   :package-version '(modus-themes . "1.4.0")
   2617   :version "28.1"
   2618   :type '(choice
   2619           (const :format "[%v] %t\n" :tag "Subtle neutral background (default)" nil)
   2620           (const :format "[%v] %t\n" :tag "Prominent neutral background" intense-background)
   2621           (const :format "[%v] %t\n" :tag "Subtle colored background" accented-background)
   2622           (const :format "[%v] %t\n" :tag "Underline with a subtle neutral background" underline-neutral)
   2623           (const :format "[%v] %t\n" :tag "Underline with a subtle colored background" underline-accented)
   2624           (const :format "[%v] %t\n" :tag "Just a neutral underline, without a background" underline-only-neutral)
   2625           (const :format "[%v] %t\n" :tag "Just an accented underline, without a background" underline-only-accented))
   2626   :set #'modus-themes--set-option
   2627   :initialize #'custom-initialize-default
   2628   :link '(info-link "(modus-themes) Line highlighting"))
   2629 
   2630 (defcustom modus-themes-subtle-line-numbers nil
   2631   "Use more subtle style for command `display-line-numbers-mode'."
   2632   :group 'modus-themes
   2633   :package-version '(modus-themes . "1.2.0")
   2634   :version "28.1"
   2635   :type 'boolean
   2636   :set #'modus-themes--set-option
   2637   :initialize #'custom-initialize-default
   2638   :link '(info-link "(modus-themes) Line numbers"))
   2639 
   2640 (defcustom modus-themes-paren-match nil
   2641   "Choose the style of matching parentheses or delimiters.
   2642 
   2643 Nil means to use a subtle tinted background color (the default).
   2644 
   2645 Option `intense' applies a saturated background color.
   2646 
   2647 Option `subtle-bold' is the same as the default, but also makes
   2648 use of bold typographic weight (inherits the `bold' face).
   2649 
   2650 Option `intense-bold' is the same as `intense', while it also
   2651 uses a bold weight."
   2652   :group 'modus-themes
   2653   :package-version '(modus-themes . "1.0.0")
   2654   :version "28.1"
   2655   :type '(choice
   2656           (const :format "[%v] %t\n" :tag "Sublte tinted background (default)" nil)
   2657           (const :format "[%v] %t\n" :tag "Like the default, but also use bold typographic weight" subtle-bold)
   2658           (const :format "[%v] %t\n" :tag "Intense saturated background" intense)
   2659           (const :format "[%v] %t\n" :tag "Like `intense' but with bold weight" intense-bold))
   2660   :set #'modus-themes--set-option
   2661   :initialize #'custom-initialize-default
   2662   :link '(info-link "(modus-themes) Matching parentheses"))
   2663 
   2664 (defcustom modus-themes-syntax nil
   2665   "Control the overall style of code syntax highlighting.
   2666 
   2667 Nil (the default) means to use colors on the cyan-blue-magenta
   2668 side of the spectrum.  There is little to no use of greens,
   2669 yellows, and reds.
   2670 
   2671 Option `faint' is like the default in terms of the choice of
   2672 palette but applies desaturated color values.
   2673 
   2674 Option `yellow-comments' applies a yellow tint to comments.  The
   2675 rest of the syntax is the same as the default.
   2676 
   2677 Option `green-strings' replaces the blue/cyan/cold color variants
   2678 in strings with greener alternatives.  The rest of the syntax
   2679 remains the same.
   2680 
   2681 Option `yellow-comments-green-strings' combines yellow comments
   2682 with green strings and the rest of the default syntax
   2683 highlighting style.
   2684 
   2685 Option `alt-syntax' expands the color palette and applies new
   2686 color combinations.  Strings are green.  Doc strings are magenta
   2687 tinted.  Comments are gray.
   2688 
   2689 Option `alt-syntax-yellow-comments' combines `alt-syntax' with
   2690 `yellow-comments'.
   2691 
   2692 Option `faint-yellow-comments' combines the `faint' style with
   2693 `yellow-comments'."
   2694   :group 'modus-themes
   2695   :package-version '(modus-themes . "1.2.0")
   2696   :version "28.1"
   2697   :type '(choice
   2698           (const :format "[%v] %t\n" :tag "Balanced use of blue, cyan, magenta, purple variants (default)" nil)
   2699           (const :format "[%v] %t\n" :tag "Like the default, but with desaturated color values" faint)
   2700           (const :format "[%v] %t\n" :tag "Apply yellow tint to comments, keep the default style for the rest" yellow-comments)
   2701           (const :format "[%v] %t\n" :tag "Use green for strings, keep the default style for the rest" green-strings)
   2702           (const :format "[%v] %t\n" :tag "Use green for strings, yellow for comments, keep the default style for the rest" yellow-comments-green-strings)
   2703           (const :format "[%v] %t\n" :tag "Refashion syntax highlighting with more colors, gray comments" alt-syntax)
   2704           (const :format "[%v] %t\n" :tag "Like `alt-syntax' but with yellow comments" alt-syntax-yellow-comments)
   2705           (const :format "[%v] %t\n" :tag "Like `faint' but with yellow comments" faint-yellow-comments))
   2706   :set #'modus-themes--set-option
   2707   :initialize #'custom-initialize-default
   2708   :link '(info-link "(modus-themes) Syntax styles"))
   2709 
   2710 (defcustom modus-themes-links nil
   2711   "Set the style of links.
   2712 
   2713 Nil means to use an underline that is the same color as the
   2714 foreground.
   2715 
   2716 Option `faint' applies desaturated colors to the link's text and
   2717 underline.
   2718 
   2719 Option `neutral-underline' applies a subtle gray underline, while
   2720 retaining the link's foreground.
   2721 
   2722 Option `faint-neutral-underline' combines a desaturated text
   2723 color with a subtle gray underline.
   2724 
   2725 Option `no-underline' removes link underlines altogether, while
   2726 retaining their original fairly vivid color.
   2727 
   2728 Option `underline-only' applies an underline while making the
   2729 affected text colorless (it uses the same foreground as the
   2730 theme's default).
   2731 
   2732 Option `neutral-underline-only' makes the text colorless while
   2733 using a subtle underline below it."
   2734   :group 'modus-themes
   2735   :package-version '(modus-themes . "1.2.0")
   2736   :version "28.1"
   2737   :type '(choice
   2738           (const :format "[%v] %t\n" :tag "Undeline link using the same color as the text (default)" nil)
   2739           (const :format "[%v] %t\n" :tag "Like the default, but apply less intense colors to links" faint)
   2740           (const :format "[%v] %t\n" :tag "Change the color of link underlines to a neutral gray" neutral-underline)
   2741           (const :format "[%v] %t\n" :tag "Desaturated foreground with neutral gray underline" faint-neutral-underline)
   2742           (const :format "[%v] %t\n" :tag "Remove underline property from links, keeping their foreground as-is" no-underline)
   2743           (const :format "[%v] %t\n" :tag "Apply underline only; use default foreground" underline-only)
   2744           (const :format "[%v] %t\n" :tag "Like `underline-only' but with a subtle underline" neutral-underline-only))
   2745   :set #'modus-themes--set-option
   2746   :initialize #'custom-initialize-default
   2747   :link '(info-link "(modus-themes) Link styles"))
   2748 
   2749 (defcustom modus-themes-region nil
   2750   "Change the overall appearance of the active region.
   2751 
   2752 Nil (the default) means to only use a prominent gray background
   2753 with a neutral foreground.  The foreground overrides all syntax
   2754 highlighting.  The region extends to the edge of the window.
   2755 
   2756 Option `no-extend' preserves the default aesthetic but prevents
   2757 the region from extending to the edge of the window.
   2758 
   2759 Option `bg-only' applies a faint tinted background that is
   2760 distinct from all others used in the theme, while it does not
   2761 override any existing colors.  It extends to the edge of the
   2762 window.
   2763 
   2764 Option `bg-only-no-extend' is a combination of the `bg-only' and
   2765 `no-extend' options.
   2766 
   2767 Option `accent' uses a more colorful background with a neutral
   2768 foreground.  It overrides all syntax highlighting and extends to
   2769 the edge of the window.
   2770 
   2771 Option `accent-no-extend' is like the above, but stretches only
   2772 to the end of each line within the region."
   2773   :group 'modus-themes
   2774   :package-version '(modus-themes . "1.3.0")
   2775   :version "28.1"
   2776   :type '(choice
   2777           (const :format "[%v] %t\n" :tag "Intense background; overrides colors; extends to edge of window (default)" nil)
   2778           (const :format "[%v] %t\n" :tag "As with the default, but does not extend" no-extend)
   2779           (const :format "[%v] %t\n" :tag "Subtle background; preserves colors; extends to edge of window" bg-only)
   2780           (const :format "[%v] %t\n" :tag "As with the `subtle' option, but does not extend" bg-only-no-extend)
   2781           (const :format "[%v] %t\n" :tag "Like the default, but with an accented background" accent)
   2782           (const :format "[%v] %t\n" :tag "As with the `accent' option, but does not extend" accent-no-extend))
   2783   :set #'modus-themes--set-option
   2784   :initialize #'custom-initialize-default
   2785   :link '(info-link "(modus-themes) Active region"))
   2786 
   2787 (defcustom modus-themes-success-deuteranopia nil
   2788   "Color-code 'success' or 'done' as blue instead of green.
   2789 
   2790 This is to account for red-green color deficiency.
   2791 
   2792 The present customization option should apply to all contexts where
   2793 there can be a color-coded distinction between success and failure,
   2794 to-do and done, and so on.
   2795 
   2796 Diffs, which have a red/green dichotomy by default, can also be
   2797 configured to conform with deuteranopia: `modus-themes-diffs'."
   2798   :group 'modus-themes
   2799   :package-version '(modus-themes . "1.4.0")
   2800   :version "28.1"
   2801   :type 'boolean
   2802   :set #'modus-themes--set-option
   2803   :initialize #'custom-initialize-default
   2804   :link '(info-link "(modus-themes) Success' color-code"))
   2805 
   2806 (defcustom modus-themes-mail-citations nil
   2807   "Control the color of citations in messages or email clients.
   2808 
   2809 Nil (the default) means to use a variety of contrasting hues to
   2810 denote depth in nested citations.  Colors are fairly easy to tell
   2811 apart.
   2812 
   2813 Option `faint' maintains a color-based distinction between
   2814 citation levels but the colors it applies have very subtle
   2815 differences between them.
   2816 
   2817 Option `monochrome' turns all citations that would otherwise be
   2818 colored into a uniform shade of shade of gray."
   2819   :group 'modus-themes
   2820   :package-version '(modus-themes . "1.4.0")
   2821   :version "28.1"
   2822   :type '(choice
   2823           (const :format "[%v] %t\n" :tag "Colorful mail citations with contrasting hues (default)" nil)
   2824           (const :format "[%v] %t\n" :tag "Like the default, but with less saturated colors" faint)
   2825           (const :format "[%v] %t\n" :tag "Deprecated alias of `faint'" desaturated)
   2826           (const :format "[%v] %t\n" :tag "Uniformly gray mail citations" monochrome))
   2827   :set #'modus-themes--set-option
   2828   :initialize #'custom-initialize-default
   2829   :link '(info-link "(modus-themes) Mail citations"))
   2830 
   2831 
   2832 
   2833 ;;; Internal functions
   2834 
   2835 (defun modus-themes--palette (theme)
   2836   "Return color palette for Modus theme THEME.
   2837 THEME is a symbol, either `modus-operandi' or `modus-vivendi'."
   2838   (pcase theme
   2839     ('modus-operandi
   2840      (append modus-themes-operandi-color-overrides
   2841              modus-themes-operandi-colors))
   2842     ('modus-vivendi
   2843      (append modus-themes-vivendi-color-overrides
   2844              modus-themes-vivendi-colors))
   2845     (_theme
   2846      (error "'%s' is not a Modus theme" theme))))
   2847 
   2848 (defvar modus-themes-faces)
   2849 (defvar modus-themes-custom-variables)
   2850 
   2851 (defmacro modus-themes-theme (name)
   2852   "Bind NAME's color palette around face specs and variables.
   2853 
   2854 NAME should be the proper name of a Modus theme, either
   2855 `modus-operandi' or `modus-vivendi'.
   2856 
   2857 Face specifications are passed to `custom-theme-set-faces'.
   2858 While variables are handled by `custom-theme-set-variables'.
   2859 Those are stored in `modus-themes-faces' and
   2860 `modus-themes-custom-variables' respectively."
   2861   (declare (indent 0))
   2862   (let ((palette-sym (gensym))
   2863         (colors (mapcar #'car modus-themes-operandi-colors)))
   2864     `(let* ((class '((class color) (min-colors 89)))
   2865             (,palette-sym (modus-themes--palette ',name))
   2866             ,@(mapcar (lambda (color)
   2867                         (list color `(alist-get ',color ,palette-sym)))
   2868                       colors))
   2869        (custom-theme-set-faces ',name ,@modus-themes-faces)
   2870        (custom-theme-set-variables ',name ,@modus-themes-custom-variables))))
   2871 
   2872 (defun modus-themes--current-theme ()
   2873   "Return current theme."
   2874   (car custom-enabled-themes))
   2875 
   2876 ;; Helper functions that are meant to ease the implementation of the
   2877 ;; above customization variables.
   2878 (defun modus-themes--bold-weight ()
   2879   "Conditional use of a heavier text weight."
   2880   (when modus-themes-bold-constructs
   2881     (list :inherit 'bold)))
   2882 
   2883 (defun modus-themes--slant ()
   2884   "Conditional use of italics for slant attribute."
   2885   (if modus-themes-italic-constructs
   2886       (list 'italic)
   2887     (list 'normal)))
   2888 
   2889 (defun modus-themes--fixed-pitch ()
   2890   "Conditional application of `fixed-pitch' inheritance."
   2891   (unless modus-themes-no-mixed-fonts
   2892     (list :inherit 'fixed-pitch)))
   2893 
   2894 (defun modus-themes--variable-pitch ()
   2895   "Conditional use of `variable-pitch' in headings."
   2896   (when modus-themes-variable-pitch-headings
   2897     (list :inherit 'variable-pitch)))
   2898 
   2899 (defun modus-themes--variable-pitch-ui ()
   2900   "Conditional use of `variable-pitch' in UI elements."
   2901   (when modus-themes-variable-pitch-ui
   2902     (list :inherit 'variable-pitch)))
   2903 
   2904 (defun modus-themes--fringe (mainbg subtlebg intensebg)
   2905   "Conditional use of background colors for fringes.
   2906 MAINBG is the default.  SUBTLEBG should be a subtle grayscale
   2907 value.  INTENSEBG must be a more pronounced grayscale color."
   2908   (pcase modus-themes-fringes
   2909     ('intense (list :background intensebg))
   2910     ('subtle (list :background subtlebg))
   2911     (_ (list :background mainbg))))
   2912 
   2913 (defun modus-themes--line-numbers (mainfg mainbg altfg &optional altbg)
   2914   "Conditional use of colors for line numbers.
   2915 MAINBG and MAINFG are the default colors.  ALTFG is a color that
   2916 combines with the theme's primary background (white/black)."
   2917   (if modus-themes-subtle-line-numbers
   2918       (list :background (or altbg 'unspecified) :foreground altfg)
   2919     (list :background mainbg :foreground mainfg)))
   2920 
   2921 (defun modus-themes--lang-check (underline subtlefg intensefg bg)
   2922   "Conditional use of foreground colors for language checkers.
   2923 UNDERLINE is a color-code value for the affected text's underline
   2924 property.  SUBTLEFG and INTENSEFG follow the same color-coding
   2925 pattern and represent a value that is faint or vibrant
   2926 respectively.  BG is a color-coded background."
   2927   (pcase modus-themes-lang-checkers
   2928     ('colored-background
   2929      (list :underline underline :background bg :foreground intensefg))
   2930     ('intense-foreground
   2931      (list :underline (list :color underline :style 'wave) :foreground intensefg))
   2932     ('intense-foreground-straight-underline
   2933      (list :underline underline :foreground intensefg))
   2934     ('subtle-foreground
   2935      (list :underline (list :color underline :style 'wave) :foreground subtlefg))
   2936     ('subtle-foreground-straight-underline
   2937      (list :underline underline :foreground subtlefg))
   2938     ('straight-underline
   2939      (list :underline underline))
   2940     (_ (list :underline (list :color underline :style 'wave)))))
   2941 
   2942 (defun modus-themes--prompt (mainfg intensefg grayfg subtlebg intensebg intensebg-fg subtlebggray intensebggray)
   2943   "Conditional use of colors for prompts.
   2944 MAINFG is the prompt's standard foreground.  INTENSEFG is a more
   2945 prominent alternative to the main foreground, while GRAYFG is a
   2946 less luminant shade of gray.
   2947 
   2948 SUBTLEBG is a subtle accented background that works with either
   2949 MAINFG or INTENSEFG.
   2950 
   2951 INTENSEBG is a more pronounced accented background color that
   2952 should be combinable with INTENSEBG-FG.
   2953 
   2954 SUBTLEBGGRAY and INTENSEBGGRAY are background values.  The former
   2955 can be combined with GRAYFG, while the latter only works with the
   2956 theme's fallback text color."
   2957   (let ((modus-themes-prompts
   2958          (if (listp modus-themes-prompts)
   2959              modus-themes-prompts
   2960            ;; translation layer for legacy values
   2961            (pcase modus-themes-prompts
   2962              ;; `subtle' is the same as `subtle-accented', while `intense' is
   2963              ;; equal to `intense-accented' for backward compatibility
   2964              ('subtle '(background))
   2965              ('subtle-accented '(background))
   2966              ('subtle-gray '(background gray))
   2967              ('intense '(background intense))
   2968              ('intense-accented '(background intense))
   2969              ('intense-gray '(background intense gray))))))
   2970     (list :foreground
   2971           (cond
   2972            ((and (memq 'gray modus-themes-prompts)
   2973                  (memq 'intense modus-themes-prompts))
   2974             'unspecified)
   2975            ((memq 'gray modus-themes-prompts)
   2976             grayfg)
   2977            ((and (memq 'background modus-themes-prompts)
   2978                  (memq 'intense modus-themes-prompts))
   2979             intensebg-fg)
   2980            ((memq 'intense modus-themes-prompts)
   2981             intensefg)
   2982            (mainfg))
   2983           :background
   2984           (cond
   2985            ((and (memq 'gray modus-themes-prompts)
   2986                  (memq 'background modus-themes-prompts)
   2987                  (memq 'intense modus-themes-prompts))
   2988             intensebggray)
   2989            ((and (memq 'gray modus-themes-prompts)
   2990                  (memq 'background modus-themes-prompts))
   2991             subtlebggray)
   2992            ((and (memq 'background modus-themes-prompts)
   2993                  (memq 'intense modus-themes-prompts))
   2994             intensebg)
   2995            ((memq 'background modus-themes-prompts)
   2996             subtlebg)
   2997            ('unspecified))
   2998           :inherit
   2999           (cond
   3000            ((and (memq 'bold modus-themes-prompts)
   3001                  (memq 'italic modus-themes-prompts))
   3002             'bold-italic)
   3003            ((memq 'italic modus-themes-prompts)
   3004             'italic)
   3005            ((memq 'bold modus-themes-prompts)
   3006             'bold)
   3007            ('unspecified)))))
   3008 
   3009 (defun modus-themes--paren (normalbg intensebg)
   3010   "Conditional use of intense colors for matching parentheses.
   3011 NORMALBG should be the special palette color 'bg-paren-match' or
   3012 something similar.  INTENSEBG must be easier to discern next to
   3013 other backgrounds, such as the special palette color
   3014 'bg-paren-match-intense'."
   3015   (pcase modus-themes-paren-match
   3016     ('subtle-bold (list :inherit 'bold :background normalbg))
   3017     ('intense-bold (list :inherit 'bold :background intensebg))
   3018     ('intense (list :background intensebg))
   3019     (_ (list :background normalbg))))
   3020 
   3021 (defun modus-themes--syntax-foreground (fg faint)
   3022   "Apply foreground value to code syntax.
   3023 FG is the default.  FAINT is typically the same color in its
   3024 desaturated version."
   3025   (pcase modus-themes-syntax
   3026     ('faint (list :foreground faint))
   3027     ('faint-yellow-comments (list :foreground faint))
   3028     (_ (list :foreground fg))))
   3029 
   3030 (defun modus-themes--syntax-extra (fg faint alt)
   3031   "Apply foreground value to code syntax.
   3032 FG is the default.  FAINT is typically the same color in its
   3033 desaturated version.  ALT is another hue."
   3034   (pcase modus-themes-syntax
   3035     ('faint (list :foreground faint))
   3036     ('faint-yellow-comments (list :foreground faint))
   3037     ('alt-syntax (list :foreground alt))
   3038     ('alt-syntax-yellow-comments (list :foreground alt))
   3039     (_ (list :foreground fg))))
   3040 
   3041 (defun modus-themes--syntax-string (fg faint green alt)
   3042   "Apply foreground value to strings in code syntax.
   3043 FG is the default.  FAINT is typically the same color in its
   3044 desaturated version.  GREEN is a color variant in that side of
   3045 the spectrum.  ALT is another hue."
   3046   (pcase modus-themes-syntax
   3047     ('faint (list :foreground faint))
   3048     ('faint-yellow-comments (list :foreground faint))
   3049     ('green-strings (list :foreground green))
   3050     ('yellow-comments-green-strings (list :foreground alt))
   3051     ('alt-syntax (list :foreground alt))
   3052     ('alt-syntax-yellow-comments (list :foreground alt))
   3053     (_ (list :foreground fg))))
   3054 
   3055 (defun modus-themes--syntax-docstring (fg faint green alt)
   3056   "Apply foreground value to strings in code syntax.
   3057 FG is the default.  FAINT is typically the same color in its
   3058 desaturated version.  GREEN is a color variant in that side of
   3059 the spectrum.  ALT is another hue."
   3060   (pcase modus-themes-syntax
   3061     ('faint (list :foreground faint))
   3062     ('faint-yellow-comments (list :foreground faint))
   3063     ('green-strings (list :foreground green))
   3064     ('yellow-comments-green-strings (list :foreground green))
   3065     ('alt-syntax (list :foreground alt))
   3066     ('alt-syntax-yellow-comments (list :foreground alt))
   3067     (_ (list :foreground fg))))
   3068 
   3069 (defun modus-themes--syntax-comment (fg yellow)
   3070   "Apply foreground value to strings in code syntax.
   3071 FG is the default.  YELLOW is a color variant of that name."
   3072   (pcase modus-themes-syntax
   3073     ('yellow-comments (list :foreground yellow))
   3074     ('yellow-comments-green-strings (list :foreground yellow))
   3075     ('alt-syntax-yellow-comments (list :foreground yellow))
   3076     ('faint-yellow-comments (list :foreground yellow))
   3077     (_ (list :foreground fg))))
   3078 
   3079 (defun modus-themes--key-cdr (key alist)
   3080   "Get cdr of KEY in ALIST."
   3081   (cdr (assoc key alist)))
   3082 
   3083 (defun modus-themes--heading (level fg fg-alt bg border)
   3084   "Conditional styles for `modus-themes-headings'.
   3085 
   3086 LEVEL is the heading's position in their order.  FG is the
   3087 default text color.  FG-ALT is an accented, more saturated value
   3088 than the default.  BG is a nuanced, typically accented,
   3089 background that can work well with either of the foreground
   3090 values.  BORDER is a color value that combines well with the
   3091 background and alternative foreground."
   3092   (let* ((key (modus-themes--key-cdr level modus-themes-headings))
   3093          (style (or key (modus-themes--key-cdr t modus-themes-headings)))
   3094          (var (when modus-themes-variable-pitch-headings
   3095                 'variable-pitch))
   3096          (varbold (if var
   3097                       (append (list 'bold) (list var))
   3098                     'bold)))
   3099     (pcase style
   3100       ('no-bold
   3101        (list :inherit var :foreground fg))
   3102       ('no-color
   3103        (list :inherit varbold))
   3104       ('no-color-no-bold
   3105        (list :inherit var))
   3106       ('line
   3107        (list :inherit varbold :foreground fg :overline border))
   3108       ('line-no-bold
   3109        (list :inherit var :foreground fg :overline border))
   3110       ('rainbow
   3111        (list :inherit varbold :foreground fg-alt))
   3112       ('rainbow-no-bold
   3113        (list :inherit var :foreground fg-alt))
   3114       ('rainbow-line
   3115        (list :inherit varbold :foreground fg-alt :overline border))
   3116       ('rainbow-line-no-bold
   3117        (list :inherit var :foreground fg-alt :overline border))
   3118       ('highlight
   3119        (list :inherit varbold :background bg :foreground fg))
   3120       ('highlight-no-bold
   3121        (list :inherit var :background bg :foreground fg))
   3122       ('rainbow-highlight
   3123        (list :inherit varbold :background bg :foreground fg-alt))
   3124       ('rainbow-highlight-no-bold
   3125        (list :inherit var :background bg :foreground fg-alt))
   3126       ('section
   3127        (list :inherit varbold :background bg :foreground fg :overline border :extend t))
   3128       ('section-no-bold
   3129        (list :inherit var :background bg :foreground fg :overline border :extend t))
   3130       ('rainbow-section
   3131        (list :inherit varbold :background bg :foreground fg-alt :overline border :extend t))
   3132       ('rainbow-section-no-bold
   3133        (list :inherit var :background bg :foreground fg-alt :overline border :extend t))
   3134       (_
   3135        (list :inherit varbold :foreground fg)))))
   3136 
   3137 (defun modus-themes--agenda-structure (fg)
   3138   "Control the style of the Org agenda structure.
   3139 FG is the foreground color to use."
   3140   (let* ((properties (modus-themes--key-cdr 'header-block modus-themes-org-agenda))
   3141          (inherit (cond ((memq 'variable-pitch properties)
   3142                          (list 'bold 'variable-pitch))
   3143                         ('bold)))
   3144          (height (cond ((memq 'no-scale properties)
   3145                         1.0)
   3146                        ((memq 'scale-title properties)
   3147                         modus-themes-scale-title)
   3148                        (1.15))))
   3149     (list :inherit inherit
   3150           :height height
   3151           :foreground fg)))
   3152 
   3153 (defun modus-themes--agenda-date (defaultfg grayscalefg &optional bold workaholicfg grayscaleworkaholicfg)
   3154   "Control the style of date headings in Org agenda buffers.
   3155 DEFAULTFG is the original accent color for the foreground.
   3156 GRAYSCALEFG is a neutral color.  Optional BOLD applies a bold
   3157 weight.  Optional WORKAHOLICFG and GRAYSCALEWORKAHOLICFG are
   3158 alternative foreground colors."
   3159   (let* ((properties (modus-themes--key-cdr 'header-date modus-themes-org-agenda))
   3160          (weight (cond ((memq 'bold-all properties)
   3161                         'bold)
   3162                        ((and bold (memq 'bold-today properties))
   3163                         'bold)
   3164                        (t
   3165                         nil)))
   3166          (fg (cond ((and (memq 'grayscale properties)
   3167                          (memq 'workaholic properties))
   3168                     (or grayscaleworkaholicfg grayscalefg))
   3169                    ((memq 'grayscale properties)
   3170                     grayscalefg)
   3171                    ((memq 'workaholic properties)
   3172                     (or workaholicfg defaultfg))
   3173                    (t
   3174                     defaultfg))))
   3175     (list :inherit weight
   3176           :foreground fg)))
   3177 
   3178 (defun modus-themes--agenda-scheduled (defaultfg uniformfg rainbowfg)
   3179   "Control the style of the Org agenda scheduled tasks.
   3180 DEFAULTFG is an accented foreground color that is meant to
   3181 differentiate between past or present and future tasks.
   3182 UNIFORMFG is a more subtle color that eliminates the color coding
   3183 for scheduled tasks.  RAINBOWFG is a prominent accent value that
   3184 clearly distinguishes past, present, future tasks."
   3185   (pcase (modus-themes--key-cdr 'scheduled modus-themes-org-agenda)
   3186     ('uniform (list :foreground uniformfg))
   3187     ('rainbow (list :foreground rainbowfg))
   3188     (_ (list :foreground defaultfg))))
   3189 
   3190 (defun modus-themes--agenda-habit (default traffic simple &optional traffic-deuteran)
   3191   "Specify background values for `modus-themes-org-agenda' habits.
   3192 DEFAULT is the original foregrounc color.  TRAFFIC is to be used
   3193 when the 'traffic-light' style is applied, while SIMPLE
   3194 corresponds to the 'simplified style'.  Optional TRAFFIC-DEUTERAN
   3195 is an alternative to TRAFFIC, meant for deuteranopia."
   3196   (pcase (modus-themes--key-cdr 'habit modus-themes-org-agenda)
   3197     ('traffic-light (list :background traffic))
   3198     ('traffic-light-deuteranopia (list :background (or traffic-deuteran traffic)))
   3199     ('simplified (list :background simple))
   3200     (_ (list :background default))))
   3201 
   3202 (defun modus-themes--org-block (bgblk fgdefault &optional fgblk)
   3203   "Conditionally set the background of Org blocks.
   3204 BGBLK applies to a distinct neutral background.  Else blocks have
   3205 no background of their own (the default), so they look the same
   3206 as the rest of the buffer.  FGDEFAULT is used when no distinct
   3207 background is present.  While optional FGBLK specifies a
   3208 foreground value that can be combined with BGBLK.
   3209 
   3210 `modus-themes-org-blocks' also accepts `tinted-background' (alias
   3211 `rainbow') as a value which applies to `org-src-block-faces' (see
   3212 the theme's source code)."
   3213   (if (or (eq modus-themes-org-blocks 'gray-background)
   3214           (eq modus-themes-org-blocks 'grayscale)
   3215           (eq modus-themes-org-blocks 'greyscale))
   3216       (list :background bgblk :foreground (or fgblk fgdefault) :extend t)
   3217     (list :background 'unspecified :foreground fgdefault)))
   3218 
   3219 (defun modus-themes--org-block-delim (bgaccent fgaccent bg fg)
   3220   "Conditionally set the styles of Org block delimiters.
   3221 BG, FG, BGACCENT, FGACCENT apply a background and foreground
   3222 color respectively.
   3223 
   3224 The former pair is a grayscale combination that should be more
   3225 distinct than the background of the block.  It is applied to the
   3226 default styles or when `modus-themes-org-blocks' is set
   3227 to `grayscale' (or `greyscale').
   3228 
   3229 The latter pair should be more subtle than the background of the
   3230 block, as it is used when `modus-themes-org-blocks' is
   3231 set to `rainbow'."
   3232   (pcase modus-themes-org-blocks
   3233     ('gray-background (list :background bg :foreground fg :extend t))
   3234     ('grayscale (list :background bg :foreground fg :extend t))
   3235     ('greyscale (list :background bg :foreground fg :extend t))
   3236     ('rainbow (list :background bgaccent :foreground fgaccent))
   3237     (_ (list :background bg :foreground fg))))
   3238 
   3239 (defun modus-themes--mode-line-attrs
   3240     (fg bg fg-alt bg-alt fg-accent bg-accent border border-3d &optional alt-style border-width fg-distant)
   3241   "Color combinations for `modus-themes-mode-line'.
   3242 
   3243 FG and BG are the default colors.  FG-ALT and BG-ALT are meant to
   3244 accommodate the options for a 3D mode line or a `moody' compliant
   3245 one.  FG-ACCENT and BG-ACCENT are used for all variants.  BORDER
   3246 applies to all permutations of the mode line, except the
   3247 three-dimensional effect, where BORDER-3D is used instead.
   3248 
   3249 Optional ALT-STYLE applies an appropriate style to the mode
   3250 line's box property.
   3251 
   3252 Optional BORDER-WIDTH specifies an integer for the width of the
   3253 rectangle that produces the box effect.
   3254 
   3255 Optional FG-DISTANT should be close to the main background
   3256 values.  It is intended to be used as a distant-foreground
   3257 property."
   3258   (let ((modus-themes-mode-line
   3259          (if (listp modus-themes-mode-line)
   3260              modus-themes-mode-line
   3261            ;; translation layer for legacy values
   3262            (alist-get modus-themes-mode-line
   3263                       '((3d . (3d))
   3264                         (moody . (moody))
   3265                         (borderless . (borderless))
   3266                         (borderless-3d . (borderless 3d))
   3267                         (borderless-moody . (borderless moody))
   3268                         (accented . (accented))
   3269                         (accented-3d . (accented 3d))
   3270                         (accented-moody . (accented moody))
   3271                         (borderless-accented . (borderless accented))
   3272                         (borderless-accented-3d . (borderless accented 3d))
   3273                         (borderless-accented-moody . (borderless accented moody)))))))
   3274     (let ((base (cond ((memq 'accented modus-themes-mode-line)
   3275                        (cons fg-accent bg-accent))
   3276                       ((and (or (memq 'moody modus-themes-mode-line)
   3277                                 (memq '3d modus-themes-mode-line))
   3278                             (not (memq 'borderless modus-themes-mode-line)))
   3279                        (cons fg-alt bg-alt))
   3280                       ((cons fg bg))))
   3281           (box (cond ((memq 'moody modus-themes-mode-line)
   3282                       nil)
   3283                      ((memq '3d modus-themes-mode-line)
   3284                       (list :line-width (or border-width 1)
   3285                             :color
   3286                             (cond ((and (memq 'accented modus-themes-mode-line)
   3287                                         (memq 'borderless modus-themes-mode-line))
   3288                                    bg-accent)
   3289                                   ((memq 'borderless modus-themes-mode-line) bg)
   3290                                   (border-3d))
   3291                             :style (and alt-style 'released-button)))
   3292                      ((or (memq 'borderless modus-themes-mode-line)
   3293                           (memq 'moody modus-themes-mode-line))
   3294                       bg)
   3295                      (border)))
   3296           (line (cond ((not (memq 'moody modus-themes-mode-line))
   3297                        nil)
   3298                       ((and (memq 'borderless modus-themes-mode-line)
   3299                             (memq 'accented modus-themes-mode-line))
   3300                        bg-accent)
   3301                       ((memq 'borderless modus-themes-mode-line)
   3302                        bg)
   3303                       (border))))
   3304       (list :foreground (car base)
   3305             :background (cdr base)
   3306             :box box
   3307             :overline line
   3308             :underline line
   3309             :distant-foreground
   3310             (and (memq 'moody modus-themes-mode-line)
   3311                  fg-distant)))))
   3312 
   3313 (defun modus-themes--diff
   3314     (fg-only-bg fg-only-fg mainbg mainfg altbg altfg &optional deuteranbg deuteranfg  bg-only-fg)
   3315   "Color combinations for `modus-themes-diffs'.
   3316 
   3317 FG-ONLY-BG should be similar or the same as the main background.
   3318 FG-ONLY-FG should be a saturated accent value that can be
   3319 combined with the former.
   3320 
   3321 MAINBG must be one of the dedicated backgrounds for diffs while
   3322 MAINFG must be the same for the foreground.
   3323 
   3324 ALTBG needs to be a slightly accented background that is meant to
   3325 be combined with ALTFG.  Both must be less intense than MAINBG
   3326 and MAINFG respectively.
   3327 
   3328 DEUTERANBG and DEUTERANFG must be combinations of colors that account
   3329 for red-green color defficiency (deuteranopia).
   3330 
   3331 Optional BG-ONLY-FG applies ALTFG else leaves the foreground
   3332 unspecified."
   3333   (pcase modus-themes-diffs
   3334     ('fg-only (list :background fg-only-bg :foreground fg-only-fg))
   3335     ('fg-only-deuteranopia (list :background fg-only-bg :foreground fg-only-fg))
   3336     ('desaturated (list :background altbg :foreground altfg))
   3337     ('deuteranopia (list :background (or deuteranbg mainbg) :foreground (or deuteranfg mainfg)))
   3338     ('bg-only (list :background altbg :foreground (if bg-only-fg altfg 'unspecified)))
   3339     (_ (list :background mainbg :foreground mainfg))))
   3340 
   3341 (defun modus-themes--diff-deuteran (deuteran main)
   3342   "Determine whether the DEUTERAN or MAIN color should be used.
   3343 This is based on whether `modus-themes-diffs' has the value
   3344 `deuteranopia'."
   3345   (if (or (eq modus-themes-diffs 'deuteranopia)
   3346           (eq modus-themes-diffs 'fg-only-deuteranopia)
   3347           (eq modus-themes-diffs 'fg-only))
   3348       (list deuteran)
   3349     (list main)))
   3350 
   3351 (defun modus-themes--success-deuteran (deuteran main)
   3352   "Determine whether to color-code success as DEUTERAN or MAIN."
   3353   (if modus-themes-success-deuteranopia
   3354       (list deuteran)
   3355     (list main)))
   3356 
   3357 (defun modus-themes--standard-completions (mainfg subtlebg intensebg intensefg)
   3358   "Combinations for `modus-themes-completions'.
   3359 
   3360 MAINFG is an accented foreground value.  SUBTLEBG is an accented
   3361 background value that can be combined with MAINFG.  INTENSEBG and
   3362 INTENSEFG are accented colors that are designed to be used in
   3363 tandem.
   3364 
   3365 These are intended for Icomplete, Ido, and related."
   3366   (pcase modus-themes-completions
   3367     ('opinionated (list :background intensebg :foreground intensefg))
   3368     ('moderate (list :background subtlebg :foreground mainfg))
   3369     (_ (list :foreground mainfg))))
   3370 
   3371 (defun modus-themes--extra-completions (subtleface intenseface altface &optional altfg bold)
   3372   "Combinations for `modus-themes-completions'.
   3373 
   3374 SUBTLEFACE and INTENSEFACE are custom theme faces that combine a
   3375 background and foreground value.  The difference between the two
   3376 is a matter of degree.
   3377 
   3378 ALTFACE is a combination of colors that represents a departure
   3379 from the UI's default aesthetics.  Optional ALTFG is meant to be
   3380 used in tandem with it.
   3381 
   3382 Optional BOLD will apply a heavier weight to the text.
   3383 
   3384 These are intended for Helm, Ivy, etc."
   3385   (pcase modus-themes-completions
   3386     ('opinionated (list :inherit (list altface bold)
   3387                         :foreground (or altfg 'unspecified)))
   3388     ('moderate (list :inherit (list subtleface bold)))
   3389     (_ (list :inherit (list intenseface bold)))))
   3390 
   3391 (defun modus-themes--link (fg fgfaint underline)
   3392   "Conditional application of link styles.
   3393 FG is the link's default color for its text and underline
   3394 property.  FGFAINT is a desaturated color for the text and
   3395 underline.  UNDERLINE is a gray color only for the undeline."
   3396   (pcase modus-themes-links
   3397     ('faint (list :foreground fgfaint :underline t))
   3398     ('neutral-underline (list :foreground fg :underline underline))
   3399     ('faint-neutral-underline (list :foreground fgfaint :underline underline))
   3400     ('no-underline (list :foreground fg :underline nil))
   3401     ('underline-only (list :underline t))
   3402     ('neutral-underline-only (list :underline underline))
   3403     (_ (list :foreground fg :underline t))))
   3404 
   3405 (defun modus-themes--link-color (fg fgfaint &optional neutralfg)
   3406   "Extends `modus-themes--link'.
   3407 FG is the main accented foreground.  FGFAINT is also accented,
   3408 yet desaturated.  Optional NEUTRALFG is a gray value."
   3409   (pcase modus-themes-links
   3410     ('faint (list :foreground fgfaint))
   3411     ('faint-neutral-underline (list :foreground fgfaint))
   3412     ('underline-only (list :underline t :foreground (or neutralfg 'unspecified)))
   3413     ('neutral-underline-only (list :underline 'unspecified :foreground (or neutralfg 'unspecified)))
   3414     (_ (list :foreground fg))))
   3415 
   3416 (defun modus-themes--scale (amount)
   3417   "Scale heading by AMOUNT.
   3418 AMOUNT is a customization option."
   3419   (when modus-themes-scale-headings
   3420     (list :height amount)))
   3421 
   3422 (defun modus-themes--region (bg fg bgsubtle bgaccent)
   3423   "Apply `modus-themes-region' styles.
   3424 
   3425 BG and FG are the main values that are used by default.  BGSUBTLE
   3426 is a subtle background value that can be combined with all colors
   3427 used to fontify text and code syntax.  BGACCENT is a colored
   3428 background that combines well with FG."
   3429   (pcase modus-themes-region
   3430     ('bg-only (list :background bgsubtle))
   3431     ('bg-only-no-extend (list :background bgsubtle :extend nil))
   3432     ('no-extend (list :background bg :foreground fg :extend nil))
   3433     ('accent (list :background bgaccent :foreground fg))
   3434     ('accent-no-extend (list :background bgaccent :foreground fg :extend nil))
   3435     (_ (list :background bg :foreground fg))))
   3436 
   3437 (defun modus-themes--hl-line (bgdefault bgintense bgaccent bgaccentul lineneutral lineaccent)
   3438   "Apply `modus-themes-hl-line' styles.
   3439 
   3440 BGDEFAULT is a subtle neutral background.  BGINTENSE is like the
   3441 default, but more prominent.  BGACCENT is a prominent accented
   3442 background, while BGACCENTUL is more subtle and is meant to be
   3443 used in tandem with an underline.  LINENEUTRAL and LINEACCENT are
   3444 a color values that can remain distinct against the buffer's
   3445 possible backgrounds: the former is neutral, the latter is
   3446 accented."
   3447   (pcase modus-themes-hl-line
   3448     ('intense-background (list :background bgintense))
   3449     ('accented-background (list :background bgaccent))
   3450     ('underline-neutral (list :background bgdefault :underline lineneutral))
   3451     ('underline-accented (list :background bgaccentul :underline lineaccent))
   3452     ('underline-only-neutral (list :background 'unspecified :underline lineneutral))
   3453     ('underline-only-accented (list :background 'unspecified :underline lineaccent))
   3454     (_ (list :background bgdefault))))
   3455 
   3456 (defun modus-themes--mail-cite (mainfg subtlefg)
   3457   "Combinations for `modus-themes-mail-citations'.
   3458 
   3459 MAINFG is an accented foreground value.  SUBTLEFG is its
   3460 desaturated counterpart."
   3461   (pcase modus-themes-mail-citations
   3462     ('monochrome (list :inherit 'shadow))
   3463     ('faint (list :foreground subtlefg))
   3464     ('desaturated (list :foreground subtlefg))
   3465     (_ (list :foreground mainfg))))
   3466 
   3467 
   3468 
   3469 ;;;; Utilities for DIY users
   3470 
   3471 ;; This is the WCAG formula: https://www.w3.org/TR/WCAG20-TECHS/G18.html
   3472 (defun modus-themes-wcag-formula (hex)
   3473   "Get WCAG value of color value HEX.
   3474 The value is defined in hexadecimal RGB notation, such as those in
   3475 `modus-themes-operandi-colors' and `modus-themes-vivendi-colors'."
   3476   (cl-loop for k in '(0.2126 0.7152 0.0722)
   3477            for x in (color-name-to-rgb hex)
   3478            sum (* k (if (<= x 0.03928)
   3479                         (/ x 12.92)
   3480                       (expt (/ (+ x 0.055) 1.055) 2.4)))))
   3481 
   3482 ;;;###autoload
   3483 (defun modus-themes-contrast (c1 c2)
   3484   "Measure WCAG contrast ratio between C1 and C2.
   3485 C1 and C2 are color values written in hexadecimal RGB."
   3486   (let ((ct (/ (+ (modus-themes-wcag-formula c1) 0.05)
   3487                (+ (modus-themes-wcag-formula c2) 0.05))))
   3488     (max ct (/ ct))))
   3489 
   3490 (defun modus-themes-current-palette ()
   3491   "Return current color palette."
   3492   (modus-themes--palette (modus-themes--current-theme)))
   3493 
   3494 ;;;###autoload
   3495 (defun modus-themes-color (color)
   3496   "Return color value for COLOR from current palette.
   3497 COLOR is a key in `modus-themes-operandi-colors' or
   3498 `modus-themes-vivendi-colors'."
   3499   (alist-get color (modus-themes-current-palette)))
   3500 
   3501 ;;;###autoload
   3502 (defun modus-themes-color-alts (light-color dark-color)
   3503   "Return color value from current palette.
   3504 When Modus Operandi is enabled, return color value for color
   3505 LIGHT-COLOR.  When Modus Vivendi is enabled, return color value
   3506 for DARK-COLOR.  LIGHT-COLOR and DARK-COLOR are keys in
   3507 `modus-themes-operandi-colors' or `modus-themes-vivendi-colors'."
   3508   (let* ((theme (modus-themes--current-theme))
   3509          (color (pcase theme
   3510                   ('modus-operandi light-color)
   3511                   ('modus-vivendi dark-color)
   3512                   (_theme
   3513                    (error "'%s' is not a Modus theme" theme)))))
   3514     (alist-get color (modus-themes--palette theme))))
   3515 
   3516 (defmacro modus-themes-with-colors (&rest body)
   3517   "Evaluate BODY with colors from current palette bound.
   3518 For colors bound, see `modus-themes-operandi-colors' or
   3519 `modus-themes-vivendi-colors'."
   3520   (declare (indent 0))
   3521   (let ((palette-sym (gensym))
   3522         (colors (mapcar #'car modus-themes-operandi-colors)))
   3523     `(let* ((class '((class color) (min-colors 89)))
   3524             (,palette-sym (modus-themes-current-palette))
   3525             ,@(mapcar (lambda (color)
   3526                         (list color `(alist-get ',color ,palette-sym)))
   3527                       colors))
   3528        (ignore class ,@colors)          ; Silence unused variable warnings
   3529        ,@body)))
   3530 
   3531 
   3532 
   3533 ;;;; Commands
   3534 
   3535 ;;;###autoload
   3536 (defun modus-themes-load-themes ()
   3537   "Ensure that the Modus themes are in `custom-enabled-themes'.
   3538 
   3539 This function is intended for use in package declarations such as
   3540 those defined with the help of `use-package'.  The idea is to add
   3541 this function to the `:init' stage of the package's loading, so
   3542 that subsequent calls that assume the presence of a loaded theme,
   3543 like `modus-themes-toggle' or `modus-themes-load-operandi', will
   3544 continue to work as intended even if they are lazy-loaded (such
   3545 as when they are declared in the `:config' phase)."
   3546   (unless (or (custom-theme-p 'modus-operandi)
   3547               (custom-theme-p 'modus-vivendi))
   3548     (load-theme 'modus-operandi t t)
   3549     (load-theme 'modus-vivendi t t)))
   3550 
   3551 (defvar modus-themes-after-load-theme-hook nil
   3552   "Hook that runs after the `modus-themes-toggle' routines.")
   3553 
   3554 ;; The reason we use `load-theme' instead of `enable-theme' is that the
   3555 ;; former does a kind of "reset" on the face specs.  So it plays nicely
   3556 ;; with `custom-set-faces', as well as defcustom user customizations,
   3557 ;; including the likes of `modus-themes-operandi-color-overrides'.
   3558 ;;
   3559 ;; Tests show that `enable-theme' does not re-read those variables, so
   3560 ;; it might appear to the unsuspecting user that the themes are somehow
   3561 ;; broken.
   3562 ;;
   3563 ;; This "reset", however, comes at the cost of being a bit slower than
   3564 ;; `enable-theme'.  User who have a stable setup and seldom update their
   3565 ;; variables during a given Emacs session, are better off using
   3566 ;; something like this:
   3567 ;;
   3568 ;; (defun modus-themes-toggle-enabled ()
   3569 ;;   "Toggle between `modus-operandi' and `modus-vivendi' themes."
   3570 ;;   (interactive)
   3571 ;;   (pcase (modus-themes--current-theme)
   3572 ;;     ('modus-operandi (progn (enable-theme 'modus-vivendi)
   3573 ;;                             (disable-theme 'modus-operandi)))
   3574 ;;     ('modus-vivendi (progn (enable-theme 'modus-operandi)
   3575 ;;                             (disable-theme 'modus-vivendi)))
   3576 ;;     (_ (error "No Modus theme is loaded; evaluate `modus-themes-load-themes' first"))))
   3577 
   3578 ;;;###autoload
   3579 (defun modus-themes-load-operandi ()
   3580   "Load `modus-operandi' and disable `modus-vivendi'.
   3581 Also run `modus-themes-after-load-theme-hook'."
   3582   (let ((modus-themes-inhibit-reload t))
   3583     (disable-theme 'modus-vivendi)
   3584     (load-theme 'modus-operandi t)
   3585     (run-hooks 'modus-themes-after-load-theme-hook)))
   3586 
   3587 ;;;###autoload
   3588 (defun modus-themes-load-vivendi ()
   3589   "Load `modus-vivendi' and disable `modus-operandi'.
   3590 Also run `modus-themes-after-load-theme-hook'."
   3591   (let ((modus-themes-inhibit-reload t))
   3592     (disable-theme 'modus-operandi)
   3593     (load-theme 'modus-vivendi t)
   3594     (run-hooks 'modus-themes-after-load-theme-hook)))
   3595 
   3596 (defun modus-themes--load-prompt ()
   3597   "Helper for `modus-themes-toggle'."
   3598   (let ((theme
   3599          (intern
   3600           (completing-read "Load Modus theme (will disable all others): "
   3601                            '(modus-operandi modus-vivendi) nil t))))
   3602     (mapc #'disable-theme custom-enabled-themes)
   3603     (pcase theme
   3604       ('modus-operandi (modus-themes-load-operandi))
   3605       ('modus-vivendi (modus-themes-load-vivendi)))))
   3606 
   3607 ;;;###autoload
   3608 (defun modus-themes-toggle ()
   3609   "Toggle between `modus-operandi' and `modus-vivendi' themes.
   3610 Also runs `modus-themes-after-load-theme-hook' at its last stage
   3611 by virtue of calling either of `modus-themes-load-operandi' and
   3612 `modus-themes-load-vivendi' functions."
   3613   (interactive)
   3614   (modus-themes-load-themes)
   3615   (pcase (modus-themes--current-theme)
   3616     ('modus-operandi (modus-themes-load-vivendi))
   3617     ('modus-vivendi (modus-themes-load-operandi))
   3618     (_ (modus-themes--load-prompt))))
   3619 
   3620 
   3621 
   3622 ;;;; Face specifications
   3623 
   3624 (defconst modus-themes-faces
   3625   '(
   3626 ;;;; custom faces
   3627     ;; these bespoke faces are inherited by other constructs below
   3628 ;;;;; subtle colored backgrounds
   3629     `(modus-themes-subtle-red ((,class :background ,red-subtle-bg :foreground ,fg-dim)))
   3630     `(modus-themes-subtle-green ((,class :background ,green-subtle-bg :foreground ,fg-dim)))
   3631     `(modus-themes-subtle-yellow ((,class :background ,yellow-subtle-bg :foreground ,fg-dim)))
   3632     `(modus-themes-subtle-blue ((,class :background ,blue-subtle-bg :foreground ,fg-dim)))
   3633     `(modus-themes-subtle-magenta ((,class :background ,magenta-subtle-bg :foreground ,fg-dim)))
   3634     `(modus-themes-subtle-cyan ((,class :background ,cyan-subtle-bg :foreground ,fg-dim)))
   3635     `(modus-themes-subtle-neutral ((,class :background ,bg-inactive :foreground ,fg-inactive)))
   3636 ;;;;; intense colored backgrounds
   3637     `(modus-themes-intense-red ((,class :background ,red-intense-bg :foreground ,fg-main)))
   3638     `(modus-themes-intense-green ((,class :background ,green-intense-bg :foreground ,fg-main)))
   3639     `(modus-themes-intense-yellow ((,class :background ,yellow-intense-bg :foreground ,fg-main)))
   3640     `(modus-themes-intense-blue ((,class :background ,blue-intense-bg :foreground ,fg-main)))
   3641     `(modus-themes-intense-magenta ((,class :background ,magenta-intense-bg :foreground ,fg-main)))
   3642     `(modus-themes-intense-cyan ((,class :background ,cyan-intense-bg :foreground ,fg-main)))
   3643     `(modus-themes-intense-neutral ((,class :background ,bg-active :foreground ,fg-main)))
   3644 ;;;;; refined background and foreground combinations
   3645     ;; general purpose styles that use an accented foreground against an
   3646     ;; accented background
   3647     `(modus-themes-refine-red ((,class :background ,red-refine-bg :foreground ,red-refine-fg)))
   3648     `(modus-themes-refine-green ((,class :background ,green-refine-bg :foreground ,green-refine-fg)))
   3649     `(modus-themes-refine-yellow ((,class :background ,yellow-refine-bg :foreground ,yellow-refine-fg)))
   3650     `(modus-themes-refine-blue ((,class :background ,blue-refine-bg :foreground ,blue-refine-fg)))
   3651     `(modus-themes-refine-magenta ((,class :background ,magenta-refine-bg :foreground ,magenta-refine-fg)))
   3652     `(modus-themes-refine-cyan ((,class :background ,cyan-refine-bg :foreground ,cyan-refine-fg)))
   3653 ;;;;; "active" combinations, mostly for use on the mode line
   3654     `(modus-themes-active-red ((,class :background ,red-active :foreground ,bg-active)))
   3655     `(modus-themes-active-green ((,class :background ,green-active :foreground ,bg-active)))
   3656     `(modus-themes-active-yellow ((,class :background ,yellow-active :foreground ,bg-active)))
   3657     `(modus-themes-active-blue ((,class :background ,blue-active :foreground ,bg-active)))
   3658     `(modus-themes-active-magenta ((,class :background ,magenta-active :foreground ,bg-active)))
   3659     `(modus-themes-active-cyan ((,class :background ,cyan-active :foreground ,bg-active)))
   3660 ;;;;; nuanced backgrounds
   3661     ;; useful for adding an accented background that is suitable for all
   3662     ;; main foreground colors (intended for use in Org source blocks)
   3663     `(modus-themes-nuanced-red ((,class :background ,red-nuanced-bg :extend t)))
   3664     `(modus-themes-nuanced-green ((,class :background ,green-nuanced-bg :extend t)))
   3665     `(modus-themes-nuanced-yellow ((,class :background ,yellow-nuanced-bg :extend t)))
   3666     `(modus-themes-nuanced-blue ((,class :background ,blue-nuanced-bg :extend t)))
   3667     `(modus-themes-nuanced-magenta ((,class :background ,magenta-nuanced-bg :extend t)))
   3668     `(modus-themes-nuanced-cyan ((,class :background ,cyan-nuanced-bg :extend t)))
   3669 ;;;;; fringe-specific combinations
   3670     `(modus-themes-fringe-red ((,class :background ,red-fringe-bg :foreground ,fg-main)))
   3671     `(modus-themes-fringe-green ((,class :background ,green-fringe-bg :foreground ,fg-main)))
   3672     `(modus-themes-fringe-yellow ((,class :background ,yellow-fringe-bg :foreground ,fg-main)))
   3673     `(modus-themes-fringe-blue ((,class :background ,blue-fringe-bg :foreground ,fg-main)))
   3674     `(modus-themes-fringe-magenta ((,class :background ,magenta-fringe-bg :foreground ,fg-main)))
   3675     `(modus-themes-fringe-cyan ((,class :background ,cyan-fringe-bg :foreground ,fg-main)))
   3676 ;;;;; special base values
   3677     ;; these are closer to the grayscale than the accents defined above
   3678     ;; and should only be used when the next closest alternative would be
   3679     ;; a grayscale value than an accented one
   3680     `(modus-themes-special-cold ((,class :background ,bg-special-cold :foreground ,fg-special-cold)))
   3681     `(modus-themes-special-mild ((,class :background ,bg-special-mild :foreground ,fg-special-mild)))
   3682     `(modus-themes-special-warm ((,class :background ,bg-special-warm :foreground ,fg-special-warm)))
   3683     `(modus-themes-special-calm ((,class :background ,bg-special-calm :foreground ,fg-special-calm)))
   3684 ;;;;; diff-specific combinations
   3685     ;; intended for `diff-mode' or equivalent
   3686     `(modus-themes-diff-added
   3687       ((,class ,@(modus-themes--diff
   3688                   bg-main blue-alt-other
   3689                   bg-diff-focus-added fg-diff-focus-added
   3690                   green-nuanced-bg fg-diff-added
   3691                   bg-diff-focus-added-deuteran fg-diff-focus-added-deuteran))))
   3692     `(modus-themes-diff-changed
   3693       ((,class ,@(modus-themes--diff
   3694                   bg-main yellow
   3695                   bg-diff-focus-changed fg-diff-focus-changed
   3696                   yellow-nuanced-bg fg-diff-changed))))
   3697     `(modus-themes-diff-removed
   3698       ((,class ,@(modus-themes--diff
   3699                   bg-main red
   3700                   bg-diff-focus-removed fg-diff-focus-removed
   3701                   red-nuanced-bg fg-diff-removed))))
   3702     `(modus-themes-diff-refine-added
   3703       ((,class ,@(modus-themes--diff
   3704                   bg-diff-added-deuteran fg-diff-added-deuteran
   3705                   bg-diff-refine-added fg-diff-refine-added
   3706                   bg-diff-focus-added fg-diff-focus-added
   3707                   bg-diff-refine-added-deuteran fg-diff-refine-added-deuteran))))
   3708     `(modus-themes-diff-refine-changed
   3709       ((,class ,@(modus-themes--diff
   3710                   bg-diff-changed fg-diff-changed
   3711                   bg-diff-refine-changed fg-diff-refine-changed
   3712                   bg-diff-focus-changed fg-diff-focus-changed))))
   3713     `(modus-themes-diff-refine-removed
   3714       ((,class ,@(modus-themes--diff
   3715                   bg-diff-removed fg-diff-removed
   3716                   bg-diff-refine-removed fg-diff-refine-removed
   3717                   bg-diff-focus-removed fg-diff-focus-removed))))
   3718     `(modus-themes-diff-focus-added
   3719       ((,class ,@(modus-themes--diff
   3720                   bg-dim blue-alt-other
   3721                   bg-diff-focus-added fg-diff-focus-added
   3722                   bg-diff-added fg-diff-added
   3723                   bg-diff-focus-added-deuteran fg-diff-focus-added-deuteran))))
   3724     `(modus-themes-diff-focus-changed
   3725       ((,class ,@(modus-themes--diff
   3726                   bg-dim yellow
   3727                   bg-diff-focus-changed fg-diff-focus-changed
   3728                   bg-diff-changed fg-diff-changed))))
   3729     `(modus-themes-diff-focus-removed
   3730       ((,class ,@(modus-themes--diff
   3731                   bg-dim red
   3732                   bg-diff-focus-removed fg-diff-focus-removed
   3733                   bg-diff-removed fg-diff-removed))))
   3734     `(modus-themes-diff-heading
   3735       ((,class ,@(modus-themes--diff
   3736                   bg-alt fg-main
   3737                   bg-diff-heading fg-diff-heading
   3738                   cyan-nuanced-bg cyan-nuanced-fg
   3739                   bg-header fg-main
   3740                   t))))
   3741 ;;;;; mark indicators
   3742     ;; color combinations intended for Dired, Ibuffer, or equivalent
   3743     `(modus-themes-pseudo-header ((,class :inherit bold :foreground ,fg-main)))
   3744     `(modus-themes-mark-alt ((,class :inherit bold :background ,bg-mark-alt :foreground ,fg-mark-alt)))
   3745     `(modus-themes-mark-del ((,class :inherit bold :background ,bg-mark-del :foreground ,fg-mark-del)))
   3746     `(modus-themes-mark-sel ((,class :inherit bold :background ,bg-mark-sel :foreground ,fg-mark-sel)))
   3747     `(modus-themes-mark-symbol ((,class :inherit bold :foreground ,blue-alt)))
   3748 ;;;;; heading levels
   3749     ;; styles for regular headings used in Org, Markdown, Info, etc.
   3750     `(modus-themes-heading-1
   3751       ((,class ,@(modus-themes--heading
   3752                   1 fg-main magenta-alt-other magenta-nuanced-bg bg-region)
   3753                ,@(modus-themes--scale modus-themes-scale-4))))
   3754     `(modus-themes-heading-2
   3755       ((,class ,@(modus-themes--heading
   3756                   2 fg-special-warm magenta-alt red-nuanced-bg bg-region)
   3757                ,@(modus-themes--scale modus-themes-scale-3))))
   3758     `(modus-themes-heading-3
   3759       ((,class ,@(modus-themes--heading
   3760                   3 fg-special-cold blue blue-nuanced-bg bg-region)
   3761                ,@(modus-themes--scale modus-themes-scale-2))))
   3762     `(modus-themes-heading-4
   3763       ((,class ,@(modus-themes--heading
   3764                   4 fg-special-mild cyan cyan-nuanced-bg bg-region)
   3765                ,@(modus-themes--scale modus-themes-scale-1))))
   3766     `(modus-themes-heading-5
   3767       ((,class ,@(modus-themes--heading
   3768                   5 fg-special-calm green-alt-other green-nuanced-bg bg-region))))
   3769     `(modus-themes-heading-6
   3770       ((,class ,@(modus-themes--heading
   3771                   6 yellow-nuanced-fg yellow-alt-other yellow-nuanced-bg bg-region))))
   3772     `(modus-themes-heading-7
   3773       ((,class ,@(modus-themes--heading
   3774                   7 red-nuanced-fg red-alt red-nuanced-bg bg-region))))
   3775     `(modus-themes-heading-8
   3776       ((,class ,@(modus-themes--heading
   3777                   8 magenta-nuanced-fg magenta bg-alt bg-region))))
   3778 ;;;;; graph-specific faces
   3779     `(modus-themes-graph-red-0 ((,class :background ,red-graph-0-bg)))
   3780     `(modus-themes-graph-red-1 ((,class :background ,red-graph-1-bg)))
   3781     `(modus-themes-graph-green-0 ((,class :background ,green-graph-0-bg)))
   3782     `(modus-themes-graph-green-1 ((,class :background ,green-graph-1-bg)))
   3783     `(modus-themes-graph-yellow-0 ((,class :background ,yellow-graph-0-bg)))
   3784     `(modus-themes-graph-yellow-1 ((,class :background ,yellow-graph-1-bg)))
   3785     `(modus-themes-graph-blue-0 ((,class :background ,blue-graph-0-bg)))
   3786     `(modus-themes-graph-blue-1 ((,class :background ,blue-graph-1-bg)))
   3787     `(modus-themes-graph-magenta-0 ((,class :background ,magenta-graph-0-bg)))
   3788     `(modus-themes-graph-magenta-1 ((,class :background ,magenta-graph-1-bg)))
   3789     `(modus-themes-graph-cyan-0 ((,class :background ,cyan-graph-0-bg)))
   3790     `(modus-themes-graph-cyan-1 ((,class :background ,cyan-graph-1-bg)))
   3791 ;;;;; language checkers
   3792     `(modus-themes-lang-error ((,class ,@(modus-themes--lang-check
   3793                                           fg-lang-underline-error
   3794                                           fg-lang-error
   3795                                           red red-nuanced-bg))))
   3796     `(modus-themes-lang-note ((,class ,@(modus-themes--lang-check
   3797                                          fg-lang-underline-note
   3798                                          fg-lang-note
   3799                                          blue-alt blue-nuanced-bg))))
   3800     `(modus-themes-lang-warning ((,class ,@(modus-themes--lang-check
   3801                                             fg-lang-underline-warning
   3802                                             fg-lang-warning
   3803                                             yellow yellow-nuanced-bg))))
   3804 ;;;;; other custom faces
   3805     `(modus-themes-bold ((,class ,@(modus-themes--bold-weight))))
   3806     `(modus-themes-hl-line ((,class ,@(modus-themes--hl-line
   3807                                        bg-hl-line bg-hl-line-intense
   3808                                        bg-hl-line-intense-accent blue-nuanced-bg
   3809                                        bg-region blue-intense-bg)
   3810                                     :extend t)))
   3811     `(modus-themes-key-binding ((,class :inherit bold :foreground ,blue-alt-other)))
   3812     `(modus-themes-prompt ((,class ,@(modus-themes--prompt
   3813                                       cyan-alt-other blue-alt-other fg-alt
   3814                                       cyan-nuanced-bg blue-refine-bg fg-main
   3815                                       bg-alt bg-active))))
   3816     `(modus-themes-reset-hard ((,class :inherit (fixed-pitch modus-themes-reset-soft))))
   3817     `(modus-themes-reset-soft ((,class :background ,bg-main :foreground ,fg-main
   3818                                        :weight normal :slant normal :strike-through nil
   3819                                        :box nil :underline nil :overline nil :extend nil)))
   3820     `(modus-themes-search-success ((,class :inherit ,@(modus-themes--success-deuteran
   3821                                                        'modus-themes-intense-blue
   3822                                                        'modus-themes-intense-green))))
   3823     `(modus-themes-search-success-lazy ((,class :inherit ,@(modus-themes--success-deuteran
   3824                                                             'modus-themes-special-mild
   3825                                                             'modus-themes-refine-cyan))))
   3826     `(modus-themes-search-success-modeline ((,class :foreground ,@(modus-themes--success-deuteran
   3827                                                                    blue-active
   3828                                                                    green-active))))
   3829     `(modus-themes-slant ((,class :inherit italic :slant ,@(modus-themes--slant))))
   3830     `(modus-themes-variable-pitch ((,class ,@(modus-themes--variable-pitch))))
   3831     `(modus-themes-fixed-pitch ((,class ,@(modus-themes--fixed-pitch))))
   3832 ;;;; standard faces
   3833 ;;;;; absolute essentials
   3834     `(default ((,class :background ,bg-main :foreground ,fg-main)))
   3835     `(cursor ((,class :background ,fg-main)))
   3836     `(fringe ((,class ,@(modus-themes--fringe bg-main bg-inactive bg-active)
   3837                       :foreground ,fg-main)))
   3838     `(vertical-border ((,class :foreground ,fg-window-divider-inner)))
   3839 ;;;;; basic and/or ungrouped styles
   3840     `(bold ((,class :weight bold)))
   3841     `(bold-italic ((,class :inherit (bold italic))))
   3842     `(buffer-menu-buffer ((,class :inherit bold)))
   3843     `(comint-highlight-input ((,class :inherit bold)))
   3844     `(comint-highlight-prompt ((,class :inherit modus-themes-prompt)))
   3845     `(error ((,class :inherit bold :foreground ,red)))
   3846     `(escape-glyph ((,class :foreground ,fg-escape-char-construct)))
   3847     `(file-name-shadow ((,class :foreground ,fg-unfocused)))
   3848     `(header-line ((,class ,@(modus-themes--variable-pitch-ui)
   3849                            :background ,bg-header :foreground ,fg-header)))
   3850     `(header-line-highlight ((,class :inherit modus-themes-active-blue)))
   3851     `(help-argument-name ((,class :inherit modus-themes-slant :foreground ,cyan)))
   3852     `(help-key-binding ((,class :box (:line-width (1 . -1) :color ,bg-region) ; NOTE: box syntax is for Emacs28
   3853                                 :background ,bg-inactive)))
   3854     `(homoglyph ((,class :foreground ,red-alt-faint)))
   3855     `(ibuffer-locked-buffer ((,class :foreground ,yellow-alt-other-faint)))
   3856     `(italic ((,class :slant italic)))
   3857     `(nobreak-hyphen ((,class :foreground ,fg-escape-char-construct)))
   3858     `(nobreak-space ((,class :foreground ,fg-escape-char-construct :underline t)))
   3859     `(minibuffer-prompt ((,class :inherit modus-themes-prompt)))
   3860     `(mm-command-output ((,class :foreground ,red-alt-other)))
   3861     `(mm-uu-extract ((,class :background ,bg-dim :foreground ,fg-special-mild)))
   3862     `(next-error ((,class :inherit modus-themes-subtle-red :extend t)))
   3863     `(rectangle-preview ((,class :inherit modus-themes-special-mild)))
   3864     `(region ((,class ,@(modus-themes--region bg-region fg-main bg-hl-alt-intense bg-region-accent))))
   3865     `(secondary-selection ((,class :inherit modus-themes-special-cold)))
   3866     `(shadow ((,class :foreground ,fg-alt)))
   3867     `(success ((,class :inherit bold :foreground ,@(modus-themes--success-deuteran blue green))))
   3868     `(trailing-whitespace ((,class :background ,red-intense-bg)))
   3869     `(warning ((,class :inherit bold :foreground ,yellow)))
   3870 ;;;;; buttons, links, widgets
   3871     `(button ((,class ,@(modus-themes--link
   3872                          blue-alt-other blue-alt-other-faint bg-region))))
   3873     `(link ((,class :inherit button)))
   3874     `(link-visited ((,class :inherit button
   3875                             ,@(modus-themes--link-color
   3876                                magenta-alt-other magenta-alt-other-faint fg-alt))))
   3877     `(tooltip ((,class :background ,bg-special-cold :foreground ,fg-main)))
   3878     `(widget-button ((,class :inherit bold :foreground ,blue-alt)))
   3879     `(widget-button-pressed ((,class :inherit widget-button :foreground ,magenta)))
   3880     `(widget-documentation ((,class :foreground ,green)))
   3881     `(widget-field ((,class :background ,bg-alt :foreground ,fg-dim)))
   3882     `(widget-inactive ((,class :background ,bg-inactive :foreground ,fg-inactive)))
   3883     `(widget-single-line-field ((,class :inherit widget-field)))
   3884 ;;;;; ag
   3885     `(ag-hit-face ((,class :foreground ,fg-special-cold)))
   3886     `(ag-match-face ((,class :inherit modus-themes-special-calm)))
   3887 ;;;;; alert
   3888     `(alert-high-face ((,class :inherit bold :foreground ,red-alt)))
   3889     `(alert-low-face ((,class :foreground ,fg-special-mild)))
   3890     `(alert-moderate-face ((,class :inherit bold :foreground ,yellow)))
   3891     `(alert-trivial-face ((,class :foreground ,fg-special-calm)))
   3892     `(alert-urgent-face ((,class :inherit bold :foreground ,red-intense)))
   3893 ;;;;; all-the-icons
   3894     `(all-the-icons-blue ((,class :foreground ,blue)))
   3895     `(all-the-icons-blue-alt ((,class :foreground ,blue-alt)))
   3896     `(all-the-icons-cyan ((,class :foreground ,cyan)))
   3897     `(all-the-icons-cyan-alt ((,class :foreground ,cyan-alt)))
   3898     `(all-the-icons-dblue ((,class :foreground ,blue-alt-other)))
   3899     `(all-the-icons-dcyan ((,class :foreground ,cyan-alt-other)))
   3900     `(all-the-icons-dgreen ((,class :foreground ,green-alt-other)))
   3901     `(all-the-icons-dired-dir-face ((,class :foreground ,blue)))
   3902     `(all-the-icons-dmaroon ((,class :foreground ,magenta-alt-other)))
   3903     `(all-the-icons-dorange ((,class :foreground ,red-alt-other)))
   3904     `(all-the-icons-dpink ((,class :foreground ,magenta)))
   3905     `(all-the-icons-dpurple ((,class :foreground ,magenta-alt)))
   3906     `(all-the-icons-dred ((,class :foreground ,red)))
   3907     `(all-the-icons-dsilver ((,class :foreground ,fg-special-cold)))
   3908     `(all-the-icons-dyellow ((,class :foreground ,yellow)))
   3909     `(all-the-icons-green ((,class :foreground ,green)))
   3910     `(all-the-icons-lblue ((,class :foreground ,blue-refine-fg)))
   3911     `(all-the-icons-lcyan ((,class :foreground ,cyan-refine-fg)))
   3912     `(all-the-icons-lgreen ((,class :foreground ,green-refine-fg)))
   3913     `(all-the-icons-lmaroon ((,class :foreground ,magenta-refine-fg)))
   3914     `(all-the-icons-lorange ((,class :foreground ,red-refine-fg)))
   3915     `(all-the-icons-lpink ((,class :foreground ,magenta-refine-fg)))
   3916     `(all-the-icons-lpurple ((,class :foreground ,magenta-refine-fg)))
   3917     `(all-the-icons-lred ((,class :foreground ,red-refine-fg)))
   3918     `(all-the-icons-lsilver ((,class :foreground ,fg-special-cold)))
   3919     `(all-the-icons-lyellow ((,class :foreground ,yellow-refine-fg)))
   3920     `(all-the-icons-maroon ((,class :foreground ,magenta)))
   3921     `(all-the-icons-orange ((,class :foreground ,red-alt)))
   3922     `(all-the-icons-pink ((,class :foreground ,magenta)))
   3923     `(all-the-icons-purple ((,class :foreground ,magenta-alt)))
   3924     `(all-the-icons-purple-alt ((,class :foreground ,magenta-alt-other)))
   3925     `(all-the-icons-red ((,class :foreground ,red)))
   3926     `(all-the-icons-red-alt ((,class :foreground ,red-alt)))
   3927     `(all-the-icons-silver ((,class :foreground ,fg-special-cold)))
   3928     `(all-the-icons-yellow ((,class :foreground ,yellow)))
   3929 ;;;;; annotate
   3930     `(annotate-annotation ((,class :inherit modus-themes-subtle-blue)))
   3931     `(annotate-annotation-secondary ((,class :inherit modus-themes-subtle-green)))
   3932     `(annotate-highlight ((,class :background ,blue-nuanced-bg :underline ,blue-intense)))
   3933     `(annotate-highlight-secondary ((,class :background ,green-nuanced-bg :underline ,green-intense)))
   3934 ;;;;; anzu
   3935     `(anzu-match-1 ((,class :inherit modus-themes-subtle-cyan)))
   3936     `(anzu-match-2 ((,class :inherit modus-themes-search-success)))
   3937     `(anzu-match-3 ((,class :inherit modus-themes-subtle-yellow)))
   3938     `(anzu-mode-line ((,class :inherit (bold modus-themes-search-success-modeline))))
   3939     `(anzu-mode-line-no-match ((,class :inherit bold :foreground ,red-active)))
   3940     `(anzu-replace-highlight ((,class :inherit modus-themes-refine-yellow :underline t)))
   3941     `(anzu-replace-to ((,class :inherit (modus-themes-search-success bold))))
   3942 ;;;;; apropos
   3943     `(apropos-button ((,class :inherit button
   3944                               ,@(modus-themes--link-color
   3945                                  magenta-alt-other magenta-alt-other-faint))))
   3946     `(apropos-function-button ((,class :inherit button
   3947                                        ,@(modus-themes--link-color
   3948                                           magenta magenta-faint))))
   3949     `(apropos-keybinding ((,class :inherit modus-themes-key-binding)))
   3950     `(apropos-misc-button ((,class :inherit button
   3951                                    ,@(modus-themes--link-color
   3952                                       cyan-alt-other cyan-alt-other-faint))))
   3953     `(apropos-property ((,class :inherit modus-themes-bold :foreground ,magenta-alt)))
   3954     `(apropos-symbol ((,class :inherit modus-themes-pseudo-header)))
   3955     `(apropos-user-option-button ((,class :inherit button
   3956                                           ,@(modus-themes--link-color
   3957                                              cyan cyan-faint))))
   3958     `(apropos-variable-button ((,class :inherit button
   3959                                        ,@(modus-themes--link-color
   3960                                           blue-alt blue-alt-faint))))
   3961 ;;;;; apt-sources-list
   3962     `(apt-sources-list-components ((,class :foreground ,cyan)))
   3963     `(apt-sources-list-options ((,class :foreground ,yellow)))
   3964     `(apt-sources-list-suite ((,class :foreground ,green)))
   3965     `(apt-sources-list-type ((,class :foreground ,magenta)))
   3966     `(apt-sources-list-uri ((,class :foreground ,blue)))
   3967 ;;;;; artbollocks-mode
   3968     `(artbollocks-face ((,class :inherit modus-themes-lang-note)))
   3969     `(artbollocks-lexical-illusions-face ((,class :background ,bg-alt :foreground ,red-alt :underline t)))
   3970     `(artbollocks-passive-voice-face ((,class :inherit modus-themes-lang-warning)))
   3971     `(artbollocks-weasel-words-face ((,class :inherit modus-themes-lang-error)))
   3972 ;;;;; auctex and Tex
   3973     `(font-latex-bold-face ((,class :inherit bold :foreground ,fg-special-calm)))
   3974     `(font-latex-doctex-documentation-face ((,class :inherit modus-themes-slant :foreground ,fg-special-cold)))
   3975     `(font-latex-doctex-preprocessor-face ((,class :inherit modus-themes-bold :foreground ,red-alt-other)))
   3976     `(font-latex-italic-face ((,class :inherit italic :foreground ,fg-special-calm)))
   3977     `(font-latex-math-face ((,class :foreground ,cyan-alt-other)))
   3978     `(font-latex-script-char-face ((,class :foreground ,cyan-alt-other)))
   3979     `(font-latex-sectioning-0-face ((,class :inherit modus-themes-variable-pitch :foreground ,blue-nuanced-fg)))
   3980     `(font-latex-sectioning-1-face ((,class :inherit (bold modus-themes-variable-pitch) :foreground ,blue-nuanced-fg)))
   3981     `(font-latex-sectioning-2-face ((,class :inherit (bold modus-themes-variable-pitch) :foreground ,blue-nuanced-fg)))
   3982     `(font-latex-sectioning-3-face ((,class :inherit (bold modus-themes-variable-pitch) :foreground ,blue-nuanced-fg)))
   3983     `(font-latex-sectioning-4-face ((,class :inherit (bold modus-themes-variable-pitch) :foreground ,blue-nuanced-fg)))
   3984     `(font-latex-sectioning-5-face ((,class :inherit modus-themes-variable-pitch :foreground ,blue-nuanced-fg)))
   3985     `(font-latex-sedate-face ((,class :inherit modus-themes-bold :foreground ,magenta-alt-other)))
   3986     `(font-latex-slide-title-face ((,class :inherit (bold modus-themes-variable-pitch) :foreground ,cyan-nuanced-fg
   3987                                            ,@(modus-themes--scale modus-themes-scale-4))))
   3988     `(font-latex-string-face ((,class :inherit font-lock-string-face)))
   3989     `(font-latex-subscript-face ((,class :height 0.95)))
   3990     `(font-latex-superscript-face ((,class :height 0.95)))
   3991     `(font-latex-verbatim-face ((,class :background ,bg-dim :foreground ,fg-special-mild)))
   3992     `(font-latex-warning-face ((,class :inherit font-lock-warning-face)))
   3993     `(tex-match ((,class :foreground ,blue-alt-other)))
   3994     `(tex-verbatim ((,class :background ,bg-dim :foreground ,fg-special-mild)))
   3995     `(texinfo-heading ((,class :foreground ,magenta)))
   3996     `(TeX-error-description-error ((,class :inherit error)))
   3997     `(TeX-error-description-help ((,class :foreground ,blue)))
   3998     `(TeX-error-description-tex-said ((,class :foreground ,blue)))
   3999     `(TeX-error-description-warning ((,class :inherit warning)))
   4000 ;;;;; auto-dim-other-buffers
   4001     `(auto-dim-other-buffers-face ((,class :background ,bg-alt)))
   4002 ;;;;; avy
   4003     `(avy-background-face ((,class :background ,bg-dim :foreground ,fg-dim :extend t)))
   4004     `(avy-goto-char-timer-face ((,class :inherit (modus-themes-intense-yellow bold))))
   4005     `(avy-lead-face ((,class :inherit (modus-themes-intense-magenta bold modus-themes-reset-soft))))
   4006     `(avy-lead-face-0 ((,class :inherit (modus-themes-refine-cyan bold modus-themes-reset-soft))))
   4007     `(avy-lead-face-1 ((,class :inherit (modus-themes-intense-neutral bold modus-themes-reset-soft))))
   4008     `(avy-lead-face-2 ((,class :inherit (modus-themes-refine-red bold modus-themes-reset-soft))))
   4009 ;;;;; aw (ace-window)
   4010     `(aw-background-face ((,class :foreground ,fg-unfocused)))
   4011     `(aw-key-face ((,class :inherit modus-themes-key-binding)))
   4012     `(aw-leading-char-face ((,class :inherit (bold modus-themes-reset-soft) :height 1.5
   4013                                     :foreground ,red-intense)))
   4014     `(aw-minibuffer-leading-char-face ((,class :inherit (modus-themes-intense-red bold))))
   4015     `(aw-mode-line-face ((,class :inherit bold)))
   4016 ;;;;; awesome-tray
   4017     `(awesome-tray-module-awesome-tab-face ((,class :inherit bold :foreground ,red-alt-other)))
   4018     `(awesome-tray-module-battery-face ((,class :inherit bold :foreground ,cyan-alt-other)))
   4019     `(awesome-tray-module-buffer-name-face ((,class :inherit bold :foreground ,yellow-alt-other)))
   4020     `(awesome-tray-module-circe-face ((,class :inherit bold :foreground ,blue-alt)))
   4021     `(awesome-tray-module-date-face ((,class :inherit bold :foreground ,fg-dim)))
   4022     `(awesome-tray-module-evil-face ((,class :inherit bold :foreground ,green-alt)))
   4023     `(awesome-tray-module-git-face ((,class :inherit bold :foreground ,magenta)))
   4024     `(awesome-tray-module-last-command-face ((,class :inherit bold :foreground ,blue-alt-other)))
   4025     `(awesome-tray-module-location-face ((,class :inherit bold :foreground ,yellow)))
   4026     `(awesome-tray-module-mode-name-face ((,class :inherit bold :foreground ,green)))
   4027     `(awesome-tray-module-parent-dir-face ((,class :inherit bold :foreground ,cyan)))
   4028     `(awesome-tray-module-rvm-face ((,class :inherit bold :foreground ,magenta-alt-other)))
   4029 ;;;;; bbdb
   4030     `(bbdb-name ((,class :foreground ,magenta-alt-other)))
   4031     `(bbdb-organization ((,class :foreground ,red-alt-other)))
   4032     `(bbdb-field-name ((,class :foreground ,cyan-alt-other)))
   4033 ;;;;; binder
   4034     `(binder-sidebar-highlight ((,class :inherit modus-themes-subtle-cyan)))
   4035     `(binder-sidebar-marked ((,class :inherit modus-themes-mark-sel)))
   4036     `(binder-sidebar-missing ((,class :inherit modus-themes-subtle-red)))
   4037     `(binder-sidebar-tags ((,class :foreground ,cyan)))
   4038 ;;;;; bm
   4039     `(bm-face ((,class :inherit modus-themes-subtle-yellow :extend t)))
   4040     `(bm-fringe-face ((,class :inherit modus-themes-fringe-yellow)))
   4041     `(bm-fringe-persistent-face ((,class :inherit modus-themes-fringe-blue)))
   4042     `(bm-persistent-face ((,class :inherit modus-themes-intense-blue :extend t)))
   4043 ;;;;; bongo
   4044     `(bongo-album-title ((,class :foreground ,fg-active)))
   4045     `(bongo-artist ((,class :foreground ,magenta-active)))
   4046     `(bongo-currently-playing-track ((,class :inherit bold)))
   4047     `(bongo-elapsed-track-part ((,class :inherit modus-themes-subtle-magenta :underline t)))
   4048     `(bongo-filled-seek-bar ((,class :background ,blue-intense-bg :foreground ,fg-main)))
   4049     `(bongo-marked-track ((,class :foreground ,fg-mark-alt)))
   4050     `(bongo-marked-track-line ((,class :background ,bg-mark-alt)))
   4051     `(bongo-played-track ((,class :foreground ,fg-unfocused :strike-through t)))
   4052     `(bongo-track-length ((,class :foreground ,fg-alt)))
   4053     `(bongo-track-title ((,class :foreground ,blue-active)))
   4054     `(bongo-unfilled-seek-bar ((,class :background ,bg-special-cold :foreground ,fg-main)))
   4055 ;;;;; boon
   4056     `(boon-modeline-cmd ((,class :inherit modus-themes-active-blue)))
   4057     `(boon-modeline-ins ((,class :inherit modus-themes-active-red)))
   4058     `(boon-modeline-off ((,class :inherit modus-themes-active-yellow)))
   4059     `(boon-modeline-spc ((,class :inherit modus-themes-active-green)))
   4060 ;;;;; bookmark
   4061     `(bookmark-face ((,class :inherit modus-themes-special-warm :extend t)))
   4062 ;;;;; breakpoint (built-in gdb-mi.el)
   4063     `(breakpoint-disabled ((,class :inherit shadow)))
   4064     `(breakpoint-enabled ((,class :inherit bold :foreground ,red)))
   4065 ;;;;; buffer-expose
   4066     `(buffer-expose-ace-char-face ((,class :inherit bold :foreground ,red-active)))
   4067     `(buffer-expose-mode-line-face ((,class :foreground ,cyan-active)))
   4068     `(buffer-expose-selected-face ((,class :inherit modus-themes-special-mild)))
   4069 ;;;;; calendar and diary
   4070     `(calendar-month-header ((,class :inherit modus-themes-pseudo-header)))
   4071     `(calendar-today ((,class :inherit bold :underline t)))
   4072     `(calendar-weekday-header ((,class :foreground ,fg-unfocused)))
   4073     `(calendar-weekend-header ((,class :foreground ,fg-unfocused)))
   4074     `(diary ((,class :background ,blue-nuanced-bg :foreground ,blue-alt-other)))
   4075     `(diary-anniversary ((,class :foreground ,red-alt-other)))
   4076     `(diary-time ((,class :foreground ,cyan)))
   4077     `(holiday ((,class :background ,magenta-nuanced-bg :foreground ,magenta-alt)))
   4078 ;;;;; calfw
   4079     `(cfw:face-annotation ((,class :foreground ,fg-special-warm)))
   4080     `(cfw:face-day-title ((,class :foreground ,fg-main)))
   4081     `(cfw:face-default-content ((,class :foreground ,green-alt)))
   4082     `(cfw:face-default-day ((,class :inherit (cfw:face-day-title bold))))
   4083     `(cfw:face-disable ((,class :foreground ,fg-unfocused)))
   4084     `(cfw:face-grid ((,class :foreground ,fg-window-divider-outer)))
   4085     `(cfw:face-header ((,class :inherit bold :foreground ,fg-main)))
   4086     `(cfw:face-holiday ((,class :foreground ,magenta-alt-other)))
   4087     `(cfw:face-periods ((,class :foreground ,cyan-alt-other)))
   4088     `(cfw:face-saturday ((,class :inherit bold :foreground ,cyan-alt-other)))
   4089     `(cfw:face-select ((,class :inherit modus-themes-intense-blue)))
   4090     `(cfw:face-sunday ((,class :inherit bold :foreground ,cyan-alt-other)))
   4091     `(cfw:face-title ((,class :inherit modus-themes-variable-pitch
   4092                               :foreground ,fg-special-cold
   4093                               ,@(modus-themes--scale modus-themes-scale-title))))
   4094     `(cfw:face-today ((,class :background ,bg-inactive)))
   4095     `(cfw:face-today-title ((,class :background ,bg-active)))
   4096     `(cfw:face-toolbar ((,class :background ,bg-alt :foreground ,bg-alt)))
   4097     `(cfw:face-toolbar-button-off ((,class :inherit shadow)))
   4098     `(cfw:face-toolbar-button-on ((,class :inherit bold :background ,blue-nuanced-bg
   4099                                           :foreground ,blue-alt)))
   4100 ;;;;; centaur-tabs
   4101     `(centaur-tabs-active-bar-face ((,class :background ,blue-active)))
   4102     `(centaur-tabs-close-mouse-face ((,class :inherit bold :foreground ,red-active :underline t)))
   4103     `(centaur-tabs-close-selected ((,class :inherit centaur-tabs-selected)))
   4104     `(centaur-tabs-close-unselected ((,class :inherit centaur-tabs-unselected)))
   4105     `(centaur-tabs-modified-marker-selected ((,class :inherit centaur-tabs-selected)))
   4106     `(centaur-tabs-modified-marker-unselected ((,class :inherit centaur-tabs-unselected)))
   4107     `(centaur-tabs-default ((,class :background ,bg-main :foreground ,bg-main)))
   4108     `(centaur-tabs-selected ((,class :inherit bold :background ,bg-tab-active :foreground ,fg-main)))
   4109     `(centaur-tabs-selected-modified ((,class :inherit italic :background ,bg-tab-active :foreground ,fg-main)))
   4110     `(centaur-tabs-unselected ((,class :background ,bg-tab-inactive :foreground ,fg-dim)))
   4111     `(centaur-tabs-unselected-modified ((,class :inherit italic :background ,bg-tab-inactive :foreground ,fg-dim)))
   4112 ;;;;; cfrs
   4113     `(cfrs-border-color ((,class :background ,fg-window-divider-inner)))
   4114 ;;;;; change-log and log-view (`vc-print-log' and `vc-print-root-log')
   4115     `(change-log-acknowledgment ((,class :foreground ,fg-alt)))
   4116     `(change-log-conditionals ((,class :foreground ,yellow)))
   4117     `(change-log-date ((,class :foreground ,cyan)))
   4118     `(change-log-email ((,class :foreground ,cyan-alt-other)))
   4119     `(change-log-file ((,class :inherit bold :foreground ,fg-special-cold)))
   4120     `(change-log-function ((,class :foreground ,green-alt-other)))
   4121     `(change-log-list ((,class :foreground ,magenta-alt)))
   4122     `(change-log-name ((,class :foreground ,magenta-alt-other)))
   4123     `(log-edit-header ((,class :foreground ,fg-special-warm)))
   4124     `(log-edit-summary ((,class :inherit bold :foreground ,blue)))
   4125     `(log-edit-unknown-header ((,class :inherit shadow)))
   4126     `(log-view-commit-body ((,class :foreground ,blue-nuanced-fg)))
   4127     `(log-view-file ((,class :inherit bold :foreground ,fg-special-cold)))
   4128     `(log-view-message ((,class :background ,bg-alt :foreground ,fg-alt)))
   4129 ;;;;; cider
   4130     `(cider-debug-code-overlay-face ((,class :background ,bg-alt)))
   4131     `(cider-debug-prompt-face ((,class :foreground ,magenta-alt :underline t)))
   4132     `(cider-deprecated-face ((,class :inherit modus-themes-refine-yellow)))
   4133     `(cider-docview-emphasis-face ((,class :inherit italic :foreground ,fg-special-cold)))
   4134     `(cider-docview-literal-face ((,class :foreground ,blue-alt)))
   4135     `(cider-docview-strong-face ((,class :inherit bold :foreground ,fg-special-cold)))
   4136     `(cider-docview-table-border-face ((,class :inherit shadow)))
   4137     `(cider-enlightened-face ((,class :box (:line-width -1 :color ,yellow-alt :style nil) :background ,bg-dim)))
   4138     `(cider-enlightened-local-face ((,class :inherit bold :foreground ,yellow-alt-other)))
   4139     `(cider-error-highlight-face ((,class :foreground ,red :underline t)))
   4140     `(cider-fragile-button-face ((,class :box (:line-width 3 :color ,fg-alt :style released-button) :foreground ,yellow)))
   4141     `(cider-fringe-good-face ((,class :foreground ,green-active)))
   4142     `(cider-instrumented-face ((,class :box (:line-width -1 :color ,red :style nil) :background ,bg-dim)))
   4143     `(cider-reader-conditional-face ((,class :inherit italic :foreground ,fg-special-warm)))
   4144     `(cider-repl-input-face ((,class :inherit bold)))
   4145     `(cider-repl-prompt-face ((,class :inherit modus-themes-prompt)))
   4146     `(cider-repl-stderr-face ((,class :inherit bold :foreground ,red)))
   4147     `(cider-repl-stdout-face ((,class :foreground ,blue)))
   4148     `(cider-result-overlay-face ((,class :box (:line-width -1 :color ,blue :style nil) :background ,bg-dim)))
   4149     `(cider-stacktrace-error-class-face ((,class :inherit bold :foreground ,red)))
   4150     `(cider-stacktrace-error-message-face ((,class :inherit italic :foreground ,red-alt-other)))
   4151     `(cider-stacktrace-face ((,class :foreground ,fg-main)))
   4152     `(cider-stacktrace-filter-active-face ((,class :foreground ,cyan-alt :underline t)))
   4153     `(cider-stacktrace-filter-inactive-face ((,class :foreground ,cyan-alt)))
   4154     `(cider-stacktrace-fn-face ((,class :inherit bold :foreground ,fg-main)))
   4155     `(cider-stacktrace-ns-face ((,class :inherit italic :foreground ,fg-alt)))
   4156     `(cider-stacktrace-promoted-button-face ((,class :box (:line-width 3 :color ,fg-alt :style released-button) :foreground ,red)))
   4157     `(cider-stacktrace-suppressed-button-face ((,class :box (:line-width 3 :color ,fg-alt :style pressed-button)
   4158                                                        :background ,bg-alt :foreground ,fg-alt)))
   4159     `(cider-test-error-face ((,class :inherit modus-themes-subtle-red)))
   4160     `(cider-test-failure-face ((,class :inherit (modus-themes-intense-red bold))))
   4161     `(cider-test-success-face ((,class :inherit ,@(modus-themes--success-deuteran
   4162                                                    'modus-themes-intense-blue
   4163                                                    'modus-themes-intense-green))))
   4164     `(cider-traced-face ((,class :box (:line-width -1 :color ,cyan :style nil) :background ,bg-dim)))
   4165     `(cider-warning-highlight-face ((,class :foreground ,yellow :underline t)))
   4166 ;;;;; circe (and lui)
   4167     `(circe-fool-face ((,class :inherit shadow)))
   4168     `(circe-highlight-nick-face ((,class :inherit bold :foreground ,blue)))
   4169     `(circe-prompt-face ((,class :inherit modus-themes-prompt)))
   4170     `(circe-server-face ((,class :foreground ,fg-unfocused)))
   4171     `(lui-button-face ((,class :inherit button)))
   4172     `(lui-highlight-face ((,class :foreground ,magenta-alt)))
   4173     `(lui-time-stamp-face ((,class :foreground ,blue-nuanced-fg)))
   4174 ;;;;; color-rg
   4175     `(color-rg-font-lock-column-number ((,class :foreground ,magenta-alt-other)))
   4176     `(color-rg-font-lock-command ((,class :inherit bold :foreground ,fg-main)))
   4177     `(color-rg-font-lock-file ((,class :inherit bold :foreground ,fg-special-cold)))
   4178     `(color-rg-font-lock-flash ((,class :inherit modus-themes-intense-blue)))
   4179     `(color-rg-font-lock-function-location ((,class :inherit modus-themes-special-calm)))
   4180     `(color-rg-font-lock-header-line-directory ((,class :foreground ,blue-active)))
   4181     `(color-rg-font-lock-header-line-edit-mode ((,class :foreground ,magenta-active)))
   4182     `(color-rg-font-lock-header-line-keyword ((,class :foreground ,green-active)))
   4183     `(color-rg-font-lock-header-line-text ((,class :foreground ,fg-active)))
   4184     `(color-rg-font-lock-line-number ((,class :foreground ,fg-special-warm)))
   4185     `(color-rg-font-lock-mark-changed ((,class :inherit bold :foreground ,blue)))
   4186     `(color-rg-font-lock-mark-deleted ((,class :inherit bold :foreground ,red)))
   4187     `(color-rg-font-lock-match ((,class :inherit modus-themes-special-calm)))
   4188     `(color-rg-font-lock-position-splitter ((,class :inherit shadow)))
   4189 ;;;;; column-enforce-mode
   4190     `(column-enforce-face ((,class :inherit modus-themes-refine-yellow)))
   4191 ;;;;; company-mode
   4192     `(company-echo-common ((,class :foreground ,magenta-alt-other)))
   4193     `(company-preview ((,class :background ,bg-dim :foreground ,fg-dim)))
   4194     `(company-preview-common ((,class :foreground ,blue-alt)))
   4195     `(company-preview-search ((,class :inherit modus-themes-special-calm)))
   4196     `(company-scrollbar-bg ((,class :background ,bg-active)))
   4197     `(company-scrollbar-fg ((,class :background ,fg-active)))
   4198     `(company-template-field ((,class :inherit modus-themes-intense-magenta)))
   4199     `(company-tooltip ((,class :background ,bg-alt :foreground ,fg-alt)))
   4200     `(company-tooltip-annotation ((,class :inherit modus-themes-slant :foreground ,fg-special-cold)))
   4201     `(company-tooltip-annotation-selection ((,class :inherit bold :foreground ,fg-main)))
   4202     `(company-tooltip-common ((,class :inherit bold :foreground ,blue-alt)))
   4203     `(company-tooltip-common-selection ((,class :foreground ,fg-main)))
   4204     `(company-tooltip-mouse ((,class :inherit modus-themes-intense-blue)))
   4205     `(company-tooltip-search ((,class :inherit (modus-themes-search-success-lazy bold))))
   4206     `(company-tooltip-search-selection ((,class :inherit (modus-themes-search-success bold) :underline t)))
   4207     `(company-tooltip-selection ((,class :inherit (modus-themes-subtle-cyan bold))))
   4208 ;;;;; company-posframe
   4209     `(company-posframe-active-backend-name ((,class :inherit bold :background ,bg-active :foreground ,blue-active)))
   4210     `(company-posframe-inactive-backend-name ((,class :background ,bg-active :foreground ,fg-active)))
   4211     `(company-posframe-metadata ((,class :background ,bg-inactive :foreground ,fg-inactive)))
   4212 ;;;;; compilation feedback
   4213     `(compilation-column-number ((,class :foreground ,magenta-alt-other)))
   4214     `(compilation-error ((,class :inherit modus-themes-bold :foreground ,red)))
   4215     `(compilation-info ((,class :inherit modus-themes-bold :foreground ,fg-special-cold)))
   4216     `(compilation-line-number ((,class :foreground ,fg-special-warm)))
   4217     `(compilation-mode-line-exit ((,class :inherit modus-themes-bold :foreground ,blue-active)))
   4218     `(compilation-mode-line-fail ((,class :inherit modus-themes-bold :foreground ,red-active)))
   4219     `(compilation-mode-line-run ((,class :inherit modus-themes-bold :foreground ,magenta-active)))
   4220     `(compilation-warning ((,class :inherit modus-themes-bold :foreground ,yellow)))
   4221 ;;;;; completions
   4222     `(completions-annotations ((,class :inherit modus-themes-slant :foreground ,cyan-faint)))
   4223     `(completions-common-part ((,class ,@(modus-themes--standard-completions
   4224                                           blue-alt blue-nuanced-bg
   4225                                           cyan-refine-bg cyan-refine-fg))))
   4226     `(completions-first-difference ((,class :inherit bold
   4227                                             ,@(modus-themes--standard-completions
   4228                                                magenta-alt blue-nuanced-bg
   4229                                                magenta-intense-bg fg-main))))
   4230 ;;;;; consult
   4231     `(consult-async-running ((,class :inherit bold :foreground ,blue)))
   4232     `(consult-async-split ((,class :foreground ,magenta-alt)))
   4233     `(consult-bookmark ((,class :foreground ,blue)))
   4234     `(consult-file ((,class :foreground ,fg-special-cold)))
   4235     `(consult-imenu-prefix ((,class :inherit shadow)))
   4236     `(consult-key ((,class :inherit modus-themes-key-binding)))
   4237     `(consult-line-number ((,class :foreground ,fg-special-warm)))
   4238     `(consult-line-number-prefix ((,class :foreground ,fg-unfocused)))
   4239     `(consult-narrow-indicator ((,class :foreground ,magenta-alt)))
   4240     `(consult-preview-cursor ((,class :inherit modus-themes-intense-blue)))
   4241     `(consult-preview-error ((,class :inherit modus-themes-intense-red)))
   4242     `(consult-preview-line ((,class :background ,bg-hl-alt-intense)))
   4243 ;;;;; corfu
   4244     `(corfu-background ((,class :background ,bg-alt)))
   4245     `(corfu-current ((,class :inherit bold :background ,cyan-subtle-bg)))
   4246     `(corfu-bar ((,class :background ,fg-alt)))
   4247     `(corfu-border ((,class :background ,bg-active)))
   4248 ;;;;; counsel
   4249     `(counsel-active-mode ((,class :foreground ,magenta-alt-other)))
   4250     `(counsel-application-name ((,class :foreground ,red-alt-other)))
   4251     `(counsel-key-binding ((,class :inherit modus-themes-key-binding)))
   4252     `(counsel-outline-1 ((,class :inherit org-level-1)))
   4253     `(counsel-outline-2 ((,class :inherit org-level-2)))
   4254     `(counsel-outline-3 ((,class :inherit org-level-3)))
   4255     `(counsel-outline-4 ((,class :inherit org-level-4)))
   4256     `(counsel-outline-5 ((,class :inherit org-level-5)))
   4257     `(counsel-outline-6 ((,class :inherit org-level-6)))
   4258     `(counsel-outline-7 ((,class :inherit org-level-7)))
   4259     `(counsel-outline-8 ((,class :inherit org-level-8)))
   4260     `(counsel-outline-default ((,class :foreground ,fg-main)))
   4261     `(counsel-variable-documentation ((,class :inherit modus-themes-slant :foreground ,yellow-alt-other)))
   4262 ;;;;; counsel-css
   4263     `(counsel-css-selector-depth-face-1 ((,class :foreground ,blue)))
   4264     `(counsel-css-selector-depth-face-2 ((,class :foreground ,cyan)))
   4265     `(counsel-css-selector-depth-face-3 ((,class :foreground ,green)))
   4266     `(counsel-css-selector-depth-face-4 ((,class :foreground ,yellow)))
   4267     `(counsel-css-selector-depth-face-5 ((,class :foreground ,magenta)))
   4268     `(counsel-css-selector-depth-face-6 ((,class :foreground ,red)))
   4269 ;;;;; counsel-org-capture-string
   4270     `(counsel-org-capture-string-template-body-face ((,class :foreground ,fg-special-cold)))
   4271 ;;;;; cov
   4272     `(cov-coverage-not-run-face ((,class :foreground ,red-intense)))
   4273     `(cov-coverage-run-face ((,class :foreground ,green-intense)))
   4274     `(cov-heavy-face ((,class :foreground ,magenta-intense)))
   4275     `(cov-light-face ((,class :foreground ,blue-intense)))
   4276     `(cov-med-face ((,class :foreground ,yellow-intense)))
   4277     `(cov-none-face ((,class :foreground ,cyan-intense)))
   4278 ;;;;; cperl-mode
   4279     `(cperl-nonoverridable-face ((,class :foreground unspecified)))
   4280     `(cperl-array-face ((,class :inherit font-lock-keyword-face)))
   4281     `(cperl-hash-face ((,class :inherit font-lock-variable-name-face)))
   4282 ;;;;; csv-mode
   4283     `(csv-separator-face ((,class :foreground ,red-intense)))
   4284 ;;;;; ctrlf
   4285     `(ctrlf-highlight-active ((,class :inherit (modus-themes-search-success bold))))
   4286     `(ctrlf-highlight-line ((,class :inherit modus-themes-hl-line)))
   4287     `(ctrlf-highlight-passive ((,class :inherit modus-themes-search-success-lazy)))
   4288 ;;;;; custom (M-x customize)
   4289     `(custom-button ((,class :box (:line-width 2 :color nil :style released-button)
   4290                              :background ,bg-active :foreground ,fg-main)))
   4291     `(custom-button-mouse ((,class :box (:line-width 2 :color nil :style released-button)
   4292                                    :background ,bg-active :foreground ,fg-active)))
   4293     `(custom-button-pressed ((,class :box (:line-width 2 :color nil :style pressed-button)
   4294                                      :background ,bg-active :foreground ,fg-main)))
   4295     `(custom-changed ((,class :inherit modus-themes-subtle-cyan)))
   4296     `(custom-comment ((,class :inherit shadow)))
   4297     `(custom-comment-tag ((,class :background ,bg-alt :foreground ,yellow-alt-other)))
   4298     `(custom-face-tag ((,class :inherit bold :foreground ,blue-intense)))
   4299     `(custom-group-tag ((,class :inherit bold :foreground ,green-intense)))
   4300     `(custom-group-tag-1 ((,class :inherit modus-themes-special-warm)))
   4301     `(custom-invalid ((,class :inherit (modus-themes-intense-red bold))))
   4302     `(custom-modified ((,class :inherit modus-themes-subtle-cyan)))
   4303     `(custom-rogue ((,class :inherit modus-themes-refine-magenta)))
   4304     `(custom-set ((,class :foreground ,blue-alt)))
   4305     `(custom-state ((,class :foreground ,cyan-alt-other)))
   4306     `(custom-themed ((,class :inherit modus-themes-subtle-blue)))
   4307     `(custom-variable-tag ((,class :inherit bold :foreground ,cyan)))
   4308 ;;;;; dap-mode
   4309     `(dap-mouse-eval-thing-face ((,class :box (:line-width -1 :color ,blue-active :style nil)
   4310                                          :background ,bg-active :foreground ,fg-main)))
   4311     `(dap-result-overlay-face ((,class :box (:line-width -1 :color ,bg-active :style nil)
   4312                                        :background ,bg-active :foreground ,fg-main)))
   4313     `(dap-ui-breakpoint-verified-fringe ((,class :inherit bold :foreground ,green-active)))
   4314     `(dap-ui-compile-errline ((,class :inherit bold :foreground ,red-intense)))
   4315     `(dap-ui-locals-scope-face ((,class :inherit bold :foreground ,magenta :underline t)))
   4316     `(dap-ui-locals-variable-face ((,class :inherit bold :foreground ,cyan)))
   4317     `(dap-ui-locals-variable-leaf-face ((,class :inherit italic :foreground ,cyan-alt-other)))
   4318     `(dap-ui-marker-face ((,class :inherit modus-themes-subtle-blue)))
   4319     `(dap-ui-sessions-stack-frame-face ((,class :inherit bold :foreground ,magenta-alt)))
   4320     `(dap-ui-sessions-terminated-active-face ((,class :inherit bold :foreground ,fg-alt)))
   4321     `(dap-ui-sessions-terminated-face ((,class :inherit shadow)))
   4322 ;;;;; dashboard (emacs-dashboard)
   4323     `(dashboard-banner-logo-title ((,class :inherit bold :foreground ,fg-special-cold)))
   4324     `(dashboard-footer ((,class :inherit bold :foreground ,fg-special-mild)))
   4325     `(dashboard-heading ((,class :inherit bold :foreground ,fg-special-warm)))
   4326     `(dashboard-navigator ((,class :foreground ,cyan-alt-other)))
   4327     `(dashboard-text-banner ((,class :foreground ,fg-dim)))
   4328 ;;;;; deadgrep
   4329     `(deadgrep-filename-face ((,class :inherit bold :foreground ,fg-special-cold)))
   4330     `(deadgrep-match-face ((,class :inherit modus-themes-special-calm)))
   4331     `(deadgrep-meta-face ((,class :inherit shadow)))
   4332     `(deadgrep-regexp-metachar-face ((,class :inherit bold :foreground ,yellow-intense)))
   4333     `(deadgrep-search-term-face ((,class :inherit bold :foreground ,green-intense)))
   4334 ;;;;; debbugs
   4335     `(debbugs-gnu-archived ((,class :inverse-video t)))
   4336     `(debbugs-gnu-done ((,class :inherit shadow)))
   4337     `(debbugs-gnu-forwarded ((,class :foreground ,fg-special-warm)))
   4338     `(debbugs-gnu-handled ((,class :foreground ,blue)))
   4339     `(debbugs-gnu-new ((,class :foreground ,red)))
   4340     `(debbugs-gnu-pending ((,class :foreground ,cyan)))
   4341     `(debbugs-gnu-stale-1 ((,class :foreground ,yellow-nuanced-fg)))
   4342     `(debbugs-gnu-stale-2 ((,class :foreground ,yellow)))
   4343     `(debbugs-gnu-stale-3 ((,class :foreground ,yellow-alt)))
   4344     `(debbugs-gnu-stale-4 ((,class :foreground ,yellow-alt-other)))
   4345     `(debbugs-gnu-stale-5 ((,class :foreground ,red-alt)))
   4346     `(debbugs-gnu-tagged ((,class :foreground ,magenta-alt)))
   4347 ;;;;; define-word
   4348     `(define-word-face-1 ((,class :foreground ,yellow)))
   4349     `(define-word-face-2 ((,class :foreground ,fg-main)))
   4350 ;;;;; deft
   4351     `(deft-filter-string-error-face ((,class :inherit modus-themes-refine-red)))
   4352     `(deft-filter-string-face ((,class :foreground ,green-intense)))
   4353     `(deft-header-face ((,class :inherit bold :foreground ,fg-special-warm)))
   4354     `(deft-separator-face ((,class :inherit shadow)))
   4355     `(deft-summary-face ((,class :inherit modus-themes-slant :foreground ,fg-alt)))
   4356     `(deft-time-face ((,class :foreground ,fg-special-cold)))
   4357     `(deft-title-face ((,class :inherit bold :foreground ,fg-main)))
   4358 ;;;;; dictionary
   4359     `(dictionary-button-face ((,class :inherit bold :foreground ,fg-special-cold)))
   4360     `(dictionary-reference-face ((,class :inherit button)))
   4361     `(dictionary-word-definition-face (()))
   4362     `(dictionary-word-entry-face ((,class :inherit font-lock-comment-face)))
   4363 ;;;;; diff-hl
   4364     `(diff-hl-change ((,class :inherit modus-themes-fringe-yellow)))
   4365     `(diff-hl-delete ((,class :inherit modus-themes-fringe-red)))
   4366     `(diff-hl-dired-change ((,class :inherit diff-hl-change)))
   4367     `(diff-hl-dired-delete ((,class :inherit diff-hl-delete)))
   4368     `(diff-hl-dired-ignored ((,class :inherit dired-ignored)))
   4369     `(diff-hl-dired-insert ((,class :inherit diff-hl-insert)))
   4370     `(diff-hl-dired-unknown ((,class :inherit dired-ignored)))
   4371     `(diff-hl-insert ((,class :inherit ,@(modus-themes--diff-deuteran
   4372                                           'modus-themes-fringe-blue
   4373                                           'modus-themes-fringe-green))))
   4374     `(diff-hl-reverted-hunk-highlight ((,class :background ,fg-main :foreground ,bg-main)))
   4375 ;;;;; diff-mode
   4376     `(diff-added ((,class :inherit modus-themes-diff-added)))
   4377     `(diff-changed ((,class :inherit modus-themes-diff-changed :extend t)))
   4378     `(diff-context ((,class ,@(unless (eq modus-themes-diffs 'bg-only) (list :foreground fg-unfocused)))))
   4379     `(diff-error ((,class :inherit modus-themes-intense-red)))
   4380     `(diff-file-header ((,class :inherit (bold diff-header))))
   4381     `(diff-function ((,class :inherit modus-themes-diff-heading)))
   4382     `(diff-header ((,class :foreground ,fg-main)))
   4383     `(diff-hunk-header ((,class :inherit (bold modus-themes-diff-heading))))
   4384     `(diff-index ((,class :inherit bold :foreground ,blue-alt)))
   4385     `(diff-indicator-added ((,class :inherit (diff-added bold)
   4386                                     :foreground ,@(modus-themes--diff-deuteran blue green))))
   4387     `(diff-indicator-changed ((,class :inherit (diff-changed bold) :foreground ,yellow)))
   4388     `(diff-indicator-removed ((,class :inherit (diff-removed bold) :foreground ,red)))
   4389     `(diff-nonexistent ((,class :inherit (modus-themes-neutral bold))))
   4390     `(diff-refine-added ((,class :inherit modus-themes-diff-refine-added)))
   4391     `(diff-refine-changed ((,class :inherit modus-themes-diff-refine-changed)))
   4392     `(diff-refine-removed ((,class :inherit modus-themes-diff-refine-removed)))
   4393     `(diff-removed ((,class :inherit modus-themes-diff-removed)))
   4394 ;;;;; dim-autoload
   4395     `(dim-autoload-cookie-line ((,class :inherit font-lock-comment-face)))
   4396 ;;;;; dir-treeview
   4397     `(dir-treeview-archive-face ((,class :foreground ,fg-special-warm)))
   4398     `(dir-treeview-archive-icon-face ((,class :inherit dir-treeview-default-icon-face :foreground ,yellow)))
   4399     `(dir-treeview-audio-face ((,class :foreground ,magenta)))
   4400     `(dir-treeview-audio-icon-face ((,class :inherit dir-treeview-default-icon-face :foreground ,magenta-alt)))
   4401     `(dir-treeview-control-face ((,class :inherit shadow)))
   4402     `(dir-treeview-control-mouse-face ((,class :inherit highlight)))
   4403     `(dir-treeview-default-icon-face ((,class :inherit bold :family "Font Awesome" :foreground ,fg-alt)))
   4404     `(dir-treeview-default-filename-face ((,class :foreground ,fg-main)))
   4405     `(dir-treeview-directory-face ((,class :foreground ,blue)))
   4406     `(dir-treeview-directory-icon-face ((,class :inherit dir-treeview-default-icon-face :foreground ,blue-alt)))
   4407     `(dir-treeview-executable-face ((,class :foreground ,red-alt)))
   4408     `(dir-treeview-executable-icon-face ((,class :inherit dir-treeview-default-icon-face :foreground ,red-alt-other)))
   4409     `(dir-treeview-image-face ((,class :foreground ,green-alt-other)))
   4410     `(dir-treeview-image-icon-face ((,class :inherit dir-treeview-default-icon-face :foreground ,green-alt)))
   4411     `(dir-treeview-indent-face ((,class :inherit shadow)))
   4412     `(dir-treeview-label-mouse-face ((,class :inherit highlight)))
   4413     `(dir-treeview-start-dir-face ((,class :inherit modus-themes-pseudo-header)))
   4414     `(dir-treeview-symlink-face ((,class :inherit button
   4415                                          ,@(modus-themes--link-color
   4416                                             cyan cyan-faint))))
   4417     `(dir-treeview-video-face ((,class :foreground ,magenta-alt-other)))
   4418     `(dir-treeview-video-icon-face ((,class :inherit dir-treeview-default-icon-face :foreground ,magenta-alt-other)))
   4419 ;;;;; dired
   4420     `(dired-broken-symlink ((,class :inherit button :foreground ,red)))
   4421     `(dired-directory ((,class :foreground ,blue)))
   4422     `(dired-flagged ((,class :inherit modus-themes-mark-del)))
   4423     `(dired-header ((,class :inherit modus-themes-pseudo-header)))
   4424     `(dired-ignored ((,class :inherit shadow)))
   4425     `(dired-mark ((,class :inherit modus-themes-mark-symbol)))
   4426     `(dired-marked ((,class :inherit modus-themes-mark-sel)))
   4427     `(dired-perm-write ((,class :foreground ,fg-special-warm)))
   4428     `(dired-symlink ((,class :inherit button
   4429                              ,@(modus-themes--link-color
   4430                                 cyan-alt cyan-alt-faint))))
   4431     `(dired-warning ((,class :inherit bold :foreground ,yellow)))
   4432 ;;;;; dired-async
   4433     `(dired-async-failures ((,class :inherit bold :foreground ,red-active)))
   4434     `(dired-async-message ((,class :inherit bold :foreground ,blue-active)))
   4435     `(dired-async-mode-message ((,class :inherit bold :foreground ,cyan-active)))
   4436 ;;;;; dired-git
   4437     `(dired-git-branch-else ((,class :inherit bold :foreground ,magenta-alt)))
   4438     `(dired-git-branch-master ((,class :inherit bold :foreground ,magenta-alt-other)))
   4439 ;;;;; dired-git-info
   4440     `(dgi-commit-message-face ((,class :foreground ,fg-special-mild)))
   4441 ;;;;; dired-narrow
   4442     `(dired-narrow-blink ((,class :inherit (modus-themes-subtle-cyan bold))))
   4443 ;;;;; dired-subtree
   4444     ;; remove backgrounds from dired-subtree faces, else they break
   4445     ;; dired-{flagged,marked} and any other face that sets a background
   4446     ;; such as hl-line.  Also, denoting depth by varying shades of gray
   4447     ;; is not good for accessibility.
   4448     `(dired-subtree-depth-1-face (()))
   4449     `(dired-subtree-depth-2-face (()))
   4450     `(dired-subtree-depth-3-face (()))
   4451     `(dired-subtree-depth-4-face (()))
   4452     `(dired-subtree-depth-5-face (()))
   4453     `(dired-subtree-depth-6-face (()))
   4454 ;;;;; diredc
   4455     `(diredc-face-chmod-font-lock-dir ((,class :foreground ,blue-alt)))
   4456     `(diredc-face-chmod-font-lock-exec ((,class :foreground ,magenta)))
   4457     `(diredc-face-chmod-font-lock-read ((,class :foreground ,fg-main)))
   4458     `(diredc-face-chmod-font-lock-write ((,class :foreground ,cyan)))
   4459 ;;;;; diredfl
   4460     `(diredfl-autofile-name ((,class :inherit modus-themes-special-cold)))
   4461     `(diredfl-compressed-file-name ((,class :foreground ,fg-special-warm)))
   4462     `(diredfl-compressed-file-suffix ((,class :foreground ,red-alt)))
   4463     `(diredfl-date-time ((,class :foreground ,cyan-alt-other)))
   4464     `(diredfl-deletion ((,class :inherit modus-themes-mark-del)))
   4465     `(diredfl-deletion-file-name ((,class :inherit modus-themes-mark-del)))
   4466     `(diredfl-dir-heading ((,class :inherit modus-themes-pseudo-header)))
   4467     `(diredfl-dir-name ((,class :inherit dired-directory)))
   4468     `(diredfl-dir-priv ((,class :foreground ,blue-alt)))
   4469     `(diredfl-exec-priv ((,class :foreground ,magenta)))
   4470     `(diredfl-executable-tag ((,class :foreground ,magenta-alt)))
   4471     `(diredfl-file-name ((,class :foreground ,fg-main)))
   4472     `(diredfl-file-suffix ((,class :foreground ,cyan)))
   4473     `(diredfl-flag-mark ((,class :inherit modus-themes-mark-sel)))
   4474     `(diredfl-flag-mark-line ((,class :inherit modus-themes-mark-sel)))
   4475     `(diredfl-ignored-file-name ((,class :inherit shadow)))
   4476     `(diredfl-link-priv ((,class :foreground ,blue-alt-other)))
   4477     `(diredfl-no-priv ((,class :inherit shadow)))
   4478     `(diredfl-number ((,class :foreground ,cyan-alt)))
   4479     `(diredfl-other-priv ((,class :foreground ,yellow)))
   4480     `(diredfl-rare-priv ((,class :foreground ,red-alt)))
   4481     `(diredfl-read-priv ((,class :foreground ,fg-main)))
   4482     `(diredfl-symlink ((,class :inherit dired-symlink)))
   4483     `(diredfl-tagged-autofile-name ((,class :inherit modus-themes-refine-magenta)))
   4484     `(diredfl-write-priv ((,class :foreground ,cyan)))
   4485 ;;;;; dired+
   4486     `(diredp-autofile-name ((,class :inherit modus-themes-special-cold)))
   4487     `(diredp-compressed-file-name ((,class :foreground ,fg-special-warm)))
   4488     `(diredp-compressed-file-suffix ((,class :foreground ,red-alt)))
   4489     `(diredp-date-time ((,class :foreground ,cyan-alt-other)))
   4490     `(diredp-deletion ((,class :inherit modus-themes-mark-del)))
   4491     `(diredp-deletion-file-name ((,class :inherit modus-themes-mark-del)))
   4492     `(diredp-dir-heading ((,class :inherit modus-themes-pseudo-header)))
   4493     `(diredp-dir-name ((,class :inherit dired-directory)))
   4494     `(diredp-dir-priv ((,class :foreground ,blue-alt)))
   4495     `(diredp-exec-priv ((,class :foreground ,magenta)))
   4496     `(diredp-executable-tag ((,class :foreground ,magenta-alt)))
   4497     `(diredp-file-name ((,class :foreground ,fg-main)))
   4498     `(diredp-file-suffix ((,class :foreground ,cyan)))
   4499     `(diredp-flag-mark ((,class :inherit modus-themes-mark-sel)))
   4500     `(diredp-flag-mark-line ((,class :inherit modus-themes-mark-sel)))
   4501     `(diredp-ignored-file-name ((,class :inherit shadow)))
   4502     `(diredp-link-priv ((,class :foreground ,blue-alt-other)))
   4503     `(diredp-mode-line-flagged ((,class :foreground ,red-active)))
   4504     `(diredp-mode-line-marked ((,class :foreground ,green-active)))
   4505     `(diredp-no-priv ((,class :inherit shadow)))
   4506     `(diredp-number ((,class :foreground ,cyan-alt)))
   4507     `(diredp-omit-file-name ((,class :inherit shadow :strike-through t)))
   4508     `(diredp-other-priv ((,class :foreground ,yellow)))
   4509     `(diredp-rare-priv ((,class :foreground ,red-alt)))
   4510     `(diredp-read-priv ((,class :foreground ,fg-main)))
   4511     `(diredp-symlink ((,class :inherit dired-symlink)))
   4512     `(diredp-tagged-autofile-name ((,class :inherit modus-themes-refine-magenta)))
   4513     `(diredp-write-priv ((,class :foreground ,cyan)))
   4514 ;;;;; disk-usage
   4515     `(disk-usage-children ((,class :foreground ,yellow)))
   4516     `(disk-usage-inaccessible ((,class :inherit bold :foreground ,red)))
   4517     `(disk-usage-percent ((,class :foreground ,green)))
   4518     `(disk-usage-size ((,class :foreground ,cyan)))
   4519     `(disk-usage-symlink ((,class :inherit button)))
   4520     `(disk-usage-symlink-directory ((,class :inherit bold :foreground ,blue-alt)))
   4521 ;;;;; display-fill-column-indicator-mode
   4522     `(fill-column-indicator ((,class :foreground ,bg-active)))
   4523 ;;;;; doom-modeline
   4524     `(doom-modeline-bar ((,class :inherit modus-themes-active-blue)))
   4525     `(doom-modeline-bar-inactive ((,class :background ,fg-inactive :foreground ,bg-main)))
   4526     `(doom-modeline-battery-charging ((,class :foreground ,green-active)))
   4527     `(doom-modeline-battery-critical ((,class :inherit bold :foreground ,red-active)))
   4528     `(doom-modeline-battery-error ((,class :inherit bold :box (:line-width -2)
   4529                                            :foreground ,red-active)))
   4530     `(doom-modeline-battery-full ((,class :foreground ,blue-active)))
   4531     `(doom-modeline-battery-normal ((,class :foreground ,fg-active)))
   4532     `(doom-modeline-battery-warning ((,class :inherit bold :foreground ,yellow-active)))
   4533     `(doom-modeline-buffer-file ((,class :inherit bold :foreground ,fg-active)))
   4534     `(doom-modeline-buffer-major-mode ((,class :inherit bold :foreground ,cyan-active)))
   4535     `(doom-modeline-buffer-minor-mode ((,class :foreground ,fg-inactive)))
   4536     `(doom-modeline-buffer-modified ((,class :inherit bold :foreground ,magenta-active)))
   4537     `(doom-modeline-buffer-path ((,class :inherit bold :foreground ,fg-active)))
   4538     `(doom-modeline-debug ((,class :inherit bold :foreground ,yellow-active)))
   4539     `(doom-modeline-debug-visual ((,class :inherit bold :foreground ,red-active)))
   4540     `(doom-modeline-evil-emacs-state ((,class :inherit bold :foreground ,magenta-active)))
   4541     `(doom-modeline-evil-insert-state ((,class :inherit bold :foreground ,green-active)))
   4542     `(doom-modeline-evil-motion-state ((,class :inherit bold :foreground ,fg-inactive)))
   4543     `(doom-modeline-evil-normal-state ((,class :inherit bold :foreground ,fg-active)))
   4544     `(doom-modeline-evil-operator-state ((,class :inherit bold :foreground ,blue-active)))
   4545     `(doom-modeline-evil-replace-state ((,class :inherit bold :foreground ,red-active)))
   4546     `(doom-modeline-evil-visual-state ((,class :inherit bold :foreground ,cyan-active)))
   4547     `(doom-modeline-highlight ((,class :inherit bold :foreground ,blue-active)))
   4548     `(doom-modeline-host ((,class :inherit italic)))
   4549     `(doom-modeline-info ((,class :foreground ,green-active)))
   4550     `(doom-modeline-lsp-error ((,class :inherit bold :foreground ,red-active)))
   4551     `(doom-modeline-lsp-success ((,class :inherit bold :foreground ,@(modus-themes--success-deuteran
   4552                                                                       blue-active
   4553                                                                       green-active))))
   4554     `(doom-modeline-lsp-warning ((,class :inherit bold :foreground ,yellow-active)))
   4555     `(doom-modeline-panel ((,class :inherit modus-themes-active-blue)))
   4556     `(doom-modeline-persp-buffer-not-in-persp ((,class :inherit italic :foreground ,yellow-active)))
   4557     `(doom-modeline-persp-name ((,class :foreground ,fg-active)))
   4558     `(doom-modeline-project-dir ((,class :inherit bold :foreground ,blue-active)))
   4559     `(doom-modeline-project-parent-dir ((,class :foreground ,blue-active)))
   4560     `(doom-modeline-project-root-dir ((,class :foreground ,fg-active)))
   4561     `(doom-modeline-unread-number ((,class :inherit italic :foreground ,fg-active)))
   4562     `(doom-modeline-urgent ((,class :inherit bold :foreground ,red-active)))
   4563     `(doom-modeline-warning ((,class :inherit bold :foreground ,yellow-active)))
   4564 ;;;;; dynamic-ruler
   4565     `(dynamic-ruler-negative-face ((,class :inherit modus-themes-intense-neutral)))
   4566     `(dynamic-ruler-positive-face ((,class :inherit modus-themes-intense-yellow)))
   4567 ;;;;; easy-jekyll
   4568     `(easy-jekyll-help-face ((,class :background ,bg-dim :foreground ,cyan-alt-other)))
   4569 ;;;;; easy-kill
   4570     `(easy-kill-origin ((,class :inherit modus-themes-subtle-red)))
   4571     `(easy-kill-selection ((,class :inherit modus-themes-subtle-yellow)))
   4572 ;;;;; ebdb
   4573     `(ebdb-address-default ((,class :foreground ,fg-special-calm)))
   4574     `(ebdb-defunct ((,class :inherit shadow)))
   4575     `(ebdb-field-hidden ((,class :foreground ,magenta)))
   4576     `(ebdb-label ((,class :foreground ,cyan-alt-other)))
   4577     `(ebdb-mail-default ((,class :foreground ,fg-main)))
   4578     `(ebdb-mail-primary ((,class :foreground ,magenta-alt)))
   4579     `(ebdb-marked ((,class :background ,cyan-intense-bg)))
   4580     `(ebdb-organization-name ((,class :foreground ,red-alt-other)))
   4581     `(ebdb-person-name ((,class :foreground ,magenta-alt-other)))
   4582     `(ebdb-phone-default ((,class :foreground ,cyan)))
   4583     `(eieio-custom-slot-tag-face ((,class :foreground ,red-alt)))
   4584 ;;;;; ediff
   4585     `(ediff-current-diff-A ((,class :inherit modus-themes-diff-focus-removed)))
   4586     `(ediff-current-diff-Ancestor ((,class ,@(modus-themes--diff
   4587                                               bg-alt fg-special-cold
   4588                                               bg-special-cold fg-special-cold
   4589                                               blue-nuanced-bg blue))))
   4590     `(ediff-current-diff-B ((,class :inherit modus-themes-diff-focus-added)))
   4591     `(ediff-current-diff-C ((,class :inherit modus-themes-diff-focus-changed)))
   4592     `(ediff-even-diff-A ((,class :background ,bg-alt)))
   4593     `(ediff-even-diff-Ancestor ((,class :background ,bg-alt)))
   4594     `(ediff-even-diff-B ((,class :background ,bg-alt)))
   4595     `(ediff-even-diff-C ((,class :background ,bg-alt)))
   4596     `(ediff-fine-diff-A ((,class :inherit modus-themes-diff-refine-removed)))
   4597     `(ediff-fine-diff-Ancestor ((,class :inherit modus-themes-refine-cyan)))
   4598     `(ediff-fine-diff-B ((,class :inherit modus-themes-diff-refine-added)))
   4599     `(ediff-fine-diff-C ((,class :inherit modus-themes-diff-refine-changed)))
   4600     `(ediff-odd-diff-A ((,class :inherit ediff-even-diff-A)))
   4601     `(ediff-odd-diff-Ancestor ((,class :inherit ediff-even-diff-Ancestor)))
   4602     `(ediff-odd-diff-B ((,class :inherit ediff-even-diff-B)))
   4603     `(ediff-odd-diff-C ((,class :inherit ediff-even-diff-C)))
   4604 ;;;;; eglot
   4605     `(eglot-mode-line ((,class :inherit modus-themes-bold :foreground ,magenta-active)))
   4606 ;;;;; el-search
   4607     `(el-search-highlight-in-prompt-face ((,class :inherit bold :foreground ,magenta-alt)))
   4608     `(el-search-match ((,class :inherit modus-themes-search-success)))
   4609     `(el-search-other-match ((,class :inherit modus-themes-special-mild)))
   4610     `(el-search-occur-match ((,class :inherit modus-themes-special-calm)))
   4611 ;;;;; eldoc
   4612     ;; NOTE: see https://github.com/purcell/package-lint/issues/187
   4613     (list 'eldoc-highlight-function-argument `((,class :inherit bold :foreground ,blue-alt-other)))
   4614 ;;;;; eldoc-box
   4615     `(eldoc-box-body ((,class :background ,bg-alt :foreground ,fg-main)))
   4616     `(eldoc-box-border ((,class :background ,fg-alt)))
   4617 ;;;;; elfeed
   4618     `(elfeed-log-date-face ((,class :inherit elfeed-search-date-face)))
   4619     `(elfeed-log-debug-level-face ((,class :inherit elfeed-search-filter-face)))
   4620     `(elfeed-log-error-level-face ((,class :inherit error)))
   4621     `(elfeed-log-info-level-face ((,class :inherit success)))
   4622     `(elfeed-log-warn-level-face ((,class :inherit warning)))
   4623     `(elfeed-search-date-face ((,class :foreground ,cyan)))
   4624     `(elfeed-search-feed-face ((,class :foreground ,blue-faint)))
   4625     `(elfeed-search-filter-face ((,class :inherit bold :foreground ,magenta-active)))
   4626     `(elfeed-search-last-update-face ((,class :foreground ,cyan-active)))
   4627     `(elfeed-search-tag-face ((,class :foreground ,cyan-alt-other)))
   4628     `(elfeed-search-title-face ((,class :foreground ,fg-dim)))
   4629     `(elfeed-search-unread-count-face ((,class :foreground ,green-active)))
   4630     `(elfeed-search-unread-title-face ((,class :inherit bold :foreground ,fg-main)))
   4631 ;;;;; elfeed-score
   4632     `(elfeed-score-date-face ((,class :foreground ,blue)))
   4633     `(elfeed-score-debug-level-face ((,class :foreground ,magenta-alt-other)))
   4634     `(elfeed-score-error-level-face ((,class :foreground ,red)))
   4635     `(elfeed-score-info-level-face ((,class :foreground ,cyan)))
   4636     `(elfeed-score-warn-level-face ((,class :foreground ,yellow)))
   4637 ;;;;; embark
   4638     `(embark-keybinding ((,class :inherit modus-themes-key-binding)))
   4639 ;;;;; emms
   4640     `(emms-playlist-track-face ((,class :foreground ,blue-alt)))
   4641     `(emms-playlist-selected-face ((,class :inherit bold :foreground ,blue-alt-other)))
   4642     `(emms-metaplaylist-mode-current-face ((,class :inherit emms-playlist-selected-face)))
   4643     `(emms-metaplaylist-mode-face ((,class :foreground ,cyan)))
   4644 ;;;;; enh-ruby-mode (enhanced-ruby-mode)
   4645     `(enh-ruby-heredoc-delimiter-face ((,class :inherit font-lock-constant-face)))
   4646     `(enh-ruby-op-face ((,class :foreground ,fg-main)))
   4647     `(enh-ruby-regexp-delimiter-face ((,class :inherit font-lock-regexp-grouping-construct)))
   4648     `(enh-ruby-regexp-face ((,class :inherit font-lock-string-face)))
   4649     `(enh-ruby-string-delimiter-face ((,class :inherit font-lock-string-face)))
   4650     `(erm-syn-errline ((,class :inherit modus-themes-lang-error)))
   4651     `(erm-syn-warnline ((,class :inherit modus-themes-lang-warning)))
   4652 ;;;;; epa
   4653     `(epa-field-body ((,class :foreground ,fg-main)))
   4654     `(epa-field-name ((,class :inherit bold :foreground ,fg-dim)))
   4655     `(epa-mark ((,class :inherit bold :foreground ,magenta)))
   4656     `(epa-string ((,class :foreground ,blue-alt)))
   4657     `(epa-validity-disabled ((,class :foreground ,red)))
   4658     `(epa-validity-high ((,class :inherit bold :foreground ,cyan)))
   4659     `(epa-validity-low ((,class :inherit shadow)))
   4660     `(epa-validity-medium ((,class :foreground ,green-alt)))
   4661 ;;;;; equake
   4662     `(equake-buffer-face ((,class :background ,bg-main :foreground ,fg-main)))
   4663     `(equake-shell-type-eshell ((,class :background ,bg-inactive :foreground ,blue-active)))
   4664     `(equake-shell-type-rash ((,class :background ,bg-inactive :foreground ,red-active)))
   4665     `(equake-shell-type-shell ((,class :background ,bg-inactive :foreground ,cyan-active)))
   4666     `(equake-shell-type-term ((,class :background ,bg-inactive :foreground ,yellow-active)))
   4667     `(equake-shell-type-vterm ((,class :background ,bg-inactive :foreground ,magenta-active)))
   4668     `(equake-tab-active ((,class :background ,fg-alt :foreground ,bg-alt)))
   4669     `(equake-tab-inactive ((,class :foreground ,fg-inactive)))
   4670 ;;;;; erc
   4671     `(erc-action-face ((,class :inherit bold :foreground ,cyan)))
   4672     `(erc-bold-face ((,class :inherit bold)))
   4673     `(erc-button ((,class :inherit button)))
   4674     `(erc-command-indicator-face ((,class :inherit bold :foreground ,cyan-alt)))
   4675     `(erc-current-nick-face ((,class :foreground ,magenta-alt-other)))
   4676     `(erc-dangerous-host-face ((,class :inherit modus-themes-intense-red)))
   4677     `(erc-direct-msg-face ((,class :foreground ,magenta)))
   4678     `(erc-error-face ((,class :inherit bold :foreground ,red)))
   4679     `(erc-fool-face ((,class :foreground ,fg-inactive)))
   4680     `(erc-header-line ((,class :background ,bg-header :foreground ,fg-header)))
   4681     `(erc-input-face ((,class :foreground ,fg-special-calm)))
   4682     `(erc-inverse-face ((,class :inherit erc-default-face :inverse-video t)))
   4683     `(erc-keyword-face ((,class :inherit bold :foreground ,magenta-alt)))
   4684     `(erc-my-nick-face ((,class :inherit bold :foreground ,magenta)))
   4685     `(erc-my-nick-prefix-face ((,class :inherit erc-my-nick-face)))
   4686     `(erc-nick-default-face ((,class :inherit bold :foreground ,blue)))
   4687     `(erc-nick-msg-face ((,class :inherit bold :foreground ,green)))
   4688     `(erc-nick-prefix-face ((,class :inherit erc-nick-default-face)))
   4689     `(erc-notice-face ((,class :foreground ,fg-unfocused)))
   4690     `(erc-pal-face ((,class :inherit bold :foreground ,red-alt)))
   4691     `(erc-prompt-face ((,class :inherit modus-themes-prompt)))
   4692     `(erc-timestamp-face ((,class :foreground ,blue-nuanced-fg)))
   4693     `(erc-underline-face ((,class :underline t)))
   4694     `(bg:erc-color-face0 ((,class :background "white")))
   4695     `(bg:erc-color-face1 ((,class :background "black")))
   4696     `(bg:erc-color-face10 ((,class :background ,cyan-subtle-bg)))
   4697     `(bg:erc-color-face11 ((,class :background ,cyan-intense-bg)))
   4698     `(bg:erc-color-face12 ((,class :background ,blue-subtle-bg)))
   4699     `(bg:erc-color-face13 ((,class :background ,magenta-subtle-bg)))
   4700     `(bg:erc-color-face14 ((,class :background "gray60")))
   4701     `(bg:erc-color-face15 ((,class :background "gray80")))
   4702     `(bg:erc-color-face2 ((,class :background ,blue-intense-bg)))
   4703     `(bg:erc-color-face3 ((,class :background ,green-intense-bg)))
   4704     `(bg:erc-color-face4 ((,class :background ,red-subtle-bg)))
   4705     `(bg:erc-color-face5 ((,class :background ,red-intense-bg)))
   4706     `(bg:erc-color-face6 ((,class :background ,magenta-refine-bg)))
   4707     `(bg:erc-color-face7 ((,class :background ,yellow-subtle-bg)))
   4708     `(bg:erc-color-face8 ((,class :background ,yellow-refine-bg)))
   4709     `(bg:erc-color-face9 ((,class :background ,green-subtle-bg)))
   4710     `(fg:erc-color-face0 ((,class :foreground "white")))
   4711     `(fg:erc-color-face1 ((,class :foreground "black")))
   4712     `(fg:erc-color-face10 ((,class :foreground ,cyan)))
   4713     `(fg:erc-color-face11 ((,class :foreground ,cyan-alt-other)))
   4714     `(fg:erc-color-face12 ((,class :foreground ,blue)))
   4715     `(fg:erc-color-face13 ((,class :foreground ,magenta-alt)))
   4716     `(fg:erc-color-face14 ((,class :foreground "gray60")))
   4717     `(fg:erc-color-face15 ((,class :foreground "gray80")))
   4718     `(fg:erc-color-face2 ((,class :foreground ,blue-alt-other)))
   4719     `(fg:erc-color-face3 ((,class :foreground ,green)))
   4720     `(fg:erc-color-face4 ((,class :foreground ,red)))
   4721     `(fg:erc-color-face5 ((,class :foreground ,red-alt)))
   4722     `(fg:erc-color-face6 ((,class :foreground ,magenta-alt-other)))
   4723     `(fg:erc-color-face7 ((,class :foreground ,yellow-alt-other)))
   4724     `(fg:erc-color-face8 ((,class :foreground ,yellow-alt)))
   4725     `(fg:erc-color-face9 ((,class :foreground ,green-alt-other)))
   4726 ;;;;; eros
   4727     `(eros-result-overlay-face ((,class :box (:line-width -1 :color ,blue)
   4728                                         :background ,bg-dim :foreground ,fg-dim)))
   4729 ;;;;; ert
   4730     `(ert-test-result-expected ((,class :inherit modus-themes-intense-green)))
   4731     `(ert-test-result-unexpected ((,class :inherit modus-themes-intense-red)))
   4732 ;;;;; eshell
   4733     `(eshell-ls-archive ((,class :foreground ,cyan-alt)))
   4734     `(eshell-ls-backup ((,class :inherit shadow)))
   4735     `(eshell-ls-clutter ((,class :foreground ,red-alt)))
   4736     `(eshell-ls-directory ((,class :foreground ,blue-alt)))
   4737     `(eshell-ls-executable ((,class :foreground ,magenta-alt)))
   4738     `(eshell-ls-missing ((,class :inherit modus-themes-intense-red)))
   4739     `(eshell-ls-product ((,class :inherit shadow)))
   4740     `(eshell-ls-readonly ((,class :foreground ,yellow-faint)))
   4741     `(eshell-ls-special ((,class :foreground ,magenta)))
   4742     `(eshell-ls-symlink ((,class :foreground ,cyan)))
   4743     `(eshell-ls-unreadable ((,class :background ,bg-inactive :foreground ,fg-inactive)))
   4744     `(eshell-prompt ((,class :inherit modus-themes-prompt)))
   4745 ;;;;; eshell-fringe-status
   4746     `(eshell-fringe-status-failure ((,class :inherit error)))
   4747     `(eshell-fringe-status-success ((,class :inherit success)))
   4748 ;;;;; eshell-git-prompt
   4749     `(eshell-git-prompt-add-face ((,class :foreground ,magenta-alt-other)))
   4750     `(eshell-git-prompt-branch-face ((,class :foreground ,magenta-alt)))
   4751     `(eshell-git-prompt-directory-face ((,class :inherit bold :foreground ,blue)))
   4752     `(eshell-git-prompt-exit-fail-face ((,class :inherit error)))
   4753     `(eshell-git-prompt-exit-success-face ((,class :inherit success)))
   4754     `(eshell-git-prompt-modified-face ((,class :foreground ,yellow)))
   4755     `(eshell-git-prompt-powerline-clean-face ((,class :background ,green-refine-bg)))
   4756     `(eshell-git-prompt-powerline-dir-face ((,class :background ,blue-refine-bg)))
   4757     `(eshell-git-prompt-powerline-not-clean-face ((,class :background ,yellow-fringe-bg)))
   4758     `(eshell-git-prompt-robyrussell-branch-face ((,class :foreground ,magenta-alt)))
   4759     `(eshell-git-prompt-robyrussell-git-dirty-face ((,class :foreground ,yellow)))
   4760     `(eshell-git-prompt-robyrussell-git-face ((,class :foreground ,magenta-alt-other)))
   4761 ;;;;; eshell-prompt-extras (epe)
   4762     `(epe-dir-face ((,class :inherit bold :foreground ,blue)))
   4763     `(epe-git-dir-face ((,class :foreground ,red-alt-other)))
   4764     `(epe-git-face ((,class :foreground ,magenta-alt)))
   4765     `(epe-pipeline-delimiter-face ((,class :inherit shadow)))
   4766     `(epe-pipeline-host-face ((,class :foreground ,fg-main)))
   4767     `(epe-pipeline-time-face ((,class :foreground ,fg-main)))
   4768     `(epe-pipeline-user-face ((,class :foreground ,magenta-alt-other)))
   4769     `(epe-remote-face ((,class :inherit (shadow modus-themes-slant))))
   4770     `(epe-status-face ((,class :foreground ,magenta-alt-other)))
   4771     `(epe-venv-face ((,class :inherit (shadow modus-themes-slant))))
   4772 ;;;;; eshell-syntax-highlighting
   4773     `(eshell-syntax-highlighting-directory-face ((,class :inherit eshell-ls-directory)))
   4774     `(eshell-syntax-highlighting-invalid-face ((,class :foreground ,red)))
   4775     `(eshell-syntax-highlighting-shell-command-face ((,class :foreground ,fg-main)))
   4776 ;;;;; evil-mode
   4777     `(evil-ex-commands ((,class :foreground ,magenta-alt-other)))
   4778     `(evil-ex-info ((,class :foreground ,cyan-alt-other)))
   4779     `(evil-ex-lazy-highlight ((,class :inherit modus-themes-search-success-lazy)))
   4780     `(evil-ex-search ((,class :inherit modus-themes-search-success)))
   4781     `(evil-ex-substitute-matches ((,class :inherit modus-themes-refine-yellow :underline t)))
   4782     `(evil-ex-substitute-replacement ((,class :inherit (modus-themes-search-success bold))))
   4783 ;;;;; evil-goggles
   4784     `(evil-goggles-change-face ((,class :inherit modus-themes-refine-yellow)))
   4785     `(evil-goggles-commentary-face ((,class :inherit (modus-themes-subtle-neutral modus-themes-slant))))
   4786     `(evil-goggles-default-face ((,class :inherit modus-themes-subtle-neutral)))
   4787     `(evil-goggles-delete-face ((,class :inherit modus-themes-refine-red)))
   4788     `(evil-goggles-fill-and-move-face ((,class :inherit evil-goggles-default-face)))
   4789     `(evil-goggles-indent-face ((,class :inherit evil-goggles-default-face)))
   4790     `(evil-goggles-join-face ((,class :inherit modus-themes-subtle-green)))
   4791     `(evil-goggles-nerd-commenter-face ((,class :inherit evil-goggles-commentary-face)))
   4792     `(evil-goggles-paste-face ((,class :inherit modus-themes-subtle-cyan)))
   4793     `(evil-goggles-record-macro-face ((,class :inherit modus-themes-special-cold)))
   4794     `(evil-goggles-replace-with-register-face ((,class :inherit modus-themes-refine-magenta)))
   4795     `(evil-goggles-set-marker-face ((,class :inherit modus-themes-intense-magenta)))
   4796     `(evil-goggles-shift-face ((,class :inherit evil-goggles-default-face)))
   4797     `(evil-goggles-surround-face ((,class :inherit evil-goggles-default-face)))
   4798     `(evil-goggles-yank-face ((,class :inherit modus-themes-subtle-blue)))
   4799 ;;;;; evil-snipe
   4800     `(evil-snipe-first-match-face ((,class :inherit (bold modus-themes-intense-blue))))
   4801     `(evil-snipe-matches-face ((,class :inherit modus-themes-refine-magenta)))
   4802 ;;;;; evil-visual-mark-mode
   4803     `(evil-visual-mark-face ((,class :inherit modus-themes-intense-magenta)))
   4804 ;;;;; eww
   4805     `(eww-invalid-certificate ((,class :foreground ,red-faint)))
   4806     `(eww-valid-certificate ((,class :foreground ,blue-faint)))
   4807     `(eww-form-checkbox ((,class :inherit eww-form-text)))
   4808     `(eww-form-file ((,class :inherit eww-form-submit)))
   4809     `(eww-form-select ((,class :inherit eww-form-submit)))
   4810     `(eww-form-submit ((,class :box (:line-width 2 :style released-button)
   4811                                :background ,bg-active)))
   4812     `(eww-form-text ((,class :box ,bg-active :background ,bg-alt)))
   4813     `(eww-form-textarea ((,class :background ,bg-alt)))
   4814 ;;;;; eyebrowse
   4815     `(eyebrowse-mode-line-active ((,class :inherit bold :foreground ,blue-active)))
   4816 ;;;;; fancy-dabbrev
   4817     `(fancy-dabbrev-menu-face ((,class :background ,bg-alt :foreground ,fg-alt)))
   4818     `(fancy-dabbrev-preview-face ((,class :inherit shadow :underline t)))
   4819     `(fancy-dabbrev-selection-face ((,class :inherit (modus-themes-intense-cyan bold))))
   4820 ;;;;; flycheck
   4821     `(flycheck-error ((,class :inherit modus-themes-lang-error)))
   4822     `(flycheck-error-list-checker-name ((,class :foreground ,magenta-active)))
   4823     `(flycheck-error-list-column-number ((,class :foreground ,fg-special-cold)))
   4824     `(flycheck-error-list-error ((,class :inherit modus-themes-bold :foreground ,red)))
   4825     `(flycheck-error-list-filename ((,class :foreground ,blue)))
   4826     `(flycheck-error-list-highlight ((,class :inherit modus-themes-hl-line)))
   4827     `(flycheck-error-list-id ((,class :foreground ,magenta-alt-other)))
   4828     `(flycheck-error-list-id-with-explainer ((,class :inherit flycheck-error-list-id :box t)))
   4829     `(flycheck-error-list-info ((,class :foreground ,cyan)))
   4830     `(flycheck-error-list-line-number ((,class :foreground ,fg-special-warm)))
   4831     `(flycheck-error-list-warning ((,class :foreground ,yellow)))
   4832     `(flycheck-fringe-error ((,class :inherit modus-themes-fringe-red)))
   4833     `(flycheck-fringe-info ((,class :inherit modus-themes-fringe-cyan)))
   4834     `(flycheck-fringe-warning ((,class :inherit modus-themes-fringe-yellow)))
   4835     `(flycheck-info ((,class :inherit modus-themes-lang-note)))
   4836     `(flycheck-verify-select-checker ((,class :box (:line-width 1 :color nil :style released-button))))
   4837     `(flycheck-warning ((,class :inherit modus-themes-lang-warning)))
   4838 ;;;;; flycheck-color-mode-line
   4839     `(flycheck-color-mode-line-error-face ((,class :inherit flycheck-fringe-error)))
   4840     `(flycheck-color-mode-line-info-face ((,class :inherit flycheck-fringe-info)))
   4841     `(flycheck-color-mode-line-running-face ((,class :inherit italic :foreground ,fg-inactive)))
   4842     `(flycheck-color-mode-line-info-face ((,class :inherit flycheck-fringe-warning)))
   4843 ;;;;; flycheck-indicator
   4844     `(flycheck-indicator-disabled ((,class :inherit modus-themes-slant :foreground ,fg-inactive)))
   4845     `(flycheck-indicator-error ((,class :inherit modus-themes-bold :foreground ,red-active)))
   4846     `(flycheck-indicator-info ((,class :inherit modus-themes-bold :foreground ,blue-active)))
   4847     `(flycheck-indicator-running ((,class :inherit modus-themes-bold :foreground ,magenta-active)))
   4848     `(flycheck-indicator-success ((,class :inherit modus-themes-bold
   4849                                           :foreground ,@(modus-themes--success-deuteran
   4850                                                          blue-active
   4851                                                          green-active))))
   4852     `(flycheck-indicator-warning ((,class :inherit modus-themes-bold :foreground ,yellow-active)))
   4853 ;;;;; flycheck-posframe
   4854     `(flycheck-posframe-background-face ((,class :background ,bg-alt)))
   4855     `(flycheck-posframe-border-face ((,class :inherit shadow)))
   4856     `(flycheck-posframe-error-face ((,class :inherit bold :foreground ,red)))
   4857     `(flycheck-posframe-face ((,class :inherit modus-themes-slant :foreground ,fg-main)))
   4858     `(flycheck-posframe-info-face ((,class :inherit bold :foreground ,cyan)))
   4859     `(flycheck-posframe-warning-face ((,class :inherit bold :foreground ,yellow)))
   4860 ;;;;; flymake
   4861     `(flymake-error ((,class :inherit modus-themes-lang-error)))
   4862     `(flymake-note ((,class :inherit modus-themes-lang-note)))
   4863     `(flymake-warning ((,class :inherit modus-themes-lang-warning)))
   4864 ;;;;; flyspell
   4865     `(flyspell-duplicate ((,class :inherit modus-themes-lang-warning)))
   4866     `(flyspell-incorrect ((,class :inherit modus-themes-lang-error)))
   4867 ;;;;; flyspell-correct
   4868     `(flyspell-correct-highlight-face ((,class :inherit modus-themes-refine-green)))
   4869 ;;;;; flx
   4870     `(flx-highlight-face ((,class ,@(modus-themes--extra-completions
   4871                                      'modus-themes-subtle-magenta
   4872                                      'modus-themes-intense-magenta
   4873                                      'modus-themes-nuanced-magenta
   4874                                      magenta-alt
   4875                                      'bold))))
   4876 ;;;;; freeze-it
   4877     `(freeze-it-show ((,class :background ,bg-dim :foreground ,fg-special-warm)))
   4878 ;;;;; frog-menu
   4879     `(frog-menu-action-keybinding-face ((,class :inherit modus-themes-key-binding)))
   4880     `(frog-menu-actions-face ((,class :foreground ,magenta)))
   4881     `(frog-menu-border ((,class :background ,bg-active)))
   4882     `(frog-menu-candidates-face ((,class :foreground ,fg-main)))
   4883     `(frog-menu-posframe-background-face ((,class :background ,bg-dim)))
   4884     `(frog-menu-prompt-face ((,class :foreground ,cyan)))
   4885 ;;;;; focus
   4886     `(focus-unfocused ((,class :foreground ,fg-unfocused)))
   4887 ;;;;; fold-this
   4888     `(fold-this-overlay ((,class :inherit modus-themes-special-mild)))
   4889 ;;;;; font-lock
   4890     `(font-lock-builtin-face ((,class :inherit modus-themes-bold
   4891                                       ,@(modus-themes--syntax-extra
   4892                                          magenta-alt magenta-alt-faint blue-alt))))
   4893     `(font-lock-comment-delimiter-face ((,class :inherit font-lock-comment-face)))
   4894     `(font-lock-comment-face ((,class :inherit modus-themes-slant
   4895                                       ,@(modus-themes--syntax-comment
   4896                                          fg-alt fg-comment-yellow))))
   4897     `(font-lock-constant-face ((,class ,@(modus-themes--syntax-extra
   4898                                           blue-alt-other blue-alt-other-faint magenta-alt-other))))
   4899     `(font-lock-doc-face ((,class :inherit modus-themes-slant
   4900                                   ,@(modus-themes--syntax-docstring
   4901                                      fg-docstring green-alt-other-faint
   4902                                      green-alt-other-faint magenta-nuanced-fg))))
   4903     `(font-lock-function-name-face ((,class ,@(modus-themes--syntax-extra
   4904                                                magenta magenta-faint magenta-alt))))
   4905     `(font-lock-keyword-face ((,class :inherit modus-themes-bold
   4906                                       ,@(modus-themes--syntax-extra
   4907                                          magenta-alt-other magenta-alt-other-faint cyan-alt-other))))
   4908     `(font-lock-negation-char-face ((,class :inherit modus-themes-bold
   4909                                             ,@(modus-themes--syntax-foreground
   4910                                                yellow yellow-faint))))
   4911     `(font-lock-preprocessor-face ((,class ,@(modus-themes--syntax-foreground
   4912                                               red-alt-other red-alt-other-faint))))
   4913     `(font-lock-regexp-grouping-backslash ((,class :inherit bold
   4914                                                    ,@(modus-themes--syntax-string
   4915                                                       fg-escape-char-backslash yellow-alt-faint
   4916                                                       magenta-alt-other blue-alt))))
   4917     `(font-lock-regexp-grouping-construct ((,class :inherit bold
   4918                                                    ,@(modus-themes--syntax-string
   4919                                                       fg-escape-char-construct red-alt-other-faint
   4920                                                       red magenta-alt))))
   4921     `(font-lock-string-face ((,class ,@(modus-themes--syntax-string
   4922                                         blue-alt blue-alt-faint green green-alt))))
   4923     `(font-lock-type-face ((,class :inherit modus-themes-bold
   4924                                    ,@(modus-themes--syntax-extra
   4925                                       cyan-alt-other cyan-alt-faint cyan-alt))))
   4926     `(font-lock-variable-name-face ((,class ,@(modus-themes--syntax-extra
   4927                                                cyan cyan-faint blue-alt-faint))))
   4928     `(font-lock-warning-face ((,class :inherit modus-themes-bold
   4929                                       ,@(modus-themes--syntax-foreground
   4930                                          yellow-active yellow-alt-faint))))
   4931 ;;;;; forge
   4932     `(forge-post-author ((,class :inherit bold :foreground ,fg-main)))
   4933     `(forge-post-date ((,class :foreground ,fg-special-cold)))
   4934     `(forge-topic-closed ((,class :inherit shadow)))
   4935     `(forge-topic-merged ((,class :inherit shadow)))
   4936     `(forge-topic-open ((,class :foreground ,fg-special-mild)))
   4937     `(forge-topic-unmerged ((,class :inherit modus-themes-slant :foreground ,magenta)))
   4938     `(forge-topic-unread ((,class :inherit bold :foreground ,fg-main)))
   4939 ;;;;; fountain-mode
   4940     `(fountain-character ((,class :foreground ,blue-alt-other)))
   4941     `(fountain-comment ((,class :inherit modus-themes-slant :foreground ,fg-alt)))
   4942     `(fountain-dialog ((,class :foreground ,blue-alt)))
   4943     `(fountain-metadata-key ((,class :foreground ,green-alt-other)))
   4944     `(fountain-metadata-value ((,class :foreground ,blue)))
   4945     `(fountain-non-printing ((,class :inherit shadow)))
   4946     `(fountain-note ((,class :inherit modus-themes-slant :foreground ,yellow)))
   4947     `(fountain-page-break ((,class :inherit bold :foreground ,red-alt)))
   4948     `(fountain-page-number ((,class :inherit bold :foreground ,red-alt-other)))
   4949     `(fountain-paren ((,class :foreground ,cyan)))
   4950     `(fountain-scene-heading ((,class :inherit bold :foreground ,blue-nuanced-fg)))
   4951     `(fountain-section-heading ((,class :inherit modus-themes-heading-1)))
   4952     `(fountain-section-heading-1 ((,class :inherit modus-themes-heading-1)))
   4953     `(fountain-section-heading-2 ((,class :inherit modus-themes-heading-2)))
   4954     `(fountain-section-heading-3 ((,class :inherit modus-themes-heading-3)))
   4955     `(fountain-section-heading-4 ((,class :inherit modus-themes-heading-4)))
   4956     `(fountain-section-heading-5 ((,class :inherit modus-themes-heading-5)))
   4957     `(fountain-synopsis ((,class :foreground ,cyan-alt)))
   4958     `(fountain-trans ((,class :foreground ,yellow-alt-other)))
   4959 ;;;;; geiser
   4960     `(geiser-font-lock-autodoc-current-arg ((,class :inherit font-lock-function-name-face)))
   4961     `(geiser-font-lock-autodoc-identifier ((,class :inherit font-lock-constant-face)))
   4962     `(geiser-font-lock-doc-button ((,class :inherit button :foreground ,fg-docstring)))
   4963     `(geiser-font-lock-doc-link ((,class :inherit button)))
   4964     `(geiser-font-lock-error-link ((,class :inherit button :foreground ,red)))
   4965     `(geiser-font-lock-image-button ((,class :inherit button :foreground ,green-alt)))
   4966     `(geiser-font-lock-repl-input ((,class :inherit bold)))
   4967     `(geiser-font-lock-repl-output ((,class :inherit font-lock-keyword-face)))
   4968     `(geiser-font-lock-repl-prompt ((,class :inherit modus-themes-prompt)))
   4969     `(geiser-font-lock-xref-header ((,class :inherit bold)))
   4970     `(geiser-font-lock-xref-link ((,class :inherit button)))
   4971 ;;;;; git-commit
   4972     `(git-commit-comment-action ((,class :inherit font-lock-comment-face)))
   4973     `(git-commit-comment-branch-local ((,class :inherit modus-themes-slant :foreground ,blue-alt)))
   4974     `(git-commit-comment-branch-remote ((,class :inherit modus-themes-slant :foreground ,magenta-alt)))
   4975     `(git-commit-comment-detached ((,class :inherit modus-themes-slant :foreground ,cyan-alt)))
   4976     `(git-commit-comment-file ((,class :inherit modus-themes-slant
   4977                                        ,@(modus-themes--syntax-comment
   4978                                           fg-special-cold red-nuanced-fg))))
   4979     `(git-commit-comment-heading ((,class :inherit (bold modus-themes-slant)
   4980                                           ,@(modus-themes--syntax-comment
   4981                                              fg-dim fg-special-warm))))
   4982     `(git-commit-keyword ((,class :foreground ,magenta)))
   4983     `(git-commit-known-pseudo-header ((,class :foreground ,cyan-alt-other)))
   4984     `(git-commit-nonempty-second-line ((,class :inherit modus-themes-refine-yellow)))
   4985     `(git-commit-overlong-summary ((,class :inherit modus-themes-refine-yellow)))
   4986     `(git-commit-pseudo-header ((,class :foreground ,blue)))
   4987     `(git-commit-summary ((,class :inherit bold :foreground ,cyan)))
   4988 ;;;;; git-gutter
   4989     `(git-gutter:added ((,class :inherit ,@(modus-themes--diff-deuteran
   4990                                             'modus-themes-fringe-blue
   4991                                             'modus-themes-fringe-green))))
   4992     `(git-gutter:deleted ((,class :inherit modus-themes-fringe-red)))
   4993     `(git-gutter:modified ((,class :inherit modus-themes-fringe-yellow)))
   4994     `(git-gutter:separator ((,class :inherit modus-themes-fringe-cyan)))
   4995     `(git-gutter:unchanged ((,class :inherit modus-themes-fringe-magenta)))
   4996 ;;;;; git-gutter-fr
   4997     `(git-gutter-fr:added ((,class :inherit ,@(modus-themes--diff-deuteran
   4998                                                'modus-themes-fringe-blue
   4999                                                'modus-themes-fringe-green))))
   5000     `(git-gutter-fr:deleted ((,class :inherit modus-themes-fringe-red)))
   5001     `(git-gutter-fr:modified ((,class :inherit modus-themes-fringe-yellow)))
   5002 ;;;;; git-{gutter,fringe}+
   5003     `(git-gutter+-added ((,class :inherit ,@(modus-themes--diff-deuteran
   5004                                           'modus-themes-fringe-blue
   5005                                           'modus-themes-fringe-green))))
   5006     `(git-gutter+-deleted ((,class :inherit modus-themes-fringe-red)))
   5007     `(git-gutter+-modified ((,class :inherit modus-themes-fringe-yellow)))
   5008     `(git-gutter+-separator ((,class :inherit modus-themes-fringe-cyan)))
   5009     `(git-gutter+-unchanged ((,class :inherit modus-themes-fringe-magenta)))
   5010     `(git-gutter-fr+-added ((,class :inherit modus-themes-fringe-green)))
   5011     `(git-gutter-fr+-deleted ((,class :inherit modus-themes-fringe-red)))
   5012     `(git-gutter-fr+-modified ((,class :inherit modus-themes-fringe-yellow)))
   5013 ;;;;; git-lens
   5014     `(git-lens-added ((,class :inherit bold :foreground ,@(modus-themes--diff-deuteran blue green))))
   5015     `(git-lens-deleted ((,class :inherit bold :foreground ,red)))
   5016     `(git-lens-header ((,class :inherit bold :height 1.1 :foreground ,cyan)))
   5017     `(git-lens-modified ((,class :inherit bold :foreground ,yellow)))
   5018     `(git-lens-renamed ((,class :inherit bold :foreground ,magenta)))
   5019 ;;;;; git-rebase
   5020     `(git-rebase-comment-hash ((,class :inherit modus-themes-slant
   5021                                        ,@(modus-themes--syntax-comment
   5022                                           fg-special-cold red-nuanced-fg))))
   5023     `(git-rebase-comment-heading  ((,class :inherit (bold modus-themes-slant)
   5024                                            ,@(modus-themes--syntax-comment
   5025                                               fg-dim fg-special-warm))))
   5026     `(git-rebase-description ((,class :foreground ,fg-main)))
   5027     `(git-rebase-hash ((,class :foreground ,cyan-alt-other)))
   5028 ;;;;; git-timemachine
   5029     `(git-timemachine-commit ((,class :inherit bold :foreground ,yellow-active)))
   5030     `(git-timemachine-minibuffer-author-face ((,class :foreground ,fg-special-warm)))
   5031     `(git-timemachine-minibuffer-detail-face ((,class :foreground ,red-alt)))
   5032 ;;;;; git-walktree
   5033     `(git-walktree-commit-face ((,class :foreground ,yellow)))
   5034     `(git-walktree-symlink-face ((,class :inherit button)))
   5035     `(git-walktree-tree-face ((,class :foreground ,magenta)))
   5036 ;;;;; gnus
   5037     `(gnus-button ((,class :inherit button)))
   5038     `(gnus-cite-1 ((,class :inherit message-cited-text-1)))
   5039     `(gnus-cite-2 ((,class :inherit message-cited-text-2)))
   5040     `(gnus-cite-3 ((,class :inherit message-cited-text-3)))
   5041     `(gnus-cite-4 ((,class :inherit message-cited-text-4)))
   5042     `(gnus-cite-5 ((,class :inherit gnus-cite-1)))
   5043     `(gnus-cite-6 ((,class :inherit gnus-cite-2)))
   5044     `(gnus-cite-7 ((,class :inherit gnus-cite-3)))
   5045     `(gnus-cite-8 ((,class :inherit gnus-cite-4)))
   5046     `(gnus-cite-9 ((,class :inherit gnus-cite-1)))
   5047     `(gnus-cite-10 ((,class :inherit gnus-cite-2)))
   5048     `(gnus-cite-11 ((,class :inherit gnus-cite-3)))
   5049     `(gnus-cite-attribution ((,class :inherit italic :foreground ,fg-main)))
   5050     `(gnus-emphasis-bold ((,class :inherit bold)))
   5051     `(gnus-emphasis-bold-italic ((,class :inherit bold-italic)))
   5052     `(gnus-emphasis-highlight-words ((,class :inherit modus-themes-refine-yellow)))
   5053     `(gnus-emphasis-italic ((,class :inherit italic)))
   5054     `(gnus-emphasis-underline-bold ((,class :inherit gnus-emphasis-bold :underline t)))
   5055     `(gnus-emphasis-underline-bold-italic ((,class :inherit gnus-emphasis-bold-italic :underline t)))
   5056     `(gnus-emphasis-underline-italic ((,class :inherit gnus-emphasis-italic :underline t)))
   5057     `(gnus-group-mail-1 ((,class :inherit bold :foreground ,magenta-alt)))
   5058     `(gnus-group-mail-1-empty ((,class :foreground ,magenta-alt)))
   5059     `(gnus-group-mail-2 ((,class :inherit bold :foreground ,magenta)))
   5060     `(gnus-group-mail-2-empty ((,class :foreground ,magenta)))
   5061     `(gnus-group-mail-3 ((,class :inherit bold :foreground ,magenta-alt-other)))
   5062     `(gnus-group-mail-3-empty ((,class :foreground ,magenta-alt-other)))
   5063     `(gnus-group-mail-low ((,class :inherit bold :foreground ,magenta-nuanced-fg)))
   5064     `(gnus-group-mail-low-empty ((,class :foreground ,magenta-nuanced-fg)))
   5065     `(gnus-group-news-1 ((,class :inherit bold :foreground ,green)))
   5066     `(gnus-group-news-1-empty ((,class :foreground ,green)))
   5067     `(gnus-group-news-2 ((,class :inherit bold :foreground ,cyan)))
   5068     `(gnus-group-news-2-empty ((,class :foreground ,cyan)))
   5069     `(gnus-group-news-3 ((,class :inherit bold :foreground ,yellow-nuanced-fg)))
   5070     `(gnus-group-news-3-empty ((,class :foreground ,yellow-nuanced-fg)))
   5071     `(gnus-group-news-4 ((,class :inherit bold :foreground ,cyan-nuanced-fg)))
   5072     `(gnus-group-news-4-empty ((,class :foreground ,cyan-nuanced-fg)))
   5073     `(gnus-group-news-5 ((,class :inherit bold :foreground ,red-nuanced-fg)))
   5074     `(gnus-group-news-5-empty ((,class :foreground ,red-nuanced-fg)))
   5075     `(gnus-group-news-6 ((,class :inherit bold :foreground ,fg-unfocused)))
   5076     `(gnus-group-news-6-empty ((,class :foreground ,fg-unfocused)))
   5077     `(gnus-group-news-low ((,class :inherit bold :foreground ,green-nuanced-fg)))
   5078     `(gnus-group-news-low-empty ((,class :foreground ,green-nuanced-fg)))
   5079     `(gnus-header-content ((,class :inherit message-header-other)))
   5080     `(gnus-header-from ((,class :inherit message-header-to :underline nil)))
   5081     `(gnus-header-name ((,class :inherit message-header-name)))
   5082     `(gnus-header-newsgroups ((,class :inherit message-header-newsgroups)))
   5083     `(gnus-header-subject ((,class :inherit message-header-subject)))
   5084     `(gnus-server-agent ((,class :inherit bold :foreground ,cyan)))
   5085     `(gnus-server-closed ((,class :inherit bold :foreground ,magenta)))
   5086     `(gnus-server-cloud ((,class :inherit bold :foreground ,cyan-alt)))
   5087     `(gnus-server-cloud-host ((,class :inherit modus-themes-refine-cyan)))
   5088     `(gnus-server-denied ((,class :inherit bold :foreground ,red)))
   5089     `(gnus-server-offline ((,class :inherit bold :foreground ,yellow)))
   5090     `(gnus-server-opened ((,class :inherit bold :foreground ,green)))
   5091     `(gnus-signature ((,class :inherit italic :foreground ,fg-special-cold)))
   5092     `(gnus-splash ((,class :inherit shadow)))
   5093     `(gnus-summary-cancelled ((,class :inherit modus-themes-mark-alt :extend t)))
   5094     `(gnus-summary-high-ancient ((,class :inherit bold :foreground ,fg-alt)))
   5095     `(gnus-summary-high-read ((,class :inherit bold :foreground ,fg-special-cold)))
   5096     `(gnus-summary-high-ticked ((,class :inherit bold :foreground ,red-alt-other)))
   5097     `(gnus-summary-high-undownloaded ((,class :inherit bold :foreground ,yellow)))
   5098     `(gnus-summary-high-unread ((,class :inherit bold :foreground ,fg-main)))
   5099     `(gnus-summary-low-ancient ((,class :inherit italic :foreground ,fg-alt)))
   5100     `(gnus-summary-low-read ((,class :inherit italic :foreground ,fg-alt)))
   5101     `(gnus-summary-low-ticked ((,class :inherit italic :foreground ,red-refine-fg)))
   5102     `(gnus-summary-low-undownloaded ((,class :inherit italic :foreground ,yellow-refine-fg)))
   5103     `(gnus-summary-low-unread ((,class :inherit bold :foreground ,fg-special-cold)))
   5104     `(gnus-summary-normal-ancient ((,class :foreground ,fg-special-calm)))
   5105     `(gnus-summary-normal-read ((,class :inherit shadow)))
   5106     `(gnus-summary-normal-ticked ((,class :foreground ,red-alt-other)))
   5107     `(gnus-summary-normal-undownloaded ((,class :foreground ,yellow)))
   5108     `(gnus-summary-normal-unread ((,class :foreground ,fg-main)))
   5109     `(gnus-summary-selected ((,class :inherit highlight :extend t)))
   5110 ;;;;; golden-ratio-scroll-screen
   5111     `(golden-ratio-scroll-highlight-line-face ((,class :background ,cyan-subtle-bg :foreground ,fg-main)))
   5112 ;;;;; helm
   5113     `(helm-M-x-key ((,class :inherit modus-themes-key-binding)))
   5114     `(helm-action ((,class :underline t)))
   5115     `(helm-bookmark-addressbook ((,class :foreground ,green-alt)))
   5116     `(helm-bookmark-directory ((,class :inherit bold :foreground ,blue)))
   5117     `(helm-bookmark-file ((,class :foreground ,fg-main)))
   5118     `(helm-bookmark-file-not-found ((,class :background ,bg-alt :foreground ,fg-alt)))
   5119     `(helm-bookmark-gnus ((,class :foreground ,magenta)))
   5120     `(helm-bookmark-info ((,class :foreground ,cyan-alt)))
   5121     `(helm-bookmark-man ((,class :foreground ,yellow-alt)))
   5122     `(helm-bookmark-w3m ((,class :foreground ,blue-alt)))
   5123     `(helm-buffer-archive ((,class :inherit bold :foreground ,cyan)))
   5124     `(helm-buffer-directory ((,class :inherit bold :foreground ,blue)))
   5125     `(helm-buffer-file ((,class :foreground ,fg-main)))
   5126     `(helm-buffer-modified ((,class :foreground ,yellow-alt)))
   5127     `(helm-buffer-not-saved ((,class :foreground ,red-alt)))
   5128     `(helm-buffer-process ((,class :foreground ,magenta)))
   5129     `(helm-buffer-saved-out ((,class :inherit bold :background ,bg-alt :foreground ,red)))
   5130     `(helm-buffer-size ((,class :inherit shadow)))
   5131     `(helm-candidate-number ((,class :foreground ,cyan-active)))
   5132     `(helm-candidate-number-suspended ((,class :foreground ,yellow-active)))
   5133     `(helm-comint-prompts-buffer-name ((,class :foreground ,green-active)))
   5134     `(helm-comint-prompts-promptidx ((,class :foreground ,cyan-active)))
   5135     `(helm-delete-async-message ((,class :inherit bold :foreground ,magenta-active)))
   5136     `(helm-eob-line ((,class :background ,bg-main :foreground ,fg-main)))
   5137     `(helm-eshell-prompts-buffer-name ((,class :foreground ,green-active)))
   5138     `(helm-eshell-prompts-promptidx ((,class :foreground ,cyan-active)))
   5139     `(helm-etags-file ((,class :foreground ,fg-dim :underline t)))
   5140     `(helm-ff-backup-file ((,class :inherit shadow)))
   5141     `(helm-ff-denied ((,class ,@(modus-themes--extra-completions
   5142                                  'modus-themes-subtle-red
   5143                                  'modus-themes-intense-red
   5144                                  'modus-themes-nuanced-red
   5145                                  red))))
   5146     `(helm-ff-directory ((,class :inherit helm-buffer-directory)))
   5147     `(helm-ff-dirs ((,class :inherit bold :foreground ,blue-alt-other)))
   5148     `(helm-ff-dotted-directory ((,class :inherit bold :background ,bg-alt :foreground ,fg-alt)))
   5149     `(helm-ff-dotted-symlink-directory ((,class :inherit (button helm-ff-dotted-directory))))
   5150     `(helm-ff-executable ((,class :foreground ,magenta-alt)))
   5151     `(helm-ff-file ((,class :foreground ,fg-main)))
   5152     `(helm-ff-file-extension ((,class :foreground ,fg-special-warm)))
   5153     `(helm-ff-invalid-symlink ((,class :inherit button
   5154                                        ,@(modus-themes--link-color
   5155                                           red red-faint))))
   5156     `(helm-ff-pipe ((,class ,@(modus-themes--extra-completions
   5157                                'modus-themes-refine-magenta
   5158                                'modus-themes-subtle-magenta
   5159                                'modus-themes-nuanced-magenta
   5160                                magenta))))
   5161     `(helm-ff-prefix ((,class ,@(modus-themes--extra-completions
   5162                                  'modus-themes-refine-yellow
   5163                                  'modus-themes-subtle-yellow
   5164                                  'modus-themes-nuanced-yellow
   5165                                  yellow-alt-other))))
   5166     `(helm-ff-socket ((,class :foreground ,red-alt-other)))
   5167     `(helm-ff-suid ((,class ,@(modus-themes--extra-completions
   5168                                'modus-themes-subtle-red
   5169                                'modus-themes-refine-red
   5170                                'modus-themes-nuanced-yellow
   5171                                red-alt))))
   5172     `(helm-ff-symlink ((,class :inherit button
   5173                                ,@(modus-themes--link-color
   5174                                   cyan cyan-faint))))
   5175     `(helm-ff-truename ((,class :foreground ,blue-alt-other)))
   5176     `(helm-fd-finish ((,class :foreground ,green-active)))
   5177     `(helm-grep-cmd-line ((,class :foreground ,yellow-alt-other)))
   5178     `(helm-grep-file ((,class :inherit bold :foreground ,fg-special-cold)))
   5179     `(helm-grep-finish ((,class :foreground ,green-active)))
   5180     `(helm-grep-lineno ((,class :foreground ,fg-special-warm)))
   5181     `(helm-grep-match ((,class :inherit modus-themes-special-calm)))
   5182     `(helm-header ((,class :inherit bold :foreground ,fg-special-cold)))
   5183     `(helm-header-line-left-margin ((,class :inherit bold :foreground ,yellow-intense)))
   5184     `(helm-history-deleted ((,class ,@(modus-themes--extra-completions
   5185                                        'modus-themes-subtle-red
   5186                                        'modus-themes-intense-red
   5187                                        'modus-themes-nuanced-red
   5188                                        red
   5189                                        'bold))))
   5190     `(helm-history-remote ((,class :foreground ,red-alt-other)))
   5191     `(helm-lisp-completion-info ((,class :foreground ,fg-special-warm)))
   5192     `(helm-lisp-show-completion ((,class ,@(modus-themes--extra-completions
   5193                                             'modus-themes-subtle-yellow
   5194                                             'modus-themes-refine-yellow
   5195                                             'modus-themes-nuanced-yellow
   5196                                             yellow
   5197                                             'bold))))
   5198     `(helm-locate-finish ((,class :foreground ,green-active)))
   5199     `(helm-match ((,class ,@(modus-themes--extra-completions
   5200                              'modus-themes-subtle-cyan
   5201                              'modus-themes-refine-cyan
   5202                              'modus-themes-nuanced-cyan
   5203                              cyan
   5204                              'bold))))
   5205     `(helm-match-item ((,class ,@(modus-themes--extra-completions
   5206                                   'modus-themes-subtle-neutral
   5207                                   'modus-themes-subtle-cyan
   5208                                   'modus-themes-nuanced-cyan
   5209                                   cyan-alt-other))))
   5210     `(helm-minibuffer-prompt ((,class :inherit modus-themes-prompt)))
   5211     `(helm-moccur-buffer ((,class :inherit button
   5212                                   ,@(modus-themes--link-color
   5213                                      cyan-alt-other cyan-alt-other-faint))))
   5214     `(helm-mode-prefix ((,class ,@(modus-themes--extra-completions
   5215                                    'modus-themes-subtle-magenta
   5216                                    'modus-themes-intense-magenta
   5217                                    'modus-themes-nuanced-magenta
   5218                                    magenta-alt
   5219                                    'bold))))
   5220     `(helm-non-file-buffer ((,class :inherit shadow)))
   5221     `(helm-prefarg ((,class :foreground ,red-active)))
   5222     `(helm-resume-need-update ((,class ,@(modus-themes--extra-completions
   5223                                           'modus-themes-subtle-magenta
   5224                                           'modus-themes-refine-magenta
   5225                                           'modus-themes-nuanced-magenta
   5226                                           magenta-alt-other))))
   5227     `(helm-selection ((,class ,@(modus-themes--extra-completions
   5228                                  'modus-themes-subtle-blue
   5229                                  'modus-themes-refine-blue
   5230                                  'modus-themes-special-cold
   5231                                  nil
   5232                                  'bold))))
   5233     `(helm-selection-line ((,class :inherit modus-themes-special-cold)))
   5234     `(helm-separator ((,class :foreground ,fg-special-mild)))
   5235     `(helm-time-zone-current ((,class :foreground ,green)))
   5236     `(helm-time-zone-home ((,class :foreground ,magenta)))
   5237     `(helm-source-header ((,class :inherit bold :foreground ,red-alt
   5238                                   ,@(modus-themes--scale modus-themes-scale-4))))
   5239     `(helm-top-columns ((,class :inherit helm-header)))
   5240     `(helm-ucs-char ((,class :foreground ,yellow-alt-other)))
   5241     `(helm-visible-mark ((,class :inherit modus-themes-subtle-cyan)))
   5242 ;;;;; helm-ls-git
   5243     `(helm-ls-git-added-copied-face ((,class :foreground ,green-intense)))
   5244     `(helm-ls-git-added-modified-face ((,class :foreground ,yellow-intense)))
   5245     `(helm-ls-git-conflict-face ((,class :inherit bold :foreground ,red-intense)))
   5246     `(helm-ls-git-deleted-and-staged-face ((,class :foreground ,red-nuanced-fg)))
   5247     `(helm-ls-git-deleted-not-staged-face ((,class :foreground ,red)))
   5248     `(helm-ls-git-modified-and-staged-face ((,class :foreground ,yellow-nuanced-fg)))
   5249     `(helm-ls-git-modified-not-staged-face ((,class :foreground ,yellow)))
   5250     `(helm-ls-git-renamed-modified-face ((,class :foreground ,magenta)))
   5251     `(helm-ls-git-untracked-face ((,class :foreground ,fg-special-cold)))
   5252 ;;;;; helm-switch-shell
   5253     `(helm-switch-shell-new-shell-face ((,class ,@(modus-themes--extra-completions
   5254                                                    'modus-themes-subtle-magenta
   5255                                                    'modus-themes-refine-magenta
   5256                                                    'modus-themes-nuanced-magenta
   5257                                                    magenta-alt-other
   5258                                                    'bold))))
   5259 ;;;;; helm-xref
   5260     `(helm-xref-file-name ((,class :inherit bold :foreground ,fg-special-cold)))
   5261     `(helm-xref-file-name ((,class :foreground ,fg-special-warm)))
   5262 ;;;;; helpful
   5263     `(helpful-heading ((,class :inherit modus-themes-heading-1)))
   5264 ;;;;; highlight region or ad-hoc regexp
   5265     `(hi-aquamarine ((,class :background ,cyan-subtle-bg :foreground ,fg-main)))
   5266     `(hi-black-b ((,class :inherit bold :background ,fg-main :foreground ,bg-main)))
   5267     `(hi-black-hb ((,class :inherit bold :background ,fg-alt :foreground ,bg-main)))
   5268     `(hi-blue ((,class :background ,blue-subtle-bg :foreground ,fg-main)))
   5269     `(hi-blue-b ((,class :inherit (bold hi-blue))))
   5270     `(hi-green ((,class :background ,green-subtle-bg :foreground ,fg-main)))
   5271     `(hi-green-b ((,class :inherit (bold hi-green))))
   5272     `(hi-pink ((,class :background ,magenta-subtle-bg :foreground ,fg-main)))
   5273     `(hi-pink-b ((,class :inherit (bold hi-pink))))
   5274     `(hi-red-b ((,class :inherit bold :background ,red-intense-bg :foreground ,fg-main)))
   5275     `(hi-salmon ((,class :background ,red-subtle-bg :foreground ,fg-main)))
   5276     `(hi-yellow ((,class :background ,yellow-subtle-bg :foreground ,fg-main)))
   5277     `(highlight ((,class :background ,blue-subtle-bg :foreground ,fg-main)))
   5278     `(highlight-changes ((,class :foreground ,red-alt :underline nil)))
   5279     `(highlight-changes-delete ((,class :background ,red-nuanced-bg
   5280                                         :foreground ,red :underline t)))
   5281     `(hl-line ((,class :inherit modus-themes-hl-line)))
   5282 ;;;;; highlight-blocks
   5283     `(highlight-blocks-depth-1-face ((,class :background ,bg-dim :foreground ,fg-main)))
   5284     `(highlight-blocks-depth-2-face ((,class :background ,bg-alt :foreground ,fg-main)))
   5285     `(highlight-blocks-depth-3-face ((,class :background ,bg-special-cold :foreground ,fg-main)))
   5286     `(highlight-blocks-depth-4-face ((,class :background ,bg-special-calm :foreground ,fg-main)))
   5287     `(highlight-blocks-depth-5-face ((,class :background ,bg-special-warm :foreground ,fg-main)))
   5288     `(highlight-blocks-depth-6-face ((,class :background ,bg-special-mild :foreground ,fg-main)))
   5289     `(highlight-blocks-depth-7-face ((,class :background ,bg-inactive :foreground ,fg-main)))
   5290     `(highlight-blocks-depth-8-face ((,class :background ,bg-active :foreground ,fg-main)))
   5291     `(highlight-blocks-depth-9-face ((,class :background ,cyan-subtle-bg :foreground ,fg-main)))
   5292 ;;;;; highlight-defined
   5293     `(highlight-defined-builtin-function-name-face ((,class :foreground ,magenta)))
   5294     `(highlight-defined-face-name-face ((,class :foreground ,fg-main)))
   5295     `(highlight-defined-function-name-face ((,class :foreground ,magenta)))
   5296     `(highlight-defined-macro-name-face ((,class :foreground ,magenta-alt)))
   5297     `(highlight-defined-special-form-name-face ((,class :foreground ,magenta-alt-other)))
   5298     `(highlight-defined-variable-name-face ((,class :foreground ,cyan)))
   5299 ;;;;; highlight-escape-sequences (`hes-mode')
   5300     `(hes-escape-backslash-face ((,class :inherit font-lock-regexp-grouping-construct)))
   5301     `(hes-escape-sequence-face ((,class :inherit font-lock-regexp-grouping-backslash)))
   5302 ;;;;; highlight-indentation
   5303     `(highlight-indentation-face ((,class :inherit modus-themes-hl-line)))
   5304     `(highlight-indentation-current-column-face ((,class :background ,bg-active)))
   5305 ;;;;; highlight-numbers
   5306     `(highlight-numbers-number ((,class :foreground ,blue-alt-other)))
   5307 ;;;;; highlight-symbol
   5308     `(highlight-symbol-face ((,class :inherit modus-themes-special-mild)))
   5309 ;;;;; highlight-thing
   5310     `(highlight-thing ((,class :background ,bg-alt :foreground ,cyan)))
   5311 ;;;;; hl-defined
   5312     `(hdefd-functions ((,class :foreground ,blue)))
   5313     `(hdefd-undefined ((,class :foreground ,red-alt)))
   5314     `(hdefd-variables ((,class :foreground ,cyan-alt)))
   5315 ;;;;; hl-fill-column
   5316     `(hl-fill-column-face ((,class :background ,bg-active :foreground ,fg-active)))
   5317 ;;;;; hl-todo
   5318     `(hl-todo ((,class :inherit (bold modus-themes-slant) :foreground ,red-alt-other)))
   5319 ;;;;; hydra
   5320     `(hydra-face-amaranth ((,class :inherit bold :foreground ,yellow-alt)))
   5321     `(hydra-face-blue ((,class :inherit bold :foreground ,blue)))
   5322     `(hydra-face-pink ((,class :inherit bold :foreground ,magenta-alt-faint)))
   5323     `(hydra-face-red ((,class :inherit bold :foreground ,red-faint)))
   5324     `(hydra-face-teal ((,class :inherit bold :foreground ,cyan-alt-other)))
   5325 ;;;;; hyperlist
   5326     `(hyperlist-condition ((,class :foreground ,green)))
   5327     `(hyperlist-hashtag ((,class :foreground ,yellow)))
   5328     `(hyperlist-operator ((,class :foreground ,blue-alt)))
   5329     `(hyperlist-paren ((,class :foreground ,cyan-alt-other)))
   5330     `(hyperlist-quote ((,class :foreground ,cyan-alt)))
   5331     `(hyperlist-ref ((,class :foreground ,magenta-alt-other)))
   5332     `(hyperlist-stars ((,class :inherit shadow)))
   5333     `(hyperlist-tag ((,class :foreground ,red)))
   5334     `(hyperlist-toplevel ((,class :inherit bold :foreground ,fg-main)))
   5335 ;;;;; icomplete
   5336     `(icomplete-first-match ((,class :inherit bold
   5337                                      ,@(modus-themes--standard-completions
   5338                                         magenta bg-alt
   5339                                         bg-active fg-main))))
   5340 ;;;;; icomplete-vertical
   5341     `(icomplete-vertical-separator ((,class :inherit shadow)))
   5342 ;;;;; ido-mode
   5343     `(ido-first-match ((,class :inherit bold
   5344                                ,@(modus-themes--standard-completions
   5345                                   magenta bg-alt
   5346                                   bg-active fg-main))))
   5347     `(ido-incomplete-regexp ((,class :inherit error)))
   5348     `(ido-indicator ((,class :inherit modus-themes-subtle-yellow)))
   5349     `(ido-only-match ((,class :inherit bold
   5350                               ,@(modus-themes--standard-completions
   5351                                  green green-nuanced-bg
   5352                                  green-intense-bg fg-main))))
   5353     `(ido-subdir ((,class :foreground ,blue)))
   5354     `(ido-virtual ((,class :foreground ,fg-special-warm)))
   5355 ;;;;; iedit
   5356     `(iedit-occurrence ((,class :inherit modus-themes-refine-blue)))
   5357     `(iedit-read-only-occurrence ((,class :inherit modus-themes-intense-yellow)))
   5358 ;;;;; iflipb
   5359     `(iflipb-current-buffer-face ((,class :inherit bold :foreground ,cyan-alt)))
   5360     `(iflipb-other-buffer-face ((,class :inherit shadow)))
   5361 ;;;;; imenu-list
   5362     `(imenu-list-entry-face-0 ((,class :foreground ,cyan)))
   5363     `(imenu-list-entry-face-1 ((,class :foreground ,blue)))
   5364     `(imenu-list-entry-face-2 ((,class :foreground ,cyan-alt-other)))
   5365     `(imenu-list-entry-face-3 ((,class :foreground ,blue-alt)))
   5366     `(imenu-list-entry-subalist-face-0 ((,class :inherit bold :foreground ,magenta-alt-other :underline t)))
   5367     `(imenu-list-entry-subalist-face-1 ((,class :inherit bold :foreground ,magenta :underline t)))
   5368     `(imenu-list-entry-subalist-face-2 ((,class :inherit bold :foreground ,green-alt-other :underline t)))
   5369     `(imenu-list-entry-subalist-face-3 ((,class :inherit bold :foreground ,red-alt-other :underline t)))
   5370 ;;;;; indium
   5371     `(indium-breakpoint-face ((,class :foreground ,red-active)))
   5372     `(indium-frame-url-face ((,class :inherit button :foreground ,fg-alt)))
   5373     `(indium-keyword-face ((,class :inherit font-lock-keyword-face)))
   5374     `(indium-litable-face ((,class :inherit modus-themes-slant :foreground ,fg-special-warm)))
   5375     `(indium-repl-error-face ((,class :inherit error)))
   5376     `(indium-repl-prompt-face ((,class :inherit modus-themes-prompt)))
   5377     `(indium-repl-stdout-face ((,class :foreground ,fg-main)))
   5378 ;;;;; info
   5379     `(Info-quoted ((,class :inherit modus-themes-fixed-pitch ; the capitalization is canonical
   5380                            :background ,bg-alt :foreground ,fg-special-calm)))
   5381     `(info-header-node ((,class :inherit bold :foreground ,fg-alt)))
   5382     `(info-header-xref ((,class :foreground ,blue-active)))
   5383     `(info-index-match ((,class :inherit match)))
   5384     `(info-menu-header ((,class :inherit modus-themes-heading-3)))
   5385     `(info-menu-star ((,class :foreground ,red)))
   5386     `(info-node ((,class :inherit bold)))
   5387     `(info-title-1 ((,class :inherit modus-themes-heading-1)))
   5388     `(info-title-2 ((,class :inherit modus-themes-heading-2)))
   5389     `(info-title-3 ((,class :inherit modus-themes-heading-3)))
   5390     `(info-title-4 ((,class :inherit modus-themes-heading-4)))
   5391 ;;;;; info-colors
   5392     `(info-colors-lisp-code-block ((,class :inherit fixed-pitch)))
   5393     `(info-colors-ref-item-command ((,class :inherit font-lock-function-name-face)))
   5394     `(info-colors-ref-item-constant ((,class :inherit font-lock-constant-face)))
   5395     `(info-colors-ref-item-function ((,class :inherit font-lock-function-name-face)))
   5396     `(info-colors-ref-item-macro ((,class :inherit font-lock-keyword-face)))
   5397     `(info-colors-ref-item-other ((,class :inherit font-lock-doc-face)))
   5398     `(info-colors-ref-item-special-form ((,class :inherit font-lock-keyword-face)))
   5399     `(info-colors-ref-item-syntax-class ((,class :inherit font-lock-builtin-face)))
   5400     `(info-colors-ref-item-type ((,class :inherit font-lock-type-face)))
   5401     `(info-colors-ref-item-user-option ((,class :inherit font-lock-variable-name-face)))
   5402     `(info-colors-ref-item-variable ((,class :inherit font-lock-variable-name-face)))
   5403 ;;;;; interaction-log
   5404     `(ilog-buffer-face ((,class :foreground ,magenta-alt-other)))
   5405     `(ilog-change-face ((,class :foreground ,magenta-alt)))
   5406     `(ilog-echo-face ((,class :foreground ,yellow-alt-other)))
   5407     `(ilog-load-face ((,class :foreground ,green)))
   5408     `(ilog-message-face ((,class :inherit shadow)))
   5409     `(ilog-non-change-face ((,class :foreground ,blue)))
   5410 ;;;;; ioccur
   5411     `(ioccur-cursor ((,class :foreground ,fg-main)))
   5412     `(ioccur-invalid-regexp ((,class :foreground ,red)))
   5413     `(ioccur-match-face ((,class :inherit modus-themes-special-calm)))
   5414     `(ioccur-match-overlay-face ((,class :inherit modus-themes-special-cold :extend t)))
   5415     `(ioccur-num-line-face ((,class :foreground ,fg-special-warm)))
   5416     `(ioccur-overlay-face ((,class :inherit modus-themes-refine-blue :extend t)))
   5417     `(ioccur-regexp-face ((,class :inherit (modus-themes-intense-magenta bold))))
   5418     `(ioccur-title-face ((,class :inherit bold :foreground ,red-alt
   5419                                  ,@(modus-themes--scale modus-themes-scale-4))))
   5420 ;;;;; isearch, occur, and the like
   5421     `(isearch ((,class :inherit (modus-themes-search-success bold))))
   5422     `(isearch-fail ((,class :inherit modus-themes-refine-red)))
   5423     `(isearch-group-1 ((,class :inherit modus-themes-refine-blue)))
   5424     `(isearch-group-2 ((,class :inherit modus-themes-refine-magenta)))
   5425     `(lazy-highlight ((,class :inherit modus-themes-search-success-lazy)))
   5426     `(match ((,class :inherit modus-themes-special-calm)))
   5427     `(query-replace ((,class :inherit (modus-themes-intense-yellow bold))))
   5428 ;;;;; isl (isearch-light)
   5429     `(isl-line ((,class :inherit ,@(modus-themes--success-deuteran
   5430                                     'modus-themes-subtle-blue
   5431                                     'modus-themes-subtle-green))))
   5432     `(isl-match ((,class :inherit modus-themes-search-success-lazy)))
   5433     `(isl-number ((,class :inherit (modus-themes-bold modus-themes-search-success-modeline))))
   5434     `(isl-on ((,class :inherit (bold modus-themes-search-success))))
   5435     `(isl-string ((,class :inherit modus-themes-bold :foreground ,cyan-active)))
   5436 ;;;;; ivy
   5437     `(ivy-action ((,class :inherit bold :foreground ,red-alt)))
   5438     `(ivy-completions-annotations ((,class :inherit completions-annotations)))
   5439     `(ivy-confirm-face ((,class :foreground ,cyan)))
   5440     `(ivy-current-match ((,class ,@(modus-themes--extra-completions
   5441                                     'modus-themes-refine-cyan
   5442                                     'modus-themes-intense-cyan
   5443                                     'modus-themes-special-cold
   5444                                     nil
   5445                                     'bold))))
   5446     `(ivy-cursor ((,class :background ,fg-main :foreground ,bg-main)))
   5447     `(ivy-grep-info ((,class :foreground ,cyan-alt)))
   5448     `(ivy-grep-line-number ((,class :foreground ,fg-special-warm)))
   5449     `(ivy-highlight-face ((,class :foreground ,magenta)))
   5450     `(ivy-match-required-face ((,class :inherit error)))
   5451     `(ivy-minibuffer-match-face-1 ((,class ,@(modus-themes--extra-completions
   5452                                               'modus-themes-subtle-neutral
   5453                                               'modus-themes-intense-neutral
   5454                                               'modus-themes-nuanced-cyan
   5455                                               fg-alt))))
   5456     `(ivy-minibuffer-match-face-2 ((,class ,@(modus-themes--extra-completions
   5457                                               'modus-themes-subtle-green
   5458                                               'modus-themes-refine-green
   5459                                               'modus-themes-nuanced-green
   5460                                               green-alt-other
   5461                                               'bold))))
   5462     `(ivy-minibuffer-match-face-3 ((,class ,@(modus-themes--extra-completions
   5463                                               'modus-themes-subtle-blue
   5464                                               'modus-themes-refine-blue
   5465                                               'modus-themes-nuanced-blue
   5466                                               blue-alt-other
   5467                                               'bold))))
   5468     `(ivy-minibuffer-match-face-4 ((,class ,@(modus-themes--extra-completions
   5469                                               'modus-themes-subtle-magenta
   5470                                               'modus-themes-refine-magenta
   5471                                               'modus-themes-nuanced-magenta
   5472                                               magenta-alt-other
   5473                                               'bold))))
   5474     `(ivy-minibuffer-match-highlight ((,class ,@(modus-themes--extra-completions
   5475                                                  'modus-themes-subtle-cyan
   5476                                                  'modus-themes-intense-cyan
   5477                                                  'modus-themes-nuanced-cyan
   5478                                                  cyan-alt-other
   5479                                                  'bold))))
   5480     `(ivy-modified-buffer ((,class :inherit modus-themes-slant :foreground ,yellow)))
   5481     `(ivy-modified-outside-buffer ((,class :inherit modus-themes-slant :foreground ,yellow-alt)))
   5482     `(ivy-org ((,class :foreground ,cyan-alt-other)))
   5483     `(ivy-prompt-match ((,class :inherit ivy-current-match)))
   5484     `(ivy-remote ((,class :foreground ,magenta)))
   5485     `(ivy-separator ((,class :inherit shadow)))
   5486     `(ivy-subdir ((,class :foreground ,blue-alt-other)))
   5487     `(ivy-virtual ((,class :foreground ,magenta-alt-other)))
   5488     `(ivy-yanked-word ((,class ,@(modus-themes--extra-completions
   5489                                   'modus-themes-subtle-blue
   5490                                   'modus-themes-refine-blue
   5491                                   'modus-themes-nuanced-blue
   5492                                   blue-alt))))
   5493 ;;;;; ivy-posframe
   5494     `(ivy-posframe ((,class :background ,bg-dim :foreground ,fg-main)))
   5495     `(ivy-posframe-border ((,class :background ,fg-window-divider-inner)))
   5496     `(ivy-posframe-cursor ((,class :background ,fg-main :foreground ,bg-main)))
   5497 ;;;;; jira (org-jira)
   5498     `(jiralib-comment-face ((,class :background ,bg-alt)))
   5499     `(jiralib-comment-header-face ((,class :inherit bold)))
   5500     `(jiralib-issue-info-face ((,class :inherit modus-themes-special-warm)))
   5501     `(jiralib-issue-info-header-face ((,class :inherit (modus-themes-special-warm bold))))
   5502     `(jiralib-issue-summary-face ((,class :inherit bold)))
   5503     `(jiralib-link-filter-face ((,class :underline t)))
   5504     `(jiralib-link-issue-face ((,class :underline t)))
   5505     `(jiralib-link-project-face ((,class :underline t)))
   5506 ;;;;; journalctl-mode
   5507     `(journalctl-error-face ((,class :inherit error)))
   5508     `(journalctl-finished-face ((,class :inherit success)))
   5509     `(journalctl-host-face ((,class :foreground ,blue)))
   5510     `(journalctl-process-face ((,class :foreground ,cyan-alt-other)))
   5511     `(journalctl-starting-face ((,class :foreground ,green)))
   5512     `(journalctl-timestamp-face ((,class :foreground ,fg-special-cold)))
   5513     `(journalctl-warning-face ((,class :inherit warning)))
   5514 ;;;;; js2-mode
   5515     `(js2-error ((,class :inherit modus-themes-lang-error)))
   5516     `(js2-external-variable ((,class :inherit font-lock-variable-name-face)))
   5517     `(js2-function-call ((,class :inherit font-lock-function-name-face)))
   5518     `(js2-function-param ((,class :inherit font-lock-constant-face)))
   5519     `(js2-instance-member ((,class :inherit font-lock-keyword-face)))
   5520     `(js2-jsdoc-html-tag-delimiter ((,class :foreground ,fg-main)))
   5521     `(js2-jsdoc-html-tag-name ((,class :inherit font-lock-function-name-face)))
   5522     `(js2-jsdoc-tag ((,class :inherit (font-lock-builtin-face font-lock-comment-face) :weight normal)))
   5523     `(js2-jsdoc-type ((,class :inherit (font-lock-type-face font-lock-comment-face) :weight normal)))
   5524     `(js2-jsdoc-value ((,class :inherit (font-lock-constant-face font-lock-comment-face) :weight normal)))
   5525     `(js2-object-property ((,class :foreground ,fg-main)))
   5526     `(js2-object-property-access ((,class :foreground ,fg-main)))
   5527     `(js2-private-function-call ((,class :inherit font-lock-preprocessor-face)))
   5528     `(js2-private-member ((,class :inherit font-lock-warning-face)))
   5529     `(js2-warning ((,class :inherit modus-themes-lang-warning)))
   5530 ;;;;; julia
   5531     `(julia-macro-face ((,class :inherit font-lock-builtin-face)))
   5532     `(julia-quoted-symbol-face ((,class :inherit font-lock-constant-face)))
   5533 ;;;;; jupyter
   5534     `(jupyter-eval-overlay ((,class :inherit bold :foreground ,blue)))
   5535     `(jupyter-repl-input-prompt ((,class :foreground ,cyan-alt-other)))
   5536     `(jupyter-repl-output-prompt ((,class :foreground ,magenta-alt-other)))
   5537     `(jupyter-repl-traceback ((,class :inherit modus-themes-intense-red)))
   5538 ;;;;; kaocha-runner
   5539     `(kaocha-runner-error-face ((,class :inherit error)))
   5540     `(kaocha-runner-success-face ((,class :inherit success)))
   5541     `(kaocha-runner-warning-face ((,class :inherit warning)))
   5542 ;;;;; keycast
   5543     `(keycast-command ((,class :inherit bold :foreground ,blue-active)))
   5544     `(keycast-key ((,class :background ,blue-active :foreground ,bg-main)))
   5545 ;;;;; ledger-mode
   5546     `(ledger-font-auto-xact-face ((,class :foreground ,magenta)))
   5547     `(ledger-font-account-name-face ((,class :foreground ,fg-special-cold)))
   5548     `(ledger-font-directive-face ((,class :foreground ,magenta-alt-other)))
   5549     `(ledger-font-posting-date-face ((,class :inherit bold :foreground ,fg-main)))
   5550     `(ledger-font-periodic-xact-face ((,class :foreground ,cyan-alt-other)))
   5551     `(ledger-font-posting-amount-face ((,class :foreground ,fg-special-mild)))
   5552     `(ledger-font-payee-cleared-face ((,class :foreground ,blue-alt)))
   5553     `(ledger-font-payee-pending-face ((,class :foreground ,yellow)))
   5554     `(ledger-font-payee-uncleared-face ((,class :foreground ,red-alt-other)))
   5555     `(ledger-font-xact-highlight-face ((,class :background ,bg-hl-alt)))
   5556 ;;;;; line numbers (display-line-numbers-mode and global variant)
   5557     `(line-number
   5558       ((,class :inherit default
   5559                ,@(modus-themes--line-numbers
   5560                   fg-alt bg-dim
   5561                   fg-unfocused))))
   5562     `(line-number-current-line
   5563       ((,class :inherit (bold default)
   5564                ,@(modus-themes--line-numbers
   5565                   fg-main bg-active
   5566                   blue-alt-other))))
   5567     `(line-number-major-tick
   5568       ((,class :inherit (bold default)
   5569                ,@(modus-themes--line-numbers
   5570                   yellow-nuanced-fg yellow-nuanced-bg
   5571                   red-alt))))
   5572     `(line-number-minor-tick
   5573       ((,class :inherit (bold default)
   5574                ,@(modus-themes--line-numbers
   5575                   fg-alt bg-inactive
   5576                   fg-inactive))))
   5577 ;;;;; lsp-mode
   5578     `(lsp-face-highlight-read ((,class :inherit modus-themes-subtle-blue :underline t)))
   5579     `(lsp-face-highlight-textual ((,class :inherit modus-themes-subtle-blue)))
   5580     `(lsp-face-highlight-write ((,class :inherit (modus-themes-refine-blue bold))))
   5581     `(lsp-face-semhl-constant ((,class :foreground ,blue-alt-other)))
   5582     `(lsp-face-semhl-deprecated ((,class :inherit modus-themes-lang-warning)))
   5583     `(lsp-face-semhl-enummember ((,class :foreground ,blue-alt-other)))
   5584     `(lsp-face-semhl-field ((,class :foreground ,cyan-alt)))
   5585     `(lsp-face-semhl-field-static ((,class :inherit modus-themes-slant :foreground ,cyan-alt)))
   5586     `(lsp-face-semhl-function ((,class :foreground ,magenta)))
   5587     `(lsp-face-semhl-method ((,class :foreground ,magenta)))
   5588     `(lsp-face-semhl-namespace ((,class :inherit modus-themes-bold :foreground ,magenta-alt)))
   5589     `(lsp-face-semhl-preprocessor ((,class :foreground ,red-alt-other)))
   5590     `(lsp-face-semhl-static-method ((,class :inherit modus-themes-slant :foreground ,magenta)))
   5591     `(lsp-face-semhl-type-class ((,class :foreground ,magenta-alt)))
   5592     `(lsp-face-semhl-type-enum ((,class :foreground ,magenta-alt)))
   5593     `(lsp-face-semhl-type-primitive ((,class :inherit modus-themes-slant :foreground ,magenta-alt)))
   5594     `(lsp-face-semhl-type-template ((,class :inherit modus-themes-slant :foreground ,magenta-alt)))
   5595     `(lsp-face-semhl-type-typedef ((,class :inherit modus-themes-slant :foreground ,magenta-alt)))
   5596     `(lsp-face-semhl-variable ((,class :foreground ,cyan)))
   5597     `(lsp-face-semhl-variable-local ((,class :foreground ,cyan)))
   5598     `(lsp-face-semhl-variable-parameter ((,class :foreground ,cyan-alt-other)))
   5599     `(lsp-lens-face ((,class :height 0.8 :foreground ,fg-alt)))
   5600     `(lsp-lens-mouse-face ((,class :height 0.8 :foreground ,blue-alt-other :underline t)))
   5601     `(lsp-ui-doc-background ((,class :background ,bg-alt)))
   5602     `(lsp-ui-doc-header ((,class :background ,bg-header :foreground ,fg-header)))
   5603     `(lsp-ui-doc-url ((,class :inherit button)))
   5604     `(lsp-ui-peek-filename ((,class :foreground ,fg-special-warm)))
   5605     `(lsp-ui-peek-footer ((,class :background ,bg-header :foreground ,fg-header)))
   5606     `(lsp-ui-peek-header ((,class :background ,bg-header :foreground ,fg-header)))
   5607     `(lsp-ui-peek-highlight ((,class :inherit modus-themes-subtle-blue)))
   5608     `(lsp-ui-peek-line-number ((,class :inherit shadow)))
   5609     `(lsp-ui-peek-list ((,class :background ,bg-dim)))
   5610     `(lsp-ui-peek-peek ((,class :background ,bg-alt)))
   5611     `(lsp-ui-peek-selection ((,class :inherit modus-themes-subtle-cyan)))
   5612     `(lsp-ui-sideline-code-action ((,class :foreground ,yellow)))
   5613     `(lsp-ui-sideline-current-symbol ((,class :inherit bold :height 0.99 :box (:line-width -1 :style nil) :foreground ,fg-main)))
   5614     `(lsp-ui-sideline-symbol ((,class :inherit bold :height 0.99 :box (:line-width -1 :style nil) :foreground ,fg-alt)))
   5615     `(lsp-ui-sideline-symbol-info ((,class :inherit italic :height 0.99)))
   5616 ;;;;; macrostep
   5617     `(macrostep-compiler-macro-face ((,class :inherit italic)))
   5618     `(macrostep-expansion-highlight-face ((,class :background ,blue-nuanced-bg)))
   5619     `(macrostep-gensym-1 ((,class :inherit bold :foreground ,blue :box t)))
   5620     `(macrostep-gensym-2 ((,class :inherit bold :foreground ,green :box t)))
   5621     `(macrostep-gensym-3 ((,class :inherit bold :foreground ,yellow :box t)))
   5622     `(macrostep-gensym-4 ((,class :inherit bold :foreground ,red :box t)))
   5623     `(macrostep-gensym-5 ((,class :inherit bold :foreground ,magenta :box t)))
   5624     `(macrostep-macro-face ((,class :inherit button :foreground ,green-alt)))
   5625 ;;;;; magit
   5626     `(magit-bisect-bad ((,class :foreground ,red-alt-other)))
   5627     `(magit-bisect-good ((,class :foreground ,green-alt-other)))
   5628     `(magit-bisect-skip ((,class :foreground ,yellow-alt-other)))
   5629     `(magit-blame-date ((,class :foreground ,blue)))
   5630     `(magit-blame-dimmed ((,class :inherit (shadow modus-themes-reset-hard))))
   5631     `(magit-blame-hash ((,class :foreground ,fg-special-warm)))
   5632     `(magit-blame-heading ((,class :inherit modus-themes-reset-hard :background ,bg-alt :extend t)))
   5633     `(magit-blame-highlight ((,class :inherit modus-themes-nuanced-cyan)))
   5634     `(magit-blame-margin ((,class :inherit (magit-blame-highlight modus-themes-reset-hard))))
   5635     `(magit-blame-name ((,class :foreground ,magenta-alt-other)))
   5636     `(magit-blame-summary ((,class :foreground ,cyan-alt-other)))
   5637     `(magit-branch-current ((,class :foreground ,blue-alt-other :box t)))
   5638     `(magit-branch-local ((,class :foreground ,blue-alt)))
   5639     `(magit-branch-remote ((,class :foreground ,magenta-alt)))
   5640     `(magit-branch-remote-head ((,class :foreground ,magenta-alt-other :box t)))
   5641     `(magit-branch-upstream ((,class :inherit italic)))
   5642     `(magit-cherry-equivalent ((,class :background ,bg-main :foreground ,magenta-intense)))
   5643     `(magit-cherry-unmatched ((,class :background ,bg-main :foreground ,cyan-intense)))
   5644     ;; NOTE: here we break from the pattern of inheriting from the
   5645     ;; modus-themes-diff-* faces, though only for the standard actions,
   5646     ;; not the highlighted ones.  This is because Magit's interaction
   5647     ;; model relies on highlighting the current diff hunk.
   5648     `(magit-diff-added ((,class ,@(modus-themes--diff
   5649                                    bg-main blue-alt-other
   5650                                    bg-diff-added fg-diff-added
   5651                                    green-nuanced-bg fg-diff-added
   5652                                    bg-diff-added-deuteran fg-diff-added-deuteran))))
   5653     `(magit-diff-added-highlight ((,class :inherit modus-themes-diff-focus-added)))
   5654     `(magit-diff-base ((,class ,@(modus-themes--diff
   5655                                   bg-main yellow
   5656                                   bg-diff-changed fg-diff-changed
   5657                                   yellow-nuanced-bg fg-diff-changed))))
   5658     `(magit-diff-base-highlight ((,class :inherit modus-themes-diff-focus-changed)))
   5659     `(magit-diff-context ((,class ,@(unless (eq modus-themes-diffs 'bg-only) (list :foreground fg-unfocused)))))
   5660     `(magit-diff-context-highlight ((,class ,@(modus-themes--diff
   5661                                                bg-dim fg-dim
   5662                                                bg-inactive fg-inactive
   5663                                                bg-dim fg-alt
   5664                                                bg-dim fg-alt))))
   5665     `(magit-diff-file-heading ((,class :inherit bold :foreground ,fg-special-cold)))
   5666     `(magit-diff-file-heading-highlight ((,class :inherit (modus-themes-special-cold bold))))
   5667     `(magit-diff-file-heading-selection ((,class :inherit modus-themes-refine-cyan)))
   5668     ;; NOTE: here we break from the pattern of inheriting from the
   5669     ;; modus-themes-diff-* faces.
   5670     `(magit-diff-hunk-heading ((,class :inherit bold
   5671                                        ,@(modus-themes--diff
   5672                                           bg-alt fg-alt
   5673                                           bg-active fg-inactive
   5674                                           bg-inactive fg-inactive
   5675                                           bg-inactive fg-inactive
   5676                                           t))))
   5677     `(magit-diff-hunk-heading-highlight
   5678       ((,class :inherit bold
   5679                :background ,@(modus-themes--diff-deuteran bg-active bg-diff-heading)
   5680                :foreground ,@(modus-themes--diff-deuteran fg-main fg-diff-heading))))
   5681     `(magit-diff-hunk-heading-selection ((,class :inherit modus-themes-refine-blue)))
   5682     `(magit-diff-hunk-region ((,class :inherit bold)))
   5683     `(magit-diff-lines-boundary ((,class :background ,fg-main)))
   5684     `(magit-diff-lines-heading ((,class :inherit modus-themes-refine-magenta)))
   5685     `(magit-diff-removed ((,class ,@(modus-themes--diff
   5686                                      bg-main red
   5687                                      bg-diff-removed fg-diff-removed
   5688                                      red-nuanced-bg fg-diff-removed))))
   5689     `(magit-diff-removed-highlight ((,class :inherit modus-themes-diff-focus-removed)))
   5690     `(magit-diffstat-added ((,class :foreground ,@(modus-themes--diff-deuteran blue green))))
   5691     `(magit-diffstat-removed ((,class :foreground ,red)))
   5692     `(magit-dimmed ((,class :foreground ,fg-unfocused)))
   5693     `(magit-filename ((,class :foreground ,fg-special-cold)))
   5694     `(magit-hash ((,class :inherit shadow)))
   5695     `(magit-head ((,class :inherit magit-branch-local)))
   5696     `(magit-header-line ((,class :inherit bold :foreground ,magenta-active)))
   5697     `(magit-header-line-key ((,class :inherit modus-themes-key-binding)))
   5698     `(magit-header-line-log-select ((,class :inherit bold :foreground ,fg-main)))
   5699     `(magit-keyword ((,class :foreground ,magenta)))
   5700     `(magit-keyword-squash ((,class :inherit bold :foreground ,yellow-alt-other)))
   5701     `(magit-log-author ((,class :foreground ,cyan)))
   5702     `(magit-log-date ((,class :inherit shadow)))
   5703     `(magit-log-graph ((,class :foreground ,fg-dim)))
   5704     `(magit-mode-line-process ((,class :inherit bold :foreground ,blue-active)))
   5705     `(magit-mode-line-process-error ((,class :inherit bold :foreground ,red-active)))
   5706     `(magit-process-ng ((,class :inherit error)))
   5707     `(magit-process-ok ((,class :inherit success)))
   5708     `(magit-reflog-amend ((,class :background ,bg-main :foreground ,magenta-intense)))
   5709     `(magit-reflog-checkout ((,class :background ,bg-main :foreground ,blue-intense)))
   5710     `(magit-reflog-cherry-pick ((,class :background ,bg-main :foreground ,green-intense)))
   5711     `(magit-reflog-commit ((,class :background ,bg-main :foreground ,green-intense)))
   5712     `(magit-reflog-merge ((,class :background ,bg-main :foreground ,green-intense)))
   5713     `(magit-reflog-other ((,class :background ,bg-main :foreground ,cyan-intense)))
   5714     `(magit-reflog-rebase ((,class :background ,bg-main :foreground ,magenta-intense)))
   5715     `(magit-reflog-remote ((,class :background ,bg-main :foreground ,cyan-intense)))
   5716     `(magit-reflog-reset ((,class :background ,bg-main :foreground ,red-intense)))
   5717     `(magit-refname ((,class :inherit shadow)))
   5718     `(magit-refname-pullreq ((,class :inherit shadow)))
   5719     `(magit-refname-stash ((,class :inherit shadow)))
   5720     `(magit-refname-wip ((,class :inherit shadow)))
   5721     `(magit-section ((,class :background ,bg-dim :foreground ,fg-main)))
   5722     `(magit-section-heading ((,class :inherit bold :foreground ,cyan)))
   5723     `(magit-section-heading-selection ((,class :inherit (modus-themes-refine-cyan bold))))
   5724     `(magit-section-highlight ((,class :background ,bg-alt)))
   5725     `(magit-sequence-done ((,class :foreground ,@(modus-themes--success-deuteran
   5726                                                   blue
   5727                                                   green))))
   5728     `(magit-sequence-drop ((,class :foreground ,red-alt)))
   5729     `(magit-sequence-exec ((,class :foreground ,magenta-alt)))
   5730     `(magit-sequence-head ((,class :foreground ,cyan-alt)))
   5731     `(magit-sequence-onto ((,class :inherit shadow)))
   5732     `(magit-sequence-part ((,class :foreground ,yellow-alt)))
   5733     `(magit-sequence-pick ((,class :foreground ,blue-alt)))
   5734     `(magit-sequence-stop ((,class :foreground ,red)))
   5735     `(magit-signature-bad ((,class :inherit bold :foreground ,red)))
   5736     `(magit-signature-error ((,class :foreground ,red-alt)))
   5737     `(magit-signature-expired ((,class :foreground ,yellow)))
   5738     `(magit-signature-expired-key ((,class :foreground ,yellow)))
   5739     `(magit-signature-good ((,class :foreground ,@(modus-themes--success-deuteran
   5740                                                    blue
   5741                                                    green))))
   5742     `(magit-signature-revoked ((,class :foreground ,magenta)))
   5743     `(magit-signature-untrusted ((,class :foreground ,cyan)))
   5744     `(magit-tag ((,class :foreground ,yellow-alt-other)))
   5745 ;;;;; magit-imerge
   5746     `(magit-imerge-overriding-value ((,class :inherit bold :foreground ,red-alt)))
   5747 ;;;;; make-mode (makefiles)
   5748     `(makefile-makepp-perl ((,class :background ,cyan-nuanced-bg)))
   5749     `(makefile-space ((,class :background ,magenta-nuanced-bg)))
   5750 ;;;;; man
   5751     `(Man-overstrike ((,class :inherit bold :foreground ,magenta)))
   5752     `(Man-reverse ((,class :inherit modus-themes-subtle-magenta)))
   5753     `(Man-underline ((,class :foreground ,cyan :underline t)))
   5754 ;;;;; marginalia
   5755     `(marginalia-archive ((,class :foreground ,green-nuanced-fg)))
   5756     `(marginalia-date ((,class :foreground ,blue-nuanced-fg)))
   5757     `(marginalia-char ((,class :foreground ,red-active)))
   5758     `(marginalia-documentation ((,class :foreground ,fg-special-cold :inherit modus-themes-slant)))
   5759     `(marginalia-file-modes ((,class :inherit shadow)))
   5760     `(marginalia-file-name ((,class :foreground ,fg-special-mild)))
   5761     `(marginalia-file-owner ((,class :foreground ,red-nuanced-fg)))
   5762     ;; Here we make an exception of not applying the bespoke
   5763     ;; `modus-themes-key-binding' for two reasons: (1) completion
   5764     ;; highlights can be fairly intense, so we do not want more
   5765     ;; components to compete with them for attention, (2) the
   5766     ;; `marginalia-key' may not be used for key bindings specifically,
   5767     ;; so we might end up applying styles in places we should not.
   5768     `(marginalia-key ((,class :foreground ,magenta-active)))
   5769     `(marginalia-mode ((,class :foreground ,cyan-active)))
   5770     `(marginalia-modified ((,class :foreground ,yellow-active)))
   5771     `(marginalia-number ((,class :foreground ,blue-active)))
   5772     `(marginalia-size ((,class :foreground ,green-active)))
   5773     `(marginalia-type ((,class :foreground ,fg-special-warm)))
   5774     `(marginalia-variable ((,class :foreground ,yellow-nuanced-fg)))
   5775     `(marginalia-version ((,class :foreground ,cyan-active)))
   5776 ;;;;; markdown-mode
   5777     `(markdown-blockquote-face ((,class :inherit modus-themes-slant :foreground ,fg-special-cold)))
   5778     `(markdown-bold-face ((,class :inherit bold)))
   5779     `(markdown-code-face ((,class :inherit modus-themes-fixed-pitch :background ,bg-dim :extend t)))
   5780     `(markdown-comment-face ((,class :inherit font-lock-comment-face)))
   5781     `(markdown-footnote-marker-face ((,class :inherit bold :foreground ,cyan-alt)))
   5782     `(markdown-footnote-text-face ((,class :inherit modus-themes-slant :foreground ,fg-main)))
   5783     `(markdown-gfm-checkbox-face ((,class :foreground ,cyan-alt-other)))
   5784     `(markdown-header-delimiter-face ((,class :inherit modus-themes-bold :foreground ,fg-dim)))
   5785     `(markdown-header-face ((t nil)))
   5786     `(markdown-header-face-1 ((,class :inherit modus-themes-heading-1)))
   5787     `(markdown-header-face-2 ((,class :inherit modus-themes-heading-2)))
   5788     `(markdown-header-face-3 ((,class :inherit modus-themes-heading-3)))
   5789     `(markdown-header-face-4 ((,class :inherit modus-themes-heading-4)))
   5790     `(markdown-header-face-5 ((,class :inherit modus-themes-heading-5)))
   5791     `(markdown-header-face-6 ((,class :inherit modus-themes-heading-6)))
   5792     `(markdown-header-rule-face ((,class :inherit bold :foreground ,fg-special-warm)))
   5793     `(markdown-hr-face ((,class :inherit bold :foreground ,fg-special-warm)))
   5794     `(markdown-html-attr-name-face ((,class :inherit modus-themes-fixed-pitch
   5795                                             :foreground ,cyan)))
   5796     `(markdown-html-attr-value-face ((,class :inherit modus-themes-fixed-pitch
   5797                                              :foreground ,blue)))
   5798     `(markdown-html-entity-face ((,class :inherit modus-themes-fixed-pitch
   5799                                          :foreground ,cyan)))
   5800     `(markdown-html-tag-delimiter-face ((,class :inherit modus-themes-fixed-pitch
   5801                                                 :foreground ,fg-special-mild)))
   5802     `(markdown-html-tag-name-face ((,class :inherit modus-themes-fixed-pitch
   5803                                            :foreground ,magenta-alt)))
   5804     `(markdown-inline-code-face ((,class :inherit modus-themes-fixed-pitch
   5805                                          :background ,bg-alt :foreground ,fg-special-calm)))
   5806     `(markdown-italic-face ((,class :inherit italic :foreground ,fg-special-cold)))
   5807     `(markdown-language-info-face ((,class :inherit modus-themes-fixed-pitch
   5808                                            :foreground ,fg-special-cold)))
   5809     `(markdown-language-keyword-face ((,class :inherit modus-themes-fixed-pitch
   5810                                               :background ,bg-alt
   5811                                               :foreground ,fg-alt)))
   5812     `(markdown-line-break-face ((,class :inherit modus-themes-refine-cyan :underline t)))
   5813     `(markdown-link-face ((,class :inherit button)))
   5814     `(markdown-link-title-face ((,class :inherit modus-themes-slant :foreground ,fg-special-cold)))
   5815     `(markdown-list-face ((,class :foreground ,fg-dim)))
   5816     `(markdown-markup-face ((,class :inherit shadow)))
   5817     `(markdown-math-face ((,class :foreground ,magenta-alt-other)))
   5818     `(markdown-metadata-key-face ((,class :foreground ,cyan-alt-other)))
   5819     `(markdown-metadata-value-face ((,class :foreground ,blue-alt)))
   5820     `(markdown-missing-link-face ((,class :inherit bold :foreground ,yellow)))
   5821     `(markdown-plain-url-face ((,class :inherit markdown-link-face)))
   5822     `(markdown-pre-face ((,class :inherit markdown-code-face :foreground ,fg-special-mild)))
   5823     `(markdown-reference-face ((,class :inherit markdown-markup-face)))
   5824     `(markdown-strike-through-face ((,class :strike-through t)))
   5825     `(markdown-table-face ((,class :inherit modus-themes-fixed-pitch
   5826                                    :foreground ,fg-special-cold)))
   5827     `(markdown-url-face ((,class :foreground ,blue-alt)))
   5828 ;;;;; markup-faces (`adoc-mode')
   5829     `(markup-anchor-face ((,class :foreground ,fg-inactive)))
   5830     `(markup-attribute-face ((,class :inherit italic :foreground ,fg-inactive)))
   5831     `(markup-big-face ((,class :height 1.3 :foreground ,blue-nuanced-fg)))
   5832     `(markup-bold-face ((,class :inherit bold :foreground ,red-nuanced-fg)))
   5833     `(markup-code-face ((,class :inherit fixed-pitch :foreground ,magenta)))
   5834     `(markup-command-face ((,class :foreground ,fg-inactive)))
   5835     `(markup-comment-face ((,class :inherit font-lock-comment-face)))
   5836     `(markup-complex-replacement-face ((,class :box (:line-width 2 :color nil :style released-button)
   5837                                                :inherit modus-themes-refine-magenta)))
   5838     `(markup-emphasis-face ((,class :inherit italic :foreground ,fg-special-cold)))
   5839     `(markup-error-face ((,class :inherit bold :foreground ,red)))
   5840     `(markup-gen-face ((,class :foreground ,magenta-alt)))
   5841     `(markup-internal-reference-face ((,class :inherit button :foreground ,fg-alt)))
   5842     `(markup-italic-face ((,class :inherit italic :foreground ,fg-special-cold)))
   5843     `(markup-list-face ((,class :inherit modus-themes-special-calm)))
   5844     `(markup-meta-face ((,class :foreground ,fg-inactive)))
   5845     `(markup-meta-hide-face ((,class :inherit shadow)))
   5846     `(markup-passthrough-face ((,class :inherit fixed-pitch :foreground ,cyan)))
   5847     `(markup-preprocessor-face ((,class :foreground ,red-alt-other)))
   5848     `(markup-replacement-face ((,class :foreground ,yellow-alt-other)))
   5849     `(markup-secondary-text-face ((,class :height 0.8 :foreground ,magenta-nuanced-fg)))
   5850     `(markup-small-face ((,class :height 0.8 :foreground ,fg-main)))
   5851     `(markup-strong-face ((,class :inherit bold :foreground ,red-nuanced-fg)))
   5852     `(markup-subscript-face ((,class :height 0.8 :foreground ,fg-special-cold)))
   5853     `(markup-superscript-face ((,class :height 0.8 :foreground ,fg-special-cold)))
   5854     `(markup-table-cell-face ((,class :inherit modus-themes-special-cold)))
   5855     `(markup-table-face ((,class :inherit modus-themes-subtle-cyan)))
   5856     `(markup-table-row-face ((,class :inherit modus-themes-subtle-cyan)))
   5857     `(markup-title-0-face ((,class :height 3.0 :foreground ,blue-nuanced-fg)))
   5858     `(markup-title-1-face ((,class :height 2.4 :foreground ,blue-nuanced-fg)))
   5859     `(markup-title-2-face ((,class :height 1.8 :foreground ,blue-nuanced-fg)))
   5860     `(markup-title-3-face ((,class :height 1.4 :foreground ,blue-nuanced-fg)))
   5861     `(markup-title-4-face ((,class :height 1.2 :foreground ,blue-nuanced-fg)))
   5862     `(markup-title-5-face ((,class :height 1.2 :foreground ,blue-nuanced-fg :underline t)))
   5863     `(markup-value-face ((,class :foreground ,fg-inactive)))
   5864     `(markup-verbatim-face ((,class :inherit modus-themes-special-mild)))
   5865 ;;;;; mentor
   5866     `(mentor-download-message ((,class :foreground ,fg-special-warm)))
   5867     `(mentor-download-name ((,class :foreground ,fg-special-cold)))
   5868     `(mentor-download-progress ((,class :foreground ,blue-alt-other)))
   5869     `(mentor-download-size ((,class :foreground ,magenta-alt-other)))
   5870     `(mentor-download-speed-down ((,class :foreground ,cyan-alt)))
   5871     `(mentor-download-speed-up ((,class :foreground ,red-alt)))
   5872     `(mentor-download-state ((,class :foreground ,yellow-alt)))
   5873     `(mentor-highlight-face ((,class :inherit modus-themes-subtle-blue)))
   5874     `(mentor-tracker-name ((,class :foreground ,magenta-alt)))
   5875 ;;;;; messages
   5876     `(message-cited-text-1 ((,class ,@(modus-themes--mail-cite blue-faint fg-alt))))
   5877     `(message-cited-text-2 ((,class ,@(modus-themes--mail-cite green-faint fg-comment-yellow))))
   5878     `(message-cited-text-3 ((,class ,@(modus-themes--mail-cite red-faint fg-special-cold))))
   5879     `(message-cited-text-4 ((,class ,@(modus-themes--mail-cite yellow-faint fg-special-calm))))
   5880     `(message-header-cc ((,class :foreground ,blue-alt-other)))
   5881     `(message-header-name ((,class :inherit bold :foreground ,cyan)))
   5882     `(message-header-newsgroups ((,class :inherit message-header-other)))
   5883     `(message-header-other ((,class :foreground ,fg-special-calm)))
   5884     `(message-header-subject ((,class :inherit bold :foreground ,magenta-alt)))
   5885     `(message-header-to ((,class :inherit bold :foreground ,magenta-alt-other)))
   5886     `(message-header-xheader ((,class :foreground ,blue-alt)))
   5887     `(message-mml ((,class :foreground ,cyan-alt-other)))
   5888     `(message-separator ((,class :inherit modus-themes-intense-neutral)))
   5889 ;;;;; minibuffer-line
   5890     `(minibuffer-line ((,class :foreground ,fg-main)))
   5891 ;;;;; minimap
   5892     `(minimap-active-region-background ((,class :background ,bg-active)))
   5893     `(minimap-current-line-face ((,class :background ,cyan-intense-bg :foreground ,fg-main)))
   5894 ;;;;; mmm-mode
   5895     `(mmm-cleanup-submode-face ((,class :background ,yellow-nuanced-bg)))
   5896     `(mmm-code-submode-face ((,class :background ,bg-alt)))
   5897     `(mmm-comment-submode-face ((,class :background ,blue-nuanced-bg)))
   5898     `(mmm-declaration-submode-face ((,class :background ,cyan-nuanced-bg)))
   5899     `(mmm-default-submode-face ((,class :background ,bg-dim)))
   5900     `(mmm-init-submode-face ((,class :background ,magenta-nuanced-bg)))
   5901     `(mmm-output-submode-face ((,class :background ,red-nuanced-bg)))
   5902     `(mmm-special-submode-face ((,class :background ,green-nuanced-bg)))
   5903 ;;;;; mode-line
   5904     `(mode-line ((,class ,@(modus-themes--variable-pitch-ui)
   5905                          ,@(modus-themes--mode-line-attrs
   5906                             fg-active bg-active
   5907                             fg-dim bg-active
   5908                             fg-main bg-active-accent
   5909                             fg-alt bg-active
   5910                             'alt-style nil bg-main))))
   5911     `(mode-line-buffer-id ((,class :inherit bold)))
   5912     `(mode-line-emphasis ((,class :inherit bold :foreground ,blue-active)))
   5913     `(mode-line-highlight ((,class :inherit modus-themes-active-blue :box (:line-width -1 :style pressed-button))))
   5914     `(mode-line-inactive ((,class ,@(modus-themes--variable-pitch-ui)
   5915                                   ,@(modus-themes--mode-line-attrs
   5916                                      fg-inactive bg-inactive
   5917                                      fg-alt bg-dim
   5918                                      fg-inactive bg-inactive
   5919                                      bg-region bg-active))))
   5920 ;;;;; mood-line
   5921     `(mood-line-modified ((,class :foreground ,magenta-active)))
   5922     `(mood-line-status-error ((,class :inherit bold :foreground ,red-active)))
   5923     `(mood-line-status-info ((,class :foreground ,cyan-active)))
   5924     `(mood-line-status-neutral ((,class :foreground ,blue-active)))
   5925     `(mood-line-status-success ((,class :foreground ,@(modus-themes--success-deuteran
   5926                                                        blue-active
   5927                                                        green-active))))
   5928     `(mood-line-status-warning ((,class :inherit bold :foreground ,yellow-active)))
   5929     `(mood-line-unimportant ((,class :foreground ,fg-inactive)))
   5930 ;;;;; mpdel
   5931     `(mpdel-browser-directory-face ((,class :foreground ,blue)))
   5932     `(mpdel-playlist-current-song-face ((,class :inherit bold :foreground ,blue-alt-other)))
   5933 ;;;;; mu4e
   5934     `(mu4e-attach-number-face ((,class :inherit bold :foreground ,fg-dim)))
   5935     `(mu4e-cited-1-face ((,class :inherit message-cited-text-1)))
   5936     `(mu4e-cited-2-face ((,class :inherit message-cited-text-2)))
   5937     `(mu4e-cited-3-face ((,class :inherit message-cited-text-3)))
   5938     `(mu4e-cited-4-face ((,class :inherit message-cited-text-4)))
   5939     `(mu4e-cited-5-face ((,class :inherit message-cited-text-1)))
   5940     `(mu4e-cited-6-face ((,class :inherit message-cited-text-2)))
   5941     `(mu4e-cited-7-face ((,class :inherit message-cited-text-3)))
   5942     `(mu4e-compose-header-face ((,class :inherit mu4e-compose-separator-face)))
   5943     `(mu4e-compose-separator-face ((,class :inherit modus-themes-intense-neutral)))
   5944     `(mu4e-contact-face ((,class :inherit message-header-to)))
   5945     `(mu4e-context-face ((,class :foreground ,blue-active)))
   5946     `(mu4e-draft-face ((,class :foreground ,magenta-alt)))
   5947     `(mu4e-flagged-face ((,class :foreground ,red-alt)))
   5948     `(mu4e-footer-face ((,class :inherit modus-themes-slant :foreground ,fg-special-cold)))
   5949     `(mu4e-forwarded-face ((,class :foreground ,magenta-alt-other)))
   5950     `(mu4e-header-face ((,class :inherit shadow)))
   5951     `(mu4e-header-highlight-face ((,class :inherit modus-themes-hl-line)))
   5952     `(mu4e-header-key-face ((,class :inherit message-header-name)))
   5953     `(mu4e-header-marks-face ((,class :inherit mu4e-special-header-value-face)))
   5954     `(mu4e-header-title-face ((,class :foreground ,fg-special-mild)))
   5955     `(mu4e-header-value-face ((,class :inherit message-header-other)))
   5956     `(mu4e-highlight-face ((,class :inherit modus-themes-key-binding)))
   5957     `(mu4e-link-face ((,class :inherit button)))
   5958     `(mu4e-modeline-face ((,class :foreground ,magenta-active)))
   5959     `(mu4e-moved-face ((,class :inherit modus-themes-slant :foreground ,yellow)))
   5960     `(mu4e-ok-face ((,class :inherit bold :foreground ,green)))
   5961     `(mu4e-region-code ((,class :inherit modus-themes-special-calm)))
   5962     `(mu4e-replied-face ((,class :foreground ,blue)))
   5963     `(mu4e-special-header-value-face ((,class :inherit message-header-subject)))
   5964     `(mu4e-system-face ((,class :inherit modus-themes-slant :foreground ,fg-mark-del)))
   5965     `(mu4e-title-face ((,class :foreground ,fg-main)))
   5966     `(mu4e-trashed-face ((,class :foreground ,red)))
   5967     `(mu4e-unread-face ((,class :inherit bold)))
   5968     `(mu4e-url-number-face ((,class :foreground ,fg-alt)))
   5969     `(mu4e-view-body-face ((,class :foreground ,fg-main)))
   5970     `(mu4e-warning-face ((,class :inherit warning)))
   5971 ;;;;; mu4e-conversation
   5972     `(mu4e-conversation-header ((,class :inherit modus-themes-special-cold)))
   5973     `(mu4e-conversation-sender-1 ((,class :foreground ,fg-special-warm)))
   5974     `(mu4e-conversation-sender-2 ((,class :foreground ,fg-special-cold)))
   5975     `(mu4e-conversation-sender-3 ((,class :foreground ,fg-special-mild)))
   5976     `(mu4e-conversation-sender-4 ((,class :inherit shadow)))
   5977     `(mu4e-conversation-sender-5 ((,class :foreground ,yellow-refine-fg)))
   5978     `(mu4e-conversation-sender-6 ((,class :foreground ,cyan-refine-fg)))
   5979     `(mu4e-conversation-sender-7 ((,class :foreground ,green-refine-fg)))
   5980     `(mu4e-conversation-sender-8 ((,class :foreground ,blue-refine-fg)))
   5981     `(mu4e-conversation-sender-me ((,class :foreground ,fg-main)))
   5982     `(mu4e-conversation-unread ((,class :inherit bold)))
   5983 ;;;;; multiple-cursors
   5984     `(mc/cursor-bar-face ((,class :height 1 :background ,fg-main)))
   5985     `(mc/cursor-face ((,class :inverse-video t)))
   5986     `(mc/region-face ((,class :inherit region)))
   5987 ;;;;; neotree
   5988     `(neo-banner-face ((,class :foreground ,magenta)))
   5989     `(neo-button-face ((,class :inherit button)))
   5990     `(neo-dir-link-face ((,class :inherit bold :foreground ,blue)))
   5991     `(neo-expand-btn-face ((,class :foreground ,cyan)))
   5992     `(neo-file-link-face ((,class :foreground ,fg-main)))
   5993     `(neo-header-face ((,class :inherit bold :foreground ,fg-main)))
   5994     `(neo-root-dir-face ((,class :inherit bold :foreground ,cyan-alt)))
   5995     `(neo-vc-added-face ((,class :foreground ,@(modus-themes--diff-deuteran blue green))))
   5996     `(neo-vc-conflict-face ((,class :inherit bold :foreground ,red)))
   5997     `(neo-vc-default-face ((,class :foreground ,fg-main)))
   5998     `(neo-vc-edited-face ((,class :foreground ,yellow)))
   5999     `(neo-vc-ignored-face ((,class :foreground ,fg-inactive)))
   6000     `(neo-vc-missing-face ((,class :foreground ,red-alt)))
   6001     `(neo-vc-needs-merge-face ((,class :foreground ,magenta-alt)))
   6002     `(neo-vc-needs-update-face ((,class :underline t)))
   6003     `(neo-vc-removed-face ((,class :strike-through t)))
   6004     `(neo-vc-unlocked-changes-face ((,class :inherit modus-themes-refine-blue)))
   6005     `(neo-vc-up-to-date-face ((,class :inherit shadow)))
   6006     `(neo-vc-user-face ((,class :foreground ,magenta)))
   6007 ;;;;; no-emoji
   6008     `(no-emoji ((,class :foreground ,cyan)))
   6009 ;;;;; notmuch
   6010     `(notmuch-crypto-decryption ((,class :inherit (shadow bold))))
   6011     `(notmuch-crypto-part-header ((,class :foreground ,magenta-alt-other)))
   6012     `(notmuch-crypto-signature-bad ((,class :inherit error)))
   6013     `(notmuch-crypto-signature-good ((,class :inherit success)))
   6014     `(notmuch-crypto-signature-good-key ((,class :inherit bold :foreground ,cyan)))
   6015     `(notmuch-crypto-signature-unknown ((,class :inherit warning)))
   6016     `(notmuch-hello-logo-background ((,class :background "gray50")))
   6017     `(notmuch-message-summary-face ((,class :inherit (bold modus-themes-nuanced-cyan))))
   6018     `(notmuch-search-count ((,class :inherit shadow)))
   6019     `(notmuch-search-date ((,class :foreground ,cyan)))
   6020     `(notmuch-search-flagged-face ((,class :foreground ,red-alt)))
   6021     `(notmuch-search-matching-authors ((,class :foreground ,fg-special-cold)))
   6022     `(notmuch-search-non-matching-authors ((,class :inherit shadow)))
   6023     `(notmuch-search-subject ((,class :foreground ,fg-main)))
   6024     `(notmuch-search-unread-face ((,class :inherit bold)))
   6025     `(notmuch-tag-added ((,class :underline ,blue)))
   6026     `(notmuch-tag-deleted ((,class :strike-through ,red)))
   6027     `(notmuch-tag-face ((,class :foreground ,blue)))
   6028     `(notmuch-tag-flagged ((,class :foreground ,red-alt)))
   6029     `(notmuch-tag-unread ((,class :foreground ,magenta-alt)))
   6030     `(notmuch-tree-match-author-face ((,class :inherit notmuch-search-matching-authors)))
   6031     `(notmuch-tree-match-date-face ((,class :inherit notmuch-search-date)))
   6032     `(notmuch-tree-match-face ((,class :foreground ,fg-main)))
   6033     `(notmuch-tree-match-tag-face ((,class :inherit notmuch-tag-face)))
   6034     `(notmuch-tree-no-match-face ((,class :inherit shadow)))
   6035     `(notmuch-tree-no-match-date-face ((,class :inherit shadow)))
   6036     `(notmuch-wash-cited-text ((,class :inherit message-cited-text-1)))
   6037     `(notmuch-wash-toggle-button ((,class :background ,bg-alt :foreground ,fg-alt)))
   6038 ;;;;; num3-mode
   6039     `(num3-face-even ((,class :inherit bold :background ,bg-alt)))
   6040 ;;;;; nxml-mode
   6041     `(nxml-attribute-colon ((,class :foreground ,fg-main)))
   6042     `(nxml-attribute-local-name ((,class :inherit font-lock-variable-name-face)))
   6043     `(nxml-attribute-prefix ((,class  :inherit font-lock-type-face)))
   6044     `(nxml-attribute-value ((,class :inherit font-lock-constant-face)))
   6045     `(nxml-cdata-section-CDATA ((,class :inherit error)))
   6046     `(nxml-cdata-section-delimiter ((,class :inherit error)))
   6047     `(nxml-char-ref-delimiter ((,class :foreground ,fg-special-mild)))
   6048     `(nxml-char-ref-number ((,class :inherit modus-themes-bold :foreground ,fg-special-mild)))
   6049     `(nxml-delimited-data ((,class :inherit modus-themes-slant :foreground ,fg-special-cold)))
   6050     `(nxml-delimiter ((,class :foreground ,fg-dim)))
   6051     `(nxml-element-colon ((,class :foreground ,fg-main)))
   6052     `(nxml-element-local-name ((,class :inherit font-lock-function-name-face)))
   6053     `(nxml-element-prefix ((,class :inherit font-lock-builtin-face)))
   6054     `(nxml-entity-ref-delimiter ((,class :foreground ,fg-special-mild)))
   6055     `(nxml-entity-ref-name ((,class :inherit modus-themes-bold :foreground ,fg-special-mild)))
   6056     `(nxml-glyph ((,class :inherit modus-themes-intense-neutral)))
   6057     `(nxml-hash ((,class :inherit (bold font-lock-string-face))))
   6058     `(nxml-heading ((,class :inherit bold)))
   6059     `(nxml-name ((,class :inherit font-lock-builtin-face)))
   6060     `(nxml-namespace-attribute-colon ((,class :foreground ,fg-main)))
   6061     `(nxml-namespace-attribute-prefix ((,class :inherit font-lock-variable-name-face)))
   6062     `(nxml-processing-instruction-target ((,class :inherit font-lock-keyword-face)))
   6063     `(nxml-prolog-keyword ((,class :inherit font-lock-keyword-face)))
   6064     `(nxml-ref ((,class :inherit modus-themes-bold :foreground ,fg-special-mild)))
   6065     `(rng-error ((,class :inherit error)))
   6066 ;;;;; objed
   6067     `(objed-hl ((,class :background ,(if modus-themes-hl-line bg-hl-alt-intense bg-hl-alt))))
   6068     `(objed-mark ((,class :background ,bg-active)))
   6069     `(objed-mode-line ((,class :foreground ,cyan-active)))
   6070 ;;;;; orderless
   6071     `(orderless-match-face-0 ((,class :inherit bold
   6072                                       ,@(modus-themes--standard-completions
   6073                                          blue-alt-other blue-nuanced-bg
   6074                                          blue-refine-bg blue-refine-fg))))
   6075     `(orderless-match-face-1 ((,class :inherit bold
   6076                                       ,@(modus-themes--standard-completions
   6077                                          magenta-alt magenta-nuanced-bg
   6078                                          magenta-refine-bg magenta-refine-fg))))
   6079     `(orderless-match-face-2 ((,class :inherit bold
   6080                                       ,@(modus-themes--standard-completions
   6081                                          green green-nuanced-bg
   6082                                          green-refine-bg green-refine-fg))))
   6083     `(orderless-match-face-3 ((,class :inherit bold
   6084                                       ,@(modus-themes--standard-completions
   6085                                          yellow yellow-nuanced-bg
   6086                                          yellow-refine-bg yellow-refine-fg))))
   6087 ;;;;; org
   6088     `(org-agenda-calendar-event ((,class :inherit shadow)))
   6089     `(org-agenda-calendar-sexp ((,class :inherit (modus-themes-slant shadow))))
   6090     `(org-agenda-clocking ((,class :inherit modus-themes-special-cold :extend t)))
   6091     `(org-agenda-column-dateline ((,class :background ,bg-alt)))
   6092     `(org-agenda-current-time ((,class :foreground ,blue-alt-other-faint)))
   6093     `(org-agenda-date ((,class ,@(modus-themes--agenda-date cyan fg-main nil))))
   6094     `(org-agenda-date-today ((,class :background ,bg-active
   6095                                      ,@(modus-themes--agenda-date blue-active fg-main t cyan-active))))
   6096     `(org-agenda-date-weekend ((,class ,@(modus-themes--agenda-date cyan-alt-other fg-alt nil cyan fg-main))))
   6097     `(org-agenda-diary ((,class :inherit shadow)))
   6098     `(org-agenda-dimmed-todo-face ((,class :inherit shadow)))
   6099     `(org-agenda-done ((,class :foreground ,@(modus-themes--success-deuteran
   6100                                               blue-nuanced-fg
   6101                                               green-nuanced-fg))))
   6102     `(org-agenda-filter-category ((,class :inherit bold :foreground ,cyan-active)))
   6103     `(org-agenda-filter-effort ((,class :inherit bold :foreground ,cyan-active)))
   6104     `(org-agenda-filter-regexp ((,class :inherit bold :foreground ,cyan-active)))
   6105     `(org-agenda-filter-tags ((,class :inherit bold :foreground ,cyan-active)))
   6106     `(org-agenda-restriction-lock ((,class :background ,bg-dim :foreground ,fg-dim)))
   6107     `(org-agenda-structure ((,class ,@(modus-themes--agenda-structure blue-alt))))
   6108     `(org-archived ((,class :background ,bg-alt :foreground ,fg-alt)))
   6109     `(org-block ((,class :inherit modus-themes-fixed-pitch
   6110                          ,@(modus-themes--org-block bg-dim fg-main))))
   6111     `(org-block-begin-line ((,class :inherit modus-themes-fixed-pitch
   6112                                     ,@(modus-themes--org-block-delim
   6113                                        bg-dim fg-special-cold
   6114                                        bg-alt fg-alt))))
   6115     `(org-block-end-line ((,class :inherit org-block-begin-line)))
   6116     `(org-checkbox ((,class :box (:line-width 1 :color ,bg-active)
   6117                             :background ,bg-inactive :foreground ,fg-active)))
   6118     `(org-checkbox-statistics-done ((,class :inherit org-done)))
   6119     `(org-checkbox-statistics-todo ((,class :inherit org-todo)))
   6120     `(org-clock-overlay ((,class :inherit modus-themes-special-cold)))
   6121     `(org-code ((,class :inherit modus-themes-fixed-pitch
   6122                         :background ,bg-alt :foreground ,fg-special-mild)))
   6123     `(org-column ((,class :background ,bg-alt)))
   6124     `(org-column-title ((,class :inherit bold :underline t :background ,bg-alt)))
   6125     `(org-date ((,class :inherit ,(if modus-themes-no-mixed-fonts
   6126                                       'button
   6127                                     '(button fixed-pitch))
   6128                         ,@(modus-themes--link-color
   6129                            cyan cyan-faint))))
   6130     `(org-date-selected ((,class :inherit bold :foreground ,blue-alt :inverse-video t)))
   6131     `(org-dispatcher-highlight ((,class :inherit (bold modus-themes-mark-alt))))
   6132     `(org-document-info ((,class :foreground ,fg-special-cold)))
   6133     `(org-document-info-keyword ((,class :inherit modus-themes-fixed-pitch :foreground ,fg-alt)))
   6134     `(org-document-title ((,class :inherit (bold modus-themes-variable-pitch) :foreground ,fg-special-cold
   6135                                   ,@(modus-themes--scale modus-themes-scale-title))))
   6136     `(org-done ((,class :foreground ,@(modus-themes--success-deuteran blue green))))
   6137     `(org-drawer ((,class :inherit modus-themes-fixed-pitch :foreground ,fg-alt)))
   6138     `(org-ellipsis (())) ; inherits from the heading's color
   6139     `(org-footnote ((,class :inherit button
   6140                             ,@(modus-themes--link-color
   6141                                blue-alt blue-alt-faint))))
   6142     `(org-formula ((,class :inherit modus-themes-fixed-pitch :foreground ,red-alt)))
   6143     `(org-habit-alert-face ((,class ,@(modus-themes--agenda-habit
   6144                                        yellow-graph-0-bg
   6145                                        yellow-graph-0-bg
   6146                                        yellow-graph-1-bg))))
   6147     `(org-habit-alert-future-face ((,class ,@(modus-themes--agenda-habit
   6148                                               yellow-graph-1-bg
   6149                                               yellow-graph-0-bg
   6150                                               yellow-graph-1-bg))))
   6151     `(org-habit-clear-face ((,class ,@(modus-themes--agenda-habit
   6152                                        blue-graph-0-bg
   6153                                        green-graph-1-bg
   6154                                        blue-graph-1-bg
   6155                                        blue-graph-1-bg))))
   6156     `(org-habit-clear-future-face ((,class ,@(modus-themes--agenda-habit
   6157                                               blue-graph-1-bg
   6158                                               green-graph-1-bg
   6159                                               blue-graph-1-bg
   6160                                               blue-graph-1-bg))))
   6161     `(org-habit-overdue-face ((,class ,@(modus-themes--agenda-habit
   6162                                          red-graph-0-bg
   6163                                          red-graph-0-bg
   6164                                          red-graph-1-bg))))
   6165     `(org-habit-overdue-future-face ((,class ,@(modus-themes--agenda-habit
   6166                                                 red-graph-1-bg
   6167                                                 red-graph-0-bg
   6168                                                 red-graph-1-bg))))
   6169     `(org-habit-ready-face ((,class ,@(modus-themes--agenda-habit
   6170                                        green-graph-0-bg
   6171                                        green-graph-0-bg
   6172                                        green-graph-1-bg
   6173                                        blue-graph-0-bg))))
   6174     `(org-habit-ready-future-face ((,class ,@(modus-themes--agenda-habit
   6175                                               green-graph-1-bg
   6176                                               green-graph-0-bg
   6177                                               green-graph-1-bg
   6178                                               blue-graph-0-bg))))
   6179     `(org-headline-done ((,class :inherit modus-themes-variable-pitch
   6180                                  :foreground ,@(modus-themes--success-deuteran
   6181                                                 blue-nuanced-fg
   6182                                                 green-nuanced-fg))))
   6183     `(org-headline-todo ((,class :inherit modus-themes-variable-pitch :foreground ,red-nuanced-fg)))
   6184     `(org-hide ((,class :foreground ,bg-main)))
   6185     `(org-indent ((,class :inherit (fixed-pitch org-hide))))
   6186     `(org-latex-and-related ((,class :foreground ,magenta-refine-fg)))
   6187     `(org-level-1 ((,class :inherit modus-themes-heading-1)))
   6188     `(org-level-2 ((,class :inherit modus-themes-heading-2)))
   6189     `(org-level-3 ((,class :inherit modus-themes-heading-3)))
   6190     `(org-level-4 ((,class :inherit modus-themes-heading-4)))
   6191     `(org-level-5 ((,class :inherit modus-themes-heading-5)))
   6192     `(org-level-6 ((,class :inherit modus-themes-heading-6)))
   6193     `(org-level-7 ((,class :inherit modus-themes-heading-7)))
   6194     `(org-level-8 ((,class :inherit modus-themes-heading-8)))
   6195     `(org-link ((,class :inherit button)))
   6196     `(org-list-dt ((,class :inherit bold)))
   6197     `(org-macro ((,class :inherit modus-themes-fixed-pitch
   6198                          :background ,cyan-nuanced-bg :foreground ,cyan-nuanced-fg)))
   6199     `(org-meta-line ((,class :inherit modus-themes-fixed-pitch :foreground ,fg-alt)))
   6200     `(org-mode-line-clock ((,class :foreground ,fg-main)))
   6201     `(org-mode-line-clock-overrun ((,class :inherit bold :foreground ,red-active)))
   6202     `(org-priority ((,class :foreground ,magenta)))
   6203     `(org-property-value ((,class :inherit modus-themes-fixed-pitch :foreground ,fg-special-cold)))
   6204     `(org-quote ((,class ,@(modus-themes--org-block bg-dim fg-special-cold fg-main))))
   6205     `(org-scheduled ((,class ,@(modus-themes--agenda-scheduled yellow-faint fg-special-warm magenta-alt))))
   6206     `(org-scheduled-previously ((,class ,@(modus-themes--agenda-scheduled yellow fg-special-warm yellow-alt-other))))
   6207     `(org-scheduled-today ((,class ,@(modus-themes--agenda-scheduled yellow fg-special-warm magenta-alt-other))))
   6208     `(org-sexp-date ((,class :inherit org-date)))
   6209     `(org-special-keyword ((,class :inherit modus-themes-fixed-pitch :foreground ,fg-alt)))
   6210     `(org-table ((,class :inherit modus-themes-fixed-pitch :foreground ,fg-special-cold)))
   6211     `(org-table-header ((,class :inherit (fixed-pitch modus-themes-intense-neutral))))
   6212     `(org-tag ((,class :foreground ,magenta-nuanced-fg)))
   6213     `(org-tag-group ((,class :inherit bold :foreground ,cyan-nuanced-fg)))
   6214     `(org-target ((,class :underline t)))
   6215     `(org-time-grid ((,class :foreground ,fg-unfocused)))
   6216     `(org-todo ((,class :foreground ,red)))
   6217     `(org-upcoming-deadline ((,class :foreground ,red-alt-other)))
   6218     `(org-upcoming-distant-deadline ((,class :foreground ,red-faint)))
   6219     `(org-verbatim ((,class :inherit modus-themes-fixed-pitch
   6220                             :background ,bg-alt :foreground ,fg-special-calm)))
   6221     `(org-verse ((,class :inherit org-quote)))
   6222     `(org-warning ((,class :inherit bold :foreground ,red-alt-other)))
   6223 ;;;;; org-journal
   6224     `(org-journal-calendar-entry-face ((,class :inherit modus-themes-slant :foreground ,yellow-alt-other)))
   6225     `(org-journal-calendar-scheduled-face ((,class :inherit modus-themes-slant :foreground ,red-alt-other)))
   6226     `(org-journal-highlight ((,class :foreground ,magenta-alt)))
   6227 ;;;;; org-noter
   6228     `(org-noter-no-notes-exist-face ((,class :inherit bold :foreground ,red-active)))
   6229     `(org-noter-notes-exist-face ((,class :inherit bold :foreground ,green-active)))
   6230 ;;;;; org-pomodoro
   6231     `(org-pomodoro-mode-line ((,class :foreground ,red-active)))
   6232     `(org-pomodoro-mode-line-break ((,class :foreground ,cyan-active)))
   6233     `(org-pomodoro-mode-line-overtime ((,class :inherit bold :foreground ,red-active)))
   6234 ;;;;; org-recur
   6235     `(org-recur ((,class :foreground ,magenta-active)))
   6236 ;;;;; org-roam
   6237     `(org-roam-link ((,class :inherit button
   6238                              ,@(modus-themes--link-color
   6239                                 green green-faint))))
   6240     `(org-roam-link-current ((,class :inherit button
   6241                                      ,@(modus-themes--link-color
   6242                                         green-alt green-alt-faint))))
   6243     `(org-roam-link-invalid ((,class :inherit button
   6244                                      ,@(modus-themes--link-color
   6245                                         red red-faint))))
   6246     `(org-roam-link-shielded ((,class :inherit button
   6247                                       ,@(modus-themes--link-color
   6248                                          yellow yellow-faint))))
   6249     `(org-roam-tag ((,class :inherit italic :foreground ,fg-alt)))
   6250 ;;;;; org-superstar
   6251     `(org-superstar-item ((,class :foreground ,fg-main)))
   6252     `(org-superstar-leading ((,class :foreground ,fg-whitespace)))
   6253 ;;;;; org-table-sticky-header
   6254     `(org-table-sticky-header-face ((,class :inherit modus-themes-intense-neutral)))
   6255 ;;;;; org-tree-slide
   6256     `(org-tree-slide-header-overlay-face
   6257       ((,class :inherit (bold modus-themes-variable-pitch) :background ,bg-main
   6258                :foreground ,fg-special-cold :overline nil
   6259                ,@(modus-themes--scale modus-themes-scale-title))))
   6260 ;;;;; org-treescope
   6261     `(org-treescope-faces--markerinternal-midday ((,class :inherit modus-themes-intense-blue)))
   6262     `(org-treescope-faces--markerinternal-range ((,class :inherit modus-themes-special-mild)))
   6263 ;;;;; origami
   6264     `(origami-fold-header-face ((,class :background ,bg-dim :foreground ,fg-dim :box t)))
   6265     `(origami-fold-replacement-face ((,class :background ,bg-alt :foreground ,fg-alt)))
   6266 ;;;;; outline-mode
   6267     `(outline-1 ((,class :inherit modus-themes-heading-1)))
   6268     `(outline-2 ((,class :inherit modus-themes-heading-2)))
   6269     `(outline-3 ((,class :inherit modus-themes-heading-3)))
   6270     `(outline-4 ((,class :inherit modus-themes-heading-4)))
   6271     `(outline-5 ((,class :inherit modus-themes-heading-5)))
   6272     `(outline-6 ((,class :inherit modus-themes-heading-6)))
   6273     `(outline-7 ((,class :inherit modus-themes-heading-7)))
   6274     `(outline-8 ((,class :inherit modus-themes-heading-8)))
   6275 ;;;;; outline-minor-faces
   6276     `(outline-minor-0 (()))
   6277 ;;;;; package (M-x list-packages)
   6278     `(package-description ((,class :foreground ,fg-special-cold)))
   6279     `(package-help-section-name ((,class :inherit bold :foreground ,magenta-alt-other)))
   6280     `(package-name ((,class :inherit button)))
   6281     `(package-status-avail-obso ((,class :inherit bold :foreground ,red)))
   6282     `(package-status-available ((,class :foreground ,fg-special-mild)))
   6283     `(package-status-built-in ((,class :foreground ,magenta)))
   6284     `(package-status-dependency ((,class :foreground ,magenta-alt-other)))
   6285     `(package-status-disabled ((,class :inherit modus-themes-subtle-red)))
   6286     `(package-status-external ((,class :foreground ,cyan-alt-other)))
   6287     `(package-status-held ((,class :foreground ,yellow-alt)))
   6288     `(package-status-incompat ((,class :inherit bold :foreground ,yellow)))
   6289     `(package-status-installed ((,class :foreground ,fg-special-warm)))
   6290     `(package-status-new ((,class :inherit bold :foreground ,green)))
   6291     `(package-status-unsigned ((,class :inherit bold :foreground ,red-alt)))
   6292 ;;;;; page-break-lines
   6293     `(page-break-lines ((,class :inherit default :foreground ,fg-window-divider-outer)))
   6294 ;;;;; pandoc-mode
   6295     `(pandoc-citation-key-face ((,class :background ,bg-dim :foreground ,magenta-alt)))
   6296     `(pandoc-directive-@@-face ((,class :background ,bg-dim :foreground ,blue-alt-other)))
   6297     `(pandoc-directive-braces-face ((,class :foreground ,blue-alt-other)))
   6298     `(pandoc-directive-contents-face ((,class :foreground ,cyan-alt-other)))
   6299     `(pandoc-directive-type-face ((,class :foreground ,magenta)))
   6300 ;;;;; paradox
   6301     `(paradox-archive-face ((,class :foreground ,fg-special-mild)))
   6302     `(paradox-comment-face ((,class :inherit font-lock-comment-face)))
   6303     `(paradox-commit-tag-face ((,class :inherit modus-themes-refine-magenta :box t)))
   6304     `(paradox-description-face ((,class :foreground ,fg-special-cold)))
   6305     `(paradox-description-face-multiline ((,class :foreground ,fg-special-cold)))
   6306     `(paradox-download-face ((,class :inherit modus-themes-bold :foreground ,blue-alt-other)))
   6307     `(paradox-highlight-face ((,class :inherit modus-themes-bold :foreground ,cyan-alt-other)))
   6308     `(paradox-homepage-button-face ((,class :foreground ,magenta-alt-other :underline t)))
   6309     `(paradox-mode-line-face ((,class :inherit bold :foreground ,cyan-active)))
   6310     `(paradox-name-face ((,class :foreground ,blue :underline t)))
   6311     `(paradox-star-face ((,class :foreground ,magenta)))
   6312     `(paradox-starred-face ((,class :foreground ,magenta-alt)))
   6313 ;;;;; paren-face
   6314     `(parenthesis ((,class :foreground ,fg-unfocused)))
   6315 ;;;;; parrot
   6316     `(parrot-rotate-rotation-highlight-face ((,class :inherit modus-themes-refine-magenta)))
   6317 ;;;;; pass
   6318     `(pass-mode-directory-face ((,class :inherit bold :foreground ,fg-special-cold)))
   6319     `(pass-mode-entry-face ((,class :background ,bg-main :foreground ,fg-main)))
   6320     `(pass-mode-header-face ((,class :foreground ,fg-special-warm)))
   6321 ;;;;; pdf-tools
   6322     `(pdf-links-read-link ((,class :background ,fg-main :foreground ,magenta-intense-bg :inherit bold))) ; Foreground is background and vice versa
   6323     `(pdf-occur-document-face ((,class :inherit shadow)))
   6324     `(pdf-occur-page-face ((,class :inherit shadow)))
   6325 ;;;;; persp-mode
   6326     `(persp-face-lighter-buffer-not-in-persp ((,class :inherit modus-themes-intense-red)))
   6327     `(persp-face-lighter-default ((,class :inherit bold :foreground ,blue-active)))
   6328     `(persp-face-lighter-nil-persp ((,class :inherit bold :foreground ,fg-active)))
   6329 ;;;;; perspective
   6330     `(persp-selected-face ((,class :inherit bold :foreground ,blue-active)))
   6331 ;;;;; phi-grep
   6332     `(phi-grep-heading-face  ((,class :inherit bold :foreground ,red-alt
   6333                                       ,@(modus-themes--scale modus-themes-scale-4))))
   6334     `(phi-grep-line-number-face ((,class :foreground ,fg-special-warm)))
   6335     `(phi-grep-match-face ((,class :inherit modus-themes-special-calm)))
   6336     `(phi-grep-modified-face ((,class :inherit modus-themes-refine-yellow)))
   6337     `(phi-grep-overlay-face ((,class :inherit modus-themes-refine-blue)))
   6338 ;;;;; phi-search
   6339     `(phi-replace-preview-face ((,class :inherit modus-themes-intense-magenta)))
   6340     `(phi-search-failpart-face ((,class :inherit modus-themes-refine-red)))
   6341     `(phi-search-match-face ((,class :inherit modus-themes-search-success-lazy)))
   6342     `(phi-search-selection-face ((,class :inherit (modus-themes-search-success bold))))
   6343 ;;;;; pkgbuild-mode
   6344     `(pkgbuild-error-face ((,class :inherit modus-themes-lang-error)))
   6345 ;;;;; pomidor
   6346     `(pomidor-break-face ((,class :foreground ,blue-alt-other)))
   6347     `(pomidor-overwork-face ((,class :foreground ,red-alt-other)))
   6348     `(pomidor-skip-face ((,class :inherit modus-themes-slant :foreground ,fg-alt)))
   6349     `(pomidor-work-face ((,class :foreground ,@(modus-themes--success-deuteran
   6350                                                 blue-alt
   6351                                                 green-alt-other))))
   6352 ;;;;; popup
   6353     `(popup-face ((,class :background ,bg-alt :foreground ,fg-main)))
   6354     `(popup-isearch-match ((,class :inherit (modus-themes-refine-cyan bold))))
   6355     `(popup-menu-mouse-face ((,class :inherit modus-themes-intense-blue)))
   6356     `(popup-menu-selection-face ((,class :inherit (modus-themes-subtle-cyan bold))))
   6357     `(popup-scroll-bar-background-face ((,class :background ,bg-active)))
   6358     `(popup-scroll-bar-foreground-face ((,class :foreground ,fg-active)))
   6359     `(popup-summary-face ((,class :background ,bg-active :foreground ,fg-inactive)))
   6360     `(popup-tip-face ((,class :inherit modus-themes-refine-yellow)))
   6361 ;;;;; powerline
   6362     `(powerline-active0 ((,class :background ,bg-main :foreground ,blue-faint :inverse-video t)))
   6363     `(powerline-active1 ((,class :background ,blue-nuanced-bg :foreground ,blue-nuanced-fg)))
   6364     `(powerline-active2 ((,class :background ,bg-active :foreground ,fg-active)))
   6365     `(powerline-inactive0 ((,class :background ,bg-special-cold :foreground ,fg-special-cold)))
   6366     `(powerline-inactive1 ((,class :background ,bg-dim :foreground ,fg-inactive)))
   6367     `(powerline-inactive2 ((,class :background ,bg-inactive :foreground ,fg-inactive)))
   6368 ;;;;; powerline-evil
   6369     `(powerline-evil-base-face ((,class :background ,fg-main :foreground ,bg-main)))
   6370     `(powerline-evil-emacs-face ((,class :inherit modus-themes-active-magenta)))
   6371     `(powerline-evil-insert-face ((,class :inherit modus-themes-active-green)))
   6372     `(powerline-evil-motion-face ((,class :inherit modus-themes-active-blue)))
   6373     `(powerline-evil-normal-face ((,class :background ,fg-alt :foreground ,bg-main)))
   6374     `(powerline-evil-operator-face ((,class :inherit modus-themes-active-yellow)))
   6375     `(powerline-evil-replace-face ((,class :inherit modus-themes-active-red)))
   6376     `(powerline-evil-visual-face ((,class :inherit modus-themes-active-cyan)))
   6377 ;;;;; proced
   6378     `(proced-mark ((,class :inherit modus-themes-mark-symbol)))
   6379     `(proced-marked ((,class :inherit modus-themes-mark-alt)))
   6380     `(proced-sort-header ((,class :inherit bold :foreground ,fg-special-calm :underline t)))
   6381 ;;;;; prodigy
   6382     `(prodigy-green-face ((,class :foreground ,green)))
   6383     `(prodigy-red-face ((,class :foreground ,red)))
   6384     `(prodigy-yellow-face ((,class :foreground ,yellow)))
   6385 ;;;;; pulse
   6386     `(pulse-highlight-start-face ((,class :background ,bg-active-accent :extend t)))
   6387 ;;;;; quick-peek
   6388     `(quick-peek-background-face ((,class :background ,bg-alt)))
   6389     `(quick-peek-border-face ((,class :background ,fg-window-divider-inner :height 1)))
   6390     `(quick-peek-padding-face ((,class :background ,bg-alt :height 0.15)))
   6391 ;;;;; racket-mode
   6392     `(racket-debug-break-face ((,class :inherit modus-themes-intense-red)))
   6393     `(racket-debug-locals-face ((,class :box (:line-width -1 :color nil)
   6394                                         :foreground ,green-alt-other)))
   6395     `(racket-debug-result-face ((,class :inherit bold :box (:line-width -1 :color nil)
   6396                                         :foreground ,green)))
   6397     `(racket-here-string-face ((,class :foreground ,blue-alt)))
   6398     `(racket-keyword-argument-face ((,class :foreground ,red-alt)))
   6399     `(racket-logger-config-face ((,class :inherit modus-themes-slant :foreground ,fg-alt)))
   6400     `(racket-logger-debug-face ((,class :foreground ,blue-alt-other)))
   6401     `(racket-logger-info-face ((,class :foreground ,fg-lang-note)))
   6402     `(racket-logger-topic-face ((,class :inherit modus-themes-slant :foreground ,magenta)))
   6403     `(racket-selfeval-face ((,class :foreground ,green-alt)))
   6404     `(racket-xp-error-face ((,class :inherit modus-themes-lang-error)))
   6405 ;;;;; rainbow-blocks
   6406     `(rainbow-blocks-depth-1-face ((,class :foreground ,magenta-alt-other)))
   6407     `(rainbow-blocks-depth-2-face ((,class :foreground ,blue)))
   6408     `(rainbow-blocks-depth-3-face ((,class :foreground ,magenta-alt)))
   6409     `(rainbow-blocks-depth-4-face ((,class :foreground ,green)))
   6410     `(rainbow-blocks-depth-5-face ((,class :foreground ,magenta)))
   6411     `(rainbow-blocks-depth-6-face ((,class :foreground ,cyan)))
   6412     `(rainbow-blocks-depth-7-face ((,class :foreground ,yellow)))
   6413     `(rainbow-blocks-depth-8-face ((,class :foreground ,cyan-alt)))
   6414     `(rainbow-blocks-depth-9-face ((,class :foreground ,red-alt)))
   6415     `(rainbow-blocks-unmatched-face ((,class :foreground ,red)))
   6416 ;;;;; rainbow-identifiers
   6417     `(rainbow-identifiers-identifier-1 ((,class :foreground ,green-alt-other)))
   6418     `(rainbow-identifiers-identifier-2 ((,class :foreground ,magenta-alt-other)))
   6419     `(rainbow-identifiers-identifier-3 ((,class :foreground ,cyan-alt-other)))
   6420     `(rainbow-identifiers-identifier-4 ((,class :foreground ,yellow-alt-other)))
   6421     `(rainbow-identifiers-identifier-5 ((,class :foreground ,blue-alt-other)))
   6422     `(rainbow-identifiers-identifier-6 ((,class :foreground ,green-alt)))
   6423     `(rainbow-identifiers-identifier-7 ((,class :foreground ,magenta-alt)))
   6424     `(rainbow-identifiers-identifier-8 ((,class :foreground ,cyan-alt)))
   6425     `(rainbow-identifiers-identifier-9 ((,class :foreground ,yellow-alt)))
   6426     `(rainbow-identifiers-identifier-10 ((,class :foreground ,green)))
   6427     `(rainbow-identifiers-identifier-11 ((,class :foreground ,magenta)))
   6428     `(rainbow-identifiers-identifier-12 ((,class :foreground ,cyan)))
   6429     `(rainbow-identifiers-identifier-13 ((,class :foreground ,yellow)))
   6430     `(rainbow-identifiers-identifier-14 ((,class :foreground ,blue-alt)))
   6431     `(rainbow-identifiers-identifier-15 ((,class :foreground ,red-alt)))
   6432 ;;;;; rainbow-delimiters
   6433     `(rainbow-delimiters-base-error-face ((,class :background ,red-subtle-bg :foreground ,fg-main)))
   6434     `(rainbow-delimiters-base-face ((,class :foreground ,fg-main)))
   6435     `(rainbow-delimiters-depth-1-face ((,class :foreground ,fg-main)))
   6436     `(rainbow-delimiters-depth-2-face ((,class :foreground ,magenta-intense)))
   6437     `(rainbow-delimiters-depth-3-face ((,class :foreground ,cyan-intense)))
   6438     `(rainbow-delimiters-depth-4-face ((,class :foreground ,orange-intense)))
   6439     `(rainbow-delimiters-depth-5-face ((,class :foreground ,purple-intense)))
   6440     `(rainbow-delimiters-depth-6-face ((,class :foreground ,green-intense)))
   6441     `(rainbow-delimiters-depth-7-face ((,class :foreground ,red-intense)))
   6442     `(rainbow-delimiters-depth-8-face ((,class :foreground ,blue-intense)))
   6443     `(rainbow-delimiters-depth-9-face ((,class :foreground ,yellow-intense)))
   6444     `(rainbow-delimiters-mismatched-face ((,class :inherit (bold modus-themes-refine-yellow))))
   6445     `(rainbow-delimiters-unmatched-face ((,class :inherit (bold modus-themes-refine-red))))
   6446 ;;;;; rcirc
   6447     `(rcirc-bright-nick ((,class :inherit bold :foreground ,magenta-alt)))
   6448     `(rcirc-dim-nick ((,class :inherit shadow)))
   6449     `(rcirc-my-nick ((,class :inherit bold :foreground ,magenta)))
   6450     `(rcirc-nick-in-message ((,class :foreground ,magenta-alt-other)))
   6451     `(rcirc-nick-in-message-full-line ((,class :inherit bold :foreground ,fg-special-mild)))
   6452     `(rcirc-other-nick ((,class :inherit bold :foreground ,fg-special-cold)))
   6453     `(rcirc-prompt ((,class :inherit modus-themes-prompt)))
   6454     `(rcirc-server ((,class :foreground ,fg-unfocused)))
   6455     `(rcirc-timestamp ((,class :foreground ,blue-nuanced-fg)))
   6456     `(rcirc-url ((,class :foreground ,blue :underline t)))
   6457 ;;;;; recursion-indicator
   6458     `(recursion-indicator-general ((,class :foreground ,blue-active)))
   6459     `(recursion-indicator-minibuffer ((,class :foreground ,red-active)))
   6460 ;;;;; regexp-builder (re-builder)
   6461     `(reb-match-0 ((,class :inherit modus-themes-refine-cyan)))
   6462     `(reb-match-1 ((,class :inherit modus-themes-subtle-magenta)))
   6463     `(reb-match-2 ((,class :inherit modus-themes-subtle-green)))
   6464     `(reb-match-3 ((,class :inherit modus-themes-refine-yellow)))
   6465     `(reb-regexp-grouping-backslash ((,class :inherit font-lock-regexp-grouping-backslash)))
   6466     `(reb-regexp-grouping-construct ((,class :inherit font-lock-regexp-grouping-construct)))
   6467 ;;;;; rg (rg.el)
   6468     `(rg-column-number-face ((,class :foreground ,magenta-alt-other)))
   6469     `(rg-context-face ((,class :foreground ,fg-unfocused)))
   6470     `(rg-error-face ((,class :inherit bold :foreground ,red)))
   6471     `(rg-file-tag-face ((,class :foreground ,fg-special-cold)))
   6472     `(rg-filename-face ((,class :inherit bold :foreground ,fg-special-cold)))
   6473     `(rg-line-number-face ((,class :foreground ,fg-special-warm)))
   6474     `(rg-literal-face ((,class :foreground ,blue-alt)))
   6475     `(rg-match-face ((,class :inherit modus-themes-special-calm)))
   6476     `(rg-regexp-face ((,class :foreground ,magenta-active)))
   6477     `(rg-toggle-off-face ((,class :inherit bold :foreground ,fg-inactive)))
   6478     `(rg-toggle-on-face ((,class :inherit bold :foreground ,cyan-active)))
   6479     `(rg-warning-face ((,class :inherit bold :foreground ,yellow)))
   6480 ;;;;; ripgrep
   6481     `(ripgrep-context-face ((,class :foreground ,fg-unfocused)))
   6482     `(ripgrep-error-face ((,class :inherit bold :foreground ,red)))
   6483     `(ripgrep-hit-face ((,class :foreground ,cyan)))
   6484     `(ripgrep-match-face ((,class :inherit modus-themes-special-calm)))
   6485 ;;;;; rmail
   6486     `(rmail-header-name ((,class :foreground ,cyan-alt-other)))
   6487     `(rmail-highlight ((,class :inherit bold :foreground ,magenta-alt)))
   6488 ;;;;; ruler-mode
   6489     `(ruler-mode-column-number ((,class :inherit ruler-mode-default :foreground ,fg-main)))
   6490     `(ruler-mode-comment-column ((,class :inherit ruler-mode-default :foreground ,red)))
   6491     `(ruler-mode-current-column ((,class :inherit ruler-mode-default :background ,blue-subtle-bg :foreground ,fg-main)))
   6492     `(ruler-mode-default ((,class :inherit default :background ,bg-alt :foreground ,fg-unfocused)))
   6493     `(ruler-mode-fill-column ((,class :inherit ruler-mode-default :foreground ,green)))
   6494     `(ruler-mode-fringes ((,class :inherit ruler-mode-default :foreground ,cyan)))
   6495     `(ruler-mode-goal-column ((,class :inherit ruler-mode-default :foreground ,blue)))
   6496     `(ruler-mode-margins ((,class :inherit ruler-mode-default :foreground ,bg-main)))
   6497     `(ruler-mode-pad ((,class :inherit ruler-mode-default :background ,bg-active :foreground ,fg-inactive)))
   6498     `(ruler-mode-tab-stop ((,class :inherit ruler-mode-default :foreground ,fg-special-warm)))
   6499 ;;;;; sallet
   6500     `(sallet-buffer-compressed ((,class :inherit italic :foreground ,yellow-nuanced-fg)))
   6501     `(sallet-buffer-default-directory ((,class :foreground ,cyan-nuanced-fg)))
   6502     `(sallet-buffer-directory ((,class :foreground ,blue-nuanced-fg)))
   6503     `(sallet-buffer-help ((,class :foreground ,fg-special-cold)))
   6504     `(sallet-buffer-modified ((,class :inherit italic :foreground ,yellow-alt-other)))
   6505     `(sallet-buffer-ordinary ((,class :foreground ,fg-main)))
   6506     `(sallet-buffer-read-only ((,class :foreground ,yellow-alt)))
   6507     `(sallet-buffer-size ((,class :foreground ,fg-special-calm)))
   6508     `(sallet-buffer-special ((,class :foreground ,magenta-alt-other)))
   6509     `(sallet-flx-match ((,class ,@(modus-themes--extra-completions
   6510                                    'modus-themes-subtle-cyan
   6511                                    'modus-themes-refine-cyan
   6512                                    'modus-themes-nuanced-cyan
   6513                                    cyan-alt-other))))
   6514     `(sallet-recentf-buffer-name ((,class :foreground ,blue-nuanced-fg)))
   6515     `(sallet-recentf-file-path ((,class :foreground ,fg-special-mild)))
   6516     `(sallet-regexp-match ((,class ,@(modus-themes--extra-completions
   6517                                       'modus-themes-subtle-magenta
   6518                                       'modus-themes-refine-magenta
   6519                                       'modus-themes-nuanced-magenta
   6520                                       magenta-alt-other))))
   6521     `(sallet-source-header ((,class :inherit bold :foreground ,red-alt
   6522                                     ,@(modus-themes--scale modus-themes-scale-4))))
   6523     `(sallet-substring-match ((,class ,@(modus-themes--extra-completions
   6524                                          'modus-themes-subtle-blue
   6525                                          'modus-themes-refine-blue
   6526                                          'modus-themes-nuanced-blue
   6527                                          blue-alt-other))))
   6528 ;;;;; selectrum
   6529     ;; NOTE 2021-02-22: The `selectrum-primary-highlight' and
   6530     ;; `selectrum-secondary-highlight' are deprecated upstream in favour
   6531     ;; of their selectrum-prescient counterparts.  We shall remove those
   6532     ;; faces from the themes once we are certain that they are no longer
   6533     ;; relevant.
   6534     `(selectrum-current-candidate
   6535       ((,class :inherit bold :foreground ,fg-main
   6536                :background ,@(pcase modus-themes-completions
   6537                                ('opinionated (list bg-active))
   6538                                (_ (list bg-inactive))))))
   6539     `(selectrum-mouse-highlight ((,class :inherit highlight)))
   6540     `(selectrum-primary-highlight
   6541       ((,class :inherit bold
   6542                ,@(modus-themes--standard-completions
   6543                   magenta-alt magenta-nuanced-bg
   6544                   magenta-refine-bg magenta-refine-fg))))
   6545     `(selectrum-secondary-highlight
   6546       ((,class :inherit bold
   6547                ,@(modus-themes--standard-completions
   6548                   cyan-alt-other cyan-nuanced-bg
   6549                   cyan-refine-bg cyan-refine-fg))))
   6550     `(selectrum-quick-keys-highlight
   6551       ((,class :inherit modus-themes-refine-red)))
   6552     `(selectrum-quick-keys-match
   6553       ((,class :inherit (bold modus-themes-search-success))))
   6554 ;;;;; selectrum-prescient
   6555     `(selectrum-prescient-primary-highlight
   6556       ((,class :inherit bold
   6557                ,@(modus-themes--standard-completions
   6558                   magenta-alt magenta-nuanced-bg
   6559                   magenta-refine-bg magenta-refine-fg))))
   6560     `(selectrum-prescient-secondary-highlight
   6561       ((,class :inherit bold
   6562                ,@(modus-themes--standard-completions
   6563                   cyan-alt-other cyan-nuanced-bg
   6564                   cyan-refine-bg cyan-refine-fg))))
   6565 ;;;;; semantic
   6566     `(semantic-complete-inline-face ((,class :foreground ,fg-special-warm :underline t)))
   6567     `(semantic-decoration-on-fileless-includes ((,class :inherit modus-themes-refine-green)))
   6568     `(semantic-decoration-on-private-members-face ((,class :inherit modus-themes-refine-cyan)))
   6569     `(semantic-decoration-on-protected-members-face ((,class :background ,bg-dim)))
   6570     `(semantic-decoration-on-unknown-includes ((,class :inherit modus-themes-refine-red)))
   6571     `(semantic-decoration-on-unparsed-includes ((,class :inherit modus-themes-refine-yellow)))
   6572     `(semantic-highlight-edits-face ((,class :background ,bg-alt)))
   6573     `(semantic-highlight-func-current-tag-face ((,class :background ,bg-alt)))
   6574     `(semantic-idle-symbol-highlight ((,class :inherit modus-themes-special-mild)))
   6575     `(semantic-tag-boundary-face ((,class :overline ,blue-intense)))
   6576     `(semantic-unmatched-syntax-face ((,class :underline ,fg-lang-error)))
   6577 ;;;;; sesman
   6578     `(sesman-browser-button-face ((,class :foreground ,blue-alt-other :underline t)))
   6579     `(sesman-browser-highligh-face ((,class :inherit modus-themes-subtle-blue)))
   6580     `(sesman-buffer-face ((,class :foreground ,magenta)))
   6581     `(sesman-directory-face ((,class :inherit bold :foreground ,blue)))
   6582     `(sesman-project-face ((,class :inherit bold :foreground ,magenta-alt-other)))
   6583 ;;;;; shell-script-mode
   6584     `(sh-heredoc ((,class :foreground ,blue-alt)))
   6585     `(sh-quoted-exec ((,class :inherit modus-themes-bold :foreground ,magenta-alt)))
   6586 ;;;;; shortdoc
   6587     `(shortdoc-heading ((,class :inherit modus-themes-pseudo-header)))
   6588     `(shortdoc-section (())) ; remove the default's variable-pitch style
   6589 ;;;;; show-paren-mode
   6590     `(show-paren-match ((,class ,@(modus-themes--paren bg-paren-match
   6591                                                        bg-paren-match-intense)
   6592                                 :foreground ,fg-main)))
   6593     `(show-paren-match-expression ((,class :background ,bg-paren-expression)))
   6594     `(show-paren-mismatch ((,class :inherit modus-themes-intense-red)))
   6595 ;;;;; shr
   6596     `(shr-abbreviation ((,class :inherit modus-themes-lang-note)))
   6597     `(shr-selected-link ((,class :inherit modus-themes-subtle-red)))
   6598 ;;;;; side-notes
   6599     `(side-notes ((,class :background ,bg-dim :foreground ,fg-dim)))
   6600 ;;;;; sieve-mode
   6601     `(sieve-action-commands ((,class :inherit font-lock-builtin-face)))
   6602     `(sieve-control-commands ((,class :inherit font-lock-keyword-face)))
   6603     `(sieve-tagged-arguments ((,class :inherit font-lock-type-face)))
   6604     `(sieve-test-commands ((,class :inherit font-lock-function-name-face)))
   6605 ;;;;; skewer-mode
   6606     `(skewer-error-face ((,class :foreground ,red :underline t)))
   6607 ;;;;; smart-mode-line
   6608     `(sml/charging ((,class :foreground ,green-active)))
   6609     `(sml/discharging ((,class :foreground ,red-active)))
   6610     `(sml/filename ((,class :inherit bold :foreground ,blue-active)))
   6611     `(sml/folder ((,class :foreground ,fg-active)))
   6612     `(sml/git ((,class :inherit bold :foreground ,green-active)))
   6613     `(sml/global ((,class :foreground ,fg-active)))
   6614     `(sml/line-number ((,class :inherit sml/global)))
   6615     `(sml/minor-modes ((,class :inherit sml/global)))
   6616     `(sml/modes ((,class :inherit bold :foreground ,fg-active)))
   6617     `(sml/modified ((,class :inherit bold :foreground ,magenta-active)))
   6618     `(sml/mule-info ((,class :inherit sml/global)))
   6619     `(sml/name-filling ((,class :foreground ,yellow-active)))
   6620     `(sml/not-modified ((,class :inherit sml/global)))
   6621     `(sml/numbers-separator ((,class :inherit sml/global)))
   6622     `(sml/outside-modified ((,class :inherit modus-themes-intense-red)))
   6623     `(sml/position-percentage ((,class :inherit sml/global)))
   6624     `(sml/prefix ((,class :foreground ,green-active)))
   6625     `(sml/process ((,class :inherit sml/prefix)))
   6626     `(sml/projectile ((,class :inherit sml/git)))
   6627     `(sml/read-only ((,class :inherit bold :foreground ,cyan-active)))
   6628     `(sml/remote ((,class :inherit sml/global)))
   6629     `(sml/sudo ((,class :inherit modus-themes-subtle-red)))
   6630     `(sml/time ((,class :inherit sml/global)))
   6631     `(sml/vc ((,class :inherit sml/git)))
   6632     `(sml/vc-edited ((,class :inherit bold :foreground ,yellow-active)))
   6633 ;;;;; smartparens
   6634     `(sp-pair-overlay-face ((,class :inherit modus-themes-special-warm)))
   6635     `(sp-show-pair-enclosing ((,class :inherit modus-themes-special-mild)))
   6636     `(sp-show-pair-match-face ((,class ,@(modus-themes--paren bg-paren-match
   6637                                                               bg-paren-match-intense)
   6638                                        :foreground ,fg-main)))
   6639     `(sp-show-pair-mismatch-face ((,class :inherit modus-themes-intense-red)))
   6640     `(sp-wrap-overlay-closing-pair ((,class :inherit sp-pair-overlay-face)))
   6641     `(sp-wrap-overlay-face ((,class :inherit sp-pair-overlay-face)))
   6642     `(sp-wrap-overlay-opening-pair ((,class :inherit sp-pair-overlay-face)))
   6643     `(sp-wrap-tag-overlay-face ((,class :inherit sp-pair-overlay-face)))
   6644 ;;;;; smerge
   6645     `(smerge-base ((,class :inherit modus-themes-diff-changed)))
   6646     `(smerge-lower ((,class :inherit modus-themes-diff-added)))
   6647     `(smerge-markers ((,class :inherit modus-themes-diff-heading)))
   6648     `(smerge-refined-added ((,class :inherit modus-themes-diff-refine-added)))
   6649     `(smerge-refined-changed (()))
   6650     `(smerge-refined-removed ((,class :inherit modus-themes-diff-refine-removed)))
   6651     `(smerge-upper ((,class :inherit modus-themes-diff-removed)))
   6652 ;;;;; solaire
   6653     `(solaire-default-face ((,class :inherit default :background ,bg-alt :foreground ,fg-dim)))
   6654     `(solaire-line-number-face ((,class :inherit solaire-default-face :foreground ,fg-unfocused)))
   6655     `(solaire-hl-line-face ((,class :background ,bg-active)))
   6656     `(solaire-org-hide-face ((,class :background ,bg-alt :foreground ,bg-alt)))
   6657 ;;;;; spaceline
   6658     `(spaceline-evil-emacs ((,class :inherit modus-themes-active-magenta)))
   6659     `(spaceline-evil-insert ((,class :inherit modus-themes-active-green)))
   6660     `(spaceline-evil-motion ((,class :inherit modus-themes-active-blue)))
   6661     `(spaceline-evil-normal ((,class :background ,fg-alt :foreground ,bg-alt)))
   6662     `(spaceline-evil-replace ((,class :inherit modus-themes-active-red)))
   6663     `(spaceline-evil-visual ((,class :inherit modus-themes-active-cyan)))
   6664     `(spaceline-flycheck-error ((,class :foreground ,red-active)))
   6665     `(spaceline-flycheck-info ((,class :foreground ,cyan-active)))
   6666     `(spaceline-flycheck-warning ((,class :foreground ,yellow-active)))
   6667     `(spaceline-highlight-face ((,class :inherit modus-themes-fringe-blue)))
   6668     `(spaceline-modified ((,class :inherit modus-themes-fringe-magenta)))
   6669     `(spaceline-python-venv ((,class :foreground ,magenta-active)))
   6670     `(spaceline-read-only ((,class :inherit modus-themes-fringe-red)))
   6671     `(spaceline-unmodified ((,class :inherit modus-themes-fringe-cyan)))
   6672 ;;;;; speedbar
   6673     `(speedbar-button-face ((,class :inherit button)))
   6674     `(speedbar-directory-face ((,class :inherit bold :foreground ,blue)))
   6675     `(speedbar-file-face ((,class :foreground ,fg-main)))
   6676     `(speedbar-highlight-face ((,class :inherit modus-themes-subtle-blue)))
   6677     `(speedbar-selected-face ((,class :inherit bold :foreground ,cyan)))
   6678     `(speedbar-separator-face ((,class :inherit modus-themes-intense-neutral)))
   6679     `(speedbar-tag-face ((,class :foreground ,yellow-alt-other)))
   6680 ;;;;; spell-fu
   6681     `(spell-fu-incorrect-face ((,class :inherit modus-themes-lang-error)))
   6682 ;;;;; spray
   6683     `(spray-accent-face ((,class :foreground ,red-intense)))
   6684     `(spray-base-face ((,class :inherit default :foreground ,fg-special-cold)))
   6685 ;;;;; stripes
   6686     `(stripes ((,class :inherit modus-themes-hl-line)))
   6687 ;;;;; success
   6688     `(suggest-heading ((,class :inherit bold :foreground ,yellow-alt-other)))
   6689 ;;;;; switch-window
   6690     `(switch-window-background ((,class :background ,bg-dim)))
   6691     `(switch-window-label ((,class :height 3.0 :foreground ,blue-intense)))
   6692 ;;;;; swiper
   6693     `(swiper-background-match-face-1 ((,class :inherit modus-themes-subtle-neutral)))
   6694     `(swiper-background-match-face-2 ((,class :inherit modus-themes-refine-cyan)))
   6695     `(swiper-background-match-face-3 ((,class :inherit modus-themes-refine-magenta)))
   6696     `(swiper-background-match-face-4 ((,class :inherit modus-themes-refine-yellow)))
   6697     `(swiper-line-face ((,class :inherit modus-themes-special-cold)))
   6698     `(swiper-match-face-1 ((,class :inherit (bold modus-themes-intense-neutral))))
   6699     `(swiper-match-face-2 ((,class :inherit (bold modus-themes-intense-green))))
   6700     `(swiper-match-face-3 ((,class :inherit (bold modus-themes-intense-blue))))
   6701     `(swiper-match-face-4 ((,class :inherit (bold modus-themes-intense-red))))
   6702 ;;;;; swoop
   6703     `(swoop-face-header-format-line ((,class :inherit bold :foreground ,red-alt
   6704                                              ,@(modus-themes--scale modus-themes-scale-3))))
   6705     `(swoop-face-line-buffer-name ((,class :inherit bold :foreground ,blue-alt
   6706                                            ,@(modus-themes--scale modus-themes-scale-4))))
   6707     `(swoop-face-line-number ((,class :foreground ,fg-special-warm)))
   6708     `(swoop-face-target-line ((,class :inherit modus-themes-intense-blue :extend t)))
   6709     `(swoop-face-target-words ((,class :inherit modus-themes-refine-cyan)))
   6710 ;;;;; sx
   6711     `(sx-inbox-item-type ((,class :foreground ,magenta-alt-other)))
   6712     `(sx-inbox-item-type-unread ((,class :inherit (sx-inbox-item-type bold))))
   6713     `(sx-question-list-answers ((,class :foreground ,green)))
   6714     `(sx-question-list-answers-accepted ((,class :box t :foreground ,green)))
   6715     `(sx-question-list-bounty ((,class :inherit bold :background ,bg-alt :foreground ,yellow)))
   6716     `(sx-question-list-date ((,class :foreground ,fg-special-cold)))
   6717     `(sx-question-list-favorite ((,class :inherit bold :foreground ,fg-special-warm)))
   6718     `(sx-question-list-parent ((,class :foreground ,fg-main)))
   6719     `(sx-question-list-read-question ((,class :inherit shadow)))
   6720     `(sx-question-list-score ((,class :foreground ,fg-special-mild)))
   6721     `(sx-question-list-score-upvoted ((,class :inherit (sx-question-list-score bold))))
   6722     `(sx-question-list-unread-question ((,class :inherit bold :foreground ,fg-main)))
   6723     `(sx-question-mode-accepted ((,class :inherit bold :height 1.3 :foreground ,green)))
   6724     `(sx-question-mode-closed ((,class :inherit modus-themes-active-yellow :box (:line-width 2 :color nil))))
   6725     `(sx-question-mode-closed-reason ((,class :box (:line-width 2 :color nil) :foreground ,fg-main)))
   6726     `(sx-question-mode-content-face ((,class :background ,bg-dim)))
   6727     `(sx-question-mode-date ((,class :foreground ,blue)))
   6728     `(sx-question-mode-header ((,class :inherit bold :foreground ,cyan)))
   6729     `(sx-question-mode-kbd-tag ((,class :inherit bold :height 0.9 :box (:line-width 3 :color ,fg-main :style released-button) :foreground ,fg-main)))
   6730     `(sx-question-mode-score ((,class :foreground ,fg-dim)))
   6731     `(sx-question-mode-score-downvoted ((,class :foreground ,yellow)))
   6732     `(sx-question-mode-score-upvoted ((,class :inherit bold :foreground ,magenta)))
   6733     `(sx-question-mode-title ((,class :inherit bold :foreground ,fg-main)))
   6734     `(sx-question-mode-title-comments ((,class :inherit bold :foreground ,fg-alt)))
   6735     `(sx-tag ((,class :foreground ,magenta-alt)))
   6736     `(sx-user-name ((,class :foreground ,blue-alt)))
   6737     `(sx-user-reputation ((,class :inherit shadow)))
   6738 ;;;;; symbol-overlay
   6739     `(symbol-overlay-default-face ((,class :inherit modus-themes-special-warm)))
   6740     `(symbol-overlay-face-1 ((,class :inherit modus-themes-intense-blue)))
   6741     `(symbol-overlay-face-2 ((,class :inherit modus-themes-refine-magenta)))
   6742     `(symbol-overlay-face-3 ((,class :inherit modus-themes-intense-yellow)))
   6743     `(symbol-overlay-face-4 ((,class :inherit modus-themes-intense-magenta)))
   6744     `(symbol-overlay-face-5 ((,class :inherit modus-themes-intense-red)))
   6745     `(symbol-overlay-face-6 ((,class :inherit modus-themes-refine-red)))
   6746     `(symbol-overlay-face-7 ((,class :inherit modus-themes-intense-cyan)))
   6747     `(symbol-overlay-face-8 ((,class :inherit modus-themes-refine-cyan)))
   6748 ;;;;; syslog-mode
   6749     `(syslog-debug ((,class :inherit bold :foreground ,cyan-alt-other)))
   6750     `(syslog-error ((,class :inherit bold :foreground ,red)))
   6751     `(syslog-file ((,class :inherit bold :foreground ,fg-special-cold)))
   6752     `(syslog-hide ((,class :background ,bg-main :foreground ,fg-main)))
   6753     `(syslog-hour ((,class :inherit bold :foreground ,magenta-alt-other)))
   6754     `(syslog-info ((,class :inherit bold :foreground ,blue-alt-other)))
   6755     `(syslog-ip ((,class :inherit bold :foreground ,fg-special-mild :underline t)))
   6756     `(syslog-su ((,class :inherit bold :foreground ,red-alt)))
   6757     `(syslog-warn ((,class :inherit bold :foreground ,yellow)))
   6758 ;;;;; tab-bar-groups
   6759     `(tab-bar-groups-tab-1 ((,class ,@(modus-themes--variable-pitch-ui) :foreground ,blue-tab)))
   6760     `(tab-bar-groups-tab-2 ((,class ,@(modus-themes--variable-pitch-ui) :foreground ,red-tab)))
   6761     `(tab-bar-groups-tab-3 ((,class ,@(modus-themes--variable-pitch-ui) :foreground ,green-tab)))
   6762     `(tab-bar-groups-tab-4 ((,class ,@(modus-themes--variable-pitch-ui) :foreground ,orange-tab)))
   6763     `(tab-bar-groups-tab-5 ((,class ,@(modus-themes--variable-pitch-ui) :foreground ,purple-tab)))
   6764     `(tab-bar-groups-tab-6 ((,class ,@(modus-themes--variable-pitch-ui) :foreground ,cyan-tab)))
   6765     `(tab-bar-groups-tab-7 ((,class ,@(modus-themes--variable-pitch-ui) :foreground ,yellow-tab)))
   6766     `(tab-bar-groups-tab-8 ((,class ,@(modus-themes--variable-pitch-ui) :foreground ,magenta-tab)))
   6767 ;;;;; tab-bar-mode
   6768     `(tab-bar ((,class ,@(modus-themes--variable-pitch-ui)
   6769                        :background ,bg-tab-bar :foreground ,fg-main)))
   6770     `(tab-bar-tab ((,class :inherit bold :box (:line-width 2 :color ,bg-tab-active)
   6771                            :background ,bg-tab-active :foreground ,fg-main)))
   6772     `(tab-bar-tab-inactive ((,class :box (:line-width 2 :color ,bg-tab-inactive)
   6773                                     :background ,bg-tab-inactive :foreground ,fg-dim)))
   6774 ;;;;; tab-line-mode
   6775     `(tab-line ((,class ,@(modus-themes--variable-pitch-ui)
   6776                         :height 0.95 :background ,bg-tab-bar :foreground ,fg-main)))
   6777     `(tab-line-close-highlight ((,class :foreground ,red)))
   6778     `(tab-line-highlight ((,class :background ,blue-subtle-bg :foreground ,fg-dim)))
   6779     `(tab-line-tab ((,class :inherit bold :box (:line-width 2 :color ,bg-tab-active)
   6780                             :background ,bg-tab-active :foreground ,fg-main)))
   6781     `(tab-line-tab-current ((,class :inherit tab-line-tab)))
   6782     `(tab-line-tab-inactive ((,class :box (:line-width 2 :color ,bg-tab-inactive)
   6783                                      :background ,bg-tab-inactive :foreground ,fg-dim)))
   6784     `(tab-line-tab-inactive-alternate ((,class :box (:line-width 2 :color ,bg-tab-inactive-alt)
   6785                                                :background ,bg-tab-inactive-alt :foreground ,fg-main)))
   6786 ;;;;; table (built-in table.el)
   6787     `(table-cell ((,class :background ,blue-nuanced-bg)))
   6788 ;;;;; telega
   6789     ;; FIXME 2021-03-28: Some aspects of `telega' are not fully
   6790     ;; supported or have not been tested thoroughly.  Please understand
   6791     ;; that I do not use that service because it requires a smartphone
   6792     ;; and I have none.  Help with testing is appreciated.
   6793     `(telega-button ((,class :box t :foreground ,blue)))
   6794     `(telega-button-active ((,class :box ,blue-intense-bg :background ,blue-intense-bg :foreground ,fg-main)))
   6795     `(telega-button-highlight ((,class :inherit modus-themes-subtle-magenta)))
   6796     `(telega-chat-prompt ((,class :inherit bold)))
   6797     `(telega-entity-type-code ((,class :inherit fixed-pitch)))
   6798     `(telega-entity-type-mention ((,class :foreground ,cyan)))
   6799     `(telega-entity-type-pre ((,class :inherit fixed-pitch)))
   6800     `(telega-msg-heading ((,class :background ,bg-alt)))
   6801     `(telega-msg-self-title ((,class :inherit bold)))
   6802     `(telega-root-heading ((,class :inherit modus-themes-subtle-neutral)))
   6803     `(telega-secret-title ((,class :foreground ,magenta-alt)))
   6804     `(telega-unmuted-count ((,class :foreground ,blue-alt-other)))
   6805     `(telega-user-online-status ((,class :foreground ,cyan-active)))
   6806     `(telega-username ((,class :foreground ,cyan-alt-other)))
   6807     `(telega-webpage-chat-link ((,class :background ,bg-alt)))
   6808     `(telega-webpage-fixed ((,class :inherit fixed-pitch :height 0.85)))
   6809     `(telega-webpage-header ((,class :inherit modus-themes-variable-pitch :height 1.3)))
   6810     `(telega-webpage-preformatted ((,class :inherit fixed-pitch :background ,bg-alt)))
   6811     `(telega-webpage-subheader ((,class :inherit modus-themes-variable-pitch :height 1.15)))
   6812 ;;;;; telephone-line
   6813     `(telephone-line-accent-active ((,class :background ,fg-inactive :foreground ,bg-inactive)))
   6814     `(telephone-line-accent-inactive ((,class :background ,bg-active :foreground ,fg-active)))
   6815     `(telephone-line-error ((,class :inherit bold :foreground ,red-active)))
   6816     `(telephone-line-evil ((,class :foreground ,fg-main)))
   6817     `(telephone-line-evil-emacs ((,class :inherit telephone-line-evil :background ,magenta-intense-bg)))
   6818     `(telephone-line-evil-insert ((,class :inherit telephone-line-evil :background ,green-intense-bg)))
   6819     `(telephone-line-evil-motion ((,class :inherit telephone-line-evil :background ,yellow-intense-bg)))
   6820     `(telephone-line-evil-normal ((,class :inherit telephone-line-evil :background ,bg-alt)))
   6821     `(telephone-line-evil-operator ((,class :inherit telephone-line-evil :background ,yellow-subtle-bg)))
   6822     `(telephone-line-evil-replace ((,class :inherit telephone-line-evil :background ,red-intense-bg)))
   6823     `(telephone-line-evil-visual ((,class :inherit telephone-line-evil :background ,cyan-intense-bg)))
   6824     `(telephone-line-projectile ((,class :foreground ,cyan-active)))
   6825     `(telephone-line-unimportant ((,class :foreground ,fg-inactive)))
   6826     `(telephone-line-warning ((,class :inherit bold :foreground ,yellow-active)))
   6827 ;;;;; terraform-mode
   6828     `(terraform--resource-name-face ((,class ,@(modus-themes--syntax-string
   6829                                                 magenta-alt-other magenta-alt-other-faint
   6830                                                 red-alt red-alt))))
   6831     `(terraform--resource-type-face ((,class ,@(modus-themes--syntax-string
   6832                                                 green green-faint
   6833                                                 blue-alt magenta-alt))))
   6834 ;;;;; term
   6835     `(term ((,class :background ,bg-main :foreground ,fg-main)))
   6836     `(term-bold ((,class :inherit bold)))
   6837     `(term-color-black ((,class :background "gray35" :foreground "gray35")))
   6838     `(term-color-blue ((,class :background ,blue :foreground ,blue)))
   6839     `(term-color-cyan ((,class :background ,cyan :foreground ,cyan)))
   6840     `(term-color-green ((,class :background ,green :foreground ,green)))
   6841     `(term-color-magenta ((,class :background ,magenta :foreground ,magenta)))
   6842     `(term-color-red ((,class :background ,red :foreground ,red)))
   6843     `(term-color-white ((,class :background "gray65" :foreground "gray65")))
   6844     `(term-color-yellow ((,class :background ,yellow :foreground ,yellow)))
   6845     `(term-underline ((,class :underline t)))
   6846 ;;;;; tomatinho
   6847     `(tomatinho-ok-face ((,class :foreground ,blue-intense)))
   6848     `(tomatinho-pause-face ((,class :foreground ,yellow-intense)))
   6849     `(tomatinho-reset-face ((,class :inherit shadow)))
   6850 ;;;;; transient
   6851     `(transient-active-infix ((,class :inherit modus-themes-special-mild)))
   6852     `(transient-amaranth ((,class :inherit bold :foreground ,yellow-alt)))
   6853     `(transient-argument ((,class :inherit bold :foreground ,green)))
   6854     `(transient-blue ((,class :inherit bold :foreground ,blue)))
   6855     `(transient-disabled-suffix ((,class :inherit modus-themes-intense-red)))
   6856     `(transient-enabled-suffix ((,class :inherit ,@(modus-themes--success-deuteran
   6857                                                     'modus-themes-subtle-blue
   6858                                                     'modus-themes-subtle-green))))
   6859     `(transient-heading ((,class :inherit bold :foreground ,fg-main)))
   6860     `(transient-inactive-argument ((,class :inherit shadow)))
   6861     `(transient-inactive-value ((,class :inherit shadow)))
   6862     `(transient-key ((,class :inherit modus-themes-key-binding)))
   6863     `(transient-mismatched-key ((,class :underline t)))
   6864     `(transient-nonstandard-key ((,class :underline t)))
   6865     `(transient-pink ((,class :inherit bold :foreground ,magenta-alt-faint)))
   6866     `(transient-red ((,class :inherit bold :foreground ,red-faint)))
   6867     `(transient-teal ((,class :inherit bold :foreground ,cyan-alt-other)))
   6868     `(transient-unreachable ((,class :foreground ,fg-unfocused)))
   6869     `(transient-unreachable-key ((,class :foreground ,fg-unfocused)))
   6870     `(transient-value ((,class :inherit bold :foreground ,magenta-alt-other)))
   6871 ;;;;; trashed
   6872     `(trashed-deleted ((,class :inherit modus-themes-mark-del)))
   6873     `(trashed-directory ((,class :foreground ,blue)))
   6874     `(trashed-mark ((,class :inherit modus-themes-mark-symbol)))
   6875     `(trashed-marked ((,class :inherit modus-themes-mark-alt)))
   6876     `(trashed-restored ((,class :inherit modus-themes-mark-sel)))
   6877     `(trashed-symlink ((,class :inherit button
   6878                                ,@(modus-themes--link-color
   6879                                   cyan-alt cyan-alt-faint))))
   6880 ;;;;; treemacs
   6881     `(treemacs-directory-collapsed-face ((,class :foreground ,magenta-alt)))
   6882     `(treemacs-directory-face ((,class :inherit dired-directory)))
   6883     `(treemacs-file-face ((,class :foreground ,fg-main)))
   6884     `(treemacs-fringe-indicator-face ((,class :foreground ,fg-main)))
   6885     `(treemacs-git-added-face ((,class :foreground ,green-intense)))
   6886     `(treemacs-git-conflict-face ((,class :inherit (modus-themes-intense-red bold))))
   6887     `(treemacs-git-ignored-face ((,class :inherit shadow)))
   6888     `(treemacs-git-modified-face ((,class :foreground ,yellow-alt-other)))
   6889     `(treemacs-git-renamed-face ((,class :foreground ,cyan-alt-other)))
   6890     `(treemacs-git-unmodified-face ((,class :foreground ,fg-main)))
   6891     `(treemacs-git-untracked-face ((,class :foreground ,red-alt-other)))
   6892     `(treemacs-help-column-face ((,class :inherit modus-themes-bold :foreground ,magenta-alt-other :underline t)))
   6893     `(treemacs-help-title-face ((,class :foreground ,blue-alt-other)))
   6894     `(treemacs-on-failure-pulse-face ((,class :inherit modus-themes-intense-red)))
   6895     `(treemacs-on-success-pulse-face ((,class :inherit ,@(modus-themes--success-deuteran
   6896                                                           'modus-themes-intense-blue
   6897                                                           'modus-themes-intense-green))))
   6898     `(treemacs-root-face ((,class :inherit bold :foreground ,blue-alt-other :height 1.2 :underline t)))
   6899     `(treemacs-root-remote-disconnected-face ((,class :inherit treemacs-root-remote-face :foreground ,yellow)))
   6900     `(treemacs-root-remote-face ((,class :inherit treemacs-root-face :foreground ,magenta)))
   6901     `(treemacs-root-remote-unreadable-face ((,class :inherit treemacs-root-unreadable-face)))
   6902     `(treemacs-root-unreadable-face ((,class :inherit treemacs-root-face :strike-through t)))
   6903     `(treemacs-tags-face ((,class :foreground ,blue-alt)))
   6904     `(treemacs-tags-face ((,class :foreground ,magenta-alt)))
   6905 ;;;;; tty-menu
   6906     `(tty-menu-disabled-face ((,class :background ,bg-alt :foreground ,fg-alt)))
   6907     `(tty-menu-enabled-face ((,class :inherit bold :background ,bg-alt :foreground ,fg-main)))
   6908     `(tty-menu-selected-face ((,class :inherit modus-themes-intense-blue)))
   6909 ;;;;; tuareg
   6910     `(caml-types-def-face ((,class :inherit modus-themes-subtle-red)))
   6911     `(caml-types-expr-face ((,class :inherit modus-themes-subtle-green)))
   6912     `(caml-types-occ-face ((,class :inherit modus-themes-subtle-green)))
   6913     `(caml-types-scope-face ((,class :inherit modus-themes-subtle-blue)))
   6914     `(caml-types-typed-face ((,class :inherit modus-themes-subtle-magenta)))
   6915     `(tuareg-font-double-semicolon-face ((,class :inherit font-lock-preprocessor-face)))
   6916     `(tuareg-font-lock-attribute-face ((,class :inherit font-lock-function-name-face)))
   6917     `(tuareg-font-lock-constructor-face ((,class :foreground ,fg-main)))
   6918     `(tuareg-font-lock-error-face ((,class :inherit (modus-themes-intense-red bold))))
   6919     `(tuareg-font-lock-extension-node-face ((,class :background ,bg-alt :foreground ,magenta)))
   6920     `(tuareg-font-lock-governing-face ((,class :inherit bold :foreground ,fg-main)))
   6921     `(tuareg-font-lock-infix-extension-node-face ((,class :inherit font-lock-function-name-face)))
   6922     `(tuareg-font-lock-interactive-directive-face ((,class :foreground ,fg-special-cold)))
   6923     `(tuareg-font-lock-interactive-error-face ((,class :inherit error)))
   6924     `(tuareg-font-lock-interactive-output-face ((,class :inherit font-lock-constant-face)))
   6925     `(tuareg-font-lock-label-face ((,class :inherit font-lock-type-face)))
   6926     `(tuareg-font-lock-line-number-face ((,class :foreground ,fg-special-warm)))
   6927     `(tuareg-font-lock-module-face ((,class :inherit font-lock-builtin-face)))
   6928     `(tuareg-font-lock-multistage-face ((,class :inherit bold :background ,bg-alt :foreground ,blue)))
   6929     `(tuareg-font-lock-operator-face ((,class :inherit font-lock-preprocessor-face)))
   6930     `(tuareg-opam-error-face ((,class :inherit error)))
   6931     `(tuareg-opam-pkg-variable-name-face ((,class :inherit font-lock-variable-name-face)))
   6932 ;;;;; typescript
   6933     `(typescript-jsdoc-tag ((,class :inherit (font-lock-builtin-face font-lock-comment-face) :weight normal)))
   6934     `(typescript-jsdoc-type ((,class :inherit (font-lock-type-face font-lock-comment-face) :weight normal)))
   6935     `(typescript-jsdoc-value ((,class :inherit (font-lock-constant-face font-lock-comment-face) :weight normal)))
   6936 ;;;;; undo-tree
   6937     `(undo-tree-visualizer-active-branch-face ((,class :inherit bold :foreground ,fg-main)))
   6938     `(undo-tree-visualizer-current-face ((,class :foreground ,blue-intense)))
   6939     `(undo-tree-visualizer-default-face ((,class :inherit shadow)))
   6940     `(undo-tree-visualizer-register-face ((,class :foreground ,magenta-intense)))
   6941     `(undo-tree-visualizer-unmodified-face ((,class :foreground ,green-intense)))
   6942 ;;;;; vc (vc-dir.el, vc-hooks.el)
   6943     `(vc-dir-directory ((,class :foreground ,blue)))
   6944     `(vc-dir-file ((,class :foreground ,fg-main)))
   6945     `(vc-dir-header ((,class :foreground ,cyan-alt-other)))
   6946     `(vc-dir-header-value ((,class :foreground ,magenta-alt-other)))
   6947     `(vc-dir-mark-indicator ((,class :foreground ,blue-alt-other)))
   6948     `(vc-dir-status-edited ((,class :foreground ,yellow)))
   6949     `(vc-dir-status-ignored ((,class :foreground ,fg-unfocused)))
   6950     `(vc-dir-status-up-to-date ((,class :foreground ,cyan)))
   6951     `(vc-dir-status-warning ((,class :foreground ,red)))
   6952     `(vc-conflict-state ((,class :inherit modus-themes-slant :foreground ,red-active)))
   6953     `(vc-edited-state ((,class :foreground ,yellow-active)))
   6954     `(vc-locally-added-state ((,class :foreground ,cyan-active)))
   6955     `(vc-locked-state ((,class :foreground ,blue-active)))
   6956     `(vc-missing-state ((,class :inherit modus-themes-slant :foreground ,magenta-active)))
   6957     `(vc-needs-update-state ((,class :inherit modus-themes-slant :foreground ,green-active)))
   6958     `(vc-removed-state ((,class :foreground ,red-active)))
   6959     `(vc-state-base ((,class :foreground ,fg-active)))
   6960     `(vc-up-to-date-state ((,class :foreground ,fg-special-cold)))
   6961 ;;;;; vdiff
   6962     `(vdiff-addition-face ((,class :inherit modus-themes-diff-added)))
   6963     `(vdiff-change-face ((,class :inherit modus-themes-diff-changed)))
   6964     `(vdiff-closed-fold-face ((,class :inherit modus-themes-diff-heading)))
   6965     `(vdiff-refine-added ((,class :inherit modus-themes-diff-refine-added)))
   6966     `(vdiff-refine-changed ((,class :inherit modus-themes-diff-refine-changed)))
   6967     `(vdiff-subtraction-face ((,class :inherit modus-themes-diff-removed)))
   6968     `(vdiff-target-face ((,class :inherit modus-themes-intense-blue)))
   6969 ;;;;; vertico
   6970     `(vertico-current ((,class :inherit bold :foreground ,fg-main
   6971                                :background ,@(pcase modus-themes-completions
   6972                                                ('opinionated (list bg-active))
   6973                                                (_ (list bg-inactive))))))
   6974 ;;;;; vimish-fold
   6975     `(vimish-fold-fringe ((,class :foreground ,cyan-active)))
   6976     `(vimish-fold-mouse-face ((,class :inherit modus-themes-intense-blue)))
   6977     `(vimish-fold-overlay ((,class :background ,bg-alt :foreground ,fg-special-cold)))
   6978 ;;;;; visible-mark
   6979     `(visible-mark-active ((,class :background ,blue-intense-bg)))
   6980     `(visible-mark-face1 ((,class :background ,cyan-intense-bg)))
   6981     `(visible-mark-face2 ((,class :background ,yellow-intense-bg)))
   6982     `(visible-mark-forward-face1 ((,class :background ,magenta-intense-bg)))
   6983     `(visible-mark-forward-face2 ((,class :background ,green-intense-bg)))
   6984 ;;;;; visual-regexp
   6985     `(vr/group-0 ((,class :inherit modus-themes-intense-blue)))
   6986     `(vr/group-1 ((,class :inherit modus-themes-intense-magenta)))
   6987     `(vr/group-2 ((,class :inherit modus-themes-intense-green)))
   6988     `(vr/match-0 ((,class :inherit modus-themes-refine-yellow)))
   6989     `(vr/match-1 ((,class :inherit modus-themes-refine-yellow)))
   6990     `(vr/match-separator-face ((,class :inherit (modus-themes-intense-neutral bold))))
   6991 ;;;;; volatile-highlights
   6992     `(vhl/default-face ((,class :background ,bg-alt :foreground ,blue-nuanced-fg :extend t)))
   6993 ;;;;; vterm
   6994     `(vterm-color-black ((,class :background "gray35" :foreground "gray35")))
   6995     `(vterm-color-blue ((,class :background ,blue :foreground ,blue)))
   6996     `(vterm-color-cyan ((,class :background ,cyan :foreground ,cyan)))
   6997     `(vterm-color-default ((,class :background ,bg-main :foreground ,fg-main)))
   6998     `(vterm-color-green ((,class :background ,green :foreground ,green)))
   6999     `(vterm-color-inverse-video ((,class :background ,bg-main :inverse-video t)))
   7000     `(vterm-color-magenta ((,class :background ,magenta :foreground ,magenta)))
   7001     `(vterm-color-red ((,class :background ,red :foreground ,red)))
   7002     `(vterm-color-underline ((,class :foreground ,fg-special-warm :underline t)))
   7003     `(vterm-color-white ((,class :background "gray65" :foreground "gray65")))
   7004     `(vterm-color-yellow ((,class :background ,yellow :foreground ,yellow)))
   7005 ;;;;; wcheck-mode
   7006     `(wcheck-default-face ((,class :foreground ,red :underline t)))
   7007 ;;;;; web-mode
   7008     `(web-mode-annotation-face ((,class :inherit web-mode-comment-face)))
   7009     `(web-mode-annotation-html-face ((,class :inherit web-mode-comment-face)))
   7010     `(web-mode-annotation-tag-face ((,class :inherit web-mode-comment-face :underline t)))
   7011     `(web-mode-block-attr-name-face ((,class :inherit font-lock-constant-face)))
   7012     `(web-mode-block-attr-value-face ((,class :inherit font-lock-type-face)))
   7013     `(web-mode-block-comment-face ((,class :inherit web-mode-comment-face)))
   7014     `(web-mode-block-control-face ((,class :inherit font-lock-builtin-face)))
   7015     `(web-mode-block-delimiter-face ((,class :foreground ,fg-main)))
   7016     `(web-mode-block-face ((,class :background ,bg-dim)))
   7017     `(web-mode-block-string-face ((,class :inherit web-mode-string-face)))
   7018     `(web-mode-bold-face ((,class :inherit bold)))
   7019     `(web-mode-builtin-face ((,class :inherit font-lock-builtin-face)))
   7020     `(web-mode-comment-face ((,class :inherit font-lock-comment-face)))
   7021     `(web-mode-comment-keyword-face ((,class :inherit font-lock-warning-face)))
   7022     `(web-mode-constant-face ((,class :inherit font-lock-constant-face)))
   7023     `(web-mode-css-at-rule-face ((,class :inherit font-lock-constant-face)))
   7024     `(web-mode-css-color-face ((,class :inherit font-lock-builtin-face)))
   7025     `(web-mode-css-comment-face ((,class :inherit web-mode-comment-face)))
   7026     `(web-mode-css-function-face ((,class :inherit font-lock-builtin-face)))
   7027     `(web-mode-css-priority-face ((,class :inherit font-lock-warning-face)))
   7028     `(web-mode-css-property-name-face ((,class :inherit font-lock-keyword-face)))
   7029     `(web-mode-css-pseudo-class-face ((,class :inherit font-lock-doc-face)))
   7030     `(web-mode-css-selector-face ((,class :inherit font-lock-keyword-face)))
   7031     `(web-mode-css-string-face ((,class :inherit web-mode-string-face)))
   7032     `(web-mode-css-variable-face ((,class :foreground ,fg-special-warm)))
   7033     `(web-mode-current-column-highlight-face ((,class :background ,bg-alt)))
   7034     `(web-mode-current-element-highlight-face ((,class :inherit modus-themes-special-mild)))
   7035     `(web-mode-doctype-face ((,class :inherit modus-themes-slant :foreground ,fg-special-cold)))
   7036     `(web-mode-error-face ((,class :inherit modus-themes-intense-red)))
   7037     `(web-mode-filter-face ((,class :inherit font-lock-function-name-face)))
   7038     `(web-mode-folded-face ((,class :underline t)))
   7039     `(web-mode-function-call-face ((,class :inherit font-lock-function-name-face)))
   7040     `(web-mode-function-name-face ((,class :inherit font-lock-function-name-face)))
   7041     `(web-mode-html-attr-custom-face ((,class :inherit font-lock-variable-name-face)))
   7042     `(web-mode-html-attr-engine-face ((,class :foreground ,fg-main)))
   7043     `(web-mode-html-attr-equal-face ((,class :foreground ,fg-main)))
   7044     `(web-mode-html-attr-name-face ((,class :inherit font-lock-variable-name-face)))
   7045     `(web-mode-html-attr-value-face ((,class :inherit font-lock-constant-face)))
   7046     `(web-mode-html-entity-face ((,class :inherit font-lock-negation-char-face)))
   7047     `(web-mode-html-tag-bracket-face ((,class :foreground ,fg-dim)))
   7048     `(web-mode-html-tag-custom-face ((,class :inherit font-lock-function-name-face)))
   7049     `(web-mode-html-tag-face ((,class :inherit font-lock-function-name-face)))
   7050     `(web-mode-html-tag-namespaced-face ((,class :inherit font-lock-builtin-face)))
   7051     `(web-mode-html-tag-unclosed-face ((,class :inherit error :underline t)))
   7052     `(web-mode-inlay-face ((,class :background ,bg-alt)))
   7053     `(web-mode-italic-face ((,class :inherit italic)))
   7054     `(web-mode-javascript-comment-face ((,class :inherit web-mode-comment-face)))
   7055     `(web-mode-javascript-string-face ((,class :inherit web-mode-string-face)))
   7056     `(web-mode-json-comment-face ((,class :inherit web-mode-comment-face)))
   7057     `(web-mode-json-context-face ((,class :inherit font-lock-builtin-face)))
   7058     `(web-mode-json-key-face ((,class :foreground ,blue-nuanced-fg)))
   7059     `(web-mode-json-string-face ((,class :inherit web-mode-string-face)))
   7060     `(web-mode-jsx-depth-1-face ((,class :background ,blue-intense-bg :foreground ,fg-main)))
   7061     `(web-mode-jsx-depth-2-face ((,class :background ,blue-subtle-bg :foreground ,fg-main)))
   7062     `(web-mode-jsx-depth-3-face ((,class :background ,bg-special-cold :foreground ,fg-special-cold)))
   7063     `(web-mode-jsx-depth-4-face ((,class :background ,bg-alt :foreground ,blue-refine-fg)))
   7064     `(web-mode-jsx-depth-5-face ((,class :background ,bg-alt :foreground ,blue-nuanced-fg)))
   7065     `(web-mode-keyword-face ((,class :inherit :inherit font-lock-keyword-face)))
   7066     `(web-mode-param-name-face ((,class :inherit font-lock-function-name-face)))
   7067     `(web-mode-part-comment-face ((,class :inherit web-mode-comment-face)))
   7068     `(web-mode-part-face ((,class :inherit web-mode-block-face)))
   7069     `(web-mode-part-string-face ((,class :inherit web-mode-string-face)))
   7070     `(web-mode-preprocessor-face ((,class :inherit font-lock-preprocessor-face)))
   7071     `(web-mode-script-face ((,class :inherit web-mode-part-face)))
   7072     `(web-mode-sql-keyword-face ((,class :inherit font-lock-negation-char-face)))
   7073     `(web-mode-string-face ((,class :inherit font-lock-string-face)))
   7074     `(web-mode-style-face ((,class :inherit web-mode-part-face)))
   7075     `(web-mode-symbol-face ((,class :inherit font-lock-constant-face)))
   7076     `(web-mode-type-face ((,class :inherit font-lock-builtin-face)))
   7077     `(web-mode-underline-face ((,class :underline t)))
   7078     `(web-mode-variable-name-face ((,class :inherit font-lock-variable-name-face)))
   7079     `(web-mode-warning-face ((,class :inherit font-lock-warning-face)))
   7080     `(web-mode-whitespace-face ((,class :background ,bg-whitespace :foreground ,fg-whitespace)))
   7081 ;;;;; wgrep
   7082     `(wgrep-delete-face ((,class :inherit modus-themes-refine-yellow)))
   7083     `(wgrep-done-face ((,class :inherit modus-themes-refine-blue)))
   7084     `(wgrep-face ((,class :inherit modus-themes-refine-green)))
   7085     `(wgrep-file-face ((,class :foreground ,fg-special-warm)))
   7086     `(wgrep-reject-face ((,class :inherit (modus-themes-intense-red bold))))
   7087 ;;;;; which-function-mode
   7088     `(which-func ((,class :foreground ,magenta-active)))
   7089 ;;;;; which-key
   7090     `(which-key-command-description-face ((,class :foreground ,fg-main)))
   7091     `(which-key-group-description-face ((,class :foreground ,magenta-alt)))
   7092     `(which-key-highlighted-command-face ((,class :foreground ,yellow :underline t)))
   7093     `(which-key-key-face ((,class :inherit modus-themes-key-binding)))
   7094     `(which-key-local-map-description-face ((,class :foreground ,fg-main)))
   7095     `(which-key-note-face ((,class :foreground ,fg-special-warm)))
   7096     `(which-key-separator-face ((,class :inherit shadow)))
   7097     `(which-key-special-key-face ((,class :inherit bold :foreground ,orange-intense)))
   7098 ;;;;; whitespace-mode
   7099     `(whitespace-big-indent ((,class :inherit modus-themes-subtle-red)))
   7100     `(whitespace-empty ((,class :inherit modus-themes-intense-magenta)))
   7101     `(whitespace-hspace ((,class :background ,bg-whitespace :foreground ,fg-whitespace)))
   7102     `(whitespace-indentation ((,class :background ,bg-whitespace :foreground ,fg-whitespace)))
   7103     `(whitespace-line ((,class :inherit modus-themes-subtle-yellow)))
   7104     `(whitespace-newline ((,class :background ,bg-whitespace :foreground ,fg-whitespace)))
   7105     `(whitespace-space ((,class :background ,bg-whitespace :foreground ,fg-whitespace)))
   7106     `(whitespace-space-after-tab ((,class :inherit modus-themes-subtle-magenta)))
   7107     `(whitespace-space-before-tab ((,class :inherit modus-themes-subtle-cyan)))
   7108     `(whitespace-tab ((,class :background ,bg-whitespace :foreground ,fg-whitespace)))
   7109     `(whitespace-trailing ((,class :inherit modus-themes-intense-red)))
   7110 ;;;;; window-divider-mode
   7111     `(window-divider ((,class :foreground ,fg-window-divider-inner)))
   7112     `(window-divider-first-pixel ((,class :foreground ,fg-window-divider-outer)))
   7113     `(window-divider-last-pixel ((,class :foreground ,fg-window-divider-outer)))
   7114 ;;;;; winum
   7115     `(winum-face ((,class :inherit modus-themes-bold :foreground ,cyan-active)))
   7116 ;;;;; writegood-mode
   7117     `(writegood-duplicates-face ((,class :background ,bg-alt :foreground ,red-alt :underline t)))
   7118     `(writegood-passive-voice-face ((,class :inherit modus-themes-lang-warning)))
   7119     `(writegood-weasels-face ((,class :inherit modus-themes-lang-error)))
   7120 ;;;;; woman
   7121     `(woman-addition ((,class :foreground ,magenta-alt-other)))
   7122     `(woman-bold ((,class :inherit bold :foreground ,magenta)))
   7123     `(woman-italic ((,class :inherit italic :foreground ,cyan)))
   7124     `(woman-unknown ((,class :inherit italic :foreground ,yellow)))
   7125 ;;;;; xah-elisp-mode
   7126     `(xah-elisp-at-symbol ((,class :inherit font-lock-warning-face)))
   7127     `(xah-elisp-cap-variable ((,class :inherit font-lock-preprocessor-face)))
   7128     `(xah-elisp-command-face ((,class :inherit font-lock-type-face)))
   7129     `(xah-elisp-dollar-symbol ((,class :inherit font-lock-variable-name-face)))
   7130 ;;;;; xref
   7131     `(xref-file-header ((,class :inherit bold :foreground ,fg-special-cold)))
   7132     `(xref-line-number ((,class :inherit shadow)))
   7133     `(xref-match ((,class :inherit match)))
   7134 ;;;;; yaml-mode
   7135     `(yaml-tab-face ((,class :inherit modus-themes-intense-red)))
   7136 ;;;;; yasnippet
   7137     `(yas-field-highlight-face ((,class :background ,bg-hl-alt-intense)))
   7138 ;;;;; ztree
   7139     `(ztreep-arrow-face ((,class :foreground ,fg-inactive)))
   7140     `(ztreep-diff-header-face ((,class :inherit bold :height 1.2 :foreground ,fg-special-cold)))
   7141     `(ztreep-diff-header-small-face ((,class :foreground ,fg-main)))
   7142     `(ztreep-diff-model-add-face ((,class :foreground ,@(modus-themes--diff-deuteran blue green))))
   7143     `(ztreep-diff-model-diff-face ((,class :foreground ,red)))
   7144     `(ztreep-diff-model-ignored-face ((,class :inherit shadow :strike-through t)))
   7145     `(ztreep-diff-model-normal-face ((,class :inherit shadow)))
   7146     `(ztreep-expand-sign-face ((,class :inherit ztreep-arrow-face)))
   7147     `(ztreep-header-face ((,class :inherit bold :height 1.2 :foreground ,fg-special-cold)))
   7148     `(ztreep-leaf-face ((,class :foreground ,cyan)))
   7149     `(ztreep-node-count-children-face ((,class :foreground ,fg-special-warm)))
   7150     `(ztreep-node-face ((,class :foreground ,fg-main))))
   7151   "Face specs for use with `modus-themes-theme'.")
   7152 
   7153 (defconst modus-themes-custom-variables
   7154   '(
   7155 ;;;; ansi-colors
   7156     `(ansi-color-faces-vector [default bold shadow italic underline success warning error])
   7157     `(ansi-color-names-vector ["gray35" ,red ,green ,yellow ,blue ,magenta ,cyan "gray65"])
   7158 ;;;; awesome-tray
   7159     `(awesome-tray-mode-line-active-color ,blue)
   7160     `(awesome-tray-mode-line-inactive-color ,bg-active)
   7161 ;;;; exwm
   7162     `(exwm-floating-border-color ,fg-window-divider-inner)
   7163 ;;;; flymake fringe indicators
   7164     `(flymake-error-bitmap '(flymake-double-exclamation-mark modus-themes-fringe-red))
   7165     `(flymake-warning-bitmap '(exclamation-mark modus-themes-fringe-yellow))
   7166     `(flymake-note-bitmap '(exclamation-mark modus-themes-fringe-cyan))
   7167 ;;;; ibuffer
   7168     `(ibuffer-deletion-face 'modus-themes-mark-del)
   7169     `(ibuffer-filter-group-name-face 'modus-themes-pseudo-header)
   7170     `(ibuffer-marked-face 'modus-themes-mark-sel)
   7171     `(ibuffer-title-face 'default)
   7172 ;;;; highlight-tail
   7173     `(highlight-tail-colors
   7174       '((,green-subtle-bg . 0)
   7175         (,cyan-subtle-bg . 20)))
   7176 ;;;; hl-todo
   7177     `(hl-todo-keyword-faces
   7178       '(("HOLD" . ,yellow-alt)
   7179         ("TODO" . ,magenta)
   7180         ("NEXT" . ,magenta-alt-other)
   7181         ("THEM" . ,magenta-alt)
   7182         ("PROG" . ,cyan)
   7183         ("OKAY" . ,cyan-alt)
   7184         ("DONT" . ,green-alt)
   7185         ("FAIL" . ,red)
   7186         ("BUG" . ,red)
   7187         ("DONE" . ,green)
   7188         ("NOTE" . ,yellow-alt-other)
   7189         ("KLUDGE" . ,yellow)
   7190         ("HACK" . ,yellow)
   7191         ("TEMP" . ,red-nuanced-fg)
   7192         ("FIXME" . ,red-alt-other)
   7193         ("XXX+" . ,red-alt)
   7194         ("REVIEW" . ,cyan-alt-other)
   7195         ("DEPRECATED" . ,blue-nuanced-fg)))
   7196 ;;;; pdf-tools
   7197     `(pdf-view-midnight-colors
   7198       '(,fg-main . ,bg-dim))
   7199 ;;;; vc-annotate (C-x v g)
   7200     `(vc-annotate-background nil)
   7201     `(vc-annotate-background-mode nil)
   7202     `(vc-annotate-color-map
   7203       '((20 . ,red)
   7204         (40 . ,magenta)
   7205         (60 . ,magenta-alt)
   7206         (80 . ,red-alt)
   7207         (100 . ,yellow)
   7208         (120 . ,yellow-alt)
   7209         (140 . ,fg-special-warm)
   7210         (160 . ,fg-special-mild)
   7211         (180 . ,green)
   7212         (200 . ,green-alt)
   7213         (220 . ,cyan-alt-other)
   7214         (240 . ,cyan-alt)
   7215         (260 . ,cyan)
   7216         (280 . ,fg-special-cold)
   7217         (300 . ,blue)
   7218         (320 . ,blue-alt)
   7219         (340 . ,blue-alt-other)
   7220         (360 . ,magenta-alt-other)))
   7221     `(vc-annotate-very-old-color nil)
   7222 ;;;; xterm-color
   7223     `(xterm-color-names ["black" ,red ,green ,yellow ,blue ,magenta ,cyan "gray65"])
   7224     `(xterm-color-names-bright ["gray35" ,red-alt ,green-alt ,yellow-alt ,blue-alt ,magenta-alt ,cyan-alt "white"])
   7225     (if (or (eq modus-themes-org-blocks 'tinted-background)
   7226             (eq modus-themes-org-blocks 'rainbow))
   7227         `(org-src-block-faces              ; TODO this list should be expanded
   7228           `(("emacs-lisp" modus-themes-nuanced-magenta)
   7229             ("elisp" modus-themes-nuanced-magenta)
   7230             ("clojure" modus-themes-nuanced-magenta)
   7231             ("clojurescript" modus-themes-nuanced-magenta)
   7232             ("c" modus-themes-nuanced-blue)
   7233             ("c++" modus-themes-nuanced-blue)
   7234             ("sh" modus-themes-nuanced-green)
   7235             ("shell" modus-themes-nuanced-green)
   7236             ("html" modus-themes-nuanced-yellow)
   7237             ("xml" modus-themes-nuanced-yellow)
   7238             ("css" modus-themes-nuanced-red)
   7239             ("scss" modus-themes-nuanced-red)
   7240             ("python" modus-themes-nuanced-green)
   7241             ("ipython" modus-themes-nuanced-magenta)
   7242             ("r" modus-themes-nuanced-cyan)
   7243             ("yaml" modus-themes-nuanced-cyan)
   7244             ("conf" modus-themes-nuanced-cyan)
   7245             ("docker" modus-themes-nuanced-cyan)))
   7246       `(org-src-block-faces '())))
   7247   "Custom variables for `modus-themes-theme'.")
   7248 
   7249 ;;;###autoload
   7250 (when load-file-name
   7251   (let ((dir (file-name-directory load-file-name)))
   7252     (unless (equal dir (expand-file-name "themes/" data-directory))
   7253       (add-to-list 'custom-theme-load-path dir))))
   7254 
   7255 (provide 'modus-themes)
   7256 
   7257 ;; Local Variables:
   7258 ;; time-stamp-start: "Last-Modified:[ \t]+\\\\?[\"<]"
   7259 ;; time-stamp-end: "\\\\?[\">]"
   7260 ;; time-stamp-format: "%Y-%02m-%02d %02H:%02M:%02S %5z"
   7261 ;; End:
   7262 
   7263 ;;; modus-themes.el ends here