mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-06 06:20:55 -08:00
Update to modus-themes version 5.0.0
The release notes: <https://protesilaos.com/codelog/2025-11-01-emacs-modus-themes-5-0-0/>.
This commit is contained in:
parent
1d8b75f4b8
commit
a9bac6585f
10 changed files with 5406 additions and 5748 deletions
|
|
@ -4,9 +4,9 @@
|
||||||
#+language: en
|
#+language: en
|
||||||
#+options: ':t toc:nil author:t email:t num:t
|
#+options: ':t toc:nil author:t email:t num:t
|
||||||
#+startup: content
|
#+startup: content
|
||||||
#+macro: stable-version 4.8.0
|
#+macro: stable-version 5.0.0
|
||||||
#+macro: release-date 2025-06-11
|
#+macro: release-date 2025-11-01
|
||||||
#+macro: development-version 4.9.0-dev
|
#+macro: development-version 5.1.0-dev
|
||||||
#+macro: file @@texinfo:@file{@@$1@@texinfo:}@@
|
#+macro: file @@texinfo:@file{@@$1@@texinfo:}@@
|
||||||
#+macro: space @@texinfo:@: @@
|
#+macro: space @@texinfo:@: @@
|
||||||
#+macro: kbd @@texinfo:@kbd{@@$1@@texinfo:}@@
|
#+macro: kbd @@texinfo:@kbd{@@$1@@texinfo:}@@
|
||||||
|
|
@ -143,10 +143,10 @@ and covers everything that goes into every tagged release of the themes.
|
||||||
:custom_id: h:1af85373-7f81-4c35-af25-afcef490c111
|
:custom_id: h:1af85373-7f81-4c35-af25-afcef490c111
|
||||||
:end:
|
:end:
|
||||||
|
|
||||||
The Modus themes are distributed with Emacs starting with version 28.1.
|
The Modus themes are distributed with Emacs starting with version
|
||||||
On older versions of Emacs, they can be installed using Emacs' package
|
28.1. On Emacs 27, they can be installed using Emacs' package manager
|
||||||
manager or manually from their code repository. There also exist
|
or manually from their code repository. There also exist packages for
|
||||||
packages for distributions of GNU/Linux.
|
distributions of GNU/Linux.
|
||||||
|
|
||||||
Emacs 28 ships with ~modus-themes~ version =1.6.0=. Emacs 29 includes
|
Emacs 28 ships with ~modus-themes~ version =1.6.0=. Emacs 29 includes
|
||||||
version =3.0.0=. Emacs 30 provides a newer, refactored version that
|
version =3.0.0=. Emacs 30 provides a newer, refactored version that
|
||||||
|
|
@ -365,7 +365,11 @@ customizations ([[#h:f4651d55-8c07-46aa-b52b-bed1e53463bb][Advanced customizatio
|
||||||
|
|
||||||
#+findex: modus-themes-toggle
|
#+findex: modus-themes-toggle
|
||||||
#+findex: modus-themes-select
|
#+findex: modus-themes-select
|
||||||
The commands ~modus-themes-toggle~ and ~modus-themes-select~ use
|
#+findex: modus-themes-rotate
|
||||||
|
#+findex: modus-themes-load-random
|
||||||
|
#+findex: modus-themes-select
|
||||||
|
The commands ~modus-themes-toggle~, ~modus-themes-rotate~,
|
||||||
|
~modus-themes-load-random~, and ~modus-themes-select~ use
|
||||||
~modus-themes-load-theme~ internally ([[#h:4fbfed66-5a89-447a-a07d-a03f6819c5bd][Option for which themes to toggle]]).
|
~modus-themes-load-theme~ internally ([[#h:4fbfed66-5a89-447a-a07d-a03f6819c5bd][Option for which themes to toggle]]).
|
||||||
The aforementioned hold true for them as well.
|
The aforementioned hold true for them as well.
|
||||||
|
|
||||||
|
|
@ -386,10 +390,6 @@ function must be used in this case as a replacement. For example:
|
||||||
(setq modus-themes-bold-constructs t
|
(setq modus-themes-bold-constructs t
|
||||||
modus-themes-italic-constructs t)
|
modus-themes-italic-constructs t)
|
||||||
|
|
||||||
;; Maybe define some palette overrides, such as by using our presets
|
|
||||||
(setq modus-themes-common-palette-overrides
|
|
||||||
modus-themes-preset-overrides-intense)
|
|
||||||
|
|
||||||
;; Load the theme of choice (built-in themes are always "safe" so they
|
;; Load the theme of choice (built-in themes are always "safe" so they
|
||||||
;; do not need the `no-require' argument of `load-theme').
|
;; do not need the `no-require' argument of `load-theme').
|
||||||
(load-theme 'modus-operandi)
|
(load-theme 'modus-operandi)
|
||||||
|
|
@ -397,7 +397,7 @@ function must be used in this case as a replacement. For example:
|
||||||
(define-key global-map (kbd "<f5>") #'modus-themes-toggle)
|
(define-key global-map (kbd "<f5>") #'modus-themes-toggle)
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
** Sample configuration with and without use-package
|
** Sample configuration
|
||||||
:properties:
|
:properties:
|
||||||
:custom_id: h:e979734c-a9e1-4373-9365-0f2cd36107b8
|
:custom_id: h:e979734c-a9e1-4373-9365-0f2cd36107b8
|
||||||
:end:
|
:end:
|
||||||
|
|
@ -413,19 +413,15 @@ package configurations in their setup. We use this as an example:
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
;;; For the built-in themes which cannot use `require'.
|
;;; For the built-in themes which cannot use `require'.
|
||||||
(use-package emacs
|
(use-package emacs
|
||||||
:config
|
:init
|
||||||
(require-theme 'modus-themes) ; `require-theme' is ONLY for the built-in Modus themes
|
(require-theme 'modus-themes) ; `require-theme' is ONLY for the built-in Modus themes
|
||||||
|
:config
|
||||||
;; Add all your customizations prior to loading the themes
|
;; Add all your customizations prior to loading the themes
|
||||||
(setq modus-themes-italic-constructs t
|
(setq modus-themes-italic-constructs t
|
||||||
modus-themes-bold-constructs nil)
|
modus-themes-bold-constructs nil)
|
||||||
|
|
||||||
;; Maybe define some palette overrides, such as by using our presets
|
|
||||||
(setq modus-themes-common-palette-overrides
|
|
||||||
modus-themes-preset-overrides-intense)
|
|
||||||
|
|
||||||
;; Load the theme of your choice.
|
;; Load the theme of your choice.
|
||||||
(load-theme 'modus-operandi)
|
(modus-themes-load-theme 'modus-operandi)
|
||||||
|
|
||||||
(define-key global-map (kbd "<f5>") #'modus-themes-toggle))
|
(define-key global-map (kbd "<f5>") #'modus-themes-toggle))
|
||||||
|
|
||||||
|
|
@ -439,12 +435,8 @@ package configurations in their setup. We use this as an example:
|
||||||
(setq modus-themes-italic-constructs t
|
(setq modus-themes-italic-constructs t
|
||||||
modus-themes-bold-constructs nil)
|
modus-themes-bold-constructs nil)
|
||||||
|
|
||||||
;; Maybe define some palette overrides, such as by using our presets
|
|
||||||
(setq modus-themes-common-palette-overrides
|
|
||||||
modus-themes-preset-overrides-intense)
|
|
||||||
|
|
||||||
;; Load the theme of your choice.
|
;; Load the theme of your choice.
|
||||||
(load-theme 'modus-operandi)
|
(modus-themes-load-theme 'modus-operandi)
|
||||||
|
|
||||||
(define-key global-map (kbd "<f5>") #'modus-themes-toggle))
|
(define-key global-map (kbd "<f5>") #'modus-themes-toggle))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
@ -458,12 +450,8 @@ The same without ~use-package~:
|
||||||
(setq modus-themes-italic-constructs t
|
(setq modus-themes-italic-constructs t
|
||||||
modus-themes-bold-constructs nil)
|
modus-themes-bold-constructs nil)
|
||||||
|
|
||||||
;; Maybe define some palette overrides, such as by using our presets
|
|
||||||
(setq modus-themes-common-palette-overrides
|
|
||||||
modus-themes-preset-overrides-intense)
|
|
||||||
|
|
||||||
;; Load the theme of your choice:
|
;; Load the theme of your choice:
|
||||||
(load-theme 'modus-operandi :no-confirm)
|
(modus-themes-load-theme 'modus-operandi :no-confirm)
|
||||||
|
|
||||||
(define-key global-map (kbd "<f5>") #'modus-themes-toggle)
|
(define-key global-map (kbd "<f5>") #'modus-themes-toggle)
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
@ -516,7 +504,7 @@ session, are better off using something like this:
|
||||||
|
|
||||||
[[#h:b40aca50-a3b2-4c43-be58-2c26fcd14237][Toggle themes without reloading them]].
|
[[#h:b40aca50-a3b2-4c43-be58-2c26fcd14237][Toggle themes without reloading them]].
|
||||||
|
|
||||||
[[#h:e979734c-a9e1-4373-9365-0f2cd36107b8][Sample configuration with and without use-package]].
|
[[#h:e979734c-a9e1-4373-9365-0f2cd36107b8][Sample configuration]].
|
||||||
|
|
||||||
With the above granted, other sections of the manual discuss how to
|
With the above granted, other sections of the manual discuss how to
|
||||||
configure custom faces, where ~load-theme~ is expected, though
|
configure custom faces, where ~load-theme~ is expected, though
|
||||||
|
|
@ -548,7 +536,6 @@ reloaded for changes to take effect.
|
||||||
modus-themes-bold-constructs nil
|
modus-themes-bold-constructs nil
|
||||||
modus-themes-mixed-fonts t
|
modus-themes-mixed-fonts t
|
||||||
modus-themes-variable-pitch-ui nil
|
modus-themes-variable-pitch-ui nil
|
||||||
modus-themes-custom-auto-reload t
|
|
||||||
modus-themes-disable-other-themes t
|
modus-themes-disable-other-themes t
|
||||||
|
|
||||||
;; Options for `modus-themes-prompts' are either nil (the
|
;; Options for `modus-themes-prompts' are either nil (the
|
||||||
|
|
@ -585,34 +572,6 @@ reloaded for changes to take effect.
|
||||||
;; document extensively in this manual.
|
;; document extensively in this manual.
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
** Option for reloading the theme on custom change
|
|
||||||
:properties:
|
|
||||||
:alt_title: Custom reload theme
|
|
||||||
:description: Toggle auto-reload of the theme when setting custom variables
|
|
||||||
:custom_id: h:9001527a-4e2c-43e0-98e8-3ef72d770639
|
|
||||||
:end:
|
|
||||||
#+vindex: modus-themes-custom-auto-reload
|
|
||||||
|
|
||||||
Brief: Toggle reloading of the active theme when an option is changed
|
|
||||||
through the Custom UI.
|
|
||||||
|
|
||||||
Symbol: ~modus-themes-custom-auto-reload~ (=boolean= type)
|
|
||||||
|
|
||||||
Possible values:
|
|
||||||
|
|
||||||
1. ~nil~
|
|
||||||
2. ~t~ (default)
|
|
||||||
|
|
||||||
All theme user options take effect when a theme is loaded. Any
|
|
||||||
subsequent changes require the theme to be reloaded.
|
|
||||||
|
|
||||||
When this variable has a non-~nil~ value, any change made via the Custom
|
|
||||||
UI or related functions such as ~customize-set-variable~ and ~setopt~
|
|
||||||
(Emacs 29), will trigger a reload automatically.
|
|
||||||
|
|
||||||
With a ~nil~ value, changes to user options have no further consequences:
|
|
||||||
the user must manually reload the theme ([[#h:3f3c3728-1b34-437d-9d0c-b110f5b161a9][Enable and load]]).
|
|
||||||
|
|
||||||
** Option for disabling other themes while loading Modus
|
** Option for disabling other themes while loading Modus
|
||||||
:properties:
|
:properties:
|
||||||
:alt_title: Disable other themes
|
:alt_title: Disable other themes
|
||||||
|
|
@ -630,10 +589,16 @@ Possible values:
|
||||||
1. ~nil~
|
1. ~nil~
|
||||||
2. ~t~ (default)
|
2. ~t~ (default)
|
||||||
|
|
||||||
When the value is non-~nil~, the commands ~modus-themes-toggle~ and
|
#+findex: modus-themes-toggle
|
||||||
|
#+findex: modus-themes-rotate
|
||||||
|
#+findex: modus-themes-load-random
|
||||||
|
#+findex: modus-themes-select
|
||||||
|
#+findex: modus-themes-load-theme
|
||||||
|
When the value is non-~nil~, the commands ~modus-themes-toggle~,
|
||||||
|
~modus-themes-rotate~, ~modus-themes-load-random~, and
|
||||||
~modus-themes-select~, as well as the ~modus-themes-load-theme~
|
~modus-themes-select~, as well as the ~modus-themes-load-theme~
|
||||||
function, will disable all other themes while loading the specified
|
function, will disable all other themes while loading the specified
|
||||||
Modus theme ([[#h:4fbfed66-5a89-447a-a07d-a03f6819c5bd][Option for which themes to toggle]]). This is done to
|
Modus theme ([[#h:4fbfed66-5a89-447a-a07d-a03f6819c5bd][Option for which themes to toggle]]). This is done to
|
||||||
ensure that Emacs does not blend two or more themes: such blends lead
|
ensure that Emacs does not blend two or more themes: such blends lead
|
||||||
to awkward results that undermine the work of the designer.
|
to awkward results that undermine the work of the designer.
|
||||||
|
|
||||||
|
|
@ -734,24 +699,27 @@ Possible values:
|
||||||
:END:
|
:END:
|
||||||
|
|
||||||
#+findex: modus-themes-rotate
|
#+findex: modus-themes-rotate
|
||||||
Brief: Specify which themes to rotate among when using the command
|
Brief: Specify which themes to rotate through when using the command
|
||||||
~modus-themes-rotate~.
|
~modus-themes-rotate~.
|
||||||
|
|
||||||
#+vindex: modus-themes-to-rotate
|
#+vindex: modus-themes-to-rotate
|
||||||
Symbol: ~modus-themes-to-rotate~ (=list= type)
|
Symbol: ~modus-themes-to-rotate~ (=list= type)
|
||||||
|
|
||||||
Default value: =modus-themes-items= (which includes all the Modus themes)
|
Default value: nil
|
||||||
|
|
||||||
Possible values:
|
Possible values:
|
||||||
|
|
||||||
- ~modus-operandi~
|
#+vindex: modus-themes-items
|
||||||
- ~modus-operandi-tinted~
|
- Any of the themes listed in the value of the variable ~modus-themes-items~.
|
||||||
- ~modus-operandi-deuteranopia~
|
#+findex: modus-themes-get-themes
|
||||||
- ~modus-operandi-tritanopia~
|
- Any of the themes returned by the function ~modus-themes-get-themes~
|
||||||
- ~modus-vivendi~
|
([[#h:86eb375b-9be4-43ce-879a-0686a524a63b][Build on top of the Modus themes]]).
|
||||||
- ~modus-vivendi-tinted~
|
|
||||||
- ~modus-vivendi-deuteranopia~
|
When the value is a list of themes, ~modus-themes-rotate~ will go
|
||||||
- ~modus-vivendi-tritanopia~
|
through them from left to right. With an optional prefix argument
|
||||||
|
({{{kbd(C-u)}}} by default), it will move in reverse. If the value is
|
||||||
|
~nil~, the command will perform the same action for all the themes
|
||||||
|
returned by the function ~modus-themes-get-themes~.
|
||||||
|
|
||||||
** Option for font mixing
|
** Option for font mixing
|
||||||
:properties:
|
:properties:
|
||||||
|
|
@ -1195,8 +1163,8 @@ a cyan hue to keywords:
|
||||||
(keyword cyan-cooler)))
|
(keyword cyan-cooler)))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
Changes take effect upon theme reload ([[#h:9001527a-4e2c-43e0-98e8-3ef72d770639][Custom reload theme]]).
|
Changes take effect upon theme reload. Overrides are removed by
|
||||||
Overrides are removed by setting their variable to a ~nil~ value.
|
setting their variable to a ~nil~ value.
|
||||||
|
|
||||||
The common accented foregrounds in each palette follow a predictable
|
The common accented foregrounds in each palette follow a predictable
|
||||||
naming scheme: =HUE{,-warmer,-cooler,-faint,-intense}=. =HUE= is one
|
naming scheme: =HUE{,-warmer,-cooler,-faint,-intense}=. =HUE= is one
|
||||||
|
|
@ -1309,13 +1277,13 @@ Examples demonstrating how to use the aforementioned:
|
||||||
#+findex: modus-themes-list-colors
|
#+findex: modus-themes-list-colors
|
||||||
The command ~modus-themes-list-colors~ uses minibuffer completion to
|
The command ~modus-themes-list-colors~ uses minibuffer completion to
|
||||||
select an item from the Modus themes and then produces a buffer with
|
select an item from the Modus themes and then produces a buffer with
|
||||||
previews of all of its color palette entries.
|
previews of all of its color palette entries ([[#h:4952cd81-8a9a-4a4e-9867-3e63b9ef2f7e][Commands for the preview palette buffer]]).
|
||||||
|
|
||||||
#+findex: modus-themes-list-colors-current
|
#+findex: modus-themes-list-colors-current
|
||||||
The command ~modus-themes-list-colors-current~ skips the minibuffer
|
The command ~modus-themes-list-colors-current~ skips the minibuffer
|
||||||
selection process to produce 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
|
When called with a prefix argument {{{kbd(C-u)}}} with the default key
|
||||||
bindings), these commands will show a preview of the palette's
|
bindings), these commands will show a preview of the palette's
|
||||||
semantic color mappings instead of the full palette ([[#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]]).
|
||||||
|
|
||||||
|
|
@ -1336,6 +1304,51 @@ contents are, such as =*modus-operandi-list-all*= for the entirety of
|
||||||
the palette (named colors as well as semantic color mappings) and
|
the palette (named colors as well as semantic color mappings) and
|
||||||
==*modus-operandi-list-mappings*= for the mappings only.
|
==*modus-operandi-list-mappings*= for the mappings only.
|
||||||
|
|
||||||
|
** Commands for the preview palette buffer
|
||||||
|
:PROPERTIES:
|
||||||
|
:CUSTOM_ID: h:4952cd81-8a9a-4a4e-9867-3e63b9ef2f7e
|
||||||
|
:END:
|
||||||
|
|
||||||
|
#+findex: modus-themes-preview-mode
|
||||||
|
#+vindex: modus-themes-preview-mode-map
|
||||||
|
The palette preview buffer uses the major mode ~modus-themes-preview-mode~,
|
||||||
|
which provides the ~modus-themes-preview-mode-map~ ([[#h:f4d4b71b-2ca5-4c3d-b0b4-9bfd7aa7fb4d][Preview theme colors]]).
|
||||||
|
The following key bindings are available by default:
|
||||||
|
|
||||||
|
| Default key binding | Name of the command |
|
||||||
|
|---------------------+----------------------------------------|
|
||||||
|
| =w= | ~modus-themes-preview-mode-copy-color~ |
|
||||||
|
| =W= | ~modus-themes-preview-mode-copy-entry~ |
|
||||||
|
| =m= | ~modus-themes-preview-mode-mark~ |
|
||||||
|
| =M= | ~modus-themes-preview-mode-mark-all~ |
|
||||||
|
| =u= | ~modus-themes-preview-mode-unmark~ |
|
||||||
|
| =U= | ~modus-themes-preview-mode-unmark-all~ |
|
||||||
|
|
||||||
|
#+findex: modus-themes-preview-mode-copy-color
|
||||||
|
The command ~modus-themes-preview-mode-copy-color~ copies the resolved
|
||||||
|
color value of the entry at point or of all the marked entries. This
|
||||||
|
means that it always returns a string with the value of the color, not
|
||||||
|
a symbolic representation of it. For example, if =cursor= is mapped to
|
||||||
|
=red-warmer=, this command will return ="#972500"= while previewing
|
||||||
|
the palette of the ~modus-operandi~ theme.
|
||||||
|
|
||||||
|
#+findex: modus-themes-preview-mode-copy-entry
|
||||||
|
The command ~modus-themes-preview-mode-copy-entry~ copies the palette
|
||||||
|
entry as such. This is how the entry is in the underlying palette
|
||||||
|
definition. For example, it will return =(magenta-cooler "#531ab6")=
|
||||||
|
or =(keybind blue-warmer)=. Copying those is useful as a starting
|
||||||
|
point for writing palette overrides ([[#h:34c7a691-19bb-4037-8d2f-67a07edab150][Option for palette overrides]]).
|
||||||
|
|
||||||
|
#+findex: modus-themes-preview-mode-mark
|
||||||
|
#+findex: modus-themes-preview-mode-mark-all
|
||||||
|
#+findex: modus-themes-preview-mode-unmark
|
||||||
|
#+findex: modus-themes-preview-mode-unmark-all
|
||||||
|
The commands ~modus-themes-preview-mode-mark~, ~modus-themes-preview-mode-mark-all~,
|
||||||
|
~modus-themes-preview-mode-unmark~, and ~modus-themes-preview-mode-unmark-all~,
|
||||||
|
will add or remove a marker from the current or affected lines. These
|
||||||
|
marks influence the result of the aforementioned commands for copying
|
||||||
|
colors and palette entries.
|
||||||
|
|
||||||
* Use colors from the Modus themes palette
|
* Use colors from the Modus themes palette
|
||||||
:PROPERTIES:
|
:PROPERTIES:
|
||||||
:CUSTOM_ID: h:33460ae8-984b-40fd-8baa-383cc5fc2698
|
:CUSTOM_ID: h:33460ae8-984b-40fd-8baa-383cc5fc2698
|
||||||
|
|
@ -4141,6 +4154,244 @@ In this document, we cover ~modus-themes-after-load-theme-hook~ though
|
||||||
the user can replace it with ~after-enable-theme-hook~ should they
|
the user can replace it with ~after-enable-theme-hook~ should they
|
||||||
need to (provided they understand the implications).
|
need to (provided they understand the implications).
|
||||||
|
|
||||||
|
* Build on top of the Modus themes
|
||||||
|
:PROPERTIES:
|
||||||
|
:CUSTOM_ID: h:86eb375b-9be4-43ce-879a-0686a524a63b
|
||||||
|
:END:
|
||||||
|
|
||||||
|
This section concerns package developers or advanced users.
|
||||||
|
|
||||||
|
The Modus themes can be used as the basis for another theme. The
|
||||||
|
~ef-themes~ and ~standard-themes~ packages (also by Protesilaos), are
|
||||||
|
two such case. Developers may do so to benefit from the extensive
|
||||||
|
customization of the Modus themes and the fact that they are part of
|
||||||
|
core Emacs.
|
||||||
|
|
||||||
|
#+findex: modus-themes-theme
|
||||||
|
#+vindex: modus-themes-registered-items
|
||||||
|
A new theme can be instantiated with the function ~modus-themes-theme~.
|
||||||
|
It takes care to (i) declare the theme, (ii) add to it relevant
|
||||||
|
~theme-properties~, (iii) register it in the ~modus-themes-registered-items~,
|
||||||
|
(iv) make it work with all the faces and customizations documented
|
||||||
|
in this manual, and (v) ~provide-theme~ the theme.
|
||||||
|
|
||||||
|
Concretely, ~modus-themes-theme~ expects the following mandatory arguments:
|
||||||
|
|
||||||
|
- =NAME= :: The name of the new theme as a symbol, like ~modus-operandi~.
|
||||||
|
- =FAMILY= :: The collection this theme is a member of as a symbol,
|
||||||
|
like ~modus-themes~.
|
||||||
|
- =DESCRIPTION= :: A string describing the theme.
|
||||||
|
- =BACKGROUND-MODE= :: The symbol =dark= or =light=, in reference to
|
||||||
|
the theme's background color.
|
||||||
|
- =CORE-PALETTE= :: The symbol of a variable containing a palette with
|
||||||
|
named colors and semantic mappings, like ~modus-operandi-palette~. A
|
||||||
|
palette that does not have at least all the entries of a default
|
||||||
|
Modus palette will eventually not work properly because some face
|
||||||
|
definition will expect a given color. Though the macro does not
|
||||||
|
impose any check in this regard.
|
||||||
|
- =USER-PALETTE= :: The symbol of a user-defined extension to the
|
||||||
|
=CORE-PALETTE=, commensurate with it, though with arbitrary entries.
|
||||||
|
This can be nil, a fully fledged palette, or a short list of
|
||||||
|
entries. Any colors defined therein are treated the same as the
|
||||||
|
=CORE-PALETTE= and can, in practice, be used to apply distinct
|
||||||
|
styles to the =CUSTOM-FACES= and =CUSTOM-VARIABLES= (more below).
|
||||||
|
- =OVERRIDES-PALETTE= :: The symbol of a palette that contains
|
||||||
|
overrides for the above two palettes. It is functionally equivalent
|
||||||
|
to the =USER-PALETTE=, except it is meant to be customized by the
|
||||||
|
end user. Its value can also be nil.
|
||||||
|
#+vindex: modus-themes-faces
|
||||||
|
- Optional =CUSTOM-FACES= :: The symbol of a variable with list of
|
||||||
|
face definitions like those in ~modus-themes-faces~, to extend or
|
||||||
|
modify what core Modus defines. If provided, they override whatever
|
||||||
|
definition is present in ~modus-themes-faces~ in case of a conflict.
|
||||||
|
Derivative themes can thus deviate from the style of core Modus,
|
||||||
|
wherever necessary.
|
||||||
|
#+vindex: modus-themes-custom-variables
|
||||||
|
- Optional =CUSTOM-VARIABLES= :: The symbol of a variable with a list
|
||||||
|
of custom variables (typically user options) like those defined in
|
||||||
|
~modus-themes-custom-variables~. They also override the core Modus
|
||||||
|
definitions in case of a conflict.
|
||||||
|
|
||||||
|
This is an example of a theme that builds on top of ~modus-operandi~,
|
||||||
|
passing all the mandatory arguments, but not the optional ones:
|
||||||
|
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(modus-themes-theme
|
||||||
|
'ef-summer
|
||||||
|
'ef-themes
|
||||||
|
"Legible light warm pink theme with magenta, purple, gold, cyan colors."
|
||||||
|
'light
|
||||||
|
'modus-operandi-palette
|
||||||
|
'ef-summer-palette
|
||||||
|
'ef-summer-palette-overrides)
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
Here we notice how ~ef-summer~ has ~modus-operandi-palette~ as its
|
||||||
|
=CORE-PALETTE=. This means that if the ~ef-summer-palette~ lacks some
|
||||||
|
entry, the theme will still work and it will inherit the style of
|
||||||
|
~modus-operandi~ for that specific element.
|
||||||
|
|
||||||
|
The ~modus-themes-theme~ macro does not try to be smart about the
|
||||||
|
arguments it is given. It will thus not make any attempt to test if
|
||||||
|
the variables are bound, nor will it declare any customization
|
||||||
|
options. In the above example, the ~ef-summer-palette-overrides~ is a
|
||||||
|
user option that is declared in that theme's file.
|
||||||
|
|
||||||
|
In addition to defining their own colors, themes can provide an
|
||||||
|
entirely custom list of face definitions and customization options.
|
||||||
|
This mirrors the style of ~modus-themes-faces~ and
|
||||||
|
~modus-themes-custom-variables~, as already noted. For example, the
|
||||||
|
~standard-themes~ have a pseudo-3D style for their active mode line.
|
||||||
|
They are declared in this way:
|
||||||
|
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(modus-themes-theme
|
||||||
|
'standard-dark
|
||||||
|
'standard-themes
|
||||||
|
"Like the unthemed dark Emacs, but more consistent."
|
||||||
|
'dark
|
||||||
|
'modus-vivendi-palette
|
||||||
|
'standard-dark-palette
|
||||||
|
'standard-dard-palette-overrides
|
||||||
|
'standard-themes-custom-faces) ; NOTE the additional optional argument
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
The ~standard-themes-custom-faces~ in this example specifies a list of
|
||||||
|
face definitions like this:
|
||||||
|
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
;; Simplified example for illustration purposes
|
||||||
|
(defconst standard-themes-custom-faces
|
||||||
|
'(
|
||||||
|
`(mode-line ((,c :box (:style released-button :color ,border-mode-line-active))))))
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
Custom faces passed in this way can still define their semantic
|
||||||
|
palette mappings, as illustrated herein where ~border-mode-line-active~
|
||||||
|
corresponds to some named color in the palette of the active theme.
|
||||||
|
|
||||||
|
** Determine what counts as a Modus theme
|
||||||
|
:PROPERTIES:
|
||||||
|
:CUSTOM_ID: h:412e3017-81fe-4a95-97a6-225de1867757
|
||||||
|
:END:
|
||||||
|
|
||||||
|
#+findex: modus-themes-get-all-known-themes
|
||||||
|
Once the theme is instantiated, it will be listed in the return value
|
||||||
|
of the function ~modus-themes-get-all-known-themes~. This function
|
||||||
|
accepts an optional argument to filter themes by their given family,
|
||||||
|
as specified at the time of the theme's reification ([[#h:86eb375b-9be4-43ce-879a-0686a524a63b][Build on top of the Modus themes]]).
|
||||||
|
|
||||||
|
#+findex: modus-themes-get-themes
|
||||||
|
The generic function ~modus-themes-get-themes~ is how developers/users
|
||||||
|
can affect what counts as a "Modus" theme. By default,
|
||||||
|
~modus-themes-get-themes~ essentially calls the following, to only
|
||||||
|
return the themes whose family is =modus-themes=:
|
||||||
|
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(modus-themes-get-all-known-themes 'modus-themes)
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
A new method can be declared with ~cl-defmethod~ to do something else
|
||||||
|
instead. When exactly should that method come into effect is up to the
|
||||||
|
developer/user. In the ~ef-themes~, this is done via a minor mode,
|
||||||
|
that users must opt in to. Here is the complete example:
|
||||||
|
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(define-minor-mode ef-themes-take-over-modus-themes-mode
|
||||||
|
"When enabled, all Modus themes commands consider only Ef themes."
|
||||||
|
:global t
|
||||||
|
:init-value nil)
|
||||||
|
|
||||||
|
(cl-defmethod modus-themes-get-themes (&context (ef-themes-take-over-modus-themes-mode (eql t)))
|
||||||
|
(if-let* ((themes (modus-themes-get-all-known-themes 'ef-themes))
|
||||||
|
(sorted-themes (modus-themes-sort themes 'light)))
|
||||||
|
sorted-themes
|
||||||
|
ef-themes-items))
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
The ~define-minor-mode~ does not need to do anything else here. Its
|
||||||
|
corresponding function simply takes care to toggle the variable of the
|
||||||
|
same name (i.e. ~ef-themes-take-over-modus-themes-mode~) between ~nil~
|
||||||
|
and non-~nil~. The method will take effect when the minor mode is
|
||||||
|
enabled. In this scenario, "Modus" themes are only those whose family
|
||||||
|
is =ef-themes=. All the Modus commands that switch between themes will
|
||||||
|
thus only work with those Ef themes.
|
||||||
|
|
||||||
|
#+findex: modus-themes-include-derivatives-mode
|
||||||
|
For our part, we define the ~modus-themes-include-derivatives-mode~.
|
||||||
|
It is how users can opt in to the all-inclusive conception of "Modus".
|
||||||
|
In this scenario, every theme that is declared with the aforementioned
|
||||||
|
~modus-themes-theme~ will count as "Modus" and be available to all the
|
||||||
|
relevant commands for switching themes, previewing their palette, and
|
||||||
|
so on.
|
||||||
|
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(define-minor-mode modus-themes-include-derivatives-mode
|
||||||
|
"When enabled, all Modus themes commands cover derivatives as well.
|
||||||
|
Otherwise, they only consider the `modus-themes-items'.
|
||||||
|
|
||||||
|
Derivative theme projects can implement the equivalent of this minor
|
||||||
|
mode plus a method for `modus-themes-get-themes' to filter themes
|
||||||
|
accordingly."
|
||||||
|
:global t
|
||||||
|
:init-value nil)
|
||||||
|
|
||||||
|
(cl-defmethod modus-themes-get-themes (&context (modus-themes-include-derivatives-mode (eql t)))
|
||||||
|
(if-let* ((themes (modus-themes-get-all-known-themes nil))
|
||||||
|
(sorted-themes (modus-themes-sort themes 'light)))
|
||||||
|
sorted-themes
|
||||||
|
modus-themes-items))
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
** Create convenience commands to load a derivative theme
|
||||||
|
:PROPERTIES:
|
||||||
|
:CUSTOM_ID: h:6bfbb4d6-2f23-4d06-827a-8b9a91507a02
|
||||||
|
:END:
|
||||||
|
|
||||||
|
#+findex: modus-themes-define-derivative-command
|
||||||
|
In the previous section, we explored the mechanics of the
|
||||||
|
~modus-themes-get-themes~ ([[#h:412e3017-81fe-4a95-97a6-225de1867757][Determine what counts as a Modus theme]]).
|
||||||
|
Independent of that method, developers can use the macro
|
||||||
|
~modus-themes-define-derivative-command~ to define small wrappers for
|
||||||
|
Modus commands that load a theme only for a specific family of Modus
|
||||||
|
derivatives ([[#h:86eb375b-9be4-43ce-879a-0686a524a63b][Build on top of the Modus themes]]).
|
||||||
|
|
||||||
|
The ~modus-themes-define-derivative-command~ takes two mandatory
|
||||||
|
arguments:
|
||||||
|
|
||||||
|
- =FAMILY= :: the family of the Modus themes derivatives, such as ~ef-themes~.
|
||||||
|
|
||||||
|
#+vindex: ~modus-themes-define-derivative-command-known-suffixes~
|
||||||
|
- =SUFFIX= :: the suffix of the command-to-be-defined. It is one among
|
||||||
|
the symbols listed in ~modus-themes-define-derivative-command-known-suffixes~.
|
||||||
|
|
||||||
|
The suffix is appended to =FAMILY= to derive the symbol of the
|
||||||
|
command. For example, if =SUFFIX= is =rotate= and =FAMILY= is
|
||||||
|
~ef-themes~, then the symbol is ~ef-themes-rotate~.
|
||||||
|
|
||||||
|
Here is how it actually looks in the source code of the Ef themes:
|
||||||
|
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
;;;###autoload (autoload 'ef-themes-rotate "ef-themes")
|
||||||
|
(modus-themes-define-derivative-command ef-themes rotate)
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
This is what the macroexpanded form looks like:
|
||||||
|
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(defun ef-themes-rotate ()
|
||||||
|
"Like `modus-themes-rotate' but only consider members of the `ef-themes'"
|
||||||
|
(interactive)
|
||||||
|
(cl-letf (((symbol-function 'modus-themes-get-themes)
|
||||||
|
(lambda () (modus-themes-get-all-known-themes 'ef-themes))))
|
||||||
|
(call-interactively 'modus-themes-rotate)))
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
Sometimes, it makes no sense to re-use an existing Modus command (e.g.
|
||||||
|
because the developer wants to introduce a user option to affect what
|
||||||
|
the command is doing), though this approach with the ~cl-letf~ can
|
||||||
|
still prove useful.
|
||||||
|
|
||||||
* Face coverage
|
* Face coverage
|
||||||
:properties:
|
:properties:
|
||||||
:custom_id: h:a9c8f29d-7f72-4b54-b74b-ddefe15d6a19
|
:custom_id: h:a9c8f29d-7f72-4b54-b74b-ddefe15d6a19
|
||||||
|
|
@ -4165,7 +4416,6 @@ have lots of extensions, so the "full support" may not be 100% true…
|
||||||
|
|
||||||
+ abbrev
|
+ abbrev
|
||||||
+ ace-window
|
+ ace-window
|
||||||
+ agda2-mode
|
|
||||||
+ all-the-icons
|
+ all-the-icons
|
||||||
+ all-the-icons-dired
|
+ all-the-icons-dired
|
||||||
+ all-the-icons-ibuffer
|
+ all-the-icons-ibuffer
|
||||||
|
|
@ -4230,11 +4480,11 @@ have lots of extensions, so the "full support" may not be 100% true…
|
||||||
+ eldoc-box
|
+ eldoc-box
|
||||||
+ elfeed
|
+ elfeed
|
||||||
+ elfeed-score
|
+ elfeed-score
|
||||||
|
+ elisp (Emacs Lisp semantic highlighting)
|
||||||
+ elpher
|
+ elpher
|
||||||
+ embark
|
+ embark
|
||||||
+ ement
|
+ ement
|
||||||
+ emms
|
+ emms
|
||||||
+ enh-ruby-mode (enhanced-ruby-mode)
|
|
||||||
+ epa
|
+ epa
|
||||||
+ erc
|
+ erc
|
||||||
+ ert
|
+ ert
|
||||||
|
|
@ -4265,6 +4515,7 @@ have lots of extensions, so the "full support" may not be 100% true…
|
||||||
+ golden-ratio-scroll-screen
|
+ golden-ratio-scroll-screen
|
||||||
+ helpful
|
+ helpful
|
||||||
+ hexl-mode
|
+ hexl-mode
|
||||||
|
+ hideshow
|
||||||
+ highlight-numbers
|
+ highlight-numbers
|
||||||
+ highlight-parentheses ([[#h:24bab397-dcb2-421d-aa6e-ec5bd622b913][Note on highlight-parentheses.el]])
|
+ highlight-parentheses ([[#h:24bab397-dcb2-421d-aa6e-ec5bd622b913][Note on highlight-parentheses.el]])
|
||||||
+ highlight-thing
|
+ highlight-thing
|
||||||
|
|
@ -4280,7 +4531,6 @@ have lots of extensions, so the "full support" may not be 100% true…
|
||||||
+ iflipb
|
+ iflipb
|
||||||
+ image-dired
|
+ image-dired
|
||||||
+ imenu-list
|
+ imenu-list
|
||||||
+ indium
|
|
||||||
+ info
|
+ info
|
||||||
+ info+ (info-plus)
|
+ info+ (info-plus)
|
||||||
+ info-colors
|
+ info-colors
|
||||||
|
|
@ -5696,17 +5946,18 @@ The Modus themes are a collective effort. Every bit of work matters.
|
||||||
+ Contributions to code or documentation :: Aleksei Gusev, Alex
|
+ Contributions to code or documentation :: Aleksei Gusev, Alex
|
||||||
Griffin, Anders Johansson, Antonio Ruiz, Basil L.{{{space()}}}
|
Griffin, Anders Johansson, Antonio Ruiz, Basil L.{{{space()}}}
|
||||||
Contovounesios, Björn Lindström, Carlo Zancanaro, Christian Tietze,
|
Contovounesios, Björn Lindström, Carlo Zancanaro, Christian Tietze,
|
||||||
Daniel Mendler, David Edmondson, Eli Zaretskii, Fritz Grabo, Gautier
|
Daniel Mendler, David Edmondson, Eli Zaretskii, Eric Ottosson,
|
||||||
Ponsinet, Illia Ostapyshyn, Jacob S.{{{space()}}} Gordon, Jared
|
Frédéric Giquel, Fritz Grabo, Gautier Ponsinet, Illia Ostapyshyn,
|
||||||
Finder, Kévin Le Gouguec, Koen van Greevenbroek, Kostadin Ninev,
|
Jacob S.{{{space()}}} Gordon, Jared Finder, Jimmy Yuen Ho Wong,
|
||||||
Leilei332, Madhavan Krishnan, Manuel Giraud, Markus Beppler, Matthew
|
Kevin Fleming, Kévin Le Gouguec, Koen van Greevenbroek, Kostadin
|
||||||
Stevenson, Mauro Aranda, Nacho Barrientos, Niall Dooley, Nicolas De
|
Ninev, Leilei332, Madhavan Krishnan, Manuel Giraud, Markus Beppler,
|
||||||
Jaeghere, Paul David, Pavel Novichkov, Philip Kaludercic, Pierre
|
Matthew Stevenson, Mauro Aranda, Nacho Barrientos, Niall Dooley,
|
||||||
Téchoueyres, Rahul M.{{{space()}}} Juliato, Rudolf Adamkovič,
|
Nicolas De Jaeghere, Paul David, Pavel Novichkov, Philip Kaludercic,
|
||||||
Sergey Nichiporchik, Shreyas Ragavan, Stefan Kangas, Stephen Berman,
|
Pierre Téchoueyres, Rahul M.{{{space()}}} Juliato, Rudolf Adamkovič,
|
||||||
Stephen Gildea, Steve Downey, Thanos Apollo, Tomasz Hołubowicz,
|
Sergey Nichiporchik, Shreyas Ragavan, Stefan x Kangas, Stephen
|
||||||
Utkarsh Singh, Vincent Murphy, Xinglu Chen, Yuanchen Xie, fluentpwn,
|
Berman, Stephen Gildea, Steve Downey, Suleyman Boyar, Thanos Apollo,
|
||||||
okamsn.
|
Tomasz Hołubowicz, Utkarsh Singh, Vincent Murphy, Xinglu Chen,
|
||||||
|
Yuanchen Xie, fluentpwn, okamsn.
|
||||||
|
|
||||||
+ Ideas and user feedback :: Aaron Jensen, Adam Porter, Adam Spiers,
|
+ Ideas and user feedback :: Aaron Jensen, Adam Porter, Adam Spiers,
|
||||||
Adrian Manea, Aleksei Pirogov, Alex Griffin, Alex Koen, Alex
|
Adrian Manea, Aleksei Pirogov, Alex Griffin, Alex Koen, Alex
|
||||||
|
|
@ -5717,34 +5968,34 @@ The Modus themes are a collective effort. Every bit of work matters.
|
||||||
Petegem, Christian Tietze, Christopher Dimech, Christopher League,
|
Petegem, Christian Tietze, Christopher Dimech, Christopher League,
|
||||||
Damien Cassou, Daniel Mendler, Dario Gjorgjevski, David Edmondson,
|
Damien Cassou, Daniel Mendler, Dario Gjorgjevski, David Edmondson,
|
||||||
Davor Rotim, Divan Santana, Eliraz Kedmi, Emanuele Michele Alberto
|
Davor Rotim, Divan Santana, Eliraz Kedmi, Emanuele Michele Alberto
|
||||||
Monterosso, Farasha Euker, Feng Shu, Filippo Argiolas, Gautier
|
Monterosso, Eshel Yaron, Farasha Euker, Feng Shu, Filippo Argiolas,
|
||||||
Ponsinet, Gerry Agbobada, Gianluca Recchia, Gonçalo Marrafa,
|
Gautier Ponsinet, Gerry Agbobada, Gianluca Recchia, Gonçalo Marrafa,
|
||||||
Guilherme Semente, Gustavo Barros, Hörmetjan Yiltiz, Ilja Kocken,
|
Guilherme Semente, Gustavo Barros, Hörmetjan Yiltiz, Ilja Kocken,
|
||||||
Imran Khan, Iris Garcia, Ivan Popovych, Jabir Ali Ouassou, James
|
Imran Khan, Iris Garcia, Ivan Popovych, Jabir Ali Ouassou, James
|
||||||
Ferguson, Jeremy Friesen, Jerry Zhang, Johannes Grødem, John Haman,
|
Ferguson, Jeremy Friesen, Jerry Zhang, Johannes Grødem, John Haman,
|
||||||
John Wick, Jonas Collberg, Jorge Morais, Joshua O'Connor, Julio C.
|
John Sullivan, John Wick, Jonas Collberg, Jorge Morais, Joshua
|
||||||
Villasante, Kenta Usami, Kevin Fleming, Kévin Le Gouguec, Kevin
|
O'Connor, Julio C. Villasante, Kenta Usami, Kevin Fleming, Kévin Le
|
||||||
Kainan Li, Kostadin Ninev, Laith Bahodi, Lasse Lindner, Len Trigg,
|
Gouguec, Kevin Kainan Li, Kostadin Ninev, Laith Bahodi, Lasse
|
||||||
Lennart C.{{{space()}}} Karssen, Luis Miguel Castañeda, Magne Hov,
|
Lindner, Len Trigg, Lennart C.{{{space()}}} Karssen, Luis Miguel
|
||||||
Manuel Giraud, Manuel Uberti, Mark Bestley, Mark Burton, Mark
|
Castañeda, Magne Hov, Manuel Giraud, Manuel Uberti, Mark Bestley,
|
||||||
Simpson, Marko Kocic, Markus Beppler, Matt Armstrong, Matthias
|
Mark Burton, Mark Simpson, Marko Kocic, Markus Beppler, Matt
|
||||||
Fuchs, Mattias Engdegård, Mauro Aranda, Maxime Tréca, Michael
|
Armstrong, Matthias Fuchs, Mattias Engdegård, Mauro Aranda, Maxime
|
||||||
Goldenberg, Morgan Smith, Morgan Willcock, Murilo Pereira, Nicky van
|
Tréca, Michael Goldenberg, Morgan Smith, Morgan Willcock, Murilo
|
||||||
Foreest, Nicolas De Jaeghere, Nicolas Semrau, Olaf Meeuwissen,
|
Pereira, Nicky van Foreest, Nicolas De Jaeghere, Nicolas Semrau,
|
||||||
Oliver Epper, Pablo Stafforini, Paul Poloskov, Pengji Zhang, Pete
|
Olaf Meeuwissen, Oliver Epper, Pablo Stafforini, Paul Poloskov,
|
||||||
Kazmier, Peter Wu, Philip Kaludercic, Pierre Téchoueyres, Przemysław
|
Pengji Zhang, Pete Kazmier, Peter Wu, Philip Kaludercic, Pierre
|
||||||
Kryger, Robert Hepple, Roman Rudakov, Russell Sim, Ryan Phillips,
|
Téchoueyres, Przemysław Kryger, Robert Hepple, Roman Rudakov,
|
||||||
Rytis Paškauskas, Rudolf Adamkovič, Sam Kleinman, Samuel Culpepper,
|
Russell Sim, Ryan Phillips, Rytis Paškauskas, Rudolf Adamkovič, Sam
|
||||||
Saša Janiška, Shreyas Ragavan, Simon Pugnet, Steve Downey, Tassilo
|
Kleinman, Samuel Culpepper, Saša Janiška, Shreyas Ragavan, Simon
|
||||||
Horn, Thanos Apollo, Thibaut Verron, Thomas Heartman, Togan
|
Pugnet, Steve Downey, Tassilo Horn, Thanos Apollo, Thibaut Verron,
|
||||||
Muftuoglu, Tony Zorman, Trey Merkley, Tomasz Hołubowicz, Toon Claes,
|
Thomas Heartman, Togan Muftuoglu, Tony Zorman, Trey Merkley, Tomasz
|
||||||
Uri Sharf, Utkarsh Singh, Vincent Foley, Zoltan Kiraly. As well as
|
Hołubowicz, Toon Claes, Uri Sharf, Utkarsh Singh, Vincent Foley,
|
||||||
users: Ben, CsBigDataHub1, Emacs Contrib, Eugene, Fourchaux,
|
Zoltan Kiraly. As well as users: Ben, CsBigDataHub1, Emacs Contrib,
|
||||||
Fredrik, Moesasji, Nick, Summer Emacs, TheBlob42, TitusMu, Trey,
|
Eugene, Fourchaux, Fredrik, Moesasji, Nick, Summer Emacs, TheBlob42,
|
||||||
ZharMeny, bepolymathe, bit9tream, bangedorrunt, derek-upham, doolio,
|
TitusMu, Trey, bepolymathe, bit9tream, bangedorrunt, case-lambda,
|
||||||
fleimgruber, gitrj95, iSeeU, jixiuf, ltmsyvag, okamsn,
|
chainedghost, derek-upham, doolio, fleimgruber, gitrj95, iSeeU,
|
||||||
pedro-nonfree, pRot0ta1p, shipmints, soaringbird, tumashu,
|
jixiuf, ltmsyvag, okamsn, pedro-nonfree, pRot0ta1p, shimeike,
|
||||||
wakamenod.
|
shipmints, soaringbird, tumashu, wakamenod.
|
||||||
|
|
||||||
+ Packaging :: Basil L.{{{space()}}} Contovounesios, Eli Zaretskii,
|
+ Packaging :: Basil L.{{{space()}}} Contovounesios, Eli Zaretskii,
|
||||||
Glenn Morris, Mauro Aranda, Richard Stallman, Stefan Kangas (core
|
Glenn Morris, Mauro Aranda, Richard Stallman, Stefan Kangas (core
|
||||||
|
|
|
||||||
|
|
@ -26,490 +26,35 @@
|
||||||
;;
|
;;
|
||||||
;; The Modus themes conform with the highest standard for
|
;; The Modus themes conform with the highest standard for
|
||||||
;; color-contrast accessibility between background and foreground
|
;; color-contrast accessibility between background and foreground
|
||||||
;; values (WCAG AAA). Please refer to the official Info manual for
|
;; values (WCAG AAA). They are also highly customizable and can even
|
||||||
;; further documentation (distributed with the themes, or available
|
;; be used as the basis for other themes. Please refer to the official
|
||||||
;; at: <https://protesilaos.com/emacs/modus-themes>).
|
;; Info manual for further documentation (distributed with the themes,
|
||||||
|
;; or available at: <https://protesilaos.com/emacs/modus-themes>).
|
||||||
|
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
(eval-and-compile
|
(unless (and (fboundp 'require-theme)
|
||||||
(unless (and (fboundp 'require-theme)
|
load-file-name
|
||||||
load-file-name
|
(equal (file-name-directory load-file-name)
|
||||||
(equal (file-name-directory load-file-name)
|
(expand-file-name "themes/" data-directory))
|
||||||
(expand-file-name "themes/" data-directory))
|
(require-theme 'modus-themes t))
|
||||||
(require-theme 'modus-themes t))
|
(require 'modus-themes))
|
||||||
(require 'modus-themes))
|
|
||||||
|
(defcustom modus-operandi-deuteranopia-palette-user nil
|
||||||
;;;###theme-autoload
|
"Like the `modus-operandi-deuteranopia-palette' for user-defined entries.
|
||||||
(deftheme modus-operandi-deuteranopia
|
|
||||||
"Deuteranopia-optimized theme with a white background.
|
|
||||||
This variant is optimized for users with red-green color
|
|
||||||
deficiency (deuteranopia). It 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 7:1 (WCAG AAA
|
|
||||||
standard)."
|
|
||||||
:background-mode 'light
|
|
||||||
:kind 'color-scheme
|
|
||||||
:family 'modus)
|
|
||||||
|
|
||||||
(defconst modus-operandi-deuteranopia-palette
|
|
||||||
'(
|
|
||||||
;;; Basic values
|
|
||||||
|
|
||||||
(bg-main "#ffffff")
|
|
||||||
(bg-dim "#f2f2f2")
|
|
||||||
(fg-main "#000000")
|
|
||||||
(fg-dim "#595959")
|
|
||||||
(fg-alt "#193668")
|
|
||||||
(bg-active "#c4c4c4")
|
|
||||||
(bg-inactive "#e0e0e0")
|
|
||||||
(border "#9f9f9f")
|
|
||||||
|
|
||||||
;;; Common accent foregrounds
|
|
||||||
|
|
||||||
(red "#a60000")
|
|
||||||
(red-warmer "#972500")
|
|
||||||
(red-cooler "#a0132f")
|
|
||||||
(red-faint "#7f0000")
|
|
||||||
(red-intense "#d00000")
|
|
||||||
(green "#006800")
|
|
||||||
(green-warmer "#316500")
|
|
||||||
(green-cooler "#00663f")
|
|
||||||
(green-faint "#2a5045")
|
|
||||||
(green-intense "#008900")
|
|
||||||
(yellow "#695500")
|
|
||||||
(yellow-warmer "#973300")
|
|
||||||
(yellow-cooler "#77492f")
|
|
||||||
(yellow-faint "#624416")
|
|
||||||
(yellow-intense "#808000")
|
|
||||||
(blue "#0031a9")
|
|
||||||
(blue-warmer "#3548cf")
|
|
||||||
(blue-cooler "#0000b0")
|
|
||||||
(blue-faint "#003497")
|
|
||||||
(blue-intense "#0000ff")
|
|
||||||
(magenta "#721045")
|
|
||||||
(magenta-warmer "#8f0075")
|
|
||||||
(magenta-cooler "#531ab6")
|
|
||||||
(magenta-faint "#7c318f")
|
|
||||||
(magenta-intense "#dd22dd")
|
|
||||||
(cyan "#005e8b")
|
|
||||||
(cyan-warmer "#3f578f")
|
|
||||||
(cyan-cooler "#005f5f")
|
|
||||||
(cyan-faint "#005077")
|
|
||||||
(cyan-intense "#008899")
|
|
||||||
|
|
||||||
;;; Uncommon accent foregrounds
|
|
||||||
|
|
||||||
(rust "#8a290f")
|
|
||||||
(gold "#80601f")
|
|
||||||
(olive "#56692d")
|
|
||||||
(slate "#2f3f83")
|
|
||||||
(indigo "#4a3a8a")
|
|
||||||
(maroon "#731c52")
|
|
||||||
(pink "#7b435c")
|
|
||||||
|
|
||||||
;;; Common accent backgrounds
|
|
||||||
|
|
||||||
(bg-red-intense "#ff8f88")
|
|
||||||
(bg-green-intense "#8adf80")
|
|
||||||
(bg-yellow-intense "#f3d000")
|
|
||||||
(bg-blue-intense "#bfc9ff")
|
|
||||||
(bg-magenta-intense "#dfa0f0")
|
|
||||||
(bg-cyan-intense "#a4d5f9")
|
|
||||||
|
|
||||||
(bg-red-subtle "#ffcfbf")
|
|
||||||
(bg-green-subtle "#b3fabf")
|
|
||||||
(bg-yellow-subtle "#fff576")
|
|
||||||
(bg-blue-subtle "#ccdfff")
|
|
||||||
(bg-magenta-subtle "#ffddff")
|
|
||||||
(bg-cyan-subtle "#bfefff")
|
|
||||||
|
|
||||||
(bg-red-nuanced "#ffe8e8")
|
|
||||||
(bg-green-nuanced "#e0f6e0")
|
|
||||||
(bg-yellow-nuanced "#f8f0d0")
|
|
||||||
(bg-blue-nuanced "#ecedff")
|
|
||||||
(bg-magenta-nuanced "#f8e6f5")
|
|
||||||
(bg-cyan-nuanced "#e0f2fa")
|
|
||||||
|
|
||||||
;;; 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-sage "#c0e7d4")
|
|
||||||
(fg-sage "#124b41")
|
|
||||||
|
|
||||||
;;; Graphs
|
|
||||||
|
|
||||||
(bg-graph-red-0 "#d0b029")
|
|
||||||
(bg-graph-red-1 "#e0cab4")
|
|
||||||
(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 "#afd0ff")
|
|
||||||
(bg-graph-magenta-0 "#b0b0d0")
|
|
||||||
(bg-graph-magenta-1 "#d0dfdf")
|
|
||||||
(bg-graph-cyan-0 "#6faad9")
|
|
||||||
(bg-graph-cyan-1 "#bfe0ff")
|
|
||||||
|
|
||||||
;;; Special purpose
|
|
||||||
|
|
||||||
(bg-completion "#c0deff")
|
|
||||||
(bg-hover "#b2e4dc")
|
|
||||||
(bg-hover-secondary "#e5d7a0")
|
|
||||||
(bg-hl-line "#dae5ec")
|
|
||||||
(bg-region "#bdbdbd")
|
|
||||||
(fg-region "#000000")
|
|
||||||
|
|
||||||
(bg-mode-line-active "#d0d6ff")
|
|
||||||
(fg-mode-line-active "#0f0f0f")
|
|
||||||
(border-mode-line-active "#4f4f74")
|
|
||||||
(bg-mode-line-inactive "#e6e6e6")
|
|
||||||
(fg-mode-line-inactive "#585858")
|
|
||||||
(border-mode-line-inactive "#a3a3a3")
|
|
||||||
|
|
||||||
(modeline-err "#603a00")
|
|
||||||
(modeline-warning "#454500")
|
|
||||||
(modeline-info "#023d92")
|
|
||||||
|
|
||||||
(bg-tab-bar "#dfdfdf")
|
|
||||||
(bg-tab-current "#ffffff")
|
|
||||||
(bg-tab-other "#c2c2c2")
|
|
||||||
|
|
||||||
;;; Diffs
|
|
||||||
|
|
||||||
(bg-added "#d5d7ff")
|
|
||||||
(bg-added-faint "#e6e6ff")
|
|
||||||
(bg-added-refine "#babcef")
|
|
||||||
(bg-added-fringe "#275acc")
|
|
||||||
(fg-added "#303099")
|
|
||||||
(fg-added-intense "#0303cc")
|
|
||||||
|
|
||||||
(bg-changed "#eecfdf")
|
|
||||||
(bg-changed-faint "#f0dde5")
|
|
||||||
(bg-changed-refine "#e0b0d0")
|
|
||||||
(bg-changed-fringe "#9f6ab0")
|
|
||||||
(fg-changed "#6f1343")
|
|
||||||
(fg-changed-intense "#7f0f9f")
|
|
||||||
|
|
||||||
(bg-removed "#f4f099")
|
|
||||||
(bg-removed-faint "#f6f6b7")
|
|
||||||
(bg-removed-refine "#ede06f")
|
|
||||||
(bg-removed-fringe "#c0b200")
|
|
||||||
(fg-removed "#553d00")
|
|
||||||
(fg-removed-intense "#7f6f00")
|
|
||||||
|
|
||||||
(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
|
|
||||||
|
|
||||||
(fringe bg-dim)
|
|
||||||
(cursor blue-intense)
|
|
||||||
|
|
||||||
(keybind blue-cooler)
|
|
||||||
(name blue-cooler)
|
|
||||||
(identifier yellow-faint)
|
|
||||||
|
|
||||||
(err yellow-warmer)
|
|
||||||
(warning yellow)
|
|
||||||
(info blue)
|
|
||||||
|
|
||||||
(underline-err yellow-intense)
|
|
||||||
(underline-warning magenta-faint)
|
|
||||||
(underline-note cyan)
|
|
||||||
|
|
||||||
(bg-prominent-err bg-yellow-intense)
|
|
||||||
(fg-prominent-err fg-main)
|
|
||||||
(bg-prominent-warning bg-magenta-intense)
|
|
||||||
(fg-prominent-warning fg-main)
|
|
||||||
(bg-prominent-note bg-cyan-intense)
|
|
||||||
(fg-prominent-note fg-main)
|
|
||||||
|
|
||||||
(bg-active-argument bg-yellow-nuanced)
|
|
||||||
(fg-active-argument yellow-warmer)
|
|
||||||
(bg-active-value bg-blue-nuanced)
|
|
||||||
(fg-active-value blue-warmer)
|
|
||||||
|
|
||||||
;;;; Code mappings
|
|
||||||
|
|
||||||
(bracket fg-main)
|
|
||||||
(builtin yellow)
|
|
||||||
(comment yellow-cooler)
|
|
||||||
(constant blue-faint)
|
|
||||||
(delimiter fg-main)
|
|
||||||
(docmarkup magenta-faint)
|
|
||||||
(docstring green-faint)
|
|
||||||
(fnname yellow-warmer)
|
|
||||||
(keyword blue-cooler)
|
|
||||||
(number fg-main)
|
|
||||||
(operator fg-main)
|
|
||||||
(preprocessor magenta-cooler)
|
|
||||||
(property cyan)
|
|
||||||
(punctuation fg-main)
|
|
||||||
(rx-backslash blue-cooler)
|
|
||||||
(rx-construct yellow-cooler)
|
|
||||||
(string blue-warmer)
|
|
||||||
(type cyan-cooler)
|
|
||||||
(variable cyan)
|
|
||||||
|
|
||||||
;;;; Accent mappings
|
|
||||||
|
|
||||||
(accent-0 blue-warmer)
|
|
||||||
(accent-1 yellow-warmer)
|
|
||||||
(accent-2 cyan)
|
|
||||||
(accent-3 yellow-cooler)
|
|
||||||
|
|
||||||
;;;; Button mappings
|
|
||||||
|
|
||||||
(fg-button-active fg-main)
|
|
||||||
(fg-button-inactive fg-dim)
|
|
||||||
(bg-button-active bg-active)
|
|
||||||
(bg-button-inactive bg-dim)
|
|
||||||
|
|
||||||
;;;; Completion mappings
|
|
||||||
|
|
||||||
(fg-completion-match-0 blue-warmer)
|
|
||||||
(fg-completion-match-1 yellow-warmer)
|
|
||||||
(fg-completion-match-2 cyan)
|
|
||||||
(fg-completion-match-3 yellow-cooler)
|
|
||||||
(bg-completion-match-0 unspecified)
|
|
||||||
(bg-completion-match-1 unspecified)
|
|
||||||
(bg-completion-match-2 unspecified)
|
|
||||||
(bg-completion-match-3 unspecified)
|
|
||||||
|
|
||||||
;;;; Date mappings
|
|
||||||
|
|
||||||
(date-common cyan)
|
|
||||||
(date-deadline yellow-warmer)
|
|
||||||
(date-deadline-subtle red-faint)
|
|
||||||
(date-event fg-alt)
|
|
||||||
(date-holiday yellow-warmer)
|
|
||||||
(date-holiday-other blue)
|
|
||||||
(date-now fg-main)
|
|
||||||
(date-range fg-alt)
|
|
||||||
(date-scheduled yellow-cooler)
|
|
||||||
(date-scheduled-subtle yellow-faint)
|
|
||||||
(date-weekday cyan)
|
|
||||||
(date-weekend blue-cooler)
|
|
||||||
|
|
||||||
;;;; Line number mappings
|
|
||||||
|
|
||||||
(fg-line-number-inactive fg-dim)
|
|
||||||
(fg-line-number-active fg-main)
|
|
||||||
(bg-line-number-inactive bg-dim)
|
|
||||||
(bg-line-number-active bg-active)
|
|
||||||
|
|
||||||
;;;; Link mappings
|
|
||||||
|
|
||||||
(fg-link blue-warmer)
|
|
||||||
(bg-link unspecified)
|
|
||||||
(underline-link blue-warmer)
|
|
||||||
|
|
||||||
(fg-link-symbolic cyan)
|
|
||||||
(bg-link-symbolic unspecified)
|
|
||||||
(underline-link-symbolic cyan)
|
|
||||||
|
|
||||||
(fg-link-visited yellow-faint)
|
|
||||||
(bg-link-visited unspecified)
|
|
||||||
(underline-link-visited yellow-faint)
|
|
||||||
|
|
||||||
;;;; Mail mappings
|
|
||||||
|
|
||||||
(mail-cite-0 blue-warmer)
|
|
||||||
(mail-cite-1 yellow)
|
|
||||||
(mail-cite-2 cyan-faint)
|
|
||||||
(mail-cite-3 yellow-faint)
|
|
||||||
(mail-part blue)
|
|
||||||
(mail-recipient blue)
|
|
||||||
(mail-subject yellow-cooler)
|
|
||||||
(mail-other cyan-faint)
|
|
||||||
|
|
||||||
;;;; Mark mappings
|
|
||||||
|
|
||||||
(bg-mark-delete bg-yellow-subtle)
|
|
||||||
(fg-mark-delete yellow)
|
|
||||||
(bg-mark-select bg-cyan-subtle)
|
|
||||||
(fg-mark-select cyan)
|
|
||||||
(bg-mark-other bg-magenta-subtle)
|
|
||||||
(fg-mark-other magenta)
|
|
||||||
|
|
||||||
;;;; Prompt mappings
|
|
||||||
|
|
||||||
(fg-prompt blue)
|
|
||||||
(bg-prompt unspecified)
|
|
||||||
|
|
||||||
;;;; Prose mappings
|
|
||||||
|
|
||||||
(bg-prose-block-delimiter bg-dim)
|
|
||||||
(fg-prose-block-delimiter fg-dim)
|
|
||||||
(bg-prose-block-contents bg-dim)
|
|
||||||
|
|
||||||
(bg-prose-code unspecified)
|
|
||||||
(fg-prose-code cyan-cooler)
|
|
||||||
|
|
||||||
(bg-prose-macro unspecified)
|
|
||||||
(fg-prose-macro magenta-cooler)
|
|
||||||
|
|
||||||
(bg-prose-verbatim unspecified)
|
|
||||||
(fg-prose-verbatim yellow)
|
|
||||||
|
|
||||||
(prose-done blue)
|
|
||||||
(prose-todo yellow-warmer)
|
|
||||||
|
|
||||||
(prose-metadata fg-dim)
|
|
||||||
(prose-metadata-value fg-alt)
|
|
||||||
|
|
||||||
(prose-table fg-alt)
|
|
||||||
(prose-table-formula yellow-warmer)
|
|
||||||
|
|
||||||
(prose-tag fg-alt)
|
|
||||||
|
|
||||||
;;;; Rainbow mappings
|
|
||||||
|
|
||||||
(rainbow-0 blue)
|
|
||||||
(rainbow-1 yellow)
|
|
||||||
(rainbow-2 blue-warmer)
|
|
||||||
(rainbow-3 yellow-cooler)
|
|
||||||
(rainbow-4 blue-cooler)
|
|
||||||
(rainbow-5 yellow-warmer)
|
|
||||||
(rainbow-6 blue-faint)
|
|
||||||
(rainbow-7 yellow-faint)
|
|
||||||
(rainbow-8 cyan)
|
|
||||||
|
|
||||||
;;;; Search mappings
|
|
||||||
|
|
||||||
(bg-search-current bg-yellow-intense)
|
|
||||||
(bg-search-lazy bg-blue-intense)
|
|
||||||
(bg-search-replace bg-yellow-intense)
|
|
||||||
|
|
||||||
(bg-search-rx-group-0 bg-cyan-intense)
|
|
||||||
(bg-search-rx-group-1 bg-magenta-intense)
|
|
||||||
(bg-search-rx-group-2 bg-blue-subtle)
|
|
||||||
(bg-search-rx-group-3 bg-yellow-subtle)
|
|
||||||
|
|
||||||
;;;; Space mappings
|
|
||||||
|
|
||||||
(bg-space unspecified)
|
|
||||||
(fg-space border)
|
|
||||||
(bg-space-err bg-yellow-intense)
|
|
||||||
|
|
||||||
;;;; Terminal mappings
|
|
||||||
|
|
||||||
(bg-term-black "#000000")
|
|
||||||
(fg-term-black "#000000")
|
|
||||||
(bg-term-black-bright "#595959")
|
|
||||||
(fg-term-black-bright "#595959")
|
|
||||||
|
|
||||||
(bg-term-red red)
|
|
||||||
(fg-term-red red)
|
|
||||||
(bg-term-red-bright red-warmer)
|
|
||||||
(fg-term-red-bright red-warmer)
|
|
||||||
|
|
||||||
(bg-term-green green)
|
|
||||||
(fg-term-green green)
|
|
||||||
(bg-term-green-bright green-cooler)
|
|
||||||
(fg-term-green-bright green-cooler)
|
|
||||||
|
|
||||||
(bg-term-yellow yellow)
|
|
||||||
(fg-term-yellow yellow)
|
|
||||||
(bg-term-yellow-bright yellow-warmer)
|
|
||||||
(fg-term-yellow-bright yellow-warmer)
|
|
||||||
|
|
||||||
(bg-term-blue blue)
|
|
||||||
(fg-term-blue blue)
|
|
||||||
(bg-term-blue-bright blue-warmer)
|
|
||||||
(fg-term-blue-bright blue-warmer)
|
|
||||||
|
|
||||||
(bg-term-magenta magenta)
|
|
||||||
(fg-term-magenta magenta)
|
|
||||||
(bg-term-magenta-bright magenta-cooler)
|
|
||||||
(fg-term-magenta-bright magenta-cooler)
|
|
||||||
|
|
||||||
(bg-term-cyan cyan)
|
|
||||||
(fg-term-cyan cyan)
|
|
||||||
(bg-term-cyan-bright cyan-cooler)
|
|
||||||
(fg-term-cyan-bright cyan-cooler)
|
|
||||||
|
|
||||||
(bg-term-white "#a6a6a6")
|
|
||||||
(fg-term-white "#a6a6a6")
|
|
||||||
(bg-term-white-bright "#ffffff")
|
|
||||||
(fg-term-white-bright "#ffffff")
|
|
||||||
|
|
||||||
;;;; Heading mappings
|
|
||||||
|
|
||||||
(fg-heading-0 cyan-cooler)
|
|
||||||
(fg-heading-1 fg-main)
|
|
||||||
(fg-heading-2 yellow-faint)
|
|
||||||
(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)
|
|
||||||
(bg-heading-1 unspecified)
|
|
||||||
(bg-heading-2 unspecified)
|
|
||||||
(bg-heading-3 unspecified)
|
|
||||||
(bg-heading-4 unspecified)
|
|
||||||
(bg-heading-5 unspecified)
|
|
||||||
(bg-heading-6 unspecified)
|
|
||||||
(bg-heading-7 unspecified)
|
|
||||||
(bg-heading-8 unspecified)
|
|
||||||
|
|
||||||
(overline-heading-0 unspecified)
|
|
||||||
(overline-heading-1 unspecified)
|
|
||||||
(overline-heading-2 unspecified)
|
|
||||||
(overline-heading-3 unspecified)
|
|
||||||
(overline-heading-4 unspecified)
|
|
||||||
(overline-heading-5 unspecified)
|
|
||||||
(overline-heading-6 unspecified)
|
|
||||||
(overline-heading-7 unspecified)
|
|
||||||
(overline-heading-8 unspecified))
|
|
||||||
"The entire palette of the `modus-operandi-deuteranopia' theme.
|
|
||||||
|
|
||||||
Named colors have the form (COLOR-NAME HEX-VALUE) with the former
|
|
||||||
as a symbol and the latter as a string.
|
|
||||||
|
|
||||||
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
|
This is meant to extend the palette with custom named colors and/or
|
||||||
semantic palette mappings. Those may then be used in combination with
|
semantic palette mappings. Those may then be used in combination with
|
||||||
palette overrides (also see `modus-themes-common-palette-overrides' and
|
palette overrides (also see `modus-themes-common-palette-overrides' and
|
||||||
`modus-operandi-deuteranopia-palette-overrides')."
|
`modus-operandi-deuteranopia-palette-overrides')."
|
||||||
:group 'modus-themes
|
:group 'modus-themes
|
||||||
:package-version '(modus-themes . "4.5.0")
|
:package-version '(modus-themes . "4.5.0")
|
||||||
:type '(repeat (list symbol (choice symbol string)))
|
:type '(repeat (list symbol (choice symbol string)))
|
||||||
:set #'modus-themes--set-option
|
:link '(info-link "(modus-themes) Option to extend the palette for use with overrides"))
|
||||||
: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
|
(defcustom modus-operandi-deuteranopia-palette-overrides nil
|
||||||
"Overrides for `modus-operandi-deuteranopia-palette'.
|
"Overrides for `modus-operandi-deuteranopia-palette'.
|
||||||
|
|
||||||
Mirror the elements of the aforementioned palette, overriding
|
Mirror the elements of the aforementioned palette, overriding
|
||||||
their value.
|
their value.
|
||||||
|
|
@ -523,18 +68,25 @@ mappings, such as to make the cursor red. Wherea theme-specific
|
||||||
overrides can also be used to change the value of a named color,
|
overrides can also be used to change the value of a named color,
|
||||||
such as what hexadecimal RGB value the red-warmer symbol
|
such as what hexadecimal RGB value the red-warmer symbol
|
||||||
represents."
|
represents."
|
||||||
:group 'modus-themes
|
:group 'modus-themes
|
||||||
:package-version '(modus-themes . "4.0.0")
|
:package-version '(modus-themes . "4.0.0")
|
||||||
:version "30.1"
|
:version "30.1"
|
||||||
:type '(repeat (list symbol (choice symbol string)))
|
:type '(repeat (list symbol (choice symbol string)))
|
||||||
:set #'modus-themes--set-option
|
:link '(info-link "(modus-themes) Palette overrides"))
|
||||||
:initialize #'custom-initialize-default
|
|
||||||
:link '(info-link "(modus-themes) Palette overrides"))
|
|
||||||
|
|
||||||
(modus-themes-theme modus-operandi-deuteranopia
|
(modus-themes-theme
|
||||||
modus-operandi-deuteranopia-palette
|
'modus-operandi-deuteranopia
|
||||||
modus-operandi-deuteranopia-palette-overrides)
|
'modus-themes
|
||||||
|
"Deuteranopia-optimized theme with a white background.
|
||||||
(provide-theme 'modus-operandi-deuteranopia))
|
This variant is optimized for users with red-green color
|
||||||
|
deficiency (deuteranopia). It 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 7:1 (WCAG AAA
|
||||||
|
standard)."
|
||||||
|
'light
|
||||||
|
'modus-themes-operandi-deuteranopia-palette
|
||||||
|
'modus-operandi-deuteranopia-palette-user
|
||||||
|
'modus-operandi-deuteranopia-palette-overrides)
|
||||||
|
|
||||||
;;; modus-operandi-deuteranopia-theme.el ends here
|
;;; modus-operandi-deuteranopia-theme.el ends here
|
||||||
|
|
|
||||||
|
|
@ -26,488 +26,35 @@
|
||||||
;;
|
;;
|
||||||
;; The Modus themes conform with the highest standard for
|
;; The Modus themes conform with the highest standard for
|
||||||
;; color-contrast accessibility between background and foreground
|
;; color-contrast accessibility between background and foreground
|
||||||
;; values (WCAG AAA). Please refer to the official Info manual for
|
;; values (WCAG AAA). They are also highly customizable and can even
|
||||||
;; further documentation (distributed with the themes, or available
|
;; be used as the basis for other themes. Please refer to the official
|
||||||
;; at: <https://protesilaos.com/emacs/modus-themes>).
|
;; Info manual for further documentation (distributed with the themes,
|
||||||
|
;; or available at: <https://protesilaos.com/emacs/modus-themes>).
|
||||||
|
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
(eval-and-compile
|
(unless (and (fboundp 'require-theme)
|
||||||
(unless (and (fboundp 'require-theme)
|
load-file-name
|
||||||
load-file-name
|
(equal (file-name-directory load-file-name)
|
||||||
(equal (file-name-directory load-file-name)
|
(expand-file-name "themes/" data-directory))
|
||||||
(expand-file-name "themes/" data-directory))
|
(require-theme 'modus-themes t))
|
||||||
(require-theme 'modus-themes t))
|
(require 'modus-themes))
|
||||||
(require 'modus-themes))
|
|
||||||
|
(defcustom modus-operandi-palette-user nil
|
||||||
;;;###theme-autoload
|
"Like the `modus-operandi-palette' for user-defined entries.
|
||||||
(deftheme modus-operandi
|
|
||||||
"Elegant, highly legible theme with a white 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
|
|
||||||
7:1 (WCAG AAA standard)."
|
|
||||||
:background-mode 'light
|
|
||||||
:kind 'color-scheme
|
|
||||||
:family 'modus)
|
|
||||||
|
|
||||||
(defconst modus-operandi-palette
|
|
||||||
'(
|
|
||||||
;;; Basic values
|
|
||||||
|
|
||||||
(bg-main "#ffffff")
|
|
||||||
(bg-dim "#f2f2f2")
|
|
||||||
(fg-main "#000000")
|
|
||||||
(fg-dim "#595959")
|
|
||||||
(fg-alt "#193668")
|
|
||||||
(bg-active "#c4c4c4")
|
|
||||||
(bg-inactive "#e0e0e0")
|
|
||||||
(border "#9f9f9f")
|
|
||||||
|
|
||||||
;;; Common accent foregrounds
|
|
||||||
|
|
||||||
(red "#a60000")
|
|
||||||
(red-warmer "#972500")
|
|
||||||
(red-cooler "#a0132f")
|
|
||||||
(red-faint "#7f0000")
|
|
||||||
(red-intense "#d00000")
|
|
||||||
(green "#006800")
|
|
||||||
(green-warmer "#316500")
|
|
||||||
(green-cooler "#00663f")
|
|
||||||
(green-faint "#2a5045")
|
|
||||||
(green-intense "#008900")
|
|
||||||
(yellow "#6f5500")
|
|
||||||
(yellow-warmer "#884900")
|
|
||||||
(yellow-cooler "#7a4f2f")
|
|
||||||
(yellow-faint "#624416")
|
|
||||||
(yellow-intense "#808000")
|
|
||||||
(blue "#0031a9")
|
|
||||||
(blue-warmer "#3548cf")
|
|
||||||
(blue-cooler "#0000b0")
|
|
||||||
(blue-faint "#003497")
|
|
||||||
(blue-intense "#0000ff")
|
|
||||||
(magenta "#721045")
|
|
||||||
(magenta-warmer "#8f0075")
|
|
||||||
(magenta-cooler "#531ab6")
|
|
||||||
(magenta-faint "#7c318f")
|
|
||||||
(magenta-intense "#dd22dd")
|
|
||||||
(cyan "#005e8b")
|
|
||||||
(cyan-warmer "#3f578f")
|
|
||||||
(cyan-cooler "#005f5f")
|
|
||||||
(cyan-faint "#005077")
|
|
||||||
(cyan-intense "#008899")
|
|
||||||
|
|
||||||
;;; Uncommon accent foregrounds
|
|
||||||
|
|
||||||
(rust "#8a290f")
|
|
||||||
(gold "#80601f")
|
|
||||||
(olive "#56692d")
|
|
||||||
(slate "#2f3f83")
|
|
||||||
(indigo "#4a3a8a")
|
|
||||||
(maroon "#731c52")
|
|
||||||
(pink "#7b435c")
|
|
||||||
|
|
||||||
;;; Common accent backgrounds
|
|
||||||
|
|
||||||
(bg-red-intense "#ff8f88")
|
|
||||||
(bg-green-intense "#8adf80")
|
|
||||||
(bg-yellow-intense "#f3d000")
|
|
||||||
(bg-blue-intense "#bfc9ff")
|
|
||||||
(bg-magenta-intense "#dfa0f0")
|
|
||||||
(bg-cyan-intense "#a4d5f9")
|
|
||||||
|
|
||||||
(bg-red-subtle "#ffcfbf")
|
|
||||||
(bg-green-subtle "#b3fabf")
|
|
||||||
(bg-yellow-subtle "#fff576")
|
|
||||||
(bg-blue-subtle "#ccdfff")
|
|
||||||
(bg-magenta-subtle "#ffddff")
|
|
||||||
(bg-cyan-subtle "#bfefff")
|
|
||||||
|
|
||||||
(bg-red-nuanced "#ffe8e8")
|
|
||||||
(bg-green-nuanced "#e0f6e0")
|
|
||||||
(bg-yellow-nuanced "#f8f0d0")
|
|
||||||
(bg-blue-nuanced "#ecedff")
|
|
||||||
(bg-magenta-nuanced "#f8e6f5")
|
|
||||||
(bg-cyan-nuanced "#e0f2fa")
|
|
||||||
|
|
||||||
;;; 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-sage "#c0e7d4")
|
|
||||||
(fg-sage "#124b41")
|
|
||||||
|
|
||||||
;;; Graphs
|
|
||||||
|
|
||||||
(bg-graph-red-0 "#ef7969")
|
|
||||||
(bg-graph-red-1 "#ffaab4")
|
|
||||||
(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 "#a6c0ff")
|
|
||||||
(bg-graph-magenta-0 "#e07fff")
|
|
||||||
(bg-graph-magenta-1 "#fad0ff")
|
|
||||||
(bg-graph-cyan-0 "#70d3f0")
|
|
||||||
(bg-graph-cyan-1 "#afefff")
|
|
||||||
|
|
||||||
;;; Special purpose
|
|
||||||
|
|
||||||
(bg-completion "#c0deff")
|
|
||||||
(bg-hover "#b2e4dc")
|
|
||||||
(bg-hover-secondary "#f5d0a0")
|
|
||||||
(bg-hl-line "#dae5ec")
|
|
||||||
(bg-region "#bdbdbd")
|
|
||||||
(fg-region "#000000")
|
|
||||||
|
|
||||||
(bg-mode-line-active "#c8c8c8")
|
|
||||||
(fg-mode-line-active "#000000")
|
|
||||||
(border-mode-line-active "#5a5a5a")
|
|
||||||
(bg-mode-line-inactive "#e6e6e6")
|
|
||||||
(fg-mode-line-inactive "#585858")
|
|
||||||
(border-mode-line-inactive "#a3a3a3")
|
|
||||||
|
|
||||||
(modeline-err "#7f0000")
|
|
||||||
(modeline-warning "#5f0070")
|
|
||||||
(modeline-info "#002580")
|
|
||||||
|
|
||||||
(bg-tab-bar "#dfdfdf")
|
|
||||||
(bg-tab-current "#ffffff")
|
|
||||||
(bg-tab-other "#c2c2c2")
|
|
||||||
|
|
||||||
;;; Diffs
|
|
||||||
|
|
||||||
(bg-added "#c1f2d1")
|
|
||||||
(bg-added-faint "#d8f8e1")
|
|
||||||
(bg-added-refine "#aee5be")
|
|
||||||
(bg-added-fringe "#6cc06c")
|
|
||||||
(fg-added "#005000")
|
|
||||||
(fg-added-intense "#006700")
|
|
||||||
|
|
||||||
(bg-changed "#ffdfa9")
|
|
||||||
(bg-changed-faint "#ffefbf")
|
|
||||||
(bg-changed-refine "#fac090")
|
|
||||||
(bg-changed-fringe "#d7c20a")
|
|
||||||
(fg-changed "#553d00")
|
|
||||||
(fg-changed-intense "#655000")
|
|
||||||
|
|
||||||
(bg-removed "#ffd8d5")
|
|
||||||
(bg-removed-faint "#ffe9e9")
|
|
||||||
(bg-removed-refine "#f3b5af")
|
|
||||||
(bg-removed-fringe "#d84a4f")
|
|
||||||
(fg-removed "#8f1313")
|
|
||||||
(fg-removed-intense "#aa2222")
|
|
||||||
|
|
||||||
(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
|
|
||||||
|
|
||||||
(fringe bg-dim)
|
|
||||||
(cursor fg-main)
|
|
||||||
|
|
||||||
(keybind blue-cooler)
|
|
||||||
(name magenta)
|
|
||||||
(identifier yellow-cooler)
|
|
||||||
|
|
||||||
(err red)
|
|
||||||
(warning yellow-warmer)
|
|
||||||
(info cyan-cooler)
|
|
||||||
|
|
||||||
(underline-err red-intense)
|
|
||||||
(underline-warning yellow-intense)
|
|
||||||
(underline-note cyan-intense)
|
|
||||||
|
|
||||||
(bg-prominent-err bg-red-intense)
|
|
||||||
(fg-prominent-err fg-main)
|
|
||||||
(bg-prominent-warning bg-yellow-intense)
|
|
||||||
(fg-prominent-warning fg-main)
|
|
||||||
(bg-prominent-note bg-cyan-intense)
|
|
||||||
(fg-prominent-note fg-main)
|
|
||||||
|
|
||||||
(bg-active-argument bg-yellow-nuanced)
|
|
||||||
(fg-active-argument yellow-warmer)
|
|
||||||
(bg-active-value bg-cyan-nuanced)
|
|
||||||
(fg-active-value cyan-warmer)
|
|
||||||
|
|
||||||
;;;; Code mappings
|
|
||||||
|
|
||||||
(bracket fg-main)
|
|
||||||
(builtin magenta-warmer)
|
|
||||||
(comment fg-dim)
|
|
||||||
(constant blue-cooler)
|
|
||||||
(delimiter fg-main)
|
|
||||||
(docmarkup magenta-faint)
|
|
||||||
(docstring green-faint)
|
|
||||||
(fnname magenta)
|
|
||||||
(keyword magenta-cooler)
|
|
||||||
(number fg-main)
|
|
||||||
(operator fg-main)
|
|
||||||
(preprocessor red-cooler)
|
|
||||||
(property cyan)
|
|
||||||
(punctuation fg-main)
|
|
||||||
(rx-backslash magenta)
|
|
||||||
(rx-construct green-cooler)
|
|
||||||
(string blue-warmer)
|
|
||||||
(type cyan-cooler)
|
|
||||||
(variable cyan)
|
|
||||||
|
|
||||||
;;;; Accent mappings
|
|
||||||
|
|
||||||
(accent-0 blue)
|
|
||||||
(accent-1 magenta-warmer)
|
|
||||||
(accent-2 cyan)
|
|
||||||
(accent-3 red)
|
|
||||||
|
|
||||||
;;;; Button mappings
|
|
||||||
|
|
||||||
(fg-button-active fg-main)
|
|
||||||
(fg-button-inactive fg-dim)
|
|
||||||
(bg-button-active bg-active)
|
|
||||||
(bg-button-inactive bg-dim)
|
|
||||||
|
|
||||||
;;;; Completion mappings
|
|
||||||
|
|
||||||
(fg-completion-match-0 blue)
|
|
||||||
(fg-completion-match-1 magenta-warmer)
|
|
||||||
(fg-completion-match-2 cyan)
|
|
||||||
(fg-completion-match-3 red)
|
|
||||||
(bg-completion-match-0 unspecified)
|
|
||||||
(bg-completion-match-1 unspecified)
|
|
||||||
(bg-completion-match-2 unspecified)
|
|
||||||
(bg-completion-match-3 unspecified)
|
|
||||||
|
|
||||||
;;;; Date mappings
|
|
||||||
|
|
||||||
(date-common cyan)
|
|
||||||
(date-deadline red-cooler)
|
|
||||||
(date-deadline-subtle red-faint)
|
|
||||||
(date-event fg-alt)
|
|
||||||
(date-holiday red)
|
|
||||||
(date-holiday-other blue)
|
|
||||||
(date-now fg-main)
|
|
||||||
(date-range fg-alt)
|
|
||||||
(date-scheduled yellow)
|
|
||||||
(date-scheduled-subtle yellow-faint)
|
|
||||||
(date-weekday cyan)
|
|
||||||
(date-weekend magenta)
|
|
||||||
|
|
||||||
;;;; Line number mappings
|
|
||||||
|
|
||||||
(fg-line-number-inactive fg-dim)
|
|
||||||
(fg-line-number-active fg-main)
|
|
||||||
(bg-line-number-inactive bg-dim)
|
|
||||||
(bg-line-number-active bg-active)
|
|
||||||
|
|
||||||
;;;; Link mappings
|
|
||||||
|
|
||||||
(fg-link blue-warmer)
|
|
||||||
(bg-link unspecified)
|
|
||||||
(underline-link blue-warmer)
|
|
||||||
|
|
||||||
(fg-link-symbolic cyan)
|
|
||||||
(bg-link-symbolic unspecified)
|
|
||||||
(underline-link-symbolic cyan)
|
|
||||||
|
|
||||||
(fg-link-visited magenta)
|
|
||||||
(bg-link-visited unspecified)
|
|
||||||
(underline-link-visited magenta)
|
|
||||||
|
|
||||||
;;;; Mail mappings
|
|
||||||
|
|
||||||
(mail-cite-0 blue-faint)
|
|
||||||
(mail-cite-1 yellow-warmer)
|
|
||||||
(mail-cite-2 cyan-cooler)
|
|
||||||
(mail-cite-3 red-cooler)
|
|
||||||
(mail-part cyan)
|
|
||||||
(mail-recipient magenta-cooler)
|
|
||||||
(mail-subject magenta-warmer)
|
|
||||||
(mail-other magenta-faint)
|
|
||||||
|
|
||||||
;;;; Mark mappings
|
|
||||||
|
|
||||||
(bg-mark-delete bg-red-subtle)
|
|
||||||
(fg-mark-delete red)
|
|
||||||
(bg-mark-select bg-cyan-subtle)
|
|
||||||
(fg-mark-select cyan)
|
|
||||||
(bg-mark-other bg-yellow-subtle)
|
|
||||||
(fg-mark-other yellow)
|
|
||||||
|
|
||||||
;;;; Prompt mappings
|
|
||||||
|
|
||||||
(fg-prompt cyan-cooler)
|
|
||||||
(bg-prompt unspecified)
|
|
||||||
|
|
||||||
;;;; Prose mappings
|
|
||||||
|
|
||||||
(bg-prose-block-delimiter bg-dim)
|
|
||||||
(fg-prose-block-delimiter fg-dim)
|
|
||||||
(bg-prose-block-contents bg-dim)
|
|
||||||
|
|
||||||
(bg-prose-code unspecified)
|
|
||||||
(fg-prose-code cyan-cooler)
|
|
||||||
|
|
||||||
(bg-prose-macro unspecified)
|
|
||||||
(fg-prose-macro magenta-cooler)
|
|
||||||
|
|
||||||
(bg-prose-verbatim unspecified)
|
|
||||||
(fg-prose-verbatim magenta-warmer)
|
|
||||||
|
|
||||||
(prose-done green)
|
|
||||||
(prose-todo red)
|
|
||||||
|
|
||||||
(prose-metadata fg-dim)
|
|
||||||
(prose-metadata-value fg-alt)
|
|
||||||
|
|
||||||
(prose-table fg-alt)
|
|
||||||
(prose-table-formula magenta-warmer)
|
|
||||||
|
|
||||||
(prose-tag magenta-faint)
|
|
||||||
|
|
||||||
;;;; Rainbow mappings
|
|
||||||
|
|
||||||
(rainbow-0 fg-main)
|
|
||||||
(rainbow-1 magenta-intense)
|
|
||||||
(rainbow-2 cyan-intense)
|
|
||||||
(rainbow-3 red-warmer)
|
|
||||||
(rainbow-4 yellow-intense)
|
|
||||||
(rainbow-5 magenta-cooler)
|
|
||||||
(rainbow-6 green-intense)
|
|
||||||
(rainbow-7 blue-warmer)
|
|
||||||
(rainbow-8 magenta-warmer)
|
|
||||||
|
|
||||||
;;;; Search mappings
|
|
||||||
|
|
||||||
(bg-search-current bg-yellow-intense)
|
|
||||||
(bg-search-lazy bg-cyan-intense)
|
|
||||||
(bg-search-replace bg-red-intense)
|
|
||||||
|
|
||||||
(bg-search-rx-group-0 bg-blue-intense)
|
|
||||||
(bg-search-rx-group-1 bg-green-intense)
|
|
||||||
(bg-search-rx-group-2 bg-red-subtle)
|
|
||||||
(bg-search-rx-group-3 bg-magenta-subtle)
|
|
||||||
|
|
||||||
;;;; Space mappings
|
|
||||||
|
|
||||||
(bg-space unspecified)
|
|
||||||
(fg-space border)
|
|
||||||
(bg-space-err bg-red-intense)
|
|
||||||
|
|
||||||
;;;; Terminal mappings
|
|
||||||
|
|
||||||
(bg-term-black "#000000")
|
|
||||||
(fg-term-black "#000000")
|
|
||||||
(bg-term-black-bright "#595959")
|
|
||||||
(fg-term-black-bright "#595959")
|
|
||||||
|
|
||||||
(bg-term-red red)
|
|
||||||
(fg-term-red red)
|
|
||||||
(bg-term-red-bright red-warmer)
|
|
||||||
(fg-term-red-bright red-warmer)
|
|
||||||
|
|
||||||
(bg-term-green green)
|
|
||||||
(fg-term-green green)
|
|
||||||
(bg-term-green-bright green-cooler)
|
|
||||||
(fg-term-green-bright green-cooler)
|
|
||||||
|
|
||||||
(bg-term-yellow yellow)
|
|
||||||
(fg-term-yellow yellow)
|
|
||||||
(bg-term-yellow-bright yellow-warmer)
|
|
||||||
(fg-term-yellow-bright yellow-warmer)
|
|
||||||
|
|
||||||
(bg-term-blue blue)
|
|
||||||
(fg-term-blue blue)
|
|
||||||
(bg-term-blue-bright blue-warmer)
|
|
||||||
(fg-term-blue-bright blue-warmer)
|
|
||||||
|
|
||||||
(bg-term-magenta magenta)
|
|
||||||
(fg-term-magenta magenta)
|
|
||||||
(bg-term-magenta-bright magenta-cooler)
|
|
||||||
(fg-term-magenta-bright magenta-cooler)
|
|
||||||
|
|
||||||
(bg-term-cyan cyan)
|
|
||||||
(fg-term-cyan cyan)
|
|
||||||
(bg-term-cyan-bright cyan-cooler)
|
|
||||||
(fg-term-cyan-bright cyan-cooler)
|
|
||||||
|
|
||||||
(bg-term-white "#a6a6a6")
|
|
||||||
(fg-term-white "#a6a6a6")
|
|
||||||
(bg-term-white-bright "#ffffff")
|
|
||||||
(fg-term-white-bright "#ffffff")
|
|
||||||
|
|
||||||
;;;; Heading mappings
|
|
||||||
|
|
||||||
(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-8 fg-dim)
|
|
||||||
|
|
||||||
(bg-heading-0 unspecified)
|
|
||||||
(bg-heading-1 unspecified)
|
|
||||||
(bg-heading-2 unspecified)
|
|
||||||
(bg-heading-3 unspecified)
|
|
||||||
(bg-heading-4 unspecified)
|
|
||||||
(bg-heading-5 unspecified)
|
|
||||||
(bg-heading-6 unspecified)
|
|
||||||
(bg-heading-7 unspecified)
|
|
||||||
(bg-heading-8 unspecified)
|
|
||||||
|
|
||||||
(overline-heading-0 unspecified)
|
|
||||||
(overline-heading-1 unspecified)
|
|
||||||
(overline-heading-2 unspecified)
|
|
||||||
(overline-heading-3 unspecified)
|
|
||||||
(overline-heading-4 unspecified)
|
|
||||||
(overline-heading-5 unspecified)
|
|
||||||
(overline-heading-6 unspecified)
|
|
||||||
(overline-heading-7 unspecified)
|
|
||||||
(overline-heading-8 unspecified))
|
|
||||||
"The entire palette of the `modus-operandi' theme.
|
|
||||||
|
|
||||||
Named colors have the form (COLOR-NAME HEX-VALUE) with the former
|
|
||||||
as a symbol and the latter as a string.
|
|
||||||
|
|
||||||
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
|
This is meant to extend the palette with custom named colors and/or
|
||||||
semantic palette mappings. Those may then be used in combination with
|
semantic palette mappings. Those may then be used in combination with
|
||||||
palette overrides (also see `modus-themes-common-palette-overrides' and
|
palette overrides (also see `modus-themes-common-palette-overrides' and
|
||||||
`modus-operandi-palette-overrides')."
|
`modus-operandi-palette-overrides')."
|
||||||
:group 'modus-themes
|
:group 'modus-themes
|
||||||
:package-version '(modus-themes . "4.5.0")
|
:package-version '(modus-themes . "4.5.0")
|
||||||
:type '(repeat (list symbol (choice symbol string)))
|
:type '(repeat (list symbol (choice symbol string)))
|
||||||
:set #'modus-themes--set-option
|
:link '(info-link "(modus-themes) Option to extend the palette for use with overrides"))
|
||||||
:initialize #'custom-initialize-default
|
|
||||||
:link '(info-link "(modus-themes) Option to extend the palette for use with overrides"))
|
|
||||||
|
|
||||||
(defcustom modus-operandi-palette-overrides nil
|
(defcustom modus-operandi-palette-overrides nil
|
||||||
"Overrides for `modus-operandi-palette'.
|
"Overrides for `modus-operandi-palette'.
|
||||||
|
|
||||||
Mirror the elements of the aforementioned palette, overriding
|
Mirror the elements of the aforementioned palette, overriding
|
||||||
their value.
|
their value.
|
||||||
|
|
@ -521,18 +68,23 @@ mappings, such as to make the cursor red. Wherea theme-specific
|
||||||
overrides can also be used to change the value of a named color,
|
overrides can also be used to change the value of a named color,
|
||||||
such as what hexadecimal RGB value the red-warmer symbol
|
such as what hexadecimal RGB value the red-warmer symbol
|
||||||
represents."
|
represents."
|
||||||
:group 'modus-themes
|
:group 'modus-themes
|
||||||
:package-version '(modus-themes . "4.0.0")
|
:package-version '(modus-themes . "4.0.0")
|
||||||
:version "30.1"
|
:version "30.1"
|
||||||
:type '(repeat (list symbol (choice symbol string)))
|
:type '(repeat (list symbol (choice symbol string)))
|
||||||
:set #'modus-themes--set-option
|
:link '(info-link "(modus-themes) Palette overrides"))
|
||||||
:initialize #'custom-initialize-default
|
|
||||||
:link '(info-link "(modus-themes) Palette overrides"))
|
|
||||||
|
|
||||||
(modus-themes-theme modus-operandi
|
(modus-themes-theme
|
||||||
modus-operandi-palette
|
'modus-operandi
|
||||||
modus-operandi-palette-overrides)
|
'modus-themes
|
||||||
|
"Elegant, highly legible theme with a white background.
|
||||||
(provide-theme 'modus-operandi))
|
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
|
||||||
|
7:1 (WCAG AAA standard)."
|
||||||
|
'light
|
||||||
|
'modus-themes-operandi-palette
|
||||||
|
'modus-operandi-palette-user
|
||||||
|
'modus-operandi-palette-overrides)
|
||||||
|
|
||||||
;;; modus-operandi-theme.el ends here
|
;;; modus-operandi-theme.el ends here
|
||||||
|
|
|
||||||
|
|
@ -26,488 +26,35 @@
|
||||||
;;
|
;;
|
||||||
;; The Modus themes conform with the highest standard for
|
;; The Modus themes conform with the highest standard for
|
||||||
;; color-contrast accessibility between background and foreground
|
;; color-contrast accessibility between background and foreground
|
||||||
;; values (WCAG AAA). Please refer to the official Info manual for
|
;; values (WCAG AAA). They are also highly customizable and can even
|
||||||
;; further documentation (distributed with the themes, or available
|
;; be used as the basis for other themes. Please refer to the official
|
||||||
;; at: <https://protesilaos.com/emacs/modus-themes>).
|
;; Info manual for further documentation (distributed with the themes,
|
||||||
|
;; or available at: <https://protesilaos.com/emacs/modus-themes>).
|
||||||
|
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
(eval-and-compile
|
(unless (and (fboundp 'require-theme)
|
||||||
(unless (and (fboundp 'require-theme)
|
load-file-name
|
||||||
load-file-name
|
(equal (file-name-directory load-file-name)
|
||||||
(equal (file-name-directory load-file-name)
|
(expand-file-name "themes/" data-directory))
|
||||||
(expand-file-name "themes/" data-directory))
|
(require-theme 'modus-themes t))
|
||||||
(require-theme 'modus-themes t))
|
(require 'modus-themes))
|
||||||
(require 'modus-themes))
|
|
||||||
|
(defcustom modus-operandi-tinted-palette-user nil
|
||||||
;;;###theme-autoload
|
"Like the `modus-operandi-tinted-palette' for user-defined entries.
|
||||||
(deftheme modus-operandi-tinted
|
|
||||||
"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
|
|
||||||
7:1 (WCAG AAA standard)."
|
|
||||||
:background-mode 'light
|
|
||||||
:kind 'color-scheme
|
|
||||||
:family 'modus)
|
|
||||||
|
|
||||||
(defconst modus-operandi-tinted-palette
|
|
||||||
'(
|
|
||||||
;;; Basic values
|
|
||||||
|
|
||||||
(bg-main "#fbf7f0")
|
|
||||||
(bg-dim "#efe9dd")
|
|
||||||
(fg-main "#000000")
|
|
||||||
(fg-dim "#595959")
|
|
||||||
(fg-alt "#193668")
|
|
||||||
(bg-active "#c9b9b0")
|
|
||||||
(bg-inactive "#dfd5cf")
|
|
||||||
(border "#9f9690")
|
|
||||||
|
|
||||||
;;; Common accent foregrounds
|
|
||||||
|
|
||||||
(red "#a60000")
|
|
||||||
(red-warmer "#972500")
|
|
||||||
(red-cooler "#a0132f")
|
|
||||||
(red-faint "#7f0000")
|
|
||||||
(red-intense "#d00000")
|
|
||||||
(green "#006300")
|
|
||||||
(green-warmer "#306010")
|
|
||||||
(green-cooler "#00603f")
|
|
||||||
(green-faint "#2a5045")
|
|
||||||
(green-intense "#008900")
|
|
||||||
(yellow "#6d5000")
|
|
||||||
(yellow-warmer "#894000")
|
|
||||||
(yellow-cooler "#602938")
|
|
||||||
(yellow-faint "#574316")
|
|
||||||
(yellow-intense "#808000")
|
|
||||||
(blue "#0031a9")
|
|
||||||
(blue-warmer "#3546c2")
|
|
||||||
(blue-cooler "#0000b0")
|
|
||||||
(blue-faint "#003497")
|
|
||||||
(blue-intense "#0000ff")
|
|
||||||
(magenta "#721045")
|
|
||||||
(magenta-warmer "#8f0075")
|
|
||||||
(magenta-cooler "#531ab6")
|
|
||||||
(magenta-faint "#7c318f")
|
|
||||||
(magenta-intense "#dd22dd")
|
|
||||||
(cyan "#00598b")
|
|
||||||
(cyan-warmer "#32548f")
|
|
||||||
(cyan-cooler "#005f5f")
|
|
||||||
(cyan-faint "#304463")
|
|
||||||
(cyan-intense "#008899")
|
|
||||||
|
|
||||||
;;; Uncommon accent foregrounds
|
|
||||||
|
|
||||||
(rust "#8a290f")
|
|
||||||
(gold "#80601f")
|
|
||||||
(olive "#56692d")
|
|
||||||
(slate "#2f3f83")
|
|
||||||
(indigo "#4a3a8a")
|
|
||||||
(maroon "#731c52")
|
|
||||||
(pink "#7b435c")
|
|
||||||
|
|
||||||
;;; Common accent backgrounds
|
|
||||||
|
|
||||||
(bg-red-intense "#ff8f88")
|
|
||||||
(bg-green-intense "#8adf80")
|
|
||||||
(bg-yellow-intense "#f3d000")
|
|
||||||
(bg-blue-intense "#bfc9ff")
|
|
||||||
(bg-magenta-intense "#dfa0f0")
|
|
||||||
(bg-cyan-intense "#a4d5f9")
|
|
||||||
|
|
||||||
(bg-red-subtle "#ffcfbf")
|
|
||||||
(bg-green-subtle "#b3fabf")
|
|
||||||
(bg-yellow-subtle "#fff576")
|
|
||||||
(bg-blue-subtle "#ccdfff")
|
|
||||||
(bg-magenta-subtle "#ffddff")
|
|
||||||
(bg-cyan-subtle "#bfefff")
|
|
||||||
|
|
||||||
(bg-red-nuanced "#ffe8e8")
|
|
||||||
(bg-green-nuanced "#e0f6e0")
|
|
||||||
(bg-yellow-nuanced "#f8f0d0")
|
|
||||||
(bg-blue-nuanced "#ecedff")
|
|
||||||
(bg-magenta-nuanced "#f8e6f5")
|
|
||||||
(bg-cyan-nuanced "#e0f2fa")
|
|
||||||
|
|
||||||
;;; 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-sage "#c0e7d4")
|
|
||||||
(fg-sage "#124b41")
|
|
||||||
|
|
||||||
;;; Graphs
|
|
||||||
|
|
||||||
(bg-graph-red-0 "#ef7969")
|
|
||||||
(bg-graph-red-1 "#ffaab4")
|
|
||||||
(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 "#a6c0ff")
|
|
||||||
(bg-graph-magenta-0 "#e07fff")
|
|
||||||
(bg-graph-magenta-1 "#fad0ff")
|
|
||||||
(bg-graph-cyan-0 "#70d3f0")
|
|
||||||
(bg-graph-cyan-1 "#afefff")
|
|
||||||
|
|
||||||
;;; Special purpose
|
|
||||||
|
|
||||||
(bg-completion "#f0c1cf")
|
|
||||||
(bg-hover "#b2e4dc")
|
|
||||||
(bg-hover-secondary "#dfe09f")
|
|
||||||
(bg-hl-line "#f1d5d0")
|
|
||||||
(bg-region "#c2bcb5")
|
|
||||||
(fg-region "#000000")
|
|
||||||
|
|
||||||
(bg-mode-line-active "#cab9b2")
|
|
||||||
(fg-mode-line-active "#000000")
|
|
||||||
(border-mode-line-active "#545454")
|
|
||||||
(bg-mode-line-inactive "#dfd9cf")
|
|
||||||
(fg-mode-line-inactive "#585858")
|
|
||||||
(border-mode-line-inactive "#a59a94")
|
|
||||||
|
|
||||||
(modeline-err "#7f0000")
|
|
||||||
(modeline-warning "#5f0070")
|
|
||||||
(modeline-info "#002580")
|
|
||||||
|
|
||||||
(bg-tab-bar "#e0d4ce")
|
|
||||||
(bg-tab-current "#fbf7f0")
|
|
||||||
(bg-tab-other "#c8b8b2")
|
|
||||||
|
|
||||||
;;; Diffs
|
|
||||||
|
|
||||||
(bg-added "#c3ebc1")
|
|
||||||
(bg-added-faint "#dcf8d1")
|
|
||||||
(bg-added-refine "#acd6a5")
|
|
||||||
(bg-added-fringe "#6cc06c")
|
|
||||||
(fg-added "#005000")
|
|
||||||
(fg-added-intense "#006700")
|
|
||||||
|
|
||||||
(bg-changed "#ffdfa9")
|
|
||||||
(bg-changed-faint "#ffefbf")
|
|
||||||
(bg-changed-refine "#fac090")
|
|
||||||
(bg-changed-fringe "#c0b200")
|
|
||||||
(fg-changed "#553d00")
|
|
||||||
(fg-changed-intense "#655000")
|
|
||||||
|
|
||||||
(bg-removed "#f4d0cf")
|
|
||||||
(bg-removed-faint "#ffe9e5")
|
|
||||||
(bg-removed-refine "#f3b5a7")
|
|
||||||
(bg-removed-fringe "#d84a4f")
|
|
||||||
(fg-removed "#8f1313")
|
|
||||||
(fg-removed-intense "#aa2222")
|
|
||||||
|
|
||||||
(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
|
|
||||||
|
|
||||||
(fringe bg-dim)
|
|
||||||
(cursor red-intense)
|
|
||||||
|
|
||||||
(keybind red)
|
|
||||||
(name magenta)
|
|
||||||
(identifier yellow-faint)
|
|
||||||
|
|
||||||
(err red)
|
|
||||||
(warning yellow)
|
|
||||||
(info green)
|
|
||||||
|
|
||||||
(underline-err red-intense)
|
|
||||||
(underline-warning yellow-intense)
|
|
||||||
(underline-note cyan-intense)
|
|
||||||
|
|
||||||
(bg-prominent-err bg-red-intense)
|
|
||||||
(fg-prominent-err fg-main)
|
|
||||||
(bg-prominent-warning bg-yellow-intense)
|
|
||||||
(fg-prominent-warning fg-main)
|
|
||||||
(bg-prominent-note bg-cyan-intense)
|
|
||||||
(fg-prominent-note fg-main)
|
|
||||||
|
|
||||||
(bg-active-argument bg-yellow-nuanced)
|
|
||||||
(fg-active-argument yellow-warmer)
|
|
||||||
(bg-active-value bg-cyan-nuanced)
|
|
||||||
(fg-active-value cyan-warmer)
|
|
||||||
|
|
||||||
;;;; Code mappings
|
|
||||||
|
|
||||||
(bracket fg-main)
|
|
||||||
(builtin magenta)
|
|
||||||
(comment red-faint)
|
|
||||||
(constant magenta-cooler)
|
|
||||||
(delimiter fg-main)
|
|
||||||
(docmarkup magenta-faint)
|
|
||||||
(docstring cyan-faint)
|
|
||||||
(fnname yellow-cooler)
|
|
||||||
(keyword blue)
|
|
||||||
(number fg-main)
|
|
||||||
(operator fg-main)
|
|
||||||
(preprocessor yellow-warmer)
|
|
||||||
(property green-cooler)
|
|
||||||
(punctuation fg-main)
|
|
||||||
(rx-backslash magenta-warmer)
|
|
||||||
(rx-construct magenta-cooler)
|
|
||||||
(string cyan)
|
|
||||||
(type green-warmer)
|
|
||||||
(variable green-cooler)
|
|
||||||
|
|
||||||
;;;; Accent mappings
|
|
||||||
|
|
||||||
(accent-0 red-cooler)
|
|
||||||
(accent-1 cyan)
|
|
||||||
(accent-2 magenta-cooler)
|
|
||||||
(accent-3 yellow-warmer)
|
|
||||||
|
|
||||||
;;;; Button mappings
|
|
||||||
|
|
||||||
(fg-button-active fg-main)
|
|
||||||
(fg-button-inactive fg-dim)
|
|
||||||
(bg-button-active bg-active)
|
|
||||||
(bg-button-inactive bg-dim)
|
|
||||||
|
|
||||||
;;;; Completion mappings
|
|
||||||
|
|
||||||
(fg-completion-match-0 blue)
|
|
||||||
(fg-completion-match-1 magenta-warmer)
|
|
||||||
(fg-completion-match-2 cyan)
|
|
||||||
(fg-completion-match-3 red)
|
|
||||||
(bg-completion-match-0 unspecified)
|
|
||||||
(bg-completion-match-1 unspecified)
|
|
||||||
(bg-completion-match-2 unspecified)
|
|
||||||
(bg-completion-match-3 unspecified)
|
|
||||||
|
|
||||||
;;;; Date mappings
|
|
||||||
|
|
||||||
(date-common cyan)
|
|
||||||
(date-deadline red-cooler)
|
|
||||||
(date-deadline-subtle red-faint)
|
|
||||||
(date-event fg-alt)
|
|
||||||
(date-holiday red)
|
|
||||||
(date-holiday-other blue)
|
|
||||||
(date-now fg-main)
|
|
||||||
(date-range fg-alt)
|
|
||||||
(date-scheduled yellow)
|
|
||||||
(date-scheduled-subtle yellow-faint)
|
|
||||||
(date-weekday cyan)
|
|
||||||
(date-weekend magenta)
|
|
||||||
|
|
||||||
;;;; Line number mappings
|
|
||||||
|
|
||||||
(fg-line-number-inactive fg-dim)
|
|
||||||
(fg-line-number-active fg-main)
|
|
||||||
(bg-line-number-inactive bg-dim)
|
|
||||||
(bg-line-number-active bg-active)
|
|
||||||
|
|
||||||
;;;; Link mappings
|
|
||||||
|
|
||||||
(fg-link blue-warmer)
|
|
||||||
(bg-link unspecified)
|
|
||||||
(underline-link blue-warmer)
|
|
||||||
|
|
||||||
(fg-link-symbolic cyan)
|
|
||||||
(bg-link-symbolic unspecified)
|
|
||||||
(underline-link-symbolic cyan)
|
|
||||||
|
|
||||||
(fg-link-visited magenta)
|
|
||||||
(bg-link-visited unspecified)
|
|
||||||
(underline-link-visited magenta)
|
|
||||||
|
|
||||||
;;;; Mail mappings
|
|
||||||
|
|
||||||
(mail-cite-0 cyan)
|
|
||||||
(mail-cite-1 yellow)
|
|
||||||
(mail-cite-2 green-warmer)
|
|
||||||
(mail-cite-3 red-cooler)
|
|
||||||
(mail-part green-cooler)
|
|
||||||
(mail-recipient blue-warmer)
|
|
||||||
(mail-subject magenta-warmer)
|
|
||||||
(mail-other magenta)
|
|
||||||
|
|
||||||
;;;; Mark mappings
|
|
||||||
|
|
||||||
(bg-mark-delete bg-red-subtle)
|
|
||||||
(fg-mark-delete red)
|
|
||||||
(bg-mark-select bg-cyan-subtle)
|
|
||||||
(fg-mark-select cyan)
|
|
||||||
(bg-mark-other bg-yellow-subtle)
|
|
||||||
(fg-mark-other yellow)
|
|
||||||
|
|
||||||
;;;; Prompt mappings
|
|
||||||
|
|
||||||
(fg-prompt green-cooler)
|
|
||||||
(bg-prompt unspecified)
|
|
||||||
|
|
||||||
;;;; Prose mappings
|
|
||||||
|
|
||||||
(bg-prose-block-delimiter bg-dim)
|
|
||||||
(fg-prose-block-delimiter fg-dim)
|
|
||||||
(bg-prose-block-contents bg-dim)
|
|
||||||
|
|
||||||
(bg-prose-code unspecified)
|
|
||||||
(fg-prose-code green-cooler)
|
|
||||||
|
|
||||||
(bg-prose-macro unspecified)
|
|
||||||
(fg-prose-macro blue-cooler)
|
|
||||||
|
|
||||||
(bg-prose-verbatim unspecified)
|
|
||||||
(fg-prose-verbatim yellow-warmer)
|
|
||||||
|
|
||||||
(prose-done green)
|
|
||||||
(prose-todo red)
|
|
||||||
|
|
||||||
(prose-metadata fg-dim)
|
|
||||||
(prose-metadata-value fg-alt)
|
|
||||||
|
|
||||||
(prose-table fg-alt)
|
|
||||||
(prose-table-formula magenta-warmer)
|
|
||||||
|
|
||||||
(prose-tag magenta-faint)
|
|
||||||
|
|
||||||
;;;; Rainbow mappings
|
|
||||||
|
|
||||||
(rainbow-0 fg-main)
|
|
||||||
(rainbow-1 magenta-intense)
|
|
||||||
(rainbow-2 cyan-intense)
|
|
||||||
(rainbow-3 red-warmer)
|
|
||||||
(rainbow-4 yellow-intense)
|
|
||||||
(rainbow-5 magenta-cooler)
|
|
||||||
(rainbow-6 green-intense)
|
|
||||||
(rainbow-7 blue-warmer)
|
|
||||||
(rainbow-8 magenta-warmer)
|
|
||||||
|
|
||||||
;;;; Search mappings
|
|
||||||
|
|
||||||
(bg-search-current bg-yellow-intense)
|
|
||||||
(bg-search-lazy bg-cyan-intense)
|
|
||||||
(bg-search-replace bg-red-intense)
|
|
||||||
|
|
||||||
(bg-search-rx-group-0 bg-blue-intense)
|
|
||||||
(bg-search-rx-group-1 bg-green-intense)
|
|
||||||
(bg-search-rx-group-2 bg-red-subtle)
|
|
||||||
(bg-search-rx-group-3 bg-magenta-subtle)
|
|
||||||
|
|
||||||
;;;; Space mappings
|
|
||||||
|
|
||||||
(bg-space unspecified)
|
|
||||||
(fg-space border)
|
|
||||||
(bg-space-err bg-red-intense)
|
|
||||||
|
|
||||||
;;;; Terminal mappings
|
|
||||||
|
|
||||||
(bg-term-black "#000000")
|
|
||||||
(fg-term-black "#000000")
|
|
||||||
(bg-term-black-bright "#595959")
|
|
||||||
(fg-term-black-bright "#595959")
|
|
||||||
|
|
||||||
(bg-term-red red)
|
|
||||||
(fg-term-red red)
|
|
||||||
(bg-term-red-bright red-warmer)
|
|
||||||
(fg-term-red-bright red-warmer)
|
|
||||||
|
|
||||||
(bg-term-green green)
|
|
||||||
(fg-term-green green)
|
|
||||||
(bg-term-green-bright green-cooler)
|
|
||||||
(fg-term-green-bright green-cooler)
|
|
||||||
|
|
||||||
(bg-term-yellow yellow)
|
|
||||||
(fg-term-yellow yellow)
|
|
||||||
(bg-term-yellow-bright yellow-warmer)
|
|
||||||
(fg-term-yellow-bright yellow-warmer)
|
|
||||||
|
|
||||||
(bg-term-blue blue)
|
|
||||||
(fg-term-blue blue)
|
|
||||||
(bg-term-blue-bright blue-warmer)
|
|
||||||
(fg-term-blue-bright blue-warmer)
|
|
||||||
|
|
||||||
(bg-term-magenta magenta)
|
|
||||||
(fg-term-magenta magenta)
|
|
||||||
(bg-term-magenta-bright magenta-cooler)
|
|
||||||
(fg-term-magenta-bright magenta-cooler)
|
|
||||||
|
|
||||||
(bg-term-cyan cyan)
|
|
||||||
(fg-term-cyan cyan)
|
|
||||||
(bg-term-cyan-bright cyan-cooler)
|
|
||||||
(fg-term-cyan-bright cyan-cooler)
|
|
||||||
|
|
||||||
(bg-term-white "#a6a6a6")
|
|
||||||
(fg-term-white "#a6a6a6")
|
|
||||||
(bg-term-white-bright "#ffffff")
|
|
||||||
(fg-term-white-bright "#ffffff")
|
|
||||||
|
|
||||||
;;;; Heading mappings
|
|
||||||
|
|
||||||
(fg-heading-0 green-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-8 fg-dim)
|
|
||||||
|
|
||||||
(bg-heading-0 unspecified)
|
|
||||||
(bg-heading-1 unspecified)
|
|
||||||
(bg-heading-2 unspecified)
|
|
||||||
(bg-heading-3 unspecified)
|
|
||||||
(bg-heading-4 unspecified)
|
|
||||||
(bg-heading-5 unspecified)
|
|
||||||
(bg-heading-6 unspecified)
|
|
||||||
(bg-heading-7 unspecified)
|
|
||||||
(bg-heading-8 unspecified)
|
|
||||||
|
|
||||||
(overline-heading-0 unspecified)
|
|
||||||
(overline-heading-1 unspecified)
|
|
||||||
(overline-heading-2 unspecified)
|
|
||||||
(overline-heading-3 unspecified)
|
|
||||||
(overline-heading-4 unspecified)
|
|
||||||
(overline-heading-5 unspecified)
|
|
||||||
(overline-heading-6 unspecified)
|
|
||||||
(overline-heading-7 unspecified)
|
|
||||||
(overline-heading-8 unspecified))
|
|
||||||
"The entire palette of the `modus-operandi-tinted' theme.
|
|
||||||
|
|
||||||
Named colors have the form (COLOR-NAME HEX-VALUE) with the former
|
|
||||||
as a symbol and the latter as a string.
|
|
||||||
|
|
||||||
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
|
This is meant to extend the palette with custom named colors and/or
|
||||||
semantic palette mappings. Those may then be used in combination with
|
semantic palette mappings. Those may then be used in combination with
|
||||||
palette overrides (also see `modus-themes-common-palette-overrides' and
|
palette overrides (also see `modus-themes-common-palette-overrides' and
|
||||||
`modus-operandi-tinted-palette-overrides')."
|
`modus-operandi-tinted-palette-overrides')."
|
||||||
:group 'modus-themes
|
:group 'modus-themes
|
||||||
:package-version '(modus-themes . "4.5.0")
|
:package-version '(modus-themes . "4.5.0")
|
||||||
:type '(repeat (list symbol (choice symbol string)))
|
:type '(repeat (list symbol (choice symbol string)))
|
||||||
:set #'modus-themes--set-option
|
:link '(info-link "(modus-themes) Option to extend the palette for use with overrides"))
|
||||||
: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
|
(defcustom modus-operandi-tinted-palette-overrides nil
|
||||||
"Overrides for `modus-operandi-tinted-palette'.
|
"Overrides for `modus-operandi-tinted-palette'.
|
||||||
|
|
||||||
Mirror the elements of the aforementioned palette, overriding
|
Mirror the elements of the aforementioned palette, overriding
|
||||||
their value.
|
their value.
|
||||||
|
|
@ -521,18 +68,23 @@ mappings, such as to make the cursor red. Wherea theme-specific
|
||||||
overrides can also be used to change the value of a named color,
|
overrides can also be used to change the value of a named color,
|
||||||
such as what hexadecimal RGB value the red-warmer symbol
|
such as what hexadecimal RGB value the red-warmer symbol
|
||||||
represents."
|
represents."
|
||||||
:group 'modus-themes
|
:group 'modus-themes
|
||||||
:package-version '(modus-themes . "4.0.0")
|
:package-version '(modus-themes . "4.0.0")
|
||||||
:version "30.1"
|
:version "30.1"
|
||||||
:type '(repeat (list symbol (choice symbol string)))
|
:type '(repeat (list symbol (choice symbol string)))
|
||||||
:set #'modus-themes--set-option
|
:link '(info-link "(modus-themes) Palette overrides"))
|
||||||
:initialize #'custom-initialize-default
|
|
||||||
:link '(info-link "(modus-themes) Palette overrides"))
|
|
||||||
|
|
||||||
(modus-themes-theme modus-operandi-tinted
|
(modus-themes-theme
|
||||||
modus-operandi-tinted-palette
|
'modus-operandi-tinted
|
||||||
modus-operandi-tinted-palette-overrides)
|
'modus-themes
|
||||||
|
"Elegant, highly legible theme with a light ochre background.
|
||||||
(provide-theme 'modus-operandi-tinted))
|
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
|
||||||
|
7:1 (WCAG AAA standard)."
|
||||||
|
'light
|
||||||
|
'modus-themes-operandi-tinted-palette
|
||||||
|
'modus-operandi-tinted-palette-user
|
||||||
|
'modus-operandi-tinted-palette-overrides)
|
||||||
|
|
||||||
;;; modus-operandi-tinted-theme.el ends here
|
;;; modus-operandi-tinted-theme.el ends here
|
||||||
|
|
|
||||||
|
|
@ -26,490 +26,35 @@
|
||||||
;;
|
;;
|
||||||
;; The Modus themes conform with the highest standard for
|
;; The Modus themes conform with the highest standard for
|
||||||
;; color-contrast accessibility between background and foreground
|
;; color-contrast accessibility between background and foreground
|
||||||
;; values (WCAG AAA). Please refer to the official Info manual for
|
;; values (WCAG AAA). They are also highly customizable and can even
|
||||||
;; further documentation (distributed with the themes, or available
|
;; be used as the basis for other themes. Please refer to the official
|
||||||
;; at: <https://protesilaos.com/emacs/modus-themes>).
|
;; Info manual for further documentation (distributed with the themes,
|
||||||
|
;; or available at: <https://protesilaos.com/emacs/modus-themes>).
|
||||||
|
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
(eval-and-compile
|
(unless (and (fboundp 'require-theme)
|
||||||
(unless (and (fboundp 'require-theme)
|
load-file-name
|
||||||
load-file-name
|
(equal (file-name-directory load-file-name)
|
||||||
(equal (file-name-directory load-file-name)
|
(expand-file-name "themes/" data-directory))
|
||||||
(expand-file-name "themes/" data-directory))
|
(require-theme 'modus-themes t))
|
||||||
(require-theme 'modus-themes t))
|
(require 'modus-themes))
|
||||||
(require 'modus-themes))
|
|
||||||
|
(defcustom modus-operandi-tritanopia-palette-user nil
|
||||||
;;;###theme-autoload
|
"Like the `modus-operandi-tritanopia-palette' for user-defined entries.
|
||||||
(deftheme modus-operandi-tritanopia
|
|
||||||
"Tritanopia-optimized theme with a white background.
|
|
||||||
This variant is optimized for users with blue-yellow color
|
|
||||||
deficiency (tritanopia). It 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 7:1 (WCAG AAA
|
|
||||||
standard)."
|
|
||||||
:background-mode 'light
|
|
||||||
:kind 'color-scheme
|
|
||||||
:family 'modus)
|
|
||||||
|
|
||||||
(defconst modus-operandi-tritanopia-palette
|
|
||||||
'(
|
|
||||||
;;; Basic values
|
|
||||||
|
|
||||||
(bg-main "#ffffff")
|
|
||||||
(bg-dim "#f2f2f2")
|
|
||||||
(fg-main "#000000")
|
|
||||||
(fg-dim "#595959")
|
|
||||||
(fg-alt "#024960")
|
|
||||||
(bg-active "#c4c4c4")
|
|
||||||
(bg-inactive "#e0e0e0")
|
|
||||||
(border "#9f9f9f")
|
|
||||||
|
|
||||||
;;; Common accent foregrounds
|
|
||||||
|
|
||||||
(red "#a60000")
|
|
||||||
(red-warmer "#b21100")
|
|
||||||
(red-cooler "#a0132f")
|
|
||||||
(red-faint "#702000")
|
|
||||||
(red-intense "#d00000")
|
|
||||||
(green "#006800")
|
|
||||||
(green-warmer "#316500")
|
|
||||||
(green-cooler "#00663f")
|
|
||||||
(green-faint "#2a5045")
|
|
||||||
(green-intense "#008900")
|
|
||||||
(yellow "#695500")
|
|
||||||
(yellow-warmer "#973300")
|
|
||||||
(yellow-cooler "#77492f")
|
|
||||||
(yellow-faint "#624416")
|
|
||||||
(yellow-intense "#808000")
|
|
||||||
(blue "#0031a9")
|
|
||||||
(blue-warmer "#3548cf")
|
|
||||||
(blue-cooler "#0000b0")
|
|
||||||
(blue-faint "#003497")
|
|
||||||
(blue-intense "#0000ff")
|
|
||||||
(magenta "#721045")
|
|
||||||
(magenta-warmer "#8f0075")
|
|
||||||
(magenta-cooler "#531ab6")
|
|
||||||
(magenta-faint "#7c318f")
|
|
||||||
(magenta-intense "#cd22bd")
|
|
||||||
(cyan "#005e8b")
|
|
||||||
(cyan-warmer "#3f578f")
|
|
||||||
(cyan-cooler "#005f5f")
|
|
||||||
(cyan-faint "#004f5f")
|
|
||||||
(cyan-intense "#008899")
|
|
||||||
|
|
||||||
;;; Uncommon accent foregrounds
|
|
||||||
|
|
||||||
(rust "#8a290f")
|
|
||||||
(gold "#80601f")
|
|
||||||
(olive "#56692d")
|
|
||||||
(slate "#2f3f83")
|
|
||||||
(indigo "#4a3a8a")
|
|
||||||
(maroon "#731c52")
|
|
||||||
(pink "#7b435c")
|
|
||||||
|
|
||||||
;;; Common accent backgrounds
|
|
||||||
|
|
||||||
(bg-red-intense "#ff8f88")
|
|
||||||
(bg-green-intense "#8adf80")
|
|
||||||
(bg-yellow-intense "#f3d000")
|
|
||||||
(bg-blue-intense "#bfc9ff")
|
|
||||||
(bg-magenta-intense "#dfa0f0")
|
|
||||||
(bg-cyan-intense "#a4d5f9")
|
|
||||||
|
|
||||||
(bg-red-subtle "#ffcfbf")
|
|
||||||
(bg-green-subtle "#b3fabf")
|
|
||||||
(bg-yellow-subtle "#fff576")
|
|
||||||
(bg-blue-subtle "#ccdfff")
|
|
||||||
(bg-magenta-subtle "#ffddff")
|
|
||||||
(bg-cyan-subtle "#bfefff")
|
|
||||||
|
|
||||||
(bg-red-nuanced "#ffe8e8")
|
|
||||||
(bg-green-nuanced "#e0f6e0")
|
|
||||||
(bg-yellow-nuanced "#f8f0d0")
|
|
||||||
(bg-blue-nuanced "#ecedff")
|
|
||||||
(bg-magenta-nuanced "#f8e6f5")
|
|
||||||
(bg-cyan-nuanced "#e0f2fa")
|
|
||||||
|
|
||||||
;;; 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-sage "#c0e7d4")
|
|
||||||
(fg-sage "#124b41")
|
|
||||||
|
|
||||||
;;; Graphs
|
|
||||||
|
|
||||||
(bg-graph-red-0 "#ef7969")
|
|
||||||
(bg-graph-red-1 "#ffaab4")
|
|
||||||
(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 "#a8cfff")
|
|
||||||
(bg-graph-magenta-0 "#efafcf")
|
|
||||||
(bg-graph-magenta-1 "#ffdaef")
|
|
||||||
(bg-graph-cyan-0 "#7fd3ed")
|
|
||||||
(bg-graph-cyan-1 "#afefff")
|
|
||||||
|
|
||||||
;;; Special purpose
|
|
||||||
|
|
||||||
(bg-completion "#afdfef")
|
|
||||||
(bg-hover "#ffafbc")
|
|
||||||
(bg-hover-secondary "#abdfdd")
|
|
||||||
(bg-hl-line "#dfeaec")
|
|
||||||
(bg-region "#bdbdbd")
|
|
||||||
(fg-region "#000000")
|
|
||||||
|
|
||||||
(bg-mode-line-active "#afe0f2")
|
|
||||||
(fg-mode-line-active "#0f0f0f")
|
|
||||||
(border-mode-line-active "#2f4f44")
|
|
||||||
(bg-mode-line-inactive "#e6e6e6")
|
|
||||||
(fg-mode-line-inactive "#585858")
|
|
||||||
(border-mode-line-inactive "#a3a3a3")
|
|
||||||
|
|
||||||
(modeline-err "#8f0000")
|
|
||||||
(modeline-warning "#6f306f")
|
|
||||||
(modeline-info "#00445f")
|
|
||||||
|
|
||||||
(bg-tab-bar "#dfdfdf")
|
|
||||||
(bg-tab-current "#ffffff")
|
|
||||||
(bg-tab-other "#c2c2c2")
|
|
||||||
|
|
||||||
;;; Diffs
|
|
||||||
|
|
||||||
(bg-added "#b5e7ff")
|
|
||||||
(bg-added-faint "#c6f6ff")
|
|
||||||
(bg-added-refine "#9adcef")
|
|
||||||
(bg-added-fringe "#1782cc")
|
|
||||||
(fg-added "#005079")
|
|
||||||
(fg-added-intense "#0043aa")
|
|
||||||
|
|
||||||
(bg-changed "#eecfdf")
|
|
||||||
(bg-changed-faint "#f0dde5")
|
|
||||||
(bg-changed-refine "#e0b0d0")
|
|
||||||
(bg-changed-fringe "#9f6ab0")
|
|
||||||
(fg-changed "#6f1343")
|
|
||||||
(fg-changed-intense "#7f0f9f")
|
|
||||||
|
|
||||||
(bg-removed "#ffd8d5")
|
|
||||||
(bg-removed-faint "#ffe9e9")
|
|
||||||
(bg-removed-refine "#f3b5af")
|
|
||||||
(bg-removed-fringe "#d84a4f")
|
|
||||||
(fg-removed "#8f1313")
|
|
||||||
(fg-removed-intense "#aa2222")
|
|
||||||
|
|
||||||
(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
|
|
||||||
|
|
||||||
(fringe bg-dim)
|
|
||||||
(cursor red-intense)
|
|
||||||
|
|
||||||
(keybind red)
|
|
||||||
(name red-cooler)
|
|
||||||
(identifier red-faint)
|
|
||||||
|
|
||||||
(err red-warmer)
|
|
||||||
(warning magenta)
|
|
||||||
(info cyan)
|
|
||||||
|
|
||||||
(underline-err red-intense)
|
|
||||||
(underline-warning magenta-intense)
|
|
||||||
(underline-note cyan-intense)
|
|
||||||
|
|
||||||
(bg-prominent-err bg-red-intense)
|
|
||||||
(fg-prominent-err fg-main)
|
|
||||||
(bg-prominent-warning bg-magenta-intense)
|
|
||||||
(fg-prominent-warning fg-main)
|
|
||||||
(bg-prominent-note bg-cyan-intense)
|
|
||||||
(fg-prominent-note fg-main)
|
|
||||||
|
|
||||||
(bg-active-argument bg-red-nuanced)
|
|
||||||
(fg-active-argument red-warmer)
|
|
||||||
(bg-active-value bg-cyan-nuanced)
|
|
||||||
(fg-active-value cyan)
|
|
||||||
|
|
||||||
;;;; Code mappings
|
|
||||||
|
|
||||||
(bracket fg-main)
|
|
||||||
(builtin magenta)
|
|
||||||
(comment red-faint)
|
|
||||||
(constant green-cooler)
|
|
||||||
(delimiter fg-main)
|
|
||||||
(docmarkup magenta-faint)
|
|
||||||
(docstring fg-alt)
|
|
||||||
(fnname cyan-warmer)
|
|
||||||
(keyword red-cooler)
|
|
||||||
(number fg-main)
|
|
||||||
(operator fg-main)
|
|
||||||
(preprocessor red-warmer)
|
|
||||||
(property cyan-cooler)
|
|
||||||
(punctuation fg-main)
|
|
||||||
(rx-backslash magenta)
|
|
||||||
(rx-construct red)
|
|
||||||
(string cyan)
|
|
||||||
(type blue-warmer)
|
|
||||||
(variable cyan-cooler)
|
|
||||||
|
|
||||||
;;;; Accent mappings
|
|
||||||
|
|
||||||
(accent-0 cyan)
|
|
||||||
(accent-1 red-warmer)
|
|
||||||
(accent-2 cyan-cooler)
|
|
||||||
(accent-3 magenta)
|
|
||||||
|
|
||||||
;;;; Button mappings
|
|
||||||
|
|
||||||
(fg-button-active fg-main)
|
|
||||||
(fg-button-inactive fg-dim)
|
|
||||||
(bg-button-active bg-active)
|
|
||||||
(bg-button-inactive bg-dim)
|
|
||||||
|
|
||||||
;;;; Completion mappings
|
|
||||||
|
|
||||||
(fg-completion-match-0 cyan)
|
|
||||||
(fg-completion-match-1 red-warmer)
|
|
||||||
(fg-completion-match-2 magenta)
|
|
||||||
(fg-completion-match-3 cyan-cooler)
|
|
||||||
(bg-completion-match-0 unspecified)
|
|
||||||
(bg-completion-match-1 unspecified)
|
|
||||||
(bg-completion-match-2 unspecified)
|
|
||||||
(bg-completion-match-3 unspecified)
|
|
||||||
|
|
||||||
;;;; Date mappings
|
|
||||||
|
|
||||||
(date-common cyan-cooler)
|
|
||||||
(date-deadline red)
|
|
||||||
(date-deadline-subtle red-faint)
|
|
||||||
(date-event fg-alt)
|
|
||||||
(date-holiday red)
|
|
||||||
(date-holiday-other cyan)
|
|
||||||
(date-now fg-main)
|
|
||||||
(date-range fg-alt)
|
|
||||||
(date-scheduled magenta)
|
|
||||||
(date-scheduled-subtle magenta-faint)
|
|
||||||
(date-weekday cyan)
|
|
||||||
(date-weekend magenta-warmer)
|
|
||||||
|
|
||||||
;;;; Line number mappings
|
|
||||||
|
|
||||||
(fg-line-number-inactive fg-dim)
|
|
||||||
(fg-line-number-active fg-main)
|
|
||||||
(bg-line-number-inactive bg-dim)
|
|
||||||
(bg-line-number-active bg-active)
|
|
||||||
|
|
||||||
;;;; Link mappings
|
|
||||||
|
|
||||||
(fg-link cyan)
|
|
||||||
(bg-link unspecified)
|
|
||||||
(underline-link cyan)
|
|
||||||
|
|
||||||
(fg-link-symbolic cyan-cooler)
|
|
||||||
(bg-link-symbolic unspecified)
|
|
||||||
(underline-link-symbolic cyan-cooler)
|
|
||||||
|
|
||||||
(fg-link-visited magenta)
|
|
||||||
(bg-link-visited unspecified)
|
|
||||||
(underline-link-visited magenta)
|
|
||||||
|
|
||||||
;;;; Mail mappings
|
|
||||||
|
|
||||||
(mail-cite-0 cyan-faint)
|
|
||||||
(mail-cite-1 red-faint)
|
|
||||||
(mail-cite-2 magenta-warmer)
|
|
||||||
(mail-cite-3 cyan-warmer)
|
|
||||||
(mail-part cyan-cooler)
|
|
||||||
(mail-recipient cyan)
|
|
||||||
(mail-subject red-cooler)
|
|
||||||
(mail-other cyan)
|
|
||||||
|
|
||||||
;;;; Mark mappings
|
|
||||||
|
|
||||||
(bg-mark-delete bg-red-subtle)
|
|
||||||
(fg-mark-delete red)
|
|
||||||
(bg-mark-select bg-cyan-subtle)
|
|
||||||
(fg-mark-select cyan)
|
|
||||||
(bg-mark-other bg-magenta-subtle)
|
|
||||||
(fg-mark-other magenta)
|
|
||||||
|
|
||||||
;;;; Prompt mappings
|
|
||||||
|
|
||||||
(fg-prompt cyan-cooler)
|
|
||||||
(bg-prompt unspecified)
|
|
||||||
|
|
||||||
;;;; Prose mappings
|
|
||||||
|
|
||||||
(bg-prose-block-delimiter bg-dim)
|
|
||||||
(fg-prose-block-delimiter fg-dim)
|
|
||||||
(bg-prose-block-contents bg-dim)
|
|
||||||
|
|
||||||
(bg-prose-code unspecified)
|
|
||||||
(fg-prose-code cyan)
|
|
||||||
|
|
||||||
(bg-prose-macro unspecified)
|
|
||||||
(fg-prose-macro red-warmer)
|
|
||||||
|
|
||||||
(bg-prose-verbatim unspecified)
|
|
||||||
(fg-prose-verbatim magenta-warmer)
|
|
||||||
|
|
||||||
(prose-done cyan)
|
|
||||||
(prose-todo red)
|
|
||||||
|
|
||||||
(prose-metadata fg-dim)
|
|
||||||
(prose-metadata-value fg-alt)
|
|
||||||
|
|
||||||
(prose-table fg-alt)
|
|
||||||
(prose-table-formula red-cooler)
|
|
||||||
|
|
||||||
(prose-tag fg-alt)
|
|
||||||
|
|
||||||
;;;; Rainbow mappings
|
|
||||||
|
|
||||||
(rainbow-0 cyan)
|
|
||||||
(rainbow-1 red)
|
|
||||||
(rainbow-2 cyan-warmer)
|
|
||||||
(rainbow-3 red-cooler)
|
|
||||||
(rainbow-4 cyan-cooler)
|
|
||||||
(rainbow-5 magenta)
|
|
||||||
(rainbow-6 cyan-faint)
|
|
||||||
(rainbow-7 magenta-faint)
|
|
||||||
(rainbow-8 red-faint)
|
|
||||||
|
|
||||||
;;;; Search mappings
|
|
||||||
|
|
||||||
(bg-search-current bg-red-intense)
|
|
||||||
(bg-search-lazy bg-cyan-intense)
|
|
||||||
(bg-search-replace bg-magenta-intense)
|
|
||||||
|
|
||||||
(bg-search-rx-group-0 bg-blue-intense)
|
|
||||||
(bg-search-rx-group-1 bg-magenta-intense)
|
|
||||||
(bg-search-rx-group-2 bg-cyan-subtle)
|
|
||||||
(bg-search-rx-group-3 bg-red-subtle)
|
|
||||||
|
|
||||||
;;;; Space mappings
|
|
||||||
|
|
||||||
(bg-space unspecified)
|
|
||||||
(fg-space border)
|
|
||||||
(bg-space-err bg-red-intense)
|
|
||||||
|
|
||||||
;;;; Terminal mappings
|
|
||||||
|
|
||||||
(bg-term-black "#000000")
|
|
||||||
(fg-term-black "#000000")
|
|
||||||
(bg-term-black-bright "#595959")
|
|
||||||
(fg-term-black-bright "#595959")
|
|
||||||
|
|
||||||
(bg-term-red red)
|
|
||||||
(fg-term-red red)
|
|
||||||
(bg-term-red-bright red-warmer)
|
|
||||||
(fg-term-red-bright red-warmer)
|
|
||||||
|
|
||||||
(bg-term-green green)
|
|
||||||
(fg-term-green green)
|
|
||||||
(bg-term-green-bright green-cooler)
|
|
||||||
(fg-term-green-bright green-cooler)
|
|
||||||
|
|
||||||
(bg-term-yellow yellow)
|
|
||||||
(fg-term-yellow yellow)
|
|
||||||
(bg-term-yellow-bright yellow-warmer)
|
|
||||||
(fg-term-yellow-bright yellow-warmer)
|
|
||||||
|
|
||||||
(bg-term-blue blue)
|
|
||||||
(fg-term-blue blue)
|
|
||||||
(bg-term-blue-bright blue-warmer)
|
|
||||||
(fg-term-blue-bright blue-warmer)
|
|
||||||
|
|
||||||
(bg-term-magenta magenta)
|
|
||||||
(fg-term-magenta magenta)
|
|
||||||
(bg-term-magenta-bright magenta-cooler)
|
|
||||||
(fg-term-magenta-bright magenta-cooler)
|
|
||||||
|
|
||||||
(bg-term-cyan cyan)
|
|
||||||
(fg-term-cyan cyan)
|
|
||||||
(bg-term-cyan-bright cyan-cooler)
|
|
||||||
(fg-term-cyan-bright cyan-cooler)
|
|
||||||
|
|
||||||
(bg-term-white "#a6a6a6")
|
|
||||||
(fg-term-white "#a6a6a6")
|
|
||||||
(bg-term-white-bright "#ffffff")
|
|
||||||
(fg-term-white-bright "#ffffff")
|
|
||||||
|
|
||||||
;;;; Heading mappings
|
|
||||||
|
|
||||||
(fg-heading-0 cyan-cooler)
|
|
||||||
(fg-heading-1 fg-main)
|
|
||||||
(fg-heading-2 red-faint)
|
|
||||||
(fg-heading-3 cyan-faint)
|
|
||||||
(fg-heading-4 magenta)
|
|
||||||
(fg-heading-5 green-faint)
|
|
||||||
(fg-heading-6 magenta-faint)
|
|
||||||
(fg-heading-7 cyan-warmer)
|
|
||||||
(fg-heading-8 fg-dim)
|
|
||||||
|
|
||||||
(bg-heading-0 unspecified)
|
|
||||||
(bg-heading-1 unspecified)
|
|
||||||
(bg-heading-2 unspecified)
|
|
||||||
(bg-heading-3 unspecified)
|
|
||||||
(bg-heading-4 unspecified)
|
|
||||||
(bg-heading-5 unspecified)
|
|
||||||
(bg-heading-6 unspecified)
|
|
||||||
(bg-heading-7 unspecified)
|
|
||||||
(bg-heading-8 unspecified)
|
|
||||||
|
|
||||||
(overline-heading-0 unspecified)
|
|
||||||
(overline-heading-1 unspecified)
|
|
||||||
(overline-heading-2 unspecified)
|
|
||||||
(overline-heading-3 unspecified)
|
|
||||||
(overline-heading-4 unspecified)
|
|
||||||
(overline-heading-5 unspecified)
|
|
||||||
(overline-heading-6 unspecified)
|
|
||||||
(overline-heading-7 unspecified)
|
|
||||||
(overline-heading-8 unspecified))
|
|
||||||
"The entire palette of the `modus-operandi-tritanopia' theme.
|
|
||||||
|
|
||||||
Named colors have the form (COLOR-NAME HEX-VALUE) with the former
|
|
||||||
as a symbol and the latter as a string.
|
|
||||||
|
|
||||||
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
|
This is meant to extend the palette with custom named colors and/or
|
||||||
semantic palette mappings. Those may then be used in combination with
|
semantic palette mappings. Those may then be used in combination with
|
||||||
palette overrides (also see `modus-themes-common-palette-overrides' and
|
palette overrides (also see `modus-themes-common-palette-overrides' and
|
||||||
`modus-operandi-tritanopia-palette-overrides')."
|
`modus-operandi-tritanopia-palette-overrides')."
|
||||||
:group 'modus-themes
|
:group 'modus-themes
|
||||||
:package-version '(modus-themes . "4.5.0")
|
:package-version '(modus-themes . "4.5.0")
|
||||||
:type '(repeat (list symbol (choice symbol string)))
|
:type '(repeat (list symbol (choice symbol string)))
|
||||||
:set #'modus-themes--set-option
|
:link '(info-link "(modus-themes) Option to extend the palette for use with overrides"))
|
||||||
: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
|
(defcustom modus-operandi-tritanopia-palette-overrides nil
|
||||||
"Overrides for `modus-operandi-tritanopia-palette'.
|
"Overrides for `modus-operandi-tritanopia-palette'.
|
||||||
|
|
||||||
Mirror the elements of the aforementioned palette, overriding
|
Mirror the elements of the aforementioned palette, overriding
|
||||||
their value.
|
their value.
|
||||||
|
|
@ -523,18 +68,25 @@ mappings, such as to make the cursor red. Wherea theme-specific
|
||||||
overrides can also be used to change the value of a named color,
|
overrides can also be used to change the value of a named color,
|
||||||
such as what hexadecimal RGB value the red-warmer symbol
|
such as what hexadecimal RGB value the red-warmer symbol
|
||||||
represents."
|
represents."
|
||||||
:group 'modus-themes
|
:group 'modus-themes
|
||||||
:package-version '(modus-themes . "4.0.0")
|
:package-version '(modus-themes . "4.0.0")
|
||||||
:version "30.1"
|
:version "30.1"
|
||||||
:type '(repeat (list symbol (choice symbol string)))
|
:type '(repeat (list symbol (choice symbol string)))
|
||||||
:set #'modus-themes--set-option
|
:link '(info-link "(modus-themes) Palette overrides"))
|
||||||
:initialize #'custom-initialize-default
|
|
||||||
:link '(info-link "(modus-themes) Palette overrides"))
|
|
||||||
|
|
||||||
(modus-themes-theme modus-operandi-tritanopia
|
(modus-themes-theme
|
||||||
modus-operandi-tritanopia-palette
|
'modus-operandi-tritanopia
|
||||||
modus-operandi-tritanopia-palette-overrides)
|
'modus-themes
|
||||||
|
"Tritanopia-optimized theme with a white background.
|
||||||
(provide-theme 'modus-operandi-tritanopia))
|
This variant is optimized for users with blue-yellow color
|
||||||
|
deficiency (tritanopia). It 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 7:1 (WCAG AAA
|
||||||
|
standard)."
|
||||||
|
'light
|
||||||
|
'modus-themes-operandi-tritanopia-palette
|
||||||
|
'modus-operandi-tritanopia-palette-user
|
||||||
|
'modus-operandi-tritanopia-palette-overrides)
|
||||||
|
|
||||||
;;; modus-operandi-tritanopia-theme.el ends here
|
;;; modus-operandi-tritanopia-theme.el ends here
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load diff
|
|
@ -26,490 +26,35 @@
|
||||||
;;
|
;;
|
||||||
;; The Modus themes conform with the highest standard for
|
;; The Modus themes conform with the highest standard for
|
||||||
;; color-contrast accessibility between background and foreground
|
;; color-contrast accessibility between background and foreground
|
||||||
;; values (WCAG AAA). Please refer to the official Info manual for
|
;; values (WCAG AAA). They are also highly customizable and can even
|
||||||
;; further documentation (distributed with the themes, or available
|
;; be used as the basis for other themes. Please refer to the official
|
||||||
;; at: <https://protesilaos.com/emacs/modus-themes>).
|
;; Info manual for further documentation (distributed with the themes,
|
||||||
|
;; or available at: <https://protesilaos.com/emacs/modus-themes>).
|
||||||
|
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
(eval-and-compile
|
(unless (and (fboundp 'require-theme)
|
||||||
(unless (and (fboundp 'require-theme)
|
load-file-name
|
||||||
load-file-name
|
(equal (file-name-directory load-file-name)
|
||||||
(equal (file-name-directory load-file-name)
|
(expand-file-name "themes/" data-directory))
|
||||||
(expand-file-name "themes/" data-directory))
|
(require-theme 'modus-themes t))
|
||||||
(require-theme 'modus-themes t))
|
(require 'modus-themes))
|
||||||
(require 'modus-themes))
|
|
||||||
|
(defcustom modus-vivendi-deuteranopia-palette-user nil
|
||||||
;;;###theme-autoload
|
"Like the `modus-vivendi-deuteranopia-palette' for user-defined entries.
|
||||||
(deftheme modus-vivendi-deuteranopia
|
|
||||||
"Deuteranopia-optimized theme with a black background.
|
|
||||||
This variant is optimized for users with red-green color
|
|
||||||
deficiency (deuteranopia). It 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 7:1 (WCAG AAA
|
|
||||||
standard)."
|
|
||||||
:background-mode 'dark
|
|
||||||
:kind 'color-scheme
|
|
||||||
:family 'modus)
|
|
||||||
|
|
||||||
(defconst modus-vivendi-deuteranopia-palette
|
|
||||||
'(
|
|
||||||
;;; Basic values
|
|
||||||
|
|
||||||
(bg-main "#000000")
|
|
||||||
(bg-dim "#1e1e1e")
|
|
||||||
(fg-main "#ffffff")
|
|
||||||
(fg-dim "#989898")
|
|
||||||
(fg-alt "#c6daff")
|
|
||||||
(bg-active "#535353")
|
|
||||||
(bg-inactive "#303030")
|
|
||||||
(border "#646464")
|
|
||||||
|
|
||||||
;;; Common accent foregrounds
|
|
||||||
|
|
||||||
(red "#ff5f59")
|
|
||||||
(red-warmer "#ff6b55")
|
|
||||||
(red-cooler "#ff7f86")
|
|
||||||
(red-faint "#ff9580")
|
|
||||||
(red-intense "#ff5f5f")
|
|
||||||
(green "#44bc44")
|
|
||||||
(green-warmer "#70b900")
|
|
||||||
(green-cooler "#00c06f")
|
|
||||||
(green-faint "#88ca9f")
|
|
||||||
(green-intense "#44df44")
|
|
||||||
(yellow "#cabf00")
|
|
||||||
(yellow-warmer "#ffa00f")
|
|
||||||
(yellow-cooler "#d8af7a")
|
|
||||||
(yellow-faint "#d2b580")
|
|
||||||
(yellow-intense "#efef00")
|
|
||||||
(blue "#2fafff")
|
|
||||||
(blue-warmer "#79a8ff")
|
|
||||||
(blue-cooler "#00bcff")
|
|
||||||
(blue-faint "#82b0ec")
|
|
||||||
(blue-intense "#338fff")
|
|
||||||
(magenta "#feacd0")
|
|
||||||
(magenta-warmer "#f78fe7")
|
|
||||||
(magenta-cooler "#b6a0ff")
|
|
||||||
(magenta-faint "#caa6df")
|
|
||||||
(magenta-intense "#ff66ff")
|
|
||||||
(cyan "#00d3d0")
|
|
||||||
(cyan-warmer "#4ae2f0")
|
|
||||||
(cyan-cooler "#6ae4b9")
|
|
||||||
(cyan-faint "#9ac8e0")
|
|
||||||
(cyan-intense "#00eff0")
|
|
||||||
|
|
||||||
;;; Uncommon accent foregrounds
|
|
||||||
|
|
||||||
(rust "#db7b5f")
|
|
||||||
(gold "#c0965b")
|
|
||||||
(olive "#9cbd6f")
|
|
||||||
(slate "#76afbf")
|
|
||||||
(indigo "#9099d9")
|
|
||||||
(maroon "#cf7fa7")
|
|
||||||
(pink "#d09dc0")
|
|
||||||
|
|
||||||
;;; Common accent backgrounds
|
|
||||||
|
|
||||||
(bg-red-intense "#9d1f1f")
|
|
||||||
(bg-green-intense "#2f822f")
|
|
||||||
(bg-yellow-intense "#7a6100")
|
|
||||||
(bg-blue-intense "#1640b0")
|
|
||||||
(bg-magenta-intense "#7030af")
|
|
||||||
(bg-cyan-intense "#2266ae")
|
|
||||||
|
|
||||||
(bg-red-subtle "#620f2a")
|
|
||||||
(bg-green-subtle "#00422a")
|
|
||||||
(bg-yellow-subtle "#4a4000")
|
|
||||||
(bg-blue-subtle "#242679")
|
|
||||||
(bg-magenta-subtle "#552f5f")
|
|
||||||
(bg-cyan-subtle "#004065")
|
|
||||||
|
|
||||||
(bg-red-nuanced "#3a0c14")
|
|
||||||
(bg-green-nuanced "#092f1f")
|
|
||||||
(bg-yellow-nuanced "#381d0f")
|
|
||||||
(bg-blue-nuanced "#12154a")
|
|
||||||
(bg-magenta-nuanced "#2f0c3f")
|
|
||||||
(bg-cyan-nuanced "#042837")
|
|
||||||
|
|
||||||
;;; Uncommon accent background and foreground pairs
|
|
||||||
|
|
||||||
(bg-clay "#49191a")
|
|
||||||
(fg-clay "#f1b090")
|
|
||||||
|
|
||||||
(bg-ochre "#462f20")
|
|
||||||
(fg-ochre "#e0d09c")
|
|
||||||
|
|
||||||
(bg-lavender "#38325c")
|
|
||||||
(fg-lavender "#dfc0f0")
|
|
||||||
|
|
||||||
(bg-sage "#143e32")
|
|
||||||
(fg-sage "#c3e7d4")
|
|
||||||
|
|
||||||
;;; Graphs
|
|
||||||
|
|
||||||
(bg-graph-red-0 "#bf6000")
|
|
||||||
(bg-graph-red-1 "#733500")
|
|
||||||
(bg-graph-green-0 "#6fbf8f")
|
|
||||||
(bg-graph-green-1 "#2f5f4f")
|
|
||||||
(bg-graph-yellow-0 "#c1c00a")
|
|
||||||
(bg-graph-yellow-1 "#7f6640")
|
|
||||||
(bg-graph-blue-0 "#0f90ef")
|
|
||||||
(bg-graph-blue-1 "#1f2f8f")
|
|
||||||
(bg-graph-magenta-0 "#7f7f8e")
|
|
||||||
(bg-graph-magenta-1 "#4f4f5f")
|
|
||||||
(bg-graph-cyan-0 "#376f9a")
|
|
||||||
(bg-graph-cyan-1 "#00404f")
|
|
||||||
|
|
||||||
;;; Special purpose
|
|
||||||
|
|
||||||
(bg-completion "#2f447f")
|
|
||||||
(bg-hover "#45605e")
|
|
||||||
(bg-hover-secondary "#604c30")
|
|
||||||
(bg-hl-line "#2f3849")
|
|
||||||
(bg-region "#5a5a5a")
|
|
||||||
(fg-region "#ffffff")
|
|
||||||
|
|
||||||
(bg-mode-line-active "#2a2a6a")
|
|
||||||
(fg-mode-line-active "#f0f0f0")
|
|
||||||
(border-mode-line-active "#8080a7")
|
|
||||||
(bg-mode-line-inactive "#2d2d2d")
|
|
||||||
(fg-mode-line-inactive "#969696")
|
|
||||||
(border-mode-line-inactive "#606060")
|
|
||||||
|
|
||||||
(modeline-err "#e5bf00")
|
|
||||||
(modeline-warning "#c0cf35")
|
|
||||||
(modeline-info "#abeadf")
|
|
||||||
|
|
||||||
(bg-tab-bar "#313131")
|
|
||||||
(bg-tab-current "#000000")
|
|
||||||
(bg-tab-other "#545454")
|
|
||||||
|
|
||||||
;;; Diffs
|
|
||||||
|
|
||||||
(bg-added "#003066")
|
|
||||||
(bg-added-faint "#001a4f")
|
|
||||||
(bg-added-refine "#0f4a77")
|
|
||||||
(bg-added-fringe "#006fff")
|
|
||||||
(fg-added "#c4d5ff")
|
|
||||||
(fg-added-intense "#8080ff")
|
|
||||||
|
|
||||||
(bg-changed "#2f123f")
|
|
||||||
(bg-changed-faint "#1f022f")
|
|
||||||
(bg-changed-refine "#3f325f")
|
|
||||||
(bg-changed-fringe "#7f55a0")
|
|
||||||
(fg-changed "#e3cfff")
|
|
||||||
(fg-changed-intense "#cf9fe2")
|
|
||||||
|
|
||||||
(bg-removed "#3d3d00")
|
|
||||||
(bg-removed-faint "#281f00")
|
|
||||||
(bg-removed-refine "#555500")
|
|
||||||
(bg-removed-fringe "#d0c03f")
|
|
||||||
(fg-removed "#d4d48f")
|
|
||||||
(fg-removed-intense "#d0b05f")
|
|
||||||
|
|
||||||
(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
|
|
||||||
|
|
||||||
(fringe bg-dim)
|
|
||||||
(cursor yellow-intense)
|
|
||||||
|
|
||||||
(keybind blue-cooler)
|
|
||||||
(name blue-cooler)
|
|
||||||
(identifier yellow-faint)
|
|
||||||
|
|
||||||
(err yellow-warmer)
|
|
||||||
(warning yellow)
|
|
||||||
(info blue)
|
|
||||||
|
|
||||||
(underline-err yellow-intense)
|
|
||||||
(underline-warning magenta-faint)
|
|
||||||
(underline-note cyan)
|
|
||||||
|
|
||||||
(bg-prominent-err bg-yellow-intense)
|
|
||||||
(fg-prominent-err fg-main)
|
|
||||||
(bg-prominent-warning bg-magenta-intense)
|
|
||||||
(fg-prominent-warning fg-main)
|
|
||||||
(bg-prominent-note bg-cyan-intense)
|
|
||||||
(fg-prominent-note fg-main)
|
|
||||||
|
|
||||||
(bg-active-argument bg-yellow-nuanced)
|
|
||||||
(fg-active-argument yellow-warmer)
|
|
||||||
(bg-active-value bg-blue-nuanced)
|
|
||||||
(fg-active-value blue-warmer)
|
|
||||||
|
|
||||||
;;;; Code mappings
|
|
||||||
|
|
||||||
(bracket fg-main)
|
|
||||||
(builtin yellow)
|
|
||||||
(comment yellow-cooler)
|
|
||||||
(constant blue-faint)
|
|
||||||
(delimiter fg-main)
|
|
||||||
(docmarkup magenta-faint)
|
|
||||||
(docstring cyan-faint)
|
|
||||||
(fnname yellow-warmer)
|
|
||||||
(keyword blue-cooler)
|
|
||||||
(number fg-main)
|
|
||||||
(operator fg-main)
|
|
||||||
(preprocessor magenta-cooler)
|
|
||||||
(property cyan)
|
|
||||||
(punctuation fg-main)
|
|
||||||
(rx-backslash blue-cooler)
|
|
||||||
(rx-construct yellow-cooler)
|
|
||||||
(string blue-warmer)
|
|
||||||
(type cyan-cooler)
|
|
||||||
(variable cyan)
|
|
||||||
|
|
||||||
;;;; Accent mappings
|
|
||||||
|
|
||||||
(accent-0 blue-warmer)
|
|
||||||
(accent-1 yellow)
|
|
||||||
(accent-2 cyan-cooler)
|
|
||||||
(accent-3 yellow-cooler)
|
|
||||||
|
|
||||||
;;;; Button mappings
|
|
||||||
|
|
||||||
(fg-button-active fg-main)
|
|
||||||
(fg-button-inactive fg-dim)
|
|
||||||
(bg-button-active bg-active)
|
|
||||||
(bg-button-inactive bg-dim)
|
|
||||||
|
|
||||||
;;;; Completion mappings
|
|
||||||
|
|
||||||
(fg-completion-match-0 blue-cooler)
|
|
||||||
(fg-completion-match-1 yellow)
|
|
||||||
(fg-completion-match-2 cyan-cooler)
|
|
||||||
(fg-completion-match-3 yellow-cooler)
|
|
||||||
(bg-completion-match-0 unspecified)
|
|
||||||
(bg-completion-match-1 unspecified)
|
|
||||||
(bg-completion-match-2 unspecified)
|
|
||||||
(bg-completion-match-3 unspecified)
|
|
||||||
|
|
||||||
;;;; Date mappings
|
|
||||||
|
|
||||||
(date-common cyan)
|
|
||||||
(date-deadline yellow-warmer)
|
|
||||||
(date-deadline-subtle red-faint)
|
|
||||||
(date-event fg-alt)
|
|
||||||
(date-holiday yellow-warmer)
|
|
||||||
(date-holiday-other blue)
|
|
||||||
(date-now fg-main)
|
|
||||||
(date-range fg-alt)
|
|
||||||
(date-scheduled yellow-cooler)
|
|
||||||
(date-scheduled-subtle yellow-faint)
|
|
||||||
(date-weekday cyan)
|
|
||||||
(date-weekend magenta-cooler)
|
|
||||||
|
|
||||||
;;;; Line number mappings
|
|
||||||
|
|
||||||
(fg-line-number-inactive fg-dim)
|
|
||||||
(fg-line-number-active fg-main)
|
|
||||||
(bg-line-number-inactive bg-dim)
|
|
||||||
(bg-line-number-active bg-active)
|
|
||||||
|
|
||||||
;;;; Link mappings
|
|
||||||
|
|
||||||
(fg-link blue-warmer)
|
|
||||||
(bg-link unspecified)
|
|
||||||
(underline-link blue-warmer)
|
|
||||||
|
|
||||||
(fg-link-symbolic cyan)
|
|
||||||
(bg-link-symbolic unspecified)
|
|
||||||
(underline-link-symbolic cyan)
|
|
||||||
|
|
||||||
(fg-link-visited yellow-faint)
|
|
||||||
(bg-link-visited unspecified)
|
|
||||||
(underline-link-visited yellow-faint)
|
|
||||||
|
|
||||||
;;;; Mail mappings
|
|
||||||
|
|
||||||
(mail-cite-0 blue-warmer)
|
|
||||||
(mail-cite-1 yellow-cooler)
|
|
||||||
(mail-cite-2 cyan-faint)
|
|
||||||
(mail-cite-3 yellow)
|
|
||||||
(mail-part blue)
|
|
||||||
(mail-recipient blue)
|
|
||||||
(mail-subject yellow-warmer)
|
|
||||||
(mail-other cyan-faint)
|
|
||||||
|
|
||||||
;;;; Mark mappings
|
|
||||||
|
|
||||||
(bg-mark-delete bg-yellow-subtle)
|
|
||||||
(fg-mark-delete yellow)
|
|
||||||
(bg-mark-select bg-cyan-subtle)
|
|
||||||
(fg-mark-select cyan)
|
|
||||||
(bg-mark-other bg-magenta-subtle)
|
|
||||||
(fg-mark-other magenta-warmer)
|
|
||||||
|
|
||||||
;;;; Prompt mappings
|
|
||||||
|
|
||||||
(fg-prompt blue)
|
|
||||||
(bg-prompt unspecified)
|
|
||||||
|
|
||||||
;;;; Prose mappings
|
|
||||||
|
|
||||||
(bg-prose-block-delimiter bg-dim)
|
|
||||||
(fg-prose-block-delimiter fg-dim)
|
|
||||||
(bg-prose-block-contents bg-dim)
|
|
||||||
|
|
||||||
(bg-prose-code unspecified)
|
|
||||||
(fg-prose-code cyan-cooler)
|
|
||||||
|
|
||||||
(bg-prose-macro unspecified)
|
|
||||||
(fg-prose-macro magenta-cooler)
|
|
||||||
|
|
||||||
(bg-prose-verbatim unspecified)
|
|
||||||
(fg-prose-verbatim yellow)
|
|
||||||
|
|
||||||
(prose-done blue)
|
|
||||||
(prose-todo yellow-warmer)
|
|
||||||
|
|
||||||
(prose-metadata fg-dim)
|
|
||||||
(prose-metadata-value fg-alt)
|
|
||||||
|
|
||||||
(prose-table fg-alt)
|
|
||||||
(prose-table-formula yellow-warmer)
|
|
||||||
|
|
||||||
(prose-tag fg-alt)
|
|
||||||
|
|
||||||
;;;; Rainbow mappings
|
|
||||||
|
|
||||||
(rainbow-0 yellow-warmer)
|
|
||||||
(rainbow-1 blue)
|
|
||||||
(rainbow-2 yellow-cooler)
|
|
||||||
(rainbow-3 blue-warmer)
|
|
||||||
(rainbow-4 yellow)
|
|
||||||
(rainbow-5 cyan-warmer)
|
|
||||||
(rainbow-6 yellow-faint)
|
|
||||||
(rainbow-7 blue-faint)
|
|
||||||
(rainbow-8 magenta-faint)
|
|
||||||
|
|
||||||
;;;; Search mappings
|
|
||||||
|
|
||||||
(bg-search-current bg-yellow-intense)
|
|
||||||
(bg-search-lazy bg-blue-intense)
|
|
||||||
(bg-search-replace bg-yellow-intense)
|
|
||||||
|
|
||||||
(bg-search-rx-group-0 bg-cyan-intense)
|
|
||||||
(bg-search-rx-group-1 bg-magenta-intense)
|
|
||||||
(bg-search-rx-group-2 bg-blue-subtle)
|
|
||||||
(bg-search-rx-group-3 bg-yellow-subtle)
|
|
||||||
|
|
||||||
;;;; Space mappings
|
|
||||||
|
|
||||||
(bg-space unspecified)
|
|
||||||
(fg-space border)
|
|
||||||
(bg-space-err bg-yellow-intense)
|
|
||||||
|
|
||||||
;;;; Terminal mappings
|
|
||||||
|
|
||||||
(bg-term-black "#000000")
|
|
||||||
(fg-term-black "#000000")
|
|
||||||
(bg-term-black-bright "#595959")
|
|
||||||
(fg-term-black-bright "#595959")
|
|
||||||
|
|
||||||
(bg-term-red red)
|
|
||||||
(fg-term-red red)
|
|
||||||
(bg-term-red-bright red-warmer)
|
|
||||||
(fg-term-red-bright red-warmer)
|
|
||||||
|
|
||||||
(bg-term-green green)
|
|
||||||
(fg-term-green green)
|
|
||||||
(bg-term-green-bright green-cooler)
|
|
||||||
(fg-term-green-bright green-cooler)
|
|
||||||
|
|
||||||
(bg-term-yellow yellow)
|
|
||||||
(fg-term-yellow yellow)
|
|
||||||
(bg-term-yellow-bright yellow-warmer)
|
|
||||||
(fg-term-yellow-bright yellow-warmer)
|
|
||||||
|
|
||||||
(bg-term-blue blue)
|
|
||||||
(fg-term-blue blue)
|
|
||||||
(bg-term-blue-bright blue-warmer)
|
|
||||||
(fg-term-blue-bright blue-warmer)
|
|
||||||
|
|
||||||
(bg-term-magenta magenta)
|
|
||||||
(fg-term-magenta magenta)
|
|
||||||
(bg-term-magenta-bright magenta-cooler)
|
|
||||||
(fg-term-magenta-bright magenta-cooler)
|
|
||||||
|
|
||||||
(bg-term-cyan cyan)
|
|
||||||
(fg-term-cyan cyan)
|
|
||||||
(bg-term-cyan-bright cyan-cooler)
|
|
||||||
(fg-term-cyan-bright cyan-cooler)
|
|
||||||
|
|
||||||
(bg-term-white "#a6a6a6")
|
|
||||||
(fg-term-white "#a6a6a6")
|
|
||||||
(bg-term-white-bright "#ffffff")
|
|
||||||
(fg-term-white-bright "#ffffff")
|
|
||||||
|
|
||||||
;;;; Heading mappings
|
|
||||||
|
|
||||||
(fg-heading-0 cyan-cooler)
|
|
||||||
(fg-heading-1 fg-main)
|
|
||||||
(fg-heading-2 yellow-faint)
|
|
||||||
(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)
|
|
||||||
(bg-heading-1 unspecified)
|
|
||||||
(bg-heading-2 unspecified)
|
|
||||||
(bg-heading-3 unspecified)
|
|
||||||
(bg-heading-4 unspecified)
|
|
||||||
(bg-heading-5 unspecified)
|
|
||||||
(bg-heading-6 unspecified)
|
|
||||||
(bg-heading-7 unspecified)
|
|
||||||
(bg-heading-8 unspecified)
|
|
||||||
|
|
||||||
(overline-heading-0 unspecified)
|
|
||||||
(overline-heading-1 unspecified)
|
|
||||||
(overline-heading-2 unspecified)
|
|
||||||
(overline-heading-3 unspecified)
|
|
||||||
(overline-heading-4 unspecified)
|
|
||||||
(overline-heading-5 unspecified)
|
|
||||||
(overline-heading-6 unspecified)
|
|
||||||
(overline-heading-7 unspecified)
|
|
||||||
(overline-heading-8 unspecified))
|
|
||||||
"The entire palette of the `modus-vivendi-deuteranopia' theme.
|
|
||||||
|
|
||||||
Named colors have the form (COLOR-NAME HEX-VALUE) with the former
|
|
||||||
as a symbol and the latter as a string.
|
|
||||||
|
|
||||||
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
|
This is meant to extend the palette with custom named colors and/or
|
||||||
semantic palette mappings. Those may then be used in combination with
|
semantic palette mappings. Those may then be used in combination with
|
||||||
palette overrides (also see `modus-themes-common-palette-overrides' and
|
palette overrides (also see `modus-themes-common-palette-overrides' and
|
||||||
`modus-vivendi-deuteranopia-palette-overrides')."
|
`modus-vivendi-deuteranopia-palette-overrides')."
|
||||||
:group 'modus-themes
|
:group 'modus-themes
|
||||||
:package-version '(modus-themes . "4.5.0")
|
:package-version '(modus-themes . "4.5.0")
|
||||||
:type '(repeat (list symbol (choice symbol string)))
|
:type '(repeat (list symbol (choice symbol string)))
|
||||||
:set #'modus-themes--set-option
|
:link '(info-link "(modus-themes) Option to extend the palette for use with overrides"))
|
||||||
: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
|
(defcustom modus-vivendi-deuteranopia-palette-overrides nil
|
||||||
"Overrides for `modus-vivendi-deuteranopia-palette'.
|
"Overrides for `modus-vivendi-deuteranopia-palette'.
|
||||||
|
|
||||||
Mirror the elements of the aforementioned palette, overriding
|
Mirror the elements of the aforementioned palette, overriding
|
||||||
their value.
|
their value.
|
||||||
|
|
@ -523,18 +68,25 @@ mappings, such as to make the cursor red. Wherea theme-specific
|
||||||
overrides can also be used to change the value of a named color,
|
overrides can also be used to change the value of a named color,
|
||||||
such as what hexadecimal RGB value the red-warmer symbol
|
such as what hexadecimal RGB value the red-warmer symbol
|
||||||
represents."
|
represents."
|
||||||
:group 'modus-themes
|
:group 'modus-themes
|
||||||
:package-version '(modus-themes . "4.0.0")
|
:package-version '(modus-themes . "4.0.0")
|
||||||
:version "30.1"
|
:version "30.1"
|
||||||
:type '(repeat (list symbol (choice symbol string)))
|
:type '(repeat (list symbol (choice symbol string)))
|
||||||
:set #'modus-themes--set-option
|
:link '(info-link "(modus-themes) Palette overrides"))
|
||||||
:initialize #'custom-initialize-default
|
|
||||||
:link '(info-link "(modus-themes) Palette overrides"))
|
|
||||||
|
|
||||||
(modus-themes-theme modus-vivendi-deuteranopia
|
(modus-themes-theme
|
||||||
modus-vivendi-deuteranopia-palette
|
'modus-vivendi-deuteranopia
|
||||||
modus-vivendi-deuteranopia-palette-overrides)
|
'modus-themes
|
||||||
|
"Deuteranopia-optimized theme with a black background.
|
||||||
(provide-theme 'modus-vivendi-deuteranopia))
|
This variant is optimized for users with red-green color
|
||||||
|
deficiency (deuteranopia). It 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 7:1 (WCAG AAA
|
||||||
|
standard)."
|
||||||
|
'dark
|
||||||
|
'modus-themes-vivendi-deuteranopia-palette
|
||||||
|
'modus-vivendi-deuteranopia-palette-user
|
||||||
|
'modus-vivendi-deuteranopia-palette-overrides)
|
||||||
|
|
||||||
;;; modus-vivendi-deuteranopia-theme.el ends here
|
;;; modus-vivendi-deuteranopia-theme.el ends here
|
||||||
|
|
|
||||||
|
|
@ -26,488 +26,35 @@
|
||||||
;;
|
;;
|
||||||
;; The Modus themes conform with the highest standard for
|
;; The Modus themes conform with the highest standard for
|
||||||
;; color-contrast accessibility between background and foreground
|
;; color-contrast accessibility between background and foreground
|
||||||
;; values (WCAG AAA). Please refer to the official Info manual for
|
;; values (WCAG AAA). They are also highly customizable and can even
|
||||||
;; further documentation (distributed with the themes, or available
|
;; be used as the basis for other themes. Please refer to the official
|
||||||
;; at: <https://protesilaos.com/emacs/modus-themes>).
|
;; Info manual for further documentation (distributed with the themes,
|
||||||
|
;; or available at: <https://protesilaos.com/emacs/modus-themes>).
|
||||||
|
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
(eval-and-compile
|
(unless (and (fboundp 'require-theme)
|
||||||
(unless (and (fboundp 'require-theme)
|
load-file-name
|
||||||
load-file-name
|
(equal (file-name-directory load-file-name)
|
||||||
(equal (file-name-directory load-file-name)
|
(expand-file-name "themes/" data-directory))
|
||||||
(expand-file-name "themes/" data-directory))
|
(require-theme 'modus-themes t))
|
||||||
(require-theme 'modus-themes t))
|
(require 'modus-themes))
|
||||||
(require 'modus-themes))
|
|
||||||
|
(defcustom modus-vivendi-palette-user nil
|
||||||
;;;###theme-autoload
|
"Like the `modus-vivendi--palette' for user-defined entries.
|
||||||
(deftheme modus-vivendi
|
|
||||||
"Elegant, highly legible theme with a black 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
|
|
||||||
7:1 (WCAG AAA standard)."
|
|
||||||
:background-mode 'dark
|
|
||||||
:kind 'color-scheme
|
|
||||||
:family 'modus)
|
|
||||||
|
|
||||||
(defconst modus-vivendi-palette
|
|
||||||
'(
|
|
||||||
;;; Basic values
|
|
||||||
|
|
||||||
(bg-main "#000000")
|
|
||||||
(bg-dim "#1e1e1e")
|
|
||||||
(fg-main "#ffffff")
|
|
||||||
(fg-dim "#989898")
|
|
||||||
(fg-alt "#c6daff")
|
|
||||||
(bg-active "#535353")
|
|
||||||
(bg-inactive "#303030")
|
|
||||||
(border "#646464")
|
|
||||||
|
|
||||||
;;; Common accent foregrounds
|
|
||||||
|
|
||||||
(red "#ff5f59")
|
|
||||||
(red-warmer "#ff6b55")
|
|
||||||
(red-cooler "#ff7f86")
|
|
||||||
(red-faint "#ff9580")
|
|
||||||
(red-intense "#ff5f5f")
|
|
||||||
(green "#44bc44")
|
|
||||||
(green-warmer "#70b900")
|
|
||||||
(green-cooler "#00c06f")
|
|
||||||
(green-faint "#88ca9f")
|
|
||||||
(green-intense "#44df44")
|
|
||||||
(yellow "#d0bc00")
|
|
||||||
(yellow-warmer "#fec43f")
|
|
||||||
(yellow-cooler "#dfaf7a")
|
|
||||||
(yellow-faint "#d2b580")
|
|
||||||
(yellow-intense "#efef00")
|
|
||||||
(blue "#2fafff")
|
|
||||||
(blue-warmer "#79a8ff")
|
|
||||||
(blue-cooler "#00bcff")
|
|
||||||
(blue-faint "#82b0ec")
|
|
||||||
(blue-intense "#338fff")
|
|
||||||
(magenta "#feacd0")
|
|
||||||
(magenta-warmer "#f78fe7")
|
|
||||||
(magenta-cooler "#b6a0ff")
|
|
||||||
(magenta-faint "#caa6df")
|
|
||||||
(magenta-intense "#ff66ff")
|
|
||||||
(cyan "#00d3d0")
|
|
||||||
(cyan-warmer "#4ae2f0")
|
|
||||||
(cyan-cooler "#6ae4b9")
|
|
||||||
(cyan-faint "#9ac8e0")
|
|
||||||
(cyan-intense "#00eff0")
|
|
||||||
|
|
||||||
;;; Uncommon accent foregrounds
|
|
||||||
|
|
||||||
(rust "#db7b5f")
|
|
||||||
(gold "#c0965b")
|
|
||||||
(olive "#9cbd6f")
|
|
||||||
(slate "#76afbf")
|
|
||||||
(indigo "#9099d9")
|
|
||||||
(maroon "#cf7fa7")
|
|
||||||
(pink "#d09dc0")
|
|
||||||
|
|
||||||
;;; Common accent backgrounds
|
|
||||||
|
|
||||||
(bg-red-intense "#9d1f1f")
|
|
||||||
(bg-green-intense "#2f822f")
|
|
||||||
(bg-yellow-intense "#7a6100")
|
|
||||||
(bg-blue-intense "#1640b0")
|
|
||||||
(bg-magenta-intense "#7030af")
|
|
||||||
(bg-cyan-intense "#2266ae")
|
|
||||||
|
|
||||||
(bg-red-subtle "#620f2a")
|
|
||||||
(bg-green-subtle "#00422a")
|
|
||||||
(bg-yellow-subtle "#4a4000")
|
|
||||||
(bg-blue-subtle "#242679")
|
|
||||||
(bg-magenta-subtle "#552f5f")
|
|
||||||
(bg-cyan-subtle "#004065")
|
|
||||||
|
|
||||||
(bg-red-nuanced "#3a0c14")
|
|
||||||
(bg-green-nuanced "#092f1f")
|
|
||||||
(bg-yellow-nuanced "#381d0f")
|
|
||||||
(bg-blue-nuanced "#12154a")
|
|
||||||
(bg-magenta-nuanced "#2f0c3f")
|
|
||||||
(bg-cyan-nuanced "#042837")
|
|
||||||
|
|
||||||
;;; Uncommon accent background and foreground pairs
|
|
||||||
|
|
||||||
(bg-clay "#49191a")
|
|
||||||
(fg-clay "#f1b090")
|
|
||||||
|
|
||||||
(bg-ochre "#462f20")
|
|
||||||
(fg-ochre "#e0d09c")
|
|
||||||
|
|
||||||
(bg-lavender "#38325c")
|
|
||||||
(fg-lavender "#dfc0f0")
|
|
||||||
|
|
||||||
(bg-sage "#143e32")
|
|
||||||
(fg-sage "#c3e7d4")
|
|
||||||
|
|
||||||
;;; Graphs
|
|
||||||
|
|
||||||
(bg-graph-red-0 "#b52c2c")
|
|
||||||
(bg-graph-red-1 "#702020")
|
|
||||||
(bg-graph-green-0 "#0fed00")
|
|
||||||
(bg-graph-green-1 "#007800")
|
|
||||||
(bg-graph-yellow-0 "#f1e00a")
|
|
||||||
(bg-graph-yellow-1 "#b08940")
|
|
||||||
(bg-graph-blue-0 "#2fafef")
|
|
||||||
(bg-graph-blue-1 "#1f2f8f")
|
|
||||||
(bg-graph-magenta-0 "#bf94fe")
|
|
||||||
(bg-graph-magenta-1 "#5f509f")
|
|
||||||
(bg-graph-cyan-0 "#47dfea")
|
|
||||||
(bg-graph-cyan-1 "#00808f")
|
|
||||||
|
|
||||||
;;; Special purpose
|
|
||||||
|
|
||||||
(bg-completion "#2f447f")
|
|
||||||
(bg-hover "#45605e")
|
|
||||||
(bg-hover-secondary "#654a39")
|
|
||||||
(bg-hl-line "#2f3849")
|
|
||||||
(bg-region "#5a5a5a")
|
|
||||||
(fg-region "#ffffff")
|
|
||||||
|
|
||||||
(bg-mode-line-active "#505050")
|
|
||||||
(fg-mode-line-active "#ffffff")
|
|
||||||
(border-mode-line-active "#959595")
|
|
||||||
(bg-mode-line-inactive "#2d2d2d")
|
|
||||||
(fg-mode-line-inactive "#969696")
|
|
||||||
(border-mode-line-inactive "#606060")
|
|
||||||
|
|
||||||
(modeline-err "#ffa9bf")
|
|
||||||
(modeline-warning "#dfcf43")
|
|
||||||
(modeline-info "#9fefff")
|
|
||||||
|
|
||||||
(bg-tab-bar "#313131")
|
|
||||||
(bg-tab-current "#000000")
|
|
||||||
(bg-tab-other "#545454")
|
|
||||||
|
|
||||||
;;; Diffs
|
|
||||||
|
|
||||||
(bg-added "#00381f")
|
|
||||||
(bg-added-faint "#002910")
|
|
||||||
(bg-added-refine "#034f2f")
|
|
||||||
(bg-added-fringe "#237f3f")
|
|
||||||
(fg-added "#a0e0a0")
|
|
||||||
(fg-added-intense "#80e080")
|
|
||||||
|
|
||||||
(bg-changed "#363300")
|
|
||||||
(bg-changed-faint "#2a1f00")
|
|
||||||
(bg-changed-refine "#4a4a00")
|
|
||||||
(bg-changed-fringe "#8a7a00")
|
|
||||||
(fg-changed "#efef80")
|
|
||||||
(fg-changed-intense "#c0b05f")
|
|
||||||
|
|
||||||
(bg-removed "#4f1119")
|
|
||||||
(bg-removed-faint "#380a0f")
|
|
||||||
(bg-removed-refine "#781a1f")
|
|
||||||
(bg-removed-fringe "#b81a1f")
|
|
||||||
(fg-removed "#ffbfbf")
|
|
||||||
(fg-removed-intense "#ff9095")
|
|
||||||
|
|
||||||
(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
|
|
||||||
|
|
||||||
(fringe bg-dim)
|
|
||||||
(cursor fg-main)
|
|
||||||
|
|
||||||
(keybind blue-cooler)
|
|
||||||
(name magenta)
|
|
||||||
(identifier yellow-faint)
|
|
||||||
|
|
||||||
(err red)
|
|
||||||
(warning yellow-warmer)
|
|
||||||
(info cyan-cooler)
|
|
||||||
|
|
||||||
(underline-err red-intense)
|
|
||||||
(underline-warning yellow)
|
|
||||||
(underline-note cyan)
|
|
||||||
|
|
||||||
(bg-prominent-err bg-red-intense)
|
|
||||||
(fg-prominent-err fg-main)
|
|
||||||
(bg-prominent-warning bg-yellow-intense)
|
|
||||||
(fg-prominent-warning fg-main)
|
|
||||||
(bg-prominent-note bg-cyan-intense)
|
|
||||||
(fg-prominent-note fg-main)
|
|
||||||
|
|
||||||
(bg-active-argument bg-yellow-nuanced)
|
|
||||||
(fg-active-argument yellow-cooler)
|
|
||||||
(bg-active-value bg-cyan-nuanced)
|
|
||||||
(fg-active-value cyan-cooler)
|
|
||||||
|
|
||||||
;;;; Code mappings
|
|
||||||
|
|
||||||
(bracket fg-main)
|
|
||||||
(builtin magenta-warmer)
|
|
||||||
(comment fg-dim)
|
|
||||||
(constant blue-cooler)
|
|
||||||
(delimiter fg-main)
|
|
||||||
(docmarkup magenta-faint)
|
|
||||||
(docstring cyan-faint)
|
|
||||||
(fnname magenta)
|
|
||||||
(keyword magenta-cooler)
|
|
||||||
(number fg-main)
|
|
||||||
(operator fg-main)
|
|
||||||
(preprocessor red-cooler)
|
|
||||||
(property cyan)
|
|
||||||
(punctuation fg-main)
|
|
||||||
(rx-backslash magenta)
|
|
||||||
(rx-construct green-cooler)
|
|
||||||
(string blue-warmer)
|
|
||||||
(type cyan-cooler)
|
|
||||||
(variable cyan)
|
|
||||||
|
|
||||||
;;;; Accent mappings
|
|
||||||
|
|
||||||
(accent-0 blue-cooler)
|
|
||||||
(accent-1 magenta-warmer)
|
|
||||||
(accent-2 cyan-cooler)
|
|
||||||
(accent-3 yellow)
|
|
||||||
|
|
||||||
;;;; Button mappings
|
|
||||||
|
|
||||||
(fg-button-active fg-main)
|
|
||||||
(fg-button-inactive fg-dim)
|
|
||||||
(bg-button-active bg-active)
|
|
||||||
(bg-button-inactive bg-dim)
|
|
||||||
|
|
||||||
;;;; Completion mappings
|
|
||||||
|
|
||||||
(fg-completion-match-0 blue-cooler)
|
|
||||||
(fg-completion-match-1 magenta-warmer)
|
|
||||||
(fg-completion-match-2 cyan-cooler)
|
|
||||||
(fg-completion-match-3 yellow)
|
|
||||||
(bg-completion-match-0 unspecified)
|
|
||||||
(bg-completion-match-1 unspecified)
|
|
||||||
(bg-completion-match-2 unspecified)
|
|
||||||
(bg-completion-match-3 unspecified)
|
|
||||||
|
|
||||||
;;;; Date mappings
|
|
||||||
|
|
||||||
(date-common cyan)
|
|
||||||
(date-deadline red-cooler)
|
|
||||||
(date-deadline-subtle red-faint)
|
|
||||||
(date-event fg-alt)
|
|
||||||
(date-holiday magenta-warmer)
|
|
||||||
(date-holiday-other blue)
|
|
||||||
(date-now fg-main)
|
|
||||||
(date-range fg-alt)
|
|
||||||
(date-scheduled yellow-cooler)
|
|
||||||
(date-scheduled-subtle yellow-faint)
|
|
||||||
(date-weekday cyan)
|
|
||||||
(date-weekend magenta)
|
|
||||||
|
|
||||||
;;;; Line number mappings
|
|
||||||
|
|
||||||
(fg-line-number-inactive fg-dim)
|
|
||||||
(fg-line-number-active fg-main)
|
|
||||||
(bg-line-number-inactive bg-dim)
|
|
||||||
(bg-line-number-active bg-active)
|
|
||||||
|
|
||||||
;;;; Link mappings
|
|
||||||
|
|
||||||
(fg-link blue-warmer)
|
|
||||||
(bg-link unspecified)
|
|
||||||
(underline-link blue-warmer)
|
|
||||||
|
|
||||||
(fg-link-symbolic cyan)
|
|
||||||
(bg-link-symbolic unspecified)
|
|
||||||
(underline-link-symbolic cyan)
|
|
||||||
|
|
||||||
(fg-link-visited magenta)
|
|
||||||
(bg-link-visited unspecified)
|
|
||||||
(underline-link-visited magenta)
|
|
||||||
|
|
||||||
;;;; Mail mappings
|
|
||||||
|
|
||||||
(mail-cite-0 blue-warmer)
|
|
||||||
(mail-cite-1 yellow-cooler)
|
|
||||||
(mail-cite-2 cyan-cooler)
|
|
||||||
(mail-cite-3 red-cooler)
|
|
||||||
(mail-part blue)
|
|
||||||
(mail-recipient magenta-cooler)
|
|
||||||
(mail-subject magenta-warmer)
|
|
||||||
(mail-other magenta-faint)
|
|
||||||
|
|
||||||
;;;; Mark mappings
|
|
||||||
|
|
||||||
(bg-mark-delete bg-red-subtle)
|
|
||||||
(fg-mark-delete red-cooler)
|
|
||||||
(bg-mark-select bg-cyan-subtle)
|
|
||||||
(fg-mark-select cyan)
|
|
||||||
(bg-mark-other bg-yellow-subtle)
|
|
||||||
(fg-mark-other yellow)
|
|
||||||
|
|
||||||
;;;; Prompt mappings
|
|
||||||
|
|
||||||
(fg-prompt cyan-cooler)
|
|
||||||
(bg-prompt unspecified)
|
|
||||||
|
|
||||||
;;;; Prose mappings
|
|
||||||
|
|
||||||
(bg-prose-block-delimiter bg-dim)
|
|
||||||
(fg-prose-block-delimiter fg-dim)
|
|
||||||
(bg-prose-block-contents bg-dim)
|
|
||||||
|
|
||||||
(bg-prose-code unspecified)
|
|
||||||
(fg-prose-code cyan-cooler)
|
|
||||||
|
|
||||||
(bg-prose-macro unspecified)
|
|
||||||
(fg-prose-macro magenta-cooler)
|
|
||||||
|
|
||||||
(bg-prose-verbatim unspecified)
|
|
||||||
(fg-prose-verbatim magenta-warmer)
|
|
||||||
|
|
||||||
(prose-done green)
|
|
||||||
(prose-todo red)
|
|
||||||
|
|
||||||
(prose-metadata fg-dim)
|
|
||||||
(prose-metadata-value fg-alt)
|
|
||||||
|
|
||||||
(prose-table fg-alt)
|
|
||||||
(prose-table-formula magenta-warmer)
|
|
||||||
|
|
||||||
(prose-tag magenta-faint)
|
|
||||||
|
|
||||||
;;;; Rainbow mappings
|
|
||||||
|
|
||||||
(rainbow-0 fg-main)
|
|
||||||
(rainbow-1 magenta-intense)
|
|
||||||
(rainbow-2 cyan-intense)
|
|
||||||
(rainbow-3 red-warmer)
|
|
||||||
(rainbow-4 yellow-intense)
|
|
||||||
(rainbow-5 magenta-cooler)
|
|
||||||
(rainbow-6 green-intense)
|
|
||||||
(rainbow-7 blue-warmer)
|
|
||||||
(rainbow-8 magenta-warmer)
|
|
||||||
|
|
||||||
;;;; Search mappings
|
|
||||||
|
|
||||||
(bg-search-current bg-yellow-intense)
|
|
||||||
(bg-search-lazy bg-cyan-intense)
|
|
||||||
(bg-search-replace bg-red-intense)
|
|
||||||
|
|
||||||
(bg-search-rx-group-0 bg-blue-intense)
|
|
||||||
(bg-search-rx-group-1 bg-green-intense)
|
|
||||||
(bg-search-rx-group-2 bg-red-subtle)
|
|
||||||
(bg-search-rx-group-3 bg-magenta-subtle)
|
|
||||||
|
|
||||||
;;;; Space mappings
|
|
||||||
|
|
||||||
(bg-space unspecified)
|
|
||||||
(fg-space border)
|
|
||||||
(bg-space-err bg-red-intense)
|
|
||||||
|
|
||||||
;;;; Terminal mappings
|
|
||||||
|
|
||||||
(bg-term-black "#000000")
|
|
||||||
(fg-term-black "#000000")
|
|
||||||
(bg-term-black-bright "#595959")
|
|
||||||
(fg-term-black-bright "#595959")
|
|
||||||
|
|
||||||
(bg-term-red red)
|
|
||||||
(fg-term-red red)
|
|
||||||
(bg-term-red-bright red-warmer)
|
|
||||||
(fg-term-red-bright red-warmer)
|
|
||||||
|
|
||||||
(bg-term-green green)
|
|
||||||
(fg-term-green green)
|
|
||||||
(bg-term-green-bright green-cooler)
|
|
||||||
(fg-term-green-bright green-cooler)
|
|
||||||
|
|
||||||
(bg-term-yellow yellow)
|
|
||||||
(fg-term-yellow yellow)
|
|
||||||
(bg-term-yellow-bright yellow-warmer)
|
|
||||||
(fg-term-yellow-bright yellow-warmer)
|
|
||||||
|
|
||||||
(bg-term-blue blue)
|
|
||||||
(fg-term-blue blue)
|
|
||||||
(bg-term-blue-bright blue-warmer)
|
|
||||||
(fg-term-blue-bright blue-warmer)
|
|
||||||
|
|
||||||
(bg-term-magenta magenta)
|
|
||||||
(fg-term-magenta magenta)
|
|
||||||
(bg-term-magenta-bright magenta-cooler)
|
|
||||||
(fg-term-magenta-bright magenta-cooler)
|
|
||||||
|
|
||||||
(bg-term-cyan cyan)
|
|
||||||
(fg-term-cyan cyan)
|
|
||||||
(bg-term-cyan-bright cyan-cooler)
|
|
||||||
(fg-term-cyan-bright cyan-cooler)
|
|
||||||
|
|
||||||
(bg-term-white "#a6a6a6")
|
|
||||||
(fg-term-white "#a6a6a6")
|
|
||||||
(bg-term-white-bright "#ffffff")
|
|
||||||
(fg-term-white-bright "#ffffff")
|
|
||||||
|
|
||||||
;;;; Heading mappings
|
|
||||||
|
|
||||||
(fg-heading-0 cyan-cooler)
|
|
||||||
(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-8 fg-dim)
|
|
||||||
|
|
||||||
(bg-heading-0 unspecified)
|
|
||||||
(bg-heading-1 unspecified)
|
|
||||||
(bg-heading-2 unspecified)
|
|
||||||
(bg-heading-3 unspecified)
|
|
||||||
(bg-heading-4 unspecified)
|
|
||||||
(bg-heading-5 unspecified)
|
|
||||||
(bg-heading-6 unspecified)
|
|
||||||
(bg-heading-7 unspecified)
|
|
||||||
(bg-heading-8 unspecified)
|
|
||||||
|
|
||||||
(overline-heading-0 unspecified)
|
|
||||||
(overline-heading-1 unspecified)
|
|
||||||
(overline-heading-2 unspecified)
|
|
||||||
(overline-heading-3 unspecified)
|
|
||||||
(overline-heading-4 unspecified)
|
|
||||||
(overline-heading-5 unspecified)
|
|
||||||
(overline-heading-6 unspecified)
|
|
||||||
(overline-heading-7 unspecified)
|
|
||||||
(overline-heading-8 unspecified))
|
|
||||||
"The entire palette of the `modus-vivendi' theme.
|
|
||||||
|
|
||||||
Named colors have the form (COLOR-NAME HEX-VALUE) with the former
|
|
||||||
as a symbol and the latter as a string.
|
|
||||||
|
|
||||||
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
|
This is meant to extend the palette with custom named colors and/or
|
||||||
semantic palette mappings. Those may then be used in combination with
|
semantic palette mappings. Those may then be used in combination with
|
||||||
palette overrides (also see `modus-themes-common-palette-overrides' and
|
palette overrides (also see `modus-themes-common-palette-overrides' and
|
||||||
`modus-vivendi--palette-overrides')."
|
`modus-vivendi--palette-overrides')."
|
||||||
:group 'modus-themes
|
:group 'modus-themes
|
||||||
:package-version '(modus-themes . "4.5.0")
|
:package-version '(modus-themes . "4.5.0")
|
||||||
:type '(repeat (list symbol (choice symbol string)))
|
:type '(repeat (list symbol (choice symbol string)))
|
||||||
:set #'modus-themes--set-option
|
:link '(info-link "(modus-themes) Option to extend the palette for use with overrides"))
|
||||||
:initialize #'custom-initialize-default
|
|
||||||
:link '(info-link "(modus-themes) Option to extend the palette for use with overrides"))
|
|
||||||
|
|
||||||
(defcustom modus-vivendi-palette-overrides nil
|
(defcustom modus-vivendi-palette-overrides nil
|
||||||
"Overrides for `modus-vivendi-palette'.
|
"Overrides for `modus-vivendi-palette'.
|
||||||
|
|
||||||
Mirror the elements of the aforementioned palette, overriding
|
Mirror the elements of the aforementioned palette, overriding
|
||||||
their value.
|
their value.
|
||||||
|
|
@ -521,18 +68,23 @@ mappings, such as to make the cursor red. Wherea theme-specific
|
||||||
overrides can also be used to change the value of a named color,
|
overrides can also be used to change the value of a named color,
|
||||||
such as what hexadecimal RGB value the red-warmer symbol
|
such as what hexadecimal RGB value the red-warmer symbol
|
||||||
represents."
|
represents."
|
||||||
:group 'modus-themes
|
:group 'modus-themes
|
||||||
:package-version '(modus-themes . "4.0.0")
|
:package-version '(modus-themes . "4.0.0")
|
||||||
:version "30.1"
|
:version "30.1"
|
||||||
:type '(repeat (list symbol (choice symbol string)))
|
:type '(repeat (list symbol (choice symbol string)))
|
||||||
:set #'modus-themes--set-option
|
:link '(info-link "(modus-themes) Palette overrides"))
|
||||||
:initialize #'custom-initialize-default
|
|
||||||
:link '(info-link "(modus-themes) Palette overrides"))
|
|
||||||
|
|
||||||
(modus-themes-theme modus-vivendi
|
(modus-themes-theme
|
||||||
modus-vivendi-palette
|
'modus-vivendi
|
||||||
modus-vivendi-palette-overrides)
|
'modus-themes
|
||||||
|
"Elegant, highly legible theme with a black background.
|
||||||
(provide-theme 'modus-vivendi))
|
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
|
||||||
|
7:1 (WCAG AAA standard)."
|
||||||
|
'dark
|
||||||
|
'modus-themes-vivendi-palette
|
||||||
|
'modus-vivendi-palette-user
|
||||||
|
'modus-vivendi-palette-overrides)
|
||||||
|
|
||||||
;;; modus-vivendi-theme.el ends here
|
;;; modus-vivendi-theme.el ends here
|
||||||
|
|
|
||||||
|
|
@ -26,488 +26,35 @@
|
||||||
;;
|
;;
|
||||||
;; The Modus themes conform with the highest standard for
|
;; The Modus themes conform with the highest standard for
|
||||||
;; color-contrast accessibility between background and foreground
|
;; color-contrast accessibility between background and foreground
|
||||||
;; values (WCAG AAA). Please refer to the official Info manual for
|
;; values (WCAG AAA). They are also highly customizable and can even
|
||||||
;; further documentation (distributed with the themes, or available
|
;; be used as the basis for other themes. Please refer to the official
|
||||||
;; at: <https://protesilaos.com/emacs/modus-themes>).
|
;; Info manual for further documentation (distributed with the themes,
|
||||||
|
;; or available at: <https://protesilaos.com/emacs/modus-themes>).
|
||||||
|
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
(eval-and-compile
|
(unless (and (fboundp 'require-theme)
|
||||||
(unless (and (fboundp 'require-theme)
|
load-file-name
|
||||||
load-file-name
|
(equal (file-name-directory load-file-name)
|
||||||
(equal (file-name-directory load-file-name)
|
(expand-file-name "themes/" data-directory))
|
||||||
(expand-file-name "themes/" data-directory))
|
(require-theme 'modus-themes t))
|
||||||
(require-theme 'modus-themes t))
|
(require 'modus-themes))
|
||||||
(require 'modus-themes))
|
|
||||||
|
(defcustom modus-vivendi-tinted-palette-user nil
|
||||||
;;;###theme-autoload
|
"Like the `modus-vivendi-tinted-palette' for user-defined entries.
|
||||||
(deftheme modus-vivendi-tinted
|
|
||||||
"Elegant, highly legible theme with a night sky 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
|
|
||||||
7:1 (WCAG AAA standard)."
|
|
||||||
:background-mode 'dark
|
|
||||||
:kind 'color-scheme
|
|
||||||
:family 'modus)
|
|
||||||
|
|
||||||
(defconst modus-vivendi-tinted-palette
|
|
||||||
'(
|
|
||||||
;;; Basic values
|
|
||||||
|
|
||||||
(bg-main "#0d0e1c")
|
|
||||||
(bg-dim "#1d2235")
|
|
||||||
(fg-main "#ffffff")
|
|
||||||
(fg-dim "#989898")
|
|
||||||
(fg-alt "#c6daff")
|
|
||||||
(bg-active "#4a4f69")
|
|
||||||
(bg-inactive "#2b3045")
|
|
||||||
(border "#61647a")
|
|
||||||
|
|
||||||
;;; Common accent foregrounds
|
|
||||||
|
|
||||||
(red "#ff5f59")
|
|
||||||
(red-warmer "#ff6b55")
|
|
||||||
(red-cooler "#ff7f86")
|
|
||||||
(red-faint "#ef8386")
|
|
||||||
(red-intense "#ff5f5f")
|
|
||||||
(green "#44bc44")
|
|
||||||
(green-warmer "#75c13e")
|
|
||||||
(green-cooler "#11c777")
|
|
||||||
(green-faint "#88ca9f")
|
|
||||||
(green-intense "#44df44")
|
|
||||||
(yellow "#d0bc00")
|
|
||||||
(yellow-warmer "#fec43f")
|
|
||||||
(yellow-cooler "#dfaf7a")
|
|
||||||
(yellow-faint "#d2b580")
|
|
||||||
(yellow-intense "#efef00")
|
|
||||||
(blue "#2fafff")
|
|
||||||
(blue-warmer "#79a8ff")
|
|
||||||
(blue-cooler "#00bcff")
|
|
||||||
(blue-faint "#82b0ec")
|
|
||||||
(blue-intense "#338fff")
|
|
||||||
(magenta "#feacd0")
|
|
||||||
(magenta-warmer "#f78fe7")
|
|
||||||
(magenta-cooler "#b6a0ff")
|
|
||||||
(magenta-faint "#caa6df")
|
|
||||||
(magenta-intense "#ff66ff")
|
|
||||||
(cyan "#00d3d0")
|
|
||||||
(cyan-warmer "#4ae2f0")
|
|
||||||
(cyan-cooler "#6ae4b9")
|
|
||||||
(cyan-faint "#9ac8e0")
|
|
||||||
(cyan-intense "#00eff0")
|
|
||||||
|
|
||||||
;;; Uncommon accent foregrounds
|
|
||||||
|
|
||||||
(rust "#db7b5f")
|
|
||||||
(gold "#c0965b")
|
|
||||||
(olive "#9cbd6f")
|
|
||||||
(slate "#76afbf")
|
|
||||||
(indigo "#9099d9")
|
|
||||||
(maroon "#cf7fa7")
|
|
||||||
(pink "#d09dc0")
|
|
||||||
|
|
||||||
;;; Common accent backgrounds
|
|
||||||
|
|
||||||
(bg-red-intense "#9d1f1f")
|
|
||||||
(bg-green-intense "#2f822f")
|
|
||||||
(bg-yellow-intense "#7a6100")
|
|
||||||
(bg-blue-intense "#1640b0")
|
|
||||||
(bg-magenta-intense "#7030af")
|
|
||||||
(bg-cyan-intense "#2266ae")
|
|
||||||
|
|
||||||
(bg-red-subtle "#620f2a")
|
|
||||||
(bg-green-subtle "#00422a")
|
|
||||||
(bg-yellow-subtle "#4a4000")
|
|
||||||
(bg-blue-subtle "#242679")
|
|
||||||
(bg-magenta-subtle "#552f5f")
|
|
||||||
(bg-cyan-subtle "#004065")
|
|
||||||
|
|
||||||
(bg-red-nuanced "#3a0c14")
|
|
||||||
(bg-green-nuanced "#092f1f")
|
|
||||||
(bg-yellow-nuanced "#381d0f")
|
|
||||||
(bg-blue-nuanced "#12154a")
|
|
||||||
(bg-magenta-nuanced "#2f0c3f")
|
|
||||||
(bg-cyan-nuanced "#042837")
|
|
||||||
|
|
||||||
;;; Uncommon accent background and foreground pairs
|
|
||||||
|
|
||||||
(bg-clay "#49191a")
|
|
||||||
(fg-clay "#f1b090")
|
|
||||||
|
|
||||||
(bg-ochre "#462f20")
|
|
||||||
(fg-ochre "#e0d09c")
|
|
||||||
|
|
||||||
(bg-lavender "#38325c")
|
|
||||||
(fg-lavender "#dfc0f0")
|
|
||||||
|
|
||||||
(bg-sage "#143e32")
|
|
||||||
(fg-sage "#c3e7d4")
|
|
||||||
|
|
||||||
;;; Graphs
|
|
||||||
|
|
||||||
(bg-graph-red-0 "#b52c2c")
|
|
||||||
(bg-graph-red-1 "#702020")
|
|
||||||
(bg-graph-green-0 "#0fed00")
|
|
||||||
(bg-graph-green-1 "#007800")
|
|
||||||
(bg-graph-yellow-0 "#f1e00a")
|
|
||||||
(bg-graph-yellow-1 "#b08940")
|
|
||||||
(bg-graph-blue-0 "#2fafef")
|
|
||||||
(bg-graph-blue-1 "#1f2f8f")
|
|
||||||
(bg-graph-magenta-0 "#bf94fe")
|
|
||||||
(bg-graph-magenta-1 "#5f509f")
|
|
||||||
(bg-graph-cyan-0 "#47dfea")
|
|
||||||
(bg-graph-cyan-1 "#00808f")
|
|
||||||
|
|
||||||
;;; Special purpose
|
|
||||||
|
|
||||||
(bg-completion "#483d8a")
|
|
||||||
(bg-hover "#45605e")
|
|
||||||
(bg-hover-secondary "#64404f")
|
|
||||||
(bg-hl-line "#303a6f")
|
|
||||||
(bg-region "#555a66")
|
|
||||||
(fg-region "#ffffff")
|
|
||||||
|
|
||||||
(bg-mode-line-active "#484d67")
|
|
||||||
(fg-mode-line-active "#ffffff")
|
|
||||||
(border-mode-line-active "#979797")
|
|
||||||
(bg-mode-line-inactive "#292d48")
|
|
||||||
(fg-mode-line-inactive "#969696")
|
|
||||||
(border-mode-line-inactive "#606270")
|
|
||||||
|
|
||||||
(modeline-err "#ffa9bf")
|
|
||||||
(modeline-warning "#dfcf43")
|
|
||||||
(modeline-info "#9fefff")
|
|
||||||
|
|
||||||
(bg-tab-bar "#2c3045")
|
|
||||||
(bg-tab-current "#0d0e1c")
|
|
||||||
(bg-tab-other "#4a4f6a")
|
|
||||||
|
|
||||||
;;; Diffs
|
|
||||||
|
|
||||||
(bg-added "#003a2f")
|
|
||||||
(bg-added-faint "#002922")
|
|
||||||
(bg-added-refine "#035542")
|
|
||||||
(bg-added-fringe "#23884f")
|
|
||||||
(fg-added "#a0e0a0")
|
|
||||||
(fg-added-intense "#80e080")
|
|
||||||
|
|
||||||
(bg-changed "#363300")
|
|
||||||
(bg-changed-faint "#2a1f00")
|
|
||||||
(bg-changed-refine "#4a4a00")
|
|
||||||
(bg-changed-fringe "#8f7a30")
|
|
||||||
(fg-changed "#efef80")
|
|
||||||
(fg-changed-intense "#c0b05f")
|
|
||||||
|
|
||||||
(bg-removed "#4f1127")
|
|
||||||
(bg-removed-faint "#380a19")
|
|
||||||
(bg-removed-refine "#781a3a")
|
|
||||||
(bg-removed-fringe "#b81a26")
|
|
||||||
(fg-removed "#ffbfbf")
|
|
||||||
(fg-removed-intense "#ff9095")
|
|
||||||
|
|
||||||
(bg-diff-context "#1a1f30")
|
|
||||||
|
|
||||||
;;; Paren match
|
|
||||||
|
|
||||||
(bg-paren-match "#4f7f9f")
|
|
||||||
(fg-paren-match fg-main)
|
|
||||||
(bg-paren-expression "#453040")
|
|
||||||
(underline-paren-match unspecified)
|
|
||||||
|
|
||||||
;;; Mappings
|
|
||||||
|
|
||||||
;;;; General mappings
|
|
||||||
|
|
||||||
(fringe bg-dim)
|
|
||||||
(cursor magenta-intense)
|
|
||||||
|
|
||||||
(keybind magenta-cooler)
|
|
||||||
(name magenta)
|
|
||||||
(identifier yellow-faint)
|
|
||||||
|
|
||||||
(err red)
|
|
||||||
(warning yellow)
|
|
||||||
(info green-cooler)
|
|
||||||
|
|
||||||
(underline-err red-intense)
|
|
||||||
(underline-warning yellow)
|
|
||||||
(underline-note cyan)
|
|
||||||
|
|
||||||
(bg-prominent-err bg-red-intense)
|
|
||||||
(fg-prominent-err fg-main)
|
|
||||||
(bg-prominent-warning bg-yellow-intense)
|
|
||||||
(fg-prominent-warning fg-main)
|
|
||||||
(bg-prominent-note bg-cyan-intense)
|
|
||||||
(fg-prominent-note fg-main)
|
|
||||||
|
|
||||||
(bg-active-argument bg-yellow-nuanced)
|
|
||||||
(fg-active-argument yellow-cooler)
|
|
||||||
(bg-active-value bg-cyan-nuanced)
|
|
||||||
(fg-active-value cyan-cooler)
|
|
||||||
|
|
||||||
;;;; Code mappings
|
|
||||||
|
|
||||||
(bracket fg-main)
|
|
||||||
(builtin magenta)
|
|
||||||
(comment red-faint)
|
|
||||||
(constant magenta-cooler)
|
|
||||||
(delimiter fg-main)
|
|
||||||
(docmarkup magenta-faint)
|
|
||||||
(docstring cyan-faint)
|
|
||||||
(fnname magenta-warmer)
|
|
||||||
(keyword blue-warmer)
|
|
||||||
(number fg-main)
|
|
||||||
(operator fg-main)
|
|
||||||
(preprocessor red-cooler)
|
|
||||||
(property cyan-warmer)
|
|
||||||
(punctuation fg-main)
|
|
||||||
(rx-backslash magenta-warmer)
|
|
||||||
(rx-construct magenta-cooler)
|
|
||||||
(string blue)
|
|
||||||
(type green-cooler)
|
|
||||||
(variable cyan-warmer)
|
|
||||||
|
|
||||||
;;;; Accent mappings
|
|
||||||
|
|
||||||
(accent-0 magenta-cooler)
|
|
||||||
(accent-1 cyan)
|
|
||||||
(accent-2 magenta-warmer)
|
|
||||||
(accent-3 yellow-warmer)
|
|
||||||
|
|
||||||
;;;; Button mappings
|
|
||||||
|
|
||||||
(fg-button-active fg-main)
|
|
||||||
(fg-button-inactive fg-dim)
|
|
||||||
(bg-button-active bg-active)
|
|
||||||
(bg-button-inactive bg-dim)
|
|
||||||
|
|
||||||
;;;; Completion mappings
|
|
||||||
|
|
||||||
(fg-completion-match-0 blue-cooler)
|
|
||||||
(fg-completion-match-1 magenta-warmer)
|
|
||||||
(fg-completion-match-2 cyan-cooler)
|
|
||||||
(fg-completion-match-3 yellow)
|
|
||||||
(bg-completion-match-0 unspecified)
|
|
||||||
(bg-completion-match-1 unspecified)
|
|
||||||
(bg-completion-match-2 unspecified)
|
|
||||||
(bg-completion-match-3 unspecified)
|
|
||||||
|
|
||||||
;;;; Date mappings
|
|
||||||
|
|
||||||
(date-common cyan)
|
|
||||||
(date-deadline red-cooler)
|
|
||||||
(date-deadline-subtle red-faint)
|
|
||||||
(date-event fg-alt)
|
|
||||||
(date-holiday magenta-warmer)
|
|
||||||
(date-holiday-other blue)
|
|
||||||
(date-now fg-main)
|
|
||||||
(date-range fg-alt)
|
|
||||||
(date-scheduled yellow-cooler)
|
|
||||||
(date-scheduled-subtle yellow-faint)
|
|
||||||
(date-weekday cyan)
|
|
||||||
(date-weekend magenta)
|
|
||||||
|
|
||||||
;;;; Line number mappings
|
|
||||||
|
|
||||||
(fg-line-number-inactive fg-dim)
|
|
||||||
(fg-line-number-active fg-main)
|
|
||||||
(bg-line-number-inactive bg-dim)
|
|
||||||
(bg-line-number-active bg-active)
|
|
||||||
|
|
||||||
;;;; Link mappings
|
|
||||||
|
|
||||||
(fg-link blue-warmer)
|
|
||||||
(bg-link unspecified)
|
|
||||||
(underline-link blue-warmer)
|
|
||||||
|
|
||||||
(fg-link-symbolic cyan)
|
|
||||||
(bg-link-symbolic unspecified)
|
|
||||||
(underline-link-symbolic cyan)
|
|
||||||
|
|
||||||
(fg-link-visited magenta)
|
|
||||||
(bg-link-visited unspecified)
|
|
||||||
(underline-link-visited magenta)
|
|
||||||
|
|
||||||
;;;; Mail mappings
|
|
||||||
|
|
||||||
(mail-cite-0 blue-faint)
|
|
||||||
(mail-cite-1 yellow-cooler)
|
|
||||||
(mail-cite-2 cyan-cooler)
|
|
||||||
(mail-cite-3 red-cooler)
|
|
||||||
(mail-part blue)
|
|
||||||
(mail-recipient blue-warmer)
|
|
||||||
(mail-subject magenta-warmer)
|
|
||||||
(mail-other magenta)
|
|
||||||
|
|
||||||
;;;; Mark mappings
|
|
||||||
|
|
||||||
(bg-mark-delete bg-red-subtle)
|
|
||||||
(fg-mark-delete red-cooler)
|
|
||||||
(bg-mark-select bg-cyan-subtle)
|
|
||||||
(fg-mark-select cyan)
|
|
||||||
(bg-mark-other bg-yellow-subtle)
|
|
||||||
(fg-mark-other yellow)
|
|
||||||
|
|
||||||
;;;; Prompt mappings
|
|
||||||
|
|
||||||
(fg-prompt cyan-warmer)
|
|
||||||
(bg-prompt unspecified)
|
|
||||||
|
|
||||||
;;;; Prose mappings
|
|
||||||
|
|
||||||
(bg-prose-block-delimiter bg-dim)
|
|
||||||
(fg-prose-block-delimiter fg-dim)
|
|
||||||
(bg-prose-block-contents bg-dim)
|
|
||||||
|
|
||||||
(bg-prose-code unspecified)
|
|
||||||
(fg-prose-code cyan-cooler)
|
|
||||||
|
|
||||||
(bg-prose-macro unspecified)
|
|
||||||
(fg-prose-macro magenta-cooler)
|
|
||||||
|
|
||||||
(bg-prose-verbatim unspecified)
|
|
||||||
(fg-prose-verbatim magenta-warmer)
|
|
||||||
|
|
||||||
(prose-done green)
|
|
||||||
(prose-todo red)
|
|
||||||
|
|
||||||
(prose-metadata fg-dim)
|
|
||||||
(prose-metadata-value fg-alt)
|
|
||||||
|
|
||||||
(prose-table fg-alt)
|
|
||||||
(prose-table-formula magenta-warmer)
|
|
||||||
|
|
||||||
(prose-tag magenta-faint)
|
|
||||||
|
|
||||||
;;;; Rainbow mappings
|
|
||||||
|
|
||||||
(rainbow-0 fg-main)
|
|
||||||
(rainbow-1 magenta-intense)
|
|
||||||
(rainbow-2 cyan-intense)
|
|
||||||
(rainbow-3 red-warmer)
|
|
||||||
(rainbow-4 yellow-intense)
|
|
||||||
(rainbow-5 magenta-cooler)
|
|
||||||
(rainbow-6 green-intense)
|
|
||||||
(rainbow-7 blue-warmer)
|
|
||||||
(rainbow-8 magenta-warmer)
|
|
||||||
|
|
||||||
;;;; Search mappings
|
|
||||||
|
|
||||||
(bg-search-current bg-yellow-intense)
|
|
||||||
(bg-search-lazy bg-cyan-intense)
|
|
||||||
(bg-search-replace bg-red-intense)
|
|
||||||
|
|
||||||
(bg-search-rx-group-0 bg-blue-intense)
|
|
||||||
(bg-search-rx-group-1 bg-green-intense)
|
|
||||||
(bg-search-rx-group-2 bg-red-subtle)
|
|
||||||
(bg-search-rx-group-3 bg-magenta-subtle)
|
|
||||||
|
|
||||||
;;;; Space mappings
|
|
||||||
|
|
||||||
(bg-space unspecified)
|
|
||||||
(fg-space border)
|
|
||||||
(bg-space-err bg-red-intense)
|
|
||||||
|
|
||||||
;;;; Terminal mappings
|
|
||||||
|
|
||||||
(bg-term-black "#000000")
|
|
||||||
(fg-term-black "#000000")
|
|
||||||
(bg-term-black-bright "#595959")
|
|
||||||
(fg-term-black-bright "#595959")
|
|
||||||
|
|
||||||
(bg-term-red red)
|
|
||||||
(fg-term-red red)
|
|
||||||
(bg-term-red-bright red-warmer)
|
|
||||||
(fg-term-red-bright red-warmer)
|
|
||||||
|
|
||||||
(bg-term-green green)
|
|
||||||
(fg-term-green green)
|
|
||||||
(bg-term-green-bright green-cooler)
|
|
||||||
(fg-term-green-bright green-cooler)
|
|
||||||
|
|
||||||
(bg-term-yellow yellow)
|
|
||||||
(fg-term-yellow yellow)
|
|
||||||
(bg-term-yellow-bright yellow-warmer)
|
|
||||||
(fg-term-yellow-bright yellow-warmer)
|
|
||||||
|
|
||||||
(bg-term-blue blue)
|
|
||||||
(fg-term-blue blue)
|
|
||||||
(bg-term-blue-bright blue-warmer)
|
|
||||||
(fg-term-blue-bright blue-warmer)
|
|
||||||
|
|
||||||
(bg-term-magenta magenta)
|
|
||||||
(fg-term-magenta magenta)
|
|
||||||
(bg-term-magenta-bright magenta-cooler)
|
|
||||||
(fg-term-magenta-bright magenta-cooler)
|
|
||||||
|
|
||||||
(bg-term-cyan cyan)
|
|
||||||
(fg-term-cyan cyan)
|
|
||||||
(bg-term-cyan-bright cyan-cooler)
|
|
||||||
(fg-term-cyan-bright cyan-cooler)
|
|
||||||
|
|
||||||
(bg-term-white "#a6a6a6")
|
|
||||||
(fg-term-white "#a6a6a6")
|
|
||||||
(bg-term-white-bright "#ffffff")
|
|
||||||
(fg-term-white-bright "#ffffff")
|
|
||||||
|
|
||||||
;;;; Heading mappings
|
|
||||||
|
|
||||||
(fg-heading-0 cyan-cooler)
|
|
||||||
(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-8 fg-dim)
|
|
||||||
|
|
||||||
(bg-heading-0 unspecified)
|
|
||||||
(bg-heading-1 unspecified)
|
|
||||||
(bg-heading-2 unspecified)
|
|
||||||
(bg-heading-3 unspecified)
|
|
||||||
(bg-heading-4 unspecified)
|
|
||||||
(bg-heading-5 unspecified)
|
|
||||||
(bg-heading-6 unspecified)
|
|
||||||
(bg-heading-7 unspecified)
|
|
||||||
(bg-heading-8 unspecified)
|
|
||||||
|
|
||||||
(overline-heading-0 unspecified)
|
|
||||||
(overline-heading-1 unspecified)
|
|
||||||
(overline-heading-2 unspecified)
|
|
||||||
(overline-heading-3 unspecified)
|
|
||||||
(overline-heading-4 unspecified)
|
|
||||||
(overline-heading-5 unspecified)
|
|
||||||
(overline-heading-6 unspecified)
|
|
||||||
(overline-heading-7 unspecified)
|
|
||||||
(overline-heading-8 unspecified))
|
|
||||||
"The entire palette of the `modus-vivendi-tinted' theme.
|
|
||||||
|
|
||||||
Named colors have the form (COLOR-NAME HEX-VALUE) with the former
|
|
||||||
as a symbol and the latter as a string.
|
|
||||||
|
|
||||||
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
|
This is meant to extend the palette with custom named colors and/or
|
||||||
semantic palette mappings. Those may then be used in combination with
|
semantic palette mappings. Those may then be used in combination with
|
||||||
palette overrides (also see `modus-themes-common-palette-overrides' and
|
palette overrides (also see `modus-themes-common-palette-overrides' and
|
||||||
`modus-vivendi-tinted-palette-overrides')."
|
`modus-vivendi-tinted-palette-overrides')."
|
||||||
:group 'modus-themes
|
:group 'modus-themes
|
||||||
:package-version '(modus-themes . "4.5.0")
|
:package-version '(modus-themes . "4.5.0")
|
||||||
:type '(repeat (list symbol (choice symbol string)))
|
:type '(repeat (list symbol (choice symbol string)))
|
||||||
:set #'modus-themes--set-option
|
:link '(info-link "(modus-themes) Option to extend the palette for use with overrides"))
|
||||||
: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
|
(defcustom modus-vivendi-tinted-palette-overrides nil
|
||||||
"Overrides for `modus-vivendi-tinted-palette'.
|
"Overrides for `modus-vivendi-tinted-palette'.
|
||||||
|
|
||||||
Mirror the elements of the aforementioned palette, overriding
|
Mirror the elements of the aforementioned palette, overriding
|
||||||
their value.
|
their value.
|
||||||
|
|
@ -521,18 +68,23 @@ mappings, such as to make the cursor red. Wherea theme-specific
|
||||||
overrides can also be used to change the value of a named color,
|
overrides can also be used to change the value of a named color,
|
||||||
such as what hexadecimal RGB value the red-warmer symbol
|
such as what hexadecimal RGB value the red-warmer symbol
|
||||||
represents."
|
represents."
|
||||||
:group 'modus-themes
|
:group 'modus-themes
|
||||||
:package-version '(modus-themes . "4.0.0")
|
:package-version '(modus-themes . "4.0.0")
|
||||||
:version "30.1"
|
:version "30.1"
|
||||||
:type '(repeat (list symbol (choice symbol string)))
|
:type '(repeat (list symbol (choice symbol string)))
|
||||||
:set #'modus-themes--set-option
|
:link '(info-link "(modus-themes) Palette overrides"))
|
||||||
:initialize #'custom-initialize-default
|
|
||||||
:link '(info-link "(modus-themes) Palette overrides"))
|
|
||||||
|
|
||||||
(modus-themes-theme modus-vivendi-tinted
|
(modus-themes-theme
|
||||||
modus-vivendi-tinted-palette
|
'modus-vivendi-tinted
|
||||||
modus-vivendi-tinted-palette-overrides)
|
'modus-themes
|
||||||
|
"Elegant, highly legible theme with a night sky background.
|
||||||
(provide-theme 'modus-vivendi-tinted))
|
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
|
||||||
|
7:1 (WCAG AAA standard)."
|
||||||
|
'dark
|
||||||
|
'modus-themes-vivendi-tinted-palette
|
||||||
|
'modus-vivendi-tinted-palette-user
|
||||||
|
'modus-vivendi-tinted-palette-overrides)
|
||||||
|
|
||||||
;;; modus-vivendi-tinted-theme.el ends here
|
;;; modus-vivendi-tinted-theme.el ends here
|
||||||
|
|
|
||||||
|
|
@ -26,490 +26,35 @@
|
||||||
;;
|
;;
|
||||||
;; The Modus themes conform with the highest standard for
|
;; The Modus themes conform with the highest standard for
|
||||||
;; color-contrast accessibility between background and foreground
|
;; color-contrast accessibility between background and foreground
|
||||||
;; values (WCAG AAA). Please refer to the official Info manual for
|
;; values (WCAG AAA). They are also highly customizable and can even
|
||||||
;; further documentation (distributed with the themes, or available
|
;; be used as the basis for other themes. Please refer to the official
|
||||||
;; at: <https://protesilaos.com/emacs/modus-themes>).
|
;; Info manual for further documentation (distributed with the themes,
|
||||||
|
;; or available at: <https://protesilaos.com/emacs/modus-themes>).
|
||||||
|
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
(eval-and-compile
|
(unless (and (fboundp 'require-theme)
|
||||||
(unless (and (fboundp 'require-theme)
|
load-file-name
|
||||||
load-file-name
|
(equal (file-name-directory load-file-name)
|
||||||
(equal (file-name-directory load-file-name)
|
(expand-file-name "themes/" data-directory))
|
||||||
(expand-file-name "themes/" data-directory))
|
(require-theme 'modus-themes t))
|
||||||
(require-theme 'modus-themes t))
|
(require 'modus-themes))
|
||||||
(require 'modus-themes))
|
|
||||||
|
(defcustom modus-vivendi-tritanopia-palette-user nil
|
||||||
;;;###theme-autoload
|
"Like the `modus-vivendi-tritanopia-palette' for user-defined entries.
|
||||||
(deftheme modus-vivendi-tritanopia
|
|
||||||
"Tritanopia-optimized theme with a black background.
|
|
||||||
This variant is optimized for users with blue-yellow color
|
|
||||||
deficiency (tritanopia). It 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 7:1 (WCAG AAA
|
|
||||||
standard)."
|
|
||||||
:background-mode 'dark
|
|
||||||
:kind 'color-scheme
|
|
||||||
:family 'modus)
|
|
||||||
|
|
||||||
(defconst modus-vivendi-tritanopia-palette
|
|
||||||
'(
|
|
||||||
;;; Basic values
|
|
||||||
|
|
||||||
(bg-main "#000000")
|
|
||||||
(bg-dim "#1e1e1e")
|
|
||||||
(fg-main "#ffffff")
|
|
||||||
(fg-dim "#989898")
|
|
||||||
(fg-alt "#a0d7f2")
|
|
||||||
(bg-active "#535353")
|
|
||||||
(bg-inactive "#303030")
|
|
||||||
(border "#646464")
|
|
||||||
|
|
||||||
;;; Common accent foregrounds
|
|
||||||
|
|
||||||
(red "#ff5f59")
|
|
||||||
(red-warmer "#ff6740")
|
|
||||||
(red-cooler "#ff7f86")
|
|
||||||
(red-faint "#ff9070")
|
|
||||||
(red-intense "#ff5f5f")
|
|
||||||
(green "#44bc44")
|
|
||||||
(green-warmer "#70b900")
|
|
||||||
(green-cooler "#00c06f")
|
|
||||||
(green-faint "#88ca9f")
|
|
||||||
(green-intense "#44df44")
|
|
||||||
(yellow "#cabf00")
|
|
||||||
(yellow-warmer "#ffa00f")
|
|
||||||
(yellow-cooler "#d8af7a")
|
|
||||||
(yellow-faint "#d2b580")
|
|
||||||
(yellow-intense "#efef00")
|
|
||||||
(blue "#2fafff")
|
|
||||||
(blue-warmer "#79a8ff")
|
|
||||||
(blue-cooler "#00bcff")
|
|
||||||
(blue-faint "#82b0ec")
|
|
||||||
(blue-intense "#338fff")
|
|
||||||
(magenta "#feacd0")
|
|
||||||
(magenta-warmer "#f78fe7")
|
|
||||||
(magenta-cooler "#b6a0ff")
|
|
||||||
(magenta-faint "#caa6df")
|
|
||||||
(magenta-intense "#ef7fff")
|
|
||||||
(cyan "#00d3d0")
|
|
||||||
(cyan-warmer "#4ae2ff")
|
|
||||||
(cyan-cooler "#6ae4b9")
|
|
||||||
(cyan-faint "#7fdbdf")
|
|
||||||
(cyan-intense "#00eff0")
|
|
||||||
|
|
||||||
;;; Uncommon accent foregrounds
|
|
||||||
|
|
||||||
(rust "#db7b5f")
|
|
||||||
(gold "#c0965b")
|
|
||||||
(olive "#9cbd6f")
|
|
||||||
(slate "#76afbf")
|
|
||||||
(indigo "#9099d9")
|
|
||||||
(maroon "#cf7fa7")
|
|
||||||
(pink "#d09dc0")
|
|
||||||
|
|
||||||
;;; Common accent backgrounds
|
|
||||||
|
|
||||||
(bg-red-intense "#9d1f1f")
|
|
||||||
(bg-green-intense "#2f822f")
|
|
||||||
(bg-yellow-intense "#7a6100")
|
|
||||||
(bg-blue-intense "#1640b0")
|
|
||||||
(bg-magenta-intense "#7030af")
|
|
||||||
(bg-cyan-intense "#2266ae")
|
|
||||||
|
|
||||||
(bg-red-subtle "#620f2a")
|
|
||||||
(bg-green-subtle "#00422a")
|
|
||||||
(bg-yellow-subtle "#4a4000")
|
|
||||||
(bg-blue-subtle "#242679")
|
|
||||||
(bg-magenta-subtle "#552f5f")
|
|
||||||
(bg-cyan-subtle "#004065")
|
|
||||||
|
|
||||||
(bg-red-nuanced "#3a0c14")
|
|
||||||
(bg-green-nuanced "#092f1f")
|
|
||||||
(bg-yellow-nuanced "#381d0f")
|
|
||||||
(bg-blue-nuanced "#12154a")
|
|
||||||
(bg-magenta-nuanced "#2f0c3f")
|
|
||||||
(bg-cyan-nuanced "#042837")
|
|
||||||
|
|
||||||
;;; Uncommon accent background and foreground pairs
|
|
||||||
|
|
||||||
(bg-clay "#49191a")
|
|
||||||
(fg-clay "#f1b090")
|
|
||||||
|
|
||||||
(bg-ochre "#462f20")
|
|
||||||
(fg-ochre "#e0d09c")
|
|
||||||
|
|
||||||
(bg-lavender "#38325c")
|
|
||||||
(fg-lavender "#dfc0f0")
|
|
||||||
|
|
||||||
(bg-sage "#143e32")
|
|
||||||
(fg-sage "#c3e7d4")
|
|
||||||
|
|
||||||
;;; Graphs
|
|
||||||
|
|
||||||
(bg-graph-red-0 "#b52c2c")
|
|
||||||
(bg-graph-red-1 "#702020")
|
|
||||||
(bg-graph-green-0 "#afd1c0")
|
|
||||||
(bg-graph-green-1 "#607a8f")
|
|
||||||
(bg-graph-yellow-0 "#facfd6")
|
|
||||||
(bg-graph-yellow-1 "#b57b85")
|
|
||||||
(bg-graph-blue-0 "#4f9fdf")
|
|
||||||
(bg-graph-blue-1 "#004559")
|
|
||||||
(bg-graph-magenta-0 "#b6427f")
|
|
||||||
(bg-graph-magenta-1 "#7f506f")
|
|
||||||
(bg-graph-cyan-0 "#57dfea")
|
|
||||||
(bg-graph-cyan-1 "#00808f")
|
|
||||||
|
|
||||||
;;; Special purpose
|
|
||||||
|
|
||||||
(bg-completion "#004253")
|
|
||||||
(bg-hover "#8e3e3b")
|
|
||||||
(bg-hover-secondary "#204853")
|
|
||||||
(bg-hl-line "#2f3849")
|
|
||||||
(bg-region "#5a5a5a")
|
|
||||||
(fg-region "#ffffff")
|
|
||||||
|
|
||||||
(bg-mode-line-active "#003c52")
|
|
||||||
(fg-mode-line-active "#f0f0f0")
|
|
||||||
(border-mode-line-active "#5f8fb4")
|
|
||||||
(bg-mode-line-inactive "#2d2d2d")
|
|
||||||
(fg-mode-line-inactive "#969696")
|
|
||||||
(border-mode-line-inactive "#606060")
|
|
||||||
|
|
||||||
(modeline-err "#ff7fbf")
|
|
||||||
(modeline-warning "#df9f93")
|
|
||||||
(modeline-info "#4fcfef")
|
|
||||||
|
|
||||||
(bg-tab-bar "#313131")
|
|
||||||
(bg-tab-current "#000000")
|
|
||||||
(bg-tab-other "#545454")
|
|
||||||
|
|
||||||
;;; Diffs
|
|
||||||
|
|
||||||
(bg-added "#004254")
|
|
||||||
(bg-added-faint "#003042")
|
|
||||||
(bg-added-refine "#004f7f")
|
|
||||||
(bg-added-fringe "#008fcf")
|
|
||||||
(fg-added "#9fdfdf")
|
|
||||||
(fg-added-intense "#50c0ef")
|
|
||||||
|
|
||||||
(bg-changed "#2f123f")
|
|
||||||
(bg-changed-faint "#1f022f")
|
|
||||||
(bg-changed-refine "#3f325f")
|
|
||||||
(bg-changed-fringe "#7f55a0")
|
|
||||||
(fg-changed "#e3cfff")
|
|
||||||
(fg-changed-intense "#cf9fe2")
|
|
||||||
|
|
||||||
(bg-removed "#4f1119")
|
|
||||||
(bg-removed-faint "#380a0f")
|
|
||||||
(bg-removed-refine "#781a1f")
|
|
||||||
(bg-removed-fringe "#b81a1f")
|
|
||||||
(fg-removed "#ffbfbf")
|
|
||||||
(fg-removed-intense "#ff9095")
|
|
||||||
|
|
||||||
(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
|
|
||||||
|
|
||||||
(fringe bg-dim)
|
|
||||||
(cursor red-intense)
|
|
||||||
|
|
||||||
(keybind red)
|
|
||||||
(name red-cooler)
|
|
||||||
(identifier red-faint)
|
|
||||||
|
|
||||||
(err red-warmer)
|
|
||||||
(warning magenta)
|
|
||||||
(info cyan)
|
|
||||||
|
|
||||||
(underline-err red-intense)
|
|
||||||
(underline-warning magenta-intense)
|
|
||||||
(underline-note cyan-intense)
|
|
||||||
|
|
||||||
(bg-prominent-err bg-red-intense)
|
|
||||||
(fg-prominent-err fg-main)
|
|
||||||
(bg-prominent-warning bg-magenta-intense)
|
|
||||||
(fg-prominent-warning fg-main)
|
|
||||||
(bg-prominent-note bg-cyan-intense)
|
|
||||||
(fg-prominent-note fg-main)
|
|
||||||
|
|
||||||
(bg-active-argument bg-red-nuanced)
|
|
||||||
(fg-active-argument red-warmer)
|
|
||||||
(bg-active-value bg-cyan-nuanced)
|
|
||||||
(fg-active-value cyan)
|
|
||||||
|
|
||||||
;;;; Code mappings
|
|
||||||
|
|
||||||
(bracket fg-main)
|
|
||||||
(builtin magenta)
|
|
||||||
(comment red-faint)
|
|
||||||
(constant green-faint)
|
|
||||||
(delimiter fg-main)
|
|
||||||
(docmarkup magenta-faint)
|
|
||||||
(docstring fg-alt)
|
|
||||||
(fnname cyan-warmer)
|
|
||||||
(keyword red-cooler)
|
|
||||||
(number fg-main)
|
|
||||||
(operator fg-main)
|
|
||||||
(preprocessor red-warmer)
|
|
||||||
(property cyan-cooler)
|
|
||||||
(punctuation fg-main)
|
|
||||||
(rx-backslash magenta)
|
|
||||||
(rx-construct red)
|
|
||||||
(string cyan)
|
|
||||||
(type blue-warmer)
|
|
||||||
(variable cyan-cooler)
|
|
||||||
|
|
||||||
;;;; Accent mappings
|
|
||||||
|
|
||||||
(accent-0 cyan)
|
|
||||||
(accent-1 red-warmer)
|
|
||||||
(accent-2 cyan-cooler)
|
|
||||||
(accent-3 magenta)
|
|
||||||
|
|
||||||
;;;; Button mappings
|
|
||||||
|
|
||||||
(fg-button-active fg-main)
|
|
||||||
(fg-button-inactive fg-dim)
|
|
||||||
(bg-button-active bg-active)
|
|
||||||
(bg-button-inactive bg-dim)
|
|
||||||
|
|
||||||
;;;; Completion mappings
|
|
||||||
|
|
||||||
(fg-completion-match-0 cyan)
|
|
||||||
(fg-completion-match-1 red-warmer)
|
|
||||||
(fg-completion-match-2 magenta)
|
|
||||||
(fg-completion-match-3 cyan-cooler)
|
|
||||||
(bg-completion-match-0 unspecified)
|
|
||||||
(bg-completion-match-1 unspecified)
|
|
||||||
(bg-completion-match-2 unspecified)
|
|
||||||
(bg-completion-match-3 unspecified)
|
|
||||||
|
|
||||||
;;;; Date mappings
|
|
||||||
|
|
||||||
(date-common cyan-cooler)
|
|
||||||
(date-deadline red)
|
|
||||||
(date-deadline-subtle red-faint)
|
|
||||||
(date-event fg-alt)
|
|
||||||
(date-holiday red-intense)
|
|
||||||
(date-holiday-other cyan-warmer)
|
|
||||||
(date-now fg-main)
|
|
||||||
(date-range fg-alt)
|
|
||||||
(date-scheduled magenta)
|
|
||||||
(date-scheduled-subtle magenta-faint)
|
|
||||||
(date-weekday cyan)
|
|
||||||
(date-weekend magenta-warmer)
|
|
||||||
|
|
||||||
;;;; Line number mappings
|
|
||||||
|
|
||||||
(fg-line-number-inactive fg-dim)
|
|
||||||
(fg-line-number-active fg-main)
|
|
||||||
(bg-line-number-inactive bg-dim)
|
|
||||||
(bg-line-number-active bg-active)
|
|
||||||
|
|
||||||
;;;; Link mappings
|
|
||||||
|
|
||||||
(fg-link cyan)
|
|
||||||
(bg-link unspecified)
|
|
||||||
(underline-link cyan)
|
|
||||||
|
|
||||||
(fg-link-symbolic cyan-cooler)
|
|
||||||
(bg-link-symbolic unspecified)
|
|
||||||
(underline-link-symbolic cyan-cooler)
|
|
||||||
|
|
||||||
(fg-link-visited magenta)
|
|
||||||
(bg-link-visited unspecified)
|
|
||||||
(underline-link-visited magenta)
|
|
||||||
|
|
||||||
;;;; Mail mappings
|
|
||||||
|
|
||||||
(mail-cite-0 cyan-faint)
|
|
||||||
(mail-cite-1 red-faint)
|
|
||||||
(mail-cite-2 magenta-warmer)
|
|
||||||
(mail-cite-3 cyan-warmer)
|
|
||||||
(mail-part cyan-cooler)
|
|
||||||
(mail-recipient cyan)
|
|
||||||
(mail-subject red-cooler)
|
|
||||||
(mail-other cyan)
|
|
||||||
|
|
||||||
;;;; Mark mappings
|
|
||||||
|
|
||||||
(bg-mark-delete bg-red-subtle)
|
|
||||||
(fg-mark-delete red)
|
|
||||||
(bg-mark-select bg-cyan-subtle)
|
|
||||||
(fg-mark-select cyan)
|
|
||||||
(bg-mark-other bg-magenta-subtle)
|
|
||||||
(fg-mark-other magenta-warmer)
|
|
||||||
|
|
||||||
;;;; Prompt mappings
|
|
||||||
|
|
||||||
(fg-prompt cyan-cooler)
|
|
||||||
(bg-prompt unspecified)
|
|
||||||
|
|
||||||
;;;; Prose mappings
|
|
||||||
|
|
||||||
(bg-prose-block-delimiter bg-dim)
|
|
||||||
(fg-prose-block-delimiter fg-dim)
|
|
||||||
(bg-prose-block-contents bg-dim)
|
|
||||||
|
|
||||||
(bg-prose-code unspecified)
|
|
||||||
(fg-prose-code cyan)
|
|
||||||
|
|
||||||
(bg-prose-macro unspecified)
|
|
||||||
(fg-prose-macro red-warmer)
|
|
||||||
|
|
||||||
(bg-prose-verbatim unspecified)
|
|
||||||
(fg-prose-verbatim magenta-warmer)
|
|
||||||
|
|
||||||
(prose-done cyan)
|
|
||||||
(prose-todo red)
|
|
||||||
|
|
||||||
(prose-metadata fg-dim)
|
|
||||||
(prose-metadata-value fg-alt)
|
|
||||||
|
|
||||||
(prose-table fg-alt)
|
|
||||||
(prose-table-formula red-cooler)
|
|
||||||
|
|
||||||
(prose-tag fg-alt)
|
|
||||||
|
|
||||||
;;;; Rainbow mappings
|
|
||||||
|
|
||||||
(rainbow-0 cyan)
|
|
||||||
(rainbow-1 red)
|
|
||||||
(rainbow-2 cyan-warmer)
|
|
||||||
(rainbow-3 red-cooler)
|
|
||||||
(rainbow-4 cyan-cooler)
|
|
||||||
(rainbow-5 magenta)
|
|
||||||
(rainbow-6 cyan-faint)
|
|
||||||
(rainbow-7 magenta-faint)
|
|
||||||
(rainbow-8 red-faint)
|
|
||||||
|
|
||||||
;;;; Search mappings
|
|
||||||
|
|
||||||
(bg-search-current bg-red-intense)
|
|
||||||
(bg-search-lazy bg-cyan-intense)
|
|
||||||
(bg-search-replace bg-magenta-intense)
|
|
||||||
|
|
||||||
(bg-search-rx-group-0 bg-blue-intense)
|
|
||||||
(bg-search-rx-group-1 bg-magenta-intense)
|
|
||||||
(bg-search-rx-group-2 bg-cyan-subtle)
|
|
||||||
(bg-search-rx-group-3 bg-red-subtle)
|
|
||||||
|
|
||||||
;;;; Space mappings
|
|
||||||
|
|
||||||
(bg-space unspecified)
|
|
||||||
(fg-space border)
|
|
||||||
(bg-space-err bg-red-intense)
|
|
||||||
|
|
||||||
;;;; Terminal mappings
|
|
||||||
|
|
||||||
(bg-term-black "#000000")
|
|
||||||
(fg-term-black "#000000")
|
|
||||||
(bg-term-black-bright "#595959")
|
|
||||||
(fg-term-black-bright "#595959")
|
|
||||||
|
|
||||||
(bg-term-red red)
|
|
||||||
(fg-term-red red)
|
|
||||||
(bg-term-red-bright red-warmer)
|
|
||||||
(fg-term-red-bright red-warmer)
|
|
||||||
|
|
||||||
(bg-term-green green)
|
|
||||||
(fg-term-green green)
|
|
||||||
(bg-term-green-bright green-cooler)
|
|
||||||
(fg-term-green-bright green-cooler)
|
|
||||||
|
|
||||||
(bg-term-yellow yellow)
|
|
||||||
(fg-term-yellow yellow)
|
|
||||||
(bg-term-yellow-bright yellow-warmer)
|
|
||||||
(fg-term-yellow-bright yellow-warmer)
|
|
||||||
|
|
||||||
(bg-term-blue blue)
|
|
||||||
(fg-term-blue blue)
|
|
||||||
(bg-term-blue-bright blue-warmer)
|
|
||||||
(fg-term-blue-bright blue-warmer)
|
|
||||||
|
|
||||||
(bg-term-magenta magenta)
|
|
||||||
(fg-term-magenta magenta)
|
|
||||||
(bg-term-magenta-bright magenta-cooler)
|
|
||||||
(fg-term-magenta-bright magenta-cooler)
|
|
||||||
|
|
||||||
(bg-term-cyan cyan)
|
|
||||||
(fg-term-cyan cyan)
|
|
||||||
(bg-term-cyan-bright cyan-cooler)
|
|
||||||
(fg-term-cyan-bright cyan-cooler)
|
|
||||||
|
|
||||||
(bg-term-white "#a6a6a6")
|
|
||||||
(fg-term-white "#a6a6a6")
|
|
||||||
(bg-term-white-bright "#ffffff")
|
|
||||||
(fg-term-white-bright "#ffffff")
|
|
||||||
|
|
||||||
;;;; Heading mappings
|
|
||||||
|
|
||||||
(fg-heading-0 cyan-cooler)
|
|
||||||
(fg-heading-1 fg-main)
|
|
||||||
(fg-heading-2 red-faint)
|
|
||||||
(fg-heading-3 cyan-faint)
|
|
||||||
(fg-heading-4 magenta)
|
|
||||||
(fg-heading-5 green-faint)
|
|
||||||
(fg-heading-6 magenta-faint)
|
|
||||||
(fg-heading-7 cyan-faint)
|
|
||||||
(fg-heading-8 fg-dim)
|
|
||||||
|
|
||||||
(bg-heading-0 unspecified)
|
|
||||||
(bg-heading-1 unspecified)
|
|
||||||
(bg-heading-2 unspecified)
|
|
||||||
(bg-heading-3 unspecified)
|
|
||||||
(bg-heading-4 unspecified)
|
|
||||||
(bg-heading-5 unspecified)
|
|
||||||
(bg-heading-6 unspecified)
|
|
||||||
(bg-heading-7 unspecified)
|
|
||||||
(bg-heading-8 unspecified)
|
|
||||||
|
|
||||||
(overline-heading-0 unspecified)
|
|
||||||
(overline-heading-1 unspecified)
|
|
||||||
(overline-heading-2 unspecified)
|
|
||||||
(overline-heading-3 unspecified)
|
|
||||||
(overline-heading-4 unspecified)
|
|
||||||
(overline-heading-5 unspecified)
|
|
||||||
(overline-heading-6 unspecified)
|
|
||||||
(overline-heading-7 unspecified)
|
|
||||||
(overline-heading-8 unspecified))
|
|
||||||
"The entire palette of the `modus-vivendi-tritanopia' theme.
|
|
||||||
|
|
||||||
Named colors have the form (COLOR-NAME HEX-VALUE) with the former
|
|
||||||
as a symbol and the latter as a string.
|
|
||||||
|
|
||||||
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
|
This is meant to extend the palette with custom named colors and/or
|
||||||
semantic palette mappings. Those may then be used in combination with
|
semantic palette mappings. Those may then be used in combination with
|
||||||
palette overrides (also see `modus-themes-common-palette-overrides' and
|
palette overrides (also see `modus-themes-common-palette-overrides' and
|
||||||
`modus-vivendi-tritanopia-palette-overrides')."
|
`modus-vivendi-tritanopia-palette-overrides')."
|
||||||
:group 'modus-themes
|
:group 'modus-themes
|
||||||
:package-version '(modus-themes . "4.5.0")
|
:package-version '(modus-themes . "4.5.0")
|
||||||
:type '(repeat (list symbol (choice symbol string)))
|
:type '(repeat (list symbol (choice symbol string)))
|
||||||
:set #'modus-themes--set-option
|
:link '(info-link "(modus-themes) Option to extend the palette for use with overrides"))
|
||||||
: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
|
(defcustom modus-vivendi-tritanopia-palette-overrides nil
|
||||||
"Overrides for `modus-vivendi-tritanopia-palette'.
|
"Overrides for `modus-vivendi-tritanopia-palette'.
|
||||||
|
|
||||||
Mirror the elements of the aforementioned palette, overriding
|
Mirror the elements of the aforementioned palette, overriding
|
||||||
their value.
|
their value.
|
||||||
|
|
@ -523,18 +68,25 @@ mappings, such as to make the cursor red. Wherea theme-specific
|
||||||
overrides can also be used to change the value of a named color,
|
overrides can also be used to change the value of a named color,
|
||||||
such as what hexadecimal RGB value the red-warmer symbol
|
such as what hexadecimal RGB value the red-warmer symbol
|
||||||
represents."
|
represents."
|
||||||
:group 'modus-themes
|
:group 'modus-themes
|
||||||
:package-version '(modus-themes . "4.0.0")
|
:package-version '(modus-themes . "4.0.0")
|
||||||
:version "30.1"
|
:version "30.1"
|
||||||
:type '(repeat (list symbol (choice symbol string)))
|
:type '(repeat (list symbol (choice symbol string)))
|
||||||
:set #'modus-themes--set-option
|
:link '(info-link "(modus-themes) Palette overrides"))
|
||||||
:initialize #'custom-initialize-default
|
|
||||||
:link '(info-link "(modus-themes) Palette overrides"))
|
|
||||||
|
|
||||||
(modus-themes-theme modus-vivendi-tritanopia
|
(modus-themes-theme
|
||||||
modus-vivendi-tritanopia-palette
|
'modus-vivendi-tritanopia
|
||||||
modus-vivendi-tritanopia-palette-overrides)
|
'modus-themes
|
||||||
|
"Tritanopia-optimized theme with a black background.
|
||||||
(provide-theme 'modus-vivendi-tritanopia))
|
This variant is optimized for users with blue-yellow color
|
||||||
|
deficiency (tritanopia). It 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 7:1 (WCAG AAA
|
||||||
|
standard)."
|
||||||
|
'dark
|
||||||
|
'modus-themes-vivendi-tritanopia-palette
|
||||||
|
'modus-vivendi-tritanopia-palette-user
|
||||||
|
'modus-vivendi-tritanopia-palette-overrides)
|
||||||
|
|
||||||
;;; modus-vivendi-tritanopia-theme.el ends here
|
;;; modus-vivendi-tritanopia-theme.el ends here
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue