Update to modus-themes version 4.5.0

* doc/misc/modus-themes.org (COPYING): Update the version headers.
(Option to extend the palette): Document new user options.
(Full support for packages or face groups): Document more
packages that are explicitly supported by the themes.
(Acknowledgements): Update the list of people who have
contributed to the project in one way or another.

* etc/themes/modus-operandi-deuteranopia-theme.el:
* etc/themes/modus-operandi-deuteranopia-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: Update the
  palette of each theme and include the new user option to extend
  its palette.

* etc/themes/modus-themes.el: Cover more faces and include user
  option for common extension to all theme palettes.

Detailed release notes:
<https://protesilaos.com/codelog/2024-08-21-modus-themes-4-5-0/>.
This commit is contained in:
Protesilaos Stavrou 2024-08-21 11:07:47 +03:00
parent 53ea5f1df4
commit 3efb89ddb9
No known key found for this signature in database
GPG key ID: 99BD6459CD5CA3EA
10 changed files with 523 additions and 160 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.4.0
#+macro: release-date 2024-03-17
#+macro: development-version 4.5.0-dev
#+macro: stable-version 4.5.0
#+macro: release-date 2024-08-21
#+macro: development-version 4.6.0-dev
#+macro: file @@texinfo:@file{@@$1@@texinfo:}@@
#+macro: space @@texinfo:@: @@
#+macro: kbd @@texinfo:@kbd{@@$1@@texinfo:}@@
@ -50,7 +50,7 @@ Current development target is {{{development-version}}}.
:custom_id: h:b14c3fcb-13dd-4144-9d92-2c58b3ed16d3
:end:
Copyright (C) 2020-2024 Free Software Foundation, Inc.
Copyright (C) 2020-2023 Free Software Foundation, Inc.
#+begin_quote
Permission is granted to copy, distribute and/or modify this document
@ -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
@ -144,7 +144,7 @@ and covers everything that goes into every tagged release of the themes.
:end:
The Modus themes are distributed with Emacs starting with version 28.1.
On older versions of Emacs, they can be installed using Emacs's package
On older versions of Emacs, they can be installed using Emacs' package
manager or manually from their code repository. There also exist
packages for distributions of GNU/Linux.
@ -486,7 +486,7 @@ The reason we recommend ~load-theme~ instead of the other option of
~enable-theme~ is that the former does a kind of "reset" on the face
specs. It quite literally loads (or reloads) the theme. Whereas the
~enable-theme~ function simply puts an already loaded theme to the top
of the list of enabled items, reusing whatever state was last loaded.
of the list of enabled items, re-using whatever state was last loaded.
As such, ~load-theme~ reads all customizations that may happen during
any given Emacs session: even after the initial setup of a theme.
@ -1190,6 +1190,92 @@ Named colors can be previewed, such as with the command
For a video tutorial that users of all skill levels can approach,
watch: https://protesilaos.com/codelog/2022-12-17-modus-themes-v4-demo/.
** Option to extend the palette
:PROPERTIES:
:ALT_TITLE: Palette extension
:DESCRIPTION: Define new colors and use them like the original ones
:CUSTOM_ID: h:287fb971-a866-4d88-9993-56e902dd63c4
:END:
It is possible to extend the palette of each theme. For example, the
user may define their own =cherry= color with a value of =#a0134f= and
then apply it as an override ([[#h:34c7a691-19bb-4037-8d2f-67a07edab150][Option for palette overrides]]). Those
colors may also be used in custom code that leverages either the
~modus-themes-with-colors~ macro or the function
~modus-themes-get-color-value~.
The palette extension can be done in the form of a common set of
definitions that are shared among the themes or on a per-theme basis.
#+vindex: modus-themes-common-palette-user
The common values are stored in the user option ~modus-themes-common-palette-user~.
As for per-theme variables, we have the following user options:
#+vindex: modus-operandi-palette-user
- ~modus-operandi-palette-user~
#+vindex: modus-operandi-tinted-palette-user
- ~modus-operandi-tinted-palette-user~
#+vindex: modus-operandi-deuteranopia-palette-user
- ~modus-operandi-deuteranopia-palette-user~
#+vindex: modus-operandi-tritanopia-palette-user
- ~modus-operandi-tritanopia-palette-user~
#+vindex: modus-vivendi-palette-user
- ~modus-vivendi-palette-user~
#+vindex: modus-vivendi-tinted-palette-user
- ~modus-vivendi-tinted-palette-user~
#+vindex: modus-vivendi-deuteranopia-palette-user
- ~modus-vivendi-deuteranopia-palette-user~
#+vindex: modus-vivendi-tritanopia-palette-user
- ~modus-vivendi-tritanopia-palette-user~
Examples demonstrating how to use the aforementioned:
#+begin_src emacs-lisp
;;; Common customizations
;; Define two new colors in the common "user" palette of all the Modus themes.
(setq modus-themes-common-palette-user
'((cherry "#a0134f")
(plum "#6f459a")))
;; Use them in the overrides.
(setq modus-themes-common-palette-overrides
'((cursor cherry)
(string plum)))
;;; Per-theme customizations
;; Define two new colors in the "user" palette of `modus-operandi'.
;; Other themes will not use these.
(setq modus-operandi-palette-user
'((cherry "#a0134f")
(plum "#6f459a")))
;; Use them in the overrides.
(setq modus-operandi-palette-overrides
'((cursor cherry)
(string plum)))
;; Tweaks on a per-theme basis give the user maximum flexibility. For
;; example, they can have the above for `modus-operandi' while they use
;; these for `modus-vivendi':
(setq modus-vivendi-palette-user
'((apricot "#dfb350")
(kiwi "#80d458")))
(setq modus-vivendi-palette-overrides
'((cursor apricot)
(string kiwi)))
#+end_src
* Preview theme colors
:properties:
:custom_id: h:f4d4b71b-2ca5-4c3d-b0b4-9bfd7aa7fb4d
@ -1237,7 +1323,7 @@ and ==*modus-operandi-list-mappings*= for the semantic color mappings.
:END:
The Modus themes provide the means to access the palette of (i) the
active theme or (ii) any theme in the Modus collection. These are
active theme or (ii) any theme in the Modus collection. These are
useful for Do-It-Yourself customizations ([[#h:f4651d55-8c07-46aa-b52b-bed1e53463bb][Advanced customization]]),
though it can also be helpful in other cases, such as to reuse a color
value in some other application.
@ -1251,9 +1337,9 @@ 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
return the value of a color from the active Modus theme palette. It
takea a =COLOR= argument and an optional =OVERRIDES=. It also accepts
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.
=COLOR= is a symbol that represents a named color entry in the
@ -1264,7 +1350,7 @@ mapping), this function recurs until it finds the underlying color
value.
With an optional =OVERRIDES= argument as a non-~nil~ value, it
accounts for palette overrides. Else it reads only the default palette
accounts for palette overrides. Else it reads only the default palette
([[#h:34c7a691-19bb-4037-8d2f-67a07edab150][Option for palette overrides]])
With an optional =THEME= as a symbol among the ~modus-themes-items~
@ -1309,12 +1395,12 @@ with/without overrides and when recursive mappings are introduced.
#+findex: modus-themes-with-colors
Advanced users may want to apply many colors from the palette of the
active Modus theme in their custom code. In such a case, retrieving
active Modus theme in their custom code. In such a case, retrieving
each value with the function ~modus-themes-get-color-value~ is
inefficient ([[#h:1cc552c1-5f5f-4a56-ae78-7b69e8512c4e][Get a single color from the palette]]). The Lisp macro
~modus-themes-with-colors~ provides the requisite functionality. It
inefficient ([[#h:1cc552c1-5f5f-4a56-ae78-7b69e8512c4e][Get a single color from the palette]]). The Lisp macro
~modus-themes-with-colors~ provides the requisite functionality. It
supplies the current theme's palette to the code called from inside of
it. For example:
it. For example:
#+begin_src emacs-lisp
(modus-themes-with-colors
@ -1323,9 +1409,9 @@ it. For example:
#+end_src
The above return value is for ~modus-operandi~ when that is the active
theme. Switching to another theme and evaluating this code anew will
theme. Switching to another theme and evaluating this code anew will
return the relevant results for that theme (remember that since
version 4, the Modus themes consist of many items ([[#h:f0f3dbcb-602d-40cf-b918-8f929c441baf][Overview]])). The
version 4, the Modus themes consist of many items ([[#h:f0f3dbcb-602d-40cf-b918-8f929c441baf][Overview]])). The
same with ~modus-vivendi~ as the active theme:
#+begin_src emacs-lisp
@ -1340,7 +1426,7 @@ like =blue-warmer= and (ii) semantic color mappings like =warning=.
We provide commands to inspect those ([[#h:f4d4b71b-2ca5-4c3d-b0b4-9bfd7aa7fb4d][Preview theme colors]]).
Others sections in this manual show how to use the aforementioned
macro ([[#h:f4651d55-8c07-46aa-b52b-bed1e53463bb][Advanced customization]]). In practice, the use of a hook will
macro ([[#h:f4651d55-8c07-46aa-b52b-bed1e53463bb][Advanced customization]]). In practice, the use of a hook will
also be needed ([[#h:d87673fe-2ce1-4c80-a4b8-be36ca9f2d24][DIY Use a hook at the post-load-theme phase]]).
* Advanced customization
@ -1355,7 +1441,7 @@ mechanism to control things with precision ([[#h:bf1c82f2-46c7-4eb2-ad00-dd11fdd
This section is of interest only to users who are prepared to maintain
their own local tweaks and who are willing to deal with any possible
incompatibilities between versioned releases of the themes. As such,
incompatibilities between versioned releases of the themes. As such,
they are labeled as "do-it-yourself" or "DIY".
** DIY Palette override presets
@ -2076,14 +2162,14 @@ Reload the theme for changes to take effect.
:end:
This is one of our practical examples to override the semantic colors
of the Modus themes ([[#h:df1199d8-eaba-47db-805d-6b568a577bf3][Stylistic variants using palette overrides]]). Here
of the Modus themes ([[#h:df1199d8-eaba-47db-805d-6b568a577bf3][Stylistic variants using palette overrides]]). Here
we show how to change the presentation of Org blocks (and other such
blocks like Markdown fenced code sections, though the exact
presentation depends on each major mode).
The default style of Org blocks is a subtle gray background for the
contents and for the delimiter lines (the =#+begin_= and =#+end_=
parts). The text of the delimiter lines is a subtle gray foreground
parts). The text of the delimiter lines is a subtle gray foreground
color.
[[#h:bb5b396f-5532-4d52-ab13-149ca24854f1][Make inline code in prose use alternative styles]].
@ -2123,8 +2209,8 @@ color.
#+end_src
The previous examples differentiate the delimiter lines from the
block's contents. Though we can mimic the default aesthetic of a
uniform background, while changing the applicable colors. Here are
block's contents. Though we can mimic the default aesthetic of a
uniform background, while changing the applicable colors. Here are
some nice combinations:
#+begin_src emacs-lisp
@ -2152,7 +2238,7 @@ some nice combinations:
Finally, the following makes code blocks have no distinct background.
The minimal styles are applied to the delimiter lines, which only use
a subtle gray foreground. This was the default for the Modus themes up
a subtle gray foreground. This was the default for the Modus themes up
until version 4.3.0.
#+begin_src emacs-lisp
@ -2162,7 +2248,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
@ -2806,7 +2892,7 @@ above:
The reason we no longer provide this option is because it depends on a
non-~nil~ value for ~x-underline-at-descent-line~. That variable
affects ALL underlines, including those of links. The effect is
intrusive and looks awkward in prose.
intrusive and looks awkard in prose.
As such, the Modus themes no longer provide that option but instead
offer this piece of documentation to make the user fully aware of the
@ -2821,7 +2907,7 @@ Reload the theme for changes to take effect.
#+cindex: Remapping faces
There are cases where we need to change the buffer-local attributes of a
face. This might be because we have our own minor mode that reuses a
face. This might be because we have our own minor mode that re-uses a
face for a particular purpose, such as a line selection tool that
activates ~hl-line-mode~, but we wish to keep it distinct from other
buffers. This is where ~face-remap-add-relative~ can be applied and may
@ -3160,7 +3246,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
@ -3280,11 +3366,11 @@ invoke {{{kbd(M-x org-mode-restart)}}}.
In versions of the Modus themes before =4.4.0= there was an option to
change the coloration of Org source blocks so that certain languages
would have a distinctly colored background. This was not flexible
would have a distinctly colored background. This was not flexible
enough, because (i) we cannot cover all languages effectively and (ii)
the user had no choice over the =language --> color= mapping.
As such, the old user option is no more. Users can use the following
As such, the old user option is no more. Users can use the following
to achieve what they want:
[ All this is done by setting the Org user option ~org-src-block-faces~,
@ -3323,9 +3409,9 @@ to achieve what they want:
[[#h:d87673fe-2ce1-4c80-a4b8-be36ca9f2d24][DIY Use a hook at the post-load-theme phase]].
Note that the ~org-src-block-faces~ accepts a named face, as shown
above, as well as a list of face attributes. The latter approach is
above, as well as a list of face attributes. The latter approach is
not good enough because it hardcodes values in such a way that an
~org-mode-restart~ is necessary. Whereas the indirection of the named
~org-mode-restart~ is necessary. Whereas the indirection of the named
face lets the theme change the values while Org buffers continue to
show the right colors.
@ -3638,7 +3724,7 @@ Add this to the `modus-themes-post-load-hook'."
The above will work only for themes that belong to the Modus family.
For users of Emacs version 29 or higher, there exists a theme-agnostic
hook that takes a function with one argument---that of the theme---and
calls in the "post enable" phase of theme loading. Here is the
calls in the the "post enable" phase of theme loading. Here is the
above snippet, with the necessary tweaks:
#+begin_src emacs-lisp
@ -3768,7 +3854,7 @@ Reload the theme for changes to take effect.
:END:
Many of the Do-It-Yourself (DIY) snippets provided herein make use of
a hook to apply the desired changes. In most examples, this hook is
a hook to apply the desired changes. In most examples, this hook is
the ~modus-themes-after-load-theme-hook~ (alias ~modus-themes-post-load-hook~).
This hook is provided by the Modus themes and is called at the end of
one the following:
@ -3786,7 +3872,7 @@ one the following:
Users who switch between themes that are not limited to the Modus
collection cannot benefit from the aforementioned hook: it only works
with the Modus themes. A theme-agnostic hook is needed in such a case.
with the Modus themes. A theme-agnostic hook is needed in such a case.
Before Emacs 29, this had to be set up manually ([[#h:86f6906b-f090-46cc-9816-1fe8aeb38776][DIY A theme-agnostic hook for theme loading]]).
Starting with Emacs 29, the special hook ~enable-theme-functions~
works with anything that uses the basic ~enable-theme~ function.
@ -3799,7 +3885,7 @@ the way it is done with every hook:
#+end_src
Functions added to ~enable-theme-functions~ accept a single =THEME=
argument. The examples shown in this manual use the pattern =(&rest
argument. The examples shown in this manual use the pattern =(&rest
_)=, which is how a function accepts one or more arguments but
declares it will not use them (in plain terms, the code works with or
without ~enable-theme-functions~).
@ -3809,7 +3895,7 @@ without ~enable-theme-functions~).
:custom_id: h:86f6906b-f090-46cc-9816-1fe8aeb38776
:end:
[ NOTE: The following is for versions of Emacs before 29. For Emacs 29
[ NOTE: The following is for versions of Emacs before 29. For Emacs 29
or higher, users can rely on the built-in ~enable-theme-functions~
([[#h:d87673fe-2ce1-4c80-a4b8-be36ca9f2d24][Using a hook at the post-load-theme phase]]). ]
@ -4002,6 +4088,7 @@ have lots of extensions, so the "full support" may not be 100% true…
+ isearch, occur, etc.
+ ivy*
+ ivy-posframe
+ jabber
+ japanese-holidays
+ jira (org-jira)
+ jit-spell
@ -4011,6 +4098,7 @@ have lots of extensions, so the "full support" may not be 100% true…
+ julia
+ kaocha-runner
+ keycast
+ kmacro-menu
+ ledger-mode
+ leerzeichen
+ line numbers (~display-line-numbers-mode~ and global variant)
@ -4020,6 +4108,7 @@ have lots of extensions, so the "full support" may not be 100% true…
+ marginalia
+ markdown-mode
+ markup-faces (~adoc-mode~)
+ mb-depth
+ mct
+ messages
+ minimap
@ -4115,8 +4204,10 @@ have lots of extensions, so the "full support" may not be 100% true…
+ vertico
+ vertico-quick
+ vimish-fold
+ viper
+ visible-mark
+ visual-regexp
+ vtable
+ vterm
+ vundo
+ wcheck-mode
@ -4126,6 +4217,7 @@ have lots of extensions, so the "full support" may not be 100% true…
+ which-key
+ whitespace-mode
+ window-divider-mode
+ window-tool-bar
+ writegood-mode
+ woman
+ xah-elisp-mode
@ -4442,7 +4534,7 @@ advanced customization options of the themes.
[[#h:f4651d55-8c07-46aa-b52b-bed1e53463bb][Advanced customization]].
In the following example, we are assuming that the user wants to (i)
reuse color variables provided by the themes, (ii) be able to retain
re-use color variables provided by the themes, (ii) be able to retain
their tweaks while switching between ~modus-operandi~ and ~modus-vivendi~,
and (iii) have the option to highlight either the foreground of the
parentheses or the background as well.
@ -4462,7 +4554,7 @@ Then we can update our preference with this:
(setq my-highlight-parentheses-use-background nil)
#+end_src
To reuse colors from the themes, we must wrap our code in the
To re-use colors from the themes, we must wrap our code in the
~modus-themes-with-colors~ macro. Our implementation must interface with
the variables ~highlight-parentheses-background-colors~ and/or
~highlight-parentheses-colors~.
@ -4769,7 +4861,7 @@ and/or mode line setup.
:custom_id: h:4cc767dc-ffef-4c5c-9f10-82eb7b8921bf
:end:
Emacs's HTML rendering library ({{{file(shr.el)}}}) may need explicit
Emacs' HTML rendering library ({{{file(shr.el)}}}) may need explicit
configuration to respect the theme's colors instead of whatever
specifications the webpage provides.
@ -5074,7 +5166,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.
@ -5128,7 +5220,7 @@ each of the three channels of light (red, green, blue). For example:
: xrandr --output LVDS1 --brightness 1.0 --gamma 0.76:0.75:0.68
Typography is another variable. Some font families are blurry at small
point sizes. Others may have a regular weight that is lighter (thinner)
point sizes. Others may have a regular weight that is lighter (thiner)
than that of their peers which may, under certain circumstances, cause a
halo effect around each glyph.
@ -5180,7 +5272,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
@ -5254,7 +5346,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.
@ -5402,14 +5494,15 @@ The Modus themes are a collective effort. Every bit of work matters.
Griffin, Anders Johansson, Antonio Ruiz, Basil L.{{{space()}}}
Contovounesios, Björn Lindström, Carlo Zancanaro, Christian Tietze,
Daniel Mendler, David Edmondson, Eli Zaretskii, Fritz Grabo, Gautier
Ponsinet, Illia Ostapyshyn, 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, Philip Kaludercic, Pierre
Téchoueyres, Rudolf Adamkovič, Sergey Nichiporchik, Shreyas Ragavan,
Stefan Kangas, Stephen Berman, Stephen Gildea, Steve Downey, Tomasz
Hołubowicz, Utkarsh Singh, Vincent Murphy, Xinglu Chen, Yuanchen
Xie, fluentpwn, okamsn.
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.
+ Ideas and user feedback :: Aaron Jensen, Adam Porter, Adam Spiers,
Adrian Manea, Aleksei Pirogov, Alex Griffin, Alex Koen, Alex
@ -5420,32 +5513,32 @@ The Modus themes are a collective effort. Every bit of work matters.
Christopher Dimech, Christopher League, Damien Cassou, Daniel
Mendler, Dario Gjorgjevski, David Edmondson, Davor Rotim, Divan
Santana, Eliraz Kedmi, Emanuele Michele Alberto Monterosso, Farasha
Euker, Feng Shu, Gautier Ponsinet, Gerry Agbobada, Gianluca Recchia,
Gonçalo Marrafa, Guilherme Semente, Gustavo Barros, Hörmetjan
Yiltiz, Ilja Kocken, Imran Khan, Iris Garcia, Ivan Popovych, James
Ferguson, Jeremy Friesen, Jerry Zhang, Johannes Grødem, John Haman,
John Wick, Jonas Collberg, Jorge Morais, Joshua O'Connor, Julio C.
Villasante, Kenta Usami, Kevin Fleming, Kévin Le Gouguec, Kevin
Kainan Li, Kostadin Ninev, Laith Bahodi, Lasse Lindner, Len Trigg,
Lennart C.{{{space()}}} Karssen, Luis Miguel Castañeda, Magne Hov, Manuel Giraud,
Manuel Uberti, Mark Bestley, Mark Burton, Mark Simpson, Marko Kocic,
Markus Beppler, Matt Armstrong, Matthias Fuchs, Mattias Engdegård,
Mauro Aranda, Maxime Tréca, Michael Goldenberg, Morgan Smith, Morgan
Willcock, Murilo Pereira, Nicky van Foreest, Nicolas De Jaeghere,
Nicolas Semrau, Olaf Meeuwissen, Oliver Epper, Pablo Stafforini,
Paul Poloskov, Pengji Zhang, Pete Kazmier, Peter Wu, Philip
Kaludercic, Pierre Téchoueyres, Przemysław Kryger, Robert Hepple,
Roman Rudakov, Russell Sim, Ryan Phillips, Rytis Paškauskas, Rudolf
Adamkovič, Sam Kleinman, Samuel Culpepper, Saša Janiška, Shreyas
Ragavan, Simon Pugnet, Steve Downey, Tassilo Horn, Thanos Apollo,
Thibaut Verron, Thomas Heartman, Togan Muftuoglu, Tony Zorman, Trey
Merkley, Tomasz Hołubowicz, Toon Claes, Uri Sharf, Utkarsh Singh,
Vincent Foley, Zoltan Kiraly. As well as users: Ben, CsBigDataHub1,
Emacs Contrib, Eugene, Fourchaux, Fredrik, Moesasji, Nick, Summer
Emacs, TheBlob42, TitusMu, Trey, bepolymathe, bit9tream,
bangedorrunt, derek-upham, doolio, fleimgruber, gitrj95, iSeeU,
jixiuf, ltmsyvag, okamsn, pRot0ta1p, soaringbird, tumashu,
wakamenod.
Euker, Feng Shu, Filippo Argiolas, Gautier Ponsinet, Gerry Agbobada,
Gianluca Recchia, Gonçalo Marrafa, Guilherme Semente, Gustavo
Barros, Hörmetjan Yiltiz, Ilja Kocken, Imran Khan, Iris Garcia, Ivan
Popovych, James Ferguson, Jeremy Friesen, Jerry Zhang, Johannes
Grødem, John Haman, John Wick, Jonas Collberg, Jorge Morais, Joshua
O'Connor, Julio C. Villasante, Kenta Usami, Kevin Fleming, Kévin Le
Gouguec, Kevin Kainan Li, Kostadin Ninev, Laith Bahodi, Lasse
Lindner, Len Trigg, Lennart C.{{{space()}}} Karssen, Luis Miguel
Castañeda, Magne Hov, Manuel Giraud, Manuel Uberti, Mark Bestley,
Mark Burton, Mark Simpson, Marko Kocic, Markus Beppler, Matt
Armstrong, Matthias Fuchs, Mattias Engdegård, Mauro Aranda, Maxime
Tréca, Michael Goldenberg, Morgan Smith, Morgan Willcock, Murilo
Pereira, Nicky van Foreest, Nicolas De Jaeghere, Nicolas Semrau,
Olaf Meeuwissen, Oliver Epper, Pablo Stafforini, Paul Poloskov,
Pengji Zhang, Pete Kazmier, Peter Wu, Philip Kaludercic, Pierre
Téchoueyres, Przemysław Kryger, Robert Hepple, Roman Rudakov,
Russell Sim, Ryan Phillips, Rytis Paškauskas, Rudolf Adamkovič, Sam
Kleinman, Samuel Culpepper, Saša Janiška, Shreyas Ragavan, Simon
Pugnet, Steve Downey, Tassilo Horn, Thanos Apollo, Thibaut Verron,
Thomas Heartman, Togan Muftuoglu, Tony Zorman, Trey Merkley, Tomasz
Hołubowicz, Toon Claes, Uri Sharf, Utkarsh Singh, Vincent Foley,
Zoltan Kiraly. As well as users: Ben, CsBigDataHub1, Emacs Contrib,
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.
+ Packaging :: Basil L.{{{space()}}} Contovounesios, Eli Zaretskii,
Glenn Morris, Mauro Aranda, Richard Stallman, Stefan Kangas (core

View file

@ -134,22 +134,30 @@ standard)."
(bg-magenta-nuanced "#f8e6f5")
(bg-cyan-nuanced "#e0f2fa")
;;; Uncommon accent backgrounds
;;; Uncommon accent background and foreground pairs
(bg-clay "#f1c8b5")
(fg-clay "#63192a")
(bg-ochre "#f0e3c0")
(fg-ochre "#573a30")
(bg-lavender "#dfcdfa")
(fg-lavender "#443379")
(bg-ochre "#f0e0cc")
(bg-lavender "#dfdbfa")
(bg-sage "#c0e7d4")
(fg-sage "#124b41")
;;; Graphs
(bg-graph-red-0 "#d0b029")
(bg-graph-red-1 "#e0cab4")
(bg-graph-green-0 "#8ad080")
(bg-graph-green-0 "#8ac050")
(bg-graph-green-1 "#afdfa5")
(bg-graph-yellow-0 "#ffcf00")
(bg-graph-yellow-1 "#f9ff00")
(bg-graph-blue-0 "#7f9fff")
(bg-graph-blue-1 "#9fc6ff")
(bg-graph-blue-1 "#afd0ff")
(bg-graph-magenta-0 "#b0b0d0")
(bg-graph-magenta-1 "#d0dfdf")
(bg-graph-cyan-0 "#6faad9")
@ -248,19 +256,24 @@ standard)."
;;;; Code mappings
(bracket fg-main)
(builtin magenta-warmer)
(comment yellow-cooler)
(constant blue-cooler)
(docstring green-faint)
(delimiter fg-main)
(docmarkup magenta-faint)
(docstring green-faint)
(fnname magenta)
(keyword magenta-cooler)
(number fg-main)
(operator fg-main)
(preprocessor red-cooler)
(punctuation fg-main)
(rx-backslash blue-cooler)
(rx-construct yellow-cooler)
(string blue-warmer)
(type cyan-cooler)
(variable cyan)
(rx-construct yellow-cooler)
(rx-backslash blue-cooler)
;;;; Accent mappings
@ -483,6 +496,19 @@ Semantic color mappings have the form (MAPPING-NAME COLOR-NAME)
with both as symbols. The latter is a named color that already
exists in the palette and is associated with a HEX-VALUE.")
(defcustom modus-operandi-deuteranopia-palette-user nil
"Like the `modus-operandi-deuteranopia-palette' for user-defined entries.
This is meant to extend the palette with custom named colors and/or
semantic palette mappings. Those may then be used in combination with
palette overrides (also see `modus-themes-common-palette-overrides' and
`modus-operandi-deuteranopia-palette-overrides')."
:group 'modus-themes
:package-version '(modus-themes . "4.5.0")
:type '(repeat (list symbol (choice symbol string)))
:set #'modus-themes--set-option
:initialize #'custom-initialize-default
:link '(info-link "(modus-themes) Option to extend the palette for use with overrides"))
(defcustom modus-operandi-deuteranopia-palette-overrides nil
"Overrides for `modus-operandi-deuteranopia-palette'.

View file

@ -132,22 +132,30 @@ which corresponds to a minimum contrast in relative luminance of
(bg-magenta-nuanced "#f8e6f5")
(bg-cyan-nuanced "#e0f2fa")
;;; Uncommon accent backgrounds
;;; Uncommon accent background and foreground pairs
(bg-clay "#f1c8b5")
(fg-clay "#63192a")
(bg-ochre "#f0e3c0")
(fg-ochre "#573a30")
(bg-lavender "#dfcdfa")
(fg-lavender "#443379")
(bg-ochre "#f0e0cc")
(bg-lavender "#dfdbfa")
(bg-sage "#c0e7d4")
(fg-sage "#124b41")
;;; Graphs
(bg-graph-red-0 "#ef7969")
(bg-graph-red-1 "#ffaab4")
(bg-graph-green-0 "#2fe029")
(bg-graph-green-0 "#45c050")
(bg-graph-green-1 "#75ef30")
(bg-graph-yellow-0 "#ffcf00")
(bg-graph-yellow-1 "#f9ff00")
(bg-graph-blue-0 "#7f90ff")
(bg-graph-blue-1 "#9fc6ff")
(bg-graph-blue-1 "#a6c0ff")
(bg-graph-magenta-0 "#e07fff")
(bg-graph-magenta-1 "#fad0ff")
(bg-graph-cyan-0 "#70d3f0")
@ -246,19 +254,24 @@ which corresponds to a minimum contrast in relative luminance of
;;;; Code mappings
(bracket fg-main)
(builtin magenta-warmer)
(comment fg-dim)
(constant blue-cooler)
(docstring green-faint)
(delimiter fg-main)
(docmarkup magenta-faint)
(docstring green-faint)
(fnname magenta)
(keyword magenta-cooler)
(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-construct green-cooler)
(rx-backslash magenta)
;;;; Accent mappings
@ -481,6 +494,19 @@ Semantic color mappings have the form (MAPPING-NAME COLOR-NAME)
with both as symbols. The latter is a named color that already
exists in the palette and is associated with a HEX-VALUE.")
(defcustom modus-operandi-palette-user nil
"Like the `modus-operandi-palette' for user-defined entries.
This is meant to extend the palette with custom named colors and/or
semantic palette mappings. Those may then be used in combination with
palette overrides (also see `modus-themes-common-palette-overrides' and
`modus-operandi-palette-overrides')."
:group 'modus-themes
:package-version '(modus-themes . "4.5.0")
:type '(repeat (list symbol (choice symbol string)))
:set #'modus-themes--set-option
:initialize #'custom-initialize-default
:link '(info-link "(modus-themes) Option to extend the palette for use with overrides"))
(defcustom modus-operandi-palette-overrides nil
"Overrides for `modus-operandi-palette'.

View file

@ -1,4 +1,4 @@
;;; 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-2024 Free Software Foundation, Inc.
@ -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
@ -132,22 +132,30 @@ which corresponds to a minimum contrast in relative luminance of
(bg-magenta-nuanced "#f8e6f5")
(bg-cyan-nuanced "#e0f2fa")
;;; Uncommon accent backgrounds
;;; Uncommon accent background and foreground pairs
(bg-clay "#f1c8b5")
(fg-clay "#63192a")
(bg-ochre "#f0e3c0")
(fg-ochre "#573a30")
(bg-lavender "#dfcdfa")
(fg-lavender "#443379")
(bg-ochre "#f0e0cc")
(bg-lavender "#dfdbfa")
(bg-sage "#c0e7d4")
(fg-sage "#124b41")
;;; Graphs
(bg-graph-red-0 "#ef7969")
(bg-graph-red-1 "#ffaab4")
(bg-graph-green-0 "#2fe029")
(bg-graph-green-0 "#45c050")
(bg-graph-green-1 "#75ef30")
(bg-graph-yellow-0 "#ffcf00")
(bg-graph-yellow-1 "#f9ff00")
(bg-graph-blue-0 "#7f90ff")
(bg-graph-blue-1 "#9fc6ff")
(bg-graph-blue-1 "#a6c0ff")
(bg-graph-magenta-0 "#e07fff")
(bg-graph-magenta-1 "#fad0ff")
(bg-graph-cyan-0 "#70d3f0")
@ -246,19 +254,24 @@ which corresponds to a minimum contrast in relative luminance of
;;;; Code mappings
(bracket fg-main)
(builtin magenta-warmer)
(comment red-faint)
(constant blue-cooler)
(docstring green-faint)
(delimiter fg-main)
(docmarkup magenta-faint)
(docstring green-faint)
(fnname magenta)
(keyword magenta-cooler)
(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-construct green-cooler)
(rx-backslash magenta)
;;;; Accent mappings
@ -481,6 +494,19 @@ Semantic color mappings have the form (MAPPING-NAME COLOR-NAME)
with both as symbols. The latter is a named color that already
exists in the palette and is associated with a HEX-VALUE.")
(defcustom modus-operandi-tinted-palette-user nil
"Like the `modus-operandi-tinted-palette' for user-defined entries.
This is meant to extend the palette with custom named colors and/or
semantic palette mappings. Those may then be used in combination with
palette overrides (also see `modus-themes-common-palette-overrides' and
`modus-operandi-tinted-palette-overrides')."
:group 'modus-themes
:package-version '(modus-themes . "4.5.0")
:type '(repeat (list symbol (choice symbol string)))
:set #'modus-themes--set-option
:initialize #'custom-initialize-default
:link '(info-link "(modus-themes) Option to extend the palette for use with overrides"))
(defcustom modus-operandi-tinted-palette-overrides nil
"Overrides for `modus-operandi-tinted-palette'.

View file

@ -134,22 +134,30 @@ standard)."
(bg-magenta-nuanced "#f8e6f5")
(bg-cyan-nuanced "#e0f2fa")
;;; Uncommon accent backgrounds
;;; Uncommon accent background and foreground pairs
(bg-clay "#f1c8b5")
(fg-clay "#63192a")
(bg-ochre "#f0e3c0")
(fg-ochre "#573a30")
(bg-lavender "#dfcdfa")
(fg-lavender "#443379")
(bg-ochre "#f0e0cc")
(bg-lavender "#dfdbfa")
(bg-sage "#c0e7d4")
(fg-sage "#124b41")
;;; Graphs
(bg-graph-red-0 "#ef7969")
(bg-graph-red-1 "#ffaab4")
(bg-graph-green-0 "#70c3b0")
(bg-graph-green-1 "#a3dfe5")
(bg-graph-green-0 "#68c0a0")
(bg-graph-green-1 "#a5dfd0")
(bg-graph-yellow-0 "#d99f9f")
(bg-graph-yellow-1 "#ffb58f")
(bg-graph-blue-0 "#80a0df")
(bg-graph-blue-1 "#9fcaff")
(bg-graph-blue-1 "#a8cfff")
(bg-graph-magenta-0 "#efafcf")
(bg-graph-magenta-1 "#ffdaef")
(bg-graph-cyan-0 "#7fd3ed")
@ -248,19 +256,24 @@ standard)."
;;;; Code mappings
(bracket fg-main)
(builtin magenta)
(comment red-faint)
(constant green-cooler)
(docstring fg-alt)
(delimiter fg-main)
(docmarkup magenta-faint)
(docstring fg-alt)
(fnname cyan-warmer)
(keyword red-cooler)
(number fg-main)
(operator fg-main)
(preprocessor red-warmer)
(punctuation fg-main)
(rx-backslash magenta)
(rx-construct red)
(string cyan)
(type blue-warmer)
(variable cyan-cooler)
(rx-construct red)
(rx-backslash magenta)
;;;; Accent mappings
@ -483,6 +496,19 @@ Semantic color mappings have the form (MAPPING-NAME COLOR-NAME)
with both as symbols. The latter is a named color that already
exists in the palette and is associated with a HEX-VALUE.")
(defcustom modus-operandi-tritanopia-palette-user nil
"Like the `modus-operandi-tritanopia-palette' for user-defined entries.
This is meant to extend the palette with custom named colors and/or
semantic palette mappings. Those may then be used in combination with
palette overrides (also see `modus-themes-common-palette-overrides' and
`modus-operandi-tritanopia-palette-overrides')."
:group 'modus-themes
:package-version '(modus-themes . "4.5.0")
:type '(repeat (list symbol (choice symbol string)))
:set #'modus-themes--set-option
:initialize #'custom-initialize-default
:link '(info-link "(modus-themes) Option to extend the palette for use with overrides"))
(defcustom modus-operandi-tritanopia-palette-overrides nil
"Overrides for `modus-operandi-tritanopia-palette'.

View file

@ -5,7 +5,7 @@
;; Author: Protesilaos Stavrou <info@protesilaos.com>
;; Maintainer: Protesilaos Stavrou <info@protesilaos.com>
;; URL: https://github.com/protesilaos/modus-themes
;; Version: 4.4.0
;; Version: 4.5.0
;; Package-Requires: ((emacs "27.1"))
;; Keywords: faces, theme, accessibility
@ -641,6 +641,20 @@ In user configuration files the form may look like this:
:initialize #'custom-initialize-default
:link '(info-link "(modus-themes) Command prompts"))
(defcustom modus-themes-common-palette-user nil
"Common user-defined colors to extend all the themes' palettes.
This is meant to extend the palette of the active Modus theme with
custom named colors and/or semantic palette mappings. Those may then be
used in combination with palette overrides (see
`modus-themes-common-palette-overrides')."
:group 'modus-themes
:package-version '(modus-themes . "4.5.0")
:type '(repeat (list symbol (choice symbol string)))
:set #'modus-themes--set-option
:initialize #'custom-initialize-default
:link '(info-link "(modus-themes) Extend the palette for use with overrides"))
(defcustom modus-themes-common-palette-overrides nil
"Set palette overrides for all the Modus themes.
@ -1068,22 +1082,22 @@ C1 and C2 are color values written in hexadecimal RGB."
(car (or (modus-themes--list-enabled-themes)
(modus-themes--list-known-themes))))
(defun modus-themes--palette-symbol (theme &optional overrides)
"Return THEME palette as a symbol.
With optional OVERRIDES, return THEME palette overrides as a
symbol."
(when-let ((suffix (cond
((and theme overrides)
"palette-overrides")
(theme
"palette"))))
(intern (format "%s-%s" theme suffix))))
(defun modus-themes--palette-symbol (theme &optional suffix)
"Return THEME palette as a symbol of the form THEME-palette.
With optional SUFFIX, return THEME-palette-SUFFIX as a symbol."
(when theme
(intern
(if suffix
(format "%s-palette-%s" theme suffix)
(format "%s-palette" theme)))))
(defun modus-themes--palette-value (theme &optional overrides)
"Return palette value of THEME with optional OVERRIDES."
(let ((base-value (symbol-value (modus-themes--palette-symbol theme))))
(let* ((core-palette (symbol-value (modus-themes--palette-symbol theme)))
(user-palette (symbol-value (modus-themes--palette-symbol theme "user")))
(base-value (append user-palette modus-themes-common-palette-user core-palette)))
(if overrides
(append (symbol-value (modus-themes--palette-symbol theme :overrides))
(append (symbol-value (modus-themes--palette-symbol theme "overrides"))
modus-themes-common-palette-overrides
base-value)
base-value)))
@ -1389,7 +1403,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
@ -1621,7 +1635,7 @@ FG and BG are the main colors."
`(comint-highlight-prompt ((,c :inherit modus-themes-prompt)))
`(confusingly-reordered ((,c :inherit modus-themes-lang-error)))
`(edmacro-label ((,c :inherit bold :foreground ,accent-0)))
`(elisp-shorthand-font-lock-face ((,c :inherit font-lock-variable-name-face)))
`(elisp-shorthand-font-lock-face ((,c :inherit (italic font-lock-preprocessor-face))))
`(error ((,c :inherit bold :foreground ,err)))
`(escape-glyph ((,c :foreground ,err)))
`(file-name-shadow ((,c :inherit shadow)))
@ -1650,6 +1664,10 @@ FG and BG are the main colors."
`(shadow ((,c :foreground ,fg-dim)))
`(success ((,c :inherit bold :foreground ,info)))
`(trailing-whitespace ((,c :background ,bg-space-err)))
;; NOTE 2024-06-22: I use `list' here to suppress a bogus warning
;; from the compiler: it says I should depend on Emacs 29 to use
;; vtable.
(list 'vtable `((,c :inherit modus-themes-fixed-pitch)))
`(warning ((,c :inherit bold :foreground ,warning)))
;;;;; buttons, links, widgets
`(button ((,c :background ,bg-link :foreground ,fg-link :underline ,underline-link)))
@ -1768,7 +1786,7 @@ FG and BG are the main colors."
`(font-latex-italic-face ((,c :inherit italic)))
`(font-latex-math-face ((,c :inherit font-lock-constant-face)))
`(font-latex-script-char-face ((,c :inherit font-lock-builtin-face)))
`(font-latex-sectioning-5-face ((,c :inherit (bold modus-themes-variable-pitch) :foreground ,fg-alt)))
`(font-latex-sectioning-5-face ((,c :inherit bold :foreground ,fg-alt)))
`(font-latex-sedate-face ((,c :inherit font-lock-keyword-face)))
`(font-latex-slide-title-face ((,c :inherit modus-themes-heading-1)))
`(font-latex-string-face ((,c :inherit font-lock-string-face)))
@ -2175,7 +2193,7 @@ FG and BG are the main colors."
`(doom-modeline-evil-visual-state ((,c :inherit warning)))
`(doom-modeline-info ((,c :inherit success)))
`(doom-modeline-input-method (( )))
`(doom-modeline-lsp-error ((,c :inherit bold-italic)))
`(doom-modeline-lsp-error ((,c :inherit bold)))
`(doom-modeline-lsp-running (( )))
`(doom-modeline-lsp-success ((,c :inherit success)))
`(doom-modeline-lsp-warning ((,c :inherit warning)))
@ -2186,7 +2204,7 @@ FG and BG are the main colors."
`(doom-modeline-repl-success ((,c :inherit success)))
`(doom-modeline-repl-warning ((,c :inherit warning)))
`(doom-modeline-time (( )))
`(doom-modeline-urgent ((,c :inherit bold-italic :foreground ,modeline-err)))
`(doom-modeline-urgent ((,c :inherit bold :foreground ,modeline-err)))
`(doom-modeline-warning ((,c :inherit warning)))
;;;;; ediff
`(ediff-current-diff-A ((,c :background ,bg-removed :foreground ,fg-removed)))
@ -2400,16 +2418,21 @@ FG and BG are the main colors."
;;;;; fold-this
`(fold-this-overlay ((,c :background ,bg-inactive)))
;;;;; font-lock
`(font-lock-bracket-face ((,c :foreground ,bracket)))
`(font-lock-builtin-face ((,c :inherit modus-themes-bold :foreground ,builtin)))
`(font-lock-comment-delimiter-face ((,c :inherit font-lock-comment-face)))
`(font-lock-comment-face ((,c :inherit modus-themes-slant :foreground ,comment)))
`(font-lock-constant-face ((,c :foreground ,constant)))
`(font-lock-delimiter-face ((,c :foreground ,delimiter)))
`(font-lock-doc-face ((,c :inherit modus-themes-slant :foreground ,docstring)))
`(font-lock-doc-markup-face ((,c :inherit modus-themes-slant :foreground ,docmarkup)))
`(font-lock-function-name-face ((,c :foreground ,fnname)))
`(font-lock-keyword-face ((,c :inherit modus-themes-bold :foreground ,keyword)))
`(font-lock-negation-char-face ((,c :inherit error)))
`(font-lock-number-face ((,c :foreground ,number)))
`(font-lock-operator-face ((,c :foreground ,operator)))
`(font-lock-preprocessor-face ((,c :foreground ,preprocessor)))
`(font-lock-punctuation-face ((,c :foreground ,punctuation)))
`(font-lock-regexp-grouping-backslash ((,c :inherit modus-themes-bold :foreground ,rx-backslash)))
`(font-lock-regexp-grouping-construct ((,c :inherit modus-themes-bold :foreground ,rx-construct)))
`(font-lock-string-face ((,c :foreground ,string)))
@ -2712,6 +2735,24 @@ FG and BG are the main colors."
;;;;; 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 :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 :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)))
`(jabber-chat-prompt-local ((,c :foreground ,cyan)))
`(jabber-chat-error ((,c :inherit error)))
`(jabber-activity-personal-face ((,c :foreground ,blue-intense)))
`(jabber-rare-time-face ((,c :foreground ,green-faint :underline t)))
`(jabber-title-small ((,c :weight bold :height 1.0 :foreground ,fg-heading-3)))
`(jabber-title-medium ((,c :weight bold :width expanded :height 2.0 :foreground ,fg-heading-2)))
`(jabber-title-large ((,c :weight bold :width ultra-expanded :height 3.0 :foreground ,fg-heading-1)))
;;;;; japanese-holidays
`(japanese-holiday-saturday ((,c :foreground ,date-holiday-other)))
;;;;; jira (org-jira)
@ -2761,6 +2802,10 @@ FG and BG are the main colors."
;;;;; keycast
`(keycast-command ((,c :inherit bold)))
`(keycast-key ((,c :inherit modus-themes-bold :background ,keybind :foreground ,bg-main)))
;;;;; kmacro-menu
`(kmacro-menu-mark ((,c :inherit bold)))
`(kmacro-menu-marked ((,c :inherit modus-themes-mark-sel)))
`(kmacro-menu-flagged ((,c :inherit modus-themes-mark-del)))
;;;;; ledger-mode
`(ledger-font-auto-xact-face ((,c :inherit font-lock-builtin-face)))
`(ledger-font-account-name-face ((,c :foreground ,name)))
@ -2958,6 +3003,8 @@ FG and BG are the main colors."
`(markup-title-4-face ((,c :inherit modus-themes-heading-5)))
`(markup-title-5-face ((,c :inherit modus-themes-heading-6)))
`(markup-verbatim-face ((,c :inherit modus-themes-prose-verbatim)))
;;;;; mbdepth
`(minibuffer-depth-indicator ((,c :inherit modus-themes-mark-alt)))
;;;;; mct
`(mct-highlight-candidate ((,c :inherit modus-themes-completion-selected)))
;;;;; messages
@ -3132,7 +3179,8 @@ FG and BG are the main colors."
`(notmuch-tag-unread ((,c :foreground ,accent-1)))
`(notmuch-tree-match-author-face ((,c :inherit notmuch-search-matching-authors)))
`(notmuch-tree-match-date-face ((,c :inherit notmuch-search-date)))
`(notmuch-tree-match-face ((,c :foreground ,fg-main)))
`(notmuch-tree-match-face ((,c :foreground ,fg-dim)))
`(notmuch-tree-match-subject-face ((,c :foreground ,fg-main)))
`(notmuch-tree-match-tag-face ((,c :inherit notmuch-tag-face)))
`(notmuch-tree-no-match-face ((,c :inherit shadow)))
`(notmuch-tree-no-match-date-face ((,c :inherit shadow)))
@ -3668,9 +3716,9 @@ FG and BG are the main colors."
`(telega-username ((,c :foreground ,cyan-cooler)))
`(telega-webpage-chat-link ((,c :background ,bg-inactive)))
`(telega-webpage-fixed ((,c :inherit modus-themes-fixed-pitch :height 0.85)))
`(telega-webpage-header ((,c :inherit modus-themes-variable-pitch :height 1.3)))
`(telega-webpage-header ((,c :height 1.3)))
`(telega-webpage-preformatted ((,c :inherit modus-themes-fixed-pitch :background ,bg-inactive)))
`(telega-webpage-subheader ((,c :inherit modus-themes-variable-pitch :height 1.15)))
`(telega-webpage-subheader ((,c :height 1.15)))
;;;;; terraform-mode
`(terraform--resource-name-face ((,c :foreground ,keyword)))
`(terraform--resource-type-face ((,c :foreground ,type)))
@ -3815,6 +3863,12 @@ FG and BG are the main colors."
`(vimish-fold-fringe ((,c :foreground ,cyan)))
`(vimish-fold-mouse-face ((,c :inherit modus-themes-intense-blue)))
`(vimish-fold-overlay ((,c :background ,bg-inactive)))
;;;;; viper
`(viper-search ((,c :inherit modus-themes-search-current)))
`(viper-replace-overlay ((,c :inherit modus-themes-search-replace)))
`(viper-minibuffer-emacs (( )))
`(viper-minibuffer-insert (( )))
`(viper-minibuffer-vi (( )))
;;;;; visible-mark
`(visible-mark-active ((,c :background ,bg-blue-intense)))
`(visible-mark-face1 ((,c :background ,bg-cyan-intense)))
@ -3877,7 +3931,7 @@ FG and BG are the main colors."
`(web-mode-css-string-face ((,c :inherit web-mode-string-face)))
`(web-mode-css-variable-face ((,c :inherit font-lock-variable-name-face)))
`(web-mode-current-column-highlight-face ((,c :background ,bg-inactive)))
`(web-mode-current-element-highlight-face ((,c :inherit modus-themes-cyan-subtle)))
`(web-mode-current-element-highlight-face ((,c :inherit modus-themes-subtle-cyan)))
`(web-mode-doctype-face ((,c :inherit font-lock-doc-face)))
`(web-mode-error-face ((,c :inherit error)))
`(web-mode-filter-face ((,c :inherit font-lock-function-name-face)))
@ -3952,6 +4006,10 @@ FG and BG are the main colors."
`(window-divider ((,c :foreground ,border)))
`(window-divider-first-pixel ((,c :foreground ,bg-inactive)))
`(window-divider-last-pixel ((,c :foreground ,bg-inactive)))
;;;;; window-tool-bar-mode
`(window-tool-bar-button ((,c :inherit modus-themes-button)))
`(window-tool-bar-button-hover ((,c :inherit (highlight modus-themes-button))))
`(window-tool-bar-button-disabled ((,c :inherit modus-themes-button :background ,bg-button-inactive :foreground ,fg-button-inactive)))
;;;;; widget
`(widget-button ((,c :inherit bold :foreground ,fg-link)))
`(widget-button-pressed ((,c :inherit widget-button :foreground ,fg-link-visited)))
@ -4079,6 +4137,10 @@ FG and BG are the main colors."
,fg-term-magenta
,fg-term-cyan
,fg-term-white])
;;;; viper
`(viper-replace-overlay-cursor-color ,err)
`(viper-insert-state-cursor-color ,info)
`(viper-emacs-state-cursor-color ,fg-main)
;;;; xterm-color
`(xterm-color-names
[,fg-term-black

View file

@ -134,11 +134,19 @@ standard)."
(bg-magenta-nuanced "#2f0c3f")
(bg-cyan-nuanced "#042837")
;;; Uncommon accent backgrounds
;;; Uncommon accent background and foreground pairs
(bg-clay "#49191a")
(fg-clay "#f1b090")
(bg-ochre "#462f20")
(fg-ochre "#e0d09c")
(bg-ochre "#442c2f")
(bg-lavender "#38325c")
(bg-sage "#0f3d30")
(fg-lavender "#dfc0f0")
(bg-sage "#143e32")
(fg-sage "#c3e7d4")
;;; Graphs
@ -248,19 +256,24 @@ standard)."
;;;; Code mappings
(bracket fg-main)
(builtin magenta-warmer)
(comment yellow-cooler)
(constant blue-cooler)
(docstring cyan-faint)
(delimiter fg-main)
(docmarkup magenta-faint)
(docstring cyan-faint)
(fnname magenta)
(keyword magenta-cooler)
(number fg-main)
(operator fg-main)
(preprocessor red-cooler)
(punctuation fg-main)
(rx-backslash blue-cooler)
(rx-construct yellow-cooler)
(string blue-warmer)
(type cyan-cooler)
(variable cyan)
(rx-construct yellow-cooler)
(rx-backslash blue-cooler)
;;;; Accent mappings
@ -483,6 +496,19 @@ Semantic color mappings have the form (MAPPING-NAME COLOR-NAME)
with both as symbols. The latter is a named color that already
exists in the palette and is associated with a HEX-VALUE.")
(defcustom modus-vivendi-deuteranopia-palette-user nil
"Like the `modus-vivendi-deuteranopia-palette' for user-defined entries.
This is meant to extend the palette with custom named colors and/or
semantic palette mappings. Those may then be used in combination with
palette overrides (also see `modus-themes-common-palette-overrides' and
`modus-vivendi-deuteranopia-palette-overrides')."
:group 'modus-themes
:package-version '(modus-themes . "4.5.0")
:type '(repeat (list symbol (choice symbol string)))
:set #'modus-themes--set-option
:initialize #'custom-initialize-default
:link '(info-link "(modus-themes) Option to extend the palette for use with overrides"))
(defcustom modus-vivendi-deuteranopia-palette-overrides nil
"Overrides for `modus-vivendi-deuteranopia-palette'.

View file

@ -132,11 +132,19 @@ which corresponds to a minimum contrast in relative luminance of
(bg-magenta-nuanced "#2f0c3f")
(bg-cyan-nuanced "#042837")
;;; Uncommon accent backgrounds
;;; Uncommon accent background and foreground pairs
(bg-clay "#49191a")
(fg-clay "#f1b090")
(bg-ochre "#462f20")
(fg-ochre "#e0d09c")
(bg-ochre "#442c2f")
(bg-lavender "#38325c")
(bg-sage "#0f3d30")
(fg-lavender "#dfc0f0")
(bg-sage "#143e32")
(fg-sage "#c3e7d4")
;;; Graphs
@ -246,19 +254,24 @@ which corresponds to a minimum contrast in relative luminance of
;;;; Code mappings
(bracket fg-main)
(builtin magenta-warmer)
(comment fg-dim)
(constant blue-cooler)
(docstring cyan-faint)
(delimiter fg-main)
(docmarkup magenta-faint)
(docstring cyan-faint)
(fnname magenta)
(keyword magenta-cooler)
(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-construct green-cooler)
(rx-backslash magenta)
;;;; Accent mappings
@ -481,6 +494,19 @@ Semantic color mappings have the form (MAPPING-NAME COLOR-NAME)
with both as symbols. The latter is a named color that already
exists in the palette and is associated with a HEX-VALUE.")
(defcustom modus-vivendi-palette-user nil
"Like the `modus-vivendi--palette' for user-defined entries.
This is meant to extend the palette with custom named colors and/or
semantic palette mappings. Those may then be used in combination with
palette overrides (also see `modus-themes-common-palette-overrides' and
`modus-vivendi--palette-overrides')."
:group 'modus-themes
:package-version '(modus-themes . "4.5.0")
:type '(repeat (list symbol (choice symbol string)))
:set #'modus-themes--set-option
:initialize #'custom-initialize-default
:link '(info-link "(modus-themes) Option to extend the palette for use with overrides"))
(defcustom modus-vivendi-palette-overrides nil
"Overrides for `modus-vivendi-palette'.

View file

@ -132,11 +132,19 @@ which corresponds to a minimum contrast in relative luminance of
(bg-magenta-nuanced "#2f0c3f")
(bg-cyan-nuanced "#042837")
;;; Uncommon accent backgrounds
;;; Uncommon accent background and foreground pairs
(bg-clay "#49191a")
(fg-clay "#f1b090")
(bg-ochre "#462f20")
(fg-ochre "#e0d09c")
(bg-ochre "#442c2f")
(bg-lavender "#38325c")
(bg-sage "#0f3d30")
(fg-lavender "#dfc0f0")
(bg-sage "#143e32")
(fg-sage "#c3e7d4")
;;; Graphs
@ -246,19 +254,24 @@ which corresponds to a minimum contrast in relative luminance of
;;;; Code mappings
(bracket fg-main)
(builtin magenta-warmer)
(comment red-faint)
(constant blue-cooler)
(docstring cyan-faint)
(delimiter fg-main)
(docmarkup magenta-faint)
(docstring cyan-faint)
(fnname magenta)
(keyword magenta-cooler)
(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-construct green-cooler)
(rx-backslash magenta)
;;;; Accent mappings
@ -481,6 +494,19 @@ Semantic color mappings have the form (MAPPING-NAME COLOR-NAME)
with both as symbols. The latter is a named color that already
exists in the palette and is associated with a HEX-VALUE.")
(defcustom modus-vivendi-tinted-palette-user nil
"Like the `modus-vivendi-tinted-palette' for user-defined entries.
This is meant to extend the palette with custom named colors and/or
semantic palette mappings. Those may then be used in combination with
palette overrides (also see `modus-themes-common-palette-overrides' and
`modus-vivendi-tinted-palette-overrides')."
:group 'modus-themes
:package-version '(modus-themes . "4.5.0")
:type '(repeat (list symbol (choice symbol string)))
:set #'modus-themes--set-option
:initialize #'custom-initialize-default
:link '(info-link "(modus-themes) Option to extend the palette for use with overrides"))
(defcustom modus-vivendi-tinted-palette-overrides nil
"Overrides for `modus-vivendi-tinted-palette'.

View file

@ -134,11 +134,19 @@ standard)."
(bg-magenta-nuanced "#2f0c3f")
(bg-cyan-nuanced "#042837")
;;; Uncommon accent backgrounds
;;; Uncommon accent background and foreground pairs
(bg-clay "#49191a")
(fg-clay "#f1b090")
(bg-ochre "#462f20")
(fg-ochre "#e0d09c")
(bg-ochre "#442c2f")
(bg-lavender "#38325c")
(bg-sage "#0f3d30")
(fg-lavender "#dfc0f0")
(bg-sage "#143e32")
(fg-sage "#c3e7d4")
;;; Graphs
@ -248,19 +256,24 @@ standard)."
;;;; Code mappings
(bracket fg-main)
(builtin magenta)
(comment red-faint)
(constant green-faint)
(docstring fg-alt)
(delimiter fg-main)
(docmarkup magenta-faint)
(docstring fg-alt)
(fnname cyan-warmer)
(keyword red-cooler)
(number fg-main)
(operator fg-main)
(preprocessor red-warmer)
(punctuation fg-main)
(rx-backslash magenta)
(rx-construct red)
(string cyan)
(type blue-warmer)
(variable cyan-cooler)
(rx-construct red)
(rx-backslash magenta)
;;;; Accent mappings
@ -483,6 +496,19 @@ Semantic color mappings have the form (MAPPING-NAME COLOR-NAME)
with both as symbols. The latter is a named color that already
exists in the palette and is associated with a HEX-VALUE.")
(defcustom modus-vivendi-tritanopia-palette-user nil
"Like the `modus-vivendi-tritanopia-palette' for user-defined entries.
This is meant to extend the palette with custom named colors and/or
semantic palette mappings. Those may then be used in combination with
palette overrides (also see `modus-themes-common-palette-overrides' and
`modus-vivendi-tritanopia-palette-overrides')."
:group 'modus-themes
:package-version '(modus-themes . "4.5.0")
:type '(repeat (list symbol (choice symbol string)))
:set #'modus-themes--set-option
:initialize #'custom-initialize-default
:link '(info-link "(modus-themes) Option to extend the palette for use with overrides"))
(defcustom modus-vivendi-tritanopia-palette-overrides nil
"Overrides for `modus-vivendi-tritanopia-palette'.