aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorProtesilaos Stavrou2021-03-04 16:20:15 +0200
committerBasil L. Contovounesios2021-03-06 09:16:00 +0000
commitde602dd7cf76b001244964aa5bbef4d9e08ea62b (patch)
tree13728319d6f017ea3f426ae9d9dd628ddf9dc59a
parentf2f233d867ac5a81504c62d5fdb45e8c1c04739b (diff)
downloademacs-de602dd7cf76b001244964aa5bbef4d9e08ea62b.tar.gz
emacs-de602dd7cf76b001244964aa5bbef4d9e08ea62b.zip
Update Modus themes to their version 1.2.0
* doc/misc/modus-themes.org: Add new version of the manual, with changes to markup and references to the latest state of the project. * etc/themes/modus-vivendi-theme.el: * etc/themes/modus-operandi-theme.el: Provide updated version of each theme, which expands the contents of 'modus-themes.el' (bug#45068). * etc/themes/modus-themes.el: Add new supportive file. This is where theme data, functions, and face definitions are defined.
-rw-r--r--doc/misc/modus-themes.org3267
-rw-r--r--etc/themes/modus-operandi-theme.el4670
-rw-r--r--etc/themes/modus-themes.el6436
-rw-r--r--etc/themes/modus-vivendi-theme.el4670
4 files changed, 8812 insertions, 10231 deletions
diff --git a/doc/misc/modus-themes.org b/doc/misc/modus-themes.org
index 4a6150cf9db..20d7767053f 100644
--- a/doc/misc/modus-themes.org
+++ b/doc/misc/modus-themes.org
@@ -1,30 +1,52 @@
1#+TITLE: Modus themes for GNU Emacs 1#+title: Modus themes for GNU Emacs
2#+AUTHOR: Protesilaos Stavrou 2#+author: Protesilaos Stavrou
3#+EMAIL: info@protesilaos.com 3#+email: info@protesilaos.com
4#+TEXINFO_DIR_CATEGORY: Emacs misc features 4#+language: en
5#+TEXINFO_DIR_TITLE: Modus Themes: (modus-themes) 5#+options: ':t toc:nil author:t email:t
6#+TEXINFO_DIR_DESC: Highly accessible themes (WCAG AAA) 6
7#+OPTIONS: ':t toc:nil author:t email:t 7#+macro: stable-version 1.2.0
8#+MACRO: version-tag 0.13.0 8#+macro: release-date 2021-03-04
9#+MACRO: release-date 2020-10-08 9#+macro: development-version 1.3.0-dev
10#+macro: export-date (eval (format-time-string "%F %R %z" (current-time)))
11#+macro: file @@texinfo:@file{@@$1@@texinfo:}@@
12#+macro: space @@texinfo:@: @@
13# The "kbd" macro turns KBD into @kbd{KBD}. Additionally, it
14# encloses case-sensitive special keys (SPC, RET...) within @key{...}.
15# I got this from the Org source code.
16#+macro: kbd (eval (let ((case-fold-search nil) (regexp (regexp-opt '("SPC" "RET" "LFD" "TAB" "BS" "ESC" "DELETE" "SHIFT" "Ctrl" "Meta" "Alt" "Cmd" "Super" "UP" "LEFT" "RIGHT" "DOWN") 'words))) (format "@@texinfo:@kbd{@@%s@@texinfo:}@@" (replace-regexp-in-string regexp "@@texinfo:@key{@@\\&@@texinfo:}@@" $1 t))))
17
18#+texinfo_filename: modus-themes.info
19#+texinfo_dir_category: Emacs misc features
20#+texinfo_dir_title: Modus Themes: (modus-themes)
21#+texinfo_dir_desc: Highly accessible themes (WCAG AAA)
22#+texinfo_header: @set MAINTAINERSITE @uref{https://protesilaos.com,maintainer webpage}
23#+texinfo_header: @set MAINTAINER Protesilaos Stavrou
24#+texinfo_header: @set MAINTAINEREMAIL @email{info@protesilaos.com}
25#+texinfo_header: @set MAINTAINERCONTACT @uref{mailto:info@protesilaos.com,contact the maintainer}
10 26
11#+texinfo: @insertcopying 27#+texinfo: @insertcopying
12 28
13This manual, written by Protesilaos Stavrou, describes the customization 29This manual, written by Protesilaos Stavrou, describes the customization
14options for the =modus-operandi= and =modus-vivendi= themes, and provides 30options for the ~modus-operandi~ and ~modus-vivendi~ themes, and provides
15every other piece of information pertinent to them. 31every other piece of information pertinent to them.
16 32
17The documentation furnished herein corresponds to version {{{version-tag}}}, 33The documentation furnished herein corresponds to stable version
18released on {{{release-date}}}. Any reference to a newer feature which does 34{{{stable-version}}}, released on {{{release-date}}}. Any reference to a newer
19not yet form part of the latest tagged commit, is explicitly marked as 35feature which does not yet form part of the latest tagged commit, is
20such. 36explicitly marked as such.
21 37
22* Copying 38# Current development target is {{{development-version}}}. This manual was
23:PROPERTIES: 39# built on {{{export-date}}}.
24:copying: t
25:END:
26 40
27Copyright (C) 2020--2021 Free Software Foundation, Inc. 41#+toc: headlines 8 insert TOC here, with eight headline levels
42
43* COPYING
44:properties:
45:copying: t
46:custom_id: h:b14c3fcb-13dd-4144-9d92-2c58b3ed16d3
47:end:
48
49Copyright (C) 2020-2021 Free Software Foundation, Inc.
28 50
29#+begin_quote 51#+begin_quote
30Permission is granted to copy, distribute and/or modify this 52Permission is granted to copy, distribute and/or modify this
@@ -34,12 +56,10 @@ Foundation; with no Invariant Sections, with no Front-Cover Texts,
34and with no Back-Cover Texts. 56and with no Back-Cover Texts.
35#+end_quote 57#+end_quote
36 58
37#+TOC: headlines 8 insert TOC here, with eight headline levels
38
39* Overview 59* Overview
40:PROPERTIES: 60:properties:
41:CUSTOM_ID: h:f0f3dbcb-602d-40cf-b918-8f929c441baf 61:custom_id: h:f0f3dbcb-602d-40cf-b918-8f929c441baf
42:END: 62:end:
43 63
44The Modus themes are designed for accessible readability. They conform 64The Modus themes are designed for accessible readability. They conform
45with the highest standard for color contrast between any given 65with the highest standard for color contrast between any given
@@ -47,9 +67,9 @@ combination of background and foreground values. This corresponds to
47the WCAG AAA standard, which specifies a minimum rate of distance in 67the WCAG AAA standard, which specifies a minimum rate of distance in
48relative luminance of 7:1. 68relative luminance of 7:1.
49 69
50Modus Operandi (=modus-operandi=) is a light theme, while Modus Vivendi 70Modus Operandi (~modus-operandi~) is a light theme, while Modus Vivendi
51(=modus-vivendi=) is dark. Each theme's color palette is designed to 71(~modus-vivendi~) is dark. Each theme's color palette is designed to meet
52meet the needs of the numerous interfaces that are possible in the Emacs 72the needs of the numerous interfaces that are possible in the Emacs
53computing environment. 73computing environment.
54 74
55The overarching objective of this project is to always offer accessible 75The overarching objective of this project is to always offer accessible
@@ -59,15 +79,16 @@ and stylistic considerations, we will always opt for the former.
59 79
60To ensure that users have a consistently accessible experience, the 80To ensure that users have a consistently accessible experience, the
61themes strive to achieve as close to full face coverage as possible 81themes strive to achieve as close to full face coverage as possible
62(see [[#h:a9c8f29d-7f72-4b54-b74b-ddefe15d6a19][Face coverage]]). 82([[#h:a9c8f29d-7f72-4b54-b74b-ddefe15d6a19][Face coverage]]).
63 83
64Starting with version 0.12.0 and onwards, the themes are built into GNU 84Starting with version 0.12.0 and onwards, the themes are built into GNU
65Emacs (current version is {{{version-tag}}}). 85Emacs.
66 86
67** How do the themes look like 87** How do the themes look like
68:PROPERTIES: 88:properties:
69:CUSTOM_ID: h:69b92089-069c-4ba1-9d94-cc3415fc4f87 89:custom_id: h:69b92089-069c-4ba1-9d94-cc3415fc4f87
70:END: 90:end:
91#+cindex: Screenshots
71 92
72Check the web page with [[https://protesilaos.com/modus-themes-pictures/][the screen shots]]. There are lots of scenarios 93Check the web page with [[https://protesilaos.com/modus-themes-pictures/][the screen shots]]. There are lots of scenarios
73on display that draw attention to details and important aspects in the 94on display that draw attention to details and important aspects in the
@@ -77,596 +98,562 @@ options.
77[[#h:bf1c82f2-46c7-4eb2-ad00-dd11fdd8b53f][Customization options]]. 98[[#h:bf1c82f2-46c7-4eb2-ad00-dd11fdd8b53f][Customization options]].
78 99
79** Learn about the latest changes 100** Learn about the latest changes
80:PROPERTIES: 101:properties:
81:CUSTOM_ID: h:2cc37c36-6c1a-48b2-a010-1050b270ee18 102:custom_id: h:2cc37c36-6c1a-48b2-a010-1050b270ee18
82:END: 103:end:
104#+cindex: Changelog
83 105
84Please refer to the [[https://protesilaos.com/modus-themes-changelog][web page with the change log]]. It is comprehensive 106Please refer to the [[https://protesilaos.com/modus-themes-changelog][web page with the change log]]. It is comprehensive
85and covers everything that goes into every tagged release of the themes. 107and covers everything that goes into every tagged release of the themes.
86 108
87* Installation 109* Installation
88:PROPERTIES: 110:properties:
89:CUSTOM_ID: h:1af85373-7f81-4c35-af25-afcef490c111 111:custom_id: h:1af85373-7f81-4c35-af25-afcef490c111
90:END: 112:end:
91 113
92The Modus themes are distributed with Emacs starting with version 28.1. 114The Modus themes are distributed with Emacs starting with version 28.1.
93On older versions of Emacs, they can be installed using Emacs' package 115On older versions of Emacs, they can be installed using Emacs' package
94manager or manually from their code repository. 116manager or manually from their code repository. There also exist
117packages for distributions of GNU/Linux.
118
119** Install manually from source
120:properties:
121:custom_id: h:da3414b7-1426-46b8-8e76-47b845b76fd0
122:end:
123
124In the following example, we are assuming that your Emacs files are
125stored in =~/.emacs.d= and that you want to place the Modus themes in
126=~/.emacs.d/modus-themes=.
127
1281. Get the source and store it in the desired path by running the
129 following in the command line shell:
130
131: $ git clone https://gitlab.com/protesilaos/modus-themes.git ~/.emacs.d/modus-themes
132
1332. Add that path to your known Elisp libraries' list, by placing this
134 snippet of Emacs Lisp in your init file (e.g. {{{file(init.el)}}}):
135
136#+begin_src emacs-lisp
137(add-to-list 'load-path "~/.emacs.d/modus-themes")
138#+end_src
95 139
96Modus Operandi (light theme) and Modus Vivendi (dark) are normally 140The themes are now ready to be used: [[#h:3f3c3728-1b34-437d-9d0c-b110f5b161a9][Enable and load]].
97distributed as standalone packages in Emacs-specific archives. There
98also exist packages for GNU/Linux distributions.
99 141
100** Install from the archives 142** Install from the archives
101:PROPERTIES: 143:properties:
102:CUSTOM_ID: h:c4b10085-149f-43e2-bd4d-347f33aee054 144:custom_id: h:c4b10085-149f-43e2-bd4d-347f33aee054
103:END: 145:end:
104 146
105=modus-operandi-theme= and =modus-vivendi-theme= are available from GNU the 147The =modus-themes= package is available from the GNU ELPA archive, which
106ELPA archive, which is configured by default. 148is configured by default.
107 149
108Prior to querying any package archive, make sure to have updated the 150Prior to querying any package archive, make sure to have updated the
109index, with =M-x package-refresh-contents=. Then all you need to do is 151index, with {{{kbd(M-x package-refresh-contents)}}}. Then all you need to do
110type =M-x package-install= and specify the theme of your choice. 152is type {{{kbd(M-x package-install)}}} and specify the ~modus-themes~.
153
154Note that older versions of the themes used to be distributed as
155standalone packages. This practice has been discontinued starting with
156version 1.0.0 of this project.
157
158Once installed, the themes are ready to be used: [[#h:3f3c3728-1b34-437d-9d0c-b110f5b161a9][Enable and load]].
111 159
112** Install on GNU/Linux 160** Install on GNU/Linux
113:PROPERTIES: 161:properties:
114:CUSTOM_ID: h:da640eb1-95dd-4e86-bb4e-1027b27885f0 162:custom_id: h:da640eb1-95dd-4e86-bb4e-1027b27885f0
115:END: 163:end:
116 164
117The themes are also available from the archives of some GNU/Linux 165The themes are also available from the archives of some distributions of
118distributions. These should correspond to a tagged release rather than 166GNU/Linux. These should correspond to a tagged release rather than
119building directly from the latest Git commit. It all depends on the 167building directly from the latest Git commit. It all depends on the
120distro's packaging policies. 168distro's packaging policies.
121 169
122*** Debian 11 Bullseye 170*** Debian 11 Bullseye
123:PROPERTIES: 171:properties:
124:CUSTOM_ID: h:7e570360-9ee6-4bc5-8c04-9dc11418a3e4 172:custom_id: h:7e570360-9ee6-4bc5-8c04-9dc11418a3e4
125:END: 173:end:
126
127The two themes are distributed as a single package for Debian and its
128derivatives. Currently in the unstable and testing suites and should be
129available in time for Debian 11 Bullseye (next stable).
130 174
131Get them with: 175The themes are part of Debian 11 Bullseye. Get them with:
132 176
133#+begin_src sh 177#+begin_src sh
134sudo apt install elpa-modus-themes 178sudo apt install elpa-modus-themes
135#+end_src 179#+end_src
136 180
181They are now ready to be used: [[#h:3f3c3728-1b34-437d-9d0c-b110f5b161a9][Enable and load]].
182
137*** GNU Guix 183*** GNU Guix
138:PROPERTIES: 184:properties:
139:CUSTOM_ID: h:a4ca52cd-869f-46a5-9e16-4d9665f5b88e 185:custom_id: h:a4ca52cd-869f-46a5-9e16-4d9665f5b88e
140:END: 186:end:
141 187
142Users of either the Guix System (the distro) or just Guix (the package 188Users of Guix can get the themes with this command:
143manager) can get each theme as a standalone package.
144 189
145#+begin_src sh 190#+begin_src sh
146guix package -i emacs-modus-operandi-theme 191guix package -i emacs-modus-themes
147#+end_src 192#+end_src
148 193
149And/or: 194They are now ready to be used: [[#h:3f3c3728-1b34-437d-9d0c-b110f5b161a9][Enable and load]].
150
151#+begin_src sh
152guix package -i emacs-modus-vivendi-theme
153#+end_src
154 195
155* Enable and load 196* Enable and load
156:PROPERTIES: 197:properties:
157:CUSTOM_ID: h:3f3c3728-1b34-437d-9d0c-b110f5b161a9 198:custom_id: h:3f3c3728-1b34-437d-9d0c-b110f5b161a9
158:END: 199:end:
159 200#+findex: modus-themes-load-themes
160This section documents how to load the theme of your choice and how to 201#+findex: modus-themes-toggle
161further control its initialization. It also includes some sample code 202#+findex: modus-themes-load-operandi
162snippets that could help you in the task, especially if you intend to 203#+findex: modus-themes-load-vivendi
163use both Modus Operandi and Modus Vivendi. 204#+cindex: Essential configuration
205#+vindex: modus-themes-after-load-theme-hook
206
207Users of the built-in themes can load and automatically enable the theme
208of their preference by adding either form to their init file:
164 209
165** Load automatically 210#+begin_src emacs-lisp
166:PROPERTIES: 211(load-theme 'modus-operandi) ; Light theme
167:CUSTOM_ID: h:1777c247-1b56-46b7-a4ce-54e720b33d06 212(load-theme 'modus-vivendi) ; Dark theme
168:END: 213#+end_src
169 214
170A simple way to load the theme from your Emacs initialization file is to 215This is all one needs.
171include either of the following expressions:
172 216
173#+BEGIN_SRC emacs-lisp 217Users of packaged variants of the themes must add a few more lines to
174(load-theme 'modus-operandi t) ; Light theme 218ensure that everything works as intended. First, one has to require the
175(load-theme 'modus-vivendi t) ; Dark theme 219main library before loading either theme:
176#+END_SRC
177 220
178Make sure to remove any other theme that is being loaded, otherwise you 221#+begin_src emacs-lisp
179might run into unexpected issues. 222(require 'modus-themes)
223#+end_src
180 224
181Note that you can always =M-x disable-theme= and specify an item. The 225Then it is recommended to load the individual theme files with the
182command does exactly what its name suggests. To deactivate all enabled 226helper function ~modus-themes-load-themes~:
183themes at once, in case you have multiple of them enabled, you may
184evaluate the expression:
185 227
186#+begin_src emacs-lisp 228#+begin_src emacs-lisp
187(mapc #'disable-theme custom-enabled-themes) 229;; Load the theme files before enabling a theme (else you get an error).
230(modus-themes-load-themes)
188#+end_src 231#+end_src
189 232
190** Load at a given time or at sunset/sunrise 233Once the libraries that define the themes are enabled, one can activate
191:PROPERTIES: 234a theme with either of the following expressions:
192:CUSTOM_ID: h:4e936e31-e9eb-4b50-8fdd-45d827a03cca
193:END:
194
195It is possible to schedule a time during the day at or after which a
196given theme will be loaded.[fn:: Contributed on Reddit by user =b3n=,
197https://www.reddit.com/r/emacs/comments/gdtqov/weekly_tipstricketc_thread/fq9186h/.]
198 235
199#+begin_src emacs-lisp 236#+begin_src emacs-lisp
200;; Light for the day 237(modus-themes-load-operandi) ; Light theme
201(load-theme 'modus-operandi t t) 238;; OR
202(run-at-time "05:00" (* 60 60 24) 239(modus-themes-load-vivendi) ; Dark theme
203 (lambda ()
204 (enable-theme 'modus-operandi)))
205
206;; Dark for the night
207(load-theme 'modus-vivendi t t)
208(run-at-time "21:00" (* 60 60 24)
209 (lambda ()
210 (enable-theme 'modus-vivendi)))
211#+end_src 240#+end_src
212 241
213A modified version of the above technique is to use the sunrise and 242Changes to the available customization options must always be evaluated
214sunset as references, instead of specifying a fixed hour value.[fn:: 243before loading a theme ([[#h:bf1c82f2-46c7-4eb2-ad00-dd11fdd8b53f][Customization Options]]). This is how a basic
215Contributed directly by André Alexandre Gomes https://gitlab.com/aadcg.] 244setup could look like:
216If you set =calendar-latitude= and =calendar-longitude= (defined in the
217built-in =solar.el= library---read it with =M-x find-library=), you can
218automatically switch between both themes at the appropriate time-of-day.
219Note that /those calendar variables need to be set before loading the
220themes/.
221 245
222#+begin_src emacs-lisp 246#+begin_src emacs-lisp
223;; Define coordinates 247(require 'modus-themes)
224(setq calendar-latitude 35.17
225 calendar-longitude 33.36)
226 248
227;; Light at sunrise 249;; Your customisations here. For example:
228(load-theme 'modus-operandi t t) 250(setq modus-themes-bold-constructs t
229(run-at-time (nth 1 (split-string (sunrise-sunset))) 251 modus-themes-mode-line '3d)
230 (* 60 60 24)
231 (lambda ()
232 (enable-theme 'modus-operandi)))
233 252
234;; Dark at sunset 253;; Load the theme files before enabling a theme (else you get an error).
235(load-theme 'modus-vivendi t t) 254(modus-themes-load-themes)
236(run-at-time (nth 4 (split-string (sunrise-sunset)))
237 (* 60 60 24)
238 (lambda ()
239 (enable-theme 'modus-vivendi)))
240#+end_src
241 255
242For the sake of completeness, the =load-theme= call in these snippets is 256;; Enable the theme of your preference:
243slightly different than the one shown in [[#h:1777c247-1b56-46b7-a4ce-54e720b33d06][Load automatically]], because it 257(modus-themes-load-operandi)
244does not enable the theme directly: the subsequent =enable-theme= does
245that when needed.
246 258
247** Toggle between the themes on demand 259;; Optionally add a key binding for the toggle between the themes:
248:PROPERTIES: 260(define-key global-map (kbd "<f5>") #'modus-themes-toggle)
249:CUSTOM_ID: h:2a0895a6-3281-4e55-8aa1-8a737555821e 261#+end_src
250:END:
251 262
252With both themes available, it is possible to design a simple command to 263[[#h:e979734c-a9e1-4373-9365-0f2cd36107b8][Sample configuration for use-package]].
253switch between them on demand.
254 264
255#+begin_src emacs-lisp 265With those granted, bear in mind a couple of technical points on
256(defun modus-themes-toggle () 266~modus-themes-load-operandi~ and ~modus-themes-load-vivendi~, as well as
257 "Toggle between `modus-operandi' and `modus-vivendi' themes." 267~modus-themes-toggle~ which relies on them:
258 (interactive)
259 (if (eq (car custom-enabled-themes) 'modus-operandi)
260 (progn
261 (disable-theme 'modus-operandi)
262 (load-theme 'modus-vivendi t))
263 (disable-theme 'modus-vivendi)
264 (load-theme 'modus-operandi t)))
265#+end_src
266 268
267You could use =(mapc #'disable-theme custom-enabled-themes)= instead of 2691. Those functions call ~load-theme~. Some users prefer to opt for
268disabling a single target, but you get the idea. 270 ~enable-theme~ instead ([[#h:e68560b3-7fb0-42bc-a151-e015948f8a35][Differences between loading and enabling]]).
269 271
270** Configure options prior to loading 2722. The functions will run the ~modus-themes-after-load-theme-hook~ as
271:PROPERTIES: 273 their final step. This can be employed for bespoke configurations
272:CUSTOM_ID: h:a897b302-8e10-4a26-beab-3caaee1e1193 274 ([[#h:f4651d55-8c07-46aa-b52b-bed1e53463bb][Advanced customization (do-it-yourself)]]). Experienced users may not
273:END: 275 wish to rely on such a hook and the functions that run it: they may
276 prefer a custom solution ([[#h:86f6906b-f090-46cc-9816-1fe8aeb38776][A theme-agnostic hook for theme loading]]).
274 277
275If you plan to use both themes and wish to apply styles consistently 278** Sample configuration for use-package
276(see [[#h:bf1c82f2-46c7-4eb2-ad00-dd11fdd8b53f][Customization Options]]), you could define wrapper functions around 279:properties:
277the standard =load-theme= command. These extend the simple function we 280:custom_id: h:e979734c-a9e1-4373-9365-0f2cd36107b8
278presented in [[#h:2a0895a6-3281-4e55-8aa1-8a737555821e][Toggle between the themes on demand]]. 281:end:
282#+cindex: use-package configuration
279 283
280Here is a comprehensive setup (the values assigned to the variables are 284It is common for Emacs users to rely on ~use-package~ for declaring
281just for the sake of this demonstration):[fn:: The =defmacro= and =dolist= 285package configurations in their setup. We use this as an example:
282method were contributed on Reddit by user =b3n=
283https://www.reddit.com/r/emacs/comments/gqsz8u/weekly_tipstricketc_thread/fsfakhg/.]
284 286
285#+begin_src emacs-lisp 287#+begin_src emacs-lisp
286(defmacro modus-themes-format-sexp (sexp &rest objects) 288(use-package modus-themes
287 `(eval (read (format ,(format "%S" sexp) ,@objects)))) 289 :ensure ; omit this to use the built-in themes
288 290 :init
289(dolist (theme '("operandi" "vivendi")) 291 ;; Add all your customizations prior to loading the themes
290 (modus-themes-format-sexp 292 (setq modus-themes-slanted-constructs t
291 (defun modus-%1$s-theme-load () 293 modus-themes-bold-constructs nil)
292 (setq modus-%1$s-theme-slanted-constructs t 294
293 modus-%1$s-theme-bold-constructs t 295 ;; Load the theme files before enabling a theme (else you get an error).
294 modus-%1$s-theme-fringes 'subtle ; {nil,'subtle,'intense} 296 (modus-themes-load-themes)
295 modus-%1$s-theme-mode-line '3d ; {nil,'3d,'moody} 297 :config
296 modus-%1$s-theme-syntax 'alt-syntax ; {nil,faint,'yellow-comments,'green-strings,'yellow-comments-green-strings,'alt-syntax,'alt-syntax-yellow-comments} 298 ;; Load the theme of your choice:
297 modus-%1$s-theme-intense-hl-line nil 299 (modus-themes-load-operandi) ;; OR (modus-themes-load-vivendi)
298 modus-%1$s-theme-intense-paren-match nil 300 :bind ("<f5>" . modus-themes-toggle))
299 modus-%1$s-theme-links 'faint ; {nil,'faint,'neutral-underline,'faint-neutral-underline,'no-underline}
300 modus-%1$s-theme-no-mixed-fonts nil
301 modus-%1$s-theme-prompts nil ; {nil,'subtle,'intense}
302 modus-%1$s-theme-completions 'moderate ; {nil,'moderate,'opinionated}
303 modus-%1$s-theme-diffs nil ; {nil,'desaturated,'fg-only}
304 modus-%1$s-theme-org-blocks 'grayscale ; {nil,'grayscale,'rainbow}
305 modus-%1$s-theme-headings ; Read further below in the manual for this one
306 '((1 . section)
307 (2 . line)
308 (t . rainbow-line-no-bold))
309 modus-%1$s-theme-variable-pitch-headings nil
310 modus-%1$s-theme-scale-headings t
311 modus-%1$s-theme-scale-1 1.1
312 modus-%1$s-theme-scale-2 1.15
313 modus-%1$s-theme-scale-3 1.21
314 modus-%1$s-theme-scale-4 1.27
315 modus-%1$s-theme-scale-5 1.33)
316 (load-theme 'modus-%1$s t))
317 theme))
318
319(defun modus-themes-toggle ()
320 "Toggle between `modus-operandi' and `modus-vivendi' themes."
321 (interactive)
322 (if (eq (car custom-enabled-themes) 'modus-operandi)
323 (progn
324 (disable-theme 'modus-operandi)
325 (modus-vivendi-theme-load))
326 (disable-theme 'modus-vivendi)
327 (modus-operandi-theme-load)))
328#+end_src 301#+end_src
329 302
330* Customization Options 303[[#h:e68560b3-7fb0-42bc-a151-e015948f8a35][Differences between loading and enabling]].
331:PROPERTIES: 304
332:CUSTOM_ID: h:bf1c82f2-46c7-4eb2-ad00-dd11fdd8b53f 305Note: make sure not to customize the variable ~custom-theme-load-path~
333:END: 306or ~custom-theme-directory~ after the themes' package declaration. That
334 307will lead to failures in loading the files. If either or both of those
335The Modus themes are highly configurable, though they should work well 308variables need to be changed, their values should be defined before the
336without any further tweaks. 309package declaration of the themes.
337 310
338By default, all customization options are set to =nil=. 311** Differences between loading and enabling
339 312:properties:
340All customization options need to be evaluated before loading their 313:custom_id: h:e68560b3-7fb0-42bc-a151-e015948f8a35
341theme (see [[#h:3f3c3728-1b34-437d-9d0c-b110f5b161a9][Enable and load]]). 314:end:
315#+cindex: load-theme VS enable-theme
316
317The reason we recommend ~load-theme~ instead of the other option of
318~enable-theme~ is that the former does a kind of "reset" on the face
319specs. It quite literally loads (or re-loads) the theme. Whereas the
320latter simply puts an already loaded theme at the top of the list of
321enabled items, re-using whatever state was last loaded.
322
323As such, ~load-theme~ reads all customizations that may happen during
324any given Emacs session: even after the initial setup of a theme.
325Examples are calls to ~custom-set-faces~, as well as new values assigned
326to the options the Modus themes provide ([[#h:bf1c82f2-46c7-4eb2-ad00-dd11fdd8b53f][Customization Options]]).
327
328Our tests show that ~enable-theme~ does not read such variables anew, so
329it might appear to the unsuspecting user that the themes are somehow
330broken whenever they try to assign a new value to a customization option
331or some face.
332
333This "reset" that ~load-theme~ conducts does, however, come at the cost
334of being somewhat slower than ~enable-theme~. Users who have a stable
335setup and who seldom update their variables during a given Emacs
336session, are better off using something like this:
342 337
343** Option for more bold constructs 338#+begin_src emacs-lisp
344:PROPERTIES: 339(require 'modus-themes)
345:ALT_TITLE: Bold constructs 340(load-theme 'modus-operandi t t)
346:DESCRIPTION: Toggle bold constructs in code 341(load-theme 'modus-vivendi t t)
347:CUSTOM_ID: h:b25714f6-0fbe-41f6-89b5-6912d304091e
348:END:
349
350Symbol names:
351
352+ =modus-operandi-theme-bold-constructs=
353+ =modus-vivendi-theme-bold-constructs=
354 342
355Possible values: 343(enable-theme 'modus-operandi) ;; OR (enable-theme 'modus-vivendi)
344#+end_src
356 345
3571. =nil= (default) 346[[#h:e979734c-a9e1-4373-9365-0f2cd36107b8][Sample configuration for use-package]].
3582. =t=
359 347
360Display several constructs in bold weight. This concerns keywords and 348With the above granted, other sections of the manual discuss how to
361other important aspects of code syntax. It also affects certain mode 349configure custom faces, where ~load-theme~ is expected, though
362line indicators and command-line prompts. 350~enable-theme~ could still apply in stable setups:
363 351
364The default is to only use a bold weight when it is required. 352[[#h:1487c631-f4fe-490d-8d58-d72ffa3bd474][Case-by-case face specs using the themes' palette]].
365 353
366Additionally, and while not necessary, to define the precise weight for 354[[#h:51ba3547-b8c8-40d6-ba5a-4586477fd4ae][Face specs at scale using the themes' palette]].
367bold constructs, you can change the typographic intensity of the =bold=
368face. The standard is a bold weight. It requires no further
369intervention. Assuming though that your typeface of choice supports a
370"semibold" weight, adding the following snippet to your init file should
371suffice.
372 355
373#+begin_src emacs-lisp 356* Customization Options
374(set-face-attribute 'bold nil :weight 'semibold) 357:properties:
375#+end_src 358:custom_id: h:bf1c82f2-46c7-4eb2-ad00-dd11fdd8b53f
359:end:
376 360
377Note that if you are switching themes, you need to re-evaluate this 361The Modus themes are highly configurable, though they should work well
378expression after the new theme is loaded. 362without any further tweaks. By default, all customization options are
363set to nil.
379 364
380** Option for more slanted constructs 365Remember that all customization options must be evaluated before loading
381:PROPERTIES: 366a theme ([[#h:3f3c3728-1b34-437d-9d0c-b110f5b161a9][Enable and load]]).
382:ALT_TITLE: Slanted constructs
383:DESCRIPTION: Toggle slanted constructs (italics) in code
384:CUSTOM_ID: h:977c900d-0d6d-4dbb-82d9-c2aae69543d6
385:END:
386 367
387Symbol names: 368** Option for more bold constructs
369:properties:
370:alt_title: Bold constructs
371:description: Toggle bold constructs in code
372:custom_id: h:b25714f6-0fbe-41f6-89b5-6912d304091e
373:end:
374#+vindex: modus-themes-bold-constructs
388 375
389+ =modus-operandi-theme-slanted-constructs= 376Symbol: ~modus-themes-bold-constructs~
390+ =modus-vivendi-theme-slanted-constructs=
391 377
392Possible values: 378Possible values:
393 379
3941. =nil= (default) 3801. =nil= (default)
3952. =t= 3812. =t=
396 382
397Choose to render more faces in slanted text (italics). This typically 383The default is to use a bold typographic weight only when it is
398affects documentation strings and code comments. 384required.
399
400The default is to not use italics unless it is absolutely necessary.
401 385
402** Option for faint code syntax highlighting (deprecated for ~0.14.0~) 386With a non-nil value (=t=) display several syntactic constructs in bold
403:PROPERTIES: 387weight. This concerns keywords and other important aspects of code
404:ALT_TITLE: Faint syntax 388syntax. It also affects certain mode line indicators and command-line
405:DESCRIPTION: Toggle subtle coloration in code (deprecated for 0.14.0) 389prompts.
406:CUSTOM_ID: h:741379fe-7203-4dad-a7f8-ab71f61b43e6
407:END:
408 390
409Symbol names: 391** Option for more slanted constructs
392:properties:
393:alt_title: Slanted constructs
394:description: Toggle slanted constructs (italics) in code
395:custom_id: h:977c900d-0d6d-4dbb-82d9-c2aae69543d6
396:end:
397#+vindex: modus-themes-slanted-constructs
410 398
411+ =modus-operandi-theme-faint-syntax= 399Symbol: ~modus-themes-slanted-constructs~
412+ =modus-vivendi-theme-faint-syntax=
413 400
414Possible values: 401Possible values:
415 402
4161. =nil= (default) 4031. =nil= (default)
4172. =t= 4042. =t=
418 405
419Use less saturated colors in programming modes for highlighting code 406The default is to not use slanted text (italics) unless it is absolutely
420syntax. The default is to use saturated colors. 407necessary.
421 408
422This option essentially affects the font-lock faces, so it may also have 409With a non-nil value (=t=) choose to render more faces in slanted text.
423implications in other places that are hard-wired to rely directly on 410This typically affects documentation strings and code comments.
424them instead of specifying their own faces (which could inherit from
425font-lock if that is the intent). The author is aware of =vc-dir= as a
426case in point.
427 411
428** Option for syntax highlighting 412** Option for syntax highlighting
429:PROPERTIES: 413:properties:
430:ALT_TITLE: Syntax styles 414:alt_title: Syntax styles
431:DESCRIPTION: Choose the overall aesthetic of code syntax 415:description: Choose the overall aesthetic of code syntax
432:CUSTOM_ID: h:c119d7b2-fcd4-4e44-890e-5e25733d5e52 416:custom_id: h:c119d7b2-fcd4-4e44-890e-5e25733d5e52
433:END: 417:end:
434 418#+vindex: modus-themes-syntax
435This option supersedes the "faint syntax" one ahead of version =0.14.0=
436([[#h:741379fe-7203-4dad-a7f8-ab71f61b43e6][Option for faint code syntax highlighting]]).
437 419
438Symbol names: 420Symbol: ~modus-themes-syntax~
439
440+ =modus-operandi-theme-syntax=
441+ =modus-vivendi-theme-syntax=
442 421
443Possible values: 422Possible values:
444 423
4451. =nil= (default) 4241. =nil= (default)
4462. =faint= 4252. ~faint~
4473. =yellow-comments= 4263. ~yellow-comments~
4484. =green-strings= 4274. ~green-strings~
4495. =yellow-comments-green-strings= 4285. ~yellow-comments-green-strings~
4506. =alt-syntax= 4296. ~alt-syntax~
4517. =alt-syntax-yellow-comments= 4307. ~alt-syntax-yellow-comments~
4318. ~faint-yellow-comments~
452 432
453The default style (nil) for code syntax highlighting is a balanced 433The default style (nil) for code syntax highlighting is a balanced
454combination of colors on the cyan-blue-magenta side of the spectrum. 434combination of colors on the cyan-blue-magenta side of the spectrum.
455There is little to no use of greens, yellows, or reds, except when it is 435There is little to no use of greens, yellows, or reds, except when it is
456necessary. 436necessary.
457 437
458Option =faint= is like the default in terms of the choice of palette but 438Option ~faint~ is like the default in terms of the choice of palette but
459applies desaturated color values. 439applies desaturated color values.
460 440
461Option =yellow-comments= applies a yellow tint to comments. The rest of 441Option ~yellow-comments~ adds a yellow tint to comments. The rest of the
462the syntax is the same as the default. 442syntax is the same as the default.
463 443
464Option =green-strings= replaces the blue/cyan/cold color variants in 444Option ~green-strings~ replaces the blue/cyan/cold color variants in
465strings with greener alternatives. The rest of the syntax remains the 445strings with greener alternatives. The rest of the syntax remains the
466same. 446same.
467 447
468Option =yellow-comments-green-strings= combines yellow comments with green 448Option ~yellow-comments-green-strings~ combines yellow comments with green
469strings and the rest of the default syntax highlighting style. 449strings and the rest of the default syntax highlighting style.
470 450
471Option =alt-syntax= expands the color palette and applies new color 451Option ~alt-syntax~ expands the active spectrum by applying color
472combinations. Strings are green. Doc strings are magenta tinted. 452combinations with more contrasting hues between them. Expect to find
473Comments are gray. 453red and green variants in addition to cyan, blue, magenta.
474 454
475Option =alt-syntax-yellow-comments= combines =alt-syntax= with 455Option ~alt-syntax-yellow-comments~ combines ~alt-syntax~ with
476=yellow-comments=. 456~yellow-comments~.
477 457
478** Option for no font mixing 458Option ~faint-yellow-comments~ combines the ~faint~ style with
479:PROPERTIES: 459~yellow-comments~.
480:ALT_TITLE: No mixed fonts
481:DESCRIPTION: Toggle mixing of font families
482:CUSTOM_ID: h:115e6c23-ee35-4a16-8cef-e2fcbb08e28b
483:END:
484 460
485Symbol names: 461** Option for no font mixing
462:properties:
463:alt_title: No mixed fonts
464:description: Toggle mixing of font families
465:custom_id: h:115e6c23-ee35-4a16-8cef-e2fcbb08e28b
466:end:
467#+vindex: modus-themes-no-mixed-fonts
486 468
487+ =modus-operandi-theme-no-mixed-fonts= 469Symbol: ~modus-themes-no-mixed-fonts~
488+ =modus-vivendi-theme-no-mixed-fonts=
489 470
490Possible values: 471Possible values:
491 472
4921. =nil= (default) 4731. =nil= (default)
4932. =t= 4742. =t=
494 475
495By default, the themes configure some spacing-sensitive faces, such as 476By default, the themes configure some spacing-sensitive faces like Org
496Org tables and code blocks, to always inherit from the =fixed-pitch= face. 477tables and code blocks to always inherit from the ~fixed-pitch~ face.
497This is to ensure that those constructs remain monospaced when users opt 478This is to ensure that those constructs remain monospaced even when
498for something like the built-in =M-x variable-pitch-mode=. Otherwise the 479users opt for a mode that remaps typeface families, such as the built-in
499layout would appear broken. To disable this behaviour, set the option 480{{{kbd(M-x variable-pitch-mode)}}}. Otherwise the layout would appear
500to =t=. 481broken, due to how spacing is done. To disable this behaviour, set the
482option to =t=.
501 483
502Users may prefer to use another package for handling mixed typeface 484Users may prefer to use another package for handling mixed typeface
503configurations, rather than letting the theme do it, perhaps because a 485configurations, rather than letting the theme do it, perhaps because a
504purpose-specific package has extra functionality. Two possible options 486purpose-specific package has extra functionality. Two possible options
505are =org-variable-pitch= and =mixed-pitch=. 487are ~org-variable-pitch~ and ~mixed-pitch~.
506
507** Option for no link underline (deprecated for ~0.14.0~)
508:PROPERTIES:
509:ALT_TITLE: Link underline
510:DESCRIPTION: Toggle underlined text in links (deprecated for 0.14.0)
511:CUSTOM_ID: h:a1a639e9-d247-414c-a0ad-08adadcbc6c1
512:END:
513
514Note: deprecated ahead of version =0.14.0= ([[#h:c119d7b2-fcd4-4e44-890e-5e25733d5e52][Option for links]]).
515
516Symbol names:
517
518+ =modus-operandi-theme-no-link-underline=
519+ =modus-vivendi-theme-no-link-underline=
520
521Possible values:
522
5231. =nil= (default)
5242. =t=
525 488
526Remove the underline effect from links, symbolic links, and buttons. 489[[#h:defcf4fc-8fa8-4c29-b12e-7119582cc929][Font configurations for Org (and others)]].
527The default is to apply an underline.
528 490
529** Option for links 491** Option for links
530:PROPERTIES: 492:properties:
531:ALT_TITLE: Link styles 493:alt_title: Link styles
532:DESCRIPTION: Choose color intensity or no underline for links 494:description: Choose among several styles, with or without underline
533:CUSTOM_ID: h:c119d7b2-fcd4-4e44-890e-5e25733d5e52 495:custom_id: h:c119d7b2-fcd4-4e44-890e-5e25733d5e52
534:END: 496:end:
535 497#+vindex: modus-themes-links
536This option supersedes the "no link underline" one ahead of version
537=0.14.0= ([[#h:a1a639e9-d247-414c-a0ad-08adadcbc6c1][Option for no link underline]]).
538
539Symbol names:
540 498
541+ =modus-operandi-theme-links= 499Symbol: ~modus-themes-links~
542+ =modus-vivendi-theme-links=
543 500
544Possible values: 501Possible values:
545 502
5461. =nil= (default) 5031. =nil= (default)
5472. =faint= 5042. ~faint~
5483. =neutral-underline= 5053. ~neutral-underline~
5494. =faint-neutral-underline= 5064. ~faint-neutral-underline~
5505. =no-underline= 5075. ~no-underline~
5086. ~underline-only~
5097. ~neutral-underline-only~
551 510
552The default style (nil) for links is to apply an underline and a 511The default style (nil) for links is to apply an underline and a
553saturated color to the affected text. The color of the two is the 512saturated color to the affected text. The color of the two is the same,
554same, which makes the link fairly prominent. 513which makes the link fairly prominent.
555 514
556Option =faint= follows the same approach as the default, but uses less 515Option ~faint~ follows the same approach as the default, but uses less
557intense colors. 516intense colors.
558 517
559Option =neutral-underline= changes the underline's color to a subtle 518Option ~neutral-underline~ changes the underline's color to a subtle gray,
560gray, while retaining the default text color. 519while retaining the default text color.
561 520
562Option =faint-neutral-underline= combines a desaturated text color with a 521Option ~faint-neutral-underline~ combines a desaturated text color with a
563subtle gray underline. 522subtle gray underline.
564 523
565Option =no-underline= removes link underlines altogether, while keeping 524Option ~no-underline~ removes link underlines altogether, while retaining
566their text color the same as the default. 525their original fairly vivid color.
567 526
568** Option for command prompt styles 527Option ~underline-only~ applies a prominent underline while making the
569:PROPERTIES: 528affected text colorless (it uses the same foreground as the theme's
570:ALT_TITLE: Command prompts 529default).
571:DESCRIPTION: Choose among plain, subtle, or intense prompts 530
572:CUSTOM_ID: h:db5a9a7c-2928-4a28-b0f0-6f2b9bd52ba1 531Option ~neutral-underline-only~ makes the text colorless while using a
573:END: 532subtle gray underline below it.
574 533
575Symbol names: 534NOTE: The placement of the underline, i.e. its proximity to the affected
535text, is controlled by the built-in ~x-underline-at-descent-line~,
536~x-use-underline-position-properties~, ~underline-minimum-offset~. Please
537refer to their documentation strings.
576 538
577+ =modus-operandi-theme-prompts= 539** Option for command prompt styles
578+ =modus-vivendi-theme-prompts= 540:properties:
541:alt_title: Command prompts
542:description: Choose among plain, subtle, or intense prompts
543:custom_id: h:db5a9a7c-2928-4a28-b0f0-6f2b9bd52ba1
544:end:
545#+vindex: modus-themes-prompts
546
547Symbol: ~modus-themes-prompts~
579 548
580Possible values: 549Possible values:
581 550
5821. =nil= (default) 5511. =nil= (default)
5832. =subtle= 5522. ~subtle-accented~ (~subtle~ exists for backward compatibility)
5843. =intense= 5533. ~intense-accented~ (~intense~ exists for backward compatibility)
5544. ~subtle-gray~
5555. ~intense-gray~
585 556
586The symbols "subtle" and "intense" will apply a combination of accented 557The default does not use any background for minibuffer and command line
587background and foreground to the minibuffer and other REPL prompts (like 558prompts. It relies exclusively on an accented foreground color.
588=M-x shell= and =M-x eshell=). The difference between the two is that the
589latter has a more pronounced/noticeable effect than the former.
590 559
591The default does not use any background for such prompts, while relying 560Options ~subtle-accented~ and ~intense-accented~ will change both the
592exclusively on an accented foreground color. 561background and the foreground values to use accented color combinations
562that follow the hue of the default styles' foreground (e.g. the default
563minibuffer prompt is cyan text, so these combinations will involved a
564cyan background and an appropriate cyan foreground). The difference
565between the two is that the latter has a more pronounced/noticeable
566effect than the former.
593 567
594** Option for mode line presentation 568Options ~subtle-gray~, ~intense-gray~ are like their accented counterparts,
595:PROPERTIES: 569except they use grayscale values.
596:ALT_TITLE: Mode line
597:DESCRIPTION: Choose among plain, three-dimension, or moody-compliant styles
598:CUSTOM_ID: h:27943af6-d950-42d0-bc23-106e43f50a24
599:END:
600 570
601Symbol names: 571** Option for mode line presentation
572:properties:
573:alt_title: Mode line
574:description: Choose among several styles, with or without borders
575:custom_id: h:27943af6-d950-42d0-bc23-106e43f50a24
576:end:
577#+vindex: modus-themes-mode-line
602 578
603+ =modus-operandi-theme-mode-line= 579Symbol: ~modus-themes-mode-line~
604+ =modus-vivendi-theme-mode-line=
605 580
606Possible values: 581Possible values:
607 582
6081. =nil= (default) 5831. =nil= (default)
6092. =3d= 5842. ~3d~
6103. =moody= 5853. ~moody~
611 5864. ~borderless~
612The default value (=nil=) produces a two-dimensional effect both for the 5875. ~borderless-3d~
613active and inactive modelines. The differences between the two are 5886. ~borderless-moody~
614limited to distinct shades of grayscale values, with the active being 589
615more intense than the inactive. 590The default produces a two-dimensional effect both for the active and
616 591inactive modelines. The differences between the two are limited to
617A =3d= symbol will make the active modeline look like a three-dimensional 592distinct shades of grayscale values, with the active being more intense
593than the inactive.
594
595Option ~3d~ will make the active modeline look like a three-dimensional
618rectangle. Inactive modelines remain 2D, though they are slightly toned 596rectangle. Inactive modelines remain 2D, though they are slightly toned
619down relative to the default. This aesthetic is the same as what you 597down relative to the default. This aesthetic is virtually the same as
620get when you run Emacs without any customizations (=emacs -Q= on the 598what you get when you run Emacs without any customizations (=emacs -Q= on
621command line). 599the command line).
622 600
623While =moody= removes all box effects from the modelines and applies 601While ~moody~ removes all box effects from the modelines and applies
624underline and overline properties instead. It also tones down a bit the 602underline and overline properties instead. It also tones down a bit the
625inactive modelines. This is meant to optimize things for use with the 603inactive modelines. This is meant to optimize things for use with the
626[[https://github.com/tarsius/moody][moody package]] (hereinafter referred to as "Moody"), though it can work 604[[https://github.com/tarsius/moody][moody package]] (hereinafter referred to as "Moody"), though it can work
627fine even without it. 605fine even without it.
628 606
607The ~borderless~ option uses the same colors as the default (nil value),
608but removes the border effect. This is done by making the box property
609use the same color as the background, effectively blending the two and
610creating some padding.
611
612The ~borderless-3d~ and ~borderless-moody~ approximate the ~3d~ and ~moody~
613options respectively, while removing the borders. However, to ensure
614that the inactive modelines remain visible, they apply a slightly more
615prominent background to them than what their counterparts do (same
616inactive background as with the default).
617
629Note that Moody does not expose any faces that the themes could style 618Note that Moody does not expose any faces that the themes could style
630directly. Instead it re-purposes existing ones to render its tabs and 619directly. Instead it re-purposes existing ones to render its tabs and
631ribbons. As such, there may be cases where the contrast ratio falls 620ribbons. As such, there may be cases where the contrast ratio falls
632below the 7:1 target that the themes conform with (WCAG AAA). To hedge 621below the 7:1 target that the themes conform with (WCAG AAA). To hedge
633against this, we configure a fallback foreground for the =moody= option, 622against this, we configure a fallback foreground for the ~moody~ option,
634which will come into effect when the background of the modeline changes 623which will come into effect when the background of the modeline changes
635to something less accessible, such as Moody ribbons (read the doc string 624to something less accessible, such as Moody ribbons (read the doc string
636of =set-face-attribute=, specifically =:distant-foreground=). This fallback 625of ~set-face-attribute~, specifically ~:distant-foreground~). This fallback
637comes into effect when Emacs determines that the background and 626is activated when Emacs determines that the background and foreground of
638foreground of the given construct are too close to each other in terms 627the given construct are too close to each other in terms of color
639of color distance. In effect, users would need to experiment with the 628distance. In effect, users would need to experiment with the variable
640variable =face-near-same-color-threshold= to trigger the fallback color. 629~face-near-same-color-threshold~ to trigger the effect. We find that a
641We find that a value of =45000= would suffice, contrary to the default 630value of =45000= will suffice, contrary to the default =30000=. Do not set
642=30000=. Do not set the value too high, because that would have the 631the value too high, because that would have the adverse effect of always
643adverse effect of always overriding the default color (which has been 632overriding the default color (which has been carefully designed to be
644carefully designed to be highly accessible). 633highly accessible).
645 634
646Furthermore, because Moody expects an underline and overline instead of 635Furthermore, because Moody expects an underline and overline instead of
647a box style, it is recommended you also include this in your setup: 636a box style, it is advised you include this in your setup:
648 637
649#+begin_src emacs-lisp 638#+begin_src emacs-lisp
650(setq x-underline-at-descent-line t) 639(setq x-underline-at-descent-line t)
651#+end_src 640#+end_src
652 641
653** Option for completion framework aesthetics 642** Option for completion framework aesthetics
654:PROPERTIES: 643:properties:
655:ALT_TITLE: Completion UIs 644:alt_title: Completion UIs
656:DESCRIPTION: Choose among standard, moderate, or opinionated looks 645:description: Choose among standard, moderate, or opinionated looks
657:CUSTOM_ID: h:f1c20c02-7b34-4c35-9c65-99170efb2882 646:custom_id: h:f1c20c02-7b34-4c35-9c65-99170efb2882
658:END: 647:end:
659 648#+vindex: modus-themes-completions
660Symbol names:
661 649
662+ =modus-operandi-theme-completions= 650Symbol: ~modus-themes-completions~
663+ =modus-vivendi-theme-completions=
664 651
665Possible values: 652Possible values:
666 653
6671. =nil= (default) 6541. =nil= (default)
6682. =moderate= 6552. ~moderate~
6693. =opinionated= 6563. ~opinionated~
670 657
671This is a special option that has different effects depending on the 658This is a special option that has different effects depending on the
672completion UI. The interfaces can be grouped in two categories, based 659completion UI. The interfaces can be grouped in two categories, based
@@ -679,512 +666,1008 @@ Ivy, and similar.
679 666
680A value of =nil= will respect the metaphors of each completion framework. 667A value of =nil= will respect the metaphors of each completion framework.
681 668
682The symbol =moderate= will apply a combination of background and 669Option ~moderate~ applies a combination of background and foreground that
683foreground that is fairly subtle. For Icomplete and friends this 670is fairly subtle. For Icomplete and friends this constitutes a
684constitutes a departure from their default aesthetics, however the 671departure from their default aesthetics, however the difference is
685difference is small. While Helm et al will appear slightly different 672small. While Helm, Ivy et al appear slightly different than their
686than their original looks, as they are toned down a bit. 673original looks, as they are toned down a bit.
687 674
688The symbol =opinionated= will apply color combinations that refashion the 675Option ~opinionated~ uses color combinations that refashion the completion
689completion UI. For the Icomplete camp this means that intense 676UI. For the Icomplete camp this means that intense background and
690background and foreground combinations are used: in effect their looks 677foreground combinations are used: in effect their looks emulate those of
691emulate those of Ivy and co. in their original style. Whereas the other 678Helm, Ivy and co. in their original style. Whereas the other group of
692group of packages will revert to an even more nuanced aesthetic with 679packages will revert to an even more nuanced aesthetic with some
693some additional changes to the choice of hues. 680additional changes to the choice of hues.
694 681
695To appreciate the scope of this customization option, you should spend 682To appreciate the scope of this customization option, you should spend
696some time with every one of the =nil= (default), =moderate=, and =opinionated= 683some time with every one of the =nil= (default), ~moderate~, and ~opinionated~
697possibilities. 684possibilities.
698 685
699** Option for fringe visibility 686** Option for fringe visibility
700:PROPERTIES: 687:properties:
701:ALT_TITLE: Fringes 688:alt_title: Fringes
702:DESCRIPTION: Choose among plain, subtle, or intense fringe visibility 689:description: Choose among invisible, subtle, or intense fringe styles
703:CUSTOM_ID: h:1983c3fc-74f6-44f3-b917-967c403bebae 690:custom_id: h:1983c3fc-74f6-44f3-b917-967c403bebae
704:END: 691:end:
692#+vindex: modus-themes-fringes
705 693
706Symbol names: 694Symbol: ~modus-themes-fringes~
707
708+ =modus-operandi-theme-fringes=
709+ =modus-vivendi-theme-fringes=
710 695
711Possible values: 696Possible values:
712 697
7131. =nil= (default) 6981. =nil= (default)
7142. =subtle= 6992. ~subtle~
7153. =intense= 7003. ~intense~
716
717The "subtle" symbol will apply a grayscale background that is visible,
718yet close enough to the main background color. While the "intense"
719symbol will use a more noticeable grayscale background.
720 701
721The default is to use the same color as that of the main background, 702The default is to use the same color as that of the main background,
722meaning that the fringes are not obvious though they still occupy the 703meaning that the fringes are not obvious though they still occupy the
723space given to them by =fringe-mode=. 704space given to them by ~fringe-mode~.
724 705
725** Option for line highlighting (hl-line-mode) 706Options ~subtle~ and ~intense~ apply a gray background, making the fringes
726:PROPERTIES: 707visible. The difference between the two is one of degree, as their
727:ALT_TITLE: Line highlighting 708names imply.
728:DESCRIPTION: Toggle intense style for current line highlighting
729:CUSTOM_ID: h:1dba1cfe-d079-4c13-a810-f768e8789177
730:END:
731 709
732Symbol names: 710** Option for language checkers
711:properties:
712:alt_title: Language checkers
713:description: Control the style of language checkers/linters
714:custom_id: h:4b13743a-8ebf-4d2c-a043-cceba10b1eb4
715:end:
716#+vindex: modus-themes-lang-checkers
733 717
734+ =modus-operandi-theme-intense-hl-line= 718Symbol: ~modus-themes-lang-checkers~
735+ =modus-vivendi-theme-intense-hl-line= 719
720Possible values:
721
7221. =nil= (default)
7232. ~subtle-foreground~
7243. ~intense-foreground~
7254. ~straight-underline~
7265. ~subtle-foreground-straight-underline~
7276. ~intense-foreground-straight-underline~
7287. ~colored-background~
729
730Nil (the default) applies a color-coded underline to the affected text,
731while it leaves the original foreground in tact. If the display spec
732where Emacs runs in has support for it (e.g. Emacs GUI), the underline's
733style is that of a wave, otherwise it is a straight line.
734
735Options ~subtle-foreground~ and ~intense-foreground~ follow the same
736color-coding pattern and wavy underline of the default, while extending
737it with a corresponding foreground value for the affected text. The
738difference between the two options is one of degree, as their names
739suggest.
740
741Option ~straight-underline~ is like the default but always applies a
742straight line under the affected text. Same principle for
743~subtle-foreground-straight-underline~ and its counterpart
744~intense-foreground-straight-underline~.
745
746Option ~colored-background~ uses a straight underline, a tinted
747background, and a suitable foreground. All are color-coded. This is
748the most intense combination of face properties.
749
750The present variable affects packages and/or face groups such as those
751of =flyspell=, =flymake=, =flycheck=, ~artbollocks-mode~, and ~writegood-mode~.
752
753NOTE: The placement of the straight underline, though not the wave
754style, is controlled by the built-in ~x-underline-at-descent-line~,
755~x-use-underline-position-properties~, ~underline-minimum-offset~. Please
756refer to their documentation strings.
757
758** Option for line highlighting (hl-line-mode)
759:properties:
760:alt_title: Line highlighting
761:description: Toggle intense style for current line highlighting
762:custom_id: h:1dba1cfe-d079-4c13-a810-f768e8789177
763:end:
764#+vindex: modus-themes-intense-hl-line
765
766Symbol: ~modus-themes-intense-hl-line~
736 767
737Possible values: 768Possible values:
738 769
7391. =nil= (default) 7701. =nil= (default)
7402. =t= 7712. =t=
741 772
742Draw the current line of =hl-line-mode= or its global equivalent in a more 773The default is to use a subtle gray background for ~hl-line-mode~ and its
743prominent background color. This would also affect several packages 774global equivalent.
744that enable =hl-line-mode=, such as =elfeed= and =mu4e=.
745 775
746The default is to use a more subtle gray. 776With a non-nil value (=t=) use a more prominent background color instead.
777
778This affects several packages that enable ~hl-line-mode~, such as =elfeed=
779and =mu4e=.
780
781** Option for line numbers (display-line-numbers-mode)
782:properties:
783:alt_title: Line numbers
784:description: Toggle subtle style for line numbers
785:custom_id: h:8c4a6230-2e43-4aa2-a631-3b7179392e09
786:end:
787#+vindex: modus-themes-subtle-line-numbers
788
789Symbol: ~modus-themes-subtle-line-numbers~
790
791Possible value:
792
7931. =nil= (default)
7942. =t=
795
796The default style for ~display-line-numbers-mode~ and its global variant
797is to apply a subtle gray background to the line numbers. The current
798line has a more pronounced background and foreground combination to
799bring more attention to itself.
800
801Similarly, the faces for ~display-line-numbers-major-tick~ and its
802counterpart ~display-line-numbers-minor-tick~ use appropriate styles that
803involve a bespoke background and foreground combination.
804
805With a non-nil value (=t=), line numbers have no background of their own.
806Instead they retain the primary background of the theme, blending with
807the rest of the buffer. Foreground values for all relevant faces are
808updated to accommodate this aesthetic.
747 809
748** Option for parenthesis matching (show-paren-mode) 810** Option for parenthesis matching (show-paren-mode)
749:PROPERTIES: 811:properties:
750:ALT_TITLE: Matching parentheses 812:alt_title: Matching parentheses
751:DESCRIPTION: Toggle intense style for matching delimiters/parentheses 813:description: Choose between various styles for matching delimiters/parentheses
752:CUSTOM_ID: h:e66a7e4d-a512-4bc7-9f86-fbbb5923bf37 814:custom_id: h:e66a7e4d-a512-4bc7-9f86-fbbb5923bf37
753:END: 815:end:
816#+vindex: modus-themes-paren-match
817
818Symbol: ~modus-themes-paren-match~
819
820Possible values:
821
8221. =nil= (default)
8232. ~subtle-bold~
8243. ~intense~
8254. ~intense-bold~
754 826
755Symbol names: 827Nil means to use a subtle tinted background color for the matching
828delimiters.
756 829
757+ =modus-operandi-theme-intense-paren-match= 830Option ~intense~ applies a saturated background color.
758+ =modus-vivendi-theme-intense-paren-match= 831
832Option ~subtle-bold~ is the same as the default, but also makes use of
833bold typographic weight (inherits the ~bold~ face).
834
835Option ~intense-bold~ is the same as ~intense~, while it also uses a bold
836weight.
837
838This customization variable affects tools such as the built-in
839~show-paren-mode~ and the =smartparens= package.
840
841** Option for active region
842:properties:
843:alt_title: Active region
844:description: Choose between various styles for the active region
845:custom_id: h:60798063-b4ad-45ea-b9a7-ff7b5c0ab74c
846:end:
847#+vindex: modus-themes-region
848
849Symbol: ~modus-themes-region~
759 850
760Possible values: 851Possible values:
761 852
7621. =nil= (default) 8531. =nil= (default)
7632. =t= 8542. ~no-extend~
8553. ~bg-only~
8564. ~bg-only-no-extend~
764 857
765Apply a more intense background to the matching parentheses (or 858Nil means to only use a prominent gray background with a neutral
766delimiters). This affects tools such as the built-in =show-paren-mode=. 859foreground. The foreground overrides all syntax highlighting. The
767The default is to use a subtle warm color for the background of those 860region extends to the edge of the window.
768overlays.
769 861
770** Option for diff buffer looks 862Option ~no-extend~ preserves the default aesthetic but prevents the region
771:PROPERTIES: 863from extending to the edge of the window.
772:ALT_TITLE: Diffs 864
773:DESCRIPTION: Choose among intense, desaturated, or text-only diffs 865Option ~bg-only~ applies a faint tinted background that is distinct from
774:CUSTOM_ID: h:ea7ac54f-5827-49bd-b09f-62424b3b6427 866all others used in the theme, while it does not override any existing
775:END: 867colors. It extends to the edge of the window.
868
869Option ~bg-only-no-extend~ is a combination of the ~bg-only~ and ~no-extend~
870options.
776 871
777Symbol names: 872** Option for diff buffer looks
873:properties:
874:alt_title: Diffs
875:description: Choose among intense, desaturated, or text-only diffs
876:custom_id: h:ea7ac54f-5827-49bd-b09f-62424b3b6427
877:end:
878#+vindex: modus-themes-diffs
778 879
779+ =modus-operandi-theme-diffs= 880Symbol: ~modus-themes-diffs~
780+ =modus-vivendi-theme-diffs=
781 881
782Possible values: 882Possible values:
783 883
7841. =nil= (default) 8841. =nil= (default)
7852. =desaturated= 8852. ~desaturated~
7862. =fg-only= 8863. ~fg-only~
787 8874. ~bg-only~
788By default the themes will apply richly colored backgrounds to the 8885. ~deuteranopia~
789output of diffs, such as those of =diff-mode=, =ediff=, =smerge-mode=, and 889
790=magit=. These are color combinations of an accented background and 890By default the themes apply rich coloration to the output of diffs, such
791foreground so that, for example, added lines have a pronounced green 891as those of ~diff-mode~, ~ediff~, ~smerge-mode~, and Magit. These are
792background with an appropriate shade of green for the affected text. 892color combinations of an accented background and foreground so that, for
793Word-wise or "refined" changes follow this pattern but use different 893example, added lines have a pronounced green background with an
794shades of those colors to remain distinct. 894appropriate shade of green for the affected text. Word-wise or
795 895"refined" changes follow this pattern but use different shades of those
796A =desaturated= value tones down all relevant color values. It still 896colors to remain distinct.
897
898Option ~desaturated~ tones down all relevant color values. It still
797combines an accented background with an appropriate foreground, yet its 899combines an accented background with an appropriate foreground, yet its
798overall impression is very subtle. Refined changes are a bit more 900overall impression is fairly subtle. Refined changes are a bit more
799intense to fulfil their intended function, though still less saturated 901intense to fulfil their intended function, though still less saturated
800than default. 902than default.
801 903
802While =fg-only= will remove all accented backgrounds and instead rely on 904Option ~fg-only~ will remove most accented backgrounds and instead rely
803color-coded text to denote changes. For instance, added lines use an 905on color-coded text to denote changes. For instance, added lines use a
804intense green foreground, while their background is the same as the rest 906green foreground, while their background is the same as the rest of the
805of the buffer. Word-wise highlights still use a background value which 907buffer. Word-wise highlights still use a background value which is,
806is, nonetheless, more subtle than its default equivalent. 908nonetheless, more subtle than its default equivalent.
807 909
808Concerning =magit=, an extra set of tweaks are introduced for the effect 910Option ~bg-only~ applies color-coded backgrounds but does not override
809of highlighting the current diff hunk, so as to remain consistent with 911any syntax highlighting that may be present. This makes it suitable for
810the overall experience of that mode. Expect changes that are consistent 912use with a non-nil value for ~diff-font-lock-syntax~ (which is the
811with the overall intent of the aforementioned. 913default for ~diff-mode~ buffers in Emacs 27 or higher).
914
915Option ~deuteranopia~ optimizes for red-green color deficiency. It
916replaces all instances of green with blue variants. This is to ensure
917that indicators for "removed" and "added" states are not mistaken for
918each other.
919
920Concerning Magit, an extra set of tweaks are introduced for the effect
921of highlighting the current diff hunk, so as to remain aligned with the
922overall experience of that mode. Expect changes that are consistent
923with the overall intent of the aforementioned. Note, however, that the
924~bg-only~ option will not deliver the intended results in Magit diffs
925because no syntax highlighting is used there (last checked with Magit
926version 20201116.1057, though upstream has a plan to eventually support
927such a feature---this entry shall be updated accordingly).
812 928
813** Option for org-mode block styles 929** Option for org-mode block styles
814:PROPERTIES: 930:properties:
815:ALT_TITLE: Org mode blocks 931:alt_title: Org mode blocks
816:DESCRIPTION: Choose among plain, grayscale, or rainbow styles 932:description: Choose among plain, grayscale, or rainbow styles
817:CUSTOM_ID: h:b7e328c0-3034-4db7-9cdf-d5ba12081ca2 933:custom_id: h:b7e328c0-3034-4db7-9cdf-d5ba12081ca2
818:END: 934:end:
819 935#+vindex: modus-themes-org-blocks
820Symbol names:
821 936
822+ =modus-operandi-theme-org-blocks= 937Symbol: ~modus-themes-org-blocks~
823+ =modus-vivendi-theme-org-blocks=
824 938
825Possible values: 939Possible values:
826 940
8271. =nil= (default) 9411. =nil= (default)
8282. =grayscale= 9422. ~grayscale~
8293. =rainbow= 9433. ~rainbow~
830 944
831The default is to use the same background as the rest of the buffer for 945The default is to use the same background as the rest of the buffer for
832the contents of the block. 946the contents of the block.
833 947
834A value of =grayscale= will apply a subtle neutral gray background to the 948Option ~grayscale~ applies a subtle neutral gray background to the block's
835block's contents. It will also extend to the edge of the window the 949contents. It will also extend to the edge of the window the background
836background of the "begin" and "end" block delimiter lines (only relevant 950of the "begin" and "end" block delimiter lines (only relevant for Emacs
837for Emacs versions >= 27 where the 'extend' keyword is recognised by 951versions >= 27 where the 'extend' keyword is part of the face
838=set-face-attribute=). 952specifications).
839 953
840While =rainbow= will instead use an accented background for the contents 954Option ~rainbow~ uses an accented background for the contents of the
841of the block. The exact color will depend on the programming language 955block. The exact color will depend on the programming language and is
842and is controlled by the =org-src-block-faces= variable (refer to the 956controlled by the ~org-src-block-faces~ variable. This is most suitable
843theme's source code for the current association list). This is most 957for users who work on literate programming documents that mix and match
844suitable for users who work on literate programming documents that mix 958several languages.
845and match several languages.
846 959
847Note that the "rainbow" blocks may require you to also reload the 960Note that the "rainbow" blocks may require you to also reload the
848major-mode so that the colors are applied properly: use =M-x org-mode= or 961major-mode so that the colors are applied consistently throughout: use
849=M-x org-mode-restart= to refresh the buffer. Or start typing in each 962{{{kbd(M-x org-mode)}}} or {{{kbd(M-x org-mode-restart)}}} to refresh the buffer.
850code block (inefficient at scale, but it still works). 963Or start typing in each code block (inefficient at scale, but it still
964works).
851 965
852** Option for headings' overall style 966** Option for org-habit graph styles
853:PROPERTIES: 967:properties:
854:ALT_TITLE: Heading styles 968:alt_title: Org agenda habits
855:DESCRIPTION: Choose among several styles, also per heading level 969:description: Choose among standard, simplified, or traffic light styles
856:CUSTOM_ID: h:271eff19-97aa-4090-9415-a6463c2f9ae1 970:custom_id: h:b7e328c0-3034-4db7-9cdf-d5ba12081ca2
857:END: 971:end:
972#+vindex: modus-themes-org-habit
973
974Symbol: ~modus-themes-org-habit~
975
976Possible values:
977
9781. =nil= (default)
9792. ~simplified~
9803. ~traffic-light~
981
982The default is meant to conform with the original aesthetic of
983=org-habit=. It employs all four color codes that correspond to the
984org-habit states---clear, ready, alert, and overdue---while
985distinguishing between their present and future variants. This results
986in a total of eight colors in use: red, yellow, green, blue, in tinted
987and shaded versions. They cover the full set of information provided by
988the =org-habit= consistency graph.
989
990Option ~simplified~ is like the default except that it removes the
991dichotomy between current and future variants by applying uniform
992color-coded values. It applies a total of four colors: red, yellow,
993green, blue. They produce a simplified consistency graph that is more
994legible (or less "busy") than the default. The intent is to shift focus
995towards the distinction between the four states of a habit task, rather
996than each state's present/future outlook.
997
998Option ~traffic-light~ further reduces the available colors to red,
999yellow, and green. As in ~simplified~, present and future variants appear
1000uniformly, but differently from it, the 'clear' state is rendered in a
1001green hue, instead of the original blue. This is meant to capture the
1002use-case where a habit task being "too early" is less important than it
1003being "too late". The difference between ready and clear states is
1004attenuated by painting both of them using shades of green. This option
1005thus highlights the alert and overdue states.
1006
1007** Option for the headings' overall style
1008:properties:
1009:alt_title: Heading styles
1010:description: Choose among several styles, also per heading level
1011:custom_id: h:271eff19-97aa-4090-9415-a6463c2f9ae1
1012:end:
1013#+vindex: modus-themes-headings
858 1014
859This is defined as an alist and, therefore, uses a different approach 1015This is defined as an alist and, therefore, uses a different approach
860than other customization options documented in this manual. 1016than other customization options documented in this manual.
861 1017
862Symbol names: 1018Symbol: ~modus-themes-headings~
863
864+ =modus-operandi-theme-headings=
865+ =modus-vivendi-theme-headings=
866 1019
867Possible values, which can be specified for each heading level (examples 1020Possible values, which can be specified for each heading level (examples
868further below): 1021further below):
869 1022
870+ nil (default fallback option---covers all heading levels) 1023+ nil (default fallback option---covers all heading levels)
871+ =t= (default style for a single heading, when the fallback differs) 1024+ =t= (default style for a single heading, when the fallback differs)
872+ =no-bold= 1025+ ~no-bold~
873+ =line= 1026+ ~line~
874+ =line-no-bold= 1027+ ~line-no-bold~
875+ =rainbow= 1028+ ~rainbow~
876+ =rainbow-line= 1029+ ~rainbow-line~
877+ =rainbow-line-no-bold= 1030+ ~rainbow-line-no-bold~
878+ =highlight= 1031+ ~highlight~
879+ =highlight-no-bold= 1032+ ~highlight-no-bold~
880+ =rainbow-highlight= 1033+ ~rainbow-highlight~
881+ =rainbow-highlight-no-bold= 1034+ ~rainbow-highlight-no-bold~
882+ =section= 1035+ ~section~
883+ =section-no-bold= 1036+ ~section-no-bold~
884+ =rainbow-section= 1037+ ~rainbow-section~
885+ =rainbow-section-no-bold= 1038+ ~rainbow-section-no-bold~
886 1039+ ~no-color~
887To control faces per level from 1-8, use something like this (same for 1040+ ~no-color-no-bold~
888=modus-vivendi-theme-headings=): 1041
1042To control faces per level from 1-8, use something like this:
889 1043
890#+begin_src emacs-lisp 1044#+begin_src emacs-lisp
891(setq modus-operandi-theme-headings 1045(setq modus-themes-headings
892 '((1 . section) 1046 '((1 . section)
893 (2 . line) 1047 (2 . section-no-bold)
894 (3 . highlight) 1048 (3 . rainbow-line)
895 (t . rainbow-no-bold))) 1049 (t . rainbow-line-no-bold)))
896#+end_src 1050#+end_src
897 1051
898The above uses the =section= value for heading levels 1, the =line= for 1052The above uses the ~section~ value for heading levels 1, ~section-no-bold~
899headings 2, =highlight= for 3. All other levels fall back to 1053for headings 2, ~rainbow-line~ for 3. All other levels fall back to
900=rainbow-line-no-bold=. 1054~rainbow-line-no-bold~.
901 1055
902To set a uniform value for all heading levels, use this pattern: 1056To set a uniform value for all heading levels, use this pattern:
903 1057
904#+begin_src emacs-lisp 1058#+begin_src emacs-lisp
905;; A given style for every heading 1059;; A given style for every heading
906(setq modus-operandi-theme-headings 1060(setq modus-themes-headings
907 '((t . rainbow-line-no-bold))) 1061 '((t . section)))
908 1062
909;; Default aesthetic for every heading 1063;; Default aesthetic for every heading
910(setq modus-operandi-theme-headings 1064(setq modus-themes-headings
911 '((t . nil))) 1065 '())
912#+end_src 1066#+end_src
913 1067
914The default style for headings uses a fairly desaturated foreground 1068The default style for headings uses a fairly desaturated foreground
915value in combination with a bold typographic weight. To specify this 1069value in combination with bold typographic weight. To specify this
916style for a given level N (assuming you wish to have another fallback 1070style for a given level N, assuming you wish to have another fallback
917option), just specify the value =t= like this: 1071option, just specify the value =t= like this:
918 1072
919#+begin_src emacs-lisp 1073#+begin_src emacs-lisp
920(setq modus-operandi-theme-headings 1074(setq modus-themes-headings
921 '((1 . t) 1075 '((1 . t)
922 (2 . line) 1076 (2 . line)
923 (t . rainbow-line-no-bold))) 1077 (t . rainbow-line-no-bold)))
924#+end_src 1078#+end_src
925 1079
926A description of all other possible styles: 1080A description of all other possible styles beyond the default:
927 1081
928+ =no-bold= retains the default text color while removing the typographic 1082+ ~no-bold~ retains the default text color while removing the bold
929 weight. 1083 typographic weight.
930 1084
931+ =line= is the same as the default plus an overline over the heading. 1085+ ~line~ is the same as the default plus an overline across the
1086 heading's length.
932 1087
933+ =line-no-bold= is the same as =line= without bold weight. 1088+ ~line-no-bold~ is the same as ~line~ without bold weight.
934 1089
935+ =rainbow= uses a more colorful foreground in combination with bold 1090+ ~rainbow~ uses a more colorful foreground in combination with bold
936 weight. 1091 typographic weight.
937 1092
938+ =rainbow-line= is the same as =rainbow= plus an overline. 1093+ ~rainbow-line~ is the same as ~rainbow~ plus an overline.
939 1094
940+ =rainbow-line-no-bold= is the same as =rainbow-line= without the bold 1095+ ~rainbow-line-no-bold~ is the same as ~rainbow-line~ without the bold
941 weight. 1096 weight.
942 1097
943+ =highlight= retains the default style of a fairly desaturated foreground 1098+ ~highlight~ retains the default style of a fairly desaturated
944 combined with a bold weight and adds to it a subtle accented 1099 foreground combined with a bold weight and adds to it a subtle
945 background. 1100 accented background.
946 1101
947+ =highlight-no-bold= is the same as =highlight= without a bold weight. 1102+ ~highlight-no-bold~ is the same as ~highlight~ without a bold weight.
948 1103
949+ =rainbow-highlight= is the same as =highlight= but with a more colorful 1104+ ~rainbow-highlight~ is the same as ~highlight~ but with a more
950 foreground. 1105 colorful foreground.
951 1106
952+ =rainbow-highlight-no-bold= is the same as =rainbow-highlight= without a 1107+ ~rainbow-highlight-no-bold~ is the same as ~rainbow-highlight~ without
953 bold weight. 1108 a bold weight.
954 1109
955+ =section= retains the default looks and adds to them both an overline 1110+ ~section~ retains the default looks and adds to them both an overline
956 and a slightly accented background. It is, in effect, a combination 1111 and a slightly accented background. It is, in effect, a combination
957 of the =line= and =highlight= values. 1112 of the ~line~ and ~highlight~ values.
958 1113
959+ =section-no-bold= is the same as =section= without a bold weight. 1114+ ~section-no-bold~ is the same as ~section~ without a bold weight.
960 1115
961+ =rainbow-section= is the same as =section= but with a more colorful 1116+ ~rainbow-section~ is the same as ~section~ but with a more colorful
962 foreground. 1117 foreground.
963 1118
964+ =rainbow-section-no-bold= is the same as =rainbow-section= without a bold 1119+ ~rainbow-section-no-bold~ is the same as ~rainbow-section~ without a
965 weight." 1120 bold weight.
1121
1122+ ~no-color~ does not apply any color to the heading, meaning that it
1123 uses the foreground of the ~default~ face. It still renders the text
1124 with a bold typographic weight.
966 1125
967** Option for scaled headings 1126+ ~no-color-no-bold~ is like ~no-color~ but without the bold weight.
968:PROPERTIES:
969:ALT_TITLE: Scaled headings
970:DESCRIPTION: Toggle scaling of headings
971:CUSTOM_ID: h:075eb022-37a6-41a4-a040-cc189f6bfa1f
972:END:
973 1127
974Symbol names: 1128** Option for scaled headings
1129:properties:
1130:alt_title: Scaled headings
1131:description: Toggle scaling of headings
1132:custom_id: h:075eb022-37a6-41a4-a040-cc189f6bfa1f
1133:end:
1134#+vindex: modus-themes-scale-headings
975 1135
976+ =modus-operandi-theme-scale-headings= 1136Symbol: ~modus-themes-scale-headings~
977+ =modus-vivendi-theme-scale-headings=
978 1137
979Possible values: 1138Possible values:
980 1139
9811. =nil= (default) 11401. =nil= (default)
9822. =t= 11412. =t=
983 1142
984Make headings larger in height relative to the main text. This is 1143The default is to use the same size for headings and paragraph text.
985noticeable in modes like Org. The default is to use the same size for 1144
986headings and body copy. 1145With a non-nil value (=t=) make headings larger in height relative to the
1146main text. This is noticeable in modes like Org, Markdown, and Info.
987 1147
988*** Control the scale of headings 1148*** Control the scale of headings
989:PROPERTIES: 1149:properties:
990:ALT_TITLE: Scaled heading sizes 1150:alt_title: Scaled heading sizes
991:DESCRIPTION: Specify rate of increase for scaled headings 1151:description: Specify rate of increase for scaled headings
992:CUSTOM_ID: h:6868baa1-beba-45ed-baa5-5fd68322ccb3 1152:custom_id: h:6868baa1-beba-45ed-baa5-5fd68322ccb3
993:END: 1153:end:
994 1154
995In addition to toggles for enabling scaled headings, users can also 1155In addition to the toggle for enabling scaled headings, users can also
996specify a number of their own. 1156specify a number of their own.
997 1157
998+ If it is a floating point, say, =1.5=, it is interpreted as a multiple 1158+ If it is a floating point, say, =1.5=, it is interpreted as a multiple
999 of the base font size. This is the recommended method. 1159 of the base font size. This is the recommended method, because it
1000 1160 will always adapt to changes in the base font size, such as while
1001+ If it is an integer, it is read as an absolute font height. The 1161 using the ~text-scale-adjust~ command.
1002 number is basically the point size multiplied by ten. So if you want 1162
1003 it to be =18pt= you must pass =180=. Please understand that setting an 1163+ If it is an integer, it is read as an absolute font height that is
1004 absolute value is discouraged, as it will break the layout when you 1164 1/10 of the typographic point size. Thus a value of =18pt= must be
1005 try to change font sizes with the built-in =text-scale-adjust= command 1165 expressed as =180=. Setting an absolute value is discouraged, as it
1006 (see [[#h:defcf4fc-8fa8-4c29-b12e-7119582cc929][Font configurations]]). 1166 will break the layout in cases where the base font size must change,
1167 such as with the ~text-scale-adjust~ command ([[#h:defcf4fc-8fa8-4c29-b12e-7119582cc929][Font configurations]]).
1168 While we discourage using absolute values, we still provide for this
1169 option for users who do not need to perform text-scaling operations or
1170 who are content with whatever discrepancies in height.
1007 1171
1008Below are the variables in their default values, using the floating 1172Below are the variables in their default values, using the floating
1009point paradigm. The numbers are very conservative, but you are free to 1173point paradigm. The numbers are very conservative, but one is free to
1010change them to your liking, such as =1.2=, =1.4=, =1.6=, =1.8=, =2.0=---or use a 1174change them to their liking, such as =1.2=, =1.4=, =1.6=, =1.8=, =2.0=---or use a
1011resource for finding a consistent scale: 1175resource for finding a consistent scale:
1012 1176
1013#+begin_src emacs-lisp 1177#+begin_src emacs-lisp
1014(setq modus-operandi-theme-scale-1 1.05 1178(setq modus-themes-scale-1 1.05
1015 modus-operandi-theme-scale-2 1.1 1179 modus-themes-scale-2 1.1
1016 modus-operandi-theme-scale-3 1.15 1180 modus-themes-scale-3 1.15
1017 modus-operandi-theme-scale-4 1.2 1181 modus-themes-scale-4 1.2
1018 modus-operandi-theme-scale-5 1.3) 1182 modus-themes-scale-5 1.3)
1019
1020(setq modus-vivendi-theme-scale-1 1.05
1021 modus-vivendi-theme-scale-2 1.1
1022 modus-vivendi-theme-scale-3 1.15
1023 modus-vivendi-theme-scale-4 1.2
1024 modus-vivendi-theme-scale-5 1.3)
1025#+end_src 1183#+end_src
1026 1184
1185As for the application of that scale, the variables that range from
1186~modus-themes-scale-1~ up to ~modus-themes-scale-4~ apply to regular
1187headings within the context of the given major mode. The former is the
1188smallest, while the latter is the largest. "Regular headings" are those
1189that have a standard syntax for their scale, such as Org mode's eight
1190levels of asterisks or Markdown's six columns.
1191
1192Whereas ~modus-themes-scale-5~ is applied to special headings that do not
1193conform with the aforementioned syntax, yet which are expected to be
1194larger than the largest value on that implied scale. Put concretely,
1195Org's =#+title= meta datum is not part of the eight levels of headings in
1196an Org file, yet is supposed to signify the primary header. Similarly,
1197the Org Agenda's structure headings are not part of a recognisable scale
1198and so they also get ~modus-themes-scale-5~.
1199
1200Users who wish to maintain scaled headings for the normal syntax while
1201preventing special headings from standing out, can assign a value of =1.0=
1202to ~modus-themes-scale-5~ to make it the same as body text (or whatever
1203value would render it indistinguishable from the desired point of
1204reference).
1205
1027Note that in earlier versions of Org, scaling would only increase the 1206Note that in earlier versions of Org, scaling would only increase the
1028size of the heading, but not of keywords that were added to it, like 1207size of the heading, but not of keywords that were added to it, like
1029"TODO". The issue has been fixed upstream: 1208"TODO". The issue has been fixed upstream:
1030<https://protesilaos.com/codelog/2020-09-24-org-headings-adapt/>. 1209<https://protesilaos.com/codelog/2020-09-24-org-headings-adapt/>.
1031 1210
1032** Option for variable-pitch font in headings 1211** Option for variable-pitch font in UI elements
1033:PROPERTIES: 1212:properties:
1034:ALT_TITLE: Headings' font 1213:alt_title: UI typeface
1035:DESCRIPTION: Toggle proportionately spaced fonts in headings 1214:description: Toggle the use of variable-pitch across the User Interface
1036:CUSTOM_ID: h:97caca76-fa13-456c-aef1-a2aa165ea274 1215:custom_id: h:16cf666c-5e65-424c-a855-7ea8a4a1fcac
1037:END: 1216:end:
1217#+vindex: modus-themes-variable-pitch-ui
1218
1219Symbol: ~modus-themes-variable-pitch-ui~
1220
1221Possible values:
1222
12231. =nil= (default)
12242. =t=
1225
1226This option concerns User Interface elements that are under the direct
1227control of Emacs. In particular: the mode line, header line, tab bar,
1228and tab line.
1229
1230The default is to use the same font as the rest of Emacs, which usually
1231is a monospaced family.
1038 1232
1039Symbol names: 1233With a non-nil value (=t=) apply a proportionately spaced typeface. This
1234is done by assigning the ~variable-pitch~ face to the relevant items.
1040 1235
1041+ =modus-operandi-theme-variable-pitch-headings= 1236[[#h:defcf4fc-8fa8-4c29-b12e-7119582cc929][Font configurations for Org and others]].
1042+ =modus-vivendi-theme-variable-pitch-headings= 1237
1238** Option for variable-pitch font in headings
1239:properties:
1240:alt_title: Headings' typeface
1241:description: Toggle the use of variable-pitch in headings
1242:custom_id: h:97caca76-fa13-456c-aef1-a2aa165ea274
1243:end:
1244#+vindex: modus-themes-variable-pitch-headings
1245
1246Symbol: ~modus-themes-variable-pitch-headings~
1043 1247
1044Possible values: 1248Possible values:
1045 1249
10461. =nil= (default) 12501. =nil= (default)
10472. =t= 12512. =t=
1048 1252
1049Choose to apply a proportionately spaced, else "variable-pitch", 1253The default is to use the main font family, which typically is
1050typeface to headings (such as in Org mode). The default is to use the 1254monospaced.
1051main font family.
1052 1255
1053[[#h:defcf4fc-8fa8-4c29-b12e-7119582cc929][Font configurations for Org (and others)]]. 1256With a non-nil value (=t=) apply a proportionately spaced typeface, else
1257"variable-pitch", to headings (such as in Org mode).
1258
1259[[#h:defcf4fc-8fa8-4c29-b12e-7119582cc929][Font configurations for Org and others]].
1054 1260
1055* Advanced customization (do-it-yourself) 1261* Advanced customization (do-it-yourself)
1056:PROPERTIES: 1262:properties:
1057:INDEX: cp 1263:custom_id: h:f4651d55-8c07-46aa-b52b-bed1e53463bb
1058:CUSTOM_ID: h:f4651d55-8c07-46aa-b52b-bed1e53463bb 1264:end:
1059:END:
1060 1265
1061Unlike the predefined customization options which follow a 1266Unlike the predefined customization options which follow a clear pattern
1062straightforward pattern of allowing the user to quickly specify their 1267of allowing the user to quickly specify their preference, the themes
1063preference, the themes also provide a more flexible, albeit difficult, 1268also provide a more flexible, albeit difficult, mechanism to control
1064mechanism to control things with precision (see [[#h:bf1c82f2-46c7-4eb2-ad00-dd11fdd8b53f][Customization Options]]). 1269things with precision ([[#h:bf1c82f2-46c7-4eb2-ad00-dd11fdd8b53f][Customization Options]]).
1065 1270
1066This section is of interest only to users who are prepared to maintain 1271This section is of interest only to users who are prepared to maintain
1067their own local tweaks and who are willing to deal with any possible 1272their own local tweaks and who are willing to deal with any possible
1068incompatibilities between versioned releases of the themes. As such, 1273incompatibilities between versioned releases of the themes. As such,
1069they are labelled as "do-it-yourself" or "DIY". 1274they are labelled as "do-it-yourself" or "DIY".
1070 1275
1071** Full access to the themes' palette 1276** Per-theme customization settings (DIY)
1072:PROPERTIES: 1277:properties:
1073:ALT_TITLE: Tweak colors (DIY) 1278:custom_id: h:a897b302-8e10-4a26-beab-3caaee1e1193
1074:DESCRIPTION: Declare your own palette overrides 1279:end:
1075:CUSTOM_ID: h:1487c631-f4fe-490d-8d58-d72ffa3bd474 1280
1076:END: 1281If you prefer to maintain different customization options between the
1282two themes, it is best you write your own functions that first set those
1283options and then load the relevant theme. The following code does
1284exactly that by simply differentiating the two themes on the choice of
1285bold constructs in code syntax (enabled for one, disabled for the
1286other).
1287
1288#+begin_src emacs-lisp
1289(defun my-demo-modus-operandi ()
1290 (interactive)
1291 (setq modus-themes-bold-constructs t) ; ENABLE bold
1292 (modus-themes-load-operandi))
1293
1294(defun my-demo-modus-vivendi ()
1295 (interactive)
1296 (setq modus-themes-bold-constructs nil) ; DISABLE bold
1297 (modus-themes-load-vivendi))
1298
1299(defun my-demo-modus-themes-toggle ()
1300 (if (eq (car custom-enabled-themes) 'modus-operandi)
1301 (my-demo-modus-vivendi)
1302 (my-demo-modus-operandi)))
1303#+end_src
1304
1305Then assign ~my-demo-modus-themes-toggle~ to a key instead of the
1306equivalent the themes provide.
1307
1308For a more elaborate design, it is better to inspect the source code of
1309~modus-themes-toggle~ and relevant functions.
1310
1311** Case-by-case face specs using the themes' palette (DIY)
1312:properties:
1313:custom_id: h:1487c631-f4fe-490d-8d58-d72ffa3bd474
1314:end:
1315#+findex: modus-themes-color
1316#+findex: modus-themes-color-alts
1317#+cindex: Extracting individual colors
1318
1319This section is about tweaking individual faces. If you plan to do
1320things at scale, consult the next section: [[#h:51ba3547-b8c8-40d6-ba5a-4586477fd4ae][Set multiple faces]].
1321
1322We already covered in previous sections how to toggle between the themes
1323and how to configure options prior to loading. We also explained that
1324some of the functions made available to users will fire up a hook that
1325can be used to pass tweaks in the post-theme-load phase.
1326
1327Now assume you wish to change a single face, say, the ~cursor~. And you
1328would like to get the standard "blue" color value of the active Modus
1329theme, whether it is Modus Operandi or Modus Vivendi. To do that, you
1330can use the ~modus-themes-color~ function. It accepts a symbol that is
1331associated with a color in ~modus-themes-operandi-colors~ and
1332~modus-themes-vivendi-colors~. Like this:
1333
1334#+begin_src emacs-lisp
1335(modus-themes-color 'blue)
1336#+end_src
1337
1338The function always extracts the color value of the active Modus theme.
1339
1340#+begin_src emacs-lisp
1341(progn
1342 (load-theme 'modus-operandi t)
1343 (modus-themes-color 'blue)) ; "#0031a9" for `modus-operandi'
1344
1345(progn
1346 (load-theme 'modus-vivendi t)
1347 (modus-themes-color 'blue)) ; "#2fafff" for `modus-vivendi'
1348#+end_src
1349
1350Do {{{kbd(C-h v)}}} on the aforementioned variables to check all the available
1351symbols that can be passed to this function.
1352
1353With that granted, let us expand the example to actually change the
1354~cursor~ face's background property. We employ the built-in function of
1355~set-face-attribute~:
1356
1357#+begin_src emacs-lisp
1358(set-face-attribute 'cursor nil :background (modus-themes-color 'blue))
1359#+end_src
1360
1361If you evaluate this form, your cursor will become blue. But if you
1362change themes, such as with ~modus-themes-toggle~, your edits will be
1363lost, because the newly loaded theme will override the =:background=
1364attribute you had assigned to that face.
1077 1365
1078The variables are: 1366For such changes to persist, we need to make them after loading the
1367theme. So we rely on ~modus-themes-after-load-theme-hook~, which gets
1368called from ~modus-themes-load-operandi~, ~modus-themes-load-vivendi~, as
1369well as the command ~modus-themes-toggle~. Here is a sample function that
1370tweaks two faces and then gets added to the hook:
1079 1371
1080+ =modus-operandi-theme-override-colors-alist= 1372#+begin_src emacs-lisp
1081+ =modus-vivendi-theme-override-colors-alist= 1373(defun my-modus-themes-custom-faces ()
1374 (set-face-attribute 'cursor nil :background (modus-themes-color 'blue))
1375 (set-face-attribute 'font-lock-type-face nil :foreground (modus-themes-color 'magenta-alt)))
1376
1377(add-hook 'modus-themes-after-load-theme-hook #'my-modus-themes-custom-faces)
1378#+end_src
1082 1379
1083Users can specify an association list that maps the names of color 1380[[#h:86f6906b-f090-46cc-9816-1fe8aeb38776][A theme-agnostic hook for theme loading]].
1084variables to hexadecimal RGB values (in the form of =#RRGGBB=). This
1085means that it is possible to override the entire palette or subsets
1086thereof (see the source code for the actual names and values).
1087 1381
1088Example: 1382Using this principle, it is possible to override the styles of faces
1383without having to find color values for each case.
1384
1385Another application is to control the precise weight for bold
1386constructs. This is particularly useful if your typeface has several
1387variants such as "heavy", "extrabold", "semibold". All you have to do
1388is edit the ~bold~ face. For example:
1089 1389
1090#+begin_src emacs-lisp 1390#+begin_src emacs-lisp
1091;; Redefine the values of those three variables for the given theme 1391(set-face-attribute 'bold nil :weight 'semibold)
1092(setq modus-vivendi-theme-override-colors-alist
1093 '(("magenta" . "#ffaabb")
1094 ("magenta-alt" . "#ee88ff")
1095 ("magenta-alt-other" . "#bbaaff")))
1096#+end_src 1392#+end_src
1097 1393
1098If you want to be creative, you can define a minor mode that refashions 1394Remember to use the custom function and hook combo we demonstrated
1099the themes on demand. The following is a minor mode that gets activated 1395above. Because the themes do not hard-wire a specific weight, this
1100on demand. We combine it with the function to switch between Modus 1396simple form is enough to change the weight of all bold constructs
1101Operandi and Modus Vivendi (see [[#h:2a0895a6-3281-4e55-8aa1-8a737555821e][Toggle between the themes on demand]] for 1397throughout the interface.
1102a basic command, and/or [[*Configure options prior to loading][Configure options prior to loading]] for a more 1398
1103comprehensive setup). 1399Finally, there are cases where you want to tweak colors though wish to
1400apply different ones to each theme, say, a blue hue for Modus Operandi
1401and a shade of red for Modus Vivendi. To this end, we provide
1402~modus-themes-color-alts~ as a convenience function to save you from the
1403trouble of writing separate wrappers for each theme. It still returns a
1404single value by querying either of ~modus-themes-operandi-colors~ and
1405~modus-themes-vivendi-colors~, only here you pass the two keys you want,
1406first for ~modus-operandi~ then ~modus-vivendi~.
1407
1408Take the previous example with the ~cursor~ face:
1104 1409
1105#+begin_src emacs-lisp 1410#+begin_src emacs-lisp
1106(define-minor-mode modus-themes-alt-mode 1411;; Blue for `modus-operandi' and red for `modus-vivendi'
1107 "Override Modus themes' palette variables with custom values. 1412(set-face-attribute 'cursor nil :background (modus-themes-color-alts 'blue 'red))
1413#+end_src
1108 1414
1109This is intended as a proof-of-concept. It is, nonetheless, a 1415** Face specs at scale using the themes' palette (DIY)
1110perfectly accessible alternative, conforming with the design 1416:properties:
1111principles of the Modus themes. It still is not as good as the 1417:custom_id: h:51ba3547-b8c8-40d6-ba5a-4586477fd4ae
1112default colors." 1418:end:
1419#+findex: modus-themes-with-colors
1420#+cindex: Extracting colors en masse
1421
1422The examples here are for large scale operations. For simple, one-off
1423tweaks, you may prefer the approach documented in the previous section
1424([[#h:1487c631-f4fe-490d-8d58-d72ffa3bd474][Case-by-case face specs using the themes' palette]]).
1425
1426The ~modus-themes-with-colors~ macro lets you retrieve multiple color
1427values by employing the backquote/backtick and comma notation. The
1428values are stored in the alists ~modus-themes-operandi-colors~ and
1429~modus-themes-vivendi-colors~, while the macro always queries that of the
1430active Modus theme.
1431
1432Here is an abstract example that just returns a list of color values
1433while ~modus-operandi~ is enabled:
1434
1435#+begin_src emacs-lisp
1436(modus-themes-with-colors
1437 (list fg-main
1438 blue-faint
1439 magenta
1440 magenta-alt-other
1441 cyan-alt-other
1442 fg-special-cold
1443 blue-alt
1444 magenta-faint
1445 cyan
1446 fg-main
1447 green-faint
1448 red-alt-faint
1449 blue-alt-faint
1450 fg-special-warm
1451 cyan-alt
1452 blue))
1453;; =>
1454;; ("#000000" "#002f88" "#721045" "#5317ac"
1455;; "#005a5f" "#093060" "#2544bb" "#752f50"
1456;; "#00538b" "#000000" "#104410" "#702f00"
1457;; "#003f78" "#5d3026" "#30517f" "#0031a9")
1458#+end_src
1459
1460Getting a list of colors may have its applications, though what you are
1461most likely interested in is how to use those variables to configure
1462several faces at once. To do so we can rely on the built-in
1463~custom-set-faces~ function, which sets face specifications for the
1464special =user= theme. That "theme" gets applied on top of regular themes
1465like ~modus-operandi~ and ~modus-vivendi~.
1466
1467This is how it works:
1468
1469#+begin_src emacs-lisp
1470(modus-themes-with-colors
1471 (custom-set-faces
1472 `(cursor ((,class :background ,blue)))
1473 `(mode-line ((,class :background ,yellow-nuanced-bg
1474 :foreground ,yellow-nuanced-fg)))
1475 `(mode-line-inactive ((,class :background ,blue-nuanced-bg
1476 :foreground ,blue-nuanced-fg)))))
1477#+end_src
1478
1479The above snippet will immediately refashion the faces it names once it
1480is evaluated. However, if you switch between the Modus themes, say,
1481from ~modus-operandi~ to ~modus-vivendi~, the colors will not get updated to
1482match those of the new theme. To make things work across the themes, we
1483need to employ the same technique we discussed in the previous section,
1484namely, to pass our changes at the post-theme-load phase via a hook.
1485
1486The themes provide the ~modus-themes-after-load-theme-hook~, which gets
1487called from ~modus-themes-load-operandi~, ~modus-themes-load-vivendi~, as
1488well as the command ~modus-themes-toggle~. With this knowledge, you can
1489wrap the macro in a function and then assign that function to the hook.
1490Thus:
1491
1492#+begin_src emacs-lisp
1493(defun my-modus-themes-custom-faces ()
1494 (modus-themes-with-colors
1495 (custom-set-faces
1496 `(cursor ((,class :background ,blue)))
1497 `(mode-line ((,class :background ,yellow-nuanced-bg
1498 :foreground ,yellow-nuanced-fg)))
1499 `(mode-line-inactive ((,class :background ,blue-nuanced-bg
1500 :foreground ,blue-nuanced-fg))))))
1501
1502(add-hook 'modus-themes-after-load-theme-hook #'my-modus-themes-custom-faces)
1503#+end_src
1504
1505[[#h:86f6906b-f090-46cc-9816-1fe8aeb38776][A theme-agnostic hook for theme loading]].
1506
1507To discover the faces defined by all loaded libraries, you may do
1508{{{kbd(M-x list-faces-display)}}}. Be warned that when you =:inherit= a face
1509you are introducing an implicit dependency, so try to avoid doing so for
1510libraries other than the built-in {{{file(faces.el)}}} (or at least understand
1511that things may break if you inherit from a yet-to-be-loaded face).
1512
1513Also bear in mind that these examples are meant to work with the Modus
1514themes. If you are cycling between multiple themes you may encounter
1515unforeseen issues, such as the colors of the Modus themes being applied
1516to a non-Modus item.
1517
1518Finally, note that you can still use other functions where those make
1519sense. For example, the ~modus-themes-color-alts~ that was discussed in
1520the previous section. Adapt the above example like this:
1521
1522#+begin_src emacs-lisp
1523...
1524(modus-themes-with-colors
1525 (custom-set-faces
1526 `(cursor ((,class :background ,(modus-themes-color-alts 'blue 'green))))
1527 ...))
1528#+end_src
1529
1530** Override colors (DIY)
1531:properties:
1532:custom_id: h:307d95dd-8dbd-4ece-a543-10ae86f155a6
1533:end:
1534#+vindex: modus-themes-operandi-color-overrides
1535#+vindex: modus-themes-vivendi-color-overrides
1536#+cindex: Change a theme's colors
1537
1538The themes provide a mechanism for overriding their color values. This
1539is controlled by the variables ~modus-themes-operandi-color-overrides~ and
1540~modus-themes-vivendi-color-overrides~, which are alists that should
1541mirror a subset of the associations in ~modus-themes-operandi-colors~ and
1542~modus-themes-vivendi-colors~ respectively. As with all customisations,
1543overriding must be done before loading the affected theme.
1544
1545Let us approach the present topic one step at a time. Here is a
1546simplified excerpt of the default palette for Modus Operandi with some
1547basic background values that apply to buffers and the mode line
1548(remember to inspect the actual value to find out all the associations
1549that can be overridden):
1550
1551#+begin_src emacs-lisp
1552(defconst modus-themes-colors-operandi
1553 '((bg-main . "#ffffff")
1554 (bg-dim . "#f8f8f8")
1555 (bg-alt . "#f0f0f0")
1556 (bg-active . "#d7d7d7")
1557 (bg-inactive . "#efefef")))
1558#+end_src
1559
1560As one can tell, we bind a key to a hexadecimal RGB color value. Now
1561say we wish to override those specific values and have our changes
1562propagate to all faces that use those keys. We could write something
1563like this, which adds a subtle ochre tint:
1564
1565#+begin_src emacs-lisp
1566(setq modus-themes-operandi-color-overrides
1567 '((bg-main . "#fefcf4")
1568 (bg-dim . "#faf6ef")
1569 (bg-alt . "#f7efe5")
1570 (bg-active . "#e8dfd1")
1571 (bg-inactive . "#f6ece5")))
1572#+end_src
1573
1574Once this is evaluated, any subsequent loading of ~modus-operandi~ will
1575use those values instead of the defaults. No further intervention is
1576required.
1577
1578To reset the changes, we apply this and reload the theme:
1579
1580#+begin_src emacs-lisp
1581(setq modus-themes-operandi-color-overrides nil)
1582#+end_src
1583
1584Users who wish to leverage such a mechanism can opt to implement it
1585on-demand by means of a global minor mode. The following snippet covers
1586both themes and expands to some more assosiations in the palette:
1587
1588#+begin_src emacs-lisp
1589(define-minor-mode my-modus-themes-tinted
1590 "Tweak some Modus themes colors."
1113 :init-value nil 1591 :init-value nil
1114 :global t 1592 :global t
1115 (if modus-themes-alt-mode 1593 (if my-modus-themes-tinted
1116 (setq modus-operandi-theme-override-colors-alist 1594 (setq modus-themes-operandi-color-overrides
1117 '(("bg-main" . "#fefcf4") 1595 '((bg-main . "#fefcf4")
1118 ("bg-dim" . "#faf6ef") 1596 (bg-dim . "#faf6ef")
1119 ("bg-alt" . "#f7efe5") 1597 (bg-alt . "#f7efe5")
1120 ("bg-hl-line" . "#f4f0e3") 1598 (bg-hl-line . "#f4f0e3")
1121 ("bg-active" . "#e8dfd1") 1599 (bg-active . "#e8dfd1")
1122 ("bg-inactive" . "#f6ece5") 1600 (bg-inactive . "#f6ece5")
1123 ("bg-region" . "#c6bab1") 1601 (bg-region . "#c6bab1")
1124 ("bg-header" . "#ede3e0") 1602 (bg-header . "#ede3e0")
1125 ("bg-tab-bar" . "#dcd3d3") 1603 (bg-tab-bar . "#dcd3d3")
1126 ("bg-tab-active" . "#fdf6eb") 1604 (bg-tab-active . "#fdf6eb")
1127 ("bg-tab-inactive" . "#c8bab8") 1605 (bg-tab-inactive . "#c8bab8")
1128 ("fg-unfocused" . "#55556f")) 1606 (fg-unfocused . "#55556f"))
1129 modus-vivendi-theme-override-colors-alist 1607 modus-themes-vivendi-color-overrides
1130 '(("bg-main" . "#100b17") 1608 '((bg-main . "#100b17")
1131 ("bg-dim" . "#161129") 1609 (bg-dim . "#161129")
1132 ("bg-alt" . "#181732") 1610 (bg-alt . "#181732")
1133 ("bg-hl-line" . "#191628") 1611 (bg-hl-line . "#191628")
1134 ("bg-active" . "#282e46") 1612 (bg-active . "#282e46")
1135 ("bg-inactive" . "#1a1e39") 1613 (bg-inactive . "#1a1e39")
1136 ("bg-region" . "#393a53") 1614 (bg-region . "#393a53")
1137 ("bg-header" . "#202037") 1615 (bg-header . "#202037")
1138 ("bg-tab-bar" . "#262b41") 1616 (bg-tab-bar . "#262b41")
1139 ("bg-tab-active" . "#120f18") 1617 (bg-tab-active . "#120f18")
1140 ("bg-tab-inactive" . "#3a3a5a") 1618 (bg-tab-inactive . "#3a3a5a")
1141 ("fg-unfocused" . "#9a9aab"))) 1619 (fg-unfocused . "#9a9aab")))
1142 (setq modus-operandi-theme-override-colors-alist nil 1620 (setq modus-themes-operandi-color-overrides nil
1143 modus-vivendi-theme-override-colors-alist nil))) 1621 modus-themes-vivendi-color-overrides nil)))
1144
1145(defun modus-themes-toggle (&optional arg)
1146 "Toggle between `modus-operandi' and `modus-vivendi' themes.
1147
1148With optional \\[universal-argument] prefix, enable
1149`modus-themes-alt-mode' for the loaded theme."
1150 (interactive "P")
1151 (if arg
1152 (modus-themes-alt-mode 1)
1153 (modus-themes-alt-mode -1))
1154 (if (eq (car custom-enabled-themes) 'modus-operandi)
1155 (progn
1156 (disable-theme 'modus-operandi)
1157 (load-theme 'modus-vivendi t))
1158 (disable-theme 'modus-vivendi)
1159 (load-theme 'modus-operandi t)))
1160#+end_src 1622#+end_src
1161 1623
1162** Font configurations for Org (and others) 1624With this in place, one can invoke {{{kbd(M-x my-modus-themes-tinted)}}} and
1163:PROPERTIES: 1625then load the Modus theme of their choice. The new palette subset will
1164:ALT_TITLE: Font configs (DIY) 1626come into effect: subtle ochre tints for Modus Operandi and night sky
1165:DESCRIPTION: Optimise for mixed typeface buffers 1627shades for Modus Vivendi. Switching between the two themes, such as
1166:CUSTOM_ID: h:defcf4fc-8fa8-4c29-b12e-7119582cc929 1628with {{{kbd(M-x modus-themes-toggle)}}} will also use the overrides.
1167:END: 1629
1630Given that this is a user-level customisation, one is free to implement
1631whatever color values they desire, even if the possible combinations
1632fall below the minimum 7:1 contrast ratio that governs the design of the
1633themes (the WCAG AAA legibility standard). Preferences aside, it is
1634advised to inspect the source code of ~modus-themes-operandi-colors~ and
1635~modus-themes-vivendi-colors~ to read the inline commentary: it explains
1636what the intended use of each palette subset is.
1168 1637
1169The themes are designed to cope well with mixed font settings ([[#h:115e6c23-ee35-4a16-8cef-e2fcbb08e28b][Option 1638Furthermore, users may benefit from the ~modus-themes-contrast~ function
1170for no font mixing]]). Currently this applies to =org-mode= and 1639that we provide: [[#h:02e25930-e71a-493d-828a-8907fc80f874][test color combinations]]. It measures the contrast
1171=markdown-mode=. 1640ratio between two color values, so it can help in overriding the palette
1641(or a subset thereof) without making the end result inaccessible.
1642
1643** Font configurations for Org and others (DIY)
1644:properties:
1645:custom_id: h:defcf4fc-8fa8-4c29-b12e-7119582cc929
1646:end:
1647#+cindex: Font configurations
1648
1649The themes are designed to cope well with mixed font configurations.
1650
1651[[#h:115e6c23-ee35-4a16-8cef-e2fcbb08e28b][Option for no font mixing]].
1652
1653This mostly concerns ~org-mode~ and ~markdown-mode~, though expect to find
1654it elsewhere like in ~Info-mode~.
1172 1655
1173In practice it means that the user can safely opt for a more 1656In practice it means that the user can safely opt for a more
1174prose-friendly proportionately spaced typeface as their default, while 1657prose-friendly proportionately spaced typeface as their default, while
1175letting spacing-sensitive elements like tables and inline code always 1658letting spacing-sensitive elements like tables and inline code always
1176use a monospaced font, by inheriting from the =fixed-pitch= face. 1659use a monospaced font, by inheriting from the ~fixed-pitch~ face.
1177 1660
1178Users can try the built-in =M-x variable-pitch-mode= to see the effect in 1661Users can try the built-in {{{kbd(M-x variable-pitch-mode)}}} to see the
1179action. 1662effect in action.
1180 1663
1181To make everything use your desired font families, you need to configure 1664To make everything use your desired font families, you need to configure
1182the =variable-pitch= (proportional spacing) and =fixed-pitch= (monospaced) 1665the ~variable-pitch~ (proportional spacing) and ~fixed-pitch~ (monospaced)
1183faces respectively. It may also be convenient to set your main typeface 1666faces respectively. It may also be convenient to set your main typeface
1184by configuring the =default= face the same way. 1667by configuring the ~default~ face the same way.
1185 1668
1186Put something like this in your initialization file (make sure to read 1669Put something like this in your initialization file (also consider
1187the documentation of =set-face-attribute=, with =M-x describe-function=): 1670reading the doc string of ~set-face-attribute~):
1188 1671
1189#+begin_src emacs-lisp 1672#+begin_src emacs-lisp
1190;; Main typeface 1673;; Main typeface
@@ -1199,50 +1682,35 @@ the documentation of =set-face-attribute=, with =M-x describe-function=):
1199 1682
1200Note the differences in the =:height= property. The =default= face must 1683Note the differences in the =:height= property. The =default= face must
1201specify an absolute value, which is the point size × 10. So if you want 1684specify an absolute value, which is the point size × 10. So if you want
1202to use a font at point size =11=, you set the height at =110=.[fn:: =:height= 1685to use a font at point size =11=, you set the height to =110=.[fn:: =:height=
1203values do not need to be rounded to multiples of ten: the likes of =115= 1686values do not need to be rounded to multiples of ten: the likes of =115=
1204are perfectly valid—some typefaces will change to account for those 1687are perfectly valid—some typefaces will change to account for those
1205finer increments.] Whereas every other face must have a value that is 1688finer increments.] Whereas every other face must have a value that is
1206relative to the default, represented as a floating point (if you use an 1689relative to the default, represented as a floating point (if you use an
1207integer, say, =15= then that means an absolute height). This is of 1690integer, then that means an absolute height). This is of paramount
1208paramount importance: it ensures that all fonts can scale gracefully 1691importance: it ensures that all fonts can scale gracefully when using
1209when using something like the =text-scale-adjust= command which only 1692something like the ~text-scale-adjust~ command which only operates on the
1210operates on the base font size (i.e. the =default= face's absolute 1693base font size (i.e. the ~default~ face's absolute height).
1211height). 1694
1212 1695** Custom Org user faces (DIY)
1213An alternative syntax for the =default= face, is to pass all typeface 1696:properties:
1214parameters directly to a =font= property.[fn:: Has the benefit of 1697:custom_id: h:89f0678d-c5c3-4a57-a526-668b2bb2d7ad
1215accepting =fontconfig= parameters (GNU/Linux), such as ="DejaVu Sans 1698:end:
1216Mono-11:hintstyle=hintslight:autohint=false"=. 1699#+cindex: Org extra faces
1217https://www.freedesktop.org/software/fontconfig/fontconfig-user.html] 1700
1218Note that here we use a standard point size: 1701Users of ~org-mode~ have the option to configure various keywords and
1219
1220#+begin_src emacs-lisp
1221(set-face-attribute 'default nil :font "DejaVu Sans Mono-11")
1222#+end_src
1223
1224Again, remember to only ever specify an absolute height for the =default=.
1225
1226** Org user faces (DIY)
1227:PROPERTIES:
1228:DESCRIPTION: Extend styles for org-mode keywords and priorities
1229:CUSTOM_ID: h:89f0678d-c5c3-4a57-a526-668b2bb2d7ad
1230:END:
1231
1232Users of =org-mode= have the option to configure various keywords and
1233priority cookies to better match their workflow. User options are 1702priority cookies to better match their workflow. User options are
1234=org-todo-keyword-faces= and =org-priority-faces=. 1703~org-todo-keyword-faces~ and ~org-priority-faces~.
1235 1704
1236As those are meant to be custom faces, it would be futile to have the 1705As those are meant to be custom faces, it is futile to have the themes
1237themes try to guess what each user would want to use, which keywords to 1706guess what each user wants to use, which keywords to target, and so on.
1238target, and so on. Instead, we can provide guidelines on how to 1707Instead, we can provide guidelines on how to customize things to one's
1239customize things to one's liking with the intent of retaining the 1708liking with the intent of retaining the overall aesthetic of the themes.
1240overall aesthetics of the theme.
1241 1709
1242Please bear in mind that the end result of those is not controlled by 1710Please bear in mind that the end result of those is not controlled by
1243the active theme but by how Org maps faces to its constructs. Editing 1711the active Modus theme but by how Org maps faces to its constructs.
1244those while =org-mode= is active requires =M-x org-mode-restart= for changes 1712Editing those while ~org-mode~ is active requires re-initialization of the
1245to take effect. 1713mode with {{{kbd(M-x org-mode-restart)}}} for changes to take effect.
1246 1714
1247Let us assume you wish to visually differentiate your keywords. You 1715Let us assume you wish to visually differentiate your keywords. You
1248have something like this: 1716have something like this:
@@ -1257,7 +1725,7 @@ have something like this:
1257 1725
1258You could then use a variant of the following to inherit from a face 1726You could then use a variant of the following to inherit from a face
1259that uses the styles you want and also to preserve the properties 1727that uses the styles you want and also to preserve the properties
1260applied by the =org-todo= face: 1728applied by the ~org-todo~ face:
1261 1729
1262#+begin_src emacs-lisp 1730#+begin_src emacs-lisp
1263(setq org-todo-keyword-faces 1731(setq org-todo-keyword-faces
@@ -1267,10 +1735,10 @@ applied by the =org-todo= face:
1267#+end_src 1735#+end_src
1268 1736
1269This will refashion the keywords you specify, while letting the other 1737This will refashion the keywords you specify, while letting the other
1270items in =org-todo-keywords= use their original styles (which are defined 1738items in ~org-todo-keywords~ use their original styles (which are defined
1271in the =org-todo= and =org-done= faces). 1739in the ~org-todo~ and ~org-done~ faces).
1272 1740
1273If you want back the defaults, try specifying just the =org-todo= face: 1741If you want back the defaults, try specifying just the ~org-todo~ face:
1274 1742
1275#+begin_src emacs-lisp 1743#+begin_src emacs-lisp
1276(setq org-todo-keyword-faces 1744(setq org-todo-keyword-faces
@@ -1282,7 +1750,7 @@ If you want back the defaults, try specifying just the =org-todo= face:
1282When you inherit from multiple faces, you need to quote the list as 1750When you inherit from multiple faces, you need to quote the list as
1283shown further above. The order is important: the last item is applied 1751shown further above. The order is important: the last item is applied
1284over the previous ones. If you do not want to blend multiple faces, you 1752over the previous ones. If you do not want to blend multiple faces, you
1285do not need a quoted list. A pattern of =keyword . face= would suffice. 1753do not need a quoted list. A pattern of =keyword . face= will suffice.
1286 1754
1287Both approaches can be used simultaneously, as illustrated in this 1755Both approaches can be used simultaneously, as illustrated in this
1288configuration of the priority cookies: 1756configuration of the priority cookies:
@@ -1295,29 +1763,182 @@ configuration of the priority cookies:
1295#+end_src 1763#+end_src
1296 1764
1297To find all the faces that are loaded in your current Emacs session, use 1765To find all the faces that are loaded in your current Emacs session, use
1298=M-x list-faces-display=. Also try =M-x describe-variable= and then specify 1766{{{kbd(M-x list-faces-display)}}}. Try {{{kbd(M-x describe-variable)}}} as well and
1299the name of each of those Org variables demonstrated above. Their 1767then specify the name of each of those Org variables demonstrated above.
1300documentation strings will offer you further guidance. 1768Their documentation strings will offer you further guidance.
1769
1770Recall that the themes let you retrieve a color from their palette. Do
1771it if you plan to control face attributes.
1772
1773[[#h:1487c631-f4fe-490d-8d58-d72ffa3bd474][Custom face specs using the themes' palette]].
1774
1775[[#h:02e25930-e71a-493d-828a-8907fc80f874][Check color combinations]].
1776
1777** Measure color contrast (DIY)
1778:properties:
1779:custom_id: h:02e25930-e71a-493d-828a-8907fc80f874
1780:end:
1781#+findex: modus-themes-contrast
1782#+findex: modus-themes-wcag-formula
1783#+cindex: Color contrast
1784
1785The themes provide the functions ~modus-themes-wcag-formula~ and
1786~modus-themes-contrast~. The former is a direct implementation of the
1787WCAG formula: <https://www.w3.org/TR/WCAG20-TECHS/G18.html>. It
1788calculates the relative luminance of a color value that is expressed in
1789hexadecimal RGB notation. While the latter function is just a
1790convenient wrapper for comparing the relative luminance between two
1791colors.
1792
1793In practice, one needs to work only with ~modus-themes-contrast~. It
1794accepts two color values and returns their contrast ratio. Values range
1795from 1 to 21 (lowest to highest). The themes are designed to always be
1796equal or higher than 7 for each combination of background and foreground
1797that they use (this is the WCAG AAA standard---the most demanding of its
1798kind).
1799
1800A couple of examples (rounded numbers):
1301 1801
1302Furthermore, consider reading the "Notes for aspiring Emacs theme 1802#+begin_src emacs-lisp
1303developers", published on 2020-08-28 by me (Protesilaos Stavrou): 1803;; Pure white with pure green
1304https://protesilaos.com/codelog/2020-08-28-notes-emacs-theme-devs/. 1804(modus-themes-contrast "#ffffff" "#00ff00")
1805;; => 1.37
1806;; That is an outright inaccessible combo
1807
1808;; Pure black with pure green
1809(modus-themes-contrast "#000000" "#00ff00")
1810;; => 15.3
1811;; That is is a highly accessible combo
1812#+end_src
1813
1814It does not matter which color value comes first. The ratio is always
1815the same.
1816
1817If one does not wish to read all the decimal points, it is possible to
1818try something like this:
1819
1820#+begin_src emacs-lisp
1821(format "%0.2f" (modus-themes-contrast "#000000" "#00ff00"))
1822#+end_src
1823
1824While it is fine to perform such calculations on a case-by-case basis,
1825it is preferable to implement formulas and tables for more demanding
1826tasks. Such instruments are provided by ~org-mode~ or ~orgtbl-mode~, both
1827of which are built into Emacs. Below is such a table that derives the
1828contrast ratio of all colors in the first column (pure red, green, blue)
1829relative to the color specified in the first row of the second column
1830(pure white) and rounds the results:
1831
1832#+begin_example
1833| | #ffffff |
1834|---------+---------|
1835| #ff0000 | 4.00 |
1836| #00ff00 | 1.37 |
1837| #0000ff | 8.59 |
1838#+tblfm: $2='(modus-themes-contrast $1 @1$2);%0.2f
1839#+end_example
1840
1841To measure color contrast one needs to start from a known value. This
1842typically is the background. The Modus themes define an expanded
1843palette in large part because certain colors are only meant to be used
1844in combination with some others. Consult the source code for the
1845minutia and relevant commentary.
1846
1847Such knowledge may prove valuable while attempting to override some of
1848the themes' colors: [[#h:307d95dd-8dbd-4ece-a543-10ae86f155a6][Override colors]].
1849
1850** Load theme depending on time of day
1851:properties:
1852:custom_id: h:1d1ef4b4-8600-4a09-993c-6de3af0ddd26
1853:end:
1854
1855While we do provide ~modus-themes-toggle~ to manually switch between the
1856themes, users may also set up their system to perform such a task
1857automatically at sunrise and sunset.
1858
1859This can be accomplished by specifying the coordinates of one's location
1860using the built-in {{{file(solar.el)}}} and then configuring the =circadian=
1861package:
1862
1863#+begin_src emacs-lisp
1864(use-package solar ; built-in
1865 :config
1866 (setq calendar-latitude 35.17
1867 calendar-longitude 33.36))
1868
1869(use-package circadian ; you need to install this
1870 :ensure
1871 :after solar
1872 (setq circadian-themes '((:sunrise . modus-operandi)
1873 (:sunset . modus-vivendi)))
1874 (circadian-setup))
1875#+end_src
1876
1877** A theme-agnostic hook for theme loading (DIY)
1878:properties:
1879:custom_id: h:86f6906b-f090-46cc-9816-1fe8aeb38776
1880:end:
1881
1882The themes are designed with the intent to be useful to Emacs users of
1883varying skill levels, from beginners to experts. This means that we try
1884to make things easier by not expecting anyone reading this document to
1885be proficient in Emacs Lisp or programming in general.
1886
1887Such a case is with the use of the ~modus-themes-after-load-theme-hook~,
1888which runs after ~modus-themes-toggle~, ~modus-themes-load-operandi~, or
1889~modus-themes-load-vivendi~ is evaluated. We recommend using that hook
1890for advanced customizations, because (1) we know for sure that it is
1891available once the themes are loaded, and (2) anyone consulting this
1892manual, especially the sections on enabling and loading the themes, will
1893be in a good position to benefit from that hook.
1894
1895Advanced users who have a need to switch between the Modus themes and
1896other items will find that such a hook does not meet their requirements:
1897it only works with the Modus themes and only with the aforementioned
1898functions.
1899
1900A theme-agnostic setup can be configured thus:
1901
1902#+begin_src emacs-lisp
1903(defvar after-enable-theme-hook nil
1904 "Normal hook run after enabling a theme.")
1905
1906(defun run-after-enable-theme-hook (&rest _args)
1907 "Run `after-enable-theme-hook'."
1908 (run-hooks 'after-enable-theme-hook))
1909
1910(advice-add 'enable-theme :after #'run-after-enable-theme-hook)
1911#+end_src
1912
1913This creates the ~after-enable-theme-hook~ and makes it run after each
1914call to ~enable-theme~, which means that it will work for all themes and
1915also has the benefit that it does not depend on functions such as
1916~modus-themes-toggle~ and the others mentioned above. ~enable-theme~ is
1917called internally by ~load-theme~, so the hook works everywhere.
1918
1919Now this specific piece of Elisp may be simple for experienced users,
1920but it is not easy to read for newcomers, including the author of the
1921Modus themes for the first several months of their time as an Emacs
1922user. Hence our hesitation to recommend it as part of the standard
1923setup of the Modus themes (it is generally a good idea to understand
1924what the implications are of advising a function).
1305 1925
1306* Face coverage 1926* Face coverage
1307:PROPERTIES: 1927:properties:
1308:CUSTOM_ID: h:a9c8f29d-7f72-4b54-b74b-ddefe15d6a19 1928:custom_id: h:a9c8f29d-7f72-4b54-b74b-ddefe15d6a19
1309:END: 1929:end:
1310 1930
1311Modus Operandi and Modus Vivendi try to provide as close to full face 1931The Modus themes try to provide as close to full face coverage as
1312coverage as possible. This is necessary to ensure a consistently 1932possible. This is necessary to ensure a consistently accessible reading
1313accessible reading experience across all possible interfaces. 1933experience across all available interfaces.
1314 1934
1315** Full support for packages or face groups 1935** Full support for packages or face groups
1316:PROPERTIES: 1936:properties:
1317:ALT_TITLE: Supported packages 1937:alt_title: Supported packages
1318:DESCRIPTION: Full list of covered face groups 1938:description: Full list of covered face groups
1319:CUSTOM_ID: h:60ed4275-60d6-49f8-9287-9a64e54bea0e 1939:custom_id: h:60ed4275-60d6-49f8-9287-9a64e54bea0e
1320:END: 1940:end:
1941#+cindex: Explicitly supported packages
1321 1942
1322This list will always be updated to reflect the current state of the 1943This list will always be updated to reflect the current state of the
1323project. The idea is to offer an overview of the known status of all 1944project. The idea is to offer an overview of the known status of all
@@ -1337,16 +1958,18 @@ have lots of extensions, so the "full support" may not be 100% true…
1337+ auto-dim-other-buffers 1958+ auto-dim-other-buffers
1338+ avy 1959+ avy
1339+ awesome-tray 1960+ awesome-tray
1961+ bbdb
1340+ binder 1962+ binder
1341+ bm 1963+ bm
1342+ bongo 1964+ bongo
1343+ boon 1965+ boon
1344+ breakpoint (provided by the built-in =gdb-mi.el= library) 1966+ breakpoint (provided by the built-in {{{file(gdb-mi.el)}}} library)
1345+ buffer-expose 1967+ buffer-expose
1346+ calendar and diary 1968+ calendar and diary
1347+ calfw 1969+ calfw
1348+ centaur-tabs 1970+ centaur-tabs
1349+ change-log and log-view (such as =vc-print-log= and =vc-print-root-log=) 1971+ cfrs
1972+ change-log and log-view (such as ~vc-print-log~, ~vc-print-root-log~)
1350+ cider 1973+ cider
1351+ circe 1974+ circe
1352+ color-rg 1975+ color-rg
@@ -1355,6 +1978,7 @@ have lots of extensions, so the "full support" may not be 100% true…
1355+ company-posframe 1978+ company-posframe
1356+ compilation-mode 1979+ compilation-mode
1357+ completions 1980+ completions
1981+ consult
1358+ counsel* 1982+ counsel*
1359+ counsel-css 1983+ counsel-css
1360+ counsel-notmuch 1984+ counsel-notmuch
@@ -1363,7 +1987,7 @@ have lots of extensions, so the "full support" may not be 100% true…
1363+ cperl-mode 1987+ cperl-mode
1364+ csv-mode 1988+ csv-mode
1365+ ctrlf 1989+ ctrlf
1366+ custom (=M-x customize=) 1990+ custom (what you get with {{{kbd(M-x customize)}}})
1367+ dap-mode 1991+ dap-mode
1368+ dashboard (emacs-dashboard) 1992+ dashboard (emacs-dashboard)
1369+ deadgrep 1993+ deadgrep
@@ -1381,8 +2005,11 @@ have lots of extensions, so the "full support" may not be 100% true…
1381+ dired-git-info 2005+ dired-git-info
1382+ dired-narrow 2006+ dired-narrow
1383+ dired-subtree 2007+ dired-subtree
2008+ diredc
1384+ diredfl 2009+ diredfl
2010+ diredp (dired+)
1385+ disk-usage 2011+ disk-usage
2012+ display-fill-column-indicator-mode
1386+ doom-modeline 2013+ doom-modeline
1387+ dynamic-ruler 2014+ dynamic-ruler
1388+ easy-jekyll 2015+ easy-jekyll
@@ -1408,8 +2035,10 @@ have lots of extensions, so the "full support" may not be 100% true…
1408+ eshell-syntax-highlighting 2035+ eshell-syntax-highlighting
1409+ evil* (evil-mode) 2036+ evil* (evil-mode)
1410+ evil-goggles 2037+ evil-goggles
2038+ evil-snipe
1411+ evil-visual-mark-mode 2039+ evil-visual-mark-mode
1412+ eww 2040+ eww
2041+ exwm
1413+ eyebrowse 2042+ eyebrowse
1414+ fancy-dabbrev 2043+ fancy-dabbrev
1415+ flycheck 2044+ flycheck
@@ -1443,7 +2072,7 @@ have lots of extensions, so the "full support" may not be 100% true…
1443+ helpful 2072+ helpful
1444+ highlight-blocks 2073+ highlight-blocks
1445+ highlight-defined 2074+ highlight-defined
1446+ highlight-escape-sequences (=hes-mode=) 2075+ highlight-escape-sequences (~hes-mode~)
1447+ highlight-indentation 2076+ highlight-indentation
1448+ highlight-numbers 2077+ highlight-numbers
1449+ highlight-symbol 2078+ highlight-symbol
@@ -1468,6 +2097,7 @@ have lots of extensions, so the "full support" may not be 100% true…
1468+ interaction-log 2097+ interaction-log
1469+ ioccur 2098+ ioccur
1470+ isearch, occur, etc. 2099+ isearch, occur, etc.
2100+ isl (isearch-light)
1471+ ivy* 2101+ ivy*
1472+ ivy-posframe 2102+ ivy-posframe
1473+ jira (org-jira) 2103+ jira (org-jira)
@@ -1477,19 +2107,22 @@ have lots of extensions, so the "full support" may not be 100% true…
1477+ jupyter 2107+ jupyter
1478+ kaocha-runner 2108+ kaocha-runner
1479+ keycast 2109+ keycast
1480+ line numbers (=display-line-numbers-mode= and global variant) 2110+ line numbers (~display-line-numbers-mode~ and global variant)
1481+ lsp-mode 2111+ lsp-mode
1482+ lsp-ui 2112+ lsp-ui
2113+ macrostep
1483+ magit 2114+ magit
1484+ magit-imerge 2115+ magit-imerge
1485+ make-mode 2116+ make-mode
1486+ man 2117+ man
2118+ marginalia
1487+ markdown-mode 2119+ markdown-mode
1488+ markup-faces (=adoc-mode=) 2120+ markup-faces (~adoc-mode~)
1489+ mentor 2121+ mentor
1490+ messages 2122+ messages
1491+ minibuffer-line 2123+ minibuffer-line
1492+ minimap 2124+ minimap
2125+ mmm-mode
1493+ modeline 2126+ modeline
1494+ mood-line 2127+ mood-line
1495+ moody 2128+ moody
@@ -1512,11 +2145,12 @@ have lots of extensions, so the "full support" may not be 100% true…
1512+ org-roam 2145+ org-roam
1513+ org-superstar 2146+ org-superstar
1514+ org-table-sticky-header 2147+ org-table-sticky-header
2148+ org-tree-slide
1515+ org-treescope 2149+ org-treescope
1516+ origami 2150+ origami
1517+ outline-mode 2151+ outline-mode
1518+ outline-minor-faces 2152+ outline-minor-faces
1519+ package (=M-x list-packages=) 2153+ package (what you get with {{{kbd(M-x list-packages)}}})
1520+ page-break-lines 2154+ page-break-lines
1521+ paradox 2155+ paradox
1522+ paren-face 2156+ paren-face
@@ -1532,23 +2166,28 @@ have lots of extensions, so the "full support" may not be 100% true…
1532+ popup 2166+ popup
1533+ powerline 2167+ powerline
1534+ powerline-evil 2168+ powerline-evil
2169+ prism ([[#h:a94272e0-99da-4149-9e80-11a7e67a2cf2][Note for prism.el]])
1535+ proced 2170+ proced
1536+ prodigy 2171+ prodigy
2172+ quick-peek
1537+ racket-mode 2173+ racket-mode
1538+ rainbow-blocks 2174+ rainbow-blocks
1539+ rainbow-identifiers 2175+ rainbow-identifiers
1540+ rainbow-delimiters 2176+ rainbow-delimiters
1541+ rcirc 2177+ rcirc
1542+ regexp-builder (also known as =re-builder=) 2178+ recursion-indicator
2179+ regexp-builder (also known as ~re-builder~)
1543+ rg (rg.el) 2180+ rg (rg.el)
1544+ ripgrep 2181+ ripgrep
1545+ rmail 2182+ rmail
1546+ ruler-mode 2183+ ruler-mode
1547+ sallet 2184+ sallet
1548+ selectrum 2185+ selectrum
2186+ selectrum-prescient
1549+ semantic 2187+ semantic
1550+ sesman 2188+ sesman
1551+ shell-script-mode 2189+ shell-script-mode
2190+ shortdoc
1552+ show-paren-mode 2191+ show-paren-mode
1553+ shr 2192+ shr
1554+ side-notes 2193+ side-notes
@@ -1557,9 +2196,11 @@ have lots of extensions, so the "full support" may not be 100% true…
1557+ smart-mode-line 2196+ smart-mode-line
1558+ smartparens 2197+ smartparens
1559+ smerge 2198+ smerge
2199+ solaire
1560+ spaceline 2200+ spaceline
1561+ speedbar 2201+ speedbar
1562+ spell-fu 2202+ spell-fu
2203+ spray
1563+ stripes 2204+ stripes
1564+ suggest 2205+ suggest
1565+ switch-window 2206+ switch-window
@@ -1570,6 +2211,7 @@ have lots of extensions, so the "full support" may not be 100% true…
1570+ syslog-mode 2211+ syslog-mode
1571+ table (built-in table.el) 2212+ table (built-in table.el)
1572+ telephone-line 2213+ telephone-line
2214+ terraform-mode
1573+ term 2215+ term
1574+ tomatinho 2216+ tomatinho
1575+ transient (pop-up windows such as Magit's) 2217+ transient (pop-up windows such as Magit's)
@@ -1580,7 +2222,7 @@ have lots of extensions, so the "full support" may not be 100% true…
1580+ typescript 2222+ typescript
1581+ undo-tree 2223+ undo-tree
1582+ vc (built-in mode line status for version control) 2224+ vc (built-in mode line status for version control)
1583+ vc-annotate (=C-x v g=) 2225+ vc-annotate (the out put of {{{kbd(C-x v g)}}})
1584+ vdiff 2226+ vdiff
1585+ vimish-fold 2227+ vimish-fold
1586+ visible-mark 2228+ visible-mark
@@ -1608,67 +2250,234 @@ Plus many other miscellaneous faces that are provided by the upstream
1608GNU Emacs distribution. 2250GNU Emacs distribution.
1609 2251
1610** Indirectly covered packages 2252** Indirectly covered packages
1611:PROPERTIES: 2253:properties:
1612:CUSTOM_ID: h:2cb359c7-3a84-4262-bab3-dcdc1d0034d7 2254:custom_id: h:2cb359c7-3a84-4262-bab3-dcdc1d0034d7
1613:END: 2255:end:
2256#+cindex: Implicitly supported packages
1614 2257
1615These do not require any extra styles because they are configured to 2258These do not require any extra styles because they are configured to
1616inherit from some basic faces. Please confirm. 2259inherit from some basic faces. Please confirm.
1617 2260
1618+ edit-indirect 2261+ edit-indirect
1619+ evil-owl 2262+ evil-owl
2263+ fortran-mode
2264+ goggles
1620+ i3wm-config-mode 2265+ i3wm-config-mode
1621+ perl-mode 2266+ perl-mode
1622+ php-mode 2267+ php-mode
1623+ rjsx-mode 2268+ rjsx-mode
1624+ swift-mode 2269+ swift-mode
1625 2270+ tab-bar-echo-area
1626** Will NOT be supported
1627:PROPERTIES:
1628:CUSTOM_ID: h:6c6e8d94-6782-47fc-9eef-ad78671e9eea
1629:END:
1630
1631I have thus far identified a single package that does fit into the
1632overarching objective of this project: [[https://github.com/hlissner/emacs-solaire-mode][solaire]]. It basically tries to
1633cast a less intense background on the main file-visiting buffers, so
1634that secondary elements like sidebars can have the default (pure
1635white/black) background.
1636
1637I will only cover this package if it ever supports the inverse effect:
1638less intense colors (but still accessible) for ancillary interfaces
1639and the intended styles for the content you are actually working on.
1640 2271
1641* Notes for individual packages 2272* Notes for individual packages
1642:PROPERTIES: 2273:properties:
1643:CUSTOM_ID: h:4c4d901a-84d7-4f20-bd99-0808c2b06eba 2274:custom_id: h:4c4d901a-84d7-4f20-bd99-0808c2b06eba
1644:END: 2275:end:
1645 2276
1646This section covers information that may be of interest to users of 2277This section covers information that may be of interest to users of
1647individual packages. 2278individual packages.
1648 2279
2280** Note for display-fill-column-indicator-mode
2281:properties:
2282:custom_id: h:2a602816-bc1b-45bf-9675-4cbbd7bf6cab
2283:end:
2284
2285While designing the style for ~display-fill-column-indicator-mode~, we
2286stayed close to the mode's defaults: to apply a subtle foreground color
2287to the ~fill-column-indicator~ face, which blends well with the rest of
2288theme and is consistent with the role of that mode. This is to not
2289upset the expectations of users.
2290
2291Nevertheless, ~display-fill-column-indicator-mode~ has some known
2292limitations pertaining to its choice of using typographic characters to
2293draw its indicator. What should be a continuous vertical line might
2294appear as a series of dashes in certain contexts or under specific
2295conditions: a non-default value for ~line-spacing~, scaled and/or
2296variable-pitch headings have been observed to cause this effect.
2297
2298Given that we cannot control such factors, it may be better for affected
2299users to deviate from the default style of the ~fill-column-indicator~
2300face. Instead of setting a foreground color, one could use a background
2301and have the foreground be indistinguishable from it. For example:
2302
2303#+begin_src emacs-lisp
2304(modus-themes-with-colors
2305 (custom-set-faces
2306 `(fill-column-indicator ((,class :background ,bg-inactive
2307 :foreground ,bg-inactive)))))
2308#+end_src
2309
2310[[#h:51ba3547-b8c8-40d6-ba5a-4586477fd4ae][Face specs at scale using the themes' palette]].
2311
2312** Note for mmm-mode.el background colors
2313:properties:
2314:custom_id: h:99cf0d6c-e478-4e26-9932-3bf3427d13f6
2315:end:
2316
2317The faces used by {{{file(mmm-mode.el)}}} are expected to have a colorful
2318background, while they should not touch any foreground value. The idea
2319is that they must not interfere with existing fontification. Those
2320background colors need to be distinct from each other, such as an
2321unambiguous red juxtaposed with a clear blue.
2322
2323While this design may be internally consistent with the raison d'être of
2324that library, it inevitably produces inaccessible color combinations.
2325
2326There are two competing goals at play:
2327
23281. Legibility of the text, understood as the contrast ratio between the
2329 background and the foreground.
2330
23312. Semantic precision of each face which entails faithfulness to
2332 color-coding of the underlying background.
2333
2334As the Modus themes are designed with the express purpose of conforming
2335with the first point, we have to forgo the apparent color-coding of the
2336background elements. Instead we use subtle colors that do not undermine
2337the legibility of the affected text while they still offer a sense of
2338added context.
2339
2340Users who might prefer to fall below the minimum 7:1 contrast ratio in
2341relative luminance (the accessibility target we conform with), can opt
2342to configure the relevant faces on their own.
2343
2344[[#h:51ba3547-b8c8-40d6-ba5a-4586477fd4ae][Face specs at scale using the themes' palette]].
2345
2346This example uses more vivid background colors, though it comes at the
2347very high cost of degraded legibility.
2348
2349#+begin_src emacs-lisp
2350(modus-themes-with-colors
2351 (custom-set-faces
2352 `(mmm-cleanup-submode-face ((,class :background ,yellow-refine-bg)))
2353 `(mmm-code-submode-face ((,class :background ,bg-active)))
2354 `(mmm-comment-submode-face ((,class :background ,blue-refine-bg)))
2355 `(mmm-declaration-submode-face ((,class :background ,cyan-refine-bg)))
2356 `(mmm-default-submode-face ((,class :background ,bg-alt)))
2357 `(mmm-init-submode-face ((,class :background ,magenta-refine-bg)))
2358 `(mmm-output-submode-face ((,class :background ,red-refine-bg)))
2359 `(mmm-special-submode-face ((,class :background ,green-refine-bg)))))
2360#+end_src
2361
2362** Note for prism.el
2363:properties:
2364:alt_title: Note for prism
2365:custom_id: h:a94272e0-99da-4149-9e80-11a7e67a2cf2
2366:end:
2367
2368This package by Adam Porter, aka "alphapapa" or "github-alphapapa",
2369implements an alternative to the typical coloration of code. Instead of
2370highlighting the syntactic constructs, it applies color to different
2371levels of depth in the code structure.
2372
2373As {{{file(prism.el)}}} offers a broad range of customisations, we cannot
2374style it directly at the theme level: that would run contrary to the
2375spirit of the package. Instead, we may offer preset color schemes.
2376Those should offer a starting point for users to adapt to their needs.
2377
2378In the following code snippets, we employ the ~modus-themes-with-colors~
2379macro: [[#h:51ba3547-b8c8-40d6-ba5a-4586477fd4ae][Face specs at scale using the themes' palette]].
2380
2381These are the minimum recommended settings with 16 colors:
2382
2383#+begin_src emacs-lisp
2384(setq prism-num-faces 16)
2385
2386(prism-set-colors
2387 :desaturations '(0) ; do not change---may lower the contrast ratio
2388 :lightens '(0) ; same
2389 :colors (modus-themes-with-colors
2390 (list fg-main
2391 magenta
2392 cyan-alt-other
2393 magenta-alt-other
2394 blue
2395 magenta-alt
2396 cyan-alt
2397 red-alt-other
2398 green
2399 fg-main
2400 cyan
2401 yellow
2402 blue-alt
2403 red-alt
2404 green-alt-other
2405 fg-special-warm)))
2406#+end_src
2407
2408With 8 colors:
2409
2410#+begin_src emacs-lisp
2411(setq prism-num-faces 8)
2412
2413(prism-set-colors
2414 :desaturations '(0) ; do not change---may lower the contrast ratio
2415 :lightens '(0) ; same
2416 :colors (modus-themes-with-colors
2417 (list fg-special-cold
2418 magenta
2419 magenta-alt-other
2420 cyan-alt-other
2421 fg-main
2422 blue-alt
2423 red-alt-other
2424 cyan)))
2425#+end_src
2426
2427And this is with 4 colors, which produces results that are the closest
2428to the themes' default aesthetic:
2429
2430#+begin_src emacs-lisp
2431(setq prism-num-faces 4)
2432
2433(prism-set-colors
2434 :desaturations '(0) ; do not change---may lower the contrast ratio
2435 :lightens '(0) ; same
2436 :colors (modus-themes-with-colors
2437 (list fg-main
2438 cyan-alt-other
2439 magenta-alt-other
2440 magenta)))
2441#+end_src
2442
2443If you need to apply desaturation and lightening, you can use what the
2444{{{file(prism.el)}}} documentation recommends, like this (adapting to the
2445examples with the 4, 8, 16 colors):
2446
2447#+begin_src emacs-lisp
2448(prism-set-colors
2449 :desaturations (cl-loop for i from 0 below 16 collect (* i 2.5))
2450 :lightens (cl-loop for i from 0 below 16 collect (* i 2.5))
2451 :colors (modus-themes-with-colors
2452 (list fg-main
2453 cyan-alt-other
2454 magenta-alt-other
2455 magenta)))
2456#+end_src
2457
1649** Note on company-mode overlay pop-up 2458** Note on company-mode overlay pop-up
1650:PROPERTIES: 2459:properties:
1651:CUSTOM_ID: h:20cef8c4-d11f-4053-8b2c-2872925780b1 2460:custom_id: h:20cef8c4-d11f-4053-8b2c-2872925780b1
1652:END: 2461:end:
1653 2462
1654By default, the =company-mode= pop-up that lists completion candidates is 2463By default, the ~company-mode~ pop-up that lists completion candidates is
1655drawn using an overlay. This creates alignment issues every time it is 2464drawn using an overlay. This creates alignment issues every time it is
1656placed above a piece of text that has a different height than the 2465placed above a piece of text that has a different height than the
1657default. 2466default.
1658 2467
1659The solution recommended by the project's maintainer is to use an 2468The solution recommended by the project's maintainer is to use an
1660alternative front-end for drawing the pop-up which uses child frames 2469alternative front-end for drawing the pop-up which draws child frames
1661instead of overlays.[fn:: 2470instead of overlays.[fn::
1662https://github.com/company-mode/company-mode/issues/1010][fn:: 2471https://github.com/company-mode/company-mode/issues/1010][fn::
1663https://github.com/tumashu/company-posframe/] 2472https://github.com/tumashu/company-posframe/]
1664 2473
1665** Note for ERC escaped color sequences 2474** Note for ERC escaped color sequences
1666:PROPERTIES: 2475:properties:
1667:CUSTOM_ID: h:98bdf319-1e32-4469-8a01-771200fba65c 2476:custom_id: h:98bdf319-1e32-4469-8a01-771200fba65c
1668:END: 2477:end:
1669 2478
1670The built-in IRC client =erc= has the ability to colorise any text using 2479The built-in IRC client ~erc~ has the ability to colorise any text using
1671escape sequences that start with =^C= (inserted with =C-q C-c=) and are 2480escape sequences that start with =^C= (inserted with {{{kbd(C-q C-c)}}}) and are
1672followed by a number for the foreground and background.[fn:: This page 2481followed by a number for the foreground and background.[fn:: This page
1673explains the basics, though it is not specific to Emacs: 2482explains the basics, though it is not specific to Emacs:
1674https://www.mirc.com/colors.html] Possible numbers are 0-15, with the 2483https://www.mirc.com/colors.html] Possible numbers are 0-15, with the
@@ -1681,13 +2490,13 @@ separated by a comma. Like this =^C1,6=. The minimum setup is this:
1681 erc-interpret-mirc-color t) 2490 erc-interpret-mirc-color t)
1682#+end_src 2491#+end_src
1683 2492
1684As this allows users to make arbitrary combinations, it is impossible to 2493As this allows users the chance to make arbitrary combinations, it is
1685guarantee a consistently high contrast ratio. All we can we do is 2494impossible to guarantee a consistently high contrast ratio. All we can
1686provide guidance on the combinations that satisfy the accessibility 2495we do is provide guidance on the combinations that satisfy the
1687standard of the themes: 2496accessibility standard of the themes:
1688 2497
1689+ Modus Operandi :: Use foreground color 1 for all backgrounds from 2498+ Modus Operandi :: Use foreground color 1 for all backgrounds from
1690 2-15. Like so: =C-q C-c1,N= where =N= is the background. 2499 2-15. Like so: {{{kbd(C-q C-c1,N)}}} where =N= is the background.
1691 2500
1692+ Modus Vivendi :: Use foreground color 0 for all backgrounds from 2501+ Modus Vivendi :: Use foreground color 0 for all backgrounds from
1693 2-13. Use foreground =1= for backgrounds 14, 15. 2502 2-13. Use foreground =1= for backgrounds 14, 15.
@@ -1696,35 +2505,38 @@ Colors 0 and 1 are white and black respectively. So combine them
1696together, if you must. 2505together, if you must.
1697 2506
1698** Note for powerline or spaceline 2507** Note for powerline or spaceline
1699:PROPERTIES: 2508:properties:
1700:CUSTOM_ID: h:9130a8ba-d8e3-41be-a58b-3cb1eb7b6d17 2509:custom_id: h:9130a8ba-d8e3-41be-a58b-3cb1eb7b6d17
1701:END: 2510:end:
1702 2511
1703Both Powerline and Spaceline package users will likely need to use the 2512Both Powerline and Spaceline package users will likely need to use the
1704command =powerline-reset= whenever they make changes to their themes 2513command ~powerline-reset~ whenever they make changes to their themes
1705and/or modeline setup. 2514and/or modeline setup.
1706 2515
1707** Note on shr colors 2516** Note on SHR colors
1708:PROPERTIES: 2517:properties:
1709:CUSTOM_ID: h:4cc767dc-ffef-4c5c-9f10-82eb7b8921bf 2518:custom_id: h:4cc767dc-ffef-4c5c-9f10-82eb7b8921bf
1710:END: 2519:end:
1711 2520
1712Emacs' HTML rendering mechanism (=shr=) may need explicit configuration to 2521Emacs' HTML rendering library ({{{file(shr.el)}}}) may need explicit
1713respect the theme's colors instead of whatever specifications the 2522configuration to respect the theme's colors instead of whatever
1714webpage provides. Consult =C-h v shr-use-colors=. 2523specifications the webpage provides.
2524
2525Consult {{{kbd(C-h v shr-use-colors)}}}.
1715 2526
1716** Note for Helm grep 2527** Note for Helm grep
1717:PROPERTIES: 2528:properties:
1718:CUSTOM_ID: h:d28879a2-8e4b-4525-986e-14c0f873d229 2529:custom_id: h:d28879a2-8e4b-4525-986e-14c0f873d229
1719:END: 2530:end:
1720 2531
1721There is one face from the Helm package that is meant to highlight the 2532There is one face from the Helm package that is meant to highlight the
1722matches of a grep or grep-like command (=ag= or =ripgrep=). It is 2533matches of a grep or grep-like command (=ag= or =ripgrep=). It is
1723=helm-grep-match=. However, this face can only apply when the user does 2534~helm-grep-match~. However, this face can only apply when the user does
1724not pass =--color=always= as a command-line option for their command. 2535not pass =--color=always= as a command-line option for their command.
1725 2536
1726Here is the docstring for that face, which is defined in the 2537Here is the docstring for that face, which is defined in the
1727=helm-grep.el= library (view a library with =M-x find-library=). 2538{{{file(helm-grep.el)}}} library (you can always visit the source code with
2539{{{kbd(M-x find-library)}}}).
1728 2540
1729#+begin_quote 2541#+begin_quote
1730Face used to highlight grep matches. Have no effect when grep backend 2542Face used to highlight grep matches. Have no effect when grep backend
@@ -1734,23 +2546,23 @@ use "--color="
1734The user must either remove =--color= from the flags passed to the grep 2546The user must either remove =--color= from the flags passed to the grep
1735function, or explicitly use =--color=never= (or equivalent). Helm 2547function, or explicitly use =--color=never= (or equivalent). Helm
1736provides user-facing customization options for controlling the grep 2548provides user-facing customization options for controlling the grep
1737function's parameters, such as =helm-grep-default-command= and 2549function's parameters, such as ~helm-grep-default-command~ and
1738=helm-grep-git-grep-command=. 2550~helm-grep-git-grep-command~.
1739 2551
1740When =--color=always= is in effect, the grep output will use red text in 2552When =--color=always= is in effect, the grep output will use red text in
1741bold letter forms to present the matching part in the list of 2553bold letter forms to present the matching part in the list of
1742candidates. That style still meets the contrast ratio target of >= 7:1 2554candidates. That style still meets the contrast ratio target of >= 7:1
1743(accessibility standard WCAG AAA), because it draws the reference to 2555(accessibility standard WCAG AAA), because it draws the reference to
1744ANSI color number 1 (red) from the already-supported array of 2556ANSI color number 1 (red) from the already-supported array of
1745=ansi-color-names-vector=. 2557~ansi-color-names-vector~.
1746 2558
1747** Note on vc-annotate-background-mode 2559** Note on vc-annotate-background-mode
1748:PROPERTIES: 2560:properties:
1749:CUSTOM_ID: h:5095cbd1-e17a-419c-93e8-951c186362a3 2561:custom_id: h:5095cbd1-e17a-419c-93e8-951c186362a3
1750:END: 2562:end:
1751 2563
1752Due to the unique way =vc-annotate= (=C-x v g=) applies colors, support for 2564Due to the unique way ~vc-annotate~ ({{{kbd(C-x v g)}}}) applies colors, support
1753its background mode (=vc-annotate-background-mode=) is disabled at the 2565for its background mode (~vc-annotate-background-mode~) is disabled at the
1754theme level. 2566theme level.
1755 2567
1756Normally, such a drastic measure should not belong in a theme: assuming 2568Normally, such a drastic measure should not belong in a theme: assuming
@@ -1760,35 +2572,87 @@ while still supporting a useful built-in tool.
1760 2572
1761If there actually is a way to avoid such a course of action, without 2573If there actually is a way to avoid such a course of action, without
1762prejudice to the accessibility standard of this project, then please 2574prejudice to the accessibility standard of this project, then please
1763report as much or send patches (see [[#h:9c3cd842-14b7-44d7-84b2-a5c8bc3fc3b1][Contributing]]). 2575report as much or send patches ([[#h:9c3cd842-14b7-44d7-84b2-a5c8bc3fc3b1][Contributing]]).
2576
2577** Note on pdf-tools link hints
2578:properties:
2579:custom_id: h:2659d13e-b1a5-416c-9a89-7c3ce3a76574
2580:end:
2581
2582Hints are drawn by [[https://imagemagick.org/][ImageMagick]], not Emacs, i.e., ImageMagick doesn't
2583know about the hint face unless you tell ImageMagick about it. By
2584default, only the foreground and background color attributes are
2585passed. The below snippet adds to those the various font attributes. As
2586it queries various faces, specifically ~pdf-links-read-link~ and the faces
2587it inherits, it needs to be added to your initialization file after
2588you've customized any faces.
2589
2590#+begin_src emacs-lisp
2591(use-package pdf-links
2592 :config
2593 (let ((spec
2594 (apply #'append
2595 (mapcar
2596 (lambda (name)
2597 (list name
2598 (face-attribute 'pdf-links-read-link
2599 name nil 'default)))
2600 '(:family :width :weight :slant)))))
2601 (setq pdf-links-read-link-convert-commands
2602 `("-density" "96"
2603 "-family" ,(plist-get spec :family)
2604 "-stretch" ,(let* ((width (plist-get spec :width))
2605 (name (symbol-name width)))
2606 (replace-regexp-in-string "-" ""
2607 (capitalize name)))
2608 "-weight" ,(pcase (plist-get spec :weight)
2609 ('ultra-light "Thin")
2610 ('extra-light "ExtraLight")
2611 ('light "Light")
2612 ('semi-bold "SemiBold")
2613 ('bold "Bold")
2614 ('extra-bold "ExtraBold")
2615 ('ultra-bold "Black")
2616 (_weight "Normal"))
2617 "-style" ,(pcase (plist-get spec :slant)
2618 ('italic "Italic")
2619 ('oblique "Oblique")
2620 (_slant "Normal"))
2621 "-pointsize" "%P"
2622 "-undercolor" "%f"
2623 "-fill" "%b"
2624 "-draw" "text %X,%Y '%c'"))))
2625#+end_src
1764 2626
1765* Contributing 2627* Contributing
1766:PROPERTIES: 2628:properties:
1767:CUSTOM_ID: h:9c3cd842-14b7-44d7-84b2-a5c8bc3fc3b1 2629:custom_id: h:9c3cd842-14b7-44d7-84b2-a5c8bc3fc3b1
1768:END: 2630:end:
1769 2631
1770This section documents the canonical sources of the themes and the ways 2632This section documents the canonical sources of the themes and the ways
1771in which you can contribute to their ongoing development. 2633in which you can contribute to their ongoing development.
1772 2634
1773** Sources of the themes 2635** Sources of the themes
1774:PROPERTIES: 2636:properties:
1775:CUSTOM_ID: h:89504f1c-c9a1-4bd9-ab39-78fd0eddb47c 2637:custom_id: h:89504f1c-c9a1-4bd9-ab39-78fd0eddb47c
1776:END: 2638:end:
2639#+cindex: Sources of the themes
1777 2640
1778The =modus-operandi= and =modus-vivendi= themes are built into Emacs. 2641The ~modus-operandi~ and ~modus-vivendi~ themes are built into Emacs.
1779Currently they are in the project's =master= branch, which is tracking the 2642Currently they are in Emacs' git main branch (trunk), which is tracking
1780next development release target. 2643the next development release target.
1781 2644
1782The source code of the themes is [[https://gitlab.com/protesilaos/modus-themes/][available on Gitlab]], for the time 2645The source code of the themes is [[https://gitlab.com/protesilaos/modus-themes/][available on Gitlab]], for the time
1783being. A [[https://github.com/protesilaos/modus-themes/][mirror on Github]] is also on offer. 2646being. A [[https://github.com/protesilaos/modus-themes/][mirror on Github]] is also on offer.
1784 2647
1785An HTML version of this manual is available as an extension to the 2648An HTML version of this manual is provided as an extension of the
1786[[https://protesilaos.com/modus-themes/][author's personal website]] (does not rely on any non-free code). 2649[[https://protesilaos.com/modus-themes/][author's personal website]] (does not rely on any non-free code).
1787 2650
1788** Issues you can help with 2651** Issues you can help with
1789:PROPERTIES: 2652:properties:
1790:CUSTOM_ID: h:6536c8d5-3f98-43ab-a787-b94120e735e8 2653:custom_id: h:6536c8d5-3f98-43ab-a787-b94120e735e8
1791:END: 2654:end:
2655#+cindex: Contributing
1792 2656
1793A few tasks you can help with: 2657A few tasks you can help with:
1794 2658
@@ -1802,8 +2666,8 @@ A few tasks you can help with:
1802 2666
1803[[#h:111773e2-f26f-4b68-8c4f-9794ca6b9633][Patches require copyright assignment to the FSF]]. 2667[[#h:111773e2-f26f-4b68-8c4f-9794ca6b9633][Patches require copyright assignment to the FSF]].
1804 2668
1805It would be great if your feedback also includes some screenshots, GIFs, 2669It is preferable that your feedback includes some screenshots, GIFs, or
1806or short videos, as well as further instructions to reproduce a given 2670short videos, as well as further instructions to reproduce a given
1807setup. Though this is not a requirement. 2671setup. Though this is not a requirement.
1808 2672
1809Whatever you do, bear in mind the overarching objective of the Modus 2673Whatever you do, bear in mind the overarching objective of the Modus
@@ -1813,11 +2677,9 @@ between aesthetics and accessibility, it shall always be made in the
1813interest of the latter. 2677interest of the latter.
1814 2678
1815** Patches require copyright assignment to the FSF 2679** Patches require copyright assignment to the FSF
1816:PROPERTIES: 2680:properties:
1817:ALT_TITLE: Merge requests 2681:custom_id: h:111773e2-f26f-4b68-8c4f-9794ca6b9633
1818:DESCRIPTION: Legal considerations for code patches 2682:end:
1819:CUSTOM_ID: h:111773e2-f26f-4b68-8c4f-9794ca6b9633
1820:END:
1821 2683
1822Code contributions are most welcome. For any major edit (more than 15 2684Code contributions are most welcome. For any major edit (more than 15
1823lines, or so, in aggregate per person), you need to make a copyright 2685lines, or so, in aggregate per person), you need to make a copyright
@@ -1875,48 +2737,58 @@ your changes? Do you attend a school which might make such a claim?]
1875[Which files have you changed so far, and which new files have you written 2737[Which files have you changed so far, and which new files have you written
1876so far?] 2738so far?]
1877 2739
1878Changed a couple of themes that are part of the Emacs source code:
1879
1880./etc/themes/modus-operandi-theme.el
1881./etc/themes/modus-vivendi-theme.el
1882#+end_example 2740#+end_example
1883 2741
1884* Acknowledgements 2742* Acknowledgements
1885:PROPERTIES: 2743:properties:
1886:CUSTOM_ID: h:95c3da23-217f-404e-b5f3-56c75760ebcf 2744:custom_id: h:95c3da23-217f-404e-b5f3-56c75760ebcf
1887:END: 2745:end:
2746#+cindex: Contributors
1888 2747
1889The Modus themes are a collective effort. Every contribution counts. 2748The Modus themes are a collective effort. Every bit of work matters.
1890 2749
1891+ Author/maintainer :: Protesilaos Stavrou. 2750+ Author/maintainer :: Protesilaos Stavrou.
1892 2751
1893+ Contributions to code or documentation :: Anders Johansson, Basil 2752+ Contributions to code or documentation :: Anders Johansson, Basil
1894 L. Contovounesios, Eli Zaretskii, Madhavan Krishnan, Markus Beppler, 2753 L.{{{space()}}} Contovounesios, Carlo Zancanaro, Eli Zaretskii, Kostadin
1895 Matthew Stevenson, Shreyas Ragavan, Stefan Kangas, Vincent Murphy. 2754 Ninev, Madhavan Krishnan, Markus Beppler, Matthew Stevenson, Nicolas
1896 2755 De Jaeghere, Shreyas Ragavan, Stefan Kangas, Vincent Murphy, Xinglu
1897+ Ideas and user feedback :: Aaron Jensen, Adam Spiers, Alex Griffin, 2756 Chen.
1898 Alex Peitsinis, Alexey Shmalko, Anders Johansson, André Alexandre 2757
1899 Gomes, Arif Rezai, Basil L. Contovounesios, Damien Cassou, Dario 2758+ Ideas and user feedback :: Aaron Jensen, Adam Spiers, Adrian Manea,
1900 Gjorgjevski, David Edmondson, Davor Rotim, Divan Santana, Gerry 2759 Alex Griffin, Alex Peitsinis, Alexey Shmalko, Alok Singh, Anders
1901 Agbobada, Gianluca Recchia, Ilja Kocken, Iris Garcia, Len Trigg, 2760 Johansson, André Alexandre Gomes, Arif Rezai, Basil L.{{{space()}}}
1902 Manuel Uberti, Mark Burton, Markus Beppler, Michael Goldenberg, Murilo 2761 Contovounesios, Burgess Chang, Christian Tietze, Christopher Dimech,
1903 Pereira, Nicolas De Jaeghere, Paul Poloskov, Pierre Téchoueyres, Roman 2762 Damien Cassou, Daniel Mendler, Dario Gjorgjevski, David Edmondson,
1904 Rudakov, Ryan Phillips, Shreyas Ragavan, Simon Pugnet, Tassilo Horn, 2763 Davor Rotim, Divan Santana, Gerry Agbobada, Gianluca Recchia, Gustavo
1905 Thibaut Verron, Trey Merkley, Togan Muftuoglu, Uri Sharf, Utkarsh 2764 Barros, Hörmetjan Yiltiz, Ilja Kocken, Iris Garcia, Jeremy Friesen,
1906 Singh, Vincent Foley. As well as users: Ben, Eugene, Fourchaux, 2765 John Haman, Joshua O'Connor, Kevin Fleming, Kostadin Ninev, Len Trigg,
1907 Fredrik, Moesasji, Nick, TheBlob42, bepolymathe, dinko, doolio, 2766 Manuel Uberti, Mark Burton, Markus Beppler, Michael Goldenberg, Morgan
1908 jixiuf, okamsn, tycho garen. 2767 Smith, Murilo Pereira, Nicolas De Jaeghere, Paul Poloskov, Pete
1909 2768 Kazmier, Peter Wu, Philip K., Pierre Téchoueyres, Roman Rudakov, Ryan
1910+ Packaging :: Dhavan Vaidya (Debian), Stefan Kangas (core Emacs), 2769 Phillips, Sam Kleinman, Shreyas Ragavan, Simon Pugnet, Tassilo Horn,
1911 Stefan Monnier (GNU Elpa). 2770 Thibaut Verron, Trey Merkley, Togan Muftuoglu, Toon Claes, Uri Sharf,
2771 Utkarsh Singh, Vincent Foley. As well as users: Ben, CsBigDataHub1,
2772 Emacs Contrib, Eugene, Fourchaux, Fredrik, Moesasji, Nick, TheBlob42,
2773 bepolymathe, doolio, fleimgruber, iSeeU, jixiuf, okamsn.
2774
2775+ Packaging :: Basil L.{{{space()}}} Contovounesios, Eli Zaretskii, Glenn
2776 Morris, Mauro Aranda, Richard Stallman, Stefan Kangas (core Emacs),
2777 Stefan Monnier (GNU Elpa), André Alexandre Gomes, Dimakakos Dimos,
2778 Morgan Smith, Nicolas Goaziou (Guix), Dhavan Vaidya (Debian).
1912 2779
1913+ Inspiration for certain features :: Bozhidar Batsov (zenburn-theme), 2780+ Inspiration for certain features :: Bozhidar Batsov (zenburn-theme),
1914 Fabrice Niessen (leuven-theme). 2781 Fabrice Niessen (leuven-theme).
1915 2782
2783Special thanks, in no particular order, to Manuel Uberti and Omar
2784Antolín Camarena for their long time contributions and insightful
2785commentary.
2786
1916* Meta 2787* Meta
1917:PROPERTIES: 2788:properties:
1918:CUSTOM_ID: h:13752581-4378-478c-af17-165b6e76bc1b 2789:custom_id: h:13752581-4378-478c-af17-165b6e76bc1b
1919:END: 2790:end:
2791#+cindex: Development notes
1920 2792
1921If you are curious about the principles that govern the development of 2793If you are curious about the principles that govern the development of
1922this project read the essay [[https://protesilaos.com/codelog/2020-03-17-design-modus-themes-emacs/][On the design of the Modus themes]] 2794this project read the essay [[https://protesilaos.com/codelog/2020-03-17-design-modus-themes-emacs/][On the design of the Modus themes]]
@@ -1931,32 +2803,501 @@ of this sort):
1931+ [[https://protesilaos.com/codelog/2020-07-04-modus-themes-faint-colours/][Modus themes: new "faint syntax" option]] (2020-07-04) 2803+ [[https://protesilaos.com/codelog/2020-07-04-modus-themes-faint-colours/][Modus themes: new "faint syntax" option]] (2020-07-04)
1932+ [[https://protesilaos.com/codelog/2020-07-08-modus-themes-nuanced-colours/][Modus themes: major review of "nuanced" colours]] (2020-07-08) 2804+ [[https://protesilaos.com/codelog/2020-07-08-modus-themes-nuanced-colours/][Modus themes: major review of "nuanced" colours]] (2020-07-08)
1933+ [[https://protesilaos.com/codelog/2020-09-14-modus-themes-review-blues/][Modus themes: review of blue colours]] (2020-09-14) 2805+ [[https://protesilaos.com/codelog/2020-09-14-modus-themes-review-blues/][Modus themes: review of blue colours]] (2020-09-14)
2806+ [[https://protesilaos.com/codelog/2020-12-27-modus-themes-review-rainbow-delimiters/][Modus themes: review rainbow-delimiters faces]] (2020-12-27)
2807+ [[https://protesilaos.com/codelog/2021-01-11-modus-themes-review-select-faint-colours/][Modus themes: review of select "faint" colours]] (2021-01-11)
2808+ [[https://protesilaos.com/codelog/2021-02-25-modus-themes-diffs-deuteranopia/][The Modus themes now cover deuteranopia in diffs]] (2021-02-25)
1934 2809
1935And here are the canonical sources for this project's documentation: 2810And here are the canonical sources of this project's documentation:
1936 2811
1937+ Manual :: <https://protesilaos.com/modus-themes> 2812+ Manual :: <https://protesilaos.com/modus-themes>
1938+ Change Log :: <https://protesilaos.com/modus-themes-changelog> 2813+ Change Log :: <https://protesilaos.com/modus-themes-changelog>
1939+ Screenshots :: <https://protesilaos.com/modus-themes-pictures> 2814+ Screenshots :: <https://protesilaos.com/modus-themes-pictures>
1940 2815
1941* External projects (ports)
1942:PROPERTIES:
1943:CUSTOM_ID: h:21adb7c8-2208-41e8-803c-052e42e2c05d
1944:END:
1945
1946The present section documents projects that extend the scope of the
1947Modus themes. The following list will be updated whenever relevant
1948information is brought to my attention. If you already have or intend
1949to produce such a port, feel welcome [[https://protesilaos.com/contact][to contact me]].
1950
1951+ Modus exporter :: This is [[https://github.com/polaris64/modus-exporter][an Elisp library written by Simon Pugnet]].
1952 Licensed under the terms of the GNU General Public License. It is
1953 meant to capture the color values of the active Modus theme (Operandi
1954 or Vivendi) and output it as a valid theme for some other application.
1955
1956* GNU Free Documentation License 2816* GNU Free Documentation License
1957:PROPERTIES: 2817:properties:
1958:APPENDIX: t 2818:appendix: t
1959:CUSTOM_ID: h:3077c3d2-7f90-4228-8f0a-73124f4026f6 2819:custom_id: h:3077c3d2-7f90-4228-8f0a-73124f4026f6
1960:END: 2820:end:
1961 2821
1962#+texinfo: @include doclicense.texi 2822#+texinfo: @include doclicense.texi
2823
2824#+begin_export html
2825
2826 GNU Free Documentation License
2827 Version 1.3, 3 November 2008
2828
2829
2830 Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
2831 <https://fsf.org/>
2832 Everyone is permitted to copy and distribute verbatim copies
2833 of this license document, but changing it is not allowed.
2834
28350. PREAMBLE
2836
2837The purpose of this License is to make a manual, textbook, or other
2838functional and useful document "free" in the sense of freedom: to
2839assure everyone the effective freedom to copy and redistribute it,
2840with or without modifying it, either commercially or noncommercially.
2841Secondarily, this License preserves for the author and publisher a way
2842to get credit for their work, while not being considered responsible
2843for modifications made by others.
2844
2845This License is a kind of "copyleft", which means that derivative
2846works of the document must themselves be free in the same sense. It
2847complements the GNU General Public License, which is a copyleft
2848license designed for free software.
2849
2850We have designed this License in order to use it for manuals for free
2851software, because free software needs free documentation: a free
2852program should come with manuals providing the same freedoms that the
2853software does. But this License is not limited to software manuals;
2854it can be used for any textual work, regardless of subject matter or
2855whether it is published as a printed book. We recommend this License
2856principally for works whose purpose is instruction or reference.
2857
2858
28591. APPLICABILITY AND DEFINITIONS
2860
2861This License applies to any manual or other work, in any medium, that
2862contains a notice placed by the copyright holder saying it can be
2863distributed under the terms of this License. Such a notice grants a
2864world-wide, royalty-free license, unlimited in duration, to use that
2865work under the conditions stated herein. The "Document", below,
2866refers to any such manual or work. Any member of the public is a
2867licensee, and is addressed as "you". You accept the license if you
2868copy, modify or distribute the work in a way requiring permission
2869under copyright law.
2870
2871A "Modified Version" of the Document means any work containing the
2872Document or a portion of it, either copied verbatim, or with
2873modifications and/or translated into another language.
2874
2875A "Secondary Section" is a named appendix or a front-matter section of
2876the Document that deals exclusively with the relationship of the
2877publishers or authors of the Document to the Document's overall
2878subject (or to related matters) and contains nothing that could fall
2879directly within that overall subject. (Thus, if the Document is in
2880part a textbook of mathematics, a Secondary Section may not explain
2881any mathematics.) The relationship could be a matter of historical
2882connection with the subject or with related matters, or of legal,
2883commercial, philosophical, ethical or political position regarding
2884them.
2885
2886The "Invariant Sections" are certain Secondary Sections whose titles
2887are designated, as being those of Invariant Sections, in the notice
2888that says that the Document is released under this License. If a
2889section does not fit the above definition of Secondary then it is not
2890allowed to be designated as Invariant. The Document may contain zero
2891Invariant Sections. If the Document does not identify any Invariant
2892Sections then there are none.
2893
2894The "Cover Texts" are certain short passages of text that are listed,
2895as Front-Cover Texts or Back-Cover Texts, in the notice that says that
2896the Document is released under this License. A Front-Cover Text may
2897be at most 5 words, and a Back-Cover Text may be at most 25 words.
2898
2899A "Transparent" copy of the Document means a machine-readable copy,
2900represented in a format whose specification is available to the
2901general public, that is suitable for revising the document
2902straightforwardly with generic text editors or (for images composed of
2903pixels) generic paint programs or (for drawings) some widely available
2904drawing editor, and that is suitable for input to text formatters or
2905for automatic translation to a variety of formats suitable for input
2906to text formatters. A copy made in an otherwise Transparent file
2907format whose markup, or absence of markup, has been arranged to thwart
2908or discourage subsequent modification by readers is not Transparent.
2909An image format is not Transparent if used for any substantial amount
2910of text. A copy that is not "Transparent" is called "Opaque".
2911
2912Examples of suitable formats for Transparent copies include plain
2913ASCII without markup, Texinfo input format, LaTeX input format, SGML
2914or XML using a publicly available DTD, and standard-conforming simple
2915HTML, PostScript or PDF designed for human modification. Examples of
2916transparent image formats include PNG, XCF and JPG. Opaque formats
2917include proprietary formats that can be read and edited only by
2918proprietary word processors, SGML or XML for which the DTD and/or
2919processing tools are not generally available, and the
2920machine-generated HTML, PostScript or PDF produced by some word
2921processors for output purposes only.
2922
2923The "Title Page" means, for a printed book, the title page itself,
2924plus such following pages as are needed to hold, legibly, the material
2925this License requires to appear in the title page. For works in
2926formats which do not have any title page as such, "Title Page" means
2927the text near the most prominent appearance of the work's title,
2928preceding the beginning of the body of the text.
2929
2930The "publisher" means any person or entity that distributes copies of
2931the Document to the public.
2932
2933A section "Entitled XYZ" means a named subunit of the Document whose
2934title either is precisely XYZ or contains XYZ in parentheses following
2935text that translates XYZ in another language. (Here XYZ stands for a
2936specific section name mentioned below, such as "Acknowledgements",
2937"Dedications", "Endorsements", or "History".) To "Preserve the Title"
2938of such a section when you modify the Document means that it remains a
2939section "Entitled XYZ" according to this definition.
2940
2941The Document may include Warranty Disclaimers next to the notice which
2942states that this License applies to the Document. These Warranty
2943Disclaimers are considered to be included by reference in this
2944License, but only as regards disclaiming warranties: any other
2945implication that these Warranty Disclaimers may have is void and has
2946no effect on the meaning of this License.
2947
29482. VERBATIM COPYING
2949
2950You may copy and distribute the Document in any medium, either
2951commercially or noncommercially, provided that this License, the
2952copyright notices, and the license notice saying this License applies
2953to the Document are reproduced in all copies, and that you add no
2954other conditions whatsoever to those of this License. You may not use
2955technical measures to obstruct or control the reading or further
2956copying of the copies you make or distribute. However, you may accept
2957compensation in exchange for copies. If you distribute a large enough
2958number of copies you must also follow the conditions in section 3.
2959
2960You may also lend copies, under the same conditions stated above, and
2961you may publicly display copies.
2962
2963
29643. COPYING IN QUANTITY
2965
2966If you publish printed copies (or copies in media that commonly have
2967printed covers) of the Document, numbering more than 100, and the
2968Document's license notice requires Cover Texts, you must enclose the
2969copies in covers that carry, clearly and legibly, all these Cover
2970Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
2971the back cover. Both covers must also clearly and legibly identify
2972you as the publisher of these copies. The front cover must present
2973the full title with all words of the title equally prominent and
2974visible. You may add other material on the covers in addition.
2975Copying with changes limited to the covers, as long as they preserve
2976the title of the Document and satisfy these conditions, can be treated
2977as verbatim copying in other respects.
2978
2979If the required texts for either cover are too voluminous to fit
2980legibly, you should put the first ones listed (as many as fit
2981reasonably) on the actual cover, and continue the rest onto adjacent
2982pages.
2983
2984If you publish or distribute Opaque copies of the Document numbering
2985more than 100, you must either include a machine-readable Transparent
2986copy along with each Opaque copy, or state in or with each Opaque copy
2987a computer-network location from which the general network-using
2988public has access to download using public-standard network protocols
2989a complete Transparent copy of the Document, free of added material.
2990If you use the latter option, you must take reasonably prudent steps,
2991when you begin distribution of Opaque copies in quantity, to ensure
2992that this Transparent copy will remain thus accessible at the stated
2993location until at least one year after the last time you distribute an
2994Opaque copy (directly or through your agents or retailers) of that
2995edition to the public.
2996
2997It is requested, but not required, that you contact the authors of the
2998Document well before redistributing any large number of copies, to
2999give them a chance to provide you with an updated version of the
3000Document.
3001
3002
30034. MODIFICATIONS
3004
3005You may copy and distribute a Modified Version of the Document under
3006the conditions of sections 2 and 3 above, provided that you release
3007the Modified Version under precisely this License, with the Modified
3008Version filling the role of the Document, thus licensing distribution
3009and modification of the Modified Version to whoever possesses a copy
3010of it. In addition, you must do these things in the Modified Version:
3011
3012A. Use in the Title Page (and on the covers, if any) a title distinct
3013 from that of the Document, and from those of previous versions
3014 (which should, if there were any, be listed in the History section
3015 of the Document). You may use the same title as a previous version
3016 if the original publisher of that version gives permission.
3017B. List on the Title Page, as authors, one or more persons or entities
3018 responsible for authorship of the modifications in the Modified
3019 Version, together with at least five of the principal authors of the
3020 Document (all of its principal authors, if it has fewer than five),
3021 unless they release you from this requirement.
3022C. State on the Title page the name of the publisher of the
3023 Modified Version, as the publisher.
3024D. Preserve all the copyright notices of the Document.
3025E. Add an appropriate copyright notice for your modifications
3026 adjacent to the other copyright notices.
3027F. Include, immediately after the copyright notices, a license notice
3028 giving the public permission to use the Modified Version under the
3029 terms of this License, in the form shown in the Addendum below.
3030G. Preserve in that license notice the full lists of Invariant Sections
3031 and required Cover Texts given in the Document's license notice.
3032H. Include an unaltered copy of this License.
3033I. Preserve the section Entitled "History", Preserve its Title, and add
3034 to it an item stating at least the title, year, new authors, and
3035 publisher of the Modified Version as given on the Title Page. If
3036 there is no section Entitled "History" in the Document, create one
3037 stating the title, year, authors, and publisher of the Document as
3038 given on its Title Page, then add an item describing the Modified
3039 Version as stated in the previous sentence.
3040J. Preserve the network location, if any, given in the Document for
3041 public access to a Transparent copy of the Document, and likewise
3042 the network locations given in the Document for previous versions
3043 it was based on. These may be placed in the "History" section.
3044 You may omit a network location for a work that was published at
3045 least four years before the Document itself, or if the original
3046 publisher of the version it refers to gives permission.
3047K. For any section Entitled "Acknowledgements" or "Dedications",
3048 Preserve the Title of the section, and preserve in the section all
3049 the substance and tone of each of the contributor acknowledgements
3050 and/or dedications given therein.
3051L. Preserve all the Invariant Sections of the Document,
3052 unaltered in their text and in their titles. Section numbers
3053 or the equivalent are not considered part of the section titles.
3054M. Delete any section Entitled "Endorsements". Such a section
3055 may not be included in the Modified Version.
3056N. Do not retitle any existing section to be Entitled "Endorsements"
3057 or to conflict in title with any Invariant Section.
3058O. Preserve any Warranty Disclaimers.
3059
3060If the Modified Version includes new front-matter sections or
3061appendices that qualify as Secondary Sections and contain no material
3062copied from the Document, you may at your option designate some or all
3063of these sections as invariant. To do this, add their titles to the
3064list of Invariant Sections in the Modified Version's license notice.
3065These titles must be distinct from any other section titles.
3066
3067You may add a section Entitled "Endorsements", provided it contains
3068nothing but endorsements of your Modified Version by various
3069parties--for example, statements of peer review or that the text has
3070been approved by an organization as the authoritative definition of a
3071standard.
3072
3073You may add a passage of up to five words as a Front-Cover Text, and a
3074passage of up to 25 words as a Back-Cover Text, to the end of the list
3075of Cover Texts in the Modified Version. Only one passage of
3076Front-Cover Text and one of Back-Cover Text may be added by (or
3077through arrangements made by) any one entity. If the Document already
3078includes a cover text for the same cover, previously added by you or
3079by arrangement made by the same entity you are acting on behalf of,
3080you may not add another; but you may replace the old one, on explicit
3081permission from the previous publisher that added the old one.
3082
3083The author(s) and publisher(s) of the Document do not by this License
3084give permission to use their names for publicity for or to assert or
3085imply endorsement of any Modified Version.
3086
3087
30885. COMBINING DOCUMENTS
3089
3090You may combine the Document with other documents released under this
3091License, under the terms defined in section 4 above for modified
3092versions, provided that you include in the combination all of the
3093Invariant Sections of all of the original documents, unmodified, and
3094list them all as Invariant Sections of your combined work in its
3095license notice, and that you preserve all their Warranty Disclaimers.
3096
3097The combined work need only contain one copy of this License, and
3098multiple identical Invariant Sections may be replaced with a single
3099copy. If there are multiple Invariant Sections with the same name but
3100different contents, make the title of each such section unique by
3101adding at the end of it, in parentheses, the name of the original
3102author or publisher of that section if known, or else a unique number.
3103Make the same adjustment to the section titles in the list of
3104Invariant Sections in the license notice of the combined work.
3105
3106In the combination, you must combine any sections Entitled "History"
3107in the various original documents, forming one section Entitled
3108"History"; likewise combine any sections Entitled "Acknowledgements",
3109and any sections Entitled "Dedications". You must delete all sections
3110Entitled "Endorsements".
3111
3112
31136. COLLECTIONS OF DOCUMENTS
3114
3115You may make a collection consisting of the Document and other
3116documents released under this License, and replace the individual
3117copies of this License in the various documents with a single copy
3118that is included in the collection, provided that you follow the rules
3119of this License for verbatim copying of each of the documents in all
3120other respects.
3121
3122You may extract a single document from such a collection, and
3123distribute it individually under this License, provided you insert a
3124copy of this License into the extracted document, and follow this
3125License in all other respects regarding verbatim copying of that
3126document.
3127
3128
31297. AGGREGATION WITH INDEPENDENT WORKS
3130
3131A compilation of the Document or its derivatives with other separate
3132and independent documents or works, in or on a volume of a storage or
3133distribution medium, is called an "aggregate" if the copyright
3134resulting from the compilation is not used to limit the legal rights
3135of the compilation's users beyond what the individual works permit.
3136When the Document is included in an aggregate, this License does not
3137apply to the other works in the aggregate which are not themselves
3138derivative works of the Document.
3139
3140If the Cover Text requirement of section 3 is applicable to these
3141copies of the Document, then if the Document is less than one half of
3142the entire aggregate, the Document's Cover Texts may be placed on
3143covers that bracket the Document within the aggregate, or the
3144electronic equivalent of covers if the Document is in electronic form.
3145Otherwise they must appear on printed covers that bracket the whole
3146aggregate.
3147
3148
31498. TRANSLATION
3150
3151Translation is considered a kind of modification, so you may
3152distribute translations of the Document under the terms of section 4.
3153Replacing Invariant Sections with translations requires special
3154permission from their copyright holders, but you may include
3155translations of some or all Invariant Sections in addition to the
3156original versions of these Invariant Sections. You may include a
3157translation of this License, and all the license notices in the
3158Document, and any Warranty Disclaimers, provided that you also include
3159the original English version of this License and the original versions
3160of those notices and disclaimers. In case of a disagreement between
3161the translation and the original version of this License or a notice
3162or disclaimer, the original version will prevail.
3163
3164If a section in the Document is Entitled "Acknowledgements",
3165"Dedications", or "History", the requirement (section 4) to Preserve
3166its Title (section 1) will typically require changing the actual
3167title.
3168
3169
31709. TERMINATION
3171
3172You may not copy, modify, sublicense, or distribute the Document
3173except as expressly provided under this License. Any attempt
3174otherwise to copy, modify, sublicense, or distribute it is void, and
3175will automatically terminate your rights under this License.
3176
3177However, if you cease all violation of this License, then your license
3178from a particular copyright holder is reinstated (a) provisionally,
3179unless and until the copyright holder explicitly and finally
3180terminates your license, and (b) permanently, if the copyright holder
3181fails to notify you of the violation by some reasonable means prior to
318260 days after the cessation.
3183
3184Moreover, your license from a particular copyright holder is
3185reinstated permanently if the copyright holder notifies you of the
3186violation by some reasonable means, this is the first time you have
3187received notice of violation of this License (for any work) from that
3188copyright holder, and you cure the violation prior to 30 days after
3189your receipt of the notice.
3190
3191Termination of your rights under this section does not terminate the
3192licenses of parties who have received copies or rights from you under
3193this License. If your rights have been terminated and not permanently
3194reinstated, receipt of a copy of some or all of the same material does
3195not give you any rights to use it.
3196
3197
319810. FUTURE REVISIONS OF THIS LICENSE
3199
3200The Free Software Foundation may publish new, revised versions of the
3201GNU Free Documentation License from time to time. Such new versions
3202will be similar in spirit to the present version, but may differ in
3203detail to address new problems or concerns. See
3204https://www.gnu.org/licenses/.
3205
3206Each version of the License is given a distinguishing version number.
3207If the Document specifies that a particular numbered version of this
3208License "or any later version" applies to it, you have the option of
3209following the terms and conditions either of that specified version or
3210of any later version that has been published (not as a draft) by the
3211Free Software Foundation. If the Document does not specify a version
3212number of this License, you may choose any version ever published (not
3213as a draft) by the Free Software Foundation. If the Document
3214specifies that a proxy can decide which future versions of this
3215License can be used, that proxy's public statement of acceptance of a
3216version permanently authorizes you to choose that version for the
3217Document.
3218
321911. RELICENSING
3220
3221"Massive Multiauthor Collaboration Site" (or "MMC Site") means any
3222World Wide Web server that publishes copyrightable works and also
3223provides prominent facilities for anybody to edit those works. A
3224public wiki that anybody can edit is an example of such a server. A
3225"Massive Multiauthor Collaboration" (or "MMC") contained in the site
3226means any set of copyrightable works thus published on the MMC site.
3227
3228"CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
3229license published by Creative Commons Corporation, a not-for-profit
3230corporation with a principal place of business in San Francisco,
3231California, as well as future copyleft versions of that license
3232published by that same organization.
3233
3234"Incorporate" means to publish or republish a Document, in whole or in
3235part, as part of another Document.
3236
3237An MMC is "eligible for relicensing" if it is licensed under this
3238License, and if all works that were first published under this License
3239somewhere other than this MMC, and subsequently incorporated in whole or
3240in part into the MMC, (1) had no cover texts or invariant sections, and
3241(2) were thus incorporated prior to November 1, 2008.
3242
3243The operator of an MMC Site may republish an MMC contained in the site
3244under CC-BY-SA on the same site at any time before August 1, 2009,
3245provided the MMC is eligible for relicensing.
3246
3247
3248ADDENDUM: How to use this License for your documents
3249
3250To use this License in a document you have written, include a copy of
3251the License in the document and put the following copyright and
3252license notices just after the title page:
3253
3254 Copyright (c) YEAR YOUR NAME.
3255 Permission is granted to copy, distribute and/or modify this document
3256 under the terms of the GNU Free Documentation License, Version 1.3
3257 or any later version published by the Free Software Foundation;
3258 with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
3259 A copy of the license is included in the section entitled "GNU
3260 Free Documentation License".
3261
3262If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
3263replace the "with...Texts." line with this:
3264
3265 with the Invariant Sections being LIST THEIR TITLES, with the
3266 Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
3267
3268If you have Invariant Sections without Cover Texts, or some other
3269combination of the three, merge those two alternatives to suit the
3270situation.
3271
3272If your document contains nontrivial examples of program code, we
3273recommend releasing these examples in parallel under your choice of
3274free software license, such as the GNU General Public License,
3275to permit their use in free software.
3276#+end_export
3277
3278#+html: <!--
3279
3280* Indices
3281:properties:
3282:custom_id: h:55104b26-8e94-46cf-9975-43ea00316489
3283:end:
3284
3285** Function index
3286:properties:
3287:index: fn
3288:custom_id: h:6bec5005-529c-4521-ae05-3d990baffb5b
3289:end:
3290
3291** Variable index
3292:properties:
3293:index: vr
3294:custom_id: h:16ad8df6-b015-40a9-9259-03d4f7a23ee4
3295:end:
3296
3297** Concept index
3298:properties:
3299:index: cp
3300:custom_id: h:6aa7a656-884b-4c39-b759-087e412eec13
3301:end:
3302
3303#+html: -->
diff --git a/etc/themes/modus-operandi-theme.el b/etc/themes/modus-operandi-theme.el
index 9d6e9ad50fd..ce2c75e9a89 100644
--- a/etc/themes/modus-operandi-theme.el
+++ b/etc/themes/modus-operandi-theme.el
@@ -1,4663 +1,65 @@
1;;; modus-operandi-theme.el --- Accessible light theme (WCAG AAA) -*- lexical-binding:t -*- 1;;; modus-operandi-theme.el --- Accessible light theme (WCAG AAA) -*- lexical-binding:t -*-
2 2
3;; Copyright (C) 2019-2021 Free Software Foundation, Inc. 3;; Copyright (C) 2019-2021 Free Software Foundation, Inc.
4 4
5;; Author: Protesilaos Stavrou <info@protesilaos.com> 5;; Author: Protesilaos Stavrou <info@protesilaos.com>
6;; URL: https://gitlab.com/protesilaos/modus-themes 6;; URL: https://gitlab.com/protesilaos/modus-themes
7;; Version: 0.13.0 7;; Version: 1.2.0
8;; Package-Requires: ((emacs "26.1")) 8;; Package-Requires: ((emacs "26.1"))
9;; Keywords: faces, theme, accessibility 9;; Keywords: faces, theme, accessibility
10 10
11;; This file is part of GNU Emacs. 11;; This file is part of GNU Emacs.
12 12
13;; GNU Emacs is free software: you can redistribute it and/or modify 13;; This program is free software; you can redistribute it and/or modify
14;; it under the terms of the GNU General Public License as published by 14;; it under the terms of the GNU General Public License as published by
15;; the Free Software Foundation, either version 3 of the License, or 15;; the Free Software Foundation, either version 3 of the License, or (at
16;; (at your option) any later version. 16;; your option) any later version.
17 17;;
18;; GNU Emacs is distributed in the hope that it will be useful, 18;; This program is distributed in the hope that it will be useful, but
19;; but WITHOUT ANY WARRANTY; without even the implied warranty of 19;; WITHOUT ANY WARRANTY; without even the implied warranty of
20;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
21;; GNU General Public License for more details. 21;; General Public License for more details.
22 22;;
23;; You should have received a copy of the GNU General Public License 23;; You should have received a copy of the GNU General Public License
24;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. 24;; along with this program. If not, see <https://www.gnu.org/licenses/>.
25 25
26;;; Commentary: 26;;; Commentary:
27;; 27;;
28;; This theme is designed for colour-contrast accessibility. 28;; Modus Operandi is the light variant of the Modus themes (Modus
29;; 29;; Vivendi is the dark one). The themes are designed for color-contrast
30;; 1. Provide a consistent minimum contrast ratio between background and 30;; accessibility. More specifically:
31;; foreground values of 7:1 or higher. This meets the highest such
32;; accessibility criterion per the guidelines of the Worldwide Web
33;; Consortium's Working Group on Accessibility (WCAG AAA standard).
34;; 31;;
35;; 2. Offer as close to full face coverage as possible. The list is 32;; 1. Provide a consistent minimum contrast ratio between background
36;; already quite long (see further below), with more additions to follow 33;; and foreground values of 7:1 or higher. This meets the highest
37;; as part of the ongoing development process. 34;; such accessibility criterion per the guidelines of the Worldwide
35;; Web Consortium's Working Group on Accessibility (WCAG AAA
36;; standard).
38;; 37;;
39;; The theme provides the following customisation options, all of which 38;; 2. Offer as close to full face coverage as possible. The list is
40;; are disabled by default: 39;; already quite long, with more additions to follow as part of the
40;; ongoing development process.
41;; 41;;
42;; modus-operandi-theme-slanted-constructs (boolean) 42;; For a complete view of the project, also refer to the following files
43;; modus-operandi-theme-bold-constructs (boolean) 43;; (should be distributed in the same repository/directory as the
44;; modus-operandi-theme-variable-pitch-headings (boolean) 44;; current item):
45;; modus-operandi-theme-no-mixed-fonts (boolean)
46;; modus-operandi-theme-headings (alist)
47;; modus-operandi-theme-scale-headings (boolean)
48;; modus-operandi-theme-fringes (choice)
49;; modus-operandi-theme-org-blocks (choice)
50;; modus-operandi-theme-prompts (choice)
51;; modus-operandi-theme-mode-line (choice)
52;; modus-operandi-theme-diffs (choice)
53;; modus-operandi-theme-faint-syntax (boolean)
54;; modus-operandi-theme-intense-hl-line (boolean)
55;; modus-operandi-theme-intense-paren-match (boolean)
56;; modus-operandi-theme-no-link-underline (boolean)
57;; modus-operandi-theme-completions (choice)
58;; modus-operandi-theme-override-colors-alist (alist)
59;; 45;;
60;; The default scale is as follows (it can be customised as well): 46;; - modus-themes.el (Main code shared between the themes)
61;; 47;; - modus-vivendi-theme.el (Dark theme)
62;; modus-operandi-theme-scale-1 1.05
63;; modus-operandi-theme-scale-2 1.1
64;; modus-operandi-theme-scale-3 1.15
65;; modus-operandi-theme-scale-4 1.2
66;; modus-operandi-theme-scale-5 1.3
67;;
68;; What follows is the list of explicitly supported packages or face
69;; groups (there are implicitly supported packages as well, which
70;; inherit from font-lock or some basic group). You are encouraged to
71;; notify me of any missing package or change you would like to see.
72;;
73;; ace-window
74;; ag
75;; alert
76;; all-the-icons
77;; annotate
78;; anzu
79;; apropos
80;; apt-sources-list
81;; artbollocks-mode
82;; auctex and TeX
83;; auto-dim-other-buffers
84;; avy
85;; awesome-tray
86;; binder
87;; bm
88;; bongo
89;; boon
90;; breakpoint (provided by built-in gdb-mi.el)
91;; buffer-expose
92;; calendar and diary
93;; calfw
94;; centaur-tabs
95;; change-log and log-view (`vc-print-log' and `vc-print-root-log')
96;; cider
97;; circe
98;; color-rg
99;; column-enforce-mode
100;; company-mode
101;; company-posframe
102;; compilation-mode
103;; completions
104;; counsel
105;; counsel-css
106;; counsel-notmuch
107;; counsel-org-capture-string
108;; cov
109;; cperl-mode
110;; csv-mode
111;; ctrlf
112;; custom (M-x customize)
113;; dap-mode
114;; dashboard (emacs-dashboard)
115;; deadgrep
116;; debbugs
117;; define-word
118;; deft
119;; dictionary
120;; diff-hl
121;; diff-mode
122;; dim-autoload
123;; dir-treeview
124;; dired
125;; dired-async
126;; dired-git
127;; dired-git-info
128;; dired-narrow
129;; dired-subtree
130;; diredfl
131;; disk-usage
132;; doom-modeline
133;; dynamic-ruler
134;; easy-jekyll
135;; easy-kill
136;; ebdb
137;; ediff
138;; eglot
139;; el-search
140;; eldoc
141;; eldoc-box
142;; elfeed
143;; elfeed-score
144;; emms
145;; enhanced-ruby-mode
146;; epa
147;; equake
148;; erc
149;; eros
150;; ert
151;; eshell
152;; eshell-fringe-status
153;; eshell-git-prompt
154;; eshell-prompt-extras (epe)
155;; eshell-syntax-highlighting
156;; evil (evil-mode)
157;; evil-goggles
158;; evil-visual-mark-mode
159;; eww
160;; eyebrowse
161;; fancy-dabbrev
162;; flycheck
163;; flycheck-color-mode-line
164;; flycheck-indicator
165;; flycheck-posframe
166;; flymake
167;; flyspell
168;; flyspell-correct
169;; flx
170;; freeze-it
171;; frog-menu
172;; focus
173;; fold-this
174;; font-lock (generic syntax highlighting)
175;; forge
176;; fountain (fountain-mode)
177;; geiser
178;; git-commit
179;; git-gutter (and variants)
180;; git-lens
181;; git-rebase
182;; git-timemachine
183;; git-walktree
184;; gnus
185;; golden-ratio-scroll-screen
186;; helm
187;; helm-ls-git
188;; helm-switch-shell
189;; helm-xref
190;; helpful
191;; highlight-blocks
192;; highlight-defined
193;; highlight-escape-sequences (`hes-mode')
194;; highlight-indentation
195;; highlight-numbers
196;; highlight-symbol
197;; highlight-tail
198;; highlight-thing
199;; hl-defined
200;; hl-fill-column
201;; hl-line-mode
202;; hl-todo
203;; hydra
204;; hyperlist
205;; ibuffer
206;; icomplete
207;; ido-mode
208;; iedit
209;; iflipb
210;; imenu-list
211;; indium
212;; info
213;; info-colors
214;; interaction-log
215;; ioccur
216;; isearch, occur, etc.
217;; ivy
218;; ivy-posframe
219;; jira (org-jira)
220;; journalctl-mode
221;; js2-mode
222;; julia
223;; jupyter
224;; kaocha-runner
225;; keycast
226;; line numbers (`display-line-numbers-mode' and global variant)
227;; lsp-mode
228;; lsp-ui
229;; magit
230;; magit-imerge
231;; man
232;; markdown-mode
233;; markup-faces (`adoc-mode')
234;; mentor
235;; messages
236;; minibuffer-line
237;; minimap
238;; modeline
239;; mood-line
240;; mpdel
241;; mu4e
242;; mu4e-conversation
243;; multiple-cursors
244;; neotree
245;; no-emoji
246;; notmuch
247;; num3-mode
248;; nxml-mode
249;; objed
250;; orderless
251;; org
252;; org-journal
253;; org-noter
254;; org-pomodoro
255;; org-recur
256;; org-roam
257;; org-superstar
258;; org-table-sticky-header
259;; org-treescope
260;; origami
261;; outline-mode
262;; outline-minor-faces
263;; package (M-x list-packages)
264;; page-break-lines
265;; paradox
266;; paren-face
267;; parrot
268;; pass
269;; persp-mode
270;; perspective
271;; phi-grep
272;; phi-search
273;; pkgbuild-mode
274;; pomidor
275;; powerline
276;; powerline-evil
277;; proced
278;; prodigy
279;; racket-mode
280;; rainbow-blocks
281;; rainbow-identifiers
282;; rainbow-delimiters
283;; rcirc
284;; regexp-builder (also known as `re-builder')
285;; rg
286;; ripgrep
287;; rmail
288;; ruler-mode
289;; sallet
290;; selectrum
291;; semantic
292;; sesman
293;; shell-script-mode
294;; show-paren-mode
295;; side-notes
296;; skewer-mode
297;; smart-mode-line
298;; smartparens
299;; smerge
300;; spaceline
301;; speedbar
302;; spell-fu
303;; stripes
304;; suggest
305;; switch-window
306;; swiper
307;; swoop
308;; sx
309;; symbol-overlay
310;; tab-bar-mode
311;; tab-line-mode
312;; syslog-mode
313;; table (built-in table.el)
314;; telephone-line
315;; term
316;; tomatinho
317;; transient (pop-up windows like Magit's)
318;; trashed
319;; treemacs
320;; tty-menu
321;; tuareg
322;; typescript
323;; undo-tree
324;; vc (built-in mode line status for version control)
325;; vc-annotate (C-x v g)
326;; vdiff
327;; vimish-fold
328;; visible-mark
329;; visual-regexp
330;; volatile-highlights
331;; vterm
332;; wcheck-mode
333;; web-mode
334;; wgrep
335;; which-function-mode
336;; which-key
337;; whitespace-mode
338;; window-divider-mode
339;; winum
340;; writegood-mode
341;; woman
342;; xah-elisp-mode
343;; xref
344;; xterm-color (and ansi-colors)
345;; yaml-mode
346;; yasnippet
347;; ztree
348 48
349;;; Code: 49;;; Code:
350 50
351 51
352 52
353(deftheme modus-operandi 53(require-theme 'modus-themes)
354 "Light theme that conforms with the highest accessibility
355 standard for colour contrast between background and
356 foreground elements (WCAG AAA).")
357
358;;; Custom faces
359
360;; These faces will be inherited by actual constructs. They are meant
361;; for those cases where a face needs to distinguish its output from
362;; the rest of the text, such as `isearch' and `occur'… We define
363;; these separately in order to combine each colour with its
364;; appropriate foreground value. This is to ensure a consistent
365;; contrast ratio of >= 7:1.
366(defgroup modus-theme ()
367 "Theme that ensures WCAG AAA accessibility (contrast ratio
368between foreground and background is >= 7:1)."
369 :group 'faces
370 :prefix "modus-theme-"
371 :link '(url-link :tag "GitLab" "https://gitlab.com/protesilaos/modus-themes")
372 :tag "Modus Operandi")
373
374(defface modus-theme-subtle-red nil nil)
375(defface modus-theme-subtle-green nil nil)
376(defface modus-theme-subtle-yellow nil nil)
377(defface modus-theme-subtle-blue nil nil)
378(defface modus-theme-subtle-magenta nil nil)
379(defface modus-theme-subtle-cyan nil nil)
380(defface modus-theme-subtle-neutral nil nil)
381(defface modus-theme-intense-red nil nil)
382(defface modus-theme-intense-green nil nil)
383(defface modus-theme-intense-yellow nil nil)
384(defface modus-theme-intense-blue nil nil)
385(defface modus-theme-intense-magenta nil nil)
386(defface modus-theme-intense-cyan nil nil)
387(defface modus-theme-intense-neutral nil nil)
388(defface modus-theme-refine-red nil nil)
389(defface modus-theme-refine-green nil nil)
390(defface modus-theme-refine-yellow nil nil)
391(defface modus-theme-refine-blue nil nil)
392(defface modus-theme-refine-magenta nil nil)
393(defface modus-theme-refine-cyan nil nil)
394(defface modus-theme-active-red nil nil)
395(defface modus-theme-active-green nil nil)
396(defface modus-theme-active-yellow nil nil)
397(defface modus-theme-active-blue nil nil)
398(defface modus-theme-active-magenta nil nil)
399(defface modus-theme-active-cyan nil nil)
400(defface modus-theme-fringe-red nil nil)
401(defface modus-theme-fringe-green nil nil)
402(defface modus-theme-fringe-yellow nil nil)
403(defface modus-theme-fringe-blue nil nil)
404(defface modus-theme-fringe-magenta nil nil)
405(defface modus-theme-fringe-cyan nil nil)
406(defface modus-theme-nuanced-red nil nil)
407(defface modus-theme-nuanced-green nil nil)
408(defface modus-theme-nuanced-yellow nil nil)
409(defface modus-theme-nuanced-blue nil nil)
410(defface modus-theme-nuanced-magenta nil nil)
411(defface modus-theme-nuanced-cyan nil nil)
412(defface modus-theme-special-cold nil nil)
413(defface modus-theme-special-mild nil nil)
414(defface modus-theme-special-warm nil nil)
415(defface modus-theme-special-calm nil nil)
416(defface modus-theme-diff-added nil nil)
417(defface modus-theme-diff-changed nil nil)
418(defface modus-theme-diff-removed nil nil)
419(defface modus-theme-diff-refine-added nil nil)
420(defface modus-theme-diff-refine-changed nil nil)
421(defface modus-theme-diff-refine-removed nil nil)
422(defface modus-theme-diff-focus-added nil nil)
423(defface modus-theme-diff-focus-changed nil nil)
424(defface modus-theme-diff-focus-removed nil nil)
425(defface modus-theme-diff-heading nil nil)
426(defface modus-theme-pseudo-header nil nil)
427(defface modus-theme-mark-alt nil nil)
428(defface modus-theme-mark-del nil nil)
429(defface modus-theme-mark-sel nil nil)
430(defface modus-theme-mark-symbol nil nil)
431(defface modus-theme-heading-1 nil nil)
432(defface modus-theme-heading-2 nil nil)
433(defface modus-theme-heading-3 nil nil)
434(defface modus-theme-heading-4 nil nil)
435(defface modus-theme-heading-5 nil nil)
436(defface modus-theme-heading-6 nil nil)
437(defface modus-theme-heading-7 nil nil)
438(defface modus-theme-heading-8 nil nil)
439(defface modus-theme-hl-line nil nil)
440
441;;; Customisation options
442
443;; User-facing customisation options. They are all deactivated by
444;; default (users must opt in).
445(defcustom modus-operandi-theme-slanted-constructs nil
446 "Use slanted text in more code constructs (italics or oblique)."
447 :type 'boolean)
448
449(defcustom modus-operandi-theme-bold-constructs nil
450 "Use bold text in more code constructs."
451 :type 'boolean)
452
453(define-obsolete-variable-alias 'modus-operandi-theme-proportional-fonts
454 'modus-operandi-theme-variable-pitch-headings "`modus-operandi-theme' 0.11.0")
455
456(defcustom modus-operandi-theme-proportional-fonts nil
457 "Use proportional fonts (variable-pitch) in headings."
458 :type 'boolean)
459
460(defcustom modus-operandi-theme-variable-pitch-headings nil
461 "Use proportional fonts (variable-pitch) in headings."
462 :type 'boolean)
463
464(defcustom modus-operandi-theme-no-mixed-fonts nil
465 "Disable inheritance from `fixed-pitch' in some faces.
466
467This is done by default to allow spacing-sensitive constructs,
468such as Org tables and code blocks, to remain monospaced when
469users opt for something like the command `variable-pitch-mode'.
470The downside with the default is that users need to explicitly
471configure the font family of `fixed-pitch' in order to get a
472consistent experience. That may be something they do not want to
473do. Hence this option to disable any kind of technique for
474mixing fonts."
475 :type 'boolean)
476
477(make-obsolete 'modus-operandi-theme-rainbow-headings
478 'modus-operandi-theme-headings
479 "`modus-operandi-theme' 0.13.0")
480
481(defcustom modus-operandi-theme-rainbow-headings nil
482 "Use more saturated colours for headings."
483 :type 'boolean)
484
485(make-obsolete 'modus-operandi-theme-section-headings
486 'modus-operandi-theme-headings
487 "`modus-operandi-theme' 0.13.0")
488
489(defcustom modus-operandi-theme-section-headings nil
490 "Use a background and an overline in headings."
491 :type 'boolean)
492
493(defcustom modus-operandi-theme-headings
494 '((t . nil))
495 "Alist of styles for headings, with optional value per level.
496
497To control faces per level from 1-8, use something like this:
498
499 (setq modus-operandi-theme-headings
500 '((1 . highlight)
501 (2 . line)
502 (t . rainbow-line-no-bold)))
503
504To set a uniform value for all heading levels, use this pattern:
505
506 (setq modus-operandi-theme-headings
507 '((t . rainbow-line-no-bold)))
508
509The default uses a fairly desaturated foreground value in
510combination with a bold typographic weight. To specify this
511style for a given level N (assuming you wish to have another
512fallback option), just specify the value t like this:
513
514 (setq modus-operandi-theme-headings
515 '((1 . t)
516 (2 . line)
517 (t . rainbow-line-no-bold)))
518
519A description of all possible values:
520
521+ `no-bold' retains the default text colour while removing
522 the typographic weight.
523
524+ `line' is the same as the default plus an overline over the
525 heading.
526
527+ `line-no-bold' is the same as `line' without bold weight.
528
529+ `rainbow' uses a more colourful foreground in combination
530 with bold weight.
531
532+ `rainbow-line' is the same as `rainbow' plus an overline.
533
534+ `rainbow-line-no-bold' is the same as `rainbow-line' without
535 the bold weight.
536
537+ `highlight' retains the default style of a fairly desaturated
538 foreground combined with a bold weight and add to it a subtle
539 accented background.
540
541+ `highlight-no-bold' is the same as `highlight' without a bold
542 weight.
543
544+ `rainbow-highlight' is the same as `highlight' but with a more
545 colourful foreground.
546
547+ `rainbow-highlight-no-bold' is the same as `rainbow-highlight'
548 without a bold weight.
549
550+ `section' retains the default looks and adds to them both an
551 overline and a slightly accented background. It is, in effect,
552 a combination of the `line' and `highlight' values.
553
554+ `section-no-bold' is the same as `section' without a bold
555 weight.
556
557+ `rainbow-section' is the same as `section' but with a more
558 colourful foreground.
559
560+ `rainbow-section-no-bold' is the same as `rainbow-section'
561 without a bold weight."
562 :type
563 '(alist
564 :key-type symbol
565 :value-type
566 (choice (const :tag "Fairly desaturated foreground with bold weight (default)" t)
567 (const :tag "Like the default without bold weight" no-bold)
568 (const :tag "Like the default plus overline" line)
569 (const :tag "Like `line' without bold weight" line-no-bold)
570 (const :tag "Like the default but with more colourful foreground" rainbow)
571 (const :tag "Like `rainbow' plus overline" rainbow-line)
572 (const :tag "Like `rainbow' without bold weight" rainbow-no-bold)
573 (const :tag "Like `rainbow-line' without bold weight" rainbow-line-no-bold)
574 (const :tag "Like the default plus subtle background" highlight)
575 (const :tag "Like `highlight' without bold weight" highlight-no-bold)
576 (const :tag "Like `highlight' with more colourful foreground" rainbow-highlight)
577 (const :tag "Like `rainbow-highlight' without bold weight" rainbow-highlight-no-bold)
578 (const :tag "Like `highlight' plus overline" section)
579 (const :tag "Like `section' without bold weight" section-no-bold)
580 (const :tag "Like `section' with more colourful foreground" rainbow-section)
581 (const :tag "Like `rainbow-section' without bold weight" rainbow-section-no-bold))))
582
583(defcustom modus-operandi-theme-scale-headings nil
584 "Use font scaling for headings."
585 :type 'boolean)
586
587(defcustom modus-operandi-theme-scale-1 1.05
588 "Font size that is slightly larger than the base value.
589The default is a floating point that is interpreted as a multiple
590of the base font size. However, the variable also accepts an
591integer, understood as an absolute height (e.g. a value of 140 is
592the same as setting the font at 14 point size).
593
594For more on the matter, read the documentation of
595`set-face-attribute', specifically the ':height' section."
596 :type 'number)
597
598(defcustom modus-operandi-theme-scale-2 1.1
599 "Font size slightly larger than `modus-operandi-theme-scale-1'.
600The default is a floating point that is interpreted as a multiple
601of the base font size. However, the variable also accepts an
602integer, understood as an absolute height (e.g. a value of 140 is
603the same as setting the font at 14 point size).
604
605For more on the matter, read the documentation of
606`set-face-attribute', specifically the ':height' section."
607 :type 'number)
608
609(defcustom modus-operandi-theme-scale-3 1.15
610 "Font size slightly larger than `modus-operandi-theme-scale-2'.
611The default is a floating point that is interpreted as a multiple
612of the base font size. However, the variable also accepts an
613integer, understood as an absolute height (e.g. a value of 140 is
614the same as setting the font at 14 point size).
615
616For more on the matter, read the documentation of
617`set-face-attribute', specifically the ':height' section."
618 :type 'number)
619
620(defcustom modus-operandi-theme-scale-4 1.2
621 "Font size slightly larger than `modus-operandi-theme-scale-3'.
622The default is a floating point that is interpreted as a multiple
623of the base font size. However, the variable also accepts an
624integer, understood as an absolute height (e.g. a value of 140 is
625the same as setting the font at 14 point size).
626
627For more on the matter, read the documentation of
628`set-face-attribute', specifically the ':height' section."
629 :type 'number)
630
631(defcustom modus-operandi-theme-scale-5 1.3
632 "Font size slightly larger than `modus-operandi-theme-scale-4'.
633The default is a floating point that is interpreted as a multiple
634of the base font size. However, the variable also accepts an
635integer, understood as an absolute height (e.g. a value of 140 is
636the same as setting the font at 14 point size).
637
638For more on the matter, read the documentation of
639`set-face-attribute', specifically the ':height' section."
640 :type 'number)
641
642(make-obsolete 'modus-operandi-theme-visible-fringes
643 'modus-operandi-theme-fringes
644 "`modus-operandi-theme' 0.12.0")
645
646(defcustom modus-operandi-theme-visible-fringes nil
647 "Use a visible style for fringes."
648 :type 'boolean)
649
650(defcustom modus-operandi-theme-fringes nil
651 "Define the visibility of fringes.
652
653Nil means the fringes have no background colour. Option `subtle'
654will apply a greyscale value that is visible yet close to the
655main buffer background colour. Option `intense' will use a more
656pronounced greyscale value."
657 :type '(choice
658 (const :tag "No visible fringes (default)" nil)
659 (const :tag "Subtle greyscale background" subtle)
660 (const :tag "Intense greyscale background" intense)))
661
662(make-obsolete 'modus-operandi-theme-distinct-org-blocks
663 'modus-operandi-theme-org-blocks
664 "`modus-operandi-theme' 0.11.0")
665
666(defcustom modus-operandi-theme-distinct-org-blocks nil
667 "Use a distinct neutral background for `org-mode' blocks."
668 :type 'boolean)
669
670(make-obsolete 'modus-operandi-theme-rainbow-org-src-blocks
671 'modus-operandi-theme-org-blocks
672 "`modus-operandi-theme' 0.11.0")
673
674(defcustom modus-operandi-theme-rainbow-org-src-blocks nil
675 "Use colour-coded backgrounds for `org-mode' source blocks.
676The colour in use depends on the language (send feedback to
677include more languages)."
678 :type 'boolean)
679
680(defcustom modus-operandi-theme-org-blocks nil
681 "Use a subtle grey or colour-coded background for Org blocks.
682
683Nil means that the block will have no background of its own and
684will use the default that applies to the rest of the buffer.
685
686Option `greyscale' will apply a subtle neutral grey background to
687the block's contents. It also affects the begin and end lines of
688the block: their background will be extended to the edge of the
689window for Emacs version >= 27 where the ':extend' keyword is
690recognised by `set-face-attribute'.
691
692Option `rainbow' will use an accented background for the contents
693of the block. The exact colour will depend on the programming
694language and is controlled by the `org-src-block-faces'
695variable (refer to the theme's source code for the current
696association list)."
697 :type '(choice
698 (const :tag "No Org block background (default)" nil)
699 (const :tag "Subtle grey block background" greyscale)
700 (const :tag "Colour-coded background per programming language" rainbow)))
701
702(make-obsolete 'modus-operandi-theme-3d-modeline
703 'modus-operandi-theme-mode-line
704 "`modus-operandi-theme' 0.13.0")
705
706(defcustom modus-operandi-theme-3d-modeline nil
707 "Use a three-dimensional style for the active mode line."
708 :type 'boolean)
709
710(defcustom modus-operandi-theme-mode-line nil
711 "Adjust the overall style of the mode line.
712
713Nil is a two-dimensional rectangle with a border around it. The
714active and the inactive modelines use different shades of
715greyscale values for the background and foreground.
716
717A `3d' value will apply a three-dimensional effect to the active
718modeline. The inactive modelines remain two-dimensional and are
719toned down a bit, relative to the nil value.
720
721The `moody' option is meant to optimise the modeline for use with
722the library of the same name. This practically means to remove
723the box effect and rely on underline and overline properties
724instead. It also tones down the inactive modelines. Despite its
725intended purpose, this option can also be used without the
726`moody' library."
727 :type '(choice
728 (const :tag "Two-dimensional box (default)" nil)
729 (const :tag "Three-dimensional style for the active mode line" 3d)
730 (const :tag "No box effects, which are optimal for use with the `moody' library" moody)))
731
732(make-obsolete 'modus-operandi-theme-subtle-diffs
733 'modus-operandi-theme-diffs
734 "`modus-operandi-theme' 0.13.0")
735
736(defcustom modus-operandi-theme-subtle-diffs nil
737 "Use fewer/dim backgrounds in `diff-mode', `ediff',`magit'."
738 :type 'boolean)
739 54
740(defcustom modus-operandi-theme-diffs nil 55(deftheme modus-operandi
741 "Adjust the overall styles of diffs. 56 "Accessible and customizable light theme (WCAG AAA standard).
742 57Conforms with the highest legibility standard for color contrast
743Nil means to use fairly intense colour combinations for diffs. 58between background and foreground in any given piece of text,
744For example, you get a rich green background with a green 59which corresponds to a minimum contrast in relative luminance of
745foreground for added lines. Word-wise or 'refined' diffs follow 607:1.")
746the same pattern but use different shades of those colours to
747remain distinct.
748
749A `desaturated' value follows the same principles as with the nil
750option, while it tones down all relevant colours.
751
752Option `fg-only' will remove all accented backgrounds, except
753from word-wise changes. It instead uses colour-coded foreground
754values to differentiate between added/removed/changed lines. If
755a background is necessary, such as with `ediff', then a subtle
756greyscale value is used."
757 :type '(choice
758 (const :tag "Intensely coloured backgrounds (default)" nil)
759 (const :tag "Slightly accented backgrounds with tinted text" desaturated)
760 (const :tag "No backgrounds, except for refined diffs" fg-only)))
761
762(make-obsolete 'modus-operandi-theme-intense-standard-completions
763 'modus-operandi-theme-completions
764 "`modus-operandi-theme' 0.12.0")
765
766(defcustom modus-operandi-theme-intense-standard-completions nil
767 "Use prominent backgrounds for Icomplete, Ido, or similar."
768 :type 'boolean)
769
770(defcustom modus-operandi-theme-completions nil
771 "Apply special styles to the UI of completion frameworks.
772
773This concerns Icomplete, Ivy, Helm, Selectrum, Ido, as well as
774any other tool meant to enhance their experience. The effect
775will vary depending on the completion framework.
776
777Nil means to remain faithful to the metaphors that each UI
778establishes. For example, Icomplete and Ido only use foreground
779colours to style their matches, whereas Ivy or Helm rely on an
780aesthetic that combines coloured backgrounds with appropriate
781text colour.
782
783Option `moderate' will apply a combination of background and
784foreground that is fairly subtle. For Icomplete and the like,
785this constitutes a departure from their standard style. While
786Ivy, Helm, and the others, will use less pronounced colours for
787applicable contexts.
788
789Option `opinionated' will apply colour combinations that
790refashion the completion UI. So Icomplete et al will now use
791styles that resemble the defaults of Ivy and co., while the
792latter group will revert to an even more nuanced aesthetic."
793 :type '(choice
794 (const :tag "Respect the framework's established aesthetic (default)" nil)
795 (const :tag "Subtle backgrounds for various elements" moderate)
796 (const :tag "Radical alternative to the framework's looks" opinionated)))
797
798(defcustom modus-operandi-theme-prompts nil
799 "Use subtle or intense styles for minibuffer and REPL prompts.
800
801Nil means to only use an accented foreground colour.
802
803Options `subtle' and `intense' will change both the background
804and the foreground values. The latter has a more pronounced
805effect than the former."
806 :type '(choice
807 (const :tag "No prompt background (default)" nil)
808 (const :tag "Subtle accented background for the prompt" subtle)
809 (const :tag "Intense background and foreground for the prompt" intense)))
810
811(defcustom modus-operandi-theme-intense-hl-line nil
812 "Use more prominent background for command `hl-line-mode'."
813 :type 'boolean)
814
815(defcustom modus-operandi-theme-intense-paren-match nil
816 "Use more prominent colour for parenthesis matching."
817 :type 'boolean)
818
819(defcustom modus-operandi-theme-faint-syntax nil
820 "Use less saturated colours for code syntax highlighting."
821 :type 'boolean)
822
823(defcustom modus-operandi-theme-no-link-underline nil
824 "Do not underline links."
825 :type 'boolean)
826
827;;; Internal functions
828
829;; Helper functions that are meant to ease the implementation of the
830;; above customisation options.
831(defun modus-operandi-theme-bold-weight ()
832 "Conditional use of a heavier text weight."
833 (when modus-operandi-theme-bold-constructs
834 (list :inherit 'bold)))
835
836(defun modus-operandi-theme-mixed-fonts ()
837 "Conditional application of `fixed-pitch' inheritance."
838 (unless modus-operandi-theme-no-mixed-fonts
839 (list :inherit 'fixed-pitch)))
840
841(defun modus-operandi-theme-fringe (subtlebg intensebg)
842 "Conditional use of background colours for fringes.
843SUBTLEBG should be a subtle greyscale value. INTENSEBG must be a
844more pronounced greyscale colour."
845 (pcase modus-operandi-theme-fringes
846 ('intense (list :background intensebg))
847 ('subtle (list :background subtlebg))
848 (_ (list :background nil))))
849
850(defun modus-operandi-theme-prompt (mainfg subtlebg subtlefg intensebg intensefg)
851 "Conditional use of background colours for prompts.
852MAINFG is the prompt's standard foreground. SUBTLEBG should be a
853subtle accented background that works with SUBTLEFG. INTENSEBG
854must be a more pronounced accented colour that should be
855combinable with INTENSEFG."
856 (pcase modus-operandi-theme-prompts
857 ('intense (list :background intensebg :foreground intensefg))
858 ('subtle (list :background subtlebg :foreground subtlefg))
859 (_ (list :background nil :foreground mainfg))))
860
861(defun modus-operandi-theme-paren (normalbg intensebg)
862 "Conditional use of intense colours for matching parentheses.
863NORMALBG should the special palette colour 'bg-paren-match' or
864something similar. INTENSEBG must be easier to discern next to
865other backgrounds, such as the special palette colour
866'bg-paren-match-intense'."
867 (if modus-operandi-theme-intense-paren-match
868 (list :background intensebg)
869 (list :background normalbg)))
870
871(defun modus-operandi-theme-syntax-foreground (normal faint)
872 "Apply foreground value to code syntax.
873NORMAL is the more saturated colour, which should be the default.
874FAINT is the less saturated colour."
875 (if modus-operandi-theme-faint-syntax
876 (list :foreground faint)
877 (list :foreground normal)))
878
879(defun modus-operandi-theme-heading-p (key)
880 "Query style of KEY in `modus-operandi-theme-headings'."
881 (cdr (assoc key modus-operandi-theme-headings)))
882
883(defun modus-operandi-theme-heading (level fg fg-alt bg border)
884 "Conditional styles for `modus-operandi-theme-headings'.
885
886LEVEL is the heading's position in their order. FG is the
887default text colour. FG-ALT is an accented, more saturated value
888than the default. BG is a nuanced, typically accented,
889background that can work well with either of the foreground
890values. BORDER is a colour value that combines well with the
891background and alternative foreground."
892 (let* ((key (modus-operandi-theme-heading-p `,level))
893 (style (or key (modus-operandi-theme-heading-p t)))
894 (var (if modus-operandi-theme-variable-pitch-headings
895 'variable-pitch
896 'default)))
897 (pcase style
898 ('no-bold
899 (list :inherit `,var :foreground fg))
900 ('line
901 (list :inherit `(bold ,var) :foreground fg :overline border))
902 ('line-no-bold
903 (list :inherit `,var :foreground fg :overline border))
904 ('rainbow
905 (list :inherit `(bold ,var) :foreground fg-alt))
906 ('rainbow-no-bold
907 (list :inherit `,var :foreground fg-alt))
908 ('rainbow-line
909 (list :inherit `(bold ,var) :foreground fg-alt :overline border))
910 ('rainbow-line-no-bold
911 (list :inherit `,var :foreground fg-alt :overline border))
912 ('highlight
913 (list :inherit `(bold ,var) :background bg :foreground fg))
914 ('highlight-no-bold
915 (list :inherit `,var :background bg :foreground fg))
916 ('rainbow-highlight
917 (list :inherit `(bold ,var) :background bg :foreground fg-alt))
918 ('rainbow-highlight-no-bold
919 (list :inherit `,var :background bg :foreground fg-alt))
920 ('section
921 (append
922 (and (>= emacs-major-version 27) '(:extend t))
923 (list :inherit `(bold ,var) :background bg :foreground fg :overline border)))
924 ('section-no-bold
925 (append
926 (and (>= emacs-major-version 27) '(:extend t))
927 (list :inherit `,var :background bg :foreground fg :overline border)))
928 ('rainbow-section
929 (append
930 (and (>= emacs-major-version 27) '(:extend t))
931 (list :inherit `(bold ,var) :background bg :foreground fg-alt :overline border)))
932 ('rainbow-section-no-bold
933 (append
934 (and (>= emacs-major-version 27) '(:extend t))
935 (list :inherit `,var :background bg :foreground fg-alt :overline border)))
936 (_
937 (list :inherit `(bold ,var) :foreground fg)))))
938
939(defun modus-operandi-theme-org-block (bgblk)
940 "Conditionally set the background of Org blocks.
941BGBLK applies to a distinct neutral background. Else blocks have
942no background of their own (the default), so they look the same
943as the rest of the buffer.
944
945`modus-operandi-theme-org-blocks' also accepts a `rainbow' option
946which is applied conditionally to `org-src-block-faces' (see the
947theme's source code)."
948 (if (eq modus-operandi-theme-org-blocks 'greyscale)
949 (append
950 (and (>= emacs-major-version 27) '(:extend t))
951 (list :background bgblk))
952 (list :background nil)))
953
954(defun modus-operandi-theme-org-block-delim (bgaccent fgaccent bg fg)
955 "Conditionally set the styles of Org block delimiters.
956BG, FG, BGACCENT, FGACCENT apply a background and foreground
957colour respectively.
958
959The former pair is a greyscale combination that should be more
960distinct than the background of the block. It is applied to the
961default styles or when `modus-operandi-theme-org-blocks' is set
962to `greyscale'.
963
964The latter pair should be more subtle than the background of the
965block, as it is used when `modus-operandi-theme-org-blocks' is
966set to `rainbow'."
967 (pcase modus-operandi-theme-org-blocks
968 ('greyscale (append (and (>= emacs-major-version 27) '(:extend t))
969 (list :background bg :foreground fg)))
970 ('rainbow (list :background bgaccent :foreground fgaccent))
971 (_ (list :background bg :foreground fg))))
972
973(defun modus-operandi-theme-mode-line-attrs
974 (fg bg fg-alt bg-alt border border-3d &optional alt-style border-width fg-distant)
975 "Colour combinations for `modus-operandi-theme-mode-line'.
976
977FG and BG are the default colours. FG-ALT and BG-ALT are meant
978to accommodate the options for a 3D modeline or a `moody'
979compliant one. BORDER applies to all permutations of the
980modeline, except the three-dimensional effect, where BORDER-3D is
981used instead.
982
983Optional ALT-STYLE applies an appropriate style to the mode
984line's box property.
985
986Optional BORDER-WIDTH specifies an integer for the width of the
987rectangle that produces the box effect.
988
989Optional FG-DISTANT should be close to the main background
990values. It is intended to be used as a distant-foreground
991property."
992 (pcase modus-operandi-theme-mode-line
993 ('3d
994 `(:background ,bg-alt :foreground ,fg-alt
995 :box (:line-width ,(or border-width 1)
996 :color ,border-3d
997 :style ,(and alt-style 'released-button))))
998 ('moody
999 `(:background ,bg-alt :foreground ,fg-alt :underline ,border :overline ,border
1000 :distant-foreground ,fg-distant))
1001 (_
1002 `(:foreground ,fg :background ,bg :box ,border))))
1003
1004(defun modus-operandi-theme-diff (fg-only-bg fg-only-fg mainbg mainfg altbg altfg)
1005 "Colour combinations for `modus-operandi-theme-diffs'.
1006
1007FG-ONLY-BG should be similar or the same as the main background.
1008FG-ONLY-FG should be a saturated accent value that can be
1009combined with the former.
1010
1011MAINBG must be one of the dedicated backgrounds for diffs while
1012MAINFG must be the same for the foreground.
1013
1014ALTBG needs to be a slightly accented background that is meant to
1015be combined with ALTFG. Both must be less intense than MAINBG
1016and MAINFG respectively."
1017 (pcase modus-operandi-theme-diffs
1018 ('fg-only (list :background fg-only-bg :foreground fg-only-fg))
1019 ('desaturated (list :background altbg :foreground altfg))
1020 (_ (list :background mainbg :foreground mainfg))))
1021
1022(defun modus-operandi-theme-standard-completions (mainfg subtlebg intensebg intensefg)
1023 "Combinations for `modus-operandi-theme-completions'.
1024
1025MAINFG is an accented foreground value. SUBTLEBG is an accented
1026background value that can be combined with MAINFG. INTENSEBG and
1027INTENSEFG are accented colours that are designed to be used in
1028tandem.
1029
1030These are intended for Icomplete, Ido, and related."
1031 (pcase modus-operandi-theme-completions
1032 ('opinionated (list :background intensebg :foreground intensefg))
1033 ('moderate (list :background subtlebg :foreground mainfg))
1034 (_ (list :foreground mainfg))))
1035
1036(defun modus-operandi-theme-extra-completions (subtleface intenseface altface &optional altfg bold)
1037 "Combinations for `modus-operandi-theme-completions'.
1038
1039SUBTLEFACE and INTENSEFACE are custom theme faces that combine a
1040background and foreground value. The difference between the two
1041is a matter of degree.
1042
1043ALTFACE is a combination of colours that represents a departure
1044from the UI's default aesthetics. Optional ALTFG is meant to be
1045used in tandem with it.
1046
1047Optional BOLD will apply a heavier weight to the text.
1048
1049These are intended for Helm, Ivy, etc."
1050 (pcase modus-operandi-theme-completions
1051 ('opinionated (list :inherit (list altface bold)
1052 :foreground (or altfg 'unspecified)))
1053 ('moderate (list :inherit (list subtleface bold)))
1054 (_ (list :inherit (list intenseface bold)))))
1055
1056(defun modus-operandi-theme-scale (amount)
1057 "Scale heading by AMOUNT.
1058
1059AMOUNT is a customisation option."
1060 (when modus-operandi-theme-scale-headings
1061 (list :height amount)))
1062
1063;;; Colour palette
1064
1065;; Define colour palette. Each colour must have a >= 7:1 contrast
1066;; ratio relative to the foreground/background colour it is rendered
1067;; against.
1068;;
1069;; The design of the colour palette as a macro that maps it to faces is
1070;; adapted from zenbern-theme.el, last seen at commit 7dd7968:
1071;; https://github.com/bbatsov/zenburn-emacs
1072(eval-and-compile
1073 (defconst modus-operandi-theme-default-colors-alist
1074 '(;; base values
1075 ("bg-main" . "#ffffff") ("fg-main" . "#000000")
1076 ("bg-alt" . "#f0f0f0") ("fg-alt" . "#505050")
1077 ("bg-dim" . "#f8f8f8") ("fg-dim" . "#282828")
1078 ;; specifically for on/off states (e.g. `mode-line')
1079 ;;
1080 ;; must be combined with themselves
1081 ("bg-active" . "#d7d7d7") ("fg-active" . "#0a0a0a")
1082 ("bg-inactive" . "#efefef") ("fg-inactive" . "#404148")
1083 ;; special base values, used only for cases where the above
1084 ;; fg-* or bg-* cannot or should not be used (to avoid confusion)
1085 ;; must be combined with: {fg,bg}-{main,alt,dim}
1086 ("bg-special-cold" . "#dde3f4") ("fg-special-cold" . "#093060")
1087 ("bg-special-mild" . "#c4ede0") ("fg-special-mild" . "#184034")
1088 ("bg-special-warm" . "#f0e0d4") ("fg-special-warm" . "#5d3026")
1089 ("bg-special-calm" . "#f8ddea") ("fg-special-calm" . "#61284f")
1090 ;; styles for the main constructs
1091 ;;
1092 ;; must be combined with: `bg-main', `bg-alt', `bg-dim'
1093 ("red" . "#a60000") ("green" . "#005e00")
1094 ("yellow" . "#813e00") ("blue" . "#0031a9")
1095 ("magenta" . "#721045") ("cyan" . "#00538b")
1096 ;; styles for common, but still specialised constructs
1097 ;;
1098 ;; must be combined with: `bg-main', `bg-alt', `bg-dim'
1099 ("red-alt" . "#972500") ("green-alt" . "#315b00")
1100 ("yellow-alt" . "#70480f") ("blue-alt" . "#2544bb")
1101 ("magenta-alt" . "#8f0075") ("cyan-alt" . "#30517f")
1102 ;; same purpose as above, just slight differences
1103 ;;
1104 ;; must be combined with: `bg-main', `bg-alt', `bg-dim'
1105 ("red-alt-other" . "#a0132f") ("green-alt-other" . "#145c33")
1106 ("yellow-alt-other" . "#863927") ("blue-alt-other" . "#0000c0")
1107 ("magenta-alt-other" . "#5317ac") ("cyan-alt-other" . "#005a5f")
1108 ;; styles for desaturated foreground text, intended for use with
1109 ;; the `modus-operandi-theme-faint-syntax' option
1110 ;;
1111 ;; must be combined with: `bg-main', `bg-alt', `bg-dim'
1112 ("red-faint" . "#7f1010") ("green-faint" . "#104410")
1113 ("yellow-faint" . "#5f4400") ("blue-faint" . "#002f88")
1114 ("magenta-faint" . "#752f50") ("cyan-faint" . "#12506f")
1115
1116 ("red-alt-faint" . "#702f00") ("green-alt-faint" . "#30440f")
1117 ("yellow-alt-faint" . "#5d5000") ("blue-alt-faint" . "#003f78")
1118 ("magenta-alt-faint" . "#702565") ("cyan-alt-faint" . "#354f6f")
1119
1120 ("red-alt-other-faint" . "#7f002f") ("green-alt-other-faint" . "#0f443f")
1121 ("yellow-alt-other-faint" . "#5e3a20") ("blue-alt-other-faint" . "#1f2f6f")
1122 ("magenta-alt-other-faint" . "#5f3f7f") ("cyan-alt-other-faint" . "#2e584f")
1123 ;; styles for elements that should be very subtle, yet accented
1124 ;;
1125 ;; must be combined with: `bg-main', `bg-alt', `bg-dim' or any of
1126 ;; the "nuanced" backgrounds
1127 ("red-nuanced" . "#5f0000") ("green-nuanced" . "#004000")
1128 ("yellow-nuanced" . "#3f3000") ("blue-nuanced" . "#201f55")
1129 ("magenta-nuanced" . "#541f4f") ("cyan-nuanced" . "#0f3360")
1130 ;; styles for slightly accented background
1131 ;;
1132 ;; must be combined with any of the above foreground values
1133 ("red-nuanced-bg" . "#fff1f0") ("green-nuanced-bg" . "#ecf7ed")
1134 ("yellow-nuanced-bg" . "#fff3da") ("blue-nuanced-bg" . "#f3f3ff")
1135 ("magenta-nuanced-bg" . "#fdf0ff") ("cyan-nuanced-bg" . "#ebf6fa")
1136 ;; styles for elements that should draw attention to themselves
1137 ;;
1138 ;; must be combined with: `bg-main'
1139 ("red-intense" . "#b60000") ("green-intense" . "#006800")
1140 ("yellow-intense" . "#904200") ("blue-intense" . "#1111ee")
1141 ("magenta-intense" . "#7000e0") ("cyan-intense" . "#205b93")
1142 ;; styles for background elements that should be visible yet
1143 ;; subtle
1144 ;;
1145 ;; must be combined with: `fg-dim'
1146 ("red-subtle-bg" . "#f2b0a2") ("green-subtle-bg" . "#aecf90")
1147 ("yellow-subtle-bg" . "#e4c340") ("blue-subtle-bg" . "#b5d0ff")
1148 ("magenta-subtle-bg" . "#f0d3ff") ("cyan-subtle-bg" . "#c0efff")
1149 ;; styles for background elements that should be visible and
1150 ;; distinguishable
1151 ;;
1152 ;; must be combined with: `fg-main'
1153 ("red-intense-bg" . "#ff8892") ("green-intense-bg" . "#5ada88")
1154 ("yellow-intense-bg" . "#f5df23") ("blue-intense-bg" . "#6aaeff")
1155 ("magenta-intense-bg" . "#d5baff") ("cyan-intense-bg" . "#42cbd4")
1156 ;; styles for refined contexts where both the foreground and the
1157 ;; background need to have the same/similar hue
1158 ;;
1159 ;; must be combined with themselves OR the foregrounds can be
1160 ;; combined with any of the base backgrounds
1161 ("red-refine-bg" . "#ffcccc") ("red-refine-fg" . "#780000")
1162 ("green-refine-bg" . "#aceaac") ("green-refine-fg" . "#004c00")
1163 ("yellow-refine-bg" . "#fff29a") ("yellow-refine-fg" . "#604000")
1164 ("blue-refine-bg" . "#8ac7ff") ("blue-refine-fg" . "#002288")
1165 ("magenta-refine-bg" . "#ffccff") ("magenta-refine-fg" . "#770077")
1166 ("cyan-refine-bg" . "#8eecf4") ("cyan-refine-fg" . "#004850")
1167 ;; styles that are meant exclusively for the mode line
1168 ;;
1169 ;; must be combined with: `bg-active', `bg-inactive'
1170 ("red-active" . "#8a0000") ("green-active" . "#004c2e")
1171 ("yellow-active" . "#702d1f") ("blue-active" . "#0030b4")
1172 ("magenta-active" . "#5c2092") ("cyan-active" . "#003f8a")
1173 ;; styles that are meant exclusively for the fringes
1174 ;;
1175 ;; must be combined with `fg-main'
1176 ("red-fringe-bg" . "#f08290") ("green-fringe-bg" . "#62c86a")
1177 ("yellow-fringe-bg" . "#dbba3f") ("blue-fringe-bg" . "#82afff")
1178 ("magenta-fringe-bg" . "#e0a3ff") ("cyan-fringe-bg" . "#2fcddf")
1179 ;; styles reserved for specific faces
1180 ;;
1181 ;; `bg-hl-line' is between `bg-dim' and `bg-alt', so it should
1182 ;; work with all accents that cover those two, plus `bg-main'
1183 ;;
1184 ;; `bg-hl-alt' and `bg-hl-alt-intense' should only be used when no
1185 ;; other greyscale or fairly neutral background is available to
1186 ;; properly draw attention to a given construct
1187 ;;
1188 ;; `bg-header' is between `bg-active' and `bg-inactive', so it
1189 ;; can be combined with any of the "active" values, plus the
1190 ;; "special" and base foreground colours
1191 ;;
1192 ;; `bg-paren-match', `bg-paren-match-intense', `bg-region' and
1193 ;; `bg-tab-active' must be combined with `fg-main', while
1194 ;; `bg-tab-inactive' should be combined with `fg-dim'
1195 ;;
1196 ;; `bg-tab-bar' is only intended for the bar that holds the tabs and
1197 ;; can only be combined with `fg-main'
1198 ;;
1199 ;; `fg-tab-active' is meant to be combined with `bg-tab-active',
1200 ;; though only for styling special elements, such as underlining
1201 ;; the current tab
1202 ;;
1203 ;; `fg-escape-char-construct' and `fg-escape-char-backslash' can
1204 ;; be combined `bg-main', `bg-dim', `bg-alt'
1205 ;;
1206 ;; `fg-lang-error', `fg-lang-warning', `fg-lang-note' can be
1207 ;; combined with `bg-main', `bg-dim', `bg-alt'
1208 ;;
1209 ;; `fg-mark-sel', `fg-mark-del', `fg-mark-alt' can be combined
1210 ;; with `bg-main', `bg-dim', `bg-alt', `bg-hl-line'
1211 ;;
1212 ;; `fg-unfocused' must be combined with `fg-main'
1213 ;;
1214 ;; the window divider colours apply to faces with just an fg value
1215 ;;
1216 ;; all pairs are combinable with themselves
1217 ("bg-hl-line" . "#f2eff3")
1218 ("bg-hl-line-intense" . "#e0e0e0")
1219 ("bg-hl-alt" . "#fbeee0")
1220 ("bg-hl-alt-intense" . "#e8dfd1")
1221 ("bg-paren-match" . "#e0af82")
1222 ("bg-paren-match-intense" . "#c488ff")
1223 ("bg-region" . "#bcbcbc")
1224
1225 ("bg-tab-bar" . "#d5d5d5")
1226 ("bg-tab-active" . "#f6f6f6")
1227 ("bg-tab-inactive" . "#bdbdbd")
1228 ("fg-tab-active" . "#30169e")
1229
1230 ("fg-escape-char-construct" . "#8b1030")
1231 ("fg-escape-char-backslash" . "#654d0f")
1232
1233 ("fg-lang-error" . "#9f004f")
1234 ("fg-lang-warning" . "#604f0f")
1235 ("fg-lang-note" . "#4040ae")
1236
1237 ("fg-window-divider-inner" . "#888888")
1238 ("fg-window-divider-outer" . "#585858")
1239
1240 ("fg-unfocused" . "#56576d")
1241
1242 ("bg-header" . "#e5e5e5") ("fg-header" . "#2a2a2a")
1243
1244 ("bg-whitespace" . "#fff8fc") ("fg-whitespace" . "#645060")
1245
1246 ("bg-diff-heading" . "#b7c2dd") ("fg-diff-heading" . "#043355")
1247 ("bg-diff-added" . "#d4fad4") ("fg-diff-added" . "#004500")
1248 ("bg-diff-changed" . "#fcefcf") ("fg-diff-changed" . "#524200")
1249 ("bg-diff-removed" . "#ffe8ef") ("fg-diff-removed" . "#691616")
1250
1251 ("bg-diff-refine-added" . "#94cf94") ("fg-diff-refine-added" . "#002a00")
1252 ("bg-diff-refine-changed" . "#cccf8f") ("fg-diff-refine-changed" . "#302010")
1253 ("bg-diff-refine-removed" . "#daa2b0") ("fg-diff-refine-removed" . "#400000")
1254
1255 ("bg-diff-focus-added" . "#bbeabb") ("fg-diff-focus-added" . "#002c00")
1256 ("bg-diff-focus-changed" . "#ecdfbf") ("fg-diff-focus-changed" . "#392900")
1257 ("bg-diff-focus-removed" . "#efcbcf") ("fg-diff-focus-removed" . "#4a0000")
1258
1259 ("bg-diff-neutral-0" . "#979797") ("fg-diff-neutral-0" . "#040404")
1260 ("bg-diff-neutral-1" . "#b0b0b0") ("fg-diff-neutral-1" . "#252525")
1261 ("bg-diff-neutral-2" . "#cccccc") ("fg-diff-neutral-2" . "#3a3a3a")
1262
1263 ("bg-mark-sel" . "#a0f0cf") ("fg-mark-sel" . "#005040")
1264 ("bg-mark-del" . "#ffccbb") ("fg-mark-del" . "#840040")
1265 ("bg-mark-alt" . "#f5d88f") ("fg-mark-alt" . "#782900"))
1266 "The entire palette of `modus-operandi-theme'.
1267Each element has the form (NAME . HEX).")
1268
1269 (defcustom modus-operandi-theme-override-colors-alist '()
1270 "Association list of palette colour overrides.
1271Values can be mapped to variables, using the same syntax as the
1272one present in `modus-operandi-theme-default-colors-alist'.
1273
1274This is only meant for do-it-yourself usage, with the
1275understanding that the user is responsible for the resulting
1276contrast ratio between new and existing colours."
1277 :type '(alist
1278 :key-type (string :tag "Name")
1279 :value-type (string :tag " Hex")))
1280
1281 (defmacro modus-operandi-theme-with-color-variables (&rest body)
1282 "`let' bind all colours around BODY.
1283Also bind `class' to ((class color) (min-colors 89))."
1284 (declare (indent 0))
1285 `(let ((class '((class color) (min-colors 89)))
1286 ,@(mapcar (lambda (cons)
1287 (list (intern (car cons)) (cdr cons)))
1288 (append modus-operandi-theme-default-colors-alist
1289 modus-operandi-theme-override-colors-alist))
1290 ;; simple conditional styles that evaluate user-facing
1291 ;; customisation options
1292 (modus-theme-slant
1293 (if modus-operandi-theme-slanted-constructs 'italic 'normal))
1294 (modus-theme-variable-pitch
1295 (if modus-operandi-theme-variable-pitch-headings 'variable-pitch 'default)))
1296 ,@body)))
1297
1298
1299
1300;;; Faces
1301
1302(modus-operandi-theme-with-color-variables
1303 (custom-theme-set-faces
1304 'modus-operandi
1305;;;; custom faces
1306 ;; these bespoke faces are inherited by other constructs below
1307;;;;; subtle coloured backgrounds
1308 `(modus-theme-subtle-red ((,class :background ,red-subtle-bg :foreground ,fg-dim)))
1309 `(modus-theme-subtle-green ((,class :background ,green-subtle-bg :foreground ,fg-dim)))
1310 `(modus-theme-subtle-yellow ((,class :background ,yellow-subtle-bg :foreground ,fg-dim)))
1311 `(modus-theme-subtle-blue ((,class :background ,blue-subtle-bg :foreground ,fg-dim)))
1312 `(modus-theme-subtle-magenta ((,class :background ,magenta-subtle-bg :foreground ,fg-dim)))
1313 `(modus-theme-subtle-cyan ((,class :background ,cyan-subtle-bg :foreground ,fg-dim)))
1314 `(modus-theme-subtle-neutral ((,class :background ,bg-inactive :foreground ,fg-inactive)))
1315;;;;; intense coloured backgrounds
1316 `(modus-theme-intense-red ((,class :background ,red-intense-bg :foreground ,fg-main)))
1317 `(modus-theme-intense-green ((,class :background ,green-intense-bg :foreground ,fg-main)))
1318 `(modus-theme-intense-yellow ((,class :background ,yellow-intense-bg :foreground ,fg-main)))
1319 `(modus-theme-intense-blue ((,class :background ,blue-intense-bg :foreground ,fg-main)))
1320 `(modus-theme-intense-magenta ((,class :background ,magenta-intense-bg :foreground ,fg-main)))
1321 `(modus-theme-intense-cyan ((,class :background ,cyan-intense-bg :foreground ,fg-main)))
1322 `(modus-theme-intense-neutral ((,class :background ,bg-active :foreground ,fg-main)))
1323;;;;; refined background and foreground combinations
1324 ;; general purpose styles that use an accented foreground against an
1325 ;; accented background
1326 `(modus-theme-refine-red ((,class :background ,red-refine-bg :foreground ,red-refine-fg)))
1327 `(modus-theme-refine-green ((,class :background ,green-refine-bg :foreground ,green-refine-fg)))
1328 `(modus-theme-refine-yellow ((,class :background ,yellow-refine-bg :foreground ,yellow-refine-fg)))
1329 `(modus-theme-refine-blue ((,class :background ,blue-refine-bg :foreground ,blue-refine-fg)))
1330 `(modus-theme-refine-magenta ((,class :background ,magenta-refine-bg :foreground ,magenta-refine-fg)))
1331 `(modus-theme-refine-cyan ((,class :background ,cyan-refine-bg :foreground ,cyan-refine-fg)))
1332;;;;; "active" combinations, mostly for use on the mode line
1333 `(modus-theme-active-red ((,class :background ,red-active :foreground ,bg-active)))
1334 `(modus-theme-active-green ((,class :background ,green-active :foreground ,bg-active)))
1335 `(modus-theme-active-yellow ((,class :background ,yellow-active :foreground ,bg-active)))
1336 `(modus-theme-active-blue ((,class :background ,blue-active :foreground ,bg-active)))
1337 `(modus-theme-active-magenta ((,class :background ,magenta-active :foreground ,bg-active)))
1338 `(modus-theme-active-cyan ((,class :background ,cyan-active :foreground ,bg-active)))
1339;;;;; nuanced backgrounds
1340 ;; useful for adding an accented background that is suitable for all
1341 ;; main foreground colours (intended for use in Org source blocks)
1342 `(modus-theme-nuanced-red ((,class :background ,red-nuanced-bg
1343 ,@(and (>= emacs-major-version 27) '(:extend t)))))
1344 `(modus-theme-nuanced-green ((,class :background ,green-nuanced-bg
1345 ,@(and (>= emacs-major-version 27) '(:extend t)))))
1346 `(modus-theme-nuanced-yellow ((,class :background ,yellow-nuanced-bg
1347 ,@(and (>= emacs-major-version 27) '(:extend t)))))
1348 `(modus-theme-nuanced-blue ((,class :background ,blue-nuanced-bg
1349 ,@(and (>= emacs-major-version 27) '(:extend t)))))
1350 `(modus-theme-nuanced-magenta ((,class :background ,magenta-nuanced-bg
1351 ,@(and (>= emacs-major-version 27) '(:extend t)))))
1352 `(modus-theme-nuanced-cyan ((,class :background ,cyan-nuanced-bg
1353 ,@(and (>= emacs-major-version 27) '(:extend t)))))
1354;;;;; fringe-specific combinations
1355 `(modus-theme-fringe-red ((,class :background ,red-fringe-bg :foreground ,fg-main)))
1356 `(modus-theme-fringe-green ((,class :background ,green-fringe-bg :foreground ,fg-main)))
1357 `(modus-theme-fringe-yellow ((,class :background ,yellow-fringe-bg :foreground ,fg-main)))
1358 `(modus-theme-fringe-blue ((,class :background ,blue-fringe-bg :foreground ,fg-main)))
1359 `(modus-theme-fringe-magenta ((,class :background ,magenta-fringe-bg :foreground ,fg-main)))
1360 `(modus-theme-fringe-cyan ((,class :background ,cyan-fringe-bg :foreground ,fg-main)))
1361;;;;; special base values
1362 ;; these are closer to the grayscale than the accents defined above
1363 ;; and should only be used when the next closest alternative would be
1364 ;; a greyscale value than an accented one
1365 `(modus-theme-special-cold ((,class :background ,bg-special-cold :foreground ,fg-special-cold)))
1366 `(modus-theme-special-mild ((,class :background ,bg-special-mild :foreground ,fg-special-mild)))
1367 `(modus-theme-special-warm ((,class :background ,bg-special-warm :foreground ,fg-special-warm)))
1368 `(modus-theme-special-calm ((,class :background ,bg-special-calm :foreground ,fg-special-calm)))
1369;;;;; diff-specific combinations
1370 ;; intended for `diff-mode' or equivalent
1371 `(modus-theme-diff-added
1372 ((,class ,@(modus-operandi-theme-diff
1373 bg-main green
1374 bg-diff-focus-added fg-diff-focus-added
1375 green-nuanced-bg fg-diff-added))))
1376 `(modus-theme-diff-changed
1377 ((,class ,@(modus-operandi-theme-diff
1378 bg-main yellow
1379 bg-diff-focus-changed fg-diff-focus-changed
1380 yellow-nuanced-bg fg-diff-changed))))
1381 `(modus-theme-diff-removed
1382 ((,class ,@(modus-operandi-theme-diff
1383 bg-main red
1384 bg-diff-focus-removed fg-diff-focus-removed
1385 red-nuanced-bg fg-diff-removed))))
1386 `(modus-theme-diff-refine-added
1387 ((,class ,@(modus-operandi-theme-diff
1388 bg-diff-added fg-diff-added
1389 bg-diff-refine-added fg-diff-refine-added
1390 bg-diff-focus-added fg-diff-focus-added))))
1391 `(modus-theme-diff-refine-changed
1392 ((,class ,@(modus-operandi-theme-diff
1393 bg-diff-changed fg-diff-changed
1394 bg-diff-refine-changed fg-diff-refine-changed
1395 bg-diff-focus-changed fg-diff-focus-changed))))
1396 `(modus-theme-diff-refine-removed
1397 ((,class ,@(modus-operandi-theme-diff
1398 bg-diff-removed fg-diff-removed
1399 bg-diff-refine-removed fg-diff-refine-removed
1400 bg-diff-focus-removed fg-diff-focus-removed))))
1401 `(modus-theme-diff-focus-added
1402 ((,class ,@(modus-operandi-theme-diff
1403 bg-dim green
1404 bg-diff-focus-added fg-diff-focus-added
1405 bg-diff-added fg-diff-added))))
1406 `(modus-theme-diff-focus-changed
1407 ((,class ,@(modus-operandi-theme-diff
1408 bg-dim yellow
1409 bg-diff-focus-changed fg-diff-focus-changed
1410 bg-diff-changed fg-diff-changed))))
1411 `(modus-theme-diff-focus-removed
1412 ((,class ,@(modus-operandi-theme-diff
1413 bg-dim red
1414 bg-diff-focus-removed fg-diff-focus-removed
1415 bg-diff-removed fg-diff-removed))))
1416 `(modus-theme-diff-heading
1417 ((,class ,@(modus-operandi-theme-diff
1418 bg-alt blue-alt
1419 bg-diff-heading fg-diff-heading
1420 blue-nuanced-bg blue))))
1421;;;;; mark indicators
1422 ;; colour combinations intended for Dired, Ibuffer, or equivalent
1423 `(modus-theme-pseudo-header ((,class :inherit bold :foreground ,fg-main)))
1424 `(modus-theme-mark-alt ((,class :inherit bold :background ,bg-mark-alt :foreground ,fg-mark-alt)))
1425 `(modus-theme-mark-del ((,class :inherit bold :background ,bg-mark-del :foreground ,fg-mark-del)))
1426 `(modus-theme-mark-sel ((,class :inherit bold :background ,bg-mark-sel :foreground ,fg-mark-sel)))
1427 `(modus-theme-mark-symbol ((,class :inherit bold :foreground ,blue-alt)))
1428;;;;; heading levels
1429 ;; styles for regular headings used in Org, Markdown, Info, etc.
1430 `(modus-theme-heading-1
1431 ((,class ,@(modus-operandi-theme-heading
1432 1 fg-main magenta-alt-other magenta-nuanced-bg bg-region)
1433 ,@(modus-operandi-theme-scale modus-operandi-theme-scale-4))))
1434 `(modus-theme-heading-2
1435 ((,class ,@(modus-operandi-theme-heading
1436 2 fg-special-warm magenta-alt red-nuanced-bg bg-region)
1437 ,@(modus-operandi-theme-scale modus-operandi-theme-scale-3))))
1438 `(modus-theme-heading-3
1439 ((,class ,@(modus-operandi-theme-heading
1440 3 fg-special-cold blue blue-nuanced-bg bg-region)
1441 ,@(modus-operandi-theme-scale modus-operandi-theme-scale-2))))
1442 `(modus-theme-heading-4
1443 ((,class ,@(modus-operandi-theme-heading
1444 4 fg-special-mild cyan cyan-nuanced-bg bg-region)
1445 ,@(modus-operandi-theme-scale modus-operandi-theme-scale-1))))
1446 `(modus-theme-heading-5
1447 ((,class ,@(modus-operandi-theme-heading
1448 5 fg-special-calm green-alt-other green-nuanced-bg bg-region))))
1449 `(modus-theme-heading-6
1450 ((,class ,@(modus-operandi-theme-heading
1451 6 yellow-nuanced yellow-alt-other yellow-nuanced-bg bg-region))))
1452 `(modus-theme-heading-7
1453 ((,class ,@(modus-operandi-theme-heading
1454 7 red-nuanced red-alt red-nuanced-bg bg-region))))
1455 `(modus-theme-heading-8
1456 ((,class ,@(modus-operandi-theme-heading
1457 8 fg-dim magenta bg-alt bg-region))))
1458;;;;; other custom faces
1459 `(modus-theme-hl-line ((,class :background ,(if modus-operandi-theme-intense-hl-line
1460 bg-hl-line-intense bg-hl-line)
1461 (and (>= emacs-major-version 27) '(:extend t)))))
1462;;;; standard faces
1463;;;;; absolute essentials
1464 `(default ((,class :background ,bg-main :foreground ,fg-main)))
1465 `(cursor ((,class :background ,fg-main)))
1466 `(fringe ((,class ,@(modus-operandi-theme-fringe bg-inactive bg-active)
1467 :foreground ,fg-main)))
1468 `(vertical-border ((,class :foreground ,fg-window-divider-inner)))
1469;;;;; basic and/or ungrouped styles
1470 ;; Modify the `bold' face to change the weight of all "bold" elements
1471 ;; defined by the theme. You need a typeface that supports a
1472 ;; multitude of heavier weights than the regular one and then you
1473 ;; must specify the exact name of the one you wish to apply. Example
1474 ;; for your init.el:
1475 ;;
1476 ;; (set-face-attribute 'bold nil :weight 'semibold)
1477 `(bold ((,class :weight bold)))
1478 `(comint-highlight-input ((,class :inherit bold)))
1479 `(comint-highlight-prompt ((,class ,@(modus-operandi-theme-bold-weight)
1480 ,@(modus-operandi-theme-prompt
1481 cyan
1482 blue-nuanced-bg blue-alt
1483 blue-refine-bg fg-main))))
1484 `(error ((,class :inherit bold :foreground ,red)))
1485 `(escape-glyph ((,class :foreground ,fg-escape-char-construct)))
1486 `(file-name-shadow ((,class :foreground ,fg-unfocused)))
1487 `(header-line ((,class :background ,bg-header :foreground ,fg-header)))
1488 `(header-line-highlight ((,class :inherit modus-theme-active-blue)))
1489 `(help-argument-name ((,class :foreground ,cyan :slant ,modus-theme-slant)))
1490 `(homoglyph ((,class :foreground ,fg-escape-char-construct)))
1491 `(ibuffer-locked-buffer ((,class :foreground ,yellow-alt-other)))
1492 `(italic ((,class :slant italic)))
1493 `(nobreak-hyphen ((,class :foreground ,fg-escape-char-construct)))
1494 `(nobreak-space ((,class :foreground ,fg-escape-char-construct :underline t)))
1495 `(minibuffer-prompt ((,class ,@(modus-operandi-theme-prompt
1496 cyan-alt-other
1497 cyan-nuanced-bg cyan
1498 cyan-refine-bg fg-main))))
1499 `(mm-command-output ((,class :foreground ,red-alt-other)))
1500 `(mm-uu-extract ((,class :background ,bg-dim :foreground ,fg-special-mild)))
1501 `(next-error ((,class :inherit modus-theme-subtle-red)))
1502 `(rectangle-preview ((,class :inherit modus-theme-special-mild)))
1503 `(region ((,class :background ,bg-region :foreground ,fg-main)))
1504 `(secondary-selection ((,class :inherit modus-theme-special-cold)))
1505 `(shadow ((,class :foreground ,fg-alt)))
1506 `(success ((,class :inherit bold :foreground ,green)))
1507 `(trailing-whitespace ((,class :background ,red-intense-bg)))
1508 `(warning ((,class :inherit bold :foreground ,yellow)))
1509;;;;; buttons, links, widgets
1510 `(button ((,class :foreground ,blue-alt-other
1511 ,@(unless modus-operandi-theme-no-link-underline
1512 (list :underline t)))))
1513 `(link ((,class :inherit button)))
1514 `(link-visited ((,class :inherit link :foreground ,magenta-alt-other)))
1515 `(tooltip ((,class :background ,bg-special-cold :foreground ,fg-main)))
1516 `(widget-button ((,class :inherit button)))
1517 `(widget-button-pressed ((,class :inherit button :foreground ,magenta)))
1518 `(widget-documentation ((,class :foreground ,green)))
1519 `(widget-field ((,class :background ,bg-alt :foreground ,fg-dim)))
1520 `(widget-inactive ((,class :background ,bg-inactive :foreground ,fg-inactive)))
1521 `(widget-single-line-field ((,class :inherit widget-field)))
1522;;;;; ag
1523 `(ag-hit-face ((,class :foreground ,fg-special-cold)))
1524 `(ag-match-face ((,class :inherit modus-theme-special-calm)))
1525;;;;; alert
1526 `(alert-high-face ((,class :inherit bold :foreground ,red-alt)))
1527 `(alert-low-face ((,class :foreground ,fg-special-mild)))
1528 `(alert-moderate-face ((,class :inherit bold :foreground ,yellow)))
1529 `(alert-trivial-face ((,class :foreground ,fg-special-calm)))
1530 `(alert-urgent-face ((,class :inherit bold :foreground ,red-intense)))
1531;;;;; all-the-icons
1532 `(all-the-icons-blue ((,class :foreground ,blue)))
1533 `(all-the-icons-blue-alt ((,class :foreground ,blue-alt)))
1534 `(all-the-icons-cyan ((,class :foreground ,cyan)))
1535 `(all-the-icons-cyan-alt ((,class :foreground ,cyan-alt)))
1536 `(all-the-icons-dblue ((,class :foreground ,blue-alt-other)))
1537 `(all-the-icons-dcyan ((,class :foreground ,cyan-alt-other)))
1538 `(all-the-icons-dgreen ((,class :foreground ,green-alt-other)))
1539 `(all-the-icons-dired-dir-face ((,class :foreground ,blue)))
1540 `(all-the-icons-dmaroon ((,class :foreground ,magenta-alt-other)))
1541 `(all-the-icons-dorange ((,class :foreground ,red-alt-other)))
1542 `(all-the-icons-dpink ((,class :foreground ,magenta)))
1543 `(all-the-icons-dpurple ((,class :foreground ,magenta-alt)))
1544 `(all-the-icons-dred ((,class :foreground ,red)))
1545 `(all-the-icons-dsilver ((,class :foreground ,fg-special-cold)))
1546 `(all-the-icons-dyellow ((,class :foreground ,yellow)))
1547 `(all-the-icons-green ((,class :foreground ,green)))
1548 `(all-the-icons-lblue ((,class :foreground ,blue-refine-fg)))
1549 `(all-the-icons-lcyan ((,class :foreground ,cyan-refine-fg)))
1550 `(all-the-icons-lgreen ((,class :foreground ,green-refine-fg)))
1551 `(all-the-icons-lmaroon ((,class :foreground ,magenta-refine-fg)))
1552 `(all-the-icons-lorange ((,class :foreground ,red-refine-fg)))
1553 `(all-the-icons-lpink ((,class :foreground ,magenta-refine-fg)))
1554 `(all-the-icons-lpurple ((,class :foreground ,magenta-refine-fg)))
1555 `(all-the-icons-lred ((,class :foreground ,red-refine-fg)))
1556 `(all-the-icons-lsilver ((,class :foreground ,fg-special-cold)))
1557 `(all-the-icons-lyellow ((,class :foreground ,yellow-refine-fg)))
1558 `(all-the-icons-maroon ((,class :foreground ,magenta)))
1559 `(all-the-icons-orange ((,class :foreground ,red-alt)))
1560 `(all-the-icons-pink ((,class :foreground ,magenta)))
1561 `(all-the-icons-purple ((,class :foreground ,magenta-alt)))
1562 `(all-the-icons-purple-alt ((,class :foreground ,magenta-alt-other)))
1563 `(all-the-icons-red ((,class :foreground ,red)))
1564 `(all-the-icons-red-alt ((,class :foreground ,red-alt)))
1565 `(all-the-icons-silver ((,class :foreground ,fg-special-cold)))
1566 `(all-the-icons-yellow ((,class :foreground ,yellow)))
1567;;;;; annotate
1568 `(annotate-annotation ((,class :inherit modus-theme-subtle-blue)))
1569 `(annotate-annotation-secondary ((,class :inherit modus-theme-subtle-green)))
1570 `(annotate-highlight ((,class :background ,blue-nuanced-bg :underline ,blue-intense)))
1571 `(annotate-highlight-secondary ((,class :background ,green-nuanced-bg :underline ,green-intense)))
1572;;;;; anzu
1573 `(anzu-match-1 ((,class :inherit modus-theme-subtle-cyan)))
1574 `(anzu-match-2 ((,class :inherit modus-theme-subtle-green)))
1575 `(anzu-match-3 ((,class :inherit modus-theme-subtle-yellow)))
1576 `(anzu-mode-line ((,class :inherit bold :foreground ,green-active)))
1577 `(anzu-mode-line-no-match ((,class :inherit bold :foreground ,red-active)))
1578 `(anzu-replace-highlight ((,class :inherit modus-theme-refine-yellow :underline t)))
1579 `(anzu-replace-to ((,class :inherit (modus-theme-intense-green bold))))
1580;;;;; apropos
1581 `(apropos-function-button ((,class :inherit button :foreground ,magenta-alt-other)))
1582 `(apropos-keybinding ((,class :inherit bold :foreground ,cyan)))
1583 `(apropos-misc-button ((,class :inherit button :foreground ,cyan-alt-other)))
1584 `(apropos-property ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,magenta-alt)))
1585 `(apropos-symbol ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,blue-alt-other)))
1586 `(apropos-user-option-button ((,class :inherit button :foreground ,green-alt-other)))
1587 `(apropos-variable-button ((,class :inherit button :foreground ,blue)))
1588;;;;; apt-sources-list
1589 `(apt-sources-list-components ((,class :foreground ,cyan)))
1590 `(apt-sources-list-options ((,class :foreground ,yellow)))
1591 `(apt-sources-list-suite ((,class :foreground ,green)))
1592 `(apt-sources-list-type ((,class :foreground ,magenta)))
1593 `(apt-sources-list-uri ((,class :foreground ,blue)))
1594;;;;; artbollocks-mode
1595 `(artbollocks-face ((,class :foreground ,cyan-nuanced :underline ,fg-lang-note)))
1596 `(artbollocks-lexical-illusions-face ((,class :background ,bg-alt :foreground ,red-alt :underline t)))
1597 `(artbollocks-passive-voice-face ((,class :foreground ,yellow-nuanced :underline ,fg-lang-warning)))
1598 `(artbollocks-weasel-words-face ((,class :foreground ,red-nuanced :underline ,fg-lang-error)))
1599;;;;; auctex and Tex
1600 `(font-latex-bold-face ((,class :inherit bold :foreground ,fg-special-calm)))
1601 `(font-latex-doctex-documentation-face ((,class :foreground ,fg-special-cold :slant ,modus-theme-slant)))
1602 `(font-latex-doctex-preprocessor-face ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,red-alt-other)))
1603 `(font-latex-italic-face ((,class :foreground ,fg-special-calm :slant italic)))
1604 `(font-latex-math-face ((,class :foreground ,cyan-alt-other)))
1605 `(font-latex-script-char-face ((,class :foreground ,cyan-alt-other)))
1606 `(font-latex-sectioning-0-face ((,class :inherit ,modus-theme-variable-pitch :foreground ,blue-nuanced)))
1607 `(font-latex-sectioning-1-face ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,blue-nuanced)))
1608 `(font-latex-sectioning-2-face ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,blue-nuanced)))
1609 `(font-latex-sectioning-3-face ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,blue-nuanced)))
1610 `(font-latex-sectioning-4-face ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,blue-nuanced)))
1611 `(font-latex-sectioning-5-face ((,class :inherit ,modus-theme-variable-pitch :foreground ,blue-nuanced)))
1612 `(font-latex-sedate-face ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,magenta-alt-other)))
1613 `(font-latex-slide-title-face ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,cyan-nuanced
1614 ,@(modus-operandi-theme-scale modus-operandi-theme-scale-4))))
1615 `(font-latex-string-face ((,class :foreground ,blue-alt)))
1616 `(font-latex-subscript-face ((,class :height 0.95)))
1617 `(font-latex-superscript-face ((,class :height 0.95)))
1618 `(font-latex-verbatim-face ((,class :background ,bg-dim :foreground ,fg-special-mild)))
1619 `(font-latex-warning-face ((,class :foreground ,yellow-alt-other)))
1620 `(tex-match ((,class :foreground ,blue-alt-other)))
1621 `(tex-verbatim ((,class :background ,bg-dim :foreground ,fg-special-mild)))
1622 `(texinfo-heading ((,class :foreground ,magenta)))
1623 `(TeX-error-description-error ((,class :inherit bold :foreground ,red)))
1624 `(TeX-error-description-help ((,class :foreground ,blue)))
1625 `(TeX-error-description-tex-said ((,class :foreground ,blue)))
1626 `(TeX-error-description-warning ((,class :inherit bold :foreground ,yellow)))
1627;;;;; auto-dim-other-buffers
1628 `(auto-dim-other-buffers-face ((,class :background ,bg-alt)))
1629;;;;; avy
1630 `(avy-background-face ((,class :background ,bg-dim :foreground ,fg-dim)))
1631 `(avy-goto-char-timer-face ((,class :inherit (modus-theme-intense-yellow bold))))
1632 `(avy-lead-face ((,class :inherit (modus-theme-intense-magenta bold))))
1633 `(avy-lead-face-0 ((,class :inherit (modus-theme-intense-blue bold))))
1634 `(avy-lead-face-1 ((,class :inherit (modus-theme-intense-red bold))))
1635 `(avy-lead-face-2 ((,class :inherit (modus-theme-intense-green bold))))
1636;;;;; aw (ace-window)
1637 `(aw-background-face ((,class :background ,bg-dim :foreground ,fg-dim)))
1638 `(aw-key-face ((,class :inherit bold :foreground ,blue-intense)))
1639 `(aw-leading-char-face ((,class :inherit bold :height 1.5 :background ,bg-main :foreground ,red-intense)))
1640 `(aw-minibuffer-leading-char-face ((,class :foreground ,magenta-active)))
1641 `(aw-mode-line-face ((,class :inherit bold)))
1642;;;;; awesome-tray
1643 `(awesome-tray-module-awesome-tab-face ((,class :inherit bold :foreground ,red-alt-other)))
1644 `(awesome-tray-module-battery-face ((,class :inherit bold :foreground ,cyan-alt-other)))
1645 `(awesome-tray-module-buffer-name-face ((,class :inherit bold :foreground ,yellow-alt-other)))
1646 `(awesome-tray-module-circe-face ((,class :inherit bold :foreground ,blue-alt)))
1647 `(awesome-tray-module-date-face ((,class :inherit bold :foreground ,fg-dim)))
1648 `(awesome-tray-module-evil-face ((,class :inherit bold :foreground ,green-alt)))
1649 `(awesome-tray-module-git-face ((,class :inherit bold :foreground ,magenta)))
1650 `(awesome-tray-module-last-command-face ((,class :inherit bold :foreground ,blue-alt-other)))
1651 `(awesome-tray-module-location-face ((,class :inherit bold :foreground ,yellow)))
1652 `(awesome-tray-module-mode-name-face ((,class :inherit bold :foreground ,green)))
1653 `(awesome-tray-module-parent-dir-face ((,class :inherit bold :foreground ,cyan)))
1654 `(awesome-tray-module-rvm-face ((,class :inherit bold :foreground ,magenta-alt-other)))
1655;;;;; binder
1656 `(binder-sidebar-highlight ((,class :inherit modus-theme-subtle-cyan)))
1657 `(binder-sidebar-marked ((,class :inherit modus-theme-mark-sel)))
1658 `(binder-sidebar-missing ((,class :inherit modus-theme-subtle-red)))
1659 `(binder-sidebar-tags ((,class :foreground ,cyan)))
1660;;;;; bm
1661 `(bm-face ((,class :inherit modus-theme-subtle-yellow
1662 ,@(and (>= emacs-major-version 27) '(:extend t)))))
1663 `(bm-fringe-face ((,class :inherit modus-theme-fringe-yellow)))
1664 `(bm-fringe-persistent-face ((,class :inherit modus-theme-fringe-blue)))
1665 `(bm-persistent-face ((,class :inherit modus-theme-intense-blue
1666 ,@(and (>= emacs-major-version 27) '(:extend t)))))
1667;;;;; bongo
1668 `(bongo-album-title ((,class :foreground ,cyan-active)))
1669 `(bongo-artist ((,class :foreground ,magenta-active)))
1670 `(bongo-currently-playing-track ((,class :inherit bold)))
1671 `(bongo-elapsed-track-part ((,class :inherit modus-theme-subtle-magenta :underline t)))
1672 `(bongo-filled-seek-bar ((,class :background ,blue-subtle-bg :foreground ,fg-main)))
1673 `(bongo-marked-track ((,class :foreground ,fg-mark-alt)))
1674 `(bongo-marked-track-line ((,class :background ,bg-mark-alt)))
1675 `(bongo-played-track ((,class :foreground ,fg-unfocused :strike-through t)))
1676 `(bongo-track-length ((,class :foreground ,blue-alt-other)))
1677 `(bongo-track-title ((,class :foreground ,blue-active)))
1678 `(bongo-unfilled-seek-bar ((,class :background ,blue-nuanced-bg :foreground ,fg-main)))
1679;;;;; boon
1680 `(boon-modeline-cmd ((,class :inherit modus-theme-active-blue)))
1681 `(boon-modeline-ins ((,class :inherit modus-theme-active-red)))
1682 `(boon-modeline-off ((,class :inherit modus-theme-active-yellow)))
1683 `(boon-modeline-spc ((,class :inherit modus-theme-active-green)))
1684;;;;; breakpoint (built-in gdb-mi.el)
1685 `(breakpoint-disabled ((,class :foreground ,fg-alt)))
1686 `(breakpoint-enabled ((,class :inherit bold :foreground ,red)))
1687;;;;; buffer-expose
1688 `(buffer-expose-ace-char-face ((,class :inherit bold :foreground ,red-active)))
1689 `(buffer-expose-mode-line-face ((,class :foreground ,cyan-active)))
1690 `(buffer-expose-selected-face ((,class :inherit modus-theme-special-mild)))
1691;;;;; calendar and diary
1692 `(calendar-month-header ((,class :inherit bold :foreground ,fg-main)))
1693 `(calendar-today ((,class :underline t)))
1694 `(calendar-weekday-header ((,class :foreground ,fg-dim)))
1695 `(calendar-weekend-header ((,class :foreground ,fg-alt)))
1696 `(diary ((,class :foreground ,cyan-alt-other)))
1697 `(diary-anniversary ((,class :foreground ,red-alt-other)))
1698 `(diary-time ((,class :foreground ,blue-alt)))
1699 `(holiday ((,class :foreground ,magenta-alt)))
1700;;;;; calfw
1701 `(cfw:face-annotation ((,class :foreground ,fg-special-warm)))
1702 `(cfw:face-day-title ((,class :foreground ,fg-main)))
1703 `(cfw:face-default-content ((,class :foreground ,green-alt)))
1704 `(cfw:face-default-day ((,class :inherit (cfw:face-day-title bold))))
1705 `(cfw:face-disable ((,class :foreground ,fg-unfocused)))
1706 `(cfw:face-grid ((,class :foreground ,fg-window-divider-outer)))
1707 `(cfw:face-header ((,class :inherit bold :foreground ,fg-main)))
1708 `(cfw:face-holiday ((,class :foreground ,magenta-alt-other)))
1709 `(cfw:face-periods ((,class :foreground ,cyan-alt-other)))
1710 `(cfw:face-saturday ((,class :inherit bold :foreground ,cyan-alt-other)))
1711 `(cfw:face-select ((,class :inherit modus-theme-intense-blue)))
1712 `(cfw:face-sunday ((,class :inherit bold :foreground ,cyan-alt-other)))
1713 `(cfw:face-title ((,class :inherit ,modus-theme-variable-pitch
1714 :foreground ,fg-special-cold
1715 ,@(modus-operandi-theme-scale modus-operandi-theme-scale-5))))
1716 `(cfw:face-today ((,class :background ,bg-inactive)))
1717 `(cfw:face-today-title ((,class :background ,bg-active)))
1718 `(cfw:face-toolbar ((,class :background ,bg-alt :foreground ,bg-alt)))
1719 `(cfw:face-toolbar-button-off ((,class :foreground ,fg-alt)))
1720 `(cfw:face-toolbar-button-on ((,class :inherit bold :background ,blue-nuanced-bg
1721 :foreground ,blue-alt)))
1722;;;;; centaur-tabs
1723 `(centaur-tabs-active-bar-face ((,class :background ,fg-tab-active)))
1724 `(centaur-tabs-close-mouse-face ((,class :inherit bold :foreground ,red-active :underline t)))
1725 `(centaur-tabs-close-selected ((,class :inherit centaur-tabs-selected)))
1726 `(centaur-tabs-close-unselected ((,class :inherit centaur-tabs-unselected)))
1727 `(centaur-tabs-modified-marker-selected ((,class :inherit centaur-tabs-selected)))
1728 `(centaur-tabs-modified-marker-unselected ((,class :inherit centaur-tabs-unselected)))
1729 `(centaur-tabs-default ((,class :background ,bg-main :foreground ,bg-main)))
1730 `(centaur-tabs-selected ((,class :inherit bold :background ,bg-tab-active :foreground ,fg-main)))
1731 `(centaur-tabs-selected-modified ((,class :background ,bg-tab-active :foreground ,fg-main :slant italic)))
1732 `(centaur-tabs-unselected ((,class :background ,bg-tab-inactive :foreground ,fg-dim)))
1733 `(centaur-tabs-unselected-modified ((,class :background ,bg-tab-inactive :foreground ,fg-dim :slant italic)))
1734;;;;; change-log and log-view (`vc-print-log' and `vc-print-root-log')
1735 `(change-log-acknowledgment ((,class :foreground ,fg-alt)))
1736 `(change-log-conditionals ((,class :foreground ,magenta-alt)))
1737 `(change-log-date ((,class :foreground ,cyan-alt-other)))
1738 `(change-log-email ((,class :foreground ,cyan)))
1739 `(change-log-file ((,class :foreground ,blue)))
1740 `(change-log-function ((,class :foreground ,green-alt-other)))
1741 `(change-log-list ((,class :foreground ,magenta-alt-other)))
1742 `(change-log-name ((,class :foreground ,cyan)))
1743 `(log-edit-header ((,class :foreground ,fg-special-warm)))
1744 `(log-edit-summary ((,class :inherit bold :foreground ,cyan)))
1745 `(log-edit-unknown-header ((,class :foreground ,fg-alt)))
1746 `(log-view-file ((,class :inherit bold :foreground ,fg-special-cold)))
1747 `(log-view-message ((,class :foreground ,fg-alt)))
1748;;;;; cider
1749 `(cider-debug-code-overlay-face ((,class :background ,bg-alt)))
1750 `(cider-debug-prompt-face ((,class :foreground ,magenta-alt :underline t)))
1751 `(cider-deprecated-face ((,class :inherit modus-theme-refine-yellow)))
1752 `(cider-docview-emphasis-face ((,class :foreground ,fg-special-cold :slant italic)))
1753 `(cider-docview-literal-face ((,class :foreground ,blue-alt)))
1754 `(cider-docview-strong-face ((,class :inherit bold :foreground ,fg-special-cold)))
1755 `(cider-docview-table-border-face ((,class :foreground ,fg-alt)))
1756 `(cider-enlightened-face ((,class :box (:line-width -1 :color ,yellow-alt :style nil) :background ,bg-dim)))
1757 `(cider-enlightened-local-face ((,class :inherit bold :foreground ,yellow-alt-other)))
1758 `(cider-error-highlight-face ((,class :foreground ,red :underline t)))
1759 `(cider-fragile-button-face ((,class :box (:line-width 3 :color ,fg-alt :style released-button) :foreground ,yellow)))
1760 `(cider-fringe-good-face ((,class :foreground ,green-active)))
1761 `(cider-instrumented-face ((,class :box (:line-width -1 :color ,red :style nil) :background ,bg-dim)))
1762 `(cider-reader-conditional-face ((,class :foreground ,fg-special-warm :slant italic)))
1763 `(cider-repl-input-face ((,class :inherit bold)))
1764 `(cider-repl-prompt-face ((,class :foreground ,cyan-alt-other)))
1765 `(cider-repl-stderr-face ((,class :inherit bold :foreground ,red)))
1766 `(cider-repl-stdout-face ((,class :foreground ,blue)))
1767 `(cider-result-overlay-face ((,class :box (:line-width -1 :color ,blue :style nil) :background ,bg-dim)))
1768 `(cider-stacktrace-error-class-face ((,class :inherit bold :foreground ,red)))
1769 `(cider-stacktrace-error-message-face ((,class :foreground ,red-alt-other :slant italic)))
1770 `(cider-stacktrace-face ((,class :foreground ,fg-main)))
1771 `(cider-stacktrace-filter-active-face ((,class :foreground ,cyan-alt :underline t)))
1772 `(cider-stacktrace-filter-inactive-face ((,class :foreground ,cyan-alt)))
1773 `(cider-stacktrace-fn-face ((,class :inherit bold :foreground ,fg-main)))
1774 `(cider-stacktrace-ns-face ((,class :foreground ,fg-alt :slant italic)))
1775 `(cider-stacktrace-promoted-button-face ((,class :box (:line-width 3 :color ,fg-alt :style released-button) :foreground ,red)))
1776 `(cider-stacktrace-suppressed-button-face ((,class :box (:line-width 3 :color ,fg-alt :style pressed-button)
1777 :background ,bg-alt :foreground ,fg-alt)))
1778 `(cider-test-error-face ((,class :inherit modus-theme-subtle-red)))
1779 `(cider-test-failure-face ((,class :inherit (modus-theme-intense-red bold))))
1780 `(cider-test-success-face ((,class :inherit modus-theme-intense-green)))
1781 `(cider-traced-face ((,class :box (:line-width -1 :color ,cyan :style nil) :background ,bg-dim)))
1782 `(cider-warning-highlight-face ((,class :foreground ,yellow :underline t)))
1783;;;;; circe (and lui)
1784 `(circe-fool-face ((,class :foreground ,fg-alt)))
1785 `(circe-highlight-nick-face ((,class :inherit bold :foreground ,blue)))
1786 `(circe-prompt-face ((,class :inherit bold :foreground ,cyan-alt-other)))
1787 `(circe-server-face ((,class :foreground ,fg-unfocused)))
1788 `(lui-button-face ((,class :inherit button :foreground ,blue)))
1789 `(lui-highlight-face ((,class :foreground ,magenta-alt)))
1790 `(lui-time-stamp-face ((,class :foreground ,blue-nuanced)))
1791;;;;; color-rg
1792 `(color-rg-font-lock-column-number ((,class :foreground ,magenta-alt-other)))
1793 `(color-rg-font-lock-command ((,class :inherit bold :foreground ,fg-main)))
1794 `(color-rg-font-lock-file ((,class :inherit bold :foreground ,fg-special-cold)))
1795 `(color-rg-font-lock-flash ((,class :inherit modus-theme-intense-blue)))
1796 `(color-rg-font-lock-function-location ((,class :inherit modus-theme-special-calm)))
1797 `(color-rg-font-lock-header-line-directory ((,class :foreground ,blue-active)))
1798 `(color-rg-font-lock-header-line-edit-mode ((,class :foreground ,magenta-active)))
1799 `(color-rg-font-lock-header-line-keyword ((,class :foreground ,green-active)))
1800 `(color-rg-font-lock-header-line-text ((,class :foreground ,fg-active)))
1801 `(color-rg-font-lock-line-number ((,class :foreground ,fg-special-warm)))
1802 `(color-rg-font-lock-mark-changed ((,class :inherit bold :foreground ,blue)))
1803 `(color-rg-font-lock-mark-deleted ((,class :inherit bold :foreground ,red)))
1804 `(color-rg-font-lock-match ((,class :inherit modus-theme-special-calm)))
1805 `(color-rg-font-lock-position-splitter ((,class :foreground ,fg-alt)))
1806;;;;; column-enforce-mode
1807 `(column-enforce-face ((,class :inherit modus-theme-refine-yellow)))
1808;;;;; company-mode
1809 `(company-echo-common ((,class :foreground ,magenta-alt-other)))
1810 `(company-preview ((,class :background ,bg-dim :foreground ,fg-dim)))
1811 `(company-preview-common ((,class :foreground ,blue-alt)))
1812 `(company-preview-search ((,class :inherit modus-theme-special-calm)))
1813 `(company-scrollbar-bg ((,class :background ,bg-active)))
1814 `(company-scrollbar-fg ((,class :background ,fg-active)))
1815 `(company-template-field ((,class :inherit modus-theme-intense-magenta)))
1816 `(company-tooltip ((,class :background ,bg-alt :foreground ,fg-alt)))
1817 `(company-tooltip-annotation ((,class :foreground ,fg-special-cold :slant ,modus-theme-slant)))
1818 `(company-tooltip-annotation-selection ((,class :inherit bold :foreground ,fg-main)))
1819 `(company-tooltip-common ((,class :inherit bold :foreground ,blue-alt)))
1820 `(company-tooltip-common-selection ((,class :foreground ,fg-main)))
1821 `(company-tooltip-mouse ((,class :inherit modus-theme-intense-blue)))
1822 `(company-tooltip-search ((,class :inherit (modus-theme-refine-cyan bold))))
1823 `(company-tooltip-search-selection ((,class :inherit (modus-theme-intense-green bold) :underline t)))
1824 `(company-tooltip-selection ((,class :inherit (modus-theme-subtle-cyan bold))))
1825;;;;; company-posframe
1826 `(company-posframe-active-backend-name ((,class :inherit bold :background ,bg-active :foreground ,blue-active)))
1827 `(company-posframe-inactive-backend-name ((,class :background ,bg-active :foreground ,fg-active)))
1828 `(company-posframe-metadata ((,class :background ,bg-inactive :foreground ,fg-inactive)))
1829;;;;; compilation feedback
1830 `(compilation-column-number ((,class :foreground ,magenta-alt-other)))
1831 `(compilation-error ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,red)))
1832 `(compilation-info ((,class :foreground ,fg-special-cold)))
1833 `(compilation-line-number ((,class :foreground ,fg-special-warm)))
1834 `(compilation-mode-line-exit ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,blue-active)))
1835 `(compilation-mode-line-fail ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,red-active)))
1836 `(compilation-mode-line-run ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,magenta-active)))
1837 `(compilation-warning ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,yellow)))
1838;;;;; completions
1839 `(completions-annotations ((,class :foreground ,fg-special-cold :slant ,modus-theme-slant)))
1840 `(completions-common-part ((,class ,@(modus-operandi-theme-standard-completions
1841 blue-alt blue-nuanced-bg
1842 cyan-refine-bg cyan-refine-fg))))
1843 `(completions-first-difference ((,class :inherit bold
1844 ,@(modus-operandi-theme-standard-completions
1845 magenta-alt blue-nuanced-bg
1846 magenta-intense-bg fg-main))))
1847;;;;; counsel
1848 `(counsel-active-mode ((,class :foreground ,magenta-alt-other)))
1849 `(counsel-application-name ((,class :foreground ,red-alt-other)))
1850 `(counsel-key-binding ((,class :inherit bold :foreground ,blue-alt-other)))
1851 `(counsel-outline-1 ((,class :inherit outline-1)))
1852 `(counsel-outline-2 ((,class :inherit outline-2)))
1853 `(counsel-outline-3 ((,class :inherit outline-3)))
1854 `(counsel-outline-4 ((,class :inherit outline-4)))
1855 `(counsel-outline-5 ((,class :inherit outline-5)))
1856 `(counsel-outline-6 ((,class :inherit outline-6)))
1857 `(counsel-outline-7 ((,class :inherit outline-7)))
1858 `(counsel-outline-8 ((,class :inherit outline-8)))
1859 `(counsel-outline-default ((,class :inherit bold :foreground ,green-alt-other)))
1860 `(counsel-variable-documentation ((,class :foreground ,yellow-alt-other :slant ,modus-theme-slant)))
1861;;;;; counsel-css
1862 `(counsel-css-selector-depth-face-1 ((,class :foreground ,blue)))
1863 `(counsel-css-selector-depth-face-2 ((,class :foreground ,cyan)))
1864 `(counsel-css-selector-depth-face-3 ((,class :foreground ,green)))
1865 `(counsel-css-selector-depth-face-4 ((,class :foreground ,yellow)))
1866 `(counsel-css-selector-depth-face-5 ((,class :foreground ,magenta)))
1867 `(counsel-css-selector-depth-face-6 ((,class :foreground ,red)))
1868;;;;; counsel-notmuch
1869 `(counsel-notmuch-count-face ((,class :foreground ,cyan)))
1870 `(counsel-notmuch-date-face ((,class :foreground ,blue)))
1871 `(counsel-notmuch-people-face ((,class :foreground ,magenta)))
1872 `(counsel-notmuch-subject-face ((,class :foreground ,magenta-alt-other)))
1873;;;;; counsel-org-capture-string
1874 `(counsel-org-capture-string-template-body-face ((,class :foreground ,fg-special-cold)))
1875;;;;; cov
1876 `(cov-coverage-not-run-face ((,class :foreground ,red-intense)))
1877 `(cov-coverage-run-face ((,class :foreground ,green-intense)))
1878 `(cov-heavy-face ((,class :foreground ,magenta-intense)))
1879 `(cov-light-face ((,class :foreground ,blue-intense)))
1880 `(cov-med-face ((,class :foreground ,yellow-intense)))
1881 `(cov-none-face ((,class :foreground ,cyan-intense)))
1882;;;;; cperl-mode
1883 `(cperl-nonoverridable-face ((,class :foreground ,yellow-alt-other)))
1884 `(cperl-array-face ((,class :inherit bold :background ,bg-alt :foreground ,magenta-alt)))
1885 `(cperl-hash-face ((,class :inherit bold :background ,bg-alt :foreground ,red-alt :slant ,modus-theme-slant)))
1886;;;;; csv-mode
1887 `(csv-separator-face ((,class :background ,bg-special-cold :foreground ,fg-main)))
1888;;;;; ctrlf
1889 `(ctrlf-highlight-active ((,class :inherit (modus-theme-intense-green bold))))
1890 `(ctrlf-highlight-line ((,class :inherit modus-theme-hl-line)))
1891 `(ctrlf-highlight-passive ((,class :inherit modus-theme-refine-cyan)))
1892;;;;; custom (M-x customize)
1893 `(custom-button ((,class :box (:line-width 2 :color nil :style released-button)
1894 :background ,bg-active :foreground ,fg-main)))
1895 `(custom-button-mouse ((,class :box (:line-width 2 :color nil :style released-button)
1896 :background ,bg-active :foreground ,fg-active)))
1897 `(custom-button-pressed ((,class :box (:line-width 2 :color nil :style pressed-button)
1898 :background ,bg-active :foreground ,fg-main)))
1899 `(custom-changed ((,class :inherit modus-theme-subtle-cyan)))
1900 `(custom-comment ((,class :foreground ,fg-alt)))
1901 `(custom-comment-tag ((,class :background ,bg-alt :foreground ,yellow-alt-other)))
1902 `(custom-face-tag ((,class :inherit bold :foreground ,blue-intense)))
1903 `(custom-group-tag ((,class :inherit bold :foreground ,green-intense)))
1904 `(custom-group-tag-1 ((,class :inherit modus-theme-special-warm)))
1905 `(custom-invalid ((,class :inherit (modus-theme-intense-red bold))))
1906 `(custom-modified ((,class :inherit modus-theme-subtle-cyan)))
1907 `(custom-rogue ((,class :inherit modus-theme-refine-magenta)))
1908 `(custom-set ((,class :foreground ,blue-alt)))
1909 `(custom-state ((,class :foreground ,cyan-alt-other)))
1910 `(custom-themed ((,class :inherit modus-theme-subtle-blue)))
1911 `(custom-variable-tag ((,class :inherit bold :foreground ,cyan)))
1912;;;;; dap-mode
1913 `(dap-mouse-eval-thing-face ((,class :box (:line-width -1 :color ,blue-active :style nil)
1914 :background ,bg-active :foreground ,fg-main)))
1915 `(dap-result-overlay-face ((,class :box (:line-width -1 :color ,bg-active :style nil)
1916 :background ,bg-active :foreground ,fg-main)))
1917 `(dap-ui-breakpoint-verified-fringe ((,class :inherit bold :foreground ,green-active)))
1918 `(dap-ui-compile-errline ((,class :inherit bold :foreground ,red-intense)))
1919 `(dap-ui-locals-scope-face ((,class :inherit bold :foreground ,magenta :underline t)))
1920 `(dap-ui-locals-variable-face ((,class :inherit bold :foreground ,cyan)))
1921 `(dap-ui-locals-variable-leaf-face ((,class :foreground ,cyan-alt-other :slant italic)))
1922 `(dap-ui-marker-face ((,class :inherit modus-theme-subtle-blue)))
1923 `(dap-ui-sessions-stack-frame-face ((,class :inherit bold :foreground ,magenta-alt)))
1924 `(dap-ui-sessions-terminated-active-face ((,class :inherit bold :foreground ,fg-alt)))
1925 `(dap-ui-sessions-terminated-face ((,class :foreground ,fg-alt)))
1926;;;;; dashboard (emacs-dashboard)
1927 `(dashboard-banner-logo-title ((,class :inherit bold :foreground ,fg-special-cold)))
1928 `(dashboard-footer ((,class :inherit bold :foreground ,fg-special-mild)))
1929 `(dashboard-heading ((,class :inherit bold :foreground ,fg-special-warm)))
1930 `(dashboard-navigator ((,class :foreground ,cyan-alt-other)))
1931 `(dashboard-text-banner ((,class :foreground ,fg-dim)))
1932;;;;; deadgrep
1933 `(deadgrep-filename-face ((,class :inherit bold :foreground ,fg-special-cold)))
1934 `(deadgrep-match-face ((,class :inherit modus-theme-special-calm)))
1935 `(deadgrep-meta-face ((,class :foreground ,fg-alt)))
1936 `(deadgrep-regexp-metachar-face ((,class :inherit bold :foreground ,yellow-intense)))
1937 `(deadgrep-search-term-face ((,class :inherit bold :foreground ,green-intense)))
1938;;;;; debbugs
1939 `(debbugs-gnu-archived ((,class :inverse-video t)))
1940 `(debbugs-gnu-done ((,class :foreground ,fg-alt)))
1941 `(debbugs-gnu-forwarded ((,class :foreground ,fg-special-warm)))
1942 `(debbugs-gnu-handled ((,class :foreground ,green)))
1943 `(debbugs-gnu-new ((,class :foreground ,red)))
1944 `(debbugs-gnu-pending ((,class :foreground ,cyan)))
1945 `(debbugs-gnu-stale-1 ((,class :foreground ,yellow-nuanced)))
1946 `(debbugs-gnu-stale-2 ((,class :foreground ,yellow)))
1947 `(debbugs-gnu-stale-3 ((,class :foreground ,yellow-alt)))
1948 `(debbugs-gnu-stale-4 ((,class :foreground ,yellow-alt-other)))
1949 `(debbugs-gnu-stale-5 ((,class :foreground ,red-alt)))
1950 `(debbugs-gnu-tagged ((,class :foreground ,magenta-alt)))
1951;;;;; define-word
1952 `(define-word-face-1 ((,class :foreground ,yellow)))
1953 `(define-word-face-2 ((,class :foreground ,fg-main)))
1954;;;;; deft
1955 `(deft-filter-string-error-face ((,class :inherit modus-theme-refine-red)))
1956 `(deft-filter-string-face ((,class :foreground ,green-intense)))
1957 `(deft-header-face ((,class :inherit bold :foreground ,fg-special-warm)))
1958 `(deft-separator-face ((,class :foreground ,fg-alt)))
1959 `(deft-summary-face ((,class :foreground ,fg-alt :slant ,modus-theme-slant)))
1960 `(deft-time-face ((,class :foreground ,fg-special-cold)))
1961 `(deft-title-face ((,class :inherit bold :foreground ,fg-main)))
1962;;;;; dictionary
1963 `(dictionary-button-face ((,class :inherit bold :foreground ,fg-special-cold)))
1964 `(dictionary-reference-face ((,class :inherit :foreground ,blue-alt-other)))
1965 `(dictionary-word-definition-face ((,class :foreground ,fg-main)))
1966 `(dictionary-word-entry-face ((,class :foreground ,fg-special-cold :slant ,modus-theme-slant)))
1967;;;;; diff-hl
1968 `(diff-hl-change ((,class :inherit modus-theme-fringe-yellow)))
1969 `(diff-hl-delete ((,class :inherit modus-theme-fringe-red)))
1970 `(diff-hl-dired-change ((,class :inherit diff-hl-change)))
1971 `(diff-hl-dired-delete ((,class :inherit diff-hl-delete)))
1972 `(diff-hl-dired-ignored ((,class :inherit dired-ignored)))
1973 `(diff-hl-dired-insert ((,class :inherit diff-hl-insert)))
1974 `(diff-hl-dired-unknown ((,class :inherit dired-ignored)))
1975 `(diff-hl-insert ((,class :inherit modus-theme-fringe-green)))
1976 `(diff-hl-reverted-hunk-highlight ((,class :inherit (modus-theme-active-magenta bold))))
1977;;;;; diff-mode
1978 `(diff-added ((,class :inherit modus-theme-diff-added)))
1979 `(diff-changed ((,class :inherit modus-theme-diff-changed)))
1980 `(diff-context ((,class :foreground ,fg-unfocused)))
1981 `(diff-file-header ((,class :inherit bold :foreground ,blue)))
1982 `(diff-function ((,class :foreground ,fg-special-cold)))
1983 `(diff-header ((,class :foreground ,blue-nuanced)))
1984 `(diff-hunk-header ((,class :inherit modus-theme-diff-heading)))
1985 `(diff-index ((,class :inherit bold :foreground ,blue-alt)))
1986 `(diff-indicator-added ((,class :inherit diff-added)))
1987 `(diff-indicator-changed ((,class :inherit diff-changed)))
1988 `(diff-indicator-removed ((,class :inherit diff-removed)))
1989 `(diff-nonexistent ((,class :inherit (modus-theme-neutral bold))))
1990 `(diff-refine-added ((,class :inherit modus-theme-diff-refine-added)))
1991 `(diff-refine-changed ((,class :inherit modus-theme-diff-refine-changed)))
1992 `(diff-refine-removed ((,class :inherit modus-theme-diff-refine-removed)))
1993 `(diff-removed ((,class :inherit modus-theme-diff-removed)))
1994;;;;; dim-autoload
1995 `(dim-autoload-cookie-line ((,class :foreground ,fg-alt :slant ,modus-theme-slant)))
1996;;;;; dir-treeview
1997 `(dir-treeview-archive-face ((,class :foreground ,fg-special-warm)))
1998 `(dir-treeview-archive-icon-face ((,class :inherit dir-treeview-default-icon-face :foreground ,yellow)))
1999 `(dir-treeview-audio-face ((,class :foreground ,magenta)))
2000 `(dir-treeview-audio-icon-face ((,class :inherit dir-treeview-default-icon-face :foreground ,magenta-alt)))
2001 `(dir-treeview-control-face ((,class :foreground ,fg-alt)))
2002 `(dir-treeview-control-mouse-face ((,class :inherit highlight)))
2003 `(dir-treeview-default-icon-face ((,class :inherit bold :family "Font Awesome" :foreground ,fg-alt)))
2004 `(dir-treeview-default-filename-face ((,class :foreground ,fg-main)))
2005 `(dir-treeview-directory-face ((,class :foreground ,blue)))
2006 `(dir-treeview-directory-icon-face ((,class :inherit dir-treeview-default-icon-face :foreground ,blue-alt)))
2007 `(dir-treeview-executable-face ((,class :foreground ,red-alt)))
2008 `(dir-treeview-executable-icon-face ((,class :inherit dir-treeview-default-icon-face :foreground ,red-alt-other)))
2009 `(dir-treeview-image-face ((,class :foreground ,green-alt-other)))
2010 `(dir-treeview-image-icon-face ((,class :inherit dir-treeview-default-icon-face :foreground ,green-alt)))
2011 `(dir-treeview-indent-face ((,class :foreground ,fg-alt)))
2012 `(dir-treeview-label-mouse-face ((,class :inherit highlight)))
2013 `(dir-treeview-start-dir-face ((,class :inherit modus-theme-pseudo-header)))
2014 `(dir-treeview-symlink-face ((,class :inherit button :foreground ,cyan)))
2015 `(dir-treeview-video-face ((,class :foreground ,magenta-alt-other)))
2016 `(dir-treeview-video-icon-face ((,class :inherit dir-treeview-default-icon-face :foreground ,magenta-alt-other)))
2017;;;;; dired
2018 `(dired-directory ((,class :foreground ,blue)))
2019 `(dired-flagged ((,class :inherit modus-theme-mark-del)))
2020 `(dired-header ((,class :inherit modus-theme-pseudo-header)))
2021 `(dired-ignored ((,class :foreground ,fg-alt)))
2022 `(dired-mark ((,class :inherit modus-theme-mark-symbol)))
2023 `(dired-marked ((,class :inherit modus-theme-mark-sel)))
2024 `(dired-perm-write ((,class :foreground ,fg-special-warm)))
2025 `(dired-symlink ((,class :inherit button :foreground ,cyan-alt)))
2026 `(dired-warning ((,class :inherit bold :foreground ,yellow)))
2027;;;;; dired-async
2028 `(dired-async-failures ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,red-active)))
2029 `(dired-async-message ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,green-active)))
2030 `(dired-async-mode-message ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,cyan-active)))
2031;;;;; dired-git
2032 `(dired-git-branch-else ((,class :inherit bold :foreground ,magenta-alt)))
2033 `(dired-git-branch-master ((,class :inherit bold :foreground ,magenta-alt-other)))
2034;;;;; dired-git-info
2035 `(dgi-commit-message-face ((,class :foreground ,fg-special-mild)))
2036;;;;; dired-narrow
2037 `(dired-narrow-blink ((,class :inherit (modus-theme-subtle-cyan bold))))
2038;;;;; dired-subtree
2039 ;; remove background from dired-subtree, else it breaks
2040 ;; dired-{flagged,marked} and any other face that sets a background
2041 ;; such as hl-line
2042 `(dired-subtree-depth-1-face ((,class :background nil)))
2043 `(dired-subtree-depth-2-face ((,class :background nil)))
2044 `(dired-subtree-depth-3-face ((,class :background nil)))
2045 `(dired-subtree-depth-4-face ((,class :background nil)))
2046 `(dired-subtree-depth-5-face ((,class :background nil)))
2047 `(dired-subtree-depth-6-face ((,class :background nil)))
2048;;;;; diredfl
2049 `(diredfl-autofile-name ((,class :inherit modus-theme-special-cold)))
2050 `(diredfl-compressed-file-name ((,class :foreground ,fg-special-warm)))
2051 `(diredfl-compressed-file-suffix ((,class :foreground ,red-alt)))
2052 `(diredfl-date-time ((,class :foreground ,cyan-alt-other)))
2053 `(diredfl-deletion ((,class :inherit modus-theme-mark-del)))
2054 `(diredfl-deletion-file-name ((,class :inherit modus-theme-mark-del)))
2055 `(diredfl-dir-heading ((,class :inherit modus-theme-pseudo-header)))
2056 `(diredfl-dir-name ((,class :inherit dired-directory)))
2057 `(diredfl-dir-priv ((,class :foreground ,blue-alt)))
2058 `(diredfl-exec-priv ((,class :foreground ,magenta)))
2059 `(diredfl-executable-tag ((,class :foreground ,magenta-alt)))
2060 `(diredfl-file-name ((,class :foreground ,fg-main)))
2061 `(diredfl-file-suffix ((,class :foreground ,cyan)))
2062 `(diredfl-flag-mark ((,class :inherit modus-theme-mark-sel)))
2063 `(diredfl-flag-mark-line ((,class :inherit modus-theme-mark-sel)))
2064 `(diredfl-ignored-file-name ((,class :foreground ,fg-alt)))
2065 `(diredfl-link-priv ((,class :foreground ,blue-alt-other)))
2066 `(diredfl-no-priv ((,class :foreground ,fg-alt)))
2067 `(diredfl-number ((,class :foreground ,cyan-alt)))
2068 `(diredfl-other-priv ((,class :foreground ,yellow)))
2069 `(diredfl-rare-priv ((,class :foreground ,red-alt)))
2070 `(diredfl-read-priv ((,class :foreground ,fg-main)))
2071 `(diredfl-symlink ((,class :inherit dired-symlink)))
2072 `(diredfl-tagged-autofile-name ((,class :inherit modus-theme-refine-magenta)))
2073 `(diredfl-write-priv ((,class :foreground ,cyan)))
2074;;;;; disk-usage
2075 `(disk-usage-children ((,class :foreground ,yellow)))
2076 `(disk-usage-inaccessible ((,class :inherit bold :foreground ,red)))
2077 `(disk-usage-percent ((,class :foreground ,green)))
2078 `(disk-usage-size ((,class :foreground ,cyan)))
2079 `(disk-usage-symlink ((,class :inherit button :foreground ,blue)))
2080 `(disk-usage-symlink-directory ((,class :inherit bold :foreground ,blue-alt)))
2081;;;;; doom-modeline
2082 `(doom-modeline-bar ((,class :inherit modus-theme-active-blue)))
2083 `(doom-modeline-bar-inactive ((,class :background ,fg-inactive :foreground ,bg-main)))
2084 `(doom-modeline-battery-charging ((,class :foreground ,green-active)))
2085 `(doom-modeline-battery-critical ((,class :inherit bold :foreground ,red-active)))
2086 `(doom-modeline-battery-error ((,class :inherit bold :box (:line-width -2)
2087 :foreground ,red-active)))
2088 `(doom-modeline-battery-full ((,class :foreground ,blue-active)))
2089 `(doom-modeline-battery-normal ((,class :foreground ,fg-active)))
2090 `(doom-modeline-battery-warning ((,class :inherit bold :foreground ,yellow-active)))
2091 `(doom-modeline-buffer-file ((,class :inherit bold :foreground ,fg-active)))
2092 `(doom-modeline-buffer-major-mode ((,class :inherit bold :foreground ,cyan-active)))
2093 `(doom-modeline-buffer-minor-mode ((,class :foreground ,fg-inactive)))
2094 `(doom-modeline-buffer-modified ((,class :inherit bold :foreground ,magenta-active)))
2095 `(doom-modeline-buffer-path ((,class :inherit bold :foreground ,fg-active)))
2096 `(doom-modeline-debug ((,class :inherit bold :foreground ,yellow-active)))
2097 `(doom-modeline-debug-visual ((,class :inherit bold :foreground ,red-active)))
2098 `(doom-modeline-evil-emacs-state ((,class :inherit bold :foreground ,magenta-active)))
2099 `(doom-modeline-evil-insert-state ((,class :inherit bold :foreground ,green-active)))
2100 `(doom-modeline-evil-motion-state ((,class :inherit bold :foreground ,fg-inactive)))
2101 `(doom-modeline-evil-normal-state ((,class :inherit bold :foreground ,fg-active)))
2102 `(doom-modeline-evil-operator-state ((,class :inherit bold :foreground ,blue-active)))
2103 `(doom-modeline-evil-replace-state ((,class :inherit bold :foreground ,red-active)))
2104 `(doom-modeline-evil-visual-state ((,class :inherit bold :foreground ,cyan-active)))
2105 `(doom-modeline-highlight ((,class :inherit bold :foreground ,blue-active)))
2106 `(doom-modeline-host ((,class :slant italic)))
2107 `(doom-modeline-info ((,class :foreground ,green-active)))
2108 `(doom-modeline-lsp-error ((,class :inherit bold :foreground ,red-active)))
2109 `(doom-modeline-lsp-success ((,class :inherit bold :foreground ,green-active)))
2110 `(doom-modeline-lsp-warning ((,class :inherit bold :foreground ,yellow-active)))
2111 `(doom-modeline-panel ((,class :inherit modus-theme-active-blue)))
2112 `(doom-modeline-persp-buffer-not-in-persp ((,class :foreground ,yellow-active :slant italic)))
2113 `(doom-modeline-persp-name ((,class :foreground ,fg-active)))
2114 `(doom-modeline-project-dir ((,class :inherit bold :foreground ,blue-active)))
2115 `(doom-modeline-project-parent-dir ((,class :foreground ,blue-active)))
2116 `(doom-modeline-project-root-dir ((,class :foreground ,fg-active)))
2117 `(doom-modeline-unread-number ((,class :foreground ,fg-active :slant italic)))
2118 `(doom-modeline-urgent ((,class :inherit bold :foreground ,red-active)))
2119 `(doom-modeline-warning ((,class :inherit bold :foreground ,yellow-active)))
2120;;;;; dynamic-ruler
2121 `(dynamic-ruler-negative-face ((,class :inherit modus-theme-intense-neutral)))
2122 `(dynamic-ruler-positive-face ((,class :inherit modus-theme-intense-yellow)))
2123;;;;; easy-jekyll
2124 `(easy-jekyll-help-face ((,class :background ,bg-dim :foreground ,cyan-alt-other)))
2125;;;;; easy-kill
2126 `(easy-kill-origin ((,class :inherit modus-theme-subtle-red)))
2127 `(easy-kill-selection ((,class :inherit modus-theme-subtle-yellow)))
2128;;;;; ebdb
2129 `(ebdb-address-default ((,class :foreground ,fg-main)))
2130 `(ebdb-db-char ((,class :foreground ,fg-special-cold)))
2131 `(ebdb-defunct ((,class :foreground ,fg-alt)))
2132 `(ebdb-field-hidden ((,class :foreground ,magenta)))
2133 `(ebdb-field-url ((,class :foreground ,blue)))
2134 `(ebdb-label ((,class :foreground ,cyan-alt-other)))
2135 `(ebdb-mail-default ((,class :foreground ,fg-main)))
2136 `(ebdb-mail-primary ((,class :foreground ,blue-alt)))
2137 `(ebdb-marked ((,class :background ,cyan-intense-bg)))
2138 `(ebdb-organization-name ((,class :foreground ,fg-special-calm)))
2139 `(ebdb-person-name ((,class :foreground ,magenta-alt-other)))
2140 `(ebdb-phone-default ((,class :foreground ,fg-special-warm)))
2141 `(ebdb-role-defunct ((,class :foreground ,fg-alt)))
2142 `(eieio-custom-slot-tag-face ((,class :foreground ,red-alt)))
2143;;;;; ediff
2144 ;; NOTE: here we break from the pattern of inheriting from the
2145 ;; modus-theme-diff-* faces.
2146 `(ediff-current-diff-A ((,class ,@(modus-operandi-theme-diff
2147 bg-dim red
2148 bg-diff-removed fg-diff-removed
2149 red-nuanced-bg red-faint))))
2150 `(ediff-current-diff-Ancestor ((,class ,@(modus-operandi-theme-diff
2151 bg-dim fg-special-cold
2152 bg-special-cold fg-special-cold
2153 blue-nuanced-bg blue))))
2154 `(ediff-current-diff-B ((,class ,@(modus-operandi-theme-diff
2155 bg-dim green
2156 bg-diff-added fg-diff-added
2157 green-nuanced-bg green-faint))))
2158 `(ediff-current-diff-C ((,class ,@(modus-operandi-theme-diff
2159 bg-dim yellow
2160 bg-diff-changed fg-diff-changed
2161 yellow-nuanced-bg yellow-faint))))
2162 `(ediff-even-diff-A ((,class :background ,bg-diff-neutral-1 :foreground ,fg-diff-neutral-1)))
2163 `(ediff-even-diff-Ancestor ((,class :background ,bg-diff-neutral-2 :foreground ,fg-diff-neutral-1)))
2164 `(ediff-even-diff-B ((,class :background ,bg-diff-neutral-1 :foreground ,fg-diff-neutral-1)))
2165 `(ediff-even-diff-C ((,class :background ,bg-diff-neutral-2 :foreground ,fg-diff-neutral-2)))
2166 `(ediff-fine-diff-A ((,class :background ,bg-diff-focus-removed :foreground ,fg-diff-focus-removed)))
2167 `(ediff-fine-diff-Ancestor ((,class :inherit modus-theme-refine-cyan)))
2168 `(ediff-fine-diff-B ((,class :background ,bg-diff-focus-added :foreground ,fg-diff-focus-added)))
2169 `(ediff-fine-diff-C ((,class :background ,bg-diff-focus-changed :foreground ,fg-diff-focus-changed)))
2170 `(ediff-odd-diff-A ((,class :background ,bg-diff-neutral-2 :foreground ,fg-diff-neutral-2)))
2171 `(ediff-odd-diff-Ancestor ((,class :background ,bg-diff-neutral-0 :foreground ,fg-diff-neutral-0)))
2172 `(ediff-odd-diff-B ((,class :background ,bg-diff-neutral-2 :foreground ,fg-diff-neutral-2)))
2173 `(ediff-odd-diff-C ((,class :background ,bg-diff-neutral-1 :foreground ,fg-diff-neutral-1)))
2174;;;;; eglot
2175 `(eglot-mode-line ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,magenta-active)))
2176;;;;; el-search
2177 `(el-search-highlight-in-prompt-face ((,class :inherit bold :foreground ,magenta-alt)))
2178 `(el-search-match ((,class :inherit modus-theme-intense-green)))
2179 `(el-search-other-match ((,class :inherit modus-theme-special-mild)))
2180 `(el-search-occur-match ((,class :inherit modus-theme-special-calm)))
2181;;;;; eldoc
2182 ;; NOTE: see https://github.com/purcell/package-lint/issues/187
2183 (list 'eldoc-highlight-function-argument `((,class :inherit bold :foreground ,blue-alt-other)))
2184;;;;; eldoc-box
2185 `(eldoc-box-body ((,class :background ,bg-alt :foreground ,fg-main)))
2186 `(eldoc-box-border ((,class :background ,fg-alt)))
2187;;;;; elfeed
2188 `(elfeed-log-date-face ((,class :foreground ,cyan-alt)))
2189 `(elfeed-log-debug-level-face ((,class :foreground ,magenta)))
2190 `(elfeed-log-error-level-face ((,class :foreground ,red)))
2191 `(elfeed-log-info-level-face ((,class :foreground ,green)))
2192 `(elfeed-log-warn-level-face ((,class :foreground ,yellow)))
2193 `(elfeed-search-date-face ((,class :foreground ,blue-nuanced)))
2194 `(elfeed-search-feed-face ((,class :foreground ,cyan)))
2195 `(elfeed-search-filter-face ((,class :inherit bold :foreground ,magenta-active)))
2196 `(elfeed-search-last-update-face ((,class :foreground ,cyan-active)))
2197 `(elfeed-search-tag-face ((,class :foreground ,blue-nuanced)))
2198 `(elfeed-search-title-face ((,class :foreground ,fg-dim)))
2199 `(elfeed-search-unread-count-face ((,class :foreground ,green-active)))
2200 `(elfeed-search-unread-title-face ((,class :inherit bold :foreground ,fg-main)))
2201;;;;; elfeed-score
2202 `(elfeed-score-date-face ((,class :foreground ,blue)))
2203 `(elfeed-score-debug-level-face ((,class :foreground ,magenta-alt-other)))
2204 `(elfeed-score-error-level-face ((,class :foreground ,red)))
2205 `(elfeed-score-info-level-face ((,class :foreground ,cyan)))
2206 `(elfeed-score-warn-level-face ((,class :foreground ,yellow)))
2207;;;;; emms
2208 `(emms-playlist-track-face ((,class :foreground ,blue)))
2209 `(emms-playlist-selected-face ((,class :inherit bold :foreground ,magenta)))
2210;;;;; enhanced-ruby-mode
2211 `(enh-ruby-heredoc-delimiter-face ((,class :foreground ,blue-alt-other)))
2212 `(enh-ruby-op-face ((,class :foreground ,fg-main)))
2213 `(enh-ruby-regexp-delimiter-face ((,class :foreground ,green)))
2214 `(enh-ruby-regexp-face ((,class :foreground ,magenta)))
2215 `(enh-ruby-string-delimiter-face ((,class :foreground ,blue-alt)))
2216 `(erm-syn-errline ((,class :foreground ,red :underline t)))
2217 `(erm-syn-warnline ((,class :foreground ,yellow :underline t)))
2218;;;;; epa
2219 `(epa-field-body ((,class :foreground ,fg-main)))
2220 `(epa-field-name ((,class :inherit bold :foreground ,fg-dim)))
2221 `(epa-mark ((,class :inherit bold :foreground ,magenta)))
2222 `(epa-string ((,class :foreground ,blue-alt)))
2223 `(epa-validity-disabled ((,class :inherit modus-theme-refine-red)))
2224 `(epa-validity-high ((,class :inherit bold :foreground ,green-alt-other)))
2225 `(epa-validity-low ((,class :foreground ,fg-alt)))
2226 `(epa-validity-medium ((,class :foreground ,green-alt)))
2227;;;;; equake
2228 `(equake-buffer-face ((,class :background ,bg-main :foreground ,fg-main)))
2229 `(equake-shell-type-eshell ((,class :background ,bg-inactive :foreground ,green-active)))
2230 `(equake-shell-type-rash ((,class :background ,bg-inactive :foreground ,red-active)))
2231 `(equake-shell-type-shell ((,class :background ,bg-inactive :foreground ,cyan-active)))
2232 `(equake-shell-type-term ((,class :background ,bg-inactive :foreground ,yellow-active)))
2233 `(equake-shell-type-vterm ((,class :background ,bg-inactive :foreground ,magenta-active)))
2234 `(equake-tab-active ((,class :background ,fg-alt :foreground ,bg-alt)))
2235 `(equake-tab-inactive ((,class :foreground ,fg-inactive)))
2236;;;;; erc
2237 `(erc-action-face ((,class :inherit bold :foreground ,cyan)))
2238 `(erc-bold-face ((,class :inherit bold)))
2239 `(erc-button ((,class :inherit button)))
2240 `(erc-command-indicator-face ((,class :inherit bold :foreground ,cyan-alt)))
2241 `(erc-current-nick-face ((,class :foreground ,magenta-alt-other)))
2242 `(erc-dangerous-host-face ((,class :inherit modus-theme-intense-red)))
2243 `(erc-direct-msg-face ((,class :foreground ,magenta)))
2244 `(erc-error-face ((,class :inherit bold :foreground ,red)))
2245 `(erc-fool-face ((,class :foreground ,fg-inactive)))
2246 `(erc-header-line ((,class :background ,bg-header :foreground ,fg-header)))
2247 `(erc-input-face ((,class :foreground ,fg-special-calm)))
2248 `(erc-inverse-face ((,class :inherit erc-default-face :inverse-video t)))
2249 `(erc-keyword-face ((,class :inherit bold :foreground ,magenta-alt)))
2250 `(erc-my-nick-face ((,class :inherit bold :foreground ,magenta)))
2251 `(erc-my-nick-prefix-face ((,class :inherit erc-my-nick-face)))
2252 `(erc-nick-default-face ((,class :inherit bold :foreground ,blue)))
2253 `(erc-nick-msg-face ((,class :inherit bold :foreground ,green)))
2254 `(erc-nick-prefix-face ((,class :inherit erc-nick-default-face)))
2255 `(erc-notice-face ((,class :foreground ,fg-unfocused)))
2256 `(erc-pal-face ((,class :inherit bold :foreground ,red-alt)))
2257 `(erc-prompt-face ((,class :inherit bold :foreground ,cyan-alt-other)))
2258 `(erc-timestamp-face ((,class :foreground ,blue-nuanced)))
2259 `(erc-underline-face ((,class :underline t)))
2260 `(bg:erc-color-face0 ((,class :background "white")))
2261 `(bg:erc-color-face1 ((,class :background "black")))
2262 `(bg:erc-color-face10 ((,class :background ,cyan-subtle-bg)))
2263 `(bg:erc-color-face11 ((,class :background ,cyan-intense-bg)))
2264 `(bg:erc-color-face12 ((,class :background ,blue-subtle-bg)))
2265 `(bg:erc-color-face13 ((,class :background ,magenta-subtle-bg)))
2266 `(bg:erc-color-face14 ((,class :background "gray60")))
2267 `(bg:erc-color-face15 ((,class :background "gray80")))
2268 `(bg:erc-color-face2 ((,class :background ,blue-intense-bg)))
2269 `(bg:erc-color-face3 ((,class :background ,green-intense-bg)))
2270 `(bg:erc-color-face4 ((,class :background ,red-subtle-bg)))
2271 `(bg:erc-color-face5 ((,class :background ,red-intense-bg)))
2272 `(bg:erc-color-face6 ((,class :background ,magenta-refine-bg)))
2273 `(bg:erc-color-face7 ((,class :background ,yellow-subtle-bg)))
2274 `(bg:erc-color-face8 ((,class :background ,yellow-refine-bg)))
2275 `(bg:erc-color-face9 ((,class :background ,green-subtle-bg)))
2276 `(fg:erc-color-face0 ((,class :foreground "white")))
2277 `(fg:erc-color-face1 ((,class :foreground "black")))
2278 `(fg:erc-color-face10 ((,class :foreground ,cyan)))
2279 `(fg:erc-color-face11 ((,class :foreground ,cyan-alt-other)))
2280 `(fg:erc-color-face12 ((,class :foreground ,blue)))
2281 `(fg:erc-color-face13 ((,class :foreground ,magenta-alt)))
2282 `(fg:erc-color-face14 ((,class :foreground "gray60")))
2283 `(fg:erc-color-face15 ((,class :foreground "gray80")))
2284 `(fg:erc-color-face2 ((,class :foreground ,blue-alt-other)))
2285 `(fg:erc-color-face3 ((,class :foreground ,green)))
2286 `(fg:erc-color-face4 ((,class :foreground ,red)))
2287 `(fg:erc-color-face5 ((,class :foreground ,red-alt)))
2288 `(fg:erc-color-face6 ((,class :foreground ,magenta-alt-other)))
2289 `(fg:erc-color-face7 ((,class :foreground ,yellow-alt-other)))
2290 `(fg:erc-color-face8 ((,class :foreground ,yellow-alt)))
2291 `(fg:erc-color-face9 ((,class :foreground ,green-alt-other)))
2292;;;;; eros
2293 `(eros-result-overlay-face ((,class :box (:line-width -1 :color ,blue)
2294 :background ,bg-dim :foreground ,fg-dim)))
2295;;;;; ert
2296 `(ert-test-result-expected ((,class :inherit modus-theme-intense-green)))
2297 `(ert-test-result-unexpected ((,class :inherit modus-theme-intense-red)))
2298;;;;; eshell
2299 `(eshell-ls-archive ((,class :inherit bold :foreground ,cyan-alt)))
2300 `(eshell-ls-backup ((,class :foreground ,yellow-alt)))
2301 `(eshell-ls-clutter ((,class :foreground ,red-alt)))
2302 `(eshell-ls-directory ((,class :inherit bold :foreground ,blue-alt)))
2303 `(eshell-ls-executable ((,class :foreground ,magenta-alt)))
2304 `(eshell-ls-missing ((,class :inherit modus-theme-intense-red)))
2305 `(eshell-ls-product ((,class :foreground ,fg-special-warm)))
2306 `(eshell-ls-readonly ((,class :foreground ,fg-special-cold)))
2307 `(eshell-ls-special ((,class :inherit bold :foreground ,magenta)))
2308 `(eshell-ls-symlink ((,class :inherit button :foreground ,cyan)))
2309 `(eshell-ls-unreadable ((,class :background ,bg-inactive :foreground ,fg-inactive)))
2310 `(eshell-prompt ((,class ,@(modus-operandi-theme-bold-weight)
2311 ,@(modus-operandi-theme-prompt
2312 green-alt-other
2313 green-nuanced-bg green-alt
2314 green-refine-bg fg-main))))
2315;;;;; eshell-fringe-status
2316 `(eshell-fringe-status-failure ((,class :foreground ,red)))
2317 `(eshell-fringe-status-success ((,class :foreground ,green)))
2318;;;;; eshell-git-prompt
2319 `(eshell-git-prompt-add-face ((,class :foreground ,fg-alt)))
2320 `(eshell-git-prompt-branch-face ((,class :foreground ,fg-alt)))
2321 `(eshell-git-prompt-directory-face ((,class :foreground ,cyan)))
2322 `(eshell-git-prompt-exit-fail-face ((,class :foreground ,red)))
2323 `(eshell-git-prompt-exit-success-face ((,class :foreground ,green)))
2324 `(eshell-git-prompt-modified-face ((,class :foreground ,yellow)))
2325 `(eshell-git-prompt-powerline-clean-face ((,class :background ,green-refine-bg)))
2326 `(eshell-git-prompt-powerline-dir-face ((,class :background ,blue-refine-bg)))
2327 `(eshell-git-prompt-powerline-not-clean-face ((,class :background ,magenta-refine-bg)))
2328 `(eshell-git-prompt-robyrussell-branch-face ((,class :foreground ,red)))
2329 `(eshell-git-prompt-robyrussell-git-dirty-face ((,class :foreground ,yellow)))
2330 `(eshell-git-prompt-robyrussell-git-face ((,class :foreground ,blue)))
2331;;;;; eshell-prompt-extras (epe)
2332 `(epe-dir-face ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,blue)))
2333 `(epe-git-dir-face ((,class :foreground ,red-alt-other)))
2334 `(epe-git-face ((,class :foreground ,cyan-alt)))
2335 `(epe-pipeline-delimiter-face ((,class :foreground ,green-alt)))
2336 `(epe-pipeline-host-face ((,class :foreground ,blue)))
2337 `(epe-pipeline-time-face ((,class :foreground ,fg-special-warm)))
2338 `(epe-pipeline-user-face ((,class :foreground ,magenta)))
2339 `(epe-remote-face ((,class :foreground ,fg-alt :slant ,modus-theme-slant)))
2340 `(epe-status-face ((,class :foreground ,magenta-alt-other)))
2341 `(epe-venv-face ((,class :foreground ,fg-alt :slant ,modus-theme-slant)))
2342;;;;; eshell-syntax-highlighting
2343 `(eshell-syntax-highlighting-alias-face ((,class :foreground ,cyan)))
2344 `(eshell-syntax-highlighting-comment-face ((,class :foreground ,fg-alt)))
2345 `(eshell-syntax-highlighting-directory-face ((,class :foreground ,blue)))
2346 `(eshell-syntax-highlighting-envvar-face ((,class :foreground ,magenta-alt)))
2347 `(eshell-syntax-highlighting-invalid-face ((,class :foreground ,red)))
2348 `(eshell-syntax-highlighting-lisp-function-face ((,class :foreground ,magenta)))
2349 `(eshell-syntax-highlighting-shell-command-face ((,class :foreground ,cyan-alt-other)))
2350 `(eshell-syntax-highlighting-string-face ((,class :foreground ,blue-alt)))
2351;;;;; evil-mode
2352 `(evil-ex-commands ((,class :foreground ,magenta-alt-other)))
2353 `(evil-ex-info ((,class :foreground ,cyan-alt-other)))
2354 `(evil-ex-lazy-highlight ((,class :inherit modus-theme-refine-cyan)))
2355 `(evil-ex-search ((,class :inherit modus-theme-intense-green)))
2356 `(evil-ex-substitute-matches ((,class :inherit modus-theme-refine-yellow :underline t)))
2357 `(evil-ex-substitute-replacement ((,class :inherit (modus-theme-intense-green bold))))
2358;;;;; evil-goggles
2359 `(evil-goggles-change-face ((,class :inherit modus-theme-refine-yellow)))
2360 `(evil-goggles-commentary-face ((,class :inherit modus-theme-subtle-neutral :slant ,modus-theme-slant)))
2361 `(evil-goggles-default-face ((,class :inherit modus-theme-subtle-neutral)))
2362 `(evil-goggles-delete-face ((,class :inherit modus-theme-refine-red)))
2363 `(evil-goggles-fill-and-move-face ((,class :inherit evil-goggles-default-face)))
2364 `(evil-goggles-indent-face ((,class :inherit evil-goggles-default-face)))
2365 `(evil-goggles-join-face ((,class :inherit modus-theme-subtle-green)))
2366 `(evil-goggles-nerd-commenter-face ((,class :inherit evil-goggles-commentary-face)))
2367 `(evil-goggles-paste-face ((,class :inherit modus-theme-subtle-cyan)))
2368 `(evil-goggles-record-macro-face ((,class :inherit modus-theme-special-cold)))
2369 `(evil-goggles-replace-with-register-face ((,class :inherit modus-theme-refine-magenta)))
2370 `(evil-goggles-set-marker-face ((,class :inherit modus-theme-intense-magenta)))
2371 `(evil-goggles-shift-face ((,class :inherit evil-goggles-default-face)))
2372 `(evil-goggles-surround-face ((,class :inherit evil-goggles-default-face)))
2373 `(evil-goggles-yank-face ((,class :inherit modus-theme-subtle-blue)))
2374;;;;; evil-visual-mark-mode
2375 `(evil-visual-mark-face ((,class :inherit modus-theme-intense-magenta)))
2376;;;;; eww
2377 `(eww-invalid-certificate ((,class :foreground ,red-active)))
2378 `(eww-valid-certificate ((,class :foreground ,green-active)))
2379 `(eww-form-checkbox ((,class :box (:line-width 1 :color ,fg-inactive :style released-button) :background ,bg-inactive :foreground ,fg-main)))
2380 `(eww-form-file ((,class :box (:line-width 1 :color ,fg-inactive :style released-button) :background ,bg-active :foreground ,fg-main)))
2381 `(eww-form-select ((,class :inherit eww-form-checkbox)))
2382 `(eww-form-submit ((,class :inherit eww-form-file)))
2383 `(eww-form-text ((,class :box (:line-width 1 :color ,fg-inactive :style none) :background ,bg-active :foreground ,fg-active)))
2384 `(eww-form-textarea ((,class :background ,bg-alt :foreground ,fg-main)))
2385;;;;; eyebrowse
2386 `(eyebrowse-mode-line-active ((,class :inherit bold :foreground ,blue-active)))
2387;;;;; fancy-dabbrev
2388 `(fancy-dabbrev-menu-face ((,class :background ,bg-alt :foreground ,fg-alt)))
2389 `(fancy-dabbrev-preview-face ((,class :foreground ,fg-alt :underline t)))
2390 `(fancy-dabbrev-selection-face ((,class :inherit (modus-theme-intense-cyan bold))))
2391;;;;; flycheck
2392 `(flycheck-error
2393 ((,(append '((supports :underline (:style wave))) class)
2394 :underline (:color ,fg-lang-error :style wave))
2395 (,class :foreground ,fg-lang-error :underline t)))
2396 `(flycheck-error-list-checker-name ((,class :foreground ,magenta-active)))
2397 `(flycheck-error-list-column-number ((,class :foreground ,fg-special-cold)))
2398 `(flycheck-error-list-error ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,red)))
2399 `(flycheck-error-list-filename ((,class :foreground ,blue)))
2400 `(flycheck-error-list-highlight ((,class :inherit modus-theme-hl-line)))
2401 `(flycheck-error-list-id ((,class :foreground ,magenta-alt-other)))
2402 `(flycheck-error-list-id-with-explainer ((,class :inherit flycheck-error-list-id :box t)))
2403 `(flycheck-error-list-info ((,class :foreground ,cyan)))
2404 `(flycheck-error-list-line-number ((,class :foreground ,fg-special-warm)))
2405 `(flycheck-error-list-warning ((,class :foreground ,yellow)))
2406 `(flycheck-fringe-error ((,class :inherit modus-theme-fringe-red)))
2407 `(flycheck-fringe-info ((,class :inherit modus-theme-fringe-cyan)))
2408 `(flycheck-fringe-warning ((,class :inherit modus-theme-fringe-yellow)))
2409 `(flycheck-info
2410 ((,(append '((supports :underline (:style wave))) class)
2411 :underline (:color ,fg-lang-note :style wave))
2412 (,class :foreground ,fg-lang-note :underline t)))
2413 `(flycheck-verify-select-checker ((,class :box (:line-width 1 :color nil :style released-button))))
2414 `(flycheck-warning
2415 ((,(append '((supports :underline (:style wave))) class)
2416 :underline (:color ,fg-lang-warning :style wave))
2417 (,class :foreground ,fg-lang-warning :underline t)))
2418;;;;; flycheck-color-mode-line
2419 `(flycheck-color-mode-line-error-face ((,class :inherit flycheck-fringe-error)))
2420 `(flycheck-color-mode-line-info-face ((,class :inherit flycheck-fringe-info)))
2421 `(flycheck-color-mode-line-running-face ((,class :foreground ,fg-inactive :slant italic)))
2422 `(flycheck-color-mode-line-info-face ((,class :inherit flycheck-fringe-warning)))
2423;;;;; flycheck-indicator
2424 `(flycheck-indicator-disabled ((,class :foreground ,fg-inactive :slant ,modus-theme-slant)))
2425 `(flycheck-indicator-error ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,red-active)))
2426 `(flycheck-indicator-info ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,blue-active)))
2427 `(flycheck-indicator-running ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,magenta-active)))
2428 `(flycheck-indicator-success ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,green-active)))
2429 `(flycheck-indicator-warning ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,yellow-active)))
2430;;;;; flycheck-posframe
2431 `(flycheck-posframe-background-face ((,class :background ,bg-alt)))
2432 `(flycheck-posframe-border-face ((,class :foreground ,fg-alt)))
2433 `(flycheck-posframe-error-face ((,class :inherit bold :foreground ,red)))
2434 `(flycheck-posframe-face ((,class :foreground ,fg-main :slant ,modus-theme-slant)))
2435 `(flycheck-posframe-info-face ((,class :inherit bold :foreground ,cyan)))
2436 `(flycheck-posframe-warning-face ((,class :inherit bold :foreground ,yellow)))
2437;;;;; flymake
2438 `(flymake-error
2439 ((,(append '((supports :underline (:style wave))) class)
2440 :underline (:color ,fg-lang-error :style wave))
2441 (,class :foreground ,fg-lang-error :underline t)))
2442 `(flymake-note
2443 ((,(append '((supports :underline (:style wave))) class)
2444 :underline (:color ,fg-lang-note :style wave))
2445 (,class :foreground ,fg-lang-note :underline t)))
2446 `(flymake-warning
2447 ((,(append '((supports :underline (:style wave))) class)
2448 :underline (:color ,fg-lang-warning :style wave))
2449 (,class :foreground ,fg-lang-warning :underline t)))
2450;;;;; flyspell
2451 `(flyspell-duplicate
2452 ((,(append '((supports :underline (:style wave))) class)
2453 :underline (:color ,fg-lang-warning :style wave))
2454 (,class :foreground ,fg-lang-warning :underline t)))
2455 `(flyspell-incorrect
2456 ((,(append '((supports :underline (:style wave))) class)
2457 :underline (:color ,fg-lang-error :style wave))
2458 (,class :foreground ,fg-lang-error :underline t)))
2459;;;;; flyspell-correct
2460 `(flyspell-correct-highlight-face ((,class :inherit modus-theme-refine-green)))
2461;;;;; flx
2462 `(flx-highlight-face ((,class ,@(modus-operandi-theme-extra-completions
2463 'modus-theme-subtle-magenta
2464 'modus-theme-intense-magenta
2465 'modus-theme-nuanced-magenta
2466 magenta-alt
2467 'bold))))
2468;;;;; freeze-it
2469 `(freeze-it-show ((,class :background ,bg-dim :foreground ,fg-special-warm)))
2470;;;;; frog-menu
2471 `(frog-menu-action-keybinding-face ((,class :foreground ,blue-alt-other)))
2472 `(frog-menu-actions-face ((,class :foreground ,magenta)))
2473 `(frog-menu-border ((,class :background ,bg-active)))
2474 `(frog-menu-candidates-face ((,class :foreground ,fg-main)))
2475 `(frog-menu-posframe-background-face ((,class :background ,bg-dim)))
2476 `(frog-menu-prompt-face ((,class :foreground ,cyan)))
2477;;;;; focus
2478 `(focus-unfocused ((,class :foreground ,fg-unfocused)))
2479;;;;; fold-this
2480 `(fold-this-overlay ((,class :inherit modus-theme-special-mild)))
2481;;;;; font-lock
2482 `(font-lock-builtin-face ((,class ,@(modus-operandi-theme-syntax-foreground
2483 magenta-alt magenta-alt-faint)
2484 ,@(modus-operandi-theme-bold-weight))))
2485 `(font-lock-comment-delimiter-face ((,class :foreground ,fg-alt :slant ,modus-theme-slant)))
2486 `(font-lock-comment-face ((,class :foreground ,fg-alt :slant ,modus-theme-slant)))
2487 `(font-lock-constant-face ((,class ,@(modus-operandi-theme-syntax-foreground
2488 blue-alt-other blue-alt-other-faint))))
2489 `(font-lock-doc-face ((,class ,@(modus-operandi-theme-syntax-foreground
2490 fg-special-cold cyan-alt-other-faint)
2491 :slant ,modus-theme-slant)))
2492 `(font-lock-function-name-face ((,class ,@(modus-operandi-theme-syntax-foreground
2493 magenta magenta-faint))))
2494 `(font-lock-keyword-face ((,class ,@(modus-operandi-theme-syntax-foreground
2495 magenta-alt-other magenta-alt-other-faint)
2496 ,@(modus-operandi-theme-bold-weight))))
2497 `(font-lock-negation-char-face ((,class ,@(modus-operandi-theme-syntax-foreground
2498 yellow yellow-faint)
2499 ,@(modus-operandi-theme-bold-weight))))
2500 `(font-lock-preprocessor-face ((,class ,@(modus-operandi-theme-syntax-foreground
2501 red-alt-other red-alt-other-faint))))
2502 `(font-lock-regexp-grouping-backslash ((,class :inherit bold :foreground ,fg-escape-char-backslash)))
2503 `(font-lock-regexp-grouping-construct ((,class :inherit bold :foreground ,fg-escape-char-construct)))
2504 `(font-lock-string-face ((,class ,@(modus-operandi-theme-syntax-foreground
2505 blue-alt blue-alt-faint))))
2506 `(font-lock-type-face ((,class ,@(modus-operandi-theme-syntax-foreground
2507 magenta-alt magenta-alt-faint))))
2508 `(font-lock-variable-name-face ((,class ,@(modus-operandi-theme-syntax-foreground
2509 cyan cyan-faint))))
2510 `(font-lock-warning-face ((,class ,@(modus-operandi-theme-syntax-foreground
2511 yellow-active yellow-alt-faint)
2512 ,@(modus-operandi-theme-bold-weight))))
2513;;;;; forge
2514 `(forge-post-author ((,class :inherit bold :foreground ,fg-main)))
2515 `(forge-post-date ((,class :foreground ,fg-special-cold)))
2516 `(forge-topic-closed ((,class :foreground ,fg-alt)))
2517 `(forge-topic-merged ((,class :foreground ,fg-alt)))
2518 `(forge-topic-open ((,class :foreground ,fg-special-mild)))
2519 `(forge-topic-unmerged ((,class :foreground ,magenta :slant ,modus-theme-slant)))
2520 `(forge-topic-unread ((,class :inherit bold :foreground ,fg-main)))
2521;;;;; fountain-mode
2522 `(fountain-character ((,class :foreground ,blue-alt-other)))
2523 `(fountain-comment ((,class :foreground ,fg-alt :slant ,modus-theme-slant)))
2524 `(fountain-dialog ((,class :foreground ,blue-alt)))
2525 `(fountain-metadata-key ((,class :foreground ,green-alt-other)))
2526 `(fountain-metadata-value ((,class :foreground ,blue)))
2527 `(fountain-non-printing ((,class :foreground ,fg-alt)))
2528 `(fountain-note ((,class :foreground ,yellow :slant ,modus-theme-slant)))
2529 `(fountain-page-break ((,class :inherit bold :foreground ,red-alt)))
2530 `(fountain-page-number ((,class :inherit bold :foreground ,red-alt-other)))
2531 `(fountain-paren ((,class :foreground ,cyan)))
2532 `(fountain-scene-heading ((,class :inherit bold :foreground ,blue-nuanced)))
2533 `(fountain-section-heading ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,fg-main
2534 ,@(modus-operandi-theme-scale modus-operandi-theme-scale-4))))
2535 `(fountain-section-heading-1 ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,fg-main
2536 ,@(modus-operandi-theme-scale modus-operandi-theme-scale-4))))
2537 `(fountain-section-heading-2 ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,fg-special-warm
2538 ,@(modus-operandi-theme-scale modus-operandi-theme-scale-3))))
2539 `(fountain-section-heading-3 ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,fg-special-mild
2540 ,@(modus-operandi-theme-scale modus-operandi-theme-scale-2))))
2541 `(fountain-section-heading-4 ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,fg-special-calm
2542 ,@(modus-operandi-theme-scale modus-operandi-theme-scale-1))))
2543 `(fountain-section-heading-5 ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,fg-special-calm)))
2544 `(fountain-synopsis ((,class :foreground ,cyan-alt)))
2545 `(fountain-trans ((,class :foreground ,yellow-alt-other)))
2546;;;;; geiser
2547 `(geiser-font-lock-autodoc-current-arg ((,class ,@(modus-operandi-theme-syntax-foreground
2548 magenta magenta-faint))))
2549 `(geiser-font-lock-autodoc-identifier ((,class ,@(modus-operandi-theme-syntax-foreground
2550 blue blue-faint))))
2551 `(geiser-font-lock-doc-button ((,class ,@(modus-operandi-theme-syntax-foreground
2552 cyan-alt cyan-alt-faint)
2553 :underline t)))
2554 `(geiser-font-lock-doc-link ((,class :inherit link)))
2555 `(geiser-font-lock-error-link ((,class ,@(modus-operandi-theme-syntax-foreground
2556 red-alt red-alt-faint)
2557 :underline t)))
2558 `(geiser-font-lock-image-button ((,class ,@(modus-operandi-theme-syntax-foreground
2559 green-alt green-alt-faint)
2560 :underline t)))
2561 `(geiser-font-lock-repl-input ((,class :inherit bold)))
2562 `(geiser-font-lock-repl-output ((,class ,@(modus-operandi-theme-syntax-foreground
2563 magenta-alt-other magenta-alt-other-faint))))
2564 `(geiser-font-lock-repl-prompt ((,class ,@(modus-operandi-theme-syntax-foreground
2565 cyan-alt-other cyan-alt-other-faint))))
2566 `(geiser-font-lock-xref-header ((,class :inherit bold)))
2567 `(geiser-font-lock-xref-link ((,class :inherit link)))
2568;;;;; git-commit
2569 `(git-commit-comment-action ((,class :foreground ,fg-alt :slant ,modus-theme-slant)))
2570 `(git-commit-comment-branch-local ((,class :foreground ,blue-alt :slant ,modus-theme-slant)))
2571 `(git-commit-comment-branch-remote ((,class :foreground ,magenta-alt :slant ,modus-theme-slant)))
2572 `(git-commit-comment-detached ((,class :foreground ,cyan-alt :slant ,modus-theme-slant)))
2573 `(git-commit-comment-file ((,class :foreground ,fg-special-cold :slant ,modus-theme-slant)))
2574 `(git-commit-comment-heading ((,class :inherit bold :foreground ,fg-dim :slant ,modus-theme-slant)))
2575 `(git-commit-keyword ((,class :foreground ,magenta)))
2576 `(git-commit-known-pseudo-header ((,class :foreground ,cyan-alt-other)))
2577 `(git-commit-nonempty-second-line ((,class :inherit modus-theme-refine-yellow)))
2578 `(git-commit-overlong-summary ((,class :inherit modus-theme-refine-yellow)))
2579 `(git-commit-pseudo-header ((,class :foreground ,blue)))
2580 `(git-commit-summary ((,class :inherit bold :foreground ,cyan)))
2581;;;;; git-gutter
2582 `(git-gutter:added ((,class :inherit modus-theme-fringe-green)))
2583 `(git-gutter:deleted ((,class :inherit modus-theme-fringe-red)))
2584 `(git-gutter:modified ((,class :inherit modus-theme-fringe-yellow)))
2585 `(git-gutter:separator ((,class :inherit modus-theme-fringe-cyan)))
2586 `(git-gutter:unchanged ((,class :inherit modus-theme-fringe-magenta)))
2587;;;;; git-gutter-fr
2588 `(git-gutter-fr:added ((,class :inherit modus-theme-fringe-green)))
2589 `(git-gutter-fr:deleted ((,class :inherit modus-theme-fringe-red)))
2590 `(git-gutter-fr:modified ((,class :inherit modus-theme-fringe-yellow)))
2591;;;;; git-{gutter,fringe}+
2592 `(git-gutter+-added ((,class :inherit modus-theme-fringe-green)))
2593 `(git-gutter+-deleted ((,class :inherit modus-theme-fringe-red)))
2594 `(git-gutter+-modified ((,class :inherit modus-theme-fringe-yellow)))
2595 `(git-gutter+-separator ((,class :inherit modus-theme-fringe-cyan)))
2596 `(git-gutter+-unchanged ((,class :inherit modus-theme-fringe-magenta)))
2597 `(git-gutter-fr+-added ((,class :inherit modus-theme-fringe-green)))
2598 `(git-gutter-fr+-deleted ((,class :inherit modus-theme-fringe-red)))
2599 `(git-gutter-fr+-modified ((,class :inherit modus-theme-fringe-yellow)))
2600;;;;; git-lens
2601 `(git-lens-added ((,class :inherit bold :foreground ,green)))
2602 `(git-lens-deleted ((,class :inherit bold :foreground ,red)))
2603 `(git-lens-header ((,class :inherit bold :height 1.1 :foreground ,cyan)))
2604 `(git-lens-modified ((,class :inherit bold :foreground ,yellow)))
2605 `(git-lens-renamed ((,class :inherit bold :foreground ,magenta)))
2606;;;;; git-rebase
2607 `(git-rebase-comment-hash ((,class :foreground ,fg-special-cold :slant ,modus-theme-slant)))
2608 `(git-rebase-comment-heading ((,class :inherit bold :foreground ,fg-dim :slant ,modus-theme-slant)))
2609 `(git-rebase-description ((,class :foreground ,fg-main)))
2610 `(git-rebase-hash ((,class :foreground ,cyan-alt-other)))
2611;;;;; git-timemachine
2612 `(git-timemachine-commit ((,class :inherit bold :foreground ,yellow-active)))
2613 `(git-timemachine-minibuffer-author-face ((,class :foreground ,fg-special-warm)))
2614 `(git-timemachine-minibuffer-detail-face ((,class :foreground ,red-alt)))
2615;;;;; git-walktree
2616 `(git-walktree-commit-face ((,class :foreground ,yellow)))
2617 `(git-walktree-symlink-face ((,class :inherit button :foreground ,cyan)))
2618 `(git-walktree-tree-face ((,class :foreground ,magenta)))
2619;;;;; gnus
2620 `(gnus-button ((,class :inherit button)))
2621 `(gnus-cite-1 ((,class :foreground ,blue-alt)))
2622 `(gnus-cite-10 ((,class :foreground ,magenta-alt-other)))
2623 `(gnus-cite-11 ((,class :foreground ,yellow-alt-other)))
2624 `(gnus-cite-2 ((,class :foreground ,red-alt)))
2625 `(gnus-cite-3 ((,class :foreground ,green-alt)))
2626 `(gnus-cite-4 ((,class :foreground ,magenta-alt)))
2627 `(gnus-cite-5 ((,class :foreground ,yellow-alt)))
2628 `(gnus-cite-6 ((,class :foreground ,cyan-alt)))
2629 `(gnus-cite-7 ((,class :foreground ,blue-alt-other)))
2630 `(gnus-cite-8 ((,class :foreground ,red-alt-other)))
2631 `(gnus-cite-9 ((,class :foreground ,green-alt-other)))
2632 `(gnus-cite-attribution ((,class :foreground ,fg-main :slant italic)))
2633 `(gnus-emphasis-highlight-words ((,class :inherit modus-theme-refine-yellow)))
2634 `(gnus-group-mail-1 ((,class :inherit bold :foreground ,magenta-alt)))
2635 `(gnus-group-mail-1-empty ((,class :foreground ,magenta-alt)))
2636 `(gnus-group-mail-2 ((,class :inherit bold :foreground ,magenta)))
2637 `(gnus-group-mail-2-empty ((,class :foreground ,magenta)))
2638 `(gnus-group-mail-3 ((,class :inherit bold :foreground ,magenta-alt-other)))
2639 `(gnus-group-mail-3-empty ((,class :foreground ,magenta-alt-other)))
2640 `(gnus-group-mail-low ((,class :inherit bold :foreground ,magenta-nuanced)))
2641 `(gnus-group-mail-low-empty ((,class :foreground ,magenta-nuanced)))
2642 `(gnus-group-news-1 ((,class :inherit bold :foreground ,green)))
2643 `(gnus-group-news-1-empty ((,class :foreground ,green)))
2644 `(gnus-group-news-2 ((,class :inherit bold :foreground ,cyan)))
2645 `(gnus-group-news-2-empty ((,class :foreground ,cyan)))
2646 `(gnus-group-news-3 ((,class :inherit bold :foreground ,yellow-nuanced)))
2647 `(gnus-group-news-3-empty ((,class :foreground ,yellow-nuanced)))
2648 `(gnus-group-news-4 ((,class :inherit bold :foreground ,cyan-nuanced)))
2649 `(gnus-group-news-4-empty ((,class :foreground ,cyan-nuanced)))
2650 `(gnus-group-news-5 ((,class :inherit bold :foreground ,red-nuanced)))
2651 `(gnus-group-news-5-empty ((,class :foreground ,red-nuanced)))
2652 `(gnus-group-news-6 ((,class :inherit bold :foreground ,fg-alt)))
2653 `(gnus-group-news-6-empty ((,class :foreground ,fg-alt)))
2654 `(gnus-group-news-low ((,class :inherit bold :foreground ,green-nuanced)))
2655 `(gnus-group-news-low-empty ((,class :foreground ,green-nuanced)))
2656 `(gnus-header-content ((,class :foreground ,cyan)))
2657 `(gnus-header-from ((,class :inherit bold :foreground ,cyan-alt-other :underline nil)))
2658 `(gnus-header-name ((,class :foreground ,green)))
2659 `(gnus-header-newsgroups ((,class :inherit bold :foreground ,blue-alt)))
2660 `(gnus-header-subject ((,class :inherit bold :foreground ,magenta-alt-other)))
2661 `(gnus-server-agent ((,class :inherit bold :foreground ,cyan)))
2662 `(gnus-server-closed ((,class :inherit bold :foreground ,magenta)))
2663 `(gnus-server-cloud ((,class :inherit bold :foreground ,cyan-alt)))
2664 `(gnus-server-cloud-host ((,class :inherit modus-theme-refine-cyan)))
2665 `(gnus-server-denied ((,class :inherit bold :foreground ,red)))
2666 `(gnus-server-offline ((,class :inherit bold :foreground ,yellow)))
2667 `(gnus-server-opened ((,class :inherit bold :foreground ,green)))
2668 `(gnus-signature ((,class :foreground ,fg-special-cold :slant italic)))
2669 `(gnus-splash ((,class :foreground ,fg-alt)))
2670 `(gnus-summary-cancelled ((,class :inherit modus-theme-mark-alt)))
2671 `(gnus-summary-high-ancient ((,class :inherit bold :foreground ,fg-alt)))
2672 `(gnus-summary-high-read ((,class :inherit bold :foreground ,fg-special-cold)))
2673 `(gnus-summary-high-ticked ((,class :inherit bold :foreground ,red-alt-other)))
2674 `(gnus-summary-high-undownloaded ((,class :inherit bold :foreground ,yellow)))
2675 `(gnus-summary-high-unread ((,class :inherit bold :foreground ,fg-main)))
2676 `(gnus-summary-low-ancient ((,class :foreground ,fg-alt :slant italic)))
2677 `(gnus-summary-low-read ((,class :foreground ,fg-alt :slant italic)))
2678 `(gnus-summary-low-ticked ((,class :foreground ,red-refine-fg :slant italic)))
2679 `(gnus-summary-low-undownloaded ((,class :foreground ,yellow-refine-fg :slant italic)))
2680 `(gnus-summary-low-unread ((,class :inherit bold :foreground ,fg-special-cold)))
2681 `(gnus-summary-normal-ancient ((,class :foreground ,fg-special-calm)))
2682 `(gnus-summary-normal-read ((,class :foreground ,fg-alt)))
2683 `(gnus-summary-normal-ticked ((,class :foreground ,red-alt-other)))
2684 `(gnus-summary-normal-undownloaded ((,class :foreground ,yellow)))
2685 `(gnus-summary-normal-unread ((,class :foreground ,fg-main)))
2686 `(gnus-summary-selected ((,class :inherit modus-theme-subtle-blue)))
2687;;;;; golden-ratio-scroll-screen
2688 `(golden-ratio-scroll-highlight-line-face ((,class :background ,cyan-subtle-bg :foreground ,fg-main)))
2689;;;;; helm
2690 `(helm-M-x-key ((,class :inherit bold :foreground ,magenta-alt-other)))
2691 `(helm-action ((,class :underline t)))
2692 `(helm-bookmark-addressbook ((,class :foreground ,green-alt)))
2693 `(helm-bookmark-directory ((,class :inherit bold :foreground ,blue)))
2694 `(helm-bookmark-file ((,class :foreground ,fg-main)))
2695 `(helm-bookmark-file-not-found ((,class :background ,bg-alt :foreground ,fg-alt)))
2696 `(helm-bookmark-gnus ((,class :foreground ,magenta)))
2697 `(helm-bookmark-info ((,class :foreground ,cyan-alt)))
2698 `(helm-bookmark-man ((,class :foreground ,yellow-alt)))
2699 `(helm-bookmark-w3m ((,class :foreground ,blue-alt)))
2700 `(helm-buffer-archive ((,class :inherit bold :foreground ,cyan)))
2701 `(helm-buffer-directory ((,class :inherit bold :foreground ,blue)))
2702 `(helm-buffer-file ((,class :foreground ,fg-main)))
2703 `(helm-buffer-modified ((,class :foreground ,yellow-alt)))
2704 `(helm-buffer-not-saved ((,class :foreground ,red-alt)))
2705 `(helm-buffer-process ((,class :foreground ,magenta)))
2706 `(helm-buffer-saved-out ((,class :inherit bold :background ,bg-alt :foreground ,red)))
2707 `(helm-buffer-size ((,class :foreground ,fg-alt)))
2708 `(helm-candidate-number ((,class :foreground ,cyan-active)))
2709 `(helm-candidate-number-suspended ((,class :foreground ,yellow-active)))
2710 `(helm-comint-prompts-buffer-name ((,class :foreground ,green-active)))
2711 `(helm-comint-prompts-promptidx ((,class :foreground ,cyan-active)))
2712 `(helm-delete-async-message ((,class :inherit bold :foreground ,magenta-active)))
2713 `(helm-eob-line ((,class :background ,bg-main :foreground ,fg-main)))
2714 `(helm-eshell-prompts-buffer-name ((,class :foreground ,green-active)))
2715 `(helm-eshell-prompts-promptidx ((,class :foreground ,cyan-active)))
2716 `(helm-etags-file ((,class :foreground ,fg-dim :underline t)))
2717 `(helm-ff-backup-file ((,class :foreground ,fg-alt)))
2718 `(helm-ff-denied ((,class ,@(modus-operandi-theme-extra-completions
2719 'modus-theme-subtle-red
2720 'modus-theme-intense-red
2721 'modus-theme-nuanced-red
2722 red))))
2723 `(helm-ff-directory ((,class :inherit helm-buffer-directory)))
2724 `(helm-ff-dirs ((,class :inherit bold :foreground ,blue-alt-other)))
2725 `(helm-ff-dotted-directory ((,class :inherit bold :background ,bg-alt :foreground ,fg-alt)))
2726 `(helm-ff-dotted-symlink-directory ((,class :inherit (button helm-ff-dotted-directory))))
2727 `(helm-ff-executable ((,class :foreground ,magenta-alt)))
2728 `(helm-ff-file ((,class :foreground ,fg-main)))
2729 `(helm-ff-file-extension ((,class :foreground ,fg-special-warm)))
2730 `(helm-ff-invalid-symlink ((,class :inherit button :foreground ,red)))
2731 `(helm-ff-pipe ((,class ,@(modus-operandi-theme-extra-completions
2732 'modus-theme-refine-magenta
2733 'modus-theme-subtle-magenta
2734 'modus-theme-nuanced-magenta
2735 magenta))))
2736 `(helm-ff-prefix ((,class ,@(modus-operandi-theme-extra-completions
2737 'modus-theme-refine-yellow
2738 'modus-theme-subtle-yellow
2739 'modus-theme-nuanced-yellow
2740 yellow-alt-other))))
2741 `(helm-ff-socket ((,class :foreground ,red-alt-other)))
2742 `(helm-ff-suid ((,class ,@(modus-operandi-theme-extra-completions
2743 'modus-theme-subtle-red
2744 'modus-theme-refine-red
2745 'modus-theme-nuanced-yellow
2746 red-alt))))
2747 `(helm-ff-symlink ((,class :inherit button :foreground ,cyan)))
2748 `(helm-ff-truename ((,class :foreground ,blue-alt-other)))
2749 `(helm-grep-cmd-line ((,class :foreground ,yellow-alt-other)))
2750 `(helm-grep-file ((,class :inherit bold :foreground ,fg-special-cold)))
2751 `(helm-grep-finish ((,class :foreground ,green-active)))
2752 `(helm-grep-lineno ((,class :foreground ,fg-special-warm)))
2753 `(helm-grep-match ((,class :inherit modus-theme-special-calm)))
2754 `(helm-header ((,class :inherit bold :foreground ,fg-special-cold)))
2755 `(helm-header-line-left-margin ((,class :inherit bold :foreground ,yellow-intense)))
2756 `(helm-history-deleted ((,class ,@(modus-operandi-theme-extra-completions
2757 'modus-theme-subtle-red
2758 'modus-theme-intense-red
2759 'modus-theme-nuanced-red
2760 red
2761 'bold))))
2762 `(helm-history-remote ((,class :foreground ,red-alt-other)))
2763 `(helm-lisp-completion-info ((,class :foreground ,fg-special-warm)))
2764 `(helm-lisp-show-completion ((,class ,@(modus-operandi-theme-extra-completions
2765 'modus-theme-subtle-yellow
2766 'modus-theme-refine-yellow
2767 'modus-theme-nuanced-yellow
2768 yellow
2769 'bold))))
2770 `(helm-locate-finish ((,class :foreground ,green-active)))
2771 `(helm-match ((,class ,@(modus-operandi-theme-extra-completions
2772 'modus-theme-subtle-cyan
2773 'modus-theme-refine-cyan
2774 'modus-theme-nuanced-cyan
2775 cyan
2776 'bold))))
2777 `(helm-match-item ((,class ,@(modus-operandi-theme-extra-completions
2778 'modus-theme-subtle-neutral
2779 'modus-theme-subtle-cyan
2780 'modus-theme-nuanced-cyan
2781 cyan-alt-other))))
2782 `(helm-minibuffer-prompt ((,class :inherit minibuffer-prompt)))
2783 `(helm-moccur-buffer ((,class :inherit button :foreground ,cyan-alt-other)))
2784 `(helm-mode-prefix ((,class ,@(modus-operandi-theme-extra-completions
2785 'modus-theme-subtle-magenta
2786 'modus-theme-intense-magenta
2787 'modus-theme-nuanced-magenta
2788 magenta-alt
2789 'bold))))
2790 `(helm-non-file-buffer ((,class :foreground ,fg-alt)))
2791 `(helm-prefarg ((,class :foreground ,red-active)))
2792 `(helm-resume-need-update ((,class ,@(modus-operandi-theme-extra-completions
2793 'modus-theme-subtle-magenta
2794 'modus-theme-refine-magenta
2795 'modus-theme-nuanced-magenta
2796 magenta-alt-other))))
2797 `(helm-selection ((,class ,@(modus-operandi-theme-extra-completions
2798 'modus-theme-subtle-blue
2799 'modus-theme-refine-blue
2800 'modus-theme-special-cold
2801 nil
2802 'bold))))
2803 `(helm-selection-line ((,class :inherit modus-theme-special-cold)))
2804 `(helm-separator ((,class :foreground ,fg-special-mild)))
2805 `(helm-time-zone-current ((,class :foreground ,green)))
2806 `(helm-time-zone-home ((,class :foreground ,magenta)))
2807 `(helm-source-header ((,class :inherit bold :foreground ,red-alt
2808 ,@(modus-operandi-theme-scale modus-operandi-theme-scale-4))))
2809 `(helm-top-columns ((,class :inherit helm-header)))
2810 `(helm-ucs-char ((,class :foreground ,yellow-alt-other)))
2811 `(helm-visible-mark ((,class :inherit modus-theme-subtle-cyan)))
2812;;;;; helm-ls-git
2813 `(helm-ls-git-added-copied-face ((,class :foreground ,green-intense)))
2814 `(helm-ls-git-added-modified-face ((,class :foreground ,yellow-intense)))
2815 `(helm-ls-git-conflict-face ((,class :inherit bold :foreground ,red-intense)))
2816 `(helm-ls-git-deleted-and-staged-face ((,class :foreground ,red-nuanced)))
2817 `(helm-ls-git-deleted-not-staged-face ((,class :foreground ,red)))
2818 `(helm-ls-git-modified-and-staged-face ((,class :foreground ,yellow-nuanced)))
2819 `(helm-ls-git-modified-not-staged-face ((,class :foreground ,yellow)))
2820 `(helm-ls-git-renamed-modified-face ((,class :foreground ,magenta)))
2821 `(helm-ls-git-untracked-face ((,class :foreground ,fg-special-cold)))
2822;;;;; helm-switch-shell
2823 `(helm-switch-shell-new-shell-face ((,class ,@(modus-operandi-theme-extra-completions
2824 'modus-theme-subtle-magenta
2825 'modus-theme-refine-magenta
2826 'modus-theme-nuanced-magenta
2827 magenta-alt-other
2828 'bold))))
2829;;;;; helm-xref
2830 `(helm-xref-file-name ((,class :inherit bold :foreground ,fg-special-cold)))
2831 `(helm-xref-file-name ((,class :foreground ,fg-special-warm)))
2832;;;;; helpful
2833 `(helpful-heading ((,class :inherit modus-theme-heading-1)))
2834;;;;; highlight region or ad-hoc regexp
2835 `(hi-black-b ((,class :background ,fg-main :foreground ,bg-main)))
2836 `(hi-blue ((,class :background ,bg-alt :foreground ,blue :underline t)))
2837 `(hi-blue-b ((,class :inherit modus-theme-intense-blue)))
2838 `(hi-green ((,class :background ,bg-alt :foreground ,green :underline t)))
2839 `(hi-green-b ((,class :inherit modus-theme-intense-green)))
2840 `(hi-pink ((,class :background ,bg-alt :foreground ,magenta :underline t)))
2841 `(hi-red-b ((,class :inherit modus-theme-intense-red)))
2842 `(hi-yellow ((,class :background ,bg-alt :foreground ,yellow :underline t)))
2843 `(highlight ((,class :inherit modus-theme-subtle-blue)))
2844 `(highlight-changes ((,class :foreground ,yellow-alt-other)))
2845 `(highlight-changes-delete ((,class :foreground ,red-alt-other :underline t)))
2846 `(hl-line ((,class :inherit modus-theme-hl-line)))
2847;;;;; highlight-blocks
2848 `(highlight-blocks-depth-1-face ((,class :background ,bg-dim :foreground ,fg-main)))
2849 `(highlight-blocks-depth-2-face ((,class :background ,bg-alt :foreground ,fg-main)))
2850 `(highlight-blocks-depth-3-face ((,class :background ,bg-special-cold :foreground ,fg-main)))
2851 `(highlight-blocks-depth-4-face ((,class :background ,bg-special-calm :foreground ,fg-main)))
2852 `(highlight-blocks-depth-5-face ((,class :background ,bg-special-warm :foreground ,fg-main)))
2853 `(highlight-blocks-depth-6-face ((,class :background ,bg-special-mild :foreground ,fg-main)))
2854 `(highlight-blocks-depth-7-face ((,class :background ,bg-inactive :foreground ,fg-main)))
2855 `(highlight-blocks-depth-8-face ((,class :background ,bg-active :foreground ,fg-main)))
2856 `(highlight-blocks-depth-9-face ((,class :background ,cyan-subtle-bg :foreground ,fg-main)))
2857;;;;; highlight-defined
2858 `(highlight-defined-builtin-function-name-face ((,class :foreground ,magenta)))
2859 `(highlight-defined-face-name-face ((,class :foreground ,fg-main)))
2860 `(highlight-defined-function-name-face ((,class :foreground ,magenta)))
2861 `(highlight-defined-macro-name-face ((,class :foreground ,magenta-alt)))
2862 `(highlight-defined-special-form-name-face ((,class :foreground ,magenta-alt-other)))
2863 `(highlight-defined-variable-name-face ((,class :foreground ,cyan)))
2864;;;;; highlight-escape-sequences (`hes-mode')
2865 `(hes-escape-backslash-face ((,class :inherit bold :foreground ,fg-escape-char-construct)))
2866 `(hes-escape-sequence-face ((,class :inherit bold :foreground ,fg-escape-char-backslash)))
2867;;;;; highlight-indentation
2868 `(highlight-indentation-face ((,class :inherit modus-theme-hl-line)))
2869 `(highlight-indentation-current-column-face ((,class :background ,bg-active)))
2870;;;;; highlight-numbers
2871 `(highlight-numbers-number ((,class :foreground ,blue-alt-other)))
2872;;;;; highlight-symbol
2873 `(highlight-symbol-face ((,class :inherit modus-theme-special-mild)))
2874;;;;; highlight-thing
2875 `(highlight-thing ((,class :background ,bg-alt :foreground ,cyan)))
2876;;;;; hl-defined
2877 `(hdefd-functions ((,class :foreground ,blue)))
2878 `(hdefd-undefined ((,class :foreground ,red-alt)))
2879 `(hdefd-variables ((,class :foreground ,cyan-alt)))
2880;;;;; hl-fill-column
2881 `(hl-fill-column-face ((,class :background ,bg-active :foreground ,fg-active)))
2882;;;;; hl-todo
2883 `(hl-todo ((,class :inherit bold :foreground ,red-alt-other :slant ,modus-theme-slant)))
2884;;;;; hydra
2885 `(hydra-face-amaranth ((,class :inherit bold :foreground ,yellow)))
2886 `(hydra-face-blue ((,class :inherit bold :foreground ,blue-alt)))
2887 `(hydra-face-pink ((,class :inherit bold :foreground ,magenta-alt)))
2888 `(hydra-face-red ((,class :inherit bold :foreground ,red)))
2889 `(hydra-face-teal ((,class :inherit bold :foreground ,cyan)))
2890;;;;; hyperlist
2891 `(hyperlist-condition ((,class :foreground ,green)))
2892 `(hyperlist-hashtag ((,class :foreground ,yellow)))
2893 `(hyperlist-operator ((,class :foreground ,blue-alt)))
2894 `(hyperlist-paren ((,class :foreground ,cyan-alt-other)))
2895 `(hyperlist-quote ((,class :foreground ,cyan-alt)))
2896 `(hyperlist-ref ((,class :foreground ,magenta-alt-other)))
2897 `(hyperlist-stars ((,class :foreground ,fg-alt)))
2898 `(hyperlist-tag ((,class :foreground ,red)))
2899 `(hyperlist-toplevel ((,class :inherit bold :foreground ,fg-main)))
2900;;;;; icomplete
2901 `(icomplete-first-match ((,class :inherit bold
2902 ,@(modus-operandi-theme-standard-completions
2903 magenta bg-alt
2904 bg-active fg-main))))
2905;;;;; icomplete-vertical
2906 `(icomplete-vertical-separator ((,class :foreground ,fg-alt)))
2907;;;;; ido-mode
2908 `(ido-first-match ((,class :inherit bold
2909 ,@(modus-operandi-theme-standard-completions
2910 magenta bg-alt
2911 bg-active fg-main))))
2912 `(ido-incomplete-regexp ((,class :inherit error)))
2913 `(ido-indicator ((,class :inherit modus-theme-subtle-yellow)))
2914 `(ido-only-match ((,class :inherit bold
2915 ,@(modus-operandi-theme-standard-completions
2916 green green-nuanced-bg
2917 green-intense-bg fg-main))))
2918 `(ido-subdir ((,class :foreground ,blue)))
2919 `(ido-virtual ((,class :foreground ,fg-special-warm)))
2920;;;;; iedit
2921 `(iedit-occurrence ((,class :inherit modus-theme-refine-blue)))
2922 `(iedit-read-only-occurrence ((,class :inherit modus-theme-intense-yellow)))
2923;;;;; iflipb
2924 `(iflipb-current-buffer-face ((,class :inherit bold :foreground ,cyan-alt)))
2925 `(iflipb-other-buffer-face ((,class :foreground ,fg-alt)))
2926;;;;; imenu-list
2927 `(imenu-list-entry-face-0 ((,class :foreground ,cyan)))
2928 `(imenu-list-entry-face-1 ((,class :foreground ,blue)))
2929 `(imenu-list-entry-face-2 ((,class :foreground ,cyan-alt-other)))
2930 `(imenu-list-entry-face-3 ((,class :foreground ,blue-alt)))
2931 `(imenu-list-entry-subalist-face-0 ((,class :inherit bold :foreground ,magenta-alt-other :underline t)))
2932 `(imenu-list-entry-subalist-face-1 ((,class :inherit bold :foreground ,magenta :underline t)))
2933 `(imenu-list-entry-subalist-face-2 ((,class :inherit bold :foreground ,green-alt-other :underline t)))
2934 `(imenu-list-entry-subalist-face-3 ((,class :inherit bold :foreground ,red-alt-other :underline t)))
2935;;;;; indium
2936 `(indium-breakpoint-face ((,class :foreground ,red-active)))
2937 `(indium-frame-url-face ((,class :inherit button :foreground ,fg-alt)))
2938 `(indium-keyword-face ((,class :foreground ,magenta-alt-other)))
2939 `(indium-litable-face ((,class :foreground ,fg-special-warm :slant ,modus-theme-slant)))
2940 `(indium-repl-error-face ((,class :inherit bold :foreground ,red)))
2941 `(indium-repl-prompt-face ((,class :foreground ,cyan-alt-other)))
2942 `(indium-repl-stdout-face ((,class :foreground ,fg-main)))
2943;;;;; info
2944 `(Info-quoted ((,class ,@(modus-operandi-theme-mixed-fonts)
2945 :foreground ,magenta))) ; the capitalisation is canonical
2946 `(info-header-node ((,class :inherit bold :foreground ,fg-alt)))
2947 `(info-header-xref ((,class :foreground ,blue-active)))
2948 `(info-index-match ((,class :inherit match)))
2949 `(info-menu-header ((,class :inherit modus-theme-heading-3)))
2950 `(info-menu-star ((,class :foreground ,red)))
2951 `(info-node ((,class :inherit bold)))
2952 `(info-title-1 ((,class :inherit modus-theme-heading-1)))
2953 `(info-title-2 ((,class :inherit modus-theme-heading-2)))
2954 `(info-title-3 ((,class :inherit modus-theme-heading-3)))
2955 `(info-title-4 ((,class :inherit modus-theme-heading-4)))
2956;;;;; info-colors
2957 `(info-colors-lisp-code-block ((,class :inherit fixed-pitch)))
2958 `(info-colors-ref-item-command ((,class :foreground ,magenta)))
2959 `(info-colors-ref-item-constant ((,class :foreground ,blue-alt-other)))
2960 `(info-colors-ref-item-function ((,class :foreground ,magenta)))
2961 `(info-colors-ref-item-macro ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,magenta-alt-other)))
2962 `(info-colors-ref-item-other ((,class :foreground ,cyan)))
2963 `(info-colors-ref-item-special-form ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,magenta-alt-other)))
2964 `(info-colors-ref-item-syntax-class ((,class :foreground ,magenta)))
2965 `(info-colors-ref-item-type ((,class :foreground ,magenta-alt)))
2966 `(info-colors-ref-item-user-option ((,class :foreground ,cyan)))
2967 `(info-colors-ref-item-variable ((,class :foreground ,cyan)))
2968;;;;; interaction-log
2969 `(ilog-buffer-face ((,class :foreground ,magenta-alt-other)))
2970 `(ilog-change-face ((,class :foreground ,magenta-alt)))
2971 `(ilog-echo-face ((,class :foreground ,yellow-alt-other)))
2972 `(ilog-load-face ((,class :foreground ,green)))
2973 `(ilog-message-face ((,class :foreground ,fg-alt)))
2974 `(ilog-non-change-face ((,class :foreground ,blue)))
2975;;;;; ioccur
2976 `(ioccur-cursor ((,class :foreground ,fg-main)))
2977 `(ioccur-invalid-regexp ((,class :foreground ,red)))
2978 `(ioccur-match-face ((,class :inherit modus-theme-special-calm)))
2979 `(ioccur-match-overlay-face ((,class ,@(and (>= emacs-major-version 27) '(:extend t))
2980 :inherit modus-theme-special-cold)))
2981 `(ioccur-num-line-face ((,class :foreground ,fg-special-warm)))
2982 `(ioccur-overlay-face ((,class ,@(and (>= emacs-major-version 27) '(:extend t))
2983 :inherit modus-theme-refine-blue)))
2984 `(ioccur-regexp-face ((,class :inherit (modus-theme-intense-magenta bold))))
2985 `(ioccur-title-face ((,class :inherit bold :foreground ,red-alt
2986 ,@(modus-operandi-theme-scale modus-operandi-theme-scale-4))))
2987;;;;; isearch, occur, and the like
2988 `(isearch ((,class :inherit (modus-theme-intense-green bold))))
2989 `(isearch-fail ((,class :inherit modus-theme-refine-red)))
2990 `(lazy-highlight ((,class :inherit modus-theme-refine-cyan)))
2991 `(match ((,class :inherit modus-theme-special-calm)))
2992 `(query-replace ((,class :inherit (modus-theme-intense-yellow bold))))
2993;;;;; ivy
2994 `(ivy-action ((,class :inherit bold :foreground ,red-alt)))
2995 `(ivy-completions-annotations ((,class :foreground ,fg-special-cold :slant ,modus-theme-slant)))
2996 `(ivy-confirm-face ((,class :foreground ,cyan)))
2997 `(ivy-current-match ((,class ,@(modus-operandi-theme-extra-completions
2998 'modus-theme-refine-cyan
2999 'modus-theme-intense-cyan
3000 'modus-theme-special-warm
3001 nil
3002 'bold))))
3003 `(ivy-cursor ((,class :background ,fg-main :foreground ,bg-main)))
3004 `(ivy-grep-info ((,class :foreground ,cyan-alt)))
3005 `(ivy-grep-line-number ((,class :foreground ,fg-special-warm)))
3006 `(ivy-highlight-face ((,class :foreground ,magenta)))
3007 `(ivy-match-required-face ((,class :inherit error)))
3008 `(ivy-minibuffer-match-face-1 ((,class ,@(modus-operandi-theme-extra-completions
3009 'modus-theme-subtle-neutral
3010 'modus-theme-intense-neutral
3011 'modus-theme-subtle-neutral
3012 fg-alt))))
3013 `(ivy-minibuffer-match-face-2 ((,class ,@(modus-operandi-theme-extra-completions
3014 'modus-theme-subtle-green
3015 'modus-theme-refine-green
3016 'modus-theme-nuanced-green
3017 green-alt-other
3018 'bold))))
3019 `(ivy-minibuffer-match-face-3 ((,class ,@(modus-operandi-theme-extra-completions
3020 'modus-theme-subtle-cyan
3021 'modus-theme-refine-cyan
3022 'modus-theme-nuanced-cyan
3023 cyan-alt-other
3024 'bold))))
3025 `(ivy-minibuffer-match-face-4 ((,class ,@(modus-operandi-theme-extra-completions
3026 'modus-theme-subtle-magenta
3027 'modus-theme-refine-magenta
3028 'modus-theme-nuanced-magenta
3029 magenta-alt-other
3030 'bold))))
3031 `(ivy-minibuffer-match-highlight ((,class ,@(modus-operandi-theme-extra-completions
3032 'modus-theme-subtle-blue
3033 'modus-theme-intense-blue
3034 'modus-theme-nuanced-blue
3035 blue-alt-other
3036 'bold))))
3037 `(ivy-modified-buffer ((,class :foreground ,yellow :slant ,modus-theme-slant)))
3038 `(ivy-modified-outside-buffer ((,class :foreground ,yellow-alt :slant ,modus-theme-slant)))
3039 `(ivy-org ((,class :foreground ,cyan-alt-other)))
3040 `(ivy-prompt-match ((,class :inherit ivy-current-match)))
3041 `(ivy-remote ((,class :foreground ,magenta)))
3042 `(ivy-separator ((,class :foreground ,fg-alt)))
3043 `(ivy-subdir ((,class :foreground ,blue-alt-other)))
3044 `(ivy-virtual ((,class :foreground ,magenta-alt-other)))
3045 `(ivy-yanked-word ((,class ,@(modus-operandi-theme-extra-completions
3046 'modus-theme-subtle-blue
3047 'modus-theme-refine-blue
3048 'modus-theme-nuanced-blue
3049 blue-alt))))
3050;;;;; ivy-posframe
3051 `(ivy-posframe ((,class :background ,bg-dim :foreground ,fg-main)))
3052 `(ivy-posframe-border ((,class :background ,bg-active)))
3053 `(ivy-posframe-cursor ((,class :background ,fg-main :foreground ,bg-main)))
3054;;;;; jira (org-jira)
3055 `(jiralib-comment-face ((,class :background ,bg-alt)))
3056 `(jiralib-comment-header-face ((,class :inherit bold)))
3057 `(jiralib-issue-info-face ((,class :inherit modus-theme-special-warm)))
3058 `(jiralib-issue-info-header-face ((,class :inherit (modus-theme-special-warm bold))))
3059 `(jiralib-issue-summary-face ((,class :inherit bold)))
3060 `(jiralib-link-filter-face ((,class :underline t)))
3061 `(jiralib-link-issue-face ((,class :underline t)))
3062 `(jiralib-link-project-face ((,class :underline t)))
3063;;;;; journalctl-mode
3064 `(journalctl-error-face ((,class :inherit bold :foreground ,red)))
3065 `(journalctl-finished-face ((,class :inherit bold :foreground ,green)))
3066 `(journalctl-host-face ((,class :foreground ,blue)))
3067 `(journalctl-process-face ((,class :foreground ,cyan-alt-other)))
3068 `(journalctl-starting-face ((,class :foreground ,green)))
3069 `(journalctl-timestamp-face ((,class :foreground ,fg-special-cold)))
3070 `(journalctl-warning-face ((,class :inherit bold :foreground ,yellow)))
3071;;;;; js2-mode
3072 `(js2-error ((,class :foreground ,red)))
3073 `(js2-external-variable ((,class :foreground ,cyan-alt-other)))
3074 `(js2-function-call ((,class :foreground ,magenta)))
3075 `(js2-function-param ((,class :foreground ,blue)))
3076 `(js2-instance-member ((,class :foreground ,magenta-alt-other)))
3077 `(js2-jsdoc-html-tag-delimiter ((,class :foreground ,fg-main)))
3078 `(js2-jsdoc-html-tag-name ((,class :foreground ,cyan)))
3079 `(js2-jsdoc-tag ((,class :foreground ,fg-special-calm)))
3080 `(js2-jsdoc-type ((,class :foreground ,fg-special-cold)))
3081 `(js2-jsdoc-value ((,class :foreground ,fg-special-warm)))
3082 `(js2-object-property ((,class :foreground ,fg-main)))
3083 `(js2-object-property-access ((,class :foreground ,fg-main)))
3084 `(js2-private-function-call ((,class :foreground ,green-alt-other)))
3085 `(js2-private-member ((,class :foreground ,fg-special-mild)))
3086 `(js2-warning ((,class :foreground ,yellow-alt :underline t)))
3087;;;;; julia
3088 `(julia-macro-face ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,magenta)))
3089 `(julia-quoted-symbol-face ((,class :foreground ,blue-alt-other)))
3090;;;;; jupyter
3091 `(jupyter-eval-overlay ((,class :inherit bold :foreground ,blue)))
3092 `(jupyter-repl-input-prompt ((,class :foreground ,cyan-alt-other)))
3093 `(jupyter-repl-output-prompt ((,class :foreground ,magenta-alt-other)))
3094 `(jupyter-repl-traceback ((,class :inherit modus-theme-intense-red)))
3095;;;;; kaocha-runner
3096 `(kaocha-runner-error-face ((,class :foreground ,red)))
3097 `(kaocha-runner-success-face ((,class :foreground ,green)))
3098 `(kaocha-runner-warning-face ((,class :foreground ,yellow)))
3099;;;;; keycast
3100 `(keycast-command ((,class :inherit bold :foreground ,blue-active)))
3101 `(keycast-key ((,class ,@(modus-operandi-theme-mode-line-attrs
3102 bg-main blue-active
3103 bg-main blue-active
3104 blue-active blue-intense
3105 'alt-style -3))))
3106;;;;; line numbers (display-line-numbers-mode and global variant)
3107 `(line-number ((,class :inherit default :background ,bg-dim :foreground ,fg-alt)))
3108 `(line-number-current-line ((,class :inherit default :background ,bg-active :foreground ,fg-main)))
3109;;;;; lsp-mode
3110 `(lsp-face-highlight-read ((,class :inherit modus-theme-subtle-blue :underline t)))
3111 `(lsp-face-highlight-textual ((,class :inherit modus-theme-subtle-blue)))
3112 `(lsp-face-highlight-write ((,class :inherit (modus-theme-refine-blue bold))))
3113 `(lsp-face-semhl-constant ((,class :foreground ,blue-alt-other)))
3114 `(lsp-face-semhl-deprecated
3115 ((,(append '((supports :underline (:style wave))) class)
3116 :foreground ,yellow :underline (:style wave))
3117 (,class :foreground ,yellow :underline t)))
3118 `(lsp-face-semhl-enummember ((,class :foreground ,blue-alt-other)))
3119 `(lsp-face-semhl-field ((,class :foreground ,cyan-alt)))
3120 `(lsp-face-semhl-field-static ((,class :foreground ,cyan-alt :slant ,modus-theme-slant)))
3121 `(lsp-face-semhl-function ((,class :foreground ,magenta)))
3122 `(lsp-face-semhl-method ((,class :foreground ,magenta)))
3123 `(lsp-face-semhl-namespace ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,magenta-alt)))
3124 `(lsp-face-semhl-preprocessor ((,class :foreground ,red-alt-other)))
3125 `(lsp-face-semhl-static-method ((,class :foreground ,magenta :slant ,modus-theme-slant)))
3126 `(lsp-face-semhl-type-class ((,class :foreground ,magenta-alt)))
3127 `(lsp-face-semhl-type-enum ((,class :foreground ,magenta-alt)))
3128 `(lsp-face-semhl-type-primitive ((,class :foreground ,magenta-alt :slant ,modus-theme-slant)))
3129 `(lsp-face-semhl-type-template ((,class :foreground ,magenta-alt :slant ,modus-theme-slant)))
3130 `(lsp-face-semhl-type-typedef ((,class :foreground ,magenta-alt :slant ,modus-theme-slant)))
3131 `(lsp-face-semhl-variable ((,class :foreground ,cyan)))
3132 `(lsp-face-semhl-variable-local ((,class :foreground ,cyan)))
3133 `(lsp-face-semhl-variable-parameter ((,class :foreground ,cyan-alt-other)))
3134 `(lsp-lens-face ((,class :height 0.8 :foreground ,fg-alt)))
3135 `(lsp-lens-mouse-face ((,class :height 0.8 :foreground ,blue-alt-other :underline t)))
3136 `(lsp-ui-doc-background ((,class :background ,bg-alt)))
3137 `(lsp-ui-doc-header ((,class :background ,bg-header :foreground ,fg-header)))
3138 `(lsp-ui-doc-url ((,class :inherit button :foreground ,blue-alt-other)))
3139 `(lsp-ui-peek-filename ((,class :foreground ,fg-special-warm)))
3140 `(lsp-ui-peek-footer ((,class :background ,bg-header :foreground ,fg-header)))
3141 `(lsp-ui-peek-header ((,class :background ,bg-header :foreground ,fg-header)))
3142 `(lsp-ui-peek-highlight ((,class :inherit modus-theme-subtle-blue)))
3143 `(lsp-ui-peek-line-number ((,class :foreground ,fg-alt)))
3144 `(lsp-ui-peek-list ((,class :background ,bg-dim)))
3145 `(lsp-ui-peek-peek ((,class :background ,bg-alt)))
3146 `(lsp-ui-peek-selection ((,class :inherit modus-theme-subtle-cyan)))
3147 `(lsp-ui-sideline-code-action ((,class :foreground ,yellow)))
3148 `(lsp-ui-sideline-current-symbol ((,class :inherit bold :height 0.99 :box (:line-width -1 :style nil) :foreground ,fg-main)))
3149 `(lsp-ui-sideline-symbol ((,class :inherit bold :height 0.99 :box (:line-width -1 :style nil) :foreground ,fg-alt)))
3150 `(lsp-ui-sideline-symbol-info ((,class :height 0.99 :slant italic)))
3151;;;;; magit
3152 `(magit-bisect-bad ((,class :foreground ,red-alt-other)))
3153 `(magit-bisect-good ((,class :foreground ,green-alt-other)))
3154 `(magit-bisect-skip ((,class :foreground ,yellow-alt-other)))
3155 `(magit-blame-date ((,class :foreground ,blue)))
3156 `(magit-blame-dimmed ((,class :foreground ,fg-alt)))
3157 `(magit-blame-hash ((,class :foreground ,fg-special-warm)))
3158 `(magit-blame-heading ((,class :background ,bg-alt)))
3159 `(magit-blame-highlight ((,class :inherit modus-theme-nuanced-cyan)))
3160 `(magit-blame-margin ((,class :inherit magit-blame-highlight)))
3161 `(magit-blame-name ((,class :foreground ,magenta-alt-other)))
3162 `(magit-blame-summary ((,class :foreground ,cyan-alt-other)))
3163 `(magit-branch-current ((,class :foreground ,blue-alt-other :box t)))
3164 `(magit-branch-local ((,class :foreground ,blue-alt)))
3165 `(magit-branch-remote ((,class :foreground ,magenta-alt)))
3166 `(magit-branch-remote-head ((,class :foreground ,magenta-alt-other :box t)))
3167 `(magit-branch-upstream ((,class :slant italic)))
3168 `(magit-cherry-equivalent ((,class :background ,bg-main :foreground ,magenta-intense)))
3169 `(magit-cherry-unmatched ((,class :background ,bg-main :foreground ,cyan-intense)))
3170 ;; NOTE: here we break from the pattern of inheriting from the
3171 ;; modus-theme-diff-* faces, though only for the standard actions,
3172 ;; not the highlighted ones. This is because Magit's interaction
3173 ;; model relies on highlighting the current diff hunk.
3174 `(magit-diff-added ((,class ,@(modus-operandi-theme-diff
3175 bg-main green
3176 bg-diff-added fg-diff-added
3177 green-nuanced-bg fg-diff-added))))
3178 `(magit-diff-added-highlight ((,class :inherit modus-theme-diff-focus-added)))
3179 `(magit-diff-base ((,class ,@(modus-operandi-theme-diff
3180 bg-main yellow
3181 bg-diff-changed fg-diff-changed
3182 yellow-nuanced-bg fg-diff-changed))))
3183 `(magit-diff-base-highlight ((,class :inherit modus-theme-diff-focus-changed)))
3184 `(magit-diff-context ((,class :foreground ,fg-unfocused)))
3185 `(magit-diff-context-highlight ((,class ,@(modus-operandi-theme-diff
3186 bg-dim fg-dim
3187 bg-inactive fg-inactive
3188 bg-dim fg-alt))))
3189 `(magit-diff-file-heading ((,class :inherit bold :foreground ,fg-special-cold)))
3190 `(magit-diff-file-heading-highlight ((,class :inherit (modus-theme-special-cold bold))))
3191 `(magit-diff-file-heading-selection ((,class :inherit modus-theme-refine-cyan)))
3192 ;; NOTE: here we break from the pattern of inheriting from the
3193 ;; modus-theme-diff-* faces.
3194 `(magit-diff-hunk-heading ((,class :inherit bold :background ,bg-active
3195 :foreground ,fg-inactive)))
3196 `(magit-diff-hunk-heading-highlight ((,class :inherit bold :background ,bg-diff-heading
3197 :foreground ,fg-diff-heading)))
3198 `(magit-diff-hunk-heading-selection ((,class :inherit modus-theme-refine-blue)))
3199 `(magit-diff-hunk-region ((,class :inherit bold)))
3200 `(magit-diff-lines-boundary ((,class :background ,fg-main)))
3201 `(magit-diff-lines-heading ((,class :inherit modus-theme-refine-magenta)))
3202 `(magit-diff-removed ((,class ,@(modus-operandi-theme-diff
3203 bg-main red
3204 bg-diff-removed fg-diff-removed
3205 red-nuanced-bg fg-diff-removed))))
3206 `(magit-diff-removed-highlight ((,class :inherit modus-theme-diff-focus-removed)))
3207 `(magit-diffstat-added ((,class :foreground ,green)))
3208 `(magit-diffstat-removed ((,class :foreground ,red)))
3209 `(magit-dimmed ((,class :foreground ,fg-unfocused)))
3210 `(magit-filename ((,class :foreground ,fg-special-cold)))
3211 `(magit-hash ((,class :foreground ,fg-alt)))
3212 `(magit-head ((,class :inherit magit-branch-local)))
3213 `(magit-header-line ((,class :inherit bold :foreground ,magenta-active)))
3214 `(magit-header-line-key ((,class :inherit bold :foreground ,red-active)))
3215 `(magit-header-line-log-select ((,class :inherit bold :foreground ,fg-main)))
3216 `(magit-keyword ((,class :foreground ,magenta)))
3217 `(magit-keyword-squash ((,class :inherit bold :foreground ,yellow-alt-other)))
3218 `(magit-log-author ((,class :foreground ,cyan)))
3219 `(magit-log-date ((,class :foreground ,fg-alt)))
3220 `(magit-log-graph ((,class :foreground ,fg-dim)))
3221 `(magit-mode-line-process ((,class :inherit bold :foreground ,blue-active)))
3222 `(magit-mode-line-process-error ((,class :inherit bold :foreground ,red-active)))
3223 `(magit-process-ng ((,class :inherit error)))
3224 `(magit-process-ok ((,class :inherit success)))
3225 `(magit-reflog-amend ((,class :background ,bg-main :foreground ,magenta-intense)))
3226 `(magit-reflog-checkout ((,class :background ,bg-main :foreground ,blue-intense)))
3227 `(magit-reflog-cherry-pick ((,class :background ,bg-main :foreground ,green-intense)))
3228 `(magit-reflog-commit ((,class :background ,bg-main :foreground ,green-intense)))
3229 `(magit-reflog-merge ((,class :background ,bg-main :foreground ,green-intense)))
3230 `(magit-reflog-other ((,class :background ,bg-main :foreground ,cyan-intense)))
3231 `(magit-reflog-rebase ((,class :background ,bg-main :foreground ,magenta-intense)))
3232 `(magit-reflog-remote ((,class :background ,bg-main :foreground ,cyan-intense)))
3233 `(magit-reflog-reset ((,class :background ,bg-main :foreground ,red-intense)))
3234 `(magit-refname ((,class :foreground ,fg-alt)))
3235 `(magit-refname-pullreq ((,class :foreground ,fg-alt)))
3236 `(magit-refname-stash ((,class :foreground ,fg-alt)))
3237 `(magit-refname-wip ((,class :foreground ,fg-alt)))
3238 `(magit-section ((,class :background ,bg-dim :foreground ,fg-main)))
3239 `(magit-section-heading ((,class :inherit bold :foreground ,cyan)))
3240 `(magit-section-heading-selection ((,class :inherit (modus-theme-refine-cyan bold))))
3241 `(magit-section-highlight ((,class :background ,bg-alt)))
3242 `(magit-sequence-done ((,class :foreground ,green-alt)))
3243 `(magit-sequence-drop ((,class :foreground ,red-alt)))
3244 `(magit-sequence-exec ((,class :foreground ,magenta-alt)))
3245 `(magit-sequence-head ((,class :foreground ,cyan-alt)))
3246 `(magit-sequence-onto ((,class :foreground ,fg-alt)))
3247 `(magit-sequence-part ((,class :foreground ,yellow-alt)))
3248 `(magit-sequence-pick ((,class :foreground ,blue-alt)))
3249 `(magit-sequence-stop ((,class :foreground ,red)))
3250 `(magit-signature-bad ((,class :inherit bold :foreground ,red)))
3251 `(magit-signature-error ((,class :foreground ,red-alt)))
3252 `(magit-signature-expired ((,class :foreground ,yellow)))
3253 `(magit-signature-expired-key ((,class :foreground ,yellow)))
3254 `(magit-signature-good ((,class :foreground ,green)))
3255 `(magit-signature-revoked ((,class :foreground ,magenta)))
3256 `(magit-signature-untrusted ((,class :foreground ,cyan)))
3257 `(magit-tag ((,class :foreground ,yellow-alt-other)))
3258;;;;; magit-imerge
3259 `(magit-imerge-overriding-value ((,class :inherit bold :foreground ,red-alt)))
3260;;;;; man
3261 `(Man-overstrike ((,class :inherit bold :foreground ,magenta)))
3262 `(Man-reverse ((,class :inherit modus-theme-subtle-magenta)))
3263 `(Man-underline ((,class :foreground ,cyan :underline t)))
3264;;;;; markdown-mode
3265 `(markdown-blockquote-face ((,class :foreground ,fg-special-cold :slant ,modus-theme-slant)))
3266 `(markdown-bold-face ((,class :inherit bold)))
3267 `(markdown-code-face ((,class ,@(modus-operandi-theme-mixed-fonts))))
3268 `(markdown-comment-face ((,class :foreground ,fg-alt :slant ,modus-theme-slant)))
3269 `(markdown-footnote-marker-face ((,class :inherit bold :foreground ,cyan-alt)))
3270 `(markdown-footnote-text-face ((,class :foreground ,fg-main :slant ,modus-theme-slant)))
3271 `(markdown-gfm-checkbox-face ((,class :foreground ,cyan-alt-other)))
3272 `(markdown-header-delimiter-face ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,fg-dim)))
3273 `(markdown-header-face ((t nil)))
3274 `(markdown-header-face-1 ((,class :inherit modus-theme-heading-1)))
3275 `(markdown-header-face-2 ((,class :inherit modus-theme-heading-2)))
3276 `(markdown-header-face-3 ((,class :inherit modus-theme-heading-3)))
3277 `(markdown-header-face-4 ((,class :inherit modus-theme-heading-4)))
3278 `(markdown-header-face-5 ((,class :inherit modus-theme-heading-5)))
3279 `(markdown-header-face-6 ((,class :inherit modus-theme-heading-6)))
3280 `(markdown-header-rule-face ((,class :inherit bold :foreground ,fg-special-warm)))
3281 `(markdown-hr-face ((,class :inherit bold :foreground ,fg-special-warm)))
3282 `(markdown-html-attr-name-face ((,class ,@(modus-operandi-theme-mixed-fonts)
3283 :foreground ,cyan)))
3284 `(markdown-html-attr-value-face ((,class ,@(modus-operandi-theme-mixed-fonts)
3285 :foreground ,blue)))
3286 `(markdown-html-entity-face ((,class ,@(modus-operandi-theme-mixed-fonts)
3287 :foreground ,cyan)))
3288 `(markdown-html-tag-delimiter-face ((,class ,@(modus-operandi-theme-mixed-fonts)
3289 :foreground ,fg-special-mild)))
3290 `(markdown-html-tag-name-face ((,class ,@(modus-operandi-theme-mixed-fonts)
3291 :foreground ,magenta-alt)))
3292 `(markdown-inline-code-face ((,class ,@(modus-operandi-theme-mixed-fonts)
3293 :foreground ,magenta)))
3294 `(markdown-italic-face ((,class :foreground ,fg-special-cold :slant italic)))
3295 `(markdown-language-info-face ((,class ,@(modus-operandi-theme-mixed-fonts)
3296 :foreground ,fg-special-cold)))
3297 `(markdown-language-keyword-face ((,class ,@(modus-operandi-theme-mixed-fonts)
3298 :foreground ,green-alt-other)))
3299 `(markdown-line-break-face ((,class :inherit modus-theme-refine-cyan :underline t)))
3300 `(markdown-link-face ((,class :inherit link)))
3301 `(markdown-link-title-face ((,class :foreground ,fg-special-cold :slant ,modus-theme-slant)))
3302 `(markdown-list-face ((,class :foreground ,fg-dim)))
3303 `(markdown-markup-face ((,class :foreground ,fg-alt)))
3304 `(markdown-math-face ((,class :foreground ,magenta-alt-other)))
3305 `(markdown-metadata-key-face ((,class :foreground ,cyan-alt-other)))
3306 `(markdown-metadata-value-face ((,class :foreground ,blue-alt)))
3307 `(markdown-missing-link-face ((,class :inherit bold :foreground ,yellow)))
3308 `(markdown-plain-url-face ((,class :inherit markdown-link-face)))
3309 `(markdown-pre-face ((,class ,@(and (>= emacs-major-version 27) '(:extend t))
3310 ,@(modus-operandi-theme-mixed-fonts)
3311 :background ,bg-dim
3312 :foreground ,fg-special-mild)))
3313 `(markdown-reference-face ((,class :inherit markdown-markup-face)))
3314 `(markdown-strike-through-face ((,class :strike-through t)))
3315 `(markdown-table-face ((,class ,@(modus-operandi-theme-mixed-fonts)
3316 :foreground ,fg-special-cold)))
3317 `(markdown-url-face ((,class :foreground ,blue-alt)))
3318;;;;; markup-faces (`adoc-mode')
3319 `(markup-anchor-face ((,class :foreground ,fg-inactive)))
3320 `(markup-attribute-face ((,class :foreground ,fg-inactive :slant italic)))
3321 `(markup-big-face ((,class :height 1.3 :foreground ,blue-nuanced)))
3322 `(markup-bold-face ((,class :inherit bold :foreground ,red-nuanced)))
3323 `(markup-code-face ((,class :inherit fixed-pitch :foreground ,magenta)))
3324 `(markup-command-face ((,class :foreground ,fg-inactive)))
3325 `(markup-comment-face ((,class :foreground ,fg-alt :slant ,modus-theme-slant)))
3326 `(markup-complex-replacement-face ((,class :box (:line-width 2 :color nil :style released-button)
3327 :inherit modus-theme-refine-magenta)))
3328 `(markup-emphasis-face ((,class :foreground ,fg-special-cold :slant italic)))
3329 `(markup-error-face ((,class :inherit bold :foreground ,red)))
3330 `(markup-gen-face ((,class :foreground ,magenta-alt)))
3331 `(markup-internal-reference-face ((,class :inherit button :foreground ,fg-inactive)))
3332 `(markup-italic-face ((,class :foreground ,fg-special-cold :slant italic)))
3333 `(markup-list-face ((,class :inherit modus-theme-special-calm)))
3334 `(markup-meta-face ((,class :foreground ,fg-inactive)))
3335 `(markup-meta-hide-face ((,class :foreground ,fg-alt)))
3336 `(markup-passthrough-face ((,class :inherit fixed-pitch :foreground ,cyan)))
3337 `(markup-preprocessor-face ((,class :foreground ,red-alt-other)))
3338 `(markup-replacement-face ((,class :foreground ,yellow-alt-other)))
3339 `(markup-secondary-text-face ((,class :height 0.8 :foreground ,magenta-nuanced)))
3340 `(markup-small-face ((,class :height 0.8 :foreground ,fg-main)))
3341 `(markup-strong-face ((,class :inherit bold :foreground ,red-nuanced)))
3342 `(markup-subscript-face ((,class :height 0.8 :foreground ,fg-special-cold)))
3343 `(markup-superscript-face ((,class :height 0.8 :foreground ,fg-special-cold)))
3344 `(markup-table-cell-face ((,class :inherit modus-theme-special-cold)))
3345 `(markup-table-face ((,class :inherit modus-theme-subtle-cyan)))
3346 `(markup-table-row-face ((,class :inherit modus-theme-subtle-cyan)))
3347 `(markup-title-0-face ((,class :height 3.0 :foreground ,blue-nuanced)))
3348 `(markup-title-1-face ((,class :height 2.4 :foreground ,blue-nuanced)))
3349 `(markup-title-2-face ((,class :height 1.8 :foreground ,blue-nuanced)))
3350 `(markup-title-3-face ((,class :height 1.4 :foreground ,blue-nuanced)))
3351 `(markup-title-4-face ((,class :height 1.2 :foreground ,blue-nuanced)))
3352 `(markup-title-5-face ((,class :height 1.2 :foreground ,blue-nuanced :underline t)))
3353 `(markup-value-face ((,class :foreground ,fg-inactive)))
3354 `(markup-verbatim-face ((,class :inherit modus-theme-special-mild)))
3355;;;;; mentor
3356 `(mentor-download-message ((,class :foreground ,fg-special-warm)))
3357 `(mentor-download-name ((,class :foreground ,fg-special-cold)))
3358 `(mentor-download-progress ((,class :foreground ,blue-alt-other)))
3359 `(mentor-download-size ((,class :foreground ,magenta-alt-other)))
3360 `(mentor-download-speed-down ((,class :foreground ,cyan-alt)))
3361 `(mentor-download-speed-up ((,class :foreground ,red-alt)))
3362 `(mentor-download-state ((,class :foreground ,yellow-alt)))
3363 `(mentor-highlight-face ((,class :inherit modus-theme-subtle-blue)))
3364 `(mentor-tracker-name ((,class :foreground ,magenta-alt)))
3365;;;;; messages
3366 `(message-cited-text-1 ((,class :foreground ,blue-alt)))
3367 `(message-cited-text-2 ((,class :foreground ,red-alt)))
3368 `(message-cited-text-3 ((,class :foreground ,green-alt)))
3369 `(message-cited-text-4 ((,class :foreground ,magenta-alt)))
3370 `(message-header-cc ((,class :inherit bold :foreground ,cyan-alt)))
3371 `(message-header-name ((,class :foreground ,green-alt-other)))
3372 `(message-header-newsgroups ((,class :inherit bold :foreground ,green-alt)))
3373 `(message-header-other ((,class :inherit bold :foreground ,cyan-alt-other)))
3374 `(message-header-subject ((,class :inherit bold :foreground ,magenta-alt-other)))
3375 `(message-header-to ((,class :inherit bold :foreground ,blue)))
3376 `(message-header-xheader ((,class :foreground ,cyan)))
3377 `(message-mml ((,class :foreground ,fg-special-warm)))
3378 `(message-separator ((,class :inherit modus-theme-intense-neutral)))
3379;;;;; minibuffer-line
3380 `(minibuffer-line ((,class :foreground ,fg-main)))
3381;;;;; minimap
3382 `(minimap-active-region-background ((,class :background ,bg-active)))
3383 `(minimap-current-line-face ((,class :background ,cyan-intense-bg :foreground ,fg-main)))
3384;;;;; modeline
3385 `(mode-line ((,class ,@(modus-operandi-theme-mode-line-attrs
3386 fg-active bg-active fg-dim bg-active
3387 fg-alt bg-active 'alt-style nil bg-main))))
3388 `(mode-line-buffer-id ((,class :inherit bold)))
3389 `(mode-line-emphasis ((,class :inherit bold :foreground ,blue-active)))
3390 `(mode-line-highlight ((,class :inherit modus-theme-active-blue :box (:line-width -1 :style pressed-button))))
3391 `(mode-line-inactive ((,class ,@(modus-operandi-theme-mode-line-attrs
3392 fg-inactive bg-inactive fg-alt bg-dim
3393 bg-region bg-active))))
3394;;;;; mood-line
3395 `(mood-line-modified ((,class :foreground ,magenta-active)))
3396 `(mood-line-status-error ((,class :inherit bold :foreground ,red-active)))
3397 `(mood-line-status-info ((,class :foreground ,cyan-active)))
3398 `(mood-line-status-neutral ((,class :foreground ,blue-active)))
3399 `(mood-line-status-success ((,class :foreground ,green-active)))
3400 `(mood-line-status-warning ((,class :inherit bold :foreground ,yellow-active)))
3401 `(mood-line-unimportant ((,class :foreground ,fg-inactive)))
3402;;;;; mpdel
3403 `(mpdel-browser-directory-face ((,class :foreground ,blue)))
3404 `(mpdel-playlist-current-song-face ((,class :inherit bold :foreground ,blue-alt-other)))
3405;;;;; mu4e
3406 `(mu4e-attach-number-face ((,class :inherit bold :foreground ,cyan-alt)))
3407 `(mu4e-cited-1-face ((,class :foreground ,blue-alt)))
3408 `(mu4e-cited-2-face ((,class :foreground ,red-alt)))
3409 `(mu4e-cited-3-face ((,class :foreground ,green-alt)))
3410 `(mu4e-cited-4-face ((,class :foreground ,magenta-alt)))
3411 `(mu4e-cited-5-face ((,class :foreground ,yellow-alt)))
3412 `(mu4e-cited-6-face ((,class :foreground ,cyan-alt)))
3413 `(mu4e-cited-7-face ((,class :foreground ,magenta)))
3414 `(mu4e-compose-header-face ((,class :inherit mu4e-compose-separator-face)))
3415 `(mu4e-compose-separator-face ((,class :inherit modus-theme-intense-neutral)))
3416 `(mu4e-contact-face ((,class :inherit bold :foreground ,cyan-alt-other)))
3417 `(mu4e-context-face ((,class :foreground ,blue-active)))
3418 `(mu4e-draft-face ((,class :foreground ,magenta-alt)))
3419 `(mu4e-flagged-face ((,class :foreground ,red-alt)))
3420 `(mu4e-footer-face ((,class :foreground ,fg-special-cold :slant ,modus-theme-slant)))
3421 `(mu4e-forwarded-face ((,class :foreground ,magenta-alt-other)))
3422 `(mu4e-header-face ((,class :foreground ,fg-alt)))
3423 `(mu4e-header-highlight-face ((,class :inherit modus-theme-hl-line)))
3424 `(mu4e-header-key-face ((,class :foreground ,cyan)))
3425 `(mu4e-header-marks-face ((,class :inherit bold :foreground ,magenta-alt)))
3426 `(mu4e-header-title-face ((,class :foreground ,fg-special-mild)))
3427 `(mu4e-header-value-face ((,class :inherit bold :foreground ,magenta-alt-other)))
3428 `(mu4e-highlight-face ((,class :inherit bold :foreground ,blue-alt-other)))
3429 `(mu4e-link-face ((,class :inherit link)))
3430 `(mu4e-modeline-face ((,class :foreground ,magenta-active)))
3431 `(mu4e-moved-face ((,class :foreground ,yellow :slant ,modus-theme-slant)))
3432 `(mu4e-ok-face ((,class :inherit bold :foreground ,green)))
3433 `(mu4e-region-code ((,class :inherit modus-theme-special-calm)))
3434 `(mu4e-replied-face ((,class :foreground ,blue-faint)))
3435 `(mu4e-special-header-value-face ((,class :inherit bold :foreground ,blue-alt-other)))
3436 `(mu4e-system-face ((,class :foreground ,fg-mark-del :slant ,modus-theme-slant)))
3437 `(mu4e-title-face ((,class :foreground ,fg-main)))
3438 `(mu4e-trashed-face ((,class :foreground ,red)))
3439 `(mu4e-unread-face ((,class :inherit bold :foreground ,fg-main)))
3440 `(mu4e-url-number-face ((,class :inherit bold :foreground ,cyan-alt-other)))
3441 `(mu4e-view-body-face ((,class :foreground ,fg-main)))
3442 `(mu4e-warning-face ((,class :inherit warning)))
3443;;;;; mu4e-conversation
3444 `(mu4e-conversation-header ((,class :inherit modus-theme-special-cold)))
3445 `(mu4e-conversation-sender-1 ((,class :foreground ,fg-special-warm)))
3446 `(mu4e-conversation-sender-2 ((,class :foreground ,fg-special-cold)))
3447 `(mu4e-conversation-sender-3 ((,class :foreground ,fg-special-mild)))
3448 `(mu4e-conversation-sender-4 ((,class :foreground ,fg-alt)))
3449 `(mu4e-conversation-sender-5 ((,class :foreground ,yellow-refine-fg)))
3450 `(mu4e-conversation-sender-6 ((,class :foreground ,cyan-refine-fg)))
3451 `(mu4e-conversation-sender-7 ((,class :foreground ,green-refine-fg)))
3452 `(mu4e-conversation-sender-8 ((,class :foreground ,blue-refine-fg)))
3453 `(mu4e-conversation-sender-me ((,class :foreground ,fg-main)))
3454 `(mu4e-conversation-unread ((,class :inherit bold)))
3455;;;;; multiple-cursors
3456 `(mc/cursor-bar-face ((,class :height 1 :background ,fg-main)))
3457 `(mc/cursor-face ((,class :inverse-video t)))
3458 `(mc/region-face ((,class :inherit region)))
3459;;;;; neotree
3460 `(neo-banner-face ((,class :foreground ,magenta)))
3461 `(neo-button-face ((,class :inherit button)))
3462 `(neo-dir-link-face ((,class :inherit bold :foreground ,blue)))
3463 `(neo-expand-btn-face ((,class :foreground ,cyan)))
3464 `(neo-file-link-face ((,class :foreground ,fg-main)))
3465 `(neo-header-face ((,class :inherit bold :foreground ,fg-main)))
3466 `(neo-root-dir-face ((,class :inherit bold :foreground ,cyan-alt)))
3467 `(neo-vc-added-face ((,class :foreground ,green)))
3468 `(neo-vc-conflict-face ((,class :inherit bold :foreground ,red)))
3469 `(neo-vc-default-face ((,class :foreground ,fg-main)))
3470 `(neo-vc-edited-face ((,class :foreground ,yellow)))
3471 `(neo-vc-ignored-face ((,class :foreground ,fg-inactive)))
3472 `(neo-vc-missing-face ((,class :foreground ,red-alt)))
3473 `(neo-vc-needs-merge-face ((,class :foreground ,magenta-alt)))
3474 `(neo-vc-needs-update-face ((,class :underline t)))
3475 `(neo-vc-removed-face ((,class :strike-through t)))
3476 `(neo-vc-unlocked-changes-face ((,class :inherit modus-theme-refine-blue)))
3477 `(neo-vc-up-to-date-face ((,class :foreground ,fg-alt)))
3478 `(neo-vc-user-face ((,class :foreground ,magenta)))
3479;;;;; no-emoji
3480 `(no-emoji ((,class :foreground ,cyan)))
3481;;;;; notmuch
3482 `(notmuch-crypto-decryption ((,class :inherit modus-theme-refine-magenta)))
3483 `(notmuch-crypto-part-header ((,class :foreground ,magenta-alt-other)))
3484 `(notmuch-crypto-signature-bad ((,class :inherit modus-theme-intense-red)))
3485 `(notmuch-crypto-signature-good ((,class :inherit modus-theme-refine-green)))
3486 `(notmuch-crypto-signature-good-key ((,class :inherit modus-theme-refine-yellow)))
3487 `(notmuch-crypto-signature-unknown ((,class :inherit modus-theme-refine-red)))
3488 `(notmuch-hello-logo-background ((,class :background ,bg-main)))
3489 `(notmuch-message-summary-face ((,class :inherit modus-theme-nuanced-cyan)))
3490 `(notmuch-search-flagged-face ((,class :foreground ,red-alt)))
3491 `(notmuch-search-matching-authors ((,class :foreground ,fg-main)))
3492 `(notmuch-search-non-matching-authors ((,class :foreground ,fg-alt)))
3493 `(notmuch-search-unread-face ((,class :inherit bold)))
3494 `(notmuch-tag-added
3495 ((,(append '((supports :underline (:style wave))) class)
3496 :underline (:color ,green :style wave))
3497 (,class :foreground ,green :underline t)))
3498 `(notmuch-tag-deleted
3499 ((,(append '((supports :underline (:style wave))) class)
3500 :underline (:color ,red :style wave))
3501 (,class :foreground ,red :underline t)))
3502 `(notmuch-tag-face ((,class :inherit bold :foreground ,blue-alt)))
3503 `(notmuch-tag-flagged ((,class :foreground ,red-alt)))
3504 `(notmuch-tag-unread ((,class :foreground ,magenta-alt)))
3505 `(notmuch-tree-match-author-face ((,class :foreground ,fg-special-cold)))
3506 `(notmuch-tree-match-face ((,class :foreground ,fg-main)))
3507 `(notmuch-tree-match-tag-face ((,class :inherit bold :foreground ,blue-alt)))
3508 `(notmuch-tree-no-match-face ((,class :foreground ,fg-alt)))
3509 `(notmuch-wash-cited-text ((,class :foreground ,cyan)))
3510 `(notmuch-wash-toggle-button ((,class :background ,bg-alt :foreground ,fg-alt)))
3511;;;;; num3-mode
3512 `(num3-face-even ((,class :inherit bold :background ,bg-alt)))
3513;;;;; nxml-mode
3514 `(nxml-attribute-colon ((,class :foreground ,fg-main)))
3515 `(nxml-attribute-local-name ((,class ,@(modus-operandi-theme-syntax-foreground
3516 cyan-alt cyan-alt-faint))))
3517 `(nxml-attribute-prefix ((,class ,@(modus-operandi-theme-syntax-foreground
3518 cyan-alt-other cyan-alt-other-faint)
3519 ,@(modus-operandi-theme-bold-weight))))
3520 `(nxml-attribute-value ((,class ,@(modus-operandi-theme-syntax-foreground
3521 blue blue-faint))))
3522 `(nxml-cdata-section-CDATA ((,class ,@(modus-operandi-theme-syntax-foreground
3523 red-alt red-alt-faint)
3524 ,@(modus-operandi-theme-bold-weight))))
3525 `(nxml-cdata-section-delimiter ((,class ,@(modus-operandi-theme-syntax-foreground
3526 red-alt red-alt-faint))))
3527 `(nxml-char-ref-delimiter ((,class ,@(modus-operandi-theme-syntax-foreground
3528 green-alt-other green-alt-other-faint))))
3529 `(nxml-char-ref-number ((,class ,@(modus-operandi-theme-syntax-foreground
3530 green-alt-other green-alt-other-faint)
3531 ,@(modus-operandi-theme-bold-weight))))
3532 `(nxml-delimited-data ((,class :foreground ,fg-special-cold :slant ,modus-theme-slant)))
3533 `(nxml-delimiter ((,class :foreground ,fg-dim)))
3534 `(nxml-element-colon ((,class :foreground ,fg-main)))
3535 `(nxml-element-local-name ((,class ,@(modus-operandi-theme-syntax-foreground
3536 magenta magenta-faint))))
3537 `(nxml-element-prefix ((,class ,@(modus-operandi-theme-syntax-foreground
3538 magenta-alt magenta-alt-faint)
3539 ,@(modus-operandi-theme-bold-weight))))
3540 `(nxml-entity-ref-delimiter ((,class ,@(modus-operandi-theme-syntax-foreground
3541 green-alt-other green-alt-other-faint))))
3542 `(nxml-entity-ref-name ((,class ,@(modus-operandi-theme-syntax-foreground
3543 green-alt-other green-alt-other-faint)
3544 ,@(modus-operandi-theme-bold-weight))))
3545 `(nxml-glyph ((,class :inherit modus-theme-intense-neutral)))
3546 `(nxml-hash ((,class ,@(modus-operandi-theme-syntax-foreground
3547 blue-alt blue-alt-faint)
3548 ,@(modus-operandi-theme-bold-weight))))
3549 `(nxml-heading ((,class :inherit bold)))
3550 `(nxml-name ((,class ,@(modus-operandi-theme-syntax-foreground
3551 magenta-alt magenta-alt-faint)
3552 ,@(modus-operandi-theme-bold-weight))))
3553 `(nxml-namespace-attribute-colon ((,class :foreground ,fg-main)))
3554 `(nxml-namespace-attribute-prefix ((,class ,@(modus-operandi-theme-syntax-foreground
3555 cyan cyan-faint))))
3556 `(nxml-processing-instruction-target ((,class ,@(modus-operandi-theme-syntax-foreground
3557 magenta-alt-other magenta-alt-other-faint)
3558 ,@(modus-operandi-theme-bold-weight))))
3559 `(nxml-prolog-keyword ((,class ,@(modus-operandi-theme-syntax-foreground
3560 magenta-alt-other magenta-alt-other-faint)
3561 ,@(modus-operandi-theme-bold-weight))))
3562 `(nxml-ref ((,class ,@(modus-operandi-theme-syntax-foreground
3563 green-alt-other green-alt-other-faint)
3564 ,@(modus-operandi-theme-bold-weight))))
3565;;;;; objed
3566 `(objed-hl ((,class :background ,(if modus-operandi-theme-intense-hl-line
3567 bg-hl-alt-intense bg-hl-alt))))
3568 `(objed-mark ((,class :background ,bg-active)))
3569 `(objed-mode-line ((,class :foreground ,cyan-active)))
3570;;;;; orderless
3571 `(orderless-match-face-0 ((,class :inherit bold
3572 ,@(modus-operandi-theme-standard-completions
3573 blue-alt-other blue-nuanced-bg
3574 blue-refine-bg blue-refine-fg))))
3575 `(orderless-match-face-1 ((,class :inherit bold
3576 ,@(modus-operandi-theme-standard-completions
3577 magenta-alt magenta-nuanced-bg
3578 magenta-refine-bg magenta-refine-fg))))
3579 `(orderless-match-face-2 ((,class :inherit bold
3580 ,@(modus-operandi-theme-standard-completions
3581 green green-nuanced-bg
3582 green-refine-bg green-refine-fg))))
3583 `(orderless-match-face-3 ((,class :inherit bold
3584 ,@(modus-operandi-theme-standard-completions
3585 yellow yellow-nuanced-bg
3586 yellow-refine-bg yellow-refine-fg))))
3587;;;;; org
3588 `(org-agenda-calendar-event ((,class :foreground ,fg-main)))
3589 `(org-agenda-calendar-sexp ((,class :foreground ,cyan-alt)))
3590 `(org-agenda-clocking ((,class :inherit modus-theme-special-cold
3591 ,@(and (>= emacs-major-version 27) '(:extend t)))))
3592 `(org-agenda-column-dateline ((,class :background ,bg-alt)))
3593 `(org-agenda-current-time ((,class :inherit bold :foreground ,blue-alt-other)))
3594 `(org-agenda-date ((,class :foreground ,cyan)))
3595 `(org-agenda-date-today ((,class :inherit bold :foreground ,fg-main :underline t)))
3596 `(org-agenda-date-weekend ((,class :foreground ,cyan-alt-other)))
3597 `(org-agenda-diary ((,class :foreground ,fg-main)))
3598 `(org-agenda-dimmed-todo-face ((,class :inherit bold :foreground ,fg-alt)))
3599 `(org-agenda-done ((,class :foreground ,green-alt)))
3600 `(org-agenda-filter-category ((,class :inherit bold :foreground ,magenta-active)))
3601 `(org-agenda-filter-effort ((,class :inherit bold :foreground ,magenta-active)))
3602 `(org-agenda-filter-regexp ((,class :inherit bold :foreground ,magenta-active)))
3603 `(org-agenda-filter-tags ((,class :inherit bold :foreground ,magenta-active)))
3604 `(org-agenda-restriction-lock ((,class :background ,bg-dim :foreground ,fg-dim)))
3605 `(org-agenda-structure ((,class :foreground ,blue-alt)))
3606 `(org-archived ((,class :background ,bg-alt :foreground ,fg-alt)))
3607 `(org-block ((,class ,@(modus-operandi-theme-mixed-fonts)
3608 ,@(modus-operandi-theme-org-block bg-dim)
3609 :foreground ,fg-main)))
3610 `(org-block-begin-line ((,class ,@(modus-operandi-theme-mixed-fonts)
3611 ,@(modus-operandi-theme-org-block-delim
3612 bg-dim fg-special-cold
3613 bg-alt fg-special-mild))))
3614 `(org-block-end-line ((,class :inherit org-block-begin-line)))
3615 `(org-checkbox ((,class :box (:line-width 1 :color ,bg-active)
3616 :background ,bg-inactive :foreground ,fg-active)))
3617 `(org-checkbox-statistics-done ((,class :inherit org-done)))
3618 `(org-checkbox-statistics-todo ((,class :inherit org-todo)))
3619 `(org-clock-overlay ((,class :inherit modus-theme-special-cold)))
3620 `(org-code ((,class ,@(modus-operandi-theme-mixed-fonts) :foreground ,magenta)))
3621 `(org-column ((,class :background ,bg-alt)))
3622 `(org-column-title ((,class :inherit bold :underline t :background ,bg-alt)))
3623 `(org-date ((,class :inherit (button fixed-pitch) :foreground ,cyan-alt-other)))
3624 `(org-date-selected ((,class :inherit bold :foreground ,blue-alt :inverse-video t)))
3625 `(org-document-info ((,class :foreground ,fg-special-cold)))
3626 `(org-document-info-keyword ((,class ,@(modus-operandi-theme-mixed-fonts)
3627 :foreground ,fg-alt)))
3628 `(org-document-title ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,fg-special-cold
3629 ,@(modus-operandi-theme-scale modus-operandi-theme-scale-5))))
3630 `(org-done ((,class :box ,bg-region :background ,bg-dim :foreground ,green)))
3631 `(org-drawer ((,class ,@(modus-operandi-theme-mixed-fonts)
3632 :foreground ,cyan)))
3633 `(org-ellipsis ((,class :foreground nil))) ; inherits from the heading's colour
3634 `(org-footnote ((,class :inherit button :foreground ,blue-alt)))
3635 `(org-formula ((,class ,@(modus-operandi-theme-mixed-fonts)
3636 :foreground ,red-alt)))
3637 `(org-habit-alert-face ((,class :inherit modus-theme-intense-yellow)))
3638 `(org-habit-alert-future-face ((,class :inherit modus-theme-refine-yellow)))
3639 `(org-habit-clear-face ((,class :inherit modus-theme-intense-magenta)))
3640 `(org-habit-clear-future-face ((,class :inherit modus-theme-refine-magenta)))
3641 `(org-habit-overdue-face ((,class :inherit modus-theme-intense-red)))
3642 `(org-habit-overdue-future-face ((,class :inherit modus-theme-refine-red)))
3643 `(org-habit-ready-face ((,class :inherit modus-theme-intense-blue)))
3644 `(org-habit-ready-future-face ((,class :inherit modus-theme-refine-blue)))
3645 `(org-headline-done ((,class :inherit ,modus-theme-variable-pitch :foreground ,green-nuanced)))
3646 `(org-headline-todo ((,class :inherit ,modus-theme-variable-pitch :foreground ,red-nuanced)))
3647 `(org-hide ((,class :foreground ,bg-main)))
3648 `(org-indent ((,class :inherit (fixed-pitch org-hide))))
3649 `(org-latex-and-related ((,class :foreground ,magenta-refine-fg)))
3650 `(org-level-1 ((,class :inherit modus-theme-heading-1)))
3651 `(org-level-2 ((,class :inherit modus-theme-heading-2)))
3652 `(org-level-3 ((,class :inherit modus-theme-heading-3)))
3653 `(org-level-4 ((,class :inherit modus-theme-heading-4)))
3654 `(org-level-5 ((,class :inherit modus-theme-heading-5)))
3655 `(org-level-6 ((,class :inherit modus-theme-heading-6)))
3656 `(org-level-7 ((,class :inherit modus-theme-heading-7)))
3657 `(org-level-8 ((,class :inherit modus-theme-heading-8)))
3658 `(org-link ((,class :inherit link)))
3659 `(org-list-dt ((,class :inherit bold)))
3660 `(org-macro ((,class :background ,blue-nuanced-bg :foreground ,magenta-alt-other)))
3661 `(org-meta-line ((,class ,@(modus-operandi-theme-mixed-fonts) :foreground ,fg-alt)))
3662 `(org-mode-line-clock ((,class :foreground ,fg-main)))
3663 `(org-mode-line-clock-overrun ((,class :inherit modus-theme-active-red)))
3664 `(org-priority ((,class :box ,bg-region :background ,bg-dim :foreground ,magenta)))
3665 `(org-property-value ((,class ,@(modus-operandi-theme-mixed-fonts)
3666 :foreground ,cyan-alt-other)))
3667 `(org-quote ((,class ,@(modus-operandi-theme-org-block bg-dim)
3668 :foreground ,fg-special-cold :slant ,modus-theme-slant)))
3669 `(org-scheduled ((,class :foreground ,fg-special-warm)))
3670 `(org-scheduled-previously ((,class :foreground ,yellow-alt-other)))
3671 `(org-scheduled-today ((,class :foreground ,magenta-alt-other)))
3672 `(org-sexp-date ((,class :inherit org-date)))
3673 `(org-special-keyword ((,class ,@(modus-operandi-theme-mixed-fonts)
3674 :foreground ,blue-nuanced)))
3675 `(org-table ((,class ,@(modus-operandi-theme-mixed-fonts)
3676 :foreground ,fg-special-cold)))
3677 `(org-table-header ((,class :inherit (fixed-pitch modus-theme-intense-neutral))))
3678 `(org-tag ((,class :foreground ,magenta-nuanced)))
3679 `(org-tag-group ((,class :inherit bold :foreground ,cyan-nuanced)))
3680 `(org-target ((,class :underline t)))
3681 `(org-time-grid ((,class :foreground ,fg-unfocused)))
3682 `(org-todo ((,class :box ,bg-region :background ,bg-dim :foreground ,red-alt)))
3683 `(org-upcoming-deadline ((,class :foreground ,red-alt-other)))
3684 `(org-upcoming-distant-deadline ((,class :foreground ,red-nuanced)))
3685 `(org-verbatim ((,class ,@(modus-operandi-theme-mixed-fonts)
3686 :background ,bg-alt :foreground ,fg-special-calm)))
3687 `(org-verse ((,class :inherit org-quote)))
3688 `(org-warning ((,class :inherit bold :foreground ,red-alt-other)))
3689;;;;; org-journal
3690 `(org-journal-calendar-entry-face ((,class :foreground ,yellow-alt-other :slant ,modus-theme-slant)))
3691 `(org-journal-calendar-scheduled-face ((,class :foreground ,red-alt-other :slant ,modus-theme-slant)))
3692 `(org-journal-highlight ((,class :foreground ,magenta-alt)))
3693;;;;; org-noter
3694 `(org-noter-no-notes-exist-face ((,class :inherit bold :foreground ,red-active)))
3695 `(org-noter-notes-exist-face ((,class :inherit bold :foreground ,green-active)))
3696;;;;; org-pomodoro
3697 `(org-pomodoro-mode-line ((,class :foreground ,red-active)))
3698 `(org-pomodoro-mode-line-break ((,class :foreground ,cyan-active)))
3699 `(org-pomodoro-mode-line-overtime ((,class :inherit bold :foreground ,red-active)))
3700;;;;; org-recur
3701 `(org-recur ((,class :foreground ,magenta-active)))
3702;;;;; org-roam
3703 `(org-roam-link ((,class :inherit button :foreground ,green)))
3704 `(org-roam-link-current ((,class :inherit button :foreground ,green-alt)))
3705 `(org-roam-link-invalid ((,class :inherit button :foreground ,red)))
3706 `(org-roam-link-shielded ((,class :inherit button :foreground ,yellow)))
3707 `(org-roam-tag ((,class :foreground ,fg-alt :slant italic)))
3708;;;;; org-superstar
3709 `(org-superstar-item ((,class :foreground ,fg-main)))
3710 `(org-superstar-leading ((,class :foreground ,fg-whitespace)))
3711;;;;; org-table-sticky-header
3712 `(org-table-sticky-header-face ((,class :inherit modus-theme-intense-neutral)))
3713;;;;; org-treescope
3714 `(org-treescope-faces--markerinternal-midday ((,class :inherit modus-theme-intense-blue)))
3715 `(org-treescope-faces--markerinternal-range ((,class :inherit modus-theme-special-mild)))
3716;;;;; origami
3717 `(origami-fold-header-face ((,class :background ,bg-dim :foreground ,fg-dim :box t)))
3718 `(origami-fold-replacement-face ((,class :background ,bg-alt :foreground ,fg-alt)))
3719;;;;; outline-mode
3720 `(outline-1 ((,class :inherit modus-theme-heading-1)))
3721 `(outline-2 ((,class :inherit modus-theme-heading-2)))
3722 `(outline-3 ((,class :inherit modus-theme-heading-3)))
3723 `(outline-4 ((,class :inherit modus-theme-heading-4)))
3724 `(outline-5 ((,class :inherit modus-theme-heading-5)))
3725 `(outline-6 ((,class :inherit modus-theme-heading-6)))
3726 `(outline-7 ((,class :inherit modus-theme-heading-7)))
3727 `(outline-8 ((,class :inherit modus-theme-heading-8)))
3728;;;;; outline-minor-faces
3729 `(outline-minor-0 ((,class nil)))
3730;;;;; package (M-x list-packages)
3731 `(package-description ((,class :foreground ,fg-special-cold)))
3732 `(package-help-section-name ((,class :inherit bold :foreground ,magenta-alt-other)))
3733 `(package-name ((,class :inherit link)))
3734 `(package-status-avail-obso ((,class :inherit bold :foreground ,red)))
3735 `(package-status-available ((,class :foreground ,fg-special-mild)))
3736 `(package-status-built-in ((,class :foreground ,magenta)))
3737 `(package-status-dependency ((,class :foreground ,magenta-alt-other)))
3738 `(package-status-disabled ((,class :inherit modus-theme-subtle-red)))
3739 `(package-status-external ((,class :foreground ,cyan-alt-other)))
3740 `(package-status-held ((,class :foreground ,yellow-alt)))
3741 `(package-status-incompat ((,class :inherit bold :foreground ,yellow)))
3742 `(package-status-installed ((,class :foreground ,fg-special-warm)))
3743 `(package-status-new ((,class :inherit bold :foreground ,green)))
3744 `(package-status-unsigned ((,class :inherit bold :foreground ,red-alt)))
3745;;;;; page-break-lines
3746 `(page-break-lines ((,class :inherit default :foreground ,fg-window-divider-outer)))
3747;;;;; paradox
3748 `(paradox-archive-face ((,class :foreground ,fg-special-mild)))
3749 `(paradox-comment-face ((,class :foreground ,fg-alt :slant ,modus-theme-slant)))
3750 `(paradox-commit-tag-face ((,class :inherit modus-theme-refine-magenta :box t)))
3751 `(paradox-description-face ((,class :foreground ,fg-special-cold)))
3752 `(paradox-description-face-multiline ((,class :foreground ,fg-special-cold)))
3753 `(paradox-download-face ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,blue-alt-other)))
3754 `(paradox-highlight-face ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,cyan-alt-other)))
3755 `(paradox-homepage-button-face ((,class :foreground ,magenta-alt-other :underline t)))
3756 `(paradox-mode-line-face ((,class :inherit bold :foreground ,cyan-active)))
3757 `(paradox-name-face ((,class :foreground ,blue :underline t)))
3758 `(paradox-star-face ((,class :foreground ,magenta)))
3759 `(paradox-starred-face ((,class :foreground ,magenta-alt)))
3760;;;;; paren-face
3761 `(parenthesis ((,class :foreground ,fg-unfocused)))
3762;;;;; parrot
3763 `(parrot-rotate-rotation-highlight-face ((,class :inherit modus-theme-refine-magenta)))
3764;;;;; pass
3765 `(pass-mode-directory-face ((,class :inherit bold :foreground ,fg-special-cold)))
3766 `(pass-mode-entry-face ((,class :background ,bg-main :foreground ,fg-main)))
3767 `(pass-mode-header-face ((,class :foreground ,fg-special-warm)))
3768;;;;; persp-mode
3769 `(persp-face-lighter-buffer-not-in-persp ((,class :inherit modus-theme-intense-red)))
3770 `(persp-face-lighter-default ((,class :inherit bold :foreground ,blue-active)))
3771 `(persp-face-lighter-nil-persp ((,class :inherit bold :foreground ,fg-active)))
3772;;;;; perspective
3773 `(persp-selected-face ((,class :inherit bold :foreground ,blue-active)))
3774;;;;; phi-grep
3775 `(phi-grep-heading-face ((,class :inherit bold :foreground ,red-alt
3776 ,@(modus-operandi-theme-scale modus-operandi-theme-scale-4))))
3777 `(phi-grep-line-number-face ((,class :foreground ,fg-special-warm)))
3778 `(phi-grep-match-face ((,class :inherit modus-theme-special-calm)))
3779 `(phi-grep-modified-face ((,class :inherit modus-theme-refine-yellow)))
3780 `(phi-grep-overlay-face ((,class :inherit modus-theme-refine-blue)))
3781;;;;; phi-search
3782 `(phi-replace-preview-face ((,class :inherit modus-theme-intense-magenta)))
3783 `(phi-search-failpart-face ((,class :inherit modus-theme-refine-red)))
3784 `(phi-search-match-face ((,class :inherit modus-theme-refine-cyan)))
3785 `(phi-search-selection-face ((,class :inherit (modus-theme-intense-green bold))))
3786;;;;; pkgbuild-mode
3787 `(pkgbuild-error-face ((,class :underline ,fg-lang-error)))
3788;;;;; pomidor
3789 `(pomidor-break-face ((,class :foreground ,blue-alt-other)))
3790 `(pomidor-overwork-face ((,class :foreground ,red-alt-other)))
3791 `(pomidor-skip-face ((,class :foreground ,fg-alt :slant ,modus-theme-slant)))
3792 `(pomidor-work-face ((,class :foreground ,green-alt-other)))
3793;;;;; powerline
3794 `(powerline-active0 ((,class :background ,bg-main :foreground ,blue-faint :inverse-video t)))
3795 `(powerline-active1 ((,class :background ,blue-nuanced-bg :foreground ,blue-nuanced)))
3796 `(powerline-active2 ((,class :background ,bg-active :foreground ,fg-active)))
3797 `(powerline-inactive0 ((,class :background ,bg-special-cold :foreground ,fg-special-cold)))
3798 `(powerline-inactive1 ((,class :background ,bg-dim :foreground ,fg-inactive)))
3799 `(powerline-inactive2 ((,class :background ,bg-inactive :foreground ,fg-inactive)))
3800;;;;; powerline-evil
3801 `(powerline-evil-base-face ((,class :background ,fg-main :foreground ,bg-main)))
3802 `(powerline-evil-emacs-face ((,class :inherit modus-theme-active-magenta)))
3803 `(powerline-evil-insert-face ((,class :inherit modus-theme-active-green)))
3804 `(powerline-evil-motion-face ((,class :inherit modus-theme-active-blue)))
3805 `(powerline-evil-normal-face ((,class :background ,fg-alt :foreground ,bg-main)))
3806 `(powerline-evil-operator-face ((,class :inherit modus-theme-active-yellow)))
3807 `(powerline-evil-replace-face ((,class :inherit modus-theme-active-red)))
3808 `(powerline-evil-visual-face ((,class :inherit modus-theme-active-cyan)))
3809;;;;; proced
3810 `(proced-mark ((,class :inherit modus-theme-mark-symbol)))
3811 `(proced-marked ((,class :inherit modus-theme-mark-alt)))
3812 `(proced-sort-header ((,class :inherit bold :foreground ,fg-special-calm :underline t)))
3813;;;;; prodigy
3814 `(prodigy-green-face ((,class :foreground ,green)))
3815 `(prodigy-red-face ((,class :foreground ,red)))
3816 `(prodigy-yellow-face ((,class :foreground ,yellow)))
3817;;;;; racket-mode
3818 `(racket-debug-break-face ((,class :inherit modus-theme-intense-red)))
3819 `(racket-debug-locals-face ((,class :box (:line-width -1 :color nil)
3820 :foreground ,green-alt-other)))
3821 `(racket-debug-result-face ((,class :inherit bold :box (:line-width -1 :color nil)
3822 :foreground ,green)))
3823 `(racket-here-string-face ((,class :foreground ,blue-alt)))
3824 `(racket-keyword-argument-face ((,class :foreground ,red-alt)))
3825 `(racket-logger-config-face ((,class :foreground ,fg-alt :slant ,modus-theme-slant)))
3826 `(racket-logger-debug-face ((,class :foreground ,blue-alt-other)))
3827 `(racket-logger-info-face ((,class :foreground ,fg-lang-note)))
3828 `(racket-logger-topic-face ((,class :foreground ,magenta :slant ,modus-theme-slant)))
3829 `(racket-selfeval-face ((,class :foreground ,green-alt)))
3830 `(racket-xp-error-face
3831 ((,(append '((supports :underline (:style wave))) class)
3832 :underline (:color ,fg-lang-error :style wave))
3833 (,class :foreground ,fg-lang-error :underline t)))
3834;;;;; rainbow-blocks
3835 `(rainbow-blocks-depth-1-face ((,class :foreground ,magenta-alt-other)))
3836 `(rainbow-blocks-depth-2-face ((,class :foreground ,blue)))
3837 `(rainbow-blocks-depth-3-face ((,class :foreground ,magenta-alt)))
3838 `(rainbow-blocks-depth-4-face ((,class :foreground ,green)))
3839 `(rainbow-blocks-depth-5-face ((,class :foreground ,magenta)))
3840 `(rainbow-blocks-depth-6-face ((,class :foreground ,cyan)))
3841 `(rainbow-blocks-depth-7-face ((,class :foreground ,yellow)))
3842 `(rainbow-blocks-depth-8-face ((,class :foreground ,cyan-alt)))
3843 `(rainbow-blocks-depth-9-face ((,class :foreground ,red-alt)))
3844 `(rainbow-blocks-unmatched-face ((,class :foreground ,red)))
3845;;;;; rainbow-identifiers
3846 `(rainbow-identifiers-identifier-1 ((,class :foreground ,green-alt-other)))
3847 `(rainbow-identifiers-identifier-2 ((,class :foreground ,magenta-alt-other)))
3848 `(rainbow-identifiers-identifier-3 ((,class :foreground ,cyan-alt-other)))
3849 `(rainbow-identifiers-identifier-4 ((,class :foreground ,yellow-alt-other)))
3850 `(rainbow-identifiers-identifier-5 ((,class :foreground ,blue-alt-other)))
3851 `(rainbow-identifiers-identifier-6 ((,class :foreground ,green-alt)))
3852 `(rainbow-identifiers-identifier-7 ((,class :foreground ,magenta-alt)))
3853 `(rainbow-identifiers-identifier-8 ((,class :foreground ,cyan-alt)))
3854 `(rainbow-identifiers-identifier-9 ((,class :foreground ,yellow-alt)))
3855 `(rainbow-identifiers-identifier-10 ((,class :foreground ,green)))
3856 `(rainbow-identifiers-identifier-11 ((,class :foreground ,magenta)))
3857 `(rainbow-identifiers-identifier-12 ((,class :foreground ,cyan)))
3858 `(rainbow-identifiers-identifier-13 ((,class :foreground ,yellow)))
3859 `(rainbow-identifiers-identifier-14 ((,class :foreground ,blue-alt)))
3860 `(rainbow-identifiers-identifier-15 ((,class :foreground ,red-alt)))
3861;;;;; rainbow-delimiters
3862 `(rainbow-delimiters-base-face-error ((,class :foreground ,red)))
3863 `(rainbow-delimiters-base-face ((,class :foreground ,fg-main)))
3864 `(rainbow-delimiters-depth-1-face ((,class :foreground ,green-alt-other)))
3865 `(rainbow-delimiters-depth-2-face ((,class :foreground ,magenta-alt-other)))
3866 `(rainbow-delimiters-depth-3-face ((,class :foreground ,cyan-alt-other)))
3867 `(rainbow-delimiters-depth-4-face ((,class :foreground ,yellow-alt-other)))
3868 `(rainbow-delimiters-depth-5-face ((,class :foreground ,blue-alt-other)))
3869 `(rainbow-delimiters-depth-6-face ((,class :foreground ,green-alt)))
3870 `(rainbow-delimiters-depth-7-face ((,class :foreground ,magenta-alt)))
3871 `(rainbow-delimiters-depth-8-face ((,class :foreground ,cyan-alt)))
3872 `(rainbow-delimiters-depth-9-face ((,class :foreground ,yellow-alt)))
3873 `(rainbow-delimiters-mismatched-face ((,class :inherit bold :foreground ,red-alt)))
3874 `(rainbow-delimiters-unmatched-face ((,class :inherit bold :foreground ,red)))
3875;;;;; rcirc
3876 `(rcirc-bright-nick ((,class :inherit bold :foreground ,magenta-alt)))
3877 `(rcirc-dim-nick ((,class :foreground ,fg-alt)))
3878 `(rcirc-my-nick ((,class :inherit bold :foreground ,magenta)))
3879 `(rcirc-nick-in-message ((,class :foreground ,magenta-alt-other)))
3880 `(rcirc-nick-in-message-full-line ((,class :inherit bold :foreground ,fg-special-mild)))
3881 `(rcirc-other-nick ((,class :inherit bold :foreground ,fg-special-cold)))
3882 `(rcirc-prompt ((,class :inherit bold :foreground ,cyan-alt-other)))
3883 `(rcirc-server ((,class :foreground ,fg-unfocused)))
3884 `(rcirc-timestamp ((,class :foreground ,blue-nuanced)))
3885 `(rcirc-url ((,class :foreground ,blue :underline t)))
3886;;;;; regexp-builder (re-builder)
3887 `(reb-match-0 ((,class :inherit modus-theme-intense-blue)))
3888 `(reb-match-1 ((,class :inherit modus-theme-intense-magenta)))
3889 `(reb-match-2 ((,class :inherit modus-theme-intense-green)))
3890 `(reb-match-3 ((,class :inherit modus-theme-intense-red)))
3891 `(reb-regexp-grouping-backslash ((,class :inherit bold :foreground ,fg-escape-char-backslash)))
3892 `(reb-regexp-grouping-construct ((,class :inherit bold :foreground ,fg-escape-char-construct)))
3893;;;;; rg (rg.el)
3894 `(rg-column-number-face ((,class :foreground ,magenta-alt-other)))
3895 `(rg-context-face ((,class :foreground ,fg-unfocused)))
3896 `(rg-error-face ((,class :inherit bold :foreground ,red)))
3897 `(rg-file-tag-face ((,class :foreground ,fg-special-cold)))
3898 `(rg-filename-face ((,class :inherit bold :foreground ,fg-special-cold)))
3899 `(rg-line-number-face ((,class :foreground ,fg-special-warm)))
3900 `(rg-literal-face ((,class :foreground ,blue-alt)))
3901 `(rg-match-face ((,class :inherit modus-theme-special-calm)))
3902 `(rg-regexp-face ((,class :foreground ,magenta-active)))
3903 `(rg-toggle-off-face ((,class :inherit bold :foreground ,fg-inactive)))
3904 `(rg-toggle-on-face ((,class :inherit bold :foreground ,cyan-active)))
3905 `(rg-warning-face ((,class :inherit bold :foreground ,yellow)))
3906;;;;; ripgrep
3907 `(ripgrep-context-face ((,class :foreground ,fg-unfocused)))
3908 `(ripgrep-error-face ((,class :inherit bold :foreground ,red)))
3909 `(ripgrep-hit-face ((,class :foreground ,cyan)))
3910 `(ripgrep-match-face ((,class :inherit modus-theme-special-calm)))
3911;;;;; rmail
3912 `(rmail-header-name ((,class :foreground ,cyan-alt-other)))
3913 `(rmail-highlight ((,class :inherit bold :foreground ,magenta-alt)))
3914;;;;; ruler-mode
3915 `(ruler-mode-column-number ((,class :inherit (ruler-mode-default bold) :foreground ,fg-main)))
3916 `(ruler-mode-comment-column ((,class :inherit ruler-mode-default :foreground ,red-active)))
3917 `(ruler-mode-current-column ((,class :inherit ruler-mode-default :foreground ,cyan-active :box t)))
3918 `(ruler-mode-default ((,class :background ,bg-inactive :foreground ,fg-inactive)))
3919 `(ruler-mode-fill-column ((,class :inherit ruler-mode-default :foreground ,green-active)))
3920 `(ruler-mode-fringes ((,class :inherit ruler-mode-default :foreground ,blue-active)))
3921 `(ruler-mode-goal-column ((,class :inherit ruler-mode-default :foreground ,magenta-active)))
3922 `(ruler-mode-margins ((,class :inherit ruler-mode-default :foreground ,bg-main)))
3923 `(ruler-mode-pad ((,class :background ,bg-active :foreground ,fg-inactive)))
3924 `(ruler-mode-tab-stop ((,class :inherit ruler-mode-default :foreground ,yellow-active)))
3925;;;;; sallet
3926 `(sallet-buffer-compressed ((,class :foreground ,yellow-nuanced :slant italic)))
3927 `(sallet-buffer-default-directory ((,class :foreground ,cyan-nuanced)))
3928 `(sallet-buffer-directory ((,class :foreground ,blue-nuanced)))
3929 `(sallet-buffer-help ((,class :foreground ,fg-special-cold)))
3930 `(sallet-buffer-modified ((,class :foreground ,yellow-alt-other :slant italic)))
3931 `(sallet-buffer-ordinary ((,class :foreground ,fg-main)))
3932 `(sallet-buffer-read-only ((,class :foreground ,yellow-alt)))
3933 `(sallet-buffer-size ((,class :foreground ,fg-special-calm)))
3934 `(sallet-buffer-special ((,class :foreground ,magenta-alt-other)))
3935 `(sallet-flx-match ((,class ,@(modus-operandi-theme-extra-completions
3936 'modus-theme-subtle-cyan
3937 'modus-theme-refine-cyan
3938 'modus-theme-nuanced-cyan
3939 cyan-alt-other))))
3940 `(sallet-recentf-buffer-name ((,class :foreground ,blue-nuanced)))
3941 `(sallet-recentf-file-path ((,class :foreground ,fg-special-mild)))
3942 `(sallet-regexp-match ((,class ,@(modus-operandi-theme-extra-completions
3943 'modus-theme-subtle-magenta
3944 'modus-theme-refine-magenta
3945 'modus-theme-nuanced-magenta
3946 magenta-alt-other))))
3947 `(sallet-source-header ((,class :inherit bold :foreground ,red-alt
3948 ,@(modus-operandi-theme-scale modus-operandi-theme-scale-4))))
3949 `(sallet-substring-match ((,class ,@(modus-operandi-theme-extra-completions
3950 'modus-theme-subtle-blue
3951 'modus-theme-refine-blue
3952 'modus-theme-nuanced-blue
3953 blue-alt-other))))
3954;;;;; selectrum
3955 `(selectrum-current-candidate
3956 ((,class :inherit bold :foreground ,fg-main :underline ,fg-main
3957 :background ,@(pcase modus-operandi-theme-completions
3958 ('opinionated (list bg-active))
3959 (_ (list bg-inactive))))))
3960 `(selectrum-primary-highlight ((,class :inherit bold
3961 ,@(modus-operandi-theme-standard-completions
3962 magenta-alt magenta-nuanced-bg
3963 magenta-refine-bg magenta-refine-fg))))
3964 `(selectrum-secondary-highlight ((,class :inherit bold
3965 ,@(modus-operandi-theme-standard-completions
3966 cyan-alt-other cyan-nuanced-bg
3967 cyan-refine-bg cyan-refine-fg))))
3968;;;;; semantic
3969 `(semantic-complete-inline-face ((,class :foreground ,fg-special-warm :underline t)))
3970 `(semantic-decoration-on-private-members-face ((,class :inherit modus-theme-refine-cyan)))
3971 `(semantic-decoration-on-protected-members-face ((,class :background ,bg-dim)))
3972 `(semantic-highlight-edits-face ((,class :background ,bg-alt)))
3973 `(semantic-highlight-func-current-tag-face ((,class :background ,bg-alt)))
3974 `(semantic-idle-symbol-highlight ((,class :inherit modus-theme-special-mild)))
3975 `(semantic-tag-boundary-face ((,class :overline ,blue-intense)))
3976 `(semantic-unmatched-syntax-face ((,class :underline ,fg-lang-error)))
3977;;;;; sesman
3978 `(sesman-browser-button-face ((,class :foreground ,blue-alt-other :underline t)))
3979 `(sesman-browser-highligh-face ((,class :inherit modus-theme-subtle-blue)))
3980 `(sesman-buffer-face ((,class :foreground ,magenta)))
3981 `(sesman-directory-face ((,class :inherit bold :foreground ,blue)))
3982 `(sesman-project-face ((,class :inherit bold :foreground ,magenta-alt-other)))
3983;;;;; shell-script-mode
3984 `(sh-heredoc ((,class :foreground ,blue-alt)))
3985 `(sh-quoted-exec ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,magenta-alt)))
3986;;;;; show-paren-mode
3987 `(show-paren-match ((,class ,@(modus-operandi-theme-paren bg-paren-match
3988 bg-paren-match-intense)
3989 :foreground ,fg-main)))
3990 `(show-paren-match-expression ((,class :inherit modus-theme-special-calm)))
3991 `(show-paren-mismatch ((,class :inherit modus-theme-intense-red)))
3992;;;;; side-notes
3993 `(side-notes ((,class :background ,bg-dim :foreground ,fg-dim)))
3994;;;;; skewer-mode
3995 `(skewer-error-face ((,class :foreground ,red :underline t)))
3996;;;;; smart-mode-line
3997 `(sml/charging ((,class :foreground ,green-active)))
3998 `(sml/discharging ((,class :foreground ,red-active)))
3999 `(sml/filename ((,class :inherit bold :foreground ,blue-active)))
4000 `(sml/folder ((,class :foreground ,fg-active)))
4001 `(sml/git ((,class :inherit bold :foreground ,green-active)))
4002 `(sml/global ((,class :foreground ,fg-active)))
4003 `(sml/line-number ((,class :inherit sml/global)))
4004 `(sml/minor-modes ((,class :inherit sml/global)))
4005 `(sml/modes ((,class :inherit bold :foreground ,fg-active)))
4006 `(sml/modified ((,class :inherit bold :foreground ,magenta-active)))
4007 `(sml/mule-info ((,class :inherit sml/global)))
4008 `(sml/name-filling ((,class :foreground ,yellow-active)))
4009 `(sml/not-modified ((,class :inherit sml/global)))
4010 `(sml/numbers-separator ((,class :inherit sml/global)))
4011 `(sml/outside-modified ((,class :inherit modus-theme-intense-red)))
4012 `(sml/position-percentage ((,class :inherit sml/global)))
4013 `(sml/prefix ((,class :foreground ,green-active)))
4014 `(sml/process ((,class :inherit sml/prefix)))
4015 `(sml/projectile ((,class :inherit sml/git)))
4016 `(sml/read-only ((,class :inherit bold :foreground ,cyan-active)))
4017 `(sml/remote ((,class :inherit sml/global)))
4018 `(sml/sudo ((,class :inherit modus-theme-subtle-red)))
4019 `(sml/time ((,class :inherit sml/global)))
4020 `(sml/vc ((,class :inherit sml/git)))
4021 `(sml/vc-edited ((,class :inherit bold :foreground ,yellow-active)))
4022;;;;; smartparens
4023 `(sp-pair-overlay-face ((,class :inherit modus-theme-special-warm)))
4024 `(sp-show-pair-enclosing ((,class :inherit modus-theme-special-mild)))
4025 `(sp-show-pair-match-face ((,class ,@(modus-operandi-theme-paren bg-paren-match
4026 bg-paren-match-intense)
4027 :foreground ,fg-main)))
4028 `(sp-show-pair-mismatch-face ((,class :inherit modus-theme-intense-red)))
4029 `(sp-wrap-overlay-closing-pair ((,class :inherit sp-pair-overlay-face)))
4030 `(sp-wrap-overlay-face ((,class :inherit sp-pair-overlay-face)))
4031 `(sp-wrap-overlay-opening-pair ((,class :inherit sp-pair-overlay-face)))
4032 `(sp-wrap-tag-overlay-face ((,class :inherit sp-pair-overlay-face)))
4033;;;;; smerge
4034 `(smerge-base ((,class :inherit modus-theme-diff-changed)))
4035 `(smerge-lower ((,class :inherit modus-theme-diff-added)))
4036 `(smerge-markers ((,class :background ,bg-diff-neutral-2 :foreground ,fg-diff-neutral-2)))
4037 `(smerge-refined-added ((,class :inherit modus-theme-diff-refine-added)))
4038 `(smerge-refined-changed ((,class)))
4039 `(smerge-refined-removed ((,class :inherit modus-theme-diff-refine-removed)))
4040 `(smerge-upper ((,class :inherit modus-theme-diff-removed)))
4041;;;;; spaceline
4042 `(spaceline-evil-emacs ((,class :inherit modus-theme-active-magenta)))
4043 `(spaceline-evil-insert ((,class :inherit modus-theme-active-green)))
4044 `(spaceline-evil-motion ((,class :inherit modus-theme-active-blue)))
4045 `(spaceline-evil-normal ((,class :background ,fg-alt :foreground ,bg-alt)))
4046 `(spaceline-evil-replace ((,class :inherit modus-theme-active-red)))
4047 `(spaceline-evil-visual ((,class :inherit modus-theme-active-cyan)))
4048 `(spaceline-flycheck-error ((,class :foreground ,red-active)))
4049 `(spaceline-flycheck-info ((,class :foreground ,cyan-active)))
4050 `(spaceline-flycheck-warning ((,class :foreground ,yellow-active)))
4051 `(spaceline-highlight-face ((,class :inherit modus-theme-fringe-blue)))
4052 `(spaceline-modified ((,class :inherit modus-theme-fringe-magenta)))
4053 `(spaceline-python-venv ((,class :foreground ,magenta-active)))
4054 `(spaceline-read-only ((,class :inherit modus-theme-fringe-red)))
4055 `(spaceline-unmodified ((,class :inherit modus-theme-fringe-cyan)))
4056;;;;; speedbar
4057 `(speedbar-button-face ((,class :inherit link)))
4058 `(speedbar-directory-face ((,class :inherit bold :foreground ,blue)))
4059 `(speedbar-file-face ((,class :foreground ,fg-main)))
4060 `(speedbar-highlight-face ((,class :inherit modus-theme-subtle-blue)))
4061 `(speedbar-selected-face ((,class :inherit bold :foreground ,cyan)))
4062 `(speedbar-separator-face ((,class :inherit modus-theme-intense-neutral)))
4063 `(speedbar-tag-face ((,class :foreground ,yellow-alt-other)))
4064;;;;; spell-fu
4065 `(spell-fu-incorrect-face
4066 ((,(append '((supports :underline (:style wave))) class)
4067 :foreground ,fg-lang-error :underline (:style wave))
4068 (,class :foreground ,fg-lang-error :underline t)))
4069;;;;; stripes
4070 `(stripes ((,class :inherit modus-theme-hl-line)))
4071;;;;; success
4072 `(suggest-heading ((,class :inherit bold :foreground ,yellow-alt-other)))
4073;;;;; switch-window
4074 `(switch-window-background ((,class :background ,bg-dim)))
4075 `(switch-window-label ((,class :height 3.0 :foreground ,blue-intense)))
4076;;;;; swiper
4077 `(swiper-background-match-face-1 ((,class :inherit modus-theme-subtle-neutral)))
4078 `(swiper-background-match-face-2 ((,class :inherit modus-theme-subtle-cyan)))
4079 `(swiper-background-match-face-3 ((,class :inherit modus-theme-subtle-magenta)))
4080 `(swiper-background-match-face-4 ((,class :inherit modus-theme-subtle-green)))
4081 `(swiper-line-face ((,class ,@(and (>= emacs-major-version 27) '(:extend t))
4082 :inherit modus-theme-special-cold)))
4083 `(swiper-match-face-1 ((,class :inherit swiper-line-face)))
4084 `(swiper-match-face-2 ((,class :inherit swiper-line-face)))
4085 `(swiper-match-face-3 ((,class :inherit swiper-line-face)))
4086 `(swiper-match-face-4 ((,class :inherit swiper-line-face)))
4087;;;;; swoop
4088 `(swoop-face-header-format-line ((,class :inherit bold :foreground ,red-alt
4089 ,@(modus-operandi-theme-scale modus-operandi-theme-scale-3))))
4090 `(swoop-face-line-buffer-name ((,class :inherit bold :foreground ,blue-alt
4091 ,@(modus-operandi-theme-scale modus-operandi-theme-scale-4))))
4092 `(swoop-face-line-number ((,class :foreground ,fg-special-warm)))
4093 `(swoop-face-target-line ((,class :inherit modus-theme-intense-blue
4094 ,@(and (>= emacs-major-version 27) '(:extend t)))))
4095 `(swoop-face-target-words ((,class :inherit modus-theme-refine-cyan)))
4096;;;;; sx
4097 `(sx-inbox-item-type ((,class :foreground ,magenta-alt-other)))
4098 `(sx-inbox-item-type-unread ((,class :inherit (sx-inbox-item-type bold))))
4099 `(sx-question-list-answers ((,class :foreground ,green)))
4100 `(sx-question-list-answers-accepted ((,class :box t :foreground ,green)))
4101 `(sx-question-list-bounty ((,class :inherit bold :background ,bg-alt :foreground ,yellow)))
4102 `(sx-question-list-date ((,class :foreground ,fg-special-cold)))
4103 `(sx-question-list-favorite ((,class :inherit bold :foreground ,fg-special-warm)))
4104 `(sx-question-list-parent ((,class :foreground ,fg-main)))
4105 `(sx-question-list-read-question ((,class :foreground ,fg-alt)))
4106 `(sx-question-list-score ((,class :foreground ,fg-special-mild)))
4107 `(sx-question-list-score-upvoted ((,class :inherit (sx-question-list-score bold))))
4108 `(sx-question-list-unread-question ((,class :inherit bold :foreground ,fg-main)))
4109 `(sx-question-mode-accepted ((,class :inherit bold :height 1.3 :foreground ,green)))
4110 `(sx-question-mode-closed ((,class :inherit modus-theme-active-yellow :box (:line-width 2 :color nil))))
4111 `(sx-question-mode-closed-reason ((,class :box (:line-width 2 :color nil) :foreground ,fg-main)))
4112 `(sx-question-mode-content-face ((,class :background ,bg-dim)))
4113 `(sx-question-mode-date ((,class :foreground ,blue)))
4114 `(sx-question-mode-header ((,class :inherit bold :foreground ,cyan)))
4115 `(sx-question-mode-kbd-tag ((,class :inherit bold :height 0.9 :box (:line-width 3 :color ,fg-main :style released-button) :foreground ,fg-main)))
4116 `(sx-question-mode-score ((,class :foreground ,fg-dim)))
4117 `(sx-question-mode-score-downvoted ((,class :foreground ,yellow)))
4118 `(sx-question-mode-score-upvoted ((,class :inherit bold :foreground ,magenta)))
4119 `(sx-question-mode-title ((,class :inherit bold :foreground ,fg-main)))
4120 `(sx-question-mode-title-comments ((,class :inherit bold :foreground ,fg-alt)))
4121 `(sx-tag ((,class :foreground ,magenta-alt)))
4122 `(sx-user-name ((,class :foreground ,blue-alt)))
4123 `(sx-user-reputation ((,class :foreground ,fg-alt)))
4124;;;;; symbol-overlay
4125 `(symbol-overlay-default-face ((,class :inherit modus-theme-special-warm)))
4126 `(symbol-overlay-face-1 ((,class :inherit modus-theme-intense-blue)))
4127 `(symbol-overlay-face-2 ((,class :inherit modus-theme-refine-magenta)))
4128 `(symbol-overlay-face-3 ((,class :inherit modus-theme-intense-yellow)))
4129 `(symbol-overlay-face-4 ((,class :inherit modus-theme-intense-magenta)))
4130 `(symbol-overlay-face-5 ((,class :inherit modus-theme-intense-red)))
4131 `(symbol-overlay-face-6 ((,class :inherit modus-theme-refine-red)))
4132 `(symbol-overlay-face-7 ((,class :inherit modus-theme-intense-cyan)))
4133 `(symbol-overlay-face-8 ((,class :inherit modus-theme-refine-cyan)))
4134;;;;; syslog-mode
4135 `(syslog-debug ((,class :inherit bold :foreground ,cyan-alt-other)))
4136 `(syslog-error ((,class :inherit bold :foreground ,red)))
4137 `(syslog-file ((,class :inherit bold :foreground ,fg-special-cold)))
4138 `(syslog-hide ((,class :background ,bg-main :foreground ,fg-main)))
4139 `(syslog-hour ((,class :inherit bold :foreground ,magenta-alt-other)))
4140 `(syslog-info ((,class :inherit bold :foreground ,blue-alt-other)))
4141 `(syslog-ip ((,class :inherit bold :foreground ,fg-special-mild :underline t)))
4142 `(syslog-su ((,class :inherit bold :foreground ,red-alt)))
4143 `(syslog-warn ((,class :inherit bold :foreground ,yellow)))
4144;;;;; table (built-in table.el)
4145 `(table-cell ((,class :background ,blue-nuanced-bg)))
4146;;;;; telephone-line
4147 `(telephone-line-accent-active ((,class :background ,fg-inactive :foreground ,bg-inactive)))
4148 `(telephone-line-accent-inactive ((,class :background ,bg-active :foreground ,fg-active)))
4149 `(telephone-line-error ((,class :inherit bold :foreground ,red-active)))
4150 `(telephone-line-evil ((,class :foreground ,fg-main)))
4151 `(telephone-line-evil-emacs ((,class :inherit telephone-line-evil :background ,magenta-intense-bg)))
4152 `(telephone-line-evil-insert ((,class :inherit telephone-line-evil :background ,green-intense-bg)))
4153 `(telephone-line-evil-motion ((,class :inherit telephone-line-evil :background ,yellow-intense-bg)))
4154 `(telephone-line-evil-normal ((,class :inherit telephone-line-evil :background ,bg-alt)))
4155 `(telephone-line-evil-operator ((,class :inherit telephone-line-evil :background ,yellow-subtle-bg)))
4156 `(telephone-line-evil-replace ((,class :inherit telephone-line-evil :background ,red-intense-bg)))
4157 `(telephone-line-evil-visual ((,class :inherit telephone-line-evil :background ,cyan-intense-bg)))
4158 `(telephone-line-projectile ((,class :foreground ,cyan-active)))
4159 `(telephone-line-unimportant ((,class :foreground ,fg-inactive)))
4160 `(telephone-line-warning ((,class :inherit bold :foreground ,yellow-active)))
4161;;;;; term
4162 `(term ((,class :background ,bg-main :foreground ,fg-main)))
4163 `(term-bold ((,class :inherit bold)))
4164 `(term-color-blue ((,class :background ,blue :foreground ,blue)))
4165 `(term-color-cyan ((,class :background ,cyan :foreground ,cyan)))
4166 `(term-color-green ((,class :background ,green :foreground ,green)))
4167 `(term-color-magenta ((,class :background ,magenta :foreground ,magenta)))
4168 `(term-color-red ((,class :background ,red :foreground ,red)))
4169 `(term-color-yellow ((,class :background ,yellow :foreground ,yellow)))
4170 `(term-underline ((,class :underline t)))
4171;;;;; tomatinho
4172 `(tomatinho-ok-face ((,class :foreground ,blue-intense)))
4173 `(tomatinho-pause-face ((,class :foreground ,yellow-intense)))
4174 `(tomatinho-reset-face ((,class :foreground ,fg-alt)))
4175;;;;; transient
4176 `(transient-active-infix ((,class :inherit modus-theme-special-mild)))
4177 `(transient-amaranth ((,class :inherit bold :foreground ,yellow)))
4178 `(transient-argument ((,class :inherit bold :foreground ,red-alt)))
4179 `(transient-blue ((,class :inherit bold :foreground ,blue)))
4180 `(transient-disabled-suffix ((,class :inherit modus-theme-intense-red)))
4181 `(transient-enabled-suffix ((,class :inherit modus-theme-intense-green)))
4182 `(transient-heading ((,class :inherit bold :foreground ,fg-main)))
4183 `(transient-inactive-argument ((,class :foreground ,fg-alt)))
4184 `(transient-inactive-value ((,class :foreground ,fg-alt)))
4185 `(transient-key ((,class :inherit bold :foreground ,blue)))
4186 `(transient-mismatched-key ((,class :underline t)))
4187 `(transient-nonstandard-key ((,class :underline t)))
4188 `(transient-pink ((,class :inherit bold :foreground ,magenta)))
4189 `(transient-red ((,class :inherit bold :foreground ,red-intense)))
4190 `(transient-teal ((,class :inherit bold :foreground ,cyan-alt-other)))
4191 `(transient-unreachable ((,class :foreground ,fg-unfocused)))
4192 `(transient-unreachable-key ((,class :foreground ,fg-unfocused)))
4193 `(transient-value ((,class :foreground ,magenta-alt)))
4194;;;;; trashed
4195 `(trashed-deleted ((,class :inherit modus-theme-mark-del)))
4196 `(trashed-directory ((,class :foreground ,blue)))
4197 `(trashed-mark ((,class :inherit modus-theme-mark-symbol)))
4198 `(trashed-marked ((,class :inherit modus-theme-mark-alt)))
4199 `(trashed-restored ((,class :inherit modus-theme-mark-sel)))
4200 `(trashed-symlink ((,class :inherit button :foreground ,cyan-alt)))
4201;;;;; treemacs
4202 `(treemacs-directory-collapsed-face ((,class :foreground ,magenta-alt)))
4203 `(treemacs-directory-face ((,class :inherit dired-directory)))
4204 `(treemacs-file-face ((,class :foreground ,fg-main)))
4205 `(treemacs-fringe-indicator-face ((,class :foreground ,fg-main)))
4206 `(treemacs-git-added-face ((,class :foreground ,green-intense)))
4207 `(treemacs-git-conflict-face ((,class :inherit (modus-theme-intense-red bold))))
4208 `(treemacs-git-ignored-face ((,class :foreground ,fg-alt)))
4209 `(treemacs-git-modified-face ((,class :foreground ,yellow-alt-other)))
4210 `(treemacs-git-renamed-face ((,class :foreground ,cyan-alt-other)))
4211 `(treemacs-git-unmodified-face ((,class :foreground ,fg-main)))
4212 `(treemacs-git-untracked-face ((,class :foreground ,red-alt-other)))
4213 `(treemacs-help-column-face ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,magenta-alt-other :underline t)))
4214 `(treemacs-help-title-face ((,class :foreground ,blue-alt-other)))
4215 `(treemacs-on-failure-pulse-face ((,class :inherit modus-theme-intense-red)))
4216 `(treemacs-on-success-pulse-face ((,class :inherit modus-theme-intense-green)))
4217 `(treemacs-root-face ((,class :inherit bold :foreground ,blue-alt-other :height 1.2 :underline t)))
4218 `(treemacs-root-remote-disconnected-face ((,class :inherit treemacs-root-remote-face :foreground ,yellow)))
4219 `(treemacs-root-remote-face ((,class :inherit treemacs-root-face :foreground ,magenta)))
4220 `(treemacs-root-remote-unreadable-face ((,class :inherit treemacs-root-unreadable-face)))
4221 `(treemacs-root-unreadable-face ((,class :inherit treemacs-root-face :strike-through t)))
4222 `(treemacs-tags-face ((,class :foreground ,blue-alt)))
4223 `(treemacs-tags-face ((,class :foreground ,magenta-alt)))
4224;;;;; tty-menu
4225 `(tty-menu-disabled-face ((,class :background ,bg-alt :foreground ,fg-alt)))
4226 `(tty-menu-enabled-face ((,class :inherit bold :background ,bg-alt :foreground ,fg-main)))
4227 `(tty-menu-selected-face ((,class :inherit modus-theme-intense-blue)))
4228;;;;; tuareg
4229 `(caml-types-def-face ((,class :inherit modus-theme-subtle-red)))
4230 `(caml-types-expr-face ((,class :inherit modus-theme-subtle-green)))
4231 `(caml-types-occ-face ((,class :inherit modus-theme-subtle-green)))
4232 `(caml-types-scope-face ((,class :inherit modus-theme-subtle-blue)))
4233 `(caml-types-typed-face ((,class :inherit modus-theme-subtle-magenta)))
4234 `(tuareg-font-double-semicolon-face ((,class ,@(modus-operandi-theme-syntax-foreground
4235 red-alt red-alt-faint))))
4236 `(tuareg-font-lock-attribute-face ((,class ,@(modus-operandi-theme-syntax-foreground
4237 magenta magenta-faint))))
4238 `(tuareg-font-lock-constructor-face ((,class :foreground ,fg-main)))
4239 `(tuareg-font-lock-error-face ((,class :inherit (modus-theme-intense-red bold))))
4240 `(tuareg-font-lock-extension-node-face ((,class :background ,bg-alt :foreground ,magenta)))
4241 `(tuareg-font-lock-governing-face ((,class :inherit bold :foreground ,fg-main)))
4242 `(tuareg-font-lock-infix-extension-node-face ((,class ,@(modus-operandi-theme-syntax-foreground
4243 magenta magenta-faint))))
4244 `(tuareg-font-lock-interactive-directive-face ((,class :foreground ,fg-special-cold)))
4245 `(tuareg-font-lock-interactive-error-face ((,class :inherit bold
4246 ,@(modus-operandi-theme-syntax-foreground
4247 red red-faint))))
4248 `(tuareg-font-lock-interactive-output-face ((,class ,@(modus-operandi-theme-syntax-foreground
4249 blue-alt-other blue-alt-other-faint))))
4250 `(tuareg-font-lock-label-face ((,class ,@(modus-operandi-theme-syntax-foreground
4251 cyan-alt-other cyan-alt-other-faint))))
4252 `(tuareg-font-lock-line-number-face ((,class :foreground ,fg-special-warm)))
4253 `(tuareg-font-lock-module-face ((,class ,@(modus-operandi-theme-syntax-foreground
4254 magenta-alt magenta-alt-faint))))
4255 `(tuareg-font-lock-multistage-face ((,class :inherit bold :background ,bg-alt
4256 ,@(modus-operandi-theme-syntax-foreground
4257 blue blue-faint))))
4258 `(tuareg-font-lock-operator-face ((,class ,@(modus-operandi-theme-syntax-foreground
4259 red-alt red-alt-faint))))
4260 `(tuareg-opam-error-face ((,class :inherit bold
4261 ,@(modus-operandi-theme-syntax-foreground
4262 red red-faint))))
4263 `(tuareg-opam-pkg-variable-name-face ((,class ,@(modus-operandi-theme-syntax-foreground
4264 cyan cyan-faint)
4265 :slant ,modus-theme-slant)))
4266;;;;; typescript
4267 `(typescript-jsdoc-tag ((,class :foreground ,fg-special-mild :slant ,modus-theme-slant)))
4268 `(typescript-jsdoc-type ((,class :foreground ,fg-special-calm :slant ,modus-theme-slant)))
4269 `(typescript-jsdoc-value ((,class :foreground ,fg-special-cold :slant ,modus-theme-slant)))
4270;;;;; undo-tree
4271 `(undo-tree-visualizer-active-branch-face ((,class :inherit bold :foreground ,fg-main)))
4272 `(undo-tree-visualizer-current-face ((,class :foreground ,blue-intense)))
4273 `(undo-tree-visualizer-default-face ((,class :foreground ,fg-alt)))
4274 `(undo-tree-visualizer-register-face ((,class :foreground ,magenta-intense)))
4275 `(undo-tree-visualizer-unmodified-face ((,class :foreground ,green-intense)))
4276;;;;; vc (vc-hooks.el)
4277 `(vc-conflict-state ((,class :foreground ,red-active :slant ,modus-theme-slant)))
4278 `(vc-edited-state ((,class :foreground ,yellow-active)))
4279 `(vc-locally-added-state ((,class :foreground ,cyan-active)))
4280 `(vc-locked-state ((,class :foreground ,blue-active)))
4281 `(vc-missing-state ((,class :foreground ,magenta-active :slant ,modus-theme-slant)))
4282 `(vc-needs-update-state ((,class :foreground ,green-active :slant ,modus-theme-slant)))
4283 `(vc-removed-state ((,class :foreground ,red-active)))
4284 `(vc-state-base ((,class :foreground ,fg-active)))
4285 `(vc-up-to-date-state ((,class :foreground ,fg-special-cold)))
4286;;;;; vdiff
4287 `(vdiff-addition-face ((,class :inherit modus-theme-diff-added)))
4288 `(vdiff-change-face ((,class :inherit modus-theme-diff-changed)))
4289 `(vdiff-closed-fold-face ((,class :background ,bg-diff-neutral-1 :foreground ,fg-diff-neutral-1)))
4290 `(vdiff-refine-added ((,class :inherit modus-theme-diff-refine-added)))
4291 `(vdiff-refine-changed ((,class :inherit modus-theme-diff-refine-changed)))
4292 `(vdiff-subtraction-face ((,class :inherit modus-theme-diff-removed)))
4293 `(vdiff-target-face ((,class :inherit modus-theme-intense-blue)))
4294;;;;; vimish-fold
4295 `(vimish-fold-fringe ((,class :foreground ,cyan-active)))
4296 `(vimish-fold-mouse-face ((,class :inherit modus-theme-intense-blue)))
4297 `(vimish-fold-overlay ((,class :background ,bg-alt :foreground ,fg-special-cold)))
4298;;;;; visible-mark
4299 `(visible-mark-active ((,class :background ,blue-intense-bg)))
4300 `(visible-mark-face1 ((,class :background ,cyan-intense-bg)))
4301 `(visible-mark-face2 ((,class :background ,yellow-intense-bg)))
4302 `(visible-mark-forward-face1 ((,class :background ,magenta-intense-bg)))
4303 `(visible-mark-forward-face2 ((,class :background ,green-intense-bg)))
4304;;;;; visual-regexp
4305 `(vr/group-0 ((,class :inherit modus-theme-intense-blue)))
4306 `(vr/group-1 ((,class :inherit modus-theme-intense-magenta)))
4307 `(vr/group-2 ((,class :inherit modus-theme-intense-green)))
4308 `(vr/match-0 ((,class :inherit modus-theme-refine-yellow)))
4309 `(vr/match-1 ((,class :inherit modus-theme-refine-yellow)))
4310 `(vr/match-separator-face ((,class :inherit (modus-theme-intense-neutral bold))))
4311;;;;; volatile-highlights
4312 `(vhl/default-face ((,class ,@(and (>= emacs-major-version 27) '(:extend t))
4313 :background ,bg-alt :foreground ,blue-nuanced)))
4314;;;;; vterm
4315 `(vterm-color-black ((,class :background "gray35" :foreground "gray35")))
4316 `(vterm-color-blue ((,class :background ,blue :foreground ,blue)))
4317 `(vterm-color-cyan ((,class :background ,cyan :foreground ,cyan)))
4318 `(vterm-color-default ((,class :background ,bg-main :foreground ,fg-main)))
4319 `(vterm-color-green ((,class :background ,green :foreground ,green)))
4320 `(vterm-color-inverse-video ((,class :background ,bg-main :inverse-video t)))
4321 `(vterm-color-magenta ((,class :background ,magenta :foreground ,magenta)))
4322 `(vterm-color-red ((,class :background ,red :foreground ,red)))
4323 `(vterm-color-underline ((,class :foreground ,fg-special-warm :underline t)))
4324 `(vterm-color-white ((,class :background "gray65" :foreground "gray65")))
4325 `(vterm-color-yellow ((,class :background ,yellow :foreground ,yellow)))
4326;;;;; wcheck-mode
4327 `(wcheck-default-face ((,class :foreground ,red :underline t)))
4328;;;;; web-mode
4329 `(web-mode-annotation-face ((,class :inherit web-mode-comment-face)))
4330 `(web-mode-annotation-html-face ((,class :inherit web-mode-comment-face)))
4331 `(web-mode-annotation-tag-face ((,class :inherit web-mode-comment-face :underline t)))
4332 `(web-mode-block-attr-name-face ((,class ,@(modus-operandi-theme-syntax-foreground
4333 blue blue-faint))))
4334 `(web-mode-block-attr-value-face ((,class ,@(modus-operandi-theme-syntax-foreground
4335 cyan-alt-other cyan-alt-other-faint))))
4336 `(web-mode-block-comment-face ((,class :inherit web-mode-comment-face)))
4337 `(web-mode-block-control-face ((,class ,@(modus-operandi-theme-syntax-foreground
4338 magenta-alt magenta-alt-faint)
4339 ,@(modus-operandi-theme-bold-weight))))
4340 `(web-mode-block-delimiter-face ((,class :foreground ,fg-main)))
4341 `(web-mode-block-face ((,class :background ,bg-dim)))
4342 `(web-mode-block-string-face ((,class :inherit web-mode-string-face)))
4343 `(web-mode-bold-face ((,class :inherit bold)))
4344 `(web-mode-builtin-face ((,class ,@(modus-operandi-theme-syntax-foreground
4345 magenta-alt magenta-alt-faint)
4346 ,@(modus-operandi-theme-bold-weight))))
4347 `(web-mode-comment-face ((,class :foreground ,fg-alt :slant ,modus-theme-slant)))
4348 `(web-mode-comment-keyword-face ((,class :inherit bold :background ,bg-dim
4349 ,@(modus-operandi-theme-syntax-foreground
4350 yellow yellow-faint))))
4351 `(web-mode-constant-face ((,class ,@(modus-operandi-theme-syntax-foreground
4352 blue-alt-other blue-alt-other-faint))))
4353 `(web-mode-css-at-rule-face ((,class ,@(modus-operandi-theme-syntax-foreground
4354 blue-alt-other blue-alt-other-faint))))
4355 `(web-mode-css-color-face ((,class ,@(modus-operandi-theme-syntax-foreground
4356 magenta-alt magenta-alt-faint)
4357 ,@(modus-operandi-theme-bold-weight))))
4358 `(web-mode-css-comment-face ((,class :inherit web-mode-comment-face)))
4359 `(web-mode-css-function-face ((,class ,@(modus-operandi-theme-syntax-foreground
4360 magenta-alt magenta-alt-faint)
4361 ,@(modus-operandi-theme-bold-weight))))
4362 `(web-mode-css-priority-face ((,class ,@(modus-operandi-theme-syntax-foreground
4363 yellow-alt yellow-alt-faint)
4364 ,@(modus-operandi-theme-bold-weight))))
4365 `(web-mode-css-property-name-face ((,class ,@(modus-operandi-theme-syntax-foreground
4366 cyan cyan-faint))))
4367 `(web-mode-css-pseudo-class-face ((,class ,@(modus-operandi-theme-syntax-foreground
4368 cyan-alt-other cyan-alt-other-faint))))
4369 `(web-mode-css-selector-face ((,class ,@(modus-operandi-theme-syntax-foreground
4370 magenta-alt-other magenta-alt-other-faint)
4371 ,@(modus-operandi-theme-bold-weight))))
4372 `(web-mode-css-string-face ((,class :inherit web-mode-string-face)))
4373 `(web-mode-css-variable-face ((,class :foreground ,fg-special-warm)))
4374 `(web-mode-current-column-highlight-face ((,class :background ,bg-alt)))
4375 `(web-mode-current-element-highlight-face ((,class :inherit modus-theme-special-mild)))
4376 `(web-mode-doctype-face ((,class :foreground ,fg-special-cold :slant ,modus-theme-slant)))
4377 `(web-mode-error-face ((,class :inherit modus-theme-intense-red)))
4378 `(web-mode-filter-face ((,class ,@(modus-operandi-theme-syntax-foreground
4379 magenta magenta-faint))))
4380 `(web-mode-folded-face ((,class :underline t)))
4381 `(web-mode-function-call-face ((,class ,@(modus-operandi-theme-syntax-foreground
4382 magenta magenta-faint))))
4383 `(web-mode-function-name-face ((,class ,@(modus-operandi-theme-syntax-foreground
4384 magenta magenta-faint))))
4385 `(web-mode-html-attr-custom-face ((,class ,@(modus-operandi-theme-syntax-foreground
4386 cyan cyan-faint))))
4387 `(web-mode-html-attr-engine-face ((,class :foreground ,fg-main)))
4388 `(web-mode-html-attr-equal-face ((,class :foreground ,fg-main)))
4389 `(web-mode-html-attr-name-face ((,class ,@(modus-operandi-theme-syntax-foreground
4390 cyan cyan-faint))))
4391 `(web-mode-html-attr-value-face ((,class ,@(modus-operandi-theme-syntax-foreground
4392 blue-alt-other blue-alt-other-faint))))
4393 `(web-mode-html-entity-face ((,class ,@(modus-operandi-theme-syntax-foreground
4394 yellow-alt-other yellow-alt-other-faint)
4395 :slant ,modus-theme-slant)))
4396 `(web-mode-html-tag-bracket-face ((,class :foreground ,fg-dim)))
4397 `(web-mode-html-tag-custom-face ((,class ,@(modus-operandi-theme-syntax-foreground
4398 magenta magenta-faint))))
4399 `(web-mode-html-tag-face ((,class ,@(modus-operandi-theme-syntax-foreground
4400 magenta magenta-faint))))
4401 `(web-mode-html-tag-namespaced-face ((,class ,@(modus-operandi-theme-syntax-foreground
4402 magenta-alt magenta-alt-faint)
4403 ,@(modus-operandi-theme-bold-weight))))
4404 `(web-mode-html-tag-unclosed-face ((,class ,@(modus-operandi-theme-syntax-foreground
4405 red red-faint)
4406 :underline t)))
4407 `(web-mode-inlay-face ((,class :background ,bg-alt)))
4408 `(web-mode-italic-face ((,class :slant italic)))
4409 `(web-mode-javascript-comment-face ((,class :inherit web-mode-comment-face)))
4410 `(web-mode-javascript-string-face ((,class :inherit web-mode-string-face)))
4411 `(web-mode-json-comment-face ((,class :inherit web-mode-comment-face)))
4412 `(web-mode-json-context-face ((,class ,@(modus-operandi-theme-syntax-foreground
4413 magenta-alt magenta-alt-faint))))
4414 `(web-mode-json-key-face ((,class :foreground ,blue-nuanced)))
4415 `(web-mode-json-string-face ((,class :inherit web-mode-string-face)))
4416 `(web-mode-jsx-depth-1-face ((,class :background ,blue-intense-bg :foreground ,fg-main)))
4417 `(web-mode-jsx-depth-2-face ((,class :background ,blue-subtle-bg :foreground ,fg-main)))
4418 `(web-mode-jsx-depth-3-face ((,class :background ,bg-special-cold :foreground ,fg-special-cold)))
4419 `(web-mode-jsx-depth-4-face ((,class :background ,bg-alt :foreground ,blue-refine-fg)))
4420 `(web-mode-jsx-depth-5-face ((,class :background ,bg-alt :foreground ,blue-nuanced)))
4421 `(web-mode-keyword-face ((,class ,@(modus-operandi-theme-syntax-foreground
4422 magenta-alt-other magenta-alt-other-faint)
4423 ,@(modus-operandi-theme-bold-weight))))
4424 `(web-mode-param-name-face ((,class ,@(modus-operandi-theme-syntax-foreground
4425 magenta magenta-faint))))
4426 `(web-mode-part-comment-face ((,class :inherit web-mode-comment-face)))
4427 `(web-mode-part-face ((,class :inherit web-mode-block-face)))
4428 `(web-mode-part-string-face ((,class :inherit web-mode-string-face)))
4429 `(web-mode-preprocessor-face ((,class ,@(modus-operandi-theme-syntax-foreground
4430 red-alt-other red-alt-other-faint))))
4431 `(web-mode-script-face ((,class :inherit web-mode-part-face)))
4432 `(web-mode-sql-keyword-face ((,class :inherit bold
4433 ,@(modus-operandi-theme-syntax-foreground
4434 yellow yellow-faint))))
4435 `(web-mode-string-face ((,class ,@(modus-operandi-theme-syntax-foreground
4436 blue-alt blue-alt-faint))))
4437 `(web-mode-style-face ((,class :inherit web-mode-part-face)))
4438 `(web-mode-symbol-face ((,class ,@(modus-operandi-theme-syntax-foreground
4439 blue-alt-other blue-alt-other-faint))))
4440 `(web-mode-type-face ((,class ,@(modus-operandi-theme-syntax-foreground
4441 magenta-alt magenta-alt-faint))))
4442 `(web-mode-underline-face ((,class :underline t)))
4443 `(web-mode-variable-name-face ((,class ,@(modus-operandi-theme-syntax-foreground
4444 cyan cyan-faint))))
4445 `(web-mode-warning-face ((,class :inherit bold :background ,bg-alt
4446 ,@(modus-operandi-theme-syntax-foreground
4447 yellow-alt-other yellow-alt-other-faint))))
4448 `(web-mode-whitespace-face ((,class :background ,bg-whitespace :foreground ,fg-whitespace)))
4449;;;;; wgrep
4450 `(wgrep-delete-face ((,class :inherit modus-theme-refine-yellow)))
4451 `(wgrep-done-face ((,class :inherit modus-theme-refine-blue)))
4452 `(wgrep-face ((,class :inherit modus-theme-refine-green)))
4453 `(wgrep-file-face ((,class :foreground ,fg-special-warm)))
4454 `(wgrep-reject-face ((,class :inherit (modus-theme-intense-red bold))))
4455;;;;; which-function-mode
4456 `(which-func ((,class :foreground ,magenta-active)))
4457;;;;; which-key
4458 `(which-key-command-description-face ((,class :foreground ,cyan)))
4459 `(which-key-group-description-face ((,class :foreground ,magenta-alt)))
4460 `(which-key-highlighted-command-face ((,class :foreground ,cyan-alt :underline t)))
4461 `(which-key-key-face ((,class :inherit bold :foreground ,blue-intense)))
4462 `(which-key-local-map-description-face ((,class :foreground ,fg-main)))
4463 `(which-key-note-face ((,class :background ,bg-dim :foreground ,fg-special-mild)))
4464 `(which-key-separator-face ((,class :foreground ,fg-alt)))
4465 `(which-key-special-key-face ((,class :inherit bold :foreground ,yellow-intense)))
4466;;;;; whitespace-mode
4467 `(whitespace-big-indent ((,class :inherit modus-theme-subtle-red)))
4468 `(whitespace-empty ((,class :inherit modus-theme-intense-magenta)))
4469 `(whitespace-hspace ((,class :background ,bg-whitespace :foreground ,fg-whitespace)))
4470 `(whitespace-indentation ((,class :background ,bg-whitespace :foreground ,fg-whitespace)))
4471 `(whitespace-line ((,class :inherit modus-theme-special-warm)))
4472 `(whitespace-newline ((,class :background ,bg-whitespace :foreground ,fg-whitespace)))
4473 `(whitespace-space ((,class :background ,bg-whitespace :foreground ,fg-whitespace)))
4474 `(whitespace-space-after-tab ((,class :inherit modus-theme-subtle-magenta)))
4475 `(whitespace-space-before-tab ((,class :inherit modus-theme-subtle-cyan)))
4476 `(whitespace-tab ((,class :background ,bg-whitespace :foreground ,fg-whitespace)))
4477 `(whitespace-trailing ((,class :inherit modus-theme-intense-red)))
4478;;;;; window-divider-mode
4479 `(window-divider ((,class :foreground ,fg-window-divider-inner)))
4480 `(window-divider-first-pixel ((,class :foreground ,fg-window-divider-outer)))
4481 `(window-divider-last-pixel ((,class :foreground ,fg-window-divider-outer)))
4482;;;;; winum
4483 `(winum-face ((,class ,@(modus-operandi-theme-bold-weight) :foreground ,cyan-active)))
4484;;;;; writegood-mode
4485 `(writegood-duplicates-face ((,class :background ,bg-alt :foreground ,red-alt :underline t)))
4486 `(writegood-passive-voice-face ((,class :foreground ,yellow-nuanced :underline ,fg-lang-warning)))
4487 `(writegood-weasels-face ((,class :foreground ,red-nuanced :underline ,fg-lang-error)))
4488;;;;; woman
4489 `(woman-addition ((,class :foreground ,magenta-alt-other)))
4490 `(woman-bold ((,class :inherit bold :foreground ,magenta)))
4491 `(woman-italic ((,class :foreground ,cyan :slant italic)))
4492 `(woman-unknown ((,class :foreground ,yellow :slant italic)))
4493;;;;; xah-elisp-mode
4494 `(xah-elisp-at-symbol ((,class :inherit bold
4495 ,@(modus-operandi-theme-syntax-foreground
4496 red-alt red-alt-faint))))
4497 `(xah-elisp-cap-variable ((,class ,@(modus-operandi-theme-syntax-foreground
4498 red-alt-other red-alt-other-faint))))
4499 `(xah-elisp-command-face ((,class ,@(modus-operandi-theme-syntax-foreground
4500 cyan-alt-other cyan-alt-other-faint))))
4501 `(xah-elisp-dollar-symbol ((,class ,@(modus-operandi-theme-syntax-foreground
4502 green green-faint))))
4503;;;;; xref
4504 `(xref-file-header ((,class :inherit bold :foreground ,fg-special-cold)))
4505 `(xref-line-number ((,class :foreground ,fg-alt)))
4506 `(xref-match ((,class :inherit match)))
4507;;;;; yaml-mode
4508 `(yaml-tab-face ((,class :inherit modus-theme-intense-red)))
4509;;;;; yasnippet
4510 `(yas-field-highlight-face ((,class :background ,bg-alt :foreground ,fg-main)))
4511;;;;; ztree
4512 `(ztreep-arrow-face ((,class :foreground ,fg-inactive)))
4513 `(ztreep-diff-header-face ((,class :inherit bold :height 1.2 :foreground ,fg-special-cold)))
4514 `(ztreep-diff-header-small-face ((,class :inherit bold :foreground ,fg-special-mild)))
4515 `(ztreep-diff-model-add-face ((,class :foreground ,green)))
4516 `(ztreep-diff-model-diff-face ((,class :foreground ,red)))
4517 `(ztreep-diff-model-ignored-face ((,class :foreground ,fg-alt :strike-through t)))
4518 `(ztreep-diff-model-normal-face ((,class :foreground ,fg-alt)))
4519 `(ztreep-expand-sign-face ((,class :foreground ,blue)))
4520 `(ztreep-header-face ((,class :inherit bold :height 1.2 :foreground ,fg-special-cold)))
4521 `(ztreep-leaf-face ((,class :foreground ,cyan)))
4522 `(ztreep-node-count-children-face ((,class :foreground ,fg-special-warm)))
4523 `(ztreep-node-face ((,class :foreground ,fg-main))))
4524;;;; Emacs 27+
4525 (when (>= emacs-major-version 27)
4526 (custom-theme-set-faces
4527 'modus-operandi
4528;;;;; line numbers (`display-line-numbers-mode' and global variant)
4529 ;; NOTE that this is specifically for the faces that were
4530 ;; introduced in Emacs 27, as the other faces are already
4531 ;; supported.
4532 `(line-number-major-tick ((,class :inherit (bold default)
4533 :background ,yellow-nuanced-bg
4534 :foreground ,yellow-nuanced)))
4535 `(line-number-minor-tick ((,class :inherit (bold default)
4536 :background ,bg-inactive
4537 :foreground ,fg-inactive)))
4538;;;;; tab-bar-mode
4539 `(tab-bar ((,class :background ,bg-tab-bar :foreground ,fg-main)))
4540 `(tab-bar-tab ((,class :inherit bold :box (:line-width 2 :color ,bg-tab-active)
4541 :background ,bg-tab-active :foreground ,fg-main)))
4542 `(tab-bar-tab-inactive ((,class :box (:line-width 2 :color ,bg-tab-inactive)
4543 :background ,bg-tab-inactive :foreground ,fg-dim)))
4544;;;;; tab-line-mode
4545 `(tab-line ((,class :height 0.95 :background ,bg-tab-bar :foreground ,fg-main)))
4546 `(tab-line-close-highlight ((,class :foreground ,red)))
4547 `(tab-line-highlight ((,class :background ,blue-subtle-bg :foreground ,fg-dim)))
4548 `(tab-line-tab ((,class :inherit bold :box (:line-width 2 :color ,bg-tab-active)
4549 :background ,bg-tab-active :foreground ,fg-main)))
4550 `(tab-line-tab-current ((,class :inherit tab-line-tab)))
4551 `(tab-line-tab-inactive ((,class :box (:line-width 2 :color ,bg-tab-inactive)
4552 :background ,bg-tab-inactive :foreground ,fg-dim)))))
4553;;;; Emacs 28+
4554 (when (>= emacs-major-version 28)
4555 (custom-theme-set-faces
4556 'modus-operandi
4557;;;;; isearch regexp groups
4558 `(isearch-group-1 ((,class :inherit modus-theme-intense-blue)))
4559 `(isearch-group-2 ((,class :inherit modus-theme-intense-magenta)))))
4560;;; variables
4561 (custom-theme-set-variables
4562 'modus-operandi
4563;;;; ansi-colors
4564 `(ansi-color-faces-vector [default bold shadow italic underline success warning error])
4565 `(ansi-color-names-vector [,fg-main ,red ,green ,yellow ,blue ,magenta ,cyan ,bg-main])
4566;;;; awesome-tray
4567 `(awesome-tray-mode-line-active-color ,blue)
4568 `(awesome-tray-mode-line-inactive-color ,bg-active)
4569;;;; flymake fringe indicators
4570 `(flymake-error-bitmap '(flymake-double-exclamation-mark modus-theme-fringe-red))
4571 `(flymake-warning-bitmap '(exclamation-mark modus-theme-fringe-yellow))
4572 `(flymake-note-bitmap '(exclamation-mark modus-theme-fringe-cyan))
4573;;;; ibuffer
4574 `(ibuffer-deletion-face 'modus-theme-mark-del)
4575 `(ibuffer-filter-group-name-face 'modus-theme-mark-symbol)
4576 `(ibuffer-marked-face 'modus-theme-mark-sel)
4577 `(ibuffer-title-face 'modus-theme-pseudo-header)
4578;;;; highlight-tail
4579 `(highlight-tail-colors
4580 '((,green-subtle-bg . 0)
4581 (,cyan-subtle-bg . 20)))
4582;;;; hl-todo
4583 `(hl-todo-keyword-faces
4584 '(("HOLD" . ,yellow-alt)
4585 ("TODO" . ,magenta)
4586 ("NEXT" . ,magenta-alt-other)
4587 ("THEM" . ,magenta-alt)
4588 ("PROG" . ,cyan)
4589 ("OKAY" . ,cyan-alt)
4590 ("DONT" . ,green-alt)
4591 ("FAIL" . ,red)
4592 ("BUG" . ,red)
4593 ("DONE" . ,green)
4594 ("NOTE" . ,yellow-alt-other)
4595 ("KLUDGE" . ,yellow)
4596 ("HACK" . ,yellow)
4597 ("TEMP" . ,red-nuanced)
4598 ("FIXME" . ,red-alt-other)
4599 ("XXX+" . ,red-alt)
4600 ("REVIEW" . ,cyan-alt-other)
4601 ("DEPRECATED" . ,blue-nuanced)))
4602;;;; vc-annotate (C-x v g)
4603 `(vc-annotate-background nil)
4604 `(vc-annotate-background-mode nil)
4605 `(vc-annotate-color-map
4606 '((20 . ,red)
4607 (40 . ,magenta)
4608 (60 . ,magenta-alt)
4609 (80 . ,red-alt)
4610 (100 . ,yellow)
4611 (120 . ,yellow-alt)
4612 (140 . ,fg-special-warm)
4613 (160 . ,fg-special-mild)
4614 (180 . ,green)
4615 (200 . ,green-alt)
4616 (220 . ,cyan-alt-other)
4617 (240 . ,cyan-alt)
4618 (260 . ,cyan)
4619 (280 . ,fg-special-cold)
4620 (300 . ,blue)
4621 (320 . ,blue-alt)
4622 (340 . ,blue-alt-other)
4623 (360 . ,magenta-alt-other)))
4624 `(vc-annotate-very-old-color nil)
4625;;;; xterm-color
4626 `(xterm-color-names [,fg-main ,red ,green ,yellow ,blue ,magenta ,cyan ,bg-alt])
4627 `(xterm-color-names-bright [,fg-alt ,red-alt ,green-alt ,yellow-alt ,blue-alt ,magenta-alt ,cyan-alt ,bg-main]))
4628;;; Conditional theme variables
4629;;;; org-src-block-faces
4630 ;; this is a user option to add a colour-coded background to source
4631 ;; blocks for various programming languages
4632 (when (eq modus-operandi-theme-org-blocks 'rainbow)
4633 (custom-theme-set-variables
4634 'modus-operandi
4635 `(org-src-block-faces ; TODO this list should be expanded
4636 `(("emacs-lisp" modus-theme-nuanced-magenta)
4637 ("elisp" modus-theme-nuanced-magenta)
4638 ("clojure" modus-theme-nuanced-magenta)
4639 ("clojurescript" modus-theme-nuanced-magenta)
4640 ("c" modus-theme-nuanced-blue)
4641 ("c++" modus-theme-nuanced-blue)
4642 ("sh" modus-theme-nuanced-green)
4643 ("shell" modus-theme-nuanced-green)
4644 ("html" modus-theme-nuanced-yellow)
4645 ("xml" modus-theme-nuanced-yellow)
4646 ("css" modus-theme-nuanced-red)
4647 ("scss" modus-theme-nuanced-red)
4648 ("python" modus-theme-nuanced-green)
4649 ("ipython" modus-theme-nuanced-magenta)
4650 ("r" modus-theme-nuanced-cyan)
4651 ("yaml" modus-theme-nuanced-cyan)
4652 ("conf" modus-theme-nuanced-cyan)
4653 ("docker" modus-theme-nuanced-cyan)
4654 ("json" modus-theme-nuanced-cyan))))))
4655 61
4656;;; library provides 62(modus-themes-theme modus-operandi)
4657;;;###autoload
4658(when load-file-name
4659 (add-to-list 'custom-theme-load-path
4660 (file-name-as-directory (file-name-directory load-file-name))))
4661 63
4662(provide-theme 'modus-operandi) 64(provide-theme 'modus-operandi)
4663 65
diff --git a/etc/themes/modus-themes.el b/etc/themes/modus-themes.el
new file mode 100644
index 00000000000..79846dbf3af
--- /dev/null
+++ b/etc/themes/modus-themes.el
@@ -0,0 +1,6436 @@
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.2.0
8;; Package-Requires: ((emacs "26.1"))
9;; Keywords: faces, theme, accessibility
10
11;; This file is part of GNU Emacs.
12
13;; This program is free software; you can redistribute it and/or modify
14;; it under the terms of the GNU General Public License as published by
15;; the Free Software Foundation, either version 3 of the License, or (at
16;; your option) any later version.
17;;
18;; This program is distributed in the hope that it will be useful, but
19;; WITHOUT ANY WARRANTY; without even the implied warranty of
20;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
21;; General Public License for more details.
22;;
23;; You should have received a copy of the GNU General Public License
24;; along with this program. If not, see <https://www.gnu.org/licenses/>.
25
26;;; Commentary:
27;;
28;; The Modus themes conform with the highest standard for color-contrast
29;; accessibility between background and foreground values (WCAG AAA).
30;; This file contains all customization options, helper functions,
31;; interactive commands, and face specifications. Please refer to the
32;; official Info manual for further documentation (distributed with the
33;; themes, or available at: <https://protesilaos.com/modus-themes>).
34;;
35;; The themes share the following customization options, all of which
36;; are disabled by default (nil):
37;;
38;; modus-themes-slanted-constructs (boolean)
39;; modus-themes-bold-constructs (boolean)
40;; modus-themes-variable-pitch-headings (boolean)
41;; modus-themes-variable-pitch-ui (boolean)
42;; modus-themes-no-mixed-fonts (boolean)
43;; modus-themes-headings (alist)
44;; modus-themes-scale-headings (boolean)
45;; modus-themes-fringes (choice)
46;; modus-themes-lang-checkers (choice)
47;; modus-themes-org-blocks (choice)
48;; modus-themes-org-habit (choice)
49;; modus-themes-prompts (choice)
50;; modus-themes-mode-line (choice)
51;; modus-themes-diffs (choice)
52;; modus-themes-syntax (choice)
53;; modus-themes-intense-hl-line (boolean)
54;; modus-themes-subtle-line-numbers (boolean)
55;; modus-themes-paren-match (choice)
56;; modus-themes-region (choice)
57;; modus-themes-links (choice)
58;; modus-themes-completions (choice)
59;;
60;; The default scale for headings is as follows (it can be customized as
61;; well---remember, no scaling takes place by default):
62;;
63;; modus-themes-scale-1 1.05
64;; modus-themes-scale-2 1.1
65;; modus-themes-scale-3 1.15
66;; modus-themes-scale-4 1.2
67;; modus-themes-scale-5 1.3
68;;
69;; There also exist two unique customization options for overriding
70;; color palette values. The specifics are documented in the manual.
71;; The symbols are:
72;;
73;; modus-themes-operandi-color-overrides (alist)
74;; modus-themes-vivendi-color-overrides (alist)
75;;
76;; Below is the list of explicitly supported packages or face groups
77;; (there are implicitly supported packages as well, which inherit from
78;; font-lock or some basic group). You are encouraged to report any
79;; missing package or change you would like to see.
80;;
81;; ace-window
82;; ag
83;; alert
84;; all-the-icons
85;; annotate
86;; anzu
87;; apropos
88;; apt-sources-list
89;; artbollocks-mode
90;; auctex and TeX
91;; auto-dim-other-buffers
92;; avy
93;; awesome-tray
94;; bbdb
95;; binder
96;; bm
97;; bongo
98;; boon
99;; breakpoint (provided by built-in gdb-mi.el)
100;; buffer-expose
101;; calendar and diary
102;; calfw
103;; centaur-tabs
104;; cfrs
105;; change-log and log-view (`vc-print-log' and `vc-print-root-log')
106;; cider
107;; circe
108;; color-rg
109;; column-enforce-mode
110;; company-mode
111;; company-posframe
112;; compilation-mode
113;; completions
114;; consult
115;; counsel
116;; counsel-css
117;; counsel-notmuch
118;; counsel-org-capture-string
119;; cov
120;; cperl-mode
121;; csv-mode
122;; ctrlf
123;; custom (M-x customize)
124;; dap-mode
125;; dashboard (emacs-dashboard)
126;; deadgrep
127;; debbugs
128;; define-word
129;; deft
130;; dictionary
131;; diff-hl
132;; diff-mode
133;; dim-autoload
134;; dir-treeview
135;; dired
136;; dired-async
137;; dired-git
138;; dired-git-info
139;; dired-narrow
140;; dired-subtree
141;; diredc
142;; diredfl
143;; diredp (dired+)
144;; disk-usage
145;; display-fill-column-indicator-mode
146;; doom-modeline
147;; dynamic-ruler
148;; easy-jekyll
149;; easy-kill
150;; ebdb
151;; ediff
152;; eglot
153;; el-search
154;; eldoc
155;; eldoc-box
156;; elfeed
157;; elfeed-score
158;; emms
159;; enhanced-ruby-mode
160;; epa
161;; equake
162;; erc
163;; eros
164;; ert
165;; eshell
166;; eshell-fringe-status
167;; eshell-git-prompt
168;; eshell-prompt-extras (epe)
169;; eshell-syntax-highlighting
170;; evil (evil-mode)
171;; evil-goggles
172;; evil-snipe
173;; evil-visual-mark-mode
174;; eww
175;; exwm
176;; eyebrowse
177;; fancy-dabbrev
178;; flycheck
179;; flycheck-color-mode-line
180;; flycheck-indicator
181;; flycheck-posframe
182;; flymake
183;; flyspell
184;; flyspell-correct
185;; flx
186;; freeze-it
187;; frog-menu
188;; focus
189;; fold-this
190;; font-lock (generic syntax highlighting)
191;; forge
192;; fountain (fountain-mode)
193;; geiser
194;; git-commit
195;; git-gutter (and variants)
196;; git-lens
197;; git-rebase
198;; git-timemachine
199;; git-walktree
200;; gnus
201;; golden-ratio-scroll-screen
202;; helm
203;; helm-ls-git
204;; helm-switch-shell
205;; helm-xref
206;; helpful
207;; highlight-blocks
208;; highlight-defined
209;; highlight-escape-sequences (`hes-mode')
210;; highlight-indentation
211;; highlight-numbers
212;; highlight-symbol
213;; highlight-tail
214;; highlight-thing
215;; hl-defined
216;; hl-fill-column
217;; hl-line-mode
218;; hl-todo
219;; hydra
220;; hyperlist
221;; ibuffer
222;; icomplete
223;; ido-mode
224;; iedit
225;; iflipb
226;; imenu-list
227;; indium
228;; info
229;; info-colors
230;; interaction-log
231;; ioccur
232;; isearch, occur, etc.
233;; isl (isearch-light)
234;; ivy
235;; ivy-posframe
236;; jira (org-jira)
237;; journalctl-mode
238;; js2-mode
239;; julia
240;; jupyter
241;; kaocha-runner
242;; keycast
243;; line numbers (`display-line-numbers-mode' and global variant)
244;; lsp-mode
245;; lsp-ui
246;; macrostep
247;; magit
248;; magit-imerge
249;; make-mode
250;; man
251;; marginalia
252;; markdown-mode
253;; markup-faces (`adoc-mode')
254;; mentor
255;; messages
256;; minibuffer-line
257;; minimap
258;; mmm-mode
259;; modeline
260;; mood-line
261;; mpdel
262;; mu4e
263;; mu4e-conversation
264;; multiple-cursors
265;; neotree
266;; no-emoji
267;; notmuch
268;; num3-mode
269;; nxml-mode
270;; objed
271;; orderless
272;; org
273;; org-journal
274;; org-noter
275;; org-pomodoro
276;; org-recur
277;; org-roam
278;; org-superstar
279;; org-table-sticky-header
280;; org-tree-slide
281;; org-treescope
282;; origami
283;; outline-mode
284;; outline-minor-faces
285;; package (M-x list-packages)
286;; page-break-lines
287;; paradox
288;; paren-face
289;; parrot
290;; pass
291;; pdf-tools
292;; persp-mode
293;; perspective
294;; phi-grep
295;; phi-search
296;; pkgbuild-mode
297;; pomidor
298;; popup
299;; powerline
300;; powerline-evil
301;; prism (see "Note for prism.el" in the manual)
302;; proced
303;; prodigy
304;; quick-peek
305;; racket-mode
306;; rainbow-blocks
307;; rainbow-identifiers
308;; rainbow-delimiters
309;; rcirc
310;; recursion-indicator
311;; regexp-builder (also known as `re-builder')
312;; rg
313;; ripgrep
314;; rmail
315;; ruler-mode
316;; sallet
317;; selectrum
318;; selectrum-prescient
319;; semantic
320;; sesman
321;; shell-script-mode
322;; shortdoc
323;; show-paren-mode
324;; shr
325;; side-notes
326;; sieve-mode
327;; skewer-mode
328;; smart-mode-line
329;; smartparens
330;; smerge
331;; spaceline
332;; speedbar
333;; spell-fu
334;; spray
335;; stripes
336;; suggest
337;; switch-window
338;; swiper
339;; swoop
340;; sx
341;; symbol-overlay
342;; tab-bar-mode
343;; tab-line-mode
344;; syslog-mode
345;; table (built-in table.el)
346;; telephone-line
347;; terraform-mode
348;; term
349;; tomatinho
350;; transient (pop-up windows like Magit's)
351;; trashed
352;; treemacs
353;; tty-menu
354;; tuareg
355;; typescript
356;; undo-tree
357;; vc (built-in mode line status for version control)
358;; vc-annotate (C-x v g)
359;; vdiff
360;; vimish-fold
361;; visible-mark
362;; visual-regexp
363;; volatile-highlights
364;; vterm
365;; wcheck-mode
366;; web-mode
367;; wgrep
368;; which-function-mode
369;; which-key
370;; whitespace-mode
371;; window-divider-mode
372;; winum
373;; writegood-mode
374;; woman
375;; xah-elisp-mode
376;; xref
377;; xterm-color (and ansi-colors)
378;; yaml-mode
379;; yasnippet
380;; ztree
381;;
382;; For a complete view of the project, also refer to the following files
383;; (should be distributed in the same repository/directory as the
384;; current item):
385;;
386;; - modus-operandi-theme.el (Light theme)
387;; - modus-vivendi-theme.el (Dark theme)
388
389;;; Code:
390
391
392
393(eval-when-compile (require 'cl-lib))
394
395(defgroup modus-themes ()
396 "Options for `modus-operandi', `modus-vivendi'."
397 :group 'faces
398 :link '(info-link "(modus-themes) Top")
399 :prefix "modus-themes-"
400 :tag "Modus Themes")
401
402;;; Variables for each theme variant
403
404;;;; Modus Operandi
405
406(define-obsolete-variable-alias
407 'modus-operandi-theme-default-colors-alist
408 'modus-themes-colors-operandi
409 "1.0.0")
410
411(define-obsolete-variable-alias
412 'modus-themes-colors-operandi
413 'modus-themes-operandi-colors
414 "1.1.0")
415
416(defconst modus-themes-operandi-colors
417 '(;; base values
418 (bg-main . "#ffffff") (fg-main . "#000000")
419 (bg-dim . "#f8f8f8") (fg-dim . "#282828")
420 (bg-alt . "#f0f0f0") (fg-alt . "#505050")
421 ;; specifically for on/off states and must be combined with
422 ;; themselves, though the backgrounds are also meant to be used with
423 ;; other "active" values, defined further below
424 (bg-active . "#d7d7d7") (fg-active . "#0a0a0a")
425 (bg-inactive . "#efefef") (fg-inactive . "#404148")
426 ;; these special values are intended as alternatives to the base
427 ;; values for cases where we need to avoid confusion between the
428 ;; highlighted constructs; they must either be used as pairs based
429 ;; on their name or each can be combined with {fg,bg}-{main,alt,dim}
430 ;; always in accordance with their role as background or foreground
431 (bg-special-cold . "#dde3f4") (fg-special-cold . "#093060")
432 (bg-special-mild . "#c4ede0") (fg-special-mild . "#184034")
433 (bg-special-warm . "#f0e0d4") (fg-special-warm . "#5d3026")
434 (bg-special-calm . "#f8ddea") (fg-special-calm . "#61284f")
435 ;; foregrounds that can be combined with bg-main, bg-dim, bg-alt
436 (red . "#a60000")
437 (red-alt . "#972500")
438 (red-alt-other . "#a0132f")
439 (red-faint . "#7f1010")
440 (red-alt-faint . "#702f00")
441 (red-alt-other-faint . "#7f002f")
442 (green . "#005e00")
443 (green-alt . "#315b00")
444 (green-alt-other . "#145c33")
445 (green-faint . "#104410")
446 (green-alt-faint . "#30440f")
447 (green-alt-other-faint . "#0f443f")
448 (yellow . "#813e00")
449 (yellow-alt . "#70480f")
450 (yellow-alt-other . "#863927")
451 (yellow-faint . "#5f4400")
452 (yellow-alt-faint . "#5d5000")
453 (yellow-alt-other-faint . "#5e3a20")
454 (blue . "#0031a9")
455 (blue-alt . "#2544bb")
456 (blue-alt-other . "#0000c0")
457 (blue-faint . "#003497")
458 (blue-alt-faint . "#0f3d8c")
459 (blue-alt-other-faint . "#001087")
460 (magenta . "#721045")
461 (magenta-alt . "#8f0075")
462 (magenta-alt-other . "#5317ac")
463 (magenta-faint . "#752f50")
464 (magenta-alt-faint . "#7b206f")
465 (magenta-alt-other-faint . "#55348e")
466 (cyan . "#00538b")
467 (cyan-alt . "#30517f")
468 (cyan-alt-other . "#005a5f")
469 (cyan-faint . "#005077")
470 (cyan-alt-faint . "#354f6f")
471 (cyan-alt-other-faint . "#125458")
472 ;; these foreground values can only be combined with bg-main and are
473 ;; thus not suitable for general purpose highlighting
474 (red-intense . "#b60000")
475 (orange-intense . "#904200")
476 (green-intense . "#006800")
477 (yellow-intense . "#605b00")
478 (blue-intense . "#1f1fce")
479 (magenta-intense . "#a8007f")
480 (purple-intense . "#7f10d0")
481 (cyan-intense . "#005f88")
482 ;; those foregrounds are meant exclusively for bg-active, bg-inactive
483 (red-active . "#8a0000")
484 (green-active . "#004c2e")
485 (yellow-active . "#702d1f")
486 (blue-active . "#0030b4")
487 (magenta-active . "#5c2092")
488 (cyan-active . "#003f8a")
489 ;; the "subtle" values below be combined with fg-dim, while the
490 ;; "intense" should be paired with fg-main
491 (red-subtle-bg . "#f2b0a2")
492 (red-intense-bg . "#ff8892")
493 (green-subtle-bg . "#aecf90")
494 (green-intense-bg . "#5ada88")
495 (yellow-subtle-bg . "#e4c340")
496 (yellow-intense-bg . "#f5df23")
497 (blue-subtle-bg . "#b5d0ff")
498 (blue-intense-bg . "#6aaeff")
499 (magenta-subtle-bg . "#f0d3ff")
500 (magenta-intense-bg . "#d5baff")
501 (cyan-subtle-bg . "#c0efff")
502 (cyan-intense-bg . "#42cbd4")
503 ;; those background values must be combined with fg-main and should
504 ;; only be used for indicators that are placed on the fringes
505 (red-fringe-bg . "#f08290")
506 (green-fringe-bg . "#62c86a")
507 (yellow-fringe-bg . "#dbba3f")
508 (blue-fringe-bg . "#82afff")
509 (magenta-fringe-bg . "#e0a3ff")
510 (cyan-fringe-bg . "#2fcddf")
511 ;; those background values should only be used for graphs or similar
512 ;; applications where colored blocks are expected to be positioned
513 ;; next to each other
514 (red-graph-0-bg . "#ef6f79")
515 (red-graph-1-bg . "#ff9f9f")
516 (green-graph-0-bg . "#49d239")
517 (green-graph-1-bg . "#6dec6d")
518 (yellow-graph-0-bg . "#efec08")
519 (yellow-graph-1-bg . "#dbff4e")
520 (blue-graph-0-bg . "#55a2f0")
521 (blue-graph-1-bg . "#7fcfff")
522 (magenta-graph-0-bg . "#ba86ef")
523 (magenta-graph-1-bg . "#e7afff")
524 (cyan-graph-0-bg . "#30d3f0")
525 (cyan-graph-1-bg . "#6fefff")
526 ;; the following are for cases where both the foreground and the
527 ;; background need to have a similar hue and so must be combined
528 ;; with themselves, even though the foregrounds can be paired with
529 ;; any of the base backgrounds
530 (red-refine-bg . "#ffcccc") (red-refine-fg . "#780000")
531 (green-refine-bg . "#aceaac") (green-refine-fg . "#004c00")
532 (yellow-refine-bg . "#fff29a") (yellow-refine-fg . "#604000")
533 (blue-refine-bg . "#8ac7ff") (blue-refine-fg . "#002288")
534 (magenta-refine-bg . "#ffccff") (magenta-refine-fg . "#770077")
535 (cyan-refine-bg . "#8eecf4") (cyan-refine-fg . "#004850")
536 ;; the "nuanced" backgrounds can be combined with all of the above
537 ;; foregrounds, as well as those included here, while the "nuanced"
538 ;; foregrounds can in turn also be combined with bg-main, bg-dim,
539 ;; bg-alt
540 (red-nuanced-bg . "#fff1f0") (red-nuanced-fg . "#5f0000")
541 (green-nuanced-bg . "#ecf7ed") (green-nuanced-fg . "#004000")
542 (yellow-nuanced-bg . "#fff3da") (yellow-nuanced-fg . "#3f3000")
543 (blue-nuanced-bg . "#f3f3ff") (blue-nuanced-fg . "#201f55")
544 (magenta-nuanced-bg . "#fdf0ff") (magenta-nuanced-fg . "#541f4f")
545 (cyan-nuanced-bg . "#ebf6fa") (cyan-nuanced-fg . "#0f3360")
546 ;; the following are reserved for specific cases
547 ;;
548 ;; bg-hl-line is between bg-dim and bg-alt, so it should
549 ;; work with all accents that cover those two, plus bg-main
550 ;;
551 ;; bg-hl-alt and bg-hl-alt-intense should only be used when no
552 ;; other greyscale or fairly neutral background is available to
553 ;; properly draw attention to a given construct
554 ;;
555 ;; bg-header is between bg-active and bg-inactive, so it
556 ;; can be combined with any of the "active" values, plus the
557 ;; "special" and base foreground colors
558 ;;
559 ;; bg-paren-match, bg-paren-match-intense, bg-region and
560 ;; bg-tab-active must be combined with fg-main, while
561 ;; bg-tab-inactive should be combined with fg-dim, whereas
562 ;; bg-tab-inactive-alt goes together with fg-main
563 ;;
564 ;; bg-tab-bar is only intended for the bar that holds the tabs and
565 ;; can only be combined with fg-main
566 ;;
567 ;; fg-tab-active is meant to be combined with bg-tab-active,
568 ;; though only for styling special elements, such as underlining
569 ;; the current tab
570 ;;
571 ;; fg-escape-char-construct and fg-escape-char-backslash can
572 ;; be combined bg-main, bg-dim, bg-alt
573 ;;
574 ;; fg-lang-error, fg-lang-warning, fg-lang-note can be
575 ;; combined with bg-main, bg-dim, bg-alt
576 ;;
577 ;; fg-mark-sel, fg-mark-del, fg-mark-alt can be combined
578 ;; with bg-main, bg-dim, bg-alt, bg-hl-line
579 ;;
580 ;; fg-unfocused must be combined with bg-main
581 ;;
582 ;; fg-docstring, fg-comment-yellow can be combined with
583 ;; bg-main, bg-dim, bg-alt
584 ;;
585 ;; the window divider colors apply to faces with just an fg value
586 ;;
587 ;; all pairs are combinable with themselves
588 (bg-hl-line . "#f2eff3")
589 (bg-hl-line-intense . "#e0e0e0")
590 (bg-hl-alt . "#fbeee0")
591 (bg-hl-alt-intense . "#e8dfd1")
592 (bg-paren-match . "#e0af82")
593 (bg-paren-match-intense . "#c488ff")
594 (bg-region . "#bcbcbc")
595
596 (bg-tab-bar . "#d5d5d5")
597 (bg-tab-active . "#f6f6f6")
598 (bg-tab-inactive . "#bdbdbd")
599 (bg-tab-inactive-alt . "#999999")
600 (fg-tab-active . "#30169e")
601
602 (fg-escape-char-construct . "#8b1030")
603 (fg-escape-char-backslash . "#654d0f")
604
605 (fg-lang-error . "#9f004f")
606 (fg-lang-warning . "#604f0f")
607 (fg-lang-note . "#4040ae")
608 (fg-lang-underline-error . "#ef4f54")
609 (fg-lang-underline-warning . "#cf9f00")
610 (fg-lang-underline-note . "#3f6fef")
611
612 (fg-window-divider-inner . "#888888")
613 (fg-window-divider-outer . "#585858")
614
615 (fg-unfocused . "#56576d")
616
617 (fg-docstring . "#2a486a")
618 (fg-comment-yellow . "#5f4400")
619
620 (bg-header . "#e5e5e5") (fg-header . "#2a2a2a")
621
622 (bg-whitespace . "#f5efef") (fg-whitespace . "#624956")
623
624 (bg-diff-heading . "#b7cfe0") (fg-diff-heading . "#041645")
625 (bg-diff-added . "#d4fad4") (fg-diff-added . "#004500")
626 (bg-diff-added-deuteran . "#daefff") (fg-diff-added-deuteran . "#002044")
627 (bg-diff-changed . "#fcefcf") (fg-diff-changed . "#524200")
628 (bg-diff-removed . "#ffe8ef") (fg-diff-removed . "#691616")
629
630 (bg-diff-refine-added . "#94cf94") (fg-diff-refine-added . "#002a00")
631 (bg-diff-refine-added-deuteran . "#77c0ef") (fg-diff-refine-added-deuteran . "#000035")
632 (bg-diff-refine-changed . "#cccf8f") (fg-diff-refine-changed . "#302010")
633 (bg-diff-refine-removed . "#daa2b0") (fg-diff-refine-removed . "#400000")
634
635 (bg-diff-focus-added . "#bbeabb") (fg-diff-focus-added . "#002c00")
636 (bg-diff-focus-added-deuteran . "#bacfff") (fg-diff-focus-added-deuteran . "#001755")
637 (bg-diff-focus-changed . "#ecdfbf") (fg-diff-focus-changed . "#392900")
638 (bg-diff-focus-removed . "#efcbcf") (fg-diff-focus-removed . "#4a0000")
639
640 (bg-diff-neutral-0 . "#979797") (fg-diff-neutral-0 . "#040404")
641 (bg-diff-neutral-1 . "#b0b0b0") (fg-diff-neutral-1 . "#252525")
642 (bg-diff-neutral-2 . "#cccccc") (fg-diff-neutral-2 . "#3a3a3a")
643
644 (bg-mark-sel . "#a0f0cf") (fg-mark-sel . "#005040")
645 (bg-mark-del . "#ffccbb") (fg-mark-del . "#840040")
646 (bg-mark-alt . "#f5d88f") (fg-mark-alt . "#782900"))
647 "The entire palette of `modus-operandi' theme.
648Each element has the form (NAME . HEX) with the former as a
649symbol and the latter as a string.")
650
651;;;; Modus Vivendi
652
653(define-obsolete-variable-alias
654 'modus-vivendi-theme-default-colors-alist
655 'modus-themes-colors-vivendi
656 "1.0.0")
657
658(define-obsolete-variable-alias
659 'modus-themes-colors-vivendi
660 'modus-themes-vivendi-colors
661 "1.1.0")
662
663(defconst modus-themes-vivendi-colors
664 '(;; base values
665 (bg-main . "#000000") (fg-main . "#ffffff")
666 (bg-dim . "#110b11") (fg-dim . "#e0e6f0")
667 (bg-alt . "#181a20") (fg-alt . "#a8a8a8")
668 ;; specifically for on/off states and must be combined with
669 ;; themselves, though the backgrounds are also meant to be used with
670 ;; other "active" values, defined further below
671 (bg-active . "#323232") (fg-active . "#f4f4f4")
672 (bg-inactive . "#1e1e1e") (fg-inactive . "#bfc0c4")
673 ;; these special values are intended as alternatives to the base
674 ;; values for cases where we need to avoid confusion between the
675 ;; highlighted constructs; they must either be used as pairs based
676 ;; on their name or each can be combined with {fg,bg}-{main,alt,dim}
677 ;; always in accordance with their role as background or foreground
678 (bg-special-cold . "#203448") (fg-special-cold . "#c6eaff")
679 (bg-special-mild . "#00322e") (fg-special-mild . "#bfebe0")
680 (bg-special-warm . "#382f27") (fg-special-warm . "#f8dec0")
681 (bg-special-calm . "#392a48") (fg-special-calm . "#fbd6f4")
682 ;; foregrounds that can be combined with bg-main, bg-dim, bg-alt
683 (red . "#ff8059")
684 (red-alt . "#f4923b")
685 (red-alt-other . "#ff9977")
686 (red-faint . "#ffa0a0")
687 (red-alt-faint . "#f5aa80")
688 (red-alt-other-faint . "#ff9fbf")
689 (green . "#44bc44")
690 (green-alt . "#70c900")
691 (green-alt-other . "#00cd68")
692 (green-faint . "#88cf88")
693 (green-alt-faint . "#a8cf88")
694 (green-alt-other-faint . "#88cfaf")
695 (yellow . "#eecc00")
696 (yellow-alt . "#cfdf30")
697 (yellow-alt-other . "#f0ce43")
698 (yellow-faint . "#d2b580")
699 (yellow-alt-faint . "#cabf77")
700 (yellow-alt-other-faint . "#d0ba95")
701 (blue . "#2fafff")
702 (blue-alt . "#79a8ff" )
703 (blue-alt-other . "#00bcff")
704 (blue-faint . "#92baff")
705 (blue-alt-faint . "#a0acf5")
706 (blue-alt-other-faint . "#87c8ff")
707 (magenta . "#feacd0")
708 (magenta-alt . "#f78fe7")
709 (magenta-alt-other . "#b6a0ff")
710 (magenta-faint . "#e0b2d6")
711 (magenta-alt-faint . "#ef9fe4")
712 (magenta-alt-other-faint . "#cfa6ff")
713 (cyan . "#00d3d0")
714 (cyan-alt . "#4ae8fc")
715 (cyan-alt-other . "#6ae4b9")
716 (cyan-faint . "#90c4ed")
717 (cyan-alt-faint . "#a0bfdf")
718 (cyan-alt-other-faint . "#a4d0bb")
719 ;; these foreground values can only be combined with bg-main and are
720 ;; thus not suitable for general purpose highlighting
721 (red-intense . "#fe6060")
722 (orange-intense . "#fba849")
723 (green-intense . "#4fe42f")
724 (yellow-intense . "#f0dd60")
725 (blue-intense . "#4fafff")
726 (magenta-intense . "#ff62d4")
727 (purple-intense . "#9f80ff")
728 (cyan-intense . "#3fdfd0")
729 ;; those foregrounds are meant exclusively for bg-active, bg-inactive
730 (red-active . "#ffa7ba")
731 (green-active . "#70d73f")
732 (yellow-active . "#dbbe5f")
733 (blue-active . "#34cfff")
734 (magenta-active . "#d5b1ff")
735 (cyan-active . "#00d8b4")
736 ;; the "subtle" values below be combined with fg-dim, while the
737 ;; "intense" should be paired with fg-main
738 (red-subtle-bg . "#762422")
739 (red-intense-bg . "#a4202a")
740 (green-subtle-bg . "#2f4a00")
741 (green-intense-bg . "#006800")
742 (yellow-subtle-bg . "#604200")
743 (yellow-intense-bg . "#874900")
744 (blue-subtle-bg . "#10387c")
745 (blue-intense-bg . "#2a40b8")
746 (magenta-subtle-bg . "#49366e")
747 (magenta-intense-bg . "#7042a2")
748 (cyan-subtle-bg . "#00415e")
749 (cyan-intense-bg . "#005f88")
750 ;; those background values must be combined with fg-main and should
751 ;; only be used for indicators that are placed on the fringes
752 (red-fringe-bg . "#8f1f4b")
753 (green-fringe-bg . "#006700")
754 (yellow-fringe-bg . "#6f4f00")
755 (blue-fringe-bg . "#3f33af")
756 (magenta-fringe-bg . "#6f2f89")
757 (cyan-fringe-bg . "#004f8f")
758 ;; those background values should only be used for graphs or similar
759 ;; applications where colored blocks are expected to be positioned
760 ;; next to each other
761 (red-graph-0-bg . "#af0404")
762 (red-graph-1-bg . "#801f2f")
763 (green-graph-0-bg . "#24ba2f")
764 (green-graph-1-bg . "#0f8f07")
765 (yellow-graph-0-bg . "#ffd03e")
766 (yellow-graph-1-bg . "#d7d800")
767 (blue-graph-0-bg . "#406fff")
768 (blue-graph-1-bg . "#2f50c8")
769 (magenta-graph-0-bg . "#af7bee")
770 (magenta-graph-1-bg . "#7f59cf")
771 (cyan-graph-0-bg . "#47dcfa")
772 (cyan-graph-1-bg . "#0bc0df")
773 ;; the following are for cases where both the foreground and the
774 ;; background need to have a similar hue and so must be combined
775 ;; with themselves, even though the foregrounds can be paired with
776 ;; any of the base backgrounds
777 (red-refine-bg . "#77002a") (red-refine-fg . "#ffb9ab")
778 (green-refine-bg . "#00422a") (green-refine-fg . "#9ff0cf")
779 (yellow-refine-bg . "#693200") (yellow-refine-fg . "#e2d980")
780 (blue-refine-bg . "#242679") (blue-refine-fg . "#8ec6ff")
781 (magenta-refine-bg . "#71206a") (magenta-refine-fg . "#ffcaf0")
782 (cyan-refine-bg . "#004065") (cyan-refine-fg . "#8ae4f2")
783 ;; the "nuanced" backgrounds can be combined with all of the above
784 ;; foregrounds, as well as those included here, while the "nuanced"
785 ;; foregrounds can in turn also be combined with bg-main, bg-dim,
786 ;; bg-alt
787 (red-nuanced-bg . "#2c0614") (red-nuanced-fg . "#ffcccc")
788 (green-nuanced-bg . "#001904") (green-nuanced-fg . "#b8e2b8")
789 (yellow-nuanced-bg . "#221000") (yellow-nuanced-fg . "#dfdfb0")
790 (blue-nuanced-bg . "#0f0e39") (blue-nuanced-fg . "#bfd9ff")
791 (magenta-nuanced-bg . "#230631") (magenta-nuanced-fg . "#e5cfef")
792 (cyan-nuanced-bg . "#041529") (cyan-nuanced-fg . "#a8e5e5")
793 ;; the following are reserved for specific cases
794 ;;
795 ;; bg-hl-line is between bg-dim and bg-alt, so it should
796 ;; work with all accents that cover those two, plus bg-main
797 ;;
798 ;; bg-hl-alt and bg-hl-alt-intense should only be used when no
799 ;; other greyscale or fairly neutral background is available to
800 ;; properly draw attention to a given construct
801 ;;
802 ;; bg-header is between bg-active and bg-inactive, so it
803 ;; can be combined with any of the "active" values, plus the
804 ;; "special" and base foreground colors
805 ;;
806 ;; bg-paren-match, bg-paren-match-intense, bg-region and
807 ;; bg-tab-active must be combined with fg-main, while
808 ;; bg-tab-inactive should be combined with fg-dim, whereas
809 ;; bg-tab-inactive-alt goes together with fg-main
810 ;;
811 ;; bg-tab-bar is only intended for the bar that holds the tabs and
812 ;; can only be combined with fg-main
813 ;;
814 ;; fg-tab-active is meant to be combined with bg-tab-active,
815 ;; though only for styling special elements, such as underlining
816 ;; the current tab
817 ;;
818 ;; fg-escape-char-construct and fg-escape-char-backslash can
819 ;; be combined bg-main, bg-dim, bg-alt
820 ;;
821 ;; fg-lang-error, fg-lang-warning, fg-lang-note can be
822 ;; combined with bg-main, bg-dim, bg-alt
823 ;;
824 ;; fg-mark-sel, fg-mark-del, fg-mark-alt can be combined
825 ;; with bg-main, bg-dim, bg-alt, bg-hl-line
826 ;;
827 ;; fg-unfocused must be combined with bg-main
828 ;;
829 ;; fg-docstring, fg-comment-yellow can be combined with
830 ;; bg-main, bg-dim, bg-alt
831 ;;
832 ;; the window divider colors apply to faces with just an fg value
833 ;;
834 ;; all pairs are combinable with themselves
835 (bg-hl-line . "#151823")
836 (bg-hl-line-intense . "#2f2f2f")
837 (bg-hl-alt . "#181732")
838 (bg-hl-alt-intense . "#282e46")
839 (bg-paren-match . "#5f362f")
840 (bg-paren-match-intense . "#7416b5")
841 (bg-region . "#3c3c3c")
842
843 (bg-tab-bar . "#2c2c2c")
844 (bg-tab-active . "#0e0e0e")
845 (bg-tab-inactive . "#3d3d3d")
846 (bg-tab-inactive-alt . "#595959")
847 (fg-tab-active . "#5ac3cf")
848
849 (fg-escape-char-construct . "#e7a59a")
850 (fg-escape-char-backslash . "#abab00")
851
852 (fg-lang-error . "#ef8690")
853 (fg-lang-warning . "#b0aa00")
854 (fg-lang-note . "#9d9def")
855 (fg-lang-underline-error . "#ff4a6f")
856 (fg-lang-underline-warning . "#d0de00")
857 (fg-lang-underline-note . "#5f6fff")
858
859 (fg-window-divider-inner . "#646464")
860 (fg-window-divider-outer . "#969696")
861
862 (fg-unfocused . "#93959b")
863
864 (fg-docstring . "#b0d6f5")
865 (fg-comment-yellow . "#cab98f")
866
867 (bg-header . "#212121") (fg-header . "#dddddd")
868
869 (bg-whitespace . "#101424") (fg-whitespace . "#aa9e9f")
870
871 (bg-diff-heading . "#304466") (fg-diff-heading . "#dae7ff")
872 (bg-diff-added . "#0a280a") (fg-diff-added . "#94ba94")
873 (bg-diff-added-deuteran . "#001a3f") (fg-diff-added-deuteran . "#c4cdf2")
874 (bg-diff-changed . "#2a2000") (fg-diff-changed . "#b0ba9f")
875 (bg-diff-removed . "#40160f") (fg-diff-removed . "#c6adaa")
876
877 (bg-diff-refine-added . "#005a36") (fg-diff-refine-added . "#e0f6e0")
878 (bg-diff-refine-added-deuteran . "#234f8f") (fg-diff-refine-added-deuteran . "#dde4ff")
879 (bg-diff-refine-changed . "#585800") (fg-diff-refine-changed . "#ffffcc")
880 (bg-diff-refine-removed . "#852828") (fg-diff-refine-removed . "#ffd9eb")
881
882 (bg-diff-focus-added . "#203d20") (fg-diff-focus-added . "#b4ddb4")
883 (bg-diff-focus-added-deuteran . "#00405f") (fg-diff-focus-added-deuteran . "#bfe4ff")
884 (bg-diff-focus-changed . "#4a3a10") (fg-diff-focus-changed . "#d0daaf")
885 (bg-diff-focus-removed . "#5e2526") (fg-diff-focus-removed . "#eebdba")
886
887 (bg-diff-neutral-0 . "#575757") (fg-diff-neutral-0 . "#fcfcfc")
888 (bg-diff-neutral-1 . "#454545") (fg-diff-neutral-1 . "#dddddd")
889 (bg-diff-neutral-2 . "#313131") (fg-diff-neutral-2 . "#bfbfbf")
890
891 (bg-mark-sel . "#002f2f") (fg-mark-sel . "#60cfa2")
892 (bg-mark-del . "#5a0000") (fg-mark-del . "#ff99aa")
893 (bg-mark-alt . "#3f2210") (fg-mark-alt . "#f0aa20"))
894 "The entire palette of `modus-vivendi' theme.
895Each element has the form (NAME . HEX) with the former as a
896symbol and the latter as a string.")
897
898
899
900;;; Custom faces
901
902;; These faces are used internally to ensure consistency between various
903;; groups and to streamline the evaluation of relevant customization
904;; options.
905(defface modus-theme-subtle-red nil
906 "Subtle red background combined with a dimmed foreground.
907This is used for general purpose highlighting, mostly in buffers
908or for completion interfaces.
909
910The actual styling of the face is done by `modus-themes-faces'.")
911
912(defface modus-theme-subtle-green nil
913 "Subtle green background combined with a dimmed foreground.
914This is used for general purpose highlighting, mostly in buffers
915or for completion interfaces.
916
917The actual styling of the face is done by `modus-themes-faces'.")
918
919(defface modus-theme-subtle-yellow nil
920 "Subtle yellow background combined with a dimmed foreground.
921This is used for general purpose highlighting, mostly in buffers
922or for completion interfaces.
923
924The actual styling of the face is done by `modus-themes-faces'.")
925
926(defface modus-theme-subtle-blue nil
927 "Subtle blue background combined with a dimmed foreground.
928This is used for general purpose highlighting, mostly in buffers
929or for completion interfaces.
930
931The actual styling of the face is done by `modus-themes-faces'.")
932
933(defface modus-theme-subtle-magenta nil
934 "Subtle magenta background combined with a dimmed foreground.
935This is used for general purpose highlighting, mostly in buffers
936or for completion interfaces.
937
938The actual styling of the face is done by `modus-themes-faces'.")
939
940(defface modus-theme-subtle-cyan nil
941 "Subtle cyan background combined with a dimmed foreground.
942This is used for general purpose highlighting, mostly in buffers
943or for completion interfaces.
944
945The actual styling of the face is done by `modus-themes-faces'.")
946
947(defface modus-theme-subtle-neutral nil
948 "Subtle gray background combined with a dimmed foreground.
949This is used for general purpose highlighting, mostly in buffers
950or for completion interfaces.
951
952The actual styling of the face is done by `modus-themes-faces'.")
953
954(defface modus-theme-intense-red nil
955 "Intense red background combined with the main foreground.
956This is used for general purpose highlighting, mostly in buffers
957or for completion interfaces.
958
959The actual styling of the face is done by `modus-themes-faces'.")
960
961(defface modus-theme-intense-green nil
962 "Intense green background combined with the main foreground.
963This is used for general purpose highlighting, mostly in buffers
964or for completion interfaces.
965
966The actual styling of the face is done by `modus-themes-faces'.")
967
968(defface modus-theme-intense-yellow nil
969 "Intense yellow background combined with the main foreground.
970This is used for general purpose highlighting, mostly in buffers
971or for completion interfaces.
972
973The actual styling of the face is done by `modus-themes-faces'.")
974
975(defface modus-theme-intense-blue nil
976 "Intense blue background combined with the main foreground.
977This is used for general purpose highlighting, mostly in buffers
978or for completion interfaces.
979
980The actual styling of the face is done by `modus-themes-faces'.")
981
982(defface modus-theme-intense-magenta nil
983 "Intense magenta background combined with the main foreground.
984This is used for general purpose highlighting, mostly in buffers
985or for completion interfaces.
986
987The actual styling of the face is done by `modus-themes-faces'.")
988
989(defface modus-theme-intense-cyan nil
990 "Intense cyan background combined with the main foreground.
991This is used for general purpose highlighting, mostly in buffers
992or for completion interfaces.
993
994The actual styling of the face is done by `modus-themes-faces'.")
995
996(defface modus-theme-intense-neutral nil
997 "Intense gray background combined with the main foreground.
998This is used for general purpose highlighting, mostly in buffers
999or for completion interfaces.
1000
1001The actual styling of the face is done by `modus-themes-faces'.")
1002
1003(defface modus-theme-refine-red nil
1004 "Combination of accented red background and foreground.
1005This is used for general purpose highlighting, mostly in buffers
1006or for completion interfaces.
1007
1008The actual styling of the face is done by `modus-themes-faces'.")
1009
1010(defface modus-theme-refine-green nil
1011 "Combination of accented green background and foreground.
1012This is used for general purpose highlighting, mostly in buffers
1013or for completion interfaces.
1014
1015The actual styling of the face is done by `modus-themes-faces'.")
1016
1017(defface modus-theme-refine-yellow nil
1018 "Combination of accented yellow background and foreground.
1019This is used for general purpose highlighting, mostly in buffers
1020or for completion interfaces.
1021
1022The actual styling of the face is done by `modus-themes-faces'.")
1023
1024(defface modus-theme-refine-blue nil
1025 "Combination of accented blue background and foreground.
1026This is used for general purpose highlighting, mostly in buffers
1027or for completion interfaces.
1028
1029The actual styling of the face is done by `modus-themes-faces'.")
1030
1031(defface modus-theme-refine-magenta nil
1032 "Combination of accented magenta background and foreground.
1033This is used for general purpose highlighting, mostly in buffers
1034or for completion interfaces.
1035
1036The actual styling of the face is done by `modus-themes-faces'.")
1037
1038(defface modus-theme-refine-cyan nil
1039 "Combination of accented cyan background and foreground.
1040This is used for general purpose highlighting, mostly in buffers
1041or for completion interfaces.
1042
1043The actual styling of the face is done by `modus-themes-faces'.")
1044
1045(defface modus-theme-active-red nil
1046 "A red background meant for use on the modeline or similar.
1047This is combined with the modelines primary foreground value.
1048
1049The actual styling of the face is done by `modus-themes-faces'.")
1050
1051(defface modus-theme-active-green nil
1052 "A green background meant for use on the modeline or similar.
1053This is combined with the modelines primary foreground value.
1054
1055The actual styling of the face is done by `modus-themes-faces'.")
1056
1057(defface modus-theme-active-yellow nil
1058 "A yellow background meant for use on the modeline or similar.
1059This is combined with the modelines primary foreground value.
1060
1061The actual styling of the face is done by `modus-themes-faces'.")
1062
1063(defface modus-theme-active-blue nil
1064 "A blue background meant for use on the modeline or similar.
1065This is combined with the modelines primary foreground value.
1066
1067The actual styling of the face is done by `modus-themes-faces'.")
1068
1069(defface modus-theme-active-magenta nil
1070 "A magenta background meant for use on the modeline or similar.
1071This is combined with the modelines primary foreground value.
1072
1073The actual styling of the face is done by `modus-themes-faces'.")
1074
1075(defface modus-theme-active-cyan nil
1076 "A cyan background meant for use on the modeline or similar.
1077This is combined with the modelines primary foreground value.
1078
1079The actual styling of the face is done by `modus-themes-faces'.")
1080
1081(defface modus-theme-fringe-red nil
1082 "A red background meant for use on the fringe or similar.
1083This is combined with the main foreground value.
1084
1085The actual styling of the face is done by `modus-themes-faces'.")
1086
1087(defface modus-theme-fringe-green nil
1088 "A green background meant for use on the fringe or similar.
1089This is combined with the main foreground value.
1090
1091The actual styling of the face is done by `modus-themes-faces'.")
1092
1093(defface modus-theme-fringe-yellow nil
1094 "A yellow background meant for use on the fringe or similar.
1095This is combined with the main foreground value.
1096
1097The actual styling of the face is done by `modus-themes-faces'.")
1098
1099(defface modus-theme-fringe-blue nil
1100 "A blue background meant for use on the fringe or similar.
1101This is combined with the main foreground value.
1102
1103The actual styling of the face is done by `modus-themes-faces'.")
1104
1105(defface modus-theme-fringe-magenta nil
1106 "A magenta background meant for use on the fringe or similar.
1107This is combined with the main foreground value.
1108
1109The actual styling of the face is done by `modus-themes-faces'.")
1110
1111(defface modus-theme-fringe-cyan nil
1112 "A cyan background meant for use on the fringe or similar.
1113This is combined with the main foreground value.
1114
1115The actual styling of the face is done by `modus-themes-faces'.")
1116
1117(defface modus-theme-nuanced-red nil
1118 "A nuanced red background.
1119This does not specify a foreground of its own. Instead it is meant to
1120serve as the backdrop for elements such as Org blocks, headings, and any
1121other surface that needs to retain the colors on display.
1122
1123The actual styling of the face is done by `modus-themes-faces'.")
1124
1125(defface modus-theme-nuanced-green nil
1126 "A nuanced green background.
1127This does not specify a foreground of its own. Instead it is meant to
1128serve as the backdrop for elements such as Org blocks, headings, and any
1129other surface that needs to retain the colors on display.
1130
1131The actual styling of the face is done by `modus-themes-faces'.")
1132
1133(defface modus-theme-nuanced-yellow nil
1134 "A nuanced yellow background.
1135This does not specify a foreground of its own. Instead it is meant to
1136serve as the backdrop for elements such as Org blocks, headings, and any
1137other surface that needs to retain the colors on display.
1138
1139The actual styling of the face is done by `modus-themes-faces'.")
1140
1141(defface modus-theme-nuanced-blue nil
1142 "A nuanced blue background.
1143This does not specify a foreground of its own. Instead it is meant to
1144serve as the backdrop for elements such as Org blocks, headings, and any
1145other surface that needs to retain the colors on display.
1146
1147The actual styling of the face is done by `modus-themes-faces'.")
1148
1149(defface modus-theme-nuanced-magenta nil
1150 "A nuanced magenta background.
1151This does not specify a foreground of its own. Instead it is meant to
1152serve as the backdrop for elements such as Org blocks, headings, and any
1153other surface that needs to retain the colors on display.
1154
1155The actual styling of the face is done by `modus-themes-faces'.")
1156
1157(defface modus-theme-nuanced-cyan nil
1158 "A nuanced cyan background.
1159This does not specify a foreground of its own. Instead it is meant to
1160serve as the backdrop for elements such as Org blocks, headings, and any
1161other surface that needs to retain the colors on display.
1162
1163The actual styling of the face is done by `modus-themes-faces'.")
1164
1165(defface modus-theme-special-cold nil
1166 "Combines the 'special cold' background and foreground values.
1167This is intended for cases when a neutral gray background is not
1168suitable and where a combination of more saturated colors would not be
1169appropriate.
1170
1171The actual styling of the face is done by `modus-themes-faces'.")
1172
1173(defface modus-theme-special-mild nil
1174 "Combines the 'special mild' background and foreground values.
1175This is intended for cases when a neutral gray background is not
1176suitable and where a combination of more saturated colors would not be
1177appropriate.
1178
1179The actual styling of the face is done by `modus-themes-faces'.")
1180
1181(defface modus-theme-special-warm nil
1182 "Combines the 'special warm' background and foreground values.
1183This is intended for cases when a neutral gray background is not
1184suitable and where a combination of more saturated colors would not be
1185appropriate.
1186
1187The actual styling of the face is done by `modus-themes-faces'.")
1188
1189(defface modus-theme-special-calm nil
1190 "Combines the 'special calm' background and foreground values.
1191This is intended for cases when a neutral gray background is not
1192suitable and where a combination of more saturated colors would not be
1193appropriate.
1194
1195The actual styling of the face is done by `modus-themes-faces'.")
1196
1197(defface modus-theme-diff-added nil
1198 "Combines green colors for the 'added' state in diffs.
1199The applied colors are contingent on the value assigned to
1200`modus-themes-diffs'.
1201
1202The actual styling of the face is done by `modus-themes-faces'.")
1203
1204(defface modus-theme-diff-changed nil
1205 "Combines yellow colors for the 'changed' state in diffs.
1206The applied colors are contingent on the value assigned to
1207`modus-themes-diffs'.
1208
1209The actual styling of the face is done by `modus-themes-faces'.")
1210
1211(defface modus-theme-diff-removed nil
1212 "Combines red colors for the 'removed' state in diffs.
1213The applied colors are contingent on the value assigned to
1214`modus-themes-diffs'.
1215
1216The actual styling of the face is done by `modus-themes-faces'.")
1217
1218(defface modus-theme-diff-refine-added nil
1219 "Combines green colors for word-wise 'added' state in diffs.
1220The applied colors are contingent on the value assigned to
1221`modus-themes-diffs'.
1222
1223The actual styling of the face is done by `modus-themes-faces'.")
1224
1225(defface modus-theme-diff-refine-changed nil
1226 "Combines yellow colors for word-wise 'changed' state in diffs.
1227The applied colors are contingent on the value assigned to
1228`modus-themes-diffs'.
1229
1230The actual styling of the face is done by `modus-themes-faces'.")
1231
1232(defface modus-theme-diff-refine-removed nil
1233 "Combines red colors for word-wise 'removed' state in diffs.
1234The applied colors are contingent on the value assigned to
1235`modus-themes-diffs'.
1236
1237The actual styling of the face is done by `modus-themes-faces'.")
1238
1239(defface modus-theme-diff-focus-added nil
1240 "Combines green colors for the focused 'added' state in diffs.
1241The applied colors are contingent on the value assigned to
1242`modus-themes-diffs'.
1243
1244The actual styling of the face is done by `modus-themes-faces'.")
1245
1246(defface modus-theme-diff-focus-changed nil
1247 "Combines yellow colors for the focused 'changed' state in.
1248The applied colors are contingent on the value assigned to
1249`modus-themes-diffs'.
1250
1251The actual styling of the face is done by `modus-themes-faces'.")
1252
1253(defface modus-theme-diff-focus-removed nil
1254 "Combines red colors for the focused 'removed' state in diffs.
1255The applied colors are contingent on the value assigned to
1256`modus-themes-diffs'.
1257
1258The actual styling of the face is done by `modus-themes-faces'.")
1259
1260(defface modus-theme-diff-heading nil
1261 "Combines blue colors for the diff hunk heading.
1262The applied colors are contingent on the value assigned to
1263`modus-themes-diffs'.
1264
1265The actual styling of the face is done by `modus-themes-faces'.")
1266
1267(defface modus-theme-pseudo-header nil
1268 "Generic style for some elements that function like headings.
1269The actual styling of the face is done by `modus-themes-faces'.")
1270
1271(defface modus-theme-mark-alt nil
1272 "Combines yellow colors for marking special lines
1273This is intended for use in modes such as Dired, Ibuffer, Proced.
1274
1275The actual styling of the face is done by `modus-themes-faces'.")
1276
1277(defface modus-theme-mark-del nil
1278 "Combines red colors for marking deletable lines
1279This is intended for use in modes such as Dired, Ibuffer, Proced.
1280
1281The actual styling of the face is done by `modus-themes-faces'.")
1282
1283(defface modus-theme-mark-sel nil
1284 "Combines green colors for marking lines
1285This is intended for use in modes such as Dired, Ibuffer, Proced.
1286
1287The actual styling of the face is done by `modus-themes-faces'.")
1288
1289(defface modus-theme-mark-symbol nil
1290 "Applies a blue color and other styles for mark indicators.
1291This is intended for use in modes such as Dired, Ibuffer, Proced.
1292
1293The actual styling of the face is done by `modus-themes-faces'.")
1294
1295(defface modus-theme-heading-1 nil
1296 "General purpose face for use in headings level 1
1297The exact attributes assigned to this face are contingent on the values
1298assigned to the `modus-themes-headings' variable.
1299
1300The actual styling of the face is done by `modus-themes-faces'.")
1301
1302(defface modus-theme-heading-2 nil
1303 "General purpose face for use in headings level 2.
1304The exact attributes assigned to this face are contingent on the values
1305assigned to the `modus-themes-headings' variable.
1306
1307The actual styling of the face is done by `modus-themes-faces'.")
1308
1309(defface modus-theme-heading-3 nil
1310 "General purpose face for use in headings level 3.
1311The exact attributes assigned to this face are contingent on the values
1312assigned to the `modus-themes-headings' variable.
1313
1314The actual styling of the face is done by `modus-themes-faces'.")
1315
1316(defface modus-theme-heading-4 nil
1317 "General purpose face for use in headings level 4.
1318The exact attributes assigned to this face are contingent on the values
1319assigned to the `modus-themes-headings' variable.
1320
1321The actual styling of the face is done by `modus-themes-faces'.")
1322
1323(defface modus-theme-heading-5 nil
1324 "General purpose face for use in headings level 5.
1325The exact attributes assigned to this face are contingent on the values
1326assigned to the `modus-themes-headings' variable.
1327
1328The actual styling of the face is done by `modus-themes-faces'.")
1329
1330(defface modus-theme-heading-6 nil
1331 "General purpose face for use in headings level 6.
1332The exact attributes assigned to this face are contingent on the values
1333assigned to the `modus-themes-headings' variable.
1334
1335The actual styling of the face is done by `modus-themes-faces'.")
1336
1337(defface modus-theme-heading-7 nil
1338 "General purpose face for use in headings level 7.
1339The exact attributes assigned to this face are contingent on the values
1340assigned to the `modus-themes-headings' variable.
1341
1342The actual styling of the face is done by `modus-themes-faces'.")
1343
1344(defface modus-theme-heading-8 nil
1345 "General purpose face for use in headings level 8.
1346The exact attributes assigned to this face are contingent on the values
1347assigned to the `modus-themes-headings' variable.
1348
1349The actual styling of the face is done by `modus-themes-faces'.")
1350
1351(defface modus-theme-hl-line nil
1352 "General purpose face for the current line.
1353The exact attributes assigned to this face are contingent on the values
1354assigned to the `modus-themes-intense-hl-line' variable.
1355
1356The actual styling of the face is done by `modus-themes-faces'.")
1357
1358(defface modus-theme-bold nil
1359 "Generic face for applying a conditional bold weight.
1360This behaves in accordance with `modus-themes-bold-constructs'.
1361
1362The actual styling of the face is done by `modus-themes-faces'.")
1363
1364(defface modus-theme-slant nil
1365 "Generic face for applying a conditional slant (italics).
1366This behaves in accordance with `modus-themes-slanted-constructs'.
1367
1368The actual styling of the face is done by `modus-themes-faces'.")
1369
1370(defface modus-theme-variable-pitch nil
1371 "Generic face for applying a conditional `variable-pitch'.
1372This behaves in accordance with `modus-themes-no-mixed-fonts',
1373`modus-themes-variable-pitch-headings' for all heading levels, and
1374`modus-themes-variable-pitch-ui'.
1375
1376The actual styling of the face is done by `modus-themes-faces'.")
1377
1378(defface modus-theme-graph-red-0 nil
1379 "Special subdued red face for use in graphs.
1380This is intended to be applied in contexts such as the Org agenda habit
1381graph where faithfulness to the semantics of a color value is of
1382paramount importance.
1383
1384The actual styling of the face is done by `modus-themes-faces'.")
1385
1386(defface modus-theme-graph-red-1 nil
1387 "Special prominent red face for use in graphs.
1388This is intended to be applied in contexts such as the Org agenda habit
1389graph where faithfulness to the semantics of a color value is of
1390paramount importance.
1391
1392The actual styling of the face is done by `modus-themes-faces'.")
1393
1394(defface modus-theme-graph-green-0 nil
1395 "Special subdued green face for use in graphs.
1396This is intended to be applied in contexts such as the Org agenda habit
1397graph where faithfulness to the semantics of a color value is of
1398paramount importance.
1399
1400The actual styling of the face is done by `modus-themes-faces'.")
1401
1402(defface modus-theme-graph-green-1 nil
1403 "Special prominent green face for use in graphs.
1404This is intended to be applied in contexts such as the Org agenda habit
1405graph where faithfulness to the semantics of a color value is of
1406paramount importance.
1407
1408The actual styling of the face is done by `modus-themes-faces'.")
1409
1410(defface modus-theme-graph-yellow-0 nil
1411 "Special subdued yellow face for use in graphs.
1412This is intended to be applied in contexts such as the Org agenda habit
1413graph where faithfulness to the semantics of a color value is of
1414paramount importance.
1415
1416The actual styling of the face is done by `modus-themes-faces'.")
1417
1418(defface modus-theme-graph-yellow-1 nil
1419 "Special prominent yellow face for use in graphs.
1420This is intended to be applied in contexts such as the Org agenda habit
1421graph where faithfulness to the semantics of a color value is of
1422paramount importance.
1423
1424The actual styling of the face is done by `modus-themes-faces'.")
1425
1426(defface modus-theme-graph-blue-0 nil
1427 "Special subdued blue face for use in graphs.
1428This is intended to be applied in contexts such as the Org agenda habit
1429graph where faithfulness to the semantics of a color value is of
1430paramount importance.
1431
1432The actual styling of the face is done by `modus-themes-faces'.")
1433
1434(defface modus-theme-graph-blue-1 nil
1435 "Special prominent blue face for use in graphs.
1436This is intended to be applied in contexts such as the Org agenda habit
1437graph where faithfulness to the semantics of a color value is of
1438paramount importance.
1439
1440The actual styling of the face is done by `modus-themes-faces'.")
1441
1442(defface modus-theme-graph-magenta-0 nil
1443 "Special subdued magenta face for use in graphs.
1444This is intended to be applied in contexts such as the Org agenda habit
1445graph where faithfulness to the semantics of a color value is of
1446paramount importance.
1447
1448The actual styling of the face is done by `modus-themes-faces'.")
1449
1450(defface modus-theme-graph-magenta-1 nil
1451 "Special prominent magenta face for use in graphs.
1452This is intended to be applied in contexts such as the Org agenda habit
1453graph where faithfulness to the semantics of a color value is of
1454paramount importance.
1455
1456The actual styling of the face is done by `modus-themes-faces'.")
1457
1458(defface modus-theme-graph-cyan-0 nil
1459 "Special subdued cyan face for use in graphs.
1460This is intended to be applied in contexts such as the Org agenda habit
1461graph where faithfulness to the semantics of a color value is of
1462paramount importance.
1463
1464The actual styling of the face is done by `modus-themes-faces'.")
1465
1466(defface modus-theme-graph-cyan-1 nil
1467 "Special prominent cyan face for use in graphs.
1468This is intended to be applied in contexts such as the Org agenda habit
1469graph where faithfulness to the semantics of a color value is of
1470paramount importance.
1471
1472The actual styling of the face is done by `modus-themes-faces'.")
1473
1474(defface modus-theme-lang-note nil
1475 "Generic face for linter or spell checker notes.
1476The exact attributes and color combinations are controlled by
1477`modus-themes-lang-checkers'.
1478
1479The actual styling of the face is done by `modus-themes-faces'.")
1480
1481(defface modus-theme-lang-warning nil
1482 "Generic face for linter or spell checker warnings.
1483The exact attributes and color combinations are controlled by
1484`modus-themes-lang-checkers'.
1485
1486The actual styling of the face is done by `modus-themes-faces'.")
1487
1488(defface modus-theme-lang-error nil
1489 "Generic face for linter or spell checker errors.
1490The exact attributes and color combinations are controlled by
1491`modus-themes-lang-checkers'.
1492
1493The actual styling of the face is done by `modus-themes-faces'.")
1494
1495
1496
1497;;; Customization options
1498
1499;;;; Current customization options (>= 1.0.0)
1500
1501(defcustom modus-themes-operandi-color-overrides nil
1502 "Override colors in the Modus Operandi palette.
1503
1504For form, see `modus-themes-operandi-colors'."
1505 :group 'modus-themes
1506 :package-version '(modus-themes . "1.1.0")
1507 :version "28.1"
1508 :type '(alist :key-type symbol :value-type color)
1509 :link '(info-link "(modus-themes) Override colors (DIY)"))
1510
1511(defcustom modus-themes-vivendi-color-overrides nil
1512 "Override colors in the Modus Vivendi palette.
1513
1514For form, see `modus-themes-vivendi-colors'."
1515 :group 'modus-themes
1516 :package-version '(modus-themes . "1.1.0")
1517 :version "28.1"
1518 :type '(alist :key-type symbol :value-type color)
1519 :link '(info-link "(modus-themes) Override colors (DIY)"))
1520
1521;; The byte compiler complains when a defcustom isn't a top level form
1522(let* ((names (mapcar (lambda (pair)
1523 (symbol-name (car pair)))
1524 modus-themes-operandi-colors))
1525 (colors (mapcar #'intern (sort names #'string<))))
1526 (put 'modus-themes-operandi-color-overrides
1527 'custom-options (copy-sequence colors))
1528 (put 'modus-themes-vivendi-color-overrides
1529 'custom-options (copy-sequence colors)))
1530
1531(defcustom modus-themes-slanted-constructs nil
1532 "Use slanted text in more code constructs (italics or oblique)."
1533 :group 'modus-themes
1534 :package-version '(modus-themes . "1.0.0")
1535 :version "28.1"
1536 :type 'boolean
1537 :link '(info-link "(modus-themes) Slanted constructs"))
1538
1539(defcustom modus-themes-bold-constructs nil
1540 "Use bold text in more code constructs."
1541 :group 'modus-themes
1542 :package-version '(modus-themes . "1.0.0")
1543 :version "28.1"
1544 :type 'boolean
1545 :link '(info-link "(modus-themes) Bold constructs"))
1546
1547(defcustom modus-themes-variable-pitch-headings nil
1548 "Use proportional fonts (variable-pitch) in headings."
1549 :group 'modus-themes
1550 :package-version '(modus-themes . "1.0.0")
1551 :version "28.1"
1552 :type 'boolean
1553 :link '(info-link "(modus-themes) Headings' typeface"))
1554
1555(defcustom modus-themes-variable-pitch-ui nil
1556 "Use proportional fonts (variable-pitch) in UI elements.
1557This includes the mode line, header line, tab bar, and tab line."
1558 :group 'modus-themes
1559 :package-version '(modus-themes . "1.1.0")
1560 :version "28.1"
1561 :type 'boolean
1562 :link '(info-link "(modus-themes) UI typeface"))
1563
1564(defcustom modus-themes-no-mixed-fonts nil
1565 "Disable inheritance from `fixed-pitch' in some faces.
1566
1567This is done by default to allow spacing-sensitive constructs,
1568such as Org tables and code blocks, to remain monospaced when
1569users opt for something like the command `variable-pitch-mode'.
1570The downside with the default is that users need to explicitly
1571configure the font family of `fixed-pitch' in order to get a
1572consistent experience. That may be something they do not want to
1573do. Hence this option to disable any kind of technique for
1574mixing fonts."
1575 :group 'modus-themes
1576 :package-version '(modus-themes . "1.0.0")
1577 :version "28.1"
1578 :type 'boolean
1579 :link '(info-link "(modus-themes) No mixed fonts"))
1580
1581(defcustom modus-themes-headings
1582 '((t . nil))
1583 "Alist of styles for headings, with optional value per level.
1584
1585To control faces per level from 1-8, use something like this:
1586
1587 (setq modus-themes-headings
1588 '((1 . highlight)
1589 (2 . line)
1590 (t . rainbow-line-no-bold)))
1591
1592To set a uniform value for all heading levels, use this pattern:
1593
1594 (setq modus-themes-headings
1595 '((t . rainbow-line-no-bold)))
1596
1597The default uses a fairly desaturated foreground value in
1598combination with a bold typographic weight. To specify this
1599style for a given level N (assuming you wish to have another
1600fallback option), just specify the value t like this:
1601
1602 (setq modus-themes-headings
1603 '((1 . t)
1604 (2 . line)
1605 (t . rainbow-line-no-bold)))
1606
1607A description of all possible values:
1608
1609+ `no-bold' retains the default text color while removing the
1610 typographic weight.
1611
1612+ `line' is the same as the default plus an overline over the
1613 heading.
1614
1615+ `line-no-bold' is the same as `line' without bold weight.
1616
1617+ `rainbow' uses a more colorful foreground in combination with
1618 bold weight.
1619
1620+ `rainbow-line' is the same as `rainbow' plus an overline.
1621
1622+ `rainbow-line-no-bold' is the same as `rainbow-line' without
1623 the bold weight.
1624
1625+ `highlight' retains the default style of a fairly desaturated
1626 foreground combined with a bold weight and add to it a subtle
1627 accented background.
1628
1629+ `highlight-no-bold' is the same as `highlight' without a bold
1630 weight.
1631
1632+ `rainbow-highlight' is the same as `highlight' but with a more
1633 colorful foreground.
1634
1635+ `rainbow-highlight-no-bold' is the same as `rainbow-highlight'
1636 without a bold weight.
1637
1638+ `section' retains the default looks and adds to them both an
1639 overline and a slightly accented background. It is, in effect,
1640 a combination of the `line' and `highlight' values.
1641
1642+ `section-no-bold' is the same as `section' without a bold
1643 weight.
1644
1645+ `rainbow-section' is the same as `section' but with a more
1646 colorful foreground.
1647
1648+ `rainbow-section-no-bold' is the same as `rainbow-section'
1649 without a bold weight.
1650
1651+ `no-color' does not apply any color to the heading, meaning
1652 that it uses the foreground of the `default' face. It still
1653 renders the text with a bold typographic weight.
1654
1655+ `no-color-no-bold' is like `no-color' but without the bold
1656 weight."
1657 :group 'modus-themes
1658 :package-version '(modus-themes . "1.2.0")
1659 :version "28.1"
1660 :type
1661 '(alist
1662 :key-type symbol
1663 :value-type
1664 (choice (const :tag "Fairly desaturated foreground with bold weight (default)" t)
1665 (const :tag "Like the default without bold weight" no-bold)
1666 (const :tag "Like the default plus overline" line)
1667 (const :tag "Like `line' without bold weight" line-no-bold)
1668 (const :tag "Like the default but with more colorful foreground" rainbow)
1669 (const :tag "Like `rainbow' plus overline" rainbow-line)
1670 (const :tag "Like `rainbow' without bold weight" rainbow-no-bold)
1671 (const :tag "Like `rainbow-line' without bold weight" rainbow-line-no-bold)
1672 (const :tag "Like the default plus subtle background" highlight)
1673 (const :tag "Like `highlight' without bold weight" highlight-no-bold)
1674 (const :tag "Like `highlight' with more colorful foreground" rainbow-highlight)
1675 (const :tag "Like `rainbow-highlight' without bold weight" rainbow-highlight-no-bold)
1676 (const :tag "Like `highlight' plus overline" section)
1677 (const :tag "Like `section' without bold weight" section-no-bold)
1678 (const :tag "Like `section' with more colorful foreground" rainbow-section)
1679 (const :tag "Like `rainbow-section' without bold weight" rainbow-section-no-bold)
1680 (const :tag "Do not use any distinct foreground color; just bold weight" no-color)
1681 (const :tag "Like `no-bold' but without the distinct foreground color" no-color-no-bold)))
1682 :link '(info-link "(modus-themes) Heading styles"))
1683
1684(defcustom modus-themes-scale-headings nil
1685 "Use font scaling for headings.
1686
1687For regular headings the scale is controlled by the variables
1688`modus-themes-scale-1' (smallest) and its variants all the way up
1689to `modus-themes-scale-4' (larger). While `modus-themes-scale-5'
1690is reserved for special headings that must be the largest on the
1691scale.
1692
1693A special heading is, in this context, one that does not fit into
1694the syntax for heading levels that apply to the given mode. For
1695example, Org's #+title keyword lies outside the normal eight
1696levels of headings. Whereas, say, Markdown does not have such a
1697special heading."
1698 :group 'modus-themes
1699 :package-version '(modus-themes . "1.2.0")
1700 :version "28.1"
1701 :type 'boolean
1702 :link '(info-link "(modus-themes) Scaled headings"))
1703
1704(defcustom modus-themes-scale-1 1.05
1705 "Font size that is slightly larger than the base value.
1706
1707This size is used for level 4 headings, such as in Org and
1708Markdown files.
1709
1710The default value is a floating point that is interpreted as a
1711multiple of the base font size. It is recommended to use such a
1712value.
1713
1714However, the variable also accepts an integer, understood as an
1715absolute height that is 1/10 of the typeface's point size (e.g. a
1716value of 140 is the same as setting the font at 14 point size).
1717This will ignore the base font size and, thus, will not scale in
1718accordance with it in cases where it changes, such as while using
1719`text-scale-adjust'."
1720 :group 'modus-themes
1721 :package-version '(modus-themes . "1.2.0")
1722 :version "28.1"
1723 :type 'number
1724 :link '(info-link "(modus-themes) Scaled heading sizes"))
1725
1726(defcustom modus-themes-scale-2 1.1
1727 "Font size slightly larger than `modus-themes-scale-1'.
1728
1729This size is used for level 3 headings, such as in Org and
1730Markdown files.
1731
1732The default value is a floating point that is interpreted as a
1733multiple of the base font size. It is recommended to use such a
1734value.
1735
1736However, the variable also accepts an integer, understood as an
1737absolute height that is 1/10 of the typeface's point size (e.g. a
1738value of 140 is the same as setting the font at 14 point size).
1739This will ignore the base font size and, thus, will not scale in
1740accordance with it in cases where it changes, such as while using
1741`text-scale-adjust'."
1742 :group 'modus-themes
1743 :package-version '(modus-themes . "1.2.0")
1744 :version "28.1"
1745 :type 'number
1746 :link '(info-link "(modus-themes) Scaled heading sizes"))
1747
1748(defcustom modus-themes-scale-3 1.15
1749 "Font size slightly larger than `modus-themes-scale-2'.
1750
1751This size is used for level 2 headings, such as in Org and
1752Markdown files.
1753
1754The default value is a floating point that is interpreted as a
1755multiple of the base font size. It is recommended to use such a
1756value.
1757
1758However, the variable also accepts an integer, understood as an
1759absolute height that is 1/10 of the typeface's point size (e.g. a
1760value of 140 is the same as setting the font at 14 point size).
1761This will ignore the base font size and, thus, will not scale in
1762accordance with it in cases where it changes, such as while using
1763`text-scale-adjust'."
1764 :group 'modus-themes
1765 :package-version '(modus-themes . "1.2.0")
1766 :version "28.1"
1767 :type 'number
1768 :link '(info-link "(modus-themes) Scaled heading sizes"))
1769
1770(defcustom modus-themes-scale-4 1.2
1771 "Font size slightly larger than `modus-themes-scale-3'.
1772
1773This size is used for level 1 headings, such as in Org and
1774Markdown files.
1775
1776The default value is a floating point that is interpreted as a
1777multiple of the base font size. It is recommended to use such a
1778value.
1779
1780However, the variable also accepts an integer, understood as an
1781absolute height that is 1/10 of the typeface's point size (e.g. a
1782value of 140 is the same as setting the font at 14 point size).
1783This will ignore the base font size and, thus, will not scale in
1784accordance with it in cases where it changes, such as while using
1785`text-scale-adjust'."
1786 :group 'modus-themes
1787 :package-version '(modus-themes . "1.2.0")
1788 :version "28.1"
1789 :type 'number
1790 :link '(info-link "(modus-themes) Scaled heading sizes"))
1791
1792(defcustom modus-themes-scale-5 1.3
1793 "Font size slightly larger than `modus-themes-scale-4'.
1794
1795This size is only used for 'special' top level headings, such as
1796Org's file title heading, denoted by the #+title key word, and
1797the Org agenda structure headers.
1798
1799The default value is a floating point that is interpreted as a
1800multiple of the base font size. It is recommended to use such a
1801value.
1802
1803However, the variable also accepts an integer, understood as an
1804absolute height that is 1/10 of the typeface's point size (e.g. a
1805value of 140 is the same as setting the font at 14 point size).
1806This will ignore the base font size and, thus, will not scale in
1807accordance with it in cases where it changes, such as while using
1808`text-scale-adjust'."
1809 :group 'modus-themes
1810 :package-version '(modus-themes . "1.2.0")
1811 :version "28.1"
1812 :type 'number
1813 :link '(info-link "(modus-themes) Scaled heading sizes"))
1814
1815(defcustom modus-themes-fringes nil
1816 "Define the visibility of fringes.
1817
1818Nil means the fringes have no background color. Option `subtle'
1819will apply a greyscale value that is visible yet close to the
1820main buffer background color. Option `intense' will use a more
1821pronounced greyscale value."
1822 :group 'modus-themes
1823 :package-version '(modus-themes . "1.0.0")
1824 :version "28.1"
1825 :type '(choice
1826 (const :tag "No visible fringes (default)" nil)
1827 (const :tag "Subtle greyscale background" subtle)
1828 (const :tag "Intense greyscale background" intense))
1829 :link '(info-link "(modus-themes) Fringes"))
1830
1831(defcustom modus-themes-lang-checkers nil
1832 "Control the style of spelling and code checkers/linters.
1833
1834Nil (the default) applies a color-coded underline to the affected
1835text, while it leaves the original foreground in tact. If the
1836display spec of Emacs has support for it, the underline's style
1837is that of a wave, otherwise it is a straight line.
1838
1839Options `subtle-foreground' and `intense-foreground' add a
1840color-coded underline while also changing the text's foreground
1841accordingly. The style of the underline is the same as with the
1842default option.
1843
1844Option `straight-underline' is like the default but always
1845applies a straight line under the affected text. Same principle
1846for `subtle-foreground-straight-underline' and its counterpart
1847`intense-foreground-straight-underline'.
1848
1849Option `colored-background' uses a straight underline, a
1850background, and a foreground. All are color-coded. This is the
1851most intense combination of face properties."
1852 :group 'modus-themes
1853 :package-version '(modus-themes . "1.1.0")
1854 :version "28.1"
1855 :type '(choice
1856 (const :tag "Only color-coded wavy underline (default)" nil)
1857 (const :tag "Like the default, but with a straight underline" straight-underline)
1858 (const :tag "Color-coded wavy underline; subtle foreground" subtle-foreground)
1859 (const :tag "Combines `straight-underline' and `subtle-foreground'" subtle-foreground-straight-underline)
1860 (const :tag "Color-coded wavy underline; intense foreground" intense-foreground)
1861 (const :tag "Combines `straight-underline' and `intense-foreground'" intense-foreground-straight-underline)
1862 (const :tag "Color-coded background, foreground, straight underline" colored-background))
1863 :link '(info-link "(modus-themes) Language checkers"))
1864
1865(defcustom modus-themes-org-blocks nil
1866 "Use a subtle gray or color-coded background for Org blocks.
1867
1868Nil means that the block will have no background of its own and
1869will use the default that applies to the rest of the buffer.
1870
1871Option `grayscale' (or `greyscale') will apply a subtle neutral
1872gray background to the block's contents. It also affects the
1873begin and end lines of the block: their background will be
1874extended to the edge of the window for Emacs version >= 27 where
1875the ':extend' keyword is recognized by `set-face-attribute'.
1876
1877Option `rainbow' will use an accented background for the contents
1878of the block. The exact color will depend on the programming
1879language and is controlled by the `org-src-block-faces'
1880variable (refer to the theme's source code for the current
1881association list)."
1882 :group 'modus-themes
1883 :package-version '(modus-themes . "1.0.0")
1884 :version "28.1"
1885 :type '(choice
1886 (const :tag "No Org block background (default)" nil)
1887 (const :tag "Subtle gray block background" grayscale)
1888 (const :tag "Subtle gray block background (alt spelling)" greyscale)
1889 (const :tag "Color-coded background per programming language" rainbow))
1890 :link '(info-link "(modus-themes) Org mode blocks"))
1891
1892(defcustom modus-themes-org-habit nil
1893 "Control the presentation of the `org-habit' graph.
1894
1895The default is meant to conform with the original aesthetic of
1896`org-habit'. It employs all four color codes that correspond to
1897the org-habit states---clear, ready, alert, and overdue---while
1898distinguishing between their present and future variants. This
1899results in a total of eight colors in use: red, yellow, green,
1900blue, in tinted and shaded versions. They cover the full set of
1901information provided by the `org-habit' consistency graph.
1902
1903Option `simplified' is like the default except that it removes
1904the dichotomy between current and future variants by applying
1905uniform color-coded values. It applies a total of four colors:
1906red, yellow, green, blue. They produce a simplified consistency
1907graph that is more legible (or less \"busy\") than the default.
1908The intent is to shift focus towards the distinction between the
1909four states of a habit task, rather than each state's
1910present/future outlook.
1911
1912Option `traffic-light' further reduces the available colors to
1913red, yellow, and green. As in `simplified', present and future
1914variants appear uniformly, but differently from it, the 'clear'
1915state is rendered in a green hue, instead of the original blue.
1916This is meant to capture the use-case where a habit task being
1917\"too early\" is less important than it being \"too late\". The
1918difference between ready and clear states is attenuated by
1919painting both of them using shades of green. This option thus
1920highlights the alert and overdue states."
1921 :group 'modus-themes
1922 :package-version '(modus-themes . "1.1.0")
1923 :version "28.1"
1924 :type '(choice
1925 (const :tag "Respect the original design of org-habit (default)" nil)
1926 (const :tag "Like the default, but do not distinguish between present and future variants" simplified)
1927 (const :tag "Like `simplified', but only use red, yellow, green" traffic-light))
1928 :link '(info-link "(modus-themes) Org agenda habits"))
1929
1930(defcustom modus-themes-mode-line nil
1931 "Adjust the overall style of the mode line.
1932
1933Nil is a two-dimensional rectangle with a border around it. The
1934active and the inactive modelines use different shades of
1935greyscale values for the background and foreground.
1936
1937A `3d' value will apply a three-dimensional effect to the active
1938modeline. The inactive modelines remain two-dimensional and are
1939toned down a bit, relative to the nil value.
1940
1941The `moody' option is meant to optimize the modeline for use with
1942the library of the same name. This practically means to remove
1943the box effect and rely on underline and overline properties
1944instead. It also tones down the inactive modelines. Despite its
1945intended purpose, this option can also be used without the
1946`moody' library.
1947
1948The `borderless' option uses the same colors as the default (nil
1949value), but removes the border effect. This is done by making
1950the box property use the same color as the background,
1951effectively blending the two and creating some padding.
1952
1953The `borderless-3d' and `borderless-moody' approximate the `3d'
1954and `moody' options respectively, while removing the borders.
1955However, to ensure that the inactive modelines remain visible,
1956they apply a slightly more prominent background to them than what
1957their counterparts do (same inactive background as with the
1958default)."
1959 :group 'modus-themes
1960 :package-version '(modus-themes . "1.0.0")
1961 :version "28.1"
1962 :type '(choice
1963 (const :tag "Two-dimensional box (default)" nil)
1964 (const :tag "Three-dimensional style for the active mode line" 3d)
1965 (const :tag "No box effects, which are optimal for use with the `moody' library" moody)
1966 (const :tag "Like the default, but without border effects" borderless)
1967 (const :tag "Like `3d', but without noticeable border" borderless-3d)
1968 (const :tag "Like `moody', but without noticeable border" borderless-moody))
1969 :link '(info-link "(modus-themes) Mode line"))
1970
1971(defcustom modus-themes-diffs nil
1972 "Adjust the overall styles of diffs.
1973
1974Nil means to use fairly intense color combinations for diffs.
1975For example, you get a rich green background with a green
1976foreground for added lines. Word-wise or 'refined' diffs follow
1977the same pattern but use different shades of those colors to
1978remain distinct.
1979
1980A `desaturated' value follows the same principles as with the nil
1981option, while it tones down all relevant colors.
1982
1983Option `fg-only' will remove all accented backgrounds, except
1984from word-wise changes. It instead uses color-coded foreground
1985values to differentiate between added/removed/changed lines. If
1986a background is necessary, such as with `ediff', then a subtle
1987greyscale value is used.
1988
1989Option `bg-only' applies a background but does not override the
1990text's foreground. This makes it suitable for a non-nil value
1991passed to `diff-font-lock-syntax' (note: Magit does not support
1992syntax highlighting in diffs as of 2020-11-25, version
199320201116.1057).
1994
1995Option `deuteranopia' accounts for red-green color defficiency by
1996replacing all instances of green with colors on the blue side of
1997the spectrum. Other stylistic changes are made in the interest
1998of optimizing for such a use-case."
1999 :group 'modus-themes
2000 :package-version '(modus-themes . "1.2.0")
2001 :version "28.1"
2002 :type '(choice
2003 (const :tag "Intensely colored backgrounds (default)" nil)
2004 (const :tag "Slightly accented backgrounds with tinted text" desaturated)
2005 (const :tag "No backgrounds, except for refined diffs" fg-only)
2006 (const :tag "Apply color-coded backgrounds; keep syntax colors in tact" bg-only)
2007 (const :tag "Optimized for red-green color defficiency" deuteranopia))
2008 :link '(info-link "(modus-themes) Diffs"))
2009
2010(defcustom modus-themes-completions nil
2011 "Apply special styles to the UI of completion frameworks.
2012
2013This concerns Icomplete, Ivy, Helm, Selectrum, Ido, as well as
2014any other tool meant to enhance their experience. The effect
2015will vary depending on the completion framework.
2016
2017Nil means to remain faithful to the metaphors that each UI
2018establishes. For example, Icomplete and Ido only use foreground
2019colors to style their matches, whereas Ivy or Helm rely on an
2020aesthetic that combines colored backgrounds with appropriate text
2021color.
2022
2023Option `moderate' will apply a combination of background and
2024foreground that is fairly subtle. For Icomplete and the like,
2025this constitutes a departure from their standard style. While
2026Ivy, Helm, and the others, will use less pronounced colors for
2027applicable contexts.
2028
2029Option `opinionated' will apply color combinations that refashion
2030the completion UI. So Icomplete et al will now use styles that
2031resemble the defaults of Ivy and co., while the latter group will
2032revert to an even more nuanced aesthetic."
2033 :group 'modus-themes
2034 :package-version '(modus-themes . "1.0.0")
2035 :version "28.1"
2036 :type '(choice
2037 (const :tag "Respect the framework's established aesthetic (default)" nil)
2038 (const :tag "Subtle backgrounds for various elements" moderate)
2039 (const :tag "Radical alternative to the framework's looks" opinionated))
2040 :link '(info-link "(modus-themes) Completion UIs"))
2041
2042(defcustom modus-themes-prompts nil
2043 "Use subtle or intense styles for minibuffer and REPL prompts.
2044
2045Nil means to only use an accented foreground color.
2046
2047Options `subtle-accented' and `intense-accented' will change both
2048the background and the foreground values to use accented color
2049combinations that follow the hue of the default styles'
2050foreground (e.g. the default minibuffer prompt is cyan text, so
2051these combinations will involved a cyan background and an
2052appropriate cyan foreground).
2053
2054Options `subtle-gray' and `intense-gray' are like their
2055`subtle-accented' and `intense-accented' counterparts, except
2056they use grayscale values instead of accented ones."
2057 :group 'modus-themes
2058 :package-version '(modus-themes . "1.0.0")
2059 :version "28.1"
2060 :type '(choice
2061 ;; `subtle' is the same as `subtle-accented', while `intense' is
2062 ;; equal to `intense-accented' for backward compatibility
2063 (const :tag "No prompt background (default)" nil)
2064 (const :tag "Subtle accented background for the prompt" subtle-accented)
2065 (const :tag "Same as `subtle-accented' for compatibility with older versions" subtle)
2066 (const :tag "Intense accented background and foreground for the prompt" intense-accented)
2067 (const :tag "Same as `intense-accented' for compatibility with older versions" intense)
2068 (const :tag "Like `subtle-accented' but grayscale" subtle-gray)
2069 (const :tag "Like `intense-accented' but grayscale" intense-gray))
2070 :link '(info-link "(modus-themes) Command prompts"))
2071
2072(defcustom modus-themes-intense-hl-line nil
2073 "Use a more prominent background for command `hl-line-mode'."
2074 :group 'modus-themes
2075 :package-version '(modus-themes . "1.0.0")
2076 :version "28.1"
2077 :type 'boolean
2078 :link '(info-link "(modus-themes) Line highlighting"))
2079
2080(defcustom modus-themes-subtle-line-numbers nil
2081 "Use more subtle style for command `display-line-numbers-mode'."
2082 :group 'modus-themes
2083 :package-version '(modus-themes . "1.2.0")
2084 :version "28.1"
2085 :type 'boolean
2086 :link '(info-link "(modus-themes) Line numbers"))
2087
2088(defcustom modus-themes-paren-match nil
2089 "Choose the style of matching parentheses or delimiters.
2090
2091Nil means to use a subtle tinted background color (the default).
2092
2093Option `intense' applies a saturated background color.
2094
2095Option `subtle-bold' is the same as the default, but also makes
2096use of bold typographic weight (inherits the `bold' face).
2097
2098Option `intense-bold' is the same as `intense', while it also
2099uses a bold weight."
2100 :group 'modus-themes
2101 :package-version '(modus-themes . "1.0.0")
2102 :version "28.1"
2103 :type '(choice
2104 (const :tag "Sublte tinted background (default)" nil)
2105 (const :tag "Like the default, but also use bold typographic weight" subtle-bold)
2106 (const :tag "Intense saturated background" intense)
2107 (const :tag "Like `intense' but with bold weight" intense-bold))
2108 :link '(info-link "(modus-themes) Matching parentheses"))
2109
2110(defcustom modus-themes-syntax nil
2111 "Control the overall style of code syntax highlighting.
2112
2113Nil (the default) means to use colors on the cyan-blue-magenta
2114side of the spectrum. There is little to no use of greens,
2115yellows, and reds.
2116
2117Option `faint' is like the default in terms of the choice of
2118palette but applies desaturated color values.
2119
2120Option `yellow-comments' applies a yellow tint to comments. The
2121rest of the syntax is the same as the default.
2122
2123Option `green-strings' replaces the blue/cyan/cold color variants
2124in strings with greener alternatives. The rest of the syntax
2125remains the same.
2126
2127Option `yellow-comments-green-strings' combines yellow comments
2128with green strings and the rest of the default syntax
2129highlighting style.
2130
2131Option `alt-syntax' expands the color palette and applies new
2132color combinations. Strings are green. Doc strings are magenta
2133tinted. Comments are gray.
2134
2135Option `alt-syntax-yellow-comments' combines `alt-syntax' with
2136`yellow-comments'.
2137
2138Option `faint-yellow-comments' combines the `faint' style with
2139`yellow-comments'."
2140 :group 'modus-themes
2141 :package-version '(modus-themes . "1.2.0")
2142 :version "28.1"
2143 :type '(choice
2144 (const :tag "Balanced use of blue, cyan, magenta, purple variants (default)" nil)
2145 (const :tag "Like the default, but with desaturated color values" faint)
2146 (const :tag "Apply yellow tint to comments, keep the default style for the rest" yellow-comments)
2147 (const :tag "Use green for strings, keep the default style for the rest" green-strings)
2148 (const :tag "Use green for strings, yellow for comments, keep the default style for the rest" yellow-comments-green-strings)
2149 (const :tag "Refashion syntax highlighting with more colors, gray comments" alt-syntax)
2150 (const :tag "Like `alt-syntax' but with yellow comments" alt-syntax-yellow-comments)
2151 (const :tag "Like `faint' but with yellow comments" faint-yellow-comments))
2152 :link '(info-link "(modus-themes) Syntax styles"))
2153
2154(defcustom modus-themes-links nil
2155 "Set the style of links.
2156
2157Nil means to use an underline that is the same color as the
2158foreground.
2159
2160Option `faint' applies desaturated colors to the link's text and
2161underline.
2162
2163Option `neutral-underline' applies a subtle grey underline, while
2164retaining the link's foreground.
2165
2166Option `faint-neutral-underline' combines a desaturated text
2167color with a subtle grey underline.
2168
2169Option `no-underline' removes link underlines altogether, while
2170retaining their original fairly vivid color.
2171
2172Option `underline-only' applies an underline while making the
2173affected text colorless (it uses the same foreground as the
2174theme's default).
2175
2176Option `neutral-underline-only' makes the text colorless while
2177using a subtle underline below it."
2178 :group 'modus-themes
2179 :package-version '(modus-themes . "1.2.0")
2180 :version "28.1"
2181 :type '(choice
2182 (const :tag "Undeline link using the same color as the text (default)" nil)
2183 (const :tag "Like the default, but apply less intense colors to links" faint)
2184 (const :tag "Change the color of link underlines to a neutral grey" neutral-underline)
2185 (const :tag "Desaturated foreground with neutral grey underline" faint-neutral-underline)
2186 (const :tag "Remove underline property from links, keeping their foreground as-is" no-underline)
2187 (const :tag "Apply underline only; use default foreground" underline-only)
2188 (const :tag "Like `underline-only' but with a subtle underline" neutral-underline-only))
2189 :link '(info-link "(modus-themes) Link styles"))
2190
2191(defcustom modus-themes-region nil
2192 "Change the overall appearance of the active region.
2193
2194Nil (the default) means to only use a prominent gray background
2195with a neutral foreground. The foreground overrides all syntax
2196highlighting. The region extends to the edge of the window.
2197
2198Option `no-extend' preserves the default aesthetic but prevents
2199the region from extending to the edge of the window.
2200
2201Option `bg-only' applies a faint tinted background that is
2202distinct from all others used in the theme, while it does not
2203override any existing colors. It extends to the edge of the
2204window.
2205
2206Option `bg-only-no-extend' is a combination of the `bg-only' and
2207`no-extend' options."
2208 :group 'modus-themes
2209 :package-version '(modus-themes . "1.0.0")
2210 :version "28.1"
2211 :type '(choice
2212 (const :tag "Intense background; overrides colors; extends to edge of window (default)" nil)
2213 (const :tag "As with the default, but does not extend" no-extend)
2214 (const :tag "Subtle background; preserves colors; extends to edge of window" bg-only)
2215 (const :tag "As with the `subtle' option, but does not extend" bg-only-no-extend))
2216 :link '(info-link "(modus-themes) Active region"))
2217
2218
2219
2220;;;; Deprecated customization options (prior to 1.0.0)
2221
2222;;;;; Modus Operandi obsolete options
2223
2224(make-obsolete 'modus-operandi-theme-override-colors-alist nil "1.0.0")
2225(make-obsolete 'modus-operandi-theme-slanted-constructs 'modus-themes-slanted-constructs "1.0.0")
2226(make-obsolete 'modus-operandi-theme-bold-constructs 'modus-themes-bold-constructs "1.0.0")
2227(make-obsolete 'modus-operandi-theme-proportional-fonts 'modus-themes-variable-pitch-headings "1.0.0")
2228(make-obsolete 'modus-operandi-theme-variable-pitch-headings 'modus-themes-variable-pitch-headings "1.0.0")
2229(make-obsolete 'modus-operandi-theme-no-mixed-fonts 'modus-themes-no-mixed-fonts "1.0.0")
2230(make-obsolete 'modus-operandi-theme-rainbow-headings 'modus-themes-headings "1.0.0")
2231(make-obsolete 'modus-operandi-theme-section-headings 'modus-themes-headings "1.0.0")
2232(make-obsolete 'modus-operandi-theme-headings 'modus-themes-headings "1.0.0")
2233(make-obsolete 'modus-operandi-theme-scale-headings 'modus-themes-scale-headings "1.0.0")
2234(make-obsolete 'modus-operandi-theme-scale-1 'modus-themes-scale-1 "1.0.0")
2235(make-obsolete 'modus-operandi-theme-scale-2 'modus-themes-scale-2 "1.0.0")
2236(make-obsolete 'modus-operandi-theme-scale-3 'modus-themes-scale-3 "1.0.0")
2237(make-obsolete 'modus-operandi-theme-scale-4 'modus-themes-scale-4 "1.0.0")
2238(make-obsolete 'modus-operandi-theme-scale-5 'modus-themes-scale-5 "1.0.0")
2239(make-obsolete 'modus-operandi-theme-visible-fringes 'modus-themes-fringes "1.0.0")
2240(make-obsolete 'modus-operandi-theme-fringes 'modus-themes-fringes "1.0.0")
2241(make-obsolete 'modus-operandi-theme-distinct-org-blocks 'modus-themes-org-blocks "1.0.0")
2242(make-obsolete 'modus-operandi-theme-rainbow-org-src-blocks 'modus-themes-org-blocks "1.0.0")
2243(make-obsolete 'modus-operandi-theme-org-blocks 'modus-themes-org-blocks "1.0.0")
2244(make-obsolete 'modus-operandi-theme-3d-modeline 'modus-themes-mode-line "1.0.0")
2245(make-obsolete 'modus-operandi-theme-mode-line 'modus-themes-mode-line "1.0.0")
2246(make-obsolete 'modus-operandi-theme-subtle-diffs 'modus-themes-diffs "1.0.0")
2247(make-obsolete 'modus-operandi-theme-diffs 'modus-themes-diffs "1.0.0")
2248(make-obsolete 'modus-operandi-theme-intense-standard-completions 'modus-themes-completions "1.0.0")
2249(make-obsolete 'modus-operandi-theme-completions 'modus-themes-completions "1.0.0")
2250(make-obsolete 'modus-operandi-theme-prompts 'modus-themes-prompts "1.0.0")
2251(make-obsolete 'modus-operandi-theme-intense-hl-line 'modus-themes-intense-hl-line "1.0.0")
2252(make-obsolete 'modus-operandi-theme-intense-paren-match 'modus-themes-paren-match "1.0.0")
2253(make-obsolete 'modus-operandi-theme-faint-syntax 'modus-themes-syntax "1.0.0")
2254(make-obsolete 'modus-operandi-theme-comments 'modus-themes-syntax "1.0.0")
2255(make-obsolete 'modus-operandi-theme-syntax 'modus-themes-syntax "1.0.0")
2256(make-obsolete 'modus-operandi-theme-no-link-underline 'modus-themes-links "1.0.0")
2257(make-obsolete 'modus-operandi-theme-links 'modus-themes-links "1.0.0")
2258
2259;;;;; Modus Vivendi obsolete options
2260
2261(make-obsolete 'modus-vivendi-theme-override-colors-alist nil "1.0.0")
2262(make-obsolete 'modus-vivendi-theme-slanted-constructs 'modus-themes-slanted-constructs "1.0.0")
2263(make-obsolete 'modus-vivendi-theme-bold-constructs 'modus-themes-bold-constructs "1.0.0")
2264(make-obsolete 'modus-vivendi-theme-proportional-fonts 'modus-themes-variable-pitch-headings "1.0.0")
2265(make-obsolete 'modus-vivendi-theme-variable-pitch-headings 'modus-themes-variable-pitch-headings "1.0.0")
2266(make-obsolete 'modus-vivendi-theme-no-mixed-fonts 'modus-themes-no-mixed-fonts "1.0.0")
2267(make-obsolete 'modus-vivendi-theme-rainbow-headings 'modus-themes-headings "1.0.0")
2268(make-obsolete 'modus-vivendi-theme-section-headings 'modus-themes-headings "1.0.0")
2269(make-obsolete 'modus-vivendi-theme-headings 'modus-themes-headings "1.0.0")
2270(make-obsolete 'modus-vivendi-theme-scale-headings 'modus-themes-scale-headings "1.0.0")
2271(make-obsolete 'modus-vivendi-theme-scale-1 'modus-themes-scale-1 "1.0.0")
2272(make-obsolete 'modus-vivendi-theme-scale-2 'modus-themes-scale-2 "1.0.0")
2273(make-obsolete 'modus-vivendi-theme-scale-3 'modus-themes-scale-3 "1.0.0")
2274(make-obsolete 'modus-vivendi-theme-scale-4 'modus-themes-scale-4 "1.0.0")
2275(make-obsolete 'modus-vivendi-theme-scale-5 'modus-themes-scale-5 "1.0.0")
2276(make-obsolete 'modus-vivendi-theme-visible-fringes 'modus-themes-fringes "1.0.0")
2277(make-obsolete 'modus-vivendi-theme-fringes 'modus-themes-fringes "1.0.0")
2278(make-obsolete 'modus-vivendi-theme-distinct-org-blocks 'modus-themes-org-blocks "1.0.0")
2279(make-obsolete 'modus-vivendi-theme-rainbow-org-src-blocks 'modus-themes-org-blocks "1.0.0")
2280(make-obsolete 'modus-vivendi-theme-org-blocks 'modus-themes-org-blocks "1.0.0")
2281(make-obsolete 'modus-vivendi-theme-3d-modeline 'modus-themes-mode-line "1.0.0")
2282(make-obsolete 'modus-vivendi-theme-mode-line 'modus-themes-mode-line "1.0.0")
2283(make-obsolete 'modus-vivendi-theme-subtle-diffs 'modus-themes-diffs "1.0.0")
2284(make-obsolete 'modus-vivendi-theme-diffs 'modus-themes-diffs "1.0.0")
2285(make-obsolete 'modus-vivendi-theme-intense-standard-completions 'modus-themes-completions "1.0.0")
2286(make-obsolete 'modus-vivendi-theme-completions 'modus-themes-completions "1.0.0")
2287(make-obsolete 'modus-vivendi-theme-prompts 'modus-themes-prompts "1.0.0")
2288(make-obsolete 'modus-vivendi-theme-intense-hl-line 'modus-themes-intense-hl-line "1.0.0")
2289(make-obsolete 'modus-vivendi-theme-intense-paren-match 'modus-themes-paren-match "1.0.0")
2290(make-obsolete 'modus-vivendi-theme-faint-syntax 'modus-themes-syntax "1.0.0")
2291(make-obsolete 'modus-vivendi-theme-comments 'modus-themes-syntax "1.0.0")
2292(make-obsolete 'modus-vivendi-theme-syntax 'modus-themes-syntax "1.0.0")
2293(make-obsolete 'modus-vivendi-theme-no-link-underline 'modus-themes-links "1.0.0")
2294(make-obsolete 'modus-vivendi-theme-links 'modus-themes-links "1.0.0")
2295
2296
2297
2298;;; Internal functions
2299
2300(defun modus-themes--palette (theme)
2301 "Return color palette for Modus theme THEME.
2302THEME is a symbol, either `modus-operandi' or `modus-vivendi'."
2303 (pcase theme
2304 ('modus-operandi
2305 (append modus-themes-operandi-color-overrides
2306 modus-themes-operandi-colors))
2307 ('modus-vivendi
2308 (append modus-themes-vivendi-color-overrides
2309 modus-themes-vivendi-colors))
2310 (_theme
2311 (error "'%s' is not a Modus theme" theme))))
2312
2313(defvar modus-themes-faces)
2314(defvar modus-themes-custom-variables)
2315
2316(defmacro modus-themes-theme (name)
2317 "Bind NAME's color palette around face specs and variables.
2318
2319NAME should be the proper name of a Modus theme, either
2320`modus-operandi' or `modus-vivendi'.
2321
2322Face specifications are passed to `custom-theme-set-faces'.
2323While variables are handled by `custom-theme-set-variables'.
2324Those are stored in `modus-themes-faces' and
2325`modus-themes-custom-variables' respectively."
2326 (declare (indent 0))
2327 (let ((palette-sym (gensym))
2328 (colors (mapcar #'car modus-themes-operandi-colors)))
2329 `(let* ((class '((class color) (min-colors 89)))
2330 (,palette-sym (modus-themes--palette ',name))
2331 ,@(mapcar (lambda (color)
2332 (list color `(alist-get ',color ,palette-sym)))
2333 colors))
2334 (custom-theme-set-faces ',name ,@modus-themes-faces)
2335 (custom-theme-set-variables ',name ,@modus-themes-custom-variables))))
2336
2337(defun modus-themes--current-theme ()
2338 "Return current theme."
2339 (car custom-enabled-themes))
2340
2341;; Helper functions that are meant to ease the implementation of the
2342;; above customization options.
2343(defun modus-themes--bold-weight ()
2344 "Conditional use of a heavier text weight."
2345 (when modus-themes-bold-constructs
2346 (list :inherit 'bold)))
2347
2348(defun modus-themes--mixed-fonts ()
2349 "Conditional application of `fixed-pitch' inheritance."
2350 (unless modus-themes-no-mixed-fonts
2351 (list :inherit 'fixed-pitch)))
2352
2353(defun modus-themes--slant ()
2354 "Conditional use of italics for slant attribute."
2355 (if modus-themes-slanted-constructs
2356 (list 'italic)
2357 (list 'normal)))
2358
2359(defun modus-themes--variable-pitch ()
2360 "Conditional use of `variable-pitch' in headings."
2361 (when modus-themes-variable-pitch-headings
2362 (list :inherit 'variable-pitch)))
2363
2364(defun modus-themes--variable-pitch-ui ()
2365 "Conditional use of `variable-pitch' in UI elements."
2366 (when modus-themes-variable-pitch-ui
2367 (list :inherit 'variable-pitch)))
2368
2369(defun modus-themes--fringe (mainbg subtlebg intensebg)
2370 "Conditional use of background colors for fringes.
2371MAINBG is the default. SUBTLEBG should be a subtle greyscale
2372value. INTENSEBG must be a more pronounced greyscale color."
2373 (pcase modus-themes-fringes
2374 ('intense (list :background intensebg))
2375 ('subtle (list :background subtlebg))
2376 (_ (list :background mainbg))))
2377
2378(defun modus-themes--line-numbers (mainfg mainbg altfg &optional altbg)
2379 "Conditional use of colors for line numbers.
2380MAINBG and MAINFG are the default colors. ALTFG is a color that
2381combines with the theme's primary background (white/black)."
2382 (if modus-themes-subtle-line-numbers
2383 (list :background (or altbg 'unspecified) :foreground altfg)
2384 (list :background mainbg :foreground mainfg)))
2385
2386(defun modus-themes--lang-check (underline subtlefg intensefg bg)
2387 "Conditional use of foreground colors for language checkers.
2388UNDERLINE is a color-code value for the affected text's underline
2389property. SUBTLEFG and INTENSEFG follow the same color-coding
2390pattern and represent a value that is faint or vibrant
2391respectively. BG is a color-coded background."
2392 (pcase modus-themes-lang-checkers
2393 ('colored-background
2394 (list :underline underline :background bg :foreground intensefg))
2395 ('intense-foreground
2396 (list :underline (list :color underline :style 'wave) :foreground intensefg))
2397 ('intense-foreground-straight-underline
2398 (list :underline underline :foreground intensefg))
2399 ('subtle-foreground
2400 (list :underline (list :color underline :style 'wave) :foreground subtlefg))
2401 ('subtle-foreground-straight-underline
2402 (list :underline underline :foreground subtlefg))
2403 ('straight-underline
2404 (list :underline underline))
2405 (_ (list :underline (list :color underline :style 'wave)))))
2406
2407(defun modus-themes--prompt (mainfg subtlebg subtlefg intensebg intensefg)
2408 "Conditional use of background colors for prompts.
2409MAINFG is the prompt's standard foreground. SUBTLEBG should be a
2410subtle accented background that works with SUBTLEFG. INTENSEBG
2411must be a more pronounced accented color that should be
2412combinable with INTENSEFG."
2413 (pcase modus-themes-prompts
2414 ;; `subtle' is the same as `subtle-accented', while `intense' is
2415 ;; equal to `intense-accented' for backward compatibility
2416 ('intense-accented (list :background intensebg :foreground intensefg))
2417 ('intense (list :background intensebg :foreground intensefg))
2418 ('subtle-accented (list :background subtlebg :foreground subtlefg))
2419 ('subtle (list :background subtlebg :foreground subtlefg))
2420 ('subtle-gray (list :inherit 'modus-theme-subtle-neutral))
2421 ('intense-gray (list :inherit 'modus-theme-intense-neutral))
2422 (_ (list :background nil :foreground mainfg))))
2423
2424(defun modus-themes--paren (normalbg intensebg)
2425 "Conditional use of intense colors for matching parentheses.
2426NORMALBG should be the special palette color 'bg-paren-match' or
2427something similar. INTENSEBG must be easier to discern next to
2428other backgrounds, such as the special palette color
2429'bg-paren-match-intense'."
2430 (pcase modus-themes-paren-match
2431 ('subtle-bold (list :inherit 'bold :background normalbg))
2432 ('intense-bold (list :inherit 'bold :background intensebg))
2433 ('intense (list :background intensebg))
2434 (_ (list :background normalbg))))
2435
2436(defun modus-themes--syntax-foreground (fg faint)
2437 "Apply foreground value to code syntax.
2438FG is the default. FAINT is typically the same color in its
2439desaturated version."
2440 (pcase modus-themes-syntax
2441 ('faint (list :foreground faint))
2442 ('faint-yellow-comments (list :foreground faint))
2443 (_ (list :foreground fg))))
2444
2445(defun modus-themes--syntax-extra (fg faint alt)
2446 "Apply foreground value to code syntax.
2447FG is the default. FAINT is typically the same color in its
2448desaturated version. ALT is another hue."
2449 (pcase modus-themes-syntax
2450 ('faint (list :foreground faint))
2451 ('faint-yellow-comments (list :foreground faint))
2452 ('alt-syntax (list :foreground alt))
2453 ('alt-syntax-yellow-comments (list :foreground alt))
2454 (_ (list :foreground fg))))
2455
2456(defun modus-themes--syntax-string (fg faint green alt)
2457 "Apply foreground value to strings in code syntax.
2458FG is the default. FAINT is typically the same color in its
2459desaturated version. GREEN is a color variant in that side of
2460the spectrum. ALT is another hue."
2461 (pcase modus-themes-syntax
2462 ('faint (list :foreground faint))
2463 ('faint-yellow-comments (list :foreground faint))
2464 ('green-strings (list :foreground green))
2465 ('yellow-comments-green-strings (list :foreground alt))
2466 ('alt-syntax (list :foreground alt))
2467 ('alt-syntax-yellow-comments (list :foreground alt))
2468 (_ (list :foreground fg))))
2469
2470(defun modus-themes--syntax-docstring (fg faint green alt)
2471 "Apply foreground value to strings in code syntax.
2472FG is the default. FAINT is typically the same color in its
2473desaturated version. GREEN is a color variant in that side of
2474the spectrum. ALT is another hue."
2475 (pcase modus-themes-syntax
2476 ('faint (list :foreground faint))
2477 ('faint-yellow-comments (list :foreground faint))
2478 ('green-strings (list :foreground green))
2479 ('yellow-comments-green-strings (list :foreground green))
2480 ('alt-syntax (list :foreground alt))
2481 ('alt-syntax-yellow-comments (list :foreground alt))
2482 (_ (list :foreground fg))))
2483
2484(defun modus-themes--syntax-comment (fg yellow)
2485 "Apply foreground value to strings in code syntax.
2486FG is the default. YELLOW is a color variant of that name."
2487 (pcase modus-themes-syntax
2488 ('yellow-comments (list :foreground yellow))
2489 ('yellow-comments-green-strings (list :foreground yellow))
2490 ('alt-syntax-yellow-comments (list :foreground yellow))
2491 ('faint-yellow-comments (list :foreground yellow))
2492 (_ (list :foreground fg))))
2493
2494(defun modus-themes--heading-p (key)
2495 "Query style of KEY in `modus-themes-headings'."
2496 (cdr (assoc key modus-themes-headings)))
2497
2498(defun modus-themes--heading (level fg fg-alt bg border)
2499 "Conditional styles for `modus-themes-headings'.
2500
2501LEVEL is the heading's position in their order. FG is the
2502default text color. FG-ALT is an accented, more saturated value
2503than the default. BG is a nuanced, typically accented,
2504background that can work well with either of the foreground
2505values. BORDER is a color value that combines well with the
2506background and alternative foreground."
2507 (let* ((key (modus-themes--heading-p `,level))
2508 (style (or key (modus-themes--heading-p t)))
2509 (var (when modus-themes-variable-pitch-headings
2510 'variable-pitch))
2511 (varbold (if var
2512 (append (list 'bold) (list var))
2513 'bold)))
2514 (pcase style
2515 ('no-bold
2516 (list :inherit `,var :foreground fg))
2517 ('no-color
2518 (list :inherit `,varbold))
2519 ('no-color-no-bold
2520 (list :inherit `,var))
2521 ('line
2522 (list :inherit `,varbold :foreground fg :overline border))
2523 ('line-no-bold
2524 (list :inherit `,var :foreground fg :overline border))
2525 ('rainbow
2526 (list :inherit `,varbold :foreground fg-alt))
2527 ('rainbow-no-bold
2528 (list :inherit `,var :foreground fg-alt))
2529 ('rainbow-line
2530 (list :inherit `,varbold :foreground fg-alt :overline border))
2531 ('rainbow-line-no-bold
2532 (list :inherit `,var :foreground fg-alt :overline border))
2533 ('highlight
2534 (list :inherit `,varbold :background bg :foreground fg))
2535 ('highlight-no-bold
2536 (list :inherit `,var :background bg :foreground fg))
2537 ('rainbow-highlight
2538 (list :inherit `,varbold :background bg :foreground fg-alt))
2539 ('rainbow-highlight-no-bold
2540 (list :inherit `,var :background bg :foreground fg-alt))
2541 ('section
2542 (list :inherit `,varbold :background bg :foreground fg :overline border :extend t))
2543 ('section-no-bold
2544 (list :inherit `,var :background bg :foreground fg :overline border :extend t))
2545 ('rainbow-section
2546 (list :inherit `,varbold :background bg :foreground fg-alt :overline border :extend t))
2547 ('rainbow-section-no-bold
2548 (list :inherit `,var :background bg :foreground fg-alt :overline border :extend t))
2549 (_
2550 (list :inherit `,varbold :foreground fg)))))
2551
2552(defun modus-themes--org-block (bgblk)
2553 "Conditionally set the background of Org blocks.
2554BGBLK applies to a distinct neutral background. Else blocks have
2555no background of their own (the default), so they look the same
2556as the rest of the buffer.
2557
2558`modus-themes-org-blocks' also accepts a `rainbow' option
2559which is applied conditionally to `org-src-block-faces' (see the
2560theme's source code)."
2561 (if (or (eq modus-themes-org-blocks 'grayscale)
2562 (eq modus-themes-org-blocks 'greyscale))
2563 (list :background bgblk :extend t)
2564 (list :background 'unspecified)))
2565
2566(defun modus-themes--org-block-delim (bgaccent fgaccent bg fg)
2567 "Conditionally set the styles of Org block delimiters.
2568BG, FG, BGACCENT, FGACCENT apply a background and foreground
2569color respectively.
2570
2571The former pair is a greyscale combination that should be more
2572distinct than the background of the block. It is applied to the
2573default styles or when `modus-themes-org-blocks' is set
2574to `greyscale'.
2575
2576The latter pair should be more subtle than the background of the
2577block, as it is used when `modus-themes-org-blocks' is
2578set to `rainbow'."
2579 (pcase modus-themes-org-blocks
2580 ('grayscale (list :background bg :foreground fg :extend t))
2581 ('greyscale (list :background bg :foreground fg :extend t))
2582 ('rainbow (list :background bgaccent :foreground fgaccent))
2583 (_ (list :background bg :foreground fg))))
2584
2585(defun modus-themes--org-habit (default &optional traffic simple)
2586 "Specify background values for `modus-themes-org-habit'.
2587If no optional TRAFFIC argument is supplied, the DEFAULT is used
2588instead. Same for SIMPLE."
2589 (pcase modus-themes-org-habit
2590 ('traffic-light (list :background (or traffic default)))
2591 ('simplified (list :background (or simple default)))
2592 (_ (list :background default))))
2593
2594(defun modus-themes--mode-line-attrs
2595 (fg bg fg-alt bg-alt border border-3d &optional alt-style border-width fg-distant)
2596 "Color combinations for `modus-themes-mode-line'.
2597
2598FG and BG are the default colors. FG-ALT and BG-ALT are meant to
2599accommodate the options for a 3D modeline or a `moody' compliant
2600one. BORDER applies to all permutations of the modeline, except
2601the three-dimensional effect, where BORDER-3D is used instead.
2602
2603Optional ALT-STYLE applies an appropriate style to the mode
2604line's box property.
2605
2606Optional BORDER-WIDTH specifies an integer for the width of the
2607rectangle that produces the box effect.
2608
2609Optional FG-DISTANT should be close to the main background
2610values. It is intended to be used as a distant-foreground
2611property."
2612 (pcase modus-themes-mode-line
2613 ('3d
2614 `(:background ,bg-alt :foreground ,fg-alt
2615 :box (:line-width ,(or border-width 1)
2616 :color ,border-3d
2617 :style ,(and alt-style 'released-button))))
2618 ('moody
2619 `(:background ,bg-alt :foreground ,fg-alt
2620 :underline ,border :overline ,border
2621 :distant-foreground ,fg-distant))
2622 ('borderless
2623 `(:foreground ,fg :background ,bg :box ,bg))
2624 ('borderless-3d
2625 `(:foreground ,fg :background ,bg
2626 :box (:line-width ,(or border-width 1)
2627 :color ,bg
2628 :style ,(and alt-style 'released-button))))
2629 ('borderless-moody
2630 `(:background ,bg :foreground ,fg
2631 :underline ,bg :overline ,bg
2632 :distant-foreground ,fg-distant))
2633 (_
2634 `(:foreground ,fg :background ,bg :box ,border))))
2635
2636(defun modus-themes--diff
2637 (fg-only-bg fg-only-fg mainbg mainfg altbg altfg &optional deuteranbg deuteranfg bg-only-fg)
2638 "Color combinations for `modus-themes-diffs'.
2639
2640FG-ONLY-BG should be similar or the same as the main background.
2641FG-ONLY-FG should be a saturated accent value that can be
2642combined with the former.
2643
2644MAINBG must be one of the dedicated backgrounds for diffs while
2645MAINFG must be the same for the foreground.
2646
2647ALTBG needs to be a slightly accented background that is meant to
2648be combined with ALTFG. Both must be less intense than MAINBG
2649and MAINFG respectively.
2650
2651DEUTERANBG and DEUTERANFG must be combinations of colors that account
2652for red-green color defficiency (deuteranopia).
2653
2654Optional BG-ONLY-FG applies ALTFG else leaves the foreground
2655unspecified."
2656 (pcase modus-themes-diffs
2657 ('fg-only (list :background fg-only-bg :foreground fg-only-fg))
2658 ('desaturated (list :background altbg :foreground altfg))
2659 ('deuteranopia (list :background (or deuteranbg mainbg) :foreground (or deuteranfg mainfg)))
2660 ('bg-only (list :background altbg :foreground (if bg-only-fg altfg 'unspecified)))
2661 (_ (list :background mainbg :foreground mainfg))))
2662
2663(defun modus-themes--diff-deuteran (deuteran main)
2664 "Determine whether the DEUTERAN or MAIN color should be used.
2665This is based on whether `modus-themes-diffs' has the value
2666`deuteranopia'."
2667 (if (eq modus-themes-diffs 'deuteranopia)
2668 (list deuteran)
2669 (list main)))
2670
2671(defun modus-themes--diff-text (fg-only-fg default-fg)
2672 "Like `modus-themes--diff', but only for foregrounds.
2673FG-ONLY-FG is the foreground that is used when diffs are styled
2674using only foreground colors. DEFAULT-FG covers all other
2675cases."
2676 (pcase modus-themes-diffs
2677 ('fg-only (list :foreground fg-only-fg))
2678 ('bg-only (list :foreground 'unspecified))
2679 (_ (list :foreground default-fg))))
2680
2681(defun modus-themes--standard-completions (mainfg subtlebg intensebg intensefg)
2682 "Combinations for `modus-themes-completions'.
2683
2684MAINFG is an accented foreground value. SUBTLEBG is an accented
2685background value that can be combined with MAINFG. INTENSEBG and
2686INTENSEFG are accented colors that are designed to be used in
2687tandem.
2688
2689These are intended for Icomplete, Ido, and related."
2690 (pcase modus-themes-completions
2691 ('opinionated (list :background intensebg :foreground intensefg))
2692 ('moderate (list :background subtlebg :foreground mainfg))
2693 (_ (list :foreground mainfg))))
2694
2695(defun modus-themes--extra-completions (subtleface intenseface altface &optional altfg bold)
2696 "Combinations for `modus-themes-completions'.
2697
2698SUBTLEFACE and INTENSEFACE are custom theme faces that combine a
2699background and foreground value. The difference between the two
2700is a matter of degree.
2701
2702ALTFACE is a combination of colors that represents a departure
2703from the UI's default aesthetics. Optional ALTFG is meant to be
2704used in tandem with it.
2705
2706Optional BOLD will apply a heavier weight to the text.
2707
2708These are intended for Helm, Ivy, etc."
2709 (pcase modus-themes-completions
2710 ('opinionated (list :inherit (list altface bold)
2711 :foreground (or altfg 'unspecified)))
2712 ('moderate (list :inherit (list subtleface bold)))
2713 (_ (list :inherit (list intenseface bold)))))
2714
2715(defun modus-themes--link (fg fgfaint underline)
2716 "Conditional application of link styles.
2717FG is the link's default color for its text and underline
2718property. FGFAINT is a desaturated color for the text and
2719underline. UNDERLINE is a grey color only for the undeline."
2720 (pcase modus-themes-links
2721 ('faint (list :foreground fgfaint :underline t))
2722 ('neutral-underline (list :foreground fg :underline underline))
2723 ('faint-neutral-underline (list :foreground fgfaint :underline underline))
2724 ('no-underline (list :foreground fg :underline nil))
2725 ('underline-only (list :underline t))
2726 ('neutral-underline-only (list :underline underline))
2727 (_ (list :foreground fg :underline t))))
2728
2729(defun modus-themes--link-color (fg fgfaint &optional neutralfg)
2730 "Extends `modus-themes--link'.
2731FG is the main accented foreground. FGFAINT is also accented,
2732yet desaturated. Optional NEUTRALFG is a gray value."
2733 (pcase modus-themes-links
2734 ('faint (list :foreground fgfaint))
2735 ('faint-neutral-underline (list :foreground fgfaint))
2736 ('underline-only (list :underline t :foreground (or neutralfg 'unspecified)))
2737 ('neutral-underline-only (list :underline 'unspecified :foreground (or neutralfg 'unspecified)))
2738 (_ (list :foreground fg))))
2739
2740(defun modus-themes--scale (amount)
2741 "Scale heading by AMOUNT.
2742AMOUNT is a customization option."
2743 (when modus-themes-scale-headings
2744 (list :height amount)))
2745
2746(defun modus-themes--region (bg fg bgsubtle)
2747 "Apply `modus-themes-region' styles.
2748
2749BG and FG are the main values that are used by default. BGSUBTLE
2750is a subtle background value that can be combined with all colors
2751used to fontify text and code syntax."
2752 (pcase modus-themes-region
2753 ('bg-only (list :background bgsubtle))
2754 ('bg-only-no-extend (list :background bgsubtle :extend nil))
2755 ('no-extend (list :background bg :foreground fg :extend nil))
2756 (_ (list :background bg :foreground fg))))
2757
2758
2759
2760;;;; Utilities for DIY users
2761
2762;; This is the WCAG formula: https://www.w3.org/TR/WCAG20-TECHS/G18.html
2763(defun modus-themes-wcag-formula (hex)
2764 "Get WCAG value of color value HEX.
2765The value is defined in hexadecimal RGB notation, such as those in
2766`modus-themes-operandi-colors' and `modus-themes-vivendi-colors'."
2767 (cl-loop for k in '(0.2126 0.7152 0.0722)
2768 for x in (color-name-to-rgb hex)
2769 sum (* k (if (<= x 0.03928)
2770 (/ x 12.92)
2771 (expt (/ (+ x 0.055) 1.055) 2.4)))))
2772
2773;;;###autoload
2774(defun modus-themes-contrast (c1 c2)
2775 "Measure WCAG contrast ratio between C1 and C2.
2776C1 and C2 are color values written in hexadecimal RGB."
2777 (let ((ct (/ (+ (modus-themes-wcag-formula c1) 0.05)
2778 (+ (modus-themes-wcag-formula c2) 0.05))))
2779 (max ct (/ ct))))
2780
2781(defun modus-themes-current-palette ()
2782 "Return current color palette."
2783 (modus-themes--palette (modus-themes--current-theme)))
2784
2785;;;###autoload
2786(defun modus-themes-color (color)
2787 "Return color value for COLOR from current palette.
2788COLOR is a key in `modus-themes-operandi-colors' or
2789`modus-themes-vivendi-colors'."
2790 (alist-get color (modus-themes-current-palette)))
2791
2792;;;###autoload
2793(defun modus-themes-color-alts (light-color dark-color)
2794 "Return color value from current palette.
2795When Modus Operandi is enabled, return color value for color
2796LIGHT-COLOR. When Modus Vivendi is enabled, return color value
2797for DARK-COLOR. LIGHT-COLOR and DARK-COLOR are keys in
2798`modus-themes-operandi-colors' or `modus-themes-vivendi-colors'."
2799 (let* ((theme (modus-themes--current-theme))
2800 (color (pcase theme
2801 ('modus-operandi light-color)
2802 ('modus-vivendi dark-color)
2803 (_theme
2804 (error "'%s' is not a Modus theme" theme)))))
2805 (alist-get color (modus-themes--palette theme))))
2806
2807(defmacro modus-themes-with-colors (&rest body)
2808 "Evaluate BODY with colors from current palette bound.
2809For colors bound, see `modus-themes-operandi-colors' or
2810`modus-themes-vivendi-colors'."
2811 (declare (indent 0))
2812 (let ((palette-sym (gensym))
2813 (colors (mapcar #'car modus-themes-operandi-colors)))
2814 `(let* ((class '((class color) (min-colors 89)))
2815 (,palette-sym (modus-themes-current-palette))
2816 ,@(mapcar (lambda (color)
2817 (list color `(alist-get ',color ,palette-sym)))
2818 colors))
2819 (ignore class ,@colors) ; Silence unused variable warnings
2820 ,@body)))
2821
2822
2823
2824;;;; Commands
2825
2826;;;###autoload
2827(defun modus-themes-load-themes ()
2828 "Ensure that the Modus themes are in `custom-enabled-themes'.
2829
2830This function is intended for use in package declarations such as
2831those defined with the help of `use-package'. The idea is to add
2832this function to the `:init' stage of the package's loading, so
2833that subsequent calls that assume the presence of a loaded theme,
2834like `modus-themes-toggle' or `modus-themes-load-operandi', will
2835continue to work as intended even if they are lazy-loaded (such
2836as when they are declared in the `:config' phase)."
2837 (unless (or (custom-theme-p 'modus-operandi)
2838 (custom-theme-p 'modus-vivendi))
2839 (load-theme 'modus-operandi t t)
2840 (load-theme 'modus-vivendi t t)))
2841
2842(defvar modus-themes-after-load-theme-hook nil
2843 "Hook that runs after the `modus-themes-toggle' routines.")
2844
2845;; The reason we use `load-theme' instead of `enable-theme' is that the
2846;; former does a kind of "reset" on the face specs. So it plays nicely
2847;; with `custom-set-faces', as well as defcustom user customizations,
2848;; including the likes of `modus-themes-operandi-color-overrides'.
2849;;
2850;; Tests show that `enable-theme' does not re-read those variables, so
2851;; it might appear to the unsuspecting user that the themes are somehow
2852;; broken.
2853;;
2854;; This "reset", however, comes at the cost of being a bit slower than
2855;; `enable-theme'. User who have a stable setup and seldom update their
2856;; variables during a given Emacs session, are better off using
2857;; something like this:
2858;;
2859;; (defun modus-themes-toggle-enabled ()
2860;; "Toggle between `modus-operandi' and `modus-vivendi' themes."
2861;; (interactive)
2862;; (pcase (modus-themes--current-theme)
2863;; ('modus-operandi (progn (enable-theme 'modus-vivendi)
2864;; (disable-theme 'modus-operandi)))
2865;; ('modus-vivendi (progn (enable-theme 'modus-operandi)
2866;; (disable-theme 'modus-vivendi)))
2867;; (_ (error "No Modus theme is loaded; evaluate `modus-themes-load-themes' first"))))
2868
2869;;;###autoload
2870(defun modus-themes-load-operandi ()
2871 "Load `modus-operandi' and disable `modus-vivendi'.
2872Also run `modus-themes-after-load-theme-hook'."
2873 (disable-theme 'modus-vivendi)
2874 (load-theme 'modus-operandi t)
2875 (run-hooks 'modus-themes-after-load-theme-hook))
2876
2877;;;###autoload
2878(defun modus-themes-load-vivendi ()
2879 "Load `modus-vivendi' and disable `modus-operandi'.
2880Also run `modus-themes-after-load-theme-hook'."
2881 (disable-theme 'modus-operandi)
2882 (load-theme 'modus-vivendi t)
2883 (run-hooks 'modus-themes-after-load-theme-hook))
2884
2885(defun modus-themes--load-prompt ()
2886 "Helper for `modus-themes-toggle'."
2887 (let ((theme
2888 (intern
2889 (completing-read "Load Modus theme (will disable all others): "
2890 '(modus-operandi modus-vivendi) nil t))))
2891 (mapc #'disable-theme custom-enabled-themes)
2892 (pcase theme
2893 ('modus-operandi (modus-themes-load-operandi))
2894 ('modus-vivendi (modus-themes-load-vivendi)))))
2895
2896;;;###autoload
2897(defun modus-themes-toggle ()
2898 "Toggle between `modus-operandi' and `modus-vivendi' themes.
2899Also runs `modus-themes-after-load-theme-hook' at its last stage
2900by virtue of calling either of `modus-themes-load-operandi' and
2901`modus-themes-load-vivendi' functions."
2902 (interactive)
2903 (modus-themes-load-themes)
2904 (pcase (modus-themes--current-theme)
2905 ('modus-operandi (modus-themes-load-vivendi))
2906 ('modus-vivendi (modus-themes-load-operandi))
2907 (_ (modus-themes--load-prompt))))
2908
2909
2910
2911;;;; Face specifications
2912
2913(defconst modus-themes-faces
2914 '(
2915;;;; custom faces
2916 ;; these bespoke faces are inherited by other constructs below
2917;;;;; subtle colored backgrounds
2918 `(modus-theme-subtle-red ((,class :background ,red-subtle-bg :foreground ,fg-dim)))
2919 `(modus-theme-subtle-green ((,class :background ,green-subtle-bg :foreground ,fg-dim)))
2920 `(modus-theme-subtle-yellow ((,class :background ,yellow-subtle-bg :foreground ,fg-dim)))
2921 `(modus-theme-subtle-blue ((,class :background ,blue-subtle-bg :foreground ,fg-dim)))
2922 `(modus-theme-subtle-magenta ((,class :background ,magenta-subtle-bg :foreground ,fg-dim)))
2923 `(modus-theme-subtle-cyan ((,class :background ,cyan-subtle-bg :foreground ,fg-dim)))
2924 `(modus-theme-subtle-neutral ((,class :background ,bg-inactive :foreground ,fg-inactive)))
2925;;;;; intense colored backgrounds
2926 `(modus-theme-intense-red ((,class :background ,red-intense-bg :foreground ,fg-main)))
2927 `(modus-theme-intense-green ((,class :background ,green-intense-bg :foreground ,fg-main)))
2928 `(modus-theme-intense-yellow ((,class :background ,yellow-intense-bg :foreground ,fg-main)))
2929 `(modus-theme-intense-blue ((,class :background ,blue-intense-bg :foreground ,fg-main)))
2930 `(modus-theme-intense-magenta ((,class :background ,magenta-intense-bg :foreground ,fg-main)))
2931 `(modus-theme-intense-cyan ((,class :background ,cyan-intense-bg :foreground ,fg-main)))
2932 `(modus-theme-intense-neutral ((,class :background ,bg-active :foreground ,fg-main)))
2933;;;;; refined background and foreground combinations
2934 ;; general purpose styles that use an accented foreground against an
2935 ;; accented background
2936 `(modus-theme-refine-red ((,class :background ,red-refine-bg :foreground ,red-refine-fg)))
2937 `(modus-theme-refine-green ((,class :background ,green-refine-bg :foreground ,green-refine-fg)))
2938 `(modus-theme-refine-yellow ((,class :background ,yellow-refine-bg :foreground ,yellow-refine-fg)))
2939 `(modus-theme-refine-blue ((,class :background ,blue-refine-bg :foreground ,blue-refine-fg)))
2940 `(modus-theme-refine-magenta ((,class :background ,magenta-refine-bg :foreground ,magenta-refine-fg)))
2941 `(modus-theme-refine-cyan ((,class :background ,cyan-refine-bg :foreground ,cyan-refine-fg)))
2942;;;;; "active" combinations, mostly for use on the mode line
2943 `(modus-theme-active-red ((,class :background ,red-active :foreground ,bg-active)))
2944 `(modus-theme-active-green ((,class :background ,green-active :foreground ,bg-active)))
2945 `(modus-theme-active-yellow ((,class :background ,yellow-active :foreground ,bg-active)))
2946 `(modus-theme-active-blue ((,class :background ,blue-active :foreground ,bg-active)))
2947 `(modus-theme-active-magenta ((,class :background ,magenta-active :foreground ,bg-active)))
2948 `(modus-theme-active-cyan ((,class :background ,cyan-active :foreground ,bg-active)))
2949;;;;; nuanced backgrounds
2950 ;; useful for adding an accented background that is suitable for all
2951 ;; main foreground colors (intended for use in Org source blocks)
2952 `(modus-theme-nuanced-red ((,class :background ,red-nuanced-bg :extend t)))
2953 `(modus-theme-nuanced-green ((,class :background ,green-nuanced-bg :extend t)))
2954 `(modus-theme-nuanced-yellow ((,class :background ,yellow-nuanced-bg :extend t)))
2955 `(modus-theme-nuanced-blue ((,class :background ,blue-nuanced-bg :extend t)))
2956 `(modus-theme-nuanced-magenta ((,class :background ,magenta-nuanced-bg :extend t)))
2957 `(modus-theme-nuanced-cyan ((,class :background ,cyan-nuanced-bg :extend t)))
2958;;;;; fringe-specific combinations
2959 `(modus-theme-fringe-red ((,class :background ,red-fringe-bg :foreground ,fg-main)))
2960 `(modus-theme-fringe-green ((,class :background ,green-fringe-bg :foreground ,fg-main)))
2961 `(modus-theme-fringe-yellow ((,class :background ,yellow-fringe-bg :foreground ,fg-main)))
2962 `(modus-theme-fringe-blue ((,class :background ,blue-fringe-bg :foreground ,fg-main)))
2963 `(modus-theme-fringe-magenta ((,class :background ,magenta-fringe-bg :foreground ,fg-main)))
2964 `(modus-theme-fringe-cyan ((,class :background ,cyan-fringe-bg :foreground ,fg-main)))
2965;;;;; special base values
2966 ;; these are closer to the grayscale than the accents defined above
2967 ;; and should only be used when the next closest alternative would be
2968 ;; a greyscale value than an accented one
2969 `(modus-theme-special-cold ((,class :background ,bg-special-cold :foreground ,fg-special-cold)))
2970 `(modus-theme-special-mild ((,class :background ,bg-special-mild :foreground ,fg-special-mild)))
2971 `(modus-theme-special-warm ((,class :background ,bg-special-warm :foreground ,fg-special-warm)))
2972 `(modus-theme-special-calm ((,class :background ,bg-special-calm :foreground ,fg-special-calm)))
2973;;;;; diff-specific combinations
2974 ;; intended for `diff-mode' or equivalent
2975 `(modus-theme-diff-added
2976 ((,class ,@(modus-themes--diff
2977 bg-main green
2978 bg-diff-focus-added fg-diff-focus-added
2979 green-nuanced-bg fg-diff-added
2980 bg-diff-focus-added-deuteran fg-diff-focus-added-deuteran))))
2981 `(modus-theme-diff-changed
2982 ((,class ,@(modus-themes--diff
2983 bg-main yellow
2984 bg-diff-focus-changed fg-diff-focus-changed
2985 yellow-nuanced-bg fg-diff-changed))))
2986 `(modus-theme-diff-removed
2987 ((,class ,@(modus-themes--diff
2988 bg-main red
2989 bg-diff-focus-removed fg-diff-focus-removed
2990 red-nuanced-bg fg-diff-removed))))
2991 `(modus-theme-diff-refine-added
2992 ((,class ,@(modus-themes--diff
2993 bg-diff-added fg-diff-added
2994 bg-diff-refine-added fg-diff-refine-added
2995 bg-diff-focus-added fg-diff-focus-added
2996 bg-diff-refine-added-deuteran fg-diff-refine-added-deuteran))))
2997 `(modus-theme-diff-refine-changed
2998 ((,class ,@(modus-themes--diff
2999 bg-diff-changed fg-diff-changed
3000 bg-diff-refine-changed fg-diff-refine-changed
3001 bg-diff-focus-changed fg-diff-focus-changed))))
3002 `(modus-theme-diff-refine-removed
3003 ((,class ,@(modus-themes--diff
3004 bg-diff-removed fg-diff-removed
3005 bg-diff-refine-removed fg-diff-refine-removed
3006 bg-diff-focus-removed fg-diff-focus-removed))))
3007 `(modus-theme-diff-focus-added
3008 ((,class ,@(modus-themes--diff
3009 bg-dim green
3010 bg-diff-focus-added fg-diff-focus-added
3011 bg-diff-added fg-diff-added
3012 bg-diff-focus-added-deuteran fg-diff-focus-added-deuteran))))
3013 `(modus-theme-diff-focus-changed
3014 ((,class ,@(modus-themes--diff
3015 bg-dim yellow
3016 bg-diff-focus-changed fg-diff-focus-changed
3017 bg-diff-changed fg-diff-changed))))
3018 `(modus-theme-diff-focus-removed
3019 ((,class ,@(modus-themes--diff
3020 bg-dim red
3021 bg-diff-focus-removed fg-diff-focus-removed
3022 bg-diff-removed fg-diff-removed))))
3023 `(modus-theme-diff-heading
3024 ((,class ,@(modus-themes--diff
3025 bg-main blue
3026 bg-diff-heading fg-diff-heading
3027 cyan-nuanced-bg cyan-nuanced-fg
3028 bg-header fg-main
3029 t))))
3030;;;;; mark indicators
3031 ;; color combinations intended for Dired, Ibuffer, or equivalent
3032 `(modus-theme-pseudo-header ((,class :inherit bold :foreground ,fg-main)))
3033 `(modus-theme-mark-alt ((,class :inherit bold :background ,bg-mark-alt :foreground ,fg-mark-alt)))
3034 `(modus-theme-mark-del ((,class :inherit bold :background ,bg-mark-del :foreground ,fg-mark-del)))
3035 `(modus-theme-mark-sel ((,class :inherit bold :background ,bg-mark-sel :foreground ,fg-mark-sel)))
3036 `(modus-theme-mark-symbol ((,class :inherit bold :foreground ,blue-alt)))
3037;;;;; heading levels
3038 ;; styles for regular headings used in Org, Markdown, Info, etc.
3039 `(modus-theme-heading-1
3040 ((,class ,@(modus-themes--heading
3041 1 fg-main magenta-alt-other magenta-nuanced-bg bg-region)
3042 ,@(modus-themes--scale modus-themes-scale-4))))
3043 `(modus-theme-heading-2
3044 ((,class ,@(modus-themes--heading
3045 2 fg-special-warm magenta-alt red-nuanced-bg bg-region)
3046 ,@(modus-themes--scale modus-themes-scale-3))))
3047 `(modus-theme-heading-3
3048 ((,class ,@(modus-themes--heading
3049 3 fg-special-cold blue blue-nuanced-bg bg-region)
3050 ,@(modus-themes--scale modus-themes-scale-2))))
3051 `(modus-theme-heading-4
3052 ((,class ,@(modus-themes--heading
3053 4 fg-special-mild cyan cyan-nuanced-bg bg-region)
3054 ,@(modus-themes--scale modus-themes-scale-1))))
3055 `(modus-theme-heading-5
3056 ((,class ,@(modus-themes--heading
3057 5 fg-special-calm green-alt-other green-nuanced-bg bg-region))))
3058 `(modus-theme-heading-6
3059 ((,class ,@(modus-themes--heading
3060 6 yellow-nuanced-fg yellow-alt-other yellow-nuanced-bg bg-region))))
3061 `(modus-theme-heading-7
3062 ((,class ,@(modus-themes--heading
3063 7 red-nuanced-fg red-alt red-nuanced-bg bg-region))))
3064 `(modus-theme-heading-8
3065 ((,class ,@(modus-themes--heading
3066 8 fg-dim magenta bg-alt bg-region))))
3067;;;;; graph-specific faces
3068 `(modus-theme-graph-red-0 ((,class :background ,red-graph-0-bg)))
3069 `(modus-theme-graph-red-1 ((,class :background ,red-graph-1-bg)))
3070 `(modus-theme-graph-green-0 ((,class :background ,green-graph-0-bg)))
3071 `(modus-theme-graph-green-1 ((,class :background ,green-graph-1-bg)))
3072 `(modus-theme-graph-yellow-0 ((,class :background ,yellow-graph-0-bg)))
3073 `(modus-theme-graph-yellow-1 ((,class :background ,yellow-graph-1-bg)))
3074 `(modus-theme-graph-blue-0 ((,class :background ,blue-graph-0-bg)))
3075 `(modus-theme-graph-blue-1 ((,class :background ,blue-graph-1-bg)))
3076 `(modus-theme-graph-magenta-0 ((,class :background ,magenta-graph-0-bg)))
3077 `(modus-theme-graph-magenta-1 ((,class :background ,magenta-graph-1-bg)))
3078 `(modus-theme-graph-cyan-0 ((,class :background ,cyan-graph-0-bg)))
3079 `(modus-theme-graph-cyan-1 ((,class :background ,cyan-graph-1-bg)))
3080;;;;; language checkers
3081 `(modus-theme-lang-error ((,class ,@(modus-themes--lang-check fg-lang-underline-error fg-lang-error red red-nuanced-bg))))
3082 `(modus-theme-lang-note ((,class ,@(modus-themes--lang-check fg-lang-underline-note fg-lang-note blue-alt blue-nuanced-bg))))
3083 `(modus-theme-lang-warning ((,class ,@(modus-themes--lang-check fg-lang-underline-warning fg-lang-warning yellow yellow-nuanced-bg))))
3084;;;;; other custom faces
3085 `(modus-theme-bold ((,class ,@(modus-themes--bold-weight))))
3086 `(modus-theme-hl-line ((,class :background ,(if modus-themes-intense-hl-line
3087 bg-hl-line-intense bg-hl-line)
3088 :extend t)))
3089 `(modus-theme-slant ((,class :inherit italic :slant ,@(modus-themes--slant))))
3090 `(modus-theme-variable-pitch ((,class ,@(modus-themes--variable-pitch))))
3091;;;; standard faces
3092;;;;; absolute essentials
3093 `(default ((,class :background ,bg-main :foreground ,fg-main)))
3094 `(cursor ((,class :background ,fg-main)))
3095 `(fringe ((,class ,@(modus-themes--fringe bg-main bg-inactive bg-active)
3096 :foreground ,fg-main)))
3097 `(vertical-border ((,class :foreground ,fg-window-divider-inner)))
3098;;;;; basic and/or ungrouped styles
3099 `(bold ((,class :weight bold)))
3100 `(bold-italic ((,class :inherit (bold italic))))
3101 `(buffer-menu-buffer ((,class :inherit bold)))
3102 `(comint-highlight-input ((,class :inherit bold)))
3103 `(comint-highlight-prompt ((,class :inherit modus-theme-bold
3104 ,@(modus-themes--prompt
3105 cyan
3106 blue-nuanced-bg blue-alt
3107 blue-refine-bg fg-main))))
3108 `(error ((,class :inherit bold :foreground ,red)))
3109 `(escape-glyph ((,class :foreground ,fg-escape-char-construct)))
3110 `(file-name-shadow ((,class :foreground ,fg-unfocused)))
3111 `(header-line ((,class ,@(modus-themes--variable-pitch-ui)
3112 :background ,bg-header :foreground ,fg-header)))
3113 `(header-line-highlight ((,class :inherit modus-theme-active-blue)))
3114 `(help-argument-name ((,class :inherit modus-theme-slant :foreground ,cyan)))
3115 `(homoglyph ((,class :foreground ,red-alt-faint)))
3116 `(ibuffer-locked-buffer ((,class :foreground ,yellow-alt-other-faint)))
3117 `(italic ((,class :slant italic)))
3118 `(nobreak-hyphen ((,class :foreground ,fg-escape-char-construct)))
3119 `(nobreak-space ((,class :foreground ,fg-escape-char-construct :underline t)))
3120 `(minibuffer-prompt ((,class ,@(modus-themes--prompt
3121 cyan-alt-other
3122 cyan-nuanced-bg cyan
3123 cyan-refine-bg fg-main))))
3124 `(mm-command-output ((,class :foreground ,red-alt-other)))
3125 `(mm-uu-extract ((,class :background ,bg-dim :foreground ,fg-special-mild)))
3126 `(next-error ((,class :inherit modus-theme-subtle-red)))
3127 `(rectangle-preview ((,class :inherit modus-theme-special-mild)))
3128 `(region ((,class ,@(modus-themes--region bg-region fg-main bg-hl-alt-intense))))
3129 `(secondary-selection ((,class :inherit modus-theme-special-cold)))
3130 `(shadow ((,class :foreground ,fg-alt)))
3131 `(success ((,class :inherit bold :foreground ,green)))
3132 `(trailing-whitespace ((,class :background ,red-intense-bg)))
3133 `(warning ((,class :inherit bold :foreground ,yellow)))
3134;;;;; buttons, links, widgets
3135 `(button ((,class ,@(modus-themes--link
3136 blue-alt-other blue-alt-other-faint bg-region))))
3137 `(link ((,class :inherit button)))
3138 `(link-visited ((,class :inherit button
3139 ,@(modus-themes--link-color
3140 magenta-alt-other magenta-alt-other-faint fg-alt))))
3141 `(tooltip ((,class :background ,bg-special-cold :foreground ,fg-main)))
3142 `(widget-button ((,class :inherit button)))
3143 `(widget-button-pressed ((,class :inherit button
3144 ,@(modus-themes--link-color
3145 magenta magenta-faint))))
3146 `(widget-documentation ((,class :foreground ,green)))
3147 `(widget-field ((,class :background ,bg-alt :foreground ,fg-dim)))
3148 `(widget-inactive ((,class :background ,bg-inactive :foreground ,fg-inactive)))
3149 `(widget-single-line-field ((,class :inherit widget-field)))
3150;;;;; ag
3151 `(ag-hit-face ((,class :foreground ,fg-special-cold)))
3152 `(ag-match-face ((,class :inherit modus-theme-special-calm)))
3153;;;;; alert
3154 `(alert-high-face ((,class :inherit bold :foreground ,red-alt)))
3155 `(alert-low-face ((,class :foreground ,fg-special-mild)))
3156 `(alert-moderate-face ((,class :inherit bold :foreground ,yellow)))
3157 `(alert-trivial-face ((,class :foreground ,fg-special-calm)))
3158 `(alert-urgent-face ((,class :inherit bold :foreground ,red-intense)))
3159;;;;; all-the-icons
3160 `(all-the-icons-blue ((,class :foreground ,blue)))
3161 `(all-the-icons-blue-alt ((,class :foreground ,blue-alt)))
3162 `(all-the-icons-cyan ((,class :foreground ,cyan)))
3163 `(all-the-icons-cyan-alt ((,class :foreground ,cyan-alt)))
3164 `(all-the-icons-dblue ((,class :foreground ,blue-alt-other)))
3165 `(all-the-icons-dcyan ((,class :foreground ,cyan-alt-other)))
3166 `(all-the-icons-dgreen ((,class :foreground ,green-alt-other)))
3167 `(all-the-icons-dired-dir-face ((,class :foreground ,blue)))
3168 `(all-the-icons-dmaroon ((,class :foreground ,magenta-alt-other)))
3169 `(all-the-icons-dorange ((,class :foreground ,red-alt-other)))
3170 `(all-the-icons-dpink ((,class :foreground ,magenta)))
3171 `(all-the-icons-dpurple ((,class :foreground ,magenta-alt)))
3172 `(all-the-icons-dred ((,class :foreground ,red)))
3173 `(all-the-icons-dsilver ((,class :foreground ,fg-special-cold)))
3174 `(all-the-icons-dyellow ((,class :foreground ,yellow)))
3175 `(all-the-icons-green ((,class :foreground ,green)))
3176 `(all-the-icons-lblue ((,class :foreground ,blue-refine-fg)))
3177 `(all-the-icons-lcyan ((,class :foreground ,cyan-refine-fg)))
3178 `(all-the-icons-lgreen ((,class :foreground ,green-refine-fg)))
3179 `(all-the-icons-lmaroon ((,class :foreground ,magenta-refine-fg)))
3180 `(all-the-icons-lorange ((,class :foreground ,red-refine-fg)))
3181 `(all-the-icons-lpink ((,class :foreground ,magenta-refine-fg)))
3182 `(all-the-icons-lpurple ((,class :foreground ,magenta-refine-fg)))
3183 `(all-the-icons-lred ((,class :foreground ,red-refine-fg)))
3184 `(all-the-icons-lsilver ((,class :foreground ,fg-special-cold)))
3185 `(all-the-icons-lyellow ((,class :foreground ,yellow-refine-fg)))
3186 `(all-the-icons-maroon ((,class :foreground ,magenta)))
3187 `(all-the-icons-orange ((,class :foreground ,red-alt)))
3188 `(all-the-icons-pink ((,class :foreground ,magenta)))
3189 `(all-the-icons-purple ((,class :foreground ,magenta-alt)))
3190 `(all-the-icons-purple-alt ((,class :foreground ,magenta-alt-other)))
3191 `(all-the-icons-red ((,class :foreground ,red)))
3192 `(all-the-icons-red-alt ((,class :foreground ,red-alt)))
3193 `(all-the-icons-silver ((,class :foreground ,fg-special-cold)))
3194 `(all-the-icons-yellow ((,class :foreground ,yellow)))
3195;;;;; annotate
3196 `(annotate-annotation ((,class :inherit modus-theme-subtle-blue)))
3197 `(annotate-annotation-secondary ((,class :inherit modus-theme-subtle-green)))
3198 `(annotate-highlight ((,class :background ,blue-nuanced-bg :underline ,blue-intense)))
3199 `(annotate-highlight-secondary ((,class :background ,green-nuanced-bg :underline ,green-intense)))
3200;;;;; anzu
3201 `(anzu-match-1 ((,class :inherit modus-theme-subtle-cyan)))
3202 `(anzu-match-2 ((,class :inherit modus-theme-subtle-green)))
3203 `(anzu-match-3 ((,class :inherit modus-theme-subtle-yellow)))
3204 `(anzu-mode-line ((,class :inherit bold :foreground ,green-active)))
3205 `(anzu-mode-line-no-match ((,class :inherit bold :foreground ,red-active)))
3206 `(anzu-replace-highlight ((,class :inherit modus-theme-refine-yellow :underline t)))
3207 `(anzu-replace-to ((,class :inherit (modus-theme-intense-green bold))))
3208;;;;; apropos
3209 `(apropos-function-button ((,class :inherit button
3210 ,@(modus-themes--link-color
3211 magenta-alt-other magenta-alt-other-faint))))
3212 `(apropos-keybinding ((,class :inherit bold :foreground ,cyan)))
3213 `(apropos-misc-button ((,class :inherit button
3214 ,@(modus-themes--link-color
3215 cyan-alt-other cyan-alt-other-faint))))
3216 `(apropos-property ((,class :inherit modus-theme-bold :foreground ,magenta-alt)))
3217 `(apropos-symbol ((,class :inherit modus-theme-bold :foreground ,blue-alt-other)))
3218 `(apropos-user-option-button ((,class :inherit button
3219 ,@(modus-themes--link-color
3220 green-alt-other green-alt-other-faint))))
3221 `(apropos-variable-button ((,class :inherit button
3222 ,@(modus-themes--link-color
3223 blue blue-faint))))
3224;;;;; apt-sources-list
3225 `(apt-sources-list-components ((,class :foreground ,cyan)))
3226 `(apt-sources-list-options ((,class :foreground ,yellow)))
3227 `(apt-sources-list-suite ((,class :foreground ,green)))
3228 `(apt-sources-list-type ((,class :foreground ,magenta)))
3229 `(apt-sources-list-uri ((,class :foreground ,blue)))
3230;;;;; artbollocks-mode
3231 `(artbollocks-face ((,class :inherit modus-theme-lang-note)))
3232 `(artbollocks-lexical-illusions-face ((,class :background ,bg-alt :foreground ,red-alt :underline t)))
3233 `(artbollocks-passive-voice-face ((,class :inherit modus-theme-lang-warning)))
3234 `(artbollocks-weasel-words-face ((,class :inherit modus-theme-lang-error)))
3235;;;;; auctex and Tex
3236 `(font-latex-bold-face ((,class :inherit bold :foreground ,fg-special-calm)))
3237 `(font-latex-doctex-documentation-face ((,class :inherit modus-theme-slant :foreground ,fg-special-cold)))
3238 `(font-latex-doctex-preprocessor-face ((,class :inherit modus-theme-bold :foreground ,red-alt-other)))
3239 `(font-latex-italic-face ((,class :inherit italic :foreground ,fg-special-calm)))
3240 `(font-latex-math-face ((,class :foreground ,cyan-alt-other)))
3241 `(font-latex-script-char-face ((,class :foreground ,cyan-alt-other)))
3242 `(font-latex-sectioning-0-face ((,class :inherit modus-theme-variable-pitch :foreground ,blue-nuanced-fg)))
3243 `(font-latex-sectioning-1-face ((,class :inherit (bold modus-theme-variable-pitch) :foreground ,blue-nuanced-fg)))
3244 `(font-latex-sectioning-2-face ((,class :inherit (bold modus-theme-variable-pitch) :foreground ,blue-nuanced-fg)))
3245 `(font-latex-sectioning-3-face ((,class :inherit (bold modus-theme-variable-pitch) :foreground ,blue-nuanced-fg)))
3246 `(font-latex-sectioning-4-face ((,class :inherit (bold modus-theme-variable-pitch) :foreground ,blue-nuanced-fg)))
3247 `(font-latex-sectioning-5-face ((,class :inherit modus-theme-variable-pitch :foreground ,blue-nuanced-fg)))
3248 `(font-latex-sedate-face ((,class :inherit modus-theme-bold :foreground ,magenta-alt-other)))
3249 `(font-latex-slide-title-face ((,class :inherit (bold modus-theme-variable-pitch) :foreground ,cyan-nuanced-fg
3250 ,@(modus-themes--scale modus-themes-scale-4))))
3251 `(font-latex-string-face ((,class :inherit font-lock-string-face)))
3252 `(font-latex-subscript-face ((,class :height 0.95)))
3253 `(font-latex-superscript-face ((,class :height 0.95)))
3254 `(font-latex-verbatim-face ((,class :background ,bg-dim :foreground ,fg-special-mild)))
3255 `(font-latex-warning-face ((,class :inherit font-lock-warning-face)))
3256 `(tex-match ((,class :foreground ,blue-alt-other)))
3257 `(tex-verbatim ((,class :background ,bg-dim :foreground ,fg-special-mild)))
3258 `(texinfo-heading ((,class :foreground ,magenta)))
3259 `(TeX-error-description-error ((,class :inherit error)))
3260 `(TeX-error-description-help ((,class :foreground ,blue)))
3261 `(TeX-error-description-tex-said ((,class :foreground ,blue)))
3262 `(TeX-error-description-warning ((,class :inherit warning)))
3263;;;;; auto-dim-other-buffers
3264 `(auto-dim-other-buffers-face ((,class :background ,bg-alt)))
3265;;;;; avy
3266 `(avy-background-face ((,class :background ,bg-dim :foreground ,fg-dim)))
3267 `(avy-goto-char-timer-face ((,class :inherit (modus-theme-intense-yellow bold))))
3268 `(avy-lead-face ((,class :inherit (modus-theme-intense-magenta bold))))
3269 `(avy-lead-face-0 ((,class :inherit (modus-theme-intense-blue bold))))
3270 `(avy-lead-face-1 ((,class :inherit (modus-theme-intense-red bold))))
3271 `(avy-lead-face-2 ((,class :inherit (modus-theme-intense-green bold))))
3272;;;;; aw (ace-window)
3273 `(aw-background-face ((,class :background ,bg-dim :foreground ,fg-dim)))
3274 `(aw-key-face ((,class :inherit bold :foreground ,blue-intense)))
3275 `(aw-leading-char-face ((,class :inherit bold :height 1.5 :slant normal :background ,bg-main :foreground ,red-intense)))
3276 `(aw-minibuffer-leading-char-face ((,class :foreground ,magenta-active)))
3277 `(aw-mode-line-face ((,class :inherit bold)))
3278;;;;; awesome-tray
3279 `(awesome-tray-module-awesome-tab-face ((,class :inherit bold :foreground ,red-alt-other)))
3280 `(awesome-tray-module-battery-face ((,class :inherit bold :foreground ,cyan-alt-other)))
3281 `(awesome-tray-module-buffer-name-face ((,class :inherit bold :foreground ,yellow-alt-other)))
3282 `(awesome-tray-module-circe-face ((,class :inherit bold :foreground ,blue-alt)))
3283 `(awesome-tray-module-date-face ((,class :inherit bold :foreground ,fg-dim)))
3284 `(awesome-tray-module-evil-face ((,class :inherit bold :foreground ,green-alt)))
3285 `(awesome-tray-module-git-face ((,class :inherit bold :foreground ,magenta)))
3286 `(awesome-tray-module-last-command-face ((,class :inherit bold :foreground ,blue-alt-other)))
3287 `(awesome-tray-module-location-face ((,class :inherit bold :foreground ,yellow)))
3288 `(awesome-tray-module-mode-name-face ((,class :inherit bold :foreground ,green)))
3289 `(awesome-tray-module-parent-dir-face ((,class :inherit bold :foreground ,cyan)))
3290 `(awesome-tray-module-rvm-face ((,class :inherit bold :foreground ,magenta-alt-other)))
3291;;;;; bbdb
3292 `(bbdb-name ((,class :foreground ,magenta-alt-other)))
3293 `(bbdb-organization ((,class :foreground ,red-alt-other)))
3294 `(bbdb-field-name ((,class :foreground ,cyan-alt-other)))
3295;;;;; binder
3296 `(binder-sidebar-highlight ((,class :inherit modus-theme-subtle-cyan)))
3297 `(binder-sidebar-marked ((,class :inherit modus-theme-mark-sel)))
3298 `(binder-sidebar-missing ((,class :inherit modus-theme-subtle-red)))
3299 `(binder-sidebar-tags ((,class :foreground ,cyan)))
3300;;;;; bm
3301 `(bm-face ((,class :inherit modus-theme-subtle-yellow :extend t)))
3302 `(bm-fringe-face ((,class :inherit modus-theme-fringe-yellow)))
3303 `(bm-fringe-persistent-face ((,class :inherit modus-theme-fringe-blue)))
3304 `(bm-persistent-face ((,class :inherit modus-theme-intense-blue :extend t)))
3305;;;;; bongo
3306 `(bongo-album-title ((,class :foreground ,yellow-active)))
3307 `(bongo-artist ((,class :foreground ,magenta-active)))
3308 `(bongo-currently-playing-track ((,class :inherit bold)))
3309 `(bongo-elapsed-track-part ((,class :inherit modus-theme-subtle-magenta :underline t)))
3310 `(bongo-filled-seek-bar ((,class :background ,blue-intense-bg :foreground ,fg-main)))
3311 `(bongo-marked-track ((,class :foreground ,fg-mark-alt)))
3312 `(bongo-marked-track-line ((,class :background ,bg-mark-alt)))
3313 `(bongo-played-track ((,class :foreground ,fg-unfocused :strike-through t)))
3314 `(bongo-track-length ((,class :foreground ,fg-active)))
3315 `(bongo-track-title ((,class :foreground ,cyan-active)))
3316 `(bongo-unfilled-seek-bar ((,class :background ,bg-special-cold :foreground ,fg-main)))
3317;;;;; boon
3318 `(boon-modeline-cmd ((,class :inherit modus-theme-active-blue)))
3319 `(boon-modeline-ins ((,class :inherit modus-theme-active-red)))
3320 `(boon-modeline-off ((,class :inherit modus-theme-active-yellow)))
3321 `(boon-modeline-spc ((,class :inherit modus-theme-active-green)))
3322;;;;; breakpoint (built-in gdb-mi.el)
3323 `(breakpoint-disabled ((,class :inherit shadow)))
3324 `(breakpoint-enabled ((,class :inherit bold :foreground ,red)))
3325;;;;; buffer-expose
3326 `(buffer-expose-ace-char-face ((,class :inherit bold :foreground ,red-active)))
3327 `(buffer-expose-mode-line-face ((,class :foreground ,cyan-active)))
3328 `(buffer-expose-selected-face ((,class :inherit modus-theme-special-mild)))
3329;;;;; calendar and diary
3330 `(calendar-month-header ((,class :inherit modus-theme-pseudo-header)))
3331 `(calendar-today ((,class :inherit bold :underline t)))
3332 `(calendar-weekday-header ((,class :inherit shadow)))
3333 `(calendar-weekend-header ((,class :inherit shadow)))
3334 `(diary ((,class :background ,green-nuanced-bg :foreground ,green-alt-other)))
3335 `(diary-anniversary ((,class :foreground ,red-alt-other)))
3336 `(diary-time ((,class :foreground ,blue-alt)))
3337 `(holiday ((,class :background ,magenta-nuanced-bg :foreground ,magenta-alt)))
3338;;;;; calfw
3339 `(cfw:face-annotation ((,class :foreground ,fg-special-warm)))
3340 `(cfw:face-day-title ((,class :foreground ,fg-main)))
3341 `(cfw:face-default-content ((,class :foreground ,green-alt)))
3342 `(cfw:face-default-day ((,class :inherit (cfw:face-day-title bold))))
3343 `(cfw:face-disable ((,class :foreground ,fg-unfocused)))
3344 `(cfw:face-grid ((,class :foreground ,fg-window-divider-outer)))
3345 `(cfw:face-header ((,class :inherit bold :foreground ,fg-main)))
3346 `(cfw:face-holiday ((,class :foreground ,magenta-alt-other)))
3347 `(cfw:face-periods ((,class :foreground ,cyan-alt-other)))
3348 `(cfw:face-saturday ((,class :inherit bold :foreground ,cyan-alt-other)))
3349 `(cfw:face-select ((,class :inherit modus-theme-intense-blue)))
3350 `(cfw:face-sunday ((,class :inherit bold :foreground ,cyan-alt-other)))
3351 `(cfw:face-title ((,class :inherit modus-theme-variable-pitch
3352 :foreground ,fg-special-cold
3353 ,@(modus-themes--scale modus-themes-scale-5))))
3354 `(cfw:face-today ((,class :background ,bg-inactive)))
3355 `(cfw:face-today-title ((,class :background ,bg-active)))
3356 `(cfw:face-toolbar ((,class :background ,bg-alt :foreground ,bg-alt)))
3357 `(cfw:face-toolbar-button-off ((,class :inherit shadow)))
3358 `(cfw:face-toolbar-button-on ((,class :inherit bold :background ,blue-nuanced-bg
3359 :foreground ,blue-alt)))
3360;;;;; centaur-tabs
3361 `(centaur-tabs-active-bar-face ((,class :background ,fg-tab-active)))
3362 `(centaur-tabs-close-mouse-face ((,class :inherit bold :foreground ,red-active :underline t)))
3363 `(centaur-tabs-close-selected ((,class :inherit centaur-tabs-selected)))
3364 `(centaur-tabs-close-unselected ((,class :inherit centaur-tabs-unselected)))
3365 `(centaur-tabs-modified-marker-selected ((,class :inherit centaur-tabs-selected)))
3366 `(centaur-tabs-modified-marker-unselected ((,class :inherit centaur-tabs-unselected)))
3367 `(centaur-tabs-default ((,class :background ,bg-main :foreground ,bg-main)))
3368 `(centaur-tabs-selected ((,class :inherit bold :background ,bg-tab-active :foreground ,fg-main)))
3369 `(centaur-tabs-selected-modified ((,class :inherit italic :background ,bg-tab-active :foreground ,fg-main)))
3370 `(centaur-tabs-unselected ((,class :background ,bg-tab-inactive :foreground ,fg-dim)))
3371 `(centaur-tabs-unselected-modified ((,class :inherit italic :background ,bg-tab-inactive :foreground ,fg-dim)))
3372;;;;; cfrs
3373 `(cfrs-border-color ((,class :background ,fg-window-divider-inner)))
3374;;;;; change-log and log-view (`vc-print-log' and `vc-print-root-log')
3375 `(change-log-acknowledgment ((,class :foreground ,fg-alt)))
3376 `(change-log-conditionals ((,class :foreground ,yellow)))
3377 `(change-log-date ((,class :foreground ,cyan)))
3378 `(change-log-email ((,class :foreground ,cyan-alt-other)))
3379 `(change-log-file ((,class :inherit bold :foreground ,fg-special-cold)))
3380 `(change-log-function ((,class :foreground ,green-alt-other)))
3381 `(change-log-list ((,class :foreground ,magenta-alt)))
3382 `(change-log-name ((,class :foreground ,magenta-alt-other)))
3383 `(log-edit-header ((,class :foreground ,fg-special-warm)))
3384 `(log-edit-summary ((,class :inherit bold :foreground ,blue)))
3385 `(log-edit-unknown-header ((,class :inherit shadow)))
3386 `(log-view-commit-body ((,class :foreground ,blue-nuanced-fg)))
3387 `(log-view-file ((,class :inherit bold :foreground ,fg-special-cold)))
3388 `(log-view-message ((,class :background ,bg-alt :foreground ,fg-alt)))
3389;;;;; cider
3390 `(cider-debug-code-overlay-face ((,class :background ,bg-alt)))
3391 `(cider-debug-prompt-face ((,class :foreground ,magenta-alt :underline t)))
3392 `(cider-deprecated-face ((,class :inherit modus-theme-refine-yellow)))
3393 `(cider-docview-emphasis-face ((,class :inherit italic :foreground ,fg-special-cold)))
3394 `(cider-docview-literal-face ((,class :foreground ,blue-alt)))
3395 `(cider-docview-strong-face ((,class :inherit bold :foreground ,fg-special-cold)))
3396 `(cider-docview-table-border-face ((,class :inherit shadow)))
3397 `(cider-enlightened-face ((,class :box (:line-width -1 :color ,yellow-alt :style nil) :background ,bg-dim)))
3398 `(cider-enlightened-local-face ((,class :inherit bold :foreground ,yellow-alt-other)))
3399 `(cider-error-highlight-face ((,class :foreground ,red :underline t)))
3400 `(cider-fragile-button-face ((,class :box (:line-width 3 :color ,fg-alt :style released-button) :foreground ,yellow)))
3401 `(cider-fringe-good-face ((,class :foreground ,green-active)))
3402 `(cider-instrumented-face ((,class :box (:line-width -1 :color ,red :style nil) :background ,bg-dim)))
3403 `(cider-reader-conditional-face ((,class :inherit italic :foreground ,fg-special-warm)))
3404 `(cider-repl-input-face ((,class :inherit bold)))
3405 `(cider-repl-prompt-face ((,class :foreground ,cyan-alt-other)))
3406 `(cider-repl-stderr-face ((,class :inherit bold :foreground ,red)))
3407 `(cider-repl-stdout-face ((,class :foreground ,blue)))
3408 `(cider-result-overlay-face ((,class :box (:line-width -1 :color ,blue :style nil) :background ,bg-dim)))
3409 `(cider-stacktrace-error-class-face ((,class :inherit bold :foreground ,red)))
3410 `(cider-stacktrace-error-message-face ((,class :inherit italic :foreground ,red-alt-other)))
3411 `(cider-stacktrace-face ((,class :foreground ,fg-main)))
3412 `(cider-stacktrace-filter-active-face ((,class :foreground ,cyan-alt :underline t)))
3413 `(cider-stacktrace-filter-inactive-face ((,class :foreground ,cyan-alt)))
3414 `(cider-stacktrace-fn-face ((,class :inherit bold :foreground ,fg-main)))
3415 `(cider-stacktrace-ns-face ((,class :inherit italic :foreground ,fg-alt)))
3416 `(cider-stacktrace-promoted-button-face ((,class :box (:line-width 3 :color ,fg-alt :style released-button) :foreground ,red)))
3417 `(cider-stacktrace-suppressed-button-face ((,class :box (:line-width 3 :color ,fg-alt :style pressed-button)
3418 :background ,bg-alt :foreground ,fg-alt)))
3419 `(cider-test-error-face ((,class :inherit modus-theme-subtle-red)))
3420 `(cider-test-failure-face ((,class :inherit (modus-theme-intense-red bold))))
3421 `(cider-test-success-face ((,class :inherit modus-theme-intense-green)))
3422 `(cider-traced-face ((,class :box (:line-width -1 :color ,cyan :style nil) :background ,bg-dim)))
3423 `(cider-warning-highlight-face ((,class :foreground ,yellow :underline t)))
3424;;;;; circe (and lui)
3425 `(circe-fool-face ((,class :inherit shadow)))
3426 `(circe-highlight-nick-face ((,class :inherit bold :foreground ,blue)))
3427 `(circe-prompt-face ((,class :inherit bold :foreground ,cyan-alt-other)))
3428 `(circe-server-face ((,class :foreground ,fg-unfocused)))
3429 `(lui-button-face ((,class :inherit button)))
3430 `(lui-highlight-face ((,class :foreground ,magenta-alt)))
3431 `(lui-time-stamp-face ((,class :foreground ,blue-nuanced-fg)))
3432;;;;; color-rg
3433 `(color-rg-font-lock-column-number ((,class :foreground ,magenta-alt-other)))
3434 `(color-rg-font-lock-command ((,class :inherit bold :foreground ,fg-main)))
3435 `(color-rg-font-lock-file ((,class :inherit bold :foreground ,fg-special-cold)))
3436 `(color-rg-font-lock-flash ((,class :inherit modus-theme-intense-blue)))
3437 `(color-rg-font-lock-function-location ((,class :inherit modus-theme-special-calm)))
3438 `(color-rg-font-lock-header-line-directory ((,class :foreground ,blue-active)))
3439 `(color-rg-font-lock-header-line-edit-mode ((,class :foreground ,magenta-active)))
3440 `(color-rg-font-lock-header-line-keyword ((,class :foreground ,green-active)))
3441 `(color-rg-font-lock-header-line-text ((,class :foreground ,fg-active)))
3442 `(color-rg-font-lock-line-number ((,class :foreground ,fg-special-warm)))
3443 `(color-rg-font-lock-mark-changed ((,class :inherit bold :foreground ,blue)))
3444 `(color-rg-font-lock-mark-deleted ((,class :inherit bold :foreground ,red)))
3445 `(color-rg-font-lock-match ((,class :inherit modus-theme-special-calm)))
3446 `(color-rg-font-lock-position-splitter ((,class :inherit shadow)))
3447;;;;; column-enforce-mode
3448 `(column-enforce-face ((,class :inherit modus-theme-refine-yellow)))
3449;;;;; company-mode
3450 `(company-echo-common ((,class :foreground ,magenta-alt-other)))
3451 `(company-preview ((,class :background ,bg-dim :foreground ,fg-dim)))
3452 `(company-preview-common ((,class :foreground ,blue-alt)))
3453 `(company-preview-search ((,class :inherit modus-theme-special-calm)))
3454 `(company-scrollbar-bg ((,class :background ,bg-active)))
3455 `(company-scrollbar-fg ((,class :background ,fg-active)))
3456 `(company-template-field ((,class :inherit modus-theme-intense-magenta)))
3457 `(company-tooltip ((,class :background ,bg-alt :foreground ,fg-alt)))
3458 `(company-tooltip-annotation ((,class :inherit modus-theme-slant :foreground ,fg-special-cold)))
3459 `(company-tooltip-annotation-selection ((,class :inherit bold :foreground ,fg-main)))
3460 `(company-tooltip-common ((,class :inherit bold :foreground ,blue-alt)))
3461 `(company-tooltip-common-selection ((,class :foreground ,fg-main)))
3462 `(company-tooltip-mouse ((,class :inherit modus-theme-intense-blue)))
3463 `(company-tooltip-search ((,class :inherit (modus-theme-refine-cyan bold))))
3464 `(company-tooltip-search-selection ((,class :inherit (modus-theme-intense-green bold) :underline t)))
3465 `(company-tooltip-selection ((,class :inherit (modus-theme-subtle-cyan bold))))
3466;;;;; company-posframe
3467 `(company-posframe-active-backend-name ((,class :inherit bold :background ,bg-active :foreground ,blue-active)))
3468 `(company-posframe-inactive-backend-name ((,class :background ,bg-active :foreground ,fg-active)))
3469 `(company-posframe-metadata ((,class :background ,bg-inactive :foreground ,fg-inactive)))
3470;;;;; compilation feedback
3471 `(compilation-column-number ((,class :foreground ,magenta-alt-other)))
3472 `(compilation-error ((,class :inherit modus-theme-bold :foreground ,red)))
3473 `(compilation-info ((,class :inherit modus-theme-bold :foreground ,fg-special-cold)))
3474 `(compilation-line-number ((,class :foreground ,fg-special-warm)))
3475 `(compilation-mode-line-exit ((,class :inherit modus-theme-bold :foreground ,blue-active)))
3476 `(compilation-mode-line-fail ((,class :inherit modus-theme-bold :foreground ,red-active)))
3477 `(compilation-mode-line-run ((,class :inherit modus-theme-bold :foreground ,magenta-active)))
3478 `(compilation-warning ((,class :inherit modus-theme-bold :foreground ,yellow)))
3479;;;;; completions
3480 `(completions-annotations ((,class :inherit modus-theme-slant :foreground ,cyan-faint)))
3481 `(completions-common-part ((,class ,@(modus-themes--standard-completions
3482 blue-alt blue-nuanced-bg
3483 cyan-refine-bg cyan-refine-fg))))
3484 `(completions-first-difference ((,class :inherit bold
3485 ,@(modus-themes--standard-completions
3486 magenta-alt blue-nuanced-bg
3487 magenta-intense-bg fg-main))))
3488;;;;; consult
3489 `(consult-async-running ((,class :inherit bold :foreground ,blue)))
3490 `(consult-async-split ((,class :foreground ,magenta-alt)))
3491 `(consult-bookmark ((,class :foreground ,blue)))
3492 `(consult-file ((,class :foreground ,fg-special-cold)))
3493 `(consult-imenu-prefix ((,class :inherit shadow)))
3494 `(consult-key ((,class :inherit modus-themes-bold :foreground ,magenta-alt-other)))
3495 `(consult-line-number ((,class :foreground ,fg-special-warm)))
3496 `(consult-line-number-prefix ((,class :foreground ,fg-unfocused)))
3497 `(consult-narrow-indicator ((,class :foreground ,magenta-alt)))
3498 `(consult-preview-cursor ((,class :inherit modus-theme-intense-blue)))
3499 `(consult-preview-error ((,class :inherit modus-theme-intense-red)))
3500 `(consult-preview-line ((,class :background ,bg-hl-alt-intense)))
3501;;;;; counsel
3502 `(counsel-active-mode ((,class :foreground ,magenta-alt-other)))
3503 `(counsel-application-name ((,class :foreground ,red-alt-other)))
3504 `(counsel-key-binding ((,class :inherit bold :foreground ,blue-alt-other)))
3505 `(counsel-outline-1 ((,class :inherit org-level-1)))
3506 `(counsel-outline-2 ((,class :inherit org-level-2)))
3507 `(counsel-outline-3 ((,class :inherit org-level-3)))
3508 `(counsel-outline-4 ((,class :inherit org-level-4)))
3509 `(counsel-outline-5 ((,class :inherit org-level-5)))
3510 `(counsel-outline-6 ((,class :inherit org-level-6)))
3511 `(counsel-outline-7 ((,class :inherit org-level-7)))
3512 `(counsel-outline-8 ((,class :inherit org-level-8)))
3513 `(counsel-outline-default ((,class :foreground ,fg-main)))
3514 `(counsel-variable-documentation ((,class :inherit modus-theme-slant :foreground ,yellow-alt-other)))
3515;;;;; counsel-css
3516 `(counsel-css-selector-depth-face-1 ((,class :foreground ,blue)))
3517 `(counsel-css-selector-depth-face-2 ((,class :foreground ,cyan)))
3518 `(counsel-css-selector-depth-face-3 ((,class :foreground ,green)))
3519 `(counsel-css-selector-depth-face-4 ((,class :foreground ,yellow)))
3520 `(counsel-css-selector-depth-face-5 ((,class :foreground ,magenta)))
3521 `(counsel-css-selector-depth-face-6 ((,class :foreground ,red)))
3522;;;;; counsel-notmuch
3523 `(counsel-notmuch-count-face ((,class :foreground ,cyan)))
3524 `(counsel-notmuch-date-face ((,class :foreground ,blue)))
3525 `(counsel-notmuch-people-face ((,class :foreground ,magenta)))
3526 `(counsel-notmuch-subject-face ((,class :foreground ,magenta-alt-other)))
3527;;;;; counsel-org-capture-string
3528 `(counsel-org-capture-string-template-body-face ((,class :foreground ,fg-special-cold)))
3529;;;;; cov
3530 `(cov-coverage-not-run-face ((,class :foreground ,red-intense)))
3531 `(cov-coverage-run-face ((,class :foreground ,green-intense)))
3532 `(cov-heavy-face ((,class :foreground ,magenta-intense)))
3533 `(cov-light-face ((,class :foreground ,blue-intense)))
3534 `(cov-med-face ((,class :foreground ,yellow-intense)))
3535 `(cov-none-face ((,class :foreground ,cyan-intense)))
3536;;;;; cperl-mode
3537 `(cperl-nonoverridable-face ((,class :foreground unspecified)))
3538 `(cperl-array-face ((,class :inherit font-lock-keyword-face)))
3539 `(cperl-hash-face ((,class :inherit font-lock-variable-name-face)))
3540;;;;; csv-mode
3541 `(csv-separator-face ((,class :background ,bg-special-cold :foreground ,fg-main)))
3542;;;;; ctrlf
3543 `(ctrlf-highlight-active ((,class :inherit (modus-theme-intense-green bold))))
3544 `(ctrlf-highlight-line ((,class :inherit modus-theme-hl-line)))
3545 `(ctrlf-highlight-passive ((,class :inherit modus-theme-refine-cyan)))
3546;;;;; custom (M-x customize)
3547 `(custom-button ((,class :box (:line-width 2 :color nil :style released-button)
3548 :background ,bg-active :foreground ,fg-main)))
3549 `(custom-button-mouse ((,class :box (:line-width 2 :color nil :style released-button)
3550 :background ,bg-active :foreground ,fg-active)))
3551 `(custom-button-pressed ((,class :box (:line-width 2 :color nil :style pressed-button)
3552 :background ,bg-active :foreground ,fg-main)))
3553 `(custom-changed ((,class :inherit modus-theme-subtle-cyan)))
3554 `(custom-comment ((,class :inherit shadow)))
3555 `(custom-comment-tag ((,class :background ,bg-alt :foreground ,yellow-alt-other)))
3556 `(custom-face-tag ((,class :inherit bold :foreground ,blue-intense)))
3557 `(custom-group-tag ((,class :inherit bold :foreground ,green-intense)))
3558 `(custom-group-tag-1 ((,class :inherit modus-theme-special-warm)))
3559 `(custom-invalid ((,class :inherit (modus-theme-intense-red bold))))
3560 `(custom-modified ((,class :inherit modus-theme-subtle-cyan)))
3561 `(custom-rogue ((,class :inherit modus-theme-refine-magenta)))
3562 `(custom-set ((,class :foreground ,blue-alt)))
3563 `(custom-state ((,class :foreground ,cyan-alt-other)))
3564 `(custom-themed ((,class :inherit modus-theme-subtle-blue)))
3565 `(custom-variable-tag ((,class :inherit bold :foreground ,cyan)))
3566;;;;; dap-mode
3567 `(dap-mouse-eval-thing-face ((,class :box (:line-width -1 :color ,blue-active :style nil)
3568 :background ,bg-active :foreground ,fg-main)))
3569 `(dap-result-overlay-face ((,class :box (:line-width -1 :color ,bg-active :style nil)
3570 :background ,bg-active :foreground ,fg-main)))
3571 `(dap-ui-breakpoint-verified-fringe ((,class :inherit bold :foreground ,green-active)))
3572 `(dap-ui-compile-errline ((,class :inherit bold :foreground ,red-intense)))
3573 `(dap-ui-locals-scope-face ((,class :inherit bold :foreground ,magenta :underline t)))
3574 `(dap-ui-locals-variable-face ((,class :inherit bold :foreground ,cyan)))
3575 `(dap-ui-locals-variable-leaf-face ((,class :inherit italic :foreground ,cyan-alt-other)))
3576 `(dap-ui-marker-face ((,class :inherit modus-theme-subtle-blue)))
3577 `(dap-ui-sessions-stack-frame-face ((,class :inherit bold :foreground ,magenta-alt)))
3578 `(dap-ui-sessions-terminated-active-face ((,class :inherit bold :foreground ,fg-alt)))
3579 `(dap-ui-sessions-terminated-face ((,class :inherit shadow)))
3580;;;;; dashboard (emacs-dashboard)
3581 `(dashboard-banner-logo-title ((,class :inherit bold :foreground ,fg-special-cold)))
3582 `(dashboard-footer ((,class :inherit bold :foreground ,fg-special-mild)))
3583 `(dashboard-heading ((,class :inherit bold :foreground ,fg-special-warm)))
3584 `(dashboard-navigator ((,class :foreground ,cyan-alt-other)))
3585 `(dashboard-text-banner ((,class :foreground ,fg-dim)))
3586;;;;; deadgrep
3587 `(deadgrep-filename-face ((,class :inherit bold :foreground ,fg-special-cold)))
3588 `(deadgrep-match-face ((,class :inherit modus-theme-special-calm)))
3589 `(deadgrep-meta-face ((,class :inherit shadow)))
3590 `(deadgrep-regexp-metachar-face ((,class :inherit bold :foreground ,yellow-intense)))
3591 `(deadgrep-search-term-face ((,class :inherit bold :foreground ,green-intense)))
3592;;;;; debbugs
3593 `(debbugs-gnu-archived ((,class :inverse-video t)))
3594 `(debbugs-gnu-done ((,class :inherit shadow)))
3595 `(debbugs-gnu-forwarded ((,class :foreground ,fg-special-warm)))
3596 `(debbugs-gnu-handled ((,class :foreground ,green)))
3597 `(debbugs-gnu-new ((,class :foreground ,red)))
3598 `(debbugs-gnu-pending ((,class :foreground ,cyan)))
3599 `(debbugs-gnu-stale-1 ((,class :foreground ,yellow-nuanced-fg)))
3600 `(debbugs-gnu-stale-2 ((,class :foreground ,yellow)))
3601 `(debbugs-gnu-stale-3 ((,class :foreground ,yellow-alt)))
3602 `(debbugs-gnu-stale-4 ((,class :foreground ,yellow-alt-other)))
3603 `(debbugs-gnu-stale-5 ((,class :foreground ,red-alt)))
3604 `(debbugs-gnu-tagged ((,class :foreground ,magenta-alt)))
3605;;;;; define-word
3606 `(define-word-face-1 ((,class :foreground ,yellow)))
3607 `(define-word-face-2 ((,class :foreground ,fg-main)))
3608;;;;; deft
3609 `(deft-filter-string-error-face ((,class :inherit modus-theme-refine-red)))
3610 `(deft-filter-string-face ((,class :foreground ,green-intense)))
3611 `(deft-header-face ((,class :inherit bold :foreground ,fg-special-warm)))
3612 `(deft-separator-face ((,class :inherit shadow)))
3613 `(deft-summary-face ((,class :inherit modus-theme-slant :foreground ,fg-alt)))
3614 `(deft-time-face ((,class :foreground ,fg-special-cold)))
3615 `(deft-title-face ((,class :inherit bold :foreground ,fg-main)))
3616;;;;; dictionary
3617 `(dictionary-button-face ((,class :inherit bold :foreground ,fg-special-cold)))
3618 `(dictionary-reference-face ((,class :inherit button)))
3619 `(dictionary-word-definition-face ((,class)))
3620 `(dictionary-word-entry-face ((,class :inherit font-lock-comment-face)))
3621;;;;; diff-hl
3622 `(diff-hl-change ((,class :inherit modus-theme-fringe-yellow)))
3623 `(diff-hl-delete ((,class :inherit modus-theme-fringe-red)))
3624 `(diff-hl-dired-change ((,class :inherit diff-hl-change)))
3625 `(diff-hl-dired-delete ((,class :inherit diff-hl-delete)))
3626 `(diff-hl-dired-ignored ((,class :inherit dired-ignored)))
3627 `(diff-hl-dired-insert ((,class :inherit diff-hl-insert)))
3628 `(diff-hl-dired-unknown ((,class :inherit dired-ignored)))
3629 `(diff-hl-insert ((,class :inherit modus-theme-fringe-green)))
3630 `(diff-hl-reverted-hunk-highlight ((,class :inherit (modus-theme-active-magenta bold))))
3631;;;;; diff-mode
3632 `(diff-added ((,class :inherit modus-theme-diff-added)))
3633 `(diff-changed ((,class :inherit modus-theme-diff-changed :extend t)))
3634 `(diff-context ((,class ,@(modus-themes--diff-text fg-main fg-unfocused))))
3635 `(diff-error ((,class :inherit modus-theme-intense-red)))
3636 `(diff-file-header ((,class :inherit (bold diff-header))))
3637 `(diff-function ((,class :inherit modus-theme-diff-heading)))
3638 `(diff-header ((,class ,@(modus-themes--diff-text cyan-faint fg-main))))
3639 `(diff-hunk-header ((,class :inherit (bold modus-theme-diff-heading))))
3640 `(diff-index ((,class :inherit bold :foreground ,blue-alt)))
3641 `(diff-indicator-added ((,class :inherit (diff-added bold)
3642 :foreground ,@(modus-themes--diff-deuteran blue green))))
3643 `(diff-indicator-changed ((,class :inherit (diff-changed bold) :foreground ,yellow)))
3644 `(diff-indicator-removed ((,class :inherit (diff-removed bold) :foreground ,red)))
3645 `(diff-nonexistent ((,class :inherit (modus-theme-neutral bold))))
3646 `(diff-refine-added ((,class :inherit modus-theme-diff-refine-added)))
3647 `(diff-refine-changed ((,class :inherit modus-theme-diff-refine-changed)))
3648 `(diff-refine-removed ((,class :inherit modus-theme-diff-refine-removed)))
3649 `(diff-removed ((,class :inherit modus-theme-diff-removed)))
3650;;;;; dim-autoload
3651 `(dim-autoload-cookie-line ((,class :inherit font-lock-comment-face)))
3652;;;;; dir-treeview
3653 `(dir-treeview-archive-face ((,class :foreground ,fg-special-warm)))
3654 `(dir-treeview-archive-icon-face ((,class :inherit dir-treeview-default-icon-face :foreground ,yellow)))
3655 `(dir-treeview-audio-face ((,class :foreground ,magenta)))
3656 `(dir-treeview-audio-icon-face ((,class :inherit dir-treeview-default-icon-face :foreground ,magenta-alt)))
3657 `(dir-treeview-control-face ((,class :inherit shadow)))
3658 `(dir-treeview-control-mouse-face ((,class :inherit highlight)))
3659 `(dir-treeview-default-icon-face ((,class :inherit bold :family "Font Awesome" :foreground ,fg-alt)))
3660 `(dir-treeview-default-filename-face ((,class :foreground ,fg-main)))
3661 `(dir-treeview-directory-face ((,class :foreground ,blue)))
3662 `(dir-treeview-directory-icon-face ((,class :inherit dir-treeview-default-icon-face :foreground ,blue-alt)))
3663 `(dir-treeview-executable-face ((,class :foreground ,red-alt)))
3664 `(dir-treeview-executable-icon-face ((,class :inherit dir-treeview-default-icon-face :foreground ,red-alt-other)))
3665 `(dir-treeview-image-face ((,class :foreground ,green-alt-other)))
3666 `(dir-treeview-image-icon-face ((,class :inherit dir-treeview-default-icon-face :foreground ,green-alt)))
3667 `(dir-treeview-indent-face ((,class :inherit shadow)))
3668 `(dir-treeview-label-mouse-face ((,class :inherit highlight)))
3669 `(dir-treeview-start-dir-face ((,class :inherit modus-theme-pseudo-header)))
3670 `(dir-treeview-symlink-face ((,class :inherit button
3671 ,@(modus-themes--link-color
3672 cyan cyan-faint))))
3673 `(dir-treeview-video-face ((,class :foreground ,magenta-alt-other)))
3674 `(dir-treeview-video-icon-face ((,class :inherit dir-treeview-default-icon-face :foreground ,magenta-alt-other)))
3675;;;;; dired
3676 `(dired-broken-symlink ((,class :inherit button :foreground ,red)))
3677 `(dired-directory ((,class :foreground ,blue)))
3678 `(dired-flagged ((,class :inherit modus-theme-mark-del)))
3679 `(dired-header ((,class :inherit modus-theme-pseudo-header)))
3680 `(dired-ignored ((,class :inherit shadow)))
3681 `(dired-mark ((,class :inherit modus-theme-mark-symbol)))
3682 `(dired-marked ((,class :inherit modus-theme-mark-sel)))
3683 `(dired-perm-write ((,class :foreground ,fg-special-warm)))
3684 `(dired-symlink ((,class :inherit button
3685 ,@(modus-themes--link-color
3686 cyan-alt cyan-alt-faint))))
3687 `(dired-warning ((,class :inherit bold :foreground ,yellow)))
3688;;;;; dired-async
3689 `(dired-async-failures ((,class :inherit modus-theme-bold :foreground ,red-active)))
3690 `(dired-async-message ((,class :inherit modus-theme-bold :foreground ,green-active)))
3691 `(dired-async-mode-message ((,class :inherit modus-theme-bold :foreground ,cyan-active)))
3692;;;;; dired-git
3693 `(dired-git-branch-else ((,class :inherit bold :foreground ,magenta-alt)))
3694 `(dired-git-branch-master ((,class :inherit bold :foreground ,magenta-alt-other)))
3695;;;;; dired-git-info
3696 `(dgi-commit-message-face ((,class :foreground ,fg-special-mild)))
3697;;;;; dired-narrow
3698 `(dired-narrow-blink ((,class :inherit (modus-theme-subtle-cyan bold))))
3699;;;;; dired-subtree
3700 ;; remove backgrounds from dired-subtree faces, else they break
3701 ;; dired-{flagged,marked} and any other face that sets a background
3702 ;; such as hl-line. Also, denoting depth by varying shades of gray
3703 ;; is not good for accessibility.
3704 `(dired-subtree-depth-1-face (()))
3705 `(dired-subtree-depth-2-face (()))
3706 `(dired-subtree-depth-3-face (()))
3707 `(dired-subtree-depth-4-face (()))
3708 `(dired-subtree-depth-5-face (()))
3709 `(dired-subtree-depth-6-face (()))
3710;;;;; diredc
3711 `(diredc-face-chmod-font-lock-dir ((,class :foreground ,blue-alt)))
3712 `(diredc-face-chmod-font-lock-exec ((,class :foreground ,magenta)))
3713 `(diredc-face-chmod-font-lock-read ((,class :foreground ,fg-main)))
3714 `(diredc-face-chmod-font-lock-write ((,class :foreground ,cyan)))
3715;;;;; diredfl
3716 `(diredfl-autofile-name ((,class :inherit modus-theme-special-cold)))
3717 `(diredfl-compressed-file-name ((,class :foreground ,fg-special-warm)))
3718 `(diredfl-compressed-file-suffix ((,class :foreground ,red-alt)))
3719 `(diredfl-date-time ((,class :foreground ,cyan-alt-other)))
3720 `(diredfl-deletion ((,class :inherit modus-theme-mark-del)))
3721 `(diredfl-deletion-file-name ((,class :inherit modus-theme-mark-del)))
3722 `(diredfl-dir-heading ((,class :inherit modus-theme-pseudo-header)))
3723 `(diredfl-dir-name ((,class :inherit dired-directory)))
3724 `(diredfl-dir-priv ((,class :foreground ,blue-alt)))
3725 `(diredfl-exec-priv ((,class :foreground ,magenta)))
3726 `(diredfl-executable-tag ((,class :foreground ,magenta-alt)))
3727 `(diredfl-file-name ((,class :foreground ,fg-main)))
3728 `(diredfl-file-suffix ((,class :foreground ,cyan)))
3729 `(diredfl-flag-mark ((,class :inherit modus-theme-mark-sel)))
3730 `(diredfl-flag-mark-line ((,class :inherit modus-theme-mark-sel)))
3731 `(diredfl-ignored-file-name ((,class :inherit shadow)))
3732 `(diredfl-link-priv ((,class :foreground ,blue-alt-other)))
3733 `(diredfl-no-priv ((,class :inherit shadow)))
3734 `(diredfl-number ((,class :foreground ,cyan-alt)))
3735 `(diredfl-other-priv ((,class :foreground ,yellow)))
3736 `(diredfl-rare-priv ((,class :foreground ,red-alt)))
3737 `(diredfl-read-priv ((,class :foreground ,fg-main)))
3738 `(diredfl-symlink ((,class :inherit dired-symlink)))
3739 `(diredfl-tagged-autofile-name ((,class :inherit modus-theme-refine-magenta)))
3740 `(diredfl-write-priv ((,class :foreground ,cyan)))
3741;;;;; dired+
3742 `(diredp-autofile-name ((,class :inherit modus-theme-special-cold)))
3743 `(diredp-compressed-file-name ((,class :foreground ,fg-special-warm)))
3744 `(diredp-compressed-file-suffix ((,class :foreground ,red-alt)))
3745 `(diredp-date-time ((,class :foreground ,cyan-alt-other)))
3746 `(diredp-deletion ((,class :inherit modus-theme-mark-del)))
3747 `(diredp-deletion-file-name ((,class :inherit modus-theme-mark-del)))
3748 `(diredp-dir-heading ((,class :inherit modus-theme-pseudo-header)))
3749 `(diredp-dir-name ((,class :inherit dired-directory)))
3750 `(diredp-dir-priv ((,class :foreground ,blue-alt)))
3751 `(diredp-exec-priv ((,class :foreground ,magenta)))
3752 `(diredp-executable-tag ((,class :foreground ,magenta-alt)))
3753 `(diredp-file-name ((,class :foreground ,fg-main)))
3754 `(diredp-file-suffix ((,class :foreground ,cyan)))
3755 `(diredp-flag-mark ((,class :inherit modus-theme-mark-sel)))
3756 `(diredp-flag-mark-line ((,class :inherit modus-theme-mark-sel)))
3757 `(diredp-ignored-file-name ((,class :inherit shadow)))
3758 `(diredp-link-priv ((,class :foreground ,blue-alt-other)))
3759 `(diredp-mode-line-flagged ((,class :foreground ,red-active)))
3760 `(diredp-mode-line-marked ((,class :foreground ,green-active)))
3761 `(diredp-no-priv ((,class :inherit shadow)))
3762 `(diredp-number ((,class :foreground ,cyan-alt)))
3763 `(diredp-omit-file-name ((,class :inherit shadow :strike-through t)))
3764 `(diredp-other-priv ((,class :foreground ,yellow)))
3765 `(diredp-rare-priv ((,class :foreground ,red-alt)))
3766 `(diredp-read-priv ((,class :foreground ,fg-main)))
3767 `(diredp-symlink ((,class :inherit dired-symlink)))
3768 `(diredp-tagged-autofile-name ((,class :inherit modus-theme-refine-magenta)))
3769 `(diredp-write-priv ((,class :foreground ,cyan)))
3770;;;;; disk-usage
3771 `(disk-usage-children ((,class :foreground ,yellow)))
3772 `(disk-usage-inaccessible ((,class :inherit bold :foreground ,red)))
3773 `(disk-usage-percent ((,class :foreground ,green)))
3774 `(disk-usage-size ((,class :foreground ,cyan)))
3775 `(disk-usage-symlink ((,class :inherit button)))
3776 `(disk-usage-symlink-directory ((,class :inherit bold :foreground ,blue-alt)))
3777;;;;; display-fill-column-indicator-mode
3778 `(fill-column-indicator ((,class :foreground ,bg-active)))
3779;;;;; doom-modeline
3780 `(doom-modeline-bar ((,class :inherit modus-theme-active-blue)))
3781 `(doom-modeline-bar-inactive ((,class :background ,fg-inactive :foreground ,bg-main)))
3782 `(doom-modeline-battery-charging ((,class :foreground ,green-active)))
3783 `(doom-modeline-battery-critical ((,class :inherit bold :foreground ,red-active)))
3784 `(doom-modeline-battery-error ((,class :inherit bold :box (:line-width -2)
3785 :foreground ,red-active)))
3786 `(doom-modeline-battery-full ((,class :foreground ,blue-active)))
3787 `(doom-modeline-battery-normal ((,class :foreground ,fg-active)))
3788 `(doom-modeline-battery-warning ((,class :inherit bold :foreground ,yellow-active)))
3789 `(doom-modeline-buffer-file ((,class :inherit bold :foreground ,fg-active)))
3790 `(doom-modeline-buffer-major-mode ((,class :inherit bold :foreground ,cyan-active)))
3791 `(doom-modeline-buffer-minor-mode ((,class :foreground ,fg-inactive)))
3792 `(doom-modeline-buffer-modified ((,class :inherit bold :foreground ,magenta-active)))
3793 `(doom-modeline-buffer-path ((,class :inherit bold :foreground ,fg-active)))
3794 `(doom-modeline-debug ((,class :inherit bold :foreground ,yellow-active)))
3795 `(doom-modeline-debug-visual ((,class :inherit bold :foreground ,red-active)))
3796 `(doom-modeline-evil-emacs-state ((,class :inherit bold :foreground ,magenta-active)))
3797 `(doom-modeline-evil-insert-state ((,class :inherit bold :foreground ,green-active)))
3798 `(doom-modeline-evil-motion-state ((,class :inherit bold :foreground ,fg-inactive)))
3799 `(doom-modeline-evil-normal-state ((,class :inherit bold :foreground ,fg-active)))
3800 `(doom-modeline-evil-operator-state ((,class :inherit bold :foreground ,blue-active)))
3801 `(doom-modeline-evil-replace-state ((,class :inherit bold :foreground ,red-active)))
3802 `(doom-modeline-evil-visual-state ((,class :inherit bold :foreground ,cyan-active)))
3803 `(doom-modeline-highlight ((,class :inherit bold :foreground ,blue-active)))
3804 `(doom-modeline-host ((,class :inherit italic)))
3805 `(doom-modeline-info ((,class :foreground ,green-active)))
3806 `(doom-modeline-lsp-error ((,class :inherit bold :foreground ,red-active)))
3807 `(doom-modeline-lsp-success ((,class :inherit bold :foreground ,green-active)))
3808 `(doom-modeline-lsp-warning ((,class :inherit bold :foreground ,yellow-active)))
3809 `(doom-modeline-panel ((,class :inherit modus-theme-active-blue)))
3810 `(doom-modeline-persp-buffer-not-in-persp ((,class :inherit italic :foreground ,yellow-active)))
3811 `(doom-modeline-persp-name ((,class :foreground ,fg-active)))
3812 `(doom-modeline-project-dir ((,class :inherit bold :foreground ,blue-active)))
3813 `(doom-modeline-project-parent-dir ((,class :foreground ,blue-active)))
3814 `(doom-modeline-project-root-dir ((,class :foreground ,fg-active)))
3815 `(doom-modeline-unread-number ((,class :inherit italic :foreground ,fg-active)))
3816 `(doom-modeline-urgent ((,class :inherit bold :foreground ,red-active)))
3817 `(doom-modeline-warning ((,class :inherit bold :foreground ,yellow-active)))
3818;;;;; dynamic-ruler
3819 `(dynamic-ruler-negative-face ((,class :inherit modus-theme-intense-neutral)))
3820 `(dynamic-ruler-positive-face ((,class :inherit modus-theme-intense-yellow)))
3821;;;;; easy-jekyll
3822 `(easy-jekyll-help-face ((,class :background ,bg-dim :foreground ,cyan-alt-other)))
3823;;;;; easy-kill
3824 `(easy-kill-origin ((,class :inherit modus-theme-subtle-red)))
3825 `(easy-kill-selection ((,class :inherit modus-theme-subtle-yellow)))
3826;;;;; ebdb
3827 `(ebdb-address-default ((,class :foreground ,fg-special-calm)))
3828 `(ebdb-defunct ((,class :inherit shadow)))
3829 `(ebdb-field-hidden ((,class :foreground ,magenta)))
3830 `(ebdb-label ((,class :foreground ,cyan-alt-other)))
3831 `(ebdb-mail-default ((,class :foreground ,fg-main)))
3832 `(ebdb-mail-primary ((,class :foreground ,magenta-alt)))
3833 `(ebdb-marked ((,class :background ,cyan-intense-bg)))
3834 `(ebdb-organization-name ((,class :foreground ,red-alt-other)))
3835 `(ebdb-person-name ((,class :foreground ,magenta-alt-other)))
3836 `(ebdb-phone-default ((,class :foreground ,cyan)))
3837 `(eieio-custom-slot-tag-face ((,class :foreground ,red-alt)))
3838;;;;; ediff
3839 ;; NOTE: here we break from the pattern of inheriting from the
3840 ;; modus-theme-diff-* faces.
3841 `(ediff-current-diff-A ((,class ,@(modus-themes--diff
3842 bg-dim red
3843 bg-diff-removed fg-diff-removed
3844 red-nuanced-bg red-faint))))
3845 `(ediff-current-diff-Ancestor ((,class ,@(modus-themes--diff
3846 bg-dim fg-special-cold
3847 bg-special-cold fg-special-cold
3848 blue-nuanced-bg blue))))
3849 `(ediff-current-diff-B ((,class ,@(modus-themes--diff
3850 bg-dim green
3851 bg-diff-added fg-diff-added
3852 green-nuanced-bg green-faint
3853 bg-diff-added-deuteran fg-diff-added-deuteran))))
3854 `(ediff-current-diff-C ((,class ,@(modus-themes--diff
3855 bg-dim yellow
3856 bg-diff-changed fg-diff-changed
3857 yellow-nuanced-bg yellow-faint))))
3858 `(ediff-even-diff-A ((,class :background ,bg-diff-neutral-1 :foreground ,fg-diff-neutral-1)))
3859 `(ediff-even-diff-Ancestor ((,class :background ,bg-diff-neutral-2 :foreground ,fg-diff-neutral-1)))
3860 `(ediff-even-diff-B ((,class :background ,bg-diff-neutral-1 :foreground ,fg-diff-neutral-1)))
3861 `(ediff-even-diff-C ((,class :background ,bg-diff-neutral-2 :foreground ,fg-diff-neutral-2)))
3862 `(ediff-fine-diff-A ((,class :background ,bg-diff-focus-removed :foreground ,fg-diff-focus-removed)))
3863 `(ediff-fine-diff-Ancestor ((,class :inherit modus-theme-refine-cyan)))
3864 `(ediff-fine-diff-B
3865 ((,class :background ,@(modus-themes--diff-deuteran bg-diff-focus-added-deuteran bg-diff-focus-added)
3866 :foreground ,@(modus-themes--diff-deuteran fg-diff-focus-added-deuteran fg-diff-focus-added))))
3867 `(ediff-fine-diff-C ((,class :background ,bg-diff-focus-changed :foreground ,fg-diff-focus-changed)))
3868 `(ediff-odd-diff-A ((,class :background ,bg-diff-neutral-2 :foreground ,fg-diff-neutral-2)))
3869 `(ediff-odd-diff-Ancestor ((,class :background ,bg-diff-neutral-0 :foreground ,fg-diff-neutral-0)))
3870 `(ediff-odd-diff-B ((,class :background ,bg-diff-neutral-2 :foreground ,fg-diff-neutral-2)))
3871 `(ediff-odd-diff-C ((,class :background ,bg-diff-neutral-1 :foreground ,fg-diff-neutral-1)))
3872;;;;; eglot
3873 `(eglot-mode-line ((,class :inherit modus-theme-bold :foreground ,magenta-active)))
3874;;;;; el-search
3875 `(el-search-highlight-in-prompt-face ((,class :inherit bold :foreground ,magenta-alt)))
3876 `(el-search-match ((,class :inherit modus-theme-intense-green)))
3877 `(el-search-other-match ((,class :inherit modus-theme-special-mild)))
3878 `(el-search-occur-match ((,class :inherit modus-theme-special-calm)))
3879;;;;; eldoc
3880 ;; NOTE: see https://github.com/purcell/package-lint/issues/187
3881 (list 'eldoc-highlight-function-argument `((,class :inherit bold :foreground ,blue-alt-other)))
3882;;;;; eldoc-box
3883 `(eldoc-box-body ((,class :background ,bg-alt :foreground ,fg-main)))
3884 `(eldoc-box-border ((,class :background ,fg-alt)))
3885;;;;; elfeed
3886 `(elfeed-log-date-face ((,class :inherit elfeed-search-date-face)))
3887 `(elfeed-log-debug-level-face ((,class :inherit elfeed-search-filter-face)))
3888 `(elfeed-log-error-level-face ((,class :inherit error)))
3889 `(elfeed-log-info-level-face ((,class :inherit success)))
3890 `(elfeed-log-warn-level-face ((,class :inherit warning)))
3891 `(elfeed-search-date-face ((,class :foreground ,cyan)))
3892 `(elfeed-search-feed-face ((,class :foreground ,blue-faint)))
3893 `(elfeed-search-filter-face ((,class :inherit bold :foreground ,magenta-active)))
3894 `(elfeed-search-last-update-face ((,class :foreground ,cyan-active)))
3895 `(elfeed-search-tag-face ((,class :foreground ,cyan-alt-other)))
3896 `(elfeed-search-title-face ((,class :foreground ,fg-dim)))
3897 `(elfeed-search-unread-count-face ((,class :foreground ,green-active)))
3898 `(elfeed-search-unread-title-face ((,class :inherit bold :foreground ,fg-main)))
3899;;;;; elfeed-score
3900 `(elfeed-score-date-face ((,class :foreground ,blue)))
3901 `(elfeed-score-debug-level-face ((,class :foreground ,magenta-alt-other)))
3902 `(elfeed-score-error-level-face ((,class :foreground ,red)))
3903 `(elfeed-score-info-level-face ((,class :foreground ,cyan)))
3904 `(elfeed-score-warn-level-face ((,class :foreground ,yellow)))
3905;;;;; emms
3906 `(emms-playlist-track-face ((,class :foreground ,blue)))
3907 `(emms-playlist-selected-face ((,class :inherit bold :foreground ,magenta)))
3908;;;;; enhanced-ruby-mode
3909 `(enh-ruby-heredoc-delimiter-face ((,class :foreground ,blue-alt-other)))
3910 `(enh-ruby-op-face ((,class :foreground ,fg-main)))
3911 `(enh-ruby-regexp-delimiter-face ((,class :foreground ,green)))
3912 `(enh-ruby-regexp-face ((,class :foreground ,magenta)))
3913 `(enh-ruby-string-delimiter-face ((,class :foreground ,blue-alt)))
3914 `(erm-syn-errline ((,class :foreground ,red :underline t)))
3915 `(erm-syn-warnline ((,class :foreground ,yellow :underline t)))
3916;;;;; epa
3917 `(epa-field-body ((,class :foreground ,fg-main)))
3918 `(epa-field-name ((,class :inherit bold :foreground ,fg-dim)))
3919 `(epa-mark ((,class :inherit bold :foreground ,magenta)))
3920 `(epa-string ((,class :foreground ,blue-alt)))
3921 `(epa-validity-disabled ((,class :inherit modus-theme-refine-red)))
3922 `(epa-validity-high ((,class :inherit bold :foreground ,green-alt-other)))
3923 `(epa-validity-low ((,class :inherit shadow)))
3924 `(epa-validity-medium ((,class :foreground ,green-alt)))
3925;;;;; equake
3926 `(equake-buffer-face ((,class :background ,bg-main :foreground ,fg-main)))
3927 `(equake-shell-type-eshell ((,class :background ,bg-inactive :foreground ,green-active)))
3928 `(equake-shell-type-rash ((,class :background ,bg-inactive :foreground ,red-active)))
3929 `(equake-shell-type-shell ((,class :background ,bg-inactive :foreground ,cyan-active)))
3930 `(equake-shell-type-term ((,class :background ,bg-inactive :foreground ,yellow-active)))
3931 `(equake-shell-type-vterm ((,class :background ,bg-inactive :foreground ,magenta-active)))
3932 `(equake-tab-active ((,class :background ,fg-alt :foreground ,bg-alt)))
3933 `(equake-tab-inactive ((,class :foreground ,fg-inactive)))
3934;;;;; erc
3935 `(erc-action-face ((,class :inherit bold :foreground ,cyan)))
3936 `(erc-bold-face ((,class :inherit bold)))
3937 `(erc-button ((,class :inherit button)))
3938 `(erc-command-indicator-face ((,class :inherit bold :foreground ,cyan-alt)))
3939 `(erc-current-nick-face ((,class :foreground ,magenta-alt-other)))
3940 `(erc-dangerous-host-face ((,class :inherit modus-theme-intense-red)))
3941 `(erc-direct-msg-face ((,class :foreground ,magenta)))
3942 `(erc-error-face ((,class :inherit bold :foreground ,red)))
3943 `(erc-fool-face ((,class :foreground ,fg-inactive)))
3944 `(erc-header-line ((,class :background ,bg-header :foreground ,fg-header)))
3945 `(erc-input-face ((,class :foreground ,fg-special-calm)))
3946 `(erc-inverse-face ((,class :inherit erc-default-face :inverse-video t)))
3947 `(erc-keyword-face ((,class :inherit bold :foreground ,magenta-alt)))
3948 `(erc-my-nick-face ((,class :inherit bold :foreground ,magenta)))
3949 `(erc-my-nick-prefix-face ((,class :inherit erc-my-nick-face)))
3950 `(erc-nick-default-face ((,class :inherit bold :foreground ,blue)))
3951 `(erc-nick-msg-face ((,class :inherit bold :foreground ,green)))
3952 `(erc-nick-prefix-face ((,class :inherit erc-nick-default-face)))
3953 `(erc-notice-face ((,class :foreground ,fg-unfocused)))
3954 `(erc-pal-face ((,class :inherit bold :foreground ,red-alt)))
3955 `(erc-prompt-face ((,class :inherit bold :foreground ,cyan-alt-other)))
3956 `(erc-timestamp-face ((,class :foreground ,blue-nuanced-fg)))
3957 `(erc-underline-face ((,class :underline t)))
3958 `(bg:erc-color-face0 ((,class :background "white")))
3959 `(bg:erc-color-face1 ((,class :background "black")))
3960 `(bg:erc-color-face10 ((,class :background ,cyan-subtle-bg)))
3961 `(bg:erc-color-face11 ((,class :background ,cyan-intense-bg)))
3962 `(bg:erc-color-face12 ((,class :background ,blue-subtle-bg)))
3963 `(bg:erc-color-face13 ((,class :background ,magenta-subtle-bg)))
3964 `(bg:erc-color-face14 ((,class :background "gray60")))
3965 `(bg:erc-color-face15 ((,class :background "gray80")))
3966 `(bg:erc-color-face2 ((,class :background ,blue-intense-bg)))
3967 `(bg:erc-color-face3 ((,class :background ,green-intense-bg)))
3968 `(bg:erc-color-face4 ((,class :background ,red-subtle-bg)))
3969 `(bg:erc-color-face5 ((,class :background ,red-intense-bg)))
3970 `(bg:erc-color-face6 ((,class :background ,magenta-refine-bg)))
3971 `(bg:erc-color-face7 ((,class :background ,yellow-subtle-bg)))
3972 `(bg:erc-color-face8 ((,class :background ,yellow-refine-bg)))
3973 `(bg:erc-color-face9 ((,class :background ,green-subtle-bg)))
3974 `(fg:erc-color-face0 ((,class :foreground "white")))
3975 `(fg:erc-color-face1 ((,class :foreground "black")))
3976 `(fg:erc-color-face10 ((,class :foreground ,cyan)))
3977 `(fg:erc-color-face11 ((,class :foreground ,cyan-alt-other)))
3978 `(fg:erc-color-face12 ((,class :foreground ,blue)))
3979 `(fg:erc-color-face13 ((,class :foreground ,magenta-alt)))
3980 `(fg:erc-color-face14 ((,class :foreground "gray60")))
3981 `(fg:erc-color-face15 ((,class :foreground "gray80")))
3982 `(fg:erc-color-face2 ((,class :foreground ,blue-alt-other)))
3983 `(fg:erc-color-face3 ((,class :foreground ,green)))
3984 `(fg:erc-color-face4 ((,class :foreground ,red)))
3985 `(fg:erc-color-face5 ((,class :foreground ,red-alt)))
3986 `(fg:erc-color-face6 ((,class :foreground ,magenta-alt-other)))
3987 `(fg:erc-color-face7 ((,class :foreground ,yellow-alt-other)))
3988 `(fg:erc-color-face8 ((,class :foreground ,yellow-alt)))
3989 `(fg:erc-color-face9 ((,class :foreground ,green-alt-other)))
3990;;;;; eros
3991 `(eros-result-overlay-face ((,class :box (:line-width -1 :color ,blue)
3992 :background ,bg-dim :foreground ,fg-dim)))
3993;;;;; ert
3994 `(ert-test-result-expected ((,class :inherit modus-theme-intense-green)))
3995 `(ert-test-result-unexpected ((,class :inherit modus-theme-intense-red)))
3996;;;;; eshell
3997 `(eshell-ls-archive ((,class :inherit bold :foreground ,cyan-alt)))
3998 `(eshell-ls-backup ((,class :foreground ,yellow-alt)))
3999 `(eshell-ls-clutter ((,class :foreground ,red-alt)))
4000 `(eshell-ls-directory ((,class :inherit bold :foreground ,blue-alt)))
4001 `(eshell-ls-executable ((,class :foreground ,magenta-alt)))
4002 `(eshell-ls-missing ((,class :inherit modus-theme-intense-red)))
4003 `(eshell-ls-product ((,class :foreground ,fg-special-warm)))
4004 `(eshell-ls-readonly ((,class :foreground ,fg-special-cold)))
4005 `(eshell-ls-special ((,class :inherit bold :foreground ,magenta)))
4006 `(eshell-ls-symlink ((,class :inherit button
4007 ,@(modus-themes--link-color
4008 cyan cyan-faint))))
4009 `(eshell-ls-unreadable ((,class :background ,bg-inactive :foreground ,fg-inactive)))
4010 `(eshell-prompt ((,class :inherit modus-theme-bold
4011 ,@(modus-themes--prompt
4012 green-alt-other
4013 green-nuanced-bg green-alt
4014 green-refine-bg fg-main))))
4015;;;;; eshell-fringe-status
4016 `(eshell-fringe-status-failure ((,class :foreground ,red)))
4017 `(eshell-fringe-status-success ((,class :foreground ,green)))
4018;;;;; eshell-git-prompt
4019 `(eshell-git-prompt-add-face ((,class :inherit shadow)))
4020 `(eshell-git-prompt-branch-face ((,class :inherit shadow)))
4021 `(eshell-git-prompt-directory-face ((,class :foreground ,cyan)))
4022 `(eshell-git-prompt-exit-fail-face ((,class :foreground ,red)))
4023 `(eshell-git-prompt-exit-success-face ((,class :foreground ,green)))
4024 `(eshell-git-prompt-modified-face ((,class :foreground ,yellow)))
4025 `(eshell-git-prompt-powerline-clean-face ((,class :background ,green-refine-bg)))
4026 `(eshell-git-prompt-powerline-dir-face ((,class :background ,blue-refine-bg)))
4027 `(eshell-git-prompt-powerline-not-clean-face ((,class :background ,magenta-refine-bg)))
4028 `(eshell-git-prompt-robyrussell-branch-face ((,class :foreground ,red)))
4029 `(eshell-git-prompt-robyrussell-git-dirty-face ((,class :foreground ,yellow)))
4030 `(eshell-git-prompt-robyrussell-git-face ((,class :foreground ,blue)))
4031;;;;; eshell-prompt-extras (epe)
4032 `(epe-dir-face ((,class :inherit modus-theme-bold :foreground ,blue)))
4033 `(epe-git-dir-face ((,class :foreground ,red-alt-other)))
4034 `(epe-git-face ((,class :foreground ,cyan-alt)))
4035 `(epe-pipeline-delimiter-face ((,class :foreground ,green-alt)))
4036 `(epe-pipeline-host-face ((,class :foreground ,blue)))
4037 `(epe-pipeline-time-face ((,class :foreground ,fg-special-warm)))
4038 `(epe-pipeline-user-face ((,class :foreground ,magenta)))
4039 `(epe-remote-face ((,class :inherit modus-theme-slant :foreground ,fg-alt)))
4040 `(epe-status-face ((,class :foreground ,magenta-alt-other)))
4041 `(epe-venv-face ((,class :inherit modus-theme-slant :foreground ,fg-alt)))
4042;;;;; eshell-syntax-highlighting
4043 `(eshell-syntax-highlighting-alias-face ((,class :foreground ,cyan)))
4044 `(eshell-syntax-highlighting-comment-face ((,class :inherit shadow)))
4045 `(eshell-syntax-highlighting-directory-face ((,class :foreground ,blue)))
4046 `(eshell-syntax-highlighting-envvar-face ((,class :foreground ,magenta-alt)))
4047 `(eshell-syntax-highlighting-invalid-face ((,class :foreground ,red)))
4048 `(eshell-syntax-highlighting-lisp-function-face ((,class :foreground ,magenta)))
4049 `(eshell-syntax-highlighting-shell-command-face ((,class :foreground ,cyan-alt-other)))
4050 `(eshell-syntax-highlighting-string-face ((,class :foreground ,blue-alt)))
4051;;;;; evil-mode
4052 `(evil-ex-commands ((,class :foreground ,magenta-alt-other)))
4053 `(evil-ex-info ((,class :foreground ,cyan-alt-other)))
4054 `(evil-ex-lazy-highlight ((,class :inherit modus-theme-refine-cyan)))
4055 `(evil-ex-search ((,class :inherit modus-theme-intense-green)))
4056 `(evil-ex-substitute-matches ((,class :inherit modus-theme-refine-yellow :underline t)))
4057 `(evil-ex-substitute-replacement ((,class :inherit (modus-theme-intense-green bold))))
4058;;;;; evil-goggles
4059 `(evil-goggles-change-face ((,class :inherit modus-theme-refine-yellow)))
4060 `(evil-goggles-commentary-face ((,class :inherit (modus-theme-subtle-neutral modus-theme-slant))))
4061 `(evil-goggles-default-face ((,class :inherit modus-theme-subtle-neutral)))
4062 `(evil-goggles-delete-face ((,class :inherit modus-theme-refine-red)))
4063 `(evil-goggles-fill-and-move-face ((,class :inherit evil-goggles-default-face)))
4064 `(evil-goggles-indent-face ((,class :inherit evil-goggles-default-face)))
4065 `(evil-goggles-join-face ((,class :inherit modus-theme-subtle-green)))
4066 `(evil-goggles-nerd-commenter-face ((,class :inherit evil-goggles-commentary-face)))
4067 `(evil-goggles-paste-face ((,class :inherit modus-theme-subtle-cyan)))
4068 `(evil-goggles-record-macro-face ((,class :inherit modus-theme-special-cold)))
4069 `(evil-goggles-replace-with-register-face ((,class :inherit modus-theme-refine-magenta)))
4070 `(evil-goggles-set-marker-face ((,class :inherit modus-theme-intense-magenta)))
4071 `(evil-goggles-shift-face ((,class :inherit evil-goggles-default-face)))
4072 `(evil-goggles-surround-face ((,class :inherit evil-goggles-default-face)))
4073 `(evil-goggles-yank-face ((,class :inherit modus-theme-subtle-blue)))
4074;;;;; evil-snipe
4075 `(evil-snipe-first-match-face ((,class :inherit (bold modus-theme-intense-blue))))
4076 `(evil-snipe-matches-face ((,class :inherit modus-theme-refine-magenta)))
4077;;;;; evil-visual-mark-mode
4078 `(evil-visual-mark-face ((,class :inherit modus-theme-intense-magenta)))
4079;;;;; eww
4080 `(eww-invalid-certificate ((,class :foreground ,red-active)))
4081 `(eww-valid-certificate ((,class :foreground ,green-active)))
4082 `(eww-form-checkbox ((,class :box (:line-width 1 :color ,fg-inactive :style released-button) :background ,bg-inactive :foreground ,fg-main)))
4083 `(eww-form-file ((,class :box (:line-width 1 :color ,fg-inactive :style released-button) :background ,bg-active :foreground ,fg-main)))
4084 `(eww-form-select ((,class :inherit eww-form-checkbox)))
4085 `(eww-form-submit ((,class :inherit eww-form-file)))
4086 `(eww-form-text ((,class :box (:line-width 1 :color ,fg-inactive :style none) :background ,bg-active :foreground ,fg-active)))
4087 `(eww-form-textarea ((,class :background ,bg-alt :foreground ,fg-main)))
4088;;;;; eyebrowse
4089 `(eyebrowse-mode-line-active ((,class :inherit bold :foreground ,blue-active)))
4090;;;;; fancy-dabbrev
4091 `(fancy-dabbrev-menu-face ((,class :background ,bg-alt :foreground ,fg-alt)))
4092 `(fancy-dabbrev-preview-face ((,class :inherit shadow :underline t)))
4093 `(fancy-dabbrev-selection-face ((,class :inherit (modus-theme-intense-cyan bold))))
4094;;;;; flycheck
4095 `(flycheck-error ((,class :inherit modus-theme-lang-error)))
4096 `(flycheck-error-list-checker-name ((,class :foreground ,magenta-active)))
4097 `(flycheck-error-list-column-number ((,class :foreground ,fg-special-cold)))
4098 `(flycheck-error-list-error ((,class :inherit modus-theme-bold :foreground ,red)))
4099 `(flycheck-error-list-filename ((,class :foreground ,blue)))
4100 `(flycheck-error-list-highlight ((,class :inherit modus-theme-hl-line)))
4101 `(flycheck-error-list-id ((,class :foreground ,magenta-alt-other)))
4102 `(flycheck-error-list-id-with-explainer ((,class :inherit flycheck-error-list-id :box t)))
4103 `(flycheck-error-list-info ((,class :foreground ,cyan)))
4104 `(flycheck-error-list-line-number ((,class :foreground ,fg-special-warm)))
4105 `(flycheck-error-list-warning ((,class :foreground ,yellow)))
4106 `(flycheck-fringe-error ((,class :inherit modus-theme-fringe-red)))
4107 `(flycheck-fringe-info ((,class :inherit modus-theme-fringe-cyan)))
4108 `(flycheck-fringe-warning ((,class :inherit modus-theme-fringe-yellow)))
4109 `(flycheck-info ((,class :inherit modus-theme-lang-note)))
4110 `(flycheck-verify-select-checker ((,class :box (:line-width 1 :color nil :style released-button))))
4111 `(flycheck-warning ((,class :inherit modus-theme-lang-warning)))
4112;;;;; flycheck-color-mode-line
4113 `(flycheck-color-mode-line-error-face ((,class :inherit flycheck-fringe-error)))
4114 `(flycheck-color-mode-line-info-face ((,class :inherit flycheck-fringe-info)))
4115 `(flycheck-color-mode-line-running-face ((,class :inherit italic :foreground ,fg-inactive)))
4116 `(flycheck-color-mode-line-info-face ((,class :inherit flycheck-fringe-warning)))
4117;;;;; flycheck-indicator
4118 `(flycheck-indicator-disabled ((,class :inherit modus-theme-slant :foreground ,fg-inactive)))
4119 `(flycheck-indicator-error ((,class :inherit modus-theme-bold :foreground ,red-active)))
4120 `(flycheck-indicator-info ((,class :inherit modus-theme-bold :foreground ,blue-active)))
4121 `(flycheck-indicator-running ((,class :inherit modus-theme-bold :foreground ,magenta-active)))
4122 `(flycheck-indicator-success ((,class :inherit modus-theme-bold :foreground ,green-active)))
4123 `(flycheck-indicator-warning ((,class :inherit modus-theme-bold :foreground ,yellow-active)))
4124;;;;; flycheck-posframe
4125 `(flycheck-posframe-background-face ((,class :background ,bg-alt)))
4126 `(flycheck-posframe-border-face ((,class :inherit shadow)))
4127 `(flycheck-posframe-error-face ((,class :inherit bold :foreground ,red)))
4128 `(flycheck-posframe-face ((,class :inherit modus-theme-slant :foreground ,fg-main)))
4129 `(flycheck-posframe-info-face ((,class :inherit bold :foreground ,cyan)))
4130 `(flycheck-posframe-warning-face ((,class :inherit bold :foreground ,yellow)))
4131;;;;; flymake
4132 `(flymake-error ((,class :inherit modus-theme-lang-error)))
4133 `(flymake-note ((,class :inherit modus-theme-lang-note)))
4134 `(flymake-warning ((,class :inherit modus-theme-lang-warning)))
4135;;;;; flyspell
4136 `(flyspell-duplicate ((,class :inherit modus-theme-lang-warning)))
4137 `(flyspell-incorrect ((,class :inherit modus-theme-lang-error)))
4138;;;;; flyspell-correct
4139 `(flyspell-correct-highlight-face ((,class :inherit modus-theme-refine-green)))
4140;;;;; flx
4141 `(flx-highlight-face ((,class ,@(modus-themes--extra-completions
4142 'modus-theme-subtle-magenta
4143 'modus-theme-intense-magenta
4144 'modus-theme-nuanced-magenta
4145 magenta-alt
4146 'bold))))
4147;;;;; freeze-it
4148 `(freeze-it-show ((,class :background ,bg-dim :foreground ,fg-special-warm)))
4149;;;;; frog-menu
4150 `(frog-menu-action-keybinding-face ((,class :foreground ,blue-alt-other)))
4151 `(frog-menu-actions-face ((,class :foreground ,magenta)))
4152 `(frog-menu-border ((,class :background ,bg-active)))
4153 `(frog-menu-candidates-face ((,class :foreground ,fg-main)))
4154 `(frog-menu-posframe-background-face ((,class :background ,bg-dim)))
4155 `(frog-menu-prompt-face ((,class :foreground ,cyan)))
4156;;;;; focus
4157 `(focus-unfocused ((,class :foreground ,fg-unfocused)))
4158;;;;; fold-this
4159 `(fold-this-overlay ((,class :inherit modus-theme-special-mild)))
4160;;;;; font-lock
4161 `(font-lock-builtin-face ((,class :inherit modus-theme-bold
4162 ,@(modus-themes--syntax-extra
4163 magenta-alt magenta-alt-faint blue-alt))))
4164 `(font-lock-comment-delimiter-face ((,class :inherit font-lock-comment-face)))
4165 `(font-lock-comment-face ((,class :inherit modus-theme-slant
4166 ,@(modus-themes--syntax-comment
4167 fg-alt fg-comment-yellow))))
4168 `(font-lock-constant-face ((,class ,@(modus-themes--syntax-extra
4169 blue-alt-other blue-alt-other-faint magenta-alt-other))))
4170 `(font-lock-doc-face ((,class :inherit modus-theme-slant
4171 ,@(modus-themes--syntax-docstring
4172 fg-docstring green-alt-other-faint
4173 green-alt-other-faint magenta-nuanced-fg))))
4174 `(font-lock-function-name-face ((,class ,@(modus-themes--syntax-extra
4175 magenta magenta-faint magenta-alt))))
4176 `(font-lock-keyword-face ((,class :inherit modus-theme-bold
4177 ,@(modus-themes--syntax-extra
4178 magenta-alt-other magenta-alt-other-faint cyan-alt-other))))
4179 `(font-lock-negation-char-face ((,class :inherit modus-theme-bold
4180 ,@(modus-themes--syntax-foreground
4181 yellow yellow-faint))))
4182 `(font-lock-preprocessor-face ((,class ,@(modus-themes--syntax-foreground
4183 red-alt-other red-alt-other-faint))))
4184 `(font-lock-regexp-grouping-backslash ((,class :inherit bold
4185 ,@(modus-themes--syntax-string
4186 fg-escape-char-backslash yellow-alt-faint
4187 magenta-alt-other blue-alt))))
4188 `(font-lock-regexp-grouping-construct ((,class :inherit bold
4189 ,@(modus-themes--syntax-string
4190 fg-escape-char-construct red-alt-other-faint
4191 red magenta-alt))))
4192 `(font-lock-string-face ((,class ,@(modus-themes--syntax-string
4193 blue-alt blue-alt-faint green green-alt))))
4194 `(font-lock-type-face ((,class :inherit modus-theme-bold
4195 ,@(modus-themes--syntax-extra
4196 cyan-alt-other cyan-alt-faint cyan-alt))))
4197 `(font-lock-variable-name-face ((,class ,@(modus-themes--syntax-extra
4198 cyan cyan-faint blue-alt-faint))))
4199 `(font-lock-warning-face ((,class :inherit modus-theme-bold
4200 ,@(modus-themes--syntax-foreground
4201 yellow-active yellow-alt-faint))))
4202;;;;; forge
4203 `(forge-post-author ((,class :inherit bold :foreground ,fg-main)))
4204 `(forge-post-date ((,class :foreground ,fg-special-cold)))
4205 `(forge-topic-closed ((,class :inherit shadow)))
4206 `(forge-topic-merged ((,class :inherit shadow)))
4207 `(forge-topic-open ((,class :foreground ,fg-special-mild)))
4208 `(forge-topic-unmerged ((,class :inherit modus-theme-slant :foreground ,magenta)))
4209 `(forge-topic-unread ((,class :inherit bold :foreground ,fg-main)))
4210;;;;; fountain-mode
4211 `(fountain-character ((,class :foreground ,blue-alt-other)))
4212 `(fountain-comment ((,class :inherit modus-theme-slant :foreground ,fg-alt)))
4213 `(fountain-dialog ((,class :foreground ,blue-alt)))
4214 `(fountain-metadata-key ((,class :foreground ,green-alt-other)))
4215 `(fountain-metadata-value ((,class :foreground ,blue)))
4216 `(fountain-non-printing ((,class :inherit shadow)))
4217 `(fountain-note ((,class :inherit modus-theme-slant :foreground ,yellow)))
4218 `(fountain-page-break ((,class :inherit bold :foreground ,red-alt)))
4219 `(fountain-page-number ((,class :inherit bold :foreground ,red-alt-other)))
4220 `(fountain-paren ((,class :foreground ,cyan)))
4221 `(fountain-scene-heading ((,class :inherit bold :foreground ,blue-nuanced-fg)))
4222 `(fountain-section-heading ((,class :inherit modus-theme-heading-1)))
4223 `(fountain-section-heading-1 ((,class :inherit modus-theme-heading-1)))
4224 `(fountain-section-heading-2 ((,class :inherit modus-theme-heading-2)))
4225 `(fountain-section-heading-3 ((,class :inherit modus-theme-heading-3)))
4226 `(fountain-section-heading-4 ((,class :inherit modus-theme-heading-4)))
4227 `(fountain-section-heading-5 ((,class :inherit modus-theme-heading-5)))
4228 `(fountain-synopsis ((,class :foreground ,cyan-alt)))
4229 `(fountain-trans ((,class :foreground ,yellow-alt-other)))
4230;;;;; geiser
4231 `(geiser-font-lock-autodoc-current-arg ((,class :inherit font-lock-function-name-face)))
4232 `(geiser-font-lock-autodoc-identifier ((,class :inherit font-lock-constant-face)))
4233 `(geiser-font-lock-doc-button ((,class :inherit button :foreground ,fg-docstring)))
4234 `(geiser-font-lock-doc-link ((,class :inherit button)))
4235 `(geiser-font-lock-error-link ((,class :inherit button :foreground ,red)))
4236 `(geiser-font-lock-image-button ((,class :inherit button :foreground ,green-alt)))
4237 `(geiser-font-lock-repl-input ((,class :inherit bold)))
4238 `(geiser-font-lock-repl-output ((,class :inherit font-lock-keyword-face)))
4239 `(geiser-font-lock-repl-prompt ((,class :inherit minibuffer-prompt)))
4240 `(geiser-font-lock-xref-header ((,class :inherit bold)))
4241 `(geiser-font-lock-xref-link ((,class :inherit button)))
4242;;;;; git-commit
4243 `(git-commit-comment-action ((,class :inherit font-lock-comment-face)))
4244 `(git-commit-comment-branch-local ((,class :inherit modus-theme-slant :foreground ,blue-alt)))
4245 `(git-commit-comment-branch-remote ((,class :inherit modus-theme-slant :foreground ,magenta-alt)))
4246 `(git-commit-comment-detached ((,class :inherit modus-theme-slant :foreground ,cyan-alt)))
4247 `(git-commit-comment-file ((,class :inherit modus-theme-slant
4248 ,@(modus-themes--syntax-comment
4249 fg-special-cold red-nuanced-fg))))
4250 `(git-commit-comment-heading ((,class :inherit (bold modus-theme-slant)
4251 ,@(modus-themes--syntax-comment
4252 fg-dim fg-special-warm))))
4253 `(git-commit-keyword ((,class :foreground ,magenta)))
4254 `(git-commit-known-pseudo-header ((,class :foreground ,cyan-alt-other)))
4255 `(git-commit-nonempty-second-line ((,class :inherit modus-theme-refine-yellow)))
4256 `(git-commit-overlong-summary ((,class :inherit modus-theme-refine-yellow)))
4257 `(git-commit-pseudo-header ((,class :foreground ,blue)))
4258 `(git-commit-summary ((,class :inherit bold :foreground ,cyan)))
4259;;;;; git-gutter
4260 `(git-gutter:added ((,class :inherit modus-theme-fringe-green)))
4261 `(git-gutter:deleted ((,class :inherit modus-theme-fringe-red)))
4262 `(git-gutter:modified ((,class :inherit modus-theme-fringe-yellow)))
4263 `(git-gutter:separator ((,class :inherit modus-theme-fringe-cyan)))
4264 `(git-gutter:unchanged ((,class :inherit modus-theme-fringe-magenta)))
4265;;;;; git-gutter-fr
4266 `(git-gutter-fr:added ((,class :inherit modus-theme-fringe-green)))
4267 `(git-gutter-fr:deleted ((,class :inherit modus-theme-fringe-red)))
4268 `(git-gutter-fr:modified ((,class :inherit modus-theme-fringe-yellow)))
4269;;;;; git-{gutter,fringe}+
4270 `(git-gutter+-added ((,class :inherit modus-theme-fringe-green)))
4271 `(git-gutter+-deleted ((,class :inherit modus-theme-fringe-red)))
4272 `(git-gutter+-modified ((,class :inherit modus-theme-fringe-yellow)))
4273 `(git-gutter+-separator ((,class :inherit modus-theme-fringe-cyan)))
4274 `(git-gutter+-unchanged ((,class :inherit modus-theme-fringe-magenta)))
4275 `(git-gutter-fr+-added ((,class :inherit modus-theme-fringe-green)))
4276 `(git-gutter-fr+-deleted ((,class :inherit modus-theme-fringe-red)))
4277 `(git-gutter-fr+-modified ((,class :inherit modus-theme-fringe-yellow)))
4278;;;;; git-lens
4279 `(git-lens-added ((,class :inherit bold :foreground ,green)))
4280 `(git-lens-deleted ((,class :inherit bold :foreground ,red)))
4281 `(git-lens-header ((,class :inherit bold :height 1.1 :foreground ,cyan)))
4282 `(git-lens-modified ((,class :inherit bold :foreground ,yellow)))
4283 `(git-lens-renamed ((,class :inherit bold :foreground ,magenta)))
4284;;;;; git-rebase
4285 `(git-rebase-comment-hash ((,class :inherit modus-theme-slant
4286 ,@(modus-themes--syntax-comment
4287 fg-special-cold red-nuanced-fg))))
4288 `(git-rebase-comment-heading ((,class :inherit (bold modus-theme-slant)
4289 ,@(modus-themes--syntax-comment
4290 fg-dim fg-special-warm))))
4291 `(git-rebase-description ((,class :foreground ,fg-main)))
4292 `(git-rebase-hash ((,class :foreground ,cyan-alt-other)))
4293;;;;; git-timemachine
4294 `(git-timemachine-commit ((,class :inherit bold :foreground ,yellow-active)))
4295 `(git-timemachine-minibuffer-author-face ((,class :foreground ,fg-special-warm)))
4296 `(git-timemachine-minibuffer-detail-face ((,class :foreground ,red-alt)))
4297;;;;; git-walktree
4298 `(git-walktree-commit-face ((,class :foreground ,yellow)))
4299 `(git-walktree-symlink-face ((,class :inherit button)))
4300 `(git-walktree-tree-face ((,class :foreground ,magenta)))
4301;;;;; gnus
4302 `(gnus-button ((,class :inherit button)))
4303 `(gnus-cite-1 ((,class :foreground ,blue-faint)))
4304 `(gnus-cite-10 ((,class :foreground ,yellow-alt-other)))
4305 `(gnus-cite-11 ((,class :foreground ,magenta-alt)))
4306 `(gnus-cite-2 ((,class :foreground ,green-alt-other)))
4307 `(gnus-cite-3 ((,class :foreground ,red-alt-other)))
4308 `(gnus-cite-4 ((,class :foreground ,cyan)))
4309 `(gnus-cite-5 ((,class :foreground ,yellow-alt)))
4310 `(gnus-cite-6 ((,class :foreground ,magenta)))
4311 `(gnus-cite-7 ((,class :foreground ,green-alt)))
4312 `(gnus-cite-8 ((,class :foreground ,magenta-alt-other)))
4313 `(gnus-cite-9 ((,class :foreground ,cyan-alt)))
4314 `(gnus-cite-attribution ((,class :inherit italic :foreground ,fg-main)))
4315 `(gnus-emphasis-bold ((,class :inherit bold)))
4316 `(gnus-emphasis-bold-italic ((,class :inherit bold-italic)))
4317 `(gnus-emphasis-highlight-words ((,class :inherit modus-theme-refine-yellow)))
4318 `(gnus-emphasis-italic ((,class :inherit italic)))
4319 `(gnus-emphasis-underline-bold ((,class :inherit gnus-emphasis-bold :underline t)))
4320 `(gnus-emphasis-underline-bold-italic ((,class :inherit gnus-emphasis-bold-italic :underline t)))
4321 `(gnus-emphasis-underline-italic ((,class :inherit gnus-emphasis-italic :underline t)))
4322 `(gnus-group-mail-1 ((,class :inherit bold :foreground ,magenta-alt)))
4323 `(gnus-group-mail-1-empty ((,class :foreground ,magenta-alt)))
4324 `(gnus-group-mail-2 ((,class :inherit bold :foreground ,magenta)))
4325 `(gnus-group-mail-2-empty ((,class :foreground ,magenta)))
4326 `(gnus-group-mail-3 ((,class :inherit bold :foreground ,magenta-alt-other)))
4327 `(gnus-group-mail-3-empty ((,class :foreground ,magenta-alt-other)))
4328 `(gnus-group-mail-low ((,class :inherit bold :foreground ,magenta-nuanced-fg)))
4329 `(gnus-group-mail-low-empty ((,class :foreground ,magenta-nuanced-fg)))
4330 `(gnus-group-news-1 ((,class :inherit bold :foreground ,green)))
4331 `(gnus-group-news-1-empty ((,class :foreground ,green)))
4332 `(gnus-group-news-2 ((,class :inherit bold :foreground ,cyan)))
4333 `(gnus-group-news-2-empty ((,class :foreground ,cyan)))
4334 `(gnus-group-news-3 ((,class :inherit bold :foreground ,yellow-nuanced-fg)))
4335 `(gnus-group-news-3-empty ((,class :foreground ,yellow-nuanced-fg)))
4336 `(gnus-group-news-4 ((,class :inherit bold :foreground ,cyan-nuanced-fg)))
4337 `(gnus-group-news-4-empty ((,class :foreground ,cyan-nuanced-fg)))
4338 `(gnus-group-news-5 ((,class :inherit bold :foreground ,red-nuanced-fg)))
4339 `(gnus-group-news-5-empty ((,class :foreground ,red-nuanced-fg)))
4340 `(gnus-group-news-6 ((,class :inherit bold :foreground ,fg-alt)))
4341 `(gnus-group-news-6-empty ((,class :inherit shadow)))
4342 `(gnus-group-news-low ((,class :inherit bold :foreground ,green-nuanced-fg)))
4343 `(gnus-group-news-low-empty ((,class :foreground ,green-nuanced-fg)))
4344 `(gnus-header-content ((,class :inherit message-header-other)))
4345 `(gnus-header-from ((,class :inherit message-header-to :underline nil)))
4346 `(gnus-header-name ((,class :inherit message-header-name)))
4347 `(gnus-header-newsgroups ((,class :inherit message-header-newsgroups)))
4348 `(gnus-header-subject ((,class :inherit message-header-subject)))
4349 `(gnus-server-agent ((,class :inherit bold :foreground ,cyan)))
4350 `(gnus-server-closed ((,class :inherit bold :foreground ,magenta)))
4351 `(gnus-server-cloud ((,class :inherit bold :foreground ,cyan-alt)))
4352 `(gnus-server-cloud-host ((,class :inherit modus-theme-refine-cyan)))
4353 `(gnus-server-denied ((,class :inherit bold :foreground ,red)))
4354 `(gnus-server-offline ((,class :inherit bold :foreground ,yellow)))
4355 `(gnus-server-opened ((,class :inherit bold :foreground ,green)))
4356 `(gnus-signature ((,class :inherit italic :foreground ,fg-special-cold)))
4357 `(gnus-splash ((,class :inherit shadow)))
4358 `(gnus-summary-cancelled ((,class :inherit modus-theme-mark-alt)))
4359 `(gnus-summary-high-ancient ((,class :inherit bold :foreground ,fg-alt)))
4360 `(gnus-summary-high-read ((,class :inherit bold :foreground ,fg-special-cold)))
4361 `(gnus-summary-high-ticked ((,class :inherit bold :foreground ,red-alt-other)))
4362 `(gnus-summary-high-undownloaded ((,class :inherit bold :foreground ,yellow)))
4363 `(gnus-summary-high-unread ((,class :inherit bold :foreground ,fg-main)))
4364 `(gnus-summary-low-ancient ((,class :inherit italic :foreground ,fg-alt)))
4365 `(gnus-summary-low-read ((,class :inherit italic :foreground ,fg-alt)))
4366 `(gnus-summary-low-ticked ((,class :inherit italic :foreground ,red-refine-fg)))
4367 `(gnus-summary-low-undownloaded ((,class :inherit italic :foreground ,yellow-refine-fg)))
4368 `(gnus-summary-low-unread ((,class :inherit bold :foreground ,fg-special-cold)))
4369 `(gnus-summary-normal-ancient ((,class :foreground ,fg-special-calm)))
4370 `(gnus-summary-normal-read ((,class :inherit shadow)))
4371 `(gnus-summary-normal-ticked ((,class :foreground ,red-alt-other)))
4372 `(gnus-summary-normal-undownloaded ((,class :foreground ,yellow)))
4373 `(gnus-summary-normal-unread ((,class :foreground ,fg-main)))
4374 `(gnus-summary-selected ((,class :inherit modus-theme-subtle-blue)))
4375;;;;; golden-ratio-scroll-screen
4376 `(golden-ratio-scroll-highlight-line-face ((,class :background ,cyan-subtle-bg :foreground ,fg-main)))
4377;;;;; helm
4378 `(helm-M-x-key ((,class :inherit bold :foreground ,magenta-alt-other)))
4379 `(helm-action ((,class :underline t)))
4380 `(helm-bookmark-addressbook ((,class :foreground ,green-alt)))
4381 `(helm-bookmark-directory ((,class :inherit bold :foreground ,blue)))
4382 `(helm-bookmark-file ((,class :foreground ,fg-main)))
4383 `(helm-bookmark-file-not-found ((,class :background ,bg-alt :foreground ,fg-alt)))
4384 `(helm-bookmark-gnus ((,class :foreground ,magenta)))
4385 `(helm-bookmark-info ((,class :foreground ,cyan-alt)))
4386 `(helm-bookmark-man ((,class :foreground ,yellow-alt)))
4387 `(helm-bookmark-w3m ((,class :foreground ,blue-alt)))
4388 `(helm-buffer-archive ((,class :inherit bold :foreground ,cyan)))
4389 `(helm-buffer-directory ((,class :inherit bold :foreground ,blue)))
4390 `(helm-buffer-file ((,class :foreground ,fg-main)))
4391 `(helm-buffer-modified ((,class :foreground ,yellow-alt)))
4392 `(helm-buffer-not-saved ((,class :foreground ,red-alt)))
4393 `(helm-buffer-process ((,class :foreground ,magenta)))
4394 `(helm-buffer-saved-out ((,class :inherit bold :background ,bg-alt :foreground ,red)))
4395 `(helm-buffer-size ((,class :inherit shadow)))
4396 `(helm-candidate-number ((,class :foreground ,cyan-active)))
4397 `(helm-candidate-number-suspended ((,class :foreground ,yellow-active)))
4398 `(helm-comint-prompts-buffer-name ((,class :foreground ,green-active)))
4399 `(helm-comint-prompts-promptidx ((,class :foreground ,cyan-active)))
4400 `(helm-delete-async-message ((,class :inherit bold :foreground ,magenta-active)))
4401 `(helm-eob-line ((,class :background ,bg-main :foreground ,fg-main)))
4402 `(helm-eshell-prompts-buffer-name ((,class :foreground ,green-active)))
4403 `(helm-eshell-prompts-promptidx ((,class :foreground ,cyan-active)))
4404 `(helm-etags-file ((,class :foreground ,fg-dim :underline t)))
4405 `(helm-ff-backup-file ((,class :inherit shadow)))
4406 `(helm-ff-denied ((,class ,@(modus-themes--extra-completions
4407 'modus-theme-subtle-red
4408 'modus-theme-intense-red
4409 'modus-theme-nuanced-red
4410 red))))
4411 `(helm-ff-directory ((,class :inherit helm-buffer-directory)))
4412 `(helm-ff-dirs ((,class :inherit bold :foreground ,blue-alt-other)))
4413 `(helm-ff-dotted-directory ((,class :inherit bold :background ,bg-alt :foreground ,fg-alt)))
4414 `(helm-ff-dotted-symlink-directory ((,class :inherit (button helm-ff-dotted-directory))))
4415 `(helm-ff-executable ((,class :foreground ,magenta-alt)))
4416 `(helm-ff-file ((,class :foreground ,fg-main)))
4417 `(helm-ff-file-extension ((,class :foreground ,fg-special-warm)))
4418 `(helm-ff-invalid-symlink ((,class :inherit button
4419 ,@(modus-themes--link-color
4420 red red-faint))))
4421 `(helm-ff-pipe ((,class ,@(modus-themes--extra-completions
4422 'modus-theme-refine-magenta
4423 'modus-theme-subtle-magenta
4424 'modus-theme-nuanced-magenta
4425 magenta))))
4426 `(helm-ff-prefix ((,class ,@(modus-themes--extra-completions
4427 'modus-theme-refine-yellow
4428 'modus-theme-subtle-yellow
4429 'modus-theme-nuanced-yellow
4430 yellow-alt-other))))
4431 `(helm-ff-socket ((,class :foreground ,red-alt-other)))
4432 `(helm-ff-suid ((,class ,@(modus-themes--extra-completions
4433 'modus-theme-subtle-red
4434 'modus-theme-refine-red
4435 'modus-theme-nuanced-yellow
4436 red-alt))))
4437 `(helm-ff-symlink ((,class :inherit button
4438 ,@(modus-themes--link-color
4439 cyan cyan-faint))))
4440 `(helm-ff-truename ((,class :foreground ,blue-alt-other)))
4441 `(helm-fd-finish ((,class :foreground ,green-active)))
4442 `(helm-grep-cmd-line ((,class :foreground ,yellow-alt-other)))
4443 `(helm-grep-file ((,class :inherit bold :foreground ,fg-special-cold)))
4444 `(helm-grep-finish ((,class :foreground ,green-active)))
4445 `(helm-grep-lineno ((,class :foreground ,fg-special-warm)))
4446 `(helm-grep-match ((,class :inherit modus-theme-special-calm)))
4447 `(helm-header ((,class :inherit bold :foreground ,fg-special-cold)))
4448 `(helm-header-line-left-margin ((,class :inherit bold :foreground ,yellow-intense)))
4449 `(helm-history-deleted ((,class ,@(modus-themes--extra-completions
4450 'modus-theme-subtle-red
4451 'modus-theme-intense-red
4452 'modus-theme-nuanced-red
4453 red
4454 'bold))))
4455 `(helm-history-remote ((,class :foreground ,red-alt-other)))
4456 `(helm-lisp-completion-info ((,class :foreground ,fg-special-warm)))
4457 `(helm-lisp-show-completion ((,class ,@(modus-themes--extra-completions
4458 'modus-theme-subtle-yellow
4459 'modus-theme-refine-yellow
4460 'modus-theme-nuanced-yellow
4461 yellow
4462 'bold))))
4463 `(helm-locate-finish ((,class :foreground ,green-active)))
4464 `(helm-match ((,class ,@(modus-themes--extra-completions
4465 'modus-theme-subtle-cyan
4466 'modus-theme-refine-cyan
4467 'modus-theme-nuanced-cyan
4468 cyan
4469 'bold))))
4470 `(helm-match-item ((,class ,@(modus-themes--extra-completions
4471 'modus-theme-subtle-neutral
4472 'modus-theme-subtle-cyan
4473 'modus-theme-nuanced-cyan
4474 cyan-alt-other))))
4475 `(helm-minibuffer-prompt ((,class :inherit minibuffer-prompt)))
4476 `(helm-moccur-buffer ((,class :inherit button
4477 ,@(modus-themes--link-color
4478 cyan-alt-other cyan-alt-other-faint))))
4479 `(helm-mode-prefix ((,class ,@(modus-themes--extra-completions
4480 'modus-theme-subtle-magenta
4481 'modus-theme-intense-magenta
4482 'modus-theme-nuanced-magenta
4483 magenta-alt
4484 'bold))))
4485 `(helm-non-file-buffer ((,class :inherit shadow)))
4486 `(helm-prefarg ((,class :foreground ,red-active)))
4487 `(helm-resume-need-update ((,class ,@(modus-themes--extra-completions
4488 'modus-theme-subtle-magenta
4489 'modus-theme-refine-magenta
4490 'modus-theme-nuanced-magenta
4491 magenta-alt-other))))
4492 `(helm-selection ((,class ,@(modus-themes--extra-completions
4493 'modus-theme-subtle-blue
4494 'modus-theme-refine-blue
4495 'modus-theme-special-cold
4496 nil
4497 'bold))))
4498 `(helm-selection-line ((,class :inherit modus-theme-special-cold)))
4499 `(helm-separator ((,class :foreground ,fg-special-mild)))
4500 `(helm-time-zone-current ((,class :foreground ,green)))
4501 `(helm-time-zone-home ((,class :foreground ,magenta)))
4502 `(helm-source-header ((,class :inherit bold :foreground ,red-alt
4503 ,@(modus-themes--scale modus-themes-scale-4))))
4504 `(helm-top-columns ((,class :inherit helm-header)))
4505 `(helm-ucs-char ((,class :foreground ,yellow-alt-other)))
4506 `(helm-visible-mark ((,class :inherit modus-theme-subtle-cyan)))
4507;;;;; helm-ls-git
4508 `(helm-ls-git-added-copied-face ((,class :foreground ,green-intense)))
4509 `(helm-ls-git-added-modified-face ((,class :foreground ,yellow-intense)))
4510 `(helm-ls-git-conflict-face ((,class :inherit bold :foreground ,red-intense)))
4511 `(helm-ls-git-deleted-and-staged-face ((,class :foreground ,red-nuanced-fg)))
4512 `(helm-ls-git-deleted-not-staged-face ((,class :foreground ,red)))
4513 `(helm-ls-git-modified-and-staged-face ((,class :foreground ,yellow-nuanced-fg)))
4514 `(helm-ls-git-modified-not-staged-face ((,class :foreground ,yellow)))
4515 `(helm-ls-git-renamed-modified-face ((,class :foreground ,magenta)))
4516 `(helm-ls-git-untracked-face ((,class :foreground ,fg-special-cold)))
4517;;;;; helm-switch-shell
4518 `(helm-switch-shell-new-shell-face ((,class ,@(modus-themes--extra-completions
4519 'modus-theme-subtle-magenta
4520 'modus-theme-refine-magenta
4521 'modus-theme-nuanced-magenta
4522 magenta-alt-other
4523 'bold))))
4524;;;;; helm-xref
4525 `(helm-xref-file-name ((,class :inherit bold :foreground ,fg-special-cold)))
4526 `(helm-xref-file-name ((,class :foreground ,fg-special-warm)))
4527;;;;; helpful
4528 `(helpful-heading ((,class :inherit modus-theme-heading-1)))
4529;;;;; highlight region or ad-hoc regexp
4530 `(hi-aquamarine ((,class :background ,cyan-subtle-bg :foreground ,fg-main)))
4531 `(hi-black-b ((,class :inherit bold :background ,fg-main :foreground ,bg-main)))
4532 `(hi-black-hb ((,class :inherit bold :background ,fg-alt :foreground ,bg-main)))
4533 `(hi-blue ((,class :background ,blue-subtle-bg :foreground ,fg-main)))
4534 `(hi-blue-b ((,class :inherit (bold hi-blue))))
4535 `(hi-green ((,class :background ,green-subtle-bg :foreground ,fg-main)))
4536 `(hi-green-b ((,class :inherit (bold hi-green))))
4537 `(hi-pink ((,class :background ,magenta-subtle-bg :foreground ,fg-main)))
4538 `(hi-pink-b ((,class :inherit (bold hi-pink))))
4539 `(hi-red-b ((,class :inherit bold :background ,red-intense-bg :foreground ,fg-main)))
4540 `(hi-salmon ((,class :background ,red-subtle-bg :foreground ,fg-main)))
4541 `(hi-yellow ((,class :background ,yellow-subtle-bg :foreground ,fg-main)))
4542 `(highlight ((,class :inherit modus-theme-subtle-blue)))
4543 `(highlight-changes ((,class :foreground ,yellow-alt-other)))
4544 `(highlight-changes-delete ((,class :foreground ,red-alt-other :underline t)))
4545 `(hl-line ((,class :inherit modus-theme-hl-line)))
4546;;;;; highlight-blocks
4547 `(highlight-blocks-depth-1-face ((,class :background ,bg-dim :foreground ,fg-main)))
4548 `(highlight-blocks-depth-2-face ((,class :background ,bg-alt :foreground ,fg-main)))
4549 `(highlight-blocks-depth-3-face ((,class :background ,bg-special-cold :foreground ,fg-main)))
4550 `(highlight-blocks-depth-4-face ((,class :background ,bg-special-calm :foreground ,fg-main)))
4551 `(highlight-blocks-depth-5-face ((,class :background ,bg-special-warm :foreground ,fg-main)))
4552 `(highlight-blocks-depth-6-face ((,class :background ,bg-special-mild :foreground ,fg-main)))
4553 `(highlight-blocks-depth-7-face ((,class :background ,bg-inactive :foreground ,fg-main)))
4554 `(highlight-blocks-depth-8-face ((,class :background ,bg-active :foreground ,fg-main)))
4555 `(highlight-blocks-depth-9-face ((,class :background ,cyan-subtle-bg :foreground ,fg-main)))
4556;;;;; highlight-defined
4557 `(highlight-defined-builtin-function-name-face ((,class :foreground ,magenta)))
4558 `(highlight-defined-face-name-face ((,class :foreground ,fg-main)))
4559 `(highlight-defined-function-name-face ((,class :foreground ,magenta)))
4560 `(highlight-defined-macro-name-face ((,class :foreground ,magenta-alt)))
4561 `(highlight-defined-special-form-name-face ((,class :foreground ,magenta-alt-other)))
4562 `(highlight-defined-variable-name-face ((,class :foreground ,cyan)))
4563;;;;; highlight-escape-sequences (`hes-mode')
4564 `(hes-escape-backslash-face ((,class :inherit bold :foreground ,fg-escape-char-construct)))
4565 `(hes-escape-sequence-face ((,class :inherit bold :foreground ,fg-escape-char-backslash)))
4566;;;;; highlight-indentation
4567 `(highlight-indentation-face ((,class :inherit modus-theme-hl-line)))
4568 `(highlight-indentation-current-column-face ((,class :background ,bg-active)))
4569;;;;; highlight-numbers
4570 `(highlight-numbers-number ((,class :foreground ,blue-alt-other)))
4571;;;;; highlight-symbol
4572 `(highlight-symbol-face ((,class :inherit modus-theme-special-mild)))
4573;;;;; highlight-thing
4574 `(highlight-thing ((,class :background ,bg-alt :foreground ,cyan)))
4575;;;;; hl-defined
4576 `(hdefd-functions ((,class :foreground ,blue)))
4577 `(hdefd-undefined ((,class :foreground ,red-alt)))
4578 `(hdefd-variables ((,class :foreground ,cyan-alt)))
4579;;;;; hl-fill-column
4580 `(hl-fill-column-face ((,class :background ,bg-active :foreground ,fg-active)))
4581;;;;; hl-todo
4582 `(hl-todo ((,class :inherit (bold modus-theme-slant) :foreground ,red-alt-other)))
4583;;;;; hydra
4584 `(hydra-face-amaranth ((,class :inherit bold :foreground ,yellow)))
4585 `(hydra-face-blue ((,class :inherit bold :foreground ,blue-alt)))
4586 `(hydra-face-pink ((,class :inherit bold :foreground ,magenta-alt)))
4587 `(hydra-face-red ((,class :inherit bold :foreground ,red)))
4588 `(hydra-face-teal ((,class :inherit bold :foreground ,cyan)))
4589;;;;; hyperlist
4590 `(hyperlist-condition ((,class :foreground ,green)))
4591 `(hyperlist-hashtag ((,class :foreground ,yellow)))
4592 `(hyperlist-operator ((,class :foreground ,blue-alt)))
4593 `(hyperlist-paren ((,class :foreground ,cyan-alt-other)))
4594 `(hyperlist-quote ((,class :foreground ,cyan-alt)))
4595 `(hyperlist-ref ((,class :foreground ,magenta-alt-other)))
4596 `(hyperlist-stars ((,class :inherit shadow)))
4597 `(hyperlist-tag ((,class :foreground ,red)))
4598 `(hyperlist-toplevel ((,class :inherit bold :foreground ,fg-main)))
4599;;;;; icomplete
4600 `(icomplete-first-match ((,class :inherit bold
4601 ,@(modus-themes--standard-completions
4602 magenta bg-alt
4603 bg-active fg-main))))
4604;;;;; icomplete-vertical
4605 `(icomplete-vertical-separator ((,class :inherit shadow)))
4606;;;;; ido-mode
4607 `(ido-first-match ((,class :inherit bold
4608 ,@(modus-themes--standard-completions
4609 magenta bg-alt
4610 bg-active fg-main))))
4611 `(ido-incomplete-regexp ((,class :inherit error)))
4612 `(ido-indicator ((,class :inherit modus-theme-subtle-yellow)))
4613 `(ido-only-match ((,class :inherit bold
4614 ,@(modus-themes--standard-completions
4615 green green-nuanced-bg
4616 green-intense-bg fg-main))))
4617 `(ido-subdir ((,class :foreground ,blue)))
4618 `(ido-virtual ((,class :foreground ,fg-special-warm)))
4619;;;;; iedit
4620 `(iedit-occurrence ((,class :inherit modus-theme-refine-blue)))
4621 `(iedit-read-only-occurrence ((,class :inherit modus-theme-intense-yellow)))
4622;;;;; iflipb
4623 `(iflipb-current-buffer-face ((,class :inherit bold :foreground ,cyan-alt)))
4624 `(iflipb-other-buffer-face ((,class :inherit shadow)))
4625;;;;; imenu-list
4626 `(imenu-list-entry-face-0 ((,class :foreground ,cyan)))
4627 `(imenu-list-entry-face-1 ((,class :foreground ,blue)))
4628 `(imenu-list-entry-face-2 ((,class :foreground ,cyan-alt-other)))
4629 `(imenu-list-entry-face-3 ((,class :foreground ,blue-alt)))
4630 `(imenu-list-entry-subalist-face-0 ((,class :inherit bold :foreground ,magenta-alt-other :underline t)))
4631 `(imenu-list-entry-subalist-face-1 ((,class :inherit bold :foreground ,magenta :underline t)))
4632 `(imenu-list-entry-subalist-face-2 ((,class :inherit bold :foreground ,green-alt-other :underline t)))
4633 `(imenu-list-entry-subalist-face-3 ((,class :inherit bold :foreground ,red-alt-other :underline t)))
4634;;;;; indium
4635 `(indium-breakpoint-face ((,class :foreground ,red-active)))
4636 `(indium-frame-url-face ((,class :inherit button :foreground ,fg-alt)))
4637 `(indium-keyword-face ((,class :foreground ,magenta-alt-other)))
4638 `(indium-litable-face ((,class :inherit modus-theme-slant :foreground ,fg-special-warm)))
4639 `(indium-repl-error-face ((,class :inherit bold :foreground ,red)))
4640 `(indium-repl-prompt-face ((,class :foreground ,cyan-alt-other)))
4641 `(indium-repl-stdout-face ((,class :foreground ,fg-main)))
4642;;;;; info
4643 `(Info-quoted ((,class ,@(modus-themes--mixed-fonts) ; the capitalization is canonical
4644 :background ,bg-alt :foreground ,fg-special-calm)))
4645 `(info-header-node ((,class :inherit bold :foreground ,fg-alt)))
4646 `(info-header-xref ((,class :foreground ,blue-active)))
4647 `(info-index-match ((,class :inherit match)))
4648 `(info-menu-header ((,class :inherit modus-theme-heading-3)))
4649 `(info-menu-star ((,class :foreground ,red)))
4650 `(info-node ((,class :inherit bold)))
4651 `(info-title-1 ((,class :inherit modus-theme-heading-1)))
4652 `(info-title-2 ((,class :inherit modus-theme-heading-2)))
4653 `(info-title-3 ((,class :inherit modus-theme-heading-3)))
4654 `(info-title-4 ((,class :inherit modus-theme-heading-4)))
4655;;;;; info-colors
4656 `(info-colors-lisp-code-block ((,class :inherit fixed-pitch)))
4657 `(info-colors-ref-item-command ((,class :foreground ,magenta)))
4658 `(info-colors-ref-item-constant ((,class :inherit font-lock-constant-face)))
4659 `(info-colors-ref-item-function ((,class :inherit font-lock-function-name-face)))
4660 `(info-colors-ref-item-macro ((,class :inherit font-lock-keyword-face)))
4661 `(info-colors-ref-item-other ((,class :inherit font-lock-doc-face)))
4662 `(info-colors-ref-item-special-form ((,class :inherit font-lock-keyword-face)))
4663 `(info-colors-ref-item-syntax-class ((,class :inherit font-lock-builtin-face)))
4664 `(info-colors-ref-item-type ((,class :inherit font-lock-type-face)))
4665 `(info-colors-ref-item-user-option ((,class :inherit font-lock-variable-name-face)))
4666 `(info-colors-ref-item-variable ((,class :inherit font-lock-variable-name-face)))
4667;;;;; interaction-log
4668 `(ilog-buffer-face ((,class :foreground ,magenta-alt-other)))
4669 `(ilog-change-face ((,class :foreground ,magenta-alt)))
4670 `(ilog-echo-face ((,class :foreground ,yellow-alt-other)))
4671 `(ilog-load-face ((,class :foreground ,green)))
4672 `(ilog-message-face ((,class :inherit shadow)))
4673 `(ilog-non-change-face ((,class :foreground ,blue)))
4674;;;;; ioccur
4675 `(ioccur-cursor ((,class :foreground ,fg-main)))
4676 `(ioccur-invalid-regexp ((,class :foreground ,red)))
4677 `(ioccur-match-face ((,class :inherit modus-theme-special-calm)))
4678 `(ioccur-match-overlay-face ((,class :inherit modus-theme-special-cold :extend t)))
4679 `(ioccur-num-line-face ((,class :foreground ,fg-special-warm)))
4680 `(ioccur-overlay-face ((,class :inherit modus-theme-refine-blue :extend t)))
4681 `(ioccur-regexp-face ((,class :inherit (modus-theme-intense-magenta bold))))
4682 `(ioccur-title-face ((,class :inherit bold :foreground ,red-alt
4683 ,@(modus-themes--scale modus-themes-scale-4))))
4684;;;;; isearch, occur, and the like
4685 `(isearch ((,class :inherit (modus-theme-intense-green bold))))
4686 `(isearch-fail ((,class :inherit modus-theme-refine-red)))
4687 `(isearch-group-1 ((,class :inherit modus-theme-intense-blue)))
4688 `(isearch-group-2 ((,class :inherit modus-theme-intense-magenta)))
4689 `(lazy-highlight ((,class :inherit modus-theme-refine-cyan)))
4690 `(match ((,class :inherit modus-theme-special-calm)))
4691 `(query-replace ((,class :inherit (modus-theme-intense-yellow bold))))
4692;;;;; isl (isearch-light)
4693 `(isl-line ((,class :inherit modus-theme-subtle-green)))
4694 `(isl-match ((,class :inherit modus-theme-refine-cyan)))
4695 `(isl-number ((,class :inherit modus-theme-bold :foreground ,green-active)))
4696 `(isl-on ((,class :inherit (bold modus-theme-intense-green))))
4697 `(isl-string ((,class :inherit modus-theme-bold :foreground ,cyan-active)))
4698;;;;; ivy
4699 `(ivy-action ((,class :inherit bold :foreground ,red-alt)))
4700 `(ivy-completions-annotations ((,class :inherit completions-annotations)))
4701 `(ivy-confirm-face ((,class :foreground ,cyan)))
4702 `(ivy-current-match ((,class ,@(modus-themes--extra-completions
4703 'modus-theme-refine-cyan
4704 'modus-theme-intense-cyan
4705 'modus-theme-special-cold
4706 nil
4707 'bold))))
4708 `(ivy-cursor ((,class :background ,fg-main :foreground ,bg-main)))
4709 `(ivy-grep-info ((,class :foreground ,cyan-alt)))
4710 `(ivy-grep-line-number ((,class :foreground ,fg-special-warm)))
4711 `(ivy-highlight-face ((,class :foreground ,magenta)))
4712 `(ivy-match-required-face ((,class :inherit error)))
4713 `(ivy-minibuffer-match-face-1 ((,class ,@(modus-themes--extra-completions
4714 'modus-theme-subtle-neutral
4715 'modus-theme-intense-neutral
4716 'modus-theme-nuanced-cyan
4717 fg-alt))))
4718 `(ivy-minibuffer-match-face-2 ((,class ,@(modus-themes--extra-completions
4719 'modus-theme-subtle-green
4720 'modus-theme-refine-green
4721 'modus-theme-nuanced-green
4722 green-alt-other
4723 'bold))))
4724 `(ivy-minibuffer-match-face-3 ((,class ,@(modus-themes--extra-completions
4725 'modus-theme-subtle-blue
4726 'modus-theme-refine-blue
4727 'modus-theme-nuanced-blue
4728 blue-alt-other
4729 'bold))))
4730 `(ivy-minibuffer-match-face-4 ((,class ,@(modus-themes--extra-completions
4731 'modus-theme-subtle-magenta
4732 'modus-theme-refine-magenta
4733 'modus-theme-nuanced-magenta
4734 magenta-alt-other
4735 'bold))))
4736 `(ivy-minibuffer-match-highlight ((,class ,@(modus-themes--extra-completions
4737 'modus-theme-subtle-cyan
4738 'modus-theme-intense-cyan
4739 'modus-theme-nuanced-cyan
4740 cyan-alt-other
4741 'bold))))
4742 `(ivy-modified-buffer ((,class :inherit modus-theme-slant :foreground ,yellow)))
4743 `(ivy-modified-outside-buffer ((,class :inherit modus-theme-slant :foreground ,yellow-alt)))
4744 `(ivy-org ((,class :foreground ,cyan-alt-other)))
4745 `(ivy-prompt-match ((,class :inherit ivy-current-match)))
4746 `(ivy-remote ((,class :foreground ,magenta)))
4747 `(ivy-separator ((,class :inherit shadow)))
4748 `(ivy-subdir ((,class :foreground ,blue-alt-other)))
4749 `(ivy-virtual ((,class :foreground ,magenta-alt-other)))
4750 `(ivy-yanked-word ((,class ,@(modus-themes--extra-completions
4751 'modus-theme-subtle-blue
4752 'modus-theme-refine-blue
4753 'modus-theme-nuanced-blue
4754 blue-alt))))
4755;;;;; ivy-posframe
4756 `(ivy-posframe ((,class :background ,bg-dim :foreground ,fg-main)))
4757 `(ivy-posframe-border ((,class :background ,fg-window-divider-inner)))
4758 `(ivy-posframe-cursor ((,class :background ,fg-main :foreground ,bg-main)))
4759;;;;; jira (org-jira)
4760 `(jiralib-comment-face ((,class :background ,bg-alt)))
4761 `(jiralib-comment-header-face ((,class :inherit bold)))
4762 `(jiralib-issue-info-face ((,class :inherit modus-theme-special-warm)))
4763 `(jiralib-issue-info-header-face ((,class :inherit (modus-theme-special-warm bold))))
4764 `(jiralib-issue-summary-face ((,class :inherit bold)))
4765 `(jiralib-link-filter-face ((,class :underline t)))
4766 `(jiralib-link-issue-face ((,class :underline t)))
4767 `(jiralib-link-project-face ((,class :underline t)))
4768;;;;; journalctl-mode
4769 `(journalctl-error-face ((,class :inherit bold :foreground ,red)))
4770 `(journalctl-finished-face ((,class :inherit bold :foreground ,green)))
4771 `(journalctl-host-face ((,class :foreground ,blue)))
4772 `(journalctl-process-face ((,class :foreground ,cyan-alt-other)))
4773 `(journalctl-starting-face ((,class :foreground ,green)))
4774 `(journalctl-timestamp-face ((,class :foreground ,fg-special-cold)))
4775 `(journalctl-warning-face ((,class :inherit bold :foreground ,yellow)))
4776;;;;; js2-mode
4777 `(js2-error ((,class :foreground ,red)))
4778 `(js2-external-variable ((,class :foreground ,cyan-alt-other)))
4779 `(js2-function-call ((,class :foreground ,magenta)))
4780 `(js2-function-param ((,class :foreground ,blue)))
4781 `(js2-instance-member ((,class :foreground ,magenta-alt-other)))
4782 `(js2-jsdoc-html-tag-delimiter ((,class :foreground ,fg-main)))
4783 `(js2-jsdoc-html-tag-name ((,class :foreground ,cyan)))
4784 `(js2-jsdoc-tag ((,class :foreground ,fg-special-calm)))
4785 `(js2-jsdoc-type ((,class :foreground ,fg-special-cold)))
4786 `(js2-jsdoc-value ((,class :foreground ,fg-special-warm)))
4787 `(js2-object-property ((,class :foreground ,fg-main)))
4788 `(js2-object-property-access ((,class :foreground ,fg-main)))
4789 `(js2-private-function-call ((,class :foreground ,green-alt-other)))
4790 `(js2-private-member ((,class :foreground ,fg-special-mild)))
4791 `(js2-warning ((,class :foreground ,yellow-alt :underline t)))
4792;;;;; julia
4793 `(julia-macro-face ((,class :inherit modus-theme-bold :foreground ,magenta)))
4794 `(julia-quoted-symbol-face ((,class :foreground ,blue-alt-other)))
4795;;;;; jupyter
4796 `(jupyter-eval-overlay ((,class :inherit bold :foreground ,blue)))
4797 `(jupyter-repl-input-prompt ((,class :foreground ,cyan-alt-other)))
4798 `(jupyter-repl-output-prompt ((,class :foreground ,magenta-alt-other)))
4799 `(jupyter-repl-traceback ((,class :inherit modus-theme-intense-red)))
4800;;;;; kaocha-runner
4801 `(kaocha-runner-error-face ((,class :foreground ,red)))
4802 `(kaocha-runner-success-face ((,class :foreground ,green)))
4803 `(kaocha-runner-warning-face ((,class :foreground ,yellow)))
4804;;;;; keycast
4805 `(keycast-command ((,class :inherit bold :foreground ,blue-active)))
4806 `(keycast-key ((,class ,@(modus-themes--mode-line-attrs
4807 bg-main blue-active
4808 bg-main blue-active
4809 blue-active blue-intense
4810 'alt-style -3))))
4811;;;;; line numbers (display-line-numbers-mode and global variant)
4812 `(line-number
4813 ((,class :inherit default
4814 ,@(modus-themes--line-numbers
4815 fg-alt bg-dim
4816 fg-unfocused))))
4817 `(line-number-current-line
4818 ((,class :inherit (bold default)
4819 ,@(modus-themes--line-numbers
4820 fg-main bg-active
4821 blue-alt-other))))
4822 `(line-number-major-tick
4823 ((,class :inherit (bold default)
4824 ,@(modus-themes--line-numbers
4825 yellow-nuanced-fg yellow-nuanced-bg
4826 red-alt))))
4827 `(line-number-minor-tick
4828 ((,class :inherit (bold default)
4829 ,@(modus-themes--line-numbers
4830 fg-alt bg-inactive
4831 fg-inactive))))
4832;;;;; lsp-mode
4833 `(lsp-face-highlight-read ((,class :inherit modus-theme-subtle-blue :underline t)))
4834 `(lsp-face-highlight-textual ((,class :inherit modus-theme-subtle-blue)))
4835 `(lsp-face-highlight-write ((,class :inherit (modus-theme-refine-blue bold))))
4836 `(lsp-face-semhl-constant ((,class :foreground ,blue-alt-other)))
4837 `(lsp-face-semhl-deprecated
4838 ((,(append '((supports :underline (:style wave))) class)
4839 :foreground ,yellow :underline (:style wave))
4840 (,class :foreground ,yellow :underline t)))
4841 `(lsp-face-semhl-enummember ((,class :foreground ,blue-alt-other)))
4842 `(lsp-face-semhl-field ((,class :foreground ,cyan-alt)))
4843 `(lsp-face-semhl-field-static ((,class :inherit modus-theme-slant :foreground ,cyan-alt)))
4844 `(lsp-face-semhl-function ((,class :foreground ,magenta)))
4845 `(lsp-face-semhl-method ((,class :foreground ,magenta)))
4846 `(lsp-face-semhl-namespace ((,class :inherit modus-theme-bold :foreground ,magenta-alt)))
4847 `(lsp-face-semhl-preprocessor ((,class :foreground ,red-alt-other)))
4848 `(lsp-face-semhl-static-method ((,class :inherit modus-theme-slant :foreground ,magenta)))
4849 `(lsp-face-semhl-type-class ((,class :foreground ,magenta-alt)))
4850 `(lsp-face-semhl-type-enum ((,class :foreground ,magenta-alt)))
4851 `(lsp-face-semhl-type-primitive ((,class :inherit modus-theme-slant :foreground ,magenta-alt)))
4852 `(lsp-face-semhl-type-template ((,class :inherit modus-theme-slant :foreground ,magenta-alt)))
4853 `(lsp-face-semhl-type-typedef ((,class :inherit modus-theme-slant :foreground ,magenta-alt)))
4854 `(lsp-face-semhl-variable ((,class :foreground ,cyan)))
4855 `(lsp-face-semhl-variable-local ((,class :foreground ,cyan)))
4856 `(lsp-face-semhl-variable-parameter ((,class :foreground ,cyan-alt-other)))
4857 `(lsp-lens-face ((,class :height 0.8 :foreground ,fg-alt)))
4858 `(lsp-lens-mouse-face ((,class :height 0.8 :foreground ,blue-alt-other :underline t)))
4859 `(lsp-ui-doc-background ((,class :background ,bg-alt)))
4860 `(lsp-ui-doc-header ((,class :background ,bg-header :foreground ,fg-header)))
4861 `(lsp-ui-doc-url ((,class :inherit button)))
4862 `(lsp-ui-peek-filename ((,class :foreground ,fg-special-warm)))
4863 `(lsp-ui-peek-footer ((,class :background ,bg-header :foreground ,fg-header)))
4864 `(lsp-ui-peek-header ((,class :background ,bg-header :foreground ,fg-header)))
4865 `(lsp-ui-peek-highlight ((,class :inherit modus-theme-subtle-blue)))
4866 `(lsp-ui-peek-line-number ((,class :inherit shadow)))
4867 `(lsp-ui-peek-list ((,class :background ,bg-dim)))
4868 `(lsp-ui-peek-peek ((,class :background ,bg-alt)))
4869 `(lsp-ui-peek-selection ((,class :inherit modus-theme-subtle-cyan)))
4870 `(lsp-ui-sideline-code-action ((,class :foreground ,yellow)))
4871 `(lsp-ui-sideline-current-symbol ((,class :inherit bold :height 0.99 :box (:line-width -1 :style nil) :foreground ,fg-main)))
4872 `(lsp-ui-sideline-symbol ((,class :inherit bold :height 0.99 :box (:line-width -1 :style nil) :foreground ,fg-alt)))
4873 `(lsp-ui-sideline-symbol-info ((,class :inherit italic :height 0.99)))
4874;;;;; macrostep
4875 `(macrostep-compiler-macro-face ((,class :inherit italic)))
4876 `(macrostep-expansion-highlight-face ((,class :background ,blue-nuanced-bg)))
4877 `(macrostep-gensym-1 ((,class :inherit bold :foreground ,blue :box t)))
4878 `(macrostep-gensym-2 ((,class :inherit bold :foreground ,green :box t)))
4879 `(macrostep-gensym-3 ((,class :inherit bold :foreground ,yellow :box t)))
4880 `(macrostep-gensym-4 ((,class :inherit bold :foreground ,red :box t)))
4881 `(macrostep-gensym-5 ((,class :inherit bold :foreground ,magenta :box t)))
4882 `(macrostep-macro-face ((,class :inherit button :foreground ,green-alt)))
4883;;;;; magit
4884 `(magit-bisect-bad ((,class :foreground ,red-alt-other)))
4885 `(magit-bisect-good ((,class :foreground ,green-alt-other)))
4886 `(magit-bisect-skip ((,class :foreground ,yellow-alt-other)))
4887 `(magit-blame-date ((,class :foreground ,blue)))
4888 `(magit-blame-dimmed ((,class :inherit shadow)))
4889 `(magit-blame-hash ((,class :foreground ,fg-special-warm)))
4890 `(magit-blame-heading ((,class :background ,bg-alt)))
4891 `(magit-blame-highlight ((,class :inherit modus-theme-nuanced-cyan)))
4892 `(magit-blame-margin ((,class :inherit magit-blame-highlight)))
4893 `(magit-blame-name ((,class :foreground ,magenta-alt-other)))
4894 `(magit-blame-summary ((,class :foreground ,cyan-alt-other)))
4895 `(magit-branch-current ((,class :foreground ,blue-alt-other :box t)))
4896 `(magit-branch-local ((,class :foreground ,blue-alt)))
4897 `(magit-branch-remote ((,class :foreground ,magenta-alt)))
4898 `(magit-branch-remote-head ((,class :foreground ,magenta-alt-other :box t)))
4899 `(magit-branch-upstream ((,class :inherit italic)))
4900 `(magit-cherry-equivalent ((,class :background ,bg-main :foreground ,magenta-intense)))
4901 `(magit-cherry-unmatched ((,class :background ,bg-main :foreground ,cyan-intense)))
4902 ;; NOTE: here we break from the pattern of inheriting from the
4903 ;; modus-theme-diff-* faces, though only for the standard actions,
4904 ;; not the highlighted ones. This is because Magit's interaction
4905 ;; model relies on highlighting the current diff hunk.
4906 `(magit-diff-added ((,class ,@(modus-themes--diff
4907 bg-main green
4908 bg-diff-added fg-diff-added
4909 green-nuanced-bg fg-diff-added
4910 bg-diff-added-deuteran fg-diff-added-deuteran))))
4911 `(magit-diff-added-highlight ((,class :inherit modus-theme-diff-focus-added)))
4912 `(magit-diff-base ((,class ,@(modus-themes--diff
4913 bg-main yellow
4914 bg-diff-changed fg-diff-changed
4915 yellow-nuanced-bg fg-diff-changed))))
4916 `(magit-diff-base-highlight ((,class :inherit modus-theme-diff-focus-changed)))
4917 `(magit-diff-context ((,class :foreground ,fg-unfocused)))
4918 `(magit-diff-context-highlight ((,class ,@(modus-themes--diff
4919 bg-dim fg-dim
4920 bg-inactive fg-inactive
4921 bg-dim fg-alt))))
4922 `(magit-diff-file-heading ((,class :inherit bold :foreground ,fg-special-cold)))
4923 `(magit-diff-file-heading-highlight ((,class :inherit (modus-theme-special-cold bold))))
4924 `(magit-diff-file-heading-selection ((,class :inherit modus-theme-refine-cyan)))
4925 ;; NOTE: here we break from the pattern of inheriting from the
4926 ;; modus-theme-diff-* faces.
4927 `(magit-diff-hunk-heading ((,class :inherit bold :background ,bg-active
4928 :foreground ,fg-inactive)))
4929 `(magit-diff-hunk-heading-highlight
4930 ((,class :inherit bold
4931 :background ,@(modus-themes--diff-deuteran bg-region bg-diff-heading)
4932 :foreground ,@(modus-themes--diff-deuteran fg-main fg-diff-heading))))
4933 `(magit-diff-hunk-heading-selection ((,class :inherit modus-theme-refine-blue)))
4934 `(magit-diff-hunk-region ((,class :inherit bold)))
4935 `(magit-diff-lines-boundary ((,class :background ,fg-main)))
4936 `(magit-diff-lines-heading ((,class :inherit modus-theme-refine-magenta)))
4937 `(magit-diff-removed ((,class ,@(modus-themes--diff
4938 bg-main red
4939 bg-diff-removed fg-diff-removed
4940 red-nuanced-bg fg-diff-removed))))
4941 `(magit-diff-removed-highlight ((,class :inherit modus-theme-diff-focus-removed)))
4942 `(magit-diffstat-added ((,class :foreground ,@(modus-themes--diff-deuteran blue green))))
4943 `(magit-diffstat-removed ((,class :foreground ,red)))
4944 `(magit-dimmed ((,class :foreground ,fg-unfocused)))
4945 `(magit-filename ((,class :foreground ,fg-special-cold)))
4946 `(magit-hash ((,class :inherit shadow)))
4947 `(magit-head ((,class :inherit magit-branch-local)))
4948 `(magit-header-line ((,class :inherit bold :foreground ,magenta-active)))
4949 `(magit-header-line-key ((,class :inherit bold :foreground ,blue-active)))
4950 `(magit-header-line-log-select ((,class :inherit bold :foreground ,fg-main)))
4951 `(magit-keyword ((,class :foreground ,magenta)))
4952 `(magit-keyword-squash ((,class :inherit bold :foreground ,yellow-alt-other)))
4953 `(magit-log-author ((,class :foreground ,cyan)))
4954 `(magit-log-date ((,class :inherit shadow)))
4955 `(magit-log-graph ((,class :foreground ,fg-dim)))
4956 `(magit-mode-line-process ((,class :inherit bold :foreground ,blue-active)))
4957 `(magit-mode-line-process-error ((,class :inherit bold :foreground ,red-active)))
4958 `(magit-process-ng ((,class :inherit error)))
4959 `(magit-process-ok ((,class :inherit success)))
4960 `(magit-reflog-amend ((,class :background ,bg-main :foreground ,magenta-intense)))
4961 `(magit-reflog-checkout ((,class :background ,bg-main :foreground ,blue-intense)))
4962 `(magit-reflog-cherry-pick ((,class :background ,bg-main :foreground ,green-intense)))
4963 `(magit-reflog-commit ((,class :background ,bg-main :foreground ,green-intense)))
4964 `(magit-reflog-merge ((,class :background ,bg-main :foreground ,green-intense)))
4965 `(magit-reflog-other ((,class :background ,bg-main :foreground ,cyan-intense)))
4966 `(magit-reflog-rebase ((,class :background ,bg-main :foreground ,magenta-intense)))
4967 `(magit-reflog-remote ((,class :background ,bg-main :foreground ,cyan-intense)))
4968 `(magit-reflog-reset ((,class :background ,bg-main :foreground ,red-intense)))
4969 `(magit-refname ((,class :inherit shadow)))
4970 `(magit-refname-pullreq ((,class :inherit shadow)))
4971 `(magit-refname-stash ((,class :inherit shadow)))
4972 `(magit-refname-wip ((,class :inherit shadow)))
4973 `(magit-section ((,class :background ,bg-dim :foreground ,fg-main)))
4974 `(magit-section-heading ((,class :inherit bold :foreground ,cyan)))
4975 `(magit-section-heading-selection ((,class :inherit (modus-theme-refine-cyan bold))))
4976 `(magit-section-highlight ((,class :background ,bg-alt)))
4977 `(magit-sequence-done ((,class :foreground ,green-alt)))
4978 `(magit-sequence-drop ((,class :foreground ,red-alt)))
4979 `(magit-sequence-exec ((,class :foreground ,magenta-alt)))
4980 `(magit-sequence-head ((,class :foreground ,cyan-alt)))
4981 `(magit-sequence-onto ((,class :inherit shadow)))
4982 `(magit-sequence-part ((,class :foreground ,yellow-alt)))
4983 `(magit-sequence-pick ((,class :foreground ,blue-alt)))
4984 `(magit-sequence-stop ((,class :foreground ,red)))
4985 `(magit-signature-bad ((,class :inherit bold :foreground ,red)))
4986 `(magit-signature-error ((,class :foreground ,red-alt)))
4987 `(magit-signature-expired ((,class :foreground ,yellow)))
4988 `(magit-signature-expired-key ((,class :foreground ,yellow)))
4989 `(magit-signature-good ((,class :foreground ,green)))
4990 `(magit-signature-revoked ((,class :foreground ,magenta)))
4991 `(magit-signature-untrusted ((,class :foreground ,cyan)))
4992 `(magit-tag ((,class :foreground ,yellow-alt-other)))
4993;;;;; magit-imerge
4994 `(magit-imerge-overriding-value ((,class :inherit bold :foreground ,red-alt)))
4995;;;;; make-mode (makefiles)
4996 `(makefile-makepp-perl ((,class :background ,cyan-nuanced-bg)))
4997 `(makefile-space ((,class :background ,magenta-nuanced-bg)))
4998;;;;; man
4999 `(Man-overstrike ((,class :inherit bold :foreground ,magenta)))
5000 `(Man-reverse ((,class :inherit modus-theme-subtle-magenta)))
5001 `(Man-underline ((,class :foreground ,cyan :underline t)))
5002;;;;; marginalia
5003 `(marginalia-archive ((,class :foreground ,green-nuanced-fg)))
5004 `(marginalia-date ((,class :foreground ,blue-nuanced-fg)))
5005 `(marginalia-char ((,class :foreground ,red-active)))
5006 `(marginalia-documentation ((,class :foreground ,fg-special-cold :inherit modus-theme-slant)))
5007 `(marginalia-file-modes ((,class :inherit shadow)))
5008 `(marginalia-file-name ((,class :foreground ,fg-special-mild)))
5009 `(marginalia-file-owner ((,class :foreground ,red-nuanced-fg)))
5010 `(marginalia-key ((,class :foreground ,magenta-active)))
5011 `(marginalia-mode ((,class :foreground ,cyan-active)))
5012 `(marginalia-modified ((,class :foreground ,yellow-active)))
5013 `(marginalia-number ((,class :foreground ,blue-active)))
5014 `(marginalia-size ((,class :foreground ,green-active)))
5015 `(marginalia-type ((,class :foreground ,fg-special-warm)))
5016 `(marginalia-variable ((,class :foreground ,yellow-nuanced-fg)))
5017 `(marginalia-version ((,class :foreground ,cyan-active)))
5018;;;;; markdown-mode
5019 `(markdown-blockquote-face ((,class :inherit modus-theme-slant :foreground ,fg-special-cold)))
5020 `(markdown-bold-face ((,class :inherit bold)))
5021 `(markdown-code-face ((,class ,@(modus-themes--mixed-fonts) :background ,bg-dim :extend t)))
5022 `(markdown-comment-face ((,class :inherit font-lock-comment-face)))
5023 `(markdown-footnote-marker-face ((,class :inherit bold :foreground ,cyan-alt)))
5024 `(markdown-footnote-text-face ((,class :inherit modus-theme-slant :foreground ,fg-main)))
5025 `(markdown-gfm-checkbox-face ((,class :foreground ,cyan-alt-other)))
5026 `(markdown-header-delimiter-face ((,class :inherit modus-theme-bold :foreground ,fg-dim)))
5027 `(markdown-header-face ((t nil)))
5028 `(markdown-header-face-1 ((,class :inherit modus-theme-heading-1)))
5029 `(markdown-header-face-2 ((,class :inherit modus-theme-heading-2)))
5030 `(markdown-header-face-3 ((,class :inherit modus-theme-heading-3)))
5031 `(markdown-header-face-4 ((,class :inherit modus-theme-heading-4)))
5032 `(markdown-header-face-5 ((,class :inherit modus-theme-heading-5)))
5033 `(markdown-header-face-6 ((,class :inherit modus-theme-heading-6)))
5034 `(markdown-header-rule-face ((,class :inherit bold :foreground ,fg-special-warm)))
5035 `(markdown-hr-face ((,class :inherit bold :foreground ,fg-special-warm)))
5036 `(markdown-html-attr-name-face ((,class ,@(modus-themes--mixed-fonts)
5037 :foreground ,cyan)))
5038 `(markdown-html-attr-value-face ((,class ,@(modus-themes--mixed-fonts)
5039 :foreground ,blue)))
5040 `(markdown-html-entity-face ((,class ,@(modus-themes--mixed-fonts)
5041 :foreground ,cyan)))
5042 `(markdown-html-tag-delimiter-face ((,class ,@(modus-themes--mixed-fonts)
5043 :foreground ,fg-special-mild)))
5044 `(markdown-html-tag-name-face ((,class ,@(modus-themes--mixed-fonts)
5045 :foreground ,magenta-alt)))
5046 `(markdown-inline-code-face ((,class ,@(modus-themes--mixed-fonts)
5047 :background ,bg-alt :foreground ,fg-special-calm)))
5048 `(markdown-italic-face ((,class :inherit italic :foreground ,fg-special-cold)))
5049 `(markdown-language-info-face ((,class ,@(modus-themes--mixed-fonts)
5050 :foreground ,fg-special-cold)))
5051 `(markdown-language-keyword-face ((,class ,@(modus-themes--mixed-fonts)
5052 :background ,bg-alt
5053 :foreground ,fg-alt)))
5054 `(markdown-line-break-face ((,class :inherit modus-theme-refine-cyan :underline t)))
5055 `(markdown-link-face ((,class :inherit button)))
5056 `(markdown-link-title-face ((,class :inherit modus-theme-slant :foreground ,fg-special-cold)))
5057 `(markdown-list-face ((,class :foreground ,fg-dim)))
5058 `(markdown-markup-face ((,class :inherit shadow)))
5059 `(markdown-math-face ((,class :foreground ,magenta-alt-other)))
5060 `(markdown-metadata-key-face ((,class :foreground ,cyan-alt-other)))
5061 `(markdown-metadata-value-face ((,class :foreground ,blue-alt)))
5062 `(markdown-missing-link-face ((,class :inherit bold :foreground ,yellow)))
5063 `(markdown-plain-url-face ((,class :inherit markdown-link-face)))
5064 `(markdown-pre-face ((,class :inherit markdown-code-face :foreground ,fg-special-mild)))
5065 `(markdown-reference-face ((,class :inherit markdown-markup-face)))
5066 `(markdown-strike-through-face ((,class :strike-through t)))
5067 `(markdown-table-face ((,class ,@(modus-themes--mixed-fonts)
5068 :foreground ,fg-special-cold)))
5069 `(markdown-url-face ((,class :foreground ,blue-alt)))
5070;;;;; markup-faces (`adoc-mode')
5071 `(markup-anchor-face ((,class :foreground ,fg-inactive)))
5072 `(markup-attribute-face ((,class :inherit italic :foreground ,fg-inactive)))
5073 `(markup-big-face ((,class :height 1.3 :foreground ,blue-nuanced-fg)))
5074 `(markup-bold-face ((,class :inherit bold :foreground ,red-nuanced-fg)))
5075 `(markup-code-face ((,class :inherit fixed-pitch :foreground ,magenta)))
5076 `(markup-command-face ((,class :foreground ,fg-inactive)))
5077 `(markup-comment-face ((,class :inherit font-lock-comment-face)))
5078 `(markup-complex-replacement-face ((,class :box (:line-width 2 :color nil :style released-button)
5079 :inherit modus-theme-refine-magenta)))
5080 `(markup-emphasis-face ((,class :inherit italic :foreground ,fg-special-cold)))
5081 `(markup-error-face ((,class :inherit bold :foreground ,red)))
5082 `(markup-gen-face ((,class :foreground ,magenta-alt)))
5083 `(markup-internal-reference-face ((,class :inherit button :foreground ,fg-alt)))
5084 `(markup-italic-face ((,class :inherit italic :foreground ,fg-special-cold)))
5085 `(markup-list-face ((,class :inherit modus-theme-special-calm)))
5086 `(markup-meta-face ((,class :foreground ,fg-inactive)))
5087 `(markup-meta-hide-face ((,class :inherit shadow)))
5088 `(markup-passthrough-face ((,class :inherit fixed-pitch :foreground ,cyan)))
5089 `(markup-preprocessor-face ((,class :foreground ,red-alt-other)))
5090 `(markup-replacement-face ((,class :foreground ,yellow-alt-other)))
5091 `(markup-secondary-text-face ((,class :height 0.8 :foreground ,magenta-nuanced-fg)))
5092 `(markup-small-face ((,class :height 0.8 :foreground ,fg-main)))
5093 `(markup-strong-face ((,class :inherit bold :foreground ,red-nuanced-fg)))
5094 `(markup-subscript-face ((,class :height 0.8 :foreground ,fg-special-cold)))
5095 `(markup-superscript-face ((,class :height 0.8 :foreground ,fg-special-cold)))
5096 `(markup-table-cell-face ((,class :inherit modus-theme-special-cold)))
5097 `(markup-table-face ((,class :inherit modus-theme-subtle-cyan)))
5098 `(markup-table-row-face ((,class :inherit modus-theme-subtle-cyan)))
5099 `(markup-title-0-face ((,class :height 3.0 :foreground ,blue-nuanced-fg)))
5100 `(markup-title-1-face ((,class :height 2.4 :foreground ,blue-nuanced-fg)))
5101 `(markup-title-2-face ((,class :height 1.8 :foreground ,blue-nuanced-fg)))
5102 `(markup-title-3-face ((,class :height 1.4 :foreground ,blue-nuanced-fg)))
5103 `(markup-title-4-face ((,class :height 1.2 :foreground ,blue-nuanced-fg)))
5104 `(markup-title-5-face ((,class :height 1.2 :foreground ,blue-nuanced-fg :underline t)))
5105 `(markup-value-face ((,class :foreground ,fg-inactive)))
5106 `(markup-verbatim-face ((,class :inherit modus-theme-special-mild)))
5107;;;;; mentor
5108 `(mentor-download-message ((,class :foreground ,fg-special-warm)))
5109 `(mentor-download-name ((,class :foreground ,fg-special-cold)))
5110 `(mentor-download-progress ((,class :foreground ,blue-alt-other)))
5111 `(mentor-download-size ((,class :foreground ,magenta-alt-other)))
5112 `(mentor-download-speed-down ((,class :foreground ,cyan-alt)))
5113 `(mentor-download-speed-up ((,class :foreground ,red-alt)))
5114 `(mentor-download-state ((,class :foreground ,yellow-alt)))
5115 `(mentor-highlight-face ((,class :inherit modus-theme-subtle-blue)))
5116 `(mentor-tracker-name ((,class :foreground ,magenta-alt)))
5117;;;;; messages
5118 `(message-cited-text-1 ((,class :foreground ,blue-faint)))
5119 `(message-cited-text-2 ((,class :foreground ,green-alt-other)))
5120 `(message-cited-text-3 ((,class :foreground ,red-alt-other)))
5121 `(message-cited-text-4 ((,class :foreground ,cyan)))
5122 `(message-header-cc ((,class :foreground ,blue-alt-other)))
5123 `(message-header-name ((,class :inherit bold :foreground ,cyan)))
5124 `(message-header-newsgroups ((,class :inherit message-header-other)))
5125 `(message-header-other ((,class :foreground ,fg-special-calm)))
5126 `(message-header-subject ((,class :inherit bold :foreground ,magenta-alt)))
5127 `(message-header-to ((,class :inherit bold :foreground ,magenta-alt-other)))
5128 `(message-header-xheader ((,class :foreground ,blue-alt)))
5129 `(message-mml ((,class :foreground ,yellow)))
5130 `(message-separator ((,class :inherit modus-theme-intense-neutral)))
5131;;;;; minibuffer-line
5132 `(minibuffer-line ((,class :foreground ,fg-main)))
5133;;;;; minimap
5134 `(minimap-active-region-background ((,class :background ,bg-active)))
5135 `(minimap-current-line-face ((,class :background ,cyan-intense-bg :foreground ,fg-main)))
5136;;;;; mmm-mode
5137 `(mmm-cleanup-submode-face ((,class :background ,yellow-nuanced-bg)))
5138 `(mmm-code-submode-face ((,class :background ,bg-alt)))
5139 `(mmm-comment-submode-face ((,class :background ,blue-nuanced-bg)))
5140 `(mmm-declaration-submode-face ((,class :background ,cyan-nuanced-bg)))
5141 `(mmm-default-submode-face ((,class :background ,bg-dim)))
5142 `(mmm-init-submode-face ((,class :background ,magenta-nuanced-bg)))
5143 `(mmm-output-submode-face ((,class :background ,red-nuanced-bg)))
5144 `(mmm-special-submode-face ((,class :background ,green-nuanced-bg)))
5145;;;;; modeline
5146 `(mode-line ((,class ,@(modus-themes--variable-pitch-ui)
5147 ,@(modus-themes--mode-line-attrs
5148 fg-active bg-active fg-dim bg-active
5149 fg-alt bg-active 'alt-style nil bg-main))))
5150 `(mode-line-buffer-id ((,class :inherit bold)))
5151 `(mode-line-emphasis ((,class :inherit bold :foreground ,blue-active)))
5152 `(mode-line-highlight ((,class :inherit modus-theme-active-blue :box (:line-width -1 :style pressed-button))))
5153 `(mode-line-inactive ((,class ,@(modus-themes--variable-pitch-ui)
5154 ,@(modus-themes--mode-line-attrs
5155 fg-inactive bg-inactive fg-alt bg-dim
5156 bg-region bg-active))))
5157;;;;; mood-line
5158 `(mood-line-modified ((,class :foreground ,magenta-active)))
5159 `(mood-line-status-error ((,class :inherit bold :foreground ,red-active)))
5160 `(mood-line-status-info ((,class :foreground ,cyan-active)))
5161 `(mood-line-status-neutral ((,class :foreground ,blue-active)))
5162 `(mood-line-status-success ((,class :foreground ,green-active)))
5163 `(mood-line-status-warning ((,class :inherit bold :foreground ,yellow-active)))
5164 `(mood-line-unimportant ((,class :foreground ,fg-inactive)))
5165;;;;; mpdel
5166 `(mpdel-browser-directory-face ((,class :foreground ,blue)))
5167 `(mpdel-playlist-current-song-face ((,class :inherit bold :foreground ,blue-alt-other)))
5168;;;;; mu4e
5169 `(mu4e-attach-number-face ((,class :inherit bold :foreground ,fg-dim)))
5170 `(mu4e-cited-1-face ((,class :foreground ,blue-faint)))
5171 `(mu4e-cited-2-face ((,class :foreground ,green-alt-other)))
5172 `(mu4e-cited-3-face ((,class :foreground ,red-alt-other)))
5173 `(mu4e-cited-4-face ((,class :foreground ,cyan)))
5174 `(mu4e-cited-5-face ((,class :foreground ,yellow-alt)))
5175 `(mu4e-cited-6-face ((,class :foreground ,magenta)))
5176 `(mu4e-cited-7-face ((,class :foreground ,green-alt)))
5177 `(mu4e-compose-header-face ((,class :inherit mu4e-compose-separator-face)))
5178 `(mu4e-compose-separator-face ((,class :inherit modus-theme-intense-neutral)))
5179 `(mu4e-contact-face ((,class :inherit message-header-to)))
5180 `(mu4e-context-face ((,class :foreground ,blue-active)))
5181 `(mu4e-draft-face ((,class :foreground ,magenta-alt)))
5182 `(mu4e-flagged-face ((,class :foreground ,red-alt)))
5183 `(mu4e-footer-face ((,class :inherit modus-theme-slant :foreground ,fg-special-cold)))
5184 `(mu4e-forwarded-face ((,class :foreground ,magenta-alt-other)))
5185 `(mu4e-header-face ((,class :inherit shadow)))
5186 `(mu4e-header-highlight-face ((,class :inherit modus-theme-hl-line)))
5187 `(mu4e-header-key-face ((,class :inherit message-header-name)))
5188 `(mu4e-header-marks-face ((,class :inherit mu4e-special-header-value-face)))
5189 `(mu4e-header-title-face ((,class :foreground ,fg-special-mild)))
5190 `(mu4e-header-value-face ((,class :inherit message-header-other)))
5191 `(mu4e-highlight-face ((,class :inherit bold :foreground ,blue-alt-other)))
5192 `(mu4e-link-face ((,class :inherit button)))
5193 `(mu4e-modeline-face ((,class :foreground ,magenta-active)))
5194 `(mu4e-moved-face ((,class :inherit modus-theme-slant :foreground ,yellow)))
5195 `(mu4e-ok-face ((,class :inherit bold :foreground ,green)))
5196 `(mu4e-region-code ((,class :inherit modus-theme-special-calm)))
5197 `(mu4e-replied-face ((,class :foreground ,blue)))
5198 `(mu4e-special-header-value-face ((,class :inherit message-header-subject)))
5199 `(mu4e-system-face ((,class :inherit modus-theme-slant :foreground ,fg-mark-del)))
5200 `(mu4e-title-face ((,class :foreground ,fg-main)))
5201 `(mu4e-trashed-face ((,class :foreground ,red)))
5202 `(mu4e-unread-face ((,class :inherit bold)))
5203 `(mu4e-url-number-face ((,class :foreground ,fg-alt)))
5204 `(mu4e-view-body-face ((,class :foreground ,fg-main)))
5205 `(mu4e-warning-face ((,class :inherit warning)))
5206;;;;; mu4e-conversation
5207 `(mu4e-conversation-header ((,class :inherit modus-theme-special-cold)))
5208 `(mu4e-conversation-sender-1 ((,class :foreground ,fg-special-warm)))
5209 `(mu4e-conversation-sender-2 ((,class :foreground ,fg-special-cold)))
5210 `(mu4e-conversation-sender-3 ((,class :foreground ,fg-special-mild)))
5211 `(mu4e-conversation-sender-4 ((,class :inherit shadow)))
5212 `(mu4e-conversation-sender-5 ((,class :foreground ,yellow-refine-fg)))
5213 `(mu4e-conversation-sender-6 ((,class :foreground ,cyan-refine-fg)))
5214 `(mu4e-conversation-sender-7 ((,class :foreground ,green-refine-fg)))
5215 `(mu4e-conversation-sender-8 ((,class :foreground ,blue-refine-fg)))
5216 `(mu4e-conversation-sender-me ((,class :foreground ,fg-main)))
5217 `(mu4e-conversation-unread ((,class :inherit bold)))
5218;;;;; multiple-cursors
5219 `(mc/cursor-bar-face ((,class :height 1 :background ,fg-main)))
5220 `(mc/cursor-face ((,class :inverse-video t)))
5221 `(mc/region-face ((,class :inherit region)))
5222;;;;; neotree
5223 `(neo-banner-face ((,class :foreground ,magenta)))
5224 `(neo-button-face ((,class :inherit button)))
5225 `(neo-dir-link-face ((,class :inherit bold :foreground ,blue)))
5226 `(neo-expand-btn-face ((,class :foreground ,cyan)))
5227 `(neo-file-link-face ((,class :foreground ,fg-main)))
5228 `(neo-header-face ((,class :inherit bold :foreground ,fg-main)))
5229 `(neo-root-dir-face ((,class :inherit bold :foreground ,cyan-alt)))
5230 `(neo-vc-added-face ((,class :foreground ,green)))
5231 `(neo-vc-conflict-face ((,class :inherit bold :foreground ,red)))
5232 `(neo-vc-default-face ((,class :foreground ,fg-main)))
5233 `(neo-vc-edited-face ((,class :foreground ,yellow)))
5234 `(neo-vc-ignored-face ((,class :foreground ,fg-inactive)))
5235 `(neo-vc-missing-face ((,class :foreground ,red-alt)))
5236 `(neo-vc-needs-merge-face ((,class :foreground ,magenta-alt)))
5237 `(neo-vc-needs-update-face ((,class :underline t)))
5238 `(neo-vc-removed-face ((,class :strike-through t)))
5239 `(neo-vc-unlocked-changes-face ((,class :inherit modus-theme-refine-blue)))
5240 `(neo-vc-up-to-date-face ((,class :inherit shadow)))
5241 `(neo-vc-user-face ((,class :foreground ,magenta)))
5242;;;;; no-emoji
5243 `(no-emoji ((,class :foreground ,cyan)))
5244;;;;; notmuch
5245 `(notmuch-crypto-decryption ((,class :inherit modus-theme-refine-magenta)))
5246 `(notmuch-crypto-part-header ((,class :foreground ,magenta-alt-other)))
5247 `(notmuch-crypto-signature-bad ((,class :inherit modus-theme-intense-red)))
5248 `(notmuch-crypto-signature-good ((,class :inherit modus-theme-refine-green)))
5249 `(notmuch-crypto-signature-good-key ((,class :inherit modus-theme-refine-yellow)))
5250 `(notmuch-crypto-signature-unknown ((,class :inherit modus-theme-refine-red)))
5251 `(notmuch-hello-logo-background ((,class :background "gray50")))
5252 `(notmuch-message-summary-face ((,class :inherit modus-theme-nuanced-cyan)))
5253 `(notmuch-search-count ((,class :inherit shadow)))
5254 `(notmuch-search-date ((,class :foreground ,cyan)))
5255 `(notmuch-search-flagged-face ((,class :foreground ,red-alt)))
5256 `(notmuch-search-matching-authors ((,class :foreground ,fg-main)))
5257 `(notmuch-search-non-matching-authors ((,class :inherit shadow)))
5258 `(notmuch-search-subject ((,class :foreground ,fg-dim)))
5259 `(notmuch-search-unread-face ((,class :inherit bold)))
5260 `(notmuch-tag-added
5261 ((,(append '((supports :underline (:style wave))) class)
5262 :underline (:color ,green :style wave))
5263 (,class :foreground ,green :underline t)))
5264 `(notmuch-tag-deleted
5265 ((,(append '((supports :underline (:style wave))) class)
5266 :underline (:color ,red :style wave))
5267 (,class :foreground ,red :underline t)))
5268 `(notmuch-tag-face ((,class :inherit bold :foreground ,blue-alt)))
5269 `(notmuch-tag-flagged ((,class :foreground ,red-alt)))
5270 `(notmuch-tag-unread ((,class :foreground ,magenta-alt)))
5271 `(notmuch-tree-match-author-face ((,class :foreground ,fg-special-cold)))
5272 `(notmuch-tree-match-date-face ((,class :inherit notmuch-search-date)))
5273 `(notmuch-tree-match-face ((,class :foreground ,fg-main)))
5274 `(notmuch-tree-match-tag-face ((,class :inherit bold :foreground ,blue-alt)))
5275 `(notmuch-tree-no-match-face ((,class :inherit shadow)))
5276 `(notmuch-tree-no-match-date-face ((,class :inherit shadow)))
5277 `(notmuch-wash-cited-text ((,class :foreground ,cyan)))
5278 `(notmuch-wash-toggle-button ((,class :background ,bg-alt :foreground ,fg-alt)))
5279;;;;; num3-mode
5280 `(num3-face-even ((,class :inherit bold :background ,bg-alt)))
5281;;;;; nxml-mode
5282 `(nxml-attribute-colon ((,class :foreground ,fg-main)))
5283 `(nxml-attribute-local-name ((,class :inherit font-lock-variable-name-face)))
5284 `(nxml-attribute-prefix ((,class :inherit font-lock-type-face)))
5285 `(nxml-attribute-value ((,class :inherit font-lock-constant-face)))
5286 `(nxml-cdata-section-CDATA ((,class :inherit error)))
5287 `(nxml-cdata-section-delimiter ((,class :inherit error)))
5288 `(nxml-char-ref-delimiter ((,class :foreground ,fg-special-mild)))
5289 `(nxml-char-ref-number ((,class :inherit modus-theme-bold :foreground ,fg-special-mild)))
5290 `(nxml-delimited-data ((,class :inherit modus-theme-slant :foreground ,fg-special-cold)))
5291 `(nxml-delimiter ((,class :foreground ,fg-dim)))
5292 `(nxml-element-colon ((,class :foreground ,fg-main)))
5293 `(nxml-element-local-name ((,class :inherit font-lock-function-name-face)))
5294 `(nxml-element-prefix ((,class :inherit font-lock-builtin-face)))
5295 `(nxml-entity-ref-delimiter ((,class :foreground ,fg-special-mild)))
5296 `(nxml-entity-ref-name ((,class :inherit modus-theme-bold :foreground ,fg-special-mild)))
5297 `(nxml-glyph ((,class :inherit modus-theme-intense-neutral)))
5298 `(nxml-hash ((,class :inherit (bold font-lock-string-face))))
5299 `(nxml-heading ((,class :inherit bold)))
5300 `(nxml-name ((,class :inherit font-lock-builtin-face)))
5301 `(nxml-namespace-attribute-colon ((,class :foreground ,fg-main)))
5302 `(nxml-namespace-attribute-prefix ((,class :inherit font-lock-variable-name-face)))
5303 `(nxml-processing-instruction-target ((,class :inherit font-lock-keyword-face)))
5304 `(nxml-prolog-keyword ((,class :inherit font-lock-keyword-face)))
5305 `(nxml-ref ((,class :inherit modus-theme-bold :foreground ,fg-special-mild)))
5306 `(rng-error ((,class :inherit error)))
5307;;;;; objed
5308 `(objed-hl ((,class :background ,(if modus-themes-intense-hl-line
5309 bg-hl-alt-intense bg-hl-alt))))
5310 `(objed-mark ((,class :background ,bg-active)))
5311 `(objed-mode-line ((,class :foreground ,cyan-active)))
5312;;;;; orderless
5313 `(orderless-match-face-0 ((,class :inherit bold
5314 ,@(modus-themes--standard-completions
5315 blue-alt-other blue-nuanced-bg
5316 blue-refine-bg blue-refine-fg))))
5317 `(orderless-match-face-1 ((,class :inherit bold
5318 ,@(modus-themes--standard-completions
5319 magenta-alt magenta-nuanced-bg
5320 magenta-refine-bg magenta-refine-fg))))
5321 `(orderless-match-face-2 ((,class :inherit bold
5322 ,@(modus-themes--standard-completions
5323 green green-nuanced-bg
5324 green-refine-bg green-refine-fg))))
5325 `(orderless-match-face-3 ((,class :inherit bold
5326 ,@(modus-themes--standard-completions
5327 yellow yellow-nuanced-bg
5328 yellow-refine-bg yellow-refine-fg))))
5329;;;;; org
5330 `(org-agenda-calendar-event ((,class :foreground ,fg-main)))
5331 `(org-agenda-calendar-sexp ((,class :foreground ,cyan-alt)))
5332 `(org-agenda-clocking ((,class :inherit modus-theme-special-cold :extend t)))
5333 `(org-agenda-column-dateline ((,class :background ,bg-alt)))
5334 `(org-agenda-current-time ((,class :inherit bold :foreground ,blue-alt-other)))
5335 `(org-agenda-date ((,class :foreground ,cyan)))
5336 `(org-agenda-date-today ((,class :inherit bold :foreground ,fg-main :underline t)))
5337 `(org-agenda-date-weekend ((,class :foreground ,cyan-alt-other)))
5338 `(org-agenda-diary ((,class :foreground ,fg-main)))
5339 `(org-agenda-dimmed-todo-face ((,class :inherit bold :foreground ,fg-alt)))
5340 `(org-agenda-done ((,class :foreground ,green-alt)))
5341 `(org-agenda-filter-category ((,class :inherit bold :foreground ,magenta-active)))
5342 `(org-agenda-filter-effort ((,class :inherit bold :foreground ,magenta-active)))
5343 `(org-agenda-filter-regexp ((,class :inherit bold :foreground ,magenta-active)))
5344 `(org-agenda-filter-tags ((,class :inherit bold :foreground ,magenta-active)))
5345 `(org-agenda-restriction-lock ((,class :background ,bg-dim :foreground ,fg-dim)))
5346 `(org-agenda-structure ((,class ,@(modus-themes--scale modus-themes-scale-5)
5347 :foreground ,blue-alt)))
5348 `(org-archived ((,class :background ,bg-alt :foreground ,fg-alt)))
5349 `(org-block ((,class ,@(modus-themes--mixed-fonts)
5350 ,@(modus-themes--org-block bg-dim)
5351 :foreground ,fg-main)))
5352 `(org-block-begin-line ((,class ,@(modus-themes--mixed-fonts)
5353 ,@(modus-themes--org-block-delim
5354 bg-dim fg-special-cold
5355 bg-alt fg-special-mild))))
5356 `(org-block-end-line ((,class :inherit org-block-begin-line)))
5357 `(org-checkbox ((,class :box (:line-width 1 :color ,bg-active)
5358 :background ,bg-inactive :foreground ,fg-active)))
5359 `(org-checkbox-statistics-done ((,class :inherit org-done)))
5360 `(org-checkbox-statistics-todo ((,class :inherit org-todo)))
5361 `(org-clock-overlay ((,class :inherit modus-theme-special-cold)))
5362 `(org-code ((,class ,@(modus-themes--mixed-fonts)
5363 :background ,red-nuanced-bg :foreground ,magenta)))
5364 `(org-column ((,class :background ,bg-alt)))
5365 `(org-column-title ((,class :inherit bold :underline t :background ,bg-alt)))
5366 `(org-date ((,class :inherit ,(if modus-themes-no-mixed-fonts
5367 'button
5368 '(button fixed-pitch))
5369 ,@(modus-themes--link-color
5370 cyan cyan-faint))))
5371 `(org-date-selected ((,class :inherit bold :foreground ,blue-alt :inverse-video t)))
5372 `(org-dispatcher-highlight ((,class :inherit (bold modus-theme-mark-alt))))
5373 `(org-document-info ((,class :foreground ,fg-special-cold)))
5374 `(org-document-info-keyword ((,class ,@(modus-themes--mixed-fonts)
5375 :foreground ,fg-alt)))
5376 `(org-document-title ((,class :inherit (bold modus-theme-variable-pitch) :foreground ,fg-special-cold
5377 ,@(modus-themes--scale modus-themes-scale-5))))
5378 `(org-done ((,class :foreground ,green)))
5379 `(org-drawer ((,class ,@(modus-themes--mixed-fonts)
5380 :foreground ,fg-alt)))
5381 `(org-ellipsis ((,class))) ; inherits from the heading's color
5382 `(org-footnote ((,class :inherit button
5383 ,@(modus-themes--link-color
5384 blue-alt blue-alt-faint))))
5385 `(org-formula ((,class ,@(modus-themes--mixed-fonts)
5386 :foreground ,red-alt)))
5387 `(org-habit-alert-face ((,class ,@(modus-themes--org-habit
5388 yellow-graph-0-bg
5389 yellow-graph-0-bg
5390 yellow-graph-1-bg))))
5391 `(org-habit-alert-future-face ((,class ,@(modus-themes--org-habit
5392 yellow-graph-1-bg
5393 yellow-graph-0-bg
5394 yellow-graph-1-bg))))
5395 `(org-habit-clear-face ((,class ,@(modus-themes--org-habit
5396 blue-graph-0-bg
5397 green-graph-1-bg
5398 blue-graph-1-bg))))
5399 `(org-habit-clear-future-face ((,class ,@(modus-themes--org-habit
5400 blue-graph-1-bg
5401 green-graph-1-bg
5402 blue-graph-1-bg))))
5403 `(org-habit-overdue-face ((,class ,@(modus-themes--org-habit
5404 red-graph-0-bg
5405 red-graph-0-bg
5406 red-graph-1-bg))))
5407 `(org-habit-overdue-future-face ((,class ,@(modus-themes--org-habit
5408 red-graph-1-bg
5409 red-graph-0-bg
5410 red-graph-1-bg))))
5411 `(org-habit-ready-face ((,class ,@(modus-themes--org-habit
5412 green-graph-0-bg
5413 green-graph-0-bg
5414 green-graph-1-bg))))
5415 `(org-habit-ready-future-face ((,class ,@(modus-themes--org-habit
5416 green-graph-1-bg
5417 green-graph-0-bg
5418 green-graph-1-bg))))
5419 `(org-headline-done ((,class :inherit modus-theme-variable-pitch :foreground ,green-nuanced-fg)))
5420 `(org-headline-todo ((,class :inherit modus-theme-variable-pitch :foreground ,red-nuanced-fg)))
5421 `(org-hide ((,class :foreground ,bg-main)))
5422 `(org-indent ((,class :inherit (fixed-pitch org-hide))))
5423 `(org-latex-and-related ((,class :foreground ,magenta-refine-fg)))
5424 `(org-level-1 ((,class :inherit modus-theme-heading-1)))
5425 `(org-level-2 ((,class :inherit modus-theme-heading-2)))
5426 `(org-level-3 ((,class :inherit modus-theme-heading-3)))
5427 `(org-level-4 ((,class :inherit modus-theme-heading-4)))
5428 `(org-level-5 ((,class :inherit modus-theme-heading-5)))
5429 `(org-level-6 ((,class :inherit modus-theme-heading-6)))
5430 `(org-level-7 ((,class :inherit modus-theme-heading-7)))
5431 `(org-level-8 ((,class :inherit modus-theme-heading-8)))
5432 `(org-link ((,class :inherit button)))
5433 `(org-list-dt ((,class :inherit bold)))
5434 `(org-macro ((,class ,@(modus-themes--mixed-fonts)
5435 :background ,blue-nuanced-bg :foreground ,magenta-alt-other)))
5436 `(org-meta-line ((,class ,@(modus-themes--mixed-fonts) :foreground ,fg-alt)))
5437 `(org-mode-line-clock ((,class :foreground ,fg-main)))
5438 `(org-mode-line-clock-overrun ((,class :inherit modus-theme-active-red)))
5439 `(org-priority ((,class :foreground ,magenta)))
5440 `(org-property-value ((,class ,@(modus-themes--mixed-fonts)
5441 :foreground ,fg-special-cold)))
5442 `(org-quote ((,class :inherit modus-theme-slant
5443 ,@(modus-themes--org-block bg-dim)
5444 :foreground ,fg-special-cold)))
5445 `(org-scheduled ((,class :foreground ,magenta-alt)))
5446 `(org-scheduled-previously ((,class :foreground ,yellow-alt-other)))
5447 `(org-scheduled-today ((,class :foreground ,magenta-alt-other)))
5448 `(org-sexp-date ((,class :inherit org-date)))
5449 `(org-special-keyword ((,class ,@(modus-themes--mixed-fonts)
5450 :foreground ,fg-alt)))
5451 `(org-table ((,class ,@(modus-themes--mixed-fonts)
5452 :foreground ,fg-special-cold)))
5453 `(org-table-header ((,class :inherit (fixed-pitch modus-theme-intense-neutral))))
5454 `(org-tag ((,class :foreground ,magenta-nuanced-fg)))
5455 `(org-tag-group ((,class :inherit bold :foreground ,cyan-nuanced-fg)))
5456 `(org-target ((,class :underline t)))
5457 `(org-time-grid ((,class :foreground ,fg-unfocused)))
5458 `(org-todo ((,class :foreground ,red)))
5459 `(org-upcoming-deadline ((,class :foreground ,red-alt-other)))
5460 `(org-upcoming-distant-deadline ((,class :foreground ,red-nuanced-fg)))
5461 `(org-verbatim ((,class ,@(modus-themes--mixed-fonts)
5462 :background ,bg-alt :foreground ,fg-special-calm)))
5463 `(org-verse ((,class :inherit org-quote)))
5464 `(org-warning ((,class :inherit bold :foreground ,red-alt-other)))
5465;;;;; org-journal
5466 `(org-journal-calendar-entry-face ((,class :inherit modus-theme-slant :foreground ,yellow-alt-other)))
5467 `(org-journal-calendar-scheduled-face ((,class :inherit modus-theme-slant :foreground ,red-alt-other)))
5468 `(org-journal-highlight ((,class :foreground ,magenta-alt)))
5469;;;;; org-noter
5470 `(org-noter-no-notes-exist-face ((,class :inherit bold :foreground ,red-active)))
5471 `(org-noter-notes-exist-face ((,class :inherit bold :foreground ,green-active)))
5472;;;;; org-pomodoro
5473 `(org-pomodoro-mode-line ((,class :foreground ,red-active)))
5474 `(org-pomodoro-mode-line-break ((,class :foreground ,cyan-active)))
5475 `(org-pomodoro-mode-line-overtime ((,class :inherit bold :foreground ,red-active)))
5476;;;;; org-recur
5477 `(org-recur ((,class :foreground ,magenta-active)))
5478;;;;; org-roam
5479 `(org-roam-link ((,class :inherit button
5480 ,@(modus-themes--link-color
5481 green green-faint))))
5482 `(org-roam-link-current ((,class :inherit button
5483 ,@(modus-themes--link-color
5484 green-alt green-alt-faint))))
5485 `(org-roam-link-invalid ((,class :inherit button
5486 ,@(modus-themes--link-color
5487 red red-faint))))
5488 `(org-roam-link-shielded ((,class :inherit button
5489 ,@(modus-themes--link-color
5490 yellow yellow-faint))))
5491 `(org-roam-tag ((,class :inherit italic :foreground ,fg-alt)))
5492;;;;; org-superstar
5493 `(org-superstar-item ((,class :foreground ,fg-main)))
5494 `(org-superstar-leading ((,class :foreground ,fg-whitespace)))
5495;;;;; org-table-sticky-header
5496 `(org-table-sticky-header-face ((,class :inherit modus-theme-intense-neutral)))
5497;;;;; org-tree-slide
5498 `(org-tree-slide-header-overlay-face
5499 ((,class :inherit (bold modus-theme-variable-pitch) :background ,bg-main
5500 :foreground ,fg-special-cold :overline nil
5501 ,@(modus-themes--scale modus-themes-scale-5))))
5502;;;;; org-treescope
5503 `(org-treescope-faces--markerinternal-midday ((,class :inherit modus-theme-intense-blue)))
5504 `(org-treescope-faces--markerinternal-range ((,class :inherit modus-theme-special-mild)))
5505;;;;; origami
5506 `(origami-fold-header-face ((,class :background ,bg-dim :foreground ,fg-dim :box t)))
5507 `(origami-fold-replacement-face ((,class :background ,bg-alt :foreground ,fg-alt)))
5508;;;;; outline-mode
5509 `(outline-1 ((,class :inherit modus-theme-heading-1)))
5510 `(outline-2 ((,class :inherit modus-theme-heading-2)))
5511 `(outline-3 ((,class :inherit modus-theme-heading-3)))
5512 `(outline-4 ((,class :inherit modus-theme-heading-4)))
5513 `(outline-5 ((,class :inherit modus-theme-heading-5)))
5514 `(outline-6 ((,class :inherit modus-theme-heading-6)))
5515 `(outline-7 ((,class :inherit modus-theme-heading-7)))
5516 `(outline-8 ((,class :inherit modus-theme-heading-8)))
5517;;;;; outline-minor-faces
5518 `(outline-minor-0 ((,class :background ,bg-alt)))
5519;;;;; package (M-x list-packages)
5520 `(package-description ((,class :foreground ,fg-special-cold)))
5521 `(package-help-section-name ((,class :inherit bold :foreground ,magenta-alt-other)))
5522 `(package-name ((,class :inherit button)))
5523 `(package-status-avail-obso ((,class :inherit bold :foreground ,red)))
5524 `(package-status-available ((,class :foreground ,fg-special-mild)))
5525 `(package-status-built-in ((,class :foreground ,magenta)))
5526 `(package-status-dependency ((,class :foreground ,magenta-alt-other)))
5527 `(package-status-disabled ((,class :inherit modus-theme-subtle-red)))
5528 `(package-status-external ((,class :foreground ,cyan-alt-other)))
5529 `(package-status-held ((,class :foreground ,yellow-alt)))
5530 `(package-status-incompat ((,class :inherit bold :foreground ,yellow)))
5531 `(package-status-installed ((,class :foreground ,fg-special-warm)))
5532 `(package-status-new ((,class :inherit bold :foreground ,green)))
5533 `(package-status-unsigned ((,class :inherit bold :foreground ,red-alt)))
5534;;;;; page-break-lines
5535 `(page-break-lines ((,class :inherit default :foreground ,fg-window-divider-outer)))
5536;;;;; paradox
5537 `(paradox-archive-face ((,class :foreground ,fg-special-mild)))
5538 `(paradox-comment-face ((,class :inherit font-lock-comment-face)))
5539 `(paradox-commit-tag-face ((,class :inherit modus-theme-refine-magenta :box t)))
5540 `(paradox-description-face ((,class :foreground ,fg-special-cold)))
5541 `(paradox-description-face-multiline ((,class :foreground ,fg-special-cold)))
5542 `(paradox-download-face ((,class :inherit modus-theme-bold :foreground ,blue-alt-other)))
5543 `(paradox-highlight-face ((,class :inherit modus-theme-bold :foreground ,cyan-alt-other)))
5544 `(paradox-homepage-button-face ((,class :foreground ,magenta-alt-other :underline t)))
5545 `(paradox-mode-line-face ((,class :inherit bold :foreground ,cyan-active)))
5546 `(paradox-name-face ((,class :foreground ,blue :underline t)))
5547 `(paradox-star-face ((,class :foreground ,magenta)))
5548 `(paradox-starred-face ((,class :foreground ,magenta-alt)))
5549;;;;; paren-face
5550 `(parenthesis ((,class :foreground ,fg-unfocused)))
5551;;;;; parrot
5552 `(parrot-rotate-rotation-highlight-face ((,class :inherit modus-theme-refine-magenta)))
5553;;;;; pass
5554 `(pass-mode-directory-face ((,class :inherit bold :foreground ,fg-special-cold)))
5555 `(pass-mode-entry-face ((,class :background ,bg-main :foreground ,fg-main)))
5556 `(pass-mode-header-face ((,class :foreground ,fg-special-warm)))
5557;;;;; pdf-tools
5558 `(pdf-links-read-link ((,class :background ,fg-main :foreground ,magenta-intense-bg :inherit bold))) ; Foreground is background and vice versa
5559 `(pdf-occur-document-face ((,class :inherit shadow)))
5560 `(pdf-occur-page-face ((,class :inherit shadow)))
5561;;;;; persp-mode
5562 `(persp-face-lighter-buffer-not-in-persp ((,class :inherit modus-theme-intense-red)))
5563 `(persp-face-lighter-default ((,class :inherit bold :foreground ,blue-active)))
5564 `(persp-face-lighter-nil-persp ((,class :inherit bold :foreground ,fg-active)))
5565;;;;; perspective
5566 `(persp-selected-face ((,class :inherit bold :foreground ,blue-active)))
5567;;;;; phi-grep
5568 `(phi-grep-heading-face ((,class :inherit bold :foreground ,red-alt
5569 ,@(modus-themes--scale modus-themes-scale-4))))
5570 `(phi-grep-line-number-face ((,class :foreground ,fg-special-warm)))
5571 `(phi-grep-match-face ((,class :inherit modus-theme-special-calm)))
5572 `(phi-grep-modified-face ((,class :inherit modus-theme-refine-yellow)))
5573 `(phi-grep-overlay-face ((,class :inherit modus-theme-refine-blue)))
5574;;;;; phi-search
5575 `(phi-replace-preview-face ((,class :inherit modus-theme-intense-magenta)))
5576 `(phi-search-failpart-face ((,class :inherit modus-theme-refine-red)))
5577 `(phi-search-match-face ((,class :inherit modus-theme-refine-cyan)))
5578 `(phi-search-selection-face ((,class :inherit (modus-theme-intense-green bold))))
5579;;;;; pkgbuild-mode
5580 `(pkgbuild-error-face ((,class :inherit modus-theme-lang-error)))
5581;;;;; pomidor
5582 `(pomidor-break-face ((,class :foreground ,blue-alt-other)))
5583 `(pomidor-overwork-face ((,class :foreground ,red-alt-other)))
5584 `(pomidor-skip-face ((,class :inherit modus-theme-slant :foreground ,fg-alt)))
5585 `(pomidor-work-face ((,class :foreground ,green-alt-other)))
5586;;;;; popup
5587 `(popup-face ((,class :background ,bg-alt :foreground ,fg-main)))
5588 `(popup-isearch-match ((,class :inherit (modus-theme-refine-cyan bold))))
5589 `(popup-menu-mouse-face ((,class :inherit modus-theme-intense-blue)))
5590 `(popup-menu-selection-face ((,class :inherit (modus-theme-subtle-cyan bold))))
5591 `(popup-scroll-bar-background-face ((,class :background ,bg-active)))
5592 `(popup-scroll-bar-foreground-face ((,class :foreground ,fg-active)))
5593 `(popup-summary-face ((,class :background ,bg-active :foreground ,fg-inactive)))
5594 `(popup-tip-face ((,class :inherit modus-theme-refine-yellow)))
5595;;;;; powerline
5596 `(powerline-active0 ((,class :background ,bg-main :foreground ,blue-faint :inverse-video t)))
5597 `(powerline-active1 ((,class :background ,blue-nuanced-bg :foreground ,blue-nuanced-fg)))
5598 `(powerline-active2 ((,class :background ,bg-active :foreground ,fg-active)))
5599 `(powerline-inactive0 ((,class :background ,bg-special-cold :foreground ,fg-special-cold)))
5600 `(powerline-inactive1 ((,class :background ,bg-dim :foreground ,fg-inactive)))
5601 `(powerline-inactive2 ((,class :background ,bg-inactive :foreground ,fg-inactive)))
5602;;;;; powerline-evil
5603 `(powerline-evil-base-face ((,class :background ,fg-main :foreground ,bg-main)))
5604 `(powerline-evil-emacs-face ((,class :inherit modus-theme-active-magenta)))
5605 `(powerline-evil-insert-face ((,class :inherit modus-theme-active-green)))
5606 `(powerline-evil-motion-face ((,class :inherit modus-theme-active-blue)))
5607 `(powerline-evil-normal-face ((,class :background ,fg-alt :foreground ,bg-main)))
5608 `(powerline-evil-operator-face ((,class :inherit modus-theme-active-yellow)))
5609 `(powerline-evil-replace-face ((,class :inherit modus-theme-active-red)))
5610 `(powerline-evil-visual-face ((,class :inherit modus-theme-active-cyan)))
5611;;;;; proced
5612 `(proced-mark ((,class :inherit modus-theme-mark-symbol)))
5613 `(proced-marked ((,class :inherit modus-theme-mark-alt)))
5614 `(proced-sort-header ((,class :inherit bold :foreground ,fg-special-calm :underline t)))
5615;;;;; prodigy
5616 `(prodigy-green-face ((,class :foreground ,green)))
5617 `(prodigy-red-face ((,class :foreground ,red)))
5618 `(prodigy-yellow-face ((,class :foreground ,yellow)))
5619;;;;; quick-peek
5620 `(quick-peek-background-face ((,class :background ,bg-alt)))
5621 `(quick-peek-border-face ((,class :background ,fg-window-divider-inner :height 1)))
5622 `(quick-peek-padding-face ((,class :background ,bg-alt :height 0.15)))
5623;;;;; racket-mode
5624 `(racket-debug-break-face ((,class :inherit modus-theme-intense-red)))
5625 `(racket-debug-locals-face ((,class :box (:line-width -1 :color nil)
5626 :foreground ,green-alt-other)))
5627 `(racket-debug-result-face ((,class :inherit bold :box (:line-width -1 :color nil)
5628 :foreground ,green)))
5629 `(racket-here-string-face ((,class :foreground ,blue-alt)))
5630 `(racket-keyword-argument-face ((,class :foreground ,red-alt)))
5631 `(racket-logger-config-face ((,class :inherit modus-theme-slant :foreground ,fg-alt)))
5632 `(racket-logger-debug-face ((,class :foreground ,blue-alt-other)))
5633 `(racket-logger-info-face ((,class :foreground ,fg-lang-note)))
5634 `(racket-logger-topic-face ((,class :inherit modus-theme-slant :foreground ,magenta)))
5635 `(racket-selfeval-face ((,class :foreground ,green-alt)))
5636 `(racket-xp-error-face ((,class :inherit modus-theme-lang-error)))
5637;;;;; rainbow-blocks
5638 `(rainbow-blocks-depth-1-face ((,class :foreground ,magenta-alt-other)))
5639 `(rainbow-blocks-depth-2-face ((,class :foreground ,blue)))
5640 `(rainbow-blocks-depth-3-face ((,class :foreground ,magenta-alt)))
5641 `(rainbow-blocks-depth-4-face ((,class :foreground ,green)))
5642 `(rainbow-blocks-depth-5-face ((,class :foreground ,magenta)))
5643 `(rainbow-blocks-depth-6-face ((,class :foreground ,cyan)))
5644 `(rainbow-blocks-depth-7-face ((,class :foreground ,yellow)))
5645 `(rainbow-blocks-depth-8-face ((,class :foreground ,cyan-alt)))
5646 `(rainbow-blocks-depth-9-face ((,class :foreground ,red-alt)))
5647 `(rainbow-blocks-unmatched-face ((,class :foreground ,red)))
5648;;;;; rainbow-identifiers
5649 `(rainbow-identifiers-identifier-1 ((,class :foreground ,green-alt-other)))
5650 `(rainbow-identifiers-identifier-2 ((,class :foreground ,magenta-alt-other)))
5651 `(rainbow-identifiers-identifier-3 ((,class :foreground ,cyan-alt-other)))
5652 `(rainbow-identifiers-identifier-4 ((,class :foreground ,yellow-alt-other)))
5653 `(rainbow-identifiers-identifier-5 ((,class :foreground ,blue-alt-other)))
5654 `(rainbow-identifiers-identifier-6 ((,class :foreground ,green-alt)))
5655 `(rainbow-identifiers-identifier-7 ((,class :foreground ,magenta-alt)))
5656 `(rainbow-identifiers-identifier-8 ((,class :foreground ,cyan-alt)))
5657 `(rainbow-identifiers-identifier-9 ((,class :foreground ,yellow-alt)))
5658 `(rainbow-identifiers-identifier-10 ((,class :foreground ,green)))
5659 `(rainbow-identifiers-identifier-11 ((,class :foreground ,magenta)))
5660 `(rainbow-identifiers-identifier-12 ((,class :foreground ,cyan)))
5661 `(rainbow-identifiers-identifier-13 ((,class :foreground ,yellow)))
5662 `(rainbow-identifiers-identifier-14 ((,class :foreground ,blue-alt)))
5663 `(rainbow-identifiers-identifier-15 ((,class :foreground ,red-alt)))
5664;;;;; rainbow-delimiters
5665 `(rainbow-delimiters-base-error-face ((,class :background ,red-subtle-bg :foreground ,fg-main)))
5666 `(rainbow-delimiters-base-face ((,class :foreground ,fg-main)))
5667 `(rainbow-delimiters-depth-1-face ((,class :foreground ,fg-main)))
5668 `(rainbow-delimiters-depth-2-face ((,class :foreground ,magenta-intense)))
5669 `(rainbow-delimiters-depth-3-face ((,class :foreground ,cyan-intense)))
5670 `(rainbow-delimiters-depth-4-face ((,class :foreground ,orange-intense)))
5671 `(rainbow-delimiters-depth-5-face ((,class :foreground ,purple-intense)))
5672 `(rainbow-delimiters-depth-6-face ((,class :foreground ,green-intense)))
5673 `(rainbow-delimiters-depth-7-face ((,class :foreground ,red-intense)))
5674 `(rainbow-delimiters-depth-8-face ((,class :foreground ,blue-intense)))
5675 `(rainbow-delimiters-depth-9-face ((,class :foreground ,yellow-intense)))
5676 `(rainbow-delimiters-mismatched-face ((,class :inherit (bold modus-theme-refine-yellow))))
5677 `(rainbow-delimiters-unmatched-face ((,class :inherit (bold modus-theme-refine-red))))
5678;;;;; rcirc
5679 `(rcirc-bright-nick ((,class :inherit bold :foreground ,magenta-alt)))
5680 `(rcirc-dim-nick ((,class :inherit shadow)))
5681 `(rcirc-my-nick ((,class :inherit bold :foreground ,magenta)))
5682 `(rcirc-nick-in-message ((,class :foreground ,magenta-alt-other)))
5683 `(rcirc-nick-in-message-full-line ((,class :inherit bold :foreground ,fg-special-mild)))
5684 `(rcirc-other-nick ((,class :inherit bold :foreground ,fg-special-cold)))
5685 `(rcirc-prompt ((,class :inherit bold :foreground ,cyan-alt-other)))
5686 `(rcirc-server ((,class :foreground ,fg-unfocused)))
5687 `(rcirc-timestamp ((,class :foreground ,blue-nuanced-fg)))
5688 `(rcirc-url ((,class :foreground ,blue :underline t)))
5689;;;;; recursion-indicator
5690 `(recursion-indicator-general ((,class :foreground ,blue-active)))
5691 `(recursion-indicator-minibuffer ((,class :foreground ,red-active)))
5692;;;;; regexp-builder (re-builder)
5693 `(reb-match-0 ((,class :inherit modus-theme-refine-cyan)))
5694 `(reb-match-1 ((,class :inherit modus-theme-subtle-magenta)))
5695 `(reb-match-2 ((,class :inherit modus-theme-subtle-green)))
5696 `(reb-match-3 ((,class :inherit modus-theme-refine-yellow)))
5697 `(reb-regexp-grouping-backslash ((,class :inherit font-lock-regexp-grouping-backslash)))
5698 `(reb-regexp-grouping-construct ((,class :inherit font-lock-regexp-grouping-construct)))
5699;;;;; rg (rg.el)
5700 `(rg-column-number-face ((,class :foreground ,magenta-alt-other)))
5701 `(rg-context-face ((,class :foreground ,fg-unfocused)))
5702 `(rg-error-face ((,class :inherit bold :foreground ,red)))
5703 `(rg-file-tag-face ((,class :foreground ,fg-special-cold)))
5704 `(rg-filename-face ((,class :inherit bold :foreground ,fg-special-cold)))
5705 `(rg-line-number-face ((,class :foreground ,fg-special-warm)))
5706 `(rg-literal-face ((,class :foreground ,blue-alt)))
5707 `(rg-match-face ((,class :inherit modus-theme-special-calm)))
5708 `(rg-regexp-face ((,class :foreground ,magenta-active)))
5709 `(rg-toggle-off-face ((,class :inherit bold :foreground ,fg-inactive)))
5710 `(rg-toggle-on-face ((,class :inherit bold :foreground ,cyan-active)))
5711 `(rg-warning-face ((,class :inherit bold :foreground ,yellow)))
5712;;;;; ripgrep
5713 `(ripgrep-context-face ((,class :foreground ,fg-unfocused)))
5714 `(ripgrep-error-face ((,class :inherit bold :foreground ,red)))
5715 `(ripgrep-hit-face ((,class :foreground ,cyan)))
5716 `(ripgrep-match-face ((,class :inherit modus-theme-special-calm)))
5717;;;;; rmail
5718 `(rmail-header-name ((,class :foreground ,cyan-alt-other)))
5719 `(rmail-highlight ((,class :inherit bold :foreground ,magenta-alt)))
5720;;;;; ruler-mode
5721 `(ruler-mode-column-number ((,class :inherit ruler-mode-default :foreground ,fg-main)))
5722 `(ruler-mode-comment-column ((,class :inherit ruler-mode-default :foreground ,red)))
5723 `(ruler-mode-current-column ((,class :inherit ruler-mode-default :background ,blue-subtle-bg :foreground ,fg-main)))
5724 `(ruler-mode-default ((,class :inherit default :background ,bg-alt :foreground ,fg-unfocused)))
5725 `(ruler-mode-fill-column ((,class :inherit ruler-mode-default :foreground ,green)))
5726 `(ruler-mode-fringes ((,class :inherit ruler-mode-default :foreground ,cyan)))
5727 `(ruler-mode-goal-column ((,class :inherit ruler-mode-default :foreground ,blue)))
5728 `(ruler-mode-margins ((,class :inherit ruler-mode-default :foreground ,bg-main)))
5729 `(ruler-mode-pad ((,class :inherit ruler-mode-default :background ,bg-active :foreground ,fg-inactive)))
5730 `(ruler-mode-tab-stop ((,class :inherit ruler-mode-default :foreground ,fg-special-warm)))
5731;;;;; sallet
5732 `(sallet-buffer-compressed ((,class :inherit italic :foreground ,yellow-nuanced-fg)))
5733 `(sallet-buffer-default-directory ((,class :foreground ,cyan-nuanced-fg)))
5734 `(sallet-buffer-directory ((,class :foreground ,blue-nuanced-fg)))
5735 `(sallet-buffer-help ((,class :foreground ,fg-special-cold)))
5736 `(sallet-buffer-modified ((,class :inherit italic :foreground ,yellow-alt-other)))
5737 `(sallet-buffer-ordinary ((,class :foreground ,fg-main)))
5738 `(sallet-buffer-read-only ((,class :foreground ,yellow-alt)))
5739 `(sallet-buffer-size ((,class :foreground ,fg-special-calm)))
5740 `(sallet-buffer-special ((,class :foreground ,magenta-alt-other)))
5741 `(sallet-flx-match ((,class ,@(modus-themes--extra-completions
5742 'modus-theme-subtle-cyan
5743 'modus-theme-refine-cyan
5744 'modus-theme-nuanced-cyan
5745 cyan-alt-other))))
5746 `(sallet-recentf-buffer-name ((,class :foreground ,blue-nuanced-fg)))
5747 `(sallet-recentf-file-path ((,class :foreground ,fg-special-mild)))
5748 `(sallet-regexp-match ((,class ,@(modus-themes--extra-completions
5749 'modus-theme-subtle-magenta
5750 'modus-theme-refine-magenta
5751 'modus-theme-nuanced-magenta
5752 magenta-alt-other))))
5753 `(sallet-source-header ((,class :inherit bold :foreground ,red-alt
5754 ,@(modus-themes--scale modus-themes-scale-4))))
5755 `(sallet-substring-match ((,class ,@(modus-themes--extra-completions
5756 'modus-theme-subtle-blue
5757 'modus-theme-refine-blue
5758 'modus-theme-nuanced-blue
5759 blue-alt-other))))
5760;;;;; selectrum
5761;; NOTE 2021-02-22: The `selectrum-primary-highlight' and
5762;; `selectrum-secondary-highlight' are deprecated upstream in favour of
5763;; their selectrum-prescient counterparts. We shall remove those faces
5764;; from the themes once we are certain that they are no longer relevant.
5765 `(selectrum-current-candidate
5766 ((,class :inherit bold :foreground ,fg-main
5767 :background ,@(pcase modus-themes-completions
5768 ('opinionated (list bg-active))
5769 (_ (list bg-inactive))))))
5770 `(selectrum-primary-highlight
5771 ((,class :inherit bold
5772 ,@(modus-themes--standard-completions
5773 magenta-alt magenta-nuanced-bg
5774 magenta-refine-bg magenta-refine-fg))))
5775 `(selectrum-secondary-highlight
5776 ((,class :inherit bold
5777 ,@(modus-themes--standard-completions
5778 cyan-alt-other cyan-nuanced-bg
5779 cyan-refine-bg cyan-refine-fg))))
5780;;;;; selectrum-prescient
5781 `(selectrum-prescient-primary-highlight
5782 ((,class :inherit bold
5783 ,@(modus-themes--standard-completions
5784 magenta-alt magenta-nuanced-bg
5785 magenta-refine-bg magenta-refine-fg))))
5786 `(selectrum-prescient-secondary-highlight
5787 ((,class :inherit bold
5788 ,@(modus-themes--standard-completions
5789 cyan-alt-other cyan-nuanced-bg
5790 cyan-refine-bg cyan-refine-fg))))
5791;;;;; semantic
5792 `(semantic-complete-inline-face ((,class :foreground ,fg-special-warm :underline t)))
5793 `(semantic-decoration-on-fileless-includes ((,class :inherit modus-theme-refine-green)))
5794 `(semantic-decoration-on-private-members-face ((,class :inherit modus-theme-refine-cyan)))
5795 `(semantic-decoration-on-protected-members-face ((,class :background ,bg-dim)))
5796 `(semantic-decoration-on-unknown-includes ((,class :inherit modus-theme-refine-red)))
5797 `(semantic-decoration-on-unparsed-includes ((,class :inherit modus-theme-refine-yellow)))
5798 `(semantic-highlight-edits-face ((,class :background ,bg-alt)))
5799 `(semantic-highlight-func-current-tag-face ((,class :background ,bg-alt)))
5800 `(semantic-idle-symbol-highlight ((,class :inherit modus-theme-special-mild)))
5801 `(semantic-tag-boundary-face ((,class :overline ,blue-intense)))
5802 `(semantic-unmatched-syntax-face ((,class :underline ,fg-lang-error)))
5803;;;;; sesman
5804 `(sesman-browser-button-face ((,class :foreground ,blue-alt-other :underline t)))
5805 `(sesman-browser-highligh-face ((,class :inherit modus-theme-subtle-blue)))
5806 `(sesman-buffer-face ((,class :foreground ,magenta)))
5807 `(sesman-directory-face ((,class :inherit bold :foreground ,blue)))
5808 `(sesman-project-face ((,class :inherit bold :foreground ,magenta-alt-other)))
5809;;;;; shell-script-mode
5810 `(sh-heredoc ((,class :foreground ,blue-alt)))
5811 `(sh-quoted-exec ((,class :inherit modus-theme-bold :foreground ,magenta-alt)))
5812;;;;; shortdoc
5813 `(shortdoc-heading ((,class :inherit modus-theme-pseudo-header)))
5814 `(shortdoc-section ((,class))) ; remove the default's variable-pitch style
5815;;;;; show-paren-mode
5816 `(show-paren-match ((,class ,@(modus-themes--paren bg-paren-match
5817 bg-paren-match-intense)
5818 :foreground ,fg-main)))
5819 `(show-paren-match-expression ((,class :inherit modus-theme-special-calm)))
5820 `(show-paren-mismatch ((,class :inherit modus-theme-intense-red)))
5821;;;;; shr
5822 `(shr-abbreviation
5823 ((,(append '((supports :underline (:style wave))) class)
5824 :foreground ,fg-docstring :underline (:color ,fg-alt :style wave))
5825 (,class :foreground ,fg-docstring :underline t)))
5826 `(shr-selected-link ((,class :inherit modus-theme-subtle-cyan)))
5827;;;;; side-notes
5828 `(side-notes ((,class :background ,bg-dim :foreground ,fg-dim)))
5829;;;;; sieve-mode
5830 `(sieve-action-commands ((,class :inherit font-lock-builtin-face)))
5831 `(sieve-control-commands ((,class :inherit font-lock-keyword-face)))
5832 `(sieve-tagged-arguments ((,class :inherit font-lock-type-face)))
5833 `(sieve-test-commands ((,class :inherit font-lock-function-name-face)))
5834;;;;; skewer-mode
5835 `(skewer-error-face ((,class :foreground ,red :underline t)))
5836;;;;; smart-mode-line
5837 `(sml/charging ((,class :foreground ,green-active)))
5838 `(sml/discharging ((,class :foreground ,red-active)))
5839 `(sml/filename ((,class :inherit bold :foreground ,blue-active)))
5840 `(sml/folder ((,class :foreground ,fg-active)))
5841 `(sml/git ((,class :inherit bold :foreground ,green-active)))
5842 `(sml/global ((,class :foreground ,fg-active)))
5843 `(sml/line-number ((,class :inherit sml/global)))
5844 `(sml/minor-modes ((,class :inherit sml/global)))
5845 `(sml/modes ((,class :inherit bold :foreground ,fg-active)))
5846 `(sml/modified ((,class :inherit bold :foreground ,magenta-active)))
5847 `(sml/mule-info ((,class :inherit sml/global)))
5848 `(sml/name-filling ((,class :foreground ,yellow-active)))
5849 `(sml/not-modified ((,class :inherit sml/global)))
5850 `(sml/numbers-separator ((,class :inherit sml/global)))
5851 `(sml/outside-modified ((,class :inherit modus-theme-intense-red)))
5852 `(sml/position-percentage ((,class :inherit sml/global)))
5853 `(sml/prefix ((,class :foreground ,green-active)))
5854 `(sml/process ((,class :inherit sml/prefix)))
5855 `(sml/projectile ((,class :inherit sml/git)))
5856 `(sml/read-only ((,class :inherit bold :foreground ,cyan-active)))
5857 `(sml/remote ((,class :inherit sml/global)))
5858 `(sml/sudo ((,class :inherit modus-theme-subtle-red)))
5859 `(sml/time ((,class :inherit sml/global)))
5860 `(sml/vc ((,class :inherit sml/git)))
5861 `(sml/vc-edited ((,class :inherit bold :foreground ,yellow-active)))
5862;;;;; smartparens
5863 `(sp-pair-overlay-face ((,class :inherit modus-theme-special-warm)))
5864 `(sp-show-pair-enclosing ((,class :inherit modus-theme-special-mild)))
5865 `(sp-show-pair-match-face ((,class ,@(modus-themes--paren bg-paren-match
5866 bg-paren-match-intense)
5867 :foreground ,fg-main)))
5868 `(sp-show-pair-mismatch-face ((,class :inherit modus-theme-intense-red)))
5869 `(sp-wrap-overlay-closing-pair ((,class :inherit sp-pair-overlay-face)))
5870 `(sp-wrap-overlay-face ((,class :inherit sp-pair-overlay-face)))
5871 `(sp-wrap-overlay-opening-pair ((,class :inherit sp-pair-overlay-face)))
5872 `(sp-wrap-tag-overlay-face ((,class :inherit sp-pair-overlay-face)))
5873;;;;; smerge
5874 `(smerge-base ((,class :inherit modus-theme-diff-changed)))
5875 `(smerge-lower ((,class :inherit modus-theme-diff-added)))
5876 `(smerge-markers ((,class :background ,bg-diff-neutral-2 :foreground ,fg-diff-neutral-2)))
5877 `(smerge-refined-added ((,class :inherit modus-theme-diff-refine-added)))
5878 `(smerge-refined-changed ((,class)))
5879 `(smerge-refined-removed ((,class :inherit modus-theme-diff-refine-removed)))
5880 `(smerge-upper ((,class :inherit modus-theme-diff-removed)))
5881;;;;; solaire
5882 `(solaire-default-face ((,class :inherit default :background ,bg-alt :foreground ,fg-dim)))
5883 `(solaire-line-number-face ((,class :inherit solaire-default-face :foreground ,fg-unfocused)))
5884 `(solaire-hl-line-face ((,class :background ,bg-active)))
5885 `(solaire-org-hide-face ((,class :background ,bg-alt :foreground ,bg-alt)))
5886;;;;; spaceline
5887 `(spaceline-evil-emacs ((,class :inherit modus-theme-active-magenta)))
5888 `(spaceline-evil-insert ((,class :inherit modus-theme-active-green)))
5889 `(spaceline-evil-motion ((,class :inherit modus-theme-active-blue)))
5890 `(spaceline-evil-normal ((,class :background ,fg-alt :foreground ,bg-alt)))
5891 `(spaceline-evil-replace ((,class :inherit modus-theme-active-red)))
5892 `(spaceline-evil-visual ((,class :inherit modus-theme-active-cyan)))
5893 `(spaceline-flycheck-error ((,class :foreground ,red-active)))
5894 `(spaceline-flycheck-info ((,class :foreground ,cyan-active)))
5895 `(spaceline-flycheck-warning ((,class :foreground ,yellow-active)))
5896 `(spaceline-highlight-face ((,class :inherit modus-theme-fringe-blue)))
5897 `(spaceline-modified ((,class :inherit modus-theme-fringe-magenta)))
5898 `(spaceline-python-venv ((,class :foreground ,magenta-active)))
5899 `(spaceline-read-only ((,class :inherit modus-theme-fringe-red)))
5900 `(spaceline-unmodified ((,class :inherit modus-theme-fringe-cyan)))
5901;;;;; speedbar
5902 `(speedbar-button-face ((,class :inherit button)))
5903 `(speedbar-directory-face ((,class :inherit bold :foreground ,blue)))
5904 `(speedbar-file-face ((,class :foreground ,fg-main)))
5905 `(speedbar-highlight-face ((,class :inherit modus-theme-subtle-blue)))
5906 `(speedbar-selected-face ((,class :inherit bold :foreground ,cyan)))
5907 `(speedbar-separator-face ((,class :inherit modus-theme-intense-neutral)))
5908 `(speedbar-tag-face ((,class :foreground ,yellow-alt-other)))
5909;;;;; spell-fu
5910 `(spell-fu-incorrect-face ((,class :inherit modus-theme-lang-error)))
5911;;;;; spray
5912 `(spray-accent-face ((,class :foreground ,red-intense)))
5913 `(spray-base-face ((,class :inherit default :foreground ,fg-special-cold)))
5914;;;;; stripes
5915 `(stripes ((,class :inherit modus-theme-hl-line)))
5916;;;;; success
5917 `(suggest-heading ((,class :inherit bold :foreground ,yellow-alt-other)))
5918;;;;; switch-window
5919 `(switch-window-background ((,class :background ,bg-dim)))
5920 `(switch-window-label ((,class :height 3.0 :foreground ,blue-intense)))
5921;;;;; swiper
5922 `(swiper-background-match-face-1 ((,class :inherit modus-theme-subtle-neutral)))
5923 `(swiper-background-match-face-2 ((,class :inherit modus-theme-refine-cyan)))
5924 `(swiper-background-match-face-3 ((,class :inherit modus-theme-refine-magenta)))
5925 `(swiper-background-match-face-4 ((,class :inherit modus-theme-refine-yellow)))
5926 `(swiper-line-face ((,class :inherit modus-theme-special-cold)))
5927 `(swiper-match-face-1 ((,class :inherit (bold modus-theme-intense-neutral))))
5928 `(swiper-match-face-2 ((,class :inherit (bold modus-theme-intense-green))))
5929 `(swiper-match-face-3 ((,class :inherit (bold modus-theme-intense-blue))))
5930 `(swiper-match-face-4 ((,class :inherit (bold modus-theme-intense-red))))
5931;;;;; swoop
5932 `(swoop-face-header-format-line ((,class :inherit bold :foreground ,red-alt
5933 ,@(modus-themes--scale modus-themes-scale-3))))
5934 `(swoop-face-line-buffer-name ((,class :inherit bold :foreground ,blue-alt
5935 ,@(modus-themes--scale modus-themes-scale-4))))
5936 `(swoop-face-line-number ((,class :foreground ,fg-special-warm)))
5937 `(swoop-face-target-line ((,class :inherit modus-theme-intense-blue :extend t)))
5938 `(swoop-face-target-words ((,class :inherit modus-theme-refine-cyan)))
5939;;;;; sx
5940 `(sx-inbox-item-type ((,class :foreground ,magenta-alt-other)))
5941 `(sx-inbox-item-type-unread ((,class :inherit (sx-inbox-item-type bold))))
5942 `(sx-question-list-answers ((,class :foreground ,green)))
5943 `(sx-question-list-answers-accepted ((,class :box t :foreground ,green)))
5944 `(sx-question-list-bounty ((,class :inherit bold :background ,bg-alt :foreground ,yellow)))
5945 `(sx-question-list-date ((,class :foreground ,fg-special-cold)))
5946 `(sx-question-list-favorite ((,class :inherit bold :foreground ,fg-special-warm)))
5947 `(sx-question-list-parent ((,class :foreground ,fg-main)))
5948 `(sx-question-list-read-question ((,class :inherit shadow)))
5949 `(sx-question-list-score ((,class :foreground ,fg-special-mild)))
5950 `(sx-question-list-score-upvoted ((,class :inherit (sx-question-list-score bold))))
5951 `(sx-question-list-unread-question ((,class :inherit bold :foreground ,fg-main)))
5952 `(sx-question-mode-accepted ((,class :inherit bold :height 1.3 :foreground ,green)))
5953 `(sx-question-mode-closed ((,class :inherit modus-theme-active-yellow :box (:line-width 2 :color nil))))
5954 `(sx-question-mode-closed-reason ((,class :box (:line-width 2 :color nil) :foreground ,fg-main)))
5955 `(sx-question-mode-content-face ((,class :background ,bg-dim)))
5956 `(sx-question-mode-date ((,class :foreground ,blue)))
5957 `(sx-question-mode-header ((,class :inherit bold :foreground ,cyan)))
5958 `(sx-question-mode-kbd-tag ((,class :inherit bold :height 0.9 :box (:line-width 3 :color ,fg-main :style released-button) :foreground ,fg-main)))
5959 `(sx-question-mode-score ((,class :foreground ,fg-dim)))
5960 `(sx-question-mode-score-downvoted ((,class :foreground ,yellow)))
5961 `(sx-question-mode-score-upvoted ((,class :inherit bold :foreground ,magenta)))
5962 `(sx-question-mode-title ((,class :inherit bold :foreground ,fg-main)))
5963 `(sx-question-mode-title-comments ((,class :inherit bold :foreground ,fg-alt)))
5964 `(sx-tag ((,class :foreground ,magenta-alt)))
5965 `(sx-user-name ((,class :foreground ,blue-alt)))
5966 `(sx-user-reputation ((,class :inherit shadow)))
5967;;;;; symbol-overlay
5968 `(symbol-overlay-default-face ((,class :inherit modus-theme-special-warm)))
5969 `(symbol-overlay-face-1 ((,class :inherit modus-theme-intense-blue)))
5970 `(symbol-overlay-face-2 ((,class :inherit modus-theme-refine-magenta)))
5971 `(symbol-overlay-face-3 ((,class :inherit modus-theme-intense-yellow)))
5972 `(symbol-overlay-face-4 ((,class :inherit modus-theme-intense-magenta)))
5973 `(symbol-overlay-face-5 ((,class :inherit modus-theme-intense-red)))
5974 `(symbol-overlay-face-6 ((,class :inherit modus-theme-refine-red)))
5975 `(symbol-overlay-face-7 ((,class :inherit modus-theme-intense-cyan)))
5976 `(symbol-overlay-face-8 ((,class :inherit modus-theme-refine-cyan)))
5977;;;;; syslog-mode
5978 `(syslog-debug ((,class :inherit bold :foreground ,cyan-alt-other)))
5979 `(syslog-error ((,class :inherit bold :foreground ,red)))
5980 `(syslog-file ((,class :inherit bold :foreground ,fg-special-cold)))
5981 `(syslog-hide ((,class :background ,bg-main :foreground ,fg-main)))
5982 `(syslog-hour ((,class :inherit bold :foreground ,magenta-alt-other)))
5983 `(syslog-info ((,class :inherit bold :foreground ,blue-alt-other)))
5984 `(syslog-ip ((,class :inherit bold :foreground ,fg-special-mild :underline t)))
5985 `(syslog-su ((,class :inherit bold :foreground ,red-alt)))
5986 `(syslog-warn ((,class :inherit bold :foreground ,yellow)))
5987;;;;; tab-bar-mode
5988 `(tab-bar ((,class ,@(modus-themes--variable-pitch-ui)
5989 :background ,bg-tab-bar :foreground ,fg-main)))
5990 `(tab-bar-tab ((,class :inherit bold :box (:line-width 2 :color ,bg-tab-active)
5991 :background ,bg-tab-active :foreground ,fg-main)))
5992 `(tab-bar-tab-inactive ((,class :box (:line-width 2 :color ,bg-tab-inactive)
5993 :background ,bg-tab-inactive :foreground ,fg-dim)))
5994;;;;; tab-line-mode
5995 `(tab-line ((,class ,@(modus-themes--variable-pitch-ui)
5996 :height 0.95 :background ,bg-tab-bar :foreground ,fg-main)))
5997 `(tab-line-close-highlight ((,class :foreground ,red)))
5998 `(tab-line-highlight ((,class :background ,blue-subtle-bg :foreground ,fg-dim)))
5999 `(tab-line-tab ((,class :inherit bold :box (:line-width 2 :color ,bg-tab-active)
6000 :background ,bg-tab-active :foreground ,fg-main)))
6001 `(tab-line-tab-current ((,class :inherit tab-line-tab)))
6002 `(tab-line-tab-inactive ((,class :box (:line-width 2 :color ,bg-tab-inactive)
6003 :background ,bg-tab-inactive :foreground ,fg-dim)))
6004 `(tab-line-tab-inactive-alternate ((,class :box (:line-width 2 :color ,bg-tab-inactive-alt)
6005 :background ,bg-tab-inactive-alt :foreground ,fg-main)))
6006;;;;; table (built-in table.el)
6007 `(table-cell ((,class :background ,blue-nuanced-bg)))
6008;;;;; telephone-line
6009 `(telephone-line-accent-active ((,class :background ,fg-inactive :foreground ,bg-inactive)))
6010 `(telephone-line-accent-inactive ((,class :background ,bg-active :foreground ,fg-active)))
6011 `(telephone-line-error ((,class :inherit bold :foreground ,red-active)))
6012 `(telephone-line-evil ((,class :foreground ,fg-main)))
6013 `(telephone-line-evil-emacs ((,class :inherit telephone-line-evil :background ,magenta-intense-bg)))
6014 `(telephone-line-evil-insert ((,class :inherit telephone-line-evil :background ,green-intense-bg)))
6015 `(telephone-line-evil-motion ((,class :inherit telephone-line-evil :background ,yellow-intense-bg)))
6016 `(telephone-line-evil-normal ((,class :inherit telephone-line-evil :background ,bg-alt)))
6017 `(telephone-line-evil-operator ((,class :inherit telephone-line-evil :background ,yellow-subtle-bg)))
6018 `(telephone-line-evil-replace ((,class :inherit telephone-line-evil :background ,red-intense-bg)))
6019 `(telephone-line-evil-visual ((,class :inherit telephone-line-evil :background ,cyan-intense-bg)))
6020 `(telephone-line-projectile ((,class :foreground ,cyan-active)))
6021 `(telephone-line-unimportant ((,class :foreground ,fg-inactive)))
6022 `(telephone-line-warning ((,class :inherit bold :foreground ,yellow-active)))
6023;;;;; terraform-mode
6024 `(terraform--resource-name-face ((,class ,@(modus-themes--syntax-string
6025 magenta-alt-other magenta-alt-other-faint
6026 red-alt red-alt))))
6027 `(terraform--resource-type-face ((,class ,@(modus-themes--syntax-string
6028 green green-faint
6029 blue-alt magenta-alt))))
6030;;;;; term
6031 `(term ((,class :background ,bg-main :foreground ,fg-main)))
6032 `(term-bold ((,class :inherit bold)))
6033 `(term-color-black ((,class :background "gray35" :foreground "gray35")))
6034 `(term-color-blue ((,class :background ,blue :foreground ,blue)))
6035 `(term-color-cyan ((,class :background ,cyan :foreground ,cyan)))
6036 `(term-color-green ((,class :background ,green :foreground ,green)))
6037 `(term-color-magenta ((,class :background ,magenta :foreground ,magenta)))
6038 `(term-color-red ((,class :background ,red :foreground ,red)))
6039 `(term-color-white ((,class :background "gray65" :foreground "gray65")))
6040 `(term-color-yellow ((,class :background ,yellow :foreground ,yellow)))
6041 `(term-underline ((,class :underline t)))
6042;;;;; tomatinho
6043 `(tomatinho-ok-face ((,class :foreground ,blue-intense)))
6044 `(tomatinho-pause-face ((,class :foreground ,yellow-intense)))
6045 `(tomatinho-reset-face ((,class :inherit shadow)))
6046;;;;; transient
6047 `(transient-active-infix ((,class :inherit modus-theme-special-mild)))
6048 `(transient-amaranth ((,class :inherit bold :foreground ,yellow)))
6049 `(transient-argument ((,class :inherit bold :foreground ,red-alt)))
6050 `(transient-blue ((,class :inherit bold :foreground ,blue)))
6051 `(transient-disabled-suffix ((,class :inherit modus-theme-intense-red)))
6052 `(transient-enabled-suffix ((,class :inherit modus-theme-intense-green)))
6053 `(transient-heading ((,class :inherit bold :foreground ,fg-main)))
6054 `(transient-inactive-argument ((,class :inherit shadow)))
6055 `(transient-inactive-value ((,class :inherit shadow)))
6056 `(transient-key ((,class :inherit bold :foreground ,blue)))
6057 `(transient-mismatched-key ((,class :underline t)))
6058 `(transient-nonstandard-key ((,class :underline t)))
6059 `(transient-pink ((,class :inherit bold :foreground ,magenta)))
6060 `(transient-red ((,class :inherit bold :foreground ,red-intense)))
6061 `(transient-teal ((,class :inherit bold :foreground ,cyan-alt-other)))
6062 `(transient-unreachable ((,class :foreground ,fg-unfocused)))
6063 `(transient-unreachable-key ((,class :foreground ,fg-unfocused)))
6064 `(transient-value ((,class :inherit bold :foreground ,magenta-alt-other)))
6065;;;;; trashed
6066 `(trashed-deleted ((,class :inherit modus-theme-mark-del)))
6067 `(trashed-directory ((,class :foreground ,blue)))
6068 `(trashed-mark ((,class :inherit modus-theme-mark-symbol)))
6069 `(trashed-marked ((,class :inherit modus-theme-mark-alt)))
6070 `(trashed-restored ((,class :inherit modus-theme-mark-sel)))
6071 `(trashed-symlink ((,class :inherit button
6072 ,@(modus-themes--link-color
6073 cyan-alt cyan-alt-faint))))
6074;;;;; treemacs
6075 `(treemacs-directory-collapsed-face ((,class :foreground ,magenta-alt)))
6076 `(treemacs-directory-face ((,class :inherit dired-directory)))
6077 `(treemacs-file-face ((,class :foreground ,fg-main)))
6078 `(treemacs-fringe-indicator-face ((,class :foreground ,fg-main)))
6079 `(treemacs-git-added-face ((,class :foreground ,green-intense)))
6080 `(treemacs-git-conflict-face ((,class :inherit (modus-theme-intense-red bold))))
6081 `(treemacs-git-ignored-face ((,class :inherit shadow)))
6082 `(treemacs-git-modified-face ((,class :foreground ,yellow-alt-other)))
6083 `(treemacs-git-renamed-face ((,class :foreground ,cyan-alt-other)))
6084 `(treemacs-git-unmodified-face ((,class :foreground ,fg-main)))
6085 `(treemacs-git-untracked-face ((,class :foreground ,red-alt-other)))
6086 `(treemacs-help-column-face ((,class :inherit modus-theme-bold :foreground ,magenta-alt-other :underline t)))
6087 `(treemacs-help-title-face ((,class :foreground ,blue-alt-other)))
6088 `(treemacs-on-failure-pulse-face ((,class :inherit modus-theme-intense-red)))
6089 `(treemacs-on-success-pulse-face ((,class :inherit modus-theme-intense-green)))
6090 `(treemacs-root-face ((,class :inherit bold :foreground ,blue-alt-other :height 1.2 :underline t)))
6091 `(treemacs-root-remote-disconnected-face ((,class :inherit treemacs-root-remote-face :foreground ,yellow)))
6092 `(treemacs-root-remote-face ((,class :inherit treemacs-root-face :foreground ,magenta)))
6093 `(treemacs-root-remote-unreadable-face ((,class :inherit treemacs-root-unreadable-face)))
6094 `(treemacs-root-unreadable-face ((,class :inherit treemacs-root-face :strike-through t)))
6095 `(treemacs-tags-face ((,class :foreground ,blue-alt)))
6096 `(treemacs-tags-face ((,class :foreground ,magenta-alt)))
6097;;;;; tty-menu
6098 `(tty-menu-disabled-face ((,class :background ,bg-alt :foreground ,fg-alt)))
6099 `(tty-menu-enabled-face ((,class :inherit bold :background ,bg-alt :foreground ,fg-main)))
6100 `(tty-menu-selected-face ((,class :inherit modus-theme-intense-blue)))
6101;;;;; tuareg
6102 `(caml-types-def-face ((,class :inherit modus-theme-subtle-red)))
6103 `(caml-types-expr-face ((,class :inherit modus-theme-subtle-green)))
6104 `(caml-types-occ-face ((,class :inherit modus-theme-subtle-green)))
6105 `(caml-types-scope-face ((,class :inherit modus-theme-subtle-blue)))
6106 `(caml-types-typed-face ((,class :inherit modus-theme-subtle-magenta)))
6107 `(tuareg-font-double-semicolon-face ((,class :inherit font-lock-preprocessor-face)))
6108 `(tuareg-font-lock-attribute-face ((,class :inherit font-lock-function-name-face)))
6109 `(tuareg-font-lock-constructor-face ((,class :foreground ,fg-main)))
6110 `(tuareg-font-lock-error-face ((,class :inherit (modus-theme-intense-red bold))))
6111 `(tuareg-font-lock-extension-node-face ((,class :background ,bg-alt :foreground ,magenta)))
6112 `(tuareg-font-lock-governing-face ((,class :inherit bold :foreground ,fg-main)))
6113 `(tuareg-font-lock-infix-extension-node-face ((,class :inherit font-lock-function-name-face)))
6114 `(tuareg-font-lock-interactive-directive-face ((,class :foreground ,fg-special-cold)))
6115 `(tuareg-font-lock-interactive-error-face ((,class :inherit error)))
6116 `(tuareg-font-lock-interactive-output-face ((,class :inherit font-lock-constant-face)))
6117 `(tuareg-font-lock-label-face ((,class :inherit font-lock-type-face)))
6118 `(tuareg-font-lock-line-number-face ((,class :foreground ,fg-special-warm)))
6119 `(tuareg-font-lock-module-face ((,class :inherit font-lock-builtin-face)))
6120 `(tuareg-font-lock-multistage-face ((,class :inherit bold :background ,bg-alt :foreground ,blue)))
6121 `(tuareg-font-lock-operator-face ((,class :inherit font-lock-preprocessor-face)))
6122 `(tuareg-opam-error-face ((,class :inherit error)))
6123 `(tuareg-opam-pkg-variable-name-face ((,class :inherit font-lock-variable-name-face)))
6124;;;;; typescript
6125 `(typescript-jsdoc-tag ((,class :inherit modus-theme-slant :foreground ,fg-special-mild)))
6126 `(typescript-jsdoc-type ((,class :inherit modus-theme-slant :foreground ,fg-special-calm)))
6127 `(typescript-jsdoc-value ((,class :inherit modus-theme-slant :foreground ,fg-special-cold)))
6128;;;;; undo-tree
6129 `(undo-tree-visualizer-active-branch-face ((,class :inherit bold :foreground ,fg-main)))
6130 `(undo-tree-visualizer-current-face ((,class :foreground ,blue-intense)))
6131 `(undo-tree-visualizer-default-face ((,class :inherit shadow)))
6132 `(undo-tree-visualizer-register-face ((,class :foreground ,magenta-intense)))
6133 `(undo-tree-visualizer-unmodified-face ((,class :foreground ,green-intense)))
6134;;;;; vc (vc-dir.el, vc-hooks.el)
6135 `(vc-dir-directory ((,class :foreground ,blue)))
6136 `(vc-dir-file ((,class :foreground ,fg-main)))
6137 `(vc-dir-header ((,class :foreground ,cyan-alt-other)))
6138 `(vc-dir-header-value ((,class :foreground ,magenta-alt-other)))
6139 `(vc-dir-mark-indicator ((,class :foreground ,blue-alt-other)))
6140 `(vc-dir-status-edited ((,class :foreground ,yellow)))
6141 `(vc-dir-status-ignored ((,class :foreground ,fg-unfocused)))
6142 `(vc-dir-status-up-to-date ((,class :foreground ,cyan)))
6143 `(vc-dir-status-warning ((,class :foreground ,red)))
6144 `(vc-conflict-state ((,class :inherit modus-theme-slant :foreground ,red-active)))
6145 `(vc-edited-state ((,class :foreground ,yellow-active)))
6146 `(vc-locally-added-state ((,class :foreground ,cyan-active)))
6147 `(vc-locked-state ((,class :foreground ,blue-active)))
6148 `(vc-missing-state ((,class :inherit modus-theme-slant :foreground ,magenta-active)))
6149 `(vc-needs-update-state ((,class :inherit modus-theme-slant :foreground ,green-active)))
6150 `(vc-removed-state ((,class :foreground ,red-active)))
6151 `(vc-state-base ((,class :foreground ,fg-active)))
6152 `(vc-up-to-date-state ((,class :foreground ,fg-special-cold)))
6153;;;;; vdiff
6154 `(vdiff-addition-face ((,class :inherit modus-theme-diff-added)))
6155 `(vdiff-change-face ((,class :inherit modus-theme-diff-changed)))
6156 `(vdiff-closed-fold-face ((,class :background ,bg-diff-neutral-1 :foreground ,fg-diff-neutral-1)))
6157 `(vdiff-refine-added ((,class :inherit modus-theme-diff-refine-added)))
6158 `(vdiff-refine-changed ((,class :inherit modus-theme-diff-refine-changed)))
6159 `(vdiff-subtraction-face ((,class :inherit modus-theme-diff-removed)))
6160 `(vdiff-target-face ((,class :inherit modus-theme-intense-blue)))
6161;;;;; vimish-fold
6162 `(vimish-fold-fringe ((,class :foreground ,cyan-active)))
6163 `(vimish-fold-mouse-face ((,class :inherit modus-theme-intense-blue)))
6164 `(vimish-fold-overlay ((,class :background ,bg-alt :foreground ,fg-special-cold)))
6165;;;;; visible-mark
6166 `(visible-mark-active ((,class :background ,blue-intense-bg)))
6167 `(visible-mark-face1 ((,class :background ,cyan-intense-bg)))
6168 `(visible-mark-face2 ((,class :background ,yellow-intense-bg)))
6169 `(visible-mark-forward-face1 ((,class :background ,magenta-intense-bg)))
6170 `(visible-mark-forward-face2 ((,class :background ,green-intense-bg)))
6171;;;;; visual-regexp
6172 `(vr/group-0 ((,class :inherit modus-theme-intense-blue)))
6173 `(vr/group-1 ((,class :inherit modus-theme-intense-magenta)))
6174 `(vr/group-2 ((,class :inherit modus-theme-intense-green)))
6175 `(vr/match-0 ((,class :inherit modus-theme-refine-yellow)))
6176 `(vr/match-1 ((,class :inherit modus-theme-refine-yellow)))
6177 `(vr/match-separator-face ((,class :inherit (modus-theme-intense-neutral bold))))
6178;;;;; volatile-highlights
6179 `(vhl/default-face ((,class :background ,bg-alt :foreground ,blue-nuanced-fg :extend t)))
6180;;;;; vterm
6181 `(vterm-color-black ((,class :background "gray35" :foreground "gray35")))
6182 `(vterm-color-blue ((,class :background ,blue :foreground ,blue)))
6183 `(vterm-color-cyan ((,class :background ,cyan :foreground ,cyan)))
6184 `(vterm-color-default ((,class :background ,bg-main :foreground ,fg-main)))
6185 `(vterm-color-green ((,class :background ,green :foreground ,green)))
6186 `(vterm-color-inverse-video ((,class :background ,bg-main :inverse-video t)))
6187 `(vterm-color-magenta ((,class :background ,magenta :foreground ,magenta)))
6188 `(vterm-color-red ((,class :background ,red :foreground ,red)))
6189 `(vterm-color-underline ((,class :foreground ,fg-special-warm :underline t)))
6190 `(vterm-color-white ((,class :background "gray65" :foreground "gray65")))
6191 `(vterm-color-yellow ((,class :background ,yellow :foreground ,yellow)))
6192;;;;; wcheck-mode
6193 `(wcheck-default-face ((,class :foreground ,red :underline t)))
6194;;;;; web-mode
6195 `(web-mode-annotation-face ((,class :inherit web-mode-comment-face)))
6196 `(web-mode-annotation-html-face ((,class :inherit web-mode-comment-face)))
6197 `(web-mode-annotation-tag-face ((,class :inherit web-mode-comment-face :underline t)))
6198 `(web-mode-block-attr-name-face ((,class :inherit font-lock-constant-face)))
6199 `(web-mode-block-attr-value-face ((,class :inherit font-lock-type-face)))
6200 `(web-mode-block-comment-face ((,class :inherit web-mode-comment-face)))
6201 `(web-mode-block-control-face ((,class :inherit font-lock-builtin-face)))
6202 `(web-mode-block-delimiter-face ((,class :foreground ,fg-main)))
6203 `(web-mode-block-face ((,class :background ,bg-dim)))
6204 `(web-mode-block-string-face ((,class :inherit web-mode-string-face)))
6205 `(web-mode-bold-face ((,class :inherit bold)))
6206 `(web-mode-builtin-face ((,class :inherit font-lock-builtin-face)))
6207 `(web-mode-comment-face ((,class :inherit font-lock-comment-face)))
6208 `(web-mode-comment-keyword-face ((,class :inherit font-lock-warning-face)))
6209 `(web-mode-constant-face ((,class :inherit font-lock-constant-face)))
6210 `(web-mode-css-at-rule-face ((,class :inherit font-lock-constant-face)))
6211 `(web-mode-css-color-face ((,class :inherit font-lock-builtin-face)))
6212 `(web-mode-css-comment-face ((,class :inherit web-mode-comment-face)))
6213 `(web-mode-css-function-face ((,class :inherit font-lock-builtin-face)))
6214 `(web-mode-css-priority-face ((,class :inherit font-lock-warning-face)))
6215 `(web-mode-css-property-name-face ((,class :inherit font-lock-keyword-face)))
6216 `(web-mode-css-pseudo-class-face ((,class :inherit font-lock-doc-face)))
6217 `(web-mode-css-selector-face ((,class :inherit font-lock-keyword-face)))
6218 `(web-mode-css-string-face ((,class :inherit web-mode-string-face)))
6219 `(web-mode-css-variable-face ((,class :foreground ,fg-special-warm)))
6220 `(web-mode-current-column-highlight-face ((,class :background ,bg-alt)))
6221 `(web-mode-current-element-highlight-face ((,class :inherit modus-theme-special-mild)))
6222 `(web-mode-doctype-face ((,class :inherit modus-theme-slant :foreground ,fg-special-cold)))
6223 `(web-mode-error-face ((,class :inherit modus-theme-intense-red)))
6224 `(web-mode-filter-face ((,class :inherit font-lock-function-name-face)))
6225 `(web-mode-folded-face ((,class :underline t)))
6226 `(web-mode-function-call-face ((,class :inherit font-lock-function-name-face)))
6227 `(web-mode-function-name-face ((,class :inherit font-lock-function-name-face)))
6228 `(web-mode-html-attr-custom-face ((,class :inherit font-lock-variable-name-face)))
6229 `(web-mode-html-attr-engine-face ((,class :foreground ,fg-main)))
6230 `(web-mode-html-attr-equal-face ((,class :foreground ,fg-main)))
6231 `(web-mode-html-attr-name-face ((,class :inherit font-lock-variable-name-face)))
6232 `(web-mode-html-attr-value-face ((,class :inherit font-lock-constant-face)))
6233 `(web-mode-html-entity-face ((,class :inherit font-lock-negation-char-face)))
6234 `(web-mode-html-tag-bracket-face ((,class :foreground ,fg-dim)))
6235 `(web-mode-html-tag-custom-face ((,class :inherit font-lock-function-name-face)))
6236 `(web-mode-html-tag-face ((,class :inherit font-lock-function-name-face)))
6237 `(web-mode-html-tag-namespaced-face ((,class :inherit font-lock-builtin-face)))
6238 `(web-mode-html-tag-unclosed-face ((,class :inherit error :underline t)))
6239 `(web-mode-inlay-face ((,class :background ,bg-alt)))
6240 `(web-mode-italic-face ((,class :inherit italic)))
6241 `(web-mode-javascript-comment-face ((,class :inherit web-mode-comment-face)))
6242 `(web-mode-javascript-string-face ((,class :inherit web-mode-string-face)))
6243 `(web-mode-json-comment-face ((,class :inherit web-mode-comment-face)))
6244 `(web-mode-json-context-face ((,class :inherit font-lock-builtin-face)))
6245 `(web-mode-json-key-face ((,class :foreground ,blue-nuanced-fg)))
6246 `(web-mode-json-string-face ((,class :inherit web-mode-string-face)))
6247 `(web-mode-jsx-depth-1-face ((,class :background ,blue-intense-bg :foreground ,fg-main)))
6248 `(web-mode-jsx-depth-2-face ((,class :background ,blue-subtle-bg :foreground ,fg-main)))
6249 `(web-mode-jsx-depth-3-face ((,class :background ,bg-special-cold :foreground ,fg-special-cold)))
6250 `(web-mode-jsx-depth-4-face ((,class :background ,bg-alt :foreground ,blue-refine-fg)))
6251 `(web-mode-jsx-depth-5-face ((,class :background ,bg-alt :foreground ,blue-nuanced-fg)))
6252 `(web-mode-keyword-face ((,class :inherit :inherit font-lock-keyword-face)))
6253 `(web-mode-param-name-face ((,class :inherit font-lock-function-name-face)))
6254 `(web-mode-part-comment-face ((,class :inherit web-mode-comment-face)))
6255 `(web-mode-part-face ((,class :inherit web-mode-block-face)))
6256 `(web-mode-part-string-face ((,class :inherit web-mode-string-face)))
6257 `(web-mode-preprocessor-face ((,class :inherit font-lock-preprocessor-face)))
6258 `(web-mode-script-face ((,class :inherit web-mode-part-face)))
6259 `(web-mode-sql-keyword-face ((,class :inherit font-lock-negation-char-face)))
6260 `(web-mode-string-face ((,class :inherit font-lock-string-face)))
6261 `(web-mode-style-face ((,class :inherit web-mode-part-face)))
6262 `(web-mode-symbol-face ((,class :inherit font-lock-constant-face)))
6263 `(web-mode-type-face ((,class :inherit font-lock-builtin-face)))
6264 `(web-mode-underline-face ((,class :underline t)))
6265 `(web-mode-variable-name-face ((,class :inherit font-lock-variable-name-face)))
6266 `(web-mode-warning-face ((,class :inherit font-lock-warning-face)))
6267 `(web-mode-whitespace-face ((,class :background ,bg-whitespace :foreground ,fg-whitespace)))
6268;;;;; wgrep
6269 `(wgrep-delete-face ((,class :inherit modus-theme-refine-yellow)))
6270 `(wgrep-done-face ((,class :inherit modus-theme-refine-blue)))
6271 `(wgrep-face ((,class :inherit modus-theme-refine-green)))
6272 `(wgrep-file-face ((,class :foreground ,fg-special-warm)))
6273 `(wgrep-reject-face ((,class :inherit (modus-theme-intense-red bold))))
6274;;;;; which-function-mode
6275 `(which-func ((,class :foreground ,magenta-active)))
6276;;;;; which-key
6277 `(which-key-command-description-face ((,class :foreground ,fg-main)))
6278 `(which-key-group-description-face ((,class :foreground ,magenta-alt)))
6279 `(which-key-highlighted-command-face ((,class :foreground ,yellow :underline t)))
6280 `(which-key-key-face ((,class :inherit bold :foreground ,blue-intense)))
6281 `(which-key-local-map-description-face ((,class :foreground ,fg-main)))
6282 `(which-key-note-face ((,class :foreground ,fg-special-warm)))
6283 `(which-key-separator-face ((,class :inherit shadow)))
6284 `(which-key-special-key-face ((,class :inherit bold :foreground ,orange-intense)))
6285;;;;; whitespace-mode
6286 `(whitespace-big-indent ((,class :inherit modus-theme-subtle-red)))
6287 `(whitespace-empty ((,class :inherit modus-theme-intense-magenta)))
6288 `(whitespace-hspace ((,class :background ,bg-whitespace :foreground ,fg-whitespace)))
6289 `(whitespace-indentation ((,class :background ,bg-whitespace :foreground ,fg-whitespace)))
6290 `(whitespace-line ((,class :background ,bg-alt)))
6291 `(whitespace-newline ((,class :background ,bg-whitespace :foreground ,fg-whitespace)))
6292 `(whitespace-space ((,class :background ,bg-whitespace :foreground ,fg-whitespace)))
6293 `(whitespace-space-after-tab ((,class :inherit modus-theme-subtle-magenta)))
6294 `(whitespace-space-before-tab ((,class :inherit modus-theme-subtle-cyan)))
6295 `(whitespace-tab ((,class :background ,bg-whitespace :foreground ,fg-whitespace)))
6296 `(whitespace-trailing ((,class :inherit modus-theme-intense-red)))
6297;;;;; window-divider-mode
6298 `(window-divider ((,class :foreground ,fg-window-divider-inner)))
6299 `(window-divider-first-pixel ((,class :foreground ,fg-window-divider-outer)))
6300 `(window-divider-last-pixel ((,class :foreground ,fg-window-divider-outer)))
6301;;;;; winum
6302 `(winum-face ((,class :inherit modus-theme-bold :foreground ,cyan-active)))
6303;;;;; writegood-mode
6304 `(writegood-duplicates-face ((,class :background ,bg-alt :foreground ,red-alt :underline t)))
6305 `(writegood-passive-voice-face ((,class :inherit modus-theme-lang-warning)))
6306 `(writegood-weasels-face ((,class :inherit modus-theme-lang-error)))
6307;;;;; woman
6308 `(woman-addition ((,class :foreground ,magenta-alt-other)))
6309 `(woman-bold ((,class :inherit bold :foreground ,magenta)))
6310 `(woman-italic ((,class :inherit italic :foreground ,cyan)))
6311 `(woman-unknown ((,class :inherit italic :foreground ,yellow)))
6312;;;;; xah-elisp-mode
6313 `(xah-elisp-at-symbol ((,class :inherit font-lock-warning-face)))
6314 `(xah-elisp-cap-variable ((,class :inherit font-lock-preprocessor-face)))
6315 `(xah-elisp-command-face ((,class :inherit font-lock-type-face)))
6316 `(xah-elisp-dollar-symbol ((,class :inherit font-lock-variable-name-face)))
6317;;;;; xref
6318 `(xref-file-header ((,class :inherit bold :foreground ,fg-special-cold)))
6319 `(xref-line-number ((,class :inherit shadow)))
6320 `(xref-match ((,class :inherit match)))
6321;;;;; yaml-mode
6322 `(yaml-tab-face ((,class :inherit modus-theme-intense-red)))
6323;;;;; yasnippet
6324 `(yas-field-highlight-face ((,class :background ,bg-hl-alt-intense)))
6325;;;;; ztree
6326 `(ztreep-arrow-face ((,class :foreground ,fg-inactive)))
6327 `(ztreep-diff-header-face ((,class :inherit bold :height 1.2 :foreground ,fg-special-cold)))
6328 `(ztreep-diff-header-small-face ((,class :inherit bold :foreground ,fg-special-mild)))
6329 `(ztreep-diff-model-add-face ((,class :foreground ,green)))
6330 `(ztreep-diff-model-diff-face ((,class :foreground ,red)))
6331 `(ztreep-diff-model-ignored-face ((,class :inherit shadow :strike-through t)))
6332 `(ztreep-diff-model-normal-face ((,class :inherit shadow)))
6333 `(ztreep-expand-sign-face ((,class :foreground ,blue)))
6334 `(ztreep-header-face ((,class :inherit bold :height 1.2 :foreground ,fg-special-cold)))
6335 `(ztreep-leaf-face ((,class :foreground ,cyan)))
6336 `(ztreep-node-count-children-face ((,class :foreground ,fg-special-warm)))
6337 `(ztreep-node-face ((,class :foreground ,fg-main))))
6338 "Face specs for use with `modus-themes-theme'.")
6339
6340(defconst modus-themes-custom-variables
6341 '(
6342;;;; ansi-colors
6343 `(ansi-color-faces-vector [default bold shadow italic underline success warning error])
6344 `(ansi-color-names-vector ["gray35" ,red ,green ,yellow ,blue ,magenta ,cyan "gray65"])
6345;;;; awesome-tray
6346 `(awesome-tray-mode-line-active-color ,blue)
6347 `(awesome-tray-mode-line-inactive-color ,bg-active)
6348;;;; exwm
6349 `(exwm-floating-border-color ,fg-window-divider-inner)
6350;;;; flymake fringe indicators
6351 `(flymake-error-bitmap '(flymake-double-exclamation-mark modus-theme-fringe-red))
6352 `(flymake-warning-bitmap '(exclamation-mark modus-theme-fringe-yellow))
6353 `(flymake-note-bitmap '(exclamation-mark modus-theme-fringe-cyan))
6354;;;; ibuffer
6355 `(ibuffer-deletion-face 'modus-theme-mark-del)
6356 `(ibuffer-filter-group-name-face 'modus-theme-mark-symbol)
6357 `(ibuffer-marked-face 'modus-theme-mark-sel)
6358 `(ibuffer-title-face 'modus-theme-pseudo-header)
6359;;;; highlight-tail
6360 `(highlight-tail-colors
6361 '((,green-subtle-bg . 0)
6362 (,cyan-subtle-bg . 20)))
6363;;;; hl-todo
6364 `(hl-todo-keyword-faces
6365 '(("HOLD" . ,yellow-alt)
6366 ("TODO" . ,magenta)
6367 ("NEXT" . ,magenta-alt-other)
6368 ("THEM" . ,magenta-alt)
6369 ("PROG" . ,cyan)
6370 ("OKAY" . ,cyan-alt)
6371 ("DONT" . ,green-alt)
6372 ("FAIL" . ,red)
6373 ("BUG" . ,red)
6374 ("DONE" . ,green)
6375 ("NOTE" . ,yellow-alt-other)
6376 ("KLUDGE" . ,yellow)
6377 ("HACK" . ,yellow)
6378 ("TEMP" . ,red-nuanced-fg)
6379 ("FIXME" . ,red-alt-other)
6380 ("XXX+" . ,red-alt)
6381 ("REVIEW" . ,cyan-alt-other)
6382 ("DEPRECATED" . ,blue-nuanced-fg)))
6383;;;; pdf-tools
6384 `(pdf-view-midnight-colors
6385 '(,fg-main . ,bg-dim))
6386;;;; vc-annotate (C-x v g)
6387 `(vc-annotate-background nil)
6388 `(vc-annotate-background-mode nil)
6389 `(vc-annotate-color-map
6390 '((20 . ,red)
6391 (40 . ,magenta)
6392 (60 . ,magenta-alt)
6393 (80 . ,red-alt)
6394 (100 . ,yellow)
6395 (120 . ,yellow-alt)
6396 (140 . ,fg-special-warm)
6397 (160 . ,fg-special-mild)
6398 (180 . ,green)
6399 (200 . ,green-alt)
6400 (220 . ,cyan-alt-other)
6401 (240 . ,cyan-alt)
6402 (260 . ,cyan)
6403 (280 . ,fg-special-cold)
6404 (300 . ,blue)
6405 (320 . ,blue-alt)
6406 (340 . ,blue-alt-other)
6407 (360 . ,magenta-alt-other)))
6408 `(vc-annotate-very-old-color nil)
6409;;;; xterm-color
6410 `(xterm-color-names ["black" ,red ,green ,yellow ,blue ,magenta ,cyan "gray65"])
6411 `(xterm-color-names-bright ["gray35" ,red-alt ,green-alt ,yellow-alt ,blue-alt ,magenta-alt ,cyan-alt "white"])
6412 (if (eq modus-themes-org-blocks 'rainbow)
6413 `(org-src-block-faces ; TODO this list should be expanded
6414 `(("emacs-lisp" modus-theme-nuanced-magenta)
6415 ("elisp" modus-theme-nuanced-magenta)
6416 ("clojure" modus-theme-nuanced-magenta)
6417 ("clojurescript" modus-theme-nuanced-magenta)
6418 ("c" modus-theme-nuanced-blue)
6419 ("c++" modus-theme-nuanced-blue)
6420 ("sh" modus-theme-nuanced-green)
6421 ("shell" modus-theme-nuanced-green)
6422 ("html" modus-theme-nuanced-yellow)
6423 ("xml" modus-theme-nuanced-yellow)
6424 ("css" modus-theme-nuanced-red)
6425 ("scss" modus-theme-nuanced-red)
6426 ("python" modus-theme-nuanced-green)
6427 ("ipython" modus-theme-nuanced-magenta)
6428 ("r" modus-theme-nuanced-cyan)
6429 ("yaml" modus-theme-nuanced-cyan)
6430 ("conf" modus-theme-nuanced-cyan)
6431 ("docker" modus-theme-nuanced-cyan)))
6432 `(org-src-block-faces '())))
6433 "Custom variables for `modus-themes-theme'.")
6434
6435(provide 'modus-themes)
6436;;; modus-themes.el ends here
diff --git a/etc/themes/modus-vivendi-theme.el b/etc/themes/modus-vivendi-theme.el
index 171313244b5..fd7f5df24d7 100644
--- a/etc/themes/modus-vivendi-theme.el
+++ b/etc/themes/modus-vivendi-theme.el
@@ -1,4663 +1,65 @@
1;;; modus-vivendi-theme.el --- Accessible dark theme (WCAG AAA) -*- lexical-binding:t -*- 1;;; modus-vivendi-theme.el --- Accessible dark theme (WCAG AAA) -*- lexical-binding:t -*-
2 2
3;; Copyright (C) 2019-2021 Free Software Foundation, Inc. 3;; Copyright (C) 2019-2021 Free Software Foundation, Inc.
4 4
5;; Author: Protesilaos Stavrou <info@protesilaos.com> 5;; Author: Protesilaos Stavrou <info@protesilaos.com>
6;; URL: https://gitlab.com/protesilaos/modus-themes 6;; URL: https://gitlab.com/protesilaos/modus-themes
7;; Version: 0.13.0 7;; Version: 1.2.0
8;; Package-Requires: ((emacs "26.1")) 8;; Package-Requires: ((emacs "26.1"))
9;; Keywords: faces, theme, accessibility 9;; Keywords: faces, theme, accessibility
10 10
11;; This file is part of GNU Emacs. 11;; This file is part of GNU Emacs.
12 12
13;; GNU Emacs is free software: you can redistribute it and/or modify 13;; This program is free software; you can redistribute it and/or modify
14;; it under the terms of the GNU General Public License as published by 14;; it under the terms of the GNU General Public License as published by
15;; the Free Software Foundation, either version 3 of the License, or 15;; the Free Software Foundation, either version 3 of the License, or (at
16;; (at your option) any later version. 16;; your option) any later version.
17 17;;
18;; GNU Emacs is distributed in the hope that it will be useful, 18;; This program is distributed in the hope that it will be useful, but
19;; but WITHOUT ANY WARRANTY; without even the implied warranty of 19;; WITHOUT ANY WARRANTY; without even the implied warranty of
20;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
21;; GNU General Public License for more details. 21;; General Public License for more details.
22 22;;
23;; You should have received a copy of the GNU General Public License 23;; You should have received a copy of the GNU General Public License
24;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. 24;; along with this program. If not, see <https://www.gnu.org/licenses/>.
25 25
26;;; Commentary: 26;;; Commentary:
27;; 27;;
28;; This theme is designed for colour-contrast accessibility. 28;; Modus Vivendi is the dark variant of the Modus themes (Modus Operandi
29;; 29;; is the light one). The themes are designed for color-contrast
30;; 1. Provide a consistent minimum contrast ratio between background and 30;; accessibility. More specifically:
31;; foreground values of 7:1 or higher. This meets the highest such
32;; accessibility criterion per the guidelines of the Worldwide Web
33;; Consortium's Working Group on Accessibility (WCAG AAA standard).
34;; 31;;
35;; 2. Offer as close to full face coverage as possible. The list is 32;; 1. Provide a consistent minimum contrast ratio between background
36;; already quite long (see further below), with more additions to follow 33;; and foreground values of 7:1 or higher. This meets the highest
37;; as part of the ongoing development process. 34;; such accessibility criterion per the guidelines of the Worldwide
35;; Web Consortium's Working Group on Accessibility (WCAG AAA
36;; standard).
38;; 37;;
39;; The theme provides the following customisation options, all of which 38;; 2. Offer as close to full face coverage as possible. The list is
40;; are disabled by default: 39;; already quite long, with more additions to follow as part of the
40;; ongoing development process.
41;; 41;;
42;; modus-vivendi-theme-slanted-constructs (boolean) 42;; For a complete view of the project, also refer to the following files
43;; modus-vivendi-theme-bold-constructs (boolean) 43;; (should be distributed in the same repository/directory as the
44;; modus-vivendi-theme-variable-pitch-headings (boolean) 44;; current item):
45;; modus-vivendi-theme-no-mixed-fonts (boolean)
46;; modus-vivendi-theme-headings (alist)
47;; modus-vivendi-theme-scale-headings (boolean)
48;; modus-vivendi-theme-fringes (choice)
49;; modus-vivendi-theme-org-blocks (choice)
50;; modus-vivendi-theme-prompts (choice)
51;; modus-vivendi-theme-mode-line (choice)
52;; modus-vivendi-theme-diffs (choice)
53;; modus-vivendi-theme-faint-syntax (boolean)
54;; modus-vivendi-theme-intense-hl-line (boolean)
55;; modus-vivendi-theme-intense-paren-match (boolean)
56;; modus-vivendi-theme-no-link-underline (boolean)
57;; modus-vivendi-theme-completions (choice)
58;; modus-vivendi-theme-override-colors-alist (alist)
59;; 45;;
60;; The default scale is as follows (it can be customised as well): 46;; - modus-themes.el (Main code shared between the themes)
61;; 47;; - modus-operandi-theme.el (Light theme)
62;; modus-vivendi-theme-scale-1 1.05
63;; modus-vivendi-theme-scale-2 1.1
64;; modus-vivendi-theme-scale-3 1.15
65;; modus-vivendi-theme-scale-4 1.2
66;; modus-vivendi-theme-scale-5 1.3
67;;
68;; What follows is the list of explicitly supported packages or face
69;; groups (there are implicitly supported packages as well, which
70;; inherit from font-lock or some basic group). You are encouraged to
71;; notify me of any missing package or change you would like to see.
72;;
73;; ace-window
74;; ag
75;; alert
76;; all-the-icons
77;; annotate
78;; anzu
79;; apropos
80;; apt-sources-list
81;; artbollocks-mode
82;; auctex and TeX
83;; auto-dim-other-buffers
84;; avy
85;; awesome-tray
86;; binder
87;; bm
88;; bongo
89;; boon
90;; breakpoint (provided by built-in gdb-mi.el)
91;; buffer-expose
92;; calendar and diary
93;; calfw
94;; centaur-tabs
95;; change-log and log-view (`vc-print-log' and `vc-print-root-log')
96;; cider
97;; circe
98;; color-rg
99;; column-enforce-mode
100;; company-mode
101;; company-posframe
102;; compilation-mode
103;; completions
104;; counsel
105;; counsel-css
106;; counsel-notmuch
107;; counsel-org-capture-string
108;; cov
109;; cperl-mode
110;; csv-mode
111;; ctrlf
112;; custom (M-x customize)
113;; dap-mode
114;; dashboard (emacs-dashboard)
115;; deadgrep
116;; debbugs
117;; define-word
118;; deft
119;; dictionary
120;; diff-hl
121;; diff-mode
122;; dim-autoload
123;; dir-treeview
124;; dired
125;; dired-async
126;; dired-git
127;; dired-git-info
128;; dired-narrow
129;; dired-subtree
130;; diredfl
131;; disk-usage
132;; doom-modeline
133;; dynamic-ruler
134;; easy-jekyll
135;; easy-kill
136;; ebdb
137;; ediff
138;; eglot
139;; el-search
140;; eldoc
141;; eldoc-box
142;; elfeed
143;; elfeed-score
144;; emms
145;; enhanced-ruby-mode
146;; epa
147;; equake
148;; erc
149;; eros
150;; ert
151;; eshell
152;; eshell-fringe-status
153;; eshell-git-prompt
154;; eshell-prompt-extras (epe)
155;; eshell-syntax-highlighting
156;; evil (evil-mode)
157;; evil-goggles
158;; evil-visual-mark-mode
159;; eww
160;; eyebrowse
161;; fancy-dabbrev
162;; flycheck
163;; flycheck-color-mode-line
164;; flycheck-indicator
165;; flycheck-posframe
166;; flymake
167;; flyspell
168;; flyspell-correct
169;; flx
170;; freeze-it
171;; frog-menu
172;; focus
173;; fold-this
174;; font-lock (generic syntax highlighting)
175;; forge
176;; fountain (fountain-mode)
177;; geiser
178;; git-commit
179;; git-gutter (and variants)
180;; git-lens
181;; git-rebase
182;; git-timemachine
183;; git-walktree
184;; gnus
185;; golden-ratio-scroll-screen
186;; helm
187;; helm-ls-git
188;; helm-switch-shell
189;; helm-xref
190;; helpful
191;; highlight-blocks
192;; highlight-defined
193;; highlight-escape-sequences (`hes-mode')
194;; highlight-indentation
195;; highlight-numbers
196;; highlight-symbol
197;; highlight-tail
198;; highlight-thing
199;; hl-defined
200;; hl-fill-column
201;; hl-line-mode
202;; hl-todo
203;; hydra
204;; hyperlist
205;; ibuffer
206;; icomplete
207;; ido-mode
208;; iedit
209;; iflipb
210;; imenu-list
211;; indium
212;; info
213;; info-colors
214;; interaction-log
215;; ioccur
216;; isearch, occur, etc.
217;; ivy
218;; ivy-posframe
219;; jira (org-jira)
220;; journalctl-mode
221;; js2-mode
222;; julia
223;; jupyter
224;; kaocha-runner
225;; keycast
226;; line numbers (`display-line-numbers-mode' and global variant)
227;; lsp-mode
228;; lsp-ui
229;; magit
230;; magit-imerge
231;; man
232;; markdown-mode
233;; markup-faces (`adoc-mode')
234;; mentor
235;; messages
236;; minibuffer-line
237;; minimap
238;; modeline
239;; mood-line
240;; mpdel
241;; mu4e
242;; mu4e-conversation
243;; multiple-cursors
244;; neotree
245;; no-emoji
246;; notmuch
247;; num3-mode
248;; nxml-mode
249;; objed
250;; orderless
251;; org
252;; org-journal
253;; org-noter
254;; org-pomodoro
255;; org-recur
256;; org-roam
257;; org-superstar
258;; org-table-sticky-header
259;; org-treescope
260;; origami
261;; outline-mode
262;; outline-minor-faces
263;; package (M-x list-packages)
264;; page-break-lines
265;; paradox
266;; paren-face
267;; parrot
268;; pass
269;; persp-mode
270;; perspective
271;; phi-grep
272;; phi-search
273;; pkgbuild-mode
274;; pomidor
275;; powerline
276;; powerline-evil
277;; proced
278;; prodigy
279;; racket-mode
280;; rainbow-blocks
281;; rainbow-identifiers
282;; rainbow-delimiters
283;; rcirc
284;; regexp-builder (also known as `re-builder')
285;; rg
286;; ripgrep
287;; rmail
288;; ruler-mode
289;; sallet
290;; selectrum
291;; semantic
292;; sesman
293;; shell-script-mode
294;; show-paren-mode
295;; side-notes
296;; skewer-mode
297;; smart-mode-line
298;; smartparens
299;; smerge
300;; spaceline
301;; speedbar
302;; spell-fu
303;; stripes
304;; suggest
305;; switch-window
306;; swiper
307;; swoop
308;; sx
309;; symbol-overlay
310;; tab-bar-mode
311;; tab-line-mode
312;; syslog-mode
313;; table (built-in table.el)
314;; telephone-line
315;; term
316;; tomatinho
317;; transient (pop-up windows like Magit's)
318;; trashed
319;; treemacs
320;; tty-menu
321;; tuareg
322;; typescript
323;; undo-tree
324;; vc (built-in mode line status for version control)
325;; vc-annotate (C-x v g)
326;; vdiff
327;; vimish-fold
328;; visible-mark
329;; visual-regexp
330;; volatile-highlights
331;; vterm
332;; wcheck-mode
333;; web-mode
334;; wgrep
335;; which-function-mode
336;; which-key
337;; whitespace-mode
338;; window-divider-mode
339;; winum
340;; writegood-mode
341;; woman
342;; xah-elisp-mode
343;; xref
344;; xterm-color (and ansi-colors)
345;; yaml-mode
346;; yasnippet
347;; ztree
348 48
349;;; Code: 49;;; Code:
350 50
351 51
352 52
353(deftheme modus-vivendi 53(require-theme 'modus-themes)
354 "Dark theme that conforms with the highest accessibility
355 standard for colour contrast between background and
356 foreground elements (WCAG AAA).")
357
358;;; Custom faces
359
360;; These faces will be inherited by actual constructs. They are meant
361;; for those cases where a face needs to distinguish its output from
362;; the rest of the text, such as `isearch' and `occur'… We define
363;; these separately in order to combine each colour with its
364;; appropriate foreground value. This is to ensure a consistent
365;; contrast ratio of >= 7:1.
366(defgroup modus-theme ()
367 "Theme that ensures WCAG AAA accessibility (contrast ratio
368between foreground and background is >= 7:1)."
369 :group 'faces
370 :prefix "modus-theme-"
371 :link '(url-link :tag "GitLab" "https://gitlab.com/protesilaos/modus-themes")
372 :tag "Modus Vivendi")
373
374(defface modus-theme-subtle-red nil nil)
375(defface modus-theme-subtle-green nil nil)
376(defface modus-theme-subtle-yellow nil nil)
377(defface modus-theme-subtle-blue nil nil)
378(defface modus-theme-subtle-magenta nil nil)
379(defface modus-theme-subtle-cyan nil nil)
380(defface modus-theme-subtle-neutral nil nil)
381(defface modus-theme-intense-red nil nil)
382(defface modus-theme-intense-green nil nil)
383(defface modus-theme-intense-yellow nil nil)
384(defface modus-theme-intense-blue nil nil)
385(defface modus-theme-intense-magenta nil nil)
386(defface modus-theme-intense-cyan nil nil)
387(defface modus-theme-intense-neutral nil nil)
388(defface modus-theme-refine-red nil nil)
389(defface modus-theme-refine-green nil nil)
390(defface modus-theme-refine-yellow nil nil)
391(defface modus-theme-refine-blue nil nil)
392(defface modus-theme-refine-magenta nil nil)
393(defface modus-theme-refine-cyan nil nil)
394(defface modus-theme-active-red nil nil)
395(defface modus-theme-active-green nil nil)
396(defface modus-theme-active-yellow nil nil)
397(defface modus-theme-active-blue nil nil)
398(defface modus-theme-active-magenta nil nil)
399(defface modus-theme-active-cyan nil nil)
400(defface modus-theme-fringe-red nil nil)
401(defface modus-theme-fringe-green nil nil)
402(defface modus-theme-fringe-yellow nil nil)
403(defface modus-theme-fringe-blue nil nil)
404(defface modus-theme-fringe-magenta nil nil)
405(defface modus-theme-fringe-cyan nil nil)
406(defface modus-theme-nuanced-red nil nil)
407(defface modus-theme-nuanced-green nil nil)
408(defface modus-theme-nuanced-yellow nil nil)
409(defface modus-theme-nuanced-blue nil nil)
410(defface modus-theme-nuanced-magenta nil nil)
411(defface modus-theme-nuanced-cyan nil nil)
412(defface modus-theme-special-cold nil nil)
413(defface modus-theme-special-mild nil nil)
414(defface modus-theme-special-warm nil nil)
415(defface modus-theme-special-calm nil nil)
416(defface modus-theme-diff-added nil nil)
417(defface modus-theme-diff-changed nil nil)
418(defface modus-theme-diff-removed nil nil)
419(defface modus-theme-diff-refine-added nil nil)
420(defface modus-theme-diff-refine-changed nil nil)
421(defface modus-theme-diff-refine-removed nil nil)
422(defface modus-theme-diff-focus-added nil nil)
423(defface modus-theme-diff-focus-changed nil nil)
424(defface modus-theme-diff-focus-removed nil nil)
425(defface modus-theme-diff-heading nil nil)
426(defface modus-theme-pseudo-header nil nil)
427(defface modus-theme-mark-alt nil nil)
428(defface modus-theme-mark-del nil nil)
429(defface modus-theme-mark-sel nil nil)
430(defface modus-theme-mark-symbol nil nil)
431(defface modus-theme-heading-1 nil nil)
432(defface modus-theme-heading-2 nil nil)
433(defface modus-theme-heading-3 nil nil)
434(defface modus-theme-heading-4 nil nil)
435(defface modus-theme-heading-5 nil nil)
436(defface modus-theme-heading-6 nil nil)
437(defface modus-theme-heading-7 nil nil)
438(defface modus-theme-heading-8 nil nil)
439(defface modus-theme-hl-line nil nil)
440
441;;; Customisation options
442
443;; User-facing customisation options. They are all deactivated by
444;; default (users must opt in).
445(defcustom modus-vivendi-theme-slanted-constructs nil
446 "Use slanted text in more code constructs (italics or oblique)."
447 :type 'boolean)
448
449(defcustom modus-vivendi-theme-bold-constructs nil
450 "Use bold text in more code constructs."
451 :type 'boolean)
452
453(define-obsolete-variable-alias 'modus-vivendi-theme-proportional-fonts
454 'modus-vivendi-theme-variable-pitch-headings "`modus-vivendi-theme' 0.11.0")
455
456(defcustom modus-vivendi-theme-proportional-fonts nil
457 "Use proportional fonts (variable-pitch) in headings."
458 :type 'boolean)
459
460(defcustom modus-vivendi-theme-variable-pitch-headings nil
461 "Use proportional fonts (variable-pitch) in headings."
462 :type 'boolean)
463
464(defcustom modus-vivendi-theme-no-mixed-fonts nil
465 "Disable inheritance from `fixed-pitch' in some faces.
466
467This is done by default to allow spacing-sensitive constructs,
468such as Org tables and code blocks, to remain monospaced when
469users opt for something like the command `variable-pitch-mode'.
470The downside with the default is that users need to explicitly
471configure the font family of `fixed-pitch' in order to get a
472consistent experience. That may be something they do not want to
473do. Hence this option to disable any kind of technique for
474mixing fonts."
475 :type 'boolean)
476
477(make-obsolete 'modus-vivendi-theme-rainbow-headings
478 'modus-vivendi-theme-headings
479 "`modus-vivendi-theme' 0.13.0")
480
481(defcustom modus-vivendi-theme-rainbow-headings nil
482 "Use more saturated colours for headings."
483 :type 'boolean)
484
485(make-obsolete 'modus-vivendi-theme-section-headings
486 'modus-vivendi-theme-headings
487 "`modus-vivendi-theme' 0.13.0")
488
489(defcustom modus-vivendi-theme-section-headings nil
490 "Use a background and an overline in headings."
491 :type 'boolean)
492
493(defcustom modus-vivendi-theme-headings
494 '((t . nil))
495 "Alist of styles for headings, with optional value per level.
496
497To control faces per level from 1-8, use something like this:
498
499 (setq modus-vivendi-theme-headings
500 '((1 . highlight)
501 (2 . line)
502 (t . rainbow-line-no-bold)))
503
504To set a uniform value for all heading levels, use this pattern:
505
506 (setq modus-vivendi-theme-headings
507 '((t . rainbow-line-no-bold)))
508
509The default uses a fairly desaturated foreground value in
510combination with a bold typographic weight. To specify this
511style for a given level N (assuming you wish to have another
512fallback option), just specify the value t like this:
513
514 (setq modus-vivendi-theme-headings
515 '((1 . t)
516 (2 . line)
517 (t . rainbow-line-no-bold)))
518
519A description of all possible values:
520
521+ `no-bold' retains the default text colour while removing
522 the typographic weight.
523
524+ `line' is the same as the default plus an overline over the
525 heading.
526
527+ `line-no-bold' is the same as `line' without bold weight.
528
529+ `rainbow' uses a more colourful foreground in combination
530 with bold weight.
531
532+ `rainbow-line' is the same as `rainbow' plus an overline.
533
534+ `rainbow-line-no-bold' is the same as `rainbow-line' without
535 the bold weight.
536
537+ `highlight' retains the default style of a fairly desaturated
538 foreground combined with a bold weight and add to it a subtle
539 accented background.
540
541+ `highlight-no-bold' is the same as `highlight' without a bold
542 weight.
543
544+ `rainbow-highlight' is the same as `highlight' but with a more
545 colourful foreground.
546
547+ `rainbow-highlight-no-bold' is the same as `rainbow-highlight'
548 without a bold weight.
549
550+ `section' retains the default looks and adds to them both an
551 overline and a slightly accented background. It is, in effect,
552 a combination of the `line' and `highlight' values.
553
554+ `section-no-bold' is the same as `section' without a bold
555 weight.
556
557+ `rainbow-section' is the same as `section' but with a more
558 colourful foreground.
559
560+ `rainbow-section-no-bold' is the same as `rainbow-section'
561 without a bold weight."
562 :type
563 '(alist
564 :key-type symbol
565 :value-type
566 (choice (const :tag "Fairly desaturated foreground with bold weight (default)" t)
567 (const :tag "Like the default without bold weight" no-bold)
568 (const :tag "Like the default plus overline" line)
569 (const :tag "Like `line' without bold weight" line-no-bold)
570 (const :tag "Like the default but with more colourful foreground" rainbow)
571 (const :tag "Like `rainbow' plus overline" rainbow-line)
572 (const :tag "Like `rainbow' without bold weight" rainbow-no-bold)
573 (const :tag "Like `rainbow-line' without bold weight" rainbow-line-no-bold)
574 (const :tag "Like the default plus subtle background" highlight)
575 (const :tag "Like `highlight' without bold weight" highlight-no-bold)
576 (const :tag "Like `highlight' with more colourful foreground" rainbow-highlight)
577 (const :tag "Like `rainbow-highlight' without bold weight" rainbow-highlight-no-bold)
578 (const :tag "Like `highlight' plus overline" section)
579 (const :tag "Like `section' without bold weight" section-no-bold)
580 (const :tag "Like `section' with more colourful foreground" rainbow-section)
581 (const :tag "Like `rainbow-section' without bold weight" rainbow-section-no-bold))))
582
583(defcustom modus-vivendi-theme-scale-headings nil
584 "Use font scaling for headings."
585 :type 'boolean)
586
587(defcustom modus-vivendi-theme-scale-1 1.05
588 "Font size that is slightly larger than the base value.
589The default is a floating point that is interpreted as a multiple
590of the base font size. However, the variable also accepts an
591integer, understood as an absolute height (e.g. a value of 140 is
592the same as setting the font at 14 point size).
593
594For more on the matter, read the documentation of
595`set-face-attribute', specifically the ':height' section."
596 :type 'number)
597
598(defcustom modus-vivendi-theme-scale-2 1.1
599 "Font size slightly larger than `modus-vivendi-theme-scale-1'.
600The default is a floating point that is interpreted as a multiple
601of the base font size. However, the variable also accepts an
602integer, understood as an absolute height (e.g. a value of 140 is
603the same as setting the font at 14 point size).
604
605For more on the matter, read the documentation of
606`set-face-attribute', specifically the ':height' section."
607 :type 'number)
608
609(defcustom modus-vivendi-theme-scale-3 1.15
610 "Font size slightly larger than `modus-vivendi-theme-scale-2'.
611The default is a floating point that is interpreted as a multiple
612of the base font size. However, the variable also accepts an
613integer, understood as an absolute height (e.g. a value of 140 is
614the same as setting the font at 14 point size).
615
616For more on the matter, read the documentation of
617`set-face-attribute', specifically the ':height' section."
618 :type 'number)
619
620(defcustom modus-vivendi-theme-scale-4 1.2
621 "Font size slightly larger than `modus-vivendi-theme-scale-3'.
622The default is a floating point that is interpreted as a multiple
623of the base font size. However, the variable also accepts an
624integer, understood as an absolute height (e.g. a value of 140 is
625the same as setting the font at 14 point size).
626
627For more on the matter, read the documentation of
628`set-face-attribute', specifically the ':height' section."
629 :type 'number)
630
631(defcustom modus-vivendi-theme-scale-5 1.3
632 "Font size slightly larger than `modus-vivendi-theme-scale-4'.
633The default is a floating point that is interpreted as a multiple
634of the base font size. However, the variable also accepts an
635integer, understood as an absolute height (e.g. a value of 140 is
636the same as setting the font at 14 point size).
637
638For more on the matter, read the documentation of
639`set-face-attribute', specifically the ':height' section."
640 :type 'number)
641
642(make-obsolete 'modus-vivendi-theme-visible-fringes
643 'modus-vivendi-theme-fringes
644 "`modus-vivendi-theme' 0.12.0")
645
646(defcustom modus-vivendi-theme-visible-fringes nil
647 "Use a visible style for fringes."
648 :type 'boolean)
649
650(defcustom modus-vivendi-theme-fringes nil
651 "Define the visibility of fringes.
652
653Nil means the fringes have no background colour. Option `subtle'
654will apply a greyscale value that is visible yet close to the
655main buffer background colour. Option `intense' will use a more
656pronounced greyscale value."
657 :type '(choice
658 (const :tag "No visible fringes (default)" nil)
659 (const :tag "Subtle greyscale background" subtle)
660 (const :tag "Intense greyscale background" intense)))
661
662(make-obsolete 'modus-vivendi-theme-distinct-org-blocks
663 'modus-vivendi-theme-org-blocks
664 "`modus-vivendi-theme' 0.11.0")
665
666(defcustom modus-vivendi-theme-distinct-org-blocks nil
667 "Use a distinct neutral background for `org-mode' blocks."
668 :type 'boolean)
669
670(make-obsolete 'modus-vivendi-theme-rainbow-org-src-blocks
671 'modus-vivendi-theme-org-blocks
672 "`modus-vivendi-theme' 0.11.0")
673
674(defcustom modus-vivendi-theme-rainbow-org-src-blocks nil
675 "Use colour-coded backgrounds for `org-mode' source blocks.
676The colour in use depends on the language (send feedback to
677include more languages)."
678 :type 'boolean)
679
680(defcustom modus-vivendi-theme-org-blocks nil
681 "Use a subtle grey or colour-coded background for Org blocks.
682
683Nil means that the block will have no background of its own and
684will use the default that applies to the rest of the buffer.
685
686Option `greyscale' will apply a subtle neutral grey background to
687the block's contents. It also affects the begin and end lines of
688the block: their background will be extended to the edge of the
689window for Emacs version >= 27 where the ':extend' keyword is
690recognised by `set-face-attribute'.
691
692Option `rainbow' will use an accented background for the contents
693of the block. The exact colour will depend on the programming
694language and is controlled by the `org-src-block-faces'
695variable (refer to the theme's source code for the current
696association list)."
697 :type '(choice
698 (const :tag "No Org block background (default)" nil)
699 (const :tag "Subtle grey block background" greyscale)
700 (const :tag "Colour-coded background per programming language" rainbow)))
701
702(make-obsolete 'modus-vivendi-theme-3d-modeline
703 'modus-vivendi-theme-mode-line
704 "`modus-vivendi-theme' 0.13.0")
705
706(defcustom modus-vivendi-theme-3d-modeline nil
707 "Use a three-dimensional style for the active mode line."
708 :type 'boolean)
709
710(defcustom modus-vivendi-theme-mode-line nil
711 "Adjust the overall style of the mode line.
712
713Nil is a two-dimensional rectangle with a border around it. The
714active and the inactive modelines use different shades of
715greyscale values for the background and foreground.
716
717A `3d' value will apply a three-dimensional effect to the active
718modeline. The inactive modelines remain two-dimensional and are
719toned down a bit, relative to the nil value.
720
721The `moody' option is meant to optimise the modeline for use with
722the library of the same name. This practically means to remove
723the box effect and rely on underline and overline properties
724instead. It also tones down the inactive modelines. Despite its
725intended purpose, this option can also be used without the
726`moody' library."
727 :type '(choice
728 (const :tag "Two-dimensional box (default)" nil)
729 (const :tag "Three-dimensional style for the active mode line" 3d)
730 (const :tag "No box effects, which are optimal for use with the `moody' library" moody)))
731
732(make-obsolete 'modus-vivendi-theme-subtle-diffs
733 'modus-vivendi-theme-diffs
734 "`modus-vivendi-theme' 0.13.0")
735
736(defcustom modus-vivendi-theme-subtle-diffs nil
737 "Use fewer/dim backgrounds in `diff-mode', `ediff',`magit'."
738 :type 'boolean)
739 54
740(defcustom modus-vivendi-theme-diffs nil 55(deftheme modus-vivendi
741 "Adjust the overall styles of diffs. 56 "Accessible and customizable dark theme (WCAG AAA standard).
742 57Conforms with the highest legibility standard for color contrast
743Nil means to use fairly intense colour combinations for diffs. 58between background and foreground in any given piece of text,
744For example, you get a rich green background with a green 59which corresponds to a minimum contrast in relative luminance of
745foreground for added lines. Word-wise or 'refined' diffs follow 607:1.")
746the same pattern but use different shades of those colours to
747remain distinct.
748
749A `desaturated' value follows the same principles as with the nil
750option, while it tones down all relevant colours.
751
752Option `fg-only' will remove all accented backgrounds, except
753from word-wise changes. It instead uses colour-coded foreground
754values to differentiate between added/removed/changed lines. If
755a background is necessary, such as with `ediff', then a subtle
756greyscale value is used."
757 :type '(choice
758 (const :tag "Intensely coloured backgrounds (default)" nil)
759 (const :tag "Slightly accented backgrounds with tinted text" desaturated)
760 (const :tag "No backgrounds, except for refined diffs" fg-only)))
761
762(make-obsolete 'modus-vivendi-theme-intense-standard-completions
763 'modus-vivendi-theme-completions
764 "`modus-vivendi-theme' 0.12.0")
765
766(defcustom modus-vivendi-theme-intense-standard-completions nil
767 "Use prominent backgrounds for Icomplete, Ido, or similar."
768 :type 'boolean)
769
770(defcustom modus-vivendi-theme-completions nil
771 "Apply special styles to the UI of completion frameworks.
772
773This concerns Icomplete, Ivy, Helm, Selectrum, Ido, as well as
774any other tool meant to enhance their experience. The effect
775will vary depending on the completion framework.
776
777Nil means to remain faithful to the metaphors that each UI
778establishes. For example, Icomplete and Ido only use foreground
779colours to style their matches, whereas Ivy or Helm rely on an
780aesthetic that combines coloured backgrounds with appropriate
781text colour.
782
783Option `moderate' will apply a combination of background and
784foreground that is fairly subtle. For Icomplete and the like,
785this constitutes a departure from their standard style. While
786Ivy, Helm, and the others, will use less pronounced colours for
787applicable contexts.
788
789Option `opinionated' will apply colour combinations that
790refashion the completion UI. So Icomplete et al will now use
791styles that resemble the defaults of Ivy and co., while the
792latter group will revert to an even more nuanced aesthetic."
793 :type '(choice
794 (const :tag "Respect the framework's established aesthetic (default)" nil)
795 (const :tag "Subtle backgrounds for various elements" moderate)
796 (const :tag "Radical alternative to the framework's looks" opinionated)))
797
798(defcustom modus-vivendi-theme-prompts nil
799 "Use subtle or intense styles for minibuffer and REPL prompts.
800
801Nil means to only use an accented foreground colour.
802
803Options `subtle' and `intense' will change both the background
804and the foreground values. The latter has a more pronounced
805effect than the former."
806 :type '(choice
807 (const :tag "No prompt background (default)" nil)
808 (const :tag "Subtle accented background for the prompt" subtle)
809 (const :tag "Intense background and foreground for the prompt" intense)))
810
811(defcustom modus-vivendi-theme-intense-hl-line nil
812 "Use more prominent background for command `hl-line-mode'."
813 :type 'boolean)
814
815(defcustom modus-vivendi-theme-intense-paren-match nil
816 "Use more prominent colour for parenthesis matching."
817 :type 'boolean)
818
819(defcustom modus-vivendi-theme-faint-syntax nil
820 "Use less saturated colours for code syntax highlighting."
821 :type 'boolean)
822
823(defcustom modus-vivendi-theme-no-link-underline nil
824 "Do not underline links."
825 :type 'boolean)
826
827;;; Internal functions
828
829;; Helper functions that are meant to ease the implementation of the
830;; above customisation options.
831(defun modus-vivendi-theme-bold-weight ()
832 "Conditional use of a heavier text weight."
833 (when modus-vivendi-theme-bold-constructs
834 (list :inherit 'bold)))
835
836(defun modus-vivendi-theme-mixed-fonts ()
837 "Conditional application of `fixed-pitch' inheritance."
838 (unless modus-vivendi-theme-no-mixed-fonts
839 (list :inherit 'fixed-pitch)))
840
841(defun modus-vivendi-theme-fringe (subtlebg intensebg)
842 "Conditional use of background colours for fringes.
843SUBTLEBG should be a subtle greyscale value. INTENSEBG must be a
844more pronounced greyscale colour."
845 (pcase modus-vivendi-theme-fringes
846 ('intense (list :background intensebg))
847 ('subtle (list :background subtlebg))
848 (_ (list :background nil))))
849
850(defun modus-vivendi-theme-prompt (mainfg subtlebg subtlefg intensebg intensefg)
851 "Conditional use of background colours for prompts.
852MAINFG is the prompt's standard foreground. SUBTLEBG should be a
853subtle accented background that works with SUBTLEFG. INTENSEBG
854must be a more pronounced accented colour that should be
855combinable with INTENSEFG."
856 (pcase modus-vivendi-theme-prompts
857 ('intense (list :background intensebg :foreground intensefg))
858 ('subtle (list :background subtlebg :foreground subtlefg))
859 (_ (list :background nil :foreground mainfg))))
860
861(defun modus-vivendi-theme-paren (normalbg intensebg)
862 "Conditional use of intense colours for matching parentheses.
863NORMALBG should the special palette colour 'bg-paren-match' or
864something similar. INTENSEBG must be easier to discern next to
865other backgrounds, such as the special palette colour
866'bg-paren-match-intense'."
867 (if modus-vivendi-theme-intense-paren-match
868 (list :background intensebg)
869 (list :background normalbg)))
870
871(defun modus-vivendi-theme-syntax-foreground (normal faint)
872 "Apply foreground value to code syntax.
873NORMAL is the more saturated colour, which should be the default.
874FAINT is the less saturated colour."
875 (if modus-vivendi-theme-faint-syntax
876 (list :foreground faint)
877 (list :foreground normal)))
878
879(defun modus-vivendi-theme-heading-p (key)
880 "Query style of KEY in `modus-vivendi-theme-headings'."
881 (cdr (assoc key modus-vivendi-theme-headings)))
882
883(defun modus-vivendi-theme-heading (level fg fg-alt bg border)
884 "Conditional styles for `modus-vivendi-theme-headings'.
885
886LEVEL is the heading's position in their order. FG is the
887default text colour. FG-ALT is an accented, more saturated value
888than the default. BG is a nuanced, typically accented,
889background that can work well with either of the foreground
890values. BORDER is a colour value that combines well with the
891background and alternative foreground."
892 (let* ((key (modus-vivendi-theme-heading-p `,level))
893 (style (or key (modus-vivendi-theme-heading-p t)))
894 (var (if modus-vivendi-theme-variable-pitch-headings
895 'variable-pitch
896 'default)))
897 (pcase style
898 ('no-bold
899 (list :inherit `,var :foreground fg))
900 ('line
901 (list :inherit `(bold ,var) :foreground fg :overline border))
902 ('line-no-bold
903 (list :inherit `,var :foreground fg :overline border))
904 ('rainbow
905 (list :inherit `(bold ,var) :foreground fg-alt))
906 ('rainbow-no-bold
907 (list :inherit `,var :foreground fg-alt))
908 ('rainbow-line
909 (list :inherit `(bold ,var) :foreground fg-alt :overline border))
910 ('rainbow-line-no-bold
911 (list :inherit `,var :foreground fg-alt :overline border))
912 ('highlight
913 (list :inherit `(bold ,var) :background bg :foreground fg))
914 ('highlight-no-bold
915 (list :inherit `,var :background bg :foreground fg))
916 ('rainbow-highlight
917 (list :inherit `(bold ,var) :background bg :foreground fg-alt))
918 ('rainbow-highlight-no-bold
919 (list :inherit `,var :background bg :foreground fg-alt))
920 ('section
921 (append
922 (and (>= emacs-major-version 27) '(:extend t))
923 (list :inherit `(bold ,var) :background bg :foreground fg :overline border)))
924 ('section-no-bold
925 (append
926 (and (>= emacs-major-version 27) '(:extend t))
927 (list :inherit `,var :background bg :foreground fg :overline border)))
928 ('rainbow-section
929 (append
930 (and (>= emacs-major-version 27) '(:extend t))
931 (list :inherit `(bold ,var) :background bg :foreground fg-alt :overline border)))
932 ('rainbow-section-no-bold
933 (append
934 (and (>= emacs-major-version 27) '(:extend t))
935 (list :inherit `,var :background bg :foreground fg-alt :overline border)))
936 (_
937 (list :inherit `(bold ,var) :foreground fg)))))
938
939(defun modus-vivendi-theme-org-block (bgblk)
940 "Conditionally set the background of Org blocks.
941BGBLK applies to a distinct neutral background. Else blocks have
942no background of their own (the default), so they look the same
943as the rest of the buffer.
944
945`modus-vivendi-theme-org-blocks' also accepts a `rainbow' option
946which is applied conditionally to `org-src-block-faces' (see the
947theme's source code)."
948 (if (eq modus-vivendi-theme-org-blocks 'greyscale)
949 (append
950 (and (>= emacs-major-version 27) '(:extend t))
951 (list :background bgblk))
952 (list :background nil)))
953
954(defun modus-vivendi-theme-org-block-delim (bgaccent fgaccent bg fg)
955 "Conditionally set the styles of Org block delimiters.
956BG, FG, BGACCENT, FGACCENT apply a background and foreground
957colour respectively.
958
959The former pair is a greyscale combination that should be more
960distinct than the background of the block. It is applied to the
961default styles or when `modus-vivendi-theme-org-blocks' is set
962to `greyscale'.
963
964The latter pair should be more subtle than the background of the
965block, as it is used when `modus-vivendi-theme-org-blocks' is
966set to `rainbow'."
967 (pcase modus-vivendi-theme-org-blocks
968 ('greyscale (append (and (>= emacs-major-version 27) '(:extend t))
969 (list :background bg :foreground fg)))
970 ('rainbow (list :background bgaccent :foreground fgaccent))
971 (_ (list :background bg :foreground fg))))
972
973(defun modus-vivendi-theme-mode-line-attrs
974 (fg bg fg-alt bg-alt border border-3d &optional alt-style border-width fg-distant)
975 "Colour combinations for `modus-vivendi-theme-mode-line'.
976
977FG and BG are the default colours. FG-ALT and BG-ALT are meant
978to accommodate the options for a 3D modeline or a `moody'
979compliant one. BORDER applies to all permutations of the
980modeline, except the three-dimensional effect, where BORDER-3D is
981used instead.
982
983Optional ALT-STYLE applies an appropriate style to the mode
984line's box property.
985
986Optional BORDER-WIDTH specifies an integer for the width of the
987rectangle that produces the box effect.
988
989Optional FG-DISTANT should be close to the main background
990values. It is intended to be used as a distant-foreground
991property."
992 (pcase modus-vivendi-theme-mode-line
993 ('3d
994 `(:background ,bg-alt :foreground ,fg-alt
995 :box (:line-width ,(or border-width 1)
996 :color ,border-3d
997 :style ,(and alt-style 'released-button))))
998 ('moody
999 `(:background ,bg-alt :foreground ,fg-alt :underline ,border :overline ,border
1000 :distant-foreground ,fg-distant))
1001 (_
1002 `(:foreground ,fg :background ,bg :box ,border))))
1003
1004(defun modus-vivendi-theme-diff (fg-only-bg fg-only-fg mainbg mainfg altbg altfg)
1005 "Colour combinations for `modus-vivendi-theme-diffs'.
1006
1007FG-ONLY-BG should be similar or the same as the main background.
1008FG-ONLY-FG should be a saturated accent value that can be
1009combined with the former.
1010
1011MAINBG must be one of the dedicated backgrounds for diffs while
1012MAINFG must be the same for the foreground.
1013
1014ALTBG needs to be a slightly accented background that is meant to
1015be combined with ALTFG. Both must be less intense than MAINBG
1016and MAINFG respectively."
1017 (pcase modus-vivendi-theme-diffs
1018 ('fg-only (list :background fg-only-bg :foreground fg-only-fg))
1019 ('desaturated (list :background altbg :foreground altfg))
1020 (_ (list :background mainbg :foreground mainfg))))
1021
1022(defun modus-vivendi-theme-standard-completions (mainfg subtlebg intensebg intensefg)
1023 "Combinations for `modus-vivendi-theme-completions'.
1024
1025MAINFG is an accented foreground value. SUBTLEBG is an accented
1026background value that can be combined with MAINFG. INTENSEBG and
1027INTENSEFG are accented colours that are designed to be used in
1028tandem.
1029
1030These are intended for Icomplete, Ido, and related."
1031 (pcase modus-vivendi-theme-completions
1032 ('opinionated (list :background intensebg :foreground intensefg))
1033 ('moderate (list :background subtlebg :foreground mainfg))
1034 (_ (list :foreground mainfg))))
1035
1036(defun modus-vivendi-theme-extra-completions (subtleface intenseface altface &optional altfg bold)
1037 "Combinations for `modus-vivendi-theme-completions'.
1038
1039SUBTLEFACE and INTENSEFACE are custom theme faces that combine a
1040background and foreground value. The difference between the two
1041is a matter of degree.
1042
1043ALTFACE is a combination of colours that represents a departure
1044from the UI's default aesthetics. Optional ALTFG is meant to be
1045used in tandem with it.
1046
1047Optional BOLD will apply a heavier weight to the text.
1048
1049These are intended for Helm, Ivy, etc."
1050 (pcase modus-vivendi-theme-completions
1051 ('opinionated (list :inherit (list altface bold)
1052 :foreground (or altfg 'unspecified)))
1053 ('moderate (list :inherit (list subtleface bold)))
1054 (_ (list :inherit (list intenseface bold)))))
1055
1056(defun modus-vivendi-theme-scale (amount)
1057 "Scale heading by AMOUNT.
1058
1059AMOUNT is a customisation option."
1060 (when modus-vivendi-theme-scale-headings
1061 (list :height amount)))
1062
1063;;; Colour palette
1064
1065;; Define colour palette. Each colour must have a >= 7:1 contrast
1066;; ratio relative to the foreground/background colour it is rendered
1067;; against.
1068;;
1069;; The design of the colour palette as a macro that maps it to faces is
1070;; adapted from zenbern-theme.el, last seen at commit 7dd7968:
1071;; https://github.com/bbatsov/zenburn-emacs
1072(eval-and-compile
1073 (defconst modus-vivendi-theme-default-colors-alist
1074 '(;; base values
1075 ("bg-main" . "#000000") ("fg-main" . "#ffffff")
1076 ("bg-alt" . "#181a20") ("fg-alt" . "#a8a8a8")
1077 ("bg-dim" . "#110b11") ("fg-dim" . "#e0e6f0")
1078 ;; specifically for on/off states (e.g. `mode-line')
1079 ;;
1080 ;; must be combined with themselves
1081 ("bg-active" . "#323232") ("fg-active" . "#f4f4f4")
1082 ("bg-inactive" . "#1e1e1e") ("fg-inactive" . "#bfc0c4")
1083 ;; special base values, used only for cases where the above
1084 ;; fg-* or bg-* cannot or should not be used (to avoid confusion)
1085 ;; must be combined with: {fg,bg}-{main,alt,dim}
1086 ("bg-special-cold" . "#203448") ("fg-special-cold" . "#c6eaff")
1087 ("bg-special-mild" . "#00322e") ("fg-special-mild" . "#bfebe0")
1088 ("bg-special-warm" . "#382f27") ("fg-special-warm" . "#f8dec0")
1089 ("bg-special-calm" . "#392a48") ("fg-special-calm" . "#fbd6f4")
1090 ;; styles for the main constructs
1091 ;;
1092 ;; must be combined with: `bg-main', `bg-alt', `bg-dim'
1093 ("red" . "#ff8059") ("green" . "#44bc44")
1094 ("yellow" . "#eecc00") ("blue" . "#2fafff")
1095 ("magenta" . "#feacd0") ("cyan" . "#00d3d0")
1096 ;; styles for common, but still specialised constructs
1097 ;;
1098 ;; must be combined with: `bg-main', `bg-alt', `bg-dim'
1099 ("red-alt" . "#f4923b") ("green-alt" . "#80d200")
1100 ("yellow-alt" . "#cfdf30") ("blue-alt" . "#79a8ff")
1101 ("magenta-alt" . "#f78fe7") ("cyan-alt" . "#4ae8fc")
1102 ;; same purpose as above, just slight differences
1103 ;;
1104 ;; must be combined with: `bg-main', `bg-alt', `bg-dim'
1105 ("red-alt-other" . "#ff9977") ("green-alt-other" . "#00cd68")
1106 ("yellow-alt-other" . "#f0ce43") ("blue-alt-other" . "#00bcff")
1107 ("magenta-alt-other" . "#b6a0ff") ("cyan-alt-other" . "#6ae4b9")
1108 ;; styles for desaturated foreground text, intended for use with
1109 ;; the `modus-vivendi-theme-faint-syntax' option
1110 ;;
1111 ;; must be combined with: `bg-main', `bg-alt', `bg-dim'
1112 ("red-faint" . "#ffa0a0") ("green-faint" . "#88cf88")
1113 ("yellow-faint" . "#d2b580") ("blue-faint" . "#92baff")
1114 ("magenta-faint" . "#e0b2d6") ("cyan-faint" . "#a0bfdf")
1115
1116 ("red-alt-faint" . "#f5aa80") ("green-alt-faint" . "#a8cf88")
1117 ("yellow-alt-faint" . "#cabf77") ("blue-alt-faint" . "#a4b0ff")
1118 ("magenta-alt-faint" . "#ef9fe4") ("cyan-alt-faint" . "#90c4ed")
1119
1120 ("red-alt-other-faint" . "#ff9fbf") ("green-alt-other-faint" . "#88cfaf")
1121 ("yellow-alt-other-faint" . "#d0ba95") ("blue-alt-other-faint" . "#8fc5ff")
1122 ("magenta-alt-other-faint" . "#d0b4ff") ("cyan-alt-other-faint" . "#a4d0bb")
1123 ;; styles for elements that should be very subtle, yet accented
1124 ;;
1125 ;; must be combined with: `bg-main', `bg-alt', `bg-dim' or any of
1126 ;; the "nuanced" backgrounds
1127 ("red-nuanced" . "#ffcccc") ("green-nuanced" . "#b8e2b8")
1128 ("yellow-nuanced" . "#dfdfb0") ("blue-nuanced" . "#bfd9ff")
1129 ("magenta-nuanced" . "#e5cfef") ("cyan-nuanced" . "#a8e5e5")
1130 ;; styles for slightly accented background
1131 ;;
1132 ;; must be combined with any of the above foreground values
1133 ("red-nuanced-bg" . "#2c0614") ("green-nuanced-bg" . "#001904")
1134 ("yellow-nuanced-bg" . "#221000") ("blue-nuanced-bg" . "#0f0e39")
1135 ("magenta-nuanced-bg" . "#230631") ("cyan-nuanced-bg" . "#041529")
1136 ;; styles for elements that should draw attention to themselves
1137 ;;
1138 ;; must be combined with: `bg-main'
1139 ("red-intense" . "#fb6859") ("green-intense" . "#00fc50")
1140 ("yellow-intense" . "#ffdd00") ("blue-intense" . "#00a2ff")
1141 ("magenta-intense" . "#ff8bd4") ("cyan-intense" . "#30ffc0")
1142 ;; styles for background elements that should be visible yet
1143 ;; subtle
1144 ;;
1145 ;; must be combined with: `fg-dim'
1146 ("red-subtle-bg" . "#762422") ("green-subtle-bg" . "#2f4a00")
1147 ("yellow-subtle-bg" . "#604200") ("blue-subtle-bg" . "#10387c")
1148 ("magenta-subtle-bg" . "#49366e") ("cyan-subtle-bg" . "#00415e")
1149 ;; styles for background elements that should be visible and
1150 ;; distinguishable
1151 ;;
1152 ;; must be combined with: `fg-main'
1153 ("red-intense-bg" . "#a4202a") ("green-intense-bg" . "#006800")
1154 ("yellow-intense-bg" . "#874900") ("blue-intense-bg" . "#2a40b8")
1155 ("magenta-intense-bg" . "#7042a2") ("cyan-intense-bg" . "#005f88")
1156 ;; styles for refined contexts where both the foreground and the
1157 ;; background need to have the same/similar hue
1158 ;;
1159 ;; must be combined with themselves OR the foregrounds can be
1160 ;; combined with any of the base backgrounds
1161 ("red-refine-bg" . "#77002a") ("red-refine-fg" . "#ffb9ab")
1162 ("green-refine-bg" . "#00422a") ("green-refine-fg" . "#9ff0cf")
1163 ("yellow-refine-bg" . "#693200") ("yellow-refine-fg" . "#e2d980")
1164 ("blue-refine-bg" . "#242679") ("blue-refine-fg" . "#8ec6ff")
1165 ("magenta-refine-bg" . "#71206a") ("magenta-refine-fg" . "#ffcaf0")
1166 ("cyan-refine-bg" . "#004065") ("cyan-refine-fg" . "#8ae4f2")
1167 ;; styles that are meant exclusively for the mode line
1168 ;;
1169 ;; must be combined with: `bg-active', `bg-inactive'
1170 ("red-active" . "#ffa7ba") ("green-active" . "#70d73f")
1171 ("yellow-active" . "#dbbe5f") ("blue-active" . "#34cfff")
1172 ("magenta-active" . "#d5b1ff") ("cyan-active" . "#00d8b4")
1173 ;; styles that are meant exclusively for the fringes
1174 ;;
1175 ;; must be combined with `fg-main'
1176 ("red-fringe-bg" . "#8f1f4b") ("green-fringe-bg" . "#006700")
1177 ("yellow-fringe-bg" . "#6f4f00") ("blue-fringe-bg" . "#3f33af")
1178 ("magenta-fringe-bg" . "#6f2f89") ("cyan-fringe-bg" . "#004f8f")
1179 ;; styles reserved for specific faces
1180 ;;
1181 ;; `bg-hl-line' is between `bg-dim' and `bg-alt', so it should
1182 ;; work with all accents that cover those two, plus `bg-main'
1183 ;;
1184 ;; `bg-hl-alt' and `bg-hl-alt-intense' should only be used when no
1185 ;; other greyscale or fairly neutral background is available to
1186 ;; properly draw attention to a given construct
1187 ;;
1188 ;; `bg-header' is between `bg-active' and `bg-inactive', so it
1189 ;; can be combined with any of the "active" values, plus the
1190 ;; "special" and base foreground colours
1191 ;;
1192 ;; `bg-paren-match', `bg-paren-match-intense', `bg-region' and
1193 ;; `bg-tab-active' must be combined with `fg-main', while
1194 ;; `bg-tab-inactive' should be combined with `fg-dim'
1195 ;;
1196 ;; `bg-tab-bar' is only intended for the bar that holds the tabs and
1197 ;; can only be combined with `fg-main'
1198 ;;
1199 ;; `fg-tab-active' is meant to be combined with `bg-tab-active',
1200 ;; though only for styling special elements, such as underlining
1201 ;; the current tab
1202 ;;
1203 ;; `fg-escape-char-construct' and `fg-escape-char-backslash' can
1204 ;; be combined `bg-main', `bg-dim', `bg-alt'
1205 ;;
1206 ;; `fg-lang-error', `fg-lang-warning', `fg-lang-note' can be
1207 ;; combined with `bg-main', `bg-dim', `bg-alt'
1208 ;;
1209 ;; `fg-mark-sel', `fg-mark-del', `fg-mark-alt' can be combined
1210 ;; with `bg-main', `bg-dim', `bg-alt', `bg-hl-line'
1211 ;;
1212 ;; `fg-unfocused' must be combined with `fg-main'
1213 ;;
1214 ;; the window divider colours apply to faces with just an fg value
1215 ;;
1216 ;; all pairs are combinable with themselves
1217 ("bg-hl-line" . "#151823")
1218 ("bg-hl-line-intense" . "#2f2f2f")
1219 ("bg-hl-alt" . "#181732")
1220 ("bg-hl-alt-intense" . "#282e46")
1221 ("bg-paren-match" . "#5f362f")
1222 ("bg-paren-match-intense" . "#7416b5")
1223 ("bg-region" . "#3c3c3c")
1224
1225 ("bg-tab-bar" . "#2c2c2c")
1226 ("bg-tab-active" . "#0e0e0e")
1227 ("bg-tab-inactive" . "#3d3d3d")
1228 ("fg-tab-active" . "#5ac3cf")
1229
1230 ("fg-escape-char-construct" . "#e7a59a")
1231 ("fg-escape-char-backslash" . "#abab00")
1232
1233 ("fg-lang-error" . "#ef8690")
1234 ("fg-lang-warning" . "#b0aa00")
1235 ("fg-lang-note" . "#9d9def")
1236
1237 ("fg-window-divider-inner" . "#646464")
1238 ("fg-window-divider-outer" . "#969696")
1239
1240 ("fg-unfocused" . "#93959b")
1241
1242 ("bg-header" . "#212121") ("fg-header" . "#dddddd")
1243
1244 ("bg-whitespace" . "#170016") ("fg-whitespace" . "#a4959f")
1245
1246 ("bg-diff-heading" . "#304466") ("fg-diff-heading" . "#dadffe")
1247 ("bg-diff-added" . "#0a280a") ("fg-diff-added" . "#94ba94")
1248 ("bg-diff-changed" . "#2a2000") ("fg-diff-changed" . "#b0ba9f")
1249 ("bg-diff-removed" . "#40160f") ("fg-diff-removed" . "#c6adaa")
1250
1251 ("bg-diff-refine-added" . "#005a36") ("fg-diff-refine-added" . "#e0f6e0")
1252 ("bg-diff-refine-changed" . "#585800") ("fg-diff-refine-changed" . "#ffffcc")
1253 ("bg-diff-refine-removed" . "#852828") ("fg-diff-refine-removed" . "#ffd9eb")
1254
1255 ("bg-diff-focus-added" . "#203d20") ("fg-diff-focus-added" . "#b4ddb4")
1256 ("bg-diff-focus-changed" . "#4a3a10") ("fg-diff-focus-changed" . "#d0daaf")
1257 ("bg-diff-focus-removed" . "#5e2526") ("fg-diff-focus-removed" . "#eebdba")
1258
1259 ("bg-diff-neutral-0" . "#575757") ("fg-diff-neutral-0" . "#fcfcfc")
1260 ("bg-diff-neutral-1" . "#454545") ("fg-diff-neutral-1" . "#dddddd")
1261 ("bg-diff-neutral-2" . "#313131") ("fg-diff-neutral-2" . "#bfbfbf")
1262
1263 ("bg-mark-sel" . "#002f2f") ("fg-mark-sel" . "#60cfa2")
1264 ("bg-mark-del" . "#5a0000") ("fg-mark-del" . "#ff99aa")
1265 ("bg-mark-alt" . "#3f2210") ("fg-mark-alt" . "#f0aa20"))
1266 "The entire palette of `modus-vivendi-theme'.
1267Each element has the form (NAME . HEX).")
1268
1269 (defcustom modus-vivendi-theme-override-colors-alist '()
1270 "Association list of palette colour overrides.
1271Values can be mapped to variables, using the same syntax as the
1272one present in `modus-vivendi-theme-default-colors-alist'.
1273
1274This is only meant for do-it-yourself usage, with the
1275understanding that the user is responsible for the resulting
1276contrast ratio between new and existing colours."
1277 :type '(alist
1278 :key-type (string :tag "Name")
1279 :value-type (string :tag " Hex")))
1280
1281 (defmacro modus-vivendi-theme-with-color-variables (&rest body)
1282 "`let' bind all colours around BODY.
1283Also bind `class' to ((class color) (min-colors 89))."
1284 (declare (indent 0))
1285 `(let ((class '((class color) (min-colors 89)))
1286 ,@(mapcar (lambda (cons)
1287 (list (intern (car cons)) (cdr cons)))
1288 (append modus-vivendi-theme-default-colors-alist
1289 modus-vivendi-theme-override-colors-alist))
1290 ;; simple conditional styles that evaluate user-facing
1291 ;; customisation options
1292 (modus-theme-slant
1293 (if modus-vivendi-theme-slanted-constructs 'italic 'normal))
1294 (modus-theme-variable-pitch
1295 (if modus-vivendi-theme-variable-pitch-headings 'variable-pitch 'default)))
1296 ,@body)))
1297
1298
1299
1300;;; Faces
1301
1302(modus-vivendi-theme-with-color-variables
1303 (custom-theme-set-faces
1304 'modus-vivendi
1305;;;; custom faces
1306 ;; these bespoke faces are inherited by other constructs below
1307;;;;; subtle coloured backgrounds
1308 `(modus-theme-subtle-red ((,class :background ,red-subtle-bg :foreground ,fg-dim)))
1309 `(modus-theme-subtle-green ((,class :background ,green-subtle-bg :foreground ,fg-dim)))
1310 `(modus-theme-subtle-yellow ((,class :background ,yellow-subtle-bg :foreground ,fg-dim)))
1311 `(modus-theme-subtle-blue ((,class :background ,blue-subtle-bg :foreground ,fg-dim)))
1312 `(modus-theme-subtle-magenta ((,class :background ,magenta-subtle-bg :foreground ,fg-dim)))
1313 `(modus-theme-subtle-cyan ((,class :background ,cyan-subtle-bg :foreground ,fg-dim)))
1314 `(modus-theme-subtle-neutral ((,class :background ,bg-inactive :foreground ,fg-inactive)))
1315;;;;; intense coloured backgrounds
1316 `(modus-theme-intense-red ((,class :background ,red-intense-bg :foreground ,fg-main)))
1317 `(modus-theme-intense-green ((,class :background ,green-intense-bg :foreground ,fg-main)))
1318 `(modus-theme-intense-yellow ((,class :background ,yellow-intense-bg :foreground ,fg-main)))
1319 `(modus-theme-intense-blue ((,class :background ,blue-intense-bg :foreground ,fg-main)))
1320 `(modus-theme-intense-magenta ((,class :background ,magenta-intense-bg :foreground ,fg-main)))
1321 `(modus-theme-intense-cyan ((,class :background ,cyan-intense-bg :foreground ,fg-main)))
1322 `(modus-theme-intense-neutral ((,class :background ,bg-active :foreground ,fg-main)))
1323;;;;; refined background and foreground combinations
1324 ;; general purpose styles that use an accented foreground against an
1325 ;; accented background
1326 `(modus-theme-refine-red ((,class :background ,red-refine-bg :foreground ,red-refine-fg)))
1327 `(modus-theme-refine-green ((,class :background ,green-refine-bg :foreground ,green-refine-fg)))
1328 `(modus-theme-refine-yellow ((,class :background ,yellow-refine-bg :foreground ,yellow-refine-fg)))
1329 `(modus-theme-refine-blue ((,class :background ,blue-refine-bg :foreground ,blue-refine-fg)))
1330 `(modus-theme-refine-magenta ((,class :background ,magenta-refine-bg :foreground ,magenta-refine-fg)))
1331 `(modus-theme-refine-cyan ((,class :background ,cyan-refine-bg :foreground ,cyan-refine-fg)))
1332;;;;; "active" combinations, mostly for use on the mode line
1333 `(modus-theme-active-red ((,class :background ,red-active :foreground ,bg-active)))
1334 `(modus-theme-active-green ((,class :background ,green-active :foreground ,bg-active)))
1335 `(modus-theme-active-yellow ((,class :background ,yellow-active :foreground ,bg-active)))
1336 `(modus-theme-active-blue ((,class :background ,blue-active :foreground ,bg-active)))
1337 `(modus-theme-active-magenta ((,class :background ,magenta-active :foreground ,bg-active)))
1338 `(modus-theme-active-cyan ((,class :background ,cyan-active :foreground ,bg-active)))
1339;;;;; nuanced backgrounds
1340 ;; useful for adding an accented background that is suitable for all
1341 ;; main foreground colours (intended for use in Org source blocks)
1342 `(modus-theme-nuanced-red ((,class :background ,red-nuanced-bg
1343 ,@(and (>= emacs-major-version 27) '(:extend t)))))
1344 `(modus-theme-nuanced-green ((,class :background ,green-nuanced-bg
1345 ,@(and (>= emacs-major-version 27) '(:extend t)))))
1346 `(modus-theme-nuanced-yellow ((,class :background ,yellow-nuanced-bg
1347 ,@(and (>= emacs-major-version 27) '(:extend t)))))
1348 `(modus-theme-nuanced-blue ((,class :background ,blue-nuanced-bg
1349 ,@(and (>= emacs-major-version 27) '(:extend t)))))
1350 `(modus-theme-nuanced-magenta ((,class :background ,magenta-nuanced-bg
1351 ,@(and (>= emacs-major-version 27) '(:extend t)))))
1352 `(modus-theme-nuanced-cyan ((,class :background ,cyan-nuanced-bg
1353 ,@(and (>= emacs-major-version 27) '(:extend t)))))
1354;;;;; fringe-specific combinations
1355 `(modus-theme-fringe-red ((,class :background ,red-fringe-bg :foreground ,fg-main)))
1356 `(modus-theme-fringe-green ((,class :background ,green-fringe-bg :foreground ,fg-main)))
1357 `(modus-theme-fringe-yellow ((,class :background ,yellow-fringe-bg :foreground ,fg-main)))
1358 `(modus-theme-fringe-blue ((,class :background ,blue-fringe-bg :foreground ,fg-main)))
1359 `(modus-theme-fringe-magenta ((,class :background ,magenta-fringe-bg :foreground ,fg-main)))
1360 `(modus-theme-fringe-cyan ((,class :background ,cyan-fringe-bg :foreground ,fg-main)))
1361;;;;; special base values
1362 ;; these are closer to the grayscale than the accents defined above
1363 ;; and should only be used when the next closest alternative would be
1364 ;; a greyscale value than an accented one
1365 `(modus-theme-special-cold ((,class :background ,bg-special-cold :foreground ,fg-special-cold)))
1366 `(modus-theme-special-mild ((,class :background ,bg-special-mild :foreground ,fg-special-mild)))
1367 `(modus-theme-special-warm ((,class :background ,bg-special-warm :foreground ,fg-special-warm)))
1368 `(modus-theme-special-calm ((,class :background ,bg-special-calm :foreground ,fg-special-calm)))
1369;;;;; diff-specific combinations
1370 ;; intended for `diff-mode' or equivalent
1371 `(modus-theme-diff-added
1372 ((,class ,@(modus-vivendi-theme-diff
1373 bg-main green
1374 bg-diff-focus-added fg-diff-focus-added
1375 green-nuanced-bg fg-diff-added))))
1376 `(modus-theme-diff-changed
1377 ((,class ,@(modus-vivendi-theme-diff
1378 bg-main yellow
1379 bg-diff-focus-changed fg-diff-focus-changed
1380 yellow-nuanced-bg fg-diff-changed))))
1381 `(modus-theme-diff-removed
1382 ((,class ,@(modus-vivendi-theme-diff
1383 bg-main red
1384 bg-diff-focus-removed fg-diff-focus-removed
1385 red-nuanced-bg fg-diff-removed))))
1386 `(modus-theme-diff-refine-added
1387 ((,class ,@(modus-vivendi-theme-diff
1388 bg-diff-added fg-diff-added
1389 bg-diff-refine-added fg-diff-refine-added
1390 bg-diff-focus-added fg-diff-focus-added))))
1391 `(modus-theme-diff-refine-changed
1392 ((,class ,@(modus-vivendi-theme-diff
1393 bg-diff-changed fg-diff-changed
1394 bg-diff-refine-changed fg-diff-refine-changed
1395 bg-diff-focus-changed fg-diff-focus-changed))))
1396 `(modus-theme-diff-refine-removed
1397 ((,class ,@(modus-vivendi-theme-diff
1398 bg-diff-removed fg-diff-removed
1399 bg-diff-refine-removed fg-diff-refine-removed
1400 bg-diff-focus-removed fg-diff-focus-removed))))
1401 `(modus-theme-diff-focus-added
1402 ((,class ,@(modus-vivendi-theme-diff
1403 bg-dim green
1404 bg-diff-focus-added fg-diff-focus-added
1405 bg-diff-added fg-diff-added))))
1406 `(modus-theme-diff-focus-changed
1407 ((,class ,@(modus-vivendi-theme-diff
1408 bg-dim yellow
1409 bg-diff-focus-changed fg-diff-focus-changed
1410 bg-diff-changed fg-diff-changed))))
1411 `(modus-theme-diff-focus-removed
1412 ((,class ,@(modus-vivendi-theme-diff
1413 bg-dim red
1414 bg-diff-focus-removed fg-diff-focus-removed
1415 bg-diff-removed fg-diff-removed))))
1416 `(modus-theme-diff-heading
1417 ((,class ,@(modus-vivendi-theme-diff
1418 bg-alt blue-alt
1419 bg-diff-heading fg-diff-heading
1420 blue-nuanced-bg blue))))
1421;;;;; mark indicators
1422 ;; colour combinations intended for Dired, Ibuffer, or equivalent
1423 `(modus-theme-pseudo-header ((,class :inherit bold :foreground ,fg-main)))
1424 `(modus-theme-mark-alt ((,class :inherit bold :background ,bg-mark-alt :foreground ,fg-mark-alt)))
1425 `(modus-theme-mark-del ((,class :inherit bold :background ,bg-mark-del :foreground ,fg-mark-del)))
1426 `(modus-theme-mark-sel ((,class :inherit bold :background ,bg-mark-sel :foreground ,fg-mark-sel)))
1427 `(modus-theme-mark-symbol ((,class :inherit bold :foreground ,blue-alt)))
1428;;;;; heading levels
1429 ;; styles for regular headings used in Org, Markdown, Info, etc.
1430 `(modus-theme-heading-1
1431 ((,class ,@(modus-vivendi-theme-heading
1432 1 fg-main magenta-alt-other magenta-nuanced-bg bg-region)
1433 ,@(modus-vivendi-theme-scale modus-vivendi-theme-scale-4))))
1434 `(modus-theme-heading-2
1435 ((,class ,@(modus-vivendi-theme-heading
1436 2 fg-special-warm magenta-alt red-nuanced-bg bg-region)
1437 ,@(modus-vivendi-theme-scale modus-vivendi-theme-scale-3))))
1438 `(modus-theme-heading-3
1439 ((,class ,@(modus-vivendi-theme-heading
1440 3 fg-special-cold blue blue-nuanced-bg bg-region)
1441 ,@(modus-vivendi-theme-scale modus-vivendi-theme-scale-2))))
1442 `(modus-theme-heading-4
1443 ((,class ,@(modus-vivendi-theme-heading
1444 4 fg-special-mild cyan cyan-nuanced-bg bg-region)
1445 ,@(modus-vivendi-theme-scale modus-vivendi-theme-scale-1))))
1446 `(modus-theme-heading-5
1447 ((,class ,@(modus-vivendi-theme-heading
1448 5 fg-special-calm green-alt-other green-nuanced-bg bg-region))))
1449 `(modus-theme-heading-6
1450 ((,class ,@(modus-vivendi-theme-heading
1451 6 yellow-nuanced yellow-alt-other yellow-nuanced-bg bg-region))))
1452 `(modus-theme-heading-7
1453 ((,class ,@(modus-vivendi-theme-heading
1454 7 red-nuanced red-alt red-nuanced-bg bg-region))))
1455 `(modus-theme-heading-8
1456 ((,class ,@(modus-vivendi-theme-heading
1457 8 fg-dim magenta bg-alt bg-region))))
1458;;;;; other custom faces
1459 `(modus-theme-hl-line ((,class :background ,(if modus-vivendi-theme-intense-hl-line
1460 bg-hl-line-intense bg-hl-line)
1461 (and (>= emacs-major-version 27) '(:extend t)))))
1462;;;; standard faces
1463;;;;; absolute essentials
1464 `(default ((,class :background ,bg-main :foreground ,fg-main)))
1465 `(cursor ((,class :background ,fg-main)))
1466 `(fringe ((,class ,@(modus-vivendi-theme-fringe bg-inactive bg-active)
1467 :foreground ,fg-main)))
1468 `(vertical-border ((,class :foreground ,fg-window-divider-inner)))
1469;;;;; basic and/or ungrouped styles
1470 ;; Modify the `bold' face to change the weight of all "bold" elements
1471 ;; defined by the theme. You need a typeface that supports a
1472 ;; multitude of heavier weights than the regular one and then you
1473 ;; must specify the exact name of the one you wish to apply. Example
1474 ;; for your init.el:
1475 ;;
1476 ;; (set-face-attribute 'bold nil :weight 'semibold)
1477 `(bold ((,class :weight bold)))
1478 `(comint-highlight-input ((,class :inherit bold)))
1479 `(comint-highlight-prompt ((,class ,@(modus-vivendi-theme-bold-weight)
1480 ,@(modus-vivendi-theme-prompt
1481 cyan
1482 blue-nuanced-bg blue-alt
1483 blue-refine-bg fg-main))))
1484 `(error ((,class :inherit bold :foreground ,red)))
1485 `(escape-glyph ((,class :foreground ,fg-escape-char-construct)))
1486 `(file-name-shadow ((,class :foreground ,fg-unfocused)))
1487 `(header-line ((,class :background ,bg-header :foreground ,fg-header)))
1488 `(header-line-highlight ((,class :inherit modus-theme-active-blue)))
1489 `(help-argument-name ((,class :foreground ,cyan :slant ,modus-theme-slant)))
1490 `(homoglyph ((,class :foreground ,fg-escape-char-construct)))
1491 `(ibuffer-locked-buffer ((,class :foreground ,yellow-alt-other)))
1492 `(italic ((,class :slant italic)))
1493 `(nobreak-hyphen ((,class :foreground ,fg-escape-char-construct)))
1494 `(nobreak-space ((,class :foreground ,fg-escape-char-construct :underline t)))
1495 `(minibuffer-prompt ((,class ,@(modus-vivendi-theme-prompt
1496 cyan-alt-other
1497 cyan-nuanced-bg cyan
1498 cyan-refine-bg fg-main))))
1499 `(mm-command-output ((,class :foreground ,red-alt-other)))
1500 `(mm-uu-extract ((,class :background ,bg-dim :foreground ,fg-special-mild)))
1501 `(next-error ((,class :inherit modus-theme-subtle-red)))
1502 `(rectangle-preview ((,class :inherit modus-theme-special-mild)))
1503 `(region ((,class :background ,bg-region :foreground ,fg-main)))
1504 `(secondary-selection ((,class :inherit modus-theme-special-cold)))
1505 `(shadow ((,class :foreground ,fg-alt)))
1506 `(success ((,class :inherit bold :foreground ,green)))
1507 `(trailing-whitespace ((,class :background ,red-intense-bg)))
1508 `(warning ((,class :inherit bold :foreground ,yellow)))
1509;;;;; buttons, links, widgets
1510 `(button ((,class :foreground ,blue-alt-other
1511 ,@(unless modus-vivendi-theme-no-link-underline
1512 (list :underline t)))))
1513 `(link ((,class :inherit button)))
1514 `(link-visited ((,class :inherit link :foreground ,magenta-alt-other)))
1515 `(tooltip ((,class :background ,bg-special-cold :foreground ,fg-main)))
1516 `(widget-button ((,class :inherit button)))
1517 `(widget-button-pressed ((,class :inherit button :foreground ,magenta)))
1518 `(widget-documentation ((,class :foreground ,green)))
1519 `(widget-field ((,class :background ,bg-alt :foreground ,fg-dim)))
1520 `(widget-inactive ((,class :background ,bg-inactive :foreground ,fg-inactive)))
1521 `(widget-single-line-field ((,class :inherit widget-field)))
1522;;;;; ag
1523 `(ag-hit-face ((,class :foreground ,fg-special-cold)))
1524 `(ag-match-face ((,class :inherit modus-theme-special-calm)))
1525;;;;; alert
1526 `(alert-high-face ((,class :inherit bold :foreground ,red-alt)))
1527 `(alert-low-face ((,class :foreground ,fg-special-mild)))
1528 `(alert-moderate-face ((,class :inherit bold :foreground ,yellow)))
1529 `(alert-trivial-face ((,class :foreground ,fg-special-calm)))
1530 `(alert-urgent-face ((,class :inherit bold :foreground ,red-intense)))
1531;;;;; all-the-icons
1532 `(all-the-icons-blue ((,class :foreground ,blue)))
1533 `(all-the-icons-blue-alt ((,class :foreground ,blue-alt)))
1534 `(all-the-icons-cyan ((,class :foreground ,cyan)))
1535 `(all-the-icons-cyan-alt ((,class :foreground ,cyan-alt)))
1536 `(all-the-icons-dblue ((,class :foreground ,blue-alt-other)))
1537 `(all-the-icons-dcyan ((,class :foreground ,cyan-alt-other)))
1538 `(all-the-icons-dgreen ((,class :foreground ,green-alt-other)))
1539 `(all-the-icons-dired-dir-face ((,class :foreground ,blue)))
1540 `(all-the-icons-dmaroon ((,class :foreground ,magenta-alt-other)))
1541 `(all-the-icons-dorange ((,class :foreground ,red-alt-other)))
1542 `(all-the-icons-dpink ((,class :foreground ,magenta)))
1543 `(all-the-icons-dpurple ((,class :foreground ,magenta-alt)))
1544 `(all-the-icons-dred ((,class :foreground ,red)))
1545 `(all-the-icons-dsilver ((,class :foreground ,fg-special-cold)))
1546 `(all-the-icons-dyellow ((,class :foreground ,yellow)))
1547 `(all-the-icons-green ((,class :foreground ,green)))
1548 `(all-the-icons-lblue ((,class :foreground ,blue-refine-fg)))
1549 `(all-the-icons-lcyan ((,class :foreground ,cyan-refine-fg)))
1550 `(all-the-icons-lgreen ((,class :foreground ,green-refine-fg)))
1551 `(all-the-icons-lmaroon ((,class :foreground ,magenta-refine-fg)))
1552 `(all-the-icons-lorange ((,class :foreground ,red-refine-fg)))
1553 `(all-the-icons-lpink ((,class :foreground ,magenta-refine-fg)))
1554 `(all-the-icons-lpurple ((,class :foreground ,magenta-refine-fg)))
1555 `(all-the-icons-lred ((,class :foreground ,red-refine-fg)))
1556 `(all-the-icons-lsilver ((,class :foreground ,fg-special-cold)))
1557 `(all-the-icons-lyellow ((,class :foreground ,yellow-refine-fg)))
1558 `(all-the-icons-maroon ((,class :foreground ,magenta)))
1559 `(all-the-icons-orange ((,class :foreground ,red-alt)))
1560 `(all-the-icons-pink ((,class :foreground ,magenta)))
1561 `(all-the-icons-purple ((,class :foreground ,magenta-alt)))
1562 `(all-the-icons-purple-alt ((,class :foreground ,magenta-alt-other)))
1563 `(all-the-icons-red ((,class :foreground ,red)))
1564 `(all-the-icons-red-alt ((,class :foreground ,red-alt)))
1565 `(all-the-icons-silver ((,class :foreground ,fg-special-cold)))
1566 `(all-the-icons-yellow ((,class :foreground ,yellow)))
1567;;;;; annotate
1568 `(annotate-annotation ((,class :inherit modus-theme-subtle-blue)))
1569 `(annotate-annotation-secondary ((,class :inherit modus-theme-subtle-green)))
1570 `(annotate-highlight ((,class :background ,blue-nuanced-bg :underline ,blue-intense)))
1571 `(annotate-highlight-secondary ((,class :background ,green-nuanced-bg :underline ,green-intense)))
1572;;;;; anzu
1573 `(anzu-match-1 ((,class :inherit modus-theme-subtle-cyan)))
1574 `(anzu-match-2 ((,class :inherit modus-theme-subtle-green)))
1575 `(anzu-match-3 ((,class :inherit modus-theme-subtle-yellow)))
1576 `(anzu-mode-line ((,class :inherit bold :foreground ,green-active)))
1577 `(anzu-mode-line-no-match ((,class :inherit bold :foreground ,red-active)))
1578 `(anzu-replace-highlight ((,class :inherit modus-theme-refine-yellow :underline t)))
1579 `(anzu-replace-to ((,class :inherit (modus-theme-intense-green bold))))
1580;;;;; apropos
1581 `(apropos-function-button ((,class :inherit button :foreground ,magenta-alt-other)))
1582 `(apropos-keybinding ((,class :inherit bold :foreground ,cyan)))
1583 `(apropos-misc-button ((,class :inherit button :foreground ,cyan-alt-other)))
1584 `(apropos-property ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,magenta-alt)))
1585 `(apropos-symbol ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,blue-alt-other)))
1586 `(apropos-user-option-button ((,class :inherit button :foreground ,green-alt-other)))
1587 `(apropos-variable-button ((,class :inherit button :foreground ,blue)))
1588;;;;; apt-sources-list
1589 `(apt-sources-list-components ((,class :foreground ,cyan)))
1590 `(apt-sources-list-options ((,class :foreground ,yellow)))
1591 `(apt-sources-list-suite ((,class :foreground ,green)))
1592 `(apt-sources-list-type ((,class :foreground ,magenta)))
1593 `(apt-sources-list-uri ((,class :foreground ,blue)))
1594;;;;; artbollocks-mode
1595 `(artbollocks-face ((,class :foreground ,cyan-nuanced :underline ,fg-lang-note)))
1596 `(artbollocks-lexical-illusions-face ((,class :background ,bg-alt :foreground ,red-alt :underline t)))
1597 `(artbollocks-passive-voice-face ((,class :foreground ,yellow-nuanced :underline ,fg-lang-warning)))
1598 `(artbollocks-weasel-words-face ((,class :foreground ,red-nuanced :underline ,fg-lang-error)))
1599;;;;; auctex and Tex
1600 `(font-latex-bold-face ((,class :inherit bold :foreground ,fg-special-calm)))
1601 `(font-latex-doctex-documentation-face ((,class :foreground ,fg-special-cold :slant ,modus-theme-slant)))
1602 `(font-latex-doctex-preprocessor-face ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,red-alt-other)))
1603 `(font-latex-italic-face ((,class :foreground ,fg-special-calm :slant italic)))
1604 `(font-latex-math-face ((,class :foreground ,cyan-alt-other)))
1605 `(font-latex-script-char-face ((,class :foreground ,cyan-alt-other)))
1606 `(font-latex-sectioning-0-face ((,class :inherit ,modus-theme-variable-pitch :foreground ,blue-nuanced)))
1607 `(font-latex-sectioning-1-face ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,blue-nuanced)))
1608 `(font-latex-sectioning-2-face ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,blue-nuanced)))
1609 `(font-latex-sectioning-3-face ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,blue-nuanced)))
1610 `(font-latex-sectioning-4-face ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,blue-nuanced)))
1611 `(font-latex-sectioning-5-face ((,class :inherit ,modus-theme-variable-pitch :foreground ,blue-nuanced)))
1612 `(font-latex-sedate-face ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,magenta-alt-other)))
1613 `(font-latex-slide-title-face ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,cyan-nuanced
1614 ,@(modus-vivendi-theme-scale modus-vivendi-theme-scale-4))))
1615 `(font-latex-string-face ((,class :foreground ,blue-alt)))
1616 `(font-latex-subscript-face ((,class :height 0.95)))
1617 `(font-latex-superscript-face ((,class :height 0.95)))
1618 `(font-latex-verbatim-face ((,class :background ,bg-dim :foreground ,fg-special-mild)))
1619 `(font-latex-warning-face ((,class :foreground ,yellow-alt-other)))
1620 `(tex-match ((,class :foreground ,blue-alt-other)))
1621 `(tex-verbatim ((,class :background ,bg-dim :foreground ,fg-special-mild)))
1622 `(texinfo-heading ((,class :foreground ,magenta)))
1623 `(TeX-error-description-error ((,class :inherit bold :foreground ,red)))
1624 `(TeX-error-description-help ((,class :foreground ,blue)))
1625 `(TeX-error-description-tex-said ((,class :foreground ,blue)))
1626 `(TeX-error-description-warning ((,class :inherit bold :foreground ,yellow)))
1627;;;;; auto-dim-other-buffers
1628 `(auto-dim-other-buffers-face ((,class :background ,bg-alt)))
1629;;;;; avy
1630 `(avy-background-face ((,class :background ,bg-dim :foreground ,fg-dim)))
1631 `(avy-goto-char-timer-face ((,class :inherit (modus-theme-intense-yellow bold))))
1632 `(avy-lead-face ((,class :inherit (modus-theme-intense-magenta bold))))
1633 `(avy-lead-face-0 ((,class :inherit (modus-theme-intense-blue bold))))
1634 `(avy-lead-face-1 ((,class :inherit (modus-theme-intense-red bold))))
1635 `(avy-lead-face-2 ((,class :inherit (modus-theme-intense-green bold))))
1636;;;;; aw (ace-window)
1637 `(aw-background-face ((,class :background ,bg-dim :foreground ,fg-dim)))
1638 `(aw-key-face ((,class :inherit bold :foreground ,blue-intense)))
1639 `(aw-leading-char-face ((,class :inherit bold :height 1.5 :background ,bg-main :foreground ,red-intense)))
1640 `(aw-minibuffer-leading-char-face ((,class :foreground ,magenta-active)))
1641 `(aw-mode-line-face ((,class :inherit bold)))
1642;;;;; awesome-tray
1643 `(awesome-tray-module-awesome-tab-face ((,class :inherit bold :foreground ,red-alt-other)))
1644 `(awesome-tray-module-battery-face ((,class :inherit bold :foreground ,cyan-alt-other)))
1645 `(awesome-tray-module-buffer-name-face ((,class :inherit bold :foreground ,yellow-alt-other)))
1646 `(awesome-tray-module-circe-face ((,class :inherit bold :foreground ,blue-alt)))
1647 `(awesome-tray-module-date-face ((,class :inherit bold :foreground ,fg-dim)))
1648 `(awesome-tray-module-evil-face ((,class :inherit bold :foreground ,green-alt)))
1649 `(awesome-tray-module-git-face ((,class :inherit bold :foreground ,magenta)))
1650 `(awesome-tray-module-last-command-face ((,class :inherit bold :foreground ,blue-alt-other)))
1651 `(awesome-tray-module-location-face ((,class :inherit bold :foreground ,yellow)))
1652 `(awesome-tray-module-mode-name-face ((,class :inherit bold :foreground ,green)))
1653 `(awesome-tray-module-parent-dir-face ((,class :inherit bold :foreground ,cyan)))
1654 `(awesome-tray-module-rvm-face ((,class :inherit bold :foreground ,magenta-alt-other)))
1655;;;;; binder
1656 `(binder-sidebar-highlight ((,class :inherit modus-theme-subtle-cyan)))
1657 `(binder-sidebar-marked ((,class :inherit modus-theme-mark-sel)))
1658 `(binder-sidebar-missing ((,class :inherit modus-theme-subtle-red)))
1659 `(binder-sidebar-tags ((,class :foreground ,cyan)))
1660;;;;; bm
1661 `(bm-face ((,class :inherit modus-theme-subtle-yellow
1662 ,@(and (>= emacs-major-version 27) '(:extend t)))))
1663 `(bm-fringe-face ((,class :inherit modus-theme-fringe-yellow)))
1664 `(bm-fringe-persistent-face ((,class :inherit modus-theme-fringe-blue)))
1665 `(bm-persistent-face ((,class :inherit modus-theme-intense-blue
1666 ,@(and (>= emacs-major-version 27) '(:extend t)))))
1667;;;;; bongo
1668 `(bongo-album-title ((,class :foreground ,cyan-active)))
1669 `(bongo-artist ((,class :foreground ,magenta-active)))
1670 `(bongo-currently-playing-track ((,class :inherit bold)))
1671 `(bongo-elapsed-track-part ((,class :inherit modus-theme-subtle-magenta :underline t)))
1672 `(bongo-filled-seek-bar ((,class :background ,blue-subtle-bg :foreground ,fg-main)))
1673 `(bongo-marked-track ((,class :foreground ,fg-mark-alt)))
1674 `(bongo-marked-track-line ((,class :background ,bg-mark-alt)))
1675 `(bongo-played-track ((,class :foreground ,fg-unfocused :strike-through t)))
1676 `(bongo-track-length ((,class :foreground ,blue-alt-other)))
1677 `(bongo-track-title ((,class :foreground ,blue-active)))
1678 `(bongo-unfilled-seek-bar ((,class :background ,blue-nuanced-bg :foreground ,fg-main)))
1679;;;;; boon
1680 `(boon-modeline-cmd ((,class :inherit modus-theme-active-blue)))
1681 `(boon-modeline-ins ((,class :inherit modus-theme-active-red)))
1682 `(boon-modeline-off ((,class :inherit modus-theme-active-yellow)))
1683 `(boon-modeline-spc ((,class :inherit modus-theme-active-green)))
1684;;;;; breakpoint (built-in gdb-mi.el)
1685 `(breakpoint-disabled ((,class :foreground ,fg-alt)))
1686 `(breakpoint-enabled ((,class :inherit bold :foreground ,red)))
1687;;;;; buffer-expose
1688 `(buffer-expose-ace-char-face ((,class :inherit bold :foreground ,red-active)))
1689 `(buffer-expose-mode-line-face ((,class :foreground ,cyan-active)))
1690 `(buffer-expose-selected-face ((,class :inherit modus-theme-special-mild)))
1691;;;;; calendar and diary
1692 `(calendar-month-header ((,class :inherit bold :foreground ,fg-main)))
1693 `(calendar-today ((,class :underline t)))
1694 `(calendar-weekday-header ((,class :foreground ,fg-dim)))
1695 `(calendar-weekend-header ((,class :foreground ,fg-alt)))
1696 `(diary ((,class :foreground ,cyan-alt-other)))
1697 `(diary-anniversary ((,class :foreground ,red-alt-other)))
1698 `(diary-time ((,class :foreground ,blue-alt)))
1699 `(holiday ((,class :foreground ,magenta-alt)))
1700;;;;; calfw
1701 `(cfw:face-annotation ((,class :foreground ,fg-special-warm)))
1702 `(cfw:face-day-title ((,class :foreground ,fg-main)))
1703 `(cfw:face-default-content ((,class :foreground ,green-alt)))
1704 `(cfw:face-default-day ((,class :inherit (cfw:face-day-title bold))))
1705 `(cfw:face-disable ((,class :foreground ,fg-unfocused)))
1706 `(cfw:face-grid ((,class :foreground ,fg-window-divider-outer)))
1707 `(cfw:face-header ((,class :inherit bold :foreground ,fg-main)))
1708 `(cfw:face-holiday ((,class :foreground ,magenta-alt-other)))
1709 `(cfw:face-periods ((,class :foreground ,cyan-alt-other)))
1710 `(cfw:face-saturday ((,class :inherit bold :foreground ,cyan-alt-other)))
1711 `(cfw:face-select ((,class :inherit modus-theme-intense-blue)))
1712 `(cfw:face-sunday ((,class :inherit bold :foreground ,cyan-alt-other)))
1713 `(cfw:face-title ((,class :inherit ,modus-theme-variable-pitch
1714 :foreground ,fg-special-cold
1715 ,@(modus-vivendi-theme-scale modus-vivendi-theme-scale-5))))
1716 `(cfw:face-today ((,class :background ,bg-inactive)))
1717 `(cfw:face-today-title ((,class :background ,bg-active)))
1718 `(cfw:face-toolbar ((,class :background ,bg-alt :foreground ,bg-alt)))
1719 `(cfw:face-toolbar-button-off ((,class :foreground ,fg-alt)))
1720 `(cfw:face-toolbar-button-on ((,class :inherit bold :background ,blue-nuanced-bg
1721 :foreground ,blue-alt)))
1722;;;;; centaur-tabs
1723 `(centaur-tabs-active-bar-face ((,class :background ,fg-tab-active)))
1724 `(centaur-tabs-close-mouse-face ((,class :inherit bold :foreground ,red-active :underline t)))
1725 `(centaur-tabs-close-selected ((,class :inherit centaur-tabs-selected)))
1726 `(centaur-tabs-close-unselected ((,class :inherit centaur-tabs-unselected)))
1727 `(centaur-tabs-modified-marker-selected ((,class :inherit centaur-tabs-selected)))
1728 `(centaur-tabs-modified-marker-unselected ((,class :inherit centaur-tabs-unselected)))
1729 `(centaur-tabs-default ((,class :background ,bg-main :foreground ,bg-main)))
1730 `(centaur-tabs-selected ((,class :inherit bold :background ,bg-tab-active :foreground ,fg-main)))
1731 `(centaur-tabs-selected-modified ((,class :background ,bg-tab-active :foreground ,fg-main :slant italic)))
1732 `(centaur-tabs-unselected ((,class :background ,bg-tab-inactive :foreground ,fg-dim)))
1733 `(centaur-tabs-unselected-modified ((,class :background ,bg-tab-inactive :foreground ,fg-dim :slant italic)))
1734;;;;; change-log and log-view (`vc-print-log' and `vc-print-root-log')
1735 `(change-log-acknowledgment ((,class :foreground ,fg-alt)))
1736 `(change-log-conditionals ((,class :foreground ,magenta-alt)))
1737 `(change-log-date ((,class :foreground ,cyan-alt-other)))
1738 `(change-log-email ((,class :foreground ,cyan)))
1739 `(change-log-file ((,class :foreground ,blue)))
1740 `(change-log-function ((,class :foreground ,green-alt-other)))
1741 `(change-log-list ((,class :foreground ,magenta-alt-other)))
1742 `(change-log-name ((,class :foreground ,cyan)))
1743 `(log-edit-header ((,class :foreground ,fg-special-warm)))
1744 `(log-edit-summary ((,class :inherit bold :foreground ,cyan)))
1745 `(log-edit-unknown-header ((,class :foreground ,fg-alt)))
1746 `(log-view-file ((,class :inherit bold :foreground ,fg-special-cold)))
1747 `(log-view-message ((,class :foreground ,fg-alt)))
1748;;;;; cider
1749 `(cider-debug-code-overlay-face ((,class :background ,bg-alt)))
1750 `(cider-debug-prompt-face ((,class :foreground ,magenta-alt :underline t)))
1751 `(cider-deprecated-face ((,class :inherit modus-theme-refine-yellow)))
1752 `(cider-docview-emphasis-face ((,class :foreground ,fg-special-cold :slant italic)))
1753 `(cider-docview-literal-face ((,class :foreground ,blue-alt)))
1754 `(cider-docview-strong-face ((,class :inherit bold :foreground ,fg-special-cold)))
1755 `(cider-docview-table-border-face ((,class :foreground ,fg-alt)))
1756 `(cider-enlightened-face ((,class :box (:line-width -1 :color ,yellow-alt :style nil) :background ,bg-dim)))
1757 `(cider-enlightened-local-face ((,class :inherit bold :foreground ,yellow-alt-other)))
1758 `(cider-error-highlight-face ((,class :foreground ,red :underline t)))
1759 `(cider-fragile-button-face ((,class :box (:line-width 3 :color ,fg-alt :style released-button) :foreground ,yellow)))
1760 `(cider-fringe-good-face ((,class :foreground ,green-active)))
1761 `(cider-instrumented-face ((,class :box (:line-width -1 :color ,red :style nil) :background ,bg-dim)))
1762 `(cider-reader-conditional-face ((,class :foreground ,fg-special-warm :slant italic)))
1763 `(cider-repl-input-face ((,class :inherit bold)))
1764 `(cider-repl-prompt-face ((,class :foreground ,cyan-alt-other)))
1765 `(cider-repl-stderr-face ((,class :inherit bold :foreground ,red)))
1766 `(cider-repl-stdout-face ((,class :foreground ,blue)))
1767 `(cider-result-overlay-face ((,class :box (:line-width -1 :color ,blue :style nil) :background ,bg-dim)))
1768 `(cider-stacktrace-error-class-face ((,class :inherit bold :foreground ,red)))
1769 `(cider-stacktrace-error-message-face ((,class :foreground ,red-alt-other :slant italic)))
1770 `(cider-stacktrace-face ((,class :foreground ,fg-main)))
1771 `(cider-stacktrace-filter-active-face ((,class :foreground ,cyan-alt :underline t)))
1772 `(cider-stacktrace-filter-inactive-face ((,class :foreground ,cyan-alt)))
1773 `(cider-stacktrace-fn-face ((,class :inherit bold :foreground ,fg-main)))
1774 `(cider-stacktrace-ns-face ((,class :foreground ,fg-alt :slant italic)))
1775 `(cider-stacktrace-promoted-button-face ((,class :box (:line-width 3 :color ,fg-alt :style released-button) :foreground ,red)))
1776 `(cider-stacktrace-suppressed-button-face ((,class :box (:line-width 3 :color ,fg-alt :style pressed-button)
1777 :background ,bg-alt :foreground ,fg-alt)))
1778 `(cider-test-error-face ((,class :inherit modus-theme-subtle-red)))
1779 `(cider-test-failure-face ((,class :inherit (modus-theme-intense-red bold))))
1780 `(cider-test-success-face ((,class :inherit modus-theme-intense-green)))
1781 `(cider-traced-face ((,class :box (:line-width -1 :color ,cyan :style nil) :background ,bg-dim)))
1782 `(cider-warning-highlight-face ((,class :foreground ,yellow :underline t)))
1783;;;;; circe (and lui)
1784 `(circe-fool-face ((,class :foreground ,fg-alt)))
1785 `(circe-highlight-nick-face ((,class :inherit bold :foreground ,blue)))
1786 `(circe-prompt-face ((,class :inherit bold :foreground ,cyan-alt-other)))
1787 `(circe-server-face ((,class :foreground ,fg-unfocused)))
1788 `(lui-button-face ((,class :inherit button :foreground ,blue)))
1789 `(lui-highlight-face ((,class :foreground ,magenta-alt)))
1790 `(lui-time-stamp-face ((,class :foreground ,blue-nuanced)))
1791;;;;; color-rg
1792 `(color-rg-font-lock-column-number ((,class :foreground ,magenta-alt-other)))
1793 `(color-rg-font-lock-command ((,class :inherit bold :foreground ,fg-main)))
1794 `(color-rg-font-lock-file ((,class :inherit bold :foreground ,fg-special-cold)))
1795 `(color-rg-font-lock-flash ((,class :inherit modus-theme-intense-blue)))
1796 `(color-rg-font-lock-function-location ((,class :inherit modus-theme-special-calm)))
1797 `(color-rg-font-lock-header-line-directory ((,class :foreground ,blue-active)))
1798 `(color-rg-font-lock-header-line-edit-mode ((,class :foreground ,magenta-active)))
1799 `(color-rg-font-lock-header-line-keyword ((,class :foreground ,green-active)))
1800 `(color-rg-font-lock-header-line-text ((,class :foreground ,fg-active)))
1801 `(color-rg-font-lock-line-number ((,class :foreground ,fg-special-warm)))
1802 `(color-rg-font-lock-mark-changed ((,class :inherit bold :foreground ,blue)))
1803 `(color-rg-font-lock-mark-deleted ((,class :inherit bold :foreground ,red)))
1804 `(color-rg-font-lock-match ((,class :inherit modus-theme-special-calm)))
1805 `(color-rg-font-lock-position-splitter ((,class :foreground ,fg-alt)))
1806;;;;; column-enforce-mode
1807 `(column-enforce-face ((,class :inherit modus-theme-refine-yellow)))
1808;;;;; company-mode
1809 `(company-echo-common ((,class :foreground ,magenta-alt-other)))
1810 `(company-preview ((,class :background ,bg-dim :foreground ,fg-dim)))
1811 `(company-preview-common ((,class :foreground ,blue-alt)))
1812 `(company-preview-search ((,class :inherit modus-theme-special-calm)))
1813 `(company-scrollbar-bg ((,class :background ,bg-active)))
1814 `(company-scrollbar-fg ((,class :background ,fg-active)))
1815 `(company-template-field ((,class :inherit modus-theme-intense-magenta)))
1816 `(company-tooltip ((,class :background ,bg-alt :foreground ,fg-alt)))
1817 `(company-tooltip-annotation ((,class :foreground ,fg-special-cold :slant ,modus-theme-slant)))
1818 `(company-tooltip-annotation-selection ((,class :inherit bold :foreground ,fg-main)))
1819 `(company-tooltip-common ((,class :inherit bold :foreground ,blue-alt)))
1820 `(company-tooltip-common-selection ((,class :foreground ,fg-main)))
1821 `(company-tooltip-mouse ((,class :inherit modus-theme-intense-blue)))
1822 `(company-tooltip-search ((,class :inherit (modus-theme-refine-cyan bold))))
1823 `(company-tooltip-search-selection ((,class :inherit (modus-theme-intense-green bold) :underline t)))
1824 `(company-tooltip-selection ((,class :inherit (modus-theme-subtle-cyan bold))))
1825;;;;; company-posframe
1826 `(company-posframe-active-backend-name ((,class :inherit bold :background ,bg-active :foreground ,blue-active)))
1827 `(company-posframe-inactive-backend-name ((,class :background ,bg-active :foreground ,fg-active)))
1828 `(company-posframe-metadata ((,class :background ,bg-inactive :foreground ,fg-inactive)))
1829;;;;; compilation feedback
1830 `(compilation-column-number ((,class :foreground ,magenta-alt-other)))
1831 `(compilation-error ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,red)))
1832 `(compilation-info ((,class :foreground ,fg-special-cold)))
1833 `(compilation-line-number ((,class :foreground ,fg-special-warm)))
1834 `(compilation-mode-line-exit ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,blue-active)))
1835 `(compilation-mode-line-fail ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,red-active)))
1836 `(compilation-mode-line-run ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,magenta-active)))
1837 `(compilation-warning ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,yellow)))
1838;;;;; completions
1839 `(completions-annotations ((,class :foreground ,fg-special-cold :slant ,modus-theme-slant)))
1840 `(completions-common-part ((,class ,@(modus-vivendi-theme-standard-completions
1841 blue-alt blue-nuanced-bg
1842 cyan-refine-bg cyan-refine-fg))))
1843 `(completions-first-difference ((,class :inherit bold
1844 ,@(modus-vivendi-theme-standard-completions
1845 magenta-alt blue-nuanced-bg
1846 magenta-intense-bg fg-main))))
1847;;;;; counsel
1848 `(counsel-active-mode ((,class :foreground ,magenta-alt-other)))
1849 `(counsel-application-name ((,class :foreground ,red-alt-other)))
1850 `(counsel-key-binding ((,class :inherit bold :foreground ,blue-alt-other)))
1851 `(counsel-outline-1 ((,class :inherit outline-1)))
1852 `(counsel-outline-2 ((,class :inherit outline-2)))
1853 `(counsel-outline-3 ((,class :inherit outline-3)))
1854 `(counsel-outline-4 ((,class :inherit outline-4)))
1855 `(counsel-outline-5 ((,class :inherit outline-5)))
1856 `(counsel-outline-6 ((,class :inherit outline-6)))
1857 `(counsel-outline-7 ((,class :inherit outline-7)))
1858 `(counsel-outline-8 ((,class :inherit outline-8)))
1859 `(counsel-outline-default ((,class :inherit bold :foreground ,green-alt-other)))
1860 `(counsel-variable-documentation ((,class :foreground ,yellow-alt-other :slant ,modus-theme-slant)))
1861;;;;; counsel-css
1862 `(counsel-css-selector-depth-face-1 ((,class :foreground ,blue)))
1863 `(counsel-css-selector-depth-face-2 ((,class :foreground ,cyan)))
1864 `(counsel-css-selector-depth-face-3 ((,class :foreground ,green)))
1865 `(counsel-css-selector-depth-face-4 ((,class :foreground ,yellow)))
1866 `(counsel-css-selector-depth-face-5 ((,class :foreground ,magenta)))
1867 `(counsel-css-selector-depth-face-6 ((,class :foreground ,red)))
1868;;;;; counsel-notmuch
1869 `(counsel-notmuch-count-face ((,class :foreground ,cyan)))
1870 `(counsel-notmuch-date-face ((,class :foreground ,blue)))
1871 `(counsel-notmuch-people-face ((,class :foreground ,magenta)))
1872 `(counsel-notmuch-subject-face ((,class :foreground ,magenta-alt-other)))
1873;;;;; counsel-org-capture-string
1874 `(counsel-org-capture-string-template-body-face ((,class :foreground ,fg-special-cold)))
1875;;;;; cov
1876 `(cov-coverage-not-run-face ((,class :foreground ,red-intense)))
1877 `(cov-coverage-run-face ((,class :foreground ,green-intense)))
1878 `(cov-heavy-face ((,class :foreground ,magenta-intense)))
1879 `(cov-light-face ((,class :foreground ,blue-intense)))
1880 `(cov-med-face ((,class :foreground ,yellow-intense)))
1881 `(cov-none-face ((,class :foreground ,cyan-intense)))
1882;;;;; cperl-mode
1883 `(cperl-nonoverridable-face ((,class :foreground ,yellow-alt-other)))
1884 `(cperl-array-face ((,class :inherit bold :background ,bg-alt :foreground ,magenta-alt)))
1885 `(cperl-hash-face ((,class :inherit bold :background ,bg-alt :foreground ,red-alt :slant ,modus-theme-slant)))
1886;;;;; csv-mode
1887 `(csv-separator-face ((,class :background ,bg-special-cold :foreground ,fg-main)))
1888;;;;; ctrlf
1889 `(ctrlf-highlight-active ((,class :inherit (modus-theme-intense-green bold))))
1890 `(ctrlf-highlight-line ((,class :inherit modus-theme-hl-line)))
1891 `(ctrlf-highlight-passive ((,class :inherit modus-theme-refine-cyan)))
1892;;;;; custom (M-x customize)
1893 `(custom-button ((,class :box (:line-width 2 :color nil :style released-button)
1894 :background ,bg-active :foreground ,fg-main)))
1895 `(custom-button-mouse ((,class :box (:line-width 2 :color nil :style released-button)
1896 :background ,bg-active :foreground ,fg-active)))
1897 `(custom-button-pressed ((,class :box (:line-width 2 :color nil :style pressed-button)
1898 :background ,bg-active :foreground ,fg-main)))
1899 `(custom-changed ((,class :inherit modus-theme-subtle-cyan)))
1900 `(custom-comment ((,class :foreground ,fg-alt)))
1901 `(custom-comment-tag ((,class :background ,bg-alt :foreground ,yellow-alt-other)))
1902 `(custom-face-tag ((,class :inherit bold :foreground ,blue-intense)))
1903 `(custom-group-tag ((,class :inherit bold :foreground ,green-intense)))
1904 `(custom-group-tag-1 ((,class :inherit modus-theme-special-warm)))
1905 `(custom-invalid ((,class :inherit (modus-theme-intense-red bold))))
1906 `(custom-modified ((,class :inherit modus-theme-subtle-cyan)))
1907 `(custom-rogue ((,class :inherit modus-theme-refine-magenta)))
1908 `(custom-set ((,class :foreground ,blue-alt)))
1909 `(custom-state ((,class :foreground ,cyan-alt-other)))
1910 `(custom-themed ((,class :inherit modus-theme-subtle-blue)))
1911 `(custom-variable-tag ((,class :inherit bold :foreground ,cyan)))
1912;;;;; dap-mode
1913 `(dap-mouse-eval-thing-face ((,class :box (:line-width -1 :color ,blue-active :style nil)
1914 :background ,bg-active :foreground ,fg-main)))
1915 `(dap-result-overlay-face ((,class :box (:line-width -1 :color ,bg-active :style nil)
1916 :background ,bg-active :foreground ,fg-main)))
1917 `(dap-ui-breakpoint-verified-fringe ((,class :inherit bold :foreground ,green-active)))
1918 `(dap-ui-compile-errline ((,class :inherit bold :foreground ,red-intense)))
1919 `(dap-ui-locals-scope-face ((,class :inherit bold :foreground ,magenta :underline t)))
1920 `(dap-ui-locals-variable-face ((,class :inherit bold :foreground ,cyan)))
1921 `(dap-ui-locals-variable-leaf-face ((,class :foreground ,cyan-alt-other :slant italic)))
1922 `(dap-ui-marker-face ((,class :inherit modus-theme-subtle-blue)))
1923 `(dap-ui-sessions-stack-frame-face ((,class :inherit bold :foreground ,magenta-alt)))
1924 `(dap-ui-sessions-terminated-active-face ((,class :inherit bold :foreground ,fg-alt)))
1925 `(dap-ui-sessions-terminated-face ((,class :foreground ,fg-alt)))
1926;;;;; dashboard (emacs-dashboard)
1927 `(dashboard-banner-logo-title ((,class :inherit bold :foreground ,fg-special-cold)))
1928 `(dashboard-footer ((,class :inherit bold :foreground ,fg-special-mild)))
1929 `(dashboard-heading ((,class :inherit bold :foreground ,fg-special-warm)))
1930 `(dashboard-navigator ((,class :foreground ,cyan-alt-other)))
1931 `(dashboard-text-banner ((,class :foreground ,fg-dim)))
1932;;;;; deadgrep
1933 `(deadgrep-filename-face ((,class :inherit bold :foreground ,fg-special-cold)))
1934 `(deadgrep-match-face ((,class :inherit modus-theme-special-calm)))
1935 `(deadgrep-meta-face ((,class :foreground ,fg-alt)))
1936 `(deadgrep-regexp-metachar-face ((,class :inherit bold :foreground ,yellow-intense)))
1937 `(deadgrep-search-term-face ((,class :inherit bold :foreground ,green-intense)))
1938;;;;; debbugs
1939 `(debbugs-gnu-archived ((,class :inverse-video t)))
1940 `(debbugs-gnu-done ((,class :foreground ,fg-alt)))
1941 `(debbugs-gnu-forwarded ((,class :foreground ,fg-special-warm)))
1942 `(debbugs-gnu-handled ((,class :foreground ,green)))
1943 `(debbugs-gnu-new ((,class :foreground ,red)))
1944 `(debbugs-gnu-pending ((,class :foreground ,cyan)))
1945 `(debbugs-gnu-stale-1 ((,class :foreground ,yellow-nuanced)))
1946 `(debbugs-gnu-stale-2 ((,class :foreground ,yellow)))
1947 `(debbugs-gnu-stale-3 ((,class :foreground ,yellow-alt)))
1948 `(debbugs-gnu-stale-4 ((,class :foreground ,yellow-alt-other)))
1949 `(debbugs-gnu-stale-5 ((,class :foreground ,red-alt)))
1950 `(debbugs-gnu-tagged ((,class :foreground ,magenta-alt)))
1951;;;;; define-word
1952 `(define-word-face-1 ((,class :foreground ,yellow)))
1953 `(define-word-face-2 ((,class :foreground ,fg-main)))
1954;;;;; deft
1955 `(deft-filter-string-error-face ((,class :inherit modus-theme-refine-red)))
1956 `(deft-filter-string-face ((,class :foreground ,green-intense)))
1957 `(deft-header-face ((,class :inherit bold :foreground ,fg-special-warm)))
1958 `(deft-separator-face ((,class :foreground ,fg-alt)))
1959 `(deft-summary-face ((,class :foreground ,fg-alt :slant ,modus-theme-slant)))
1960 `(deft-time-face ((,class :foreground ,fg-special-cold)))
1961 `(deft-title-face ((,class :inherit bold :foreground ,fg-main)))
1962;;;;; dictionary
1963 `(dictionary-button-face ((,class :inherit bold :foreground ,fg-special-cold)))
1964 `(dictionary-reference-face ((,class :inherit button :foreground ,blue-alt-other)))
1965 `(dictionary-word-definition-face ((,class :foreground ,fg-main)))
1966 `(dictionary-word-entry-face ((,class :foreground ,fg-special-cold :slant ,modus-theme-slant)))
1967;;;;; diff-hl
1968 `(diff-hl-change ((,class :inherit modus-theme-fringe-yellow)))
1969 `(diff-hl-delete ((,class :inherit modus-theme-fringe-red)))
1970 `(diff-hl-dired-change ((,class :inherit diff-hl-change)))
1971 `(diff-hl-dired-delete ((,class :inherit diff-hl-delete)))
1972 `(diff-hl-dired-ignored ((,class :inherit dired-ignored)))
1973 `(diff-hl-dired-insert ((,class :inherit diff-hl-insert)))
1974 `(diff-hl-dired-unknown ((,class :inherit dired-ignored)))
1975 `(diff-hl-insert ((,class :inherit modus-theme-fringe-green)))
1976 `(diff-hl-reverted-hunk-highlight ((,class :inherit (modus-theme-active-magenta bold))))
1977;;;;; diff-mode
1978 `(diff-added ((,class :inherit modus-theme-diff-added)))
1979 `(diff-changed ((,class :inherit modus-theme-diff-changed)))
1980 `(diff-context ((,class :foreground ,fg-unfocused)))
1981 `(diff-file-header ((,class :inherit bold :foreground ,blue)))
1982 `(diff-function ((,class :foreground ,fg-special-cold)))
1983 `(diff-header ((,class :foreground ,blue-nuanced)))
1984 `(diff-hunk-header ((,class :inherit modus-theme-diff-heading)))
1985 `(diff-index ((,class :inherit bold :foreground ,blue-alt)))
1986 `(diff-indicator-added ((,class :inherit diff-added)))
1987 `(diff-indicator-changed ((,class :inherit diff-changed)))
1988 `(diff-indicator-removed ((,class :inherit diff-removed)))
1989 `(diff-nonexistent ((,class :inherit (modus-theme-neutral bold))))
1990 `(diff-refine-added ((,class :inherit modus-theme-diff-refine-added)))
1991 `(diff-refine-changed ((,class :inherit modus-theme-diff-refine-changed)))
1992 `(diff-refine-removed ((,class :inherit modus-theme-diff-refine-removed)))
1993 `(diff-removed ((,class :inherit modus-theme-diff-removed)))
1994;;;;; dim-autoload
1995 `(dim-autoload-cookie-line ((,class :foreground ,fg-alt :slant ,modus-theme-slant)))
1996;;;;; dir-treeview
1997 `(dir-treeview-archive-face ((,class :foreground ,fg-special-warm)))
1998 `(dir-treeview-archive-icon-face ((,class :inherit dir-treeview-default-icon-face :foreground ,yellow)))
1999 `(dir-treeview-audio-face ((,class :foreground ,magenta)))
2000 `(dir-treeview-audio-icon-face ((,class :inherit dir-treeview-default-icon-face :foreground ,magenta-alt)))
2001 `(dir-treeview-control-face ((,class :foreground ,fg-alt)))
2002 `(dir-treeview-control-mouse-face ((,class :inherit highlight)))
2003 `(dir-treeview-default-icon-face ((,class :inherit bold :family "Font Awesome" :foreground ,fg-alt)))
2004 `(dir-treeview-default-filename-face ((,class :foreground ,fg-main)))
2005 `(dir-treeview-directory-face ((,class :foreground ,blue)))
2006 `(dir-treeview-directory-icon-face ((,class :inherit dir-treeview-default-icon-face :foreground ,blue-alt)))
2007 `(dir-treeview-executable-face ((,class :foreground ,red-alt)))
2008 `(dir-treeview-executable-icon-face ((,class :inherit dir-treeview-default-icon-face :foreground ,red-alt-other)))
2009 `(dir-treeview-image-face ((,class :foreground ,green-alt-other)))
2010 `(dir-treeview-image-icon-face ((,class :inherit dir-treeview-default-icon-face :foreground ,green-alt)))
2011 `(dir-treeview-indent-face ((,class :foreground ,fg-alt)))
2012 `(dir-treeview-label-mouse-face ((,class :inherit highlight)))
2013 `(dir-treeview-start-dir-face ((,class :inherit modus-theme-pseudo-header)))
2014 `(dir-treeview-symlink-face ((,class :inherit button :foreground ,cyan)))
2015 `(dir-treeview-video-face ((,class :foreground ,magenta-alt-other)))
2016 `(dir-treeview-video-icon-face ((,class :inherit dir-treeview-default-icon-face :foreground ,magenta-alt-other)))
2017;;;;; dired
2018 `(dired-directory ((,class :foreground ,blue)))
2019 `(dired-flagged ((,class :inherit modus-theme-mark-del)))
2020 `(dired-header ((,class :inherit modus-theme-pseudo-header)))
2021 `(dired-ignored ((,class :foreground ,fg-alt)))
2022 `(dired-mark ((,class :inherit modus-theme-mark-symbol)))
2023 `(dired-marked ((,class :inherit modus-theme-mark-sel)))
2024 `(dired-perm-write ((,class :foreground ,fg-special-warm)))
2025 `(dired-symlink ((,class :inherit button :foreground ,cyan-alt)))
2026 `(dired-warning ((,class :inherit bold :foreground ,yellow)))
2027;;;;; dired-async
2028 `(dired-async-failures ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,red-active)))
2029 `(dired-async-message ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,green-active)))
2030 `(dired-async-mode-message ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,cyan-active)))
2031;;;;; dired-git
2032 `(dired-git-branch-else ((,class :inherit bold :foreground ,magenta-alt)))
2033 `(dired-git-branch-master ((,class :inherit bold :foreground ,magenta-alt-other)))
2034;;;;; dired-git-info
2035 `(dgi-commit-message-face ((,class :foreground ,fg-special-mild)))
2036;;;;; dired-narrow
2037 `(dired-narrow-blink ((,class :inherit (modus-theme-subtle-cyan bold))))
2038;;;;; dired-subtree
2039 ;; remove background from dired-subtree, else it breaks
2040 ;; dired-{flagged,marked} and any other face that sets a background
2041 ;; such as hl-line
2042 `(dired-subtree-depth-1-face ((,class :background nil)))
2043 `(dired-subtree-depth-2-face ((,class :background nil)))
2044 `(dired-subtree-depth-3-face ((,class :background nil)))
2045 `(dired-subtree-depth-4-face ((,class :background nil)))
2046 `(dired-subtree-depth-5-face ((,class :background nil)))
2047 `(dired-subtree-depth-6-face ((,class :background nil)))
2048;;;;; diredfl
2049 `(diredfl-autofile-name ((,class :inherit modus-theme-special-cold)))
2050 `(diredfl-compressed-file-name ((,class :foreground ,fg-special-warm)))
2051 `(diredfl-compressed-file-suffix ((,class :foreground ,red-alt)))
2052 `(diredfl-date-time ((,class :foreground ,cyan-alt-other)))
2053 `(diredfl-deletion ((,class :inherit modus-theme-mark-del)))
2054 `(diredfl-deletion-file-name ((,class :inherit modus-theme-mark-del)))
2055 `(diredfl-dir-heading ((,class :inherit modus-theme-pseudo-header)))
2056 `(diredfl-dir-name ((,class :inherit dired-directory)))
2057 `(diredfl-dir-priv ((,class :foreground ,blue-alt)))
2058 `(diredfl-exec-priv ((,class :foreground ,magenta)))
2059 `(diredfl-executable-tag ((,class :foreground ,magenta-alt)))
2060 `(diredfl-file-name ((,class :foreground ,fg-main)))
2061 `(diredfl-file-suffix ((,class :foreground ,cyan)))
2062 `(diredfl-flag-mark ((,class :inherit modus-theme-mark-sel)))
2063 `(diredfl-flag-mark-line ((,class :inherit modus-theme-mark-sel)))
2064 `(diredfl-ignored-file-name ((,class :foreground ,fg-alt)))
2065 `(diredfl-link-priv ((,class :foreground ,blue-alt-other)))
2066 `(diredfl-no-priv ((,class :foreground ,fg-alt)))
2067 `(diredfl-number ((,class :foreground ,cyan-alt)))
2068 `(diredfl-other-priv ((,class :foreground ,yellow)))
2069 `(diredfl-rare-priv ((,class :foreground ,red-alt)))
2070 `(diredfl-read-priv ((,class :foreground ,fg-main)))
2071 `(diredfl-symlink ((,class :inherit dired-symlink)))
2072 `(diredfl-tagged-autofile-name ((,class :inherit modus-theme-refine-magenta)))
2073 `(diredfl-write-priv ((,class :foreground ,cyan)))
2074;;;;; disk-usage
2075 `(disk-usage-children ((,class :foreground ,yellow)))
2076 `(disk-usage-inaccessible ((,class :inherit bold :foreground ,red)))
2077 `(disk-usage-percent ((,class :foreground ,green)))
2078 `(disk-usage-size ((,class :foreground ,cyan)))
2079 `(disk-usage-symlink ((,class :inherit button :foreground ,blue)))
2080 `(disk-usage-symlink-directory ((,class :inherit bold :foreground ,blue-alt)))
2081;;;;; doom-modeline
2082 `(doom-modeline-bar ((,class :inherit modus-theme-active-blue)))
2083 `(doom-modeline-bar-inactive ((,class :background ,fg-inactive :foreground ,bg-main)))
2084 `(doom-modeline-battery-charging ((,class :foreground ,green-active)))
2085 `(doom-modeline-battery-critical ((,class :inherit bold :foreground ,red-active)))
2086 `(doom-modeline-battery-error ((,class :inherit bold :box (:line-width -2)
2087 :foreground ,red-active)))
2088 `(doom-modeline-battery-full ((,class :foreground ,blue-active)))
2089 `(doom-modeline-battery-normal ((,class :foreground ,fg-active)))
2090 `(doom-modeline-battery-warning ((,class :inherit bold :foreground ,yellow-active)))
2091 `(doom-modeline-buffer-file ((,class :inherit bold :foreground ,fg-active)))
2092 `(doom-modeline-buffer-major-mode ((,class :inherit bold :foreground ,cyan-active)))
2093 `(doom-modeline-buffer-minor-mode ((,class :foreground ,fg-inactive)))
2094 `(doom-modeline-buffer-modified ((,class :inherit bold :foreground ,magenta-active)))
2095 `(doom-modeline-buffer-path ((,class :inherit bold :foreground ,fg-active)))
2096 `(doom-modeline-debug ((,class :inherit bold :foreground ,yellow-active)))
2097 `(doom-modeline-debug-visual ((,class :inherit bold :foreground ,red-active)))
2098 `(doom-modeline-evil-emacs-state ((,class :inherit bold :foreground ,magenta-active)))
2099 `(doom-modeline-evil-insert-state ((,class :inherit bold :foreground ,green-active)))
2100 `(doom-modeline-evil-motion-state ((,class :inherit bold :foreground ,fg-inactive)))
2101 `(doom-modeline-evil-normal-state ((,class :inherit bold :foreground ,fg-active)))
2102 `(doom-modeline-evil-operator-state ((,class :inherit bold :foreground ,blue-active)))
2103 `(doom-modeline-evil-replace-state ((,class :inherit bold :foreground ,red-active)))
2104 `(doom-modeline-evil-visual-state ((,class :inherit bold :foreground ,cyan-active)))
2105 `(doom-modeline-highlight ((,class :inherit bold :foreground ,blue-active)))
2106 `(doom-modeline-host ((,class :slant italic)))
2107 `(doom-modeline-info ((,class :foreground ,green-active)))
2108 `(doom-modeline-lsp-error ((,class :inherit bold :foreground ,red-active)))
2109 `(doom-modeline-lsp-success ((,class :inherit bold :foreground ,green-active)))
2110 `(doom-modeline-lsp-warning ((,class :inherit bold :foreground ,yellow-active)))
2111 `(doom-modeline-panel ((,class :inherit modus-theme-active-blue)))
2112 `(doom-modeline-persp-buffer-not-in-persp ((,class :foreground ,yellow-active :slant italic)))
2113 `(doom-modeline-persp-name ((,class :foreground ,fg-active)))
2114 `(doom-modeline-project-dir ((,class :inherit bold :foreground ,blue-active)))
2115 `(doom-modeline-project-parent-dir ((,class :foreground ,blue-active)))
2116 `(doom-modeline-project-root-dir ((,class :foreground ,fg-active)))
2117 `(doom-modeline-unread-number ((,class :foreground ,fg-active :slant italic)))
2118 `(doom-modeline-urgent ((,class :inherit bold :foreground ,red-active)))
2119 `(doom-modeline-warning ((,class :inherit bold :foreground ,yellow-active)))
2120;;;;; dynamic-ruler
2121 `(dynamic-ruler-negative-face ((,class :inherit modus-theme-intense-neutral)))
2122 `(dynamic-ruler-positive-face ((,class :inherit modus-theme-intense-yellow)))
2123;;;;; easy-jekyll
2124 `(easy-jekyll-help-face ((,class :background ,bg-dim :foreground ,cyan-alt-other)))
2125;;;;; easy-kill
2126 `(easy-kill-origin ((,class :inherit modus-theme-subtle-red)))
2127 `(easy-kill-selection ((,class :inherit modus-theme-subtle-yellow)))
2128;;;;; ebdb
2129 `(ebdb-address-default ((,class :foreground ,fg-main)))
2130 `(ebdb-db-char ((,class :foreground ,fg-special-cold)))
2131 `(ebdb-defunct ((,class :foreground ,fg-alt)))
2132 `(ebdb-field-hidden ((,class :foreground ,magenta)))
2133 `(ebdb-field-url ((,class :foreground ,blue)))
2134 `(ebdb-label ((,class :foreground ,cyan-alt-other)))
2135 `(ebdb-mail-default ((,class :foreground ,fg-main)))
2136 `(ebdb-mail-primary ((,class :foreground ,blue-alt)))
2137 `(ebdb-marked ((,class :background ,cyan-intense-bg)))
2138 `(ebdb-organization-name ((,class :foreground ,fg-special-calm)))
2139 `(ebdb-person-name ((,class :foreground ,magenta-alt-other)))
2140 `(ebdb-phone-default ((,class :foreground ,fg-special-warm)))
2141 `(ebdb-role-defunct ((,class :foreground ,fg-alt)))
2142 `(eieio-custom-slot-tag-face ((,class :foreground ,red-alt)))
2143;;;;; ediff
2144 ;; NOTE: here we break from the pattern of inheriting from the
2145 ;; modus-theme-diff-* faces.
2146 `(ediff-current-diff-A ((,class ,@(modus-vivendi-theme-diff
2147 bg-dim red
2148 bg-diff-removed fg-diff-removed
2149 red-nuanced-bg red-faint))))
2150 `(ediff-current-diff-Ancestor ((,class ,@(modus-vivendi-theme-diff
2151 bg-dim fg-special-cold
2152 bg-special-cold fg-special-cold
2153 blue-nuanced-bg blue))))
2154 `(ediff-current-diff-B ((,class ,@(modus-vivendi-theme-diff
2155 bg-dim green
2156 bg-diff-added fg-diff-added
2157 green-nuanced-bg green-faint))))
2158 `(ediff-current-diff-C ((,class ,@(modus-vivendi-theme-diff
2159 bg-dim yellow
2160 bg-diff-changed fg-diff-changed
2161 yellow-nuanced-bg yellow-faint))))
2162 `(ediff-even-diff-A ((,class :background ,bg-diff-neutral-1 :foreground ,fg-diff-neutral-1)))
2163 `(ediff-even-diff-Ancestor ((,class :background ,bg-diff-neutral-2 :foreground ,fg-diff-neutral-1)))
2164 `(ediff-even-diff-B ((,class :background ,bg-diff-neutral-1 :foreground ,fg-diff-neutral-1)))
2165 `(ediff-even-diff-C ((,class :background ,bg-diff-neutral-2 :foreground ,fg-diff-neutral-2)))
2166 `(ediff-fine-diff-A ((,class :background ,bg-diff-focus-removed :foreground ,fg-diff-focus-removed)))
2167 `(ediff-fine-diff-Ancestor ((,class :inherit modus-theme-refine-cyan)))
2168 `(ediff-fine-diff-B ((,class :background ,bg-diff-focus-added :foreground ,fg-diff-focus-added)))
2169 `(ediff-fine-diff-C ((,class :background ,bg-diff-focus-changed :foreground ,fg-diff-focus-changed)))
2170 `(ediff-odd-diff-A ((,class :background ,bg-diff-neutral-2 :foreground ,fg-diff-neutral-2)))
2171 `(ediff-odd-diff-Ancestor ((,class :background ,bg-diff-neutral-0 :foreground ,fg-diff-neutral-0)))
2172 `(ediff-odd-diff-B ((,class :background ,bg-diff-neutral-2 :foreground ,fg-diff-neutral-2)))
2173 `(ediff-odd-diff-C ((,class :background ,bg-diff-neutral-1 :foreground ,fg-diff-neutral-1)))
2174;;;;; eglot
2175 `(eglot-mode-line ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,magenta-active)))
2176;;;;; el-search
2177 `(el-search-highlight-in-prompt-face ((,class :inherit bold :foreground ,magenta-alt)))
2178 `(el-search-match ((,class :inherit modus-theme-intense-green)))
2179 `(el-search-other-match ((,class :inherit modus-theme-special-mild)))
2180 `(el-search-occur-match ((,class :inherit modus-theme-special-calm)))
2181;;;;; eldoc
2182 ;; NOTE: see https://github.com/purcell/package-lint/issues/187
2183 (list 'eldoc-highlight-function-argument `((,class :inherit bold :foreground ,blue-alt-other)))
2184;;;;; eldoc-box
2185 `(eldoc-box-body ((,class :background ,bg-alt :foreground ,fg-main)))
2186 `(eldoc-box-border ((,class :background ,fg-alt)))
2187;;;;; elfeed
2188 `(elfeed-log-date-face ((,class :foreground ,cyan-alt)))
2189 `(elfeed-log-debug-level-face ((,class :foreground ,magenta)))
2190 `(elfeed-log-error-level-face ((,class :foreground ,red)))
2191 `(elfeed-log-info-level-face ((,class :foreground ,green)))
2192 `(elfeed-log-warn-level-face ((,class :foreground ,yellow)))
2193 `(elfeed-search-date-face ((,class :foreground ,blue-nuanced)))
2194 `(elfeed-search-feed-face ((,class :foreground ,cyan)))
2195 `(elfeed-search-filter-face ((,class :inherit bold :foreground ,magenta-active)))
2196 `(elfeed-search-last-update-face ((,class :foreground ,cyan-active)))
2197 `(elfeed-search-tag-face ((,class :foreground ,blue-nuanced)))
2198 `(elfeed-search-title-face ((,class :foreground ,fg-dim)))
2199 `(elfeed-search-unread-count-face ((,class :foreground ,green-active)))
2200 `(elfeed-search-unread-title-face ((,class :inherit bold :foreground ,fg-main)))
2201;;;;; elfeed-score
2202 `(elfeed-score-date-face ((,class :foreground ,blue)))
2203 `(elfeed-score-debug-level-face ((,class :foreground ,magenta-alt-other)))
2204 `(elfeed-score-error-level-face ((,class :foreground ,red)))
2205 `(elfeed-score-info-level-face ((,class :foreground ,cyan)))
2206 `(elfeed-score-warn-level-face ((,class :foreground ,yellow)))
2207;;;;; emms
2208 `(emms-playlist-track-face ((,class :foreground ,blue)))
2209 `(emms-playlist-selected-face ((,class :inherit bold :foreground ,magenta)))
2210;;;;; enhanced-ruby-mode
2211 `(enh-ruby-heredoc-delimiter-face ((,class :foreground ,blue-alt-other)))
2212 `(enh-ruby-op-face ((,class :foreground ,fg-main)))
2213 `(enh-ruby-regexp-delimiter-face ((,class :foreground ,green)))
2214 `(enh-ruby-regexp-face ((,class :foreground ,magenta)))
2215 `(enh-ruby-string-delimiter-face ((,class :foreground ,blue-alt)))
2216 `(erm-syn-errline ((,class :foreground ,red :underline t)))
2217 `(erm-syn-warnline ((,class :foreground ,yellow :underline t)))
2218;;;;; epa
2219 `(epa-field-body ((,class :foreground ,fg-main)))
2220 `(epa-field-name ((,class :inherit bold :foreground ,fg-dim)))
2221 `(epa-mark ((,class :inherit bold :foreground ,magenta)))
2222 `(epa-string ((,class :foreground ,blue-alt)))
2223 `(epa-validity-disabled ((,class :inherit modus-theme-refine-red)))
2224 `(epa-validity-high ((,class :inherit bold :foreground ,green-alt-other)))
2225 `(epa-validity-low ((,class :foreground ,fg-alt)))
2226 `(epa-validity-medium ((,class :foreground ,green-alt)))
2227;;;;; equake
2228 `(equake-buffer-face ((,class :background ,bg-main :foreground ,fg-main)))
2229 `(equake-shell-type-eshell ((,class :background ,bg-inactive :foreground ,green-active)))
2230 `(equake-shell-type-rash ((,class :background ,bg-inactive :foreground ,red-active)))
2231 `(equake-shell-type-shell ((,class :background ,bg-inactive :foreground ,cyan-active)))
2232 `(equake-shell-type-term ((,class :background ,bg-inactive :foreground ,yellow-active)))
2233 `(equake-shell-type-vterm ((,class :background ,bg-inactive :foreground ,magenta-active)))
2234 `(equake-tab-active ((,class :background ,fg-alt :foreground ,bg-alt)))
2235 `(equake-tab-inactive ((,class :foreground ,fg-inactive)))
2236;;;;; erc
2237 `(erc-action-face ((,class :inherit bold :foreground ,cyan)))
2238 `(erc-bold-face ((,class :inherit bold)))
2239 `(erc-button ((,class :inherit button)))
2240 `(erc-command-indicator-face ((,class :inherit bold :foreground ,cyan-alt)))
2241 `(erc-current-nick-face ((,class :foreground ,magenta-alt-other)))
2242 `(erc-dangerous-host-face ((,class :inherit modus-theme-intense-red)))
2243 `(erc-direct-msg-face ((,class :foreground ,magenta)))
2244 `(erc-error-face ((,class :inherit bold :foreground ,red)))
2245 `(erc-fool-face ((,class :foreground ,fg-inactive)))
2246 `(erc-header-line ((,class :background ,bg-header :foreground ,fg-header)))
2247 `(erc-input-face ((,class :foreground ,fg-special-calm)))
2248 `(erc-inverse-face ((,class :inherit erc-default-face :inverse-video t)))
2249 `(erc-keyword-face ((,class :inherit bold :foreground ,magenta-alt)))
2250 `(erc-my-nick-face ((,class :inherit bold :foreground ,magenta)))
2251 `(erc-my-nick-prefix-face ((,class :inherit erc-my-nick-face)))
2252 `(erc-nick-default-face ((,class :inherit bold :foreground ,blue)))
2253 `(erc-nick-msg-face ((,class :inherit bold :foreground ,green)))
2254 `(erc-nick-prefix-face ((,class :inherit erc-nick-default-face)))
2255 `(erc-notice-face ((,class :foreground ,fg-unfocused)))
2256 `(erc-pal-face ((,class :inherit bold :foreground ,red-alt)))
2257 `(erc-prompt-face ((,class :inherit bold :foreground ,cyan-alt-other)))
2258 `(erc-timestamp-face ((,class :foreground ,blue-nuanced)))
2259 `(erc-underline-face ((,class :underline t)))
2260 `(bg:erc-color-face0 ((,class :background "white")))
2261 `(bg:erc-color-face1 ((,class :background "black")))
2262 `(bg:erc-color-face10 ((,class :background ,cyan-subtle-bg)))
2263 `(bg:erc-color-face11 ((,class :background ,cyan-intense-bg)))
2264 `(bg:erc-color-face12 ((,class :background ,blue-subtle-bg)))
2265 `(bg:erc-color-face13 ((,class :background ,magenta-subtle-bg)))
2266 `(bg:erc-color-face14 ((,class :background "gray60")))
2267 `(bg:erc-color-face15 ((,class :background "gray80")))
2268 `(bg:erc-color-face2 ((,class :background ,blue-intense-bg)))
2269 `(bg:erc-color-face3 ((,class :background ,green-intense-bg)))
2270 `(bg:erc-color-face4 ((,class :background ,red-subtle-bg)))
2271 `(bg:erc-color-face5 ((,class :background ,red-intense-bg)))
2272 `(bg:erc-color-face6 ((,class :background ,magenta-refine-bg)))
2273 `(bg:erc-color-face7 ((,class :background ,yellow-subtle-bg)))
2274 `(bg:erc-color-face8 ((,class :background ,yellow-refine-bg)))
2275 `(bg:erc-color-face9 ((,class :background ,green-subtle-bg)))
2276 `(fg:erc-color-face0 ((,class :foreground "white")))
2277 `(fg:erc-color-face1 ((,class :foreground "black")))
2278 `(fg:erc-color-face10 ((,class :foreground ,cyan)))
2279 `(fg:erc-color-face11 ((,class :foreground ,cyan-alt-other)))
2280 `(fg:erc-color-face12 ((,class :foreground ,blue)))
2281 `(fg:erc-color-face13 ((,class :foreground ,magenta-alt)))
2282 `(fg:erc-color-face14 ((,class :foreground "gray60")))
2283 `(fg:erc-color-face15 ((,class :foreground "gray80")))
2284 `(fg:erc-color-face2 ((,class :foreground ,blue-alt-other)))
2285 `(fg:erc-color-face3 ((,class :foreground ,green)))
2286 `(fg:erc-color-face4 ((,class :foreground ,red)))
2287 `(fg:erc-color-face5 ((,class :foreground ,red-alt)))
2288 `(fg:erc-color-face6 ((,class :foreground ,magenta-alt-other)))
2289 `(fg:erc-color-face7 ((,class :foreground ,yellow-alt-other)))
2290 `(fg:erc-color-face8 ((,class :foreground ,yellow-alt)))
2291 `(fg:erc-color-face9 ((,class :foreground ,green-alt-other)))
2292;;;;; eros
2293 `(eros-result-overlay-face ((,class :box (:line-width -1 :color ,blue)
2294 :background ,bg-dim :foreground ,fg-dim)))
2295;;;;; ert
2296 `(ert-test-result-expected ((,class :inherit modus-theme-intense-green)))
2297 `(ert-test-result-unexpected ((,class :inherit modus-theme-intense-red)))
2298;;;;; eshell
2299 `(eshell-ls-archive ((,class :inherit bold :foreground ,cyan-alt)))
2300 `(eshell-ls-backup ((,class :foreground ,yellow-alt)))
2301 `(eshell-ls-clutter ((,class :foreground ,red-alt)))
2302 `(eshell-ls-directory ((,class :inherit bold :foreground ,blue-alt)))
2303 `(eshell-ls-executable ((,class :foreground ,magenta-alt)))
2304 `(eshell-ls-missing ((,class :inherit modus-theme-intense-red)))
2305 `(eshell-ls-product ((,class :foreground ,fg-special-warm)))
2306 `(eshell-ls-readonly ((,class :foreground ,fg-special-cold)))
2307 `(eshell-ls-special ((,class :inherit bold :foreground ,magenta)))
2308 `(eshell-ls-symlink ((,class :inherit button :foreground ,cyan)))
2309 `(eshell-ls-unreadable ((,class :background ,bg-inactive :foreground ,fg-inactive)))
2310 `(eshell-prompt ((,class ,@(modus-vivendi-theme-bold-weight)
2311 ,@(modus-vivendi-theme-prompt
2312 green-alt-other
2313 green-nuanced-bg green-alt
2314 green-refine-bg fg-main))))
2315;;;;; eshell-fringe-status
2316 `(eshell-fringe-status-failure ((,class :foreground ,red)))
2317 `(eshell-fringe-status-success ((,class :foreground ,green)))
2318;;;;; eshell-git-prompt
2319 `(eshell-git-prompt-add-face ((,class :foreground ,fg-alt)))
2320 `(eshell-git-prompt-branch-face ((,class :foreground ,fg-alt)))
2321 `(eshell-git-prompt-directory-face ((,class :foreground ,cyan)))
2322 `(eshell-git-prompt-exit-fail-face ((,class :foreground ,red)))
2323 `(eshell-git-prompt-exit-success-face ((,class :foreground ,green)))
2324 `(eshell-git-prompt-modified-face ((,class :foreground ,yellow)))
2325 `(eshell-git-prompt-powerline-clean-face ((,class :background ,green-refine-bg)))
2326 `(eshell-git-prompt-powerline-dir-face ((,class :background ,blue-refine-bg)))
2327 `(eshell-git-prompt-powerline-not-clean-face ((,class :background ,magenta-refine-bg)))
2328 `(eshell-git-prompt-robyrussell-branch-face ((,class :foreground ,red)))
2329 `(eshell-git-prompt-robyrussell-git-dirty-face ((,class :foreground ,yellow)))
2330 `(eshell-git-prompt-robyrussell-git-face ((,class :foreground ,blue)))
2331;;;;; eshell-prompt-extras (epe)
2332 `(epe-dir-face ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,blue)))
2333 `(epe-git-dir-face ((,class :foreground ,red-alt-other)))
2334 `(epe-git-face ((,class :foreground ,cyan-alt)))
2335 `(epe-pipeline-delimiter-face ((,class :foreground ,green-alt)))
2336 `(epe-pipeline-host-face ((,class :foreground ,blue)))
2337 `(epe-pipeline-time-face ((,class :foreground ,fg-special-warm)))
2338 `(epe-pipeline-user-face ((,class :foreground ,magenta)))
2339 `(epe-remote-face ((,class :foreground ,fg-alt :slant ,modus-theme-slant)))
2340 `(epe-status-face ((,class :foreground ,magenta-alt-other)))
2341 `(epe-venv-face ((,class :foreground ,fg-alt :slant ,modus-theme-slant)))
2342;;;;; eshell-syntax-highlighting
2343 `(eshell-syntax-highlighting-alias-face ((,class :foreground ,cyan)))
2344 `(eshell-syntax-highlighting-comment-face ((,class :foreground ,fg-alt)))
2345 `(eshell-syntax-highlighting-directory-face ((,class :foreground ,blue)))
2346 `(eshell-syntax-highlighting-envvar-face ((,class :foreground ,magenta-alt)))
2347 `(eshell-syntax-highlighting-invalid-face ((,class :foreground ,red)))
2348 `(eshell-syntax-highlighting-lisp-function-face ((,class :foreground ,magenta)))
2349 `(eshell-syntax-highlighting-shell-command-face ((,class :foreground ,cyan-alt-other)))
2350 `(eshell-syntax-highlighting-string-face ((,class :foreground ,blue-alt)))
2351;;;;; evil-mode
2352 `(evil-ex-commands ((,class :foreground ,magenta-alt-other)))
2353 `(evil-ex-info ((,class :foreground ,cyan-alt-other)))
2354 `(evil-ex-lazy-highlight ((,class :inherit modus-theme-refine-cyan)))
2355 `(evil-ex-search ((,class :inherit modus-theme-intense-green)))
2356 `(evil-ex-substitute-matches ((,class :inherit modus-theme-refine-yellow :underline t)))
2357 `(evil-ex-substitute-replacement ((,class :inherit (modus-theme-intense-green bold))))
2358;;;;; evil-goggles
2359 `(evil-goggles-change-face ((,class :inherit modus-theme-refine-yellow)))
2360 `(evil-goggles-commentary-face ((,class :inherit modus-theme-subtle-neutral :slant ,modus-theme-slant)))
2361 `(evil-goggles-default-face ((,class :inherit modus-theme-subtle-neutral)))
2362 `(evil-goggles-delete-face ((,class :inherit modus-theme-refine-red)))
2363 `(evil-goggles-fill-and-move-face ((,class :inherit evil-goggles-default-face)))
2364 `(evil-goggles-indent-face ((,class :inherit evil-goggles-default-face)))
2365 `(evil-goggles-join-face ((,class :inherit modus-theme-subtle-green)))
2366 `(evil-goggles-nerd-commenter-face ((,class :inherit evil-goggles-commentary-face)))
2367 `(evil-goggles-paste-face ((,class :inherit modus-theme-subtle-cyan)))
2368 `(evil-goggles-record-macro-face ((,class :inherit modus-theme-special-cold)))
2369 `(evil-goggles-replace-with-register-face ((,class :inherit modus-theme-refine-magenta)))
2370 `(evil-goggles-set-marker-face ((,class :inherit modus-theme-intense-magenta)))
2371 `(evil-goggles-shift-face ((,class :inherit evil-goggles-default-face)))
2372 `(evil-goggles-surround-face ((,class :inherit evil-goggles-default-face)))
2373 `(evil-goggles-yank-face ((,class :inherit modus-theme-subtle-blue)))
2374;;;;; evil-visual-mark-mode
2375 `(evil-visual-mark-face ((,class :inherit modus-theme-intense-magenta)))
2376;;;;; eww
2377 `(eww-invalid-certificate ((,class :foreground ,red-active)))
2378 `(eww-valid-certificate ((,class :foreground ,green-active)))
2379 `(eww-form-checkbox ((,class :box (:line-width 1 :color ,fg-inactive :style released-button) :background ,bg-inactive :foreground ,fg-main)))
2380 `(eww-form-file ((,class :box (:line-width 1 :color ,fg-inactive :style released-button) :background ,bg-active :foreground ,fg-main)))
2381 `(eww-form-select ((,class :inherit eww-form-checkbox)))
2382 `(eww-form-submit ((,class :inherit eww-form-file)))
2383 `(eww-form-text ((,class :box (:line-width 1 :color ,fg-inactive :style none) :background ,bg-active :foreground ,fg-active)))
2384 `(eww-form-textarea ((,class :background ,bg-alt :foreground ,fg-main)))
2385;;;;; eyebrowse
2386 `(eyebrowse-mode-line-active ((,class :inherit bold :foreground ,blue-active)))
2387;;;;; fancy-dabbrev
2388 `(fancy-dabbrev-menu-face ((,class :background ,bg-alt :foreground ,fg-alt)))
2389 `(fancy-dabbrev-preview-face ((,class :foreground ,fg-alt :underline t)))
2390 `(fancy-dabbrev-selection-face ((,class :inherit (modus-theme-intense-cyan bold))))
2391;;;;; flycheck
2392 `(flycheck-error
2393 ((,(append '((supports :underline (:style wave))) class)
2394 :underline (:color ,fg-lang-error :style wave))
2395 (,class :foreground ,fg-lang-error :underline t)))
2396 `(flycheck-error-list-checker-name ((,class :foreground ,magenta-active)))
2397 `(flycheck-error-list-column-number ((,class :foreground ,fg-special-cold)))
2398 `(flycheck-error-list-error ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,red)))
2399 `(flycheck-error-list-filename ((,class :foreground ,blue)))
2400 `(flycheck-error-list-highlight ((,class :inherit modus-theme-hl-line)))
2401 `(flycheck-error-list-id ((,class :foreground ,magenta-alt-other)))
2402 `(flycheck-error-list-id-with-explainer ((,class :inherit flycheck-error-list-id :box t)))
2403 `(flycheck-error-list-info ((,class :foreground ,cyan)))
2404 `(flycheck-error-list-line-number ((,class :foreground ,fg-special-warm)))
2405 `(flycheck-error-list-warning ((,class :foreground ,yellow)))
2406 `(flycheck-fringe-error ((,class :inherit modus-theme-fringe-red)))
2407 `(flycheck-fringe-info ((,class :inherit modus-theme-fringe-cyan)))
2408 `(flycheck-fringe-warning ((,class :inherit modus-theme-fringe-yellow)))
2409 `(flycheck-info
2410 ((,(append '((supports :underline (:style wave))) class)
2411 :underline (:color ,fg-lang-note :style wave))
2412 (,class :foreground ,fg-lang-note :underline t)))
2413 `(flycheck-verify-select-checker ((,class :box (:line-width 1 :color nil :style released-button))))
2414 `(flycheck-warning
2415 ((,(append '((supports :underline (:style wave))) class)
2416 :underline (:color ,fg-lang-warning :style wave))
2417 (,class :foreground ,fg-lang-warning :underline t)))
2418;;;;; flycheck-color-mode-line
2419 `(flycheck-color-mode-line-error-face ((,class :inherit flycheck-fringe-error)))
2420 `(flycheck-color-mode-line-info-face ((,class :inherit flycheck-fringe-info)))
2421 `(flycheck-color-mode-line-running-face ((,class :foreground ,fg-inactive :slant italic)))
2422 `(flycheck-color-mode-line-info-face ((,class :inherit flycheck-fringe-warning)))
2423;;;;; flycheck-indicator
2424 `(flycheck-indicator-disabled ((,class :foreground ,fg-inactive :slant ,modus-theme-slant)))
2425 `(flycheck-indicator-error ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,red-active)))
2426 `(flycheck-indicator-info ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,blue-active)))
2427 `(flycheck-indicator-running ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,magenta-active)))
2428 `(flycheck-indicator-success ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,green-active)))
2429 `(flycheck-indicator-warning ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,yellow-active)))
2430;;;;; flycheck-posframe
2431 `(flycheck-posframe-background-face ((,class :background ,bg-alt)))
2432 `(flycheck-posframe-border-face ((,class :foreground ,fg-alt)))
2433 `(flycheck-posframe-error-face ((,class :inherit bold :foreground ,red)))
2434 `(flycheck-posframe-face ((,class :foreground ,fg-main :slant ,modus-theme-slant)))
2435 `(flycheck-posframe-info-face ((,class :inherit bold :foreground ,cyan)))
2436 `(flycheck-posframe-warning-face ((,class :inherit bold :foreground ,yellow)))
2437;;;;; flymake
2438 `(flymake-error
2439 ((,(append '((supports :underline (:style wave))) class)
2440 :underline (:color ,fg-lang-error :style wave))
2441 (,class :foreground ,fg-lang-error :underline t)))
2442 `(flymake-note
2443 ((,(append '((supports :underline (:style wave))) class)
2444 :underline (:color ,fg-lang-note :style wave))
2445 (,class :foreground ,fg-lang-note :underline t)))
2446 `(flymake-warning
2447 ((,(append '((supports :underline (:style wave))) class)
2448 :underline (:color ,fg-lang-warning :style wave))
2449 (,class :foreground ,fg-lang-warning :underline t)))
2450;;;;; flyspell
2451 `(flyspell-duplicate
2452 ((,(append '((supports :underline (:style wave))) class)
2453 :underline (:color ,fg-lang-warning :style wave))
2454 (,class :foreground ,fg-lang-warning :underline t)))
2455 `(flyspell-incorrect
2456 ((,(append '((supports :underline (:style wave))) class)
2457 :underline (:color ,fg-lang-error :style wave))
2458 (,class :foreground ,fg-lang-error :underline t)))
2459;;;;; flyspell-correct
2460 `(flyspell-correct-highlight-face ((,class :inherit modus-theme-refine-green)))
2461;;;;; flx
2462 `(flx-highlight-face ((,class ,@(modus-vivendi-theme-extra-completions
2463 'modus-theme-subtle-magenta
2464 'modus-theme-intense-magenta
2465 'modus-theme-nuanced-magenta
2466 magenta-alt
2467 'bold))))
2468;;;;; freeze-it
2469 `(freeze-it-show ((,class :background ,bg-dim :foreground ,fg-special-warm)))
2470;;;;; frog-menu
2471 `(frog-menu-action-keybinding-face ((,class :foreground ,blue-alt-other)))
2472 `(frog-menu-actions-face ((,class :foreground ,magenta)))
2473 `(frog-menu-border ((,class :background ,bg-active)))
2474 `(frog-menu-candidates-face ((,class :foreground ,fg-main)))
2475 `(frog-menu-posframe-background-face ((,class :background ,bg-dim)))
2476 `(frog-menu-prompt-face ((,class :foreground ,cyan)))
2477;;;;; focus
2478 `(focus-unfocused ((,class :foreground ,fg-unfocused)))
2479;;;;; fold-this
2480 `(fold-this-overlay ((,class :inherit modus-theme-special-mild)))
2481;;;;; font-lock
2482 `(font-lock-builtin-face ((,class ,@(modus-vivendi-theme-syntax-foreground
2483 magenta-alt magenta-alt-faint)
2484 ,@(modus-vivendi-theme-bold-weight))))
2485 `(font-lock-comment-delimiter-face ((,class :foreground ,fg-alt :slant ,modus-theme-slant)))
2486 `(font-lock-comment-face ((,class :foreground ,fg-alt :slant ,modus-theme-slant)))
2487 `(font-lock-constant-face ((,class ,@(modus-vivendi-theme-syntax-foreground
2488 blue-alt-other blue-alt-other-faint))))
2489 `(font-lock-doc-face ((,class ,@(modus-vivendi-theme-syntax-foreground
2490 fg-special-cold cyan-alt-other-faint)
2491 :slant ,modus-theme-slant)))
2492 `(font-lock-function-name-face ((,class ,@(modus-vivendi-theme-syntax-foreground
2493 magenta magenta-faint))))
2494 `(font-lock-keyword-face ((,class ,@(modus-vivendi-theme-syntax-foreground
2495 magenta-alt-other magenta-alt-other-faint)
2496 ,@(modus-vivendi-theme-bold-weight))))
2497 `(font-lock-negation-char-face ((,class ,@(modus-vivendi-theme-syntax-foreground
2498 yellow yellow-faint)
2499 ,@(modus-vivendi-theme-bold-weight))))
2500 `(font-lock-preprocessor-face ((,class ,@(modus-vivendi-theme-syntax-foreground
2501 red-alt-other red-alt-other-faint))))
2502 `(font-lock-regexp-grouping-backslash ((,class :inherit bold :foreground ,fg-escape-char-backslash)))
2503 `(font-lock-regexp-grouping-construct ((,class :inherit bold :foreground ,fg-escape-char-construct)))
2504 `(font-lock-string-face ((,class ,@(modus-vivendi-theme-syntax-foreground
2505 blue-alt blue-alt-faint))))
2506 `(font-lock-type-face ((,class ,@(modus-vivendi-theme-syntax-foreground
2507 magenta-alt magenta-alt-faint))))
2508 `(font-lock-variable-name-face ((,class ,@(modus-vivendi-theme-syntax-foreground
2509 cyan cyan-faint))))
2510 `(font-lock-warning-face ((,class ,@(modus-vivendi-theme-syntax-foreground
2511 yellow-active yellow-alt-faint)
2512 ,@(modus-vivendi-theme-bold-weight))))
2513;;;;; forge
2514 `(forge-post-author ((,class :inherit bold :foreground ,fg-main)))
2515 `(forge-post-date ((,class :foreground ,fg-special-cold)))
2516 `(forge-topic-closed ((,class :foreground ,fg-alt)))
2517 `(forge-topic-merged ((,class :foreground ,fg-alt)))
2518 `(forge-topic-open ((,class :foreground ,fg-special-mild)))
2519 `(forge-topic-unmerged ((,class :foreground ,magenta :slant ,modus-theme-slant)))
2520 `(forge-topic-unread ((,class :inherit bold :foreground ,fg-main)))
2521;;;;; fountain-mode
2522 `(fountain-character ((,class :foreground ,blue-alt-other)))
2523 `(fountain-comment ((,class :foreground ,fg-alt :slant ,modus-theme-slant)))
2524 `(fountain-dialog ((,class :foreground ,blue-alt)))
2525 `(fountain-metadata-key ((,class :foreground ,green-alt-other)))
2526 `(fountain-metadata-value ((,class :foreground ,blue)))
2527 `(fountain-non-printing ((,class :foreground ,fg-alt)))
2528 `(fountain-note ((,class :foreground ,yellow :slant ,modus-theme-slant)))
2529 `(fountain-page-break ((,class :inherit bold :foreground ,red-alt)))
2530 `(fountain-page-number ((,class :inherit bold :foreground ,red-alt-other)))
2531 `(fountain-paren ((,class :foreground ,cyan)))
2532 `(fountain-scene-heading ((,class :inherit bold :foreground ,blue-nuanced)))
2533 `(fountain-section-heading ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,fg-main
2534 ,@(modus-vivendi-theme-scale modus-vivendi-theme-scale-4))))
2535 `(fountain-section-heading-1 ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,fg-main
2536 ,@(modus-vivendi-theme-scale modus-vivendi-theme-scale-4))))
2537 `(fountain-section-heading-2 ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,fg-special-warm
2538 ,@(modus-vivendi-theme-scale modus-vivendi-theme-scale-3))))
2539 `(fountain-section-heading-3 ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,fg-special-mild
2540 ,@(modus-vivendi-theme-scale modus-vivendi-theme-scale-2))))
2541 `(fountain-section-heading-4 ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,fg-special-calm
2542 ,@(modus-vivendi-theme-scale modus-vivendi-theme-scale-1))))
2543 `(fountain-section-heading-5 ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,fg-special-calm)))
2544 `(fountain-synopsis ((,class :foreground ,cyan-alt)))
2545 `(fountain-trans ((,class :foreground ,yellow-alt-other)))
2546;;;;; geiser
2547 `(geiser-font-lock-autodoc-current-arg ((,class ,@(modus-vivendi-theme-syntax-foreground
2548 magenta magenta-faint))))
2549 `(geiser-font-lock-autodoc-identifier ((,class ,@(modus-vivendi-theme-syntax-foreground
2550 blue blue-faint))))
2551 `(geiser-font-lock-doc-button ((,class ,@(modus-vivendi-theme-syntax-foreground
2552 cyan-alt cyan-alt-faint)
2553 :underline t)))
2554 `(geiser-font-lock-doc-link ((,class :inherit link)))
2555 `(geiser-font-lock-error-link ((,class ,@(modus-vivendi-theme-syntax-foreground
2556 red-alt red-alt-faint)
2557 :underline t)))
2558 `(geiser-font-lock-image-button ((,class ,@(modus-vivendi-theme-syntax-foreground
2559 green-alt green-alt-faint)
2560 :underline t)))
2561 `(geiser-font-lock-repl-input ((,class :inherit bold)))
2562 `(geiser-font-lock-repl-output ((,class ,@(modus-vivendi-theme-syntax-foreground
2563 magenta-alt-other magenta-alt-other-faint))))
2564 `(geiser-font-lock-repl-prompt ((,class ,@(modus-vivendi-theme-syntax-foreground
2565 cyan-alt-other cyan-alt-other-faint))))
2566 `(geiser-font-lock-xref-header ((,class :inherit bold)))
2567 `(geiser-font-lock-xref-link ((,class :inherit link)))
2568;;;;; git-commit
2569 `(git-commit-comment-action ((,class :foreground ,fg-alt :slant ,modus-theme-slant)))
2570 `(git-commit-comment-branch-local ((,class :foreground ,blue-alt :slant ,modus-theme-slant)))
2571 `(git-commit-comment-branch-remote ((,class :foreground ,magenta-alt :slant ,modus-theme-slant)))
2572 `(git-commit-comment-detached ((,class :foreground ,cyan-alt :slant ,modus-theme-slant)))
2573 `(git-commit-comment-file ((,class :foreground ,fg-special-cold :slant ,modus-theme-slant)))
2574 `(git-commit-comment-heading ((,class :inherit bold :foreground ,fg-dim :slant ,modus-theme-slant)))
2575 `(git-commit-keyword ((,class :foreground ,magenta)))
2576 `(git-commit-known-pseudo-header ((,class :foreground ,cyan-alt-other)))
2577 `(git-commit-nonempty-second-line ((,class :inherit modus-theme-refine-yellow)))
2578 `(git-commit-overlong-summary ((,class :inherit modus-theme-refine-yellow)))
2579 `(git-commit-pseudo-header ((,class :foreground ,blue)))
2580 `(git-commit-summary ((,class :inherit bold :foreground ,cyan)))
2581;;;;; git-gutter
2582 `(git-gutter:added ((,class :inherit modus-theme-fringe-green)))
2583 `(git-gutter:deleted ((,class :inherit modus-theme-fringe-red)))
2584 `(git-gutter:modified ((,class :inherit modus-theme-fringe-yellow)))
2585 `(git-gutter:separator ((,class :inherit modus-theme-fringe-cyan)))
2586 `(git-gutter:unchanged ((,class :inherit modus-theme-fringe-magenta)))
2587;;;;; git-gutter-fr
2588 `(git-gutter-fr:added ((,class :inherit modus-theme-fringe-green)))
2589 `(git-gutter-fr:deleted ((,class :inherit modus-theme-fringe-red)))
2590 `(git-gutter-fr:modified ((,class :inherit modus-theme-fringe-yellow)))
2591;;;;; git-{gutter,fringe}+
2592 `(git-gutter+-added ((,class :inherit modus-theme-fringe-green)))
2593 `(git-gutter+-deleted ((,class :inherit modus-theme-fringe-red)))
2594 `(git-gutter+-modified ((,class :inherit modus-theme-fringe-yellow)))
2595 `(git-gutter+-separator ((,class :inherit modus-theme-fringe-cyan)))
2596 `(git-gutter+-unchanged ((,class :inherit modus-theme-fringe-magenta)))
2597 `(git-gutter-fr+-added ((,class :inherit modus-theme-fringe-green)))
2598 `(git-gutter-fr+-deleted ((,class :inherit modus-theme-fringe-red)))
2599 `(git-gutter-fr+-modified ((,class :inherit modus-theme-fringe-yellow)))
2600;;;;; git-lens
2601 `(git-lens-added ((,class :inherit bold :foreground ,green)))
2602 `(git-lens-deleted ((,class :inherit bold :foreground ,red)))
2603 `(git-lens-header ((,class :inherit bold :height 1.1 :foreground ,cyan)))
2604 `(git-lens-modified ((,class :inherit bold :foreground ,yellow)))
2605 `(git-lens-renamed ((,class :inherit bold :foreground ,magenta)))
2606;;;;; git-rebase
2607 `(git-rebase-comment-hash ((,class :foreground ,fg-special-cold :slant ,modus-theme-slant)))
2608 `(git-rebase-comment-heading ((,class :inherit bold :foreground ,fg-dim :slant ,modus-theme-slant)))
2609 `(git-rebase-description ((,class :foreground ,fg-main)))
2610 `(git-rebase-hash ((,class :foreground ,cyan-alt-other)))
2611;;;;; git-timemachine
2612 `(git-timemachine-commit ((,class :inherit bold :foreground ,yellow-active)))
2613 `(git-timemachine-minibuffer-author-face ((,class :foreground ,fg-special-warm)))
2614 `(git-timemachine-minibuffer-detail-face ((,class :foreground ,red-alt)))
2615;;;;; git-walktree
2616 `(git-walktree-commit-face ((,class :foreground ,yellow)))
2617 `(git-walktree-symlink-face ((,class :inherit button :foreground ,cyan)))
2618 `(git-walktree-tree-face ((,class :foreground ,magenta)))
2619;;;;; gnus
2620 `(gnus-button ((,class :inherit button)))
2621 `(gnus-cite-1 ((,class :foreground ,blue-alt)))
2622 `(gnus-cite-10 ((,class :foreground ,magenta-alt-other)))
2623 `(gnus-cite-11 ((,class :foreground ,yellow-alt-other)))
2624 `(gnus-cite-2 ((,class :foreground ,red-alt)))
2625 `(gnus-cite-3 ((,class :foreground ,green-alt)))
2626 `(gnus-cite-4 ((,class :foreground ,magenta-alt)))
2627 `(gnus-cite-5 ((,class :foreground ,yellow-alt)))
2628 `(gnus-cite-6 ((,class :foreground ,cyan-alt)))
2629 `(gnus-cite-7 ((,class :foreground ,blue-alt-other)))
2630 `(gnus-cite-8 ((,class :foreground ,red-alt-other)))
2631 `(gnus-cite-9 ((,class :foreground ,green-alt-other)))
2632 `(gnus-cite-attribution ((,class :foreground ,fg-main :slant italic)))
2633 `(gnus-emphasis-highlight-words ((,class :inherit modus-theme-refine-yellow)))
2634 `(gnus-group-mail-1 ((,class :inherit bold :foreground ,magenta-alt)))
2635 `(gnus-group-mail-1-empty ((,class :foreground ,magenta-alt)))
2636 `(gnus-group-mail-2 ((,class :inherit bold :foreground ,magenta)))
2637 `(gnus-group-mail-2-empty ((,class :foreground ,magenta)))
2638 `(gnus-group-mail-3 ((,class :inherit bold :foreground ,magenta-alt-other)))
2639 `(gnus-group-mail-3-empty ((,class :foreground ,magenta-alt-other)))
2640 `(gnus-group-mail-low ((,class :inherit bold :foreground ,magenta-nuanced)))
2641 `(gnus-group-mail-low-empty ((,class :foreground ,magenta-nuanced)))
2642 `(gnus-group-news-1 ((,class :inherit bold :foreground ,green)))
2643 `(gnus-group-news-1-empty ((,class :foreground ,green)))
2644 `(gnus-group-news-2 ((,class :inherit bold :foreground ,cyan)))
2645 `(gnus-group-news-2-empty ((,class :foreground ,cyan)))
2646 `(gnus-group-news-3 ((,class :inherit bold :foreground ,yellow-nuanced)))
2647 `(gnus-group-news-3-empty ((,class :foreground ,yellow-nuanced)))
2648 `(gnus-group-news-4 ((,class :inherit bold :foreground ,cyan-nuanced)))
2649 `(gnus-group-news-4-empty ((,class :foreground ,cyan-nuanced)))
2650 `(gnus-group-news-5 ((,class :inherit bold :foreground ,red-nuanced)))
2651 `(gnus-group-news-5-empty ((,class :foreground ,red-nuanced)))
2652 `(gnus-group-news-6 ((,class :inherit bold :foreground ,fg-alt)))
2653 `(gnus-group-news-6-empty ((,class :foreground ,fg-alt)))
2654 `(gnus-group-news-low ((,class :inherit bold :foreground ,green-nuanced)))
2655 `(gnus-group-news-low-empty ((,class :foreground ,green-nuanced)))
2656 `(gnus-header-content ((,class :foreground ,cyan)))
2657 `(gnus-header-from ((,class :inherit bold :foreground ,cyan-alt-other :underline nil)))
2658 `(gnus-header-name ((,class :foreground ,green)))
2659 `(gnus-header-newsgroups ((,class :inherit bold :foreground ,blue-alt)))
2660 `(gnus-header-subject ((,class :inherit bold :foreground ,magenta-alt-other)))
2661 `(gnus-server-agent ((,class :inherit bold :foreground ,cyan)))
2662 `(gnus-server-closed ((,class :inherit bold :foreground ,magenta)))
2663 `(gnus-server-cloud ((,class :inherit bold :foreground ,cyan-alt)))
2664 `(gnus-server-cloud-host ((,class :inherit modus-theme-refine-cyan)))
2665 `(gnus-server-denied ((,class :inherit bold :foreground ,red)))
2666 `(gnus-server-offline ((,class :inherit bold :foreground ,yellow)))
2667 `(gnus-server-opened ((,class :inherit bold :foreground ,green)))
2668 `(gnus-signature ((,class :foreground ,fg-special-cold :slant italic)))
2669 `(gnus-splash ((,class :foreground ,fg-alt)))
2670 `(gnus-summary-cancelled ((,class :inherit modus-theme-mark-alt)))
2671 `(gnus-summary-high-ancient ((,class :inherit bold :foreground ,fg-alt)))
2672 `(gnus-summary-high-read ((,class :inherit bold :foreground ,fg-special-cold)))
2673 `(gnus-summary-high-ticked ((,class :inherit bold :foreground ,red-alt-other)))
2674 `(gnus-summary-high-undownloaded ((,class :inherit bold :foreground ,yellow)))
2675 `(gnus-summary-high-unread ((,class :inherit bold :foreground ,fg-main)))
2676 `(gnus-summary-low-ancient ((,class :foreground ,fg-alt :slant italic)))
2677 `(gnus-summary-low-read ((,class :foreground ,fg-alt :slant italic)))
2678 `(gnus-summary-low-ticked ((,class :foreground ,red-refine-fg :slant italic)))
2679 `(gnus-summary-low-undownloaded ((,class :foreground ,yellow-refine-fg :slant italic)))
2680 `(gnus-summary-low-unread ((,class :inherit bold :foreground ,fg-special-cold)))
2681 `(gnus-summary-normal-ancient ((,class :foreground ,fg-special-calm)))
2682 `(gnus-summary-normal-read ((,class :foreground ,fg-alt)))
2683 `(gnus-summary-normal-ticked ((,class :foreground ,red-alt-other)))
2684 `(gnus-summary-normal-undownloaded ((,class :foreground ,yellow)))
2685 `(gnus-summary-normal-unread ((,class :foreground ,fg-main)))
2686 `(gnus-summary-selected ((,class :inherit modus-theme-subtle-blue)))
2687;;;;; golden-ratio-scroll-screen
2688 `(golden-ratio-scroll-highlight-line-face ((,class :background ,cyan-subtle-bg :foreground ,fg-main)))
2689;;;;; helm
2690 `(helm-M-x-key ((,class :inherit bold :foreground ,magenta-alt-other)))
2691 `(helm-action ((,class :underline t)))
2692 `(helm-bookmark-addressbook ((,class :foreground ,green-alt)))
2693 `(helm-bookmark-directory ((,class :inherit bold :foreground ,blue)))
2694 `(helm-bookmark-file ((,class :foreground ,fg-main)))
2695 `(helm-bookmark-file-not-found ((,class :background ,bg-alt :foreground ,fg-alt)))
2696 `(helm-bookmark-gnus ((,class :foreground ,magenta)))
2697 `(helm-bookmark-info ((,class :foreground ,cyan-alt)))
2698 `(helm-bookmark-man ((,class :foreground ,yellow-alt)))
2699 `(helm-bookmark-w3m ((,class :foreground ,blue-alt)))
2700 `(helm-buffer-archive ((,class :inherit bold :foreground ,cyan)))
2701 `(helm-buffer-directory ((,class :inherit bold :foreground ,blue)))
2702 `(helm-buffer-file ((,class :foreground ,fg-main)))
2703 `(helm-buffer-modified ((,class :foreground ,yellow-alt)))
2704 `(helm-buffer-not-saved ((,class :foreground ,red-alt)))
2705 `(helm-buffer-process ((,class :foreground ,magenta)))
2706 `(helm-buffer-saved-out ((,class :inherit bold :background ,bg-alt :foreground ,red)))
2707 `(helm-buffer-size ((,class :foreground ,fg-alt)))
2708 `(helm-candidate-number ((,class :foreground ,cyan-active)))
2709 `(helm-candidate-number-suspended ((,class :foreground ,yellow-active)))
2710 `(helm-comint-prompts-buffer-name ((,class :foreground ,green-active)))
2711 `(helm-comint-prompts-promptidx ((,class :foreground ,cyan-active)))
2712 `(helm-delete-async-message ((,class :inherit bold :foreground ,magenta-active)))
2713 `(helm-eob-line ((,class :background ,bg-main :foreground ,fg-main)))
2714 `(helm-eshell-prompts-buffer-name ((,class :foreground ,green-active)))
2715 `(helm-eshell-prompts-promptidx ((,class :foreground ,cyan-active)))
2716 `(helm-etags-file ((,class :foreground ,fg-dim :underline t)))
2717 `(helm-ff-backup-file ((,class :foreground ,fg-alt)))
2718 `(helm-ff-denied ((,class ,@(modus-vivendi-theme-extra-completions
2719 'modus-theme-subtle-red
2720 'modus-theme-intense-red
2721 'modus-theme-nuanced-red
2722 red))))
2723 `(helm-ff-directory ((,class :inherit helm-buffer-directory)))
2724 `(helm-ff-dirs ((,class :inherit bold :foreground ,blue-alt-other)))
2725 `(helm-ff-dotted-directory ((,class :inherit bold :background ,bg-alt :foreground ,fg-alt)))
2726 `(helm-ff-dotted-symlink-directory ((,class :inherit (button helm-ff-dotted-directory))))
2727 `(helm-ff-executable ((,class :foreground ,magenta-alt)))
2728 `(helm-ff-file ((,class :foreground ,fg-main)))
2729 `(helm-ff-file-extension ((,class :foreground ,fg-special-warm)))
2730 `(helm-ff-invalid-symlink ((,class :inherit button :foreground ,red)))
2731 `(helm-ff-pipe ((,class ,@(modus-vivendi-theme-extra-completions
2732 'modus-theme-refine-magenta
2733 'modus-theme-subtle-magenta
2734 'modus-theme-nuanced-magenta
2735 magenta))))
2736 `(helm-ff-prefix ((,class ,@(modus-vivendi-theme-extra-completions
2737 'modus-theme-refine-yellow
2738 'modus-theme-subtle-yellow
2739 'modus-theme-nuanced-yellow
2740 yellow-alt-other))))
2741 `(helm-ff-socket ((,class :foreground ,red-alt-other)))
2742 `(helm-ff-suid ((,class ,@(modus-vivendi-theme-extra-completions
2743 'modus-theme-subtle-red
2744 'modus-theme-refine-red
2745 'modus-theme-nuanced-yellow
2746 red-alt))))
2747 `(helm-ff-symlink ((,class :inherit button :foreground ,cyan)))
2748 `(helm-ff-truename ((,class :foreground ,blue-alt-other)))
2749 `(helm-grep-cmd-line ((,class :foreground ,yellow-alt-other)))
2750 `(helm-grep-file ((,class :inherit bold :foreground ,fg-special-cold)))
2751 `(helm-grep-finish ((,class :foreground ,green-active)))
2752 `(helm-grep-lineno ((,class :foreground ,fg-special-warm)))
2753 `(helm-grep-match ((,class :inherit modus-theme-special-calm)))
2754 `(helm-header ((,class :inherit bold :foreground ,fg-special-cold)))
2755 `(helm-header-line-left-margin ((,class :inherit bold :foreground ,yellow-intense)))
2756 `(helm-history-deleted ((,class ,@(modus-vivendi-theme-extra-completions
2757 'modus-theme-subtle-red
2758 'modus-theme-intense-red
2759 'modus-theme-nuanced-red
2760 red
2761 'bold))))
2762 `(helm-history-remote ((,class :foreground ,red-alt-other)))
2763 `(helm-lisp-completion-info ((,class :foreground ,fg-special-warm)))
2764 `(helm-lisp-show-completion ((,class ,@(modus-vivendi-theme-extra-completions
2765 'modus-theme-subtle-yellow
2766 'modus-theme-refine-yellow
2767 'modus-theme-nuanced-yellow
2768 yellow
2769 'bold))))
2770 `(helm-locate-finish ((,class :foreground ,green-active)))
2771 `(helm-match ((,class ,@(modus-vivendi-theme-extra-completions
2772 'modus-theme-subtle-cyan
2773 'modus-theme-refine-cyan
2774 'modus-theme-nuanced-cyan
2775 cyan
2776 'bold))))
2777 `(helm-match-item ((,class ,@(modus-vivendi-theme-extra-completions
2778 'modus-theme-subtle-neutral
2779 'modus-theme-subtle-cyan
2780 'modus-theme-nuanced-cyan
2781 cyan-alt-other))))
2782 `(helm-minibuffer-prompt ((,class :inherit minibuffer-prompt)))
2783 `(helm-moccur-buffer ((,class :inherit button :foreground ,cyan-alt-other)))
2784 `(helm-mode-prefix ((,class ,@(modus-vivendi-theme-extra-completions
2785 'modus-theme-subtle-magenta
2786 'modus-theme-intense-magenta
2787 'modus-theme-nuanced-magenta
2788 magenta-alt
2789 'bold))))
2790 `(helm-non-file-buffer ((,class :foreground ,fg-alt)))
2791 `(helm-prefarg ((,class :foreground ,red-active)))
2792 `(helm-resume-need-update ((,class ,@(modus-vivendi-theme-extra-completions
2793 'modus-theme-subtle-magenta
2794 'modus-theme-refine-magenta
2795 'modus-theme-nuanced-magenta
2796 magenta-alt-other))))
2797 `(helm-selection ((,class ,@(modus-vivendi-theme-extra-completions
2798 'modus-theme-subtle-blue
2799 'modus-theme-refine-blue
2800 'modus-theme-special-cold
2801 nil
2802 'bold))))
2803 `(helm-selection-line ((,class :inherit modus-theme-special-cold)))
2804 `(helm-separator ((,class :foreground ,fg-special-mild)))
2805 `(helm-time-zone-current ((,class :foreground ,green)))
2806 `(helm-time-zone-home ((,class :foreground ,magenta)))
2807 `(helm-source-header ((,class :inherit bold :foreground ,red-alt
2808 ,@(modus-vivendi-theme-scale modus-vivendi-theme-scale-4))))
2809 `(helm-top-columns ((,class :inherit helm-header)))
2810 `(helm-ucs-char ((,class :foreground ,yellow-alt-other)))
2811 `(helm-visible-mark ((,class :inherit modus-theme-subtle-cyan)))
2812;;;;; helm-ls-git
2813 `(helm-ls-git-added-copied-face ((,class :foreground ,green-intense)))
2814 `(helm-ls-git-added-modified-face ((,class :foreground ,yellow-intense)))
2815 `(helm-ls-git-conflict-face ((,class :inherit bold :foreground ,red-intense)))
2816 `(helm-ls-git-deleted-and-staged-face ((,class :foreground ,red-nuanced)))
2817 `(helm-ls-git-deleted-not-staged-face ((,class :foreground ,red)))
2818 `(helm-ls-git-modified-and-staged-face ((,class :foreground ,yellow-nuanced)))
2819 `(helm-ls-git-modified-not-staged-face ((,class :foreground ,yellow)))
2820 `(helm-ls-git-renamed-modified-face ((,class :foreground ,magenta)))
2821 `(helm-ls-git-untracked-face ((,class :foreground ,fg-special-cold)))
2822;;;;; helm-switch-shell
2823 `(helm-switch-shell-new-shell-face ((,class ,@(modus-vivendi-theme-extra-completions
2824 'modus-theme-subtle-magenta
2825 'modus-theme-refine-magenta
2826 'modus-theme-nuanced-magenta
2827 magenta-alt-other
2828 'bold))))
2829;;;;; helm-xref
2830 `(helm-xref-file-name ((,class :inherit bold :foreground ,fg-special-cold)))
2831 `(helm-xref-file-name ((,class :foreground ,fg-special-warm)))
2832;;;;; helpful
2833 `(helpful-heading ((,class :inherit modus-theme-heading-1)))
2834;;;;; highlight region or ad-hoc regexp
2835 `(hi-black-b ((,class :background ,fg-main :foreground ,bg-main)))
2836 `(hi-blue ((,class :background ,bg-alt :foreground ,blue :underline t)))
2837 `(hi-blue-b ((,class :inherit modus-theme-intense-blue)))
2838 `(hi-green ((,class :background ,bg-alt :foreground ,green :underline t)))
2839 `(hi-green-b ((,class :inherit modus-theme-intense-green)))
2840 `(hi-pink ((,class :background ,bg-alt :foreground ,magenta :underline t)))
2841 `(hi-red-b ((,class :inherit modus-theme-intense-red)))
2842 `(hi-yellow ((,class :background ,bg-alt :foreground ,yellow :underline t)))
2843 `(highlight ((,class :inherit modus-theme-subtle-blue)))
2844 `(highlight-changes ((,class :foreground ,yellow-alt-other)))
2845 `(highlight-changes-delete ((,class :foreground ,red-alt-other :underline t)))
2846 `(hl-line ((,class :inherit modus-theme-hl-line)))
2847;;;;; highlight-blocks
2848 `(highlight-blocks-depth-1-face ((,class :background ,bg-dim :foreground ,fg-main)))
2849 `(highlight-blocks-depth-2-face ((,class :background ,bg-alt :foreground ,fg-main)))
2850 `(highlight-blocks-depth-3-face ((,class :background ,bg-special-cold :foreground ,fg-main)))
2851 `(highlight-blocks-depth-4-face ((,class :background ,bg-special-calm :foreground ,fg-main)))
2852 `(highlight-blocks-depth-5-face ((,class :background ,bg-special-warm :foreground ,fg-main)))
2853 `(highlight-blocks-depth-6-face ((,class :background ,bg-special-mild :foreground ,fg-main)))
2854 `(highlight-blocks-depth-7-face ((,class :background ,bg-inactive :foreground ,fg-main)))
2855 `(highlight-blocks-depth-8-face ((,class :background ,bg-active :foreground ,fg-main)))
2856 `(highlight-blocks-depth-9-face ((,class :background ,cyan-subtle-bg :foreground ,fg-main)))
2857;;;;; highlight-defined
2858 `(highlight-defined-builtin-function-name-face ((,class :foreground ,magenta)))
2859 `(highlight-defined-face-name-face ((,class :foreground ,fg-main)))
2860 `(highlight-defined-function-name-face ((,class :foreground ,magenta)))
2861 `(highlight-defined-macro-name-face ((,class :foreground ,magenta-alt)))
2862 `(highlight-defined-special-form-name-face ((,class :foreground ,magenta-alt-other)))
2863 `(highlight-defined-variable-name-face ((,class :foreground ,cyan)))
2864;;;;; highlight-escape-sequences (`hes-mode')
2865 `(hes-escape-backslash-face ((,class :inherit bold :foreground ,fg-escape-char-construct)))
2866 `(hes-escape-sequence-face ((,class :inherit bold :foreground ,fg-escape-char-backslash)))
2867;;;;; highlight-indentation
2868 `(highlight-indentation-face ((,class :inherit modus-theme-hl-line)))
2869 `(highlight-indentation-current-column-face ((,class :background ,bg-active)))
2870;;;;; highlight-numbers
2871 `(highlight-numbers-number ((,class :foreground ,blue-alt-other)))
2872;;;;; highlight-symbol
2873 `(highlight-symbol-face ((,class :inherit modus-theme-special-mild)))
2874;;;;; highlight-thing
2875 `(highlight-thing ((,class :background ,bg-alt :foreground ,cyan)))
2876;;;;; hl-defined
2877 `(hdefd-functions ((,class :foreground ,blue)))
2878 `(hdefd-undefined ((,class :foreground ,red-alt)))
2879 `(hdefd-variables ((,class :foreground ,cyan-alt)))
2880;;;;; hl-fill-column
2881 `(hl-fill-column-face ((,class :background ,bg-active :foreground ,fg-active)))
2882;;;;; hl-todo
2883 `(hl-todo ((,class :inherit bold :foreground ,red-alt-other :slant ,modus-theme-slant)))
2884;;;;; hydra
2885 `(hydra-face-amaranth ((,class :inherit bold :foreground ,yellow)))
2886 `(hydra-face-blue ((,class :inherit bold :foreground ,blue-alt)))
2887 `(hydra-face-pink ((,class :inherit bold :foreground ,magenta-alt)))
2888 `(hydra-face-red ((,class :inherit bold :foreground ,red)))
2889 `(hydra-face-teal ((,class :inherit bold :foreground ,cyan)))
2890;;;;; hyperlist
2891 `(hyperlist-condition ((,class :foreground ,green)))
2892 `(hyperlist-hashtag ((,class :foreground ,yellow)))
2893 `(hyperlist-operator ((,class :foreground ,blue-alt)))
2894 `(hyperlist-paren ((,class :foreground ,cyan-alt-other)))
2895 `(hyperlist-quote ((,class :foreground ,cyan-alt)))
2896 `(hyperlist-ref ((,class :foreground ,magenta-alt-other)))
2897 `(hyperlist-stars ((,class :foreground ,fg-alt)))
2898 `(hyperlist-tag ((,class :foreground ,red)))
2899 `(hyperlist-toplevel ((,class :inherit bold :foreground ,fg-main)))
2900;;;;; icomplete
2901 `(icomplete-first-match ((,class :inherit bold
2902 ,@(modus-vivendi-theme-standard-completions
2903 magenta bg-alt
2904 bg-active fg-main))))
2905;;;;; icomplete-vertical
2906 `(icomplete-vertical-separator ((,class :foreground ,fg-alt)))
2907;;;;; ido-mode
2908 `(ido-first-match ((,class :inherit bold
2909 ,@(modus-vivendi-theme-standard-completions
2910 magenta bg-alt
2911 bg-active fg-main))))
2912 `(ido-incomplete-regexp ((,class :inherit error)))
2913 `(ido-indicator ((,class :inherit modus-theme-subtle-yellow)))
2914 `(ido-only-match ((,class :inherit bold
2915 ,@(modus-vivendi-theme-standard-completions
2916 green green-nuanced-bg
2917 green-intense-bg fg-main))))
2918 `(ido-subdir ((,class :foreground ,blue)))
2919 `(ido-virtual ((,class :foreground ,fg-special-warm)))
2920;;;;; iedit
2921 `(iedit-occurrence ((,class :inherit modus-theme-refine-blue)))
2922 `(iedit-read-only-occurrence ((,class :inherit modus-theme-intense-yellow)))
2923;;;;; iflipb
2924 `(iflipb-current-buffer-face ((,class :inherit bold :foreground ,cyan-alt)))
2925 `(iflipb-other-buffer-face ((,class :foreground ,fg-alt)))
2926;;;;; imenu-list
2927 `(imenu-list-entry-face-0 ((,class :foreground ,cyan)))
2928 `(imenu-list-entry-face-1 ((,class :foreground ,blue)))
2929 `(imenu-list-entry-face-2 ((,class :foreground ,cyan-alt-other)))
2930 `(imenu-list-entry-face-3 ((,class :foreground ,blue-alt)))
2931 `(imenu-list-entry-subalist-face-0 ((,class :inherit bold :foreground ,magenta-alt-other :underline t)))
2932 `(imenu-list-entry-subalist-face-1 ((,class :inherit bold :foreground ,magenta :underline t)))
2933 `(imenu-list-entry-subalist-face-2 ((,class :inherit bold :foreground ,green-alt-other :underline t)))
2934 `(imenu-list-entry-subalist-face-3 ((,class :inherit bold :foreground ,red-alt-other :underline t)))
2935;;;;; indium
2936 `(indium-breakpoint-face ((,class :foreground ,red-active)))
2937 `(indium-frame-url-face ((,class :inherit button :foreground ,fg-alt)))
2938 `(indium-keyword-face ((,class :foreground ,magenta-alt-other)))
2939 `(indium-litable-face ((,class :foreground ,fg-special-warm :slant ,modus-theme-slant)))
2940 `(indium-repl-error-face ((,class :inherit bold :foreground ,red)))
2941 `(indium-repl-prompt-face ((,class :foreground ,cyan-alt-other)))
2942 `(indium-repl-stdout-face ((,class :foreground ,fg-main)))
2943;;;;; info
2944 `(Info-quoted ((,class ,@(modus-vivendi-theme-mixed-fonts)
2945 :foreground ,magenta))) ; the capitalisation is canonical
2946 `(info-header-node ((,class :inherit bold :foreground ,fg-alt)))
2947 `(info-header-xref ((,class :foreground ,blue-active)))
2948 `(info-index-match ((,class :inherit match)))
2949 `(info-menu-header ((,class :inherit modus-theme-heading-3)))
2950 `(info-menu-star ((,class :foreground ,red)))
2951 `(info-node ((,class :inherit bold)))
2952 `(info-title-1 ((,class :inherit modus-theme-heading-1)))
2953 `(info-title-2 ((,class :inherit modus-theme-heading-2)))
2954 `(info-title-3 ((,class :inherit modus-theme-heading-3)))
2955 `(info-title-4 ((,class :inherit modus-theme-heading-4)))
2956;;;;; info-colors
2957 `(info-colors-lisp-code-block ((,class :inherit fixed-pitch)))
2958 `(info-colors-ref-item-command ((,class :foreground ,magenta)))
2959 `(info-colors-ref-item-constant ((,class :foreground ,blue-alt-other)))
2960 `(info-colors-ref-item-function ((,class :foreground ,magenta)))
2961 `(info-colors-ref-item-macro ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,magenta-alt-other)))
2962 `(info-colors-ref-item-other ((,class :foreground ,cyan)))
2963 `(info-colors-ref-item-special-form ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,magenta-alt-other)))
2964 `(info-colors-ref-item-syntax-class ((,class :foreground ,magenta)))
2965 `(info-colors-ref-item-type ((,class :foreground ,magenta-alt)))
2966 `(info-colors-ref-item-user-option ((,class :foreground ,cyan)))
2967 `(info-colors-ref-item-variable ((,class :foreground ,cyan)))
2968;;;;; interaction-log
2969 `(ilog-buffer-face ((,class :foreground ,magenta-alt-other)))
2970 `(ilog-change-face ((,class :foreground ,magenta-alt)))
2971 `(ilog-echo-face ((,class :foreground ,yellow-alt-other)))
2972 `(ilog-load-face ((,class :foreground ,green)))
2973 `(ilog-message-face ((,class :foreground ,fg-alt)))
2974 `(ilog-non-change-face ((,class :foreground ,blue)))
2975;;;;; ioccur
2976 `(ioccur-cursor ((,class :foreground ,fg-main)))
2977 `(ioccur-invalid-regexp ((,class :foreground ,red)))
2978 `(ioccur-match-face ((,class :inherit modus-theme-special-calm)))
2979 `(ioccur-match-overlay-face ((,class ,@(and (>= emacs-major-version 27) '(:extend t))
2980 :inherit modus-theme-special-cold)))
2981 `(ioccur-num-line-face ((,class :foreground ,fg-special-warm)))
2982 `(ioccur-overlay-face ((,class ,@(and (>= emacs-major-version 27) '(:extend t))
2983 :inherit modus-theme-refine-blue)))
2984 `(ioccur-regexp-face ((,class :inherit (modus-theme-intense-magenta bold))))
2985 `(ioccur-title-face ((,class :inherit bold :foreground ,red-alt
2986 ,@(modus-vivendi-theme-scale modus-vivendi-theme-scale-4))))
2987;;;;; isearch, occur, and the like
2988 `(isearch ((,class :inherit (modus-theme-intense-green bold))))
2989 `(isearch-fail ((,class :inherit modus-theme-refine-red)))
2990 `(lazy-highlight ((,class :inherit modus-theme-refine-cyan)))
2991 `(match ((,class :inherit modus-theme-special-calm)))
2992 `(query-replace ((,class :inherit (modus-theme-intense-yellow bold))))
2993;;;;; ivy
2994 `(ivy-action ((,class :inherit bold :foreground ,red-alt)))
2995 `(ivy-completions-annotations ((,class :foreground ,fg-special-cold :slant ,modus-theme-slant)))
2996 `(ivy-confirm-face ((,class :foreground ,cyan)))
2997 `(ivy-current-match ((,class ,@(modus-vivendi-theme-extra-completions
2998 'modus-theme-refine-cyan
2999 'modus-theme-intense-cyan
3000 'modus-theme-special-warm
3001 nil
3002 'bold))))
3003 `(ivy-cursor ((,class :background ,fg-main :foreground ,bg-main)))
3004 `(ivy-grep-info ((,class :foreground ,cyan-alt)))
3005 `(ivy-grep-line-number ((,class :foreground ,fg-special-warm)))
3006 `(ivy-highlight-face ((,class :foreground ,magenta)))
3007 `(ivy-match-required-face ((,class :inherit error)))
3008 `(ivy-minibuffer-match-face-1 ((,class ,@(modus-vivendi-theme-extra-completions
3009 'modus-theme-subtle-neutral
3010 'modus-theme-intense-neutral
3011 'modus-theme-subtle-neutral
3012 fg-alt))))
3013 `(ivy-minibuffer-match-face-2 ((,class ,@(modus-vivendi-theme-extra-completions
3014 'modus-theme-subtle-green
3015 'modus-theme-refine-green
3016 'modus-theme-nuanced-green
3017 green-alt-other
3018 'bold))))
3019 `(ivy-minibuffer-match-face-3 ((,class ,@(modus-vivendi-theme-extra-completions
3020 'modus-theme-subtle-cyan
3021 'modus-theme-refine-cyan
3022 'modus-theme-nuanced-cyan
3023 cyan-alt-other
3024 'bold))))
3025 `(ivy-minibuffer-match-face-4 ((,class ,@(modus-vivendi-theme-extra-completions
3026 'modus-theme-subtle-magenta
3027 'modus-theme-refine-magenta
3028 'modus-theme-nuanced-magenta
3029 magenta-alt-other
3030 'bold))))
3031 `(ivy-minibuffer-match-highlight ((,class ,@(modus-vivendi-theme-extra-completions
3032 'modus-theme-subtle-blue
3033 'modus-theme-intense-blue
3034 'modus-theme-nuanced-blue
3035 blue-alt-other
3036 'bold))))
3037 `(ivy-modified-buffer ((,class :foreground ,yellow :slant ,modus-theme-slant)))
3038 `(ivy-modified-outside-buffer ((,class :foreground ,yellow-alt :slant ,modus-theme-slant)))
3039 `(ivy-org ((,class :foreground ,cyan-alt-other)))
3040 `(ivy-prompt-match ((,class :inherit ivy-current-match)))
3041 `(ivy-remote ((,class :foreground ,magenta)))
3042 `(ivy-separator ((,class :foreground ,fg-alt)))
3043 `(ivy-subdir ((,class :foreground ,blue-alt-other)))
3044 `(ivy-virtual ((,class :foreground ,magenta-alt-other)))
3045 `(ivy-yanked-word ((,class ,@(modus-vivendi-theme-extra-completions
3046 'modus-theme-subtle-blue
3047 'modus-theme-refine-blue
3048 'modus-theme-nuanced-blue
3049 blue-alt))))
3050;;;;; ivy-posframe
3051 `(ivy-posframe ((,class :background ,bg-dim :foreground ,fg-main)))
3052 `(ivy-posframe-border ((,class :background ,bg-active)))
3053 `(ivy-posframe-cursor ((,class :background ,fg-main :foreground ,bg-main)))
3054;;;;; jira (org-jira)
3055 `(jiralib-comment-face ((,class :background ,bg-alt)))
3056 `(jiralib-comment-header-face ((,class :inherit bold)))
3057 `(jiralib-issue-info-face ((,class :inherit modus-theme-special-warm)))
3058 `(jiralib-issue-info-header-face ((,class :inherit (modus-theme-special-warm bold))))
3059 `(jiralib-issue-summary-face ((,class :inherit bold)))
3060 `(jiralib-link-filter-face ((,class :underline t)))
3061 `(jiralib-link-issue-face ((,class :underline t)))
3062 `(jiralib-link-project-face ((,class :underline t)))
3063;;;;; journalctl-mode
3064 `(journalctl-error-face ((,class :inherit bold :foreground ,red)))
3065 `(journalctl-finished-face ((,class :inherit bold :foreground ,green)))
3066 `(journalctl-host-face ((,class :foreground ,blue)))
3067 `(journalctl-process-face ((,class :foreground ,cyan-alt-other)))
3068 `(journalctl-starting-face ((,class :foreground ,green)))
3069 `(journalctl-timestamp-face ((,class :foreground ,fg-special-cold)))
3070 `(journalctl-warning-face ((,class :inherit bold :foreground ,yellow)))
3071;;;;; js2-mode
3072 `(js2-error ((,class :foreground ,red)))
3073 `(js2-external-variable ((,class :foreground ,cyan-alt-other)))
3074 `(js2-function-call ((,class :foreground ,magenta)))
3075 `(js2-function-param ((,class :foreground ,blue)))
3076 `(js2-instance-member ((,class :foreground ,magenta-alt-other)))
3077 `(js2-jsdoc-html-tag-delimiter ((,class :foreground ,fg-main)))
3078 `(js2-jsdoc-html-tag-name ((,class :foreground ,cyan)))
3079 `(js2-jsdoc-tag ((,class :foreground ,fg-special-calm)))
3080 `(js2-jsdoc-type ((,class :foreground ,fg-special-cold)))
3081 `(js2-jsdoc-value ((,class :foreground ,fg-special-warm)))
3082 `(js2-object-property ((,class :foreground ,fg-main)))
3083 `(js2-object-property-access ((,class :foreground ,fg-main)))
3084 `(js2-private-function-call ((,class :foreground ,green-alt-other)))
3085 `(js2-private-member ((,class :foreground ,fg-special-mild)))
3086 `(js2-warning ((,class :foreground ,yellow-alt :underline t)))
3087;;;;; julia
3088 `(julia-macro-face ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,magenta)))
3089 `(julia-quoted-symbol-face ((,class :foreground ,blue-alt-other)))
3090;;;;; jupyter
3091 `(jupyter-eval-overlay ((,class :inherit bold :foreground ,blue)))
3092 `(jupyter-repl-input-prompt ((,class :foreground ,cyan-alt-other)))
3093 `(jupyter-repl-output-prompt ((,class :foreground ,magenta-alt-other)))
3094 `(jupyter-repl-traceback ((,class :inherit modus-theme-intense-red)))
3095;;;;; kaocha-runner
3096 `(kaocha-runner-error-face ((,class :foreground ,red)))
3097 `(kaocha-runner-success-face ((,class :foreground ,green)))
3098 `(kaocha-runner-warning-face ((,class :foreground ,yellow)))
3099;;;;; keycast
3100 `(keycast-command ((,class :inherit bold :foreground ,blue-active)))
3101 `(keycast-key ((,class ,@(modus-vivendi-theme-mode-line-attrs
3102 bg-main blue-active
3103 bg-main blue-active
3104 blue-active blue-intense
3105 'alt-style -3))))
3106;;;;; line numbers (display-line-numbers-mode and global variant)
3107 `(line-number ((,class :inherit default :background ,bg-dim :foreground ,fg-alt)))
3108 `(line-number-current-line ((,class :inherit default :background ,bg-active :foreground ,fg-main)))
3109;;;;; lsp-mode
3110 `(lsp-face-highlight-read ((,class :inherit modus-theme-subtle-blue :underline t)))
3111 `(lsp-face-highlight-textual ((,class :inherit modus-theme-subtle-blue)))
3112 `(lsp-face-highlight-write ((,class :inherit (modus-theme-refine-blue bold))))
3113 `(lsp-face-semhl-constant ((,class :foreground ,blue-alt-other)))
3114 `(lsp-face-semhl-deprecated
3115 ((,(append '((supports :underline (:style wave))) class)
3116 :foreground ,yellow :underline (:style wave))
3117 (,class :foreground ,yellow :underline t)))
3118 `(lsp-face-semhl-enummember ((,class :foreground ,blue-alt-other)))
3119 `(lsp-face-semhl-field ((,class :foreground ,cyan-alt)))
3120 `(lsp-face-semhl-field-static ((,class :foreground ,cyan-alt :slant ,modus-theme-slant)))
3121 `(lsp-face-semhl-function ((,class :foreground ,magenta)))
3122 `(lsp-face-semhl-method ((,class :foreground ,magenta)))
3123 `(lsp-face-semhl-namespace ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,magenta-alt)))
3124 `(lsp-face-semhl-preprocessor ((,class :foreground ,red-alt-other)))
3125 `(lsp-face-semhl-static-method ((,class :foreground ,magenta :slant ,modus-theme-slant)))
3126 `(lsp-face-semhl-type-class ((,class :foreground ,magenta-alt)))
3127 `(lsp-face-semhl-type-enum ((,class :foreground ,magenta-alt)))
3128 `(lsp-face-semhl-type-primitive ((,class :foreground ,magenta-alt :slant ,modus-theme-slant)))
3129 `(lsp-face-semhl-type-template ((,class :foreground ,magenta-alt :slant ,modus-theme-slant)))
3130 `(lsp-face-semhl-type-typedef ((,class :foreground ,magenta-alt :slant ,modus-theme-slant)))
3131 `(lsp-face-semhl-variable ((,class :foreground ,cyan)))
3132 `(lsp-face-semhl-variable-local ((,class :foreground ,cyan)))
3133 `(lsp-face-semhl-variable-parameter ((,class :foreground ,cyan-alt-other)))
3134 `(lsp-lens-face ((,class :height 0.8 :foreground ,fg-alt)))
3135 `(lsp-lens-mouse-face ((,class :height 0.8 :foreground ,blue-alt-other :underline t)))
3136 `(lsp-ui-doc-background ((,class :background ,bg-alt)))
3137 `(lsp-ui-doc-header ((,class :background ,bg-header :foreground ,fg-header)))
3138 `(lsp-ui-doc-url ((,class :inherit button :foreground ,blue-alt-other)))
3139 `(lsp-ui-peek-filename ((,class :foreground ,fg-special-warm)))
3140 `(lsp-ui-peek-footer ((,class :background ,bg-header :foreground ,fg-header)))
3141 `(lsp-ui-peek-header ((,class :background ,bg-header :foreground ,fg-header)))
3142 `(lsp-ui-peek-highlight ((,class :inherit modus-theme-subtle-blue)))
3143 `(lsp-ui-peek-line-number ((,class :foreground ,fg-alt)))
3144 `(lsp-ui-peek-list ((,class :background ,bg-dim)))
3145 `(lsp-ui-peek-peek ((,class :background ,bg-alt)))
3146 `(lsp-ui-peek-selection ((,class :inherit modus-theme-subtle-cyan)))
3147 `(lsp-ui-sideline-code-action ((,class :foreground ,yellow)))
3148 `(lsp-ui-sideline-current-symbol ((,class :inherit bold :height 0.99 :box (:line-width -1 :style nil) :foreground ,fg-main)))
3149 `(lsp-ui-sideline-symbol ((,class :inherit bold :height 0.99 :box (:line-width -1 :style nil) :foreground ,fg-alt)))
3150 `(lsp-ui-sideline-symbol-info ((,class :height 0.99 :slant italic)))
3151;;;;; magit
3152 `(magit-bisect-bad ((,class :foreground ,red-alt-other)))
3153 `(magit-bisect-good ((,class :foreground ,green-alt-other)))
3154 `(magit-bisect-skip ((,class :foreground ,yellow-alt-other)))
3155 `(magit-blame-date ((,class :foreground ,blue)))
3156 `(magit-blame-dimmed ((,class :foreground ,fg-alt)))
3157 `(magit-blame-hash ((,class :foreground ,fg-special-warm)))
3158 `(magit-blame-heading ((,class :background ,bg-alt)))
3159 `(magit-blame-highlight ((,class :inherit modus-theme-nuanced-cyan)))
3160 `(magit-blame-margin ((,class :inherit magit-blame-highlight)))
3161 `(magit-blame-name ((,class :foreground ,magenta-alt-other)))
3162 `(magit-blame-summary ((,class :foreground ,cyan-alt-other)))
3163 `(magit-branch-current ((,class :foreground ,blue-alt-other :box t)))
3164 `(magit-branch-local ((,class :foreground ,blue-alt)))
3165 `(magit-branch-remote ((,class :foreground ,magenta-alt)))
3166 `(magit-branch-remote-head ((,class :foreground ,magenta-alt-other :box t)))
3167 `(magit-branch-upstream ((,class :slant italic)))
3168 `(magit-cherry-equivalent ((,class :background ,bg-main :foreground ,magenta-intense)))
3169 `(magit-cherry-unmatched ((,class :background ,bg-main :foreground ,cyan-intense)))
3170 ;; NOTE: here we break from the pattern of inheriting from the
3171 ;; modus-theme-diff-* faces, though only for the standard actions,
3172 ;; not the highlighted ones. This is because Magit's interaction
3173 ;; model relies on highlighting the current diff hunk.
3174 `(magit-diff-added ((,class ,@(modus-vivendi-theme-diff
3175 bg-main green
3176 bg-diff-added fg-diff-added
3177 green-nuanced-bg fg-diff-added))))
3178 `(magit-diff-added-highlight ((,class :inherit modus-theme-diff-focus-added)))
3179 `(magit-diff-base ((,class ,@(modus-vivendi-theme-diff
3180 bg-main yellow
3181 bg-diff-changed fg-diff-changed
3182 yellow-nuanced-bg fg-diff-changed))))
3183 `(magit-diff-base-highlight ((,class :inherit modus-theme-diff-focus-changed)))
3184 `(magit-diff-context ((,class :foreground ,fg-unfocused)))
3185 `(magit-diff-context-highlight ((,class ,@(modus-vivendi-theme-diff
3186 bg-dim fg-dim
3187 bg-inactive fg-inactive
3188 bg-dim fg-alt))))
3189 `(magit-diff-file-heading ((,class :inherit bold :foreground ,fg-special-cold)))
3190 `(magit-diff-file-heading-highlight ((,class :inherit (modus-theme-special-cold bold))))
3191 `(magit-diff-file-heading-selection ((,class :inherit modus-theme-refine-cyan)))
3192 ;; NOTE: here we break from the pattern of inheriting from the
3193 ;; modus-theme-diff-* faces.
3194 `(magit-diff-hunk-heading ((,class :inherit bold :background ,bg-active
3195 :foreground ,fg-inactive)))
3196 `(magit-diff-hunk-heading-highlight ((,class :inherit bold :background ,bg-diff-heading
3197 :foreground ,fg-diff-heading)))
3198 `(magit-diff-hunk-heading-selection ((,class :inherit modus-theme-refine-blue)))
3199 `(magit-diff-hunk-region ((,class :inherit bold)))
3200 `(magit-diff-lines-boundary ((,class :background ,fg-main)))
3201 `(magit-diff-lines-heading ((,class :inherit modus-theme-refine-magenta)))
3202 `(magit-diff-removed ((,class ,@(modus-vivendi-theme-diff
3203 bg-main red
3204 bg-diff-removed fg-diff-removed
3205 red-nuanced-bg fg-diff-removed))))
3206 `(magit-diff-removed-highlight ((,class :inherit modus-theme-diff-focus-removed)))
3207 `(magit-diffstat-added ((,class :foreground ,green)))
3208 `(magit-diffstat-removed ((,class :foreground ,red)))
3209 `(magit-dimmed ((,class :foreground ,fg-unfocused)))
3210 `(magit-filename ((,class :foreground ,fg-special-cold)))
3211 `(magit-hash ((,class :foreground ,fg-alt)))
3212 `(magit-head ((,class :inherit magit-branch-local)))
3213 `(magit-header-line ((,class :inherit bold :foreground ,magenta-active)))
3214 `(magit-header-line-key ((,class :inherit bold :foreground ,red-active)))
3215 `(magit-header-line-log-select ((,class :inherit bold :foreground ,fg-main)))
3216 `(magit-keyword ((,class :foreground ,magenta)))
3217 `(magit-keyword-squash ((,class :inherit bold :foreground ,yellow-alt-other)))
3218 `(magit-log-author ((,class :foreground ,cyan)))
3219 `(magit-log-date ((,class :foreground ,fg-alt)))
3220 `(magit-log-graph ((,class :foreground ,fg-dim)))
3221 `(magit-mode-line-process ((,class :inherit bold :foreground ,blue-active)))
3222 `(magit-mode-line-process-error ((,class :inherit bold :foreground ,red-active)))
3223 `(magit-process-ng ((,class :inherit error)))
3224 `(magit-process-ok ((,class :inherit success)))
3225 `(magit-reflog-amend ((,class :background ,bg-main :foreground ,magenta-intense)))
3226 `(magit-reflog-checkout ((,class :background ,bg-main :foreground ,blue-intense)))
3227 `(magit-reflog-cherry-pick ((,class :background ,bg-main :foreground ,green-intense)))
3228 `(magit-reflog-commit ((,class :background ,bg-main :foreground ,green-intense)))
3229 `(magit-reflog-merge ((,class :background ,bg-main :foreground ,green-intense)))
3230 `(magit-reflog-other ((,class :background ,bg-main :foreground ,cyan-intense)))
3231 `(magit-reflog-rebase ((,class :background ,bg-main :foreground ,magenta-intense)))
3232 `(magit-reflog-remote ((,class :background ,bg-main :foreground ,cyan-intense)))
3233 `(magit-reflog-reset ((,class :background ,bg-main :foreground ,red-intense)))
3234 `(magit-refname ((,class :foreground ,fg-alt)))
3235 `(magit-refname-pullreq ((,class :foreground ,fg-alt)))
3236 `(magit-refname-stash ((,class :foreground ,fg-alt)))
3237 `(magit-refname-wip ((,class :foreground ,fg-alt)))
3238 `(magit-section ((,class :background ,bg-dim :foreground ,fg-main)))
3239 `(magit-section-heading ((,class :inherit bold :foreground ,cyan)))
3240 `(magit-section-heading-selection ((,class :inherit (modus-theme-refine-cyan bold))))
3241 `(magit-section-highlight ((,class :background ,bg-alt)))
3242 `(magit-sequence-done ((,class :foreground ,green-alt)))
3243 `(magit-sequence-drop ((,class :foreground ,red-alt)))
3244 `(magit-sequence-exec ((,class :foreground ,magenta-alt)))
3245 `(magit-sequence-head ((,class :foreground ,cyan-alt)))
3246 `(magit-sequence-onto ((,class :foreground ,fg-alt)))
3247 `(magit-sequence-part ((,class :foreground ,yellow-alt)))
3248 `(magit-sequence-pick ((,class :foreground ,blue-alt)))
3249 `(magit-sequence-stop ((,class :foreground ,red)))
3250 `(magit-signature-bad ((,class :inherit bold :foreground ,red)))
3251 `(magit-signature-error ((,class :foreground ,red-alt)))
3252 `(magit-signature-expired ((,class :foreground ,yellow)))
3253 `(magit-signature-expired-key ((,class :foreground ,yellow)))
3254 `(magit-signature-good ((,class :foreground ,green)))
3255 `(magit-signature-revoked ((,class :foreground ,magenta)))
3256 `(magit-signature-untrusted ((,class :foreground ,cyan)))
3257 `(magit-tag ((,class :foreground ,yellow-alt-other)))
3258;;;;; magit-imerge
3259 `(magit-imerge-overriding-value ((,class :inherit bold :foreground ,red-alt)))
3260;;;;; man
3261 `(Man-overstrike ((,class :inherit bold :foreground ,magenta)))
3262 `(Man-reverse ((,class :inherit modus-theme-subtle-magenta)))
3263 `(Man-underline ((,class :foreground ,cyan :underline t)))
3264;;;;; markdown-mode
3265 `(markdown-blockquote-face ((,class :foreground ,fg-special-cold :slant ,modus-theme-slant)))
3266 `(markdown-bold-face ((,class :inherit bold)))
3267 `(markdown-code-face ((,class ,@(modus-vivendi-theme-mixed-fonts))))
3268 `(markdown-comment-face ((,class :foreground ,fg-alt :slant ,modus-theme-slant)))
3269 `(markdown-footnote-marker-face ((,class :inherit bold :foreground ,cyan-alt)))
3270 `(markdown-footnote-text-face ((,class :foreground ,fg-main :slant ,modus-theme-slant)))
3271 `(markdown-gfm-checkbox-face ((,class :foreground ,cyan-alt-other)))
3272 `(markdown-header-delimiter-face ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,fg-dim)))
3273 `(markdown-header-face ((t nil)))
3274 `(markdown-header-face-1 ((,class :inherit modus-theme-heading-1)))
3275 `(markdown-header-face-2 ((,class :inherit modus-theme-heading-2)))
3276 `(markdown-header-face-3 ((,class :inherit modus-theme-heading-3)))
3277 `(markdown-header-face-4 ((,class :inherit modus-theme-heading-4)))
3278 `(markdown-header-face-5 ((,class :inherit modus-theme-heading-5)))
3279 `(markdown-header-face-6 ((,class :inherit modus-theme-heading-6)))
3280 `(markdown-header-rule-face ((,class :inherit bold :foreground ,fg-special-warm)))
3281 `(markdown-hr-face ((,class :inherit bold :foreground ,fg-special-warm)))
3282 `(markdown-html-attr-name-face ((,class ,@(modus-vivendi-theme-mixed-fonts)
3283 :foreground ,cyan)))
3284 `(markdown-html-attr-value-face ((,class ,@(modus-vivendi-theme-mixed-fonts)
3285 :foreground ,blue)))
3286 `(markdown-html-entity-face ((,class ,@(modus-vivendi-theme-mixed-fonts)
3287 :foreground ,cyan)))
3288 `(markdown-html-tag-delimiter-face ((,class ,@(modus-vivendi-theme-mixed-fonts)
3289 :foreground ,fg-special-mild)))
3290 `(markdown-html-tag-name-face ((,class ,@(modus-vivendi-theme-mixed-fonts)
3291 :foreground ,magenta-alt)))
3292 `(markdown-inline-code-face ((,class ,@(modus-vivendi-theme-mixed-fonts)
3293 :foreground ,magenta)))
3294 `(markdown-italic-face ((,class :foreground ,fg-special-cold :slant italic)))
3295 `(markdown-language-info-face ((,class ,@(modus-vivendi-theme-mixed-fonts)
3296 :foreground ,fg-special-cold)))
3297 `(markdown-language-keyword-face ((,class ,@(modus-vivendi-theme-mixed-fonts)
3298 :foreground ,green-alt-other)))
3299 `(markdown-line-break-face ((,class :inherit modus-theme-refine-cyan :underline t)))
3300 `(markdown-link-face ((,class :inherit link)))
3301 `(markdown-link-title-face ((,class :foreground ,fg-special-cold :slant ,modus-theme-slant)))
3302 `(markdown-list-face ((,class :foreground ,fg-dim)))
3303 `(markdown-markup-face ((,class :foreground ,fg-alt)))
3304 `(markdown-math-face ((,class :foreground ,magenta-alt-other)))
3305 `(markdown-metadata-key-face ((,class :foreground ,cyan-alt-other)))
3306 `(markdown-metadata-value-face ((,class :foreground ,blue-alt)))
3307 `(markdown-missing-link-face ((,class :inherit bold :foreground ,yellow)))
3308 `(markdown-plain-url-face ((,class :inherit markdown-link-face)))
3309 `(markdown-pre-face ((,class ,@(and (>= emacs-major-version 27) '(:extend t))
3310 ,@(modus-vivendi-theme-mixed-fonts)
3311 :background ,bg-dim
3312 :foreground ,fg-special-mild)))
3313 `(markdown-reference-face ((,class :inherit markdown-markup-face)))
3314 `(markdown-strike-through-face ((,class :strike-through t)))
3315 `(markdown-table-face ((,class ,@(modus-vivendi-theme-mixed-fonts)
3316 :foreground ,fg-special-cold)))
3317 `(markdown-url-face ((,class :foreground ,blue-alt)))
3318;;;;; markup-faces (`adoc-mode')
3319 `(markup-anchor-face ((,class :foreground ,fg-inactive)))
3320 `(markup-attribute-face ((,class :foreground ,fg-inactive :slant italic)))
3321 `(markup-big-face ((,class :height 1.3 :foreground ,blue-nuanced)))
3322 `(markup-bold-face ((,class :inherit bold :foreground ,red-nuanced)))
3323 `(markup-code-face ((,class :inherit fixed-pitch :foreground ,magenta)))
3324 `(markup-command-face ((,class :foreground ,fg-inactive)))
3325 `(markup-comment-face ((,class :foreground ,fg-alt :slant ,modus-theme-slant)))
3326 `(markup-complex-replacement-face ((,class :box (:line-width 2 :color nil :style released-button)
3327 :inherit modus-theme-refine-magenta)))
3328 `(markup-emphasis-face ((,class :foreground ,fg-special-cold :slant italic)))
3329 `(markup-error-face ((,class :inherit bold :foreground ,red)))
3330 `(markup-gen-face ((,class :foreground ,magenta-alt)))
3331 `(markup-internal-reference-face ((,class :inherit button :foreground ,fg-inactive)))
3332 `(markup-italic-face ((,class :foreground ,fg-special-cold :slant italic)))
3333 `(markup-list-face ((,class :inherit modus-theme-special-calm)))
3334 `(markup-meta-face ((,class :foreground ,fg-inactive)))
3335 `(markup-meta-hide-face ((,class :foreground ,fg-alt)))
3336 `(markup-passthrough-face ((,class :inherit fixed-pitch :foreground ,cyan)))
3337 `(markup-preprocessor-face ((,class :foreground ,red-alt-other)))
3338 `(markup-replacement-face ((,class :foreground ,yellow-alt-other)))
3339 `(markup-secondary-text-face ((,class :height 0.8 :foreground ,magenta-nuanced)))
3340 `(markup-small-face ((,class :height 0.8 :foreground ,fg-main)))
3341 `(markup-strong-face ((,class :inherit bold :foreground ,red-nuanced)))
3342 `(markup-subscript-face ((,class :height 0.8 :foreground ,fg-special-cold)))
3343 `(markup-superscript-face ((,class :height 0.8 :foreground ,fg-special-cold)))
3344 `(markup-table-cell-face ((,class :inherit modus-theme-special-cold)))
3345 `(markup-table-face ((,class :inherit modus-theme-subtle-cyan)))
3346 `(markup-table-row-face ((,class :inherit modus-theme-subtle-cyan)))
3347 `(markup-title-0-face ((,class :height 3.0 :foreground ,blue-nuanced)))
3348 `(markup-title-1-face ((,class :height 2.4 :foreground ,blue-nuanced)))
3349 `(markup-title-2-face ((,class :height 1.8 :foreground ,blue-nuanced)))
3350 `(markup-title-3-face ((,class :height 1.4 :foreground ,blue-nuanced)))
3351 `(markup-title-4-face ((,class :height 1.2 :foreground ,blue-nuanced)))
3352 `(markup-title-5-face ((,class :height 1.2 :foreground ,blue-nuanced :underline t)))
3353 `(markup-value-face ((,class :foreground ,fg-inactive)))
3354 `(markup-verbatim-face ((,class :inherit modus-theme-special-mild)))
3355;;;;; mentor
3356 `(mentor-download-message ((,class :foreground ,fg-special-warm)))
3357 `(mentor-download-name ((,class :foreground ,fg-special-cold)))
3358 `(mentor-download-progress ((,class :foreground ,blue-alt-other)))
3359 `(mentor-download-size ((,class :foreground ,magenta-alt-other)))
3360 `(mentor-download-speed-down ((,class :foreground ,cyan-alt)))
3361 `(mentor-download-speed-up ((,class :foreground ,red-alt)))
3362 `(mentor-download-state ((,class :foreground ,yellow-alt)))
3363 `(mentor-highlight-face ((,class :inherit modus-theme-subtle-blue)))
3364 `(mentor-tracker-name ((,class :foreground ,magenta-alt)))
3365;;;;; messages
3366 `(message-cited-text-1 ((,class :foreground ,blue-alt)))
3367 `(message-cited-text-2 ((,class :foreground ,red-alt)))
3368 `(message-cited-text-3 ((,class :foreground ,green-alt)))
3369 `(message-cited-text-4 ((,class :foreground ,magenta-alt)))
3370 `(message-header-cc ((,class :inherit bold :foreground ,cyan-alt)))
3371 `(message-header-name ((,class :foreground ,green-alt-other)))
3372 `(message-header-newsgroups ((,class :inherit bold :foreground ,green-alt)))
3373 `(message-header-other ((,class :inherit bold :foreground ,cyan-alt-other)))
3374 `(message-header-subject ((,class :inherit bold :foreground ,magenta-alt-other)))
3375 `(message-header-to ((,class :inherit bold :foreground ,blue)))
3376 `(message-header-xheader ((,class :foreground ,cyan)))
3377 `(message-mml ((,class :foreground ,fg-special-warm)))
3378 `(message-separator ((,class :inherit modus-theme-intense-neutral)))
3379;;;;; minibuffer-line
3380 `(minibuffer-line ((,class :foreground ,fg-main)))
3381;;;;; minimap
3382 `(minimap-active-region-background ((,class :background ,bg-active)))
3383 `(minimap-current-line-face ((,class :background ,cyan-intense-bg :foreground ,fg-main)))
3384;;;;; modeline
3385 `(mode-line ((,class ,@(modus-vivendi-theme-mode-line-attrs
3386 fg-active bg-active fg-dim bg-active
3387 fg-alt bg-active 'alt-style nil bg-main))))
3388 `(mode-line-buffer-id ((,class :inherit bold)))
3389 `(mode-line-emphasis ((,class :inherit bold :foreground ,blue-active)))
3390 `(mode-line-highlight ((,class :inherit modus-theme-active-blue :box (:line-width -1 :style pressed-button))))
3391 `(mode-line-inactive ((,class ,@(modus-vivendi-theme-mode-line-attrs
3392 fg-inactive bg-inactive fg-alt bg-dim
3393 bg-region bg-active))))
3394;;;;; mood-line
3395 `(mood-line-modified ((,class :foreground ,magenta-active)))
3396 `(mood-line-status-error ((,class :inherit bold :foreground ,red-active)))
3397 `(mood-line-status-info ((,class :foreground ,cyan-active)))
3398 `(mood-line-status-neutral ((,class :foreground ,blue-active)))
3399 `(mood-line-status-success ((,class :foreground ,green-active)))
3400 `(mood-line-status-warning ((,class :inherit bold :foreground ,yellow-active)))
3401 `(mood-line-unimportant ((,class :foreground ,fg-inactive)))
3402;;;;; mpdel
3403 `(mpdel-browser-directory-face ((,class :foreground ,blue)))
3404 `(mpdel-playlist-current-song-face ((,class :inherit bold :foreground ,blue-alt-other)))
3405;;;;; mu4e
3406 `(mu4e-attach-number-face ((,class :inherit bold :foreground ,cyan-alt)))
3407 `(mu4e-cited-1-face ((,class :foreground ,blue-alt)))
3408 `(mu4e-cited-2-face ((,class :foreground ,red-alt)))
3409 `(mu4e-cited-3-face ((,class :foreground ,green-alt)))
3410 `(mu4e-cited-4-face ((,class :foreground ,magenta-alt)))
3411 `(mu4e-cited-5-face ((,class :foreground ,yellow-alt)))
3412 `(mu4e-cited-6-face ((,class :foreground ,cyan-alt)))
3413 `(mu4e-cited-7-face ((,class :foreground ,magenta)))
3414 `(mu4e-compose-header-face ((,class :inherit mu4e-compose-separator-face)))
3415 `(mu4e-compose-separator-face ((,class :inherit modus-theme-intense-neutral)))
3416 `(mu4e-contact-face ((,class :inherit bold :foreground ,cyan-alt-other)))
3417 `(mu4e-context-face ((,class :foreground ,blue-active)))
3418 `(mu4e-draft-face ((,class :foreground ,magenta-alt)))
3419 `(mu4e-flagged-face ((,class :foreground ,red-alt)))
3420 `(mu4e-footer-face ((,class :foreground ,fg-special-cold :slant ,modus-theme-slant)))
3421 `(mu4e-forwarded-face ((,class :foreground ,magenta-alt-other)))
3422 `(mu4e-header-face ((,class :foreground ,fg-alt)))
3423 `(mu4e-header-highlight-face ((,class :inherit modus-theme-hl-line)))
3424 `(mu4e-header-key-face ((,class :foreground ,cyan)))
3425 `(mu4e-header-marks-face ((,class :inherit bold :foreground ,magenta-alt)))
3426 `(mu4e-header-title-face ((,class :foreground ,fg-special-mild)))
3427 `(mu4e-header-value-face ((,class :inherit bold :foreground ,magenta-alt-other)))
3428 `(mu4e-highlight-face ((,class :inherit bold :foreground ,blue-alt-other)))
3429 `(mu4e-link-face ((,class :inherit link)))
3430 `(mu4e-modeline-face ((,class :foreground ,magenta-active)))
3431 `(mu4e-moved-face ((,class :foreground ,yellow :slant ,modus-theme-slant)))
3432 `(mu4e-ok-face ((,class :inherit bold :foreground ,green)))
3433 `(mu4e-region-code ((,class :inherit modus-theme-special-calm)))
3434 `(mu4e-replied-face ((,class :foreground ,blue-faint)))
3435 `(mu4e-special-header-value-face ((,class :inherit bold :foreground ,blue-alt-other)))
3436 `(mu4e-system-face ((,class :foreground ,fg-mark-del :slant ,modus-theme-slant)))
3437 `(mu4e-title-face ((,class :foreground ,fg-main)))
3438 `(mu4e-trashed-face ((,class :foreground ,red)))
3439 `(mu4e-unread-face ((,class :inherit bold :foreground ,fg-main)))
3440 `(mu4e-url-number-face ((,class :inherit bold :foreground ,cyan-alt-other)))
3441 `(mu4e-view-body-face ((,class :foreground ,fg-main)))
3442 `(mu4e-warning-face ((,class :inherit warning)))
3443;;;;; mu4e-conversation
3444 `(mu4e-conversation-header ((,class :inherit modus-theme-special-cold)))
3445 `(mu4e-conversation-sender-1 ((,class :foreground ,fg-special-warm)))
3446 `(mu4e-conversation-sender-2 ((,class :foreground ,fg-special-cold)))
3447 `(mu4e-conversation-sender-3 ((,class :foreground ,fg-special-mild)))
3448 `(mu4e-conversation-sender-4 ((,class :foreground ,fg-alt)))
3449 `(mu4e-conversation-sender-5 ((,class :foreground ,yellow-refine-fg)))
3450 `(mu4e-conversation-sender-6 ((,class :foreground ,cyan-refine-fg)))
3451 `(mu4e-conversation-sender-7 ((,class :foreground ,green-refine-fg)))
3452 `(mu4e-conversation-sender-8 ((,class :foreground ,blue-refine-fg)))
3453 `(mu4e-conversation-sender-me ((,class :foreground ,fg-main)))
3454 `(mu4e-conversation-unread ((,class :inherit bold)))
3455;;;;; multiple-cursors
3456 `(mc/cursor-bar-face ((,class :height 1 :background ,fg-main)))
3457 `(mc/cursor-face ((,class :inverse-video t)))
3458 `(mc/region-face ((,class :inherit region)))
3459;;;;; neotree
3460 `(neo-banner-face ((,class :foreground ,magenta)))
3461 `(neo-button-face ((,class :inherit button)))
3462 `(neo-dir-link-face ((,class :inherit bold :foreground ,blue)))
3463 `(neo-expand-btn-face ((,class :foreground ,cyan)))
3464 `(neo-file-link-face ((,class :foreground ,fg-main)))
3465 `(neo-header-face ((,class :inherit bold :foreground ,fg-main)))
3466 `(neo-root-dir-face ((,class :inherit bold :foreground ,cyan-alt)))
3467 `(neo-vc-added-face ((,class :foreground ,green)))
3468 `(neo-vc-conflict-face ((,class :inherit bold :foreground ,red)))
3469 `(neo-vc-default-face ((,class :foreground ,fg-main)))
3470 `(neo-vc-edited-face ((,class :foreground ,yellow)))
3471 `(neo-vc-ignored-face ((,class :foreground ,fg-inactive)))
3472 `(neo-vc-missing-face ((,class :foreground ,red-alt)))
3473 `(neo-vc-needs-merge-face ((,class :foreground ,magenta-alt)))
3474 `(neo-vc-needs-update-face ((,class :underline t)))
3475 `(neo-vc-removed-face ((,class :strike-through t)))
3476 `(neo-vc-unlocked-changes-face ((,class :inherit modus-theme-refine-blue)))
3477 `(neo-vc-up-to-date-face ((,class :foreground ,fg-alt)))
3478 `(neo-vc-user-face ((,class :foreground ,magenta)))
3479;;;;; no-emoji
3480 `(no-emoji ((,class :foreground ,cyan)))
3481;;;;; notmuch
3482 `(notmuch-crypto-decryption ((,class :inherit modus-theme-refine-magenta)))
3483 `(notmuch-crypto-part-header ((,class :foreground ,magenta-alt-other)))
3484 `(notmuch-crypto-signature-bad ((,class :inherit modus-theme-intense-red)))
3485 `(notmuch-crypto-signature-good ((,class :inherit modus-theme-refine-green)))
3486 `(notmuch-crypto-signature-good-key ((,class :inherit modus-theme-refine-yellow)))
3487 `(notmuch-crypto-signature-unknown ((,class :inherit modus-theme-refine-red)))
3488 `(notmuch-hello-logo-background ((,class :background ,bg-main)))
3489 `(notmuch-message-summary-face ((,class :inherit modus-theme-nuanced-cyan)))
3490 `(notmuch-search-flagged-face ((,class :foreground ,red-alt)))
3491 `(notmuch-search-matching-authors ((,class :foreground ,fg-main)))
3492 `(notmuch-search-non-matching-authors ((,class :foreground ,fg-alt)))
3493 `(notmuch-search-unread-face ((,class :inherit bold)))
3494 `(notmuch-tag-added
3495 ((,(append '((supports :underline (:style wave))) class)
3496 :underline (:color ,green :style wave))
3497 (,class :foreground ,green :underline t)))
3498 `(notmuch-tag-deleted
3499 ((,(append '((supports :underline (:style wave))) class)
3500 :underline (:color ,red :style wave))
3501 (,class :foreground ,red :underline t)))
3502 `(notmuch-tag-face ((,class :inherit bold :foreground ,blue-alt)))
3503 `(notmuch-tag-flagged ((,class :foreground ,red-alt)))
3504 `(notmuch-tag-unread ((,class :foreground ,magenta-alt)))
3505 `(notmuch-tree-match-author-face ((,class :foreground ,fg-special-cold)))
3506 `(notmuch-tree-match-face ((,class :foreground ,fg-main)))
3507 `(notmuch-tree-match-tag-face ((,class :inherit bold :foreground ,blue-alt)))
3508 `(notmuch-tree-no-match-face ((,class :foreground ,fg-alt)))
3509 `(notmuch-wash-cited-text ((,class :foreground ,cyan)))
3510 `(notmuch-wash-toggle-button ((,class :background ,bg-alt :foreground ,fg-alt)))
3511;;;;; num3-mode
3512 `(num3-face-even ((,class :inherit bold :background ,bg-alt)))
3513;;;;; nxml-mode
3514 `(nxml-attribute-colon ((,class :foreground ,fg-main)))
3515 `(nxml-attribute-local-name ((,class ,@(modus-vivendi-theme-syntax-foreground
3516 cyan-alt cyan-alt-faint))))
3517 `(nxml-attribute-prefix ((,class ,@(modus-vivendi-theme-syntax-foreground
3518 cyan-alt-other cyan-alt-other-faint)
3519 ,@(modus-vivendi-theme-bold-weight))))
3520 `(nxml-attribute-value ((,class ,@(modus-vivendi-theme-syntax-foreground
3521 blue blue-faint))))
3522 `(nxml-cdata-section-CDATA ((,class ,@(modus-vivendi-theme-syntax-foreground
3523 red-alt red-alt-faint)
3524 ,@(modus-vivendi-theme-bold-weight))))
3525 `(nxml-cdata-section-delimiter ((,class ,@(modus-vivendi-theme-syntax-foreground
3526 red-alt red-alt-faint))))
3527 `(nxml-char-ref-delimiter ((,class ,@(modus-vivendi-theme-syntax-foreground
3528 green-alt-other green-alt-other-faint))))
3529 `(nxml-char-ref-number ((,class ,@(modus-vivendi-theme-syntax-foreground
3530 green-alt-other green-alt-other-faint)
3531 ,@(modus-vivendi-theme-bold-weight))))
3532 `(nxml-delimited-data ((,class :foreground ,fg-special-cold :slant ,modus-theme-slant)))
3533 `(nxml-delimiter ((,class :foreground ,fg-dim)))
3534 `(nxml-element-colon ((,class :foreground ,fg-main)))
3535 `(nxml-element-local-name ((,class ,@(modus-vivendi-theme-syntax-foreground
3536 magenta magenta-faint))))
3537 `(nxml-element-prefix ((,class ,@(modus-vivendi-theme-syntax-foreground
3538 magenta-alt magenta-alt-faint)
3539 ,@(modus-vivendi-theme-bold-weight))))
3540 `(nxml-entity-ref-delimiter ((,class ,@(modus-vivendi-theme-syntax-foreground
3541 green-alt-other green-alt-other-faint))))
3542 `(nxml-entity-ref-name ((,class ,@(modus-vivendi-theme-syntax-foreground
3543 green-alt-other green-alt-other-faint)
3544 ,@(modus-vivendi-theme-bold-weight))))
3545 `(nxml-glyph ((,class :inherit modus-theme-intense-neutral)))
3546 `(nxml-hash ((,class ,@(modus-vivendi-theme-syntax-foreground
3547 blue-alt blue-alt-faint)
3548 ,@(modus-vivendi-theme-bold-weight))))
3549 `(nxml-heading ((,class :inherit bold)))
3550 `(nxml-name ((,class ,@(modus-vivendi-theme-syntax-foreground
3551 magenta-alt magenta-alt-faint)
3552 ,@(modus-vivendi-theme-bold-weight))))
3553 `(nxml-namespace-attribute-colon ((,class :foreground ,fg-main)))
3554 `(nxml-namespace-attribute-prefix ((,class ,@(modus-vivendi-theme-syntax-foreground
3555 cyan cyan-faint))))
3556 `(nxml-processing-instruction-target ((,class ,@(modus-vivendi-theme-syntax-foreground
3557 magenta-alt-other magenta-alt-other-faint)
3558 ,@(modus-vivendi-theme-bold-weight))))
3559 `(nxml-prolog-keyword ((,class ,@(modus-vivendi-theme-syntax-foreground
3560 magenta-alt-other magenta-alt-other-faint)
3561 ,@(modus-vivendi-theme-bold-weight))))
3562 `(nxml-ref ((,class ,@(modus-vivendi-theme-syntax-foreground
3563 green-alt-other green-alt-other-faint)
3564 ,@(modus-vivendi-theme-bold-weight))))
3565;;;;; objed
3566 `(objed-hl ((,class :background ,(if modus-vivendi-theme-intense-hl-line
3567 bg-hl-alt-intense bg-hl-alt))))
3568 `(objed-mark ((,class :background ,bg-active)))
3569 `(objed-mode-line ((,class :foreground ,cyan-active)))
3570;;;;; orderless
3571 `(orderless-match-face-0 ((,class :inherit bold
3572 ,@(modus-vivendi-theme-standard-completions
3573 blue-alt-other blue-nuanced-bg
3574 blue-refine-bg blue-refine-fg))))
3575 `(orderless-match-face-1 ((,class :inherit bold
3576 ,@(modus-vivendi-theme-standard-completions
3577 magenta-alt magenta-nuanced-bg
3578 magenta-refine-bg magenta-refine-fg))))
3579 `(orderless-match-face-2 ((,class :inherit bold
3580 ,@(modus-vivendi-theme-standard-completions
3581 green green-nuanced-bg
3582 green-refine-bg green-refine-fg))))
3583 `(orderless-match-face-3 ((,class :inherit bold
3584 ,@(modus-vivendi-theme-standard-completions
3585 yellow yellow-nuanced-bg
3586 yellow-refine-bg yellow-refine-fg))))
3587;;;;; org
3588 `(org-agenda-calendar-event ((,class :foreground ,fg-main)))
3589 `(org-agenda-calendar-sexp ((,class :foreground ,cyan-alt)))
3590 `(org-agenda-clocking ((,class :inherit modus-theme-special-cold
3591 ,@(and (>= emacs-major-version 27) '(:extend t)))))
3592 `(org-agenda-column-dateline ((,class :background ,bg-alt)))
3593 `(org-agenda-current-time ((,class :inherit bold :foreground ,blue-alt-other)))
3594 `(org-agenda-date ((,class :foreground ,cyan)))
3595 `(org-agenda-date-today ((,class :inherit bold :foreground ,fg-main :underline t)))
3596 `(org-agenda-date-weekend ((,class :foreground ,cyan-alt-other)))
3597 `(org-agenda-diary ((,class :foreground ,fg-main)))
3598 `(org-agenda-dimmed-todo-face ((,class :inherit bold :foreground ,fg-alt)))
3599 `(org-agenda-done ((,class :foreground ,green-alt)))
3600 `(org-agenda-filter-category ((,class :inherit bold :foreground ,magenta-active)))
3601 `(org-agenda-filter-effort ((,class :inherit bold :foreground ,magenta-active)))
3602 `(org-agenda-filter-regexp ((,class :inherit bold :foreground ,magenta-active)))
3603 `(org-agenda-filter-tags ((,class :inherit bold :foreground ,magenta-active)))
3604 `(org-agenda-restriction-lock ((,class :background ,bg-dim :foreground ,fg-dim)))
3605 `(org-agenda-structure ((,class :foreground ,blue-alt)))
3606 `(org-archived ((,class :background ,bg-alt :foreground ,fg-alt)))
3607 `(org-block ((,class ,@(modus-vivendi-theme-mixed-fonts)
3608 ,@(modus-vivendi-theme-org-block bg-dim)
3609 :foreground ,fg-main)))
3610 `(org-block-begin-line ((,class ,@(modus-vivendi-theme-mixed-fonts)
3611 ,@(modus-vivendi-theme-org-block-delim
3612 bg-dim fg-special-cold
3613 bg-alt fg-special-mild))))
3614 `(org-block-end-line ((,class :inherit org-block-begin-line)))
3615 `(org-checkbox ((,class :box (:line-width 1 :color ,bg-active)
3616 :background ,bg-inactive :foreground ,fg-active)))
3617 `(org-checkbox-statistics-done ((,class :inherit org-done)))
3618 `(org-checkbox-statistics-todo ((,class :inherit org-todo)))
3619 `(org-clock-overlay ((,class :inherit modus-theme-special-cold)))
3620 `(org-code ((,class ,@(modus-vivendi-theme-mixed-fonts) :foreground ,magenta)))
3621 `(org-column ((,class :background ,bg-alt)))
3622 `(org-column-title ((,class :inherit bold :underline t :background ,bg-alt)))
3623 `(org-date ((,class :inherit (button fixed-pitch) :foreground ,cyan-alt-other)))
3624 `(org-date-selected ((,class :inherit bold :foreground ,blue-alt :inverse-video t)))
3625 `(org-document-info ((,class :foreground ,fg-special-cold)))
3626 `(org-document-info-keyword ((,class ,@(modus-vivendi-theme-mixed-fonts)
3627 :foreground ,fg-alt)))
3628 `(org-document-title ((,class :inherit (bold ,modus-theme-variable-pitch) :foreground ,fg-special-cold
3629 ,@(modus-vivendi-theme-scale modus-vivendi-theme-scale-5))))
3630 `(org-done ((,class :box ,bg-region :background ,bg-dim :foreground ,green)))
3631 `(org-drawer ((,class ,@(modus-vivendi-theme-mixed-fonts)
3632 :foreground ,cyan)))
3633 `(org-ellipsis ((,class :foreground nil))) ; inherits from the heading's colour
3634 `(org-footnote ((,class :inherit button :foreground ,blue-alt)))
3635 `(org-formula ((,class ,@(modus-vivendi-theme-mixed-fonts)
3636 :foreground ,red-alt)))
3637 `(org-habit-alert-face ((,class :inherit modus-theme-intense-yellow)))
3638 `(org-habit-alert-future-face ((,class :inherit modus-theme-refine-yellow)))
3639 `(org-habit-clear-face ((,class :inherit modus-theme-intense-magenta)))
3640 `(org-habit-clear-future-face ((,class :inherit modus-theme-refine-magenta)))
3641 `(org-habit-overdue-face ((,class :inherit modus-theme-intense-red)))
3642 `(org-habit-overdue-future-face ((,class :inherit modus-theme-refine-red)))
3643 `(org-habit-ready-face ((,class :inherit modus-theme-intense-blue)))
3644 `(org-habit-ready-future-face ((,class :inherit modus-theme-refine-blue)))
3645 `(org-headline-done ((,class :inherit ,modus-theme-variable-pitch :foreground ,green-nuanced)))
3646 `(org-headline-todo ((,class :inherit ,modus-theme-variable-pitch :foreground ,red-nuanced)))
3647 `(org-hide ((,class :foreground ,bg-main)))
3648 `(org-indent ((,class :inherit (fixed-pitch org-hide))))
3649 `(org-latex-and-related ((,class :foreground ,magenta-refine-fg)))
3650 `(org-level-1 ((,class :inherit modus-theme-heading-1)))
3651 `(org-level-2 ((,class :inherit modus-theme-heading-2)))
3652 `(org-level-3 ((,class :inherit modus-theme-heading-3)))
3653 `(org-level-4 ((,class :inherit modus-theme-heading-4)))
3654 `(org-level-5 ((,class :inherit modus-theme-heading-5)))
3655 `(org-level-6 ((,class :inherit modus-theme-heading-6)))
3656 `(org-level-7 ((,class :inherit modus-theme-heading-7)))
3657 `(org-level-8 ((,class :inherit modus-theme-heading-8)))
3658 `(org-link ((,class :inherit link)))
3659 `(org-list-dt ((,class :inherit bold)))
3660 `(org-macro ((,class :background ,blue-nuanced-bg :foreground ,magenta-alt-other)))
3661 `(org-meta-line ((,class ,@(modus-vivendi-theme-mixed-fonts) :foreground ,fg-alt)))
3662 `(org-mode-line-clock ((,class :foreground ,fg-main)))
3663 `(org-mode-line-clock-overrun ((,class :inherit modus-theme-active-red)))
3664 `(org-priority ((,class :box ,bg-region :background ,bg-dim :foreground ,magenta)))
3665 `(org-property-value ((,class ,@(modus-vivendi-theme-mixed-fonts)
3666 :foreground ,cyan-alt-other)))
3667 `(org-quote ((,class ,@(modus-vivendi-theme-org-block bg-dim)
3668 :foreground ,fg-special-cold :slant ,modus-theme-slant)))
3669 `(org-scheduled ((,class :foreground ,fg-special-warm)))
3670 `(org-scheduled-previously ((,class :foreground ,yellow-alt-other)))
3671 `(org-scheduled-today ((,class :foreground ,magenta-alt-other)))
3672 `(org-sexp-date ((,class :inherit org-date)))
3673 `(org-special-keyword ((,class ,@(modus-vivendi-theme-mixed-fonts)
3674 :foreground ,blue-nuanced)))
3675 `(org-table ((,class ,@(modus-vivendi-theme-mixed-fonts)
3676 :foreground ,fg-special-cold)))
3677 `(org-table-header ((,class :inherit (fixed-pitch modus-theme-intense-neutral))))
3678 `(org-tag ((,class :foreground ,magenta-nuanced)))
3679 `(org-tag-group ((,class :inherit bold :foreground ,cyan-nuanced)))
3680 `(org-target ((,class :underline t)))
3681 `(org-time-grid ((,class :foreground ,fg-unfocused)))
3682 `(org-todo ((,class :box ,bg-region :background ,bg-dim :foreground ,red-alt)))
3683 `(org-upcoming-deadline ((,class :foreground ,red-alt-other)))
3684 `(org-upcoming-distant-deadline ((,class :foreground ,red-nuanced)))
3685 `(org-verbatim ((,class ,@(modus-vivendi-theme-mixed-fonts)
3686 :background ,bg-alt :foreground ,fg-special-calm)))
3687 `(org-verse ((,class :inherit org-quote)))
3688 `(org-warning ((,class :inherit bold :foreground ,red-alt-other)))
3689;;;;; org-journal
3690 `(org-journal-calendar-entry-face ((,class :foreground ,yellow-alt-other :slant ,modus-theme-slant)))
3691 `(org-journal-calendar-scheduled-face ((,class :foreground ,red-alt-other :slant ,modus-theme-slant)))
3692 `(org-journal-highlight ((,class :foreground ,magenta-alt)))
3693;;;;; org-noter
3694 `(org-noter-no-notes-exist-face ((,class :inherit bold :foreground ,red-active)))
3695 `(org-noter-notes-exist-face ((,class :inherit bold :foreground ,green-active)))
3696;;;;; org-pomodoro
3697 `(org-pomodoro-mode-line ((,class :foreground ,red-active)))
3698 `(org-pomodoro-mode-line-break ((,class :foreground ,cyan-active)))
3699 `(org-pomodoro-mode-line-overtime ((,class :inherit bold :foreground ,red-active)))
3700;;;;; org-recur
3701 `(org-recur ((,class :foreground ,magenta-active)))
3702;;;;; org-roam
3703 `(org-roam-link ((,class :inherit button :foreground ,green)))
3704 `(org-roam-link-current ((,class :inherit button :foreground ,green-alt)))
3705 `(org-roam-link-invalid ((,class :inherit button :foreground ,red)))
3706 `(org-roam-link-shielded ((,class :inherit button :foreground ,yellow)))
3707 `(org-roam-tag ((,class :foreground ,fg-alt :slant italic)))
3708;;;;; org-superstar
3709 `(org-superstar-item ((,class :foreground ,fg-main)))
3710 `(org-superstar-leading ((,class :foreground ,fg-whitespace)))
3711;;;;; org-table-sticky-header
3712 `(org-table-sticky-header-face ((,class :inherit modus-theme-intense-neutral)))
3713;;;;; org-treescope
3714 `(org-treescope-faces--markerinternal-midday ((,class :inherit modus-theme-intense-blue)))
3715 `(org-treescope-faces--markerinternal-range ((,class :inherit modus-theme-special-mild)))
3716;;;;; origami
3717 `(origami-fold-header-face ((,class :background ,bg-dim :foreground ,fg-dim :box t)))
3718 `(origami-fold-replacement-face ((,class :background ,bg-alt :foreground ,fg-alt)))
3719;;;;; outline-mode
3720 `(outline-1 ((,class :inherit modus-theme-heading-1)))
3721 `(outline-2 ((,class :inherit modus-theme-heading-2)))
3722 `(outline-3 ((,class :inherit modus-theme-heading-3)))
3723 `(outline-4 ((,class :inherit modus-theme-heading-4)))
3724 `(outline-5 ((,class :inherit modus-theme-heading-5)))
3725 `(outline-6 ((,class :inherit modus-theme-heading-6)))
3726 `(outline-7 ((,class :inherit modus-theme-heading-7)))
3727 `(outline-8 ((,class :inherit modus-theme-heading-8)))
3728;;;;; outline-minor-faces
3729 `(outline-minor-0 ((,class nil)))
3730;;;;; package (M-x list-packages)
3731 `(package-description ((,class :foreground ,fg-special-cold)))
3732 `(package-help-section-name ((,class :inherit bold :foreground ,magenta-alt-other)))
3733 `(package-name ((,class :inherit link)))
3734 `(package-status-avail-obso ((,class :inherit bold :foreground ,red)))
3735 `(package-status-available ((,class :foreground ,fg-special-mild)))
3736 `(package-status-built-in ((,class :foreground ,magenta)))
3737 `(package-status-dependency ((,class :foreground ,magenta-alt-other)))
3738 `(package-status-disabled ((,class :inherit modus-theme-subtle-red)))
3739 `(package-status-external ((,class :foreground ,cyan-alt-other)))
3740 `(package-status-held ((,class :foreground ,yellow-alt)))
3741 `(package-status-incompat ((,class :inherit bold :foreground ,yellow)))
3742 `(package-status-installed ((,class :foreground ,fg-special-warm)))
3743 `(package-status-new ((,class :inherit bold :foreground ,green)))
3744 `(package-status-unsigned ((,class :inherit bold :foreground ,red-alt)))
3745;;;;; page-break-lines
3746 `(page-break-lines ((,class :inherit default :foreground ,fg-window-divider-outer)))
3747;;;;; paradox
3748 `(paradox-archive-face ((,class :foreground ,fg-special-mild)))
3749 `(paradox-comment-face ((,class :foreground ,fg-alt :slant ,modus-theme-slant)))
3750 `(paradox-commit-tag-face ((,class :inherit modus-theme-refine-magenta :box t)))
3751 `(paradox-description-face ((,class :foreground ,fg-special-cold)))
3752 `(paradox-description-face-multiline ((,class :foreground ,fg-special-cold)))
3753 `(paradox-download-face ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,blue-alt-other)))
3754 `(paradox-highlight-face ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,cyan-alt-other)))
3755 `(paradox-homepage-button-face ((,class :foreground ,magenta-alt-other :underline t)))
3756 `(paradox-mode-line-face ((,class :inherit bold :foreground ,cyan-active)))
3757 `(paradox-name-face ((,class :foreground ,blue :underline t)))
3758 `(paradox-star-face ((,class :foreground ,magenta)))
3759 `(paradox-starred-face ((,class :foreground ,magenta-alt)))
3760;;;;; paren-face
3761 `(parenthesis ((,class :foreground ,fg-unfocused)))
3762;;;;; parrot
3763 `(parrot-rotate-rotation-highlight-face ((,class :inherit modus-theme-refine-magenta)))
3764;;;;; pass
3765 `(pass-mode-directory-face ((,class :inherit bold :foreground ,fg-special-cold)))
3766 `(pass-mode-entry-face ((,class :background ,bg-main :foreground ,fg-main)))
3767 `(pass-mode-header-face ((,class :foreground ,fg-special-warm)))
3768;;;;; persp-mode
3769 `(persp-face-lighter-buffer-not-in-persp ((,class :inherit modus-theme-intense-red)))
3770 `(persp-face-lighter-default ((,class :inherit bold :foreground ,blue-active)))
3771 `(persp-face-lighter-nil-persp ((,class :inherit bold :foreground ,fg-active)))
3772;;;;; perspective
3773 `(persp-selected-face ((,class :inherit bold :foreground ,blue-active)))
3774;;;;; phi-grep
3775 `(phi-grep-heading-face ((,class :inherit bold :foreground ,red-alt
3776 ,@(modus-vivendi-theme-scale modus-vivendi-theme-scale-4))))
3777 `(phi-grep-line-number-face ((,class :foreground ,fg-special-warm)))
3778 `(phi-grep-match-face ((,class :inherit modus-theme-special-calm)))
3779 `(phi-grep-modified-face ((,class :inherit modus-theme-refine-yellow)))
3780 `(phi-grep-overlay-face ((,class :inherit modus-theme-refine-blue)))
3781;;;;; phi-search
3782 `(phi-replace-preview-face ((,class :inherit modus-theme-intense-magenta)))
3783 `(phi-search-failpart-face ((,class :inherit modus-theme-refine-red)))
3784 `(phi-search-match-face ((,class :inherit modus-theme-refine-cyan)))
3785 `(phi-search-selection-face ((,class :inherit (modus-theme-intense-green bold))))
3786;;;;; pkgbuild-mode
3787 `(pkgbuild-error-face ((,class :underline ,fg-lang-error)))
3788;;;;; pomidor
3789 `(pomidor-break-face ((,class :foreground ,blue-alt-other)))
3790 `(pomidor-overwork-face ((,class :foreground ,red-alt-other)))
3791 `(pomidor-skip-face ((,class :foreground ,fg-alt :slant ,modus-theme-slant)))
3792 `(pomidor-work-face ((,class :foreground ,green-alt-other)))
3793;;;;; powerline
3794 `(powerline-active0 ((,class :background ,bg-main :foreground ,blue-faint :inverse-video t)))
3795 `(powerline-active1 ((,class :background ,blue-nuanced-bg :foreground ,blue-nuanced)))
3796 `(powerline-active2 ((,class :background ,bg-active :foreground ,fg-active)))
3797 `(powerline-inactive0 ((,class :background ,bg-special-cold :foreground ,fg-special-cold)))
3798 `(powerline-inactive1 ((,class :background ,bg-dim :foreground ,fg-inactive)))
3799 `(powerline-inactive2 ((,class :background ,bg-inactive :foreground ,fg-inactive)))
3800;;;;; powerline-evil
3801 `(powerline-evil-base-face ((,class :background ,fg-main :foreground ,bg-main)))
3802 `(powerline-evil-emacs-face ((,class :inherit modus-theme-active-magenta)))
3803 `(powerline-evil-insert-face ((,class :inherit modus-theme-active-green)))
3804 `(powerline-evil-motion-face ((,class :inherit modus-theme-active-blue)))
3805 `(powerline-evil-normal-face ((,class :background ,fg-alt :foreground ,bg-main)))
3806 `(powerline-evil-operator-face ((,class :inherit modus-theme-active-yellow)))
3807 `(powerline-evil-replace-face ((,class :inherit modus-theme-active-red)))
3808 `(powerline-evil-visual-face ((,class :inherit modus-theme-active-cyan)))
3809;;;;; proced
3810 `(proced-mark ((,class :inherit modus-theme-mark-symbol)))
3811 `(proced-marked ((,class :inherit modus-theme-mark-alt)))
3812 `(proced-sort-header ((,class :inherit bold :foreground ,fg-special-calm :underline t)))
3813;;;;; prodigy
3814 `(prodigy-green-face ((,class :foreground ,green)))
3815 `(prodigy-red-face ((,class :foreground ,red)))
3816 `(prodigy-yellow-face ((,class :foreground ,yellow)))
3817;;;;; racket-mode
3818 `(racket-debug-break-face ((,class :inherit modus-theme-intense-red)))
3819 `(racket-debug-locals-face ((,class :box (:line-width -1 :color nil)
3820 :foreground ,green-alt-other)))
3821 `(racket-debug-result-face ((,class :inherit bold :box (:line-width -1 :color nil)
3822 :foreground ,green)))
3823 `(racket-here-string-face ((,class :foreground ,blue-alt)))
3824 `(racket-keyword-argument-face ((,class :foreground ,red-alt)))
3825 `(racket-logger-config-face ((,class :foreground ,fg-alt :slant ,modus-theme-slant)))
3826 `(racket-logger-debug-face ((,class :foreground ,blue-alt-other)))
3827 `(racket-logger-info-face ((,class :foreground ,fg-lang-note)))
3828 `(racket-logger-topic-face ((,class :foreground ,magenta :slant ,modus-theme-slant)))
3829 `(racket-selfeval-face ((,class :foreground ,green-alt)))
3830 `(racket-xp-error-face
3831 ((,(append '((supports :underline (:style wave))) class)
3832 :underline (:color ,fg-lang-error :style wave))
3833 (,class :foreground ,fg-lang-error :underline t)))
3834;;;;; rainbow-blocks
3835 `(rainbow-blocks-depth-1-face ((,class :foreground ,magenta-alt-other)))
3836 `(rainbow-blocks-depth-2-face ((,class :foreground ,blue)))
3837 `(rainbow-blocks-depth-3-face ((,class :foreground ,magenta-alt)))
3838 `(rainbow-blocks-depth-4-face ((,class :foreground ,green)))
3839 `(rainbow-blocks-depth-5-face ((,class :foreground ,magenta)))
3840 `(rainbow-blocks-depth-6-face ((,class :foreground ,cyan)))
3841 `(rainbow-blocks-depth-7-face ((,class :foreground ,yellow)))
3842 `(rainbow-blocks-depth-8-face ((,class :foreground ,cyan-alt)))
3843 `(rainbow-blocks-depth-9-face ((,class :foreground ,red-alt)))
3844 `(rainbow-blocks-unmatched-face ((,class :foreground ,red)))
3845;;;;; rainbow-identifiers
3846 `(rainbow-identifiers-identifier-1 ((,class :foreground ,green-alt-other)))
3847 `(rainbow-identifiers-identifier-2 ((,class :foreground ,magenta-alt-other)))
3848 `(rainbow-identifiers-identifier-3 ((,class :foreground ,cyan-alt-other)))
3849 `(rainbow-identifiers-identifier-4 ((,class :foreground ,yellow-alt-other)))
3850 `(rainbow-identifiers-identifier-5 ((,class :foreground ,blue-alt-other)))
3851 `(rainbow-identifiers-identifier-6 ((,class :foreground ,green-alt)))
3852 `(rainbow-identifiers-identifier-7 ((,class :foreground ,magenta-alt)))
3853 `(rainbow-identifiers-identifier-8 ((,class :foreground ,cyan-alt)))
3854 `(rainbow-identifiers-identifier-9 ((,class :foreground ,yellow-alt)))
3855 `(rainbow-identifiers-identifier-10 ((,class :foreground ,green)))
3856 `(rainbow-identifiers-identifier-11 ((,class :foreground ,magenta)))
3857 `(rainbow-identifiers-identifier-12 ((,class :foreground ,cyan)))
3858 `(rainbow-identifiers-identifier-13 ((,class :foreground ,yellow)))
3859 `(rainbow-identifiers-identifier-14 ((,class :foreground ,blue-alt)))
3860 `(rainbow-identifiers-identifier-15 ((,class :foreground ,red-alt)))
3861;;;;; rainbow-delimiters
3862 `(rainbow-delimiters-base-face-error ((,class :foreground ,red)))
3863 `(rainbow-delimiters-base-face ((,class :foreground ,fg-main)))
3864 `(rainbow-delimiters-depth-1-face ((,class :foreground ,green-alt-other)))
3865 `(rainbow-delimiters-depth-2-face ((,class :foreground ,magenta-alt-other)))
3866 `(rainbow-delimiters-depth-3-face ((,class :foreground ,cyan-alt-other)))
3867 `(rainbow-delimiters-depth-4-face ((,class :foreground ,yellow-alt-other)))
3868 `(rainbow-delimiters-depth-5-face ((,class :foreground ,blue-alt-other)))
3869 `(rainbow-delimiters-depth-6-face ((,class :foreground ,green-alt)))
3870 `(rainbow-delimiters-depth-7-face ((,class :foreground ,magenta-alt)))
3871 `(rainbow-delimiters-depth-8-face ((,class :foreground ,cyan-alt)))
3872 `(rainbow-delimiters-depth-9-face ((,class :foreground ,yellow-alt)))
3873 `(rainbow-delimiters-mismatched-face ((,class :inherit bold :foreground ,red-alt)))
3874 `(rainbow-delimiters-unmatched-face ((,class :inherit bold :foreground ,red)))
3875;;;;; rcirc
3876 `(rcirc-bright-nick ((,class :inherit bold :foreground ,magenta-alt)))
3877 `(rcirc-dim-nick ((,class :foreground ,fg-alt)))
3878 `(rcirc-my-nick ((,class :inherit bold :foreground ,magenta)))
3879 `(rcirc-nick-in-message ((,class :foreground ,magenta-alt-other)))
3880 `(rcirc-nick-in-message-full-line ((,class :inherit bold :foreground ,fg-special-mild)))
3881 `(rcirc-other-nick ((,class :inherit bold :foreground ,fg-special-cold)))
3882 `(rcirc-prompt ((,class :inherit bold :foreground ,cyan-alt-other)))
3883 `(rcirc-server ((,class :foreground ,fg-unfocused)))
3884 `(rcirc-timestamp ((,class :foreground ,blue-nuanced)))
3885 `(rcirc-url ((,class :foreground ,blue :underline t)))
3886;;;;; regexp-builder (re-builder)
3887 `(reb-match-0 ((,class :inherit modus-theme-intense-blue)))
3888 `(reb-match-1 ((,class :inherit modus-theme-intense-magenta)))
3889 `(reb-match-2 ((,class :inherit modus-theme-intense-green)))
3890 `(reb-match-3 ((,class :inherit modus-theme-intense-red)))
3891 `(reb-regexp-grouping-backslash ((,class :inherit bold :foreground ,fg-escape-char-backslash)))
3892 `(reb-regexp-grouping-construct ((,class :inherit bold :foreground ,fg-escape-char-construct)))
3893;;;;; rg (rg.el)
3894 `(rg-column-number-face ((,class :foreground ,magenta-alt-other)))
3895 `(rg-context-face ((,class :foreground ,fg-unfocused)))
3896 `(rg-error-face ((,class :inherit bold :foreground ,red)))
3897 `(rg-file-tag-face ((,class :foreground ,fg-special-cold)))
3898 `(rg-filename-face ((,class :inherit bold :foreground ,fg-special-cold)))
3899 `(rg-line-number-face ((,class :foreground ,fg-special-warm)))
3900 `(rg-literal-face ((,class :foreground ,blue-alt)))
3901 `(rg-match-face ((,class :inherit modus-theme-special-calm)))
3902 `(rg-regexp-face ((,class :foreground ,magenta-active)))
3903 `(rg-toggle-off-face ((,class :inherit bold :foreground ,fg-inactive)))
3904 `(rg-toggle-on-face ((,class :inherit bold :foreground ,cyan-active)))
3905 `(rg-warning-face ((,class :inherit bold :foreground ,yellow)))
3906;;;;; ripgrep
3907 `(ripgrep-context-face ((,class :foreground ,fg-unfocused)))
3908 `(ripgrep-error-face ((,class :inherit bold :foreground ,red)))
3909 `(ripgrep-hit-face ((,class :foreground ,cyan)))
3910 `(ripgrep-match-face ((,class :inherit modus-theme-special-calm)))
3911;;;;; rmail
3912 `(rmail-header-name ((,class :foreground ,cyan-alt-other)))
3913 `(rmail-highlight ((,class :inherit bold :foreground ,magenta-alt)))
3914;;;;; ruler-mode
3915 `(ruler-mode-column-number ((,class :inherit (ruler-mode-default bold) :foreground ,fg-main)))
3916 `(ruler-mode-comment-column ((,class :inherit ruler-mode-default :foreground ,red-active)))
3917 `(ruler-mode-current-column ((,class :inherit ruler-mode-default :foreground ,cyan-active :box t)))
3918 `(ruler-mode-default ((,class :background ,bg-inactive :foreground ,fg-inactive)))
3919 `(ruler-mode-fill-column ((,class :inherit ruler-mode-default :foreground ,green-active)))
3920 `(ruler-mode-fringes ((,class :inherit ruler-mode-default :foreground ,blue-active)))
3921 `(ruler-mode-goal-column ((,class :inherit ruler-mode-default :foreground ,magenta-active)))
3922 `(ruler-mode-margins ((,class :inherit ruler-mode-default :foreground ,bg-main)))
3923 `(ruler-mode-pad ((,class :background ,bg-active :foreground ,fg-inactive)))
3924 `(ruler-mode-tab-stop ((,class :inherit ruler-mode-default :foreground ,yellow-active)))
3925;;;;; sallet
3926 `(sallet-buffer-compressed ((,class :foreground ,yellow-nuanced :slant italic)))
3927 `(sallet-buffer-default-directory ((,class :foreground ,cyan-nuanced)))
3928 `(sallet-buffer-directory ((,class :foreground ,blue-nuanced)))
3929 `(sallet-buffer-help ((,class :foreground ,fg-special-cold)))
3930 `(sallet-buffer-modified ((,class :foreground ,yellow-alt-other :slant italic)))
3931 `(sallet-buffer-ordinary ((,class :foreground ,fg-main)))
3932 `(sallet-buffer-read-only ((,class :foreground ,yellow-alt)))
3933 `(sallet-buffer-size ((,class :foreground ,fg-special-calm)))
3934 `(sallet-buffer-special ((,class :foreground ,magenta-alt-other)))
3935 `(sallet-flx-match ((,class ,@(modus-vivendi-theme-extra-completions
3936 'modus-theme-subtle-cyan
3937 'modus-theme-refine-cyan
3938 'modus-theme-nuanced-cyan
3939 cyan-alt-other))))
3940 `(sallet-recentf-buffer-name ((,class :foreground ,blue-nuanced)))
3941 `(sallet-recentf-file-path ((,class :foreground ,fg-special-mild)))
3942 `(sallet-regexp-match ((,class ,@(modus-vivendi-theme-extra-completions
3943 'modus-theme-subtle-magenta
3944 'modus-theme-refine-magenta
3945 'modus-theme-nuanced-magenta
3946 magenta-alt-other))))
3947 `(sallet-source-header ((,class :inherit bold :foreground ,red-alt
3948 ,@(modus-vivendi-theme-scale modus-vivendi-theme-scale-4))))
3949 `(sallet-substring-match ((,class ,@(modus-vivendi-theme-extra-completions
3950 'modus-theme-subtle-blue
3951 'modus-theme-refine-blue
3952 'modus-theme-nuanced-blue
3953 blue-alt-other))))
3954;;;;; selectrum
3955 `(selectrum-current-candidate
3956 ((,class :inherit bold :foreground ,fg-main :underline ,fg-main
3957 :background ,@(pcase modus-vivendi-theme-completions
3958 ('opinionated (list bg-active))
3959 (_ (list bg-inactive))))))
3960 `(selectrum-primary-highlight ((,class :inherit bold
3961 ,@(modus-vivendi-theme-standard-completions
3962 magenta-alt magenta-nuanced-bg
3963 magenta-refine-bg magenta-refine-fg))))
3964 `(selectrum-secondary-highlight ((,class :inherit bold
3965 ,@(modus-vivendi-theme-standard-completions
3966 cyan-alt-other cyan-nuanced-bg
3967 cyan-refine-bg cyan-refine-fg))))
3968;;;;; semantic
3969 `(semantic-complete-inline-face ((,class :foreground ,fg-special-warm :underline t)))
3970 `(semantic-decoration-on-private-members-face ((,class :inherit modus-theme-refine-cyan)))
3971 `(semantic-decoration-on-protected-members-face ((,class :background ,bg-dim)))
3972 `(semantic-highlight-edits-face ((,class :background ,bg-alt)))
3973 `(semantic-highlight-func-current-tag-face ((,class :background ,bg-alt)))
3974 `(semantic-idle-symbol-highlight ((,class :inherit modus-theme-special-mild)))
3975 `(semantic-tag-boundary-face ((,class :overline ,blue-intense)))
3976 `(semantic-unmatched-syntax-face ((,class :underline ,fg-lang-error)))
3977;;;;; sesman
3978 `(sesman-browser-button-face ((,class :foreground ,blue-alt-other :underline t)))
3979 `(sesman-browser-highligh-face ((,class :inherit modus-theme-subtle-blue)))
3980 `(sesman-buffer-face ((,class :foreground ,magenta)))
3981 `(sesman-directory-face ((,class :inherit bold :foreground ,blue)))
3982 `(sesman-project-face ((,class :inherit bold :foreground ,magenta-alt-other)))
3983;;;;; shell-script-mode
3984 `(sh-heredoc ((,class :foreground ,blue-alt)))
3985 `(sh-quoted-exec ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,magenta-alt)))
3986;;;;; show-paren-mode
3987 `(show-paren-match ((,class ,@(modus-vivendi-theme-paren bg-paren-match
3988 bg-paren-match-intense)
3989 :foreground ,fg-main)))
3990 `(show-paren-match-expression ((,class :inherit modus-theme-special-calm)))
3991 `(show-paren-mismatch ((,class :inherit modus-theme-intense-red)))
3992;;;;; side-notes
3993 `(side-notes ((,class :background ,bg-dim :foreground ,fg-dim)))
3994;;;;; skewer-mode
3995 `(skewer-error-face ((,class :foreground ,red :underline t)))
3996;;;;; smart-mode-line
3997 `(sml/charging ((,class :foreground ,green-active)))
3998 `(sml/discharging ((,class :foreground ,red-active)))
3999 `(sml/filename ((,class :inherit bold :foreground ,blue-active)))
4000 `(sml/folder ((,class :foreground ,fg-active)))
4001 `(sml/git ((,class :inherit bold :foreground ,green-active)))
4002 `(sml/global ((,class :foreground ,fg-active)))
4003 `(sml/line-number ((,class :inherit sml/global)))
4004 `(sml/minor-modes ((,class :inherit sml/global)))
4005 `(sml/modes ((,class :inherit bold :foreground ,fg-active)))
4006 `(sml/modified ((,class :inherit bold :foreground ,magenta-active)))
4007 `(sml/mule-info ((,class :inherit sml/global)))
4008 `(sml/name-filling ((,class :foreground ,yellow-active)))
4009 `(sml/not-modified ((,class :inherit sml/global)))
4010 `(sml/numbers-separator ((,class :inherit sml/global)))
4011 `(sml/outside-modified ((,class :inherit modus-theme-intense-red)))
4012 `(sml/position-percentage ((,class :inherit sml/global)))
4013 `(sml/prefix ((,class :foreground ,green-active)))
4014 `(sml/process ((,class :inherit sml/prefix)))
4015 `(sml/projectile ((,class :inherit sml/git)))
4016 `(sml/read-only ((,class :inherit bold :foreground ,cyan-active)))
4017 `(sml/remote ((,class :inherit sml/global)))
4018 `(sml/sudo ((,class :inherit modus-theme-subtle-red)))
4019 `(sml/time ((,class :inherit sml/global)))
4020 `(sml/vc ((,class :inherit sml/git)))
4021 `(sml/vc-edited ((,class :inherit bold :foreground ,yellow-active)))
4022;;;;; smartparens
4023 `(sp-pair-overlay-face ((,class :inherit modus-theme-special-warm)))
4024 `(sp-show-pair-enclosing ((,class :inherit modus-theme-special-mild)))
4025 `(sp-show-pair-match-face ((,class ,@(modus-vivendi-theme-paren bg-paren-match
4026 bg-paren-match-intense)
4027 :foreground ,fg-main)))
4028 `(sp-show-pair-mismatch-face ((,class :inherit modus-theme-intense-red)))
4029 `(sp-wrap-overlay-closing-pair ((,class :inherit sp-pair-overlay-face)))
4030 `(sp-wrap-overlay-face ((,class :inherit sp-pair-overlay-face)))
4031 `(sp-wrap-overlay-opening-pair ((,class :inherit sp-pair-overlay-face)))
4032 `(sp-wrap-tag-overlay-face ((,class :inherit sp-pair-overlay-face)))
4033;;;;; smerge
4034 `(smerge-base ((,class :inherit modus-theme-diff-changed)))
4035 `(smerge-lower ((,class :inherit modus-theme-diff-added)))
4036 `(smerge-markers ((,class :background ,bg-diff-neutral-2 :foreground ,fg-diff-neutral-2)))
4037 `(smerge-refined-added ((,class :inherit modus-theme-diff-refine-added)))
4038 `(smerge-refined-changed ((,class)))
4039 `(smerge-refined-removed ((,class :inherit modus-theme-diff-refine-removed)))
4040 `(smerge-upper ((,class :inherit modus-theme-diff-removed)))
4041;;;;; spaceline
4042 `(spaceline-evil-emacs ((,class :inherit modus-theme-active-magenta)))
4043 `(spaceline-evil-insert ((,class :inherit modus-theme-active-green)))
4044 `(spaceline-evil-motion ((,class :inherit modus-theme-active-blue)))
4045 `(spaceline-evil-normal ((,class :background ,fg-alt :foreground ,bg-alt)))
4046 `(spaceline-evil-replace ((,class :inherit modus-theme-active-red)))
4047 `(spaceline-evil-visual ((,class :inherit modus-theme-active-cyan)))
4048 `(spaceline-flycheck-error ((,class :foreground ,red-active)))
4049 `(spaceline-flycheck-info ((,class :foreground ,cyan-active)))
4050 `(spaceline-flycheck-warning ((,class :foreground ,yellow-active)))
4051 `(spaceline-highlight-face ((,class :inherit modus-theme-fringe-blue)))
4052 `(spaceline-modified ((,class :inherit modus-theme-fringe-magenta)))
4053 `(spaceline-python-venv ((,class :foreground ,magenta-active)))
4054 `(spaceline-read-only ((,class :inherit modus-theme-fringe-red)))
4055 `(spaceline-unmodified ((,class :inherit modus-theme-fringe-cyan)))
4056;;;;; speedbar
4057 `(speedbar-button-face ((,class :inherit link)))
4058 `(speedbar-directory-face ((,class :inherit bold :foreground ,blue)))
4059 `(speedbar-file-face ((,class :foreground ,fg-main)))
4060 `(speedbar-highlight-face ((,class :inherit modus-theme-subtle-blue)))
4061 `(speedbar-selected-face ((,class :inherit bold :foreground ,cyan)))
4062 `(speedbar-separator-face ((,class :inherit modus-theme-intense-neutral)))
4063 `(speedbar-tag-face ((,class :foreground ,yellow-alt-other)))
4064;;;;; spell-fu
4065 `(spell-fu-incorrect-face
4066 ((,(append '((supports :underline (:style wave))) class)
4067 :foreground ,fg-lang-error :underline (:style wave))
4068 (,class :foreground ,fg-lang-error :underline t)))
4069;;;;; stripes
4070 `(stripes ((,class :inherit modus-theme-hl-line)))
4071;;;;; success
4072 `(suggest-heading ((,class :inherit bold :foreground ,yellow-alt-other)))
4073;;;;; switch-window
4074 `(switch-window-background ((,class :background ,bg-dim)))
4075 `(switch-window-label ((,class :height 3.0 :foreground ,blue-intense)))
4076;;;;; swiper
4077 `(swiper-background-match-face-1 ((,class :inherit modus-theme-subtle-neutral)))
4078 `(swiper-background-match-face-2 ((,class :inherit modus-theme-subtle-cyan)))
4079 `(swiper-background-match-face-3 ((,class :inherit modus-theme-subtle-magenta)))
4080 `(swiper-background-match-face-4 ((,class :inherit modus-theme-subtle-green)))
4081 `(swiper-line-face ((,class ,@(and (>= emacs-major-version 27) '(:extend t))
4082 :inherit modus-theme-special-cold)))
4083 `(swiper-match-face-1 ((,class :inherit swiper-line-face)))
4084 `(swiper-match-face-2 ((,class :inherit swiper-line-face)))
4085 `(swiper-match-face-3 ((,class :inherit swiper-line-face)))
4086 `(swiper-match-face-4 ((,class :inherit swiper-line-face)))
4087;;;;; swoop
4088 `(swoop-face-header-format-line ((,class :inherit bold :foreground ,red-alt
4089 ,@(modus-vivendi-theme-scale modus-vivendi-theme-scale-3))))
4090 `(swoop-face-line-buffer-name ((,class :inherit bold :foreground ,blue-alt
4091 ,@(modus-vivendi-theme-scale modus-vivendi-theme-scale-4))))
4092 `(swoop-face-line-number ((,class :foreground ,fg-special-warm)))
4093 `(swoop-face-target-line ((,class :inherit modus-theme-intense-blue
4094 ,@(and (>= emacs-major-version 27) '(:extend t)))))
4095 `(swoop-face-target-words ((,class :inherit modus-theme-refine-cyan)))
4096;;;;; sx
4097 `(sx-inbox-item-type ((,class :foreground ,magenta-alt-other)))
4098 `(sx-inbox-item-type-unread ((,class :inherit (sx-inbox-item-type bold))))
4099 `(sx-question-list-answers ((,class :foreground ,green)))
4100 `(sx-question-list-answers-accepted ((,class :box t :foreground ,green)))
4101 `(sx-question-list-bounty ((,class :inherit bold :background ,bg-alt :foreground ,yellow)))
4102 `(sx-question-list-date ((,class :foreground ,fg-special-cold)))
4103 `(sx-question-list-favorite ((,class :inherit bold :foreground ,fg-special-warm)))
4104 `(sx-question-list-parent ((,class :foreground ,fg-main)))
4105 `(sx-question-list-read-question ((,class :foreground ,fg-alt)))
4106 `(sx-question-list-score ((,class :foreground ,fg-special-mild)))
4107 `(sx-question-list-score-upvoted ((,class :inherit (sx-question-list-score bold))))
4108 `(sx-question-list-unread-question ((,class :inherit bold :foreground ,fg-main)))
4109 `(sx-question-mode-accepted ((,class :inherit bold :height 1.3 :foreground ,green)))
4110 `(sx-question-mode-closed ((,class :inherit modus-theme-active-yellow :box (:line-width 2 :color nil))))
4111 `(sx-question-mode-closed-reason ((,class :box (:line-width 2 :color nil) :foreground ,fg-main)))
4112 `(sx-question-mode-content-face ((,class :background ,bg-dim)))
4113 `(sx-question-mode-date ((,class :foreground ,blue)))
4114 `(sx-question-mode-header ((,class :inherit bold :foreground ,cyan)))
4115 `(sx-question-mode-kbd-tag ((,class :inherit bold :height 0.9 :box (:line-width 3 :color ,fg-main :style released-button) :foreground ,fg-main)))
4116 `(sx-question-mode-score ((,class :foreground ,fg-dim)))
4117 `(sx-question-mode-score-downvoted ((,class :foreground ,yellow)))
4118 `(sx-question-mode-score-upvoted ((,class :inherit bold :foreground ,magenta)))
4119 `(sx-question-mode-title ((,class :inherit bold :foreground ,fg-main)))
4120 `(sx-question-mode-title-comments ((,class :inherit bold :foreground ,fg-alt)))
4121 `(sx-tag ((,class :foreground ,magenta-alt)))
4122 `(sx-user-name ((,class :foreground ,blue-alt)))
4123 `(sx-user-reputation ((,class :foreground ,fg-alt)))
4124;;;;; symbol-overlay
4125 `(symbol-overlay-default-face ((,class :inherit modus-theme-special-warm)))
4126 `(symbol-overlay-face-1 ((,class :inherit modus-theme-intense-blue)))
4127 `(symbol-overlay-face-2 ((,class :inherit modus-theme-refine-magenta)))
4128 `(symbol-overlay-face-3 ((,class :inherit modus-theme-intense-yellow)))
4129 `(symbol-overlay-face-4 ((,class :inherit modus-theme-intense-magenta)))
4130 `(symbol-overlay-face-5 ((,class :inherit modus-theme-intense-red)))
4131 `(symbol-overlay-face-6 ((,class :inherit modus-theme-refine-red)))
4132 `(symbol-overlay-face-7 ((,class :inherit modus-theme-intense-cyan)))
4133 `(symbol-overlay-face-8 ((,class :inherit modus-theme-refine-cyan)))
4134;;;;; syslog-mode
4135 `(syslog-debug ((,class :inherit bold :foreground ,cyan-alt-other)))
4136 `(syslog-error ((,class :inherit bold :foreground ,red)))
4137 `(syslog-file ((,class :inherit bold :foreground ,fg-special-cold)))
4138 `(syslog-hide ((,class :background ,bg-main :foreground ,fg-main)))
4139 `(syslog-hour ((,class :inherit bold :foreground ,magenta-alt-other)))
4140 `(syslog-info ((,class :inherit bold :foreground ,blue-alt-other)))
4141 `(syslog-ip ((,class :inherit bold :foreground ,fg-special-mild :underline t)))
4142 `(syslog-su ((,class :inherit bold :foreground ,red-alt)))
4143 `(syslog-warn ((,class :inherit bold :foreground ,yellow)))
4144;;;;; table (built-in table.el)
4145 `(table-cell ((,class :background ,blue-nuanced-bg)))
4146;;;;; telephone-line
4147 `(telephone-line-accent-active ((,class :background ,fg-inactive :foreground ,bg-inactive)))
4148 `(telephone-line-accent-inactive ((,class :background ,bg-active :foreground ,fg-active)))
4149 `(telephone-line-error ((,class :inherit bold :foreground ,red-active)))
4150 `(telephone-line-evil ((,class :foreground ,fg-main)))
4151 `(telephone-line-evil-emacs ((,class :inherit telephone-line-evil :background ,magenta-intense-bg)))
4152 `(telephone-line-evil-insert ((,class :inherit telephone-line-evil :background ,green-intense-bg)))
4153 `(telephone-line-evil-motion ((,class :inherit telephone-line-evil :background ,yellow-intense-bg)))
4154 `(telephone-line-evil-normal ((,class :inherit telephone-line-evil :background ,bg-alt)))
4155 `(telephone-line-evil-operator ((,class :inherit telephone-line-evil :background ,yellow-subtle-bg)))
4156 `(telephone-line-evil-replace ((,class :inherit telephone-line-evil :background ,red-intense-bg)))
4157 `(telephone-line-evil-visual ((,class :inherit telephone-line-evil :background ,cyan-intense-bg)))
4158 `(telephone-line-projectile ((,class :foreground ,cyan-active)))
4159 `(telephone-line-unimportant ((,class :foreground ,fg-inactive)))
4160 `(telephone-line-warning ((,class :inherit bold :foreground ,yellow-active)))
4161;;;;; term
4162 `(term ((,class :background ,bg-main :foreground ,fg-main)))
4163 `(term-bold ((,class :inherit bold)))
4164 `(term-color-blue ((,class :background ,blue :foreground ,blue)))
4165 `(term-color-cyan ((,class :background ,cyan :foreground ,cyan)))
4166 `(term-color-green ((,class :background ,green :foreground ,green)))
4167 `(term-color-magenta ((,class :background ,magenta :foreground ,magenta)))
4168 `(term-color-red ((,class :background ,red :foreground ,red)))
4169 `(term-color-yellow ((,class :background ,yellow :foreground ,yellow)))
4170 `(term-underline ((,class :underline t)))
4171;;;;; tomatinho
4172 `(tomatinho-ok-face ((,class :foreground ,blue-intense)))
4173 `(tomatinho-pause-face ((,class :foreground ,yellow-intense)))
4174 `(tomatinho-reset-face ((,class :foreground ,fg-alt)))
4175;;;;; transient
4176 `(transient-active-infix ((,class :inherit modus-theme-special-mild)))
4177 `(transient-amaranth ((,class :inherit bold :foreground ,yellow)))
4178 `(transient-argument ((,class :inherit bold :foreground ,red-alt)))
4179 `(transient-blue ((,class :inherit bold :foreground ,blue)))
4180 `(transient-disabled-suffix ((,class :inherit modus-theme-intense-red)))
4181 `(transient-enabled-suffix ((,class :inherit modus-theme-intense-green)))
4182 `(transient-heading ((,class :inherit bold :foreground ,fg-main)))
4183 `(transient-inactive-argument ((,class :foreground ,fg-alt)))
4184 `(transient-inactive-value ((,class :foreground ,fg-alt)))
4185 `(transient-key ((,class :inherit bold :foreground ,blue)))
4186 `(transient-mismatched-key ((,class :underline t)))
4187 `(transient-nonstandard-key ((,class :underline t)))
4188 `(transient-pink ((,class :inherit bold :foreground ,magenta)))
4189 `(transient-red ((,class :inherit bold :foreground ,red-intense)))
4190 `(transient-teal ((,class :inherit bold :foreground ,cyan-alt-other)))
4191 `(transient-unreachable ((,class :foreground ,fg-unfocused)))
4192 `(transient-unreachable-key ((,class :foreground ,fg-unfocused)))
4193 `(transient-value ((,class :foreground ,magenta-alt)))
4194;;;;; trashed
4195 `(trashed-deleted ((,class :inherit modus-theme-mark-del)))
4196 `(trashed-directory ((,class :foreground ,blue)))
4197 `(trashed-mark ((,class :inherit modus-theme-mark-symbol)))
4198 `(trashed-marked ((,class :inherit modus-theme-mark-alt)))
4199 `(trashed-restored ((,class :inherit modus-theme-mark-sel)))
4200 `(trashed-symlink ((,class :inherit button :foreground ,cyan-alt)))
4201;;;;; treemacs
4202 `(treemacs-directory-collapsed-face ((,class :foreground ,magenta-alt)))
4203 `(treemacs-directory-face ((,class :inherit dired-directory)))
4204 `(treemacs-file-face ((,class :foreground ,fg-main)))
4205 `(treemacs-fringe-indicator-face ((,class :foreground ,fg-main)))
4206 `(treemacs-git-added-face ((,class :foreground ,green-intense)))
4207 `(treemacs-git-conflict-face ((,class :inherit (modus-theme-intense-red bold))))
4208 `(treemacs-git-ignored-face ((,class :foreground ,fg-alt)))
4209 `(treemacs-git-modified-face ((,class :foreground ,yellow-alt-other)))
4210 `(treemacs-git-renamed-face ((,class :foreground ,cyan-alt-other)))
4211 `(treemacs-git-unmodified-face ((,class :foreground ,fg-main)))
4212 `(treemacs-git-untracked-face ((,class :foreground ,red-alt-other)))
4213 `(treemacs-help-column-face ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,magenta-alt-other :underline t)))
4214 `(treemacs-help-title-face ((,class :foreground ,blue-alt-other)))
4215 `(treemacs-on-failure-pulse-face ((,class :inherit modus-theme-intense-red)))
4216 `(treemacs-on-success-pulse-face ((,class :inherit modus-theme-intense-green)))
4217 `(treemacs-root-face ((,class :inherit bold :foreground ,blue-alt-other :height 1.2 :underline t)))
4218 `(treemacs-root-remote-disconnected-face ((,class :inherit treemacs-root-remote-face :foreground ,yellow)))
4219 `(treemacs-root-remote-face ((,class :inherit treemacs-root-face :foreground ,magenta)))
4220 `(treemacs-root-remote-unreadable-face ((,class :inherit treemacs-root-unreadable-face)))
4221 `(treemacs-root-unreadable-face ((,class :inherit treemacs-root-face :strike-through t)))
4222 `(treemacs-tags-face ((,class :foreground ,blue-alt)))
4223 `(treemacs-tags-face ((,class :foreground ,magenta-alt)))
4224;;;;; tty-menu
4225 `(tty-menu-disabled-face ((,class :background ,bg-alt :foreground ,fg-alt)))
4226 `(tty-menu-enabled-face ((,class :inherit bold :background ,bg-alt :foreground ,fg-main)))
4227 `(tty-menu-selected-face ((,class :inherit modus-theme-intense-blue)))
4228;;;;; tuareg
4229 `(caml-types-def-face ((,class :inherit modus-theme-subtle-red)))
4230 `(caml-types-expr-face ((,class :inherit modus-theme-subtle-green)))
4231 `(caml-types-occ-face ((,class :inherit modus-theme-subtle-green)))
4232 `(caml-types-scope-face ((,class :inherit modus-theme-subtle-blue)))
4233 `(caml-types-typed-face ((,class :inherit modus-theme-subtle-magenta)))
4234 `(tuareg-font-double-semicolon-face ((,class ,@(modus-vivendi-theme-syntax-foreground
4235 red-alt red-alt-faint))))
4236 `(tuareg-font-lock-attribute-face ((,class ,@(modus-vivendi-theme-syntax-foreground
4237 magenta magenta-faint))))
4238 `(tuareg-font-lock-constructor-face ((,class :foreground ,fg-main)))
4239 `(tuareg-font-lock-error-face ((,class :inherit (modus-theme-intense-red bold))))
4240 `(tuareg-font-lock-extension-node-face ((,class :background ,bg-alt :foreground ,magenta)))
4241 `(tuareg-font-lock-governing-face ((,class :inherit bold :foreground ,fg-main)))
4242 `(tuareg-font-lock-infix-extension-node-face ((,class ,@(modus-vivendi-theme-syntax-foreground
4243 magenta magenta-faint))))
4244 `(tuareg-font-lock-interactive-directive-face ((,class :foreground ,fg-special-cold)))
4245 `(tuareg-font-lock-interactive-error-face ((,class :inherit bold
4246 ,@(modus-vivendi-theme-syntax-foreground
4247 red red-faint))))
4248 `(tuareg-font-lock-interactive-output-face ((,class ,@(modus-vivendi-theme-syntax-foreground
4249 blue-alt-other blue-alt-other-faint))))
4250 `(tuareg-font-lock-label-face ((,class ,@(modus-vivendi-theme-syntax-foreground
4251 cyan-alt-other cyan-alt-other-faint))))
4252 `(tuareg-font-lock-line-number-face ((,class :foreground ,fg-special-warm)))
4253 `(tuareg-font-lock-module-face ((,class ,@(modus-vivendi-theme-syntax-foreground
4254 magenta-alt magenta-alt-faint))))
4255 `(tuareg-font-lock-multistage-face ((,class :inherit bold :background ,bg-alt
4256 ,@(modus-vivendi-theme-syntax-foreground
4257 blue blue-faint))))
4258 `(tuareg-font-lock-operator-face ((,class ,@(modus-vivendi-theme-syntax-foreground
4259 red-alt red-alt-faint))))
4260 `(tuareg-opam-error-face ((,class :inherit bold
4261 ,@(modus-vivendi-theme-syntax-foreground
4262 red red-faint))))
4263 `(tuareg-opam-pkg-variable-name-face ((,class ,@(modus-vivendi-theme-syntax-foreground
4264 cyan cyan-faint)
4265 :slant ,modus-theme-slant)))
4266;;;;; typescript
4267 `(typescript-jsdoc-tag ((,class :foreground ,fg-special-mild :slant ,modus-theme-slant)))
4268 `(typescript-jsdoc-type ((,class :foreground ,fg-special-calm :slant ,modus-theme-slant)))
4269 `(typescript-jsdoc-value ((,class :foreground ,fg-special-cold :slant ,modus-theme-slant)))
4270;;;;; undo-tree
4271 `(undo-tree-visualizer-active-branch-face ((,class :inherit bold :foreground ,fg-main)))
4272 `(undo-tree-visualizer-current-face ((,class :foreground ,blue-intense)))
4273 `(undo-tree-visualizer-default-face ((,class :foreground ,fg-alt)))
4274 `(undo-tree-visualizer-register-face ((,class :foreground ,magenta-intense)))
4275 `(undo-tree-visualizer-unmodified-face ((,class :foreground ,green-intense)))
4276;;;;; vc (vc-hooks.el)
4277 `(vc-conflict-state ((,class :foreground ,red-active :slant ,modus-theme-slant)))
4278 `(vc-edited-state ((,class :foreground ,yellow-active)))
4279 `(vc-locally-added-state ((,class :foreground ,cyan-active)))
4280 `(vc-locked-state ((,class :foreground ,blue-active)))
4281 `(vc-missing-state ((,class :foreground ,magenta-active :slant ,modus-theme-slant)))
4282 `(vc-needs-update-state ((,class :foreground ,green-active :slant ,modus-theme-slant)))
4283 `(vc-removed-state ((,class :foreground ,red-active)))
4284 `(vc-state-base ((,class :foreground ,fg-active)))
4285 `(vc-up-to-date-state ((,class :foreground ,fg-special-cold)))
4286;;;;; vdiff
4287 `(vdiff-addition-face ((,class :inherit modus-theme-diff-added)))
4288 `(vdiff-change-face ((,class :inherit modus-theme-diff-changed)))
4289 `(vdiff-closed-fold-face ((,class :background ,bg-diff-neutral-1 :foreground ,fg-diff-neutral-1)))
4290 `(vdiff-refine-added ((,class :inherit modus-theme-diff-refine-added)))
4291 `(vdiff-refine-changed ((,class :inherit modus-theme-diff-refine-changed)))
4292 `(vdiff-subtraction-face ((,class :inherit modus-theme-diff-removed)))
4293 `(vdiff-target-face ((,class :inherit modus-theme-intense-blue)))
4294;;;;; vimish-fold
4295 `(vimish-fold-fringe ((,class :foreground ,cyan-active)))
4296 `(vimish-fold-mouse-face ((,class :inherit modus-theme-intense-blue)))
4297 `(vimish-fold-overlay ((,class :background ,bg-alt :foreground ,fg-special-cold)))
4298;;;;; visible-mark
4299 `(visible-mark-active ((,class :background ,blue-intense-bg)))
4300 `(visible-mark-face1 ((,class :background ,cyan-intense-bg)))
4301 `(visible-mark-face2 ((,class :background ,yellow-intense-bg)))
4302 `(visible-mark-forward-face1 ((,class :background ,magenta-intense-bg)))
4303 `(visible-mark-forward-face2 ((,class :background ,green-intense-bg)))
4304;;;;; visual-regexp
4305 `(vr/group-0 ((,class :inherit modus-theme-intense-blue)))
4306 `(vr/group-1 ((,class :inherit modus-theme-intense-magenta)))
4307 `(vr/group-2 ((,class :inherit modus-theme-intense-green)))
4308 `(vr/match-0 ((,class :inherit modus-theme-refine-yellow)))
4309 `(vr/match-1 ((,class :inherit modus-theme-refine-yellow)))
4310 `(vr/match-separator-face ((,class :inherit (modus-theme-intense-neutral bold))))
4311;;;;; volatile-highlights
4312 `(vhl/default-face ((,class ,@(and (>= emacs-major-version 27) '(:extend t))
4313 :background ,bg-alt :foreground ,blue-nuanced)))
4314;;;;; vterm
4315 `(vterm-color-black ((,class :background "gray35" :foreground "gray35")))
4316 `(vterm-color-blue ((,class :background ,blue :foreground ,blue)))
4317 `(vterm-color-cyan ((,class :background ,cyan :foreground ,cyan)))
4318 `(vterm-color-default ((,class :background ,bg-main :foreground ,fg-main)))
4319 `(vterm-color-green ((,class :background ,green :foreground ,green)))
4320 `(vterm-color-inverse-video ((,class :background ,bg-main :inverse-video t)))
4321 `(vterm-color-magenta ((,class :background ,magenta :foreground ,magenta)))
4322 `(vterm-color-red ((,class :background ,red :foreground ,red)))
4323 `(vterm-color-underline ((,class :foreground ,fg-special-warm :underline t)))
4324 `(vterm-color-white ((,class :background "gray65" :foreground "gray65")))
4325 `(vterm-color-yellow ((,class :background ,yellow :foreground ,yellow)))
4326;;;;; wcheck-mode
4327 `(wcheck-default-face ((,class :foreground ,red :underline t)))
4328;;;;; web-mode
4329 `(web-mode-annotation-face ((,class :inherit web-mode-comment-face)))
4330 `(web-mode-annotation-html-face ((,class :inherit web-mode-comment-face)))
4331 `(web-mode-annotation-tag-face ((,class :inherit web-mode-comment-face :underline t)))
4332 `(web-mode-block-attr-name-face ((,class ,@(modus-vivendi-theme-syntax-foreground
4333 blue blue-faint))))
4334 `(web-mode-block-attr-value-face ((,class ,@(modus-vivendi-theme-syntax-foreground
4335 cyan-alt-other cyan-alt-other-faint))))
4336 `(web-mode-block-comment-face ((,class :inherit web-mode-comment-face)))
4337 `(web-mode-block-control-face ((,class ,@(modus-vivendi-theme-syntax-foreground
4338 magenta-alt magenta-alt-faint)
4339 ,@(modus-vivendi-theme-bold-weight))))
4340 `(web-mode-block-delimiter-face ((,class :foreground ,fg-main)))
4341 `(web-mode-block-face ((,class :background ,bg-dim)))
4342 `(web-mode-block-string-face ((,class :inherit web-mode-string-face)))
4343 `(web-mode-bold-face ((,class :inherit bold)))
4344 `(web-mode-builtin-face ((,class ,@(modus-vivendi-theme-syntax-foreground
4345 magenta-alt magenta-alt-faint)
4346 ,@(modus-vivendi-theme-bold-weight))))
4347 `(web-mode-comment-face ((,class :foreground ,fg-alt :slant ,modus-theme-slant)))
4348 `(web-mode-comment-keyword-face ((,class :inherit bold :background ,bg-dim
4349 ,@(modus-vivendi-theme-syntax-foreground
4350 yellow yellow-faint))))
4351 `(web-mode-constant-face ((,class ,@(modus-vivendi-theme-syntax-foreground
4352 blue-alt-other blue-alt-other-faint))))
4353 `(web-mode-css-at-rule-face ((,class ,@(modus-vivendi-theme-syntax-foreground
4354 blue-alt-other blue-alt-other-faint))))
4355 `(web-mode-css-color-face ((,class ,@(modus-vivendi-theme-syntax-foreground
4356 magenta-alt magenta-alt-faint)
4357 ,@(modus-vivendi-theme-bold-weight))))
4358 `(web-mode-css-comment-face ((,class :inherit web-mode-comment-face)))
4359 `(web-mode-css-function-face ((,class ,@(modus-vivendi-theme-syntax-foreground
4360 magenta-alt magenta-alt-faint)
4361 ,@(modus-vivendi-theme-bold-weight))))
4362 `(web-mode-css-priority-face ((,class ,@(modus-vivendi-theme-syntax-foreground
4363 yellow-alt yellow-alt-faint)
4364 ,@(modus-vivendi-theme-bold-weight))))
4365 `(web-mode-css-property-name-face ((,class ,@(modus-vivendi-theme-syntax-foreground
4366 cyan cyan-faint))))
4367 `(web-mode-css-pseudo-class-face ((,class ,@(modus-vivendi-theme-syntax-foreground
4368 cyan-alt-other cyan-alt-other-faint))))
4369 `(web-mode-css-selector-face ((,class ,@(modus-vivendi-theme-syntax-foreground
4370 magenta-alt-other magenta-alt-other-faint)
4371 ,@(modus-vivendi-theme-bold-weight))))
4372 `(web-mode-css-string-face ((,class :inherit web-mode-string-face)))
4373 `(web-mode-css-variable-face ((,class :foreground ,fg-special-warm)))
4374 `(web-mode-current-column-highlight-face ((,class :background ,bg-alt)))
4375 `(web-mode-current-element-highlight-face ((,class :inherit modus-theme-special-mild)))
4376 `(web-mode-doctype-face ((,class :foreground ,fg-special-cold :slant ,modus-theme-slant)))
4377 `(web-mode-error-face ((,class :inherit modus-theme-intense-red)))
4378 `(web-mode-filter-face ((,class ,@(modus-vivendi-theme-syntax-foreground
4379 magenta magenta-faint))))
4380 `(web-mode-folded-face ((,class :underline t)))
4381 `(web-mode-function-call-face ((,class ,@(modus-vivendi-theme-syntax-foreground
4382 magenta magenta-faint))))
4383 `(web-mode-function-name-face ((,class ,@(modus-vivendi-theme-syntax-foreground
4384 magenta magenta-faint))))
4385 `(web-mode-html-attr-custom-face ((,class ,@(modus-vivendi-theme-syntax-foreground
4386 cyan cyan-faint))))
4387 `(web-mode-html-attr-engine-face ((,class :foreground ,fg-main)))
4388 `(web-mode-html-attr-equal-face ((,class :foreground ,fg-main)))
4389 `(web-mode-html-attr-name-face ((,class ,@(modus-vivendi-theme-syntax-foreground
4390 cyan cyan-faint))))
4391 `(web-mode-html-attr-value-face ((,class ,@(modus-vivendi-theme-syntax-foreground
4392 blue-alt-other blue-alt-other-faint))))
4393 `(web-mode-html-entity-face ((,class ,@(modus-vivendi-theme-syntax-foreground
4394 yellow-alt-other yellow-alt-other-faint)
4395 :slant ,modus-theme-slant)))
4396 `(web-mode-html-tag-bracket-face ((,class :foreground ,fg-dim)))
4397 `(web-mode-html-tag-custom-face ((,class ,@(modus-vivendi-theme-syntax-foreground
4398 magenta magenta-faint))))
4399 `(web-mode-html-tag-face ((,class ,@(modus-vivendi-theme-syntax-foreground
4400 magenta magenta-faint))))
4401 `(web-mode-html-tag-namespaced-face ((,class ,@(modus-vivendi-theme-syntax-foreground
4402 magenta-alt magenta-alt-faint)
4403 ,@(modus-vivendi-theme-bold-weight))))
4404 `(web-mode-html-tag-unclosed-face ((,class ,@(modus-vivendi-theme-syntax-foreground
4405 red red-faint)
4406 :underline t)))
4407 `(web-mode-inlay-face ((,class :background ,bg-alt)))
4408 `(web-mode-italic-face ((,class :slant italic)))
4409 `(web-mode-javascript-comment-face ((,class :inherit web-mode-comment-face)))
4410 `(web-mode-javascript-string-face ((,class :inherit web-mode-string-face)))
4411 `(web-mode-json-comment-face ((,class :inherit web-mode-comment-face)))
4412 `(web-mode-json-context-face ((,class ,@(modus-vivendi-theme-syntax-foreground
4413 magenta-alt magenta-alt-faint))))
4414 `(web-mode-json-key-face ((,class :foreground ,blue-nuanced)))
4415 `(web-mode-json-string-face ((,class :inherit web-mode-string-face)))
4416 `(web-mode-jsx-depth-1-face ((,class :background ,blue-intense-bg :foreground ,fg-main)))
4417 `(web-mode-jsx-depth-2-face ((,class :background ,blue-subtle-bg :foreground ,fg-main)))
4418 `(web-mode-jsx-depth-3-face ((,class :background ,bg-special-cold :foreground ,fg-special-cold)))
4419 `(web-mode-jsx-depth-4-face ((,class :background ,bg-alt :foreground ,blue-refine-fg)))
4420 `(web-mode-jsx-depth-5-face ((,class :background ,bg-alt :foreground ,blue-nuanced)))
4421 `(web-mode-keyword-face ((,class ,@(modus-vivendi-theme-syntax-foreground
4422 magenta-alt-other magenta-alt-other-faint)
4423 ,@(modus-vivendi-theme-bold-weight))))
4424 `(web-mode-param-name-face ((,class ,@(modus-vivendi-theme-syntax-foreground
4425 magenta magenta-faint))))
4426 `(web-mode-part-comment-face ((,class :inherit web-mode-comment-face)))
4427 `(web-mode-part-face ((,class :inherit web-mode-block-face)))
4428 `(web-mode-part-string-face ((,class :inherit web-mode-string-face)))
4429 `(web-mode-preprocessor-face ((,class ,@(modus-vivendi-theme-syntax-foreground
4430 red-alt-other red-alt-other-faint))))
4431 `(web-mode-script-face ((,class :inherit web-mode-part-face)))
4432 `(web-mode-sql-keyword-face ((,class :inherit bold
4433 ,@(modus-vivendi-theme-syntax-foreground
4434 yellow yellow-faint))))
4435 `(web-mode-string-face ((,class ,@(modus-vivendi-theme-syntax-foreground
4436 blue-alt blue-alt-faint))))
4437 `(web-mode-style-face ((,class :inherit web-mode-part-face)))
4438 `(web-mode-symbol-face ((,class ,@(modus-vivendi-theme-syntax-foreground
4439 blue-alt-other blue-alt-other-faint))))
4440 `(web-mode-type-face ((,class ,@(modus-vivendi-theme-syntax-foreground
4441 magenta-alt magenta-alt-faint))))
4442 `(web-mode-underline-face ((,class :underline t)))
4443 `(web-mode-variable-name-face ((,class ,@(modus-vivendi-theme-syntax-foreground
4444 cyan cyan-faint))))
4445 `(web-mode-warning-face ((,class :inherit bold :background ,bg-alt
4446 ,@(modus-vivendi-theme-syntax-foreground
4447 yellow-alt-other yellow-alt-other-faint))))
4448 `(web-mode-whitespace-face ((,class :background ,bg-whitespace :foreground ,fg-whitespace)))
4449;;;;; wgrep
4450 `(wgrep-delete-face ((,class :inherit modus-theme-refine-yellow)))
4451 `(wgrep-done-face ((,class :inherit modus-theme-refine-blue)))
4452 `(wgrep-face ((,class :inherit modus-theme-refine-green)))
4453 `(wgrep-file-face ((,class :foreground ,fg-special-warm)))
4454 `(wgrep-reject-face ((,class :inherit (modus-theme-intense-red bold))))
4455;;;;; which-function-mode
4456 `(which-func ((,class :foreground ,magenta-active)))
4457;;;;; which-key
4458 `(which-key-command-description-face ((,class :foreground ,cyan)))
4459 `(which-key-group-description-face ((,class :foreground ,magenta-alt)))
4460 `(which-key-highlighted-command-face ((,class :foreground ,cyan-alt :underline t)))
4461 `(which-key-key-face ((,class :inherit bold :foreground ,blue-intense)))
4462 `(which-key-local-map-description-face ((,class :foreground ,fg-main)))
4463 `(which-key-note-face ((,class :background ,bg-dim :foreground ,fg-special-mild)))
4464 `(which-key-separator-face ((,class :foreground ,fg-alt)))
4465 `(which-key-special-key-face ((,class :inherit bold :foreground ,yellow-intense)))
4466;;;;; whitespace-mode
4467 `(whitespace-big-indent ((,class :inherit modus-theme-subtle-red)))
4468 `(whitespace-empty ((,class :inherit modus-theme-intense-magenta)))
4469 `(whitespace-hspace ((,class :background ,bg-whitespace :foreground ,fg-whitespace)))
4470 `(whitespace-indentation ((,class :background ,bg-whitespace :foreground ,fg-whitespace)))
4471 `(whitespace-line ((,class :inherit modus-theme-special-warm)))
4472 `(whitespace-newline ((,class :background ,bg-whitespace :foreground ,fg-whitespace)))
4473 `(whitespace-space ((,class :background ,bg-whitespace :foreground ,fg-whitespace)))
4474 `(whitespace-space-after-tab ((,class :inherit modus-theme-subtle-magenta)))
4475 `(whitespace-space-before-tab ((,class :inherit modus-theme-subtle-cyan)))
4476 `(whitespace-tab ((,class :background ,bg-whitespace :foreground ,fg-whitespace)))
4477 `(whitespace-trailing ((,class :inherit modus-theme-intense-red)))
4478;;;;; window-divider-mode
4479 `(window-divider ((,class :foreground ,fg-window-divider-inner)))
4480 `(window-divider-first-pixel ((,class :foreground ,fg-window-divider-outer)))
4481 `(window-divider-last-pixel ((,class :foreground ,fg-window-divider-outer)))
4482;;;;; winum
4483 `(winum-face ((,class ,@(modus-vivendi-theme-bold-weight) :foreground ,cyan-active)))
4484;;;;; writegood-mode
4485 `(writegood-duplicates-face ((,class :background ,bg-alt :foreground ,red-alt :underline t)))
4486 `(writegood-passive-voice-face ((,class :foreground ,yellow-nuanced :underline ,fg-lang-warning)))
4487 `(writegood-weasels-face ((,class :foreground ,red-nuanced :underline ,fg-lang-error)))
4488;;;;; woman
4489 `(woman-addition ((,class :foreground ,magenta-alt-other)))
4490 `(woman-bold ((,class :inherit bold :foreground ,magenta)))
4491 `(woman-italic ((,class :foreground ,cyan :slant italic)))
4492 `(woman-unknown ((,class :foreground ,yellow :slant italic)))
4493;;;;; xah-elisp-mode
4494 `(xah-elisp-at-symbol ((,class :inherit bold
4495 ,@(modus-vivendi-theme-syntax-foreground
4496 red-alt red-alt-faint))))
4497 `(xah-elisp-cap-variable ((,class ,@(modus-vivendi-theme-syntax-foreground
4498 red-alt-other red-alt-other-faint))))
4499 `(xah-elisp-command-face ((,class ,@(modus-vivendi-theme-syntax-foreground
4500 cyan-alt-other cyan-alt-other-faint))))
4501 `(xah-elisp-dollar-symbol ((,class ,@(modus-vivendi-theme-syntax-foreground
4502 green green-faint))))
4503;;;;; xref
4504 `(xref-file-header ((,class :inherit bold :foreground ,fg-special-cold)))
4505 `(xref-line-number ((,class :foreground ,fg-alt)))
4506 `(xref-match ((,class :inherit match)))
4507;;;;; yaml-mode
4508 `(yaml-tab-face ((,class :inherit modus-theme-intense-red)))
4509;;;;; yasnippet
4510 `(yas-field-highlight-face ((,class :background ,bg-alt :foreground ,fg-main)))
4511;;;;; ztree
4512 `(ztreep-arrow-face ((,class :foreground ,fg-inactive)))
4513 `(ztreep-diff-header-face ((,class :inherit bold :height 1.2 :foreground ,fg-special-cold)))
4514 `(ztreep-diff-header-small-face ((,class :inherit bold :foreground ,fg-special-mild)))
4515 `(ztreep-diff-model-add-face ((,class :foreground ,green)))
4516 `(ztreep-diff-model-diff-face ((,class :foreground ,red)))
4517 `(ztreep-diff-model-ignored-face ((,class :foreground ,fg-alt :strike-through t)))
4518 `(ztreep-diff-model-normal-face ((,class :foreground ,fg-alt)))
4519 `(ztreep-expand-sign-face ((,class :foreground ,blue)))
4520 `(ztreep-header-face ((,class :inherit bold :height 1.2 :foreground ,fg-special-cold)))
4521 `(ztreep-leaf-face ((,class :foreground ,cyan)))
4522 `(ztreep-node-count-children-face ((,class :foreground ,fg-special-warm)))
4523 `(ztreep-node-face ((,class :foreground ,fg-main))))
4524;;;; Emacs 27+
4525 (when (>= emacs-major-version 27)
4526 (custom-theme-set-faces
4527 'modus-vivendi
4528;;;;; line numbers (`display-line-numbers-mode' and global variant)
4529 ;; NOTE that this is specifically for the faces that were
4530 ;; introduced in Emacs 27, as the other faces are already
4531 ;; supported.
4532 `(line-number-major-tick ((,class :inherit (bold default)
4533 :background ,yellow-nuanced-bg
4534 :foreground ,yellow-nuanced)))
4535 `(line-number-minor-tick ((,class :inherit (bold default)
4536 :background ,bg-inactive
4537 :foreground ,fg-inactive)))
4538;;;;; tab-bar-mode
4539 `(tab-bar ((,class :background ,bg-tab-bar :foreground ,fg-main)))
4540 `(tab-bar-tab ((,class :inherit bold :box (:line-width 2 :color ,bg-tab-active)
4541 :background ,bg-tab-active :foreground ,fg-main)))
4542 `(tab-bar-tab-inactive ((,class :box (:line-width 2 :color ,bg-tab-inactive)
4543 :background ,bg-tab-inactive :foreground ,fg-dim)))
4544;;;;; tab-line-mode
4545 `(tab-line ((,class :height 0.95 :background ,bg-tab-bar :foreground ,fg-main)))
4546 `(tab-line-close-highlight ((,class :foreground ,red)))
4547 `(tab-line-highlight ((,class :background ,blue-subtle-bg :foreground ,fg-dim)))
4548 `(tab-line-tab ((,class :inherit bold :box (:line-width 2 :color ,bg-tab-active)
4549 :background ,bg-tab-active :foreground ,fg-main)))
4550 `(tab-line-tab-current ((,class :inherit tab-line-tab)))
4551 `(tab-line-tab-inactive ((,class :box (:line-width 2 :color ,bg-tab-inactive)
4552 :background ,bg-tab-inactive :foreground ,fg-dim)))))
4553;;;; Emacs 28+
4554 (when (>= emacs-major-version 28)
4555 (custom-theme-set-faces
4556 'modus-vivendi
4557;;;;; isearch regexp groups
4558 `(isearch-group-1 ((,class :inherit modus-theme-intense-blue)))
4559 `(isearch-group-2 ((,class :inherit modus-theme-intense-magenta)))))
4560;;; variables
4561 (custom-theme-set-variables
4562 'modus-vivendi
4563;;;; ansi-colors
4564 `(ansi-color-faces-vector [default bold shadow italic underline success warning error])
4565 `(ansi-color-names-vector [,bg-main ,red ,green ,yellow ,blue ,magenta ,cyan ,fg-main])
4566;;;; awesome-tray
4567 `(awesome-tray-mode-line-active-color ,blue)
4568 `(awesome-tray-mode-line-inactive-color ,bg-active)
4569;;;; flymake fringe indicators
4570 `(flymake-error-bitmap '(flymake-double-exclamation-mark modus-theme-fringe-red))
4571 `(flymake-warning-bitmap '(exclamation-mark modus-theme-fringe-yellow))
4572 `(flymake-note-bitmap '(exclamation-mark modus-theme-fringe-cyan))
4573;;;; ibuffer
4574 `(ibuffer-deletion-face 'modus-theme-mark-del)
4575 `(ibuffer-filter-group-name-face 'modus-theme-mark-symbol)
4576 `(ibuffer-marked-face 'modus-theme-mark-sel)
4577 `(ibuffer-title-face 'modus-theme-pseudo-header)
4578;;;; highlight-tail
4579 `(highlight-tail-colors
4580 '((,green-subtle-bg . 0)
4581 (,cyan-subtle-bg . 20)))
4582;;;; hl-todo
4583 `(hl-todo-keyword-faces
4584 '(("HOLD" . ,yellow-alt)
4585 ("TODO" . ,magenta)
4586 ("NEXT" . ,magenta-alt-other)
4587 ("THEM" . ,magenta-alt)
4588 ("PROG" . ,cyan)
4589 ("OKAY" . ,cyan-alt)
4590 ("DONT" . ,green-alt)
4591 ("FAIL" . ,red)
4592 ("BUG" . ,red)
4593 ("DONE" . ,green)
4594 ("NOTE" . ,yellow-alt-other)
4595 ("KLUDGE" . ,yellow)
4596 ("HACK" . ,yellow)
4597 ("TEMP" . ,red-nuanced)
4598 ("FIXME" . ,red-alt-other)
4599 ("XXX+" . ,red-alt)
4600 ("REVIEW" . ,cyan-alt-other)
4601 ("DEPRECATED" . ,blue-nuanced)))
4602;;;; vc-annotate (C-x v g)
4603 `(vc-annotate-background nil)
4604 `(vc-annotate-background-mode nil)
4605 `(vc-annotate-color-map
4606 '((20 . ,red)
4607 (40 . ,magenta)
4608 (60 . ,magenta-alt)
4609 (80 . ,red-alt)
4610 (100 . ,yellow)
4611 (120 . ,yellow-alt)
4612 (140 . ,fg-special-warm)
4613 (160 . ,fg-special-mild)
4614 (180 . ,green)
4615 (200 . ,green-alt)
4616 (220 . ,cyan-alt-other)
4617 (240 . ,cyan-alt)
4618 (260 . ,cyan)
4619 (280 . ,fg-special-cold)
4620 (300 . ,blue)
4621 (320 . ,blue-alt)
4622 (340 . ,blue-alt-other)
4623 (360 . ,magenta-alt-other)))
4624 `(vc-annotate-very-old-color nil)
4625;;;; xterm-color
4626 `(xterm-color-names [,bg-main ,red ,green ,yellow ,blue ,magenta ,cyan ,fg-alt])
4627 `(xterm-color-names-bright [,bg-alt ,red-alt ,green-alt ,yellow-alt ,blue-alt ,magenta-alt ,cyan-alt ,fg-main]))
4628;;; Conditional theme variables
4629;;;; org-src-block-faces
4630 ;; this is a user option to add a colour-coded background to source
4631 ;; blocks for various programming languages
4632 (when (eq modus-vivendi-theme-org-blocks 'rainbow)
4633 (custom-theme-set-variables
4634 'modus-vivendi
4635 `(org-src-block-faces ; TODO this list should be expanded
4636 `(("emacs-lisp" modus-theme-nuanced-magenta)
4637 ("elisp" modus-theme-nuanced-magenta)
4638 ("clojure" modus-theme-nuanced-magenta)
4639 ("clojurescript" modus-theme-nuanced-magenta)
4640 ("c" modus-theme-nuanced-blue)
4641 ("c++" modus-theme-nuanced-blue)
4642 ("sh" modus-theme-nuanced-green)
4643 ("shell" modus-theme-nuanced-green)
4644 ("html" modus-theme-nuanced-yellow)
4645 ("xml" modus-theme-nuanced-yellow)
4646 ("css" modus-theme-nuanced-red)
4647 ("scss" modus-theme-nuanced-red)
4648 ("python" modus-theme-nuanced-green)
4649 ("ipython" modus-theme-nuanced-magenta)
4650 ("r" modus-theme-nuanced-cyan)
4651 ("yaml" modus-theme-nuanced-cyan)
4652 ("conf" modus-theme-nuanced-cyan)
4653 ("docker" modus-theme-nuanced-cyan)
4654 ("json" modus-theme-nuanced-cyan))))))
4655 61
4656;;; library provides 62(modus-themes-theme modus-vivendi)
4657;;;###autoload
4658(when load-file-name
4659 (add-to-list 'custom-theme-load-path
4660 (file-name-as-directory (file-name-directory load-file-name))))
4661 63
4662(provide-theme 'modus-vivendi) 64(provide-theme 'modus-vivendi)
4663 65