mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-05 22:20:24 -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
|
||||
#+options: ':t toc:nil author:t email:t num:t
|
||||
#+startup: content
|
||||
#+macro: stable-version 4.8.0
|
||||
#+macro: release-date 2025-06-11
|
||||
#+macro: development-version 4.9.0-dev
|
||||
#+macro: stable-version 5.0.0
|
||||
#+macro: release-date 2025-11-01
|
||||
#+macro: development-version 5.1.0-dev
|
||||
#+macro: file @@texinfo:@file{@@$1@@texinfo:}@@
|
||||
#+macro: space @@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
|
||||
:end:
|
||||
|
||||
The Modus themes are distributed with Emacs starting with version 28.1.
|
||||
On older versions of Emacs, they can be installed using Emacs' package
|
||||
manager or manually from their code repository. There also exist
|
||||
packages for distributions of GNU/Linux.
|
||||
The Modus themes are distributed with Emacs starting with version
|
||||
28.1. On Emacs 27, they can be installed using Emacs' package manager
|
||||
or manually from their code repository. There also exist packages for
|
||||
distributions of GNU/Linux.
|
||||
|
||||
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
|
||||
|
|
@ -365,7 +365,11 @@ customizations ([[#h:f4651d55-8c07-46aa-b52b-bed1e53463bb][Advanced customizatio
|
|||
|
||||
#+findex: modus-themes-toggle
|
||||
#+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]]).
|
||||
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
|
||||
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
|
||||
;; do not need the `no-require' argument of `load-theme').
|
||||
(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)
|
||||
#+end_src
|
||||
|
||||
** Sample configuration with and without use-package
|
||||
** Sample configuration
|
||||
:properties:
|
||||
:custom_id: h:e979734c-a9e1-4373-9365-0f2cd36107b8
|
||||
:end:
|
||||
|
|
@ -413,19 +413,15 @@ package configurations in their setup. We use this as an example:
|
|||
#+begin_src emacs-lisp
|
||||
;;; For the built-in themes which cannot use `require'.
|
||||
(use-package emacs
|
||||
:config
|
||||
:init
|
||||
(require-theme 'modus-themes) ; `require-theme' is ONLY for the built-in Modus themes
|
||||
|
||||
:config
|
||||
;; Add all your customizations prior to loading the themes
|
||||
(setq modus-themes-italic-constructs t
|
||||
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-theme 'modus-operandi)
|
||||
(modus-themes-load-theme 'modus-operandi)
|
||||
|
||||
(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
|
||||
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-theme 'modus-operandi)
|
||||
(modus-themes-load-theme 'modus-operandi)
|
||||
|
||||
(define-key global-map (kbd "<f5>") #'modus-themes-toggle))
|
||||
#+end_src
|
||||
|
|
@ -458,12 +450,8 @@ The same without ~use-package~:
|
|||
(setq modus-themes-italic-constructs t
|
||||
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-theme 'modus-operandi :no-confirm)
|
||||
(modus-themes-load-theme 'modus-operandi :no-confirm)
|
||||
|
||||
(define-key global-map (kbd "<f5>") #'modus-themes-toggle)
|
||||
#+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: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
|
||||
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-mixed-fonts t
|
||||
modus-themes-variable-pitch-ui nil
|
||||
modus-themes-custom-auto-reload t
|
||||
modus-themes-disable-other-themes t
|
||||
|
||||
;; Options for `modus-themes-prompts' are either nil (the
|
||||
|
|
@ -585,34 +572,6 @@ reloaded for changes to take effect.
|
|||
;; document extensively in this manual.
|
||||
#+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
|
||||
:properties:
|
||||
:alt_title: Disable other themes
|
||||
|
|
@ -630,10 +589,16 @@ Possible values:
|
|||
1. ~nil~
|
||||
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~
|
||||
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
|
||||
to awkward results that undermine the work of the designer.
|
||||
|
||||
|
|
@ -734,24 +699,27 @@ Possible values:
|
|||
:END:
|
||||
|
||||
#+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~.
|
||||
|
||||
#+vindex: modus-themes-to-rotate
|
||||
Symbol: ~modus-themes-to-rotate~ (=list= type)
|
||||
|
||||
Default value: =modus-themes-items= (which includes all the Modus themes)
|
||||
Default value: nil
|
||||
|
||||
Possible values:
|
||||
|
||||
- ~modus-operandi~
|
||||
- ~modus-operandi-tinted~
|
||||
- ~modus-operandi-deuteranopia~
|
||||
- ~modus-operandi-tritanopia~
|
||||
- ~modus-vivendi~
|
||||
- ~modus-vivendi-tinted~
|
||||
- ~modus-vivendi-deuteranopia~
|
||||
- ~modus-vivendi-tritanopia~
|
||||
#+vindex: modus-themes-items
|
||||
- Any of the themes listed in the value of the variable ~modus-themes-items~.
|
||||
#+findex: modus-themes-get-themes
|
||||
- Any of the themes returned by the function ~modus-themes-get-themes~
|
||||
([[#h:86eb375b-9be4-43ce-879a-0686a524a63b][Build on top of the Modus themes]]).
|
||||
|
||||
When the value is a list of themes, ~modus-themes-rotate~ will go
|
||||
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
|
||||
:properties:
|
||||
|
|
@ -1195,8 +1163,8 @@ a cyan hue to keywords:
|
|||
(keyword cyan-cooler)))
|
||||
#+end_src
|
||||
|
||||
Changes take effect upon theme reload ([[#h:9001527a-4e2c-43e0-98e8-3ef72d770639][Custom reload theme]]).
|
||||
Overrides are removed by setting their variable to a ~nil~ value.
|
||||
Changes take effect upon theme reload. Overrides are removed by
|
||||
setting their variable to a ~nil~ value.
|
||||
|
||||
The common accented foregrounds in each palette follow a predictable
|
||||
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
|
||||
The command ~modus-themes-list-colors~ uses minibuffer completion to
|
||||
select an item from the Modus themes and then produces a buffer with
|
||||
previews of 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
|
||||
The command ~modus-themes-list-colors-current~ skips the minibuffer
|
||||
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
|
||||
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
|
||||
==*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
|
||||
:PROPERTIES:
|
||||
: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
|
||||
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
|
||||
:properties:
|
||||
: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
|
||||
+ ace-window
|
||||
+ agda2-mode
|
||||
+ all-the-icons
|
||||
+ all-the-icons-dired
|
||||
+ all-the-icons-ibuffer
|
||||
|
|
@ -4230,11 +4480,11 @@ have lots of extensions, so the "full support" may not be 100% true…
|
|||
+ eldoc-box
|
||||
+ elfeed
|
||||
+ elfeed-score
|
||||
+ elisp (Emacs Lisp semantic highlighting)
|
||||
+ elpher
|
||||
+ embark
|
||||
+ ement
|
||||
+ emms
|
||||
+ enh-ruby-mode (enhanced-ruby-mode)
|
||||
+ epa
|
||||
+ erc
|
||||
+ ert
|
||||
|
|
@ -4265,6 +4515,7 @@ have lots of extensions, so the "full support" may not be 100% true…
|
|||
+ golden-ratio-scroll-screen
|
||||
+ helpful
|
||||
+ hexl-mode
|
||||
+ hideshow
|
||||
+ highlight-numbers
|
||||
+ highlight-parentheses ([[#h:24bab397-dcb2-421d-aa6e-ec5bd622b913][Note on highlight-parentheses.el]])
|
||||
+ highlight-thing
|
||||
|
|
@ -4280,7 +4531,6 @@ have lots of extensions, so the "full support" may not be 100% true…
|
|||
+ iflipb
|
||||
+ image-dired
|
||||
+ imenu-list
|
||||
+ indium
|
||||
+ info
|
||||
+ info+ (info-plus)
|
||||
+ 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
|
||||
Griffin, Anders Johansson, Antonio Ruiz, Basil L.{{{space()}}}
|
||||
Contovounesios, Björn Lindström, Carlo Zancanaro, Christian Tietze,
|
||||
Daniel Mendler, David Edmondson, Eli Zaretskii, Fritz Grabo, Gautier
|
||||
Ponsinet, Illia Ostapyshyn, Jacob S.{{{space()}}} Gordon, Jared
|
||||
Finder, Kévin Le Gouguec, Koen van Greevenbroek, Kostadin Ninev,
|
||||
Leilei332, Madhavan Krishnan, Manuel Giraud, Markus Beppler, Matthew
|
||||
Stevenson, Mauro Aranda, Nacho Barrientos, Niall Dooley, Nicolas De
|
||||
Jaeghere, Paul David, Pavel Novichkov, Philip Kaludercic, Pierre
|
||||
Téchoueyres, Rahul M.{{{space()}}} Juliato, Rudolf Adamkovič,
|
||||
Sergey Nichiporchik, Shreyas Ragavan, Stefan Kangas, Stephen Berman,
|
||||
Stephen Gildea, Steve Downey, Thanos Apollo, Tomasz Hołubowicz,
|
||||
Utkarsh Singh, Vincent Murphy, Xinglu Chen, Yuanchen Xie, fluentpwn,
|
||||
okamsn.
|
||||
Daniel Mendler, David Edmondson, Eli Zaretskii, Eric Ottosson,
|
||||
Frédéric Giquel, Fritz Grabo, Gautier Ponsinet, Illia Ostapyshyn,
|
||||
Jacob S.{{{space()}}} Gordon, Jared Finder, Jimmy Yuen Ho Wong,
|
||||
Kevin Fleming, Kévin Le Gouguec, Koen van Greevenbroek, Kostadin
|
||||
Ninev, Leilei332, Madhavan Krishnan, Manuel Giraud, Markus Beppler,
|
||||
Matthew Stevenson, Mauro Aranda, Nacho Barrientos, Niall Dooley,
|
||||
Nicolas De Jaeghere, Paul David, Pavel Novichkov, Philip Kaludercic,
|
||||
Pierre Téchoueyres, Rahul M.{{{space()}}} Juliato, Rudolf Adamkovič,
|
||||
Sergey Nichiporchik, Shreyas Ragavan, Stefan x Kangas, Stephen
|
||||
Berman, Stephen Gildea, Steve Downey, Suleyman Boyar, Thanos Apollo,
|
||||
Tomasz Hołubowicz, Utkarsh Singh, Vincent Murphy, Xinglu Chen,
|
||||
Yuanchen Xie, fluentpwn, okamsn.
|
||||
|
||||
+ Ideas and user feedback :: Aaron Jensen, Adam Porter, Adam Spiers,
|
||||
Adrian Manea, Aleksei Pirogov, Alex Griffin, Alex Koen, Alex
|
||||
|
|
@ -5717,34 +5968,34 @@ The Modus themes are a collective effort. Every bit of work matters.
|
|||
Petegem, Christian Tietze, Christopher Dimech, Christopher League,
|
||||
Damien Cassou, Daniel Mendler, Dario Gjorgjevski, David Edmondson,
|
||||
Davor Rotim, Divan Santana, Eliraz Kedmi, Emanuele Michele Alberto
|
||||
Monterosso, Farasha Euker, Feng Shu, Filippo Argiolas, Gautier
|
||||
Ponsinet, Gerry Agbobada, Gianluca Recchia, Gonçalo Marrafa,
|
||||
Monterosso, Eshel Yaron, Farasha Euker, Feng Shu, Filippo Argiolas,
|
||||
Gautier Ponsinet, Gerry Agbobada, Gianluca Recchia, Gonçalo Marrafa,
|
||||
Guilherme Semente, Gustavo Barros, Hörmetjan Yiltiz, Ilja Kocken,
|
||||
Imran Khan, Iris Garcia, Ivan Popovych, Jabir Ali Ouassou, James
|
||||
Ferguson, Jeremy Friesen, Jerry Zhang, Johannes Grødem, John Haman,
|
||||
John Wick, Jonas Collberg, Jorge Morais, Joshua O'Connor, Julio C.
|
||||
Villasante, Kenta Usami, Kevin Fleming, Kévin Le Gouguec, Kevin
|
||||
Kainan Li, Kostadin Ninev, Laith Bahodi, Lasse Lindner, Len Trigg,
|
||||
Lennart C.{{{space()}}} Karssen, Luis Miguel Castañeda, Magne Hov,
|
||||
Manuel Giraud, Manuel Uberti, Mark Bestley, Mark Burton, Mark
|
||||
Simpson, Marko Kocic, Markus Beppler, Matt Armstrong, Matthias
|
||||
Fuchs, Mattias Engdegård, Mauro Aranda, Maxime Tréca, Michael
|
||||
Goldenberg, Morgan Smith, Morgan Willcock, Murilo Pereira, Nicky van
|
||||
Foreest, Nicolas De Jaeghere, Nicolas Semrau, Olaf Meeuwissen,
|
||||
Oliver Epper, Pablo Stafforini, Paul Poloskov, Pengji Zhang, Pete
|
||||
Kazmier, Peter Wu, Philip Kaludercic, Pierre Téchoueyres, Przemysław
|
||||
Kryger, Robert Hepple, Roman Rudakov, Russell Sim, Ryan Phillips,
|
||||
Rytis Paškauskas, Rudolf Adamkovič, Sam Kleinman, Samuel Culpepper,
|
||||
Saša Janiška, Shreyas Ragavan, Simon Pugnet, Steve Downey, Tassilo
|
||||
Horn, Thanos Apollo, Thibaut Verron, Thomas Heartman, Togan
|
||||
Muftuoglu, Tony Zorman, Trey Merkley, Tomasz Hołubowicz, Toon Claes,
|
||||
Uri Sharf, Utkarsh Singh, Vincent Foley, Zoltan Kiraly. As well as
|
||||
users: Ben, CsBigDataHub1, Emacs Contrib, Eugene, Fourchaux,
|
||||
Fredrik, Moesasji, Nick, Summer Emacs, TheBlob42, TitusMu, Trey,
|
||||
ZharMeny, bepolymathe, bit9tream, bangedorrunt, derek-upham, doolio,
|
||||
fleimgruber, gitrj95, iSeeU, jixiuf, ltmsyvag, okamsn,
|
||||
pedro-nonfree, pRot0ta1p, shipmints, soaringbird, tumashu,
|
||||
wakamenod.
|
||||
John Sullivan, John Wick, Jonas Collberg, Jorge Morais, Joshua
|
||||
O'Connor, Julio C. Villasante, Kenta Usami, Kevin Fleming, Kévin Le
|
||||
Gouguec, Kevin Kainan Li, Kostadin Ninev, Laith Bahodi, Lasse
|
||||
Lindner, Len Trigg, Lennart C.{{{space()}}} Karssen, Luis Miguel
|
||||
Castañeda, Magne Hov, Manuel Giraud, Manuel Uberti, Mark Bestley,
|
||||
Mark Burton, Mark Simpson, Marko Kocic, Markus Beppler, Matt
|
||||
Armstrong, Matthias Fuchs, Mattias Engdegård, Mauro Aranda, Maxime
|
||||
Tréca, Michael Goldenberg, Morgan Smith, Morgan Willcock, Murilo
|
||||
Pereira, Nicky van Foreest, Nicolas De Jaeghere, Nicolas Semrau,
|
||||
Olaf Meeuwissen, Oliver Epper, Pablo Stafforini, Paul Poloskov,
|
||||
Pengji Zhang, Pete Kazmier, Peter Wu, Philip Kaludercic, Pierre
|
||||
Téchoueyres, Przemysław Kryger, Robert Hepple, Roman Rudakov,
|
||||
Russell Sim, Ryan Phillips, Rytis Paškauskas, Rudolf Adamkovič, Sam
|
||||
Kleinman, Samuel Culpepper, Saša Janiška, Shreyas Ragavan, Simon
|
||||
Pugnet, Steve Downey, Tassilo Horn, Thanos Apollo, Thibaut Verron,
|
||||
Thomas Heartman, Togan Muftuoglu, Tony Zorman, Trey Merkley, Tomasz
|
||||
Hołubowicz, Toon Claes, Uri Sharf, Utkarsh Singh, Vincent Foley,
|
||||
Zoltan Kiraly. As well as users: Ben, CsBigDataHub1, Emacs Contrib,
|
||||
Eugene, Fourchaux, Fredrik, Moesasji, Nick, Summer Emacs, TheBlob42,
|
||||
TitusMu, Trey, bepolymathe, bit9tream, bangedorrunt, case-lambda,
|
||||
chainedghost, derek-upham, doolio, fleimgruber, gitrj95, iSeeU,
|
||||
jixiuf, ltmsyvag, okamsn, pedro-nonfree, pRot0ta1p, shimeike,
|
||||
shipmints, soaringbird, tumashu, wakamenod.
|
||||
|
||||
+ Packaging :: Basil L.{{{space()}}} Contovounesios, Eli Zaretskii,
|
||||
Glenn Morris, Mauro Aranda, Richard Stallman, Stefan Kangas (core
|
||||
|
|
|
|||
|
|
@ -26,490 +26,35 @@
|
|||
;;
|
||||
;; The Modus themes conform with the highest standard for
|
||||
;; color-contrast accessibility between background and foreground
|
||||
;; values (WCAG AAA). Please refer to the official Info manual for
|
||||
;; further documentation (distributed with the themes, or available
|
||||
;; at: <https://protesilaos.com/emacs/modus-themes>).
|
||||
;; values (WCAG AAA). They are also highly customizable and can even
|
||||
;; be used as the basis for other themes. Please refer to the official
|
||||
;; Info manual for further documentation (distributed with the themes,
|
||||
;; or available at: <https://protesilaos.com/emacs/modus-themes>).
|
||||
|
||||
;;; Code:
|
||||
|
||||
|
||||
|
||||
(eval-and-compile
|
||||
(unless (and (fboundp 'require-theme)
|
||||
load-file-name
|
||||
(equal (file-name-directory load-file-name)
|
||||
(expand-file-name "themes/" data-directory))
|
||||
(require-theme 'modus-themes t))
|
||||
(require 'modus-themes))
|
||||
|
||||
;;;###theme-autoload
|
||||
(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.
|
||||
(unless (and (fboundp 'require-theme)
|
||||
load-file-name
|
||||
(equal (file-name-directory load-file-name)
|
||||
(expand-file-name "themes/" data-directory))
|
||||
(require-theme 'modus-themes t))
|
||||
(require 'modus-themes))
|
||||
|
||||
(defcustom modus-operandi-deuteranopia-palette-user nil
|
||||
"Like the `modus-operandi-deuteranopia-palette' for user-defined entries.
|
||||
This is meant to extend the palette with custom named colors and/or
|
||||
semantic palette mappings. Those may then be used in combination with
|
||||
palette overrides (also see `modus-themes-common-palette-overrides' and
|
||||
`modus-operandi-deuteranopia-palette-overrides')."
|
||||
:group 'modus-themes
|
||||
:package-version '(modus-themes . "4.5.0")
|
||||
:type '(repeat (list symbol (choice symbol string)))
|
||||
:set #'modus-themes--set-option
|
||||
:initialize #'custom-initialize-default
|
||||
:link '(info-link "(modus-themes) Option to extend the palette for use with overrides"))
|
||||
:group 'modus-themes
|
||||
:package-version '(modus-themes . "4.5.0")
|
||||
:type '(repeat (list symbol (choice symbol string)))
|
||||
:link '(info-link "(modus-themes) Option to extend the palette for use with overrides"))
|
||||
|
||||
(defcustom modus-operandi-deuteranopia-palette-overrides nil
|
||||
"Overrides for `modus-operandi-deuteranopia-palette'.
|
||||
(defcustom modus-operandi-deuteranopia-palette-overrides nil
|
||||
"Overrides for `modus-operandi-deuteranopia-palette'.
|
||||
|
||||
Mirror the elements of the aforementioned palette, overriding
|
||||
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,
|
||||
such as what hexadecimal RGB value the red-warmer symbol
|
||||
represents."
|
||||
:group 'modus-themes
|
||||
:package-version '(modus-themes . "4.0.0")
|
||||
:version "30.1"
|
||||
:type '(repeat (list symbol (choice symbol string)))
|
||||
:set #'modus-themes--set-option
|
||||
:initialize #'custom-initialize-default
|
||||
:link '(info-link "(modus-themes) Palette overrides"))
|
||||
:group 'modus-themes
|
||||
:package-version '(modus-themes . "4.0.0")
|
||||
:version "30.1"
|
||||
:type '(repeat (list symbol (choice symbol string)))
|
||||
:link '(info-link "(modus-themes) Palette overrides"))
|
||||
|
||||
(modus-themes-theme modus-operandi-deuteranopia
|
||||
modus-operandi-deuteranopia-palette
|
||||
modus-operandi-deuteranopia-palette-overrides)
|
||||
|
||||
(provide-theme 'modus-operandi-deuteranopia))
|
||||
(modus-themes-theme
|
||||
'modus-operandi-deuteranopia
|
||||
'modus-themes
|
||||
"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)."
|
||||
'light
|
||||
'modus-themes-operandi-deuteranopia-palette
|
||||
'modus-operandi-deuteranopia-palette-user
|
||||
'modus-operandi-deuteranopia-palette-overrides)
|
||||
|
||||
;;; modus-operandi-deuteranopia-theme.el ends here
|
||||
|
|
|
|||
|
|
@ -26,488 +26,35 @@
|
|||
;;
|
||||
;; The Modus themes conform with the highest standard for
|
||||
;; color-contrast accessibility between background and foreground
|
||||
;; values (WCAG AAA). Please refer to the official Info manual for
|
||||
;; further documentation (distributed with the themes, or available
|
||||
;; at: <https://protesilaos.com/emacs/modus-themes>).
|
||||
;; values (WCAG AAA). They are also highly customizable and can even
|
||||
;; be used as the basis for other themes. Please refer to the official
|
||||
;; Info manual for further documentation (distributed with the themes,
|
||||
;; or available at: <https://protesilaos.com/emacs/modus-themes>).
|
||||
|
||||
;;; Code:
|
||||
|
||||
|
||||
|
||||
(eval-and-compile
|
||||
(unless (and (fboundp 'require-theme)
|
||||
load-file-name
|
||||
(equal (file-name-directory load-file-name)
|
||||
(expand-file-name "themes/" data-directory))
|
||||
(require-theme 'modus-themes t))
|
||||
(require 'modus-themes))
|
||||
|
||||
;;;###theme-autoload
|
||||
(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.
|
||||
(unless (and (fboundp 'require-theme)
|
||||
load-file-name
|
||||
(equal (file-name-directory load-file-name)
|
||||
(expand-file-name "themes/" data-directory))
|
||||
(require-theme 'modus-themes t))
|
||||
(require 'modus-themes))
|
||||
|
||||
(defcustom modus-operandi-palette-user nil
|
||||
"Like the `modus-operandi-palette' for user-defined entries.
|
||||
This is meant to extend the palette with custom named colors and/or
|
||||
semantic palette mappings. Those may then be used in combination with
|
||||
palette overrides (also see `modus-themes-common-palette-overrides' and
|
||||
`modus-operandi-palette-overrides')."
|
||||
:group 'modus-themes
|
||||
:package-version '(modus-themes . "4.5.0")
|
||||
:type '(repeat (list symbol (choice symbol string)))
|
||||
:set #'modus-themes--set-option
|
||||
:initialize #'custom-initialize-default
|
||||
:link '(info-link "(modus-themes) Option to extend the palette for use with overrides"))
|
||||
:group 'modus-themes
|
||||
:package-version '(modus-themes . "4.5.0")
|
||||
:type '(repeat (list symbol (choice symbol string)))
|
||||
:link '(info-link "(modus-themes) Option to extend the palette for use with overrides"))
|
||||
|
||||
(defcustom modus-operandi-palette-overrides nil
|
||||
"Overrides for `modus-operandi-palette'.
|
||||
(defcustom modus-operandi-palette-overrides nil
|
||||
"Overrides for `modus-operandi-palette'.
|
||||
|
||||
Mirror the elements of the aforementioned palette, overriding
|
||||
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,
|
||||
such as what hexadecimal RGB value the red-warmer symbol
|
||||
represents."
|
||||
:group 'modus-themes
|
||||
:package-version '(modus-themes . "4.0.0")
|
||||
:version "30.1"
|
||||
:type '(repeat (list symbol (choice symbol string)))
|
||||
:set #'modus-themes--set-option
|
||||
:initialize #'custom-initialize-default
|
||||
:link '(info-link "(modus-themes) Palette overrides"))
|
||||
:group 'modus-themes
|
||||
:package-version '(modus-themes . "4.0.0")
|
||||
:version "30.1"
|
||||
:type '(repeat (list symbol (choice symbol string)))
|
||||
:link '(info-link "(modus-themes) Palette overrides"))
|
||||
|
||||
(modus-themes-theme modus-operandi
|
||||
modus-operandi-palette
|
||||
modus-operandi-palette-overrides)
|
||||
|
||||
(provide-theme 'modus-operandi))
|
||||
(modus-themes-theme
|
||||
'modus-operandi
|
||||
'modus-themes
|
||||
"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)."
|
||||
'light
|
||||
'modus-themes-operandi-palette
|
||||
'modus-operandi-palette-user
|
||||
'modus-operandi-palette-overrides)
|
||||
|
||||
;;; modus-operandi-theme.el ends here
|
||||
|
|
|
|||
|
|
@ -26,488 +26,35 @@
|
|||
;;
|
||||
;; The Modus themes conform with the highest standard for
|
||||
;; color-contrast accessibility between background and foreground
|
||||
;; values (WCAG AAA). Please refer to the official Info manual for
|
||||
;; further documentation (distributed with the themes, or available
|
||||
;; at: <https://protesilaos.com/emacs/modus-themes>).
|
||||
;; values (WCAG AAA). They are also highly customizable and can even
|
||||
;; be used as the basis for other themes. Please refer to the official
|
||||
;; Info manual for further documentation (distributed with the themes,
|
||||
;; or available at: <https://protesilaos.com/emacs/modus-themes>).
|
||||
|
||||
;;; Code:
|
||||
|
||||
|
||||
|
||||
(eval-and-compile
|
||||
(unless (and (fboundp 'require-theme)
|
||||
load-file-name
|
||||
(equal (file-name-directory load-file-name)
|
||||
(expand-file-name "themes/" data-directory))
|
||||
(require-theme 'modus-themes t))
|
||||
(require 'modus-themes))
|
||||
|
||||
;;;###theme-autoload
|
||||
(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.
|
||||
(unless (and (fboundp 'require-theme)
|
||||
load-file-name
|
||||
(equal (file-name-directory load-file-name)
|
||||
(expand-file-name "themes/" data-directory))
|
||||
(require-theme 'modus-themes t))
|
||||
(require 'modus-themes))
|
||||
|
||||
(defcustom modus-operandi-tinted-palette-user nil
|
||||
"Like the `modus-operandi-tinted-palette' for user-defined entries.
|
||||
This is meant to extend the palette with custom named colors and/or
|
||||
semantic palette mappings. Those may then be used in combination with
|
||||
palette overrides (also see `modus-themes-common-palette-overrides' and
|
||||
`modus-operandi-tinted-palette-overrides')."
|
||||
:group 'modus-themes
|
||||
:package-version '(modus-themes . "4.5.0")
|
||||
:type '(repeat (list symbol (choice symbol string)))
|
||||
:set #'modus-themes--set-option
|
||||
:initialize #'custom-initialize-default
|
||||
:link '(info-link "(modus-themes) Option to extend the palette for use with overrides"))
|
||||
:group 'modus-themes
|
||||
:package-version '(modus-themes . "4.5.0")
|
||||
:type '(repeat (list symbol (choice symbol string)))
|
||||
:link '(info-link "(modus-themes) Option to extend the palette for use with overrides"))
|
||||
|
||||
(defcustom modus-operandi-tinted-palette-overrides nil
|
||||
"Overrides for `modus-operandi-tinted-palette'.
|
||||
(defcustom modus-operandi-tinted-palette-overrides nil
|
||||
"Overrides for `modus-operandi-tinted-palette'.
|
||||
|
||||
Mirror the elements of the aforementioned palette, overriding
|
||||
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,
|
||||
such as what hexadecimal RGB value the red-warmer symbol
|
||||
represents."
|
||||
:group 'modus-themes
|
||||
:package-version '(modus-themes . "4.0.0")
|
||||
:version "30.1"
|
||||
:type '(repeat (list symbol (choice symbol string)))
|
||||
:set #'modus-themes--set-option
|
||||
:initialize #'custom-initialize-default
|
||||
:link '(info-link "(modus-themes) Palette overrides"))
|
||||
:group 'modus-themes
|
||||
:package-version '(modus-themes . "4.0.0")
|
||||
:version "30.1"
|
||||
:type '(repeat (list symbol (choice symbol string)))
|
||||
:link '(info-link "(modus-themes) Palette overrides"))
|
||||
|
||||
(modus-themes-theme modus-operandi-tinted
|
||||
modus-operandi-tinted-palette
|
||||
modus-operandi-tinted-palette-overrides)
|
||||
|
||||
(provide-theme 'modus-operandi-tinted))
|
||||
(modus-themes-theme
|
||||
'modus-operandi-tinted
|
||||
'modus-themes
|
||||
"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)."
|
||||
'light
|
||||
'modus-themes-operandi-tinted-palette
|
||||
'modus-operandi-tinted-palette-user
|
||||
'modus-operandi-tinted-palette-overrides)
|
||||
|
||||
;;; modus-operandi-tinted-theme.el ends here
|
||||
|
|
|
|||
|
|
@ -26,490 +26,35 @@
|
|||
;;
|
||||
;; The Modus themes conform with the highest standard for
|
||||
;; color-contrast accessibility between background and foreground
|
||||
;; values (WCAG AAA). Please refer to the official Info manual for
|
||||
;; further documentation (distributed with the themes, or available
|
||||
;; at: <https://protesilaos.com/emacs/modus-themes>).
|
||||
;; values (WCAG AAA). They are also highly customizable and can even
|
||||
;; be used as the basis for other themes. Please refer to the official
|
||||
;; Info manual for further documentation (distributed with the themes,
|
||||
;; or available at: <https://protesilaos.com/emacs/modus-themes>).
|
||||
|
||||
;;; Code:
|
||||
|
||||
|
||||
|
||||
(eval-and-compile
|
||||
(unless (and (fboundp 'require-theme)
|
||||
load-file-name
|
||||
(equal (file-name-directory load-file-name)
|
||||
(expand-file-name "themes/" data-directory))
|
||||
(require-theme 'modus-themes t))
|
||||
(require 'modus-themes))
|
||||
|
||||
;;;###theme-autoload
|
||||
(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.
|
||||
(unless (and (fboundp 'require-theme)
|
||||
load-file-name
|
||||
(equal (file-name-directory load-file-name)
|
||||
(expand-file-name "themes/" data-directory))
|
||||
(require-theme 'modus-themes t))
|
||||
(require 'modus-themes))
|
||||
|
||||
(defcustom modus-operandi-tritanopia-palette-user nil
|
||||
"Like the `modus-operandi-tritanopia-palette' for user-defined entries.
|
||||
This is meant to extend the palette with custom named colors and/or
|
||||
semantic palette mappings. Those may then be used in combination with
|
||||
palette overrides (also see `modus-themes-common-palette-overrides' and
|
||||
`modus-operandi-tritanopia-palette-overrides')."
|
||||
:group 'modus-themes
|
||||
:package-version '(modus-themes . "4.5.0")
|
||||
:type '(repeat (list symbol (choice symbol string)))
|
||||
:set #'modus-themes--set-option
|
||||
:initialize #'custom-initialize-default
|
||||
:link '(info-link "(modus-themes) Option to extend the palette for use with overrides"))
|
||||
:group 'modus-themes
|
||||
:package-version '(modus-themes . "4.5.0")
|
||||
:type '(repeat (list symbol (choice symbol string)))
|
||||
:link '(info-link "(modus-themes) Option to extend the palette for use with overrides"))
|
||||
|
||||
(defcustom modus-operandi-tritanopia-palette-overrides nil
|
||||
"Overrides for `modus-operandi-tritanopia-palette'.
|
||||
(defcustom modus-operandi-tritanopia-palette-overrides nil
|
||||
"Overrides for `modus-operandi-tritanopia-palette'.
|
||||
|
||||
Mirror the elements of the aforementioned palette, overriding
|
||||
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,
|
||||
such as what hexadecimal RGB value the red-warmer symbol
|
||||
represents."
|
||||
:group 'modus-themes
|
||||
:package-version '(modus-themes . "4.0.0")
|
||||
:version "30.1"
|
||||
:type '(repeat (list symbol (choice symbol string)))
|
||||
:set #'modus-themes--set-option
|
||||
:initialize #'custom-initialize-default
|
||||
:link '(info-link "(modus-themes) Palette overrides"))
|
||||
:group 'modus-themes
|
||||
:package-version '(modus-themes . "4.0.0")
|
||||
:version "30.1"
|
||||
:type '(repeat (list symbol (choice symbol string)))
|
||||
:link '(info-link "(modus-themes) Palette overrides"))
|
||||
|
||||
(modus-themes-theme modus-operandi-tritanopia
|
||||
modus-operandi-tritanopia-palette
|
||||
modus-operandi-tritanopia-palette-overrides)
|
||||
|
||||
(provide-theme 'modus-operandi-tritanopia))
|
||||
(modus-themes-theme
|
||||
'modus-operandi-tritanopia
|
||||
'modus-themes
|
||||
"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)."
|
||||
'light
|
||||
'modus-themes-operandi-tritanopia-palette
|
||||
'modus-operandi-tritanopia-palette-user
|
||||
'modus-operandi-tritanopia-palette-overrides)
|
||||
|
||||
;;; 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
|
||||
;; color-contrast accessibility between background and foreground
|
||||
;; values (WCAG AAA). Please refer to the official Info manual for
|
||||
;; further documentation (distributed with the themes, or available
|
||||
;; at: <https://protesilaos.com/emacs/modus-themes>).
|
||||
;; values (WCAG AAA). They are also highly customizable and can even
|
||||
;; be used as the basis for other themes. Please refer to the official
|
||||
;; Info manual for further documentation (distributed with the themes,
|
||||
;; or available at: <https://protesilaos.com/emacs/modus-themes>).
|
||||
|
||||
;;; Code:
|
||||
|
||||
|
||||
|
||||
(eval-and-compile
|
||||
(unless (and (fboundp 'require-theme)
|
||||
load-file-name
|
||||
(equal (file-name-directory load-file-name)
|
||||
(expand-file-name "themes/" data-directory))
|
||||
(require-theme 'modus-themes t))
|
||||
(require 'modus-themes))
|
||||
|
||||
;;;###theme-autoload
|
||||
(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.
|
||||
(unless (and (fboundp 'require-theme)
|
||||
load-file-name
|
||||
(equal (file-name-directory load-file-name)
|
||||
(expand-file-name "themes/" data-directory))
|
||||
(require-theme 'modus-themes t))
|
||||
(require 'modus-themes))
|
||||
|
||||
(defcustom modus-vivendi-deuteranopia-palette-user nil
|
||||
"Like the `modus-vivendi-deuteranopia-palette' for user-defined entries.
|
||||
This is meant to extend the palette with custom named colors and/or
|
||||
semantic palette mappings. Those may then be used in combination with
|
||||
palette overrides (also see `modus-themes-common-palette-overrides' and
|
||||
`modus-vivendi-deuteranopia-palette-overrides')."
|
||||
:group 'modus-themes
|
||||
:package-version '(modus-themes . "4.5.0")
|
||||
:type '(repeat (list symbol (choice symbol string)))
|
||||
:set #'modus-themes--set-option
|
||||
:initialize #'custom-initialize-default
|
||||
:link '(info-link "(modus-themes) Option to extend the palette for use with overrides"))
|
||||
:group 'modus-themes
|
||||
:package-version '(modus-themes . "4.5.0")
|
||||
:type '(repeat (list symbol (choice symbol string)))
|
||||
:link '(info-link "(modus-themes) Option to extend the palette for use with overrides"))
|
||||
|
||||
(defcustom modus-vivendi-deuteranopia-palette-overrides nil
|
||||
"Overrides for `modus-vivendi-deuteranopia-palette'.
|
||||
(defcustom modus-vivendi-deuteranopia-palette-overrides nil
|
||||
"Overrides for `modus-vivendi-deuteranopia-palette'.
|
||||
|
||||
Mirror the elements of the aforementioned palette, overriding
|
||||
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,
|
||||
such as what hexadecimal RGB value the red-warmer symbol
|
||||
represents."
|
||||
:group 'modus-themes
|
||||
:package-version '(modus-themes . "4.0.0")
|
||||
:version "30.1"
|
||||
:type '(repeat (list symbol (choice symbol string)))
|
||||
:set #'modus-themes--set-option
|
||||
:initialize #'custom-initialize-default
|
||||
:link '(info-link "(modus-themes) Palette overrides"))
|
||||
:group 'modus-themes
|
||||
:package-version '(modus-themes . "4.0.0")
|
||||
:version "30.1"
|
||||
:type '(repeat (list symbol (choice symbol string)))
|
||||
:link '(info-link "(modus-themes) Palette overrides"))
|
||||
|
||||
(modus-themes-theme modus-vivendi-deuteranopia
|
||||
modus-vivendi-deuteranopia-palette
|
||||
modus-vivendi-deuteranopia-palette-overrides)
|
||||
|
||||
(provide-theme 'modus-vivendi-deuteranopia))
|
||||
(modus-themes-theme
|
||||
'modus-vivendi-deuteranopia
|
||||
'modus-themes
|
||||
"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)."
|
||||
'dark
|
||||
'modus-themes-vivendi-deuteranopia-palette
|
||||
'modus-vivendi-deuteranopia-palette-user
|
||||
'modus-vivendi-deuteranopia-palette-overrides)
|
||||
|
||||
;;; modus-vivendi-deuteranopia-theme.el ends here
|
||||
|
|
|
|||
|
|
@ -26,488 +26,35 @@
|
|||
;;
|
||||
;; The Modus themes conform with the highest standard for
|
||||
;; color-contrast accessibility between background and foreground
|
||||
;; values (WCAG AAA). Please refer to the official Info manual for
|
||||
;; further documentation (distributed with the themes, or available
|
||||
;; at: <https://protesilaos.com/emacs/modus-themes>).
|
||||
;; values (WCAG AAA). They are also highly customizable and can even
|
||||
;; be used as the basis for other themes. Please refer to the official
|
||||
;; Info manual for further documentation (distributed with the themes,
|
||||
;; or available at: <https://protesilaos.com/emacs/modus-themes>).
|
||||
|
||||
;;; Code:
|
||||
|
||||
|
||||
|
||||
(eval-and-compile
|
||||
(unless (and (fboundp 'require-theme)
|
||||
load-file-name
|
||||
(equal (file-name-directory load-file-name)
|
||||
(expand-file-name "themes/" data-directory))
|
||||
(require-theme 'modus-themes t))
|
||||
(require 'modus-themes))
|
||||
|
||||
;;;###theme-autoload
|
||||
(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.
|
||||
(unless (and (fboundp 'require-theme)
|
||||
load-file-name
|
||||
(equal (file-name-directory load-file-name)
|
||||
(expand-file-name "themes/" data-directory))
|
||||
(require-theme 'modus-themes t))
|
||||
(require 'modus-themes))
|
||||
|
||||
(defcustom modus-vivendi-palette-user nil
|
||||
"Like the `modus-vivendi--palette' for user-defined entries.
|
||||
This is meant to extend the palette with custom named colors and/or
|
||||
semantic palette mappings. Those may then be used in combination with
|
||||
palette overrides (also see `modus-themes-common-palette-overrides' and
|
||||
`modus-vivendi--palette-overrides')."
|
||||
:group 'modus-themes
|
||||
:package-version '(modus-themes . "4.5.0")
|
||||
:type '(repeat (list symbol (choice symbol string)))
|
||||
:set #'modus-themes--set-option
|
||||
:initialize #'custom-initialize-default
|
||||
:link '(info-link "(modus-themes) Option to extend the palette for use with overrides"))
|
||||
:group 'modus-themes
|
||||
:package-version '(modus-themes . "4.5.0")
|
||||
:type '(repeat (list symbol (choice symbol string)))
|
||||
:link '(info-link "(modus-themes) Option to extend the palette for use with overrides"))
|
||||
|
||||
(defcustom modus-vivendi-palette-overrides nil
|
||||
"Overrides for `modus-vivendi-palette'.
|
||||
(defcustom modus-vivendi-palette-overrides nil
|
||||
"Overrides for `modus-vivendi-palette'.
|
||||
|
||||
Mirror the elements of the aforementioned palette, overriding
|
||||
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,
|
||||
such as what hexadecimal RGB value the red-warmer symbol
|
||||
represents."
|
||||
:group 'modus-themes
|
||||
:package-version '(modus-themes . "4.0.0")
|
||||
:version "30.1"
|
||||
:type '(repeat (list symbol (choice symbol string)))
|
||||
:set #'modus-themes--set-option
|
||||
:initialize #'custom-initialize-default
|
||||
:link '(info-link "(modus-themes) Palette overrides"))
|
||||
:group 'modus-themes
|
||||
:package-version '(modus-themes . "4.0.0")
|
||||
:version "30.1"
|
||||
:type '(repeat (list symbol (choice symbol string)))
|
||||
:link '(info-link "(modus-themes) Palette overrides"))
|
||||
|
||||
(modus-themes-theme modus-vivendi
|
||||
modus-vivendi-palette
|
||||
modus-vivendi-palette-overrides)
|
||||
|
||||
(provide-theme 'modus-vivendi))
|
||||
(modus-themes-theme
|
||||
'modus-vivendi
|
||||
'modus-themes
|
||||
"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)."
|
||||
'dark
|
||||
'modus-themes-vivendi-palette
|
||||
'modus-vivendi-palette-user
|
||||
'modus-vivendi-palette-overrides)
|
||||
|
||||
;;; modus-vivendi-theme.el ends here
|
||||
|
|
|
|||
|
|
@ -26,488 +26,35 @@
|
|||
;;
|
||||
;; The Modus themes conform with the highest standard for
|
||||
;; color-contrast accessibility between background and foreground
|
||||
;; values (WCAG AAA). Please refer to the official Info manual for
|
||||
;; further documentation (distributed with the themes, or available
|
||||
;; at: <https://protesilaos.com/emacs/modus-themes>).
|
||||
;; values (WCAG AAA). They are also highly customizable and can even
|
||||
;; be used as the basis for other themes. Please refer to the official
|
||||
;; Info manual for further documentation (distributed with the themes,
|
||||
;; or available at: <https://protesilaos.com/emacs/modus-themes>).
|
||||
|
||||
;;; Code:
|
||||
|
||||
|
||||
|
||||
(eval-and-compile
|
||||
(unless (and (fboundp 'require-theme)
|
||||
load-file-name
|
||||
(equal (file-name-directory load-file-name)
|
||||
(expand-file-name "themes/" data-directory))
|
||||
(require-theme 'modus-themes t))
|
||||
(require 'modus-themes))
|
||||
|
||||
;;;###theme-autoload
|
||||
(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.
|
||||
(unless (and (fboundp 'require-theme)
|
||||
load-file-name
|
||||
(equal (file-name-directory load-file-name)
|
||||
(expand-file-name "themes/" data-directory))
|
||||
(require-theme 'modus-themes t))
|
||||
(require 'modus-themes))
|
||||
|
||||
(defcustom modus-vivendi-tinted-palette-user nil
|
||||
"Like the `modus-vivendi-tinted-palette' for user-defined entries.
|
||||
This is meant to extend the palette with custom named colors and/or
|
||||
semantic palette mappings. Those may then be used in combination with
|
||||
palette overrides (also see `modus-themes-common-palette-overrides' and
|
||||
`modus-vivendi-tinted-palette-overrides')."
|
||||
:group 'modus-themes
|
||||
:package-version '(modus-themes . "4.5.0")
|
||||
:type '(repeat (list symbol (choice symbol string)))
|
||||
:set #'modus-themes--set-option
|
||||
:initialize #'custom-initialize-default
|
||||
:link '(info-link "(modus-themes) Option to extend the palette for use with overrides"))
|
||||
:group 'modus-themes
|
||||
:package-version '(modus-themes . "4.5.0")
|
||||
:type '(repeat (list symbol (choice symbol string)))
|
||||
:link '(info-link "(modus-themes) Option to extend the palette for use with overrides"))
|
||||
|
||||
(defcustom modus-vivendi-tinted-palette-overrides nil
|
||||
"Overrides for `modus-vivendi-tinted-palette'.
|
||||
(defcustom modus-vivendi-tinted-palette-overrides nil
|
||||
"Overrides for `modus-vivendi-tinted-palette'.
|
||||
|
||||
Mirror the elements of the aforementioned palette, overriding
|
||||
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,
|
||||
such as what hexadecimal RGB value the red-warmer symbol
|
||||
represents."
|
||||
:group 'modus-themes
|
||||
:package-version '(modus-themes . "4.0.0")
|
||||
:version "30.1"
|
||||
:type '(repeat (list symbol (choice symbol string)))
|
||||
:set #'modus-themes--set-option
|
||||
:initialize #'custom-initialize-default
|
||||
:link '(info-link "(modus-themes) Palette overrides"))
|
||||
:group 'modus-themes
|
||||
:package-version '(modus-themes . "4.0.0")
|
||||
:version "30.1"
|
||||
:type '(repeat (list symbol (choice symbol string)))
|
||||
:link '(info-link "(modus-themes) Palette overrides"))
|
||||
|
||||
(modus-themes-theme modus-vivendi-tinted
|
||||
modus-vivendi-tinted-palette
|
||||
modus-vivendi-tinted-palette-overrides)
|
||||
|
||||
(provide-theme 'modus-vivendi-tinted))
|
||||
(modus-themes-theme
|
||||
'modus-vivendi-tinted
|
||||
'modus-themes
|
||||
"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)."
|
||||
'dark
|
||||
'modus-themes-vivendi-tinted-palette
|
||||
'modus-vivendi-tinted-palette-user
|
||||
'modus-vivendi-tinted-palette-overrides)
|
||||
|
||||
;;; modus-vivendi-tinted-theme.el ends here
|
||||
|
|
|
|||
|
|
@ -26,490 +26,35 @@
|
|||
;;
|
||||
;; The Modus themes conform with the highest standard for
|
||||
;; color-contrast accessibility between background and foreground
|
||||
;; values (WCAG AAA). Please refer to the official Info manual for
|
||||
;; further documentation (distributed with the themes, or available
|
||||
;; at: <https://protesilaos.com/emacs/modus-themes>).
|
||||
;; values (WCAG AAA). They are also highly customizable and can even
|
||||
;; be used as the basis for other themes. Please refer to the official
|
||||
;; Info manual for further documentation (distributed with the themes,
|
||||
;; or available at: <https://protesilaos.com/emacs/modus-themes>).
|
||||
|
||||
;;; Code:
|
||||
|
||||
|
||||
|
||||
(eval-and-compile
|
||||
(unless (and (fboundp 'require-theme)
|
||||
load-file-name
|
||||
(equal (file-name-directory load-file-name)
|
||||
(expand-file-name "themes/" data-directory))
|
||||
(require-theme 'modus-themes t))
|
||||
(require 'modus-themes))
|
||||
|
||||
;;;###theme-autoload
|
||||
(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.
|
||||
(unless (and (fboundp 'require-theme)
|
||||
load-file-name
|
||||
(equal (file-name-directory load-file-name)
|
||||
(expand-file-name "themes/" data-directory))
|
||||
(require-theme 'modus-themes t))
|
||||
(require 'modus-themes))
|
||||
|
||||
(defcustom modus-vivendi-tritanopia-palette-user nil
|
||||
"Like the `modus-vivendi-tritanopia-palette' for user-defined entries.
|
||||
This is meant to extend the palette with custom named colors and/or
|
||||
semantic palette mappings. Those may then be used in combination with
|
||||
palette overrides (also see `modus-themes-common-palette-overrides' and
|
||||
`modus-vivendi-tritanopia-palette-overrides')."
|
||||
:group 'modus-themes
|
||||
:package-version '(modus-themes . "4.5.0")
|
||||
:type '(repeat (list symbol (choice symbol string)))
|
||||
:set #'modus-themes--set-option
|
||||
:initialize #'custom-initialize-default
|
||||
:link '(info-link "(modus-themes) Option to extend the palette for use with overrides"))
|
||||
:group 'modus-themes
|
||||
:package-version '(modus-themes . "4.5.0")
|
||||
:type '(repeat (list symbol (choice symbol string)))
|
||||
:link '(info-link "(modus-themes) Option to extend the palette for use with overrides"))
|
||||
|
||||
(defcustom modus-vivendi-tritanopia-palette-overrides nil
|
||||
"Overrides for `modus-vivendi-tritanopia-palette'.
|
||||
(defcustom modus-vivendi-tritanopia-palette-overrides nil
|
||||
"Overrides for `modus-vivendi-tritanopia-palette'.
|
||||
|
||||
Mirror the elements of the aforementioned palette, overriding
|
||||
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,
|
||||
such as what hexadecimal RGB value the red-warmer symbol
|
||||
represents."
|
||||
:group 'modus-themes
|
||||
:package-version '(modus-themes . "4.0.0")
|
||||
:version "30.1"
|
||||
:type '(repeat (list symbol (choice symbol string)))
|
||||
:set #'modus-themes--set-option
|
||||
:initialize #'custom-initialize-default
|
||||
:link '(info-link "(modus-themes) Palette overrides"))
|
||||
:group 'modus-themes
|
||||
:package-version '(modus-themes . "4.0.0")
|
||||
:version "30.1"
|
||||
:type '(repeat (list symbol (choice symbol string)))
|
||||
:link '(info-link "(modus-themes) Palette overrides"))
|
||||
|
||||
(modus-themes-theme modus-vivendi-tritanopia
|
||||
modus-vivendi-tritanopia-palette
|
||||
modus-vivendi-tritanopia-palette-overrides)
|
||||
|
||||
(provide-theme 'modus-vivendi-tritanopia))
|
||||
(modus-themes-theme
|
||||
'modus-vivendi-tritanopia
|
||||
'modus-themes
|
||||
"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)."
|
||||
'dark
|
||||
'modus-themes-vivendi-tritanopia-palette
|
||||
'modus-vivendi-tritanopia-palette-user
|
||||
'modus-vivendi-tritanopia-palette-overrides)
|
||||
|
||||
;;; modus-vivendi-tritanopia-theme.el ends here
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue