modus-themes.el (211143B)
1 ;;; modus-themes.el --- Elegant, highly legible and customizable themes -*- lexical-binding:t -*- 2 3 ;; Copyright (C) 2019-2024 Free Software Foundation, Inc. 4 5 ;; Author: Protesilaos Stavrou <info@protesilaos.com> 6 ;; Maintainer: Protesilaos Stavrou <info@protesilaos.com> 7 ;; URL: https://github.com/protesilaos/modus-themes 8 ;; Version: 4.4.0 9 ;; Package-Requires: ((emacs "27.1")) 10 ;; Keywords: faces, theme, accessibility 11 12 ;; This file is part of GNU Emacs. 13 14 ;; GNU Emacs is free software: you can redistribute it and/or modify 15 ;; it under the terms of the GNU General Public License as published by 16 ;; the Free Software Foundation, either version 3 of the License, or 17 ;; (at your option) any later version. 18 ;; 19 ;; GNU Emacs is distributed in the hope that it will be useful, 20 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of 21 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 22 ;; GNU General Public License for more details. 23 ;; 24 ;; You should have received a copy of the GNU General Public License 25 ;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. 26 27 ;;; Commentary: 28 ;; 29 ;; The Modus themes conform with the highest standard for 30 ;; color-contrast accessibility between background and foreground 31 ;; values (WCAG AAA). Please refer to the official Info manual for 32 ;; further documentation (distributed with the themes, or available 33 ;; at: <https://protesilaos.com/emacs/modus-themes>). 34 35 ;;; Code: 36 37 38 39 (eval-when-compile (require 'subr-x)) 40 41 (defgroup modus-themes () 42 "User options for the Modus themes. 43 The Modus themes conform with the WCAG AAA standard for color 44 contrast between background and foreground combinations (a 45 minimum contrast of 7:1---the highest standard of its kind). 46 47 The Modus themes collection includes themes that are optimized 48 for people with red-green or blue-yellow color 49 deficiency (deuteranopia or tritanopia, respectively)." 50 :group 'faces 51 :link '(info-link "(modus-themes) Top") 52 :link '(url-link :tag "Homepage" "https://protesilaos.com/emacs/modus-themes") 53 :link '(url-link :tag "Sample pictures" "https://protesilaos.com/emacs/modus-themes-pictures") 54 :prefix "modus-themes-" 55 :tag "Modus Themes") 56 57 (defgroup modus-themes-faces () 58 "Faces defined by the Modus themes." 59 :group 'modus-themes 60 :link '(info-link "(modus-themes) Top") 61 :link '(url-link :tag "Homepage" "https://protesilaos.com/emacs/modus-themes") 62 :link '(url-link :tag "Sample pictures" "https://protesilaos.com/emacs/modus-themes-pictures") 63 :prefix "modus-themes-" 64 :tag "Modus Themes Faces") 65 66 67 68 ;;;; Custom faces 69 70 ;; These faces are used internally to ensure consistency between various 71 ;; groups and to streamline the evaluation of relevant customization 72 ;; options. 73 74 (dolist (color '( red green blue yellow magenta cyan 75 red-warmer green-warmer blue-warmer yellow-warmer magenta-warmer cyan-warmer 76 red-cooler green-cooler blue-cooler yellow-cooler magenta-cooler cyan-cooler 77 red-faint green-faint blue-faint yellow-faint magenta-faint cyan-faint 78 red-intense green-intense blue-intense yellow-intense magenta-intense cyan-intense)) 79 (custom-declare-face 80 (intern (format "modus-themes-fg-%s" color)) 81 nil (format "Face with %s foreground." color) 82 :package-version '(modus-themes . "4.0.0") 83 :version "30.1" 84 :group 'modus-themes-faces)) 85 86 (dolist (color '(red green yellow blue magenta cyan)) 87 (custom-declare-face 88 (intern (format "modus-themes-nuanced-%s" color)) 89 nil (format "Nuanced %s background." color) 90 :package-version '(modus-themes . "4.1.0") 91 :version "30.1" 92 :group 'modus-themes-faces)) 93 94 (dolist (color '(red green yellow blue magenta cyan)) 95 (custom-declare-face 96 (intern (format "modus-themes-subtle-%s" color)) 97 nil (format "Subtle %s background." color) 98 :package-version '(modus-themes . "4.0.0") 99 :version "30.1" 100 :group 'modus-themes-faces)) 101 102 (dolist (color '(red green yellow blue magenta cyan)) 103 (custom-declare-face 104 (intern (format "modus-themes-intense-%s" color)) 105 nil (format "Intense %s background." color) 106 :package-version '(modus-themes . "4.0.0") 107 :version "30.1" 108 :group 'modus-themes-faces)) 109 110 (dolist (scope '(alt del sel)) 111 (custom-declare-face 112 (intern (format "modus-themes-mark-%s" scope)) 113 nil (format "Mark of type %s." scope) 114 :package-version '(modus-themes . "4.0.0") 115 :version "30.1" 116 :group 'modus-themes-faces)) 117 118 (dolist (scope '(note warning error)) 119 (custom-declare-face 120 (intern (format "modus-themes-lang-%s" scope)) 121 nil (format "Linter or spell check of type %s." scope) 122 :package-version '(modus-themes . "4.0.0") 123 :version "30.1" 124 :group 'modus-themes-faces)) 125 126 (dolist (scope '(note warning error)) 127 (custom-declare-face 128 (intern (format "modus-themes-prominent-%s" scope)) 129 nil (format "Prominent notification of type %s." scope) 130 :package-version '(modus-themes . "4.2.0") 131 :version "30.1" 132 :group 'modus-themes-faces)) 133 134 (dolist (scope '(current lazy replace)) 135 (custom-declare-face 136 (intern (format "modus-themes-search-%s" scope)) 137 nil (format "Search of type %s." scope) 138 :package-version '(modus-themes . "4.0.0") 139 :version "30.1" 140 :group 'modus-themes-faces)) 141 142 (dotimes (n 4) 143 (custom-declare-face 144 (intern (format "modus-themes-search-rx-group-%s" n)) 145 nil (format "Search regexp group number %s." n) 146 :package-version '(modus-themes . "4.4.0") 147 :version "30.1" 148 :group 'modus-themes-faces)) 149 150 (dolist (scope '(code macro verbatim)) 151 (custom-declare-face 152 (intern (format "modus-themes-prose-%s" scope)) 153 nil (format "Construct of type %s for prose." scope) 154 :package-version '(modus-themes . "4.0.0") 155 :version "30.1" 156 :group 'modus-themes-faces)) 157 158 (dotimes (n 9) 159 (custom-declare-face 160 (intern (format "modus-themes-heading-%d" n)) 161 nil (format "Level %d heading." n) 162 :package-version '(modus-themes . "4.0.0") 163 :version "30.1" 164 :group 'modus-themes-faces)) 165 166 (defface modus-themes-bold nil 167 "Generic face for applying a conditional bold weight. 168 This behaves in accordance with `modus-themes-bold-constructs'." 169 :package-version '(modus-themes . "4.0.0") 170 :version "30.1" 171 :group 'modus-themes-faces) 172 173 (defface modus-themes-slant nil 174 "Generic face for applying a conditional slant (italics). 175 This behaves in accordance with `modus-themes-italic-constructs'." 176 :package-version '(modus-themes . "4.0.0") 177 :version "30.1" 178 :group 'modus-themes-faces) 179 180 (defface modus-themes-key-binding nil 181 "Face for key bindings." 182 :package-version '(modus-themes . "4.0.0") 183 :version "30.1" 184 :group 'modus-themes-faces) 185 186 (defface modus-themes-fixed-pitch nil 187 "Face for `fixed-pitch' if `modus-themes-mixed-fonts' is non-nil." 188 :package-version '(modus-themes . "4.0.0") 189 :version "30.1" 190 :group 'modus-themes-faces) 191 192 (defface modus-themes-ui-variable-pitch nil 193 "Face for `variable-pitch' if `modus-themes-variable-pitch-ui' is non-nil." 194 :package-version '(modus-themes . "4.0.0") 195 :version "30.1" 196 :group 'modus-themes-faces) 197 198 (defface modus-themes-reset-soft nil 199 "Generic face to set most face properties to nil. 200 201 This is intended to be inherited by faces that should not retain 202 properties from their context (e.g. an overlay over an underlined 203 text should not be underlined as well) yet still blend in." 204 :group 'modus-themes-faces) 205 206 (defface modus-themes-prompt nil 207 "Generic face for command prompts." 208 :group 'modus-themes-faces) 209 210 (defface modus-themes-completion-selected nil 211 "Face for current selection in completion UIs." 212 :group 'modus-themes-faces) 213 214 (defface modus-themes-button nil 215 "Face for graphical buttons." 216 :group 'modus-themes-faces) 217 218 (dotimes (n 4) 219 (custom-declare-face 220 (intern (format "modus-themes-completion-match-%d" n)) 221 nil (format "Completions match level %d." n) 222 :package-version '(modus-themes . "4.0.0") 223 :version "30.1" 224 :group 'modus-themes-faces)) 225 226 227 228 ;;;; Customization variables 229 230 (defcustom modus-themes-custom-auto-reload t 231 "Automatically reload theme after setting options with Customize. 232 233 All theme user options take effect when a theme is loaded. Any 234 subsequent changes require the theme to be reloaded. 235 236 When this variable has a non-nil value, any change made via the 237 Custom UI or related functions such as `customize-set-variable' 238 and `setopt' (Emacs 29), will trigger a reload automatically. 239 240 With a nil value, changes to user options have no further 241 consequences. The user must manually reload the theme." 242 :group 'modus-themes 243 :package-version '(modus-themes . "4.0.0") 244 :version "30.1" 245 :type 'boolean 246 :link '(info-link "(modus-themes) Custom reload theme")) 247 248 (defun modus-themes--set-option (sym val) 249 "Custom setter for theme related user options. 250 Will set SYM to VAL, and reload the current theme, unless 251 `modus-themes-custom-auto-reload' is nil." 252 (set-default sym val) 253 (when (and modus-themes-custom-auto-reload 254 ;; Check if a theme is being loaded, in which case we 255 ;; don't want to reload a theme if the setter is 256 ;; invoked. `custom--inhibit-theme-enable' is set to nil 257 ;; by `enable-theme'. 258 (bound-and-true-p custom--inhibit-theme-enable)) 259 (when-let* ((modus-themes-custom-auto-reload t) 260 (theme (modus-themes--current-theme))) 261 (modus-themes-load-theme theme)))) 262 263 (defcustom modus-themes-disable-other-themes t 264 "Disable all other themes when loading a Modus theme. 265 266 When the value is non-nil, the commands `modus-themes-toggle' and 267 `modus-themes-select', as well as the `modus-themes-load-theme' 268 function, will disable all other themes while loading the 269 specified Modus theme. This is done to ensure that Emacs does 270 not blend two or more themes: such blends lead to awkward results 271 that undermine the work of the designer. 272 273 When the value is nil, the aforementioned commands and function 274 will only disable other themes within the Modus collection. 275 276 This option is provided because Emacs themes are not necessarily 277 limited to colors/faces: they can consist of an arbitrary set of 278 customizations. Users who use such customization bundles must 279 set this variable to a nil value." 280 :group 'modus-themes 281 :package-version '(modus-themes . "4.1.0") 282 :version "30.1" 283 :type 'boolean 284 :link '(info-link "(modus-themes) Disable other themes")) 285 286 (defvaralias 'modus-themes-collection 'modus-themes-items 287 "Alias of `modus-themes-items'.") 288 289 (defconst modus-themes-items 290 '( modus-operandi modus-vivendi 291 modus-operandi-tinted modus-vivendi-tinted 292 modus-operandi-deuteranopia modus-vivendi-deuteranopia 293 modus-operandi-tritanopia modus-vivendi-tritanopia) 294 "Symbols of the Modus themes.") 295 296 (defcustom modus-themes-to-toggle '(modus-operandi modus-vivendi) 297 "Specify two Modus themes for `modus-themes-toggle' command. 298 The variable `modus-themes-items' contains the symbols of all 299 official themes that form part of this collection. 300 301 The default value of this user option includes the original 302 themes: `modus-operandi' (light) and `modus-vivendi' (dark). 303 304 If the value is nil or otherwise does not specify two valid Modus 305 themes, the command `modus-themes-toggle' reverts to selecting a 306 theme from the list of available Modus themes. In effect, it is 307 the same as using the command `modus-themes-select'." 308 :type `(choice 309 (const :tag "No toggle" nil) 310 (list :tag "Pick two themes to toggle between" 311 (choice :tag "Theme one of two" 312 ,@(mapcar (lambda (theme) 313 (list 'const theme)) 314 modus-themes-items)) 315 (choice :tag "Theme two of two" 316 ,@(mapcar (lambda (theme) 317 (list 'const theme)) 318 modus-themes-items)))) 319 :package-version '(modus-themes . "4.0.0") 320 :version "30.1" 321 :set #'modus-themes--set-option 322 :initialize #'custom-initialize-default 323 :group 'modus-themes) 324 325 (defvaralias 'modus-themes-post-load-hook 'modus-themes-after-load-theme-hook) 326 327 (defcustom modus-themes-after-load-theme-hook nil 328 "Hook that runs after loading a Modus theme. 329 This is used by the command `modus-themes-toggle'." 330 :type 'hook 331 :package-version '(modus-themes . "4.0.0") 332 :version "30.1" 333 :set #'modus-themes--set-option 334 :initialize #'custom-initialize-default 335 :group 'modus-themes) 336 337 (defvaralias 'modus-themes-slanted-constructs 'modus-themes-italic-constructs) 338 339 (defcustom modus-themes-italic-constructs nil 340 "Use italic font forms in more code constructs." 341 :group 'modus-themes 342 :package-version '(modus-themes . "1.5.0") 343 :version "28.1" 344 :type 'boolean 345 :set #'modus-themes--set-option 346 :initialize #'custom-initialize-default 347 :link '(info-link "(modus-themes) Italic constructs")) 348 349 (defcustom modus-themes-bold-constructs nil 350 "Use bold text in more code constructs." 351 :group 'modus-themes 352 :package-version '(modus-themes . "1.0.0") 353 :version "28.1" 354 :type 'boolean 355 :set #'modus-themes--set-option 356 :initialize #'custom-initialize-default 357 :link '(info-link "(modus-themes) Bold constructs")) 358 359 (defcustom modus-themes-variable-pitch-ui nil 360 "Use proportional fonts (variable-pitch) in UI elements. 361 This includes the mode line, header line, tab bar, and tab line." 362 :group 'modus-themes 363 :package-version '(modus-themes . "1.1.0") 364 :version "28.1" 365 :type 'boolean 366 :set #'modus-themes--set-option 367 :initialize #'custom-initialize-default 368 :link '(info-link "(modus-themes) UI typeface")) 369 370 (defcustom modus-themes-mixed-fonts nil 371 "Non-nil to enable inheritance from `fixed-pitch' in some faces. 372 373 This is done to allow spacing-sensitive constructs, such as Org 374 tables and code blocks, to remain monospaced when users opt for 375 something like the command `variable-pitch-mode'. 376 377 Users may need to explicitly configure the font family of 378 `fixed-pitch' in order to get a consistent experience with their 379 typography (also check the `fontaine' package on GNU ELPA (by 380 Protesilaos))." 381 :group 'modus-themes 382 :package-version '(modus-themes . "1.7.0") 383 :version "29.1" 384 :type 'boolean 385 :set #'modus-themes--set-option 386 :initialize #'custom-initialize-default 387 :link '(info-link "(modus-themes) Mixed fonts")) 388 389 (defconst modus-themes--weight-widget 390 '(choice :tag "Font weight (must be supported by the typeface)" 391 (const :tag "Unspecified (use whatever the default is)" nil) 392 (const :tag "Thin" thin) 393 (const :tag "Ultra-light" ultralight) 394 (const :tag "Extra-light" extralight) 395 (const :tag "Light" light) 396 (const :tag "Semi-light" semilight) 397 (const :tag "Regular" regular) 398 (const :tag "Medium" medium) 399 (const :tag "Semi-bold" semibold) 400 (const :tag "Bold" bold) 401 (const :tag "Extra-bold" extrabold) 402 (const :tag "Ultra-bold" ultrabold)) 403 "List of supported font weights used by `defcustom' forms.") 404 405 (defconst modus-themes--headings-widget 406 `(set :tag "Properties" :greedy t 407 (const :tag "Proportionately spaced font (variable-pitch)" variable-pitch) 408 ,modus-themes--weight-widget 409 (radio :tag "Height" 410 (float :tag "Floating point to adjust height by") 411 (cons :tag "Cons cell of `(height . FLOAT)'" 412 (const :tag "The `height' key (constant)" height) 413 (float :tag "Floating point")))) 414 "Refer to the doc string of `modus-themes-headings'. 415 This is a helper variable intended for internal use.") 416 417 (defcustom modus-themes-headings nil 418 "Heading styles with optional list of values per heading level. 419 420 This is an alist that accepts a (KEY . LIST-OF-VALUES) 421 combination. The KEY is either a number, representing the 422 heading's level (0-8) or t, which pertains to the fallback style. 423 The named keys `agenda-date' and `agenda-structure' apply to the 424 Org agenda. 425 426 Level 0 is used for what counts as a document title or 427 equivalent, such as the #+title construct we find in Org files. 428 Levels 1-8 are regular headings. 429 430 The LIST-OF-VALUES covers symbols that refer to properties, as 431 described below. Here is a complete sample with various 432 stylistic combinations, followed by a presentation of all 433 available properties: 434 435 (setq modus-themes-headings 436 (quote ((1 . (variable-pitch 1.5)) 437 (2 . (1.3)) 438 (agenda-date . (1.3)) 439 (agenda-structure . (variable-pitch light 1.8)) 440 (t . (1.1))))) 441 442 By default (a nil value for this variable), all headings have a 443 bold typographic weight, use a desaturated text color, have a 444 font family that is the same as the `default' face (typically 445 monospaced), and a height that is equal to the `default' face's 446 height. 447 448 A `variable-pitch' property changes the font family of the 449 heading to that of the `variable-pitch' face (normally a 450 proportionately spaced typeface). 451 452 The symbol of a weight attribute adjusts the font of the heading 453 accordingly, such as `light', `semibold', etc. Valid symbols are 454 defined in the variable `modus-themes-weights'. The absence of a 455 weight means that bold will be used by virtue of inheriting the 456 `bold' face (check the manual for tweaking bold and italic 457 faces). 458 459 A number, expressed as a floating point (e.g. 1.5), adjusts the 460 height of the heading to that many times the base font size. The 461 default height is the same as 1.0, though it need not be 462 explicitly stated. Instead of a floating point, an acceptable 463 value can be in the form of a cons cell like (height . FLOAT) 464 or (height FLOAT), where FLOAT is the given number. 465 466 Combinations of any of those properties are expressed as a list, 467 like in these examples: 468 469 (semibold) 470 (variable-pitch semibold 1.3) 471 (variable-pitch semibold (height 1.3)) ; same as above 472 (variable-pitch semibold (height . 1.3)) ; same as above 473 474 The order in which the properties are set is not significant. 475 476 In user configuration files the form may look like this: 477 478 (setq modus-themes-headings 479 (quote ((1 . (variable-pitch 1.5)) 480 (2 . (1.3)) 481 (agenda-date . (1.3)) 482 (agenda-structure . (variable-pitch light 1.8)) 483 (t . (1.1))))) 484 485 When defining the styles per heading level, it is possible to 486 pass a non-nil value (t) instead of a list of properties. This 487 will retain the original aesthetic for that level. For example: 488 489 (setq modus-themes-headings 490 (quote ((1 . t) ; keep the default style 491 (2 . (semibold 1.2)) 492 (t . (variable-pitch))))) ; style for all other headings 493 494 (setq modus-themes-headings 495 (quote ((1 . (variable-pitch extrabold 1.5)) 496 (2 . (semibold)) 497 (t . t)))) ; default style for all other levels 498 499 Note that the text color of headings, of their background, and 500 overline can all be set via the overrides. It is possible to 501 have any color combination for any heading level (something that 502 could not be done in older versions of the themes). 503 504 Read Info node `(modus-themes) Option for palette overrides' as 505 well as Info node `(modus-themes) Make headings more or less 506 colorful'. Else check `modus-themes-common-palette-overrides' 507 and related user options." 508 :group 'modus-themes 509 :package-version '(modus-themes . "4.0.0") 510 :version "30.1" 511 :type `(alist 512 :options ,(mapcar (lambda (el) 513 (list el modus-themes--headings-widget)) 514 '(0 1 2 3 4 5 6 7 8 t agenda-date agenda-structure)) 515 :key-type symbol 516 :value-type ,modus-themes--headings-widget) 517 :set #'modus-themes--set-option 518 :initialize #'custom-initialize-default 519 :link '(info-link "(modus-themes) Heading styles")) 520 521 (make-obsolete-variable 'modus-themes-org-blocks nil "4.4.0: Use palette overrides") 522 523 (defcustom modus-themes-completions nil 524 "Control the style of completion user interfaces. 525 526 This affects Company, Corfu, Flx, Icomplete/Fido, Ido, Ivy, 527 Orderless, Vertico, and the standard *Completions* buffer. The 528 value is an alist of expressions, each of which takes the form 529 of (KEY . LIST-OF-PROPERTIES). KEY is a symbol, while PROPERTIES 530 is a list. Here is a sample, followed by a description of the 531 particularities: 532 533 (setq modus-themes-completions 534 (quote ((matches . (extrabold underline)) 535 (selection . (semibold italic))))) 536 537 The `matches' key refers to the highlighted characters that 538 correspond to the user's input. When its properties are nil or 539 an empty list, matching characters in the user interface will 540 have a bold weight and a colored foreground. The list of 541 properties may include any of the following symbols regardless of 542 the order they may appear in: 543 544 - `underline' to draw a line below the characters; 545 546 - `italic' to use a slanted font (italic or oblique forms); 547 548 - The symbol of a font weight attribute such as `light', 549 `semibold', et cetera. Valid symbols are defined in the 550 variable `modus-themes-weights'. The absence of a weight means 551 that bold will be used. 552 553 The `selection' key applies to the current line or currently 554 matched candidate, depending on the specifics of the user 555 interface. When its properties are nil or an empty list, it has 556 a subtle gray background, a bold weight, and the base foreground 557 value for the text. The list of properties it accepts is as 558 follows (order is not significant): 559 560 - `underline' to draw a line below the characters; 561 562 - `italic' to use a slanted font (italic or oblique forms); 563 564 - The symbol of a font weight attribute such as `light', 565 `semibold', et cetera. Valid symbols are defined in the 566 variable `modus-themes-weights'. The absence of a weight means 567 that bold will be used. 568 569 Apart from specifying each key separately, a catch-all list is 570 accepted. This is only useful when the desired aesthetic is the 571 same across all keys that are not explicitly referenced. For 572 example, this: 573 574 (setq modus-themes-completions 575 (quote ((t . (extrabold underline))))) 576 577 Is the same as: 578 579 (setq modus-themes-completions 580 (quote ((matches . (extrabold underline)) 581 (selection . (extrabold underline)))))" 582 :group 'modus-themes 583 :package-version '(modus-themes . "4.0.0") 584 :version "30.1" 585 :type `(set 586 (cons :tag "Matches" 587 (const matches) 588 (set :tag "Style of matches" :greedy t 589 ,modus-themes--weight-widget 590 (const :tag "Italic font (oblique or slanted forms)" italic) 591 (const :tag "Underline" underline))) 592 (cons :tag "Selection" 593 (const selection) 594 (set :tag "Style of selection" :greedy t 595 ,modus-themes--weight-widget 596 (const :tag "Italic font (oblique or slanted forms)" italic) 597 (const :tag "Underline" underline))) 598 (cons :tag "Fallback for both matches and selection" 599 (const t) 600 (set :tag "Style of both matches and selection" :greedy t 601 ,modus-themes--weight-widget 602 (const :tag "Italic font (oblique or slanted forms)" italic) 603 (const :tag "Underline" underline)))) 604 :set #'modus-themes--set-option 605 :initialize #'custom-initialize-default 606 :link '(info-link "(modus-themes) Completion UIs")) 607 608 (defcustom modus-themes-prompts nil 609 "Use subtle or intense styles for minibuffer and REPL prompts. 610 611 The value is a list of properties, each designated by a symbol. 612 The default (a nil value or an empty list) means to only use a 613 subtle colored foreground color. 614 615 The `italic' property adds a slant to the font's forms (italic or 616 oblique forms, depending on the typeface). 617 618 The symbol of a font weight attribute such as `light', `semibold', 619 et cetera, adds the given weight to links. Valid symbols are 620 defined in the variable `modus-themes-weights'. The absence of a 621 weight means that the one of the underlying text will be used. 622 623 Combinations of any of those properties are expressed as a list, 624 like in these examples: 625 626 (bold italic) 627 (italic semibold) 628 629 The order in which the properties are set is not significant. 630 631 In user configuration files the form may look like this: 632 633 (setq modus-themes-prompts (quote (extrabold italic)))" 634 :group 'modus-themes 635 :package-version '(modus-themes . "4.0.0") 636 :version "30.1" 637 :type `(set :tag "Properties" :greedy t 638 (const :tag "Italic font slant" italic) 639 ,modus-themes--weight-widget) 640 :set #'modus-themes--set-option 641 :initialize #'custom-initialize-default 642 :link '(info-link "(modus-themes) Command prompts")) 643 644 (defcustom modus-themes-common-palette-overrides nil 645 "Set palette overrides for all the Modus themes. 646 647 Mirror the elements of a theme's palette, overriding their value. 648 The palette variables are named THEME-NAME-palette, while 649 individual theme overrides are THEME-NAME-palette-overrides. The 650 THEME-NAME is one of the symbols in `modus-themes-items'. For 651 example: 652 653 - `modus-operandi-palette' 654 - `modus-operandi-palette-overrides' 655 656 Individual theme overrides take precedence over these common 657 overrides. 658 659 The idea of common overrides is to change semantic color 660 mappings, such as to make the cursor red. Wherea theme-specific 661 overrides can also be used to change the value of a named color, 662 such as what hexadecimal RGB value the red-warmer symbol 663 represents." 664 :group 'modus-themes 665 :package-version '(modus-themes . "4.0.0") 666 :version "30.1" 667 :type '(repeat (list symbol (choice symbol string))) 668 ;; ;; NOTE 2023-01-07: The following is a functioning version of the 669 ;; ;; intended :type. However, I think the Custom UI is really 670 ;; ;; awkward for this specific case. Maybe the generic type I have 671 ;; ;; above is better, as it encourages the user to write out the 672 ;; ;; code and read the manual. Counter-arguments are welcome. 673 ;; 674 ;; :type `(repeat (list (radio :tag "Palette key to override" 675 ;; ,@(mapcar (lambda (x) 676 ;; (list 'const x)) 677 ;; (mapcar #'car (modus-themes--current-theme-palette)))) 678 ;; (choice :tag "Value to assign" :value unspecified 679 ;; (const :tag "`unspecified' (remove the original color)" unspecified) 680 ;; (string :tag "String with color name (e.g. \"gray50\") or hex RGB (e.g. \"#123456\")" 681 ;; :match-inline (color-supported-p val)) 682 ;; (radio :tag "Palette key to map to" 683 ;; ,@(mapcar (lambda (x) 684 ;; (list 'const x)) 685 ;; (mapcar #'car (modus-themes--current-theme-palette))))))) 686 :set #'modus-themes--set-option 687 :initialize #'custom-initialize-default 688 :link '(info-link "(modus-themes) Palette overrides")) 689 690 691 692 ;;;; Presets of palette overrides 693 694 (defvar modus-themes-preset-overrides-faint 695 '((bg-completion bg-inactive) 696 (bg-hl-line bg-dim) 697 (bg-paren-match bg-cyan-subtle) 698 (bg-region bg-active) 699 700 (bg-mode-line-active bg-inactive) 701 (border-mode-line-active fg-dim) 702 (bg-mode-line-inactive bg-dim) 703 (border-mode-line-inactive bg-active) 704 705 (bg-tab-bar bg-inactive) 706 (bg-tab-current bg-main) 707 (bg-tab-other bg-active) 708 709 (fringe unspecified) 710 (builtin maroon) 711 (comment fg-dim) 712 (constant blue-faint) 713 (docstring fg-alt) 714 (docmarkup magenta-faint) 715 (fnname pink) 716 (keyword indigo) 717 (preprocessor rust) 718 (string slate) 719 (type cyan-faint) 720 (variable cyan-faint) 721 (rx-construct gold) 722 (rx-backslash olive) 723 724 (underline-err red-faint) 725 (underline-warning yellow-faint) 726 (underline-note cyan-faint) 727 728 (bg-button-active bg-main) 729 (fg-button-active fg-main) 730 (bg-button-inactive bg-inactive) 731 (fg-button-inactive "gray50") 732 733 (date-common cyan-faint) 734 (date-deadline red-faint) 735 (date-event fg-alt) 736 (date-holiday magenta) 737 (date-now fg-main) 738 (date-scheduled yellow-faint) 739 (date-weekday fg-dim) 740 (date-weekend fg-dim) 741 742 (name maroon) 743 (identifier fg-dim) 744 745 (fg-line-number-active fg-main) 746 (fg-line-number-inactive "gray50") 747 (bg-line-number-active unspecified) 748 (bg-line-number-inactive unspecified) 749 750 (fg-link blue-faint) 751 (bg-link unspecified) 752 (underline-link bg-active) 753 754 (fg-link-symbolic cyan-faint) 755 (bg-link-symbolic unspecified) 756 (underline-link-symbolic bg-active) 757 758 (fg-link-visited magenta-faint) 759 (bg-link-visited unspecified) 760 (underline-link-visited bg-active) 761 762 (mail-cite-0 cyan-faint) 763 (mail-cite-1 yellow-faint) 764 (mail-cite-2 green-faint) 765 (mail-cite-3 red-faint) 766 (mail-part olive) 767 (mail-recipient indigo) 768 (mail-subject maroon) 769 (mail-other slate) 770 771 (fg-prompt cyan-faint) 772 773 (fg-prose-code olive) 774 (fg-prose-macro indigo) 775 (fg-prose-verbatim maroon) 776 777 (prose-done green-faint) 778 (prose-tag rust) 779 (prose-todo red-faint) 780 781 (rainbow-0 fg-main) 782 (rainbow-1 magenta) 783 (rainbow-2 cyan) 784 (rainbow-3 red-faint) 785 (rainbow-4 yellow-faint) 786 (rainbow-5 magenta-cooler) 787 (rainbow-6 green) 788 (rainbow-7 blue-warmer) 789 (rainbow-8 magenta-faint)) 790 "Preset for palette overrides with faint coloration. 791 792 This changes many parts of the theme to make them look less 793 colorful/intense. Grays are toned down, gray backgrounds are 794 removed from some contexts, and almost all accent colors are 795 desaturated. 796 797 All the preset overrides the themes provide (including this one): 798 799 - `modus-themes-preset-overrides-faint' 800 - `modus-themes-preset-overrides-intense' 801 - `modus-themes-preset-overrides-cooler' 802 - `modus-themes-preset-overrides-warmer' 803 804 To set a preset, assign its symbol without a quote as the value 805 of the `modus-themes-common-palette-overrides' or as the value of 806 theme-specific options such as `modus-operandi-palette-overrides'. 807 808 For overriding named colors and/or semantic color mappings read 809 Info node `(modus-themes) Option for palette overrides'.") 810 811 (defvar modus-themes-preset-overrides-intense 812 '((bg-region bg-cyan-intense) 813 814 (bg-completion bg-cyan-subtle) 815 (bg-hover bg-yellow-intense) 816 (bg-hover-secondary bg-magenta-intense) 817 (bg-hl-line bg-cyan-subtle) 818 819 (bg-mode-line-active bg-blue-subtle) 820 (fg-mode-line-active fg-main) 821 (border-mode-line-active blue-intense) 822 823 (fringe bg-inactive) 824 (comment red-faint) 825 826 (date-common cyan) 827 (date-deadline red) 828 (date-event blue) 829 (date-holiday magenta-warmer) 830 (date-now blue-faint) 831 (date-range blue) 832 (date-scheduled yellow-warmer) 833 (date-weekday fg-main) 834 (date-weekend red-faint) 835 836 (keybind blue-intense) 837 838 (mail-cite-0 blue) 839 (mail-cite-1 yellow-cooler) 840 (mail-cite-2 green-warmer) 841 (mail-cite-3 magenta) 842 (mail-part cyan) 843 (mail-recipient magenta-cooler) 844 (mail-subject red-warmer) 845 (mail-other cyan-cooler) 846 847 (fg-prompt blue-intense) 848 849 (bg-prose-block-delimiter bg-dim) 850 (fg-prose-block-delimiter red-faint) 851 (prose-done green-intense) 852 (prose-metadata magenta-faint) 853 (prose-metadata-value blue-cooler) 854 (prose-table blue) 855 (prose-todo red-intense) 856 857 (fg-heading-0 blue-cooler) 858 (fg-heading-1 magenta-cooler) 859 (fg-heading-2 magenta-warmer) 860 (fg-heading-3 blue) 861 (fg-heading-4 cyan) 862 (fg-heading-5 green-warmer) 863 (fg-heading-6 yellow) 864 (fg-heading-7 red) 865 (fg-heading-8 magenta) 866 867 (bg-heading-0 unspecified) 868 (bg-heading-1 bg-magenta-nuanced) 869 (bg-heading-2 bg-red-nuanced) 870 (bg-heading-3 bg-blue-nuanced) 871 (bg-heading-4 bg-cyan-nuanced) 872 (bg-heading-5 bg-green-nuanced) 873 (bg-heading-6 bg-yellow-nuanced) 874 (bg-heading-7 bg-red-nuanced) 875 (bg-heading-8 bg-magenta-nuanced) 876 877 (overline-heading-0 unspecified) 878 (overline-heading-1 magenta-cooler) 879 (overline-heading-2 magenta-warmer) 880 (overline-heading-3 blue) 881 (overline-heading-4 cyan) 882 (overline-heading-5 green) 883 (overline-heading-6 yellow-cooler) 884 (overline-heading-7 red-cooler) 885 (overline-heading-8 magenta)) 886 "Preset for palette overrides with intense coloration. 887 888 This changes many parts of the theme to make them look more 889 colorful/intense. Many background colors are accented and 890 coloration is increased to pop out more. 891 892 All the preset overrides the themes provide (including this one): 893 894 - `modus-themes-preset-overrides-faint' 895 - `modus-themes-preset-overrides-intense' 896 - `modus-themes-preset-overrides-cooler' 897 - `modus-themes-preset-overrides-warmer' 898 899 To set a preset, assign its symbol without a quote as the value 900 of the `modus-themes-common-palette-overrides' or as the value of 901 theme-specific options such as `modus-operandi-palette-overrides'. 902 903 For overriding named colors and/or semantic color mappings read 904 Info node `(modus-themes) Option for palette overrides'.") 905 906 (defvar modus-themes-preset-overrides-cooler 907 '((fg-prompt blue-cooler) 908 909 (builtin magenta-faint) 910 (constant blue-cooler) 911 (fnname cyan-cooler) 912 (keyword magenta-cooler) 913 (preprocessor blue) 914 (string blue-warmer) 915 (type green-cooler) 916 (variable cyan) 917 (rx-construct blue-cooler) 918 (rx-backslash red) 919 920 (name blue-warmer) 921 (identifier magenta-faint) 922 923 (date-deadline magenta-cooler) 924 (date-scheduled yellow-cooler) 925 (date-weekday blue-faint) 926 (date-weekend red-faint) 927 928 (mail-cite-0 blue-faint) 929 (mail-cite-1 cyan-cooler) 930 (mail-cite-2 magenta-faint) 931 (mail-cite-3 yellow-cooler) 932 (mail-part cyan) 933 (mail-recipient blue-warmer) 934 (mail-subject magenta-cooler) 935 (mail-other blue) 936 937 (prose-tag fg-dim) 938 (fg-prose-verbatim blue-cooler)) 939 "Preset of palette overrides with cooler colors. 940 941 This changes parts of the palette to use more blue and 942 blue-tinted colors. 943 944 All the preset overrides the themes provide (including this one): 945 946 - `modus-themes-preset-overrides-faint' 947 - `modus-themes-preset-overrides-intense' 948 - `modus-themes-preset-overrides-cooler' 949 - `modus-themes-preset-overrides-warmer' 950 951 To set a preset, assign its symbol without a quote as the value 952 of the `modus-themes-common-palette-overrides' or as the value of 953 theme-specific options such as `modus-operandi-palette-overrides'. 954 955 For overriding named colors and/or semantic color mappings read 956 Info node `(modus-themes) Option for palette overrides'.") 957 958 (defvar modus-themes-preset-overrides-warmer 959 '((fg-prompt magenta-warmer) 960 961 (builtin magenta) 962 (constant blue-warmer) 963 (fnname magenta-cooler) 964 (keyword magenta-warmer) 965 (preprocessor red-cooler) 966 (string green-warmer) 967 (type cyan-cooler) 968 (variable cyan) 969 (rx-construct blue-cooler) 970 (rx-backslash red-warmer) 971 972 (name blue-warmer) 973 (identifier magenta) 974 (keybind magenta-warmer) 975 976 (accent-0 magenta-warmer) 977 (accent-1 cyan) 978 (accent-2 blue-warmer) 979 (accent-3 red-cooler) 980 981 (date-common cyan-cooler) 982 (date-holiday magenta-warmer) 983 984 (mail-cite-0 magenta-faint) 985 (mail-cite-1 cyan-cooler) 986 (mail-cite-2 green-warmer) 987 (mail-cite-3 red-faint) 988 (mail-part cyan) 989 (mail-recipient magenta) 990 (mail-subject blue-warmer) 991 (mail-other magenta-warmer) 992 993 (fg-prose-macro red-cooler) 994 (prose-tag fg-dim)) 995 "Preset of palette overrides with warmer colors. 996 997 This changes many parts of the theme to use warmer colors, 998 including green and yellow. 999 1000 All the preset overrides the themes provide (including this one): 1001 1002 - `modus-themes-preset-overrides-faint' 1003 - `modus-themes-preset-overrides-intense' 1004 - `modus-themes-preset-overrides-cooler' 1005 - `modus-themes-preset-overrides-warmer' 1006 1007 To set a preset, assign its symbol without a quote as the value 1008 of the `modus-themes-common-palette-overrides' or as the value of 1009 theme-specific options such as `modus-operandi-palette-overrides'. 1010 1011 For overriding named colors and/or semantic color mappings read 1012 Info node `(modus-themes) Option for palette overrides'.") 1013 1014 1015 1016 ;;;; Helper functions for theme setup 1017 1018 ;; This is the WCAG formula: https://www.w3.org/TR/WCAG20-TECHS/G18.html 1019 (defun modus-themes--wcag-contribution (channel weight) 1020 "Return the CHANNEL contribution to overall luminance given WEIGHT." 1021 (* weight 1022 (if (<= channel 0.03928) 1023 (/ channel 12.92) 1024 (expt (/ (+ channel 0.055) 1.055) 2.4)))) 1025 1026 (defun modus-themes-wcag-formula (hex) 1027 "Get WCAG value of color value HEX. 1028 The value is defined in hexadecimal RGB notation, such #123456." 1029 (let ((channels (color-name-to-rgb hex)) 1030 (weights '(0.2126 0.7152 0.0722)) 1031 contribution) 1032 (while channels 1033 (push (modus-themes--wcag-contribution (pop channels) (pop weights)) contribution)) 1034 (apply #'+ contribution))) 1035 1036 ;;;###autoload 1037 (defun modus-themes-contrast (c1 c2) 1038 "Measure WCAG contrast ratio between C1 and C2. 1039 C1 and C2 are color values written in hexadecimal RGB." 1040 (let ((ct (/ (+ (modus-themes-wcag-formula c1) 0.05) 1041 (+ (modus-themes-wcag-formula c2) 0.05)))) 1042 (max ct (/ ct)))) 1043 1044 (defun modus-themes--modus-p (theme) 1045 "Return non-nil if THEME name has a modus- prefix." 1046 (string-prefix-p "modus-" (symbol-name theme))) 1047 1048 (defun modus-themes--list-enabled-themes () 1049 "Return list of `custom-enabled-themes' with modus- prefix." 1050 (seq-filter #'modus-themes--modus-p custom-enabled-themes)) 1051 1052 (defun modus-themes--load-no-enable (theme) 1053 "Load but do not enable THEME if it belongs to `custom-known-themes'." 1054 (unless (memq theme custom-known-themes) 1055 (load-theme theme :no-confirm :no-enable))) 1056 1057 (defun modus-themes--enable-themes () 1058 "Enable the Modus themes." 1059 (mapc #'modus-themes--load-no-enable modus-themes-items)) 1060 1061 (defun modus-themes--list-known-themes () 1062 "Return list of `custom-known-themes' with modus- prefix." 1063 (modus-themes--enable-themes) 1064 (seq-filter #'modus-themes--modus-p custom-known-themes)) 1065 1066 (defun modus-themes--current-theme () 1067 "Return first enabled Modus theme." 1068 (car (or (modus-themes--list-enabled-themes) 1069 (modus-themes--list-known-themes)))) 1070 1071 (defun modus-themes--palette-symbol (theme &optional overrides) 1072 "Return THEME palette as a symbol. 1073 With optional OVERRIDES, return THEME palette overrides as a 1074 symbol." 1075 (when-let ((suffix (cond 1076 ((and theme overrides) 1077 "palette-overrides") 1078 (theme 1079 "palette")))) 1080 (intern (format "%s-%s" theme suffix)))) 1081 1082 (defun modus-themes--palette-value (theme &optional overrides) 1083 "Return palette value of THEME with optional OVERRIDES." 1084 (let ((base-value (symbol-value (modus-themes--palette-symbol theme)))) 1085 (if overrides 1086 (append (symbol-value (modus-themes--palette-symbol theme :overrides)) 1087 modus-themes-common-palette-overrides 1088 base-value) 1089 base-value))) 1090 1091 (defun modus-themes--current-theme-palette (&optional overrides) 1092 "Return palette value of active Modus theme, else produce `user-error'. 1093 With optional OVERRIDES return palette value plus whatever 1094 overrides." 1095 (if-let ((theme (modus-themes--current-theme))) 1096 (if overrides 1097 (modus-themes--palette-value theme :overrides) 1098 (modus-themes--palette-value theme)) 1099 (user-error "No enabled Modus theme could be found"))) 1100 1101 (defun modus-themes--disable-themes () 1102 "Disable themes per `modus-themes-disable-other-themes'." 1103 (mapc #'disable-theme 1104 (if modus-themes-disable-other-themes 1105 custom-enabled-themes 1106 (modus-themes--list-known-themes)))) 1107 1108 (defun modus-themes-load-theme (theme) 1109 "Load THEME while disabling other themes. 1110 1111 Which themes are disabled is determined by the user option 1112 `modus-themes-disable-other-themes'. 1113 1114 Run the `modus-themes-after-load-theme-hook' as the final step 1115 after loading the THEME. 1116 1117 Return THEME." 1118 (modus-themes--disable-themes) 1119 (load-theme theme :no-confirm) 1120 (run-hooks 'modus-themes-after-load-theme-hook) 1121 theme) 1122 1123 (defun modus-themes--retrieve-palette-value (color palette) 1124 "Return COLOR from PALETTE. 1125 Use recursion until COLOR is retrieved as a string. Refrain from 1126 doing so if the value of COLOR is not a key in the PALETTE. 1127 1128 Return `unspecified' if the value of COLOR cannot be determined. 1129 This symbol is accepted by faces and is thus harmless. 1130 1131 This function is used in the macros `modus-themes-theme', 1132 `modus-themes-with-colors'." 1133 (let ((value (car (alist-get color palette)))) 1134 (cond 1135 ((or (stringp value) 1136 (eq value 'unspecified)) 1137 value) 1138 ((and (symbolp value) 1139 (memq value (mapcar #'car palette))) 1140 (modus-themes--retrieve-palette-value value palette)) 1141 (t 1142 'unspecified)))) 1143 1144 (defun modus-themes-get-color-value (color &optional overrides theme) 1145 "Return color value of named COLOR for current Modus theme. 1146 1147 COLOR is a symbol that represents a named color entry in the 1148 palette. 1149 1150 If the value is the name of another color entry in the 1151 palette (so a mapping), recur until you find the underlying color 1152 value. 1153 1154 With optional OVERRIDES as a non-nil value, account for palette 1155 overrides. Else use the default palette. 1156 1157 With optional THEME as a symbol among `modus-themes-items', use 1158 the palette of that item. Else use the current Modus theme. 1159 1160 If COLOR is not present in the palette, return the `unspecified' 1161 symbol, which is safe when used as a face attribute's value." 1162 (if-let* ((palette (if theme 1163 (modus-themes--palette-value theme overrides) 1164 (modus-themes--current-theme-palette overrides))) 1165 (value (modus-themes--retrieve-palette-value color palette))) 1166 value 1167 'unspecified)) 1168 1169 ;;;; Commands 1170 1171 (defvar modus-themes--select-theme-history nil 1172 "Minibuffer history of `modus-themes--select-prompt'.") 1173 1174 (defun modus-themes--annotate-theme (theme) 1175 "Return completion annotation for THEME." 1176 (when-let ((symbol (intern-soft theme)) 1177 (doc-string (get symbol 'theme-documentation))) 1178 (format " -- %s" 1179 (propertize (car (split-string doc-string "\\.")) 1180 'face 'completions-annotations)))) 1181 1182 (defun modus-themes--completion-table (category candidates) 1183 "Pass appropriate metadata CATEGORY to completion CANDIDATES." 1184 (lambda (string pred action) 1185 (if (eq action 'metadata) 1186 `(metadata (category . ,category)) 1187 (complete-with-action action candidates string pred)))) 1188 1189 (defun modus-themes--completion-table-candidates () 1190 "Render `modus-themes--list-known-themes' as completion with theme category." 1191 (modus-themes--completion-table 'theme (modus-themes--list-known-themes))) 1192 1193 (defun modus-themes--select-prompt () 1194 "Minibuffer prompt to select a Modus theme." 1195 (let ((completion-extra-properties `(:annotation-function ,#'modus-themes--annotate-theme))) 1196 (intern 1197 (completing-read 1198 "Select Modus theme: " 1199 (modus-themes--completion-table-candidates) 1200 nil t nil 1201 'modus-themes--select-theme-history)))) 1202 1203 ;;;###autoload 1204 (defun modus-themes-select (theme) 1205 "Load a Modus THEME using minibuffer completion. 1206 Run `modus-themes-after-load-theme-hook' after loading the theme. 1207 Disable other themes per `modus-themes-disable-other-themes'." 1208 (interactive (list (modus-themes--select-prompt))) 1209 (modus-themes-load-theme theme)) 1210 1211 (defun modus-themes--toggle-theme-p () 1212 "Return non-nil if `modus-themes-to-toggle' are valid." 1213 (mapc 1214 (lambda (theme) 1215 (if (or (memq theme modus-themes-items) 1216 (memq theme (modus-themes--list-known-themes))) 1217 theme 1218 (user-error "`%s' is not part of `modus-themes-items'" theme))) 1219 modus-themes-to-toggle)) 1220 1221 ;;;###autoload 1222 (defun modus-themes-toggle () 1223 "Toggle between the two `modus-themes-to-toggle'. 1224 If `modus-themes-to-toggle' does not specify two Modus themes, 1225 prompt with completion for a theme among our collection (this is 1226 practically the same as the `modus-themes-select' command). 1227 1228 Run `modus-themes-after-load-theme-hook' after loading the theme. 1229 Disable other themes per `modus-themes-disable-other-themes'." 1230 (interactive) 1231 (if-let* ((themes (modus-themes--toggle-theme-p)) 1232 (one (car themes)) 1233 (two (cadr themes))) 1234 (modus-themes-load-theme (if (eq (car custom-enabled-themes) one) two one)) 1235 (modus-themes-load-theme (modus-themes--select-prompt)))) 1236 1237 (defun modus-themes--list-colors-render (buffer theme &optional mappings &rest _) 1238 "Render colors in BUFFER from THEME for `modus-themes-list-colors'. 1239 Optional MAPPINGS changes the output to only list the semantic 1240 color mappings of the palette, instead of its named colors." 1241 (let* ((current-palette (modus-themes--palette-value theme mappings)) 1242 (palette (if mappings 1243 (seq-remove (lambda (cell) 1244 (stringp (cadr cell))) 1245 current-palette) 1246 current-palette)) 1247 (current-buffer buffer) 1248 (current-theme theme)) 1249 (with-help-window buffer 1250 (with-current-buffer standard-output 1251 (erase-buffer) 1252 (when (<= (display-color-cells) 256) 1253 (insert (concat "Your display terminal may not render all color previews!\n" 1254 "It seems to only support <= 256 colors.\n\n")) 1255 (put-text-property (point-min) (point) 'face 'warning)) 1256 ;; We need this to properly render the first line. 1257 (insert " ") 1258 (dolist (cell palette) 1259 (let* ((name (car cell)) 1260 (color (modus-themes-get-color-value name mappings theme)) 1261 (pad (make-string 10 ?\s)) 1262 (fg (if (eq color 'unspecified) 1263 (progn 1264 (readable-foreground-color (modus-themes-get-color-value 'bg-main nil theme)) 1265 (setq pad (make-string 6 ?\s))) 1266 (readable-foreground-color color)))) 1267 (let ((old-point (point))) 1268 (insert (format "%s %s" color pad)) 1269 (put-text-property old-point (point) 'face `( :foreground ,color))) 1270 (let ((old-point (point))) 1271 (insert (format " %s %s %s\n" color pad name)) 1272 (put-text-property old-point (point) 1273 'face `( :background ,color 1274 :foreground ,fg 1275 :extend t))) 1276 ;; We need this to properly render the last line. 1277 (insert " "))) 1278 (setq-local revert-buffer-function 1279 (lambda (_ignore-auto _noconfirm) 1280 (modus-themes--list-colors-render current-buffer current-theme mappings))))))) 1281 1282 (defvar modus-themes--list-colors-prompt-history '() 1283 "Minibuffer history for `modus-themes--list-colors-prompt'.") 1284 1285 (defun modus-themes--list-colors-prompt () 1286 "Prompt for Modus theme. 1287 Helper function for `modus-themes-list-colors'." 1288 (let ((def (format "%s" (modus-themes--current-theme))) 1289 (completion-extra-properties `(:annotation-function ,#'modus-themes--annotate-theme))) 1290 (completing-read 1291 (format "Use palette from theme [%s]: " def) 1292 (modus-themes--completion-table-candidates) 1293 nil t nil 1294 'modus-themes--list-colors-prompt-history def))) 1295 1296 (defun modus-themes-list-colors (theme &optional mappings) 1297 "Preview named colors of the Modus THEME of choice. 1298 With optional prefix argument for MAPPINGS preview the semantic 1299 color mappings instead of the named colors." 1300 (interactive (list (intern (modus-themes--list-colors-prompt)) current-prefix-arg)) 1301 (modus-themes--list-colors-render 1302 (format (if mappings "*%s-list-mappings*" "*%s-list-colors*") theme) 1303 theme 1304 mappings)) 1305 1306 (defalias 'modus-themes-preview-colors 'modus-themes-list-colors 1307 "Alias of `modus-themes-list-colors'.") 1308 1309 (defun modus-themes-list-colors-current (&optional mappings) 1310 "Call `modus-themes-list-colors' for the current Modus theme. 1311 Optional prefix argument MAPPINGS has the same meaning as for 1312 `modus-themes-list-colors'." 1313 (interactive "P") 1314 (modus-themes-list-colors (modus-themes--current-theme) mappings)) 1315 1316 (defalias 'modus-themes-preview-colors-current 'modus-themes-list-colors-current 1317 "Alias of `modus-themes-list-colors-current'.") 1318 1319 1320 1321 ;;;; Internal functions 1322 1323 (defun modus-themes--warn (option) 1324 "Warn that OPTION has changed." 1325 (prog1 nil 1326 (display-warning 1327 'modus-themes 1328 (format "`%s' has changed; please read the updated documentation" option) 1329 :warning))) 1330 1331 (defun modus-themes--list-or-warn (option) 1332 "Return list or nil value of OPTION, else `modus-themes--warn'." 1333 (let* ((value (symbol-value option))) 1334 (if (or (null value) (listp value)) 1335 value 1336 (modus-themes--warn option)))) 1337 1338 (defun modus-themes--property-lookup (properties alist-key list-pred default) 1339 "Return value from property alist or list. 1340 Check PROPERTIES for an alist value that corresponds to 1341 ALIST-KEY. If no alist is present, search the PROPERTIES 1342 list given LIST-PRED, using DEFAULT as a fallback." 1343 (if-let* ((val (or (alist-get alist-key properties) 1344 (seq-filter (lambda (x) (funcall list-pred x)) properties) 1345 default)) 1346 ((listp val))) 1347 (car val) 1348 val)) 1349 1350 ;; Helper functions that are meant to ease the implementation of the 1351 ;; above customization variables. 1352 (defun modus-themes--bold-weight () 1353 "Conditional use of a heavier text weight." 1354 (when modus-themes-bold-constructs 1355 (list :inherit 'bold))) 1356 1357 (defun modus-themes--slant () 1358 "Conditional use of italics for slant attribute." 1359 (when modus-themes-italic-constructs 1360 (list :inherit 'italic))) 1361 1362 (defun modus-themes--fixed-pitch () 1363 "Conditional application of `fixed-pitch' inheritance." 1364 (when modus-themes-mixed-fonts 1365 (list :inherit 'fixed-pitch))) 1366 1367 (defun modus-themes--variable-pitch-ui () 1368 "Conditional use of `variable-pitch' in UI elements." 1369 (when modus-themes-variable-pitch-ui 1370 (list :inherit 'variable-pitch))) 1371 1372 (defun modus-themes--prompt (fg bg) 1373 "Conditional use of colors for text prompt faces. 1374 FG is the prompt's standard foreground. BG is a background 1375 color that is combined with FG-FOR-BG." 1376 (let* ((properties (modus-themes--list-or-warn 'modus-themes-prompts)) 1377 (weight (modus-themes--weight properties))) 1378 (list :inherit 1379 (cond 1380 ((and (memq 'bold properties) 1381 (memq 'italic properties)) 1382 'bold-italic) 1383 ((memq 'italic properties) 1384 'italic) 1385 ((memq 'bold properties) 1386 'bold) 1387 ('unspecified)) 1388 :background bg 1389 :foreground fg 1390 :weight 1391 ;; If we have `bold' specifically, we inherit the face of 1392 ;; the same name. This allows the user to customise that 1393 ;; face, such as to change its font family. 1394 (if (and weight (not (eq weight 'bold))) 1395 weight 1396 'unspecified)))) 1397 1398 (defconst modus-themes-weights 1399 '( thin ultralight extralight light semilight regular medium 1400 semibold bold heavy extrabold ultrabold) 1401 "List of font weights.") 1402 1403 (defun modus-themes--weight (list) 1404 "Search for `modus-themes-weights' weight in LIST." 1405 (catch 'found 1406 (dolist (elt list) 1407 (when (memq elt modus-themes-weights) 1408 (throw 'found elt))))) 1409 1410 (defun modus-themes--heading (level fg &optional bg ol) 1411 "Conditional styles for `modus-themes-headings'. 1412 1413 LEVEL is the heading's position in their order. FG is the 1414 default text color. Optional BG is an appropriate background. 1415 Optional OL is the color of an overline." 1416 (let* ((key (alist-get level modus-themes-headings)) 1417 (style (or key (alist-get t modus-themes-headings))) 1418 (style-listp (listp style)) 1419 (properties style) 1420 (var (when (and style-listp (memq 'variable-pitch properties)) 'variable-pitch)) 1421 (weight (when style-listp (modus-themes--weight style)))) 1422 (list :inherit (cond 1423 ((not style-listp) 'bold) 1424 ;; `no-bold' is for backward compatibility because we cannot 1425 ;; deprecate a variable's value. 1426 ((or weight (memq 'no-bold properties)) 1427 var) 1428 (var (append (list 'bold) (list var))) 1429 (t 'bold)) 1430 :background (or bg 'unspecified) 1431 :foreground fg 1432 :overline (or ol 'unspecified) 1433 :height (if style-listp 1434 (modus-themes--property-lookup properties 'height #'floatp 'unspecified) 1435 'unspecified) 1436 :weight (or weight 'unspecified)))) 1437 1438 (defun modus-themes--completion-line (bg) 1439 "Styles for `modus-themes-completions' with BG as the background." 1440 (let* ((var (modus-themes--list-or-warn 'modus-themes-completions)) 1441 (properties (or (alist-get 'selection var) (alist-get t var))) 1442 (italic (memq 'italic properties)) 1443 (weight (modus-themes--weight properties)) 1444 (bold (when (and weight (eq weight 'bold)) 'bold))) 1445 (list 1446 :inherit 1447 (cond 1448 ((and italic weight (not (eq weight 'bold))) 1449 'italic) 1450 ((and weight (not (eq weight 'bold))) 1451 'unspecified) 1452 (italic 'bold-italic) 1453 ('bold)) 1454 :background bg 1455 :foreground 'unspecified 1456 :underline 1457 (if (memq 'underline properties) t 'unspecified) 1458 :weight 1459 (if (and weight (null bold)) weight 'unspecified)))) 1460 1461 (defun modus-themes--completion-match (fg bg) 1462 "Styles for `modus-themes-completions'. 1463 FG and BG are the main colors." 1464 (let* ((var (modus-themes--list-or-warn 'modus-themes-completions)) 1465 (properties (or (alist-get 'matches var) (alist-get t var))) 1466 (italic (memq 'italic properties)) 1467 (weight (modus-themes--weight properties)) 1468 (bold (when (and weight (eq weight 'bold)) 'bold))) 1469 (list 1470 :inherit 1471 (cond 1472 ((and italic weight (not (eq weight 'bold))) 1473 'italic) 1474 ((and weight (not (eq weight 'bold))) 1475 'unspecified) 1476 (italic 'bold-italic) 1477 ('bold)) 1478 :background bg 1479 :foreground fg 1480 :underline 1481 (if (memq 'underline properties) t 'unspecified) 1482 :weight 1483 (if (and weight (null bold)) weight 'unspecified)))) 1484 1485 1486 1487 ;;;; Face specifications 1488 1489 (defconst modus-themes-faces 1490 '( 1491 ;;;; custom faces 1492 ;; these bespoke faces are inherited by other constructs below 1493 ;;;;; just the foregrounds 1494 `(modus-themes-fg-red ((,c :foreground ,red))) 1495 `(modus-themes-fg-red-warmer ((,c :foreground ,red-warmer))) 1496 `(modus-themes-fg-red-cooler ((,c :foreground ,red-cooler))) 1497 `(modus-themes-fg-red-faint ((,c :foreground ,red-faint))) 1498 `(modus-themes-fg-red-intense ((,c :foreground ,red-intense))) 1499 `(modus-themes-fg-green ((,c :foreground ,green))) 1500 `(modus-themes-fg-green-warmer ((,c :foreground ,green-warmer))) 1501 `(modus-themes-fg-green-cooler ((,c :foreground ,green-cooler))) 1502 `(modus-themes-fg-green-faint ((,c :foreground ,green-faint))) 1503 `(modus-themes-fg-green-intense ((,c :foreground ,green-intense))) 1504 `(modus-themes-fg-yellow ((,c :foreground ,yellow))) 1505 `(modus-themes-fg-yellow-warmer ((,c :foreground ,yellow-warmer))) 1506 `(modus-themes-fg-yellow-cooler ((,c :foreground ,yellow-cooler))) 1507 `(modus-themes-fg-yellow-faint ((,c :foreground ,yellow-faint))) 1508 `(modus-themes-fg-yellow-intense ((,c :foreground ,yellow-intense))) 1509 `(modus-themes-fg-blue ((,c :foreground ,blue))) 1510 `(modus-themes-fg-blue-warmer ((,c :foreground ,blue-warmer))) 1511 `(modus-themes-fg-blue-cooler ((,c :foreground ,blue-cooler))) 1512 `(modus-themes-fg-blue-faint ((,c :foreground ,blue-faint))) 1513 `(modus-themes-fg-blue-intense ((,c :foreground ,blue-intense))) 1514 `(modus-themes-fg-magenta ((,c :foreground ,magenta))) 1515 `(modus-themes-fg-magenta-warmer ((,c :foreground ,magenta-warmer))) 1516 `(modus-themes-fg-magenta-cooler ((,c :foreground ,magenta-cooler))) 1517 `(modus-themes-fg-magenta-faint ((,c :foreground ,magenta-faint))) 1518 `(modus-themes-fg-magenta-intense ((,c :foreground ,magenta-intense))) 1519 `(modus-themes-fg-cyan ((,c :foreground ,cyan))) 1520 `(modus-themes-fg-cyan-warmer ((,c :foreground ,cyan-warmer))) 1521 `(modus-themes-fg-cyan-cooler ((,c :foreground ,cyan-cooler))) 1522 `(modus-themes-fg-cyan-faint ((,c :foreground ,cyan-faint))) 1523 `(modus-themes-fg-cyan-intense ((,c :foreground ,cyan-intense))) 1524 ;;;;; nuanced colored backgrounds 1525 `(modus-themes-nuanced-red ((,c :background ,bg-red-nuanced :extend t))) 1526 `(modus-themes-nuanced-green ((,c :background ,bg-green-nuanced :extend t))) 1527 `(modus-themes-nuanced-yellow ((,c :background ,bg-yellow-nuanced :extend t))) 1528 `(modus-themes-nuanced-blue ((,c :background ,bg-blue-nuanced :extend t))) 1529 `(modus-themes-nuanced-magenta ((,c :background ,bg-magenta-nuanced :extend t))) 1530 `(modus-themes-nuanced-cyan ((,c :background ,bg-cyan-nuanced :extend t))) 1531 ;;;;; subtle colored backgrounds 1532 `(modus-themes-subtle-red ((,c :background ,bg-red-subtle :foreground ,fg-main))) 1533 `(modus-themes-subtle-green ((,c :background ,bg-green-subtle :foreground ,fg-main))) 1534 `(modus-themes-subtle-yellow ((,c :background ,bg-yellow-subtle :foreground ,fg-main))) 1535 `(modus-themes-subtle-blue ((,c :background ,bg-blue-subtle :foreground ,fg-main))) 1536 `(modus-themes-subtle-magenta ((,c :background ,bg-magenta-subtle :foreground ,fg-main))) 1537 `(modus-themes-subtle-cyan ((,c :background ,bg-cyan-subtle :foreground ,fg-main))) 1538 ;;;;; intense colored backgrounds 1539 `(modus-themes-intense-red ((,c :background ,bg-red-intense :foreground ,fg-main))) 1540 `(modus-themes-intense-green ((,c :background ,bg-green-intense :foreground ,fg-main))) 1541 `(modus-themes-intense-yellow ((,c :background ,bg-yellow-intense :foreground ,fg-main))) 1542 `(modus-themes-intense-blue ((,c :background ,bg-blue-intense :foreground ,fg-main))) 1543 `(modus-themes-intense-magenta ((,c :background ,bg-magenta-intense :foreground ,fg-main))) 1544 `(modus-themes-intense-cyan ((,c :background ,bg-cyan-intense :foreground ,fg-main))) 1545 ;;;;; mark indicators 1546 ;; color combinations intended for Dired, Ibuffer, or equivalent 1547 `(modus-themes-mark-alt ((,c :inherit bold :background ,bg-mark-other :foreground ,fg-mark-other))) 1548 `(modus-themes-mark-del ((,c :inherit bold :background ,bg-mark-delete :foreground ,fg-mark-delete))) 1549 `(modus-themes-mark-sel ((,c :inherit bold :background ,bg-mark-select :foreground ,fg-mark-select))) 1550 ;;;;; heading levels 1551 ;; styles for regular headings used in Org, Markdown, Info, etc. 1552 `(modus-themes-heading-0 ((,c ,@(modus-themes--heading 0 fg-heading-0 bg-heading-0 overline-heading-0)))) 1553 `(modus-themes-heading-1 ((,c ,@(modus-themes--heading 1 fg-heading-1 bg-heading-1 overline-heading-1)))) 1554 `(modus-themes-heading-2 ((,c ,@(modus-themes--heading 2 fg-heading-2 bg-heading-2 overline-heading-2)))) 1555 `(modus-themes-heading-3 ((,c ,@(modus-themes--heading 3 fg-heading-3 bg-heading-3 overline-heading-3)))) 1556 `(modus-themes-heading-4 ((,c ,@(modus-themes--heading 4 fg-heading-4 bg-heading-4 overline-heading-4)))) 1557 `(modus-themes-heading-5 ((,c ,@(modus-themes--heading 5 fg-heading-5 bg-heading-5 overline-heading-5)))) 1558 `(modus-themes-heading-6 ((,c ,@(modus-themes--heading 6 fg-heading-6 bg-heading-6 overline-heading-6)))) 1559 `(modus-themes-heading-7 ((,c ,@(modus-themes--heading 7 fg-heading-7 bg-heading-7 overline-heading-7)))) 1560 `(modus-themes-heading-8 ((,c ,@(modus-themes--heading 8 fg-heading-8 bg-heading-8 overline-heading-8)))) 1561 ;;;;; language checkers 1562 `(modus-themes-lang-error ((,c :underline (:style wave :color ,underline-err)))) 1563 `(modus-themes-lang-note ((,c :underline (:style wave :color ,underline-note)))) 1564 `(modus-themes-lang-warning ((,c :underline (:style wave :color ,underline-warning)))) 1565 ;;;;; prominent semantic notes 1566 `(modus-themes-prominent-error ((,c :background ,bg-prominent-err :foreground ,fg-prominent-err))) 1567 `(modus-themes-prominent-note ((,c :background ,bg-prominent-note :foreground ,fg-prominent-note))) 1568 `(modus-themes-prominent-warning ((,c :background ,bg-prominent-warning :foreground ,fg-prominent-warning))) 1569 ;;;;; markup 1570 `(modus-themes-prose-code ((,c :inherit modus-themes-fixed-pitch :background ,bg-prose-code :foreground ,fg-prose-code))) 1571 `(modus-themes-prose-macro ((,c :inherit modus-themes-fixed-pitch :background ,bg-prose-macro :foreground ,fg-prose-macro))) 1572 `(modus-themes-prose-verbatim ((,c :inherit modus-themes-fixed-pitch :background ,bg-prose-verbatim :foreground ,fg-prose-verbatim))) 1573 ;;;;; search 1574 `(modus-themes-search-current ((,c :background ,bg-search-current :foreground ,fg-main))) 1575 `(modus-themes-search-lazy ((,c :background ,bg-search-lazy :foreground ,fg-main))) 1576 `(modus-themes-search-replace ((,c :background ,bg-search-replace :foreground ,fg-main))) 1577 ;;;;; search regexp groups 1578 `(modus-themes-search-rx-group-0 ((,c :background ,bg-search-rx-group-0 :foreground ,fg-main))) 1579 `(modus-themes-search-rx-group-1 ((,c :background ,bg-search-rx-group-1 :foreground ,fg-main))) 1580 `(modus-themes-search-rx-group-2 ((,c :background ,bg-search-rx-group-2 :foreground ,fg-main))) 1581 `(modus-themes-search-rx-group-3 ((,c :background ,bg-search-rx-group-3 :foreground ,fg-main))) 1582 ;;;;; completion frameworks 1583 `(modus-themes-completion-match-0 ((,c ,@(modus-themes--completion-match fg-completion-match-0 bg-completion-match-0)))) 1584 `(modus-themes-completion-match-1 ((,c ,@(modus-themes--completion-match fg-completion-match-1 bg-completion-match-1)))) 1585 `(modus-themes-completion-match-2 ((,c ,@(modus-themes--completion-match fg-completion-match-2 bg-completion-match-2)))) 1586 `(modus-themes-completion-match-3 ((,c ,@(modus-themes--completion-match fg-completion-match-3 bg-completion-match-3)))) 1587 `(modus-themes-completion-selected ((,c ,@(modus-themes--completion-line bg-completion)))) 1588 ;;;;; typography 1589 `(modus-themes-bold ((,c ,@(modus-themes--bold-weight)))) 1590 `(modus-themes-fixed-pitch ((,c ,@(modus-themes--fixed-pitch)))) 1591 `(modus-themes-slant ((,c ,@(modus-themes--slant)))) 1592 `(modus-themes-ui-variable-pitch ((,c ,@(modus-themes--variable-pitch-ui)))) 1593 ;;;;; other custom faces 1594 `(modus-themes-button ((,c :inherit variable-pitch 1595 :box (:line-width 1 :color ,border :style released-button) 1596 :background ,bg-button-active 1597 :foreground ,fg-button-active))) 1598 `(modus-themes-key-binding ((,c :inherit (bold modus-themes-fixed-pitch) :foreground ,keybind))) 1599 `(modus-themes-prompt ((,c ,@(modus-themes--prompt fg-prompt bg-prompt)))) 1600 `(modus-themes-reset-soft ((,c :background ,bg-main :foreground ,fg-main 1601 :weight normal :slant normal :strike-through nil 1602 :box nil :underline nil :overline nil :extend nil))) 1603 ;;;; standard faces 1604 ;;;;; absolute essentials 1605 `(default ((,c :background ,bg-main :foreground ,fg-main))) 1606 `(cursor ((,c :background ,cursor))) 1607 `(fringe ((,c :background ,fringe :foreground ,fg-main))) 1608 `(menu ((,c :background ,bg-dim :foreground ,fg-main))) 1609 `(scroll-bar ((,c :background ,fringe :foreground ,border))) 1610 `(tool-bar ((,c :background ,bg-dim :foreground ,fg-main))) 1611 `(vertical-border ((,c :foreground ,border))) 1612 ;;;;; basic and/or ungrouped styles 1613 `(appt-notification ((,c :inherit bold :foreground ,modeline-err))) 1614 `(blink-matching-paren-offscreen ((,c :background ,bg-paren-match))) 1615 `(bold ((,c :weight bold))) 1616 `(bold-italic ((,c :inherit (bold italic)))) 1617 `(underline ((,c :underline ,fg-dim))) 1618 `(buffer-menu-buffer ((,c :inherit bold))) 1619 `(child-frame-border ((,c :background ,border))) 1620 `(comint-highlight-input ((,c :inherit bold))) 1621 `(comint-highlight-prompt ((,c :inherit modus-themes-prompt))) 1622 `(confusingly-reordered ((,c :inherit modus-themes-lang-error))) 1623 `(edmacro-label ((,c :inherit bold :foreground ,accent-0))) 1624 `(elisp-shorthand-font-lock-face ((,c :inherit font-lock-variable-name-face))) 1625 `(error ((,c :inherit bold :foreground ,err))) 1626 `(escape-glyph ((,c :foreground ,err))) 1627 `(file-name-shadow ((,c :inherit shadow))) 1628 `(header-line ((,c :inherit modus-themes-ui-variable-pitch :background ,bg-dim))) 1629 `(header-line-highlight ((,c :background ,bg-hover :foreground ,fg-main :box ,fg-main))) 1630 `(help-argument-name ((,c :inherit modus-themes-slant :foreground ,variable))) 1631 `(help-key-binding ((,c :inherit modus-themes-key-binding))) 1632 `(highlight ((,c :background ,bg-hover :foreground ,fg-main))) 1633 `(homoglyph ((,c :foreground ,warning))) 1634 `(ibuffer-locked-buffer ((,c :foreground ,warning))) 1635 `(icon-button ((,c :inherit modus-themes-button))) 1636 `(italic ((,c :slant italic))) 1637 `(nobreak-hyphen ((,c :foreground ,err))) 1638 `(nobreak-space ((,c :foreground ,err :underline t))) 1639 `(menu ((,c :inverse-video unspecified :background ,bg-active :foreground ,fg-main))) 1640 `(minibuffer-prompt ((,c :inherit modus-themes-prompt))) 1641 `(mm-command-output ((,c :foreground ,mail-part))) 1642 `(mm-uu-extract ((,c :foreground ,mail-part))) 1643 `(next-error ((,c :inherit modus-themes-prominent-error :extend t))) 1644 `(pgtk-im-0 ((,c :inherit modus-themes-prominent-note))) 1645 `(read-multiple-choice-face ((,c :inherit modus-themes-mark-sel))) 1646 `(rectangle-preview ((,c :inherit secondary-selection))) 1647 `(region ((,c :background ,bg-region :foreground ,fg-region))) 1648 `(secondary-selection ((,c :background ,bg-hover-secondary :foreground ,fg-main))) 1649 `(separator-line ((,c :underline ,bg-active))) 1650 `(shadow ((,c :foreground ,fg-dim))) 1651 `(success ((,c :inherit bold :foreground ,info))) 1652 `(trailing-whitespace ((,c :background ,bg-space-err))) 1653 `(warning ((,c :inherit bold :foreground ,warning))) 1654 ;;;;; buttons, links, widgets 1655 `(button ((,c :background ,bg-link :foreground ,fg-link :underline ,underline-link))) 1656 `(link ((,c :inherit button))) 1657 `(link-visited ((,c :background ,bg-link-visited :foreground ,fg-link-visited :underline ,underline-link-visited))) 1658 `(tooltip ((,c :background ,bg-active :foreground ,fg-main))) 1659 ;;;;; agda2-mode 1660 `(agda2-highlight-bound-variable-face ((,c :inherit font-lock-variable-name-face))) 1661 `(agda2-highlight-catchall-clause-face ((,c :background ,bg-inactive))) 1662 `(agda2-highlight-coinductive-constructor-face ((,c :inherit font-lock-type-face))) 1663 `(agda2-highlight-coverage-problem-face ((,c :inherit modus-themes-lang-error))) 1664 `(agda2-highlight-datatype-face ((,c :inherit font-lock-type-face))) 1665 `(agda2-highlight-deadcode-face ((,c :background ,bg-active))) 1666 `(agda2-highlight-dotted-face ((,c :inherit font-lock-variable-name-face))) 1667 `(agda2-highlight-error-face ((,c :inherit modus-themes-lang-error))) 1668 `(agda2-highlight-field-face ((,c :inherit font-lock-type-face))) 1669 `(agda2-highlight-function-face ((,c :inherit font-lock-function-name-face))) 1670 `(agda2-highlight-generalizable-variable-face ((,c :inherit font-lock-variable-name-face))) 1671 `(agda2-highlight-incomplete-pattern-face ((,c :inherit modus-themes-lang-warning))) 1672 `(agda2-highlight-inductive-constructor-face ((,c :inherit font-lock-type-face))) 1673 `(agda2-highlight-keyword-face ((,c :inherit font-lock-keyword-face))) 1674 `(agda2-highlight-macro-face ((,c :inherit font-lock-keyword-face))) 1675 `(agda2-highlight-module-face ((,c :inherit font-lock-variable-name-face))) 1676 `(agda2-highlight-number-face ((,c :inherit shadow))) 1677 `(agda2-highlight-operator-face ((,c :inherit font-lock-variable-name-face))) 1678 `(agda2-highlight-positivity-problem-face ((,c :inherit modus-themes-lang-warning))) 1679 `(agda2-highlight-postulate-face ((,c :inherit font-lock-type-face))) 1680 `(agda2-highlight-pragma-face ((,c :inherit font-lock-preprocessor-face))) 1681 `(agda2-highlight-primitive-face ((,c :inherit font-lock-type-face))) 1682 `(agda2-highlight-primitive-type-face ((,c :inherit font-lock-type-face))) 1683 `(agda2-highlight-record-face ((,c :inherit font-lock-type-face))) 1684 `(agda2-highlight-string-face ((,c :inherit font-lock-string-face))) 1685 `(agda2-highlight-symbol-face ((,c :inherit font-lock-constant-face))) 1686 `(agda2-highlight-termination-problem-face ((,c :inherit modus-themes-lang-warning))) 1687 `(agda2-highlight-typechecks-face ((,c :inherit font-lock-warning-face))) 1688 `(agda2-highlight-unsolved-constraint-face ((,c :inherit modus-themes-lang-warning))) 1689 `(agda2-highlight-unsolved-meta-face ((,c :inherit modus-themes-lang-warning))) 1690 ;;;;; all-the-icons 1691 `(all-the-icons-blue ((,c :foreground ,blue-cooler))) 1692 `(all-the-icons-blue-alt ((,c :foreground ,blue-warmer))) 1693 `(all-the-icons-cyan ((,c :foreground ,cyan))) 1694 `(all-the-icons-cyan-alt ((,c :foreground ,cyan-warmer))) 1695 `(all-the-icons-dblue ((,c :foreground ,blue-faint))) 1696 `(all-the-icons-dcyan ((,c :foreground ,cyan-faint))) 1697 `(all-the-icons-dgreen ((,c :foreground ,green-faint))) 1698 `(all-the-icons-dmaroon ((,c :foreground ,magenta-faint))) 1699 `(all-the-icons-dorange ((,c :foreground ,red-faint))) 1700 `(all-the-icons-dpink ((,c :foreground ,magenta-faint))) 1701 `(all-the-icons-dpurple ((,c :foreground ,magenta-cooler))) 1702 `(all-the-icons-dred ((,c :foreground ,red))) 1703 `(all-the-icons-dsilver ((,c :foreground ,cyan-faint))) 1704 `(all-the-icons-dyellow ((,c :foreground ,yellow-faint))) 1705 `(all-the-icons-green ((,c :foreground ,green))) 1706 `(all-the-icons-lblue ((,c :foreground ,blue-cooler))) 1707 `(all-the-icons-lcyan ((,c :foreground ,cyan))) 1708 `(all-the-icons-lgreen ((,c :foreground ,green-warmer))) 1709 `(all-the-icons-lmaroon ((,c :foreground ,magenta-warmer))) 1710 `(all-the-icons-lorange ((,c :foreground ,red-warmer))) 1711 `(all-the-icons-lpink ((,c :foreground ,magenta))) 1712 `(all-the-icons-lpurple ((,c :foreground ,magenta-faint))) 1713 `(all-the-icons-lred ((,c :foreground ,red-faint))) 1714 `(all-the-icons-lsilver ((,c :foreground "gray50"))) 1715 `(all-the-icons-lyellow ((,c :foreground ,yellow-warmer))) 1716 `(all-the-icons-maroon ((,c :foreground ,magenta))) 1717 `(all-the-icons-orange ((,c :foreground ,yellow-warmer))) 1718 `(all-the-icons-pink ((,c :foreground ,magenta-warmer))) 1719 `(all-the-icons-purple ((,c :foreground ,magenta-cooler))) 1720 `(all-the-icons-purple-alt ((,c :foreground ,blue-warmer))) 1721 `(all-the-icons-red ((,c :foreground ,red))) 1722 `(all-the-icons-red-alt ((,c :foreground ,red-cooler))) 1723 `(all-the-icons-silver ((,c :foreground "gray50"))) 1724 `(all-the-icons-yellow ((,c :foreground ,yellow))) 1725 ;;;;; all-the-icons-dired 1726 `(all-the-icons-dired-dir-face ((,c :foreground ,cyan-faint))) 1727 ;;;;; all-the-icons-ibuffer 1728 `(all-the-icons-ibuffer-dir-face ((,c :foreground ,cyan-faint))) 1729 `(all-the-icons-ibuffer-file-face ((,c :foreground ,blue-faint))) 1730 `(all-the-icons-ibuffer-mode-face ((,c :foreground ,cyan))) 1731 `(all-the-icons-ibuffer-size-face ((,c :foreground ,cyan-cooler))) 1732 ;;;;; annotate 1733 `(annotate-annotation ((,c :inherit modus-themes-subtle-blue))) 1734 `(annotate-annotation-secondary ((,c :inherit modus-themes-subtle-magenta))) 1735 `(annotate-highlight ((,c :background ,bg-blue-subtle :underline ,blue-intense))) 1736 `(annotate-highlight-secondary ((,c :background ,bg-magenta-subtle :underline ,magenta-intense))) 1737 ;;;;; ansi-color 1738 ;; Those are in Emacs28. 1739 `(ansi-color-black ((,c :background ,bg-term-black :foreground ,fg-term-black))) 1740 `(ansi-color-blue ((,c :background ,bg-term-blue :foreground ,fg-term-blue))) 1741 `(ansi-color-bold ((,c :inherit bold))) 1742 `(ansi-color-bright-black ((,c :background ,bg-term-black-bright :foreground ,fg-term-black-bright))) 1743 `(ansi-color-bright-blue ((,c :background ,bg-term-blue-bright :foreground ,fg-term-blue-bright))) 1744 `(ansi-color-bright-cyan ((,c :background ,bg-term-cyan-bright :foreground ,fg-term-cyan-bright))) 1745 `(ansi-color-bright-green ((,c :background ,bg-term-green-bright :foreground ,fg-term-green-bright))) 1746 `(ansi-color-bright-magenta ((,c :background ,bg-term-magenta-bright :foreground ,fg-term-magenta-bright))) 1747 `(ansi-color-bright-red ((,c :background ,bg-term-red-bright :foreground ,fg-term-red-bright))) 1748 `(ansi-color-bright-white ((,c :background ,bg-term-white-bright :foreground ,fg-term-white-bright))) 1749 `(ansi-color-bright-yellow ((,c :background ,bg-term-yellow-bright :foreground ,fg-term-yellow-bright))) 1750 `(ansi-color-cyan ((,c :background ,bg-term-cyan :foreground ,fg-term-cyan))) 1751 `(ansi-color-green ((,c :background ,bg-term-green :foreground ,fg-term-green))) 1752 `(ansi-color-magenta ((,c :background ,bg-term-magenta :foreground ,fg-term-magenta))) 1753 `(ansi-color-red ((,c :background ,bg-term-red :foreground ,fg-term-red))) 1754 `(ansi-color-white ((,c :background ,bg-term-white :foreground ,fg-term-white))) 1755 `(ansi-color-yellow ((,c :background ,bg-term-yellow :foreground ,fg-term-yellow))) 1756 ;;;;; anzu 1757 `(anzu-match-1 ((,c :inherit modus-themes-subtle-cyan))) 1758 `(anzu-match-2 ((,c :inherit modus-themes-search-current))) 1759 `(anzu-match-3 ((,c :inherit modus-themes-subtle-yellow))) 1760 `(anzu-mode-line ((,c :inherit bold))) 1761 `(anzu-mode-line-no-match ((,c :inherit error))) 1762 `(anzu-replace-highlight ((,c :inherit modus-themes-search-replace))) 1763 `(anzu-replace-to ((,c :inherit modus-themes-search-current))) 1764 ;;;;; auctex and Tex 1765 `(font-latex-bold-face ((,c :inherit bold))) 1766 `(font-latex-doctex-documentation-face ((,c :inherit font-lock-doc-face))) 1767 `(font-latex-doctex-preprocessor-face ((,c :inherit font-lock-preprocessor-face))) 1768 `(font-latex-italic-face ((,c :inherit italic))) 1769 `(font-latex-math-face ((,c :inherit font-lock-constant-face))) 1770 `(font-latex-script-char-face ((,c :inherit font-lock-builtin-face))) 1771 `(font-latex-sectioning-5-face ((,c :inherit (bold modus-themes-variable-pitch) :foreground ,fg-alt))) 1772 `(font-latex-sedate-face ((,c :inherit font-lock-keyword-face))) 1773 `(font-latex-slide-title-face ((,c :inherit modus-themes-heading-1))) 1774 `(font-latex-string-face ((,c :inherit font-lock-string-face))) 1775 `(font-latex-subscript-face ((,c :height 0.95))) 1776 `(font-latex-superscript-face ((,c :height 0.95))) 1777 `(font-latex-underline-face ((,c :inherit underline))) 1778 `(font-latex-verbatim-face ((,c :inherit modus-themes-prose-verbatim))) 1779 `(font-latex-warning-face ((,c :inherit font-lock-warning-face))) 1780 `(tex-verbatim ((,c :inherit modus-themes-prose-verbatim))) 1781 ;; `(texinfo-heading ((,c :foreground ,magenta))) 1782 `(TeX-error-description-error ((,c :inherit error))) 1783 `(TeX-error-description-help ((,c :inherit success))) 1784 `(TeX-error-description-tex-said ((,c :inherit success))) 1785 `(TeX-error-description-warning ((,c :inherit warning))) 1786 ;;;;; auto-dim-other-buffers 1787 `(auto-dim-other-buffers-face ((,c :background ,bg-inactive))) 1788 ;;;;; avy 1789 `(avy-background-face ((,c :background ,bg-dim :foreground ,fg-dim :extend t))) 1790 `(avy-goto-char-timer-face ((,c :inherit bold :background ,bg-active))) 1791 `(avy-lead-face ((,c :inherit (bold modus-themes-reset-soft) :background ,bg-char-0))) 1792 `(avy-lead-face-0 ((,c :inherit (bold modus-themes-reset-soft) :background ,bg-char-1))) 1793 `(avy-lead-face-1 ((,c :inherit modus-themes-reset-soft :background ,bg-inactive))) 1794 `(avy-lead-face-2 ((,c :inherit (bold modus-themes-reset-soft) :background ,bg-char-2))) 1795 ;;;;; aw (ace-window) 1796 `(aw-background-face ((,c :foreground "gray50"))) 1797 `(aw-key-face ((,c :inherit modus-themes-key-binding))) 1798 `(aw-leading-char-face ((,c :inherit (bold modus-themes-reset-soft) :height 1.5 :foreground ,red-intense))) 1799 `(aw-minibuffer-leading-char-face ((,c :inherit modus-themes-key-binding))) 1800 `(aw-mode-line-face ((,c :inherit bold))) 1801 ;;;;; binder 1802 `(binder-sidebar-highlight ((,c :inherit modus-themes-hl-line))) 1803 `(binder-sidebar-marked ((,c :inherit modus-themes-mark-sel))) 1804 `(binder-sidebar-missing ((,c :inherit modus-themes-mark-del))) 1805 `(binder-sidebar-tags ((,c :foreground ,variable))) 1806 ;;;;; breadcrumb 1807 `(breadcrumb-face ((,c :foreground ,fg-alt))) 1808 `(breadcrumb-imenu-leaf-face ((,c :inherit bold :foreground ,modeline-info))) ; same as `which-func' 1809 `(breadcrumb-project-leaf-face ((,c :inherit bold))) 1810 ;;;;; bongo 1811 `(bongo-album-title (( ))) 1812 `(bongo-artist ((,c :foreground ,accent-0))) 1813 `(bongo-currently-playing-track ((,c :inherit bold))) 1814 `(bongo-elapsed-track-part ((,c :background ,bg-inactive :underline t))) 1815 `(bongo-filled-seek-bar ((,c :background ,bg-hover))) 1816 `(bongo-marked-track ((,c :inherit modus-themes-mark-alt))) 1817 `(bongo-marked-track-line ((,c :background ,bg-dim))) 1818 `(bongo-played-track ((,c :inherit shadow :strike-through t))) 1819 `(bongo-track-length ((,c :inherit shadow))) 1820 `(bongo-track-title ((,c :foreground ,accent-1))) 1821 `(bongo-unfilled-seek-bar ((,c :background ,bg-dim))) 1822 ;;;;; boon 1823 `(boon-modeline-cmd ((,c :inherit modus-themes-intense-blue))) 1824 `(boon-modeline-ins ((,c :inherit modus-themes-intense-red))) 1825 `(boon-modeline-off ((,c :inherit modus-themes-intense-yellow))) 1826 `(boon-modeline-spc ((,c :inherit modus-themes-intense-green))) 1827 ;;;;; bookmark 1828 `(bookmark-face ((,c :inherit success))) 1829 `(bookmark-menu-bookmark ((,c :inherit bold))) 1830 ;;;;; calendar and diary 1831 `(calendar-month-header ((,c :inherit bold))) 1832 `(calendar-today ((,c :inherit bold :underline t))) 1833 `(calendar-weekday-header ((,c :foreground ,date-weekday))) 1834 `(calendar-weekend-header ((,c :foreground ,date-weekend))) 1835 `(diary ((,c :foreground ,date-common))) 1836 `(diary-anniversary ((,c :foreground ,date-holiday))) 1837 `(diary-time ((,c :foreground ,date-common))) 1838 `(holiday ((,c :foreground ,date-holiday))) 1839 ;;;;; calibredb 1840 ;; NOTE 2022-12-27: Calibredb needs to be reviewed. I had to 1841 ;; change the applicable colors for the transition to 1842 ;; modus-themes version 4, but I cannot test this currently (it 1843 ;; depends on an external program). 1844 `(calibredb-archive-face ((,c :foreground ,accent-3))) 1845 `(calibredb-author-face ((,c :foreground ,name))) 1846 `(calibredb-comment-face ((,c :inherit shadow))) 1847 `(calibredb-date-face ((,c :foreground ,date-common))) 1848 `(calibredb-edit-annotation-header-title-face ((,c :inherit bold))) 1849 `(calibredb-favorite-face ((,c :foreground ,red-warmer))) 1850 `(calibredb-file-face (( ))) 1851 `(calibredb-format-face ((,c :foreground ,fg-alt))) 1852 `(calibredb-highlight-face ((,c :inherit success))) 1853 `(calibredb-id-face (( ))) 1854 `(calibredb-ids-face (( ))) 1855 `(calibredb-search-header-highlight-face ((,c :background ,bg-hl-line :extend t))) 1856 `(calibredb-search-header-library-name-face ((,c :foreground ,accent-2))) 1857 `(calibredb-search-header-library-path-face ((,c :inherit bold))) 1858 `(calibredb-search-header-sort-face ((,c :inherit bold :foreground ,accent-1))) 1859 `(calibredb-search-header-total-face ((,c :inherit bold :foreground ,accent-0))) 1860 `(calibredb-search-header-filter-face ((,c :inherit bold))) 1861 `(calibredb-mark-face ((,c :inherit modus-themes-mark-sel))) 1862 `(calibredb-size-face (( ))) 1863 `(calibredb-tag-face ((,c :foreground ,fg-alt))) 1864 ;;;;; centaur-tabs 1865 `(centaur-tabs-active-bar-face ((,c :background ,blue))) 1866 `(centaur-tabs-close-mouse-face ((,c :inherit bold :foreground ,red :underline t))) 1867 `(centaur-tabs-close-selected ((,c :inherit centaur-tabs-selected))) 1868 `(centaur-tabs-close-unselected ((,c :inherit centaur-tabs-unselected))) 1869 `(centaur-tabs-modified-marker-selected ((,c :inherit centaur-tabs-selected))) 1870 `(centaur-tabs-modified-marker-unselected ((,c :inherit centaur-tabs-unselected))) 1871 `(centaur-tabs-default ((,c :background ,bg-main))) 1872 `(centaur-tabs-selected ((,c :inherit bold :box (:line-width -2 :color ,bg-tab-current) :background ,bg-tab-current))) 1873 `(centaur-tabs-selected-modified ((,c :inherit (italic centaur-tabs-selected)))) 1874 `(centaur-tabs-unselected ((,c :box (:line-width -2 :color ,bg-tab-other) :background ,bg-tab-other))) 1875 `(centaur-tabs-unselected-modified ((,c :inherit (italic centaur-tabs-unselected)))) 1876 ;;;;; change-log and log-view (`vc-print-log' and `vc-print-root-log') 1877 `(change-log-acknowledgment ((,c :foreground ,identifier))) 1878 `(change-log-conditionals ((,c :inherit error))) 1879 `(change-log-date ((,c :foreground ,date-common))) 1880 `(change-log-email ((,c :foreground ,fg-alt))) 1881 `(change-log-file ((,c :inherit bold))) 1882 `(change-log-function ((,c :inherit warning))) 1883 `(change-log-list ((,c :inherit bold))) 1884 `(change-log-name ((,c :foreground ,name))) 1885 `(log-edit-header ((,c :inherit bold))) 1886 `(log-edit-headers-separator ((,c :height 1 :background ,border :extend t))) 1887 `(log-edit-summary ((,c :inherit success))) 1888 `(log-edit-unknown-header ((,c :inherit shadow))) 1889 `(log-view-commit-body (( ))) 1890 `(log-view-file ((,c :inherit bold))) 1891 `(log-view-message ((,c :foreground ,identifier))) 1892 ;;;;; cider 1893 `(cider-deprecated-face ((,c :inherit warning))) 1894 `(cider-enlightened-face ((,c :box ,warning))) 1895 `(cider-enlightened-local-face ((,c :inherit warning))) 1896 `(cider-error-highlight-face ((,c :inherit modus-themes-lang-error))) 1897 `(cider-fringe-good-face ((,c :foreground ,info))) 1898 `(cider-instrumented-face ((,c :box ,err))) 1899 `(cider-reader-conditional-face ((,c :inherit font-lock-type-face))) 1900 `(cider-repl-prompt-face ((,c :inherit minibuffer-prompt))) 1901 `(cider-repl-stderr-face ((,c :foreground ,err))) 1902 `(cider-repl-stdout-face (( ))) 1903 `(cider-warning-highlight-face ((,c :inherit modus-themes-lang-warning))) 1904 ;;;;; circe (and lui) 1905 `(circe-fool-face ((,c :inherit shadow))) 1906 `(circe-highlight-nick-face ((,c :inherit error))) 1907 `(circe-prompt-face ((,c :inherit modus-themes-prompt))) 1908 `(circe-server-face ((,c :inherit shadow))) 1909 `(lui-button-face ((,c :inherit button))) 1910 `(lui-highlight-face ((,c :inherit error))) 1911 `(lui-time-stamp-face ((,c :foreground ,date-common))) 1912 ;;;;; citar 1913 `(citar ((,c :inherit shadow))) 1914 `(citar-highlight (( ))) 1915 ;;;;; clojure-mode 1916 `(clojure-keyword-face ((,c :inherit font-lock-builtin-face))) 1917 ;;;;; column-enforce-mode 1918 `(column-enforce-face ((,c :inherit modus-themes-prominent-error))) 1919 ;;;;; company-mode 1920 `(company-echo-common ((,c :inherit modus-themes-completion-match-0))) 1921 `(company-preview ((,c :background ,bg-dim :foreground ,fg-dim))) 1922 `(company-preview-common ((,c :inherit company-echo-common))) 1923 `(company-preview-search ((,c :background ,bg-yellow-intense))) 1924 `(company-scrollbar-bg ((,c :background ,bg-active))) 1925 `(company-scrollbar-fg ((,c :background ,fg-main))) 1926 `(company-template-field ((,c :background ,bg-active))) 1927 `(company-tooltip ((,c :background ,bg-dim))) 1928 `(company-tooltip-annotation ((,c :inherit completions-annotations))) 1929 `(company-tooltip-common ((,c :inherit company-echo-common))) 1930 `(company-tooltip-deprecated ((,c :inherit company-tooltip :strike-through t))) 1931 `(company-tooltip-mouse ((,c :inherit highlight))) 1932 `(company-tooltip-scrollbar-thumb ((,c :background ,fg-alt))) 1933 `(company-tooltip-scrollbar-track ((,c :background ,bg-inactive))) 1934 `(company-tooltip-search ((,c :inherit secondary-selection))) 1935 `(company-tooltip-search-selection ((,c :inherit secondary-selection :underline t))) 1936 `(company-tooltip-selection ((,c :inherit modus-themes-completion-selected))) 1937 ;;;;; compilation 1938 `(compilation-column-number ((,c :inherit compilation-line-number))) 1939 `(compilation-error ((,c :inherit modus-themes-bold :foreground ,err))) 1940 `(compilation-info ((,c :inherit modus-themes-bold :foreground ,info))) 1941 `(compilation-line-number ((,c :inherit shadow))) 1942 `(compilation-mode-line-exit ((,c :inherit bold))) 1943 `(compilation-mode-line-fail ((,c :inherit bold :foreground ,modeline-err))) 1944 `(compilation-mode-line-run ((,c :inherit bold :foreground ,modeline-warning))) 1945 `(compilation-warning ((,c :inherit modus-themes-bold :foreground ,warning))) 1946 ;;;;; completions 1947 `(completions-annotations ((,c :inherit modus-themes-slant :foreground ,docstring))) 1948 `(completions-common-part ((,c :inherit modus-themes-completion-match-0))) 1949 `(completions-first-difference ((,c :inherit modus-themes-completion-match-1))) 1950 `(completions-highlight ((,c :inherit modus-themes-completion-selected))) 1951 ;;;;; consult 1952 `(consult-async-split ((,c :inherit error))) 1953 `(consult-file ((,c :inherit modus-themes-bold :foreground ,info))) 1954 `(consult-key ((,c :inherit modus-themes-key-binding))) 1955 `(consult-imenu-prefix ((,c :inherit shadow))) 1956 `(consult-line-number ((,c :inherit shadow))) 1957 `(consult-line-number-prefix ((,c :inherit shadow))) 1958 `(consult-preview-insertion ((,c :background ,bg-dim))) 1959 ;;;;; corfu 1960 `(corfu-current ((,c :inherit modus-themes-completion-selected))) 1961 `(corfu-bar ((,c :background ,fg-dim))) 1962 `(corfu-border ((,c :background ,bg-active))) 1963 `(corfu-default ((,c :background ,bg-dim))) 1964 ;;;;; corfu-candidate-overlay 1965 `(corfu-candidate-overlay-face ((t :inherit shadow))) 1966 ;;;;; corfu-quick 1967 `(corfu-quick1 ((,c :inherit bold :background ,bg-char-0))) 1968 `(corfu-quick2 ((,c :inherit bold :background ,bg-char-1))) 1969 ;;;;; counsel 1970 `(counsel-active-mode ((,c :foreground ,keyword))) 1971 `(counsel-application-name ((,c :foreground ,name))) 1972 `(counsel-key-binding ((,c :inherit modus-themes-key-binding))) 1973 `(counsel-outline-default ((,c :foreground ,fg-main))) 1974 `(counsel-variable-documentation ((,c :inherit font-lock-doc-face))) 1975 ;;;;; cperl-mode 1976 `(cperl-nonoverridable-face ((,c :foreground unspecified))) 1977 `(cperl-array-face ((,c :inherit font-lock-keyword-face))) 1978 `(cperl-hash-face ((,c :inherit font-lock-variable-name-face))) 1979 ;;;;; crontab-mode 1980 `(crontab-minute ((,c :foreground ,string))) 1981 `(crontab-hour ((,c :foreground ,keyword))) 1982 `(crontab-month-day ((,c :foreground ,builtin))) 1983 `(crontab-month ((,c :foreground ,constant))) 1984 `(crontab-week-day ((,c :foreground ,variable))) 1985 `(crontab-predefined ((,c :foreground ,string))) 1986 ;;;;; csv-mode 1987 `(csv-separator-face ((,c :foreground ,red-intense))) 1988 ;;;;; ctrlf 1989 `(ctrlf-highlight-active ((,c :inherit modus-themes-search-current))) 1990 `(ctrlf-highlight-line ((,c :background ,bg-hl-line :extend t))) 1991 `(ctrlf-highlight-passive ((,c :inherit modus-themes-search-lazy))) 1992 ;;;;; custom (M-x customize) 1993 `(custom-button ((,c :inherit modus-themes-button))) 1994 `(custom-button-mouse ((,c :inherit (highlight custom-button)))) 1995 `(custom-button-pressed ((,c :inherit (secondary-selection custom-button)))) 1996 `(custom-changed ((,c :background ,bg-changed))) 1997 `(custom-comment ((,c :inherit shadow))) 1998 `(custom-comment-tag ((,c :inherit (bold shadow)))) 1999 `(custom-invalid ((,c :inherit error :strike-through t))) 2000 `(custom-modified ((,c :inherit custom-changed))) 2001 `(custom-rogue ((,c :inherit custom-invalid))) 2002 `(custom-set ((,c :inherit success))) 2003 `(custom-state ((,c :foreground ,warning))) 2004 `(custom-themed ((,c :inherit custom-changed))) 2005 `(custom-variable-obsolete ((,c :inherit shadow))) 2006 `(custom-face-tag ((,c :inherit bold :foreground ,type))) 2007 `(custom-group-tag ((,c :inherit bold :foreground ,builtin))) 2008 `(custom-group-tag-1 ((,c :inherit bold :foreground ,constant))) 2009 `(custom-variable-tag ((,c :inherit bold :foreground ,variable))) 2010 ;;;;; dashboard 2011 `(dashboard-heading ((,c :foreground ,name))) 2012 `(dashboard-items-face (( ))) ; use the underlying style of all-the-icons 2013 ;;;;; deadgrep 2014 `(deadgrep-filename-face ((,c :inherit bold :foreground ,name))) 2015 `(deadgrep-match-face ((,c :inherit match))) 2016 `(deadgrep-meta-face ((,c :inherit shadow))) 2017 `(deadgrep-regexp-metachar-face ((,c :inherit font-lock-regexp-grouping-construct))) 2018 `(deadgrep-search-term-face ((,c :inherit success))) 2019 ;;;;; debbugs 2020 `(debbugs-gnu-archived ((,c :background ,bg-inactive :foreground ,fg-dim))) 2021 `(debbugs-gnu-done ((,c :inherit success))) 2022 `(debbugs-gnu-forwarded ((,c :inherit modus-themes-slant :foreground ,info))) 2023 `(debbugs-gnu-handled (( ))) 2024 `(debbugs-gnu-marked ((,c :inherit modus-themes-mark-sel))) 2025 `(debbugs-gnu-marked-stale ((,c :inherit modus-themes-mark-alt))) 2026 `(debbugs-gnu-new ((,c :inherit error))) 2027 `(debbugs-gnu-pending ((,c :inherit modus-themes-slant :foreground ,fg-alt))) 2028 `(debbugs-gnu-stale-1 ((,c :foreground ,red-cooler))) 2029 `(debbugs-gnu-stale-2 ((,c :foreground ,yellow-warmer))) 2030 `(debbugs-gnu-stale-3 ((,c :foreground ,magenta-warmer))) 2031 `(debbugs-gnu-stale-4 ((,c :foreground ,magenta-cooler))) 2032 `(debbugs-gnu-stale-5 ((,c :foreground ,cyan-faint))) 2033 `(debbugs-gnu-tagged ((,c :inherit modus-themes-mark-alt))) 2034 `(debbugs-gnu-title ((,c :inherit bold))) 2035 ;;;;; deft 2036 `(deft-filter-string-face ((,c :inherit success))) 2037 `(deft-header-face ((,c :inherit shadow))) 2038 `(deft-separator-face ((,c :foreground "gray50"))) 2039 `(deft-summary-face ((,c :inherit (shadow modus-themes-slant)))) 2040 `(deft-time-face ((,c :foreground ,date-common))) 2041 `(deft-title-face ((,c :inherit bold))) 2042 ;;;;; denote 2043 `(denote-faces-date ((,c :foreground ,date-common))) 2044 `(denote-faces-delimiter ((,c :inherit shadow))) 2045 `(denote-faces-extension ((,c :inherit shadow))) 2046 `(denote-faces-keywords ((,c :inherit modus-themes-bold :foreground ,keyword))) 2047 `(denote-faces-link ((,c :inherit link))) 2048 `(denote-faces-prompt-current-name ((,c :inherit modus-themes-slant :foreground ,fg-changed-intense))) 2049 `(denote-faces-prompt-new-name ((,c :inherit modus-themes-slant :foreground ,fg-added-intense))) 2050 `(denote-faces-prompt-old-name ((,c :inherit modus-themes-slant :foreground ,fg-removed-intense))) 2051 `(denote-faces-signature ((,c :inherit modus-themes-bold :foreground ,string))) 2052 `(denote-faces-subdirectory ((,c :inherit modus-themes-bold :foreground ,fg-alt))) 2053 `(denote-faces-time ((,c :inherit denote-faces-date))) 2054 `(denote-faces-time-delimiter ((,c :inherit shadow))) 2055 `(denote-faces-title (( ))) 2056 ;;;;; devdocs 2057 `(devdocs-code-block ((,c :inherit modus-themes-fixed-pitch :background ,bg-dim :extend t))) 2058 ;;;;; dictionary 2059 `(dictionary-button-face ((,c :inherit bold))) 2060 `(dictionary-reference-face ((,c :inherit link))) 2061 `(dictionary-word-definition-face (( ))) 2062 `(dictionary-word-entry-face ((,c :inherit font-lock-comment-face))) 2063 ;;;;; diff-hl 2064 `(diff-hl-change ((,c :background ,bg-changed-fringe))) 2065 `(diff-hl-delete ((,c :background ,bg-removed-fringe))) 2066 `(diff-hl-insert ((,c :background ,bg-added-fringe))) 2067 `(diff-hl-reverted-hunk-highlight ((,c :background ,fg-main :foreground ,bg-main))) 2068 ;;;;; diff-mode 2069 `(diff-added ((,c :background ,bg-added :foreground ,fg-added))) 2070 `(diff-changed ((,c :background ,bg-changed :foreground ,fg-changed :extend t))) 2071 `(diff-changed-unspecified ((,c :inherit diff-changed))) 2072 `(diff-removed ((,c :background ,bg-removed :foreground ,fg-removed))) 2073 `(diff-refine-added ((,c :background ,bg-added-refine :foreground ,fg-added))) 2074 `(diff-refine-changed ((,c :background ,bg-changed-refine :foreground ,fg-changed))) 2075 `(diff-refine-removed ((,c :background ,bg-removed-refine :foreground ,fg-removed))) 2076 `(diff-indicator-added ((,c :inherit diff-added :foreground ,fg-added-intense))) 2077 `(diff-indicator-changed ((,c :inherit diff-changed :foreground ,fg-changed-intense))) 2078 `(diff-indicator-removed ((,c :inherit diff-removed :foreground ,fg-removed-intense))) 2079 `(diff-context (( ))) 2080 `(diff-error ((,c :inherit error))) 2081 `(diff-file-header ((,c :inherit bold))) 2082 `(diff-function ((,c :background ,bg-inactive))) 2083 `(diff-header (( ))) 2084 `(diff-hunk-header ((,c :inherit bold :background ,bg-inactive))) 2085 `(diff-index ((,c :inherit italic))) 2086 `(diff-nonexistent ((,c :inherit bold))) 2087 ;;;;; dim-autoload 2088 `(dim-autoload-cookie-line ((,c :inherit font-lock-comment-face))) 2089 ;;;;; dired 2090 `(dired-broken-symlink ((,c :inherit button :foreground ,err))) 2091 `(dired-directory ((,c :foreground ,accent-0))) 2092 `(dired-flagged ((,c :inherit modus-themes-mark-del))) 2093 `(dired-header ((,c :inherit bold))) 2094 `(dired-ignored ((,c :inherit shadow))) 2095 `(dired-mark ((,c :inherit bold))) 2096 `(dired-marked ((,c :inherit modus-themes-mark-sel))) 2097 `(dired-perm-write ((,c :inherit shadow))) 2098 `(dired-symlink ((,c :inherit button :background ,bg-link-symbolic :foreground ,fg-link-symbolic :underline ,underline-link-symbolic))) 2099 `(dired-warning ((,c :inherit warning))) 2100 ;;;;; dired-async 2101 `(dired-async-failures ((,c :inherit error))) 2102 `(dired-async-message ((,c :inherit bold))) 2103 `(dired-async-mode-message ((,c :inherit bold))) 2104 ;;;;; dired-git 2105 `(dired-git-branch-else ((,c :inherit bold :foreground ,accent-0))) 2106 `(dired-git-branch-master ((,c :inherit bold :foreground ,accent-1))) 2107 ;;;;; dired-git-info 2108 `(dgi-commit-message-face ((,c :foreground ,docstring))) 2109 ;;;;; dired-narrow 2110 `(dired-narrow-blink ((,c :inherit (modus-themes-prominent-warning bold)))) 2111 ;;;;; dired-subtree 2112 ;; remove backgrounds from dired-subtree faces, else they break 2113 ;; dired-{flagged,marked} and any other face that sets a background 2114 ;; such as hl-line. Also, denoting depth by varying shades of gray 2115 ;; is not good for accessibility. 2116 `(dired-subtree-depth-1-face (())) 2117 `(dired-subtree-depth-2-face (())) 2118 `(dired-subtree-depth-3-face (())) 2119 `(dired-subtree-depth-4-face (())) 2120 `(dired-subtree-depth-5-face (())) 2121 `(dired-subtree-depth-6-face (())) 2122 ;;;;; diredfl 2123 `(diredfl-autofile-name ((,c :background ,bg-inactive))) 2124 `(diredfl-compressed-file-name ((,c :foreground ,warning))) 2125 `(diredfl-compressed-file-suffix ((,c :foreground ,err))) 2126 `(diredfl-date-time ((,c :foreground ,date-common))) 2127 `(diredfl-deletion ((,c :inherit dired-flagged))) 2128 `(diredfl-deletion-file-name ((,c :inherit diredfl-deletion))) 2129 `(diredfl-dir-heading ((,c :inherit bold))) 2130 `(diredfl-dir-name ((,c :inherit dired-directory))) 2131 `(diredfl-dir-priv ((,c :inherit dired-directory))) 2132 `(diredfl-exec-priv ((,c :foreground ,accent-1))) 2133 `(diredfl-executable-tag ((,c :inherit diredfl-exec-priv))) 2134 `(diredfl-file-name ((,c :foreground ,fg-main))) 2135 `(diredfl-file-suffix ((,c :foreground ,variable))) 2136 `(diredfl-flag-mark ((,c :inherit dired-marked))) 2137 `(diredfl-flag-mark-line ((,c :inherit dired-marked))) 2138 `(diredfl-ignored-file-name ((,c :inherit shadow))) 2139 `(diredfl-link-priv ((,c :foreground ,fg-link))) 2140 `(diredfl-no-priv ((,c :inherit shadow))) 2141 `(diredfl-number ((,c :inherit shadow))) 2142 `(diredfl-other-priv ((,c :foreground ,accent-2))) 2143 `(diredfl-rare-priv ((,c :foreground ,accent-3))) 2144 `(diredfl-read-priv ((,c :foreground ,fg-main))) 2145 `(diredfl-symlink ((,c :inherit dired-symlink))) 2146 `(diredfl-tagged-autofile-name ((,c :inherit (diredfl-autofile-name dired-marked)))) 2147 `(diredfl-write-priv ((,c :foreground ,accent-0))) 2148 ;;;;; disk-usage 2149 `(disk-usage-inaccessible ((,c :inherit error))) 2150 `(disk-usage-percent ((,c :foreground ,accent-0))) 2151 `(disk-usage-size ((,c :foreground ,accent-1))) 2152 `(disk-usage-symlink ((,c :inherit dired-symlink))) 2153 `(disk-usage-symlink-directory ((,c :inherit dired-symlink))) 2154 ;;;;; display-fill-column-indicator-mode 2155 `(fill-column-indicator ((,c :height 1 :background ,bg-active :foreground ,bg-active))) 2156 ;;;;; doom-modeline 2157 `(doom-modeline-bar ((,c :background ,blue))) 2158 `(doom-modeline-bar-inactive ((,c :background ,border))) 2159 `(doom-modeline-battery-charging ((,c :foreground ,modeline-info))) 2160 `(doom-modeline-battery-critical ((,c :underline t :foreground ,modeline-err))) 2161 `(doom-modeline-battery-error ((,c :underline t :foreground ,modeline-err))) 2162 `(doom-modeline-battery-full (( ))) 2163 `(doom-modeline-battery-warning ((,c :inherit warning))) 2164 `(doom-modeline-buffer-file ((,c :inherit bold))) 2165 `(doom-modeline-buffer-major-mode (( ))) 2166 `(doom-modeline-buffer-minor-mode (( ))) 2167 `(doom-modeline-buffer-modified ((,c :foreground ,modeline-err))) 2168 `(doom-modeline-buffer-path (( ))) 2169 `(doom-modeline-evil-emacs-state ((,c :inherit italic))) 2170 `(doom-modeline-evil-insert-state ((,c :foreground ,modeline-info))) 2171 `(doom-modeline-evil-motion-state (( ))) 2172 `(doom-modeline-evil-normal-state (( ))) 2173 `(doom-modeline-evil-operator-state ((,c :inherit bold))) 2174 `(doom-modeline-evil-replace-state ((,c :inherit error))) 2175 `(doom-modeline-evil-visual-state ((,c :inherit warning))) 2176 `(doom-modeline-info ((,c :inherit success))) 2177 `(doom-modeline-input-method (( ))) 2178 `(doom-modeline-lsp-error ((,c :inherit bold-italic))) 2179 `(doom-modeline-lsp-running (( ))) 2180 `(doom-modeline-lsp-success ((,c :inherit success))) 2181 `(doom-modeline-lsp-warning ((,c :inherit warning))) 2182 `(doom-modeline-notification ((,c :inherit error))) 2183 `(doom-modeline-project-dir (( ))) 2184 `(doom-modeline-project-parent-dir (( ))) 2185 `(doom-modeline-project-root-dir (( ))) 2186 `(doom-modeline-repl-success ((,c :inherit success))) 2187 `(doom-modeline-repl-warning ((,c :inherit warning))) 2188 `(doom-modeline-time (( ))) 2189 `(doom-modeline-urgent ((,c :inherit bold-italic :foreground ,modeline-err))) 2190 `(doom-modeline-warning ((,c :inherit warning))) 2191 ;;;;; ediff 2192 `(ediff-current-diff-A ((,c :background ,bg-removed :foreground ,fg-removed))) 2193 `(ediff-current-diff-Ancestor ((,c :background ,bg-region))) 2194 `(ediff-current-diff-B ((,c :background ,bg-added :foreground ,fg-added))) 2195 `(ediff-current-diff-C ((,c :background ,bg-changed :foreground ,fg-changed))) 2196 `(ediff-even-diff-A ((,c :background ,bg-diff-context))) 2197 `(ediff-even-diff-Ancestor ((,c :background ,bg-diff-context))) 2198 `(ediff-even-diff-B ((,c :background ,bg-diff-context))) 2199 `(ediff-even-diff-C ((,c :background ,bg-diff-context))) 2200 `(ediff-fine-diff-A ((,c :background ,bg-removed-refine :foreground ,fg-removed))) 2201 `(ediff-fine-diff-Ancestor ((,c :inherit modus-themes-subtle-cyan))) 2202 `(ediff-fine-diff-B ((,c :background ,bg-added-refine :foreground ,fg-added))) 2203 `(ediff-fine-diff-C ((,c :background ,bg-changed-refine :foreground ,fg-changed))) 2204 `(ediff-odd-diff-A ((,c :inherit ediff-even-diff-A))) 2205 `(ediff-odd-diff-Ancestor ((,c :inherit ediff-even-diff-Ancestor))) 2206 `(ediff-odd-diff-B ((,c :inherit ediff-even-diff-B))) 2207 `(ediff-odd-diff-C ((,c :inherit ediff-even-diff-C))) 2208 ;;;;; ein (Emacs IPython Notebook) 2209 `(ein:basecell-input-area-face ((,c :background ,bg-dim :extend t))) 2210 `(ein:cell-output-area (( ))) 2211 `(ein:cell-output-area-error ((,c :background ,bg-removed :extend t))) 2212 `(ein:cell-output-stderr ((,c :background ,bg-removed :extend t))) 2213 `(ein:markdowncell-input-area-face (( ))) 2214 `(ein:notification-tab-normal ((,c :underline t))) 2215 ;;;;; eglot 2216 `(eglot-mode-line ((,c :inherit modus-themes-bold :foreground ,modeline-info))) 2217 `(eglot-diagnostic-tag-unnecessary-face ((,c :inherit modus-themes-lang-note))) 2218 ;;;;; el-search 2219 `(el-search-highlight-in-prompt-face ((,c :inherit italic))) 2220 `(el-search-match ((,c :inherit modus-themes-search-current))) 2221 `(el-search-other-match ((,c :inherit modus-themes-search-lazy))) 2222 `(el-search-occur-match ((,c :inherit match))) 2223 ;;;;; eldoc 2224 ;; NOTE: see https://github.com/purcell/package-lint/issues/187 2225 (list 'eldoc-highlight-function-argument `((,c :inherit bold :background ,bg-active-argument :foreground ,fg-active-argument))) 2226 ;;;;; eldoc-box 2227 `(eldoc-box-body ((,c :background ,bg-dim :foreground ,fg-main))) 2228 `(eldoc-box-border ((,c :background ,border))) 2229 ;;;;; elfeed 2230 `(elfeed-log-date-face ((,c :inherit elfeed-search-date-face))) 2231 `(elfeed-log-debug-level-face ((,c :inherit elfeed-search-filter-face))) 2232 `(elfeed-log-error-level-face ((,c :inherit error))) 2233 `(elfeed-log-info-level-face ((,c :inherit success))) 2234 `(elfeed-log-warn-level-face ((,c :inherit warning))) 2235 `(elfeed-search-date-face ((,c :foreground ,date-common))) 2236 `(elfeed-search-feed-face ((,c :foreground ,accent-1))) 2237 `(elfeed-search-filter-face ((,c :inherit bold))) 2238 `(elfeed-search-last-update-face ((,c :inherit bold :foreground ,date-common))) 2239 `(elfeed-search-tag-face ((,c :foreground ,accent-0))) 2240 `(elfeed-search-title-face ((,c :foreground ,fg-dim))) 2241 `(elfeed-search-unread-count-face (( ))) 2242 `(elfeed-search-unread-title-face ((,c :inherit bold :foreground ,fg-main))) 2243 ;;;;; elfeed-score 2244 `(elfeed-score-date-face ((,c :foreground ,date-common))) 2245 `(elfeed-score-debug-level-face ((,c :inherit bold))) 2246 `(elfeed-score-error-level-face ((,c :inherit error))) 2247 `(elfeed-score-info-level-face ((,c :inherit success))) 2248 `(elfeed-score-warn-level-face ((,c :inherit warning))) 2249 ;;;;; elpher 2250 `(elpher-gemini-heading1 ((,c :inherit modus-themes-heading-1))) 2251 `(elpher-gemini-heading2 ((,c :inherit modus-themes-heading-2))) 2252 `(elpher-gemini-heading3 ((,c :inherit modus-themes-heading-3))) 2253 ;;;;; embark 2254 `(embark-keybinding ((,c :inherit modus-themes-key-binding))) 2255 `(embark-collect-marked ((,c :inherit modus-themes-mark-sel))) 2256 ;;;;; ement (ement.el) 2257 `(ement-room-fully-read-marker ((,c :inherit success))) 2258 `(ement-room-membership ((,c :inherit shadow))) 2259 `(ement-room-mention ((,c :inherit highlight))) 2260 `(ement-room-name ((,c :inherit bold))) 2261 `(ement-room-reactions ((,c :inherit shadow))) 2262 `(ement-room-read-receipt-marker ((,c :inherit match))) 2263 `(ement-room-self ((,c :inherit bold :foreground ,accent-1))) 2264 `(ement-room-self-message ((,c :foreground ,fg-alt))) 2265 `(ement-room-timestamp ((,c :inherit shadow))) 2266 `(ement-room-timestamp-header ((,c :inherit bold :foreground ,date-common))) 2267 `(ement-room-user ((,c :inherit bold :foreground ,accent-0))) 2268 ;;;;; emms 2269 `(emms-browser-album-face ((,c :foreground ,keyword))) 2270 `(emms-browser-artist-face ((,c :foreground ,variable))) 2271 `(emms-browser-composer-face ((,c :foreground ,builtin))) 2272 `(emms-browser-performer-face ((,c :inherit emms-browser-artist-face))) 2273 `(emms-browser-track-face ((,c :inherit emms-playlist-track-face))) 2274 `(emms-browser-year/genre-face ((,c :foreground ,type))) 2275 `(emms-playlist-track-face ((,c :foreground ,string))) 2276 `(emms-playlist-selected-face ((,c :inherit bold :foreground ,constant))) 2277 `(emms-metaplaylist-mode-current-face ((,c :inherit emms-playlist-selected-face))) 2278 `(emms-metaplaylist-mode-face ((,c :foreground ,variable))) 2279 ;;;;; enh-ruby-mode (enhanced-ruby-mode) 2280 `(enh-ruby-heredoc-delimiter-face ((,c :inherit font-lock-constant-face))) 2281 `(enh-ruby-op-face ((,c :foreground ,fg-main))) 2282 `(enh-ruby-regexp-delimiter-face ((,c :inherit font-lock-regexp-grouping-construct))) 2283 `(enh-ruby-regexp-face ((,c :inherit font-lock-string-face))) 2284 `(enh-ruby-string-delimiter-face ((,c :inherit font-lock-string-face))) 2285 `(erm-syn-errline ((,c :inherit modus-themes-lang-error))) 2286 `(erm-syn-warnline ((,c :inherit modus-themes-lang-warning))) 2287 ;;;;; epa 2288 `(epa-field-body (( ))) 2289 `(epa-field-name ((,c :inherit bold :foreground ,fg-dim))) 2290 `(epa-mark ((,c :inherit bold))) 2291 `(epa-string ((,c :foreground ,string))) 2292 `(epa-validity-disabled ((,c :foreground ,err))) 2293 `(epa-validity-high ((,c :inherit success))) 2294 `(epa-validity-low ((,c :inherit shadow))) 2295 `(epa-validity-medium ((,c :foreground ,info))) 2296 ;;;;; erc 2297 `(erc-action-face ((,c :foreground ,accent-2))) 2298 `(erc-bold-face ((,c :inherit bold))) 2299 `(erc-button ((,c :inherit button))) 2300 `(erc-command-indicator-face ((,c :inherit bold :foreground ,accent-3))) 2301 `(erc-current-nick-face ((,c :inherit match))) 2302 `(erc-dangerous-host-face ((,c :inherit error))) 2303 `(erc-direct-msg-face ((,c :inherit shadow))) 2304 `(erc-error-face ((,c :inherit error))) 2305 `(erc-fill-wrap-merge-indicator-face ((,c :foreground ,fg-dim))) 2306 `(erc-fool-face ((,c :inherit shadow))) 2307 `(erc-input-face ((,c :foreground ,fnname))) 2308 `(erc-inverse-face ((,c :inherit erc-default-face :inverse-video t))) 2309 `(erc-keep-place-indicator-arrow ((,c :foreground ,info))) 2310 `(erc-keyword-face ((,c :inherit bold :foreground ,keyword))) 2311 `(erc-my-nick-face ((,c :inherit bold :foreground ,name))) 2312 `(erc-my-nick-prefix-face ((,c :inherit erc-my-nick-face))) 2313 `(erc-nick-default-face ((,c :inherit bold :foreground ,accent-0))) 2314 `(erc-nick-msg-face ((,c :inherit warning))) 2315 `(erc-nick-prefix-face ((,c :inherit erc-nick-default-face))) 2316 `(erc-notice-face ((,c :inherit font-lock-comment-face))) 2317 `(erc-pal-face ((,c :inherit bold :foreground ,accent-1))) 2318 `(erc-prompt-face ((,c :inherit modus-themes-prompt))) 2319 `(erc-timestamp-face ((,c :foreground ,date-common))) 2320 `(erc-underline-face ((,c :underline t))) 2321 ;;;;; ert 2322 `(ert-test-result-expected ((,c :inherit modus-themes-prominent-note))) 2323 `(ert-test-result-unexpected ((,c :inherit modus-themes-prominent-error))) 2324 ;;;;; erts-mode 2325 `(erts-mode-end-test ((,c :inherit error))) 2326 `(erts-mode-specification-name ((,c :inherit bold))) 2327 `(erts-mode-specification-value ((,c :foreground ,string))) 2328 `(erts-mode-start-test ((,c :inherit success))) 2329 ;;;;; eshell 2330 `(eshell-ls-archive ((,c :foreground ,accent-2))) 2331 `(eshell-ls-backup ((,c :inherit shadow))) 2332 `(eshell-ls-clutter ((,c :inherit shadow))) 2333 `(eshell-ls-directory ((,c :foreground ,accent-0))) 2334 `(eshell-ls-executable ((,c :foreground ,accent-1))) 2335 `(eshell-ls-missing ((,c :inherit error))) 2336 `(eshell-ls-product ((,c :inherit shadow))) 2337 `(eshell-ls-readonly ((,c :foreground ,warning))) 2338 `(eshell-ls-special ((,c :foreground ,accent-3))) 2339 `(eshell-ls-symlink ((,c :inherit link))) 2340 `(eshell-ls-unreadable ((,c :inherit shadow))) 2341 `(eshell-prompt ((,c :inherit modus-themes-prompt))) 2342 ;;;;; eshell-fringe-status 2343 `(eshell-fringe-status-failure ((,c :inherit error))) 2344 `(eshell-fringe-status-success ((,c :inherit success))) 2345 ;;;;; evil-mode 2346 `(evil-ex-commands ((,c :inherit font-lock-keyword-face))) 2347 `(evil-ex-info ((,c :inherit font-lock-type-face))) 2348 `(evil-ex-lazy-highlight ((,c :inherit modus-themes-search-lazy))) 2349 `(evil-ex-search ((,c :inherit modus-themes-search-current))) 2350 `(evil-ex-substitute-matches ((,c :inherit modus-themes-search-replace))) 2351 `(evil-ex-substitute-replacement ((,c :inherit modus-themes-search-current))) 2352 ;;;;; eww 2353 `(eww-invalid-certificate ((,c :foreground ,err))) 2354 `(eww-valid-certificate ((,c :foreground ,info))) 2355 `(eww-form-checkbox ((,c :inherit eww-form-text))) 2356 `(eww-form-file ((,c :inherit eww-form-submit))) 2357 `(eww-form-select ((,c :inherit eww-form-submit))) 2358 `(eww-form-submit ((,c :inherit modus-themes-button))) 2359 `(eww-form-text ((,c :inherit widget-field))) 2360 `(eww-form-textarea ((,c :inherit eww-form-text))) 2361 ;;;;; eyebrowse 2362 `(eyebrowse-mode-line-active ((,c :inherit mode-line-emphasis))) 2363 ;;;;; flycheck 2364 `(flycheck-error ((,c :inherit modus-themes-lang-error))) 2365 `(flycheck-fringe-error ((,c :inherit modus-themes-prominent-error))) 2366 `(flycheck-fringe-info ((,c :inherit modus-themes-prominent-note))) 2367 `(flycheck-fringe-warning ((,c :inherit modus-themes-prominent-warning))) 2368 `(flycheck-info ((,c :inherit modus-themes-lang-note))) 2369 `(flycheck-warning ((,c :inherit modus-themes-lang-warning))) 2370 ;;;;; flycheck-color-mode-line 2371 `(flycheck-color-mode-line-error-face ((,c :inherit flycheck-fringe-error))) 2372 `(flycheck-color-mode-line-info-face ((,c :inherit flycheck-fringe-info))) 2373 `(flycheck-color-mode-line-running-face ((,c :inherit italic))) 2374 `(flycheck-color-mode-line-info-face ((,c :inherit flycheck-fringe-warning))) 2375 ;;;;; flycheck-indicator 2376 `(flycheck-indicator-disabled ((,c :inherit modus-themes-slant :foreground ,fg-dim))) 2377 `(flycheck-indicator-error ((,c :inherit error))) 2378 `(flycheck-indicator-info ((,c :inherit bold))) 2379 `(flycheck-indicator-running ((,c :inherit modus-themes-slant))) 2380 `(flycheck-indicator-success ((,c :inherit success))) 2381 `(flycheck-indicator-warning ((,c :inherit warning))) 2382 ;;;;; flymake 2383 `(flymake-end-of-line-diagnostics-face ((,c :inherit modus-themes-slant :height 0.85 :box ,border))) 2384 `(flymake-error ((,c :inherit modus-themes-lang-error))) 2385 `(flymake-error-echo ((,c :inherit error))) 2386 `(flymake-error-echo-at-eol ((,c :inherit flymake-end-of-line-diagnostics-face :foreground ,err))) 2387 `(flymake-note ((,c :inherit modus-themes-lang-note))) 2388 `(flymake-note-echo ((,c :inherit success))) 2389 `(flymake-note-echo-at-eol ((,c :inherit flymake-end-of-line-diagnostics-face :foreground ,info))) 2390 `(flymake-warning ((,c :inherit modus-themes-lang-warning))) 2391 `(flymake-warning-echo ((,c :inherit warning))) 2392 `(flymake-note-echo-at-eol ((,c :inherit flymake-end-of-line-diagnostics-face :foreground ,warning))) 2393 ;;;;; flyspell 2394 `(flyspell-duplicate ((,c :inherit modus-themes-lang-warning))) 2395 `(flyspell-incorrect ((,c :inherit modus-themes-lang-error))) 2396 ;;;;; flx 2397 `(flx-highlight-face ((,c :inherit modus-themes-completion-match-0))) 2398 ;;;;; focus 2399 `(focus-unfocused ((,c :foreground "gray50"))) 2400 ;;;;; fold-this 2401 `(fold-this-overlay ((,c :background ,bg-inactive))) 2402 ;;;;; font-lock 2403 `(font-lock-builtin-face ((,c :inherit modus-themes-bold :foreground ,builtin))) 2404 `(font-lock-comment-delimiter-face ((,c :inherit font-lock-comment-face))) 2405 `(font-lock-comment-face ((,c :inherit modus-themes-slant :foreground ,comment))) 2406 `(font-lock-constant-face ((,c :foreground ,constant))) 2407 `(font-lock-doc-face ((,c :inherit modus-themes-slant :foreground ,docstring))) 2408 `(font-lock-doc-markup-face ((,c :inherit modus-themes-slant :foreground ,docmarkup))) 2409 `(font-lock-function-name-face ((,c :foreground ,fnname))) 2410 `(font-lock-keyword-face ((,c :inherit modus-themes-bold :foreground ,keyword))) 2411 `(font-lock-negation-char-face ((,c :inherit error))) 2412 `(font-lock-preprocessor-face ((,c :foreground ,preprocessor))) 2413 `(font-lock-regexp-grouping-backslash ((,c :inherit modus-themes-bold :foreground ,rx-backslash))) 2414 `(font-lock-regexp-grouping-construct ((,c :inherit modus-themes-bold :foreground ,rx-construct))) 2415 `(font-lock-string-face ((,c :foreground ,string))) 2416 `(font-lock-type-face ((,c :inherit modus-themes-bold :foreground ,type))) 2417 `(font-lock-variable-name-face ((,c :foreground ,variable))) 2418 `(font-lock-warning-face ((,c :inherit modus-themes-bold :foreground ,warning))) 2419 ;;;;; geiser 2420 `(geiser-font-lock-autodoc-current-arg ((,c :inherit bold :background ,bg-active-argument :foreground ,fg-active-argument))) 2421 `(geiser-font-lock-autodoc-identifier ((,c :foreground ,docstring))) 2422 `(geiser-font-lock-doc-button ((,c :inherit button))) 2423 `(geiser-font-lock-doc-link ((,c :inherit button))) 2424 `(geiser-font-lock-error-link ((,c :inherit button :foreground ,err))) 2425 `(geiser-font-lock-image-button ((,c :inherit button :foreground ,info))) 2426 `(geiser-font-lock-repl-input ((,c :inherit bold))) 2427 `(geiser-font-lock-repl-output ((,c :inherit font-lock-keyword-face))) 2428 `(geiser-font-lock-repl-prompt ((,c :inherit modus-themes-prompt))) 2429 `(geiser-font-lock-xref-header ((,c :inherit bold))) 2430 `(geiser-font-lock-xref-link ((,c :inherit button))) 2431 ;;;;; git-commit 2432 `(git-commit-comment-action ((,c :inherit font-lock-comment-face))) 2433 `(git-commit-comment-branch-local ((,c :inherit font-lock-comment-face :foreground ,accent-0))) 2434 `(git-commit-comment-branch-remote ((,c :inherit font-lock-comment-face :foreground ,accent-1))) 2435 `(git-commit-comment-heading ((,c :inherit (bold font-lock-comment-face)))) 2436 `(git-commit-comment-file ((,c :inherit font-lock-comment-face :foreground ,name))) 2437 `(git-commit-keyword ((,c :foreground ,keyword))) 2438 `(git-commit-nonempty-second-line ((,c :inherit error))) 2439 `(git-commit-overlong-summary ((,c :inherit warning))) 2440 `(git-commit-summary ((,c :inherit success))) 2441 ;;;;; git-gutter 2442 `(git-gutter:added ((,c :background ,bg-added-fringe))) 2443 `(git-gutter:deleted ((,c :background ,bg-removed-fringe))) 2444 `(git-gutter:modified ((,c :background ,bg-changed-fringe))) 2445 `(git-gutter:separator ((,c :inherit modus-themes-intense-cyan))) 2446 `(git-gutter:unchanged ((,c :inherit modus-themes-intense-magenta))) 2447 ;;;;; git-gutter-fr 2448 `(git-gutter-fr:added ((,c :background ,bg-added-fringe))) 2449 `(git-gutter-fr:deleted ((,c :background ,bg-removed-fringe))) 2450 `(git-gutter-fr:modified ((,c :background ,bg-changed-fringe))) 2451 ;;;;; git-rebase 2452 `(git-rebase-comment-hash ((,c :inherit (bold font-lock-comment-face) :foreground ,identifier))) 2453 `(git-rebase-comment-heading ((,c :inherit (bold font-lock-comment-face)))) 2454 `(git-rebase-description ((,c :foreground ,fg-main))) 2455 `(git-rebase-hash ((,c :foreground ,identifier))) 2456 ;;;;; git-timemachine 2457 `(git-timemachine-commit ((,c :inherit warning))) 2458 `(git-timemachine-minibuffer-author-face ((,c :foreground ,name))) 2459 `(git-timemachine-minibuffer-detail-face ((,c :foreground ,fg-main))) 2460 ;;;;; gnus 2461 `(gnus-button ((,c :inherit button :underline nil))) 2462 `(gnus-cite-1 ((,c :inherit message-cited-text-1))) 2463 `(gnus-cite-2 ((,c :inherit message-cited-text-2))) 2464 `(gnus-cite-3 ((,c :inherit message-cited-text-3))) 2465 `(gnus-cite-4 ((,c :inherit message-cited-text-4))) 2466 `(gnus-cite-5 ((,c :inherit message-cited-text-1))) 2467 `(gnus-cite-6 ((,c :inherit message-cited-text-2))) 2468 `(gnus-cite-7 ((,c :inherit message-cited-text-3))) 2469 `(gnus-cite-8 ((,c :inherit message-cited-text-4))) 2470 `(gnus-cite-9 ((,c :inherit message-cited-text-1))) 2471 `(gnus-cite-10 ((,c :inherit message-cited-text-2))) 2472 `(gnus-cite-11 ((,c :inherit message-cited-text-3))) 2473 `(gnus-cite-attribution ((,c :inherit italic))) 2474 `(gnus-emphasis-bold ((,c :inherit bold))) 2475 `(gnus-emphasis-bold-italic ((,c :inherit bold-italic))) 2476 `(gnus-emphasis-highlight-words ((,c :inherit warning))) 2477 `(gnus-emphasis-italic ((,c :inherit italic))) 2478 `(gnus-emphasis-underline-bold ((,c :inherit gnus-emphasis-bold :underline t))) 2479 `(gnus-emphasis-underline-bold-italic ((,c :inherit gnus-emphasis-bold-italic :underline t))) 2480 `(gnus-emphasis-underline-italic ((,c :inherit gnus-emphasis-italic :underline t))) 2481 `(gnus-group-mail-1 ((,c :inherit (bold gnus-group-mail-1-empty)))) 2482 `(gnus-group-mail-1-empty ((,c :foreground ,magenta-warmer))) 2483 `(gnus-group-mail-2 ((,c :inherit (bold gnus-group-mail-2-empty)))) 2484 `(gnus-group-mail-2-empty ((,c :foreground ,magenta))) 2485 `(gnus-group-mail-3 ((,c :inherit (bold gnus-group-mail-3-empty)))) 2486 `(gnus-group-mail-3-empty ((,c :foreground ,magenta-cooler))) 2487 `(gnus-group-mail-low ((,c :inherit (bold gnus-group-mail-low-empty)))) 2488 `(gnus-group-mail-low-empty ((,c :foreground ,fg-dim))) 2489 `(gnus-group-news-1 ((,c :inherit (bold gnus-group-news-1-empty)))) 2490 `(gnus-group-news-1-empty ((,c :foreground ,green))) 2491 `(gnus-group-news-2 ((,c :inherit (bold gnus-group-news-2-empty)))) 2492 `(gnus-group-news-2-empty ((,c :foreground ,cyan))) 2493 `(gnus-group-news-3 ((,c :inherit (bold gnus-group-news-3-empty)))) 2494 `(gnus-group-news-3-empty ((,c :foreground ,yellow-faint))) 2495 `(gnus-group-news-4 ((,c :inherit (bold gnus-group-news-4-empty)))) 2496 `(gnus-group-news-4-empty ((,c :foreground ,magenta-faint))) 2497 `(gnus-group-news-5 ((,c :inherit (bold gnus-group-news-5-empty)))) 2498 `(gnus-group-news-5-empty ((,c :foreground ,fg-alt))) 2499 `(gnus-group-news-6 ((,c :inherit (bold gnus-group-news-6-empty)))) 2500 `(gnus-group-news-6-empty ((,c :foreground ,fg-dim))) 2501 `(gnus-group-news-low ((,c :inherit (bold gnus-group-news-low-empty)))) 2502 `(gnus-group-news-low-empty ((,c :foreground ,fg-dim))) 2503 `(gnus-header-content ((,c :inherit message-header-other))) 2504 `(gnus-header-from ((,c :inherit message-header-to :underline nil))) 2505 `(gnus-header-name ((,c :inherit message-header-name))) 2506 `(gnus-header-newsgroups ((,c :inherit message-header-newsgroups))) 2507 `(gnus-header-subject ((,c :inherit message-header-subject))) 2508 `(gnus-server-agent ((,c :inherit bold))) 2509 `(gnus-server-closed ((,c :inherit italic))) 2510 `(gnus-server-cloud ((,c :inherit bold :foreground ,fg-alt))) 2511 `(gnus-server-cloud-host ((,c :inherit bold :foreground ,fg-alt :underline t))) 2512 `(gnus-server-denied ((,c :inherit error))) 2513 `(gnus-server-offline ((,c :inherit shadow))) 2514 `(gnus-server-opened ((,c :inherit success))) 2515 `(gnus-summary-cancelled ((,c :inherit italic :foreground ,warning))) 2516 `(gnus-summary-high-ancient ((,c :inherit bold :foreground ,fg-alt))) 2517 `(gnus-summary-high-read ((,c :inherit bold :foreground ,fg-dim))) 2518 `(gnus-summary-high-ticked ((,c :inherit bold :foreground ,err))) 2519 `(gnus-summary-high-undownloaded ((,c :inherit bold-italic :foreground ,warning))) 2520 `(gnus-summary-high-unread ((,c :inherit bold))) 2521 `(gnus-summary-low-ancient ((,c :inherit italic))) 2522 `(gnus-summary-low-read ((,c :inherit (shadow italic)))) 2523 `(gnus-summary-low-ticked ((,c :inherit italic :foreground ,err))) 2524 `(gnus-summary-low-undownloaded ((,c :inherit italic :foreground ,warning))) 2525 `(gnus-summary-low-unread ((,c :inherit italic))) 2526 `(gnus-summary-normal-ancient (( ))) 2527 `(gnus-summary-normal-read ((,c :inherit shadow))) 2528 `(gnus-summary-normal-ticked ((,c :foreground ,err))) 2529 `(gnus-summary-normal-undownloaded ((,c :foreground ,warning))) 2530 `(gnus-summary-normal-unread (( ))) 2531 `(gnus-summary-selected ((,c :inherit highlight))) 2532 ;;;;; gotest 2533 `(go-test--ok-face ((,c :inherit success))) 2534 `(go-test--error-face ((,c :inherit error))) 2535 `(go-test--warning-face ((,c :inherit warning))) 2536 `(go-test--pointer-face ((,c :foreground ,accent-0))) 2537 `(go-test--standard-face (( ))) 2538 ;;;;; golden-ratio-scroll-screen 2539 `(golden-ratio-scroll-highlight-line-face ((,c :background ,bg-cyan-subtle :foreground ,fg-main))) 2540 ;;;;; helpful 2541 `(helpful-heading ((,c :inherit modus-themes-heading-1))) 2542 ;;;;; highlight region or ad-hoc regexp 2543 ;; HACK 2022-06-23: The :inverse-video prevents hl-line-mode from 2544 ;; overriding the background. Such an override really defeats the 2545 ;; purpose of setting those highlights. 2546 ;; 2547 ;; NOTE 2022-10-04: We do not use the ,c here but instead 2548 ;; hardcode color values. We have to do this as the themes lack 2549 ;; entries in their palette for such an edge case. Defining those 2550 ;; entries is not appropriate. 2551 `(hi-aquamarine ((((class color) (min-colors 88) (background light)) 2552 :background "#ffffff" :foreground "#227f9f" :inverse-video t) 2553 (((class color) (min-colors 88) (background dark)) 2554 :background "#000000" :foreground "#66cbdc" :inverse-video t))) 2555 `(hi-black-b ((,c :inverse-video t))) 2556 `(hi-black-hb ((,c :background ,bg-main :foreground ,fg-dim :inverse-video t))) 2557 `(hi-blue ((((class color) (min-colors 88) (background light)) 2558 :background "#ffffff" :foreground "#3366dd" :inverse-video t) 2559 (((class color) (min-colors 88) (background dark)) 2560 :background "#000000" :foreground "#aaccff" :inverse-video t))) 2561 `(hi-blue-b ((,c :inherit (bold hi-blue)))) 2562 `(hi-green ((((class color) (min-colors 88) (background light)) 2563 :background "#ffffff" :foreground "#008a00" :inverse-video t) 2564 (((class color) (min-colors 88) (background dark)) 2565 :background "#000000" :foreground "#66dd66" :inverse-video t))) 2566 `(hi-green-b ((,c :inherit (bold hi-green)))) 2567 `(hi-pink ((((class color) (min-colors 88) (background light)) 2568 :background "#ffffff" :foreground "#bd30aa" :inverse-video t) 2569 (((class color) (min-colors 88) (background dark)) 2570 :background "#000000" :foreground "#ff88ee" :inverse-video t))) 2571 `(hi-red-b ((((class color) (min-colors 88) (background light)) 2572 :background "#ffffff" :foreground "#dd0000" :inverse-video t) 2573 (((class color) (min-colors 88) (background dark)) 2574 :background "#000000" :foreground "#f06666" :inverse-video t))) 2575 `(hi-salmon ((((class color) (min-colors 88) (background light)) 2576 :background "#ffffff" :foreground "#bf555a" :inverse-video t) 2577 (((class color) (min-colors 88) (background dark)) 2578 :background "#000000" :foreground "#e08a50" :inverse-video t))) 2579 `(hi-yellow ((((class color) (min-colors 88) (background light)) 2580 :background "#ffffff" :foreground "#af6400" :inverse-video t) 2581 (((class color) (min-colors 88) (background dark)) 2582 :background "#000000" :foreground "#faea00" :inverse-video t))) 2583 `(highlight-changes ((,c :foreground ,warning :underline nil))) 2584 `(highlight-changes-delete ((,c :foreground ,err :underline t))) 2585 `(hl-line ((,c :background ,bg-hl-line :extend t))) 2586 ;;;;; highlight-numbers 2587 `(highlight-numbers-number ((,c :foreground ,constant))) 2588 ;;;;; highlight-thing 2589 `(highlight-thing ((,c :inherit match))) 2590 ;;;;; hl-fill-column 2591 `(hl-fill-column-face ((,c :background ,bg-active))) 2592 ;;;;; hl-todo 2593 `(hl-todo ((,c :inherit (bold font-lock-comment-face) :foreground ,err))) 2594 ;;;;; hydra 2595 `(hydra-face-amaranth ((,c :inherit bold :foreground ,yellow-warmer))) 2596 `(hydra-face-blue ((,c :inherit bold :foreground ,blue))) 2597 `(hydra-face-pink ((,c :inherit bold :foreground ,magenta))) 2598 `(hydra-face-red ((,c :inherit bold :foreground ,red-faint))) 2599 `(hydra-face-teal ((,c :inherit bold :foreground ,cyan-cooler))) 2600 ;;;;; icomplete 2601 `(icomplete-first-match ((,c :inherit modus-themes-completion-match-0))) 2602 `(icomplete-selected-match ((,c :inherit modus-themes-completion-selected))) 2603 ;;;;; ido-mode 2604 `(ido-first-match ((,c :inherit modus-themes-completion-match-0))) 2605 `(ido-incomplete-regexp ((,c :inherit error))) 2606 `(ido-indicator ((,c :inherit bold))) 2607 `(ido-only-match ((,c :inherit ido-first-match))) 2608 `(ido-subdir ((,c :foreground ,accent-0))) 2609 `(ido-virtual ((,c :foreground ,accent-1))) 2610 ;;;;; iedit 2611 `(iedit-occurrence ((,c :inherit modus-themes-search-lazy))) 2612 `(iedit-read-only-occurrence ((,c :inherit modus-themes-search-current))) 2613 ;;;;; iflipb 2614 `(iflipb-current-buffer-face ((,c :inherit bold :foreground ,name))) 2615 `(iflipb-other-buffer-face ((,c :inherit shadow))) 2616 ;;;;; image-dired 2617 `(image-dired-thumb-flagged ((,c :inherit modus-themes-mark-del :box (:line-width -3)))) 2618 `(image-dired-thumb-header-file-name ((,c :inherit bold))) 2619 `(image-dired-thumb-header-file-size ((,c :foreground ,constant))) 2620 `(image-dired-thumb-mark ((,c :inherit modus-themes-mark-sel :box (:line-width -3)))) 2621 ;;;;; imenu-list 2622 `(imenu-list-entry-face-0 ((,c :foreground ,fg-heading-1))) 2623 `(imenu-list-entry-face-1 ((,c :foreground ,fg-heading-2))) 2624 `(imenu-list-entry-face-2 ((,c :foreground ,fg-heading-3))) 2625 `(imenu-list-entry-face-3 ((,c :foreground ,fg-heading-4))) 2626 `(imenu-list-entry-subalist-face-0 ((,c :inherit bold :foreground ,fg-heading-1 :underline t))) 2627 `(imenu-list-entry-subalist-face-1 ((,c :inherit bold :foreground ,fg-heading-2 :underline t))) 2628 `(imenu-list-entry-subalist-face-2 ((,c :inherit bold :foreground ,fg-heading-3 :underline t))) 2629 `(imenu-list-entry-subalist-face-3 ((,c :inherit bold :foreground ,fg-heading-4 :underline t))) 2630 ;;;;; indium 2631 `(indium-breakpoint-face ((,c :foreground ,err))) 2632 `(indium-frame-url-face ((,c :inherit (shadow button)))) 2633 `(indium-keyword-face ((,c :inherit font-lock-keyword-face))) 2634 `(indium-litable-face ((,c :inherit modus-themes-slant))) 2635 `(indium-repl-error-face ((,c :inherit error))) 2636 `(indium-repl-prompt-face ((,c :inherit modus-themes-prompt))) 2637 `(indium-repl-stdout-face (( ))) 2638 ;;;;; info 2639 `(Info-quoted ((,c :inherit modus-themes-prose-verbatim))) ; the capitalization is canonical 2640 `(info-header-node ((,c :inherit (shadow bold)))) 2641 `(info-header-xref ((,c :foreground ,fg-link))) 2642 `(info-index-match ((,c :inherit match))) 2643 `(info-menu-header ((,c :inherit bold))) 2644 `(info-menu-star ((,c :inherit error))) 2645 `(info-node ((,c :inherit bold))) 2646 `(info-title-1 ((,c :inherit modus-themes-heading-1))) 2647 `(info-title-2 ((,c :inherit modus-themes-heading-2))) 2648 `(info-title-3 ((,c :inherit modus-themes-heading-3))) 2649 `(info-title-4 ((,c :inherit modus-themes-heading-4))) 2650 ;;;;; info+ (info-plus) 2651 `(info-command-ref-item ((,c :inherit font-lock-function-name-face))) 2652 `(info-constant-ref-item ((,c :inherit font-lock-constant-face))) 2653 `(info-custom-delimited ((,c :inherit modus-themes-prose-verbatim))) 2654 `(info-double-quoted-name ((,c :inherit font-lock-string-face))) 2655 `(info-file (( ))) 2656 `(info-function-ref-item ((,c :inherit font-lock-function-name-face))) 2657 `(info-glossary-word ((,c :inherit modus-themes-button))) 2658 `(info-indented-text (( ))) 2659 `(info-isolated-backquote (( ))) 2660 `(info-isolated-quote (( ))) 2661 `(info-macro-ref-item ((,c :inherit font-lock-keyword-face))) 2662 `(info-menu ((,c :inherit bold))) 2663 `(info-quoted-name ((,c :inherit modus-themes-prose-verbatim))) 2664 `(info-reference-item ((,c :inherit bold))) 2665 `(info-special-form-ref-item ((,c :inherit warning))) 2666 `(info-string ((,c :inherit font-lock-string-face))) 2667 `(info-syntax-class-item ((,c :inherit modus-themes-prose-code))) 2668 `(info-user-option-ref-item ((,c :inherit font-lock-variable-name-face))) 2669 `(info-variable-ref-item ((,c :inherit font-lock-variable-name-face))) 2670 ;;;;; info-colors 2671 `(info-colors-lisp-code-block ((,c :inherit modus-themes-fixed-pitch))) 2672 `(info-colors-ref-item-command ((,c :inherit font-lock-function-name-face))) 2673 `(info-colors-ref-item-constant ((,c :inherit font-lock-constant-face))) 2674 `(info-colors-ref-item-function ((,c :inherit font-lock-function-name-face))) 2675 `(info-colors-ref-item-macro ((,c :inherit font-lock-keyword-face))) 2676 `(info-colors-ref-item-other ((,c :inherit font-lock-doc-face))) 2677 `(info-colors-ref-item-special-form ((,c :inherit font-lock-keyword-face))) 2678 `(info-colors-ref-item-syntax-class ((,c :inherit font-lock-builtin-face))) 2679 `(info-colors-ref-item-type ((,c :inherit font-lock-type-face))) 2680 `(info-colors-ref-item-user-option ((,c :inherit font-lock-variable-name-face))) 2681 `(info-colors-ref-item-variable ((,c :inherit font-lock-variable-name-face))) 2682 ;;;;; ioccur 2683 `(ioccur-cursor ((,c :foreground ,fg-main))) 2684 `(ioccur-invalid-regexp ((,c :inherit error))) 2685 `(ioccur-match-face ((,c :inherit match))) 2686 `(ioccur-match-overlay-face ((,c :background ,bg-inactive :extend t))) 2687 `(ioccur-num-line-face ((,c :inherit shadow))) 2688 `(ioccur-overlay-face ((,c :background ,bg-hl-line :extend t))) 2689 `(ioccur-regexp-face ((,c :inherit (modus-themes-search-current bold)))) 2690 `(ioccur-title-face ((,c :inherit bold :foreground ,name))) 2691 ;;;;; isearch, occur, and the like 2692 `(isearch ((,c :inherit modus-themes-search-current))) 2693 `(isearch-fail ((,c :inherit modus-themes-prominent-error))) 2694 `(isearch-group-1 ((,c :inherit modus-themes-search-rx-group-0))) 2695 `(isearch-group-2 ((,c :inherit modus-themes-search-rx-group-1))) 2696 `(lazy-highlight ((,c :inherit modus-themes-search-lazy))) 2697 `(match ((,c :background ,bg-magenta-subtle :foreground ,fg-main))) 2698 `(query-replace ((,c :inherit modus-themes-search-replace))) 2699 ;;;;; ivy 2700 `(ivy-action ((,c :inherit modus-themes-key-binding))) 2701 `(ivy-confirm-face ((,c :inherit success))) 2702 `(ivy-current-match ((,c :inherit modus-themes-completion-selected))) 2703 `(ivy-match-required-face ((,c :inherit error))) 2704 `(ivy-minibuffer-match-face-1 (( ))) 2705 `(ivy-minibuffer-match-face-2 ((,c :inherit modus-themes-completion-match-0))) 2706 `(ivy-minibuffer-match-face-3 ((,c :inherit modus-themes-completion-match-1))) 2707 `(ivy-minibuffer-match-face-4 ((,c :inherit modus-themes-completion-match-2))) 2708 `(ivy-remote ((,c :inherit italic))) 2709 `(ivy-separator ((,c :inherit shadow))) 2710 `(ivy-subdir ((,c :foreground ,accent-0))) 2711 `(ivy-virtual ((,c :foreground ,accent-1))) 2712 ;;;;; ivy-posframe 2713 `(ivy-posframe-border ((,c :background ,border))) 2714 `(ivy-posframe-cursor ((,c :background ,fg-main :foreground ,bg-main))) 2715 ;;;;; japanese-holidays 2716 `(japanese-holiday-saturday ((,c :foreground ,date-holiday-other))) 2717 ;;;;; jira (org-jira) 2718 `(jiralib-comment-face ((,c :background ,bg-inactive))) 2719 `(jiralib-comment-header-face ((,c :inherit bold))) 2720 `(jiralib-issue-info-face ((,c :background ,bg-inactive))) 2721 `(jiralib-issue-info-header-face ((,c :inherit bold :background ,bg-inactive))) 2722 `(jiralib-issue-summary-face ((,c :inherit bold))) 2723 `(jiralib-link-filter-face ((,c :underline t))) 2724 `(jiralib-link-issue-face ((,c :underline t))) 2725 `(jiralib-link-project-face ((,c :underline t))) 2726 ;;;;; jit-spell 2727 `(jit-spell-misspelling ((,c :inherit modus-themes-lang-error))) 2728 ;;;;; jinx 2729 `(jinx-misspelled ((,c :inherit modus-themes-lang-warning))) 2730 ;;;;; journalctl-mode 2731 `(journalctl-error-face ((,c :inherit error))) 2732 `(journalctl-finished-face ((,c :inherit success))) 2733 `(journalctl-host-face ((,c :foreground ,name))) 2734 `(journalctl-process-face ((,c :foreground ,warning))) 2735 `(journalctl-starting-face ((,c :foreground ,info))) 2736 `(journalctl-timestamp-face ((,c :foreground ,date-common))) 2737 `(journalctl-warning-face ((,c :inherit warning))) 2738 ;;;;; js2-mode 2739 `(js2-error ((,c :inherit modus-themes-lang-error))) 2740 `(js2-external-variable ((,c :inherit font-lock-variable-name-face))) 2741 `(js2-function-call ((,c :inherit font-lock-function-name-face))) 2742 `(js2-function-param ((,c :inherit font-lock-constant-face))) 2743 `(js2-instance-member ((,c :inherit font-lock-keyword-face))) 2744 `(js2-jsdoc-html-tag-delimiter ((,c :foreground ,fg-main))) 2745 `(js2-jsdoc-html-tag-name ((,c :inherit font-lock-function-name-face))) 2746 `(js2-jsdoc-tag ((,c :inherit (font-lock-builtin-face font-lock-comment-face) :weight normal))) 2747 `(js2-jsdoc-type ((,c :inherit (font-lock-type-face font-lock-comment-face) :weight normal))) 2748 `(js2-jsdoc-value ((,c :inherit (font-lock-constant-face font-lock-comment-face) :weight normal))) 2749 `(js2-object-property ((,c :foreground ,fg-main))) 2750 `(js2-object-property-access ((,c :foreground ,fg-main))) 2751 `(js2-private-function-call ((,c :inherit font-lock-preprocessor-face))) 2752 `(js2-private-member ((,c :inherit font-lock-warning-face))) 2753 `(js2-warning ((,c :inherit modus-themes-lang-warning))) 2754 ;;;;; julia 2755 `(julia-macro-face ((,c :inherit font-lock-builtin-face))) 2756 `(julia-quoted-symbol-face ((,c :inherit font-lock-constant-face))) 2757 ;;;;; kaocha-runner 2758 `(kaocha-runner-error-face ((,c :inherit error))) 2759 `(kaocha-runner-success-face ((,c :inherit success))) 2760 `(kaocha-runner-warning-face ((,c :inherit warning))) 2761 ;;;;; keycast 2762 `(keycast-command ((,c :inherit bold))) 2763 `(keycast-key ((,c :inherit modus-themes-bold :background ,keybind :foreground ,bg-main))) 2764 ;;;;; ledger-mode 2765 `(ledger-font-auto-xact-face ((,c :inherit font-lock-builtin-face))) 2766 `(ledger-font-account-name-face ((,c :foreground ,name))) 2767 `(ledger-font-directive-face ((,c :inherit font-lock-keyword-face))) 2768 `(ledger-font-posting-date-face ((,c :inherit modus-themes-bold :foreground ,date-common))) 2769 `(ledger-font-periodic-xact-face ((,c :inherit font-lock-variable-name-face))) 2770 `(ledger-font-posting-amount-face ((,c :inherit font-lock-constant-face))) 2771 `(ledger-font-payee-cleared-face ((,c :inherit success))) 2772 `(ledger-font-payee-pending-face ((,c :inherit warning))) 2773 `(ledger-font-payee-uncleared-face ((,c :inherit error))) 2774 `(ledger-font-xact-highlight-face ((,c :background ,bg-hl-line :extend t))) 2775 ;;;;; leerzeichen 2776 `(leerzeichen ((,c :background ,bg-inactive))) 2777 ;;;;; line numbers (display-line-numbers-mode and global variant) 2778 ;; Here we cannot inherit `modus-themes-fixed-pitch'. We need to 2779 ;; fall back to `default' otherwise line numbers do not scale when 2780 ;; using `text-scale-adjust'. 2781 `(line-number ((,c :inherit ,(if modus-themes-mixed-fonts '(fixed-pitch default) 'default) :background ,bg-line-number-inactive :foreground ,fg-line-number-inactive))) 2782 `(line-number-current-line ((,c :inherit (bold line-number) :background ,bg-line-number-active :foreground ,fg-line-number-active))) 2783 `(line-number-major-tick ((,c :inherit line-number :foreground ,err))) 2784 `(line-number-minor-tick ((,c :inherit line-number :foreground ,fg-alt))) 2785 ;;;;; magit 2786 `(magit-bisect-bad ((,c :inherit error))) 2787 `(magit-bisect-good ((,c :inherit success))) 2788 `(magit-bisect-skip ((,c :inherit warning))) 2789 `(magit-blame-date (( ))) 2790 `(magit-blame-dimmed ((,c :inherit shadow))) 2791 `(magit-blame-hash (( ))) 2792 `(magit-blame-highlight ((,c :background ,bg-active :foreground ,fg-main))) 2793 `(magit-blame-name (( ))) 2794 `(magit-blame-summary (( ))) 2795 `(magit-branch-local ((,c :foreground ,accent-0))) 2796 `(magit-branch-remote ((,c :foreground ,accent-1))) 2797 `(magit-branch-upstream ((,c :inherit italic))) 2798 `(magit-branch-warning ((,c :inherit warning))) 2799 `(magit-cherry-equivalent ((,c :foreground ,magenta))) 2800 `(magit-cherry-unmatched ((,c :foreground ,cyan))) 2801 `(magit-diff-added ((,c :background ,bg-added-faint :foreground ,fg-added))) 2802 `(magit-diff-added-highlight ((,c :background ,bg-added :foreground ,fg-added))) 2803 `(magit-diff-base ((,c :background ,bg-changed-faint :foreground ,fg-changed))) 2804 `(magit-diff-base-highlight ((,c :background ,bg-changed :foreground ,fg-changed))) 2805 `(magit-diff-context ((,c :inherit shadow))) 2806 `(magit-diff-context-highlight ((,c :background ,bg-diff-context))) 2807 `(magit-diff-file-heading ((,c :inherit bold :foreground ,accent-0))) 2808 `(magit-diff-file-heading-highlight ((,c :inherit magit-diff-file-heading :background ,bg-inactive))) 2809 `(magit-diff-file-heading-selection ((,c :inherit bold :background ,bg-hover-secondary))) 2810 `(magit-diff-hunk-heading ((,c :background ,bg-inactive))) 2811 `(magit-diff-hunk-heading-highlight ((,c :inherit bold :background ,bg-active))) 2812 `(magit-diff-hunk-heading-selection ((,c :inherit bold :background ,bg-hover-secondary))) 2813 `(magit-diff-hunk-region ((,c :inherit bold))) 2814 `(magit-diff-lines-boundary ((,c :background ,fg-main))) 2815 `(magit-diff-lines-heading ((,c :background ,fg-dim :foreground ,bg-main))) 2816 `(magit-diff-removed ((,c :background ,bg-removed-faint :foreground ,fg-removed))) 2817 `(magit-diff-removed-highlight ((,c :background ,bg-removed :foreground ,fg-removed))) 2818 `(magit-diffstat-added ((,c :foreground ,fg-added-intense))) 2819 `(magit-diffstat-removed ((,c :foreground ,fg-removed-intense))) 2820 `(magit-dimmed ((,c :inherit shadow))) 2821 `(magit-filename ((,c :foreground ,accent-2))) 2822 `(magit-hash ((,c :foreground ,identifier))) 2823 `(magit-head ((,c :inherit magit-branch-local))) 2824 `(magit-header-line ((,c :inherit bold))) 2825 `(magit-header-line-key ((,c :inherit modus-themes-key-binding))) 2826 `(magit-header-line-log-select ((,c :inherit bold))) 2827 `(magit-keyword ((,c :foreground ,keyword))) 2828 `(magit-keyword-squash ((,c :inherit bold :foreground ,warning))) 2829 `(magit-log-author ((,c :foreground ,name))) 2830 `(magit-log-date ((,c :foreground ,date-common))) 2831 `(magit-log-graph ((,c :inherit shadow))) 2832 `(magit-mode-line-process ((,c :inherit bold :foreground ,modeline-info))) 2833 `(magit-mode-line-process-error ((,c :inherit bold :foreground ,modeline-err))) 2834 `(magit-process-ng ((,c :inherit error))) 2835 `(magit-process-ok ((,c :inherit success))) 2836 `(magit-reflog-amend ((,c :inherit warning))) 2837 `(magit-reflog-checkout ((,c :inherit bold :foreground ,blue))) 2838 `(magit-reflog-cherry-pick ((,c :inherit success))) 2839 `(magit-reflog-commit ((,c :inherit bold))) 2840 `(magit-reflog-merge ((,c :inherit success))) 2841 `(magit-reflog-other ((,c :inherit bold :foreground ,cyan))) 2842 `(magit-reflog-rebase ((,c :inherit bold :foreground ,magenta))) 2843 `(magit-reflog-remote ((,c :inherit (bold magit-branch-remote)))) 2844 `(magit-reflog-reset ((,c :inherit error))) 2845 `(magit-refname ((,c :inherit shadow))) 2846 `(magit-refname-pullreq ((,c :inherit shadow))) 2847 `(magit-refname-stash ((,c :inherit shadow))) 2848 `(magit-refname-wip ((,c :inherit shadow))) 2849 `(magit-section ((,c :background ,bg-dim :foreground ,fg-main))) 2850 `(magit-section-heading ((,c :inherit bold))) 2851 `(magit-section-heading-selection ((,c :inherit bold :background ,bg-hover-secondary))) 2852 `(magit-section-highlight ((,c :background ,bg-dim))) 2853 `(magit-sequence-done ((,c :inherit success))) 2854 `(magit-sequence-drop ((,c :inherit error))) 2855 `(magit-sequence-exec ((,c :inherit bold :foreground ,magenta))) 2856 `(magit-sequence-head ((,c :inherit bold :foreground ,cyan))) 2857 `(magit-sequence-onto ((,c :inherit (bold shadow)))) 2858 `(magit-sequence-part ((,c :inherit warning))) 2859 `(magit-sequence-pick ((,c :inherit bold))) 2860 `(magit-sequence-stop ((,c :inherit error))) 2861 `(magit-signature-bad ((,c :inherit error))) 2862 `(magit-signature-error ((,c :inherit error))) 2863 `(magit-signature-expired ((,c :inherit warning))) 2864 `(magit-signature-expired-key ((,c :foreground ,warning))) 2865 `(magit-signature-good ((,c :inherit success))) 2866 `(magit-signature-revoked ((,c :inherit bold :foreground ,warning))) 2867 `(magit-signature-untrusted ((,c :inherit (bold shadow)))) 2868 `(magit-tag ((,c :foreground ,accent-3))) ; compare with branches 2869 ;;;;; make-mode (makefiles) 2870 `(makefile-makepp-perl ((,c :background ,bg-dim))) 2871 `(makefile-space ((,c :background ,bg-inactive))) 2872 ;;;;; man 2873 `(Man-overstrike ((,c :inherit bold :foreground ,accent-0))) 2874 `(Man-underline ((,c :foreground ,accent-1 :underline t))) 2875 ;;;;; marginalia 2876 `(marginalia-archive ((,c :foreground ,accent-0))) 2877 `(marginalia-char ((,c :foreground ,accent-2))) 2878 `(marginalia-date ((,c :foreground ,date-common))) 2879 `(marginalia-documentation ((,c :inherit modus-themes-slant :foreground ,docstring))) 2880 `(marginalia-file-name (( ))) 2881 `(marginalia-file-owner ((,c :inherit shadow))) 2882 `(marginalia-file-priv-dir ((,c :foreground ,accent-0))) 2883 `(marginalia-file-priv-exec ((,c :foreground ,accent-1))) 2884 `(marginalia-file-priv-link ((,c :foreground ,fg-link))) 2885 `(marginalia-file-priv-no ((,c :inherit shadow))) 2886 `(marginalia-file-priv-other ((,c :foreground ,accent-2))) 2887 `(marginalia-file-priv-rare ((,c :foreground ,accent-3))) 2888 `(marginalia-file-priv-read ((,c :foreground ,fg-main))) 2889 `(marginalia-file-priv-write ((,c :foreground ,accent-0))) 2890 `(marginalia-function ((,c :foreground ,fnname))) 2891 `(marginalia-key ((,c :inherit modus-themes-key-binding))) 2892 `(marginalia-lighter ((,c :inherit shadow))) 2893 `(marginalia-liqst ((,c :inherit shadow))) 2894 `(marginalia-mode ((,c :foreground ,constant))) 2895 `(marginalia-modified ((,c :inherit warning))) 2896 `(marginalia-null ((,c :inherit shadow))) 2897 `(marginalia-number ((,c :foreground ,constant))) 2898 `(marginalia-size ((,c :foreground ,variable))) 2899 `(marginalia-string ((,c :foreground ,string))) 2900 `(marginalia-symbol ((,c :foreground ,builtin))) 2901 `(marginalia-true (( ))) 2902 `(marginalia-type ((,c :foreground ,type))) 2903 `(marginalia-value ((,c :inherit shadow))) 2904 `(marginalia-version ((,c :foreground ,date-common))) 2905 ;;;;; markdown-mode 2906 `(markdown-blockquote-face ((,c :inherit font-lock-doc-face))) 2907 `(markdown-bold-face ((,c :inherit bold))) 2908 `(markdown-code-face ((,c :inherit modus-themes-fixed-pitch :background ,bg-dim :extend t))) 2909 `(markdown-gfm-checkbox-face ((,c :foreground ,warning))) 2910 `(markdown-header-face (( ))) 2911 `(markdown-header-face-1 ((,c :inherit modus-themes-heading-1))) 2912 `(markdown-header-face-2 ((,c :inherit modus-themes-heading-2))) 2913 `(markdown-header-face-3 ((,c :inherit modus-themes-heading-3))) 2914 `(markdown-header-face-4 ((,c :inherit modus-themes-heading-4))) 2915 `(markdown-header-face-5 ((,c :inherit modus-themes-heading-5))) 2916 `(markdown-header-face-6 ((,c :inherit modus-themes-heading-6))) 2917 `(markdown-highlighting-face ((,c :inherit secondary-selection))) 2918 `(markdown-inline-code-face ((,c :inherit modus-themes-prose-code))) 2919 `(markdown-italic-face ((,c :inherit italic))) 2920 `(markdown-language-keyword-face ((,c :inherit modus-themes-fixed-pitch :background ,bg-prose-block-delimiter :foreground ,fg-prose-block-delimiter))) 2921 `(markdown-line-break-face ((,c :inherit nobreak-space))) 2922 `(markdown-link-face ((,c :inherit link))) 2923 `(markdown-markup-face ((,c :inherit shadow))) 2924 `(markdown-metadata-key-face ((,c :inherit bold))) 2925 `(markdown-metadata-value-face ((,c :foreground ,string))) 2926 `(markdown-missing-link-face ((,c :inherit warning))) 2927 `(markdown-pre-face ((,c :inherit markdown-code-face))) 2928 `(markdown-table-face ((,c :inherit modus-themes-fixed-pitch :foreground ,prose-table))) 2929 `(markdown-url-face ((,c :foreground ,fg-alt))) 2930 ;;;;; markup-faces (`adoc-mode') 2931 `(markup-attribute-face ((,c :inherit (modus-themes-slant markup-meta-face)))) 2932 `(markup-bold-face ((,c :inherit bold))) 2933 `(markup-code-face ((,c :inherit modus-themes-prose-code))) 2934 `(markup-comment-face ((,c :inherit font-lock-comment-face))) 2935 `(markup-complex-replacement-face ((,c :inherit modus-themes-prose-macro))) 2936 `(markup-emphasis-face ((,c :inherit markup-italic-face))) 2937 `(markup-error-face ((,c :inherit error))) 2938 `(markup-gen-face ((,c :inherit modus-themes-prose-verbatim))) 2939 `(markup-internal-reference-face ((,c :inherit (shadow modus-themes-slant)))) 2940 `(markup-italic-face ((,c :inherit italic))) 2941 `(markup-list-face ((,c :background ,bg-inactive))) 2942 `(markup-meta-face ((,c :inherit (modus-themes-fixed-pitch shadow)))) 2943 `(markup-meta-hide-face ((,c :foreground "gray50"))) 2944 `(markup-reference-face ((,c :inherit modus-themes-slant :foreground ,fg-alt))) 2945 `(markup-replacement-face ((,c :inherit modus-themes-fixed-pitch :foreground ,err))) 2946 `(markup-secondary-text-face ((,c :height 0.9 :foreground ,fg-alt))) 2947 `(markup-small-face ((,c :inherit markup-gen-face :height 0.9))) 2948 `(markup-strong-face ((,c :inherit markup-bold-face))) 2949 `(markup-subscript-face ((,c :height 0.9 :foreground ,fg-alt))) 2950 `(markup-superscript-face ((,c :height 0.9 :foreground ,fg-alt))) 2951 `(markup-table-cell-face (( ))) 2952 `(markup-table-face ((,c :foreground ,prose-table))) 2953 `(markup-table-row-face (( ))) 2954 `(markup-title-0-face ((,c :inherit modus-themes-heading-1))) 2955 `(markup-title-1-face ((,c :inherit modus-themes-heading-2))) 2956 `(markup-title-2-face ((,c :inherit modus-themes-heading-3))) 2957 `(markup-title-3-face ((,c :inherit modus-themes-heading-4))) 2958 `(markup-title-4-face ((,c :inherit modus-themes-heading-5))) 2959 `(markup-title-5-face ((,c :inherit modus-themes-heading-6))) 2960 `(markup-verbatim-face ((,c :inherit modus-themes-prose-verbatim))) 2961 ;;;;; mct 2962 `(mct-highlight-candidate ((,c :inherit modus-themes-completion-selected))) 2963 ;;;;; messages 2964 `(message-cited-text-1 ((,c :foreground ,mail-cite-0))) 2965 `(message-cited-text-2 ((,c :foreground ,mail-cite-1))) 2966 `(message-cited-text-3 ((,c :foreground ,mail-cite-2))) 2967 `(message-cited-text-4 ((,c :foreground ,mail-cite-3))) 2968 `(message-header-name ((,c :inherit bold))) 2969 `(message-header-newsgroups ((,c :inherit message-header-other))) 2970 `(message-header-to ((,c :inherit bold :foreground ,mail-recipient))) 2971 `(message-header-cc ((,c :foreground ,mail-recipient))) 2972 `(message-header-subject ((,c :inherit bold :foreground ,mail-subject))) 2973 `(message-header-xheader ((,c :inherit message-header-other))) 2974 `(message-header-other ((,c :foreground ,mail-other))) 2975 `(message-mml ((,c :foreground ,mail-part))) 2976 `(message-separator ((,c :background ,bg-inactive :foreground ,fg-main))) 2977 ;;;;; minimap 2978 `(minimap-active-region-background ((,c :background ,bg-active))) 2979 `(minimap-current-line-face ((,c :background ,bg-cyan-intense :foreground ,fg-main))) 2980 ;;;;; mode-line 2981 `(mode-line ((,c :inherit modus-themes-ui-variable-pitch 2982 :box ,border-mode-line-active 2983 :background ,bg-mode-line-active 2984 :foreground ,fg-mode-line-active))) 2985 `(mode-line-active ((,c :inherit mode-line))) 2986 `(mode-line-buffer-id ((,c :inherit bold))) 2987 `(mode-line-emphasis ((,c :inherit bold :foreground ,modeline-info))) 2988 `(mode-line-highlight ((,c :background ,bg-hover :foreground ,fg-main :box ,fg-main))) 2989 `(mode-line-inactive ((,c :inherit modus-themes-ui-variable-pitch 2990 :box ,border-mode-line-inactive 2991 :background ,bg-mode-line-inactive 2992 :foreground ,fg-mode-line-inactive))) 2993 ;;;;; mood-line 2994 `(mood-line-modified ((,c :inherit italic))) 2995 `(mood-line-status-error ((,c :inherit error))) 2996 `(mood-line-status-info ((,c :foreground ,info))) 2997 `(mood-line-status-neutral (( ))) 2998 `(mood-line-status-success ((,c :inherit success))) 2999 `(mood-line-status-warning ((,c :inherit warning))) 3000 `(mood-line-unimportant ((,c :inherit shadow))) 3001 ;;;;; mpdel 3002 `(mpdel-browser-directory-face ((,c :foreground ,accent-0))) 3003 `(mpdel-playlist-current-song-face ((,c :inherit bold :foreground ,accent-0))) 3004 ;;;;; mu4e 3005 `(mu4e-attach-number-face ((,c :inherit bold :foreground ,fg-dim))) 3006 `(mu4e-cited-1-face ((,c :inherit message-cited-text-1))) 3007 `(mu4e-cited-2-face ((,c :inherit message-cited-text-2))) 3008 `(mu4e-cited-3-face ((,c :inherit message-cited-text-3))) 3009 `(mu4e-cited-4-face ((,c :inherit message-cited-text-4))) 3010 `(mu4e-cited-5-face ((,c :inherit message-cited-text-1))) 3011 `(mu4e-cited-6-face ((,c :inherit message-cited-text-2))) 3012 `(mu4e-cited-7-face ((,c :inherit message-cited-text-3))) 3013 `(mu4e-compose-header-face ((,c :inherit mu4e-compose-separator-face))) 3014 `(mu4e-compose-separator-face ((,c :inherit message-separator))) 3015 `(mu4e-contact-face ((,c :inherit message-header-to))) 3016 `(mu4e-context-face ((,c :inherit bold))) 3017 `(mu4e-draft-face ((,c :foreground ,warning))) 3018 `(mu4e-flagged-face ((,c :foreground ,keyword))) 3019 `(mu4e-footer-face ((,c :inherit italic :foreground ,fg-alt))) 3020 `(mu4e-forwarded-face ((,c :inherit italic :foreground ,info))) 3021 `(mu4e-header-face ((,c :inherit shadow))) 3022 `(mu4e-header-highlight-face ((,c :background ,bg-hl-line :extend t))) 3023 `(mu4e-header-key-face ((,c :inherit message-header-name))) 3024 `(mu4e-header-marks-face ((,c :inherit mu4e-special-header-value-face))) 3025 `(mu4e-header-title-face ((,c :foreground ,fg-alt))) 3026 `(mu4e-header-value-face ((,c :inherit message-header-other))) 3027 `(mu4e-highlight-face ((,c :inherit modus-themes-key-binding))) 3028 `(mu4e-link-face ((,c :inherit link))) 3029 `(mu4e-modeline-face (( ))) 3030 `(mu4e-moved-face ((,c :inherit italic :foreground ,warning))) 3031 `(mu4e-ok-face ((,c :inherit success))) 3032 `(mu4e-region-code ((,c :foreground ,builtin))) 3033 `(mu4e-related-face ((,c :inherit (italic shadow)))) 3034 `(mu4e-replied-face ((,c :foreground ,info))) 3035 `(mu4e-special-header-value-face ((,c :inherit message-header-subject))) 3036 `(mu4e-system-face ((,c :inherit italic))) 3037 `(mu4e-thread-fold-face ((,c :foreground ,border))) 3038 `(mu4e-title-face (( ))) 3039 `(mu4e-trashed-face ((,c :foreground ,err))) 3040 `(mu4e-unread-face ((,c :inherit bold))) 3041 `(mu4e-url-number-face ((,c :inherit shadow))) 3042 `(mu4e-view-body-face (( ))) 3043 `(mu4e-warning-face ((,c :inherit warning))) 3044 ;;;;; multiple-cursors 3045 `(mc/cursor-bar-face ((,c :height 1 :foreground ,fg-main :background ,bg-main))) 3046 `(mc/cursor-face ((,c :inverse-video t))) 3047 `(mc/region-face ((,c :inherit region))) 3048 ;;;;; nerd-icons 3049 `(nerd-icons-blue ((,c :foreground ,blue-cooler))) 3050 `(nerd-icons-blue-alt ((,c :foreground ,blue-warmer))) 3051 `(nerd-icons-cyan ((,c :foreground ,cyan))) 3052 `(nerd-icons-cyan-alt ((,c :foreground ,cyan-warmer))) 3053 `(nerd-icons-dblue ((,c :foreground ,blue-faint))) 3054 `(nerd-icons-dcyan ((,c :foreground ,cyan-faint))) 3055 `(nerd-icons-dgreen ((,c :foreground ,green-faint))) 3056 `(nerd-icons-dmaroon ((,c :foreground ,magenta-faint))) 3057 `(nerd-icons-dorange ((,c :foreground ,red-faint))) 3058 `(nerd-icons-dpink ((,c :foreground ,magenta-faint))) 3059 `(nerd-icons-dpurple ((,c :foreground ,magenta-cooler))) 3060 `(nerd-icons-dred ((,c :foreground ,red))) 3061 `(nerd-icons-dsilver ((,c :foreground ,cyan-faint))) 3062 `(nerd-icons-dyellow ((,c :foreground ,yellow-faint))) 3063 `(nerd-icons-green ((,c :foreground ,green))) 3064 `(nerd-icons-lblue ((,c :foreground ,blue-cooler))) 3065 `(nerd-icons-lcyan ((,c :foreground ,cyan))) 3066 `(nerd-icons-lgreen ((,c :foreground ,green-warmer))) 3067 `(nerd-icons-lmaroon ((,c :foreground ,magenta-warmer))) 3068 `(nerd-icons-lorange ((,c :foreground ,red-warmer))) 3069 `(nerd-icons-lpink ((,c :foreground ,magenta))) 3070 `(nerd-icons-lpurple ((,c :foreground ,magenta-faint))) 3071 `(nerd-icons-lred ((,c :foreground ,red-faint))) 3072 `(nerd-icons-lsilver ((,c :foreground "gray50"))) 3073 `(nerd-icons-lyellow ((,c :foreground ,yellow-warmer))) 3074 `(nerd-icons-maroon ((,c :foreground ,magenta))) 3075 `(nerd-icons-orange ((,c :foreground ,yellow-warmer))) 3076 `(nerd-icons-pink ((,c :foreground ,magenta-warmer))) 3077 `(nerd-icons-purple ((,c :foreground ,magenta-cooler))) 3078 `(nerd-icons-purple-alt ((,c :foreground ,blue-warmer))) 3079 `(nerd-icons-red ((,c :foreground ,red))) 3080 `(nerd-icons-red-alt ((,c :foreground ,red-cooler))) 3081 `(nerd-icons-silver ((,c :foreground "gray50"))) 3082 `(nerd-icons-yellow ((,c :foreground ,yellow))) 3083 ;;;;; nerd-icons-completion 3084 `(nerd-icons-completion-dir-face ((,c :foreground ,cyan-faint))) 3085 ;;;;; nerd-icons-dired 3086 `(nerd-icons-dired-dir-face ((,c :foreground ,cyan-faint))) 3087 ;;;;; nerd-icons-ibuffer 3088 `(nerd-icons-ibuffer-dir-face ((,c :foreground ,cyan-faint))) 3089 `(nerd-icons-ibuffer-file-face ((,c :foreground ,blue-faint))) 3090 `(nerd-icons-ibuffer-mode-face ((,c :foreground ,cyan))) 3091 `(nerd-icons-ibuffer-size-face ((,c :foreground ,cyan-cooler))) 3092 ;;;;; neotree 3093 `(neo-banner-face ((,c :foreground ,accent-0))) 3094 `(neo-button-face ((,c :inherit button))) 3095 `(neo-dir-link-face (( ))) 3096 `(neo-expand-btn-face (( ))) 3097 `(neo-file-link-face (( ))) 3098 `(neo-header-face ((,c :inherit bold))) 3099 `(neo-root-dir-face ((,c :inherit bold :foreground ,accent-0))) 3100 `(neo-vc-added-face ((,c :inherit success))) 3101 `(neo-vc-conflict-face ((,c :inherit error))) 3102 `(neo-vc-default-face (( ))) 3103 `(neo-vc-edited-face ((,c :inherit italic))) 3104 `(neo-vc-ignored-face ((,c :inherit shadow))) 3105 `(neo-vc-missing-face ((,c :inherit error))) 3106 `(neo-vc-needs-merge-face ((,c :inherit italic))) 3107 `(neo-vc-needs-update-face ((,c :underline t))) 3108 `(neo-vc-removed-face ((,c :strike-through t))) 3109 `(neo-vc-unlocked-changes-face ((,c :inherit success))) 3110 `(neo-vc-up-to-date-face (( ))) 3111 `(neo-vc-user-face ((,c :inherit warning))) 3112 ;;;;; notmuch 3113 `(notmuch-crypto-decryption ((,c :inherit bold))) 3114 `(notmuch-crypto-part-header ((,c :foreground ,mail-part))) ; like `message-mml' 3115 `(notmuch-crypto-signature-bad ((,c :inherit error))) 3116 `(notmuch-crypto-signature-good ((,c :inherit success))) 3117 `(notmuch-crypto-signature-good-key ((,c :inherit success))) 3118 `(notmuch-crypto-signature-unknown ((,c :inherit warning))) 3119 `(notmuch-jump-key ((,c :inherit modus-themes-key-binding))) 3120 `(notmuch-message-summary-face ((,c :inherit bold :background ,bg-inactive))) 3121 `(notmuch-search-count ((,c :foreground ,fg-dim))) 3122 `(notmuch-search-date ((,c :foreground ,date-common))) 3123 `(notmuch-search-flagged-face ((,c :foreground ,keyword))) 3124 `(notmuch-search-matching-authors ((,c :foreground ,mail-recipient))) 3125 `(notmuch-search-non-matching-authors ((,c :inherit shadow))) 3126 `(notmuch-search-subject ((,c :foreground ,fg-main))) 3127 `(notmuch-search-unread-face ((,c :inherit bold))) 3128 `(notmuch-tag-added ((,c :underline ,info))) 3129 `(notmuch-tag-deleted ((,c :strike-through ,err))) 3130 `(notmuch-tag-face ((,c :foreground ,accent-0))) 3131 `(notmuch-tag-flagged ((,c :foreground ,keyword))) 3132 `(notmuch-tag-unread ((,c :foreground ,accent-1))) 3133 `(notmuch-tree-match-author-face ((,c :inherit notmuch-search-matching-authors))) 3134 `(notmuch-tree-match-date-face ((,c :inherit notmuch-search-date))) 3135 `(notmuch-tree-match-face ((,c :foreground ,fg-main))) 3136 `(notmuch-tree-match-tag-face ((,c :inherit notmuch-tag-face))) 3137 `(notmuch-tree-no-match-face ((,c :inherit shadow))) 3138 `(notmuch-tree-no-match-date-face ((,c :inherit shadow))) 3139 `(notmuch-wash-cited-text ((,c :inherit message-cited-text-1))) 3140 `(notmuch-wash-toggle-button ((,c :background ,bg-dim))) 3141 ;;;;; num3-mode 3142 `(num3-face-even ((,c :inherit bold :background ,bg-inactive))) 3143 ;;;;; nxml-mode 3144 `(nxml-attribute-colon ((,c :foreground ,fg-main))) 3145 `(nxml-attribute-local-name ((,c :inherit font-lock-variable-name-face))) 3146 `(nxml-attribute-prefix ((,c :inherit font-lock-type-face))) 3147 `(nxml-attribute-value ((,c :inherit font-lock-constant-face))) 3148 `(nxml-cdata-section-CDATA ((,c :inherit error))) 3149 `(nxml-cdata-section-delimiter ((,c :inherit error))) 3150 `(nxml-char-ref-delimiter ((,c :inherit shadow))) 3151 `(nxml-char-ref-number ((,c :inherit (shadow modus-themes-bold)))) 3152 `(nxml-delimited-data ((,c :inherit (shadow modus-themes-slant)))) 3153 `(nxml-delimiter ((,c :foreground ,fg-dim))) 3154 `(nxml-element-colon ((,c :foreground ,fg-main))) 3155 `(nxml-element-local-name ((,c :inherit font-lock-function-name-face))) 3156 `(nxml-element-prefix ((,c :inherit font-lock-builtin-face))) 3157 `(nxml-entity-ref-delimiter ((,c :inherit shadow))) 3158 `(nxml-entity-ref-name ((,c :inherit (shadow modus-themes-bold)))) 3159 `(nxml-glyph ((,c :background ,bg-active :foreground ,fg-main))) 3160 `(nxml-hash ((,c :inherit (bold font-lock-string-face)))) 3161 `(nxml-heading ((,c :inherit bold))) 3162 `(nxml-name ((,c :inherit font-lock-builtin-face))) 3163 `(nxml-namespace-attribute-colon ((,c :foreground ,fg-main))) 3164 `(nxml-namespace-attribute-prefix ((,c :inherit font-lock-variable-name-face))) 3165 `(nxml-processing-instruction-target ((,c :inherit font-lock-keyword-face))) 3166 `(nxml-prolog-keyword ((,c :inherit font-lock-keyword-face))) 3167 `(nxml-ref ((,c :inherit (shadow modus-themes-bold)))) 3168 `(rng-error ((,c :inherit error))) 3169 ;;;;; olivetti 3170 `(olivetti-fringe ((,c :background ,fringe))) 3171 ;;;;; orderless 3172 `(orderless-match-face-0 ((,c :inherit modus-themes-completion-match-0))) 3173 `(orderless-match-face-1 ((,c :inherit modus-themes-completion-match-1))) 3174 `(orderless-match-face-2 ((,c :inherit modus-themes-completion-match-2))) 3175 `(orderless-match-face-3 ((,c :inherit modus-themes-completion-match-3))) 3176 ;;;;; org 3177 `(org-agenda-calendar-daterange ((,c :foreground ,date-range))) 3178 `(org-agenda-calendar-event ((,c :foreground ,date-event))) 3179 `(org-agenda-calendar-sexp ((,c :inherit (modus-themes-slant org-agenda-calendar-event)))) 3180 `(org-agenda-clocking ((,c :inherit bold :background ,bg-active-argument :foreground ,fg-active-argument))) 3181 `(org-agenda-column-dateline ((,c :background ,bg-inactive))) 3182 `(org-agenda-current-time ((,c :foreground ,date-now))) 3183 `(org-agenda-date ((,c ,@(modus-themes--heading 'agenda-date date-weekday)))) 3184 `(org-agenda-date-today ((,c :inherit org-agenda-date :underline t))) 3185 `(org-agenda-date-weekend ((,c :inherit org-agenda-date :foreground ,date-weekend))) 3186 `(org-agenda-date-weekend-today ((,c :inherit org-agenda-date-today :foreground ,date-weekend))) 3187 `(org-agenda-diary ((,c :inherit org-agenda-calendar-sexp))) 3188 `(org-agenda-dimmed-todo-face ((,c :inherit shadow))) 3189 `(org-agenda-done ((,c :inherit org-done))) 3190 `(org-agenda-filter-category ((,c :inherit bold :foreground ,modeline-err))) 3191 `(org-agenda-filter-effort ((,c :inherit bold :foreground ,modeline-err))) 3192 `(org-agenda-filter-regexp ((,c :inherit bold :foreground ,modeline-err))) 3193 `(org-agenda-filter-tags ((,c :inherit bold :foreground ,modeline-err))) 3194 `(org-agenda-restriction-lock ((,c :background ,bg-dim :foreground ,fg-dim))) 3195 `(org-agenda-structure ((,c ,@(modus-themes--heading 'agenda-structure fg-alt)))) 3196 `(org-agenda-structure-filter ((,c :inherit org-agenda-structure :foreground ,warning))) 3197 `(org-agenda-structure-secondary ((,c :inherit font-lock-doc-face))) 3198 `(org-archived ((,c :background ,bg-inactive :foreground ,fg-main))) 3199 `(org-block ((,c :inherit modus-themes-fixed-pitch :background ,bg-prose-block-contents :extend t))) 3200 `(org-block-begin-line ((,c :inherit modus-themes-fixed-pitch :background ,bg-prose-block-delimiter :foreground ,fg-prose-block-delimiter :extend t))) 3201 `(org-block-end-line ((,c :inherit org-block-begin-line))) 3202 `(org-checkbox ((,c :inherit modus-themes-fixed-pitch :foreground ,warning))) 3203 `(org-checkbox-statistics-done ((,c :inherit org-done))) 3204 `(org-checkbox-statistics-todo ((,c :inherit org-todo))) 3205 `(org-clock-overlay ((,c :inherit secondary-selection))) 3206 `(org-code ((,c :inherit modus-themes-prose-code))) 3207 `(org-column ((,c :inherit default :background ,bg-dim))) 3208 `(org-column-title ((,c :inherit (bold default) :underline t :background ,bg-dim))) 3209 `(org-date ((,c :inherit modus-themes-fixed-pitch :foreground ,date-common))) 3210 `(org-date-selected ((,c :foreground ,date-common :inverse-video t))) 3211 ;; NOTE 2024-03-17: Normally we do not want to add this padding 3212 ;; with the :box, but I do it here because the keys are otherwise 3213 ;; very hard to read. The square brackets around them are not 3214 ;; colored, which is what is causing the problem. 3215 `(org-dispatcher-highlight ((,c :inherit modus-themes-bold :box (:line-width 2 :color ,bg-hover-secondary) :background ,bg-hover-secondary :foreground ,fg-main))) 3216 `(org-document-info ((,c :foreground ,prose-metadata-value))) 3217 `(org-document-info-keyword ((,c :inherit modus-themes-fixed-pitch :foreground ,prose-metadata))) 3218 `(org-document-title ((,c :inherit modus-themes-heading-0))) 3219 `(org-done ((,c :foreground ,prose-done))) 3220 `(org-drawer ((,c :inherit modus-themes-fixed-pitch :foreground ,prose-metadata))) 3221 `(org-ellipsis (( ))) ; inherits from the heading's color 3222 `(org-footnote ((,c :inherit link))) 3223 `(org-formula ((,c :inherit modus-themes-fixed-pitch :foreground ,prose-table-formula))) 3224 `(org-headline-done ((,c :inherit org-done))) 3225 `(org-headline-todo ((,c :inherit org-todo))) 3226 `(org-hide ((,c :foreground ,bg-main))) 3227 `(org-indent ((,c :inherit (fixed-pitch org-hide)))) 3228 `(org-imminent-deadline ((,c :inherit modus-themes-bold :foreground ,date-deadline))) 3229 `(org-latex-and-related ((,c :foreground ,type))) 3230 `(org-level-1 ((,c :inherit modus-themes-heading-1))) 3231 `(org-level-2 ((,c :inherit modus-themes-heading-2))) 3232 `(org-level-3 ((,c :inherit modus-themes-heading-3))) 3233 `(org-level-4 ((,c :inherit modus-themes-heading-4))) 3234 `(org-level-5 ((,c :inherit modus-themes-heading-5))) 3235 `(org-level-6 ((,c :inherit modus-themes-heading-6))) 3236 `(org-level-7 ((,c :inherit modus-themes-heading-7))) 3237 `(org-level-8 ((,c :inherit modus-themes-heading-8))) 3238 `(org-link ((,c :inherit link))) 3239 `(org-list-dt ((,c :inherit bold))) 3240 `(org-macro ((,c :inherit modus-themes-prose-macro))) 3241 `(org-meta-line ((,c :inherit modus-themes-fixed-pitch :foreground ,prose-metadata))) 3242 `(org-mode-line-clock (( ))) 3243 `(org-mode-line-clock-overrun ((,c :inherit bold :foreground ,modeline-err))) 3244 `(org-priority ((,c :foreground ,prose-tag))) 3245 `(org-property-value ((,c :inherit modus-themes-fixed-pitch :foreground ,prose-metadata-value))) 3246 `(org-quote ((,c :inherit org-block))) 3247 `(org-scheduled ((,c :foreground ,date-scheduled))) 3248 `(org-scheduled-previously ((,c :inherit org-scheduled))) 3249 `(org-scheduled-today ((,c :inherit (modus-themes-bold org-scheduled)))) 3250 `(org-sexp-date ((,c :foreground ,date-common))) 3251 `(org-special-keyword ((,c :inherit org-drawer))) 3252 `(org-table ((,c :inherit modus-themes-fixed-pitch :foreground ,prose-table))) 3253 `(org-table-header ((,c :inherit (bold org-table)))) 3254 `(org-tag ((,c :foreground ,prose-tag))) 3255 `(org-tag-group ((,c :inherit (bold org-tag)))) 3256 `(org-target ((,c :underline t))) 3257 `(org-time-grid ((,c :foreground ,fg-dim))) 3258 `(org-todo ((,c :foreground ,prose-todo))) 3259 `(org-upcoming-deadline ((,c :foreground ,date-deadline))) 3260 `(org-upcoming-distant-deadline ((,c :inherit org-upcoming-deadline))) 3261 `(org-verbatim ((,c :inherit modus-themes-prose-verbatim))) 3262 `(org-verse ((,c :inherit org-block))) 3263 `(org-warning ((,c :inherit warning))) 3264 ;;;;; org-habit 3265 `(org-habit-alert-face ((,c :background ,bg-graph-yellow-0 :foreground "#000000"))) ; fg is special case 3266 `(org-habit-alert-future-face ((,c :background ,bg-graph-yellow-1))) 3267 `(org-habit-clear-face ((,c :background ,bg-graph-blue-0 :foreground "#000000"))) ; fg is special case 3268 `(org-habit-clear-future-face ((,c :background ,bg-graph-blue-1))) 3269 `(org-habit-overdue-face ((,c :background ,bg-graph-red-0))) 3270 `(org-habit-overdue-future-face ((,c :background ,bg-graph-red-1))) 3271 `(org-habit-ready-face ((,c :background ,bg-graph-green-0 :foreground "#000000"))) ; fg is special case 3272 `(org-habit-ready-future-face ((,c :background ,bg-graph-green-1))) 3273 ;;;;; org-journal 3274 `(org-journal-calendar-entry-face ((,c :inherit modus-themes-slant :foreground ,date-common))) 3275 `(org-journal-calendar-scheduled-face ((,c :inherit (modus-themes-slant org-scheduled)))) 3276 `(org-journal-highlight ((,c :foreground ,err))) 3277 ;;;;; org-noter 3278 `(org-noter-no-notes-exist-face ((,c :inherit error))) 3279 `(org-noter-notes-exist-face ((,c :inherit success))) 3280 ;;;;; org-pomodoro 3281 `(org-pomodoro-mode-line ((,c :foreground ,err))) 3282 `(org-pomodoro-mode-line-break ((,c :foreground ,info))) 3283 `(org-pomodoro-mode-line-overtime ((,c :inherit error))) 3284 ;;;;; org-recur 3285 `(org-recur ((,c :foreground ,fg-alt))) 3286 ;;;;; org-roam 3287 `(org-roam-dim ((,c :foreground "gray50"))) 3288 `(org-roam-olp ((,c :inherit shadow))) 3289 `(org-roam-preview-heading ((,c :background ,bg-inactive))) 3290 `(org-roam-preview-heading-highlight ((,c :background ,bg-active :foreground ,fg-main))) 3291 `(org-roam-preview-region ((,c :inherit bold))) 3292 `(org-roam-title ((,c :inherit bold))) 3293 ;;;;; org-superstar 3294 `(org-superstar-item ((,c :foreground ,fg-main))) 3295 ;;;;; org-tree-slide 3296 `(org-tree-slide-header-overlay-face ((,c :inherit org-document-title))) 3297 ;;;;; origami 3298 `(origami-fold-header-face ((,c :background ,bg-dim :foreground ,fg-dim :box t))) 3299 `(origami-fold-replacement-face ((,c :background ,bg-inactive :foreground ,fg-dim))) 3300 ;;;;; outline-mode 3301 `(outline-1 ((,c :inherit modus-themes-heading-1))) 3302 `(outline-2 ((,c :inherit modus-themes-heading-2))) 3303 `(outline-3 ((,c :inherit modus-themes-heading-3))) 3304 `(outline-4 ((,c :inherit modus-themes-heading-4))) 3305 `(outline-5 ((,c :inherit modus-themes-heading-5))) 3306 `(outline-6 ((,c :inherit modus-themes-heading-6))) 3307 `(outline-7 ((,c :inherit modus-themes-heading-7))) 3308 `(outline-8 ((,c :inherit modus-themes-heading-8))) 3309 ;;;;; outline-minor-faces 3310 `(outline-minor-0 (())) 3311 ;;;;; package (M-x list-packages) 3312 `(package-description ((,c :foreground ,docstring))) 3313 `(package-help-section-name ((,c :inherit bold))) 3314 `(package-name ((,c :inherit link))) 3315 `(package-status-available ((,c :foreground ,date-common))) 3316 `(package-status-avail-obso ((,c :inherit error))) 3317 `(package-status-built-in ((,c :foreground ,builtin))) 3318 `(package-status-dependency ((,c :foreground ,warning))) 3319 `(package-status-disabled ((,c :inherit error :strike-through t))) 3320 `(package-status-from-source ((,c :foreground ,type))) 3321 `(package-status-held ((,c :foreground ,warning))) 3322 `(package-status-incompat ((,c :inherit warning))) 3323 `(package-status-installed ((,c :foreground ,fg-alt))) 3324 `(package-status-new ((,c :inherit success))) 3325 `(package-status-unsigned ((,c :inherit error))) 3326 ;;;;; page-break-lines 3327 `(page-break-lines ((,c :inherit default :foreground "gray50"))) 3328 ;;;;; pandoc-mode 3329 `(pandoc-citation-key-face ((,c :inherit font-lock-builtin-face))) 3330 `(pandoc-directive-@@-face ((,c :inherit font-lock-keyword-face))) 3331 `(pandoc-directive-braces-face ((,c :inherit font-lock-constant-face))) 3332 `(pandoc-directive-contents-face ((,c :inherit font-lock-string-face))) 3333 `(pandoc-directive-type-face ((,c :inherit font-lock-type-face))) 3334 ;;;;; paren-face 3335 `(parenthesis ((,c :inherit shadow))) 3336 ;;;;; pass 3337 `(pass-mode-directory-face ((,c :inherit bold :foreground ,accent-0))) 3338 `(pass-mode-entry-face ((,c :background ,bg-main :foreground ,fg-main))) 3339 `(pass-mode-header-face ((,c :inherit shadow))) 3340 ;;;;; pdf-tools 3341 `(pdf-links-read-link ((,c :background ,fg-main :foreground ,bg-magenta-intense :inherit bold))) ; Foreground is background and vice versa 3342 `(pdf-occur-document-face ((,c :inherit shadow))) 3343 `(pdf-occur-page-face ((,c :inherit shadow))) 3344 ;;;;; persp-mode 3345 `(persp-face-lighter-buffer-not-in-persp ((,c :inherit error))) 3346 `(persp-face-lighter-default ((,c :inherit bold :foreground ,name))) 3347 `(persp-face-lighter-nil-persp ((,c :inherit bold))) 3348 ;;;;; perspective 3349 `(persp-selected-face ((,c :inherit bold :foreground ,name))) 3350 ;;;;; proced 3351 `(proced-cpu ((,c :foreground ,keyword))) 3352 `(proced-emacs-pid ((,c :foreground ,identifier :underline t))) 3353 `(proced-executable ((,c :foreground ,name))) 3354 `(proced-interruptible-sleep-status-code ((,c :inherit shadow))) 3355 `(proced-mem ((,c :foreground ,type))) 3356 `(proced-memory-high-usage ((,c :foreground ,err))) 3357 `(proced-memory-low-usage ((,c :foreground ,info))) 3358 `(proced-memory-medium-usage ((,c :foreground ,warning))) 3359 `(proced-pgrp ((,c :inherit proced-pid))) 3360 `(proced-pid ((,c :foreground ,identifier))) 3361 `(proced-ppid ((,c :inherit proced-pid))) 3362 `(proced-run-status-code ((,c :inherit success))) 3363 `(proced-sess ((,c :inherit proced-pid))) 3364 `(proced-session-leader-pid ((,c :inherit bold :foreground ,identifier))) 3365 `(proced-time-colon (( ))) 3366 `(proced-uninterruptible-sleep-status-code ((,c :inherit error))) 3367 `(proced-user (( ))) 3368 ;;;;; popup 3369 `(popup-face ((,c :background ,bg-inactive :foreground ,fg-main))) 3370 `(popup-isearch-match ((,c :inherit modus-themes-search-current))) 3371 `(popup-menu-mouse-face ((,c :inherit highlight))) 3372 `(popup-menu-selection-face ((,c :inherit modus-themes-completion-selected))) 3373 `(popup-scroll-bar-background-face ((,c :background ,bg-active))) 3374 `(popup-scroll-bar-foreground-face (( ))) 3375 `(popup-summary-face ((,c :background ,bg-active :foreground ,fg-dim))) 3376 `(popup-tip-face ((,c :inherit modus-themes-intense-yellow))) 3377 ;;;;; powerline 3378 `(powerline-active0 ((,c :background ,fg-dim :foreground ,bg-main))) 3379 `(powerline-active1 ((,c :inherit mode-line))) 3380 `(powerline-active2 ((,c :inherit mode-line-inactive))) 3381 `(powerline-inactive0 ((,c :background ,bg-active :foreground ,fg-dim))) 3382 `(powerline-inactive1 ((,c :background ,bg-main :foreground ,fg-dim))) 3383 `(powerline-inactive2 ((,c :inherit mode-line-inactive))) 3384 ;;;;; powerline-evil 3385 `(powerline-evil-base-face ((,c :background ,fg-main :foreground ,bg-main))) 3386 `(powerline-evil-emacs-face ((,c :inherit bold :background ,bg-main))) 3387 `(powerline-evil-insert-face ((,c :inherit success :background ,bg-main))) 3388 `(powerline-evil-motion-face ((,c :inherit italic :background ,bg-main))) 3389 `(powerline-evil-normal-face ((,c :background ,bg-main :foreground ,fg-alt))) 3390 `(powerline-evil-operator-face ((,c :inherit warning :background ,bg-main))) 3391 `(powerline-evil-replace-face ((,c :inherit error :background ,bg-main))) 3392 `(powerline-evil-visual-face ((,c :inherit bold :background ,bg-main))) 3393 ;;;;; prescient 3394 `(prescient-primary-highlight ((,c :inherit modus-themes-completion-match-0))) 3395 `(prescient-secondary-highlight ((,c :inherit modus-themes-completion-match-1))) 3396 ;;;;; proced 3397 `(proced-mark ((,c :inherit bold))) 3398 `(proced-marked ((,c :inherit modus-themes-mark-alt))) 3399 `(proced-sort-header ((,c :inherit bold :underline t))) 3400 ;;;;; prodigy 3401 `(prodigy-green-face ((,c :inherit success))) 3402 `(prodigy-red-face ((,c :inherit error))) 3403 `(prodigy-yellow-face ((,c :inherit warning))) 3404 ;;;;; pulse 3405 `(pulse-highlight-start-face ((,c :background ,bg-blue-intense :extend t))) 3406 ;;;;; pyim 3407 `(pyim-page ((,c :background ,bg-active))) 3408 `(pyim-page-selection ((,c :inherit bold :background ,bg-active :foreground ,info))) 3409 `(pyim-page-subword ((,c :background ,bg-inactive))) 3410 ;;;;; quick-peek 3411 `(quick-peek-background-face ((,c :background ,bg-inactive))) 3412 `(quick-peek-border-face ((,c :background ,border :height 1))) 3413 `(quick-peek-padding-face ((,c :background ,bg-inactive :height 0.15))) 3414 ;;;;; rainbow-delimiters 3415 `(rainbow-delimiters-base-error-face ((,c :inherit modus-themes-prominent-error))) 3416 `(rainbow-delimiters-base-face ((,c :foreground ,fg-main))) 3417 `(rainbow-delimiters-depth-1-face ((,c :foreground ,rainbow-0))) 3418 `(rainbow-delimiters-depth-2-face ((,c :foreground ,rainbow-1))) 3419 `(rainbow-delimiters-depth-3-face ((,c :foreground ,rainbow-2))) 3420 `(rainbow-delimiters-depth-4-face ((,c :foreground ,rainbow-3))) 3421 `(rainbow-delimiters-depth-5-face ((,c :foreground ,rainbow-4))) 3422 `(rainbow-delimiters-depth-6-face ((,c :foreground ,rainbow-5))) 3423 `(rainbow-delimiters-depth-7-face ((,c :foreground ,rainbow-6))) 3424 `(rainbow-delimiters-depth-8-face ((,c :foreground ,rainbow-7))) 3425 `(rainbow-delimiters-depth-9-face ((,c :foreground ,rainbow-8))) 3426 `(rainbow-delimiters-mismatched-face ((,c :inherit (bold modus-themes-prominent-warning)))) 3427 `(rainbow-delimiters-unmatched-face ((,c :inherit (bold modus-themes-prominent-error)))) 3428 ;;;;; rcirc 3429 `(rcirc-bright-nick ((,c :inherit bold :foreground ,accent-2))) 3430 `(rcirc-dim-nick ((,c :inherit shadow))) 3431 `(rcirc-monospace-text ((,c :inherit fixed-pitch))) 3432 `(rcirc-my-nick ((,c :inherit bold :foreground ,accent-1))) 3433 `(rcirc-nick-in-message ((,c :inherit rcirc-my-nick))) 3434 `(rcirc-nick-in-message-full-line ((,c :inherit rcirc-my-nick))) 3435 `(rcirc-other-nick ((,c :inherit bold :foreground ,accent-0))) 3436 `(rcirc-prompt ((,c :inherit minibuffer-prompt))) 3437 `(rcirc-server ((,c :inherit font-lock-comment-face))) 3438 `(rcirc-timestamp ((,c :foreground ,date-common))) 3439 `(rcirc-track-keyword ((,c :inherit bold :foreground ,modeline-warning))) 3440 `(rcirc-track-nick ((,c :inherit rcirc-my-nick))) 3441 `(rcirc-url ((,c :inherit link))) 3442 ;;;;; recursion-indicator 3443 `(recursion-indicator-general ((,c :foreground ,modeline-err))) 3444 `(recursion-indicator-minibuffer ((,c :foreground ,modeline-info))) 3445 ;;;;; regexp-builder (re-builder) 3446 `(reb-match-0 ((,c :inherit modus-themes-search-rx-group-0))) 3447 `(reb-match-1 ((,c :inherit modus-themes-search-rx-group-1))) 3448 `(reb-match-2 ((,c :inherit modus-themes-search-rx-group-2))) 3449 `(reb-match-3 ((,c :inherit modus-themes-search-rx-group-3))) 3450 `(reb-regexp-grouping-backslash ((,c :inherit font-lock-regexp-grouping-backslash))) 3451 `(reb-regexp-grouping-construct ((,c :inherit font-lock-regexp-grouping-construct))) 3452 ;;;;; rg (rg.el) 3453 `(rg-column-number-face ((,c :inherit shadow))) 3454 `(rg-context-face ((,c :inherit shadow))) 3455 `(rg-error-face ((,c :inherit error))) 3456 `(rg-file-tag-face ((,c :inherit font-lock-builtin-face))) 3457 `(rg-filename-face ((,c :inherit bold :foreground ,name))) 3458 `(rg-line-number-face ((,c :inherit shadow))) 3459 `(rg-literal-face ((,c :inherit font-lock-constant-face))) 3460 `(rg-match-face ((,c :inherit match))) 3461 `(rg-regexp-face ((,c :foreground ,name))) 3462 `(rg-toggle-off-face ((,c :inherit (shadow bold)))) 3463 `(rg-toggle-on-face ((,c :inherit success))) 3464 `(rg-warning-face ((,c :inherit warning))) 3465 ;;;;; ripgrep 3466 `(ripgrep-context-face ((,c :inherit shadow))) 3467 `(ripgrep-error-face ((,c :inherit error))) 3468 `(ripgrep-hit-face ((,c :inherit success))) 3469 `(ripgrep-match-face ((,c :inherit match))) 3470 ;;;;; rmail 3471 `(rmail-header-name ((,c :inherit bold))) 3472 `(rmail-highlight ((,c :inherit bold :foreground ,mail-other))) 3473 ;;;;; rst-mode 3474 `(rst-level-1 ((,c :inherit modus-themes-heading-1))) 3475 `(rst-level-2 ((,c :inherit modus-themes-heading-2))) 3476 `(rst-level-3 ((,c :inherit modus-themes-heading-3))) 3477 `(rst-level-4 ((,c :inherit modus-themes-heading-4))) 3478 `(rst-level-5 ((,c :inherit modus-themes-heading-5))) 3479 `(rst-level-6 ((,c :inherit modus-themes-heading-6))) 3480 ;;;;; ruler-mode 3481 `(ruler-mode-column-number ((,c :inherit ruler-mode-default))) 3482 `(ruler-mode-comment-column ((,c :inherit ruler-mode-default :foreground ,red))) 3483 `(ruler-mode-current-column ((,c :inherit ruler-mode-default :background ,bg-active :foreground ,fg-main))) 3484 `(ruler-mode-default ((,c :inherit default :background ,bg-dim :foreground ,fg-dim))) 3485 `(ruler-mode-fill-column ((,c :inherit ruler-mode-default :foreground ,green))) 3486 `(ruler-mode-fringes ((,c :inherit ruler-mode-default :foreground ,cyan))) 3487 `(ruler-mode-goal-column ((,c :inherit ruler-mode-default :foreground ,blue))) 3488 `(ruler-mode-margins ((,c :inherit ruler-mode-default :foreground ,bg-main))) 3489 `(ruler-mode-pad ((,c :inherit ruler-mode-default :background ,bg-inactive :foreground ,fg-dim))) 3490 `(ruler-mode-tab-stop ((,c :inherit ruler-mode-default :foreground ,yellow))) 3491 ;;;;; sesman 3492 `(sesman-browser-button-face ((,c :inherit button))) 3493 `(sesman-browser-highligh-face ((,c :inherit highlight))) 3494 `(sesman-buffer-face ((,c :foreground ,accent-1))) 3495 `(sesman-directory-face ((,c :inherit bold :foreground ,accent-0))) 3496 `(sesman-project-face ((,c :inherit bold :foreground ,accent-2))) 3497 ;;;;; shell-script-mode 3498 `(sh-heredoc ((,c :inherit font-lock-string-face))) 3499 `(sh-quoted-exec ((,c :inherit font-lock-builtin-face))) 3500 ;;;;; shortdoc 3501 `(shortdoc-heading ((,c :inherit bold))) 3502 `(shortdoc-section (())) ; remove the default's variable-pitch style 3503 ;;;;; show-paren-mode 3504 `(show-paren-match ((,c :background ,bg-paren-match :foreground ,fg-paren-match :underline ,underline-paren-match))) 3505 `(show-paren-match-expression ((,c :background ,bg-paren-expression))) 3506 `(show-paren-mismatch ((,c :inherit modus-themes-prominent-error))) 3507 ;;;;; shr 3508 `(shr-abbreviation ((,c :inherit modus-themes-lang-note))) 3509 `(shr-code ((,c :inherit modus-themes-prose-verbatim))) 3510 `(shr-h1 ((,c :inherit modus-themes-heading-1))) 3511 `(shr-h2 ((,c :inherit modus-themes-heading-2))) 3512 `(shr-h3 ((,c :inherit modus-themes-heading-3))) 3513 `(shr-h4 ((,c :inherit modus-themes-heading-4))) 3514 `(shr-h5 ((,c :inherit modus-themes-heading-5))) 3515 `(shr-h6 ((,c :inherit modus-themes-heading-6))) 3516 `(shr-mark ((,c :inherit match))) 3517 `(shr-selected-link ((,c :inherit modus-themes-mark-sel))) 3518 ;;;;; side-notes 3519 `(side-notes ((,c :background ,bg-dim :foreground ,fg-dim))) 3520 ;;;;; sieve-mode 3521 `(sieve-action-commands ((,c :inherit font-lock-builtin-face))) 3522 `(sieve-control-commands ((,c :inherit font-lock-keyword-face))) 3523 `(sieve-tagged-arguments ((,c :inherit font-lock-type-face))) 3524 `(sieve-test-commands ((,c :inherit font-lock-function-name-face))) 3525 ;;;;; skewer-mode 3526 `(skewer-error-face ((,c :inherit modus-themes-lang-error))) 3527 ;;;;; slime (sldb) 3528 `(sldb-condition-face ((,c :inherit font-lock-preprocessor-face))) 3529 `(sldb-restart-number-face ((,c :inherit bold))) 3530 `(sldb-restart-type-face ((,c :inherit font-lock-type-face))) 3531 `(sldb-restartable-frame-line-face ((,c :inherit success))) 3532 `(sldb-section-face ((,c :inherit bold))) 3533 `(slime-error-face ((,c :inherit modus-themes-lang-error))) 3534 `(slime-note-face ((,c :underline t))) 3535 `(slime-repl-input-face ((,c :inherit bold))) 3536 `(slime-repl-inputed-output-face ((,c :inherit font-lock-string-face))) 3537 `(slime-repl-output-mouseover-face ((,c :inherit highlight))) 3538 `(slime-repl-prompt-face ((,c :inherit modus-themes-prompt))) 3539 `(slime-style-warning-face ((,c :inherit modus-themes-lang-note))) 3540 `(slime-warning-face ((,c :inherit modus-themes-lang-warning))) 3541 ;;;;; sly 3542 `(sly-action-face ((,c :inherit font-lock-type-face))) 3543 `(sly-db-condition-face ((,c :inherit font-lock-preprocessor-face))) 3544 `(sly-db-restartable-frame-line-face ((,c :inherit success))) 3545 `(sly-error-face ((,c :inherit modus-themes-lang-error))) 3546 `(sly-mode-line ((,c :inherit mode-line-emphasis))) 3547 `(sly-mrepl-output-face ((,c :inherit font-lock-string-face))) 3548 `(sly-mrepl-output-face ((,c :inherit font-lock-string-face))) 3549 `(sly-mrepl-prompt-face ((,c :inherit modus-themes-prompt))) 3550 `(sly-note-face ((,c :inherit modus-themes-lang-note))) 3551 `(sly-stickers-placed-face ((,c :background ,bg-inactive))) 3552 `(sly-style-warning-face ((,c :inherit modus-themes-lang-note))) 3553 `(sly-warning-face ((,c :inherit modus-themes-lang-warning))) 3554 ;;;;; smart-mode-line 3555 `(sml/charging ((,c :foreground ,info))) 3556 `(sml/discharging ((,c :foreground ,err))) 3557 `(sml/filename ((,c :inherit bold :foreground ,name))) 3558 `(sml/folder (( ))) 3559 `(sml/git ((,c :inherit success))) 3560 `(sml/global (( ))) 3561 `(sml/line-number ((,c :inherit sml/global))) 3562 `(sml/minor-modes ((,c :inherit sml/global))) 3563 `(sml/modes ((,c :inherit bold))) 3564 `(sml/modified ((,c :inherit italic))) 3565 `(sml/mule-info ((,c :inherit sml/global))) 3566 `(sml/name-filling ((,c :inherit warning))) 3567 `(sml/not-modified ((,c :inherit sml/global))) 3568 `(sml/numbers-separator ((,c :inherit sml/global))) 3569 `(sml/outside-modified ((,c :inherit modus-themes-prominent-error))) 3570 `(sml/position-percentage ((,c :inherit sml/global))) 3571 `(sml/prefix ((,c :foreground ,fg-alt))) 3572 `(sml/process ((,c :inherit sml/prefix))) 3573 `(sml/projectile ((,c :inherit sml/git))) 3574 `(sml/read-only (( ))) 3575 `(sml/remote ((,c :inherit sml/global))) 3576 `(sml/sudo ((,c :inherit warning))) 3577 `(sml/time ((,c :inherit sml/global))) 3578 `(sml/vc ((,c :inherit sml/git))) 3579 `(sml/vc-edited ((,c :inherit italic))) 3580 ;;;;; smerge 3581 `(smerge-base ((,c :inherit diff-changed))) 3582 `(smerge-lower ((,c :inherit diff-added))) 3583 `(smerge-markers ((,c :inherit diff-header))) 3584 `(smerge-refined-added ((,c :inherit diff-refine-added))) 3585 `(smerge-refined-changed (())) 3586 `(smerge-refined-removed ((,c :inherit diff-refine-removed))) 3587 `(smerge-upper ((,c :inherit diff-removed))) 3588 ;;;;; speedbar 3589 `(speedbar-button-face ((,c :inherit button))) 3590 `(speedbar-directory-face ((,c :inherit bold :foreground ,accent-0))) 3591 `(speedbar-file-face ((,c :foreground ,fg-main))) 3592 `(speedbar-highlight-face ((,c :inherit highlight))) 3593 `(speedbar-selected-face ((,c :inherit modus-themes-mark-sel))) 3594 `(speedbar-separator-face ((,c :background ,bg-active :foreground ,fg-main))) 3595 `(speedbar-tag-face ((,c :foreground ,accent-1))) 3596 ;;;;; spell-fu 3597 `(spell-fu-incorrect-face ((,c :inherit modus-themes-lang-error))) 3598 ;;;;; stripes 3599 `(stripes ((,c :background ,bg-inactive))) 3600 ;;;;; suggest 3601 `(suggest-heading ((,c :inherit warning))) 3602 ;;;;; switch-window 3603 `(switch-window-background ((,c :background ,bg-inactive))) 3604 `(switch-window-label ((,c :height 3.0 :foreground ,red-intense))) 3605 ;;;;; swiper 3606 `(swiper-background-match-face-1 (( ))) 3607 `(swiper-background-match-face-2 ((,c :inherit modus-themes-completion-match-0))) 3608 `(swiper-background-match-face-3 ((,c :inherit modus-themes-completion-match-1))) 3609 `(swiper-background-match-face-4 ((,c :inherit modus-themes-completion-match-2))) 3610 `(swiper-line-face ((,c :background ,bg-hl-line :extend t))) 3611 `(swiper-match-face-1 (( ))) 3612 `(swiper-match-face-2 ((,c :inherit modus-themes-completion-match-0))) 3613 `(swiper-match-face-3 ((,c :inherit modus-themes-completion-match-1))) 3614 `(swiper-match-face-4 ((,c :inherit modus-themes-completion-match-2))) 3615 ;;;;; symbol-overlay 3616 `(symbol-overlay-default-face ((,c :background ,bg-inactive))) 3617 `(symbol-overlay-face-1 ((,c :inherit modus-themes-intense-blue))) 3618 `(symbol-overlay-face-2 ((,c :inherit modus-themes-intense-magenta))) 3619 `(symbol-overlay-face-3 ((,c :inherit modus-themes-intense-yellow))) 3620 `(symbol-overlay-face-4 ((,c :inherit modus-themes-intense-magenta))) 3621 `(symbol-overlay-face-5 ((,c :inherit modus-themes-intense-red))) 3622 `(symbol-overlay-face-6 ((,c :inherit modus-themes-intense-red))) 3623 `(symbol-overlay-face-7 ((,c :inherit modus-themes-intense-cyan))) 3624 `(symbol-overlay-face-8 ((,c :inherit modus-themes-intense-cyan))) 3625 ;;;;; syslog-mode 3626 `(syslog-debug ((,c :inherit italic))) 3627 `(syslog-error ((,c :inherit error))) 3628 `(syslog-file ((,c :inherit bold :foreground ,name))) 3629 `(syslog-hide ((,c :background ,bg-main :foreground ,fg-main))) 3630 `(syslog-hour ((,c :inherit bold :foreground ,date-common))) 3631 `(syslog-info ((,c :inherit success))) 3632 `(syslog-ip ((,c :inherit bold :foreground ,name :underline t))) 3633 `(syslog-su ((,c :inherit error :underline t))) 3634 `(syslog-warn ((,c :inherit warning))) 3635 ;;;;; tab-bar-mode 3636 `(tab-bar ((,c :inherit modus-themes-ui-variable-pitch :background ,bg-tab-bar))) 3637 `(tab-bar-tab-group-current ((,c :inherit bold :background ,bg-tab-current :box (:line-width -2 :color ,bg-tab-current) :foreground ,fg-alt))) 3638 `(tab-bar-tab-group-inactive ((,c :background ,bg-tab-bar :box (:line-width -2 :color ,bg-tab-bar) :foreground ,fg-alt))) 3639 `(tab-bar-tab ((,c :inherit bold :box (:line-width -2 :color ,bg-tab-current) :background ,bg-tab-current))) 3640 `(tab-bar-tab-inactive ((,c :box (:line-width -2 :color ,bg-tab-other) :background ,bg-tab-other))) 3641 `(tab-bar-tab-ungrouped ((,c :inherit tab-bar-tab-inactive))) 3642 ;;;;; tab-line-mode 3643 `(tab-line ((,c :inherit modus-themes-ui-variable-pitch :background ,bg-tab-bar :height 0.95))) 3644 `(tab-line-close-highlight ((,c :foreground ,err))) 3645 `(tab-line-highlight ((,c :inherit highlight))) 3646 `(tab-line-tab (( ))) 3647 `(tab-line-tab-current ((,c :inherit bold :box (:line-width -2 :color ,bg-tab-current) :background ,bg-tab-current))) 3648 `(tab-line-tab-inactive ((,c :box (:line-width -2 :color ,bg-tab-other) :background ,bg-tab-other))) 3649 `(tab-line-tab-inactive-alternate ((,c :inherit tab-line-tab-inactive :foreground ,fg-alt))) 3650 `(tab-line-tab-modified ((,c :foreground ,warning))) 3651 ;;;;; table (built-in table.el) 3652 `(table-cell ((,c :background ,bg-dim))) 3653 ;;;;; telega 3654 `(telega-button ((,c :box t :foreground ,fg-link))) 3655 `(telega-button-active ((,c :box ,fg-link :background ,fg-link :foreground ,bg-main))) 3656 `(telega-button-highlight ((,c :inherit secondary-selection))) 3657 `(telega-chat-prompt ((,c :inherit modus-themes-prompt))) 3658 `(telega-entity-type-code ((,c :inherit modus-themes-prose-verbatim))) 3659 `(telega-entity-type-mention ((,c :foreground ,cyan))) 3660 `(telega-entity-type-pre ((,c :inherit modus-themes-prose-code))) 3661 `(telega-entity-type-spoiler ((,c :background ,fg-main :foreground ,fg-main))) 3662 `(telega-msg-heading ((,c :background ,bg-inactive))) 3663 `(telega-msg-self-title ((,c :inherit bold))) 3664 `(telega-root-heading ((,c :background ,bg-inactive))) 3665 `(telega-secret-title ((,c :foreground ,magenta-warmer))) 3666 `(telega-unmuted-count ((,c :foreground ,blue-cooler))) 3667 `(telega-user-online-status ((,c :foreground ,cyan))) 3668 `(telega-username ((,c :foreground ,cyan-cooler))) 3669 `(telega-webpage-chat-link ((,c :background ,bg-inactive))) 3670 `(telega-webpage-fixed ((,c :inherit modus-themes-fixed-pitch :height 0.85))) 3671 `(telega-webpage-header ((,c :inherit modus-themes-variable-pitch :height 1.3))) 3672 `(telega-webpage-preformatted ((,c :inherit modus-themes-fixed-pitch :background ,bg-inactive))) 3673 `(telega-webpage-subheader ((,c :inherit modus-themes-variable-pitch :height 1.15))) 3674 ;;;;; terraform-mode 3675 `(terraform--resource-name-face ((,c :foreground ,keyword))) 3676 `(terraform--resource-type-face ((,c :foreground ,type))) 3677 ;;;;; term 3678 ;; NOTE 2023-08-10: `term-color-black' and `term-color-white' use 3679 ;; the "bright" semantic color mappings to make sure they are 3680 ;; distinct from `term'. 3681 `(term ((,c :background ,bg-main :foreground ,fg-main))) 3682 `(term-bold ((,c :inherit bold))) 3683 `(term-color-black ((,c :background ,bg-term-black-bright :foreground ,fg-term-black-bright))) 3684 `(term-color-blue ((,c :background ,bg-term-blue :foreground ,fg-term-blue))) 3685 `(term-color-cyan ((,c :background ,bg-term-cyan :foreground ,fg-term-cyan))) 3686 `(term-color-green ((,c :background ,bg-term-green :foreground ,fg-term-green))) 3687 `(term-color-magenta ((,c :background ,bg-term-magenta :foreground ,fg-term-magenta))) 3688 `(term-color-red ((,c :background ,bg-term-red :foreground ,fg-term-red))) 3689 `(term-color-white ((,c :background ,bg-term-white-bright :foreground ,fg-term-white-bright))) 3690 `(term-color-yellow ((,c :background ,bg-term-yellow :foreground ,fg-term-yellow))) 3691 `(term-underline ((,c :underline t))) 3692 ;;;;; textsec 3693 `(textsec-suspicious (( ))) 3694 ;;;;; transient 3695 `(transient-active-infix ((,c :inherit highlight))) 3696 `(transient-amaranth ((,c :inherit bold :foreground ,yellow-warmer))) 3697 ;; Placate the compiler for what is a spurious warning. We also 3698 ;; have to do this with `eldoc-highlight-function-argument'. 3699 (list 'transient-argument `((,c :inherit bold :background ,bg-active-argument :foreground ,fg-active-argument))) 3700 `(transient-blue ((,c :inherit bold :foreground ,blue))) 3701 `(transient-disabled-suffix ((,c :inherit modus-themes-mark-del))) 3702 `(transient-enabled-suffix ((,c :inherit modus-themes-subtle-cyan))) 3703 `(transient-heading ((,c :inherit bold :foreground ,fg-main))) 3704 `(transient-inactive-argument ((,c :inherit shadow))) 3705 `(transient-inactive-value ((,c :inherit shadow))) 3706 ;; NOTE 2023-12-09 10:30:09 +0200: The new user option 3707 ;; `transient-semantic-coloring' is enabled by default. This is 3708 ;; not good for us, because we are making it harder for users who 3709 ;; need accessible colors to use the transient interfaces. I 3710 ;; could set that user option to nil, but I think it is less 3711 ;; intrusive to enforce uniformity among the relevant faces. 3712 ;; Those who want semantic coloring can modify these faces. 3713 `(transient-key ((,c :inherit modus-themes-key-binding))) 3714 `(transient-key-exit ((,c :inherit modus-themes-key-binding))) 3715 `(transient-key-noop ((,c :inherit (shadow modus-themes-key-binding)))) 3716 `(transient-key-return ((,c :inherit modus-themes-key-binding))) 3717 `(transient-key-stay ((,c :inherit modus-themes-key-binding))) 3718 `(transient-mismatched-key ((,c :underline t))) 3719 `(transient-nonstandard-key ((,c :underline t))) 3720 `(transient-pink ((,c :inherit bold :foreground ,magenta))) 3721 `(transient-purple ((,c :inherit bold :foreground ,magenta-cooler))) 3722 `(transient-red ((,c :inherit bold :foreground ,red-faint))) 3723 `(transient-teal ((,c :inherit bold :foreground ,cyan-cooler))) 3724 `(transient-unreachable ((,c :inherit shadow))) 3725 `(transient-unreachable-key ((,c :inherit shadow))) 3726 `(transient-value ((,c :inherit bold :background ,bg-active-value :foreground ,fg-active-value))) 3727 ;;;;; trashed 3728 `(trashed-deleted ((,c :inherit modus-themes-mark-del))) 3729 `(trashed-directory ((,c :foreground ,accent-0))) 3730 `(trashed-mark ((,c :inherit bold))) 3731 `(trashed-marked ((,c :inherit modus-themes-mark-alt))) 3732 `(trashed-restored ((,c :inherit modus-themes-mark-sel))) 3733 ;;;;; tree-sitter 3734 `(tree-sitter-hl-face:attribute ((,c :inherit font-lock-variable-name-face))) 3735 `(tree-sitter-hl-face:constant.builtin ((,c :inherit tree-sitter-hl-face:constant))) 3736 `(tree-sitter-hl-face:escape ((,c :inherit font-lock-regexp-grouping-backslash))) 3737 `(tree-sitter-hl-face:function ((,c :inherit font-lock-function-name-face))) 3738 `(tree-sitter-hl-face:function.call ((,c :inherit tree-sitter-hl-face:function))) 3739 `(tree-sitter-hl-face:label (( ))) 3740 `(tree-sitter-hl-face:method.call (( ))) 3741 `(tree-sitter-hl-face:operator ((,c :inherit modus-themes-bold))) 3742 `(tree-sitter-hl-face:property (( ))) 3743 `(tree-sitter-hl-face:property.definition ((,c :inherit font-lock-variable-name-face))) 3744 `(tree-sitter-hl-face:punctuation (( ))) 3745 `(tree-sitter-hl-face:punctuation.bracket (( ))) 3746 `(tree-sitter-hl-face:punctuation.delimiter (( ))) 3747 `(tree-sitter-hl-face:punctuation.special ((,c :inherit font-lock-regexp-grouping-construct))) 3748 `(tree-sitter-hl-face:string.special ((,c :inherit tree-sitter-hl-face:string))) 3749 `(tree-sitter-hl-face:tag ((,c :inherit font-lock-function-name-face))) 3750 `(tree-sitter-hl-face:type.argument (( ))) 3751 ;;;;; tty-menu 3752 `(tty-menu-disabled-face ((,c :background ,bg-inactive :foreground ,fg-dim))) 3753 `(tty-menu-enabled-face ((,c :inherit bold :background ,bg-inactive :foreground ,fg-main))) 3754 `(tty-menu-selected-face ((,c :inherit modus-themes-intense-blue))) 3755 ;;;;; tuareg 3756 `(caml-types-def-face ((,c :inherit modus-themes-subtle-red))) 3757 `(caml-types-expr-face ((,c :inherit modus-themes-subtle-green))) 3758 `(caml-types-occ-face ((,c :inherit modus-themes-subtle-green))) 3759 `(caml-types-scope-face ((,c :inherit modus-themes-subtle-blue))) 3760 `(caml-types-typed-face ((,c :inherit modus-themes-subtle-magenta))) 3761 `(tuareg-font-double-semicolon-face ((,c :inherit font-lock-preprocessor-face))) 3762 `(tuareg-font-lock-attribute-face ((,c :inherit font-lock-function-name-face))) 3763 `(tuareg-font-lock-constructor-face ((,c :foreground ,fg-main))) 3764 `(tuareg-font-lock-error-face ((,c :inherit (modus-themes-intense-red bold)))) 3765 ;; `(tuareg-font-lock-extension-node-face ((,c :background ,bg-inactive :foreground ,magenta))) 3766 `(tuareg-font-lock-governing-face ((,c :inherit bold :foreground ,fg-main))) 3767 `(tuareg-font-lock-infix-extension-node-face ((,c :inherit font-lock-function-name-face))) 3768 `(tuareg-font-lock-interactive-directive-face ((,c :inherit font-lock-preprocessor-face))) 3769 `(tuareg-font-lock-interactive-error-face ((,c :inherit error))) 3770 `(tuareg-font-lock-interactive-output-face ((,c :inherit font-lock-constant-face))) 3771 `(tuareg-font-lock-label-face ((,c :inherit font-lock-type-face))) 3772 `(tuareg-font-lock-line-number-face ((,c :inherit shadow))) 3773 `(tuareg-font-lock-module-face ((,c :inherit font-lock-builtin-face))) 3774 ;; `(tuareg-font-lock-multistage-face ((,c :inherit bold :background ,bg-inactive :foreground ,blue))) 3775 `(tuareg-font-lock-operator-face ((,c :inherit font-lock-preprocessor-face))) 3776 `(tuareg-opam-error-face ((,c :inherit error))) 3777 `(tuareg-opam-pkg-variable-name-face ((,c :inherit font-lock-variable-name-face))) 3778 ;;;;; typescript 3779 `(typescript-jsdoc-tag ((,c :inherit (font-lock-builtin-face font-lock-comment-face) :weight normal))) 3780 `(typescript-jsdoc-type ((,c :inherit (font-lock-type-face font-lock-comment-face) :weight normal))) 3781 `(typescript-jsdoc-value ((,c :inherit (font-lock-constant-face font-lock-comment-face) :weight normal))) 3782 ;;;;; undo-tree 3783 `(undo-tree-visualizer-active-branch-face ((,c :inherit bold :foreground ,fg-main))) 3784 `(undo-tree-visualizer-current-face ((,c :foreground ,blue-intense))) 3785 `(undo-tree-visualizer-default-face ((,c :inherit shadow))) 3786 `(undo-tree-visualizer-register-face ((,c :foreground ,magenta-intense))) 3787 `(undo-tree-visualizer-unmodified-face ((,c :foreground ,green-intense))) 3788 ;;;;; vc (vc-dir.el, vc-hooks.el) 3789 `(vc-dir-directory (( ))) 3790 `(vc-dir-file ((,c :foreground ,name))) 3791 `(vc-dir-header ((,c :inherit bold))) 3792 `(vc-dir-header-value ((,c :foreground ,string))) 3793 `(vc-dir-mark-indicator (( ))) 3794 `(vc-dir-status-edited ((,c :inherit italic))) 3795 `(vc-dir-status-ignored ((,c :inherit shadow))) 3796 `(vc-dir-status-up-to-date ((,c :foreground ,info))) 3797 `(vc-dir-status-warning ((,c :inherit error))) 3798 `(vc-conflict-state ((,c :inherit error))) 3799 `(vc-edited-state ((,c :inherit italic))) 3800 `(vc-git-log-edit-summary-max-warning ((,c :inherit error))) 3801 `(vc-git-log-edit-summary-target-warning ((,c :inherit warning))) 3802 `(vc-locally-added-state ((,c :inherit italic))) 3803 `(vc-locked-state ((,c :inherit success))) 3804 `(vc-missing-state ((,c :inherit error))) 3805 `(vc-needs-update-state ((,c :inherit error))) 3806 `(vc-removed-state ((,c :inherit error))) 3807 `(vc-state-base (( ))) 3808 `(vc-up-to-date-state (( ))) 3809 ;;;;; vertico 3810 `(vertico-current ((,c :inherit modus-themes-completion-selected))) 3811 ;;;;; vertico-quick 3812 `(vertico-quick1 ((,c :inherit bold :background ,bg-char-0))) 3813 `(vertico-quick2 ((,c :inherit bold :background ,bg-char-1))) 3814 ;;;;; vimish-fold 3815 `(vimish-fold-fringe ((,c :foreground ,cyan))) 3816 `(vimish-fold-mouse-face ((,c :inherit modus-themes-intense-blue))) 3817 `(vimish-fold-overlay ((,c :background ,bg-inactive))) 3818 ;;;;; visible-mark 3819 `(visible-mark-active ((,c :background ,bg-blue-intense))) 3820 `(visible-mark-face1 ((,c :background ,bg-cyan-intense))) 3821 `(visible-mark-face2 ((,c :background ,bg-yellow-intense))) 3822 `(visible-mark-forward-face1 ((,c :background ,bg-magenta-intense))) 3823 `(visible-mark-forward-face2 ((,c :background ,bg-green-intense))) 3824 ;;;;; visual-regexp 3825 `(vr/group-0 ((,c :inherit modus-themes-search-rx-group-0))) 3826 `(vr/group-1 ((,c :inherit modus-themes-search-rx-group-1))) 3827 `(vr/group-2 ((,c :inherit modus-themes-search-rx-group-2))) 3828 `(vr/match-0 ((,c :inherit modus-themes-search-current))) 3829 `(vr/match-1 ((,c :inherit modus-themes-search-lazy))) 3830 `(vr/match-separator-face ((,c :inherit bold :background ,bg-active))) 3831 ;;;;; vterm 3832 ;; NOTE 2023-08-10: `vterm-color-black' and `vterm-color-white' 3833 ;; use the "bright" semantic color mappings to make sure they are 3834 ;; distinct from `vterm-color-default'. 3835 `(vterm-color-black ((,c :background ,bg-term-black :foreground ,fg-term-black))) 3836 `(vterm-color-blue ((,c :background ,bg-term-blue :foreground ,fg-term-blue))) 3837 `(vterm-color-cyan ((,c :background ,bg-term-cyan :foreground ,fg-term-cyan))) 3838 `(vterm-color-default ((,c :background ,bg-main :foreground ,fg-main))) 3839 `(vterm-color-green ((,c :background ,bg-term-green :foreground ,fg-term-green))) 3840 `(vterm-color-inverse-video ((,c :background ,bg-main :inverse-video t))) 3841 `(vterm-color-magenta ((,c :background ,bg-term-magenta :foreground ,fg-term-magenta))) 3842 `(vterm-color-red ((,c :background ,bg-term-red :foreground ,fg-term-red))) 3843 `(vterm-color-underline ((,c :underline t))) 3844 `(vterm-color-white ((,c :background ,bg-term-white :foreground ,fg-term-white))) 3845 `(vterm-color-yellow ((,c :background ,bg-term-yellow :foreground ,fg-term-yellow))) 3846 ;;;;; vundo 3847 `(vundo-default ((,c :inherit shadow))) 3848 `(vundo-highlight ((,c :inherit (bold vundo-node) :foreground ,red))) 3849 `(vundo-last-saved ((,c :inherit (bold vundo-node) :foreground ,blue))) 3850 `(vundo-saved ((,c :inherit vundo-node :foreground ,blue-intense))) 3851 ;;;;; wcheck-mode 3852 `(wcheck-default-face ((,c :foreground ,red :underline t))) 3853 ;;;;; web-mode 3854 `(web-mode-annotation-face ((,c :inherit web-mode-comment-face))) 3855 `(web-mode-annotation-html-face ((,c :inherit web-mode-comment-face))) 3856 `(web-mode-annotation-tag-face ((,c :inherit web-mode-comment-face :underline t))) 3857 `(web-mode-block-attr-name-face ((,c :inherit font-lock-constant-face))) 3858 `(web-mode-block-attr-value-face ((,c :inherit font-lock-type-face))) 3859 `(web-mode-block-comment-face ((,c :inherit web-mode-comment-face))) 3860 `(web-mode-block-control-face ((,c :inherit font-lock-builtin-face))) 3861 `(web-mode-block-delimiter-face ((,c :foreground ,fg-main))) 3862 `(web-mode-block-face ((,c :background ,bg-dim))) 3863 `(web-mode-block-string-face ((,c :inherit web-mode-string-face))) 3864 `(web-mode-bold-face ((,c :inherit bold))) 3865 `(web-mode-builtin-face ((,c :inherit font-lock-builtin-face))) 3866 `(web-mode-comment-face ((,c :inherit font-lock-comment-face))) 3867 `(web-mode-comment-keyword-face ((,c :inherit font-lock-warning-face))) 3868 `(web-mode-constant-face ((,c :inherit font-lock-constant-face))) 3869 `(web-mode-css-at-rule-face ((,c :inherit font-lock-constant-face))) 3870 `(web-mode-css-color-face ((,c :inherit font-lock-builtin-face))) 3871 `(web-mode-css-comment-face ((,c :inherit web-mode-comment-face))) 3872 `(web-mode-css-function-face ((,c :inherit font-lock-builtin-face))) 3873 `(web-mode-css-priority-face ((,c :inherit font-lock-warning-face))) 3874 `(web-mode-css-property-name-face ((,c :inherit font-lock-keyword-face))) 3875 `(web-mode-css-pseudo-class-face ((,c :inherit font-lock-doc-face))) 3876 `(web-mode-css-selector-face ((,c :inherit font-lock-keyword-face))) 3877 `(web-mode-css-string-face ((,c :inherit web-mode-string-face))) 3878 `(web-mode-css-variable-face ((,c :inherit font-lock-variable-name-face))) 3879 `(web-mode-current-column-highlight-face ((,c :background ,bg-inactive))) 3880 `(web-mode-current-element-highlight-face ((,c :inherit modus-themes-cyan-subtle))) 3881 `(web-mode-doctype-face ((,c :inherit font-lock-doc-face))) 3882 `(web-mode-error-face ((,c :inherit error))) 3883 `(web-mode-filter-face ((,c :inherit font-lock-function-name-face))) 3884 `(web-mode-folded-face ((,c :underline t))) 3885 `(web-mode-function-call-face ((,c :inherit font-lock-function-name-face))) 3886 `(web-mode-function-name-face ((,c :inherit font-lock-function-name-face))) 3887 `(web-mode-html-attr-custom-face ((,c :inherit font-lock-variable-name-face))) 3888 `(web-mode-html-attr-engine-face ((,c :foreground ,fg-main))) 3889 `(web-mode-html-attr-equal-face ((,c :foreground ,fg-main))) 3890 `(web-mode-html-attr-name-face ((,c :inherit font-lock-variable-name-face))) 3891 `(web-mode-html-attr-value-face ((,c :inherit font-lock-constant-face))) 3892 `(web-mode-html-entity-face ((,c :inherit font-lock-negation-char-face))) 3893 `(web-mode-html-tag-bracket-face ((,c :foreground ,fg-dim))) 3894 `(web-mode-html-tag-custom-face ((,c :inherit font-lock-function-name-face))) 3895 `(web-mode-html-tag-face ((,c :inherit font-lock-function-name-face))) 3896 `(web-mode-html-tag-namespaced-face ((,c :inherit font-lock-builtin-face))) 3897 `(web-mode-html-tag-unclosed-face ((,c :inherit error :underline t))) 3898 `(web-mode-inlay-face ((,c :background ,bg-inactive))) 3899 `(web-mode-italic-face ((,c :inherit italic))) 3900 `(web-mode-javascript-comment-face ((,c :inherit web-mode-comment-face))) 3901 `(web-mode-javascript-string-face ((,c :inherit web-mode-string-face))) 3902 `(web-mode-json-comment-face ((,c :inherit web-mode-comment-face))) 3903 `(web-mode-json-context-face ((,c :inherit font-lock-builtin-face))) 3904 `(web-mode-json-key-face ((,c :foreground ,blue-faint))) 3905 `(web-mode-json-string-face ((,c :inherit web-mode-string-face))) 3906 `(web-mode-keyword-face ((,c :inherit font-lock-keyword-face))) 3907 `(web-mode-param-name-face ((,c :inherit font-lock-function-name-face))) 3908 `(web-mode-part-comment-face ((,c :inherit web-mode-comment-face))) 3909 `(web-mode-part-face ((,c :inherit web-mode-block-face))) 3910 `(web-mode-part-string-face ((,c :inherit web-mode-string-face))) 3911 `(web-mode-preprocessor-face ((,c :inherit font-lock-preprocessor-face))) 3912 `(web-mode-script-face ((,c :inherit web-mode-part-face))) 3913 `(web-mode-sql-keyword-face ((,c :inherit font-lock-negation-char-face))) 3914 `(web-mode-string-face ((,c :inherit font-lock-string-face))) 3915 `(web-mode-style-face ((,c :inherit web-mode-part-face))) 3916 `(web-mode-symbol-face ((,c :inherit font-lock-constant-face))) 3917 `(web-mode-type-face ((,c :inherit font-lock-builtin-face))) 3918 `(web-mode-underline-face ((,c :underline t))) 3919 `(web-mode-variable-name-face ((,c :inherit font-lock-variable-name-face))) 3920 `(web-mode-warning-face ((,c :inherit warning))) 3921 `(web-mode-whitespace-face ((,c :background ,bg-inactive))) 3922 ;;;;; wgrep 3923 `(wgrep-delete-face ((,c :inherit warning))) 3924 `(wgrep-done-face ((,c :inherit success))) 3925 `(wgrep-face ((,c :inherit bold))) 3926 `(wgrep-file-face ((,c :foreground ,fg-alt))) 3927 `(wgrep-reject-face ((,c :inherit error))) 3928 ;;;;; which-function-mode 3929 `(which-func ((,c :inherit bold :foreground ,modeline-info))) ; same as `breadcrumb-imenu-leaf-face' 3930 ;;;;; which-key 3931 `(which-key-command-description-face ((,c :foreground ,fg-main))) 3932 `(which-key-group-description-face ((,c :foreground ,type))) 3933 `(which-key-highlighted-command-face ((,c :foreground ,warning :underline t))) 3934 `(which-key-key-face ((,c :inherit modus-themes-key-binding))) 3935 `(which-key-local-map-description-face ((,c :foreground ,fg-main))) 3936 `(which-key-note-face ((,c :inherit shadow))) 3937 `(which-key-separator-face ((,c :inherit shadow))) 3938 `(which-key-special-key-face ((,c :inherit error))) 3939 ;;;;; whitespace-mode 3940 `(whitespace-big-indent ((,c :background ,bg-space-err))) 3941 `(whitespace-empty ((,c :background ,bg-space))) 3942 `(whitespace-hspace ((,c :background ,bg-space :foreground ,fg-space))) 3943 `(whitespace-indentation ((,c :background ,bg-space :foreground ,fg-space))) 3944 `(whitespace-line ((,c :background ,bg-space :foreground ,warning))) 3945 `(whitespace-newline ((,c :background ,bg-space :foreground ,fg-space))) 3946 `(whitespace-space ((,c :background ,bg-space :foreground ,fg-space))) 3947 `(whitespace-space-after-tab ((,c :inherit warning :background ,bg-space))) 3948 `(whitespace-space-before-tab ((,c :inherit warning :background ,bg-space))) 3949 `(whitespace-tab ((,c :background ,bg-space :foreground ,fg-space))) 3950 `(whitespace-trailing ((,c :background ,bg-space-err))) 3951 ;;;;; window-divider-mode 3952 `(window-divider ((,c :foreground ,border))) 3953 `(window-divider-first-pixel ((,c :foreground ,bg-inactive))) 3954 `(window-divider-last-pixel ((,c :foreground ,bg-inactive))) 3955 ;;;;; widget 3956 `(widget-button ((,c :inherit bold :foreground ,fg-link))) 3957 `(widget-button-pressed ((,c :inherit widget-button :foreground ,fg-link-visited))) 3958 `(widget-documentation ((,c :inherit font-lock-doc-face))) 3959 `(widget-field ((,c :background ,bg-inactive :foreground ,fg-main :extend nil))) 3960 `(widget-inactive ((,c :background ,bg-button-inactive :foreground ,fg-button-inactive))) 3961 `(widget-single-line-field ((,c :inherit widget-field))) 3962 ;;;;; writegood-mode 3963 `(writegood-duplicates-face ((,c :inherit modus-themes-lang-error))) 3964 `(writegood-passive-voice-face ((,c :inherit modus-themes-lang-warning))) 3965 `(writegood-weasels-face ((,c :inherit modus-themes-lang-warning))) 3966 ;;;;; woman 3967 `(woman-addition ((,c :foreground ,accent-2))) 3968 `(woman-bold ((,c :inherit bold :foreground ,accent-0))) 3969 `(woman-italic ((,c :inherit italic :foreground ,accent-1))) 3970 `(woman-unknown ((,c :foreground ,accent-3))) 3971 ;;;;; xah-elisp-mode 3972 `(xah-elisp-at-symbol ((,c :inherit font-lock-warning-face))) 3973 `(xah-elisp-cap-variable ((,c :inherit font-lock-preprocessor-face))) 3974 `(xah-elisp-command-face ((,c :inherit font-lock-type-face))) 3975 `(xah-elisp-dollar-symbol ((,c :inherit font-lock-variable-name-face))) 3976 ;;;;; yaml-mode 3977 `(yaml-tab-face ((,c :background ,bg-space-err))) 3978 ;;;;; yasnippet 3979 `(yas-field-highlight-face ((,c :inherit highlight))) 3980 ;;;;; ztree 3981 `(ztreep-arrow-face ((,c :inherit shadow))) 3982 `(ztreep-diff-header-face ((,c :inherit modus-themes-heading-0))) 3983 `(ztreep-diff-header-small-face ((,c :inherit font-lock-doc-face))) 3984 `(ztreep-diff-model-add-face ((,c :foreground ,info))) 3985 `(ztreep-diff-model-diff-face ((,c :foreground ,err))) 3986 `(ztreep-diff-model-ignored-face ((,c :foreground ,fg-dim :strike-through t))) 3987 `(ztreep-diff-model-normal-face (( ))) 3988 `(ztreep-expand-sign-face ((,c :inherit shadow))) 3989 `(ztreep-header-face ((,c :inherit modus-themes-heading-0))) 3990 `(ztreep-leaf-face (( ))) 3991 `(ztreep-node-count-children-face ((,c :inherit (shadow italic)))) 3992 `(ztreep-node-face ((,c :foreground ,accent-0)))) 3993 "Face specs for use with `modus-themes-theme'.") 3994 3995 (defconst modus-themes-custom-variables 3996 '( 3997 ;;;; ansi-colors 3998 `(ansi-color-faces-vector [default bold shadow italic underline success warning error]) 3999 `(ansi-color-names-vector ["#595959" ,red ,green ,yellow ,blue ,magenta ,cyan "#a6a6a6"]) 4000 ;;;; chart 4001 `(chart-face-color-list 4002 '( ,bg-graph-red-0 ,bg-graph-green-0 ,bg-graph-yellow-0 ,bg-graph-blue-0 ,bg-graph-magenta-0 ,bg-graph-cyan-0 4003 ,bg-graph-red-1 ,bg-graph-green-1 ,bg-graph-yellow-1 ,bg-graph-blue-1 ,bg-graph-magenta-1 ,bg-graph-cyan-1)) 4004 ;;;; exwm 4005 `(exwm-floating-border-color ,border) 4006 ;;;; flymake fringe indicators 4007 `(flymake-error-bitmap '(flymake-double-exclamation-mark modus-themes-prominent-error)) 4008 `(flymake-warning-bitmap '(exclamation-mark modus-themes-prominent-warning)) 4009 `(flymake-note-bitmap '(exclamation-mark modus-themes-prominent-note)) 4010 ;;;; highlight-changes 4011 `(highlight-changes-colors nil) 4012 `(highlight-changes-face-list '(success warning error bold bold-italic)) 4013 ;;;; ibuffer 4014 `(ibuffer-deletion-face 'modus-themes-mark-del) 4015 `(ibuffer-filter-group-name-face 'bold) 4016 `(ibuffer-marked-face 'modus-themes-mark-sel) 4017 `(ibuffer-title-face 'default) 4018 ;;;; hl-todo 4019 `(hl-todo-keyword-faces 4020 '(("HOLD" . ,warning) 4021 ("TODO" . ,err) 4022 ("NEXT" . ,fg-alt) 4023 ("THEM" . ,fg-alt) 4024 ("PROG" . ,info) 4025 ("OKAY" . ,info) 4026 ("DONT" . ,warning) 4027 ("FAIL" . ,err) 4028 ("BUG" . ,err) 4029 ("DONE" . ,info) 4030 ("NOTE" . ,warning) 4031 ("KLUDGE" . ,warning) 4032 ("HACK" . ,warning) 4033 ("TEMP" . ,warning) 4034 ("FIXME" . ,err) 4035 ("XXX+" . ,err) 4036 ("REVIEW" . ,info) 4037 ("DEPRECATED" . ,info))) 4038 ;;;; pdf-tools 4039 `(pdf-view-midnight-colors '(,fg-main . ,bg-dim)) 4040 ;;;; rcirc-color 4041 `(rcirc-colors 4042 '(modus-themes-fg-red 4043 modus-themes-fg-green 4044 modus-themes-fg-blue 4045 modus-themes-fg-yellow 4046 modus-themes-fg-magenta 4047 modus-themes-fg-cyan 4048 modus-themes-fg-red-warmer 4049 modus-themes-fg-green-warmer 4050 modus-themes-fg-blue-warmer 4051 modus-themes-fg-yellow-warmer 4052 modus-themes-fg-magenta-warmer 4053 modus-themes-fg-cyan-warmer 4054 modus-themes-fg-red-cooler 4055 modus-themes-fg-green-cooler 4056 modus-themes-fg-blue-cooler 4057 modus-themes-fg-yellow-cooler 4058 modus-themes-fg-magenta-cooler 4059 modus-themes-fg-cyan-cooler 4060 modus-themes-fg-red-faint 4061 modus-themes-fg-green-faint 4062 modus-themes-fg-blue-faint 4063 modus-themes-fg-yellow-faint 4064 modus-themes-fg-magenta-faint 4065 modus-themes-fg-cyan-faint 4066 modus-themes-fg-red-intense 4067 modus-themes-fg-green-intense 4068 modus-themes-fg-blue-intense 4069 modus-themes-fg-yellow-intense 4070 modus-themes-fg-magenta-intense 4071 modus-themes-fg-cyan-intense)) 4072 ;;;; rustic-ansi-faces 4073 `(rustic-ansi-faces 4074 [,fg-term-black 4075 ,fg-term-red 4076 ,fg-term-green 4077 ,fg-term-yellow 4078 ,fg-term-blue 4079 ,fg-term-magenta 4080 ,fg-term-cyan 4081 ,fg-term-white]) 4082 ;;;; xterm-color 4083 `(xterm-color-names 4084 [,fg-term-black 4085 ,fg-term-red 4086 ,fg-term-green 4087 ,fg-term-yellow 4088 ,fg-term-blue 4089 ,fg-term-magenta 4090 ,fg-term-cyan 4091 ,fg-term-white]) 4092 `(xterm-color-names-bright 4093 [,fg-term-black-bright 4094 ,fg-term-red-bright 4095 ,fg-term-green-bright 4096 ,fg-term-yellow-bright 4097 ,fg-term-blue-bright 4098 ,fg-term-magenta-bright 4099 ,fg-term-cyan-bright 4100 ,fg-term-white-bright])) 4101 "Custom variables for `modus-themes-theme'.") 4102 4103 ;;; Theme macros 4104 4105 ;;;; Instantiate a Modus theme 4106 4107 ;;;###autoload 4108 (defmacro modus-themes-theme (name palette &optional overrides) 4109 "Bind NAME's color PALETTE around face specs and variables. 4110 Face specifications are passed to `custom-theme-set-faces'. 4111 While variables are handled by `custom-theme-set-variables'. 4112 Those are stored in `modus-themes-faces' and 4113 `modus-themes-custom-variables' respectively. 4114 4115 Optional OVERRIDES are appended to PALETTE, overriding 4116 corresponding entries." 4117 (declare (indent 0)) 4118 (let ((sym (gensym)) 4119 (colors (mapcar #'car (symbol-value palette)))) 4120 `(let* ((c '((class color) (min-colors 256))) 4121 (,sym (modus-themes--palette-value ',name ',overrides)) 4122 ,@(mapcar (lambda (color) 4123 (list color 4124 `(modus-themes--retrieve-palette-value ',color ,sym))) 4125 colors)) 4126 (ignore c ,@colors) ; Silence unused variable warnings 4127 (custom-theme-set-faces ',name ,@modus-themes-faces) 4128 (custom-theme-set-variables ',name ,@modus-themes-custom-variables)))) 4129 4130 ;;;; Use theme colors 4131 4132 (defmacro modus-themes-with-colors (&rest body) 4133 "Evaluate BODY with colors from current palette bound." 4134 (declare (indent 0)) 4135 (let* ((sym (gensym)) 4136 ;; NOTE 2022-08-23: We just give it a sample palette at this 4137 ;; stage. It only needs to collect each car. Then we 4138 ;; instantiate the actual theme's palette. We have to do this 4139 ;; otherwise the macro does not work properly when called from 4140 ;; inside a function. 4141 (colors (mapcar #'car (modus-themes--current-theme-palette)))) 4142 `(let* ((c '((class color) (min-colors 256))) 4143 (,sym (modus-themes--current-theme-palette :overrides)) 4144 ,@(mapcar (lambda (color) 4145 (list color 4146 `(modus-themes--retrieve-palette-value ',color ,sym))) 4147 colors)) 4148 (ignore c ,@colors) ; Silence unused variable warnings 4149 ,@body))) 4150 4151 ;;;; Add themes from package to path 4152 4153 ;;;###autoload 4154 (when load-file-name 4155 (let ((dir (file-name-directory load-file-name))) 4156 (unless (equal dir (expand-file-name "themes/" data-directory)) 4157 (add-to-list 'custom-theme-load-path dir)))) 4158 4159 (provide 'modus-themes) 4160 ;;; modus-themes.el ends here