Update modus-themes to their 4.7.0 version

* doc/misc/modus-themes.org: Update the manual to document how
  'modus-themes-list-colors' has changed. Make other minor changes.
* etc/themes/modus-operandi-deuteranopia-theme.el:
* etc/themes/modus-operandi-theme.el:
* etc/themes/modus-operandi-tinted-theme.el:
* etc/themes/modus-operandi-tritanopia-theme.el:
* etc/themes/modus-vivendi-deuteranopia-theme.el:
* etc/themes/modus-vivendi-theme.el:
* etc/themes/modus-vivendi-tinted-theme.el:
* etc/themes/modus-vivendi-tritanopia-theme.el: Make stylistic refinements.
* etc/themes/modus-themes.el: Make refinements to supported
  faces, add support for more faces, and the like.

Release notes: <https://protesilaos.com/codelog/2025-04-17-emacs-modus-themes-4-7-0/>.
This commit is contained in:
Protesilaos Stavrou 2025-04-17 10:33:43 +03:00
parent ee46b6c4e6
commit 1e4ce13603
No known key found for this signature in database
GPG key ID: 99BD6459CD5CA3EA
10 changed files with 439 additions and 410 deletions

View file

@ -4,9 +4,9 @@
#+language: en
#+options: ':t toc:nil author:t email:t num:t
#+startup: content
#+macro: stable-version 4.6.0
#+macro: release-date 2024-10-27
#+macro: development-version 4.7.0-dev
#+macro: stable-version 4.7.0
#+macro: release-date 2025-04-17
#+macro: development-version 4.8.0-dev
#+macro: file @@texinfo:@file{@@$1@@texinfo:}@@
#+macro: space @@texinfo:@: @@
#+macro: kbd @@texinfo:@kbd{@@$1@@texinfo:}@@
@ -88,7 +88,7 @@ The Modus themes consist of eight themes, divided into four subgroups.
are variants of the two main themes. They slightly tone down the
intensity of the background and provide a bit more color variety.
~modus-operandi-tinted~ has a set of base tones that are shades of
light ocher (earthly colors), while ~modus-vivendi-tinted~ gives a
light ochre (earthly colors), while ~modus-vivendi-tinted~ gives a
night sky impression.
- Deuteranopia themes :: ~modus-operandi-deuteranopia~ and its
@ -1309,37 +1309,32 @@ Examples demonstrating how to use the aforementioned:
#+findex: modus-themes-list-colors
The command ~modus-themes-list-colors~ uses minibuffer completion to
select an item from the Modus themes and then produces a buffer with
previews of its color palette entries. The buffer has a naming scheme
that reflects the given choice, like =modus-operandi-list-colors= for
the ~modus-operandi~ theme.
previews of all of its color palette entries.
#+findex: modus-themes-list-colors-current
The command ~modus-themes-list-colors-current~ skips the minibuffer
selection process and just produces a preview for the current Modus
theme.
selection process to produce a preview for the current Modus theme.
When called with a prefix argument (=C-u= with the default key
bindings), these commands will show a preview of the palette's
semantic color mappings instead of the named colors. In this context,
"named colors" are entries that associate a symbol to a string color
value, such as =(blue-warmer "#354fcf")=. Whereas "semantic color
mappings" associate a named color to a symbol, like =(string
blue-warmer)=, thus making the theme render all string constructs in
the =blue-warmer= color value ([[#h:34c7a691-19bb-4037-8d2f-67a07edab150][Option for palette overrides]]).
semantic color mappings instead of the full palette ([[#h:34c7a691-19bb-4037-8d2f-67a07edab150][Option for palette overrides]]).
#+findex: modus-themes-preview-colors
#+findex: modus-themes-preview-colors-current
Aliases for those commands are ~modus-themes-preview-colors~ and
Aliases for these commands are ~modus-themes-preview-colors~ and
~modus-themes-preview-colors-current~.
Each row shows a foreground and background coloration using the
underlying value it references. For example a line with =#a60000= (a
shade of red) will show red text followed by a stripe with that same
color as a backdrop.
Each row includes a foreground and background rendition of the given
color value. For example a line with =#a60000= (a shade of red) will
show a column with a red background combined with a suitable
foreground followed by another column with a red foreground against
the current theme's background. The intent is to illustrate which
values are suitable as a background or foreground.
The name of the buffer describes the given Modus theme and what the
contents are, such as =*modus-operandi-list-colors*= for named colors
and ==*modus-operandi-list-mappings*= for the semantic color mappings.
contents are, such as =*modus-operandi-list-all*= for the entirety of
the palette (named colors as well as semantic color mappings) and
==*modus-operandi-list-mappings*= for the mappings only.
* Use colors from the Modus themes palette
:PROPERTIES:
@ -1361,7 +1356,7 @@ value in some other application.
:END:
#+findex: modus-themes-get-color-value
The function ~modus-themes-get-color-value~ can be called from Lisp to
The fuction ~modus-themes-get-color-value~ can be called from Lisp to
return the value of a color from the active Modus theme palette. It
takea a =COLOR= argument and an optional =OVERRIDES=. It also accepts
a third =THEME= argument, to get the color from the given theme.
@ -2367,7 +2362,7 @@ until version 4.3.0.
;; was the default in versions of the Modus themes before 4.4.0
(setq modus-themes-common-palette-overrides
'((bg-prose-block-contents unspecified)
(bg-prose-block-delimiter unspecified)
(bg-prose-block-delimiter unspeficied)
(fg-prose-block-delimiter fg-dim)))
#+end_src
@ -2941,7 +2936,7 @@ Reload the theme for changes to take effect.
:CUSTOM_ID: h:a5140c9c-18b2-45db-8021-38d0b5074116
:END:
By default, the background of the ~region~ face extends from the
By the default, the background of the ~region~ face extends from the
end of the line to the edge of the window. To limit it to the end of
the line, we need to override the face's =:extend= attribute. Adding
this to the Emacs configuration file will suffice:
@ -3365,7 +3360,7 @@ specification of that variable looks like this:
With the exception of ~org-verbatim~ and ~org-code~ faces, everything else
uses the corresponding type of emphasis: a bold typographic weight, or
italicized, underlined, and struck through text.
italicised, underlined, and struck through text.
The best way for users to add some extra attributes, such as a
foreground color, is to define their own faces and assign them to the
@ -3985,13 +3980,13 @@ styles to use. The following is but a basic attempt to get started.
(modus-themes-with-colors
(custom-set-faces
;; FIXME: What is a "region cursor" and should it differ from the position highlights below?
`(meow-region-cursor-1 ((,c :inherit (bold modus-themes-reset-soft) :background ,bg-char-0)))
`(meow-region-cursor-2 ((,c :inherit (bold modus-themes-reset-soft) :background ,bg-char-1)))
`(meow-region-cursor-3 ((,c :inherit (bold modus-themes-reset-soft) :background ,bg-char-2)))
`(meow-region-cursor-1 ((,c :inherit (bold modus-themes-search-current modus-themes-reset-soft))))
`(meow-region-cursor-2 ((,c :inherit (bold modus-themes-search-current modus-themes-reset-soft))))
`(meow-region-cursor-3 ((,c :inherit (bold modus-themes-search-current modus-themes-reset-soft))))
`(meow-position-highlight-number-1 ((,c :inherit (bold modus-themes-reset-soft) :background ,bg-char-0)))
`(meow-position-highlight-number-2 ((,c :inherit (bold modus-themes-reset-soft) :background ,bg-char-1)))
`(meow-position-highlight-number-3 ((,c :inherit (bold modus-themes-reset-soft) :background ,bg-char-2))))))
`(meow-position-highlight-number-1 ((,c :inherit (bold modus-themes-search-current modus-themes-reset-soft))))
`(meow-position-highlight-number-2 ((,c :inherit (bold modus-themes-search-current modus-themes-reset-soft))))
`(meow-position-highlight-number-3 ((,c :inherit (bold modus-themes-search-current modus-themes-reset-soft)))))))
(add-hook 'enable-theme-functions #'my-modus-themes-custom-faces)
#+end_src
@ -4049,45 +4044,6 @@ the theme level. Users can try this instead:
[[#h:d87673fe-2ce1-4c80-a4b8-be36ca9f2d24][Using a hook at the post-load-theme phase]].
** DIY Add support for howm
:PROPERTIES:
:CUSTOM_ID: h:7ea8fa66-1cd8-47b0-92b4-9998a3068f85
:END:
The ~howm~ package is a note-taking solution for Emacs. Users can add
support for its faces with something like the following.
#+begin_src emacs-lisp
(defun my-modus-themes-custom-faces (&rest _)
(modus-themes-with-colors
(custom-set-faces
`(action-lock-face ((,c :inherit button)))
`(howm-mode-keyword-face (( )))
`(howm-mode-ref-face ((,c :inherit link)))
`(howm-mode-title-face ((,c :inherit modus-themes-heading-0)))
`(howm-mode-wiki-face ((,c :inherit link)))
`(howm-reminder-deadline-face ((,c :foreground ,date-deadline)))
`(howm-reminder-late-deadline-face ((,c :inherit bold :foreground ,date-deadline)))
`(howm-reminder-defer-face ((,c :foreground ,date-scheduled)))
`(howm-reminder-scheduled-face ((,c :foreground ,date-scheduled)))
`(howm-reminder-done-face ((,c :foreground ,prose-done)))
`(howm-reminder-todo-face ((,c :foreground ,prose-todo)))
`(howm-reminder-normal-face ((,c :foreground ,date-common)))
`(howm-reminder-today-face ((,c :inherit bold :foreground ,date-common)))
`(howm-reminder-tomorrow-face ((,c :inherit bold :foreground ,date-scheduled)))
`(howm-simulate-todo-mode-line-face ((,c :inherit bold)))
`(howm-view-empty-face (( )))
`(howm-view-hilit-face ((,c :inherit match)))
`(howm-view-name-face ((,c :inherit bold)))
`(iigrep-counts-face1 ((,c :foreground ,rainbow-1)))
`(iigrep-counts-face2 ((,c :foreground ,rainbow-2)))
`(iigrep-counts-face3 ((,c :foreground ,rainbow-3)))
`(iigrep-counts-face4 ((,c :foreground ,rainbow-4)))
`(iigrep-counts-face5 ((,c :foreground ,rainbow-5))))))
(add-hook 'enable-theme-functions #'my-modus-themes-custom-faces)
#+end_src
** DIY Use a hook at the post-load-theme phase
:PROPERTIES:
:CUSTOM_ID: h:d87673fe-2ce1-4c80-a4b8-be36ca9f2d24
@ -4207,6 +4163,7 @@ project. The idea is to offer an overview of the known status of all
affected face groups. The items with an appended asterisk =*= tend to
have lots of extensions, so the "full support" may not be 100% true…
+ abbrev
+ ace-window
+ agda2-mode
+ all-the-icons
@ -4314,6 +4271,7 @@ have lots of extensions, so the "full support" may not be 100% true…
+ hl-fill-column
+ hl-line-mode
+ hl-todo
+ howm
+ hydra
+ ibuffer
+ icomplete
@ -4420,6 +4378,7 @@ have lots of extensions, so the "full support" may not be 100% true…
+ sly
+ smart-mode-line
+ smerge
+ spacious-padding
+ speedbar
+ spell-fu
+ stripes
@ -4435,8 +4394,10 @@ have lots of extensions, so the "full support" may not be 100% true…
+ terraform-mode
+ term
+ textsec
+ tldr
+ transient (pop-up windows such as Magit's)
+ trashed
+ treemacs
+ tree-sitter
+ tty-menu
+ tuareg
@ -5407,7 +5368,7 @@ more effective than trying to do the same with either red or blue (the
latter is the least effective in that regard).
When we need to work with several colors, it is always better to have
sufficient maneuvering space, especially since we cannot pick arbitrary
sufficient manoeuvring space, especially since we cannot pick arbitrary
colors but only those that satisfy the accessibility objectives of the
themes.
@ -5513,7 +5474,7 @@ it is already understood that one must follow the indicator or headline
to view its contents and (ii) underlining everything would make the
interface virtually unusable.
Again, one must exercise judgment in order to avoid discrimination,
Again, one must exercise judgement in order to avoid discrimination,
where "discrimination" refers to:
+ The treatment of substantially different magnitudes as if they were of
@ -5587,7 +5548,7 @@ the themes, which is partially fleshed out in this manual.
With regard to the artistic aspect (where "art" qua skill may amount to
an imprecise science), there is no hard-and-fast rule in effect as it
requires one to exercise discretion and make decisions based on
requires one to exercize discretion and make decisions based on
context-dependent information or constraints. As is true with most
things in life, when in doubt, do not cling on to the letter of the law
but try to understand its spirit.
@ -5736,14 +5697,14 @@ The Modus themes are a collective effort. Every bit of work matters.
Contovounesios, Björn Lindström, Carlo Zancanaro, Christian Tietze,
Daniel Mendler, David Edmondson, Eli Zaretskii, Fritz Grabo, Gautier
Ponsinet, Illia Ostapyshyn, Jared Finder, Kévin Le Gouguec, Koen van
Greevenbroek, Kostadin Ninev, Madhavan Krishnan, Manuel Giraud,
Markus Beppler, Matthew Stevenson, Mauro Aranda, Nacho Barrientos,
Niall Dooley, Nicolas De Jaeghere, Paul David, Pavel Novichkov,
Philip Kaludercic, Pierre Téchoueyres, Rudolf Adamkovič, Sergey
Nichiporchik, Shreyas Ragavan, Stefan Kangas, Stephen Berman,
Stephen Gildea, Steve Downey, Thanos Apollo, Tomasz Hołubowicz,
Utkarsh Singh, Vincent Murphy, Xinglu Chen, Yuanchen Xie, fluentpwn,
okamsn.
Greevenbroek, Kostadin Ninev, Leilei332, Madhavan Krishnan, Manuel
Giraud, Markus Beppler, Matthew Stevenson, Mauro Aranda, Nacho
Barrientos, Niall Dooley, Nicolas De Jaeghere, Paul David, Pavel
Novichkov, Philip Kaludercic, Pierre Téchoueyres, Rahul M.
{{{space()}}} Juliato, Rudolf Adamkovič, Sergey Nichiporchik,
Shreyas Ragavan, Stefan Kangas, Stephen Berman, Stephen Gildea,
Steve Downey, Thanos Apollo, Tomasz Hołubowicz, Utkarsh Singh,
Vincent Murphy, Xinglu Chen, Yuanchen Xie, fluentpwn, okamsn.
+ Ideas and user feedback :: Aaron Jensen, Adam Porter, Adam Spiers,
Adrian Manea, Aleksei Pirogov, Alex Griffin, Alex Koen, Alex
@ -5779,7 +5740,8 @@ The Modus themes are a collective effort. Every bit of work matters.
Eugene, Fourchaux, Fredrik, Moesasji, Nick, Summer Emacs, TheBlob42,
TitusMu, Trey, ZharMeny, bepolymathe, bit9tream, bangedorrunt,
derek-upham, doolio, fleimgruber, gitrj95, iSeeU, jixiuf, ltmsyvag,
okamsn, pRot0ta1p, shipmints, soaringbird, tumashu, wakamenod.
okamsn, pedro-nonfree, pRot0ta1p, shipmints, soaringbird, tumashu,
wakamenod.
+ Packaging :: Basil L.{{{space()}}} Contovounesios, Eli Zaretskii,
Glenn Morris, Mauro Aranda, Richard Stallman, Stefan Kangas (core
@ -5812,7 +5774,7 @@ All errors are my own.
Version 1.3, 3 November 2008
Copyright (C) 2000-2002, 2007-2008, 2025 Free Software Foundation, Inc.
Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
<https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.

View file

@ -1,6 +1,6 @@
;;; modus-operandi-deuteranopia-theme.el --- Deuteranopia-optimized theme with a white background -*- lexical-binding:t -*-
;; Copyright (C) 2019-2025 Free Software Foundation, Inc.
;; Copyright (C) 2019-2025 Free Software Foundation, Inc.
;; Author: Protesilaos Stavrou <info@protesilaos.com>
;; Maintainer: Protesilaos Stavrou <info@protesilaos.com>
@ -167,15 +167,11 @@ standard)."
(bg-completion "#c0deff")
(bg-hover "#b2e4dc")
(bg-hover-secondary "#f5d0a0")
(bg-hover-secondary "#e5d7a0")
(bg-hl-line "#dae5ec")
(bg-region "#bdbdbd")
(fg-region "#000000")
(bg-char-0 "#7feaff")
(bg-char-1 "#ffaaff")
(bg-char-2 "#dff000")
(bg-mode-line-active "#d0d6ff")
(fg-mode-line-active "#0f0f0f")
(border-mode-line-active "#4f4f74")
@ -216,13 +212,6 @@ standard)."
(bg-diff-context "#f3f3f3")
;;; Paren match
(bg-paren-match "#5fcfff")
(fg-paren-match fg-main)
(bg-paren-expression "#efd3f5")
(underline-paren-match unspecified)
;;; Mappings
;;;; General mappings
@ -257,17 +246,17 @@ standard)."
;;;; Code mappings
(bracket fg-main)
(builtin magenta-warmer)
(builtin yellow)
(comment yellow-cooler)
(constant blue-cooler)
(constant blue-faint)
(delimiter fg-main)
(docmarkup magenta-faint)
(docstring green-faint)
(fnname magenta)
(keyword magenta-cooler)
(fnname yellow-warmer)
(keyword blue-cooler)
(number fg-main)
(operator fg-main)
(preprocessor red-cooler)
(preprocessor magenta-cooler)
(punctuation fg-main)
(rx-backslash blue-cooler)
(rx-construct yellow-cooler)
@ -275,12 +264,19 @@ standard)."
(type cyan-cooler)
(variable cyan)
;;;; Paren match
(bg-paren-match bg-cyan-subtle)
(fg-paren-match fg-main)
(underline-paren-match unspecified)
(bg-paren-expression bg-yellow-nuanced)
;;;; Accent mappings
(accent-0 blue)
(accent-0 blue-warmer)
(accent-1 yellow-warmer)
(accent-2 cyan)
(accent-3 magenta-cooler)
(accent-3 yellow-cooler)
;;;; Button mappings
@ -291,10 +287,10 @@ standard)."
;;;; Completion mappings
(fg-completion-match-0 blue)
(fg-completion-match-0 blue-warmer)
(fg-completion-match-1 yellow-warmer)
(fg-completion-match-2 cyan)
(fg-completion-match-3 magenta-cooler)
(fg-completion-match-3 yellow-cooler)
(bg-completion-match-0 unspecified)
(bg-completion-match-1 unspecified)
(bg-completion-match-2 unspecified)
@ -313,7 +309,7 @@ standard)."
(date-scheduled yellow-cooler)
(date-scheduled-subtle yellow-faint)
(date-weekday cyan)
(date-weekend magenta)
(date-weekend blue-cooler)
;;;; Line number mappings
@ -374,7 +370,7 @@ standard)."
(fg-prose-macro magenta-cooler)
(bg-prose-verbatim unspecified)
(fg-prose-verbatim magenta-warmer)
(fg-prose-verbatim yellow)
(prose-done blue)
(prose-todo yellow-warmer)
@ -385,7 +381,7 @@ standard)."
(prose-table fg-alt)
(prose-table-formula yellow-warmer)
(prose-tag magenta-faint)
(prose-tag fg-alt)
;;;; Rainbow mappings
@ -403,7 +399,7 @@ standard)."
(bg-search-current bg-yellow-intense)
(bg-search-lazy bg-blue-intense)
(bg-search-replace bg-magenta-intense)
(bg-search-replace bg-yellow-intense)
(bg-search-rx-group-0 bg-cyan-intense)
(bg-search-rx-group-1 bg-magenta-intense)
@ -463,11 +459,11 @@ standard)."
(fg-heading-0 cyan-cooler)
(fg-heading-1 fg-main)
(fg-heading-2 yellow-faint)
(fg-heading-3 fg-alt)
(fg-heading-4 magenta)
(fg-heading-5 green-faint)
(fg-heading-6 red-faint)
(fg-heading-7 cyan-warmer)
(fg-heading-3 blue-faint)
(fg-heading-4 green-faint)
(fg-heading-5 magenta-cooler)
(fg-heading-6 yellow-cooler)
(fg-heading-7 cyan)
(fg-heading-8 fg-dim)
(bg-heading-0 unspecified)

View file

@ -1,6 +1,6 @@
;;; modus-operandi-theme.el --- Elegant, highly legible theme with a white background -*- lexical-binding:t -*-
;; Copyright (C) 2019-2025 Free Software Foundation, Inc.
;; Copyright (C) 2019-2025 Free Software Foundation, Inc.
;; Author: Protesilaos Stavrou <info@protesilaos.com>
;; Maintainer: Protesilaos Stavrou <info@protesilaos.com>
@ -170,10 +170,6 @@ which corresponds to a minimum contrast in relative luminance of
(bg-region "#bdbdbd")
(fg-region "#000000")
(bg-char-0 "#7feaff")
(bg-char-1 "#ffaaff")
(bg-char-2 "#dff000")
(bg-mode-line-active "#c8c8c8")
(fg-mode-line-active "#000000")
(border-mode-line-active "#5a5a5a")
@ -214,13 +210,6 @@ which corresponds to a minimum contrast in relative luminance of
(bg-diff-context "#f3f3f3")
;;; Paren match
(bg-paren-match "#5fcfff")
(fg-paren-match fg-main)
(bg-paren-expression "#efd3f5")
(underline-paren-match unspecified)
;;; Mappings
;;;; General mappings
@ -273,6 +262,13 @@ which corresponds to a minimum contrast in relative luminance of
(type cyan-cooler)
(variable cyan)
;;;; Paren match
(bg-paren-match bg-cyan-subtle)
(fg-paren-match fg-main)
(underline-paren-match unspecified)
(bg-paren-expression bg-yellow-nuanced)
;;;; Accent mappings
(accent-0 blue)

View file

@ -1,6 +1,6 @@
;;; modus-operandi-tinted-theme.el --- Elegant, highly legible theme with a light ocher background -*- lexical-binding:t -*-
;;; modus-operandi-tinted-theme.el --- Elegant, highly legible theme with a light ochre background -*- lexical-binding:t -*-
;; Copyright (C) 2019-2025 Free Software Foundation, Inc.
;; Copyright (C) 2019-2025 Free Software Foundation, Inc.
;; Author: Protesilaos Stavrou <info@protesilaos.com>
;; Maintainer: Protesilaos Stavrou <info@protesilaos.com>
@ -44,7 +44,7 @@
;;;###theme-autoload
(deftheme modus-operandi-tinted
"Elegant, highly legible theme with a light ocher background.
"Elegant, highly legible theme with a light ochre background.
Conforms with the highest legibility standard for color contrast
between background and foreground in any given piece of text,
which corresponds to a minimum contrast in relative luminance of
@ -73,18 +73,18 @@ which corresponds to a minimum contrast in relative luminance of
(red-cooler "#a0132f")
(red-faint "#7f0000")
(red-intense "#d00000")
(green "#006800")
(green-warmer "#316500")
(green-cooler "#00663f")
(green "#006300")
(green-warmer "#306010")
(green-cooler "#00603f")
(green-faint "#2a5045")
(green-intense "#008900")
(yellow "#6f5500")
(yellow-warmer "#884900")
(yellow-cooler "#7a4f2f")
(yellow-faint "#624416")
(yellow "#6d5000")
(yellow-warmer "#894000")
(yellow-cooler "#602938")
(yellow-faint "#574316")
(yellow-intense "#808000")
(blue "#0031a9")
(blue-warmer "#3548cf")
(blue-warmer "#3546c2")
(blue-cooler "#0000b0")
(blue-faint "#003497")
(blue-intense "#0000ff")
@ -93,10 +93,10 @@ which corresponds to a minimum contrast in relative luminance of
(magenta-cooler "#531ab6")
(magenta-faint "#7c318f")
(magenta-intense "#dd22dd")
(cyan "#005e8b")
(cyan-warmer "#3f578f")
(cyan "#00598b")
(cyan-warmer "#32548f")
(cyan-cooler "#005f5f")
(cyan-faint "#005077")
(cyan-faint "#304463")
(cyan-intense "#008899")
;;; Uncommon accent foregrounds
@ -165,15 +165,11 @@ which corresponds to a minimum contrast in relative luminance of
(bg-completion "#f0c1cf")
(bg-hover "#b2e4dc")
(bg-hover-secondary "#f5d0a0")
(bg-hover-secondary "#dfe09f")
(bg-hl-line "#f1d5d0")
(bg-region "#c2bcb5")
(fg-region "#000000")
(bg-char-0 "#7feaff")
(bg-char-1 "#ffaaff")
(bg-char-2 "#dff000")
(bg-mode-line-active "#cab9b2")
(fg-mode-line-active "#000000")
(border-mode-line-active "#545454")
@ -214,13 +210,6 @@ which corresponds to a minimum contrast in relative luminance of
(bg-diff-context "#efe9df")
;;; Paren match
(bg-paren-match "#7fdfcf")
(fg-paren-match fg-main)
(bg-paren-expression "#efd3f5")
(underline-paren-match unspecified)
;;; Mappings
;;;; General mappings
@ -230,11 +219,11 @@ which corresponds to a minimum contrast in relative luminance of
(keybind red)
(name magenta)
(identifier yellow-cooler)
(identifier yellow-faint)
(err red)
(warning yellow-warmer)
(info cyan-cooler)
(warning yellow)
(info green)
(underline-err red-intense)
(underline-warning yellow-intense)
@ -255,30 +244,37 @@ which corresponds to a minimum contrast in relative luminance of
;;;; Code mappings
(bracket fg-main)
(builtin magenta-warmer)
(builtin magenta)
(comment red-faint)
(constant blue-cooler)
(constant magenta-cooler)
(delimiter fg-main)
(docmarkup magenta-faint)
(docstring green-faint)
(fnname magenta)
(keyword magenta-cooler)
(docstring cyan-faint)
(fnname yellow-cooler)
(keyword blue)
(number fg-main)
(operator fg-main)
(preprocessor red-cooler)
(preprocessor yellow-warmer)
(punctuation fg-main)
(rx-backslash magenta)
(rx-construct green-cooler)
(string blue-warmer)
(type cyan-cooler)
(variable cyan)
(rx-backslash magenta-warmer)
(rx-construct magenta-cooler)
(string cyan)
(type green-warmer)
(variable green-cooler)
;;;; Paren match
(bg-paren-match bg-cyan-subtle)
(fg-paren-match fg-main)
(underline-paren-match unspecified)
(bg-paren-expression bg-yellow-nuanced)
;;;; Accent mappings
(accent-0 blue)
(accent-1 magenta-warmer)
(accent-2 cyan)
(accent-3 red)
(accent-0 red-cooler)
(accent-1 cyan)
(accent-2 magenta-cooler)
(accent-3 yellow-warmer)
;;;; Button mappings
@ -336,14 +332,14 @@ which corresponds to a minimum contrast in relative luminance of
;;;; Mail mappings
(mail-cite-0 blue-faint)
(mail-cite-1 yellow-warmer)
(mail-cite-2 cyan-cooler)
(mail-cite-0 cyan-cooler)
(mail-cite-1 yellow)
(mail-cite-2 green-warmer)
(mail-cite-3 red-cooler)
(mail-part cyan)
(mail-recipient magenta-cooler)
(mail-part magenta-cooler)
(mail-recipient blue-warmer)
(mail-subject magenta-warmer)
(mail-other magenta-faint)
(mail-other magenta)
;;;; Mark mappings
@ -356,7 +352,7 @@ which corresponds to a minimum contrast in relative luminance of
;;;; Prompt mappings
(fg-prompt cyan-cooler)
(fg-prompt green-cooler)
(bg-prompt unspecified)
;;;; Prose mappings
@ -366,13 +362,13 @@ which corresponds to a minimum contrast in relative luminance of
(bg-prose-block-contents bg-dim)
(bg-prose-code unspecified)
(fg-prose-code cyan-cooler)
(fg-prose-code green-cooler)
(bg-prose-macro unspecified)
(fg-prose-macro magenta-cooler)
(fg-prose-macro blue-cooler)
(bg-prose-verbatim unspecified)
(fg-prose-verbatim magenta-warmer)
(fg-prose-verbatim yellow-warmer)
(prose-done green)
(prose-todo red)
@ -458,7 +454,7 @@ which corresponds to a minimum contrast in relative luminance of
;;;; Heading mappings
(fg-heading-0 cyan-cooler)
(fg-heading-0 green-cooler)
(fg-heading-1 fg-main)
(fg-heading-2 yellow-faint)
(fg-heading-3 fg-alt)

View file

@ -1,6 +1,6 @@
;;; modus-operandi-tritanopia-theme.el --- Tritanopia-optimized theme with a white background -*- lexical-binding:t -*-
;; Copyright (C) 2019-2025 Free Software Foundation, Inc.
;; Copyright (C) 2019-2025 Free Software Foundation, Inc.
;; Author: Protesilaos Stavrou <info@protesilaos.com>
;; Maintainer: Protesilaos Stavrou <info@protesilaos.com>
@ -63,7 +63,7 @@ standard)."
(bg-dim "#f2f2f2")
(fg-main "#000000")
(fg-dim "#595959")
(fg-alt "#193668")
(fg-alt "#024960")
(bg-active "#c4c4c4")
(bg-inactive "#e0e0e0")
(border "#9f9f9f")
@ -167,15 +167,11 @@ standard)."
(bg-completion "#afdfef")
(bg-hover "#ffafbc")
(bg-hover-secondary "#9fdfff")
(bg-hover-secondary "#abdfdd")
(bg-hl-line "#dfeaec")
(bg-region "#bdbdbd")
(fg-region "#000000")
(bg-char-0 "#ff908f")
(bg-char-1 "#bfbfff")
(bg-char-2 "#5fcfdf")
(bg-mode-line-active "#afe0f2")
(fg-mode-line-active "#0f0f0f")
(border-mode-line-active "#2f4f44")
@ -216,13 +212,6 @@ standard)."
(bg-diff-context "#f3f3f3")
;;; Paren match
(bg-paren-match "#5fcfff")
(fg-paren-match fg-main)
(bg-paren-expression "#efd3f5")
(underline-paren-match unspecified)
;;; Mappings
;;;; General mappings
@ -275,6 +264,13 @@ standard)."
(type blue-warmer)
(variable cyan-cooler)
;;;; Paren match
(bg-paren-match bg-cyan-subtle)
(fg-paren-match fg-main)
(underline-paren-match unspecified)
(bg-paren-expression bg-red-nuanced)
;;;; Accent mappings
(accent-0 cyan)
@ -385,7 +381,7 @@ standard)."
(prose-table fg-alt)
(prose-table-formula red-cooler)
(prose-tag magenta-faint)
(prose-tag fg-alt)
;;;; Rainbow mappings

View file

@ -1,12 +1,12 @@
;;; modus-themes.el --- Elegant, highly legible and customizable themes -*- lexical-binding:t -*-
;; Copyright (C) 2019-2025 Free Software Foundation, Inc.
;; Copyright (C) 2019-2025 Free Software Foundation, Inc.
;; Author: Protesilaos Stavrou <info@protesilaos.com>
;; Maintainer: Protesilaos Stavrou <info@protesilaos.com>
;; URL: https://github.com/protesilaos/modus-themes
;; Version: 4.6.0
;; Package-Requires: ((emacs "27.1"))
;; Version: 4.7.0
;; Package-Requires: ((emacs "28.1"))
;; Keywords: faces, theme, accessibility
;; This file is part of GNU Emacs.
@ -309,11 +309,12 @@ If the value is nil or otherwise does not specify two valid Modus
themes, the command `modus-themes-toggle' reverts to selecting a
theme from the list of available Modus themes. In effect, it is
the same as using the command `modus-themes-select'."
:type `(choice
(const :tag "No toggle" nil)
(list :tag "Pick two themes to toggle between"
(choice :tag "Theme one of two" ,@(mapcar (lambda (theme) (list 'const theme)) modus-themes-items))
(choice :tag "Theme two of two" ,@(mapcar (lambda (theme) (list 'const theme)) modus-themes-items))))
:type (let ((themes (mapcar (lambda (theme) (list 'const theme)) modus-themes-items)))
`(choice
(const :tag "No toggle" nil)
(list :tag "Pick two themes to toggle between"
(choice :tag "Theme one of two" ,@themes)
(choice :tag "Theme two of two" ,@themes))))
:package-version '(modus-themes . "4.0.0")
:version "30.1"
:group 'modus-themes)
@ -327,7 +328,8 @@ the same as using the command `modus-themes-select'."
:version "31.1"
:group 'modus-themes)
(defvaralias 'modus-themes-post-load-hook 'modus-themes-after-load-theme-hook)
(defvaralias 'modus-themes-post-load-hook 'modus-themes-after-load-theme-hook
"Alias for `modus-themes-after-load-theme-hook'.")
(defcustom modus-themes-after-load-theme-hook nil
"Hook that runs after loading a Modus theme.
@ -1153,7 +1155,7 @@ This function is used in the macros `modus-themes-theme',
(eq value 'unspecified))
value)
((and (symbolp value)
(memq value (mapcar #'car palette)))
value)
(modus-themes--retrieve-palette-value value palette))
(t
'unspecified))))
@ -1209,15 +1211,15 @@ symbol, which is safe when used as a face attribute's value."
"Render `modus-themes--list-known-themes' as completion with theme category."
(modus-themes--completion-table 'theme (modus-themes--list-known-themes)))
(defun modus-themes--select-prompt ()
"Minibuffer prompt to select a Modus theme."
(defun modus-themes--select-prompt (&optional prompt)
"Minibuffer prompt to select a Modus theme.
With optional PROMPT string, use it. Else use a generic prompt."
(let ((completion-extra-properties `(:annotation-function ,#'modus-themes--annotate-theme)))
(intern
(completing-read
"Select Modus theme: "
(or prompt "Select Modus theme: ")
(modus-themes--completion-table-candidates)
nil t nil
'modus-themes--select-theme-history))))
nil t nil 'modus-themes--select-theme-history))))
;;;###autoload
(defun modus-themes-select (theme)
@ -1231,13 +1233,13 @@ Disable other themes per `modus-themes-disable-other-themes'."
(defun modus-themes--toggle-theme-p ()
"Return non-nil if `modus-themes-to-toggle' are valid."
(mapc
(lambda (theme)
(if (or (memq theme modus-themes-items)
(memq theme (modus-themes--list-known-themes)))
theme
(user-error "`%s' is not part of `modus-themes-items'" theme)))
modus-themes-to-toggle))
(condition-case nil
(dolist (theme modus-themes-to-toggle)
(or (memq theme modus-themes-items)
(memq theme (modus-themes--list-known-themes))
(error "`%s' is not part of `modus-themes-items'" theme)))
(error nil)
(:success modus-themes-to-toggle)))
;;;###autoload
(defun modus-themes-toggle ()
@ -1294,87 +1296,88 @@ the list becomes the last. Do not modify THEMES in the process."
;;;;; Preview a theme palette
(defun modus-themes--list-colors-render (buffer theme &optional mappings &rest _)
"Render colors in BUFFER from THEME for `modus-themes-list-colors'.
Optional MAPPINGS changes the output to only list the semantic
color mappings of the palette, instead of its named colors."
(defun modus-themes--list-colors-get-mappings (palette)
"Get the semantic palette entries in PALETTE.
PALETTE is the value of a variable like `modus-operandi-palette'."
(seq-remove
(lambda (cell)
(stringp (cadr cell)))
palette))
(defun modus-themes--list-colors-tabulated (theme &optional mappings)
"Return a data structure of THEME palette or MAPPINGS for tabulated list."
(let* ((current-palette (modus-themes--palette-value theme mappings))
(palette (if mappings
(seq-remove (lambda (cell)
(stringp (cadr cell)))
current-palette)
current-palette))
(current-buffer buffer)
(current-theme theme))
(with-help-window buffer
(with-current-buffer standard-output
(erase-buffer)
(when (<= (display-color-cells) 256)
(insert (concat "Your display terminal may not render all color previews!\n"
"It seems to only support <= 256 colors.\n\n"))
(put-text-property (point-min) (point) 'face 'warning))
;; We need this to properly render the first line.
(insert " ")
(dolist (cell palette)
(let* ((name (car cell))
(color (modus-themes-get-color-value name mappings theme))
(pad (make-string 10 ?\s))
(fg (if (eq color 'unspecified)
(progn
(readable-foreground-color (modus-themes-get-color-value 'bg-main nil theme))
(setq pad (make-string 6 ?\s)))
(readable-foreground-color color))))
(let ((old-point (point)))
(insert (format "%s %s" color pad))
(put-text-property old-point (point) 'face `( :foreground ,color)))
(let ((old-point (point)))
(insert (format " %s %s %s\n" color pad name))
(put-text-property old-point (point)
'face `( :background ,color
:foreground ,fg
:extend t)))
;; We need this to properly render the last line.
(insert " ")))
(setq-local revert-buffer-function
(lambda (_ignore-auto _noconfirm)
(modus-themes--list-colors-render current-buffer current-theme mappings)))))))
(modus-themes--list-colors-get-mappings current-palette)
current-palette)))
(mapcar (lambda (cell)
(pcase-let* ((`(,name ,value) cell)
(name-string (format "%s" name))
(value-string (format "%s" value))
(value-string-padded (string-pad value-string 30))
(color (modus-themes-get-color-value name mappings theme))) ; resolve a semantic mapping
(list name
(vector
(if (and (symbolp value)
(not (eq value 'unspecified)))
"Yes"
"")
name-string
(propertize value-string 'face `( :foreground ,color))
(propertize value-string-padded 'face (list :background color
:foreground (if (string= color "unspecified")
(readable-foreground-color (modus-themes-get-color-value 'bg-main nil theme))
(readable-foreground-color color))))))))
palette)))
(defvar modus-themes--list-colors-prompt-history '()
"Minibuffer history for `modus-themes--list-colors-prompt'.")
(defvar modus-themes-current-preview nil)
(defvar modus-themes-current-preview-show-mappings nil)
(defun modus-themes--list-colors-prompt ()
"Prompt for Modus theme.
Helper function for `modus-themes-list-colors'."
(let ((def (format "%s" (modus-themes--current-theme)))
(completion-extra-properties `(:annotation-function ,#'modus-themes--annotate-theme)))
(completing-read
(format "Use palette from theme [%s]: " def)
(modus-themes--completion-table-candidates)
nil t nil
'modus-themes--list-colors-prompt-history def)))
(defun modus-themes--set-tabulated-entries ()
"Set the value of `tabulated-list-entries' with palette entries."
(setq-local tabulated-list-entries
(modus-themes--list-colors-tabulated modus-themes-current-preview modus-themes-current-preview-show-mappings)))
(defun modus-themes-list-colors (theme &optional mappings)
"Preview named colors of the Modus THEME of choice.
With optional prefix argument for MAPPINGS preview the semantic
color mappings instead of the named colors."
(interactive (list (intern (modus-themes--list-colors-prompt)) current-prefix-arg))
(modus-themes--list-colors-render
(format (if mappings "*%s-list-mappings*" "*%s-list-colors*") theme)
theme
mappings))
"Preview the palette of the Modus THEME of choice.
With optional prefix argument for MAPPINGS preview only the semantic
color mappings instead of the complete palette."
(interactive
(let ((prompt (if current-prefix-arg
"Preview palette mappings of THEME: "
"Preview palette of THEME: ")))
(list
(modus-themes--select-prompt prompt)
current-prefix-arg)))
(let ((buffer (get-buffer-create (format (if mappings "*%s-list-mappings*" "*%s-list-all*") theme))))
(with-current-buffer buffer
(let ((modus-themes-current-preview theme)
(modus-themes-current-preview-show-mappings mappings))
(modus-themes-preview-mode)))
(pop-to-buffer buffer)))
(defalias 'modus-themes-preview-colors 'modus-themes-list-colors
"Alias of `modus-themes-list-colors'.")
"Alias for `modus-themes-list-colors'.")
(defun modus-themes-list-colors-current (&optional mappings)
"Call `modus-themes-list-colors' for the current Modus theme.
Optional prefix argument MAPPINGS has the same meaning as for
`modus-themes-list-colors'."
"Like `modus-themes-list-colors' with optional MAPPINGS for the current theme."
(interactive "P")
(modus-themes-list-colors (modus-themes--current-theme) mappings))
(defalias 'modus-themes-preview-colors-current 'modus-themes-list-colors-current
"Alias of `modus-themes-list-colors-current'.")
"Alias for `modus-themes-list-colors-current'.")
(define-derived-mode modus-themes-preview-mode tabulated-list-mode "Modus palette"
"Major mode to display a Modus themes palette."
:interactive nil
(setq-local tabulated-list-format
[("Mapping?" 10 t)
("Symbol name" 30 t)
("As foreground" 30 t)
("As background" 0 t)])
(modus-themes--set-tabulated-entries)
(tabulated-list-init-header)
(tabulated-list-print))
@ -1449,7 +1452,7 @@ color that is combined with FG-FOR-BG."
:foreground fg
:weight
;; If we have `bold' specifically, we inherit the face of
;; the same name. This allows the user to customize that
;; the same name. This allows the user to customise that
;; face, such as to change its font family.
(if (and weight (not (eq weight 'bold)))
weight
@ -1670,6 +1673,7 @@ FG and BG are the main colors."
`(tool-bar ((,c :background ,bg-dim :foreground ,fg-main)))
`(vertical-border ((,c :foreground ,border)))
;;;;; basic and/or ungrouped styles
`(abbrev-table-name ((,c :inherit bold)))
`(appt-notification ((,c :inherit bold :foreground ,modeline-err)))
`(blink-matching-paren-offscreen ((,c :background ,bg-paren-match)))
`(bold ((,c :weight bold)))
@ -1720,6 +1724,25 @@ FG and BG are the main colors."
`(link ((,c :inherit button)))
`(link-visited ((,c :background ,bg-link-visited :foreground ,fg-link-visited :underline ,underline-link-visited)))
`(tooltip ((,c :background ,bg-active :foreground ,fg-main)))
;;;;; adoc-mode
`(adoc-code-face ((,c :inherit font-lock-constant-face)))
`(adoc-command-face ((,c :inherit modus-themes-prose-macro)))
`(adoc-complex-replacement-face ((,c :background ,bg-magenta-subtle :foreground ,magenta)))
`(adoc-emphasis-face ((t (:inherit bold))))
`(adoc-gen-face ((,c :foreground ,blue)))
`(adoc-meta-face ((,c :inherit modus-themes-fixed-pitch :foreground ,prose-metadata)))
`(adoc-meta-hide-face ((,c :inherit modus-themes-fixed-pitch :foreground ,prose-metadata)))
`(adoc-replacement-face ((,c :inherit font-lock-escape-face)))
`(adoc-secondary-text-face ((,c :inherit modus-themes-fixed-pitch :foreground ,prose-metadata-value)))
`(adoc-table-face ((,c :inherit modus-themes-fixed-pitch :foreground ,prose-table)))
`(adoc-title-0-face ((,c :inherit modus-themes-heading-0)))
`(adoc-title-1-face ((,c :inherit modus-themes-heading-1)))
`(adoc-title-2-face ((,c :inherit modus-themes-heading-2)))
`(adoc-title-3-face ((,c :inherit modus-themes-heading-3)))
`(adoc-title-4-face ((,c :inherit modus-themes-heading-4)))
`(adoc-title-5-face ((,c :inherit modus-themes-heading-5)))
`(adoc-typewriter-face ((,c :inherit modus-themes-prose-verbatim)))
`(adoc-verbatim-face ((,c :inherit modus-themes-prose-verbatim)))
;;;;; agda2-mode
`(agda2-highlight-bound-variable-face ((,c :inherit font-lock-variable-name-face)))
`(agda2-highlight-catchall-clause-face ((,c :background ,bg-inactive)))
@ -1849,13 +1872,14 @@ FG and BG are the main colors."
`(TeX-error-description-warning ((,c :inherit warning)))
;;;;; auto-dim-other-buffers
`(auto-dim-other-buffers-face ((,c :background ,bg-inactive)))
`(auto-dim-other-buffers-hide-face ((,c :foreground ,bg-inactive :background ,bg-inactive)))
;;;;; avy
`(avy-background-face ((,c :background ,bg-dim :foreground ,fg-dim :extend t)))
`(avy-goto-char-timer-face ((,c :inherit bold :background ,bg-active)))
`(avy-lead-face ((,c :inherit (bold modus-themes-reset-soft) :background ,bg-char-0)))
`(avy-lead-face-0 ((,c :inherit (bold modus-themes-reset-soft) :background ,bg-char-1)))
`(avy-lead-face-1 ((,c :inherit modus-themes-reset-soft :background ,bg-inactive)))
`(avy-lead-face-2 ((,c :inherit (bold modus-themes-reset-soft) :background ,bg-char-2)))
`(avy-goto-char-timer-face ((,c :inherit (bold modus-themes-search-lazy modus-themes-reset-soft))))
`(avy-lead-face ((,c :inherit (bold modus-themes-search-current modus-themes-reset-soft))))
`(avy-lead-face-0 ((,c :inherit (bold modus-themes-search-current modus-themes-reset-soft))))
`(avy-lead-face-1 ((,c :inherit (bold modus-themes-search-current modus-themes-reset-soft))))
`(avy-lead-face-2 ((,c :inherit (bold modus-themes-search-current modus-themes-reset-soft))))
;;;;; aw (ace-window)
`(aw-background-face ((,c :foreground "gray50")))
`(aw-key-face ((,c :inherit modus-themes-key-binding)))
@ -2028,8 +2052,8 @@ FG and BG are the main colors."
;;;;; corfu-candidate-overlay
`(corfu-candidate-overlay-face ((t :inherit shadow)))
;;;;; corfu-quick
`(corfu-quick1 ((,c :inherit bold :background ,bg-char-0)))
`(corfu-quick2 ((,c :inherit bold :background ,bg-char-1)))
`(corfu-quick1 ((,c :inherit (bold modus-themes-search-current))))
`(corfu-quick2 ((,c :inherit (bold modus-themes-search-current))))
;;;;; counsel
`(counsel-active-mode ((,c :foreground ,keyword)))
`(counsel-application-name ((,c :foreground ,name)))
@ -2518,10 +2542,10 @@ FG and BG are the main colors."
`(geiser-font-lock-xref-link ((,c :inherit button)))
;;;;; git-commit
`(git-commit-comment-action ((,c :inherit font-lock-comment-face)))
`(git-commit-comment-branch-local ((,c :inherit font-lock-comment-face :foreground ,accent-0)))
`(git-commit-comment-branch-remote ((,c :inherit font-lock-comment-face :foreground ,accent-1)))
`(git-commit-comment-branch-local ((,c :inherit (bold font-lock-comment-face) :foreground ,accent-0)))
`(git-commit-comment-branch-remote ((,c :inherit (bold font-lock-comment-face) :foreground ,accent-1)))
`(git-commit-comment-heading ((,c :inherit (bold font-lock-comment-face))))
`(git-commit-comment-file ((,c :inherit font-lock-comment-face :foreground ,name)))
`(git-commit-comment-file ((,c :inherit font-lock-comment-face :foreground ,accent-2))) ; like `magit-filename'
`(git-commit-keyword ((,c :foreground ,keyword)))
`(git-commit-nonempty-second-line ((,c :inherit error)))
`(git-commit-overlong-summary ((,c :inherit warning)))
@ -2682,6 +2706,30 @@ FG and BG are the main colors."
`(hl-fill-column-face ((,c :background ,bg-active)))
;;;;; hl-todo
`(hl-todo ((,c :inherit (bold font-lock-comment-face) :foreground ,err)))
;;;;; howm
`(action-lock-face ((,c :inherit button)))
`(howm-mode-keyword-face (( )))
`(howm-mode-ref-face ((,c :inherit link)))
`(howm-mode-title-face ((,c :inherit modus-themes-heading-0)))
`(howm-mode-wiki-face ((,c :inherit link)))
`(howm-reminder-deadline-face ((,c :foreground ,date-deadline)))
`(howm-reminder-late-deadline-face ((,c :inherit bold :foreground ,date-deadline)))
`(howm-reminder-defer-face ((,c :foreground ,date-scheduled)))
`(howm-reminder-scheduled-face ((,c :foreground ,date-scheduled)))
`(howm-reminder-done-face ((,c :foreground ,prose-done)))
`(howm-reminder-todo-face ((,c :foreground ,prose-todo)))
`(howm-reminder-normal-face ((,c :foreground ,date-common)))
`(howm-reminder-today-face ((,c :inherit bold :foreground ,date-common)))
`(howm-reminder-tomorrow-face ((,c :inherit bold :foreground ,date-scheduled)))
`(howm-simulate-todo-mode-line-face ((,c :inherit bold)))
`(howm-view-empty-face (( )))
`(howm-view-hilit-face ((,c :inherit match)))
`(howm-view-name-face ((,c :inherit bold)))
`(iigrep-counts-face1 ((,c :foreground ,rainbow-1)))
`(iigrep-counts-face2 ((,c :foreground ,rainbow-2)))
`(iigrep-counts-face3 ((,c :foreground ,rainbow-3)))
`(iigrep-counts-face4 ((,c :foreground ,rainbow-4)))
`(iigrep-counts-face5 ((,c :foreground ,rainbow-5)))
;;;;; hydra
`(hydra-face-amaranth ((,c :inherit bold :foreground ,yellow-warmer)))
`(hydra-face-blue ((,c :inherit bold :foreground ,blue)))
@ -2695,14 +2743,16 @@ FG and BG are the main colors."
`(ibut-face ((,c :inherit button :background ,bg-link-symbolic :foreground ,fg-link-symbolic :underline ,underline-link-symbolic)))
;;;;; icomplete
`(icomplete-first-match ((,c :inherit modus-themes-completion-match-0)))
`(icomplete-vertical-selected-prefix-indicator-face ((,c :inherit bold :foreground ,keybind)))
`(icomplete-vertical-unselected-prefix-indicator-face ((,c :inherit shadow)))
`(icomplete-selected-match ((,c :inherit modus-themes-completion-selected)))
;;;;; ido-mode
`(ido-first-match ((,c :inherit modus-themes-completion-match-0)))
`(ido-incomplete-regexp ((,c :inherit error)))
`(ido-indicator ((,c :inherit bold)))
`(ido-only-match ((,c :inherit ido-first-match)))
`(ido-subdir ((,c :foreground ,accent-0)))
`(ido-virtual ((,c :foreground ,accent-1)))
`(ido-subdir ((,c :foreground ,keyword)))
`(ido-virtual ((,c :foreground ,warning)))
;;;;; iedit
`(iedit-occurrence ((,c :inherit modus-themes-search-lazy)))
`(iedit-read-only-occurrence ((,c :inherit modus-themes-search-current)))
@ -2803,19 +2853,19 @@ FG and BG are the main colors."
`(ivy-minibuffer-match-face-4 ((,c :inherit modus-themes-completion-match-2)))
`(ivy-remote ((,c :inherit italic)))
`(ivy-separator ((,c :inherit shadow)))
`(ivy-subdir ((,c :foreground ,accent-0)))
`(ivy-virtual ((,c :foreground ,accent-1)))
`(ivy-subdir ((,c :foreground ,keyword)))
`(ivy-virtual ((,c :foreground ,warning)))
;;;;; ivy-posframe
`(ivy-posframe-border ((,c :background ,border)))
`(ivy-posframe-cursor ((,c :background ,fg-main :foreground ,bg-main)))
;;;;; jabber
`(jabber-activity-face ((,c :foreground ,modeline-info)))
`(jabber-roster-user-away ((,c :foreground ,red-faint)))
`(jabber-roster-user-xa ((,c :foreground ,magenta :slant italic)))
`(jabber-roster-user-dnd ((,c :foreground ,red :weight bold)))
`(jabber-roster-user-xa ((,c :foreground ,magenta :italic t)))
`(jabber-roster-user-dnd ((,c :foreground ,red :bold t)))
`(jabber-roster-user-chatty ((,c :foreground ,cyan-intense)))
`(jabber-roster-user-error ((,c :inherit error)))
`(jabber-roster-user-offline ((,c :foreground ,fg-dim :slant italic)))
`(jabber-roster-user-offline ((,c :foreground ,fg-dim :italic t)))
`(jabber-roster-user-online ((,c :foreground ,cyan :weight bold)))
`(jabber-chat-prompt-foreign ((,c :foreground ,red :weight bold)))
`(jabber-chat-prompt-system ((,c :foreground ,green)))
@ -3326,7 +3376,7 @@ FG and BG are the main colors."
`(org-clock-overlay ((,c :inherit secondary-selection)))
`(org-code ((,c :inherit modus-themes-prose-code)))
`(org-column ((,c :inherit default :background ,bg-dim)))
`(org-column-title ((,c :inherit (bold default) :underline t :background ,bg-dim)))
`(org-column-title ((,c :inherit (modus-themes-fixed-pitch bold default) :underline t :background ,bg-dim)))
`(org-date ((,c :inherit modus-themes-fixed-pitch :foreground ,date-common)))
`(org-date-selected ((,c :foreground ,date-common :inverse-video t)))
;; NOTE 2024-03-17: Normally we do not want to add this padding
@ -3706,6 +3756,9 @@ FG and BG are the main colors."
`(smerge-refined-changed (()))
`(smerge-refined-removed ((,c :inherit diff-refine-removed)))
`(smerge-upper ((,c :inherit diff-removed)))
;;;;; spacious-padding
`(spacious-padding-subtle-mode-line-active ((,c :foreground ,accent-0)))
`(spacious-padding-subtle-mode-line-inactive ((,c :foreground ,border)))
;;;;; speedbar
`(speedbar-button-face ((,c :inherit button)))
`(speedbar-directory-face ((,c :inherit bold :foreground ,accent-0)))
@ -3812,6 +3865,13 @@ FG and BG are the main colors."
`(term-underline ((,c :underline t)))
;;;;; textsec
`(textsec-suspicious (( )))
;;;;; tldr
`(tldr-code-block (( )))
`(tldr-command-argument ((,c :inherit font-lock-string-face)))
`(tldr-command-itself ((,c :inherit font-lock-builtin-face)))
`(tldr-description ((,c :inherit font-lock-doc-face)))
`(tldr-introduction ((,c :inherit font-lock-comment-face)))
`(tldr-title ((,c :inherit bold)))
;;;;; transient
`(transient-active-infix ((,c :inherit highlight)))
`(transient-amaranth ((,c :inherit bold :foreground ,yellow-warmer)))
@ -3834,7 +3894,9 @@ FG and BG are the main colors."
`(transient-key ((,c :inherit modus-themes-key-binding)))
`(transient-key-exit ((,c :inherit modus-themes-key-binding)))
`(transient-key-noop ((,c :inherit (shadow modus-themes-key-binding))))
`(transient-key-recurse ((,c :inherit modus-themes-key-binding)))
`(transient-key-return ((,c :inherit modus-themes-key-binding)))
`(transient-key-stack ((,c :inherit modus-themes-key-binding)))
`(transient-key-stay ((,c :inherit modus-themes-key-binding)))
`(transient-mismatched-key ((,c :underline t)))
`(transient-nonstandard-key ((,c :underline t)))
@ -3851,6 +3913,39 @@ FG and BG are the main colors."
`(trashed-mark ((,c :inherit bold)))
`(trashed-marked ((,c :inherit modus-themes-mark-alt)))
`(trashed-restored ((,c :inherit modus-themes-mark-sel)))
;;;;; treemacs
`(treemacs-async-loading-face ((,c :foreground ,fg-main)))
`(treemacs-directory-face ((,c :foreground ,accent-0)))
`(treemacs-directory-collapsed-face ((,c :foreground ,accent-0)))
`(treemacs-file-face ((,c :foreground ,fg-main)))
`(treemacs-fringe-indicator-face ((,c :foreground ,fg-main)))
`(treemacs-git-added-face ((,c :inherit success)))
`(treemacs-git-commit-diff-face ((,c :foreground ,err)))
`(treemacs-git-conflict-face ((,c :inherit error)))
`(treemacs-git-ignored-face ((,c :inherit shadow)))
`(treemacs-git-modified-face ((,c :inherit warning)))
`(treemacs-git-renamed-face ((,c :inherit italic)))
`(treemacs-git-unmodified-face ((,c :foreground ,fg-main)))
`(treemacs-git-untracked-face ((,c :inherit success)))
`(treemacs-header-button-face ((,c :foreground ,fg-main)))
`(treemacs-help-column-face ((,c :inherit modus-themes-bold :foreground ,keyword)))
`(treemacs-help-title-face ((,c :foreground ,fg-main)))
`(treemacs-hl-line-face ((,c :background ,bg-hl-line :extend t)))
`(treemacs-marked-file-face ((,c :inherit modus-themes-mark-alt)))
`(treemacs-nerd-icons-face ((,c :foreground ,accent-0)))
`(treemacs-on-failure-pulse-face ((,c :foreground ,fg-main)))
`(treemacs-on-success-pulse-face ((,c :foreground ,fg-main)))
`(treemacs-peek-mode-indicator-face ((,c :foreground ,fg-main)))
`(treemacs-remote-face ((,c :foreground ,fg-main)))
`(treemacs-root-face ((,c :foreground ,accent-0)))
`(treemacs-root-remote-disconnected-face ((,c :inherit warning)))
`(treemacs-root-remote-unreadable-face ((,c :inherit warning)))
`(treemacs-root-unreadable-face ((,c :inherit error)))
`(treemacs-tags-face ((,c :foreground ,fg-main)))
`(treemacs-term-node-face ((,c :inherit modus-themes-bold :foreground ,keyword)))
`(treemacs-window-background-face ((,c :background ,bg-main)))
`(treemacs-nerd-icons-root-face ((,c :foreground ,accent-0)))
`(treemacs-nerd-icons-file-face ((,c :foreground ,accent-0)))
;;;;; tree-sitter
`(tree-sitter-hl-face:attribute ((,c :inherit font-lock-variable-name-face)))
`(tree-sitter-hl-face:constant.builtin ((,c :inherit tree-sitter-hl-face:constant)))
@ -3930,8 +4025,8 @@ FG and BG are the main colors."
;;;;; vertico
`(vertico-current ((,c :inherit modus-themes-completion-selected)))
;;;;; vertico-quick
`(vertico-quick1 ((,c :inherit bold :background ,bg-char-0)))
`(vertico-quick2 ((,c :inherit bold :background ,bg-char-1)))
`(vertico-quick1 ((,c :inherit (bold modus-themes-search-current))))
`(vertico-quick2 ((,c :inherit (bold modus-themes-search-current))))
;;;;; vimish-fold
`(vimish-fold-fringe ((,c :foreground ,cyan)))
`(vimish-fold-mouse-face ((,c :inherit modus-themes-intense-blue)))
@ -3956,20 +4051,24 @@ FG and BG are the main colors."
`(vr/match-1 ((,c :inherit modus-themes-search-lazy)))
`(vr/match-separator-face ((,c :inherit bold :background ,bg-active)))
;;;;; vterm
;; NOTE 2023-08-10: `vterm-color-black' and `vterm-color-white'
;; use the "bright" semantic color mappings to make sure they are
;; distinct from `vterm-color-default'.
`(vterm-color-black ((,c :background ,bg-term-black :foreground ,fg-term-black)))
`(vterm-color-blue ((,c :background ,bg-term-blue :foreground ,fg-term-blue)))
`(vterm-color-cyan ((,c :background ,bg-term-cyan :foreground ,fg-term-cyan)))
`(vterm-color-default ((,c :background ,bg-main :foreground ,fg-main)))
`(vterm-color-green ((,c :background ,bg-term-green :foreground ,fg-term-green)))
`(vterm-color-inverse-video ((,c :background ,bg-main :inverse-video t)))
`(vterm-color-magenta ((,c :background ,bg-term-magenta :foreground ,fg-term-magenta)))
`(vterm-color-bright-black ((,c :background ,bg-term-black-bright :foreground ,fg-term-black-bright)))
`(vterm-color-red ((,c :background ,bg-term-red :foreground ,fg-term-red)))
`(vterm-color-underline ((,c :underline t)))
`(vterm-color-white ((,c :background ,bg-term-white :foreground ,fg-term-white)))
`(vterm-color-bright-red ((,c :background ,bg-term-red-bright :foreground ,fg-term-red-bright)))
`(vterm-color-green ((,c :background ,bg-term-green :foreground ,fg-term-green)))
`(vterm-color-bright-green ((,c :background ,bg-term-green-bright :foreground ,fg-term-green-bright)))
`(vterm-color-yellow ((,c :background ,bg-term-yellow :foreground ,fg-term-yellow)))
`(vterm-color-bright-yellow ((,c :background ,bg-term-yellow-bright :foreground ,fg-term-yellow-bright)))
`(vterm-color-blue ((,c :background ,bg-term-blue :foreground ,fg-term-blue)))
`(vterm-color-bright-blue ((,c :background ,bg-term-blue-bright :foreground ,fg-term-blue-bright)))
`(vterm-color-magenta ((,c :background ,bg-term-magenta :foreground ,fg-term-magenta)))
`(vterm-color-bright-magenta ((,c :background ,bg-term-magenta-bright :foreground ,fg-term-magenta-bright)))
`(vterm-color-cyan ((,c :background ,bg-term-cyan :foreground ,fg-term-cyan)))
`(vterm-color-bright-cyan ((,c :background ,bg-term-cyan-bright :foreground ,fg-term-cyan-bright)))
`(vterm-color-white ((,c :background ,bg-term-white :foreground ,fg-term-white)))
`(vterm-color-bright-white ((,c :background ,bg-term-white-bright :foreground ,fg-term-white-bright)))
`(vterm-color-inverse-video ((,c :background ,bg-main :inverse-video t)))
`(vterm-color-underline ((,c :underline t)))
;;;;; vundo
`(vundo-default ((,c :inherit shadow)))
`(vundo-highlight ((,c :inherit (bold vundo-node) :foreground ,red)))

View file

@ -1,6 +1,6 @@
;;; modus-vivendi-deuteranopia-theme.el --- Deuteranopia-optimized theme with a black background -*- lexical-binding:t -*-
;; Copyright (C) 2019-2025 Free Software Foundation, Inc.
;; Copyright (C) 2019-2025 Free Software Foundation, Inc.
;; Author: Protesilaos Stavrou <info@protesilaos.com>
;; Maintainer: Protesilaos Stavrou <info@protesilaos.com>
@ -167,15 +167,11 @@ standard)."
(bg-completion "#2f447f")
(bg-hover "#45605e")
(bg-hover-secondary "#654a39")
(bg-hover-secondary "#604c30")
(bg-hl-line "#2f3849")
(bg-region "#5a5a5a")
(fg-region "#ffffff")
(bg-char-0 "#0050af")
(bg-char-1 "#7f1f7f")
(bg-char-2 "#625a00")
(bg-mode-line-active "#2a2a6a")
(fg-mode-line-active "#f0f0f0")
(border-mode-line-active "#8080a7")
@ -216,13 +212,6 @@ standard)."
(bg-diff-context "#1a1a1a")
;;; Paren match
(bg-paren-match "#2f7f9f")
(fg-paren-match fg-main)
(bg-paren-expression "#453040")
(underline-paren-match unspecified)
;;; Mappings
;;;; General mappings
@ -257,17 +246,17 @@ standard)."
;;;; Code mappings
(bracket fg-main)
(builtin magenta-warmer)
(builtin yellow)
(comment yellow-cooler)
(constant blue-cooler)
(constant blue-faint)
(delimiter fg-main)
(docmarkup magenta-faint)
(docstring cyan-faint)
(fnname magenta)
(keyword magenta-cooler)
(fnname yellow-warmer)
(keyword blue-cooler)
(number fg-main)
(operator fg-main)
(preprocessor red-cooler)
(preprocessor magenta-cooler)
(punctuation fg-main)
(rx-backslash blue-cooler)
(rx-construct yellow-cooler)
@ -275,12 +264,19 @@ standard)."
(type cyan-cooler)
(variable cyan)
;;;; Paren match
(bg-paren-match bg-cyan-subtle)
(fg-paren-match fg-main)
(underline-paren-match unspecified)
(bg-paren-expression bg-yellow-nuanced)
;;;; Accent mappings
(accent-0 blue-cooler)
(accent-0 blue-warmer)
(accent-1 yellow)
(accent-2 cyan-cooler)
(accent-3 magenta-warmer)
(accent-3 yellow-cooler)
;;;; Button mappings
@ -294,7 +290,7 @@ standard)."
(fg-completion-match-0 blue-cooler)
(fg-completion-match-1 yellow)
(fg-completion-match-2 cyan-cooler)
(fg-completion-match-3 magenta-warmer)
(fg-completion-match-3 yellow-cooler)
(bg-completion-match-0 unspecified)
(bg-completion-match-1 unspecified)
(bg-completion-match-2 unspecified)
@ -313,7 +309,7 @@ standard)."
(date-scheduled yellow-cooler)
(date-scheduled-subtle yellow-faint)
(date-weekday cyan)
(date-weekend magenta)
(date-weekend magenta-cooler)
;;;; Line number mappings
@ -374,7 +370,7 @@ standard)."
(fg-prose-macro magenta-cooler)
(bg-prose-verbatim unspecified)
(fg-prose-verbatim magenta-warmer)
(fg-prose-verbatim yellow)
(prose-done blue)
(prose-todo yellow-warmer)
@ -385,7 +381,7 @@ standard)."
(prose-table fg-alt)
(prose-table-formula yellow-warmer)
(prose-tag magenta-faint)
(prose-tag fg-alt)
;;;; Rainbow mappings
@ -403,7 +399,7 @@ standard)."
(bg-search-current bg-yellow-intense)
(bg-search-lazy bg-blue-intense)
(bg-search-replace bg-magenta-intense)
(bg-search-replace bg-yellow-intense)
(bg-search-rx-group-0 bg-cyan-intense)
(bg-search-rx-group-1 bg-magenta-intense)
@ -464,10 +460,10 @@ standard)."
(fg-heading-1 fg-main)
(fg-heading-2 yellow-faint)
(fg-heading-3 blue-faint)
(fg-heading-4 magenta)
(fg-heading-5 green-faint)
(fg-heading-6 red-faint)
(fg-heading-7 cyan-faint)
(fg-heading-4 green-faint)
(fg-heading-5 magenta-cooler)
(fg-heading-6 yellow-cooler)
(fg-heading-7 cyan)
(fg-heading-8 fg-dim)
(bg-heading-0 unspecified)

View file

@ -1,6 +1,6 @@
;;; modus-vivendi-theme.el --- Elegant, highly legible theme with a black background -*- lexical-binding:t -*-
;; Copyright (C) 2019-2025 Free Software Foundation, Inc.
;; Copyright (C) 2019-2025 Free Software Foundation, Inc.
;; Author: Protesilaos Stavrou <info@protesilaos.com>
;; Maintainer: Protesilaos Stavrou <info@protesilaos.com>
@ -170,10 +170,6 @@ which corresponds to a minimum contrast in relative luminance of
(bg-region "#5a5a5a")
(fg-region "#ffffff")
(bg-char-0 "#0050af")
(bg-char-1 "#7f1f7f")
(bg-char-2 "#625a00")
(bg-mode-line-active "#505050")
(fg-mode-line-active "#ffffff")
(border-mode-line-active "#959595")
@ -214,13 +210,6 @@ which corresponds to a minimum contrast in relative luminance of
(bg-diff-context "#1a1a1a")
;;; Paren match
(bg-paren-match "#2f7f9f")
(fg-paren-match fg-main)
(bg-paren-expression "#453040")
(underline-paren-match unspecified)
;;; Mappings
;;;; General mappings
@ -273,6 +262,13 @@ which corresponds to a minimum contrast in relative luminance of
(type cyan-cooler)
(variable cyan)
;;;; Paren match
(bg-paren-match bg-cyan-subtle)
(fg-paren-match fg-main)
(underline-paren-match unspecified)
(bg-paren-expression bg-yellow-nuanced)
;;;; Accent mappings
(accent-0 blue-cooler)

View file

@ -1,6 +1,6 @@
;;; modus-vivendi-tinted-theme.el --- Elegant, highly legible theme with a night sky background -*- lexical-binding:t -*-
;; Copyright (C) 2019-2025 Free Software Foundation, Inc.
;; Copyright (C) 2019-2025 Free Software Foundation, Inc.
;; Author: Protesilaos Stavrou <info@protesilaos.com>
;; Maintainer: Protesilaos Stavrou <info@protesilaos.com>
@ -71,11 +71,11 @@ which corresponds to a minimum contrast in relative luminance of
(red "#ff5f59")
(red-warmer "#ff6b55")
(red-cooler "#ff7f86")
(red-faint "#ff9f80")
(red-faint "#ef8386")
(red-intense "#ff5f5f")
(green "#44bc44")
(green-warmer "#70b900")
(green-cooler "#00c06f")
(green-warmer "#75c13e")
(green-cooler "#11c777")
(green-faint "#88ca9f")
(green-intense "#44df44")
(yellow "#d0bc00")
@ -165,15 +165,11 @@ which corresponds to a minimum contrast in relative luminance of
(bg-completion "#483d8a")
(bg-hover "#45605e")
(bg-hover-secondary "#654a39")
(bg-hover-secondary "#64404f")
(bg-hl-line "#303a6f")
(bg-region "#555a66")
(fg-region "#ffffff")
(bg-char-0 "#0050af")
(bg-char-1 "#7f1f7f")
(bg-char-2 "#625a00")
(bg-mode-line-active "#484d67")
(fg-mode-line-active "#ffffff")
(border-mode-line-active "#979797")
@ -214,13 +210,6 @@ which corresponds to a minimum contrast in relative luminance of
(bg-diff-context "#1a1f30")
;;; Paren match
(bg-paren-match "#5f789f")
(fg-paren-match fg-main)
(bg-paren-expression "#453040")
(underline-paren-match unspecified)
;;; Mappings
;;;; General mappings
@ -233,8 +222,8 @@ which corresponds to a minimum contrast in relative luminance of
(identifier yellow-faint)
(err red)
(warning yellow-warmer)
(info cyan-cooler)
(warning yellow)
(info green-cooler)
(underline-err red-intense)
(underline-warning yellow)
@ -255,30 +244,37 @@ which corresponds to a minimum contrast in relative luminance of
;;;; Code mappings
(bracket fg-main)
(builtin magenta-warmer)
(builtin magenta)
(comment red-faint)
(constant blue-cooler)
(constant magenta-cooler)
(delimiter fg-main)
(docmarkup magenta-faint)
(docstring cyan-faint)
(fnname magenta)
(keyword magenta-cooler)
(fnname magenta-warmer)
(keyword blue-warmer)
(number fg-main)
(operator fg-main)
(preprocessor red-cooler)
(punctuation fg-main)
(rx-backslash magenta)
(rx-construct green-cooler)
(string blue-warmer)
(type cyan-cooler)
(variable cyan)
(rx-backslash magenta-warmer)
(rx-construct magenta-cooler)
(string blue)
(type green-cooler)
(variable cyan-warmer)
;;;; Paren match
(bg-paren-match bg-cyan-subtle)
(fg-paren-match fg-main)
(underline-paren-match unspecified)
(bg-paren-expression bg-yellow-nuanced)
;;;; Accent mappings
(accent-0 blue-cooler)
(accent-1 magenta-warmer)
(accent-2 cyan-cooler)
(accent-3 yellow)
(accent-0 magenta-cooler)
(accent-1 cyan)
(accent-2 magenta-warmer)
(accent-3 yellow-warmer)
;;;; Button mappings
@ -336,14 +332,14 @@ which corresponds to a minimum contrast in relative luminance of
;;;; Mail mappings
(mail-cite-0 blue-warmer)
(mail-cite-0 blue)
(mail-cite-1 yellow-cooler)
(mail-cite-2 cyan-cooler)
(mail-cite-3 red-cooler)
(mail-part blue)
(mail-recipient magenta-cooler)
(mail-part magenta-cooler)
(mail-recipient blue-warmer)
(mail-subject magenta-warmer)
(mail-other magenta-faint)
(mail-other magenta)
;;;; Mark mappings
@ -356,7 +352,7 @@ which corresponds to a minimum contrast in relative luminance of
;;;; Prompt mappings
(fg-prompt cyan-cooler)
(fg-prompt cyan-warmer)
(bg-prompt unspecified)
;;;; Prose mappings

View file

@ -1,6 +1,6 @@
;;; modus-vivendi-tritanopia-theme.el --- Tritanopia-optimized theme with a black background -*- lexical-binding:t -*-
;; Copyright (C) 2019-2025 Free Software Foundation, Inc.
;; Copyright (C) 2019-2025 Free Software Foundation, Inc.
;; Author: Protesilaos Stavrou <info@protesilaos.com>
;; Maintainer: Protesilaos Stavrou <info@protesilaos.com>
@ -63,7 +63,7 @@ standard)."
(bg-dim "#1e1e1e")
(fg-main "#ffffff")
(fg-dim "#989898")
(fg-alt "#c6daff")
(fg-alt "#a0d7f2")
(bg-active "#535353")
(bg-inactive "#303030")
(border "#646464")
@ -167,15 +167,11 @@ standard)."
(bg-completion "#004253")
(bg-hover "#8e3e3b")
(bg-hover-secondary "#00405f")
(bg-hover-secondary "#204853")
(bg-hl-line "#2f3849")
(bg-region "#5a5a5a")
(fg-region "#ffffff")
(bg-char-0 "#922a00")
(bg-char-1 "#00709f")
(bg-char-2 "#5f3faf")
(bg-mode-line-active "#003c52")
(fg-mode-line-active "#f0f0f0")
(border-mode-line-active "#5f8fb4")
@ -216,13 +212,6 @@ standard)."
(bg-diff-context "#1a1a1a")
;;; Paren match
(bg-paren-match "#2f7f9f")
(fg-paren-match fg-main)
(bg-paren-expression "#453040")
(underline-paren-match unspecified)
;;; Mappings
;;;; General mappings
@ -275,6 +264,13 @@ standard)."
(type blue-warmer)
(variable cyan-cooler)
;;;; Paren match
(bg-paren-match bg-cyan-subtle)
(fg-paren-match fg-main)
(underline-paren-match unspecified)
(bg-paren-expression bg-red-nuanced)
;;;; Accent mappings
(accent-0 cyan)
@ -385,7 +381,7 @@ standard)."
(prose-table fg-alt)
(prose-table-formula red-cooler)
(prose-tag magenta-faint)
(prose-tag fg-alt)
;;;; Rainbow mappings