dotemacs

My Emacs configuration
git clone git://git.entf.net/dotemacs
Log | Files | Refs | LICENSE

CHANGELOG.org (412576B)


      1 #+TITLE: Change log of the Modus Themes for GNU Emacs
      2 #+AUTHOR: Protesilaos Stavrou
      3 #+EMAIL: info@protesilaos.com
      4 #+OPTIONS: ':nil toc:nil num:nil author:nil email:nil
      5 
      6 This document contains the release notes that are included in each
      7 tagged commit on the project's main git repository:
      8 <https://git.sr.ht/~protesilaos/modus-themes>.
      9 
     10 The newest release is at the top.  Since the notes are meant to be in
     11 plain text format, I copy them verbatim.
     12 
     13 For further details, please consult these additional resources:
     14 
     15 + Manual :: <https://protesilaos.com/emacs/modus-themes>
     16 + Screenshots :: <https://protesilaos.com/emacs/modus-themes-pictures>
     17 
     18 * 4.4.0
     19 :PROPERTIES:
     20 :CUSTOM_ID: h:4025f2f4-8524-49d9-9ee5-627361ff9875
     21 :END:
     22 
     23 Before I cover the changes, a brief note about the canonical source of
     24 the ~modus-themes~ source code and corresponding documentation.
     25 
     26 The ~modus-themes~ are built into Emacs, as of version 28, but they
     27 are not developed in =emacs.git=: I maintain my own Git repository
     28 (<https://github.com/protesilaos/modus-themes>) and sync with
     29 =emacs.git= whenever I publish a new version, such as this one. This
     30 means that my code is often ahead of the one in the Emacs tree
     31 (including the =master= branch). Similarly, the official manual, which
     32 is hosted on my website (<https://protesilaos.com/emacs/modus-themes>),
     33 covers topics not found in the corresponding =gnu.org= web pages.
     34 
     35 In the opening section of the manual I include references to the
     36 canonical sources, but I still get comments about GNU web pages that I
     37 do not control. Please check those links before reporting issues that
     38 I can do nothing about.
     39 
     40 ** No more SourceHut
     41 :PROPERTIES:
     42 :CUSTOM_ID: h:56191859-93e5-444a-9356-f393343619a5
     43 :END:
     44 
     45 Development continues on GitHub with GitLab as a mirror. I explained
     46 my reasons here: <https://protesilaos.com/codelog/2024-01-27-sourcehut-no-more/>.
     47 
     48 This is a change that affects all my Emacs packages.
     49 
     50 ** Code blocks now have a background by default
     51 :PROPERTIES:
     52 :CUSTOM_ID: h:6b40d5f3-ae0a-4ec5-ab23-20ec64e37773
     53 :END:
     54 
     55 The user option ~modus-themes-org-blocks~ is obsolete. All code blocks
     56 now have a subtle grey background out-of-the-box. The block delimiter
     57 lines, such as the =#+begin_src= in Org mode, use the same background
     58 as the block's contents. This produces a style that (i) is easy to
     59 notice and (ii) employs minimal colouration. Furthermore, we no longer
     60 have any discrepancy between Org and similar modes like Markdown.
     61 
     62 Every theme has relevant semantic palette mappings to affect the
     63 underlying faces:
     64 
     65 - =bg-prose-block-delimiter=
     66 - =fg-prose-block-delimiter=
     67 - =bg-prose-block-contents=
     68 
     69 The old =prose-block= is now renamed to =fg-prose-block-delimiter=.
     70 Please update any such references in your configuration file.
     71 
     72 Users can customise those either for all themes via the user option
     73 ~modus-themes-common-palette-overrides~  or on a per-theme basis with
     74 something like ~modus-operandi-palette-overrides~. The manual includes
     75 ready-to-use code samples that showcases the numerous permutations made
     76 possible by these new mappings: <https://protesilaos.com/emacs/modus-themes#h:f44cc6e3-b0f1-4a5e-8a90-9e48fa557b50>.
     77 
     78 The old option to affect the user option ~org-src-block-faces~ as to
     79 have a different background for each specified programming language is
     80 no longer available. The previous design was inflexible, as I was
     81 hardcoding values for a few languages. Whereas it is better to empower
     82 the user with the choice of =language->colour= association. The manual
     83 shows how to do this:
     84 <https://protesilaos.com/emacs/modus-themes#h:8c842804-43b7-4287-b4e9-8c07d04d1f89>.
     85 
     86 ** More semantic mappings more inline code in prose-centric modes
     87 :PROPERTIES:
     88 :CUSTOM_ID: h:1d6ae039-cc19-479f-b16f-839481f3080a
     89 :END:
     90 
     91 For Org, Markdown, and related we have semantic palette mappings that
     92 target inline code constructs. For example, in Org we can have text
     93 inside of tilde signs to mark it up as code. In prior versions, the
     94 mappings were limited to just a foreground, but now they cover
     95 background values as well. By default, these background do not have a
     96 colour associated with them, meaning that the out-of-the-box aesthetic
     97 is the same as before. Users simply have more power at their disposal
     98 to tweak the theme to their liking.
     99 
    100 Here are the names of those mappings:
    101 
    102 - =bg-prose-code=
    103 - =fg-prose-code=
    104 - =bg-prose-macro=
    105 - =fg-prose-macro=
    106 - =bg-prose-verbatim=
    107 - =fg-prose-verbatim=
    108 
    109 The old =prose-code=, =prose-macro=, and =prose-verbatim= are named
    110 =fg-prose-code=, =fg-prose-macro=, =fg-prose-verbatim=. Please
    111 update any such references in your configuration file.
    112 
    113 The manual shows lots of examples on how to benefit from these
    114 optional backgrounds: <https://protesilaos.com/emacs/modus-themes#h:bb5b396f-5532-4d52-ab13-149ca24854f1>.
    115 
    116 ** No colour-coding for =transient.el= buffers.
    117 :PROPERTIES:
    118 :CUSTOM_ID: h:0b134a92-9554-4578-a963-ef782f224b28
    119 :END:
    120 
    121 In a recent version of =transient.el=, there is a new user option that
    122 applies colour-coding to keys (e.g. we see those while using ~magit~):
    123 ~transient-semantic-coloring~. This option is enabled by default,
    124 changing the previous style that was used as a reference for all my
    125 designs.
    126 
    127 The idea with such colour coding is to indicate when a key continues
    128 to display the transient, exits with a given action, and the like. For
    129 our purposes this interface cannot work:
    130 
    131 - We need some place to teach users what each colour means, as there
    132   are no indicators of any sort to help them (whereas, say, in diff
    133   buffers we have the plus and minus signs).
    134 
    135 - Not all hues are suitable for highlighting a single character. In
    136   light themes, for example, green and yellow colours are awkward
    137   choices for the requirements of this interface where the key must be
    138   clearly visible. But when we introduce multiple colours, each with
    139   their own meaning, we will not be able to avoid those hues.
    140 
    141 - The style of key bindings is not limited to =transient.el=. We find
    142   them when we invoke =M-x=, do =M-x describe-bindings=, while using
    143   the ~which-key~ package, and many more. If we are to change how
    144   =transient.el= shows key bindings, then we have to retain the same
    145   visual cues for other contexts. Otherwise, everything is inconsistent.
    146 
    147 - All themes must use the same colours to preserve the colour coding,
    148   thus removing an important aspect of their presentation.
    149 
    150 - This whole paradigm does not work for themes that are optimised for
    151   users with colour deficiency, due to the reduced number of suitable
    152   hues. With deuteranopia, for example, we can only rely on yellow and
    153   blue: since yellow is not optimal for single key highlights against
    154   a light backdrop, blue is the only hue that works in such a context.
    155 
    156 The ~modus-themes~ will never support ~transient-semantic-coloring~.
    157 All relevant faces use the style of standard key bindings.
    158 
    159 Themes can enforce user option values, but I have decided to change
    160 the faces instead to better communicate my intent. If a user wants
    161 semantic colouring, they can change the faces to whatever they like.
    162 
    163 I understand this is a radical measure, though it is the best I can do
    164 given the circumstances. If =transient.el= where to have accompanying
    165 characters that better denote what each key does (e.g. the plus sign
    166 is for keys that continue the transient), then I am happy to apply
    167 appropriate colours to those and reconsider the aforementioned.
    168 
    169 ** Semantic mappings for active arguments and values
    170 :PROPERTIES:
    171 :CUSTOM_ID: h:909053eb-0378-41f5-b32a-741fa53ba4a3
    172 :END:
    173 
    174 In various interfaces such as of ~eldoc-mode~ and =transient.el= there
    175 are highlights for the current argument or argument value. These now
    176 have corresponding semantic palette mappings and are thus styled
    177 uniformly (and can be overridden accordingly). The mappings are:
    178 
    179 - =bg-active-argument=
    180 - =fg-active-argument=
    181 - =bg-active-value=
    182 - =fg-active-value=
    183 
    184 ** A semantic mapping for formulas in tables
    185 :PROPERTIES:
    186 :CUSTOM_ID: h:306889ed-64c8-414c-a744-14ea1e6b3e6d
    187 :END:
    188 
    189 The =prose-table-formula= applies to inline formula expressions in
    190 plain text tables. Org mode uses those, as does the minor mode ~orgtbl-mode~.
    191 The inline formula is meant to stand out from the rest of the table,
    192 without exaggerations.
    193 
    194 ** Matching parentheses have semantic mappings for their foreground too
    195 :PROPERTIES:
    196 :CUSTOM_ID: h:4055d50e-0153-4576-bba5-fcdcdf039b10
    197 :END:
    198 
    199 By default, Emacs will highlight the matching (opening or closing)
    200 delimiter when the cursor is next to it. This is useful in Lisp
    201 programming modes, for example, as we can quickly get a sense of where
    202 an expression starts and ends.
    203 
    204 The themes now provide mappings for the foreground of those
    205 delimiters. This means that users can either change the combination of
    206 background and foreground or opt to only display a foreground value
    207 for a more minimal look.
    208 
    209 As always, the manual shows concrete examples:
    210 <https://protesilaos.com/emacs/modus-themes#h:259cf8f5-48ec-4b13-8a69-5d6387094468>.
    211 
    212 ** Search highlights have their own semantic mappings
    213 :PROPERTIES:
    214 :CUSTOM_ID: h:df3879a4-e11d-47f0-9330-a2d51e999941
    215 :END:
    216 
    217 This makes it easier to differentiate their style on a per-theme
    218 basis, which I do for all the Modus themes. It also gives users the
    219 option to override the colours. The mappings:
    220 
    221 - =bg-search-current=
    222 - =bg-search-lazy=
    223 - =bg-search-replace=
    224 - =bg-search-rx-group-0=
    225 - =bg-search-rx-group-1=
    226 - =bg-search-rx-group-2=
    227 - =bg-search-rx-group-3=
    228 
    229 ** Stylistic tweaks to ~modus-operandi-tinted~
    230 :PROPERTIES:
    231 :CUSTOM_ID: h:8885de5e-be29-45cc-a2e5-2dcb0866273d
    232 :END:
    233 
    234 The ~modus-operandi-theme~ uses a light ochre background, which gives
    235 a warmer feel than the pure white background of ~modus-operandi~. To
    236 better contribute to this warmth, I made some tweaks to common
    237 elements:
    238 
    239 1. The cursor has a red hue as before, but the value is a bit more
    240    intense now. This makes it easier to spot in contexts where text is
    241    already "warm", like close to an Org =TODO= keyword or in
    242    programming mode comments.
    243 
    244 2. All key bindings have a red hue instead of blue. We can notice the
    245    effect in Help mode buffers that mention where a command is bound,
    246    while using ~which-key-mode~, in =transient.el= buffers, in
    247    minibuffer completion annotations, and more.
    248 
    249 These are in addition to many nuances already built into ~modus-operandi-tinted~.
    250 
    251 I hope that existing users will appreciate these tweaks. We anyway
    252 have the option to override any entry in the palette, though I suggest
    253 you give these a chance before enacting any changes.
    254 
    255 ** Stylistic tweaks to ~modus-vivendi-tinted~
    256 :PROPERTIES:
    257 :CUSTOM_ID: h:dc23c419-d87a-4973-9175-961af9e3051d
    258 :END:
    259 
    260 Same principle here as with the above set of changes. Namely:
    261 
    262 1. The cursor uses a more intense magenta background to be easier to
    263    spot.
    264 
    265 2. Key bindings are purple instead of blue to better complement the
    266    aesthetics of this theme.
    267 
    268 3. The background highlight applied to matching parentheses (per
    269    ~show-paren-mode~) is grey-cyan instead of cyan.
    270 
    271 Again, we can override everything but please try those for a little
    272 while.
    273 
    274 ** The ~olivetti-fringe~ is visible when needed
    275 :PROPERTIES:
    276 :CUSTOM_ID: h:3c2d3f21-7686-4376-a3ec-82240b283eec
    277 :END:
    278   
    279 This is subject to the user option ~olivetty-style~, which can be set
    280 to the value of =fancy= to produce a page-like effect.
    281 
    282 Thanks to Dhavan Vaidya and Gautier Ponsinet for bringing this matter
    283 to my attention on the now-discontinued mailing list:
    284 <https://lists.sr.ht/~protesilaos/modus-themes/%3Cm2a5qzpi3y.fsf%40muon.local.mail-host-address-is-not-set%3E>
    285 
    286 ** A more subtle style for the ~consult-preview-insertion~ face
    287 :PROPERTIES:
    288 :CUSTOM_ID: h:8c6717d2-0488-4590-8083-52e081adf6f5
    289 :END:
    290   
    291 The default value of that face inherits from the ~region~ face. This
    292 is fine in some cases, though not when the user calls
    293 ~consult-outline~ in a buffer with hidden text (e.g. Org folded
    294 headings). There the background is applied to the entire heading's
    295 surface area, which is too distracting while cycling through
    296 completion candidates and inspecting the preview.
    297 
    298 ** Simpler ~imenu-list~ with four colours
    299 :PROPERTIES:
    300 :CUSTOM_ID: h:af7ec9f7-e7aa-4a05-a5a2-184d0d7143c6
    301 :END:
    302 
    303 The ~imenu-list~ defines two sets of faces which apply to same heading
    304 levels but differ on whether the heading has subheadings or not.
    305 Before, we would colourise those differently, which could be
    306 confusing. Now they look the same, which is fine because the interface
    307 has additional markup to show when subheadings are present.
    308   
    309 Thanks to ltmsyvag for pointing this out in issue 95:
    310 <https://github.com/protesilaos/modus-themes/issues/95>.
    311 
    312 ** Implicit buttons in Gnus are no longer underlined
    313 :PROPERTIES:
    314 :CUSTOM_ID: h:6b0cc04f-1a9b-436c-b11f-5446ea55b010
    315 :END:
    316 
    317 Gnus buttonises text that it considers actionable. The exact
    318 functionality depends on the context, but it basically does stuff like
    319 add a quick way to write a new message to a given email address. These
    320 buttons can be mistaken for links, so I am removing their underline to
    321 avoid any possible confusion.
    322 
    323 ** The ~message-separator~ face is less intense
    324 :PROPERTIES:
    325 :CUSTOM_ID: h:a049f538-2805-4379-8542-43dc6f990a2b
    326 :END:
    327 
    328 In message/email composition buffers, there is a line that
    329 distinguishes headers from the body of the message. By default, it
    330 reads =--text follows this line--= and will now have a subtle grey
    331 background. The idea is to not stress the distinction between headers
    332 and body, as this line's verbosity is already enough to call attention
    333 to it when we add a subtle background.
    334 
    335 ** Recalibrated all "nuanced" background values
    336 :PROPERTIES:
    337 :CUSTOM_ID: h:ecb9c704-7615-4e42-8438-13e96c10588e
    338 :END:
    339 
    340 Each theme has a subset of slightly accented background named
    341 =bg-{red,green,blue,yellow,magenta,cyan}-nuanced=. These have slightly
    342 different values to be more consistent in terms of their intensity.
    343 
    344 ** The ~debbugs~ package is now supported
    345 :PROPERTIES:
    346 :CUSTOM_ID: h:67161fd3-f615-4856-b5df-99f5c0f2e5ee
    347 :END:
    348 
    349 Thanks to Gautier Ponsinet for sending me the relevant patch to my
    350 personal email. I made further stylistic changes on top.
    351 
    352 ** The ~ztree~ package is covered as well
    353 :PROPERTIES:
    354 :CUSTOM_ID: h:c82277b9-abb9-4d1e-9912-14caf66af8d2
    355 :END:
    356 
    357 It produces a diff between two directories and thus needs appropriate
    358 colours.
    359 
    360 ** Added support for ~xterm-color~ and ~rustic-mode~
    361 :PROPERTIES:
    362 :CUSTOM_ID: h:c262fdbe-49a5-480b-b0d1-6592f6e29879
    363 :END:
    364 
    365 These are basically reusing styles we already support for other
    366 terminal emulators. Thanks to Tony Zorman for the contribution, which
    367 was done in pull request 99: <https://github.com/protesilaos/modus-themes/pull/99>.
    368 
    369 ** Org checkboxes are monospaced when ~modus-themes-mixed-fonts~ is non-nil
    370 :PROPERTIES:
    371 :CUSTOM_ID: h:69dbe924-58b3-43e9-801c-35cf9ac8fffb
    372 :END:
    373 
    374 The user option ~modus-themes-mixed-fonts~ makes specing-sensitive
    375 elements use a monospaced font (specifically, the font family of the
    376 ~fixed-pitch~ face). This lets the user set a more prose-friendly
    377 style without visually breaking snippets that rely on fixed width
    378 spacing. A prose-friendly style is done by making the default font a
    379 proportionately spaced one, or by enabling ~variable-pitch-mode~ in
    380 the current buffer.
    381 
    382 For this case, we now cover Org checkboxes as well to avoid
    383 misalignments in checklists.
    384 
    385 Thanks to Gautier Ponsinet for discussing this with me via email and
    386 sending the relevant patch.
    387 
    388 ** More code samples in the manual
    389 :PROPERTIES:
    390 :CUSTOM_ID: h:2ccb1b44-a36e-4ea1-9f24-9d080cdec02d
    391 :END:
    392 
    393 The manual documents everything about the customisation options
    394 provided by the themes, as well as relevant do-it-yourself code
    395 samples. I now include more examples and better explain how to hook
    396 those either to the ~enable-theme-functions~ or the
    397 ~modus-themes-after-load-theme-hook~. If something is not clear or not
    398 covered at all, please let me know and I will help you do what you
    399 want.
    400 
    401 ** Miscellaneous
    402 :PROPERTIES:
    403 :CUSTOM_ID: h:2e5f0804-236d-49b5-9b2f-ecb4794b244b
    404 :END:
    405 
    406 - All =cl-= snippets are removed from the source code. We did not
    407   really need them and I rewrote the code accordingly. This is not a
    408   value judgement against Common Lisp patterns in Emacs Lisp (I do not
    409   mind them): it is just a matter of removing a dependency for things
    410   that can easily be done differently.
    411 
    412 - The ~keycast-key~ inherits the ~bold~ face if the user option
    413   ~modus-themes-bold-constructs~ is set to a non-nil value.
    414 
    415 - The ~read-multiple-choice-face~ now has a cooler hue than the one it
    416   had before. This way it is not mistaken for a warning.
    417 
    418 - The ~appt-notification~ face uses a foreground value that is better
    419   suited for the modeline, where this indicator appears.
    420 
    421 - The ~header-line-highlight~ draws a box around it. This makes the
    422   mouse hover effect easier to spot.
    423 
    424 - The ~shr-mark~ face is now covered as well. It uses an appropriate
    425   background colour.
    426 
    427 - The ~mct-highlight-candidate~ face is covered and has an appropriate
    428   style for the minibuffer completions.
    429 
    430 - The ~completions-highlight~ face (Emacs 29) is also supported to
    431   ensure stylistic consistency between the minibuffer interfaces
    432   covered by the themes.
    433 
    434 - Flagged and deleted messages in ~mu4e~ and ~notmuch~ use different
    435   hues to not conflate the two.
    436 
    437 - Fixed the spelling of "colour" to "color" in the manual because core
    438   Emacs uses the latter...
    439 
    440 * 4.3.0
    441 :PROPERTIES:
    442 :CUSTOM_ID: h:4783bc29-3055-426d-9acb-51e4d0741871
    443 :END:
    444 
    445 ** All themes except the tritanopia ones have a new hover colour
    446 :PROPERTIES:
    447 :CUSTOM_ID: h:b92b176e-3e9a-420d-bbbe-3c3e38b47027
    448 :END:
    449 
    450 The previous colour was not sufficiently distinct from what each theme
    451 defines for the =bg-completion= palette entry (preview a palette with
    452 =M-x modus-themes-preview-colors= or =M-x modus-themes-preview-colors-current=).
    453 This would make it hard to spot the difference while, for example,
    454 using ~vertico-mode~ in tandem with ~vertico-mouse-mode~.
    455 
    456 Same principle for the difference between the mouse hover and lazy
    457 isearch highlights (e.g. in Dired or Occur buffers).
    458 
    459 Changing the hue here follows the same principle that underpinned the
    460 redesign of the grey backgrounds for version 4 of the project:
    461 depending on hardware capabilities, colour reproduction may not be
    462 optimal, so we need to be more considerate with the choice of colour
    463 values, erring on the side of caution.
    464 
    465 The ~modus-operandi-tritanopia~ and ~modus-vivendi-tritanopia~ themes
    466 are not affected by this initiative, as they already used highly distinct hues.
    467 
    468 Thanks to Daniel Mendler for bringing this matter to my attention and
    469 for testing the proposed alternatives.  This was done via a private
    470 channel and the information is shared with permission.  Daniel is the
    471 developer of ~vertico~, among many other excellent packages:
    472 <https://github.com/minad>
    473 
    474 ** Japanese holidays have the expected style
    475 :PROPERTIES:
    476 :CUSTOM_ID: h:2de9cef6-c6f1-4c2e-97ce-46d8a7306bae
    477 :END:
    478 
    479 Japanese calendars style Saturdays uniquely and the Modus themes now
    480 do the same for those who use the ~japanese-holidays~ package.
    481 Saturdays show up in a blue colour (which changes to cyan for the
    482 ~modus-operandi-tritanopia~, ~modus-vivendi-tritanopia~ themes).
    483 
    484 Each theme's palette has a new semantic colour mapping called
    485 =date-holiday-other=, just in case we ever encounter another scenario
    486 like this one (users can override any entry in the palette---consult
    487 the manual for the technicalities).
    488 
    489 Thanks to Olaf Meeuwissen for bringing this package to my attention
    490 and showing me how traditional Japanese calendars style Saturdays.
    491 This was done in issue 311 on the GitLab mirror:
    492 <https://gitlab.com/protesilaos/modus-themes/-/issues/311>.
    493 
    494 ** Each theme has semantic colour mappings for terminal emulators
    495 :PROPERTIES:
    496 :CUSTOM_ID: h:f3ae786a-9e01-4363-ae98-898f2ad34f7b
    497 :END:
    498 
    499 These are used by ~ansi-term~, ~vterm~, and the like.  The idea is to
    500 empower users to differentiate background and foreground values,
    501 should they ever encounter a need to do so (when in doubt, do
    502 nothing).
    503 
    504 By convention, terminal emulators use the same value for both
    505 background and foreground, although this is not optimal with high
    506 contrast themes because what works as a foreground does not
    507 necessarily look nice as a background.
    508 
    509 The default values of the new mappings retain the prior state, just to
    510 not break existing configurations.  Consider this a tacit user option
    511 for those who really need it.
    512 
    513 Thanks to Tony Zorman for reporting the problem that provided the
    514 impetus for this change:
    515 <https://lists.sr.ht/~protesilaos/modus-themes/%3C87fs4wforf.fsf%40hyperspace%3E>.
    516 
    517 ** All theme definitions conform with the latest standard for metadata
    518 :PROPERTIES:
    519 :CUSTOM_ID: h:2af0114f-b96a-4e89-ad2f-850d53538efa
    520 :END:
    521 
    522 Themes are expected to declare their background type and affinity,
    523 such that the built-in command ~theme-choose-variant~ can do what it
    524 describes (switch between related themes).  I was already doing this,
    525 though I had to make some adjustments.  This is in response to Emacs
    526 bug#65468: <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=65468>.
    527 Thanks to Mauro Aranda for bringing the matter to my attention.
    528 
    529 ** Proper colours for the inline preview of the ~corfu~ top candidate
    530 :PROPERTIES:
    531 :CUSTOM_ID: h:89d40a68-7573-4994-9ecc-fea40c823472
    532 :END:
    533 
    534 The ~corfu-candidate-overlay~ package is used in tandem with the
    535 ~corfu~ package to create an inline preview of the first matching
    536 candidate.  Thanks to Nicolas Semrau for bringing this matter to my
    537 attention in issue 89 on the GitHub mirror:
    538 <https://github.com/protesilaos/modus-themes/issues/89>.
    539 
    540 ** Context indicators for the mode-line or header-line (breadcrumb.el)
    541 :PROPERTIES:
    542 :CUSTOM_ID: h:dc391e85-650f-444e-b909-849d659921fb
    543 :END:
    544 
    545 I added support for the new ~breadcrumb~ package by João Távora.  It
    546 displays information about where we are in the given file, such as
    547 under which Org heading or inside which function.  The indicator can
    548 be shown on the mode-line or the header-line.  Either way, it will now
    549 be legible and consistent with its surroundings.
    550 
    551 ** The new family of nerd-icons is covered by the themes
    552 :PROPERTIES:
    553 :CUSTOM_ID: h:0409d429-5307-43d6-9bf4-fabc958c2540
    554 :END:
    555 
    556 This is a new set of packages: ~nerd-icons~, ~nerd-icons-completion,
    557 ~nerd-icons-dired~, ~nerd-icons-ibuffer~.  A popular package that uses
    558 the Nerd icons is ~doom-modeline~, which the themes support as well.
    559 
    560 ** All icons look as intended again
    561 :PROPERTIES:
    562 :CUSTOM_ID: h:a01075c6-b931-4b35-bdbd-2d1223101560
    563 :END:
    564 
    565 Some faces from the ~all-the-icons~ package were not configured
    566 because I accidentally changed their name from something like
    567 ~all-the-icons-red-alt~ to ~all-the-icons-red-warmer~.  I did that
    568 while renaming the colours defined in each theme's palette, to make
    569 them more meaningful ("warmer red" can hint at something whereas "alt
    570 red" is more abstract).
    571 
    572 ** Corrected the documentation about custom Org faces
    573 :PROPERTIES:
    574 :CUSTOM_ID: h:5c254346-370e-4510-bcc7-70a1cca2c5a0
    575 :END:
    576 
    577 The Modus themes manual shows how to configure arbitrary TODO keywords
    578 to inherit the style of an arbitrary face (get the list of faces
    579 present in your Emacs with =M-x list-faces-display=).  The previous
    580 value I used was faulty.  It now is as intended.  Thanks to
    581 soaringbird for reporting the issue on the mailing list:
    582 <https://lists.sr.ht/~protesilaos/modus-themes/%3CNXPVkVk--3-9%40tuta.io%3E>.
    583 
    584 ** The colours used by =avy= are better for users with tritanopia
    585 :PROPERTIES:
    586 :CUSTOM_ID: h:3605693e-bd6d-40a0-a1d4-199684c89081
    587 :END:
    588 
    589 I changed the sequence of colours displayed by commands such as
    590 ~avy-goto-char-timer~ such that each individual background does not
    591 blend with the ones adjacent to it, while respecting the overall needs
    592 of a tritanopia-friendly design.  I also tweaked the colour values to
    593 achieve the desired result.  The backgrounds remain distinct from
    594 their context but now also work harmoniously together.
    595 
    596 ** The =bg-dim= palette entry is marginally brighter in all Modus operandi variants
    597 :PROPERTIES:
    598 :CUSTOM_ID: h:8a3cb4f1-e7f8-48f1-832c-27e64b126b2d
    599 :END:
    600 
    601 After extensive testing and side-by-side comparisons, I have concluded
    602 that the marginal increase in brightness improves the affected
    603 interfaces.
    604 
    605 The =bg-dim= background is used, among others, in the header-line, the
    606 popup of the ~company~ and ~corfu~ packages, as well as the Org source
    607 blocks (when the user option ~modus-themes-org-blocks~ is configured
    608 appropriately).
    609 
    610 ** The "intense" palette override preset has new colours for tables and prose metadata
    611 :PROPERTIES:
    612 :CUSTOM_ID: h:3a990310-337c-457f-8f40-1af6d1b557f6
    613 :END:
    614 
    615 This concerns the ~modus-themes-preset-overrides-intense~ (refer to
    616 its documentation on how to use it).  The primary target of these
    617 changes is Org mode and the overall effect is subtle.  The previous
    618 colours did not combine nicely with all structural elements.  For
    619 example, Org clocktables would obscure timestamps by being the same
    620 colour as them, while the table formula would not stand out.  These
    621 styles did not fit into the concept of "intense" colours.
    622 
    623 ** The "warmer" palette override preset has more legible strings
    624 :PROPERTIES:
    625 :CUSTOM_ID: h:64cbd701-1344-48cc-8bcf-fc9712438013
    626 :END:
    627 
    628 The ~modus-themes-preset-overrides-warmer~ uses a more prominent warm
    629 green value for strings in programming modes.  The effect is subtle,
    630 though it fits in better with the overall aesthetic of these palette
    631 overrides.
    632 
    633 ** Org document keywords like =#+author= are optionally monospaced
    634 :PROPERTIES:
    635 :CUSTOM_ID: h:096b75ec-802c-43e4-81ed-6db92b45654c
    636 :END:
    637 
    638 When the user option ~modus-themes-mixed-fonts~ is non-nil, all Org
    639 document keywords will be rendered with the ~fixed-pitch~ face.  This
    640 ensures consistency between keywords such as =#+author= and "meta
    641 lines" like =#+texinfo=.  Thanks to user fluentpwn for the change: it
    642 is one line and thus the author does not need to assign copyright to
    643 the Free Software Foundation.
    644 
    645 ** Git commit summary lines have a more precise style
    646 :PROPERTIES:
    647 :CUSTOM_ID: h:2aecd902-3a0b-4544-98f4-dbb42cbad672
    648 :END:
    649 
    650 This concerns the first line in a Git commit message, as seen while
    651 working with the ~magit~ package.  Same principle for the ~log-edit~
    652 buffer used by the built-in VC framework.  Before, I was hardcoding a
    653 blue colour value, whereas now I apply the ~success~ face.  The
    654 ~success~ face is designed to contrast with the ~warning~ face that is
    655 used to show overlong summaries.  Furthermore, the added indirection
    656 makes it possible to particularise the colour value, which I do for
    657 the tritanopia themes that cannot use blue.
    658 
    659 ** Miscellaneous
    660 :PROPERTIES:
    661 :CUSTOM_ID: h:7391fd7d-6e70-4419-a8d6-f34d9ae075b1
    662 :END:
    663 
    664 - Removed explicit support for the built-in ~css-mode~.  Its default
    665   faces are decent.  They inherit from standard font-lock faces that
    666   the themes already cover.
    667 
    668 - Recalibrated wordwise ("refined") diffs for deuteranopia.  The
    669   ~modus-operandi-deuteranopia~ and ~modus-vivendi-deuteranopia~ have
    670   a little bit more intense colour values applied to wordwise, else
    671   "refined", diffs.  These concern removed lines.  The effect is
    672   visible while using ~magit~ or the built-in ~diff-mode~.
    673 
    674 - Backported emacs.git commit =4cf33b6bd02b868ebbf112da7926d7c3c64517ce=.
    675   It removed the space from the front matter of the =modus-themes.org=
    676   file (i.e. the manual) because the Org export did not produce the
    677   right results, per Emacs bug#64548.  Thanks to Stephen Berman for
    678   reporting the issue and making the requisite change.
    679 
    680 - Added support for the ~erts-mode~.  Thanks to Kevin Fleming for
    681   informing me about this built-in mode.  This was done in issue 85 on
    682   the GitHub mirror: <https://github.com/protesilaos/modus-themes/issues/85>.
    683 
    684 - Fixed a typo in the ~modus-themes-preset-overrides-intense~ doc
    685   string.  Thanks to Nicolas Semrau for bringing this matter to my
    686   attention.  It was done in issue 90 on the GitHub mirror:
    687   <https://github.com/protesilaos/modus-themes/issues/90>.
    688 
    689 - Made all commands that prompt for a theme (~modus-themes-select~,
    690   ~modus-themes-preview-colors~) apply the =theme= category to the
    691   available candidates.  This allows the user to target said category
    692   to affect the relevant functions.  For example, to set completion
    693   styles with ~completion-category-overrides~ or to define a custom
    694   annotation function with the ~marginalia~ package.
    695 
    696 - Added support for new ~appt-notification~ face (Emacs 30).  Change
    697   upstream by me.
    698 
    699 * 4.2.0
    700 :PROPERTIES:
    701 :CUSTOM_ID: h:29370d83-23c4-415b-afbf-ad85d4296c86
    702 :END:
    703 
    704 ** I won a Google award for the Modus themes
    705 :PROPERTIES:
    706 :CUSTOM_ID: h:1ffc8660-511d-4fa8-aff4-11da8246a186
    707 :END:
    708 
    709 Report here: <https://protesilaos.com/codelog/2023-05-25-emacs-google-award/>.
    710 
    711 This is not a "change" per se, but it is worth documenting here.  It
    712 shows how important accessibility can be in empowering people to use
    713 their computer and, in our case, to exercise their software freedoms.
    714 
    715 The Modus themes tend to one aspect of accessibility.  They do not
    716 exhaust the topic, though they should at least raise awareness about
    717 the significance of tending to the usability needs of everyone.  The
    718 effort I put into documenting the themes (and my other packages)
    719 should be understood in this light as a means of helping people enjoy
    720 their software freedom by learning how to use and extend the program
    721 in question.
    722 
    723 ** New tritanopia-optimised themes
    724 :PROPERTIES:
    725 :CUSTOM_ID: h:b92706b0-9d53-4015-8916-9db3c0c87068
    726 :END:
    727 
    728 I have created a pair of light and dark themes that are intended for
    729 people with blue-yellow colour deficiency (tritanopia).  These are
    730 ~modus-operandi-tritanopia~ (light) and ~modus-vivendi-tritanopia~
    731 (dark).  Screenshots of all the Modus themes are available on my
    732 website: <https://protesilaos.com/emacs/modus-themes-pictures>.
    733 
    734 The entire collection is now described in the manual as follows:
    735 
    736 #+begin_quote
    737 The Modus themes consist of eight themes, divided into four subgroups.
    738 
    739 - Main themes :: ~modus-operandi~ is the project's main light theme,
    740   while ~modus-vivendi~ is its dark counterpart.  These two themes are
    741   part of the project since its inception.  They are designed to cover
    742   a broad range of needs and are, in the opinion of the author, the
    743   reference for what a highly legible "default" theme should look
    744   like.
    745 
    746 - Tinted themes :: ~modus-operandi-tinted~ and ~modus-vivendi-tinted~
    747   are variants of the two main themes.  They slightly tone down the
    748   intensity of the background and provide a bit more color variety.
    749   ~modus-operandi-tinted~ has a set of base tones that are shades of
    750   light ochre (earthly colors), while ~modus-vivendi-tinted~ gives a
    751   night sky impression.
    752 
    753 - Deuteranopia themes :: ~modus-operandi-deuteranopia~ and its
    754   companion ~modus-vivendi-deuteranopia~ are optimized for users with
    755   red-green color deficiency.  This means that they do not use red and
    756   green hues for color-coding purposes, such as for diff removed and
    757   added lines.  Instead, they implement colors that are discernible by
    758   users with deueteranopia or deuteranomaly (mostly yellow and blue
    759   hues).
    760 
    761 - Tritanopia themes :: ~modus-operandi-tritanopia~ and its counterpart
    762   ~modus-vivendi-tritanopia~ are optimized for users with blue-yellow
    763   color deficiency.  The idea is the same as with the deuteranopia
    764   variants: color coding relies only on hues that are accessible to
    765   people with tritanopia or tritanomaly, namely, shades of red and
    766   cyan.
    767 #+end_quote
    768 
    769 ** Recalibrated the "graph" colours in all themes
    770 :PROPERTIES:
    771 :CUSTOM_ID: h:60bb2797-2db6-4d47-9d27-7d1f32291707
    772 :END:
    773 
    774 The new palette subset improves the contrast of all the relevant
    775 colours when presented side-by-side.  These are most notably used by
    776 the ~org-habit~ consistency graph, which is displayed in the Org
    777 agenda.  The deuteranopia and tritanopia themes have their own bespoke
    778 colours for this purpose, due to their specific requirements for
    779 colour coding (e.g. they cannot use green).
    780 
    781 ** Faces or face groups
    782 :PROPERTIES:
    783 :CUSTOM_ID: h:4b68159e-d998-4781-b202-74a3dcc8ae8e
    784 :END:
    785 
    786 - Introduced a subtle 3D effect for clickable buttons, replacing the
    787   previous 2D design.  I realised the flat style creates ambiguity
    788   between the button and the text fields.  This happens, for example,
    789   with =M-x customize-variable= for ~org-capture-templates~ which has
    790   lots of button and text field combinations.  The added sense of
    791   depth helps with the usability of these buttons because it makes
    792   them unambiguous.  Personally, I prefer the 2D approach, but here we
    793   have a trade-off between usability and aesthetics.  According to
    794   what I state in the manual:
    795 
    796   #+begin_quote
    797   If there arises an inescapable trade-off between usability and
    798   stylistic considerations, we will always opt for the former.
    799   #+end_quote
    800 
    801 - Refashioned the ~whitespace-mode~ to be much more subtle and added
    802   the concomitant semantic colour mappings.
    803 
    804   The previous style involved the use of a dim grey background for
    805   each invisible character.  While this is was good to spot invisible
    806   characters quickly, it was a major hindrance for users who want to
    807   run ~whitespace-mode~ at all times (e.g. for the Python programming
    808   language which is space-sensitive).
    809 
    810   We thus remove the backgrounds by default but provide the option to
    811   reinstate them via palette overrides (as documented at length in the
    812   manual).  To this end, we have two new semantic colour mappings for
    813   ordinary space, its invisible characters, as well as space errors.
    814 
    815   Thanks to Christian Tietze and Oliver Epper for their feedback in
    816   issue 80 on the GitHub mirror:
    817   <https://github.com/protesilaos/modus-themes/issues/80>.
    818 
    819 - Applied a more subtle background for faces ~menu-bar-mode~,
    820   ~tool-bar-mode~, ~scroll-bar-mode~.  They do not need to stand out
    821   so much because the toolkit already takes care of that.  Also, we do
    822   not want to dillute the semantic value of either ~bg-tab-bar~ or
    823   ~fringe~ palette colour mappings that I was wrongly using before in
    824   this context.  Note that those faces may not apply, depending on the
    825   underlying tool kit.  For example, I encounter them with the Lucid
    826   build of Emacs, though not with the GTK one.
    827 
    828 - Fix the critical typo of 'widget-buton', which prevented the actual
    829   ~widget-button~ face from being affected by the themes.  Thanks to
    830   Steve Downey for pointing it out in issue 73 on the GitHub mirror:
    831   <https://github.com/protesilaos/modus-themes/issues/73>.
    832 
    833 - Added support for the ~disk-usage~ package.  It is made to look like
    834   Dired, to the extent possible.  Thanks to Nacho Barrientos for the
    835   patch: <https://lists.sr.ht/~protesilaos/modus-themes/patches/39822>.
    836   The change is small and does not require copyright assignment to the
    837   Free Software Foundation.
    838 
    839 - Made the ~eglot-diagnostic-tag-unnecessary-face~ look like a
    840   warning.  By default it inherits the ~shadow~ face, which makes it
    841   counter-intuitive as it dims the text instead of bringing it to our
    842   attention.  The intent of ~eglot-diagnostic-tag-unnecessary-face~ is
    843   to highlight unused symbols, so this is better presented as a
    844   warning.
    845 
    846   Thanks to Augusto Stoffel for bringing this matter to my attention.
    847   This was done via a private channel and the information is shared
    848   with permission.
    849 
    850 - Changed the ~smerge-markers~ to inherit from ~diff-header~ instead
    851   of ~diff-heading~.  Thanks to Steve Downey for the contribution.
    852   This was done in pull request 74 on the GitHub mirror:
    853   <https://github.com/protesilaos/modus-themes/pull/74>.  The change
    854   is small and does not require copyright assignment to the Free
    855   Software Foundation.
    856 
    857 - Added support for the ~jinx~ package.  This was originally done by
    858   Tomasz Hołubowicz in pull request 71 on the GitHub mirror:
    859   <https://github.com/protesilaos/modus-themes/pull/71>.  The change
    860   is small and does not require copyright assignment to the Free
    861   Software Foundation.  I then modified it to make the underlines look
    862   like warnings instead of errors.  This is because of how the package
    863   works: it automatically highlights misspellings in the visible
    864   portion of the buffer.  There are cases where this results in a very
    865   intense presentation, which can be distracting.  We want to reduce
    866   the overall intensity and not draw too much attention to those
    867   highlights.
    868 
    869 - Extended coverage of Org to the new ~org-agenda-calendar-daterange~
    870   face (part of Org version 9.7).  Thanks to Gautier Ponsinet for the
    871   patch, which I received via a private channel.  The change is small
    872   and does not require copyright assignment to the Free Software
    873   Foundation.  In addition to this, I introduced a new semantic colour
    874   mapping in the themes' palette called ~date-range~.  This can be
    875   used with the palette overrides, which are documented at length in
    876   the manual (there are lots of copy-pastable examples as well).
    877 
    878 - Supported all of the new faces of the built-in ~proced~ package.
    879   These are part of Emacs 29 and make the ~proced~ buffers more
    880   colourful, subject to the user option ~proced-enable-color-flag~.
    881   As always, the themes strive to avoid exaggerations, meaning that I
    882   apply colour with restraint: not all faces need to stand out.
    883 
    884 - Included the ~rst-mode~ in the list of explicitly supported
    885   packages, making its heading look like those of Org, Markdown, etc.
    886   Thanks to David Edmondson for the patch:
    887   <https://lists.sr.ht/~protesilaos/modus-themes/patches/40625>.  I
    888   believe David has already assigned copyright to the Free Software
    889   Foundation, though this patch is small anyway.
    890 
    891 - Covered all the new faces of the built-in ~flymake~ package.  These
    892   concern the inline feedback messages (Emacs 30) as well as those
    893   that appear in the echo area (Emacs 29).  The former are subject to
    894   the user option ~flymake-show-diagnostics-at-end-of-line~.
    895 
    896 - Reduced the intensity of the ~which-key~ prefix descriptions.  Those
    897   are the keymaps that displayed by ~which-key~ to hint that typing
    898   the given key will open a new ~which-key~ page with more keys.
    899 
    900 - Configured new ~vundo-saved~ and ~vundo-last-saved~ faces of the
    901   ~vundo~ package.  They are designed to be easy to read, without
    902   going over-the-top.  Thanks to Nicolas Semrau for bringing this
    903   matter to my attention in issue 79 on the GitHub mirror:
    904   <https://github.com/protesilaos/modus-themes/issues/79>.
    905 
    906 - Removed the deprecated ~consult-preview-cursor~ face and made the
    907   requisite adjustments to the ~consult~ faces.  This was done in
    908   commit =267b0c9= of the Consult Git repository.  Discussed here:
    909   <https://github.com/minad/consult/issues/764#issuecomment-1537491625>.
    910 
    911 - Instructed the ~shr-selected-link~ face of the built-in ~shr~
    912   package to use a "mark selection" style instead of the semantically
    913   incorrect "intense red" it had before.  This change is helpful for
    914   those who override the palette of their Modus theme of choice, while
    915   it also allows us to have varied colours depending on the
    916   requirements of each theme (e.g. deuteranopia/tritanopia compared to
    917   the defaults).
    918 
    919 - Did the same as above, mutatis mutandis, for the faces
    920   ~transient-disabled-suffix~, ~web-mode-error-face~,
    921   ~erc-dangerous-host-face~, ~aw-minibuffer-leading-char-face~,
    922   ~binder-sidebar-highlight~, ~binder-sidebar-missing~,
    923   ~image-dired-thumb-flagged~, ~image-dired-thumb-mark~,
    924   ~info-menu-star~, ~rainbow-delimiters-mismatched-face~,
    925   ~evil-ex-substitute-matches~, ~iedit-occurrence~,
    926   ~iedit-read-only-occurrence~, ~pgtk-im-0~, ~dired-narrow-blink~.
    927 
    928 - Enhanced the ~image-dired~ mark faces with a box border, as the use
    929   of a background alone can be obscured by the underlying image
    930   thumbnail, depending on its figures/colours.
    931 
    932 - Removed the backgrounds from the ~powerline-evil~ faces and
    933   simplified their overral presentation in the interest of
    934   maintainability.  The old styles were hard to predict and test.
    935   There could easily be conflicts, such as if the user would override
    936   the colours of the mode line.
    937 
    938 - Ensured that ~diary~ and ~holiday~ colours are distinct and legible,
    939   without being too intense.
    940 
    941 ** Changes to the manual or other documentation
    942 :PROPERTIES:
    943 :CUSTOM_ID: h:d3c12dd0-4231-420b-a212-b6bd571c5c34
    944 :END:
    945 
    946 - Updated the doc string of the primary customisation group defined by
    947   the themes to reflect the support for the case of tritanopia.
    948 
    949 - Included links to the web page of the manual and the one with the
    950   sample pictures in the customisation groups.  Those links appear in
    951   the various Custom UI buffers.
    952 
    953 - Introduced an annotation function for all commands that involve
    954   minibuffer completion.  The annotations display the one-line
    955   description of each theme, making it easier for a user to pick their
    956   preferred choice (e.g. when using the ~modus-themes-select~
    957   command).
    958 
    959 - Defined semantic colour mappings for "marks".  These are used by
    960   ~dired~, ~trashed~, ~proced~, and others.  These is no change to the
    961   default appearance of what users are already familiar with, though
    962   it is now possible to override those styles.
    963 
    964 - Complemented the subset of semantic colour mappings for
    965   errors/warnings with "prominent" variants.  Those employ a
    966   background and foreground combination.  They are used in all sorts
    967   of contexts, such as for fringe errors (~flymake~, ~flycheck~, ...),
    968   ~query-replace~, ~isearch-fail~, and others.
    969 
    970 - Wrote sample code on how to add "padding" to the Emacs frame and the
    971   space between the Emacs windows.  This makes for a presentation that
    972   some users find easier to work with.
    973 
    974 - Corrected the sample code for ~git-gutter~ to use the appropriate
    975   symbols from the theme palette.  Thanks to Christian Tietze for the
    976   patch: <https://lists.sr.ht/~protesilaos/modus-themes/patches/40354>.
    977   The change is small and does not require copyright assignment to the
    978   Free Software Foundation.
    979 
    980 - Removed ~moody~ from the list of packages explicitly supported by
    981   the themes.  We stopped supporting it since version 4 that removed
    982   the relevant user option for the mode line.  The idea is that the
    983   mode line is better handled by the user without interference from
    984   the theme, due to the number of options available (and how brittle
    985   those can be when interacting with unpredictable face definitions).
    986   Thanks to Nicolas De Jaeghere for reminding me to remove ~moody~
    987   from the manual:
    988   <https://lists.sr.ht/~protesilaos/modus-themes/%3Cypi9jzyclqxy.fsf%40gmail.com%3E#%3C87jzybdgg1.fsf@dejaeghe.re%3E>.
    989 
    990 ** Miscellaneous
    991 :PROPERTIES:
    992 :CUSTOM_ID: h:7240990a-2b4d-442c-a15c-84c8d8b26622
    993 :END:
    994 
    995 - Added two new preset palette overrides to make the overall
    996   presentation "warmer" or "cooler".  Those are called
    997   ~modus-themes-preset-overrides-warmer~ and
    998   ~modus-themes-preset-overrides-cooler~, respectively.  The manual
    999   explains how those presets can be used.  I suggest the user does not
   1000   add such overrides if they intend to load any of the deuteranopia or
   1001   tritanopia themes, due to the specific requirements of their design.
   1002 
   1003 - Refined the deuteranopia yellows for warnings, errors, and comments.
   1004   These otherwise slight adjustments make it considerably easier to
   1005   tell apart distinct elements that may be positioned close together.
   1006 
   1007 - Tweaked the deuteranopia semantic colour mappings for emails.  The
   1008   subject line use a more appropriate colour value, while level 3
   1009   quotes stand out a bit more than they did before, without being
   1010   needlessly intense.
   1011 
   1012 - Arranged for the ~modus-themes-load-theme~ function return the value
   1013   of the =THEME= argument it accepts.  The intent is to allow other
   1014   functions that call this one to capture the return value for their
   1015   purposes (such as with a ~let~ binding).  Thank to Oliver Epper for
   1016   the feedback in issue 78 on the GitHub mirror:
   1017   <https://github.com/protesilaos/modus-themes/issues/78>.
   1018 
   1019 * 4.1.0
   1020 :PROPERTIES:
   1021 :CUSTOM_ID: h:d028f117-8a74-4c0c-b838-9f6bf2b43c19
   1022 :END:
   1023 
   1024 ** Recursive semantic colour mapping
   1025 :PROPERTIES:
   1026 :CUSTOM_ID: h:262e2f5f-4db0-4549-a5ba-4e57cd2edc6a
   1027 :END:
   1028 
   1029 Version 4 of the Modus themes changed how all colour-related
   1030 customisations are done.  Instead of multiple user options with
   1031 hard-coded stylistic presets, users have access to a comprehensive
   1032 system of "named colours" and "semantic colour mappings".  The former
   1033 is an association between a name, like =blue-warmer=, and a colour
   1034 value such as =#3548cf=.  While semantic colour mappings are
   1035 associations between syntactic/interface constructs and named colours,
   1036 such as what value level 2 headings have.
   1037 
   1038 When overriding the palette users can now define semantic colour
   1039 mappings whose value is another such mapping.  This recursion
   1040 simplifies how multiple overrides are defined.
   1041 
   1042 The manual offers extensive guidance on the topic of palette
   1043 overrides.  There are many sections that include code samples that are
   1044 ready for use.
   1045 
   1046 The addition of recursive semantic colour mappings solves a problem
   1047 reported by Imran Khan on the mailing list where they were trying to
   1048 do what made sense (recursion) but the old code did not permit as
   1049 much:
   1050 <https://lists.sr.ht/~protesilaos/modus-themes/%3Cb7ca4702162fd575593f8ded28d9a888.contact%40imrankhan.live%3E>.
   1051 
   1052 I was aware of that constraint from before the release of version
   1053 4.0.0 but was hesitant to implement recursion prior to getting some
   1054 feedback on the new palette overriding feature.
   1055 
   1056 Also thanks to Christian Tietze for participating in that discussion
   1057 on the mailing list.
   1058 
   1059 ** Extract an arbitrary colour from a given theme's palette
   1060 :PROPERTIES:
   1061 :CUSTOM_ID: h:6ba1437f-e55f-4c3a-9c03-b0035293b4a2
   1062 :END:
   1063 
   1064 I formalised the function ~modus-themes-get-color-value~ and
   1065 documented it at length.  It accepts a =COLOR= argument, which
   1066 represents an entry in the palette (named colour or semantic colour
   1067 value), as well as optional =OVERRIDES= and =THEME= arguments.  When
   1068 =OVERRIDES= is non-nil, ~modus-themes-get-color-value~ will read from
   1069 the overrides, otherwise it will only consult the default palette
   1070 value.  The =THEME= argument specifies which theme's palette to use.
   1071 In the absence of =THEME=, the current one is used.
   1072 
   1073 I already had the "get colour" functionality internally, but was
   1074 inspired to make it public after checking Sacha Chua's blog post
   1075 "Making highlight-sexp follow modus-themes-toggle":
   1076 <https://sachachua.com/blog/2023/01/making-highlight-sexp-follow-modus-themes-toggle/>.
   1077 Sacha was using a private function from the themes, which would have
   1078 been problematic if I would ever move things around.
   1079 
   1080 Remember to read the documentation of ~modus-themes-list-colors~.
   1081 That command shows a preview of the named colours.  When called with a
   1082 prefix argument (=C-u= by default), it shows a preview of the semantic
   1083 colour mappings.
   1084 
   1085 ** Option to disable other themes while loading Modus
   1086 :PROPERTIES:
   1087 :CUSTOM_ID: h:5af072da-38f6-44d0-9342-e799f0196006
   1088 :END:
   1089 
   1090 In the past, we used to disable all other themes while loading a Modus
   1091 theme.  I revised this for version 4 because I learnt that some users
   1092 use "themes" as bundles of arbitrary configurations.
   1093 
   1094 With the addition of the ~modus-themes-disable-other-themes~ user
   1095 option, which is non-nil by default, I am restoring the old behaviour:
   1096 when loading a Modus theme all other themes are disabled.
   1097 
   1098 This happens when the theme is loaded with the commands
   1099 ~modus-themes-toggle~ and ~modus-themes-select~, or via Lisp with the
   1100 function ~modus-themes-load-theme~.
   1101 
   1102 Users who need to run multiple themes can set this option to a nil
   1103 value.  (Personally, I use minor modes for such stylistic bundles and
   1104 never have to worry about ~(mapc #'disable-theme custom-enabled-themes)~.)
   1105 
   1106 Thanks to Tony Zorman for the feedback on the mailing list, which led
   1107 me to the introduction of this user option:
   1108 <https://lists.sr.ht/~protesilaos/modus-themes/%3C874jtew0gp.fsf%40hyperspace%3E#%3C87bkne84d2.fsf@hyperspace%3E>.
   1109 
   1110 ** Renamed the named colours for bg-{added,changed,removed}-intense
   1111 :PROPERTIES:
   1112 :CUSTOM_ID: h:d43ef5cb-10dd-4c33-9429-2289a5fb2506
   1113 :END:
   1114 
   1115 They are now called ~bg-added-fringe~, ~bg-changed-fringe~,
   1116 ~bg-removed-fringe~.  Please update any palette overrides to reflect
   1117 this renaming.
   1118 
   1119 ** Documented how to override diffs for more optional combinations
   1120 :PROPERTIES:
   1121 :CUSTOM_ID: h:220d4361-7245-4632-998e-c0e2ee3b5f7d
   1122 :END:
   1123 
   1124 The manual includes details (with copy-pastable code) on how to
   1125 achieve foreground-only diffs and/or how to have red+blue diffs
   1126 instead of the default red+green or the deuteranopia yellow+blue.
   1127 
   1128 Thanks to Andrew Tropin for requesting this feature.  We used to
   1129 provide this style in earlier versions of the themes, but now it is
   1130 much more flexible.  Andrew's request was done via a private channel
   1131 and the information is shared with permission.
   1132 
   1133 [ Since we are here, also thanks to Andrew for keeping the Guix
   1134   package of the Modus themes up to date. ]
   1135 
   1136 ** Stylistic changes
   1137 :PROPERTIES:
   1138 :CUSTOM_ID: h:fdcff629-22c1-4203-9104-4f732c59f731
   1139 :END:
   1140 
   1141 - Guaranteed consistency between all of the line-related faces of the
   1142   ~consult~ package.  We use the ~shadow~ face in all interfaces where
   1143   line numbers are contextual information (Occur, Grep,...).  With
   1144   Consult, this was not the case for commands like ~consult-line~.
   1145 
   1146   Thanks to Daniel Mendler (also known as @minad) for bringing this
   1147   matter to my attention:
   1148   <https://lists.sr.ht/~protesilaos/ef-themes/%3Cb03413a6-cb77-615d-145d-db4eb710bfca%40daniel-mendler.de%3E>.
   1149 
   1150 - Refined all diff colours for fringes and reduced the saturation for
   1151   added lines in ~modus-operandi-deuteranopia~, ~modus-vivendi-deuteranopia-theme~.
   1152   Thanks to Andrew Tropin for showing me some usability issues with
   1153   the previous styles.  This was done via a private channel and the
   1154   information is shared with permission.
   1155 
   1156 - Instructed the ~dashboard~ icons to retain their underlying colour.
   1157   The default value of the ~dashboard-items-face~ made all icons use
   1158   the same colour, detracting from their distinctiveness.  Thanks to
   1159   Thanos Apollo for bringing this matter to my attention.  It was done
   1160   via a private channel and the information is shared with permission.
   1161 
   1162 - Amplified the intensity of the =#+begin_src= text when the user
   1163   option opts for ~(setq modus-themes-org-blocks 'gray-background)~.
   1164   The text is now easier to discern.  That user option makes the
   1165   inside of the block have a gray background and the begin/end lines
   1166   to have a more intense gray, giving off a "blocky" impression.
   1167 
   1168 - Made the ~compilation-warning~ face also inherit the
   1169   ~modus-themes-bold~ face.  This means that it responds to the value
   1170   of the user option ~modus-themes-bold-constructs~, the same way the
   1171   other compilation-related mode line faces do.  Thanks to Manuel
   1172   Giraud for informing me about the inconsistency in
   1173   ~compilation-warning~.  This was done via a private channel and the
   1174   information is shared with permission.
   1175 
   1176 - Calibrated the hueness of the "nuanced" backgrounds in the
   1177   ~modus-operandi-tinted~ and ~modus-vivendi-tinted~ themes.  These
   1178   tweaks are necessary to retain thematic consistency.
   1179 
   1180 - Reset ~mu4e-header-highlight-face~ to its intended style.  I made a
   1181   mistake before: I did not want the ~highlight~ face to be used in
   1182   this case as it is too intense.  Sorry!
   1183 
   1184 - Toned down the highlight line of the ~ctrlf~ and ~swiper~ packages.
   1185   I mistakenly used the ~highlight~ before, which is too intense for
   1186   the purposes of an ancillary background colour.
   1187 
   1188 - Applied "nuanced" backgrounds to the tinted Org blocks.  This fixes
   1189   an error of mine where I amplified the background colouration of Org
   1190   blocks.  This concerns the case where the user option
   1191   ~modus-themes-org-blocks~ has a =tinted-background= value.  Thanks
   1192   to Mark Bestley for informing me about this in issue 60 on the
   1193   GitHub mirror:
   1194   <https://github.com/protesilaos/modus-themes/issues/60#issuecomment-1374530488>.
   1195 
   1196 - Removed the hardcoding of the ~italic~ style in three faces, opting
   1197   instead to make them subject to the user option ~modus-themes-italic-constructs~.
   1198   The faces are  ~marginalia-documentation~, ~markup-attribute-face~,
   1199   and ~org-agenda-calendar-sexp~.
   1200 
   1201 - Tweaked the Org agenda deadline and today schedule to use a bold
   1202   weight only when the user option ~modus-themes-bold-constructs~ is
   1203   set to a non-nil value.  Thanks to Marko Kocic for reporting an
   1204   issue that brought this matter to my attention:
   1205 
   1206   - <https://lists.sr.ht/~protesilaos/modus-themes/%3C35588839.256749.1673272214728%40office.mailbox.org%3E>
   1207   - <https://lists.sr.ht/~protesilaos/modus-themes/%3C874jszvk5g.fsf%40protesilaos.com%3E>
   1208   - <https://lists.sr.ht/~protesilaos/modus-themes/%3C87ilhfu101.fsf%40protesilaos.com%3E>
   1209 
   1210 - Enforced the main foreground colour in the faces =highlight= and
   1211   =secondary-selection=.  This should have always been there to avoid
   1212   awkward colour combinations.  I realised it was missing after
   1213   corresponding with Edgar Vincent on a relevant topic:
   1214   <https://lists.sr.ht/~protesilaos/modus-themes/%3C878ri95h1q.fsf%40posteo.net%3E#%3C87ilhc7usc.fsf@posteo.net%3E>.
   1215 
   1216 - Made the ~eglot-mode-line~ face conditionally bold, by subjecting it
   1217   to the user option ~modus-themes-bold-constructs~.
   1218 
   1219 - Ensure that the background of the ~company~ package's popup is the
   1220   same as that of the ~corfu~ package.  This is a subtle neutral
   1221   value.
   1222 
   1223 - Fixed the hue of the ~org-habit~ "ready" faces.  It should be green
   1224   and I made a mistake here.  The ~modus-operandi-deuteranopia~ and
   1225   ~modus-vivendi-deuteranopia~ themes do change the underlying hues
   1226   though, as green is not suitable for them.
   1227 
   1228 - Simplified the ~keycast~ faces so that (i) they do not use a =:box=
   1229   attribute that can look awkward in some cases and (ii) the name of
   1230   the given command is not colourised to avoid exaggerations with the
   1231   use of colour.
   1232 
   1233 - Made the ~powerline-active1~ face inherit from ~mode-line~ instead
   1234   of ~mode-line-active~.  The latter only exists in newer versions of
   1235   Emacs and we do not want to make the themes break in older versions.
   1236   Thanks to TitusMu for identifying this and reporting it in issue 64 on
   1237   the GitHub mirror: <https://github.com/protesilaos/modus-themes/issues/64>.
   1238 
   1239 - Decoupled all ~ediff~ faces from their ~diff-mode~ counterparts.
   1240   Ediff does not depend on ~diff-mode~, so we want to make each set of
   1241   faces stand on its own.  Thanks to Bernd Rellermeyer for pointing
   1242   out this implicit dependency in issue 68 on the GitHub mirror:
   1243   <https://github.com/protesilaos/modus-themes/issues/68>.
   1244 
   1245 ** Miscellaneous
   1246 :PROPERTIES:
   1247 :CUSTOM_ID: h:14d1f1b0-00e0-4275-a06c-9e34daf6411a
   1248 :END:
   1249 
   1250 - Improved the clarity and robustness of the code that does the work
   1251   of ~modus-themes-list-colors~.
   1252 
   1253 - Refined the colour value of the =blue-warmer= named colour for all
   1254   the light themes.  It is a tiny bit darker than before.
   1255 
   1256 - Introduced a ~t~ fallback value for the user option
   1257   ~modus-themes-completions~.  It makes it easier to apply the same
   1258   styles for the selection line and matching characters.
   1259 
   1260 - Documented how to not extend the active region background.
   1261 
   1262 - Explained how to make tabs more or less colourful by using palette
   1263   overrides.
   1264 
   1265 - Removed obsolete and redundant statements from the documentation the
   1266   user option ~modus-themes-completions~.  There was (i) an outdated
   1267   reference to the =background= value, which is no longer supported,
   1268   and (ii) a statement about the standard Completions' buffer that was
   1269   not useful.  Thanks to Rudolf Adamkovič for informing me about this:
   1270   <https://lists.sr.ht/~protesilaos/modus-themes/%3Cm2tu1211qz.fsf%40me.com%3E>.
   1271 
   1272 - Rephrase the statement ="*Completions* buffer"= in the documentation
   1273   in the interest of clarity.  Thanks to Rudolf Adamkovič for the
   1274   suggestion:
   1275   <https://lists.sr.ht/~protesilaos/modus-themes/%3Cm2tu1211qz.fsf%40me.com%3E#%3Cm2eds43htz.fsf@me.com%3E>.
   1276 
   1277 - Updated the sample configuration of the themes with ~use-package~ in
   1278   the interest of simplicity.  Thanks to Sergey Nichiporchik for the
   1279   contribution.  Sergey's contribution is within the ~15 line limit
   1280   and thus does not require copyright assignment to the Free Software
   1281   Foundation.
   1282 
   1283   This was done in merge request 59 on the GitLab mirror:
   1284   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/59>.
   1285 
   1286   The prepatory discussion took place in issue 310 on the same mirror:
   1287   <https://gitlab.com/protesilaos/modus-themes/-/issues/310>.
   1288 
   1289   Weeks later I further simplified the relevant samples for the sake
   1290   of uniformity with the generic package setup.  Thanks to Zoltan
   1291   Kiraly for informing me about the fact that the ~:bind~ keyword
   1292   delays the load of the package until the given command is invoked:
   1293   <https://github.com/protesilaos/modus-themes/pull/67>.
   1294 
   1295   Streamlining the configuration makes it easier for me to propose one
   1296   set of basic configurations without the need to know what a
   1297   configuration macro is doing behind the scenes.
   1298 
   1299 - Fixed an example colour in the documentation.  Thanks to Russell Sim
   1300   for spotting the error of me using =bg-blue= instead of
   1301   =bg-blue-intense=:
   1302   <https://lists.sr.ht/~protesilaos/modus-themes/%3Cyger0wa9gsn.fsf%40simopolis.xyz%3E>.
   1303 
   1304 - Defined the missing =modus-themes-nuanced-{red,green,yellow,blue,magenta,cyan}= faces.
   1305   Those are used internally to avoid repetition, though users can also
   1306   rely on them for their personal configurations (same for all other
   1307   Modus faces).
   1308 
   1309 - Improved the documentation on how to have a borderless mode line
   1310   style by using the palette overrides.
   1311 
   1312 - Updated the manual's entry on the ~pdf-tools~ backdrop to make it
   1313   use the new conventions that have been in place since version 4 of
   1314   the themes.  Thanks to Utkarsh Singh for the patches:
   1315   <https://lists.sr.ht/~protesilaos/modus-themes/patches/37902>.
   1316 
   1317 - Add an explicit notice that the version of the themes that is built
   1318   into Emacs must use the ~require-theme~ function instead of the
   1319   familiar ~require~.  Built-in themes are not considered "code", due
   1320   to old conventions, and are not part of the ~load-path~ that
   1321   ~require~ reads from.  This is not up to the theme to decide.
   1322   Interested users must simply know about this important technicality.
   1323   Thanks to Koen van Greevenbroek for reporting the problem that
   1324   helped me identify this issue:
   1325   <https://lists.sr.ht/~protesilaos/modus-themes/%3C31038fd76868fa3d07c9a429dfed8fd6ac374bb8.camel%40posteo.net%3E>.
   1326 
   1327 - Clarified the wording of the ~modus-themes-with-colors~ setup for
   1328   custom faces.  It explains when this macro should be called.  Thanks
   1329   to user bangedorrunt for the feedback in issue 59 on the GitHub
   1330   mirror: <https://github.com/protesilaos/modus-themes/issues/59>.
   1331 
   1332 * 4.0.0
   1333 :PROPERTIES:
   1334 :CUSTOM_ID: h:cd353ccc-daf5-4ee5-885a-b3f21be92b66
   1335 :END:
   1336 
   1337 This is the biggest release in the history of the project.
   1338 Previously, a new version would consist of about 100 commits to the
   1339 Git repository.  This one includes 400+ of them in the span of one
   1340 month.  The out-of-the-box looks of the themes are largely the same as
   1341 before, though I have made a lot of internal changes that affect how
   1342 the themes are instantiated and customised.
   1343 
   1344 As part of this development cycle, I produced publications informing
   1345 users of the upcoming changes, while demonstrating the new feature of
   1346 overriding the colour palette and its semantic mappings.
   1347 
   1348 - 2022-12-03 Emacs: breaking changes coming to 'modus-themes' version 4 :: <https://protesilaos.com/codelog/2022-12-03-modus-themes-v4-development/>
   1349 - 2022-12-07 Emacs: change colour values and mappings in Modus themes version 4 :: <https://protesilaos.com/codelog/2022-12-07-modus-themes-4-colour-values-mappings/>
   1350 - 2022-12-17 Emacs: modus-themes version 4 demo [video] :: <https://protesilaos.com/codelog/2022-12-17-modus-themes-v4-demo/>
   1351 - 2022-12-28 Emacs: note for MELPA or Git users of the Modus themes ahead of version 4 :: <https://protesilaos.com/codelog/2022-12-28-note-modus-themes-4-melpa/>
   1352 
   1353 I did this in the hope of preparing users for the refactored Modus
   1354 themes, though I understand that not everyone has had the chance to
   1355 consult those entries.  The general idea is that *old custom code will
   1356 not work* and most user options are either removed or confined to a
   1357 more precise scope.
   1358 
   1359 Custom code will not work because the named colours of the palettes
   1360 have changed.  Many user options are made redundant by the new
   1361 overrides' system.  Specifically, if an option pertains to
   1362 colouration, it is now done via overrides instead of the old method of
   1363 me hardcoding styles (e.g. for stuff like "rainbow" headings).
   1364 
   1365 More details below.  This is a long entry.  Please take your time to
   1366 study it before upgrading to the new version of the themes.
   1367 
   1368 ** There now are six Modus themes for more legibility needs
   1369 :PROPERTIES:
   1370 :CUSTOM_ID: h:f305dd08-a713-4369-a16d-af9403ab6c22
   1371 :END:
   1372 
   1373 Quoting from the manual's "Overview" section:
   1374 
   1375 #+begin_quote
   1376 The Modus themes consist of six themes, divided into three subgroups.
   1377 
   1378 - Main themes :: ~modus-operandi~ is the project's main light theme,
   1379   while ~modus-vivendi~ is its dark counterpart.  These two themes are
   1380   part of the project since its inception.  They are designed to cover
   1381   a broad range of needs and are, in the opinion of the author, the
   1382   reference for what a highly legible "default" theme should look
   1383   like.
   1384 
   1385 - Tinted themes :: ~modus-operandi-tinted~ and ~modus-vivendi-tinted~
   1386   are variants of the two main themes.  They slightly tone down the
   1387   intensity of the background and provide a bit more color variety.
   1388   ~modus-operandi-tinted~ has a set of base tones that are shades of
   1389   light ochre (earthly colors), while ~modus-vivendi-tinted~ gives a
   1390   night sky impression.
   1391 
   1392 - Deuteranopia themes :: ~modus-operandi-deuteranopia~ and its
   1393   companion ~modus-vivendi-deuteranopia~ are optimized for users with
   1394   red-green color deficiency.  This means that they do not use red and
   1395   green hues for color-coding purposes, such as for diff removed and
   1396   added lines.  Instead, they implement colors that are discernible by
   1397   users with deueteranopia or deuteranomaly (mostly yellow and blue
   1398   hues).
   1399 #+end_quote
   1400 
   1401 All six themes will be included in Emacs 30 (~modus-operandi~ and
   1402 ~modus-vivendi~ are in Emacs since August 2020).  I asked about it on
   1403 the emacs-devel mailing list and received the approval of Eli
   1404 Zaretskii, one of the Emacs maintainers.  The full thread:
   1405 <https://lists.gnu.org/archive/html/emacs-devel/2022-12/msg00834.html>.
   1406 
   1407 *** New command to select one of the Modus themes
   1408 :PROPERTIES:
   1409 :CUSTOM_ID: h:e4f011c4-46d3-4e4f-ad3e-9a609ef8bd5e
   1410 :END:
   1411 
   1412 The ~modus-themes-select~ command uses minibuffer completion to load
   1413 one of the six themes in the collection.  Loading a Modus theme
   1414 disables all other Modus themes.
   1415 
   1416 NOTE that Emacs can load multiple themes, which typically produces
   1417 undesirable results and undoes the work of the designer.  Use the
   1418 ~disable-theme~ command if you are trying other themes beside the
   1419 Modus collection.
   1420 
   1421 *** New user option to specify themes to toggle
   1422 :PROPERTIES:
   1423 :CUSTOM_ID: h:c4efdaca-505b-4724-81b4-4a5340cbcaba
   1424 :END:
   1425 
   1426 The ~modus-themes-to-toggle~ is a variable that affects the command
   1427 ~modus-themes-toggle~.  By default, the toggling happens between the
   1428 ~modus-operandi~ and ~modus-vivendi~ themes, as was always the case.
   1429 Though with the addition of new themes, it is possible to change this
   1430 to something like:
   1431 
   1432 #+begin_src emacs-lisp
   1433 (setq modus-themes-to-toggle '(modus-operandi-deuteranopia modus-vivendi-deuteranopia))
   1434 #+end_src
   1435 
   1436 If ~modus-themes-to-toggle~ does not specify two Modus themes, the
   1437 ~modus-themes-toggle~ command will prompt with completion for a theme
   1438 among the collection (this is practically the same as the aforementioned
   1439 ~modus-themes-select~ command).
   1440 
   1441 ** Colour palettes and their overrides are much more powerful
   1442 :PROPERTIES:
   1443 :CUSTOM_ID: h:c20673d3-d992-4827-bd24-80329962dc8e
   1444 :END:
   1445 
   1446 In previous versions, there were options to override colour values.
   1447 Those were difficult to use as they (i) required expertise on picking
   1448 the correct values and (ii) it was not clear which colour was used
   1449 where.
   1450 
   1451 The new version broadens the colour palette to include *named colours*
   1452 and *semantic colour mappings*.  Named colours are associations
   1453 between a symbol and a colour value, such as =(blue-warmer "#354fcf")=.
   1454 While semantic colour mappings apply those named colours to specific
   1455 constructs such as =(heading-2 yellow-faint)= for all level 2 headings.
   1456 
   1457 What this means is that overrides can now be targeted at semantic
   1458 mappings as well to refashion practically every aspect of the themes.
   1459 The manual provides lots of examples that can be copied and used
   1460 directly.  For example, it is possible to change the sequence of
   1461 colours in headings so that, say, there is a colour-coding that
   1462 denotes depth.  Links to relevant entries are included in this
   1463 document.
   1464 
   1465 The ~modus-themes-common-palette-overrides~ user option contains
   1466 entries that are shared between all the themes.  While there also
   1467 exist theme-specific options such as ~modus-operandi-palette-overrides~.
   1468 
   1469 For technical insight into the palette overrides, consult the manual:
   1470 <https://protesilaos.com/emacs/modus-themes#h:34c7a691-19bb-4037-8d2f-67a07edab150>.
   1471 
   1472 For practical examples check "Stylistic variants using palette
   1473 overrides" and its subsections:
   1474 <https://protesilaos.com/emacs/modus-themes#h:df1199d8-eaba-47db-805d-6b568a577bf3>.
   1475 
   1476 ** Preset overrides for faint or intense colouration
   1477 :PROPERTIES:
   1478 :CUSTOM_ID: h:5ba76bb2-9ca8-4202-aca3-31aaca239d94
   1479 :END:
   1480 
   1481 The palette overrides are comprehensive and can be tweaked in a
   1482 detailed way.  Still, users may prefer to use the presets for a
   1483 "faint" or "intense" style.  These presets showcase the new feature by
   1484 styling elements that were previously not subject to configuration.
   1485 They also provide the convenience of a common set of stylistic
   1486 patterns.
   1487 
   1488 Read the "Palette override presets" section in the manual for how to
   1489 use and/or extend those:
   1490 <https://protesilaos.com/emacs/modus-themes#h:b0bc811c-227e-42ec-bf67-15e1f41eb7bc>.
   1491 
   1492 ** Named colours are more meaningful
   1493 :PROPERTIES:
   1494 :CUSTOM_ID: h:94e59644-8ef8-4a46-9666-a241ba04b21a
   1495 :END:
   1496 
   1497 In the past, the variants of the main accent colours were named like:
   1498 
   1499 - =red=
   1500 - =red-alt=
   1501 - =red-alt-other=
   1502 
   1503 The improved naming scheme changes those to:
   1504 
   1505 - =red=
   1506 - =red-warmer=
   1507 - =red-cooler=
   1508 
   1509 Semantically, the "warmer" variants have more yellow or red while the
   1510 "cooler" ones have greater contribution of cyan or blue.  As such, the
   1511 user can expect =green-warmer= to be an olive green and =green-cooler=
   1512 to be that of the pine (though olive trees can have blue-green
   1513 colouration and pine trees can be "warmer", but I digress).
   1514 
   1515 Named colours can be previewed with the commands
   1516 ~modus-themes-list-colors~ (alias ~modus-themes-preview-colors~) and
   1517 ~modus-themes-list-colors-current~ (alias
   1518 ~modus-themes-preview-colors-current~).
   1519 
   1520 Those commands accept a =C-u= prefix argument, in which case they show
   1521 the semantic colour mappings.
   1522 
   1523 ** Rationalisation of the colour palette
   1524 :PROPERTIES:
   1525 :CUSTOM_ID: h:cb378214-54a1-4b5b-a801-aa206b94ae38
   1526 :END:
   1527 
   1528 In previous versions, there were a lot of named colours that were
   1529 added ad-hoc, such as =fg-special-cold= and =bg-special-calm-faint=.
   1530 There was no clear design pattern behind them, nor was it obvious
   1531 where those colours should be used.  Furthermore, there were colours
   1532 that were reserved for the various permutations of user options.
   1533 
   1534 This was too complex for users who wanted/needed to refashion aspects
   1535 of the themes.  It was also difficult to maintain.
   1536 
   1537 The new palettes are more streamlined and their application is more
   1538 predictable.  This only matters to users who tweak the themes: it
   1539 makes their life easier, although it does render inapplicable any
   1540 previous custom code.
   1541 
   1542 ** Deprecation of user options
   1543 :PROPERTIES:
   1544 :CUSTOM_ID: h:fcaa0f80-7e78-44b1-ab04-90acb0046139
   1545 :END:
   1546 
   1547 The following subsections explain the topics in further detail.  The
   1548 general idea for this change is that palette overrides provide a more
   1549 powerful, more flexible, and less complex alternative.  The code base
   1550 is considerably smaller.
   1551 
   1552 With overrides, I can now provide support to cases such as:
   1553 
   1554 - Users who need different sets of greys as their monitor has
   1555   inadequate colour reproduction (this is much more common than you
   1556   think).
   1557 - Users who want to make individual elements stand out, such as to
   1558   turn the delimiters of Org source blocks (the =#+begin_src= and
   1559   =#+end_src= lines) into, say, a shade of red.
   1560 - Users who want to tone down the =TODO= and =DONE= keywords while
   1561   making headings more colourful.  Or the inverse, or any combination
   1562   in-between the extremes.
   1563 - Users who want Org property drawers to be more colourful but inline
   1564   code to be faint.
   1565 
   1566 You get the idea...  All these and many more are now possible.
   1567 Whereas in the past I would either have to tell people that it is not
   1568 possible or hardcode a stylistic alternative via user options, thus
   1569 further complicating the code base.
   1570 
   1571 Catering to all those use-cases is important due to the maximalist
   1572 scope of the Modus themes: I cannot tell people to use another theme,
   1573 because here is where they come for their legibility needs.  This is
   1574 consistent with my experience that accessibility is not a
   1575 one-size-fits-all and that the most accessible design is that which is
   1576 flexible, ceteris paribus.
   1577 
   1578 *** ~modus-themes-intense-mouseovers~
   1579 :PROPERTIES:
   1580 :CUSTOM_ID: h:7f4a658a-613b-4ab9-bc05-d9aa6179830b
   1581 :END:
   1582 
   1583 This user option would amplify the background colour of mouse hover
   1584 effects (technically, the ~highlight~ and ~mode-line-highlight~
   1585 faces).  It always used a blue colour.
   1586 
   1587 The same effect can now be achieved via overrides, except it is now
   1588 possible to use any background colour or level of intensity that is
   1589 provided by the themes' palette.  The manual provides concrete
   1590 examples: <https://protesilaos.com/emacs/modus-themes#h:b5cab69d-d7cb-451c-8ff9-1f545ceb6caf>.
   1591 
   1592 *** ~modus-themes-org-agenda~
   1593 :PROPERTIES:
   1594 :CUSTOM_ID: h:778abb81-4bcb-4a5c-85eb-eec9f417a443
   1595 :END:
   1596 
   1597 This was a complex user option that was hard to test, document, and
   1598 maintain.  Most aspects of the Org agenda can be affected via
   1599 overrides, as demonstrated in the manual:
   1600 <https://protesilaos.com/emacs/modus-themes#h:a5af0452-a50f-481d-bf60-d8143f98105f>.
   1601 
   1602 *** ~modus-themes-fringes~
   1603 :PROPERTIES:
   1604 :CUSTOM_ID: h:b1ee38d7-45a0-474b-8c97-774f61462cc6
   1605 :END:
   1606 
   1607 This user option provided two shades of grey and the option for an
   1608 invisible background for the Emacs fringe.  The same and better can be
   1609 done via overrides, as shown in the manual:
   1610 <https://protesilaos.com/emacs/modus-themes#h:c312dcac-36b6-4a1f-b1f5-ab1c9abe27b0>.
   1611 
   1612 *** ~modus-themes-lang-checkers~
   1613 :PROPERTIES:
   1614 :CUSTOM_ID: h:ad06917b-a078-48c8-97e8-1182e085a15c
   1615 :END:
   1616 
   1617 This was another complex user option that offered several stylistic
   1618 variants of dubious value.  The main problem it had is that linter
   1619 highlights are often applied automatically, so any super intense style
   1620 becomes unusable.  Same when a file has lots of warnings/errors.
   1621 
   1622 The semantic colour mappings I provide for this case are limited to
   1623 underlines, which I think is the most usable/legible design.  The
   1624 manual provides concrete examples on how to tweak those:
   1625 <https://protesilaos.com/emacs/modus-themes#h:03dbd5af-6bae-475e-85a2-cec189f69598>.
   1626 
   1627 *** ~modus-themes-mode-line~
   1628 :PROPERTIES:
   1629 :CUSTOM_ID: h:1b82b764-97f5-406a-8440-bae415c7d294
   1630 :END:
   1631 
   1632 Yet another very complex user option that I removed in the interest of
   1633 maintainability.  All its stylistic permutations (and more) for
   1634 colours are possible via overrides:
   1635 
   1636 - Make the mode line borderless :: <https://protesilaos.com/emacs/modus-themes#h:80ddba52-e188-411f-8cc0-480ebd75befe>
   1637 - Make the active mode line colorful :: <https://protesilaos.com/emacs/modus-themes#h:e8d781be-eefc-4a81-ac4e-5ed156190df7>
   1638 
   1639 It is also possible to add padding to the mode line, though I explain
   1640 why this was always a dirty hack:
   1641 <https://protesilaos.com/emacs/modus-themes#h:5a0c58cc-f97f-429c-be08-927b9fbb0a9c>.
   1642 
   1643 *** ~modus-themes-diffs~
   1644 :PROPERTIES:
   1645 :CUSTOM_ID: h:dd2879a4-37c1-4ded-bc7e-24a217248961
   1646 :END:
   1647 
   1648 I have redesigned all diff-related colours to improve their usability.
   1649 They are less intense than before, but still stand out clearly.  I am
   1650 purposefully not documenting how to use overrides here as I want users
   1651 to give this redesign a try.  We can always document and refine things
   1652 at a later point.
   1653 
   1654 *** ~modus-themes-subtle-line-numbers~
   1655 :PROPERTIES:
   1656 :CUSTOM_ID: h:bcce1b94-a223-4324-b0a6-940e389819a8
   1657 :END:
   1658 
   1659 This was a simple, but ultimately very limited option.  We can do much
   1660 better with overrides because we can tweak every aspect of this
   1661 interface without making the code more complex.  The manual shows how
   1662 to do it in style:
   1663 <https://protesilaos.com/emacs/modus-themes#h:b6466f51-cb58-4007-9ebe-53a27af655c7>.
   1664 
   1665 *** ~modus-themes-markup~
   1666 :PROPERTIES:
   1667 :CUSTOM_ID: h:5eedfd24-9480-4b76-8b64-e625d3220a8d
   1668 :END:
   1669 
   1670 This was a poorly named user option that only affected inline code
   1671 elements in prose.  The new semantic colour mappings provide more
   1672 points of entry and thus make it easier to tweak things to one's
   1673 liking (including tables, property drawers, source block delimiters
   1674 (the =#+begin_src= and =#+end_src= lines)), and more.  The manual
   1675 shows how:
   1676 <https://protesilaos.com/emacs/modus-themes#h:bb5b396f-5532-4d52-ab13-149ca24854f1>.
   1677 
   1678 *** ~modus-themes-paren-match~
   1679 :PROPERTIES:
   1680 :CUSTOM_ID: h:8dbe54c3-5bfc-424c-8952-f68015f6c6c4
   1681 :END:
   1682 
   1683 The colouration of matching parentheses of the ~show-paren-mode~ can
   1684 still be affected via overrides:
   1685 <https://protesilaos.com/emacs/modus-themes#h:259cf8f5-48ec-4b13-8a69-5d6387094468>.
   1686 
   1687 *** ~modus-themes-syntax~
   1688 :PROPERTIES:
   1689 :CUSTOM_ID: h:22910131-87bf-4c03-bbf4-aac3010b570a
   1690 :END:
   1691 
   1692 This was a user option that controlled the colouration of programming
   1693 modes.  We can reproduce it with overrides, except we now also have
   1694 the freedom to adapt things further:
   1695 
   1696 - Make comments yellow and strings green :: <https://protesilaos.com/emacs/modus-themes#h:26f53daa-0065-48dc-88ab-6a718d16cd95>
   1697 - Make code syntax use the old alt-syntax style :: <https://protesilaos.com/emacs/modus-themes#h:c8767172-bf11-4c96-81dc-e736c464fc9c>
   1698 - Make use of alternative styles for code syntax :: <https://protesilaos.com/emacs/modus-themes#h:943063da-7b27-4ba4-9afe-f8fe77652fd1>
   1699 
   1700 *** ~modus-themes-links~
   1701 :PROPERTIES:
   1702 :CUSTOM_ID: h:68d41ee9-d277-45f9-a6cd-543dac9282c8
   1703 :END:
   1704 
   1705 The colouration of links can now be affected via palette overrides, as
   1706 documented in the manual:
   1707 <https://protesilaos.com/emacs/modus-themes#h:6c1d1dea-5cbf-4d92-b7bb-570a7a23ffe9>.
   1708 
   1709 *** ~modus-themes-region~
   1710 :PROPERTIES:
   1711 :CUSTOM_ID: h:b97b78df-9ed9-4173-8de2-303851231e06
   1712 :END:
   1713 
   1714 Overrides can be used to affect the region's colouration and/or to
   1715 prevent the active region highlight from changing the underlying text
   1716 colour.  As always, the manual covers the details:
   1717 <https://protesilaos.com/emacs/modus-themes#h:c8605d37-66e1-42aa-986e-d7514c3af6fe>.
   1718 
   1719 *** ~modus-themes-deuteranopia~
   1720 :PROPERTIES:
   1721 :CUSTOM_ID: h:e5fee2a1-2ace-4b4b-9aea-554d2b4a7c2d
   1722 :END:
   1723 
   1724 Instead of this rather limited option, users are advised to use the
   1725 new bespoke themes: ~modus-operandi-deuteranopia~ and
   1726 ~modus-vivendi-deuteranopia~.  They are designed to cater to the needs
   1727 of people with red-green colour deficiency.
   1728 
   1729 *** ~modus-themes-mail-citations~
   1730 :PROPERTIES:
   1731 :CUSTOM_ID: h:bb8a81c5-d0c1-4150-bf7a-254d1684d95e
   1732 :END:
   1733 
   1734 All parts of an email composition buffer (per the standard
   1735 =message.el= library) are configurable via palette overrides.  Not
   1736 just citation lines, but also message headers.  The manual shows
   1737 several stylistic alternatives:
   1738 <https://protesilaos.com/emacs/modus-themes#h:7da7a4ad-5d3a-4f11-9796-5a1abed0f0c4>.
   1739 
   1740 Note that apart from this change, I also redesigned several faces that
   1741 affect emails.  This was done in the interest of consistency and to
   1742 avoid some exaggerations.
   1743 
   1744 *** ~modus-themes-tabs-accented~
   1745 :PROPERTIES:
   1746 :CUSTOM_ID: h:1574b5bc-d615-4053-9bbf-79396745519b
   1747 :END:
   1748 
   1749 I do not provide documentation on how to reproduce this style because
   1750 I think it was not widely used.  It is possible to do it with
   1751 overrides.  If anyone needs it, they are invited to contact me about
   1752 it.
   1753 
   1754 *** ~modus-themes-box-buttons~
   1755 :PROPERTIES:
   1756 :CUSTOM_ID: h:19c81a75-a65e-49cb-83e5-c44167821865
   1757 :END:
   1758 
   1759 All "graphical" buttons use a proportionately spaced font
   1760 (~variable-pitch~) by default as it helps with legibility.  The
   1761 colours of those buttons can be changed by overriding the relevant
   1762 entries:
   1763 <https://protesilaos.com/emacs/modus-themes#h:4f6b6ca3-f5bb-4830-8312-baa232305360>.
   1764 
   1765 [ Use my ~fontaine~ package to affect fonts via faces and to apply
   1766   presets for various contexts. ]
   1767 
   1768 ** Changes to remaining user options
   1769 :PROPERTIES:
   1770 :CUSTOM_ID: h:c93db0f4-1032-411a-881e-0c5fd23480cf
   1771 :END:
   1772 
   1773 *** The ~modus-themes-headings~ also affects the Org agenda
   1774 :PROPERTIES:
   1775 :CUSTOM_ID: h:c2f088b6-dc84-4285-9ece-c877be6b274f
   1776 :END:
   1777 
   1778 This user option applies to heading level 0 through 8 and also to the
   1779 agenda date and structure constructs.  Here is a complete example:
   1780 
   1781 #+begin_src emacs-lisp
   1782 (setq modus-themes-headings ; read the manual's entry of the doc string
   1783       '((0 . (variable-pitch light 1.9))
   1784         (1 . (variable-pitch light 1.8))
   1785         (2 . (variable-pitch regular 1.7))
   1786         (3 . (variable-pitch regular 1.6))
   1787         (4 . (variable-pitch regular 1.5))
   1788         (5 . (variable-pitch 1.4)) ; absence of weight means `bold'
   1789         (6 . (variable-pitch 1.3))
   1790         (7 . (variable-pitch 1.2))
   1791         (agenda-date . (semilight 1.5))
   1792         (agenda-structure . (variable-pitch light 1.9))
   1793         (t . (variable-pitch 1.1))))
   1794 #+end_src
   1795 
   1796 *** The ~modus-themes-headings~ no longer affects colours
   1797 :PROPERTIES:
   1798 :CUSTOM_ID: h:bb0bac60-ad22-4699-9579-881431972294
   1799 :END:
   1800 
   1801 All colour-related changes can be done via palette overrides.  This
   1802 gives the user maximum flexibility on the choice of applied colours
   1803 (e.g. to have alternating contrasting foregrounds or shades of the
   1804 same hue).  The manual shows several examples:
   1805 <https://protesilaos.com/emacs/modus-themes#h:11297984-85ea-4678-abe9-a73aeab4676a>.
   1806 
   1807 *** The ~modus-themes-completions~ is simpler
   1808 :PROPERTIES:
   1809 :CUSTOM_ID: h:0b29c525-7def-4149-a26b-70ca5e021a27
   1810 :END:
   1811 
   1812 It no longer covers =popup= entries as distinct from =selection=.
   1813 This is because I revised all the applicable colours and faces to
   1814 consolidate styles.
   1815 
   1816 The =matches= and =selection= keys now read the same list of values.
   1817 
   1818 All changes to colours are done through palette overrides, as
   1819 demonstrated in the manual (again, far more flexible):
   1820 <https://protesilaos.com/emacs/modus-themes#h:d959f789-0517-4636-8780-18123f936f91>.
   1821 
   1822 *** The ~modus-themes-prompts~ is simpler
   1823 :PROPERTIES:
   1824 :CUSTOM_ID: h:7e5b9fea-b696-4e8a-bebe-a7fbb0eb460a
   1825 :END:
   1826 
   1827 This user option now only affects the typographic features of prompts.
   1828 It can read any font weight, as explained in its documentation.
   1829 Colours are influenced by semantic colour mappings in the palette and
   1830 can be overridden accordingly.  The manual shows several styles:
   1831 <https://protesilaos.com/emacs/modus-themes#h:bd75b43a-0bf1-45e7-b8b4-20944ca8b7f8>.
   1832 
   1833 *** Auto-reload theme when configuring via Custom
   1834 :PROPERTIES:
   1835 :CUSTOM_ID: h:b26a2a1f-ee1e-4001-a3d0-4d4d7cb4fd5f
   1836 :END:
   1837 
   1838 The user option ~modus-themes-custom-auto-reload~ supersedes the old
   1839 ~modus-themes-inhibit-reload~.  It is now set to a non-~nil~ value by
   1840 default.
   1841 
   1842 We do this as a convenience for users who tweak theme settings via the
   1843 Custom UI and who do not know that all modifications to user options
   1844 require a theme re-load for changes to take effect.  Read more in the
   1845 manual:
   1846 <https://protesilaos.com/emacs/modus-themes#h:9001527a-4e2c-43e0-98e8-3ef72d770639>.
   1847 
   1848 ** Deprecation of public functions
   1849 :PROPERTIES:
   1850 :CUSTOM_ID: h:8167bf46-7a43-4b46-b2ed-a66e5d73bb96
   1851 :END:
   1852 
   1853 The ~modus-themes-color~ and ~modus-themes-color-alts~ are deprecated.
   1854 Users are invited to concentrate on the ~modus-themes-with-colors~
   1855 macro.  The manual provides several examples on that front.
   1856 
   1857 The ~modus-themes-load-themes~ is no longer necessary due to the
   1858 refactoring of the code base.
   1859 
   1860 The ~modus-themes-load-operandi~ and ~modus-themes-load-vivendi~ are
   1861 superseded by the general ~modus-themes-load-theme~.  It accepts the
   1862 symbol of a Modus theme as its argument.
   1863 
   1864 The command ~modus-themes-report-bug~ is no more.  Just send an email
   1865 to the mailing list or to me privately.  Find the information with
   1866 =M-x describe-package= and then specify =modus-themes=.
   1867 Alternatively, check my website: <https://protesilaos.com/contact>.
   1868 
   1869 ** Removed support for some packages
   1870 :PROPERTIES:
   1871 :CUSTOM_ID: h:34ffc5ed-574d-44f1-8a27-c2e6bb8c69e0
   1872 :END:
   1873 
   1874 These are the most notable packages that are no longer supported:
   1875 
   1876 - ~dired+~
   1877 - ~lsp-mode~
   1878 - ~helm~
   1879 - ~treemacs~
   1880 
   1881 The reason is that they are very hard to use for me as an outsider.
   1882 They provide lots of features, which means that I cannot easily
   1883 identify faces in their context unless I become an expert in the
   1884 relevant functionality.
   1885 
   1886 Other removed packages:
   1887 
   1888 - ~artbollocks-mode~.  Use ~writegood-mode~.
   1889 - ~apropos~.  Its default faces are fine.
   1890 - ~awesome-tray~.
   1891 - ~bbdb~ and ~ebdb~.  They are hard to set up, but their faces are
   1892   usable.
   1893 - ~calfw~.  Hard to set up and also seems to no longer be maintained.
   1894 - ~easy-jekyll~
   1895 - ~dir-treeview~
   1896 - ~eros~
   1897 - ~eshell-git-prompt~
   1898 - ~eshell-prompt-extras~
   1899 - ~eshell-syntax-highlighting~
   1900 - ~evil-goggles~
   1901 - ~evil-snipe~
   1902 - ~evil-visual-mark-mode~
   1903 - ~fountain-mode~.  I need someone who uses it to help me test it.
   1904 - ~macrostep~
   1905 - ~mentor~
   1906 - ~mini-modeline~
   1907 - ~mmm-mode~.  I need someone who uses it to help me test it.
   1908 - ~org-table-sticky-header~.
   1909 - ~phi-grep~
   1910 - ~pomidor~
   1911 - ~rainbow-blocks~.  Use Adam Porter's (aka alphapapa) =prism.el=.
   1912 - ~semantic~
   1913 - ~smartparens~
   1914 - ~spaceline~
   1915 - ~sx~
   1916 - ~telephone-line~
   1917 - ~tomatinho~
   1918 - ~winum~
   1919 - ~xterm-color~.
   1920 
   1921 ** Thanks for their feedback on the development of version 4
   1922 :PROPERTIES:
   1923 :CUSTOM_ID: h:bdaa3eaf-67e8-4de8-b8d5-7b11fa28dbcd
   1924 :END:
   1925 
   1926 In alphabetical order:
   1927 
   1928 - Aleksei Pirogov :: Noticed that there were no semantic colour
   1929   mappings for the ~rainbow-delimiters~ (and related), thus reminding
   1930   me to make the requisite arrangements.  Aleksei also spotted a
   1931   regression during the development of the "faint" overrides' preset.
   1932   These were done on the GitHub mirror:
   1933 
   1934   - <https://github.com/protesilaos/modus-themes/issues/54>
   1935   - <https://github.com/protesilaos/modus-themes/issues/55>
   1936 
   1937 - Anders Johansson :: Pointed out some irregularities with the use of
   1938   ~make-obsolete~ in the =version-4= development branch.  I should be
   1939   using ~make-obsolete-variable~ in some cases:
   1940   <https://lists.sr.ht/~protesilaos/modus-themes/%3CCAKJdtO-dzvR%3D2BaSd5qPzwDE%3D%2BaJSR6js7ii1O6KD7oFOB7gDw%40mail.gmail.com%3E>
   1941 
   1942 - Charlotte Van Petegem :: Reminded me to document how to reproduce
   1943   the old "alt-syntax" style by using palette overrides:
   1944   <https://lists.sr.ht/~protesilaos/modus-themes/%3C877cy917jw.fsf%40vanpetegem.me%3E>
   1945 
   1946 - Christian Tietze :: Spotted a bug in how shared palette overrides
   1947   would not be read in certain scenaria.  Also suggested tweaks to the
   1948   documentation, which reminded me of tasks that still had to be done:
   1949 
   1950   - <https://lists.sr.ht/~protesilaos/modus-themes/%3Cm1cz81rq9m.fsf%40christiantietze.de%3E>
   1951   - <https://lists.sr.ht/~protesilaos/modus-themes/%3Cm1fscxrr0s.fsf%40christiantietze.de%3E>
   1952   - <https://lists.sr.ht/~protesilaos/modus-themes/%3Cm1ilhtrs09.fsf%40christiantietze.de%3E>
   1953 
   1954 - Daniel Mendler (aka @minad on GitHub) :: Contacted me to comment on
   1955   the general redesign.  From the discussion I learnt that preset
   1956   overrides would be useful.  This information is shared with
   1957   permission, as it was done via a private channel.
   1958 
   1959 - James Ferguson :: Commented on the colours of the tab-bar and thus
   1960   inspired me to define relevant semantic colour mappings:
   1961   <https://lists.sr.ht/~protesilaos/modus-themes/%3CCAMtGdSnrKDGdagT7vGC9DnBZnOvkbM%3D4Nxwn3ts2tdO8YmUnxw%40mail.gmail.com%3E>
   1962 
   1963 - Philip Kaludercic :: Opined that the ~modus-themes-inhibit-reload~
   1964   should not be deprecated in the interest of usability.  As noted
   1965   above, its functionality is preserved and now enabled by default in
   1966   ~modus-themes-custom-auto-reload~.  Through the discussion we also
   1967   arrived at the concept of shared palette overrides instead of only
   1968   having theme-specific ones:
   1969 
   1970   - <https://lists.sr.ht/~protesilaos/modus-themes/%3C87h6y3gyxx.fsf%40posteo.net%3E>
   1971   - <https://lists.sr.ht/~protesilaos/modus-themes/%3C87wn6qgjkx.fsf%40posteo.net%3E>
   1972 
   1973 - Tony Zorman :: Noted that there was no clear upgrade path to
   1974   version 4.  This helped me explain some of the technicalities of
   1975   packaging and of the themes' redesign, but also to update the
   1976   manual:
   1977   <https://lists.sr.ht/~protesilaos/modus-themes/%3C874jtew0gp.fsf%40hyperspace%3E>.
   1978 
   1979 - a1ks :: Reported a bug caused by the typo of an extra backtick.
   1980   This was done on the GitHub mirror:
   1981   <https://github.com/protesilaos/modus-themes/issues/53>.
   1982 
   1983 - soaringbind :: Identified some omissions in the code where I forgot
   1984   to update certain Avy and Org faces.  This continued in a second
   1985   thread about the use of some obsolete faces:
   1986 
   1987   - <https://lists.sr.ht/~protesilaos/modus-themes/%3CNKXY2k1--3-9%40tuta.io%3E>
   1988   - <https://lists.sr.ht/~protesilaos/modus-themes/%3CNKd3jM_--3-9%40tuta.io%3E>
   1989 
   1990 - tumashu :: Experimented with the overrides and thus helped me
   1991   identify an area where the documentation could be improved.  This
   1992   was done on the GitHub mirror:
   1993 
   1994   - <https://github.com/protesilaos/modus-themes/issues/56>
   1995   - <https://github.com/protesilaos/modus-themes/issues/57>
   1996 
   1997 - wakamenod :: Encountered a bug that was caused by a mistake of mine
   1998   that affected how themes are instantiated.  This was done on the
   1999   GitHub mirror: <https://github.com/protesilaos/modus-themes/issues/50>.
   2000 
   2001 ** The largest release to date
   2002 :PROPERTIES:
   2003 :CUSTOM_ID: h:54a6bcd1-6ba0-42ed-8fdd-b83ee3efee73
   2004 :END:
   2005 
   2006 There are many more changes that I did not describe.  This already
   2007 lengthy document is me covering just the headline features.  The gist
   2008 is that I spent the last month refactoring and testing the themes to
   2009 ensure they can cope with the needs of users for years to come.
   2010 
   2011 I understand that the palette overrides are a new way of doing things
   2012 and that some users may be inconvenienced over the short-term as they
   2013 update their configurations.  I strongly believe that this system is
   2014 better and the Modus themes can now cover all the legibility needs of
   2015 users, while also catering to their aesthetic preferences.
   2016 
   2017 + Package name (GNU ELPA): ~modus-themes~
   2018 + Official manual: <https://protesilaos.com/emacs/modus-themes>
   2019 + Change log: <https://protesilaos.com/emacs/modus-themes-changelog>
   2020 + Colour palette: <https://protesilaos.com/emacs/modus-themes-colors>
   2021 + Sample pictures: <https://protesilaos.com/emacs/modus-themes-pictures>
   2022 + Git repo on SourceHut: <https://git.sr.ht/~protesilaos/modus-themes>
   2023   - Mirrors:
   2024     + GitHub: <https://github.com/protesilaos/modus-themes>
   2025     + GitLab: <https://gitlab.com/protesilaos/modus-themes>
   2026 + Mailing list: <https://lists.sr.ht/~protesilaos/modus-themes>
   2027 + Backronym: My Old Display Unexpectedly Sharpened ... themes
   2028 
   2029 * 3.0.0
   2030 :PROPERTIES:
   2031 :CUSTOM_ID: h:6829db8d-52c5-43a8-a026-f213dcfaced9
   2032 :END:
   2033 
   2034 #+begin_src text
   2035 Modus themes version 3.0.0
   2036 
   2037 By Protesilaos Stavrou <info@protesilaos.com> on 2022-10-28
   2038 
   2039 
   2040 The version that will ship with Emacs 29
   2041 ========================================
   2042 
   2043 The 'modus-operandi' and 'modus-vivendi' themes (package name is
   2044 'modus-themes') have been a part of Emacs since August 2020.  Emacs 28
   2045 ships with version 1.6.0 of the themes.  Emacs 29 will include version
   2046 3.0.0.
   2047 
   2048 There is no clean upgrade path from the old version of the themes to
   2049 the current one.  Users are advised to review their configurations and
   2050 consult with the detailed manual of the themes.
   2051 
   2052 I am available to answer any questions, either via my personal email
   2053 or on the official sources of the themes.  Find the full list here:
   2054 <https://protesilaos.com/emacs>.
   2055 
   2056 
   2057 Minor breaking changes
   2058 ======================
   2059 
   2060 I have changed the default value of the following user options:
   2061 
   2062 1. 'modus-themes-hl-line'
   2063 2. 'modus-themes-completions'
   2064 3. 'modus-themes-fringes'
   2065 
   2066 In the case of the first two, the background of the highlighted line
   2067 is made to look a bit more intense.
   2068 
   2069 For the fringes, this tweak makes them visible, using a subtle grey
   2070 colour.  By default, "fringe" is an 8-pixel-wide area to the left and
   2071 right side of an Emacs window.
   2072 
   2073 The intent of these changes is to make the out-of-the-box experience
   2074 consistent with the accessibility considerations of the Modus themes.
   2075 Specifically because some users may not realise that the themes are
   2076 highly customisable.
   2077 
   2078 To revert to the old defaults, users must include this (or equivalent)
   2079 in their init file:
   2080 
   2081     (setq modus-themes-completions nil
   2082           modus-themes-hl-line nil
   2083           modus-themes-fringes nil)
   2084 
   2085 As always, changes to theme user options take effect upon a reload of
   2086 the theme.
   2087 
   2088 This was announced on my website:
   2089 <https://protesilaos.com/codelog/2022-10-23-breaking-modus-themes-3-0-0-notice/>.
   2090 
   2091 
   2092 Support for new faces or changes to existing ones
   2093 =================================================
   2094 
   2095 ,* Refined the 'telega' faces for inline code and preformatted
   2096   elements.  The faces are 'telega-entity-type-code' and
   2097   'telega-entity-type-pre', respectively.  This change makes them
   2098   subject to the style specified in the user option
   2099   'modus-themes-markup'.
   2100 
   2101   Thanks to Pablo Stafforini for showing me screenshots of how they
   2102   look, as I am not a telega/telegram user and cannot do this myself.
   2103   Done as part of issue 170 on the GitLab mirror:
   2104   <https://gitlab.com/protesilaos/modus-themes/-/issues/170#note_1143975582>.
   2105 
   2106 ,* Removed all attributes from the 'textsec-suspicious' face.  By
   2107   default, it applies a background, but does not affect the
   2108   foreground.  The result is thus inaccessible in many cases
   2109   (e.g. blue links against a red background).  There is no need for
   2110   such a background though, as the warnings are accompanied by the
   2111   relevant emoji: ⚠️.
   2112 
   2113   To support this face, we need it to affect the foreground as well.
   2114 
   2115 ,* Deleted some 'consult' "preview" faces in the interest of
   2116   consistency.  This is to match the current style of the project:
   2117   <https://github.com/minad/consult/commit/1343e39fefcf8a28a7a415aa4b0a8ff7094370bf>.
   2118 
   2119 ,* Expanded support of the built-in 'diff-mode' faces to include the
   2120   'diff-changed-unspecified'.  It is made to look the same as
   2121   'diff-changed', i.e. yellow-tinted.  There is a good chance that a
   2122   user will never see this face in action (I only encountered it
   2123   once).
   2124 
   2125 ,* Reworked all the 'highlight-regexp' faces (like 'hi-yellow') to use
   2126   bespoke colour values.
   2127 
   2128   These faces need to have a background that is consistent with their
   2129   semantics.  Furthermore, they need to use the 'inverse-video'
   2130   attribute which, in turn, affects the combinations of colour we can
   2131   apply.  Our accented backgrounds are designed to contrast well with
   2132   our nominal main foreground values, whereas this case demands
   2133   coloured backgrounds that contrast nicely with what would normally
   2134   be the main background colour.  As such, we cannot apply our
   2135   ordinary entries from each theme's palette.  It would be inefficient
   2136   to expand the palette of each theme just for this edge case.
   2137 
   2138   Thanks to Kevin Kainan Li for the feedback on the mailing list, where
   2139   they informed me that the previous design was too dark/mute (and I
   2140   agreed with that assessment) and provided feedback on my samples:
   2141   <https://lists.sr.ht/~protesilaos/modus-themes/%3CCAMTq2Vp3Nnzv-i9wJdq4-OJ4X_QfWXySpUtAieBy0dgKLEOSBg%40mail.gmail.com%3E>.
   2142 
   2143 ,* Recoloured the 'modus-themes-completion-match-1' to use a shade of
   2144   blue instead of cyan.  This contributes to the distinctiveness of
   2145   those matches relative to 'modus-themes-completion-match-0' and the
   2146   other groups.  These faces are used in completion User Interfaces,
   2147   such as 'vertico', 'corfu', 'orderless'.  They are subject to the
   2148   user option 'modus-themes-completions'.
   2149 
   2150 ,* Added support for the 'olivetti-fringe' face.  Its background is the
   2151   same as the main background, meaning that the fringes are invisible
   2152   when 'olivetti-mode' is enabled.  Thanks to Matthias Fuchs for
   2153   producing a report that helped me track this problem.  It was done
   2154   in issue 46 on the GitHub mirror:
   2155   <https://github.com/protesilaos/modus-themes/issues/46>.
   2156 
   2157 
   2158 Miscellaneous
   2159 =============
   2160 
   2161 ,* Added the new Emacs 29 theme properties to 'modus-operandi' and
   2162   'modus-vivendi'.  These make the themes work with the new built-in
   2163   command 'toggle-theme'.  Thanks to Philip Kaludercic for the patch
   2164   and for the work on this in emacs.git:
   2165   <https://lists.gnu.org/archive/html/bug-gnu-emacs/2022-10/msg00886.html>.
   2166 
   2167 ,* Refrained from deprecating the 'modus-themes-toggle' command in
   2168   favour of the new generic 'toggle-theme'.
   2169 
   2170   The 'toggle-theme' is not functionally equivalent to the command
   2171   'modus-themes-toggle' due to the optional arguments it accepts.
   2172   With 'toggle-theme' we are prompted to confirm loading the theme,
   2173   due to how unsafe themes can be...  Further, we are asked to add the
   2174   loaded theme to the list of "safe" themes.  This only applies to the
   2175   packaged version of the 'modus-themes', not the items that are built
   2176   into Emacs.
   2177 
   2178   These prompts are consistent with how 'load-theme' works, but not
   2179   with what the user of 'modus-themes-toggle' has come to expect.
   2180 
   2181   Users who do not like to maintain a 'custom-file' (like me) are thus
   2182   penalised each time they invoke the command.
   2183 
   2184   The 'modus-themes-toggle' will only be deprecated if there is, say,
   2185   a user option in Emacs that disables those prompts each time a theme
   2186   is loaded.  Basically, we need an arrangement that just toggles
   2187   themes without questions.
   2188 
   2189   Thanks to Rudolf Adamkovič for suggesting the idea and to Philip
   2190   Kaludercic for the 'toggle-theme' (and related functionality):
   2191   <https://lists.sr.ht/~protesilaos/modus-themes/%3C877d116lh4.fsf%40posteo.net%3E#%3Cm2lepgrd8l.fsf@me.com%3E>.
   2192 
   2193 ,* Corrected the one-line description of the 'modus-vivendi' theme,
   2194   which was describing itself as a "light" theme.
   2195 
   2196 ,* Ensured that the manual and all doc strings in the code use American
   2197   English, per the convention of emacs.git (my CHANGELOG still uses
   2198   what I prefer).  Thanks to Stefan Kangas for contributing to this
   2199   effort with a patch that properly renders 'non-nil' in the texinfo
   2200   output as 'non-@code{nil}'.
   2201 
   2202 ,* Made other minor tweaks and refinements.
   2203 #+end_src
   2204 
   2205 * 2.7.0
   2206 :PROPERTIES:
   2207 :CUSTOM_ID: h:4d86106c-1df5-4f5f-bc6c-f14f5d13403b
   2208 :END:
   2209 
   2210 #+begin_src text
   2211 Modus themes version 2.7.0
   2212 
   2213 By Protesilaos Stavrou <info@protesilaos.com> on 2022-10-01
   2214 
   2215 
   2216 Support for packages or faces
   2217 =============================
   2218 
   2219 ,* Reinstated support for 'centaur-tabs'.  I had removed it in commit
   2220   2235ce5 (done on 2022-08-02) for version 2.5.0 of the modus-themes.
   2221   At the time I wrote:
   2222 
   2223       centaur-tabs has a bug where it cannot read the value of a face if it
   2224       uses the standard ':inherit' attribute.  I have sent a patch to fix it,
   2225       but have received no response since February:
   2226       <https://github.com/ema2159/centaur-tabs/pull/179>.
   2227 
   2228       Relevant reports:
   2229 
   2230       - <https://github.com/protesilaos/modus-themes/issues/30>
   2231       - <https://gitlab.com/protesilaos/modus-themes/-/issues/288>
   2232       - <https://github.com/protesilaos/modus-themes/issues/15>
   2233 
   2234       I am happy to reinstate support for centaur-tabs as soon as the package
   2235       gets the maintenance it needs.
   2236 
   2237   My patch/pull-request is now merged and the package is actively
   2238   maintained once again.  Hence the decision to bring back support for
   2239   it, as promised.
   2240 
   2241 ,* Applied styles for the 'icon-button' face of Emacs 29.
   2242 
   2243 
   2244 ,* Styled the 'log-edit-headers-separator' face of Emacs 29 (it was
   2245   introduced upstream by a patch of mine).
   2246 
   2247 ,* Made the 'gnus-summary-low-unread' face inherit from the 'italic'
   2248   face like the rest of that subgroup of faces.  This helps
   2249   differentiate it from the 'gnus-summary-high-unread' face.  Thanks
   2250   to Mark Simpson for pointing out the possibility of conflating those
   2251   two faces: <https://lists.sr.ht/~protesilaos/modus-themes/%3Cm2r0zszc2z.fsf@gmail.com%3E>.
   2252 
   2253 ,* Covered the 'read-multiple-choice-face' by adding a noticeable
   2254   background colour to it.  The default attributes it has, which look
   2255   like other key bindings (bold and blue) plus an underline are
   2256   technically okay, though the context of this face is in the echo
   2257   area which is one line tall.  Moreover, the highlighted keys are
   2258   inlined with other text.  These make it difficult to spot the
   2259   highlights without some extra spacing.  I use the addition of a
   2260   background in Org's export dispatcher interface which also has some
   2261   unique requirements (the 'org-dispatcher-highlight' face).  The
   2262   principle is to have theme-wide consistency (e.g. "all key bindings
   2263   must look the same") EXCEPT when the specifics require a different
   2264   set of styles in the interest of usability.
   2265 
   2266 ,* Extended the coverage of the 'auctex' package's faces to include the
   2267   'font-latex-underline-face'.  Thanks to Luis Miguel Castañeda for
   2268   reporting a typo I made which caused an error:
   2269   <https://lists.sr.ht/~protesilaos/modus-themes/%3C7h7d2oudpb.fsf@imaginarymagnitude.net%3E>
   2270 
   2271 ,* Added support for 'crontab-mode'.  Thanks to Antonio Ruiz for the
   2272   patch: <https://lists.sr.ht/~protesilaos/modus-themes/patches/35080>.  It
   2273   is below the ~15 line threshold and thus requires no copyright
   2274   assignment to the Free Software Foundation.
   2275 
   2276 ,* Extended support for the 'company' package's 'company-scrollbar-bg'
   2277   and 'company-scrollbar-fg' faces.
   2278 
   2279 ,* Added support for the 'spell-fu' package.  Thanks to Antonio Ruiz
   2280   for the patch: <https://lists.sr.ht/~protesilaos/modus-themes/%3C87fshnq7uv.fsf%40purelymail.com%3E>.
   2281   Same as further above for Antonio's copyright status.
   2282 
   2283 ,* Moved the 'selectrum-prescient' faces to the 'prescient' group, to
   2284   be consistent with changes in the respective upstream packages.
   2285   Thanks to okamsn for the contribution, which was done in pull
   2286   request 41 on the GitHub mirror: <https://github.com/protesilaos/modus-themes/pull/41>.
   2287   The user okamsn has assigned copyright assignment to the Free
   2288   Software Foundation, although this patch is within the allowed
   2289   limits.
   2290 
   2291 
   2292 Change to 'fill-column-indicator'
   2293 =================================
   2294 
   2295 Made the 'fill-column-indicator' face more noticeable.  It is what the
   2296 'display-fill-column-indicator-mode' uses to draw a line on where the
   2297 'fill-column' is.
   2298 
   2299 This change is in response to private messages I received as well as
   2300 this, at parts impolite and toxic, thread that I refrained from
   2301 participating in:
   2302 <https://lists.gnu.org/archive/html/help-gnu-emacs/2022-08/msg00255.html>.
   2303 
   2304 [ I do not follow that mailing list, by the way.  All my projects have
   2305   multiple communication channels and I always reply in a timely
   2306   fashion.  Social media, fora about Emacs, generic mailing lists,
   2307   etc. are not among those channels.
   2308   <https://protesilaos.com/codelog/2022-07-24-report-issues-official-channels/>. ]
   2309 
   2310 The core idea is that the previous design was (1) considered
   2311 "invisible" and (2) it prevented the customisation of the user option
   2312 'display-fill-column-indicator-character'.
   2313 
   2314 I am addressing point 1, but point 2 puts us in an awkward spot as we
   2315 would then not be allowed to use a background and a height value.  Not
   2316 doing so produces a dashed line by default, with the dashes further
   2317 apart the greater the line-spacing is (especially in, say, Org
   2318 headings that can have a greater height than paragraph text).  It
   2319 looks broken and I keep getting requests to fix what is not the
   2320 themes' fault.  So no, the themes will remain opinionated in this
   2321 regard by ignoring 'display-fill-column-indicator-character' through
   2322 the styling they apply to make the line contiguous.
   2323 
   2324 For context, also read Emacs bug#57424 and please don't take my words
   2325 in a private message out of context.  If I need to state my opinion in
   2326 a public setting, I know how to do it.
   2327 <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=57424>.
   2328 
   2329 
   2330 Refinement to modus-vivendi 'bg-diff-focus-removed' colour
   2331 ==========================================================
   2332 
   2333 Made the default removed diff background slightly more luminant.  The
   2334 colour is seen in diff-mode, ediff, and the Magit focused diff hunk.
   2335 
   2336 When the user option 'modus-themes-diffs' is set to either 'bg-only' or
   2337 'desaturated', this colour is used to highlight word-wise ("refined")
   2338 changes.  The increased luminance lets it stand out more compared to the
   2339 more subtle backdrop.
   2340 
   2341 Thanks to Kévin Le Gouguec for bringing this issue to my attention and
   2342 for discussing it with me:
   2343 <https://lists.sr.ht/~protesilaos/modus-themes/%3C87bks4i9tg.fsf@gmail.com%3E>
   2344 
   2345 
   2346 Note about 'goto-address-mode'
   2347 ==============================
   2348 
   2349 Quote from the manual:
   2350 
   2351     The built-in 'goto-address-mode' uses heuristics to identify URLs and
   2352     email addresses in the current buffer.  It then applies a face to them
   2353     to change their style.  Some packages, such as 'notmuch', use this
   2354     minor-mode automatically.
   2355 
   2356     The faces are not declared with 'defface', meaning that it is better
   2357     that the theme does not modify them.  The user is thus encouraged to
   2358     consider including (or equivalent) this in their setup:
   2359 
   2360         (setq goto-address-url-face 'link
   2361               goto-address-url-mouse-face 'highlight
   2362               goto-address-mail-face 'link
   2363               goto-address-mail-mouse-face 'highlight)
   2364 
   2365     My personal preference is to set 'goto-address-mail-face' to nil, as
   2366     it otherwise adds too much visual noise to the buffer (email addresses
   2367     stand out more, due to the use of the uncommon '@' character but also
   2368     because they are often enclosed in angled brackets).
   2369 
   2370 
   2371 Changes to the manual
   2372 =====================
   2373 
   2374 ,* Fixed a few typos and ensured that spelling using American English
   2375   as that is what emacs.git requires.
   2376 
   2377 ,* Added the missing ':config' keywords from the example configuration
   2378   of the 'circadian' package.  Thanks to Koen van Greevenbroek for the
   2379   patch: <https://lists.sr.ht/~protesilaos/modus-themes/%3C8735cb6zm3.fsf%40posteo.net%3E>.
   2380 #+end_src
   2381 
   2382 * 2.6.0
   2383 :PROPERTIES:
   2384 :CUSTOM_ID: h:fc108f65-3e0b-4e28-8030-86c797cb2b25
   2385 :END:
   2386 
   2387 #+begin_src text
   2388 Modus themes version 2.6.0
   2389 
   2390 By Protesilaos Stavrou <info@protesilaos.com> on 2022-08-19
   2391 
   2392 
   2393 Changes to supported faces or face groups
   2394 =========================================
   2395 
   2396 ,* Made the 'font-lock-warning-face' adapt to comments.  This changes the
   2397   face from a yellow to a red hue when the user adds a value to
   2398   'modus-themes-syntax' which includes 'yellow-comments' property.
   2399   Before, this face was indistinguishable from yellow comments due to a
   2400   regression in version 2.5.0 of the themes.  Thanks to Augusto Stoffel
   2401   and Manuel Uberti for their feedback on the mailing list:
   2402   <https://lists.sr.ht/~protesilaos/modus-themes/%3C87r11k1c22.fsf%40gmail.com%3E>.
   2403 
   2404 ,* Applied a consistent foreground color (a not-so-intense yellow hue) to
   2405   the 'org-checkbox' and 'markdown-gfm-checkbox-face'.  The change comes
   2406   from the discussion on the mailing list where it became apparent that
   2407   a bit of colour is needed for such constructs:
   2408   <https://lists.sr.ht/~protesilaos/modus-themes/%3Cm2fsi9cja4.fsf%40me.com%3E>.
   2409 
   2410   Thanks to Rudolf Adamkovič, Christian Tietze, and Karthik Chikmagalur
   2411   for their participation.
   2412 
   2413 ,* Added support for the 'mu4e-related-face'.  Thanks to Simon Pugnet for
   2414   the feedback on the mailing list:
   2415   <https://lists.sr.ht/~protesilaos/modus-themes/%3C87edxhvqwp.fsf@polaris64.net%3E>.
   2416 
   2417 ,* Included support for the 'consult-preview-insertion' face.  There are
   2418   two reasons for adding this:
   2419 
   2420   1. It decouples it from the 'region' face, which means that the user
   2421      option 'modus-themes-region' no longer has an unintended effect on
   2422      it.
   2423 
   2424   2. It makes it look consistent with the 'rectangle-preview' face (see
   2425      it in action with C-x SPC, move point down a few lines, type C-t
   2426      and then insert some text).  I feel these sort of previews need to
   2427      look the same, though I don't have a strong attachment to the style
   2428      now in use.
   2429 
   2430 
   2431 Removed support for the 'solaire' package
   2432 =========================================
   2433 
   2434 The 'solaire-mode' package dims the background of what it considers
   2435 ancillary "UI" buffers, such as the minibuffer and Dired buffers.  The
   2436 Modus themes used to support Solaire on the premise that the user was
   2437 (i) opting in to it, (ii) understood why certain buffers were more gray,
   2438 and (iii) knew what other adjustments had to be made to prevent broken
   2439 visuals (e.g. the default style of the 'modus-themes-completions' uses a
   2440 subtle gray background for the selection, which with Solaire becomes
   2441 practically invisible).
   2442 
   2443 However, the assumption that users opt in to this feature does not
   2444 always hold true.  There are cases where it is enabled by default such
   2445 as in the popular Doom Emacs configuration.  Thus, the unsuspecting user
   2446 who loads 'modus-operandi' or 'modus-vivendi' without the requisite
   2447 customizations is getting a sub-par experience; an experience that we
   2448 did not intend and cannot genuinely fix.
   2449 
   2450 [ Relevant reading about "The case of git-gutter, the modus-themes, and
   2451   Doom Emacs":
   2452   <https://protesilaos.com/codelog/2022-08-04-doom-git-gutter-modus-themes/> ]
   2453 
   2454 Because the Modus themes are meant to work everywhere, we cannot make an
   2455 exception for Doom Emacs and/or Solaire users.  Furthermore, we shall
   2456 not introduce hacks, such as by adding a check in all relevant faces to
   2457 be adjusted based on Solaire or whatever other package.  Hacks of this
   2458 sort are unsustainable and penalize the entire userbase.  Besides, the
   2459 themes are built into Emacs and we must keep their standard high.
   2460 
   2461 The fundamental constraint with Solaire is that Emacs does not have a
   2462 real distinction between "content" and "UI" buffers.  For themes to work
   2463 with Solaire, they need to be designed around that package.  Such is an
   2464 arrangement that compromises on our accessibility standards and/or
   2465 hinders our efforts to provide the best possible experience while using
   2466 the Modus themes.
   2467 
   2468 As such, 'solaire-mode' is not---and will not be---supported by the
   2469 Modus themes (or any other of my themes, for that matter).  Users who
   2470 want it must style the faces manually.  Below is some sample code, based
   2471 on what we cover at length in the manual:
   2472 
   2473     (defun my-modus-themes-custom-faces ()
   2474       (modus-themes-with-colors
   2475         (custom-set-faces
   2476          `(solaire-default-face ((,class :inherit default :background ,bg-alt :foreground ,fg-dim)))
   2477          `(solaire-line-number-face ((,class :inherit solaire-default-face :foreground ,fg-unfocused)))
   2478          `(solaire-hl-line-face ((,class :background ,bg-active)))
   2479          `(solaire-org-hide-face ((,class :background ,bg-alt :foreground ,bg-alt))))))
   2480 
   2481     (add-hook 'modus-themes-after-load-theme-hook #'my-modus-themes-custom-faces)
   2482 
   2483 
   2484 Changes to the manual
   2485 =====================
   2486 
   2487 ,* Added a missing parenthesis to a sample code block.  Thanks to Paul
   2488   David for the contribution in pull request 39 on the GitHub mirror:
   2489   <https://github.com/protesilaos/modus-themes/pull/39>.
   2490 
   2491 ,* Clarified the wording of individual statements pertaining to the need
   2492   of reloading a theme for changes to user options to become effective.
   2493 #+end_src
   2494 
   2495 * 2.5.0
   2496 :PROPERTIES:
   2497 :CUSTOM_ID: h:32438044-6eee-4909-8e5a-860ce1457049
   2498 :END:
   2499 
   2500 #+begin_src text
   2501 Modus themes version 2.5.0
   2502 
   2503 By Protesilaos Stavrou <info@protesilaos.com> on 2022-08-03
   2504 
   2505 This entry documents the changes made to the project since the
   2506 publication of version 2.4.0 on 2022-06-01.  It spans more than 60
   2507 commits to an already stable project.
   2508 
   2509 The 'modus-operandi' and 'modus-vivendi' themes are built into Emacs-28
   2510 (latest stable release) or later, and are available on GNU ELPA as well
   2511 as other archives.  Emacs-28 ships version 1.6.0, while the current
   2512 'master' branch (i.e. Emacs-29) and, by extension, GNU ELPA include the
   2513 latest tagged release.  The packaged version is available as
   2514 'modus-themes'.
   2515 
   2516 Read the manual inside Emacs by evaluating:
   2517 
   2518     (info "(modus-themes) Top")
   2519 
   2520 Or visit: <https://protesilaos.com/emacs/modus-themes> (the website only
   2521 documents the latest version).
   2522 
   2523 
   2524 Enhancement to the user option 'modus-themes-headings'
   2525 ======================================================
   2526 
   2527 The user option 'modus-themes-headings' now reads a level 0 heading in
   2528 addition to numbers 1--8.  Heading 0 accepts the same list of properties
   2529 as all other levels (please consult the doc string of the user option or
   2530 the corresponding entry in the manual).  Currently only the value of the
   2531 Org #+title is affected (face is 'org-document-title'), but we may cover
   2532 more faces if needed.
   2533 
   2534 Sample configuration:
   2535 
   2536     ;; The `modus-themes-headings' is an alist with lots of possible
   2537     ;; combinations, including per-heading-level tweaks: read the
   2538     ;; manual or its doc string.
   2539     (setq modus-themes-headings
   2540           '((0 . (variable-pitch light (height 2.2)))
   2541             (1 . (rainbow variable-pitch light (height 1.6)))
   2542             (2 . (rainbow variable-pitch light (height 1.4)))
   2543             (3 . (rainbow variable-pitch regular (height 1.3)))
   2544             (4 . (rainbow regular (height 1.2)))
   2545             (5 . (rainbow (height 1.1)))
   2546             (t . (variable-pitch extrabold)))
   2547 
   2548 Given this change, I am also tweaking the default foreground value of
   2549 the 'org-document-title'.  It is a bit more saturated than before, but
   2550 remains close to the spirit of the previous one.
   2551 
   2552 Thanks to Rudolf Adamkovič for proposing the idea on the mailing list:
   2553 <https://lists.sr.ht/~protesilaos/modus-themes/%3Cm2y1x5tewl.fsf@me.com%3E>.
   2554 
   2555 
   2556 Stylistic tweak to the user option 'modus-themes-syntax'
   2557 ========================================================
   2558 
   2559 Prevented the 'alt-syntax' property from desaturating the effect of the
   2560 'yellow-comments' property when the two would be combined.  Such as:
   2561 
   2562     (setq modus-themes-syntax '(alt-syntax yellow-comments))
   2563 
   2564 The previous design was incorrect because it was always using the faint
   2565 variant of the yellow comments, as if the user had specified:
   2566 
   2567     (setq modus-themes-syntax '(alt-syntax faint yellow-comments))
   2568 
   2569 [ Read the doc string of 'modus-themes-syntax' or the manual for an
   2570   explanation of all properties and their combinations. ]
   2571 
   2572 
   2573 Review of the Isearch (and related) colours
   2574 ===========================================
   2575 
   2576 Emacs' standard search has a face for the currently matched query and
   2577 all its inactive matches.  The faces are 'isearch' and 'lazy-highlight',
   2578 respectively.  Before, we were using a green background by default for
   2579 the 'isearch' face and a cyan background for the 'lazy-highlight'.  This
   2580 was a choice that was made in the early days of the project when the
   2581 palette was not yet fully realised.
   2582 
   2583 Green and cyan do not always contrast well side-by-side (subject to
   2584 hardware capabilities and environmental lighting), so the 'isearch' face
   2585 also had an added bold weight.  This was not my preference, but it was
   2586 necessary under the circumstances.  The previous combinations were also
   2587 not ideal when the user option 'modus-themes-deuteranopia' was set to a
   2588 non-nil value: the blue background which was used instead of the green
   2589 one could be conflated with the subtle teal of the 'lazy-highlight'
   2590 under certain circumstances, such as poor colour reproduction at the
   2591 monitor level or in terminal emulators with limited colour support.
   2592 
   2593 The new colours (intense yellow for active matches and subtle cyan for
   2594 lazy ones) are complementary, meaning that they are naturally easy to
   2595 tell apart.
   2596 
   2597 [ Read "Colour theory and techniques used in the Modus themes":
   2598   <https://protesilaos.com/codelog/2022-04-21-modus-themes-colour-theory/> ]
   2599 
   2600 These specific hues are also well-suited for users with red-green colour
   2601 deficiency: yellow stays as-is, while the cyan colour becomes a bit more
   2602 grey though remains distinct.  As such, we do not need to run the helper
   2603 function 'modus-themes--deuteran' to set the style based on the value of
   2604 'modus-themes-deuteranopia'.
   2605 
   2606 The new colours do not clash with the style of the relevant 'match' face
   2607 (used by 'M-x occur', 'M-x grep', and related), nor with the various
   2608 permutations of the 'region' face (subject to the user option
   2609 'modus-themes-region').
   2610 
   2611 Finally, the bold weight has been removed from the 'isearch' face.  It
   2612 was always a kludge.  Also, it would make paragraphs rendered in the
   2613 'variable-pitch' face (or proportional fonts in general) jump around as
   2614 the user would move between the matches, because bold letters occupy
   2615 more space than their regular weight counterparts so they affect the
   2616 length of the line.  This problem was reported by Augusto Stoffel on the
   2617 mailing list: <https://lists.sr.ht/~protesilaos/modus-themes/%3C87sfnbswe9.fsf@gmail.com%3E>.
   2618 
   2619 
   2620 Rewrote parts of the colour preview commands
   2621 ============================================
   2622 
   2623 The 'modus-themes-list-colors', 'modus-themes-list-colors-current' are
   2624 commands that produce a buffer which shows previews of every entry in
   2625 the palette.  Their code has been simplified and they now produce a
   2626 warning when the display terminal has limited colour support.
   2627 Furthermore, they read any overrides as specified in the user options
   2628 'modus-themes-operandi-color-overrides', 'modus-themes-vivendi-color-overrides'.
   2629 
   2630 
   2631 The "summertime" re-spin of colour overrides
   2632 ============================================
   2633 
   2634 The manual now includes a complete hand-crafted example of a pair of
   2635 themes that override the default palette.  This is done as a technology
   2636 demonstration.  It is not considered an "official" extension of the
   2637 Modus themes and will never be part of the code base as it does not
   2638 conform with our lofty accessibility standards.  However, I took great
   2639 care in picking the colour overrides in the hope that users will (i)
   2640 have a usable theme, should they opt for it, and (ii) they recognise the
   2641 potential of our colour-overriding feature.
   2642 
   2643 Screenshots and related information:
   2644 <https://protesilaos.com/codelog/2022-07-26-modus-themes-color-override-demo/>.
   2645 
   2646 Thanks to user “Summer Emacs” for (i) suggesting the name “summertime”,
   2647 (ii) testing variants of this in her setup, and (iii) sending me
   2648 feedback on possible tweaks and refinements. All errors are my own.
   2649 
   2650 The idea for this project came from an exchange where Summer discovered
   2651 an old theme of mine (from my pre-Emacs days) and asked if I had
   2652 anything like it for Emacs.  Voilà!
   2653 
   2654 [ This information is shared with permission. ]
   2655 
   2656 As for whether I have more plans... "Perhaps!" ;)
   2657 
   2658 
   2659 Removed support for certain packages or face groups
   2660 ===================================================
   2661 
   2662 I periodically install and use the packages we support to see if they
   2663 have any updates we need to cover but also to confirm that they work.
   2664 Usually, the user does not learn about this work, as I don't need to
   2665 make any changes or will make some minor tweaks.  When I think that the
   2666 package is not in a good shape, I remove it from the list of explicitly
   2667 supported packages, meaning that the modus-themes no longer cover the
   2668 faces it defines.  The removal of any package is done on a case-by-case
   2669 basis.  If you disagree with this decision, please inform me about and I
   2670 shall reconsider.
   2671 
   2672 ,* centaur-tabs :: Those of you who have been reading these release notes
   2673   are aware of a bug in centaur-tabs which basically prevents us from
   2674   using the standard ':inherit' attribute to style the centaur-tabs
   2675   faces.  I have sent a patch to fix it, but have received no response
   2676   since February: <https://github.com/ema2159/centaur-tabs/pull/179>.
   2677   To me, this gives the package the "unmaintained" status, though I am
   2678   happy to revert the change as soon as it gets the maintenance it
   2679   needs.
   2680 
   2681   Relevant reports (and I got many others in my private inbox):
   2682 
   2683   - <https://github.com/protesilaos/modus-themes/issues/30>
   2684   - <https://gitlab.com/protesilaos/modus-themes/-/issues/288>
   2685   - <https://github.com/protesilaos/modus-themes/issues/15>
   2686 
   2687 ,* cursor-flash :: its default face should be visible enough.
   2688 
   2689 ,* dynamic-ruler :: The package does not build on my Emacs 29.  Also, its
   2690   default faces are usable even without our recolouring.
   2691 
   2692 ,* emacs-dashboard :: Its default faces inherit from basic faces that we
   2693   already support.
   2694 
   2695 ,* frog-menu :: I have not seen this package being used anywhere.  I
   2696   suspect it is because it has not found a niche between transient,
   2697   hydra, and embark.
   2698 
   2699 ,* mct :: A few months ago I announced that its development is
   2700   discontinued.  Either use vertico or switch to what Emacs provides as
   2701   a built-in option: <https://protesilaos.com/codelog/2022-04-14-emacs-discontinue-mct/>.
   2702 
   2703 ,* org-treescope :: The package points to a GitHub repo, which is
   2704   archived.  The current source is on GitLab, but the package is not
   2705   updated accordingly.  This makes me believe it is not actively
   2706   maintained and am thus removing it from the list.
   2707 
   2708 ,* paradox :: When I tried paradox, it took over my C-c g binding which I
   2709   have for Magit.  As an Emacs user, I consider this an unacceptable
   2710   transgression.  Looking at paradox's git repo, the project is not
   2711   maintained.  If things change, I am happy to reinstate support for it.
   2712 
   2713 ,* vc-annotate (built-in) :: It has not been working properly for a long
   2714   time now.  Colours are unset and are not re-applied when switching
   2715   between the 'modus-operandi' and 'modus-vivendi' themes.
   2716 
   2717   Furthermore, the way 'vc-annotate-color-map' intersects with
   2718   'vc-annotate-background-mode' puts us in an awkward spot: when the
   2719   mode is non-nil, the mapped values are used as backgrounds WITHOUT
   2720   giving us the chance to make the appropriate adjustments to the
   2721   foreground (so we end up with inaccessible colour combinations).  This
   2722   means that we must fix a problem which is not ours by overriding the
   2723   user option of the background altogether.  A theme outright disabling
   2724   user options is bad form.
   2725 
   2726   Even documenting a user-level set of configurations will not suffice,
   2727   as the results are unreliable.  I tried the code which I copy further
   2728   below to test annotation with/without background, plus the change in
   2729   values when switching between modus-operandi and modus-vivendi.
   2730   Again, colours are not updated properly (I know the buffer of 'M-x
   2731   vc-annotate' needs to be generated again), as 'modus-operandi' may
   2732   retain the values set by 'modus-vivendi' or vice-versa.
   2733 
   2734   Ultimately, I feel 'vc-annotate' needs to be refactored to use
   2735   ordinary faces in ordinary ways.  Or, at least, not try to outsmart
   2736   the user/theme about the choice of colours.
   2737 
   2738   Thanks to Philip Kaludercic for starting the thread about the
   2739   'vc-annotate-background-mode' which reminded me about this problem:
   2740   <https://lists.sr.ht/~protesilaos/modus-themes/%3C875ylfxkgi.fsf@posteo.net%3E>.
   2741 
   2742   The code I alluded to:
   2743 
   2744       (setq vc-annotate-background-mode nil)
   2745 
   2746       (defun my-modus-themes-vc-annotate ()
   2747         ;; Actual values are for demo purposes
   2748         (modus-themes-with-colors
   2749           (if vc-annotate-background-mode
   2750               (setq vc-annotate-background bg-alt
   2751                     vc-annotate-color-map
   2752                     `((20 .  ,red-intense-bg)
   2753                       (40 .  ,red-subtle-bg)
   2754                       (60 .  ,red-refine-bg)
   2755                       (80 .  ,yellow-intense-bg)
   2756                       (100 . ,yellow-subtle-bg)
   2757                       (120 . ,yellow-refine-bg)
   2758                       (140 . ,magenta-intense-bg)
   2759                       (160 . ,magenta-subtle-bg)
   2760                       (180 . ,magenta-refine-bg)
   2761                       (200 . ,cyan-intense-bg)
   2762                       (220 . ,cyan-subtle-bg)
   2763                       (240 . ,cyan-refine-bg)
   2764                       (260 . ,green-intense-bg)
   2765                       (280 . ,green-subtle-bg)
   2766                       (300 . ,green-refine-bg)
   2767                       (320 . ,blue-intense-bg)
   2768                       (340 . ,blue-subtle-bg)
   2769                       (360 . ,blue-refine-bg)))
   2770             (setq vc-annotate-background nil
   2771                   vc-annotate-color-map
   2772                   `((20 . ,red)
   2773                     (40 . ,magenta)
   2774                     (60 . ,magenta-alt)
   2775                     (80 . ,red-alt)
   2776                     (100 . ,yellow)
   2777                     (120 . ,yellow-alt)
   2778                     (140 . ,fg-special-warm)
   2779                     (160 . ,fg-special-mild)
   2780                     (180 . ,green)
   2781                     (200 . ,green-alt)
   2782                     (220 . ,cyan-alt-other)
   2783                     (240 . ,cyan-alt)
   2784                     (260 . ,cyan)
   2785                     (280 . ,fg-special-cold)
   2786                     (300 . ,blue)
   2787                     (320 . ,blue-alt)
   2788                     (340 . ,blue-alt-other)
   2789                     (360 . ,magenta-alt-other))))))
   2790 
   2791       (add-hook 'modus-themes-after-load-theme-hook #'my-modus-themes-vc-annotate)
   2792 
   2793 
   2794 Revised supported faces or face groups
   2795 ======================================
   2796 
   2797 ,* Enhanced the default background colour of the current date in the Org
   2798   agenda.  This is a subtle change, all things considered, which makes
   2799   it easier to discern where the highlight is while it remains close to
   2800   the spirit of the previous design.  The idea is to not add too much
   2801   saturation here, because the buffer is already "busy" with lots of
   2802   highlights.  Thanks to Daniel Mendler for the feedback on the mailing
   2803   list: <https://lists.sr.ht/~protesilaos/modus-themes/%3C3d8b1096-a7db-1e08-fefe-d39bed4a7ea3@daniel-mendler.de%3E>.
   2804 
   2805 ,* Restyled the 'M-x man' and 'M-x woman' faces to have a bit more
   2806   saturation.  A while ago I desaturated the 'Man-overstrike' and
   2807   'woman-bold' faces on the premise that the added bold weight would be
   2808   sufficient.  However, the bold weight may sometimes not draw the
   2809   desired attention, such as at small point sizes or with certain font
   2810   configurations.  As such, the added intensity in colour is necessary.
   2811 
   2812 ,* Changed the Selectrum quick key faces ('selectrum-quick-keys-match'
   2813   and 'selectrum-quick-keys-highlight') to have the same style as Avy,
   2814   Vertico's own "quick keys", and related.  For a technical analysis,
   2815   read "Modus themes: case study on Avy faces and colour combinations":
   2816   <https://protesilaos.com/codelog/2022-04-20-modus-themes-case-study-avy/>.
   2817 
   2818 ,* Made internal adjustments so that 'M-x list-packages' inherits from
   2819   the standard 'success', 'warning', and 'error' faces instead of adding
   2820   its own face attributes.  In practice, the user will notice a change
   2821   for new packages in the listing if 'modus-themes-deuteranopia' is
   2822   non-nil.
   2823 
   2824 ,* Introduced the same inheritance rules as above for the 'syslog'
   2825   package (mutatis mutandis).
   2826 
   2827 ,* Increased the saturation of the 'package-status-available' face, which
   2828   is shown in the 'M-x list-packages' buffer.  The overall effect is
   2829   subtle, though sufficiently noticeable.
   2830 
   2831 ,* Revised the faces of the 'deft' package to make it look consistent
   2832   with the rest of the theme's relevant interfaces (to the extent
   2833   possible as Deft uses a non-standard presentation).
   2834 
   2835 ,* Aligned the 'speedbar-highlight-face' with the user option
   2836   'modus-themes-intense-mouseovers'.
   2837 
   2838 ,* Refined the 'highlight-thing' face (see package of the same name).
   2839   This makes it stand out more and it also aligns it with the standard
   2840   'match' face, which is pertinent here.
   2841 
   2842 ,* Amplified the saturation of the 'dired-git-info' face.  Makes it
   2843   easier to differentiate the Git commit text from the Dired listing,
   2844   without drawing too much attention to itself.
   2845 
   2846 ,* Adjusted the hue of the 'easy-jekyll-help-face' from teal to blue.
   2847   This makes it look more like the standard 'help-key-binding' face,
   2848   although 'easy-jekyll' does not align with upstream Emacs in this
   2849   regard.
   2850 
   2851 ,* Intensified the background of 'rectangle-preview' to work even in
   2852   cases where a grey background is already on display.  This face is
   2853   used for the 'string-rectangle' command (e.g. C-x SPC to draw a
   2854   rectangle and C-t to insert text in its stead---works as a simple
   2855   "multiple cursors" on a straight line).
   2856 
   2857 
   2858 Support for new faces or face groups
   2859 ====================================
   2860 
   2861 ,* chart (built-in)
   2862 ,* denote
   2863 ,* edmacro-label (Emacs 29)
   2864 ,* info+
   2865 ,* leerzeichen
   2866 
   2867 A comment on 'info+'.  As is the case with PACKAGE+ packages from the
   2868 Emacs Wiki, info+ defines lots of faces that hardcode colour values
   2869 instead of inheriting from basic faces.  It does so for no good reason
   2870 and the results will likely not look decent in any theme.  Furthermore,
   2871 these faces colourise too much even when the colour values can be
   2872 appropriately combined (ceteris paribus), making the buffer harder to
   2873 read.
   2874 
   2875 The support I add for info+ is consistent with the design principles of
   2876 the modus-themes, one of which is to avoid exaggerations as those
   2877 indirectly affect legibility.  As such, some of the changes I introduce
   2878 here outright remove colouration, while others align the various
   2879 constructs with the overall aesthetic of the themes.
   2880 
   2881 Note that, by default, info+ adds clickable buttons to glossary terms.
   2882 This produces awkward combinations such as by buttonising the "string"
   2883 component inside of what actually is a function's argument.  So you
   2884 have, say, FORMAT-[STRING] where "[]" represents the button: the FORMAT
   2885 gets one face and the [STRING] another, even though they are part of a
   2886 single argument.  To me this looks broken and is counter-productive,
   2887 though it is not up to the theme to decide how packages fontify the
   2888 various constructs.  At any rate, button styles at the theme level are
   2889 controlled by the user option 'modus-themes-box-buttons'.
   2890 
   2891 Thanks to Jonas Collberg for the feedback in issue 33 over at the GitHub
   2892 mirror: <https://github.com/protesilaos/modus-themes/issues/33>.
   2893 
   2894 
   2895 Miscellaneous
   2896 =============
   2897 
   2898 ,* Named the mailing list address as the =Maintainer:= of Denote.
   2899   Together with the other package headers, they help the user find our
   2900   primary sources and/or communication channels.  This change conforms
   2901   with work being done upstream in package.el by Philip Kaludercic.  I
   2902   was informed about it here:
   2903   <https://lists.sr.ht/~protesilaos/general-issues/%3C875ykl84yi.fsf%40posteo.net%3E>.
   2904 
   2905 ,* Addressed byte compilation warnings in doc strings pertaining to the
   2906   use of literal quotes.  Thanks to Matt Armstrong and Rudolf Adamkovič
   2907   for the feedback on the mailing list:
   2908   <https://lists.sr.ht/~protesilaos/modus-themes/%3C87bktlvgyy.fsf@rfc20.org%3E>.
   2909 
   2910 ,* Fixed the ':link' value in the declaration of the user options
   2911   'modus-themes-operandi-color-overrides', 'modus-themes-vivendi-color-overrides'.
   2912   It once again directs to the correct heading in the manual.
   2913 
   2914 ,* Documented all the aforementioned, where necessary.
   2915 
   2916 ,* Mentioned my 'fontaine' and 'lin' packages in the relevant sections of
   2917   the manual.  The former helps set fonts and switch between font
   2918   presents.  The latter is a stylistic variant of hl-line (its
   2919   documentation explains its raison d'être).
   2920 #+end_src
   2921 
   2922 * 2.4.0
   2923 :PROPERTIES:
   2924 :CUSTOM_ID: h:ee0dcce9-3481-4533-8ded-a9a1f5269a41
   2925 :END:
   2926 
   2927 #+begin_src text
   2928 Modus themes version 2.4.0
   2929 
   2930 By Protesilaos Stavrou <info@protesilaos.com> on 2022-06-01
   2931 
   2932 This entry documents the changes made to the project since the
   2933 publication of version 2.3.0 on 2022-04-01.  It spans more than 60
   2934 commits to an already stable project.
   2935 
   2936 The 'modus-operandi' and 'modus-vivendi' themes are built into Emacs-28
   2937 (next stable release) or later, and are available on GNU ELPA as well as
   2938 other archives.  Emacs-28 ships version 1.6.0, while the current
   2939 'master' branch (i.e. Emacs-29) and, by extension, GNU ELPA include the
   2940 latest tagged release.  The packaged version is available as
   2941 'modus-themes'.
   2942 
   2943 Read the manual inside Emacs by evaluating:
   2944 
   2945     (info "(modus-themes) Top")
   2946 
   2947 Or visit: <https://protesilaos.com/emacs/modus-themes>.
   2948 
   2949 
   2950 Migration to SourceHut
   2951 ======================
   2952 
   2953 The sources of the project are as follows:
   2954 
   2955 - Git repo on SourceHut: <https://git.sr.ht/~protesilaos/modus-themes>
   2956   - Mirrors:
   2957     - GitHub: <https://github.com/protesilaos/modus-themes>
   2958     - GitLab: <https://gitlab.com/protesilaos/modus-themes>
   2959 - Mailing list: <https://lists.sr.ht/~protesilaos/modus-themes>
   2960 
   2961 - Official manual: <https://protesilaos.com/emacs/modus-themes>
   2962 - Change log: <https://protesilaos.com/emacs/modus-themes-changelog>
   2963 - Colour palette: <https://protesilaos.com/emacs/modus-themes-colors>
   2964 - Sample pictures: <https://protesilaos.com/emacs/modus-themes-pictures>
   2965 
   2966 It is still possible to open issues on either of the mirrors and I will
   2967 handle them in a timely fashion, though I encourage you to at least try
   2968 the mailing list workflow---it is ordinary email (just remember to
   2969 "reply to all").
   2970 
   2971 Further reading that is relevant to SourceHut:
   2972 
   2973 - Moving all my Emacs projects to SourceHut:
   2974   <https://protesilaos.com/codelog/2022-04-07-all-emacs-projects-sourcehut/>
   2975 
   2976 - Primer on formatting Git patches with Emacs (Magit):
   2977   <https://protesilaos.com/codelog/2022-04-09-simple-guide-git-patches-emacs/>
   2978 
   2979 
   2980 Problems with byte compilation on Emacs 29
   2981 ==========================================
   2982 
   2983 For some time between mid-April to mid-May, users of Emacs 29 could not
   2984 byte compile the Modus themes.  This has now been fixed in emacs.git,
   2985 per bug#55414: <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=55414>.
   2986 Thanks to everyone involved (A-Z): Alan Mackenzie, Eli Zaretskii, Lars
   2987 Ingebrigtsen, Mattias Engdegård, Stefan Monnier.
   2988 
   2989 
   2990 Messages about invalid face attributes while using the centaur-tabs
   2991 ===================================================================
   2992 
   2993 I mentioned this issue in the previous change log as well: upstream does
   2994 not allow us to use indirection in faces (the ':inherit' attribute).
   2995 This is not our bug.  It is standard behaviour for themes to use
   2996 inheritance.
   2997 
   2998 I have an open pull request on the matter (since 2022-02-24):
   2999 <https://github.com/ema2159/centaur-tabs/pull/179>.
   3000 
   3001 Relevant reports:
   3002 
   3003 - <https://github.com/protesilaos/modus-themes/issues/30>
   3004 - <https://gitlab.com/protesilaos/modus-themes/-/issues/288>
   3005 - <https://github.com/protesilaos/modus-themes/issues/15>
   3006 
   3007 
   3008 Support for new faces or face groups
   3009 ====================================
   3010 
   3011 Directly supported
   3012 ------------------
   3013 
   3014 These are packages whose faces we override to make them work with the
   3015 themes.
   3016 
   3017 - 'calibredb'.  I have tried to limit the wanton use of colour in the
   3018   relevant buffers and also align the package with the overall style of
   3019   the themes.  The currently selected line is affected by the user
   3020   option 'modus-themes-hl-line'.
   3021 
   3022   Thanks to Ivan Popovych for the feedback on the official mailing list:
   3023   <https://lists.sr.ht/~protesilaos/modus-themes/%3C87zgkgroi7.fsf%40gmail.com%3E>.
   3024 
   3025   Ivan also introduced some new faces to 'calibredb', which I helped
   3026   test.  See: <https://github.com/chenyanming/calibredb.el/pull/60>.
   3027 
   3028 - 'ein' (Emacs IPython Notebook).  We support its code blocks with the
   3029   appropriate colouration, while avoiding exaggerations.  Thanks to
   3030   Maxime Tréca for the feedback in issue 31 over at the GitHub mirror:
   3031   <https://github.com/protesilaos/modus-themes/issues/31>.
   3032 
   3033 - 'tree-sitter'.  My intent was to reduce the overall colouration
   3034   produced by the default 'tree-sitter' faces.  These tweaks give us
   3035   good results, though there still are some cases where 'tree-sitter'
   3036   exaggerates the styles it uses, such as by combining types with
   3037   constants to produce ad-hoc (anonymous) faces.  We cannot do anything
   3038   about anonymous faces at the theme level.  As such, we may get an
   3039   additional bold weight (when 'modus-themes-bold-constructs' is
   3040   non-nil) when we would rather not have it and/or a different colour
   3041   than the one desired.
   3042 
   3043   Thanks to Przemysław Kryger for the feedback in issue 303 over at the
   3044   GitLab mirror: <https://gitlab.com/protesilaos/modus-themes/-/issues/303>.
   3045 
   3046   If you are involved in the 'tree-sitter' project, please eliminate all
   3047   anonymous faces and replace them with symbols (i.e. defface) that are
   3048   editable by the user/theme.  You are welcome to contact me if you need
   3049   help/ideas.
   3050 
   3051 - 'vundo'
   3052 
   3053 
   3054 Indirectly supported
   3055 --------------------
   3056 
   3057 These are packages that either (i) inherit from base faces we already
   3058 support, or (ii) use colours from the Modus themes' palette.  A list of
   3059 them is available in the manual.
   3060 
   3061 - egerrit.  an in-development package by Niklas Eklund which provides an
   3062   Emacs interface to Gerrit: <https://git.sr.ht/~niklaseklund/egerrit>.
   3063 
   3064 
   3065 Changes to supported face
   3066 =========================
   3067 
   3068 - Reworked the internal functions that handle the styling of diffs to
   3069   allow the user option 'modus-themes-deuteranopia' to combine with the
   3070   styles of the 'modus-themes-diffs' option.
   3071 
   3072   Before, when 'modus-themes-deuteranopia' was non-nil it would affect
   3073   diffs by forcibly applying the default style of 'modus-themes-diffs'
   3074   (fairly prominent background colours) with the primary difference of
   3075   replacing greens with blues.
   3076 
   3077   Now all combinations work as expected.  For example:
   3078 
   3079       (setq modus-themes-deuteranopia t
   3080             modus-themes-diffs 'desaturated) ; nil, 'desaturated, 'bg-only
   3081 
   3082   Thanks to Kevin Le Gouguec for the feedback on the mailing list:
   3083   <https://lists.sr.ht/~protesilaos/modus-themes/%3C878rqt4jhm.fsf@gmail.com%3E>
   3084 
   3085 - Conducted a major (and highly demanding) review of the colours used by
   3086   Avy in the interest of optimising the contrast between its constructs.
   3087   Read the analysis: <https://protesilaos.com/codelog/2022-04-20-modus-themes-case-study-avy/>.
   3088 
   3089   Thanks to Daniel Mendler and Damien Cassou for their feedback on the
   3090   mailing list:
   3091 
   3092   - <https://lists.sr.ht/~protesilaos/modus-themes/%3C83f18e2e-d726-0248-72f5-95e896cbcf4c%40daniel-mendler.de%3E>
   3093   - <https://lists.sr.ht/~protesilaos/modus-themes/%3C87czhgt5nm.fsf%40cassou.me%3E>
   3094 
   3095 - Updated the 'vertico-quick' faces to be consistent with Avy.
   3096 
   3097 - Made the 'line-number' face conform with the user option
   3098   'modus-themes-mixed-fonts'.  This means that if the user option is
   3099   non-nil, line numbers of 'display-line-numbers-mode' will use a
   3100   monospaced typeface at all times (inheriting the 'fixed-pitch' face,
   3101   as explained in the themes' manual).  Otherwise they use whatever font
   3102   the 'default' face has.  This makes it better when the user enables
   3103   'variable-pitch-mode' but still wants spacing-sensitive constructs to
   3104   remain monospaced.
   3105 
   3106   Thanks to Christopher League for the feedback in issue 302 over at the
   3107   GitLab mirror: <https://gitlab.com/protesilaos/modus-themes/-/issues/302>.
   3108 
   3109 - Aligned the regexp construct faces with the meaning of the user option
   3110   'modus-themes-bold-constructs'.  They will use a bold weight only when
   3111   the user option is non-nil.  This design is consistent with all other
   3112   aspects of syntax highlighting.  These specific faces were
   3113   unconditionally bold due to a mistake of mine.
   3114 
   3115   Remember to check the manual on what "a bold weight" means, as we make
   3116   everything easy to customise (e.g. if you prefer a semibold weight):
   3117   <https://protesilaos.com/emacs/modus-themes#h:2793a224-2109-4f61-a106-721c57c01375>.
   3118 
   3119 - Removed the typographic emphasis from the 'file-name-shadow' face by
   3120   no longer inheriting the 'italic' face.  Thanks to Nicolas De Jaeghere
   3121   for the patch.
   3122 
   3123   [ Nicolas has assigned copyright to the Free Software Foundation. ]
   3124 
   3125 - Stopped using the 'inverse-video' face attribute in 'powerline'.  We
   3126   now apply the colours directly.  The reason is that 'inverse-video'
   3127   makes it tricky to override the face as it swaps the foreground with
   3128   the background.  That behaviour is only needed in special cases:
   3129   'powerline' is not one of them.
   3130 
   3131   Thanks to Thibaut Verron for the feedback in issue 305 over at the
   3132   GitLab mirror: <https://gitlab.com/protesilaos/modus-themes/-/issues/305>.
   3133 
   3134 - Ensured that git commit/rebase comments (as seen in the workflow of
   3135   the 'magit' package) inherit from appropriate font-lock faces.  This
   3136   makes it possible to customise 'font-lock-comment-face' and have the
   3137   changes apply to those elements as well.  Such a customisation can,
   3138   for example, involve the change of the font family or the addition of
   3139   a background colour.  We want the whole comment block, including those
   3140   special keywords from Git, to look consistent. This change also makes
   3141   git-{commit,rebase}-comment-heading attain the foreground colour of
   3142   comments, instead of the default one (black or white), making it look
   3143   part of the comment block.
   3144 
   3145 - Tweaked the 'fountain' package comments to be the same as all others.
   3146   This avoids inconsistencies, such as when the user opts for something
   3147   like the following:
   3148 
   3149       (setq modus-themes-syntax '(yellow-comments))
   3150 
   3151 - Disabled padding in the 'keycast' package, meaning that the box around
   3152   the key indicator always has the same height, even if the user opts
   3153   for a padding value in 'modus-themes-mode-line' (read the manual or
   3154   its doc string for how to assign a padding).
   3155 
   3156   This is in response to a change upstream that introduces the
   3157   'keycast-tab-bar-mode', which re-uses the faces that were originally
   3158   intended for the mode line in the tab-bar.  Ideally, upstream will
   3159   provide distinct faces for each context so that we can have padding in
   3160   the mode line but not the tab-bar.  However, I have not had the
   3161   opportunity to suggest such a change and/or prepare the relevant patch
   3162   (it is not straightforward).
   3163 
   3164 - Refined some colour combinations for the "alternative syntax" style
   3165   that is available when the user option 'modus-themes-syntax' includes
   3166   the 'alt-syntax' property.  These tweaks pertain to changes in hue
   3167   that improve the appearance of certain faces in their context.
   3168 
   3169 - Enabled conditional use of 'fixed-pitch' for key bindings.  This
   3170   happens when the user option 'modus-themes-mixed-fonts' is non-nil
   3171   (all spacing-sensitive elements become monospaced even if the user
   3172   opts for a default font that is proportionately spaced or activates
   3173   the 'variable-pitch-mode').  Thanks to Manuel Giraud for the patch.
   3174 
   3175   [ Manuel has assigned copyright to the Free Software Foundation. ]
   3176 
   3177 - Covered the face rotation option of 'highlight-changes-mode'.  It is
   3178   done with the 'highlight-changes-rotate-faces' command when
   3179   'highlight-changes-mode' is enabled (the mode is built into Emacs).
   3180 
   3181   Thanks to Philip Kaludercic for the feedback on the mailing list:
   3182   https://lists.sr.ht/~protesilaos/modus-themes/<878rs14il4.fsf@posteo.net>
   3183 
   3184 
   3185 Updates to the manual
   3186 =====================
   3187 
   3188 - Acknowledged Andrew Tropin as one of the contributors to the Guix
   3189   package of the Modus themes.  The latest patch to that end:
   3190   <https://issues.guix.gnu.org/55268>.
   3191 
   3192 - Rewrote the note on 'fill-column-indicator' to show how the user can
   3193   use a thicker line than the one we style by default.
   3194 
   3195 - Wrote a note in manual about 'php-mode' multiline comments which use
   3196   the 'font-lock-doc-face' instead of 'font-lock-comment-face'.  Sample
   3197   code is provided to ensure consistency between all types of comments.
   3198 
   3199 - Added note about custom 'hl-todo' colours, specifically the user
   3200   option 'hl-todo-keyword-faces' (which the themes customise as an
   3201   exception to the rule, otherwise the default colours would not always
   3202   be accessible).
   3203 
   3204   This is in relation to the mailing list thread on the matter with
   3205   feedback from Vincent Foley and Christian Tietze:
   3206   <https://lists.sr.ht/~protesilaos/modus-themes/%3C871qwh1r88.fsf%40era.co%3E>.
   3207 
   3208 - Elaborated on the style of 'git-gutter' faces in Doom Emacs, which are
   3209   not as the Modus themes intend.  Basically, the problem is that Doom
   3210   changes the way that package draws its bitmaps: the faces we configure
   3211   no longer appear as intended and sensitive colouration is lost.
   3212 
   3213   Thanks to Gonçalo Marrafa for reporting the issue, testing the code we
   3214   recommend on Doom Emacs, and suggesting the inclusion of the reference
   3215   to the 'after!' call (a macro that Doom defines).
   3216 
   3217 
   3218 Miscellaneous
   3219 =============
   3220 
   3221 - Dedicated the colours of the Modus themes---just the colours---to the
   3222   public domain.  The Emacs package as a whole is still distributed
   3223   under the terms of the GNU General Public License.  The announcement:
   3224   <https://protesilaos.com/codelog/2022-05-10-modus-themes-palette-cc0/>
   3225 
   3226 - Stopped using a timestamp in the modus-themes.el file.  It could lead
   3227   to situations where there was a mismatch between the latest change and
   3228   the recorded time.  It also introduced a barrier to entry for
   3229   contributors, as they need to set up 'time-stamp.el'.
   3230 
   3231 - Removed the unnecessary 'require' call to the 'seq' library and made
   3232   the necessary changes.  Thanks to Daniel Mendler for the patch.
   3233 
   3234   [ Daniel has assigned copyright to the Free Software Foundation. ]
   3235 
   3236 - Applied the correct order of inheritance for all markup faces.  This
   3237   fixes a problem where not all typographic attributes where applied to
   3238   the faces when 'modus-themes-mixed-fonts' was non-nil and the value of
   3239   'modus-themes-markup' included '(bold italic)'.
   3240 
   3241 - Tweaked how 'org-date' conditionally uses 'fixed-pitch'.  Basically,
   3242   we remove an internal stylistic inconsistency.  There is no
   3243   user-facing change.  Thanks to Manuel Giraud for the patch.
   3244 
   3245 - Implemented the command 'modus-themes-report-bug'.  It might help
   3246   users find the email address of the mailing list and get started with
   3247   the email-centric workflow of SourceHut.  Note this is but a first
   3248   step in that direction.  If you think it can be improved, please
   3249   report as much (or send a patch).
   3250 
   3251 - Included the command 'modus-themes-version', which prints in the echo
   3252   area the current version of the package.  With an optional prefix
   3253   argument, it inserts the string at point.
   3254 
   3255   The version either is the last tagged release, such as '2.4.0', or an
   3256   in-development version like '2.5.0-dev'.  As we use semantic
   3257   versioning, tags of the '2.4.1' sort are not considered: those would
   3258   count as part of '2.5.0-dev'.
   3259 #+end_src
   3260 
   3261 * 2.3.0
   3262 :PROPERTIES:
   3263 :CUSTOM_ID: h:f95fb7e2-fcc8-43f6-bde5-27fe51b1bdd5
   3264 :END:
   3265 
   3266 #+begin_src text
   3267 Modus themes version 2.3.0
   3268 
   3269 By Protesilaos Stavrou <info@protesilaos.com> on 2022-04-01
   3270 
   3271 This entry documents the changes made to the project since the
   3272 publication of version 2.2.0 on 2022-02-23.  It spans more than 70
   3273 commits.
   3274 
   3275 To access the URL of the manual visit:
   3276 <https://protesilaos.com/emacs/modus-themes>.  Or read it in the Emacs
   3277 Info reader by evaluating:
   3278 
   3279     (info "(modus-themes) Top")
   3280 
   3281 The 'modus-operandi' and 'modus-vivendi' themes are built into Emacs-28
   3282 (next stable release) or later, and are available on GNU ELPA as well as
   3283 other archives.  Emacs-28 ships version 1.6.0, while the current
   3284 'master' branch (i.e. Emacs-29) and, by extension, GNU ELPA include the
   3285 latest tagged release.
   3286 
   3287 
   3288 Customisation options
   3289 =====================
   3290 
   3291 ,* The 'modus-themes-completions' now accepts a 'text-also' property for
   3292   the 'selection' key.  This has the effect of colourising the current
   3293   line's text.  Whereas the default does not change the text colour,
   3294   re-using whatever underlying colours are available.  Consult the doc
   3295   string of this user option, as it provides for fine-grained control of
   3296   how completion UIs may look.  Thanks to Morgan Willcock whose feedback
   3297   in issue 278 inspired me to add the 'text-also' property:
   3298   <https://gitlab.com/protesilaos/modus-themes/-/issues/278>.
   3299 
   3300 ,* The 'modus-themes-box-buttons' now accepts an 'all-buttons' property.
   3301   It applies whatever other style is used for the boxed buttons to the
   3302   generic 'widget.el'.  By default, the faces of 'widget.el' do not look
   3303   like graphical buttons: they have a bold weight and a foreground
   3304   colour instead.  Examples where those are used are the Notmuch "hello"
   3305   buffer and the main view of the 'elfeed-summary' package.  Thanks to
   3306   Daniel Mendler, Rudolf Adamkovič, and Tony Zorman for their feedback
   3307   in issue 296: <https://gitlab.com/protesilaos/modus-themes/-/issues/296>.
   3308 
   3309 ,* The 'modus-themes-intense-mouseovers' is a boolean user option which
   3310   makes mouse hover effects more intense when set to a non-nil value.
   3311   By default, mouseovers use a cyan background value.  This changes it
   3312   to a more prominent blue.  Thanks to John Haman for the feedback in
   3313   issue 290: <https://gitlab.com/protesilaos/modus-themes/-/issues/290>.
   3314 
   3315 ,* The user options 'modus-themes-box-buttons', 'modus-themes-mode-line',
   3316   'modus-themes-org-agenda', and 'modus-themes-headings' can now read a
   3317   number value as a cons cell.  The old method of a plain number
   3318   continues to work.  This makes it possible to be more descriptive on
   3319   what a given value signifies.  Each doc string describes the
   3320   technicalities.  Here are samples that yield identical results:
   3321 
   3322       (setq modus-themes-mode-line '(accented 0.9 borderless 2))
   3323       (setq modus-themes-mode-line '(accented (heigh 0.9) borderless (padding 2)))
   3324 
   3325   Thanks to Daniel Mendler for proposing this idea in issue 282:
   3326   <https://gitlab.com/protesilaos/modus-themes/-/issues/282#note_842257619>
   3327 
   3328 
   3329 Attempted bug fix for byte compiled files
   3330 =========================================
   3331 
   3332 Quoting from the git log:
   3333 
   3334     commit f067d2ef39c22174b95584f2cba7942aaf03bcca
   3335     Author: Protesilaos Stavrou <info@protesilaos.com>
   3336     Date:   Thu Mar 3 06:52:31 2022 +0200
   3337 
   3338         Reify themes with eval-and-compile
   3339 
   3340         This is an attempt to fix a bug that has existed since version 1.2.0 of
   3341         the themes or even earlier.
   3342 
   3343         The bug is about a mismatch between compiled code and runtime
   3344         dependencies.  The runtime expects the current version while the
   3345         compiled code only furnishes an outdated one, thus resulting in an
   3346         error.  This only happens when:
   3347 
   3348         1. Private functions change to accept more/fewer arguments.
   3349         2. Variables change their acceptable value (e.g. from symbol to list).
   3350         3. The user is installing the package via the package.el mechanism which
   3351            takes care of byte compilation (though anything that mimics
   3352            package.el should exhibit the same behaviour).
   3353 
   3354         My understanding is that the cause was the limited scope of the
   3355         'eval-and-compile' we had before: it would run the 'require' also at
   3356         compile time, whereas the 'modus-themes-theme' macro, which reifies the
   3357         actual theme, would only be evaluated at runtime.  Hence the mismatch as
   3358         'require' would read the already installed byte code while the macro
   3359         would expect newer forms.
   3360 
   3361         Wrapping everything in the 'eval-and-compile' should address this
   3362         problem.  Hopefully it will not engender new ones...
   3363 
   3364         ,* * *
   3365 
   3366         The latest reports about this bug:
   3367 
   3368         ,* GitLab issue 287 with Mark Bestley and Daniel Mendler:
   3369           <https://gitlab.com/protesilaos/modus-themes/-/issues/287>.
   3370 
   3371         ,* GitHub issue 22 with Rytis Paškauskas:
   3372           <https://github.com/protesilaos/modus-themes/issues/22>.
   3373 
   3374      doc/modus-themes.info   | 30 +++++++++++++++---------------
   3375      doc/modus-themes.org    | 15 ++++++++-------
   3376      modus-operandi-theme.el | 10 +++++-----
   3377      modus-vivendi-theme.el  | 10 +++++-----
   3378      4 files changed, 33 insertions(+), 32 deletions(-)
   3379 
   3380 After nearly one month, no problem has been observed as a result of this
   3381 change.
   3382 
   3383 
   3384 Newly supported packages
   3385 ========================
   3386 
   3387 These are added to the already comprehensive coverage we guarantee.
   3388 
   3389 Directly supported:
   3390 
   3391 ,* devdocs.  Thanks to Augusto Stoffel, its developer, for the feedback
   3392   which was sent via email.
   3393 
   3394 ,* mini-modeline.  Thanks to Julio C. Villasante for the feedback in
   3395   issue 24 over at the GitHub mirror:
   3396   <https://github.com/protesilaos/modus-themes/issues/24>.
   3397 
   3398 Indirectly supported (they use faces that we already cover):
   3399 
   3400 ,* elfeed-summary
   3401 ,* undo-hl
   3402 
   3403 
   3404 Changes to supported faces or packages
   3405 ======================================
   3406 
   3407 ,* Improved the colours used by 'avy' to always guarantee constrast in
   3408   hueness between side-by-side characters with a variety of user
   3409   settings.  I tried various styles, such as:
   3410 
   3411       (setq avy-style 'pre)
   3412       (setq avy-style 'at-full)
   3413 
   3414   For the sake of completeness, I also ran tests by modifying the
   3415   'avy-lead-faces' (which is a 'defconst', not a 'defcustom'):
   3416 
   3417       (setq avy-lead-faces
   3418             '(avy-lead-face
   3419               avy-lead-face-0
   3420               avy-lead-face-2
   3421               avy-lead-face
   3422               avy-lead-face-0
   3423               avy-lead-face-2))
   3424 
   3425       (setq avy-lead-faces
   3426             '(avy-lead-face
   3427               avy-lead-face-1
   3428               avy-lead-face-1
   3429               avy-lead-face-1
   3430               avy-lead-face-1))
   3431 
   3432       (setq avy-lead-faces
   3433             '(avy-lead-face
   3434               avy-lead-face-2
   3435               avy-lead-face-2
   3436               avy-lead-face-2
   3437               avy-lead-face-2))
   3438 
   3439 ,* Updated the 'vertico-quick' faces to keep them aligned with the new
   3440   Avy styles.  Thanks to Daniel Mendler (Vertico's developer) for the
   3441   reminder:
   3442   <https://gitlab.com/protesilaos/modus-themes/-/commit/404a9658196debdde95a51148fc62c5b2faccfb9#note_856454659>.
   3443 
   3444 ,* Applied warmer though still not saturated colours for Org clocking
   3445   overlays.  The previous style could be mistaken for a mouse highlight
   3446   or the highlighted line if 'modus-themes-hl-line' included the
   3447   properties 'intense' and 'accented'.  Thanks to Rudolf Adamkovič for
   3448   the feedback in issue 293:
   3449   <https://gitlab.com/protesilaos/modus-themes/-/issues/293>.
   3450 
   3451 ,* Broadened coverage of the built-in 'shr.el' library to include the new
   3452   'shr-code' face (Emacs 29).
   3453 
   3454 ,* Expanded support for the 'embark' package by covering its new
   3455   'embark-collect-marked' face.  Thanks to Daniel Mendler for the
   3456   feedback in issue 299:
   3457   <https://gitlab.com/protesilaos/modus-themes/-/issues/299>.
   3458 
   3459 ,* Made the 'fill-column-indicator' a contiguous line.  It was a dashed
   3460   line before, per the Emacs defaults, which led to awkward results
   3461   depending on the font family and value of 'line-spacing'.  Thanks to
   3462   Daniel Mendler for the feedback in issue 297:
   3463   <https://gitlab.com/protesilaos/modus-themes/-/issues/297>.
   3464 
   3465 ,* Added explicit support for the built-in 'separator-line' face in order
   3466   to refine its presentation.  This is present in 'M-x shortdoc' buffers
   3467   (Emacs 28).  Thanks to Daniel Mendler for the feedback in issue 297:
   3468   <https://gitlab.com/protesilaos/modus-themes/-/issues/297>.
   3469 
   3470 ,* Applied explicit styling to the generic 'underline' face in order to
   3471   ensure its consistent colouration.  The problem before was that an
   3472   underline that spanned text with distinct colours would inherit the
   3473   colour of the affected character.  A uniform presentation makes
   3474   everything easier to read.
   3475 
   3476 ,* The 'ement.el' Matrix client now uses a subtle background for username
   3477   mentions and/or quoted text.  This is consistent with how other Matrix
   3478   clients style such constructs.  Thanks to Adam Porter (aka
   3479   "alphapapa"), the developer of ement.el, for explaining the
   3480   technicalities and providing the relevant feedback in issue 25 over at
   3481   the GitHub mirror: <https://github.com/protesilaos/modus-themes/issues/25>.
   3482 
   3483 ,* Enforced consistency between 'icomplete' and 'ido'.  The first match
   3484   was coloured differently in 'ido-mode' by mistake.  Thanks to Morgan
   3485   Willcock for the feedback in issue 278:
   3486   <https://gitlab.com/protesilaos/modus-themes/-/issues/278>.
   3487 
   3488 ,* Used the main foreground for Company's tooltip.  This is how it should
   3489   have been.  Corfu is designed that way as well.  Thanks to user okamsn
   3490   for the feedback in issue 278:
   3491   <https://gitlab.com/protesilaos/modus-themes/-/issues/278>.
   3492 
   3493 ,* Corrected an omission whereby the AUCTeX verbatim face was not
   3494   consistent with other such faces.  Now it too is governed by the user
   3495   option 'modus-themes-markup'.
   3496 
   3497 ,* Fixed the 'centaur-tabs' invalid background message.  Thanks to
   3498   Lennart C. Karssen for reporting the bug in issue 288:
   3499   <https://gitlab.com/protesilaos/modus-themes/-/issues/288>.  Note,
   3500   however, that the problem is due to some decisions made upstream.  My
   3501   patch has not been merged yet (open since 2022-02-24):
   3502   <https://github.com/ema2159/centaur-tabs/pull/179>.  Given this
   3503   opportunity, always anticipate that faces may ':inherit' from others
   3504   and thus functions like 'face-background' might return an undesirable
   3505   nil value if used without a fallback.
   3506 
   3507 
   3508 Miscellaneous
   3509 =============
   3510 
   3511 ,* Made the 'modus-themes--current-theme' return the first Modus theme
   3512   instead of the 'car' of 'custom-enabled-themes'.  This makes the
   3513   themes work at all times even when the user has multiple of them
   3514   enabled.  Thanks to Pierre Téchoueyres for the patch, which was sent
   3515   via email with regard to Emacs bug#54598:
   3516   <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=54598>.
   3517 
   3518 ,* Implemented compile-time requirement for built-in libraries to be sure
   3519   that the themes work in all cases.  Thanks to Antonio Hernández Blas
   3520   for reporting in issue 292 the bug with the old design that assumed
   3521   the 'cl-lib' and 'subr-x' as already loaded:
   3522   <https://gitlab.com/protesilaos/modus-themes/-/issues/292>.
   3523 
   3524 ,* Wrote in the manual how to achieve a monochrome style (with
   3525   permutations) for code syntax highlighting.  Thanks to Augusto Stoffel
   3526   for sharing the idea via an email exchange (this information is
   3527   divulged with permission).
   3528 
   3529 ,* Clarified some statements in the manual's section about the nuances in
   3530   "enabling" and "loading" a theme.
   3531 
   3532 ,* Documented how the applicable palette affects the outer boundaries of
   3533   the colour range that terminal emulators set when Emacs is ran without
   3534   a GUI.  Here "the palette" refers to the relevant 16 ANSI escape
   3535   sequences (terminal colours 0 through 15).  For the sake of
   3536   convenience, the node includes ready-to-use palettes for XTerm, which
   3537   can be adapted to other terminal emulators.  This entry complements an
   3538   existing one on improving the colour accuracy in terminal emulators.
   3539 
   3540 ,* Used American English constructions in a few places such as "color"
   3541   instead of "colour" as that is what core Emacs expects (and the themes
   3542   are part of emacs.git).
   3543 
   3544 ,* Updated the description of the themes to be more user-friendly.
   3545   Instead of "Highly accessible themes (WCAG AAA)" we now have "Elegant,
   3546   highly legible and customizable themes".  Nothing changes in terms of
   3547   substance.  Thanks to Jorge Morais for the feedback.
   3548 
   3549 ,* Clarified that the version of the themes which is built into Emacs
   3550   does not use 'require'.  It is in response to this thread:
   3551   <https://lists.gnu.org/archive/html/help-gnu-emacs/2022-03/msg00049.html>.
   3552   Thanks to Philip Kaludercic for bringing the issue to my attention.
   3553 
   3554 ,* Improved the code samples that show how to set up the package.
   3555 
   3556 ,* Wrote the correct symbols for some obsoletion forms.
   3557 
   3558 Thanks once again to everyone involved!
   3559 #+end_src
   3560 
   3561 * 2.2.0
   3562 :PROPERTIES:
   3563 :CUSTOM_ID: h:251849ee-3328-48c7-af5f-d1d6daca3a97
   3564 :END:
   3565 
   3566 #+begin_src text
   3567 Modus themes version 2.2.0
   3568 
   3569 By Protesilaos Stavrou <info@protesilaos.com> on 2022-02-23
   3570 
   3571 The present entry records the changes made to the project since the
   3572 publication of version 2.1.0 on 2022-02-17.  This spans about 10 commits
   3573 (though one of them is massive).  Normally the release cycle occurs over
   3574 periods of 4-5 weeks.  This is a necessary exception.
   3575 
   3576 To access the URL of the manual visit this web page:
   3577 <https://protesilaos.com/emacs/modus-themes>.  Or read it in the Emacs
   3578 Info reader by evaluating this form:
   3579 
   3580     (info "(modus-themes) Top")
   3581 
   3582 The 'modus-operandi' and 'modus-vivendi' themes are built into Emacs-28
   3583 (next stable release) or later, and are available on GNU ELPA as well as
   3584 other archives.  Emacs-28 ships version 1.6.0, while the current
   3585 'master' branch (i.e. Emacs-29) and, by extension, GNU ELPA include the
   3586 latest tagged release.
   3587 
   3588 
   3589 Initialisation of user options
   3590 ==============================
   3591 
   3592 Removed a superfluous default value that hampered the initialisation of
   3593 defcustom forms in the M-x customize interface.  Things would still
   3594 work, but the interface was not looking right while editing the relevant
   3595 variables.  Thanks to Gustavo Barros for reporting the bug in issue 267:
   3596 <https://gitlab.com/protesilaos/modus-themes/-/issues/267>.
   3597 
   3598 
   3599 Refactor 'modus-themes-completions'
   3600 ===================================
   3601 
   3602 Implemented thoroughgoing reforms across all completion User Interfaces
   3603 (UIs) in order to make them more flexible/powerful and harmonise their
   3604 looks.
   3605 
   3606 'modus-themes-completions' now accepts an alist instead of a symbol.
   3607 Each cons cell is in the form of '(key . list-of-properties)'.  The doc
   3608 string describes all the details.
   3609 
   3610 In terms of out-of-the-box appearences, all completion UIs have a subtle
   3611 aesthetic.  This was always the case for the likes of Vertico, Icomplete
   3612 (Fido), and related, though it constitutes a marked departure from what
   3613 Ivy and Helm used to look like.  Users of the latter two can still get
   3614 the more colourful or intense style with something like this:
   3615 
   3616     (setq modus-themes-completions '((matches . (background intense))
   3617                                      (selection . (accented intense))
   3618                                      (popup . (accented intense))))
   3619 
   3620 Or simply:
   3621 
   3622     (setq modus-themes-completions '((t background intense accented)))
   3623 
   3624 The documentation explains all those associations in-depth.  There also
   3625 are other styles on offer (and combinations thereof).
   3626 
   3627 Furthermore, the new 'modus-themes-completions' encompasses more UIs
   3628 than its predecessor, including Company and Corfu.
   3629 
   3630 In the interest of theme-wide consistency, all applicable faces have
   3631 been reviewed.
   3632 
   3633 Finally, note that the previous tagged release also made changes on this
   3634 front, but it did not disrupt the status quo that was in place from
   3635 before the release of version 1.0.0 of the themes (more than a year
   3636 ago).  In other words, it tried to make unnecessary compromises within
   3637 the confines of an outdated design that did not fit in with the rest of
   3638 the code base.  The new 'modus-themes-completions' might require manual
   3639 intervention from users who want to customise things to their liking,
   3640 though I feel this change is to our long-term benefit.
   3641 
   3642 Thanks to Daniel Mendler and Rudolf Adamkovič for their feedback in
   3643 issue 278: <https://gitlab.com/protesilaos/modus-themes/-/issues/278>.
   3644 And thanks to Kenta Usami for recommending the use of a warning in issue
   3645 286: <https://gitlab.com/protesilaos/modus-themes/-/issues/286>.
   3646 
   3647 
   3648 Miscellaneous changes
   3649 =====================
   3650 
   3651 + Removed the pseudo-button effect from the 'org-checkbox' face.  It was
   3652   not up-to-date with the current style of the rest of the themes,
   3653   including the Org constructs for source block delimiters, the TODO
   3654   keywords, the priority cookies (e.g. '[#A]'), and others.
   3655 
   3656 + Introduced a section in the manual which provides an alternative to
   3657   the standard 'modus-themes-toggle' that leverages 'enable-theme'
   3658   instead of 'load-theme' under the hood.  These technicalities are all
   3659   explained in the manual.
   3660 
   3661 + Provided an alternative greyscale palette subset for 'modus-operandi'
   3662   in the manual's section about overriding colours.
   3663 
   3664 + Added support for the built-in 'custom-variable-obsolete' face.
   3665 
   3666 + Fixed typo in the 'modus-themes-box-buttons' variable.  Thanks to
   3667   Illia Ostapyshyn for the patch in merge request 58:
   3668   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/58>.
   3669 #+end_src
   3670 
   3671 * 2.1.0
   3672 :PROPERTIES:
   3673 :CUSTOM_ID: h:15098250-7b41-404b-86e1-9a99984976b9
   3674 :END:
   3675 
   3676 #+begin_src text
   3677 Modus themes version 2.1.0
   3678 
   3679 By Protesilaos Stavrou <info@protesilaos.com> on 2022-02-17
   3680 
   3681 The present entry records the changes made to the project since the
   3682 publication of version 2.0.0 on 2021-12-24.  There have been more than
   3683 110 commits in the meantime (and this log is close to 5000 words).
   3684 
   3685 All modifications of colour combinations mentioned herein are made in
   3686 accordance with the primary accessibility objective of the themes for a
   3687 minimum contrast ratio of 7:1 between background and foreground values
   3688 in their given combination (the WCAG AAA standard for relative colour
   3689 luminance).  Edits also account for colour-coding that is optimised for
   3690 the needs of users with red-green colour deficiency (deuteranopia).
   3691 
   3692 To access the URL of the manual visit this web page:
   3693 <https://protesilaos.com/emacs/modus-themes>.  Or read it in the Emacs
   3694 Info reader by evaluating this form:
   3695 
   3696     (info "(modus-themes) Top")
   3697 
   3698 The 'modus-operandi' and 'modus-vivendi' themes are built into Emacs-28
   3699 (next stable release) or later, and are available on GNU ELPA as well as
   3700 other archives.  Emacs-28 ships version 1.6.0, while the current
   3701 'master' branch (i.e. Emacs-29) and, by extension, GNU ELPA include the
   3702 latest tagged release.
   3703 
   3704 
   3705 Commands
   3706 ========
   3707 
   3708 The following produce a buffer that previews the colour palette of the
   3709 given theme ('modus-operandi' or 'modus-vivendi').
   3710 
   3711 ,* 'modus-themes-list-colors' prompts for a theme before producing the
   3712   preview.
   3713 
   3714 ,* 'modus-themes-list-colors-current' uses the current Modus theme.
   3715 
   3716 These commands are useful to anyone who wants to reference a named
   3717 colour from the themes or copy a colour value, such as for the purposes
   3718 of user-level customisation (as documented at length in the manual
   3719 across several use-cases and with the inclusion of custom code).
   3720 
   3721 The commands are not bound to any key.
   3722 
   3723 
   3724 Customisation options
   3725 =====================
   3726 
   3727 ,* Implemented the 'modus-themes-markup' variable, which supersedes the
   3728   now-deprecated 'modus-themes-intense-markup'.  The new user option
   3729   accepts a list of properties (symbols).  It affects constructs such as
   3730   Org's =verbatim=, ~code~, and macro (with three pairs of braces).  By
   3731   default, when this user option is either nil or an empty list, the
   3732   affected constructs only have a foreground colour (e.g. Org verbatim
   3733   is magenta).  Properties that change this style are:
   3734 
   3735   1. 'italic' for an added slant to the text.
   3736   2. 'bold' for a heavier weight.
   3737   3. 'background' to add a background colour.
   3738   4. 'intense' to amplify the colouration (especially of 'background').
   3739 
   3740   As with all user options which accept a list of properties, the order
   3741   of the symbols is no significant.  In user configurations it may look
   3742   like this:
   3743 
   3744       (setq modus-themes-markup '(background intense bold))
   3745 
   3746   [ Read the manual for bold and italic fonts.  We do not hardcode a
   3747     :weight or :slant, instead giving the user the option to set their
   3748     own values.  The defaults are what you would normally expect from
   3749     "bold" and "italic". ]
   3750 
   3751   Thanks to Rudolf Adamkovič for reporting some problems with the old
   3752   design in issue 274:
   3753   <https://gitlab.com/protesilaos/modus-themes/-/issues/274>.
   3754 
   3755 ,* Added the 'modus-themes-box-buttons' which affects all pseudo
   3756   graphical buttons, such as those found in Custom UI buffers or EWW web
   3757   pages which include search forms and the like.  The variable accepts a
   3758   list of properties as its value.  By default (nil or empty list),
   3759   buttons have a grey background and the familiar 3D effect.  Valid
   3760   properties are:
   3761 
   3762   1. 'flat' to remove the 3D effect.
   3763   2. 'accented' to shift the colouration away from grey.
   3764   3. 'faint' to reduce the overall colouration (e.g. grey becomes white).
   3765   4. 'variable-pitch' to apply a proportionately spaced font.
   3766   5. 'underline' to draw a line instead of applying a 3D or flat box
   3767      (particularly useful for those who use Emacs in a terminal emulator).
   3768   6. The symbol of a font weight, such as 'bold', 'semibold', 'light' or
   3769      any one among those included in the 'modus-themes-weights' constant
   3770      (the underlying font family has to support the given weight).
   3771   7. A number, expressed as a floating point (e.g. 0.9), which adjusts
   3772      the height of the button’s text to that many times the base font
   3773      size.  The default height is the same as 1.0, though it need not be
   3774      explicitly stated.
   3775 
   3776   The order in which those symbols appear in the list is not
   3777   significant.  If 'underline' and 'flat' are both specified, the former
   3778   takes precedence.  In user init files the form may look like this:
   3779 
   3780     (setq modus-themes-box-buttons '(variable-pitch flat semilight 0.9))
   3781 
   3782   Thanks to Daniel Mendler for suggesting this user option and providing
   3783   the relevant feedback in issue 282:
   3784   <https://gitlab.com/protesilaos/modus-themes/-/issues/282>.
   3785 
   3786 ,* Expanded the 'modus-themes-mail-citations' with an 'intense' variant.
   3787   For example:
   3788 
   3789       (setq modus-themes-mail-citations 'intense)
   3790 
   3791   The default is a moderately coloured style.  Other variants include
   3792   'faint' for subtle colouration and 'monochrome' for an all-grey look.
   3793 
   3794 ,* Reviewed the 'modus-themes-completion' option and harmonised all the
   3795   face specifications it governs.  The variable now accepts a fourth
   3796   stylistic variant in 'super-opinionated': it is like the 'opinionated'
   3797   one though some details are even more pronounced.  Other noteworthy
   3798   items:
   3799 
   3800   [ Remember to read the doc string of 'modus-themes-completions', which
   3801     explains the grouping of the completion UIs. ]
   3802 
   3803   - The (setq modus-themes-completions 'moderate) style is more-or-less
   3804     the same across all completion UIs.  The highlight applied to the
   3805     current line is a bespoke shade of blue, the characters are less
   3806     saturated than before and their hues are different, though the
   3807     overall effect should still feel "sufficiently colourful, but not
   3808     overdone".
   3809 
   3810   - The (setq modus-themes-completions nil) is the same as before.
   3811     However:
   3812 
   3813       - The current line in Ivy now uses a shade of blue that is
   3814         specific to completion UIs instead of an intense cyan
   3815         background.  This is for theme-wide consistency.
   3816 
   3817       - Helm's current line has the same bespoke blue for its current
   3818         line instead of another shade of blue it was using before.
   3819 
   3820   - The (setq modus-themes-completions 'opinionated) should be the same
   3821     as before, notwithstanding the aforementioned tweaks to Ivy/Helm.
   3822 
   3823   - The (setq modus-themes-completions 'super-opinionated) for
   3824     Icomplete, Vertico, Selectrum, Mct uses the same blue for the
   3825     current line as is the default of Ivy and Helm.
   3826 
   3827   Miscellaneous:
   3828 
   3829   - The relevant private helper functions were rewritten.
   3830 
   3831   - We declare a few faces to help streamline certain styles.
   3832 
   3833   - Ivy action keys now inherit from 'modus-themes-key-binding'.  We
   3834     generally try to make all keys look the same, except when that would
   3835     be detrimental to the usability of the given context/interface.
   3836 
   3837   - Some Ivy faces are simplified or otherwise tweaked to fit in with
   3838     the rest of the theme.
   3839 
   3840   Thanks to Rudolf Adamkovič for the feedback about Vertico in issues
   3841   214 and 278 which prompted me to review all completion UIs:
   3842 
   3843   - <https://gitlab.com/protesilaos/modus-themes/-/issues/214>
   3844   - <https://gitlab.com/protesilaos/modus-themes/-/issues/278>
   3845 
   3846 ,* Adjusted the applicable hues in some 'modus-themes-syntax' variants.  In
   3847   particular:
   3848 
   3849   - The strings' hue has more hints of blue when 'modus-themes-syntax'
   3850     includes the 'green-strings' property.  Such as:
   3851 
   3852       (setq modus-themes-syntax '(green-strings))
   3853       (setq modus-themes-syntax '(alt-syntax green-strings))
   3854       (setq modus-themes-syntax '(alt-syntax green-strings faint))
   3855       (setq modus-themes-syntax '(alt-syntax green-strings faint yellow-comments))
   3856 
   3857   - Strings are more orange/yellow than red when 'modus-themes-syntax'
   3858     includes the 'alt-syntax' property but NOT the 'green-strings'.  For
   3859     example:
   3860 
   3861       (setq modus-themes-syntax '(alt-syntax))
   3862       (setq modus-themes-syntax '(alt-syntax yellow-comments))
   3863       (setq modus-themes-syntax '(alt-syntax yellow-comments faint))
   3864 
   3865   - Backslashes for regexp constructs are coloured appropriately to look
   3866     distinct from the rest of the string and from the escaped construct in
   3867     all cases.
   3868 
   3869 ,* Removed background colours from the the default style of Org block
   3870   delimiters.
   3871 
   3872   As I explained in Emacs bug#52587,[1] Org has code that overrides
   3873   themes which prefer not to extend the block delimiter faces to the
   3874   edge of the window (as we would like to do by default).  This
   3875   practically means that we cannot have backgrounds for those lines and
   3876   keep them limited to the stretch of area covered by their text.
   3877 
   3878   As such, the default for Org block delimiter lines now is a gray
   3879   foreground with no distinct background colour.  The user option
   3880   'modus-themes-org-blocks' provides "blocky" alternatives that use
   3881   background colours---those extend to the edge of the window.
   3882 
   3883   [1] <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=52587#46>
   3884 
   3885 ,* Deleted the compatibility layer for all user options that used to
   3886   accept symbols in the past but now expect a list of symbols.  The
   3887   manual contains a snippet with all customisation options for those who
   3888   do not want to read all the relevant doc strings.  Evaluate this:
   3889 
   3890       (info "(modus-themes) Customization Options")
   3891 
   3892   Or visit: <https://protesilaos.com/emacs/modus-themes#h:bf1c82f2-46c7-4eb2-ad00-dd11fdd8b53f>.
   3893 
   3894   The original plan was to remove those during the transition to version
   3895   2.0.0 (about a month ago) though I changed my mind thinking they would
   3896   not pose a longer-term problem.
   3897 
   3898   New information by Mark Bestley in issue 272 shows that this kind of
   3899   complexity can lead to errors:
   3900   <https://gitlab.com/protesilaos/modus-themes/-/issues/272#note_826725412>.
   3901 
   3902   So it is better to keep things simple and ask users to configure all
   3903   user options based on the up-to-date documentation.
   3904 
   3905   Also thanks to Saša Janiška for the feedback in issue 272.
   3906 
   3907 
   3908 New packages, faces, or face groups
   3909 ===================================
   3910 
   3911 ,* all-the-icons-dired.
   3912 
   3913 ,* all-the-icons-ibuffer.
   3914 
   3915 ,* 'child-frame-border' face (Emacs 28).
   3916 
   3917 ,* 'citar' package.  Thanks to Rudolf Adamkovič for the feedback in issue
   3918   280: <https://gitlab.com/protesilaos/modus-themes/-/issues/280>.
   3919 
   3920 ,* 'elisp-shorthand-font-lock-face' (Emacs 29).  Read the manual by
   3921   evaluating:
   3922 
   3923       (info "(elisp) Shorthands")
   3924 
   3925 ,* 'ement' (ement.el) Matrix client, though it is not listed in any
   3926   archive yet: <https://github.com/alphapapa/ement.el>.
   3927 
   3928   Thanks to Samuel Culpepper for the feedback in issue 279:
   3929   <https://gitlab.com/protesilaos/modus-themes/-/issues/279>.
   3930 
   3931   Also check the Ement issue tracker on the matter:
   3932   <https://github.com/alphapapa/ement.el/issues/53>.
   3933 
   3934 ,* 'mct' package.
   3935 
   3936 ,* 'menu' face (built-in) which is used in the menu-bar when Emacs runs
   3937   without a graphical toolkit.
   3938 
   3939 ,* 'pgtk-im-0' face (Emacs 29).  This is shown as a single-character-long
   3940   block when you type the Compose key followed by the composable
   3941   characters.
   3942 
   3943 ,* 'pyim' (an input method for CJK characters).  Thanks to Yuanchen Xie for
   3944   the contribution in merge request 57:
   3945   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/57>.
   3946   The patch is small and is thus excluded from the requirement for
   3947   copyright assignment to the FSF (remember that the themes are built
   3948   into Emacs and any major contribution needs such copyright
   3949   assignment---read the relevant entry in the themes' manual).
   3950 
   3951 ,* 'slime' and 'sly' packages.  Thanks to John Haman for the feedback
   3952   which was done via email due to some problems with the web UI on
   3953   GitLab (this information is shared with permission).  Please note that
   3954   I am not familiar with Common Lisp and could not test these
   3955   thoroughly.  Any mistakes or omissions are my own.
   3956 
   3957   Concerning the web UI, there is a fully functional mirror of the
   3958   themes on GitHub, while email is always an option.  Use whatever works
   3959   for you to report an issue or send a patch.
   3960 
   3961 ,* 'textsec' package (Emacs 29).
   3962 
   3963 New indirectly supported packages
   3964 ---------------------------------
   3965 
   3966 These inherit from base faces and look good enough already or use
   3967 appropriate colours from the Modus themes:
   3968 
   3969 ,* dtache
   3970 ,* org-remark
   3971 
   3972 
   3973 Changes to supported faces or face groups
   3974 =========================================
   3975 
   3976 ,* Stopped making key bindings look like boxes.  We revert to the old
   3977   style we were using before the introduction of the 'help-key-binding'
   3978   face (Emacs 28).
   3979 
   3980   By default Emacs 28 or higher will render all key bindings it
   3981   identifies with a box around them.  The idea is to make them look like
   3982   keys on a keyboard, which I never really liked because without
   3983   generous padding you get a very tight space between the character and
   3984   the box's borders which can look weird at small point sizes (Emacs
   3985   faces do not have padding in the same way CSS does).
   3986 
   3987   I tried following the default style for a few months and have concluded
   3988   that it is not good enough for our purposes (my preferences
   3989   notwithstanding):
   3990 
   3991   - The box attribute does not work in terminal emulators.  This means
   3992     that keys only get a subtle grey background and the default
   3993     foreground, which can be hard to make them stand out from their
   3994     surrounding text if the font height is small and/or the keybinding is
   3995     short (e.g. a single character).
   3996 
   3997   - The box and grey background combination limits our options when we
   3998     need to colour-code different types of keys.  For example, the
   3999     'which-key' package can show TAB as T and applies to it a different
   4000     face to make the distinction obvious.  In that case, the presence of
   4001     the tight box makes the use of a bold weight inappropriate: the
   4002     character and the box's borders seem to overlap.  While the grey
   4003     background limits our choice of colour as, for instance, yellow
   4004     never looks good against it.  Same principle for interfaces that can
   4005     have colour-coded keys like 'transient' and 'hydra', where we lose
   4006     much-needed flexibility.
   4007 
   4008 ,* Adjusted the brightness of the 'which-key-special-key-face'.  This is
   4009   the face that applies to special keys.  For example:
   4010 
   4011       (setq which-key-special-keys '("SPC" "TAB" "RET" "ESC" "DEL"))
   4012 
   4013 ,* Made 'transient' faces which are supposed to be de-emphasise certain
   4014   elements inherit the 'shadow' face.  This is an implicit customisation
   4015   option, as it allows the user to adjust the foreground value of all
   4016   "less important" constructs simply by changing the 'shadow' face.
   4017 
   4018 ,* Covered the 'transient-purple' face (these are like the colour-coding
   4019   of 'hydra').
   4020 
   4021 ,* Tweaked the 'transient-argument' and 'transient-value' faces to make
   4022   things look a bit more consistent with the other transient faces.
   4023   This is to avoid potential conflicts with the highlighted key
   4024   bindings, especially when transient uses hydra-style colour-coded
   4025   keys.
   4026 
   4027 ,* Applied the same metaphors for key bindings to 'marginalia-key'
   4028   ('marginalia' package) and 'embark-keybinding' ('embark' package).
   4029   They inherit the 'modus-themes-key-binding' when possible.  The only
   4030   exception is with (setq modus-themes-completions nil) where conflicts
   4031   may arise between the key's style and matching characters of the
   4032   ongoing completion session.
   4033 
   4034   Thanks to Rudolf Adamkovič for pointing out the inconsistency in issue
   4035   278: <https://gitlab.com/protesilaos/modus-themes/-/issues/278>.
   4036 
   4037 ,* Refrained from treating LaTeX sections as headings.  This is because
   4038   unlike Org/Outline/Markdown Latex is basically source code, so the
   4039   sectioning does not work the same way it does for those lightweight
   4040   markup/outlining modes.
   4041 
   4042   Furthermore, font-latex.el defines 'font-latex-fontify-sectioning'
   4043   which can be used to control the scale of those sections.  It makes
   4044   sense for the themes to not interfere with that design and just allow
   4045   users to customise things uniformly regardless of the active theme.
   4046 
   4047   Thanks to Gustavo Barros for the detailed feedback in issue 265:
   4048   <https://gitlab.com/protesilaos/modus-themes/-/issues/265>.
   4049 
   4050 ,* Reviewed the hues of 'all-the-icons' and related packages.
   4051 
   4052 ,* Applied the correct style to 'info-menu-header', meaning that it now
   4053   only uses a bold weight as it is not a real heading, instead of being
   4054   affected by the user option 'modus-themes-headings'.
   4055 
   4056 ,* Included new 'telega-entity-type-spoiler' face.  Thanks to bit9tream
   4057   for informing me about it in issue 271:
   4058   <https://gitlab.com/protesilaos/modus-themes/-/issues/271>.  The
   4059   conclusion:
   4060 
   4061       Tricky though perhaps dull
   4062 
   4063       I understand this is not an interesting topic and it probably is
   4064       too difficult to relate to the various data points without
   4065       visualising them and comparing the before and after
   4066       states. Furthermore, data can be deceptive and I have always
   4067       maintained that theme development stands at the intersection of
   4068       science and art (at least for the purposes of conforming with the
   4069       rigorous accessibility standards of the Modus themes).
   4070 
   4071       That granted, I wanted to shed light on the “behind the scenes”
   4072       work that is not immediately obvious when one checks a diff that
   4073       introduces some seemingly trivial tweaks like '#49d239'->'#49c029'
   4074       or '#7fcfff'->'#8fbfff'.
   4075 
   4076 ,* Tweaked the hues of all graph colours, which are used in the
   4077   'org-habit' table.  The changes are subtle and should improve the
   4078   overall usability of the graph.  For the technicalities, read:
   4079   <https://protesilaos.com/codelog/2022-01-02-review-modus-themes-org-habit-colours/>.
   4080 
   4081   Also thanks to Rudolf Adamkovič for reporting the problem with white
   4082   text on yellow background in issue 270:
   4083   <https://gitlab.com/protesilaos/modus-themes/-/issues/270>.
   4084 
   4085 ,* Styled the 'markdown-highlighting-face'.  This is the face used for
   4086   text in between double equals signs when the user option
   4087   'markdown-enable-highlighting-syntax' is non-nil.
   4088 
   4089 ,* Amplified the overall colouration of Eldoc's current argument.  It is
   4090   a yellow foreground with a tinted background.  The blue foreground
   4091   which was applied before could be hard to tell apart in some cases,
   4092   especially because it is a common colour that is used elsewhere in the
   4093   themes.  Whereas the warmer hues are easier to discern, especially
   4094   while relying only on peripheral vision.
   4095 
   4096   Thanks to Rudolf Adamkovič for the feedback in issue 275:
   4097   <https://gitlab.com/protesilaos/modus-themes/-/issues/275>.
   4098 
   4099 ,* Instructed Geiser to use the same style for its argument as Eldoc
   4100   (edited the faces 'geiser-font-lock-autodoc-current-arg' and
   4101   'geiser-font-lock-autodoc-identifier').
   4102 
   4103 ,* Made the 'keycast-key' face work when 'modus-themes-mode-line' has a
   4104   padding value (read the latter doc string or consult the manual).
   4105 
   4106 ,* Refined the 'magit' faces for bisect, reflog, sequence, and signature
   4107   views.  They get a bold weight and, where appropriate, are made to
   4108   comply with the 'modus-theems-deueteranopia' option (meaning that
   4109   greens turn into blues).
   4110 
   4111 ,* Recoloured 'elfeed' tags from a shade of cyan to magenta, in the
   4112   interest of theme-wide consistency but also to make them easier to
   4113   tell apart from the name of the feed.  Also updated the faces used in
   4114   the header-line to look better in context.
   4115 
   4116 ,* Removed the hardcoded ':slant italic' from the 'italic' face, which is
   4117   consistent with how we do not hardcode ':weight bold' in the 'bold'
   4118   face.
   4119 
   4120   Such a design allows users to configure those faces and have the
   4121   desired slant/weight (and even font family) apply consistently
   4122   throughout the theme.  Read the manual for further details:
   4123   <https://protesilaos.com/emacs/modus-themes#h:2793a224-2109-4f61-a106-721c57c01375>.
   4124 
   4125   Thanks to user derek-upham for pointing out the inconsistency in issue
   4126   21 over at the GitHub mirror:
   4127   <https://github.com/protesilaos/modus-themes/issues/21>.
   4128 
   4129 ,* Improved the styles that apply to compilation buffers and related.
   4130   The overarching intent was to reduce the excess colouration, without
   4131   upsetting expectations and affecting the overall presentation.
   4132 
   4133   Thanks to Rudolf Adamkovič for the feedback in issue 277:
   4134   <https://gitlab.com/protesilaos/modus-themes/-/issues/277>.
   4135 
   4136   Note that compilation buffers apply an underline by default.  The
   4137   manual explains how to change that:
   4138   <https://protesilaos.com/emacs/modus-themes#h:420f5a33-c7a9-4112-9b04-eaf2cbad96bd>.
   4139 
   4140 ,* Ensured a consistent style for the 'highlight' face across all
   4141   contexts (typically used for mouse hover effects).  The mode line has
   4142   an exception when its style includes an accented background (per
   4143   'modus-themes-mode-line').
   4144 
   4145   Thanks to Rudolf Adamkovič for the feedback in issue 214:
   4146   <https://gitlab.com/protesilaos/modus-themes/-/issues/214>.
   4147 
   4148 ,* Changed the foreground of 'mode-line-emphasis' from blue to purple, in
   4149   order to avoid potential (albeit unlikely) confusion with other
   4150   indicators.
   4151 
   4152 ,* Desaturated the 'man' and 'woman' foreground value of the bold
   4153   constructs and tweaked other faces to avoid potential inconsistencies.
   4154   Thanks to Daniel Mendler for the feedback:
   4155   <https://gitlab.com/protesilaos/modus-themes/-/commit/8080eb1c6c0020ba82e8abaa933d6686327bc616#note_841424489>.
   4156 
   4157 ,* Removed certain exaggerations from widgets as seen in the Custom UI
   4158   and EWW.  Specifically:
   4159 
   4160   - 'widget-field' does not need to ':extend', as that typically does
   4161     not look good.
   4162 
   4163   - 'custom-state' gets a warmer colour to convey its message more
   4164     effectively.
   4165 
   4166   - 'eww-form-text' no longer uses a ':box' because that breaks when the
   4167     widget occupies more than one line.
   4168 
   4169   - 'eww-form-textarea' can now inherit from 'eww-form-text'.
   4170 
   4171   Thanks to Daniel Mendler for the feedback on the style of those faces in
   4172   issue 284: <https://gitlab.com/protesilaos/modus-themes/-/issues/284>.
   4173 
   4174 
   4175 The manual
   4176 ==========
   4177 
   4178 ,* Clarified the wording of 'shr' fonts, which affect 'eww', 'elfeed',
   4179   'ement', and possibly others.
   4180 
   4181 ,* Wrote section on custom Org emphasis faces.  It includes code samples.
   4182 
   4183 ,* Answered a Frequently Asked Question on whether the Modus themes are
   4184   "colour schemes"---they are not and it is important to understand why.
   4185 
   4186 ,* Addressed another Frequently Asked Question about porting the themes
   4187   to other platforms or editors.  Relevant blog posts which explain how
   4188   complex the issue is and why porting requires the same attention to
   4189   detail as this project:
   4190 
   4191   - <https://protesilaos.com/codelog/2022-01-03-modus-themes-port-faq/>.
   4192   - <https://protesilaos.com/codelog/2022-01-23-base16-modus-themes/>.
   4193 
   4194 ,* Improved the sample code in the section about the backdrop of PDF
   4195   files while using 'pdf-tools'.  Thanks to Utkarsh Singh for the patch,
   4196   which was sent via email.
   4197 
   4198 ,* Provided sample code on an alternative style for Ediff.
   4199 
   4200   There was a discussion with Philip Kaludercic in issue 273 about making
   4201   this a defcustom: <https://gitlab.com/protesilaos/modus-themes/-/issues/273>.
   4202 
   4203   I first entertained the notion and did set up a branch for testing
   4204   purposes.  However, I ultimately decided that such a course of action
   4205   would establish a bad precedent because then every conceivable stylistic
   4206   tweak could, in principle, become a user option.  Furthermore, the
   4207   potential defcustom would introduce too much complexity as Ediff would
   4208   have to continue to behave as other diffs (per 'modus-themes-diffs') if
   4209   the user did not want the alternative style.
   4210 
   4211   As such, documenting how a user can achieve this is the right choice.
   4212 
   4213 ,* Fixed internal link in the manual.  Thanks to Rudolf Adamkovič for
   4214   reporting the problem in issue 277:
   4215   <https://gitlab.com/protesilaos/modus-themes/-/issues/277>.
   4216 
   4217 
   4218 Miscellaneous
   4219 =============
   4220 
   4221 ,* Covered workaround for improving the accuracy of colour reproduction
   4222   in terminal emulators.  The results are still not as good as the
   4223   graphical version of Emacs, though they are considerably better than
   4224   before.  Thanks to gitrj95's issue 18 at the GitHub mirror, which
   4225   prompted me to research this topic:
   4226   <https://github.com/protesilaos/modus-themes/issues/18>.
   4227 
   4228 ,* Helped report a bug in the PGTK build of Emacs where a new emacsclient
   4229   window with the 'modus-vivendi' face would not show the cursor:
   4230   <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=53073>.  Thanks to
   4231   contributed to the discussion on issue 7 over at the GitHub mirror:
   4232   <https://github.com/protesilaos/modus-themes/issues/7>
   4233 
   4234 ,* Shifted the hue of the intense 'hl-line' from a grey-cyan to a more
   4235   vivid blue by reducing the relative contribution of the green channel
   4236   of light.
   4237 
   4238   The change affects these styles:
   4239 
   4240       (setq modus-themes-hl-line '(accented intense))
   4241       (setq modus-themes-hl-line '(accented intense underline))
   4242 
   4243   Thanks to Rudolf Adamkovič for suggesting a more vivid colour in issue
   4244   214: <https://gitlab.com/protesilaos/modus-themes/-/issues/214>.
   4245 
   4246 ,* Recalibrated the 'modus-vivendi' named colour 'bg-paren-match'.
   4247 
   4248   I wanted to increase its distance relative to the main background,
   4249   just to be sure that it is easier to spot.  This is achieved by moving
   4250   the hueness from the yellow to the magenta side of the spectrum.
   4251 
   4252   Overall, the change is subtle and has no major impact on the contrast
   4253   ratio relative to the main background and foreground (we need to
   4254   consider both due to the specifics of show-paren-mode (and related)).
   4255 
   4256   The results (#5f362f is the old, #6f3355 the new):
   4257 
   4258       |         | #000000 | #ffffff | #000000 | #ffffff |
   4259       |---------+---------+---------+---------+---------|
   4260       | #5f362f |    2.06 |   10.22 |   37904 |  333060 |
   4261       | #6f3355 |    2.28 |    9.21 |   58282 |  291037 |
   4262 
   4263   The TBLFM formula for this table (org-mode notation):
   4264 
   4265       $2='(Λ $1 @1$2);%.2f :: $3='(Λ $1 @1$3);%.2f :: $4='(Δ $1 @1$4) :: $5='(Δ $1 @1$5)
   4266 
   4267   The Greek letters mean:
   4268 
   4269       (defalias 'Λ #'modus-themes-contrast)
   4270       (defalias 'Δ #'color-distance)
   4271 
   4272 ,* Expanded the "special" subset of the palette with faint variants of
   4273   the four backgrounds.  These are reserved for special circumstances,
   4274   as the name implies.  Below are the contrast values (see
   4275   'modus-themes-contrast').
   4276 
   4277       Modus Operandi main accept colours against faint special backgrounds:
   4278 
   4279       |         | #f0f1ff | #ebf5eb | #fef2ea | #faeff9 |
   4280       |---------+---------+---------+---------+---------|
   4281       | #a60000 |    7.15 |    7.17 |    7.29 |    7.16 |
   4282       | #972500 |    7.26 |    7.28 |    7.40 |    7.28 |
   4283       | #a0132f |    7.13 |    7.15 |    7.27 |    7.14 |
   4284       | #7f1010 |    9.44 |    9.47 |    9.63 |    9.47 |
   4285       | #702f00 |    8.94 |    8.97 |    9.12 |    8.96 |
   4286       | #7f002f |    9.64 |    9.67 |    9.83 |    9.66 |
   4287       | #005e00 |    7.20 |    7.23 |    7.34 |    7.22 |
   4288       | #315b00 |    7.13 |    7.15 |    7.27 |    7.15 |
   4289       | #145c33 |    7.18 |    7.20 |    7.32 |    7.20 |
   4290       | #104410 |   10.09 |   10.12 |   10.29 |   10.12 |
   4291       | #30440f |    9.56 |    9.59 |    9.75 |    9.58 |
   4292       | #0f443f |    9.76 |    9.79 |    9.96 |    9.79 |
   4293       | #813e00 |    7.14 |    7.17 |    7.28 |    7.16 |
   4294       | #70480f |    7.14 |    7.17 |    7.28 |    7.16 |
   4295       | #863927 |    7.13 |    7.15 |    7.27 |    7.15 |
   4296       | #5f4400 |    8.10 |    8.12 |    8.26 |    8.12 |
   4297       | #5d5000 |    7.17 |    7.19 |    7.31 |    7.19 |
   4298       | #5e3a20 |    8.91 |    8.94 |    9.09 |    8.93 |
   4299       | #0031a9 |    9.31 |    9.34 |    9.49 |    9.33 |
   4300       | #2544bb |    7.14 |    7.16 |    7.28 |    7.16 |
   4301       | #0000c0 |   10.64 |   10.67 |   10.85 |   10.66 |
   4302       | #003497 |    9.66 |    9.70 |    9.86 |    9.69 |
   4303       | #0f3d8c |    9.06 |    9.09 |    9.24 |    9.09 |
   4304       | #001087 |   13.15 |   13.20 |   13.42 |   13.19 |
   4305       | #721045 |    9.99 |   10.02 |   10.19 |   10.01 |
   4306       | #8f0075 |    7.72 |    7.75 |    7.88 |    7.74 |
   4307       | #5317ac |    8.98 |    9.01 |    9.16 |    9.00 |
   4308       | #752f50 |    8.22 |    8.25 |    8.38 |    8.24 |
   4309       | #7b206f |    8.22 |    8.25 |    8.38 |    8.24 |
   4310       | #55348e |    8.26 |    8.29 |    8.42 |    8.28 |
   4311       | #00538b |    7.18 |    7.20 |    7.32 |    7.19 |
   4312       | #30517f |    7.18 |    7.20 |    7.32 |    7.20 |
   4313       | #005a5f |    7.13 |    7.15 |    7.27 |    7.15 |
   4314       | #005077 |    7.76 |    7.79 |    7.91 |    7.78 |
   4315       | #354f6f |    7.49 |    7.52 |    7.64 |    7.51 |
   4316       | #125458 |    7.69 |    7.72 |    7.85 |    7.71 |
   4317 
   4318       Modus Vivendi main accept colours against faint special backgrounds:
   4319 
   4320       |         | #0e183a | #001f1a | #241613 | #251232 |
   4321       |---------+---------+---------+---------+---------|
   4322       | #ff8059 |    7.01 |    7.01 |    7.07 |    7.00 |
   4323       | #ef8b50 |    7.01 |    7.00 |    7.07 |    7.00 |
   4324       | #ff9077 |    7.85 |    7.85 |    7.93 |    7.85 |
   4325       | #ffa0a0 |    8.91 |    8.91 |    9.00 |    8.91 |
   4326       | #f5aa80 |    9.04 |    9.04 |    9.13 |    9.04 |
   4327       | #ff9fbf |    9.06 |    9.05 |    9.14 |    9.05 |
   4328       | #44bc44 |    7.04 |    7.04 |    7.11 |    7.04 |
   4329       | #70b900 |    7.13 |    7.13 |    7.20 |    7.12 |
   4330       | #00c06f |    7.24 |    7.24 |    7.31 |    7.24 |
   4331       | #78bf78 |    7.87 |    7.86 |    7.94 |    7.86 |
   4332       | #99b56f |    7.60 |    7.59 |    7.67 |    7.59 |
   4333       | #88bf99 |    8.23 |    8.22 |    8.30 |    8.22 |
   4334       | #d0bc00 |    8.98 |    8.98 |    9.07 |    8.98 |
   4335       | #c0c530 |    9.31 |    9.31 |    9.40 |    9.30 |
   4336       | #d3b55f |    8.71 |    8.71 |    8.79 |    8.71 |
   4337       | #d2b580 |    8.81 |    8.80 |    8.89 |    8.80 |
   4338       | #cabf77 |    9.28 |    9.27 |    9.36 |    9.27 |
   4339       | #d0ba95 |    9.20 |    9.20 |    9.29 |    9.20 |
   4340       | #2fafff |    7.18 |    7.18 |    7.25 |    7.18 |
   4341       | #79a8ff |    7.32 |    7.32 |    7.39 |    7.31 |
   4342       | #00bcff |    7.96 |    7.96 |    8.04 |    7.96 |
   4343       | #82b0ec |    7.74 |    7.74 |    7.81 |    7.74 |
   4344       | #a0acef |    7.97 |    7.96 |    8.04 |    7.96 |
   4345       | #80b2f0 |    7.89 |    7.88 |    7.96 |    7.88 |
   4346       | #feacd0 |    9.94 |    9.93 |   10.03 |    9.93 |
   4347       | #f78fe7 |    8.29 |    8.29 |    8.37 |    8.29 |
   4348       | #b6a0ff |    7.82 |    7.81 |    7.89 |    7.81 |
   4349       | #e0b2d6 |    9.51 |    9.50 |    9.60 |    9.50 |
   4350       | #ef9fe4 |    8.88 |    8.88 |    8.96 |    8.87 |
   4351       | #cfa6ff |    8.72 |    8.71 |    8.80 |    8.71 |
   4352       | #00d3d0 |    9.28 |    9.27 |    9.36 |    9.27 |
   4353       | #4ae2f0 |   11.09 |   11.09 |   11.20 |   11.09 |
   4354       | #6ae4b9 |   11.08 |   11.07 |   11.18 |   11.07 |
   4355       | #90c4ed |    9.34 |    9.34 |    9.43 |    9.33 |
   4356       | #a0bfdf |    9.10 |    9.09 |    9.18 |    9.09 |
   4357       | #a4d0bb |   10.18 |   10.17 |   10.27 |   10.17 |
   4358 
   4359 ,* Add docs on color overrides through blending.  Thanks to Alex Griffin
   4360   for the contribution in issue 269 and the subsequent patch in merge
   4361   request 56 (the patch is exempt from copyright assignment):
   4362 
   4363   - <https://gitlab.com/protesilaos/modus-themes/-/issues/269>.
   4364   - <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/56>.
   4365 
   4366 ,* Fixed typo in the ':group' value of some faces defined in
   4367   modus-themes.el.  Thanks to Gustavo Barros for reporting it in issue
   4368   266: <https://gitlab.com/protesilaos/modus-themes/-/issues/266>
   4369 
   4370 ,* Updated copyright statement in all .el files to use the same wording
   4371   as all other files that are built into Emacs.
   4372 
   4373 ,* Made all sorts of tweaks and refinements to doc strings and nodes in the
   4374   manual.
   4375 
   4376 Thanks again to everyone involved!  This has been yet another cycle of
   4377 intense work which further iterated on an already solid base.
   4378 #+end_src
   4379 
   4380 * 2.0.0
   4381 :PROPERTIES:
   4382 :CUSTOM_ID: h:46d92baa-eff3-4973-bac0-cf762b457e2d
   4383 :END:
   4384 
   4385 #+begin_src text
   4386 Modus themes version 2.0.0
   4387 
   4388 By Protesilaos Stavrou <info@protesilaos.com> on 2021-12-24
   4389 
   4390 This entry covers the changes made to the project since the publication
   4391 of version 1.7.0 on 2021-11-18.  There have been more than 90 commits in
   4392 the meantime.  This is a major upgrade with some backward-incompatible
   4393 changes, even though most work was done behind the scenes (i.e. not in
   4394 git commits but local testing) to guarantee the relevance of all
   4395 user-facing styles, code practices, et cetera.
   4396 
   4397 All modifications of colour combinations mentioned herein are made in
   4398 accordance with the primary accessibility objective of the themes for a
   4399 minimum contrast ratio of 7:1 between background and foreground values
   4400 in their given combination (the WCAG AAA standard for relative colour
   4401 luminance).  Edits also account for colour-coding that is optimised for
   4402 the needs of users with red-green colour deficiency (deuteranopia).
   4403 
   4404 To access the URL of the manual visit this web page:
   4405 <https://protesilaos.com/emacs/modus-themes>.  Or read it in the Emacs
   4406 Info reader by evaluating this form:
   4407 
   4408     (info "(modus-themes) Top")
   4409 
   4410 The 'modus-operandi' and 'modus-vivendi' themes are built into Emacs-28
   4411 (next stable release) or later, and are available on GNU ELPA as well as
   4412 other archives.  Emacs-28 ships version 1.6.0, while the current
   4413 'master' branch (i.e. Emacs-29) and, by extension, GNU ELPA include the
   4414 latest tagged release.
   4415 
   4416 A fully fledged org-mode file with the annotated task list for Modus
   4417 themes version 2.0.0 is supplied as complementary material to the
   4418 present entry.  It should be annexed below this text on the announcement
   4419 page: <https://protesilaos.com/codelog/2021-12-24-modus-themes-2-0-0/>.
   4420 
   4421 
   4422 Customisation options
   4423 =====================
   4424 
   4425 There are some breaking changes that were necessary to improve the code
   4426 base and make things easier as well as more efficient for end users.
   4427 Please read carefully and apologies in advance for whatever
   4428 inconvenience.
   4429 
   4430 ,* The 'modus-themes-variable-pitch-headings' no longer has any effect.
   4431   Instead, users can specify a 'variable-pitch' property to the list
   4432   they pass to the 'modus-themes-headings' or 'modus-themes-org-agenda'
   4433   (examples below).
   4434 
   4435 ,* All 'modus-themes-scale-*' options are removed.  Scaling of headings
   4436   is now handled directly by the user options 'modus-themes-headings'
   4437   and 'modus-themes-org-agenda' (code samples below).
   4438 
   4439 ,* The 'modus-themes-headings' option now accepts a floating point (see
   4440   function 'floatp') that represents the multiplier relative to the base
   4441   font size.  This can be used to scale headings accordingly.  Since
   4442   this option can target individual heading levels (for 1 through 8),
   4443   users can now implement their desired scale with greater precision.
   4444   Whereas before it was limited to the first four levels, admittedly for
   4445   no good reason.
   4446 
   4447   The newly introduced 'variable-pitch' property can also be applied on
   4448   a per-level basis (making it easy to combine with existing properties,
   4449   such as a custom weight, for maximum control).  Example:
   4450 
   4451       ;; This is an alist: read the manual or its doc string.
   4452       (setq modus-themes-headings
   4453             '((1 . (variable-pitch light 1.6))
   4454               (2 . (overline semibold 1.4))
   4455               (3 . (monochrome overline 1.2))
   4456               (4 . (overline 1.1))
   4457               (t . (rainbow 1.05))))
   4458 
   4459 ,* The 'modus-themes-org-agenda' follows the same design as the
   4460   'modus-themes-headings' where appropriate.  Headings that can be
   4461   scaled accept a floating point, while those that may be rendered in a
   4462   proportionately spaced font accept the 'variable-pitch' property.  In
   4463   addition, a custom font weight is also supported in the relevant
   4464   places (just as with 'modus-themes-headings').  Overall, the interface
   4465   can now be tailored to the user's preferences with greater precision.
   4466 
   4467       ;; This is an alist: read the manual or its doc string.
   4468       (setq modus-themes-org-agenda
   4469             '((header-block . (variable-pitch light 1.6))
   4470               (header-date . (bold-today grayscale underline-today 1.2))
   4471               (event . (accented varied))
   4472               (scheduled . uniform)
   4473               (habit . traffic-light)))
   4474 
   4475 ,* The 'modus-themes-scale-small' that was used in the Org agenda
   4476   interface has been removed.  No replacement is provided, as the
   4477   downsizing had the undesired effect of breaking the otherwise neat
   4478   alignment of elements on the grid.
   4479 
   4480 ,* The 'modus-themes-mode-line-padding' option has been removed.
   4481   Instead, users can specify a natural number (positive integer)
   4482   directly in the list of properties passed to the
   4483   'modus-themes-mode-line' variable.  This has no effect when the
   4484   'moody' property is also set, because the Moody library applies its
   4485   own padding.  For example:
   4486 
   4487       (setq modus-themes-mode-line '(borderless accented 4))
   4488 
   4489   Though not related to changes on our end, users of Emacs 29 must now
   4490   set 'x-use-underline-position-properties' to nil for padding to work
   4491   properly (due to other adjustments upstream).  This relates to Emacs
   4492   bug#52324 we had reported:
   4493   <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=52324>.
   4494 
   4495 ,* All deuteranopia styles are consolidated in a single toggle:
   4496   'modus-themes-deuteranopia'.  The 'modus-themes-success-deuteranopia'
   4497   is thus rendered obsolete and superseded, while the individual
   4498   deuteranopia-friendly styles for diffs ('modus-themes-diffs') and the
   4499   Org agenda's habit graph ('modus-themes-org-agenda') are altogether
   4500   removed.  As opposed to top-level forms, there is no clean way to
   4501   notify the user of the deprecation of individual values of a user
   4502   option.
   4503 
   4504 ,* The "foreground only" style has been altogether removed from the user
   4505   option 'modus-themes-diffs'.  It never was up to the aesthetic
   4506   standard of the themes even though the colours met the minimum 7:1
   4507   contrast ratio.  There is a new section in the manual which documents
   4508   how to implement such a style with user-level configurations.  Short
   4509   version:
   4510 
   4511       (defun my-modus-themes-custom-faces ()
   4512         (modus-themes-with-colors
   4513           (custom-set-faces
   4514            `(modus-themes-diff-added ((,class :background unspecified :foreground ,green))) ; OR ,blue for deuteranopia
   4515            `(modus-themes-diff-changed ((,class :background unspecified :foreground ,yellow)))
   4516            `(modus-themes-diff-removed ((,class :background unspecified :foreground ,red)))
   4517 
   4518            `(modus-themes-diff-refine-added ((,class :background ,bg-diff-added :foreground ,fg-diff-added)))
   4519            ;; `(modus-themes-diff-refine-added ((,class :background ,bg-diff-added-deuteran :foreground ,fg-diff-added-deuteran)))
   4520            `(modus-themes-diff-refine-changed ((,class :background ,bg-diff-changed :foreground ,fg-diff-changed)))
   4521            `(modus-themes-diff-refine-removed ((,class :background ,bg-diff-removed :foreground ,fg-diff-removed)))
   4522 
   4523            `(modus-themes-diff-focus-added ((,class :background ,bg-dim :foreground ,green))) ; OR ,blue for deuteranopia
   4524            `(modus-themes-diff-focus-changed ((,class :background ,bg-dim :foreground ,yellow)))
   4525            `(modus-themes-diff-focus-removed ((,class :background ,bg-dim :foreground ,red)))
   4526 
   4527            `(modus-themes-diff-heading ((,class :background ,bg-alt :foreground ,fg-main)))
   4528 
   4529            `(diff-indicator-added ((,class :foreground ,green))) ; OR ,blue for deuteranopia
   4530            `(diff-indicator-changed ((,class :foreground ,yellow)))
   4531            `(diff-indicator-removed ((,class :foreground ,red)))
   4532 
   4533            `(magit-diff-added ((,class :background unspecified :foreground ,green-faint)))
   4534            `(magit-diff-changed ((,class :background unspecified :foreground ,yellow-faint)))
   4535            `(magit-diff-removed ((,class :background unspecified :foreground ,red-faint)))
   4536            `(magit-diff-context-highlight ((,class :background ,bg-dim :foreground ,fg-dim))))))
   4537 
   4538       ;; This is so that the changes persist when switching between
   4539       ;; modus-operandi and modus-vivendi
   4540       (add-hook 'modus-themes-after-load-theme-hook #'my-modus-themes-custom-faces)
   4541 
   4542 
   4543 Removed support for packages
   4544 ============================
   4545 
   4546 The following are no longer supported by the themes.  The reasons vary
   4547 in each case, though they boil down to (i) the package being obsoleted,
   4548 or (ii) the package's faces inheriting from base faces that we already
   4549 support (e.g. font-lock).  Each case was carefully considered as part of
   4550 the comprehensive review of all packages supported by the themes, though
   4551 chances are that some mistake was made regardless.  If you believe a
   4552 package should not have been removed, please report as much.
   4553 
   4554 ,* ag
   4555 ,* apt-sources-list
   4556 ,* apt-sources-list
   4557 ,* buffer-expose
   4558 ,* counsel-org-capture-string
   4559 ,* define-word
   4560 ,* diredc
   4561 ,* disk-usage
   4562 ,* easy-kill
   4563 ,* flyspell-correct
   4564 ,* git-gutter{,fringe}+
   4565 ,* git-lens
   4566 ,* git-walktree
   4567 ,* highlight-blocks
   4568 ,* highlight-defined
   4569 ,* highlight-escape-sequences
   4570 ,* highlight-symbol
   4571 ,* highlight-tail
   4572 ,* hyperlist-mode
   4573 ,* isl (isearch-light)
   4574 ,* minibuffer-line
   4575 ,* mu4e-conversation
   4576 ,* no-emoji
   4577 ,* objed
   4578 ,* parrot
   4579 ,* phi-search
   4580 ,* pkgbuild-mode
   4581 ,* rainbow-identifiers
   4582 ,* sallet
   4583 ,* spell-fu
   4584 ,* spray
   4585 ,* swoop
   4586 ,* vdiff
   4587 ,* volatile-highlights
   4588 
   4589 
   4590 Changes to supported faces or face groups
   4591 =========================================
   4592 
   4593 ,* Eliminated any possible exaggerations in wgrep faces.  Those no longer
   4594   use coloured backgrounds.  Instead they have colour-coded foreground
   4595   colours as well as a bold weight (they ultimately inherit from the
   4596   'bold' face, which is a "hidden" customisation option, as explained in
   4597   the manual).
   4598 
   4599 ,* Forced Org block delimiters to not extend their background by default
   4600   (though check 'modus-themes-org-blocks').  That was the intended
   4601   design all along, but now it needs to be made explicit.  See, for
   4602   example, bug#52587 for Emacs:
   4603   <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=52587>
   4604 
   4605 ,* Revised the 'org-sexp-date' face so that it no longer looks like
   4606   'org-date'.  Dates are clickable buttons: they work like links, so
   4607   they have an underline by default and are subject to the
   4608   'modus-themes-links' user option.  Whereas the 'org-sexp-date' is not
   4609   applied to interactive elements and must thus be visually distinct.
   4610 
   4611   This face is used for diary-style entries in Org files.  For example:
   4612 
   4613       %%(diary-anniversary 2000 12 25) NAME %d%s birthday
   4614 
   4615 ,* Rewrote several Auctex/Tex faces to inherit from base faces where
   4616   relevant (e.g. 'bold', 'success') as well as from font-lock faces.  In
   4617   the latter case, the end-result makes Auctex/Tex subject to the
   4618   'modus-themes-syntax' option.  These refinements promote theme-wide
   4619   consistency without detracting from the established styles.
   4620 
   4621 ,* Improved Git (Magit) commit faces for warnings or errors.  This
   4622   concerns two cases:
   4623 
   4624   1. The summary line exceeds the recommended limit of 50 characters.
   4625      This now uses a yellow foreground colour which contrasts well with
   4626      the summary line's new blue hue (blue and yellow are complementary
   4627      for our purposes, meaning that they have good contrast in hueness).
   4628 
   4629   2. The second line (the one right below the summary) has text that
   4630      should not be there.  This one is coloured in a shade of red, which
   4631      again contrasts well with blue.
   4632 
   4633   Thanks to Damien Cassou for noticing in issue 261 that the previous
   4634   style of applying tinted backgrounds did not work well when
   4635   'hl-line-mode' was enabled ('hl-line-mode' overrides backgrounds and
   4636   so the warnings/errors where not always obvious):
   4637   <https://gitlab.com/protesilaos/modus-themes/-/issues/261>.
   4638 
   4639 ,* Added support for the new 'magit-branch-warning' face that we helped
   4640   upstream define: <https://github.com/magit/magit/issues/4550>.  It
   4641   disambiguates warnings in Magit status buffers from the generic and
   4642   often inappropriate for such a context 'font-lock-warning-face'.
   4643 
   4644 ,* Simplified all the Apropos faces.  They no longer look like buttons or
   4645   links as that makes the presentation of 'M-x apropos' very busy.
   4646   Instead, they now only have a foreground colour.
   4647 
   4648 ,* Updated support for org-roam faces by removing old entries and
   4649   covering new ones.
   4650 
   4651 ,* Replaced old company-mode faces with their new aliases:
   4652 
   4653   - company-scrollbar-bg => company-tooltip-scrollbar-thumb
   4654   - company-scrollbar-fg => company-tooltip-scrollbar-track
   4655 
   4656 ,* Made 'org-column-title' inherit from 'fixed-pitch' when the user
   4657   option 'modus-themes-mixed-fonts' is non-nil.  This is needed to line
   4658   up columns correctly.  Thanks to Björn Lindström for the contribution
   4659   in merge request 52:
   4660   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/52>.
   4661 
   4662 ,* Forced the 'org-colview' faces to use the same height, even when
   4663   headings are scaled (see 'modus-themes-headings').  This ensures that
   4664   the columns are aligned properly and text fits on the same row.
   4665   Thanks to Björn Lindström for the contribution in merge request 53:
   4666   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/53>.
   4667 
   4668 ,* Refrained from applying a bold weight to the Org date selection
   4669   indicator in the calendar. The use of bold has the potential to create
   4670   problems with the alignment of dates for certain typefaces that do not
   4671   have a proper bold variant.  Also, there is no need for added emphasis
   4672   given that we already use a prominent background colour.
   4673 
   4674 ,* Made 'M-x org-table-header-line-mode' or the third-party package
   4675   'org-table-sticky-header' use colours that fit better with those of
   4676   tables.
   4677 
   4678 ,* Removed explicit styling of the 'magit-branch-current' face because
   4679   its definition checks if the ':box' attribute can be set and if not, it
   4680   uses ':inverse-video'.  Useful for terminal emulators.
   4681 
   4682 ,* Expanded support for the 'mode-line-active' face for Emacs29.  The
   4683   face upstream basically adds proportionately spaced fonts (the
   4684   'variable-pitch' face) to the mode line.  The themes can already use
   4685   that if the user option 'modus-themes-variable-pitch-ui' is non-nil.
   4686   Thanks to Manuel Uberti for the feedback in issue 257:
   4687   <https://gitlab.com/protesilaos/modus-themes/-/issues/257>.
   4688 
   4689 ,* Implemented some stylistic refinements for ERC and Rcirc to ensure
   4690   theme-wide consistency (e.g. timestamps are a shade of cyan).
   4691 
   4692 ,* Tweaked adoc-mode faces for stylistic theme-wide consistency.
   4693 
   4694 ,* Refashioned all the git faces of Treemacs so that they are more
   4695   consistent with other such contexts or uses.  The new styles also
   4696   conform with the 'modus-themes-deuteranopia' option.
   4697 
   4698 
   4699 Miscellaneous
   4700 =============
   4701 
   4702 ,* Ended the wanton use of internal functions in places that did not
   4703   require them.  Instead, the themes define faces that evaluate such
   4704   functions once and pass their results to the relevant entries.  Cases
   4705   include:
   4706 
   4707     - Symlink and/or broken link faces in contexts such as Dired,
   4708       Eshell, Helm, Trashed.
   4709 
   4710     - Tabbed interfaces (tab-bar, tab-line, centaur-tabs).
   4711 
   4712     - Verbatim markup or that of inline code in Org, Markdown, Asciidoc,
   4713       etc.
   4714 
   4715     - The optional use of 'variable-pitch' for User Interface elements
   4716       (see 'modus-themes-variable-pitch-ui').
   4717 
   4718 ,* Refined the dedicated diff background colours of modus-vivendi that
   4719   are used when the user option 'modus-themes-deuteranopia' is non-nil.
   4720   The changes improve the distinction between all red and yellow
   4721   constructs in contexts where they appear together (e.g. smerge-mode).
   4722   Basically, yellows will look more bright, while reds appear as
   4723   brown. The corresponding blues are toned down a bit to be consistent
   4724   with the other colours.  Consequently, the standard shades of green
   4725   for added lines (when 'modus-themes-deuteranopia' is nil) are
   4726   recalibrated to combine well with all other values.
   4727 
   4728 ,* Made several faces return an 'unspecified' value instead of nil for
   4729   their unused attributes under certain circumstances.  This is to guard
   4730   against third-party code that unconditionally expects a non-nil value.
   4731 
   4732 ,* Omitted {over,under}line attributes from the mode line when the
   4733   'padded' property is added to the 'modus-themes-mode-line' user
   4734   option.  Those are not necessary in that context.  Thanks to Illia
   4735   Ostapyshyn for the contribution in merge request 54:
   4736   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/54>
   4737 
   4738 ,* Rewrote several internal functions in the interest of consistency and
   4739   clarity.
   4740 
   4741 ,* Deleted two user options that were long obsolete: (i)
   4742   'modus-themes-org-habit' has been superseded by
   4743   'modus-themes-org-agenda' since version 1.5.0 of the themes and (ii)
   4744   'modus-themes-intense-hl-line' has been replaced by
   4745   'modus-themes-hl-line' since version 1.3.0.
   4746 
   4747 ,* Removed parentheses from headings in the manual as they are invalid
   4748   characters for some version of Texinfo.  See Emacs bug#52126:
   4749   <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=52126>.
   4750 
   4751 ,* Updated all doc strings so that quoted lists yield valid syntax in
   4752   Help buffers; syntax that can be directly evaluated (otherwise Emacs
   4753   prettifies straight quotes as curly ones, which break the code).
   4754   Thanks to Christian Tietze for bringing this issue to my attention:
   4755   <https://gitlab.com/protesilaos/modus-themes/-/issues/248#note_753169268>.
   4756 
   4757 ,* Rewrote all sections of the manual to document the current state of
   4758   the project as pertains to valid user options, explicitly supported
   4759   face groups, and so on.
   4760 #+end_src
   4761 
   4762 * 1.7.0
   4763 :PROPERTIES:
   4764 :CUSTOM_ID: h:22de7065-f54c-4944-b47f-3cc8a30551c8
   4765 :END:
   4766 
   4767 #+begin_src text
   4768 Modus themes version 1.7.0
   4769 
   4770 By Protesilaos Stavrou <info@protesilaos.com> on 2021-11-18
   4771 
   4772 The present entry records the changes made to the project since the
   4773 release of version 1.6.0 on 2021-09-29.  There have been more than 60
   4774 commits since then.
   4775 
   4776 Every modification pertaining to colour combinations referenced herein
   4777 is implemented in accordance with the primary accessibility objective of
   4778 the themes for a minimum contrast ratio of 7:1 between background and
   4779 foreground values in their given combination (the WCAG AAA standard).
   4780 Edits also account for colour-coding that is optimised for the needs of
   4781 users with red-green colour deficiency (deuteranopia).
   4782 
   4783 To access the URL of the manual visit this web page:
   4784 <https://protesilaos.com/emacs/modus-themes>.  Or read it from Emacs by
   4785 evaluating this form:
   4786 
   4787     (info "(modus-themes) Top")
   4788 
   4789 The themes are built into Emacs version 28 (next stable release), and
   4790 are available on GNU ELPA as well as other archives.  This release is
   4791 the first one that is included with Emacs 29, or else the 'master'
   4792 branch in emacs.git.
   4793 
   4794 
   4795 Customisation options
   4796 =====================
   4797 
   4798 + The 'modus-themes-no-mixed-fonts' has been deprecated and replaced by
   4799   the 'modus-themes-mixed-fonts'.  This is a breaking change for users
   4800   who want to use "mixed fonts": they must set the new variable to
   4801   non-nil.
   4802 
   4803   As the name implies, the new variable changes the meaning of the
   4804   feature to make it opt-in by default.  This is consistent with the
   4805   principle of least surprise, as users may not know why some fonts look
   4806   different than others in certain cases.
   4807 
   4808   Thanks to Christian Tietze for clarifying the doc string of this new
   4809   user option in merge request 51:
   4810   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/51>.
   4811 
   4812   For context, "mixed fonts" refers to a design where spacing-sensitive
   4813   constructs, such as code blocks and Org tables, inherit from the
   4814   'fixed-pitch' face to remain monospaced (and properly aligned) at all
   4815   times.  Depending on the user's configurations, the 'fixed-pitch' face
   4816   may not use the typeface that the user expects.
   4817 
   4818   The manual provides information on how to set the desired fonts by
   4819   editing the 'default', 'fixed-pitch', and 'variable-pitch' faces.
   4820 
   4821 + The new 'modus-themes-mode-line-padding' can be used to control the
   4822   apparent padding of the mode line when the user option
   4823   'modus-themes-mode-line' includes the 'padded' property.  The padding
   4824   must be a positive integer (otherwise the code would be needlessly
   4825   complex to guard against values that make the mode line look awkward,
   4826   like anything lower than -3 or maybe even -2).
   4827 
   4828   Thanks to Guilherme Semente and Manuel Uberti for the feedback in
   4829   issue 245: <https://gitlab.com/protesilaos/modus-themes/-/issues/245>.
   4830 
   4831   Note that the out-of-the-box style of the themes has a padding of 1
   4832   (technically a ':line-width' of 1 for the ':box' attribute), whereas
   4833   the default style of Emacs has it at -1.  This is a design choice to
   4834   avoid an overlap between the outer boundaries of a font's glyphs and
   4835   the borders of the mode line, when using certain common typefaces at
   4836   various point sizes.  Such an overlap can hinder readability.
   4837 
   4838   The manual contains a new Do-It-Yourself (DIY) section with detailed
   4839   code samples on how to apply a negative value.
   4840 
   4841 + The new 'modus-themes-intense-markup' option can be set to non-nil to
   4842   make constructs such as inline code and verbatim text more colourful.
   4843   This has a general utility, though its consideration was prompted by a
   4844   phenomenon reported by Stefan Kangas in issue 238 where the overlay of
   4845   the 'hl-line-face' overrides the subtle background these constructs
   4846   use and can thus make them virtually indistinguishable from ordinary
   4847   text: <https://gitlab.com/protesilaos/modus-themes/-/issues/238>.
   4848 
   4849   Such is the standard behaviour of 'hl-line-mode' and there is nothing
   4850   a theme can (or rather "should") do about it.  Thanks to Stefan Kangas
   4851   for the feedback.
   4852 
   4853 + The 'modus-themes-headings' option can now accept and apply an exact
   4854   font weight such as 'semibold' or 'light'.  (The list of available
   4855   weights is the value of the 'modus-themes--heading-weights' internal
   4856   variable.)  This supersedes the now-deprecated 'no-bold' property:
   4857   'no-bold' is henceforth understood as the presence of a 'regular'
   4858   weight.
   4859 
   4860   Recall that this user option is an alist and can be used to target
   4861   heading levels individually, which further reinforces the utility of
   4862   this new property.
   4863 
   4864   Thanks to Christian Tietze for suggesting this idea in issue 248:
   4865   <https://gitlab.com/protesilaos/modus-themes/-/issues/248>.  And
   4866   thanks to Daniel Mendler for refining its implementation in commit
   4867   54bfd62, which was sent as a patch file (yes, we accept those and I
   4868   actually prefer them over a web app's UI).
   4869 
   4870 + The 'modus-themes-org-agenda' has seen improvements to its 'event' key
   4871   (this is an alist that has multiple keys).  It now accepts a 'varied'
   4872   property which differentiates between (i) plain timestamp entries and
   4873   (ii) entries that are generated from either the diary or a symbolic
   4874   expression.  The 'varied' property combines with the other available
   4875   properties to particularise their effects.  Consult the doc string or
   4876   the manual for the technicalities.
   4877 
   4878   Thanks to Gustavo Barros for the detailed commentary in issue 241:
   4879   <https://gitlab.com/protesilaos/modus-themes/-/issues/241>.
   4880 
   4881 + The 'modus-themes-lang-checkers' now accepts a 'faint' property.  This
   4882   has the effect of toning down the colours in use.  By default, the
   4883   only colour is that of the underline, though more can be added by
   4884   combining the properties accepted by this user option.  Consult its
   4885   doc string or the manual for further details.
   4886 
   4887   Thanks to Morgan Smith for suggesting the idea in issue 239:
   4888   <https://gitlab.com/protesilaos/modus-themes/-/issues/239>.
   4889 
   4890 
   4891 Add support for new packages or face groups
   4892 ===========================================
   4893 
   4894 + 'company-tooltip-deprecated' face.  Thanks to Roman Rudakov for the
   4895    feedback in issue 247: <https://gitlab.com/protesilaos/modus-themes/-/issues/247>.
   4896 
   4897 + 'corfu-default' face.  Thanks to Daniel Mendler (Corfu's developer)
   4898   for the feedback in issue 254:
   4899   <https://gitlab.com/protesilaos/modus-themes/-/issues/254>.
   4900 
   4901 + 'image-dired' package (Emacs 29).  Thanks to Stefan Kangas for making it
   4902   happen in emacs.git and for the feedback in issue 250:
   4903   <https://gitlab.com/protesilaos/modus-themes/-/issues/250>.
   4904 
   4905 + 'nano-modeline' package.
   4906 
   4907 + 'vertico-quick' package.  Thanks to Nicolas De Jaeghere for the
   4908   contribution in merge request 48:
   4909   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/51>.
   4910 
   4911 
   4912 Changes to existing faces or face groups
   4913 ========================================
   4914 
   4915 + Added support for the new Org agenda faces that improve the
   4916   contextuality of various views.  We implemented those upstream for Org
   4917   version 9.5 in close cooperation with Gustavo Barros.  Thanks to
   4918   Gustavo for the detailed feedback in issue 241:
   4919   <https://gitlab.com/protesilaos/modus-themes/-/issues/241>.  The
   4920   thread about the patch upstream:
   4921   <https://list.orgmode.org/87lf7q7gpq.fsf@protesilaos.com/>
   4922 
   4923 + Refined Org agenda date faces in the interest of consistency and in
   4924   accordance with the aforementioned change.  Thanks again to Gustavo
   4925   Barros for the discussion in issue 241.
   4926 
   4927 + Applied the 'shadow' face more consistently across all contexts where
   4928   only a subtle foreground value is expected.  This design choice makes
   4929   it possible for users to manually edit the foreground colour of
   4930   'shadow' to something even more subtle than the 'fg-alt' palette
   4931   variable we use, which maps to a gray colour (e.g. they could use
   4932   "gray50").
   4933 
   4934 + Implemented a subtle background colour to the 'widget-inactive' face.
   4935   This makes it easier to discern inactive buttons, checkboxes, and the
   4936   like, in contexts such as the Customize User Interface.  Thanks to
   4937   Stefan Kangas for the feedback in issue 242:
   4938   <https://gitlab.com/protesilaos/modus-themes/-/issues/242>.
   4939 
   4940 + Tweaked 'file-name-shadow' to also use italics (inherit from the
   4941   'italic' face) in order to be more easy to distinguish it from
   4942   ordinary text in the minibuffer.
   4943 
   4944   Recall that the manual documents the meaning of inheriting from the
   4945   'bold' and 'italic' faces instead of hardcoding a bold weight and an
   4946   italic slant, respectively.  In short: users can change the weight to
   4947   what they want (e.g. semibold) and/or use distinct font families.
   4948 
   4949 + Amplified the style of Version Control (VC) warnings and errors to let
   4950   them draw more attention to themselves (because these indicators need
   4951   to be acted upon).
   4952 
   4953 + Recoloured the 'custom-group-tag' face to make it fit better in its
   4954   context and be consistent with the rest of the themes' established
   4955   patterns.
   4956 
   4957 + Made marks for selection in Dired, Ibuffer, and related, conform with
   4958   the 'modus-themes-success-deuteranopia' option.  This means that they
   4959   use blue colours when the option is non-nil, instead of their default
   4960   shades of green.
   4961 
   4962 + Adjusted the box width of key bindings for Emacs 28 or higher.  They
   4963   should no longer cause any alignment issues.  This style is now used
   4964   throughout the themes, including in transient views (e.g. Magit) which
   4965   were the exception before.  Thanks to Manuel Uberti and Kevin Fleming
   4966   for the feedback in issue 232:
   4967   <https://gitlab.com/protesilaos/modus-themes/-/issues/232>.
   4968 
   4969 
   4970 Miscellaneous
   4971 =============
   4972 
   4973 + Wrote a brief description of every user option in the manual.  Also
   4974   covered its type, as in boolean, alist, et cetera.
   4975 
   4976 + Corrected the mode line border width for one combination of properties
   4977   in the 'modus-themes-mode-line' option.  This should now have the same
   4978   height as all others:
   4979 
   4980       (setq modus-themes-mode-line '(accented borderless))
   4981 
   4982 + Ensured that mode line attributes would not be set to nil, but kept at
   4983   an 'unspecified' value instead, where relevant.  This avoids problems
   4984   with [faulty] code that unconditionally depends on something that does
   4985   not exist, as in the following while ':box' is nil:
   4986 
   4987       (face-attribute 'mode-line :box)
   4988 
   4989 + Expanded, reworded, or otherwise improved the manual, based on the
   4990   aforementioned.
   4991 
   4992 Thanks once again to everyone involved!
   4993 #+end_src
   4994 
   4995 * 1.6.0
   4996 :PROPERTIES:
   4997 :CUSTOM_ID: h:e4b9945c-1db8-4626-abc9-372469b19253
   4998 :END:
   4999 
   5000 #+begin_src text
   5001 Modus themes version 1.6.0
   5002 
   5003 By Protesilaos Stavrou <info@protesilaos.com> on 2021-09-29
   5004 
   5005 This entry records the changes made to the project since the release of
   5006 version 1.5.0 on 2021-07-15.  There have been around 70 commits since
   5007 then.
   5008 
   5009 Every colour-related modification referenced herein is always
   5010 implemented in accordance with the primary accessibility objective of
   5011 the themes for a minimum contrast ratio of 7:1 between background and
   5012 foreground values in their given combination (the WCAG AAA standard).
   5013 Such edits also account for colour-coding that is optimised for the
   5014 needs of users with red-green colour deficiency (deuteranopia or
   5015 variants).
   5016 
   5017 Here is the URL of the manual: <https://protesilaos.com/emacs/modus-themes>.
   5018 Or read it from Emacs by evaluating this form:
   5019 
   5020     (info "(modus-themes) Top")
   5021 
   5022 The themes are built into Emacs version 28 (current development target),
   5023 and are available on GNU ELPA as well as other archives.  This release
   5024 is the final one for the emacs-28 branch, as that gets cut as the next
   5025 stable release of GNU Emacs.  Future releases will target Emacs 29 once
   5026 that becomes the new 'master' branch.
   5027 
   5028 
   5029 Customisation options
   5030 =====================
   5031 
   5032 [ Themes need to be reloaded for changes to take effect. ]
   5033 
   5034 + Introduced the new 'modus-themes-tabs-accented' boolean option.  When
   5035   set to non-nil, it renders the background of all tab interfaces in a
   5036   shade of blue.  Those interfaces are tab-bar (built-in), tab-line
   5037   (built-in), and Centaur tabs.
   5038 
   5039   - The background "accented" colour is the same as the one used for
   5040     mode lines when 'modus-themes-mode-line' is configured accordingly.
   5041 
   5042 + Tweaked the 'modus-themes-mode-line' to accept a 'padded' symbol as
   5043   part of the list of properties it can read.  This will increase the
   5044   spacing around the mode lines' text, making the line taller overall
   5045   but also more spacious.
   5046 
   5047   Thanks to Manuel Uberti for making the proposal and providing feedback
   5048   in issue 228: <https://gitlab.com/protesilaos/modus-themes/-/issues/228>.
   5049 
   5050 + Added the 'modus-themes-scale-small' which complements the existing
   5051   scale values with one that is meant to be smaller than the base
   5052   height.  This option is reserved for special cases and is currently
   5053   only used as an opt-in feature in the Org agenda.
   5054 
   5055 + Expanded the 'modus-themes-org-agenda' with more parameters:
   5056 
   5057   - The current date can now also be underlined.
   5058   - Date headings can be scaled/enlarged in size.
   5059   - Events, like those of the Diary or sexp entries, can be customised.
   5060 
   5061   Consult the manual or the variable's doc string for the details.
   5062 
   5063 + Removed the obsoleted aliases 'modus-themes-slanted-constructs' and
   5064   'modus-themes-scale-5'.  Those are superseded by the more
   5065   appropriately named 'modus-themes-italic-constructs' and
   5066   'modus-themes-scale-title'.
   5067 
   5068   Thanks to Nicolas De Jaeghere for the patch in merge request 47:
   5069   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/47>.
   5070 
   5071 
   5072 Faces and face groups
   5073 =====================
   5074 
   5075 + Make the 'prodigy' faces for red/green/yellow inherit from the faces
   5076   'error'/'success'/'warning', respectively.  This is done to (i) avoid
   5077   duplication and (ii) ensure that the green/success colour coding is
   5078   consistent with the goal of the themes to empower users with red-green
   5079   colour deficiency.  The boolean option that changes all such greens to
   5080   shades of blue is 'modus-themes-success-deuteranopia'.
   5081 
   5082 + Assigned the ':extend' attribute to the 'org-code' face.  This is
   5083   necessary when the Org source contains lines that start with a colon
   5084   sign.  Those are interpreted as code blocks.  For example:
   5085 
   5086       :  #+BEGIN_SRC emacs-lisp
   5087       :    (defun in-interval (bounds el)
   5088       :      (and (>= el (car bounds)) (<= el (cadr bounds))))
   5089       :  #+END_SRC
   5090 
   5091   With the ':extend' in place, the background stretches to the edge of
   5092   the window, thus giving those lines a uniform rectangular shape.  For
   5093   inline uses of 'org-code', the background should remain limited to the
   5094   span of the text.
   5095 
   5096 + Broadened support for 'marginalia' faces in two phases.
   5097 
   5098   - The first pertained to the file permissions that are shown when
   5099     completing against file paths.  Their style is similar to what
   5100     'dired+' or the 'direfl' packages provide, however we have taken
   5101     care to optimise the interface for the purposes of completion
   5102     UIs---where things can look like Dired, we make them alike, but
   5103     where they must differ, we differentiate the designs accordingly.
   5104     There can be no compromises or arbitrary constraints.
   5105 
   5106     Also read: <https://github.com/minad/marginalia/pull/91>.
   5107 
   5108   - The second batch covered all sorts of extra classes that provide
   5109     granular control over the appearance of Marginalia instances.
   5110     Refinements also had to be made to already-supported faces for the
   5111     sake of achieving consistency across the various Marginalia
   5112     interfaces.
   5113 
   5114     Also read: <https://github.com/minad/marginalia/pull/92>.
   5115 
   5116 + Refined 'diredfl' and 'dired+' faces.  For the various "priv" faces,
   5117   the intent is to increase the difference in hueness between adjacent
   5118   file permissions (the changes are minor, but they do change the
   5119   overall result).  Numbers are toned down so that they do not clash
   5120   with dates.  The file suffix no longer uses cyan to stand out more in
   5121   detailed views.
   5122 
   5123 + Made 'icomplete-selected-match' (Emacs28) more legible by aligning its
   5124   presentation with metaphors that are estaslished across the
   5125   modus-themes.  Thanks to Kévin Le Gouguec (peniblec) for noting the
   5126   inconsistency with the new face upstream and for writing the patch for
   5127   it in merge request 50:
   5128   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/50>.
   5129   Also thanks to Manuel Uberti for confirming that things would look
   5130   consistent in the comments' section of that merge request.
   5131 
   5132 + Fixed faulty inheritance for the 'web-mode-keyword-face'.  It should
   5133   now properly copy the attributes of 'font-lock-keyword-face'.
   5134 
   5135 + Made inheritance of the new 'help-key-binding' (Emacs28 key) the
   5136   default for all faces that need to style key bindings.
   5137 
   5138   In Emacs 28 all key bindings are automatically displayed with the face
   5139   'help-key-binding' which uses some new face attributes to draw a
   5140   cleaner box around it.  Given that the themes must work with earlier
   5141   versions of Emacs, we cannot inherit it unconditionally so we added
   5142   the relevant conditionality.  It is nice to offer this feature to
   5143   those who use the themes on Emacs 28.  Older versions retain the
   5144   previous style of a blue colour coupled with a bold weight.
   5145 
   5146   The exception to this rule is the transient.el faces (this is the
   5147   pop-up window used by Magit, among others---transient.el is now built
   5148   into Emacs).  The box effect creates unpredictable misalignments, so
   5149   we default to the old key binding style for those.
   5150 
   5151   Thanks to Manuel Uberti and Kevin Fleming for their feedback in issue
   5152   232: <https://gitlab.com/protesilaos/modus-themes/-/issues/232>.
   5153 
   5154 + Added support for the new 'notmuch-jump-key' face.  I contributed this
   5155   face in commits c37c9912, 5cc106b0 to the Notmuch git repo:
   5156   <https://git.notmuchmail.org/git/notmuch>.
   5157 
   5158 + Updated the 'bookmark-face' (Emacs28) as it has been changed upstream
   5159   to be a fringe indicator instead of an in-buffer, line-wide background
   5160   highlight.
   5161 
   5162 + Aligned Ediff faces with other 'modus-themes-diffs' styles.  Before we
   5163   would differentiate a "focus state", though that is now considered
   5164   surplus to requirements.  The notion of a "focus state" only make
   5165   sense in Magit which applies variegated colour-coding to diff hunks
   5166   based on their state.  Whereas non-active Ediff changes are grayed
   5167   out, so there is no need for further colour-coding nuances.  The most
   5168   noticeable change is with:
   5169 
   5170       (setq modus-themes-diffs 'bg-only)
   5171 
   5172   As noted in the commit message of 64c74ae (from 2021-09-04):
   5173 
   5174       If users think this change is for the worse, we can always define a
   5175       helper function like this:
   5176 
   5177           (defun modus-themes--ediff-style (bgonly default)
   5178             "Diff style for Ediff.
   5179           BGONLY and DEFAULT depend on the value of `modus-themes-diffs'.
   5180           The former is more subtle."
   5181             (if (eq modus-themes-diffs 'bg-only)
   5182                 (list bgonly)
   5183               (list default)))
   5184 
   5185       And apply it thus:
   5186 
   5187           `(ediff-current-diff-A ((,class :inherit ,@(modus-themes--ediff-style
   5188                                                       'modus-themes-diff-removed
   5189                                                       'modus-themes-diff-focus-removed))))
   5190 
   5191   No feedback was received towards that end in about a month, so we
   5192   consider the change to be acceptable, without prejudice to the
   5193   possibility of future updates.
   5194 
   5195 + Unified the styles of 'org-agenda-calendar-sexp', 'org-agenda-diary',
   5196   and 'org-agenda-calendar-event'.  This is not a user-facing change but
   5197   an internal refactoring to avoid repetition.  It also makes things
   5198   easier for the implementation of the 'modus-themes-org-agenda' (as
   5199   mentioned above).
   5200 
   5201 + Ensured that the 'bookmark-menu-bookmark' face inherits from the
   5202   'bold' face.  By default it hardcodes the bold weight, whereas we
   5203   instruct it to inherit the 'bold' face.  A user can thus change the
   5204   ':weight' of that face to whatever they want, like semibold,
   5205   extrabold, etc.  We do this throughout the themes for bold and
   5206   italics---consider it a "hidden feature" of sorts.  Check the manual
   5207   for more on the matter:
   5208 
   5209       (info "(modus-themes) Configure bold and italic faces (DIY)")
   5210 
   5211 + Provided support for tab-bar groups (Emacs28).  Specifically the faces
   5212   'tab-bar-tab-group-current' and 'tab-bar-tab-group-inactive'.
   5213 
   5214   Thanks to Adam Porter (alphapapa) for the feedback in issue 8 over at
   5215   the Github mirror: <https://github.com/protesilaos/modus-themes/issues/8>.
   5216 
   5217 + Decoupled the 'stripes' face from that of 'hl-line-face'.  This is
   5218   because the stripes are not meant to change depending on the value of
   5219   the user option 'modus-themes-hl-line'.
   5220 
   5221 + Revised the red shade of "flagged" entries in mu4e and notmuch.  Those
   5222   are now consistent with Gnus.  The shade of red that was used before
   5223   was closer to the orange side of the spectrum whereas the current has
   5224   hints of blue (a cherry colour) and thus combines better with the cyan
   5225   and blue that prevail in those interfaces.  These are fine margins,
   5226   though the effect is noticeable regardless.
   5227 
   5228 + Configured the new 'ansi-color' faces (Emacs28) which are used by
   5229   shells and terminals (among others).  Thanks to Manuel Uberti for
   5230   reporting the changes to upstream Emacs in issue 236:
   5231   <https://gitlab.com/protesilaos/modus-themes/-/issues/236>.
   5232 
   5233 + Expanded support for EMMS faces, pertaining to its browser views.
   5234   Thanks to Feng Shu (tumashu) for bringing those to my attention in
   5235   issue 11 over at the Github mirror:
   5236   <https://github.com/protesilaos/modus-themes/issues/11>.
   5237 
   5238 + Styled the new 'tab-line-tab-modified' face (Emacs28).  It should now
   5239   use a faint red colour to denote changes to the underlying file.
   5240   Thanks to Adam Porter (alphapapa) for bringing it to my attention in
   5241   issue 12 over at the Github mirror:
   5242   <https://github.com/protesilaos/modus-themes/issues/12>.
   5243 
   5244 + Configured the single face that the 'cursor-flash' package has to
   5245   offer.  Thanks to Manuel Uberti for the feedback in issue 231:
   5246   <https://gitlab.com/protesilaos/modus-themes/-/issues/231>.
   5247 
   5248 + Included 'elpher' in the list of supported packages by means of
   5249   covering the heading faces it implements.
   5250 
   5251 + Recalibrated certain dedicated colours for inactive tabs and tweaked
   5252   tab faces to (i) marginally improve the default aesthetic and (ii)
   5253   harmonise it with the style of 'modus-themes-tabs-accented'.
   5254 
   5255 + Removed the foreground attribute from all markup faces that are meant
   5256   to denote emphasis in italics.  That is because such faces are
   5257   typically composed with others, so we do not wish to inadvertently
   5258   override any other colour that would otherwise have taken effect.
   5259 
   5260 + Wrote the faces for upstream Org that improve the contextuality of
   5261   various agenda views (included in version 9.5).  This was done in
   5262   close collaboration with Gustavo Barros who offered detailed feedback
   5263   in issue 208 (which also led to the creation and eventual expansion of
   5264   the 'modus-themes-org-agenda' user option):
   5265   <https://gitlab.com/protesilaos/modus-themes/-/issues/208>.
   5266 
   5267   Four new faces improve certain styles and offer more flexibility for
   5268   some Org agenda views: 'org-agenda-date-weekend-today',
   5269   'org-imminent-deadline', 'org-agenda-structure-secondary',
   5270   'org-agenda-structure-filter'.  They inherit from existing faces in
   5271   order to remain backward-compatible.
   5272 
   5273   Quoting from <https://list.orgmode.org/87lf7q7gpq.fsf@protesilaos.com/>:
   5274 
   5275       + The 'org-imminent-deadline' is useful to disambiguate generic
   5276         warnings from deadlines.  For example, a warning could be
   5277         rendered in a yellow colored text and have a bold weight,
   5278         whereas a deadline might be red and styled with italics.
   5279 
   5280       + The 'org-agenda-structure-filter' applies to all tag/term
   5281         filters in agenda views that search for keywords or patterns.
   5282         It is designed to inherit from 'org-agenda-structure' in
   5283         addition to the 'org-warning' face that was present before (and
   5284         removes the generic 'warning' face from one place).  This offers
   5285         the benefit of consistency, as, say, an increase in font height
   5286         or a change in font family in 'org-agenda-structure' will
   5287         propagate to the filter as well.  The whole header line thus
   5288         looks part of a singular design.
   5289 
   5290       + The 'org-agenda-structure-secondary' complements the above for
   5291         those same views where a description follows the header.  For
   5292         instance, the tags view provides information to "Press N r" to
   5293         filter by a numbered tag.  Themes/users may prefer to
   5294         disambiguate this line from the header above it, such as by
   5295         using a less intense color or by reducing its height relative to
   5296         the 'org-agenda-structure'.
   5297 
   5298       + The 'org-agenda-date-weekend-today' provides the option to
   5299         differentiate the current date on a weekend from the current
   5300         date on weekdays.
   5301 
   5302 Other patches I have made to, inter alia, emacs.git and org.git with
   5303 regard to faces are documented in previous change log entries.
   5304 
   5305 
   5306 Documentation
   5307 =============
   5308 
   5309 + Removed references to old versions of the themes from before their
   5310   refactoring in version 1.0.0.  Those old packages no longer exist.
   5311   Users must install the 'modus-themes' and then load either of
   5312   'modus-operandi' or 'modus-vivendi'.
   5313 
   5314 + Included various extensions of the Vertico package in the list of
   5315   indirectly supported packages.  Those define faces which either
   5316   inherit from basic ones that we already support or use colours that
   5317   are consistent with our accessibility target.
   5318 
   5319 + Referenced 'side-hustle', 'tide', 'bufler' as an indirectly supported
   5320   packages for the same reasons.
   5321 
   5322 + Simplified time-stamp local variables that are used in modus-themes.el
   5323   to show the time the file was edited.  We apply 'time-stamp-pattern'
   5324   instead of setting multiple time-stamp variables.  Thanks to Stephen
   5325   Gildea for the patch, which was sent to me via email (yes, you can
   5326   always do that).
   5327 
   5328 + Updated the manual's "acknowledgements" section to name all new
   5329   contributors to code/ideas/feedback.
   5330 
   5331 + Furnished information on how to configure the 'highlight-parentheses'
   5332   package and extend its faces for use with the themes.  The entry
   5333   provides a complete Elisp implementation.
   5334 
   5335 + Improved the code samples for the prism.el setup that users may wish
   5336   to set up by themselves.  The new lists of colours work better when
   5337   Prism's colouration is limited to a small set of hues.
   5338 
   5339 + Deleted trailing whitespace in the manual which had adverse effects
   5340   when trying to compile the modus-themes.org over at emacs.git.  Thanks
   5341   to Philip Kaludercic for the patch in merge request 49:
   5342   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/49>.
   5343 
   5344 Thanks again to everyone involved.  Looking forward to see the Modus
   5345 themes, version 1.6.0, as part of the next stable release of Emacs.
   5346 #+end_src
   5347 
   5348 * 1.5.0
   5349 :PROPERTIES:
   5350 :CUSTOM_ID: h:05fc633d-69d6-4b5e-aade-1f9e4ba30ed3
   5351 :END:
   5352 
   5353 #+begin_src text
   5354 Modus themes version 1.5.0
   5355 
   5356 By Protesilaos Stavrou <info@protesilaos.com> on 2021-07-15
   5357 
   5358 This entry outlines the set of changes made to the project since the
   5359 release of version 1.4.0 on 2021-05-25.  There have been over 130
   5360 commits since then.
   5361 
   5362 Every colour-related modification referenced herein is always
   5363 implemented in accordance with the primary accessibility objective of
   5364 the themes for a minimum contrast ratio of 7:1 between background and
   5365 foreground values in their given combination (the WCAG AAA standard).
   5366 Such edits also account for colour-coding that is optimised for the
   5367 needs of users with red-green colour deficiency (deuteranopia or
   5368 variants).
   5369 
   5370 Here is the URL of the manual: <https://protesilaos.com/emacs/modus-themes>.
   5371 Or read it from Emacs by evaluating this form:
   5372 
   5373     (info "(modus-themes) Top")
   5374 
   5375 The themes are built into Emacs version 28 (current development target),
   5376 and are available on GNU ELPA as well as other archives.
   5377 
   5378 
   5379 Customisation options
   5380 =====================
   5381 
   5382 Overview of new style of sets of properties
   5383 -------------------------------------------
   5384 
   5385 Several variables now accept a list of symbols as a value.  Those
   5386 represent properties, which can be combined with each other to realise
   5387 the possible styles.  The idea was to simplify their specification in
   5388 order to make them easier to both maintain and extend.  Thanks to Philip
   5389 Kaludercic for introducing this concept in issue 210:
   5390 <https://gitlab.com/protesilaos/modus-themes/-/issues/210>.
   5391 
   5392 The variables are:
   5393 
   5394 + 'modus-themes-prompts' by Philip Kaludercic in merge request 43:
   5395   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/43>
   5396 
   5397 + 'modus-themes-mode-line' by Philip Kaludercic in merge request 40:
   5398   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/40>.
   5399 
   5400 + 'modus-themes-lang-checkers' by Philip Kaludercic in merge request 46:
   5401   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/46>
   5402 
   5403 + 'modus-themes-org-agenda'
   5404 + 'modus-themes-links'
   5405 + 'modus-themes-headings'
   5406 + 'modus-themes-hl-line'
   5407 + 'modus-themes-paren-match'
   5408 + 'modus-themes-region'
   5409 + 'modus-themes-syntax'
   5410 
   5411 Take 'modus-themes-syntax' as an example.  Up until version 1.4.0, it
   5412 would only accept a symbol, signifying a predefined style.  So we had
   5413 the possible value 'faint' and another 'faint-yellow-comments'.  To make
   5414 a third variant of the "faint" aesthetic, such as by combining it with
   5415 the "alt syntax" and/or "green strings", we would need to write new
   5416 presets in the form of 'faint-green-strings', 'faint-alt-syntax',
   5417 'faint-alt-syntax-green-strings', 'faint-green-strings-yellow-comments',
   5418 'faint-alt-syntax-green-strings-yellow-comments'.  That would have been
   5419 inefficient, hence why it was not done.
   5420 
   5421 With the new approach of defining a list of properties, those
   5422 combinations are all possible.  Such as:
   5423 
   5424     (setq modus-themes-syntax '(faint alt-syntax))
   5425 
   5426     (setq modus-themes-syntax '(yellow-comments alt-syntax green-strings))
   5427 
   5428 The order in which the properties are set is not significant.
   5429 
   5430 The doc string of each of the aforementioned variables, or the
   5431 corresponding entry in the manual, provides guidance on how to configure
   5432 things.  The old forms will continue to work for the time being, though
   5433 they are considered deprecated and will stop being supported at a future
   5434 date.
   5435 
   5436 
   5437 Changes in stylistic variants for variables with sets of properties
   5438 -------------------------------------------------------------------
   5439 
   5440 + The meaning of the "alt syntax" style in 'modus-themes-syntax' has
   5441   been redefined.  In the past, it used to have green-coloured strings
   5442   and doc strings.  Those are now red.  Some other changes have been
   5443   implemented to make the overall looks more consistent.  Users who
   5444   liked the old style can retain it by passing this list of properties:
   5445 
   5446       (alt-syntax green-strings)
   5447 
   5448   New styles for the "faint" aesthetic are possible, here shown as lists
   5449   of properties:
   5450 
   5451       (faint green-strings)
   5452       (faint alt-syntax)
   5453       (faint alt-syntax green-strings)
   5454 
   5455   To each of those the 'yellow-comments' property can be added as well.
   5456 
   5457   Consult the doc string or the manual for the technicalities and code
   5458   samples.
   5459 
   5460 + The 'modus-themes-hl-line' no longer has styles that include only an
   5461   underline.  Those proved to be problematic under certain circumstances
   5462   and were thus removed.
   5463 
   5464   Minor changes have been implemented to make the following combination
   5465   of properties more consistent, by colourising the underline:
   5466 
   5467       (accented intense underline)
   5468 
   5469 + The 'modus-themes-paren-match' now has styles that include an
   5470   'underline' property.  Those extend the old options, such as:
   5471 
   5472       (bold intense underline)
   5473 
   5474 + The 'modus-themes-headings' have an improved set of styles for the "no
   5475   text color" aesthetic.  Those involve the 'monochrome' property, which
   5476   can now yield results that include a background (whereas before it was
   5477   just colourless text for the headings, optionally without a bold
   5478   weight).  As this is an alist, here is an example (always check the
   5479   docs for fully fledged code samples):
   5480 
   5481       (setq modus-themes-headings
   5482             '((1 . (background overline))
   5483               (2 . (overline background rainbow))
   5484               (t . (monochrome no-bold background))))
   5485 
   5486   To allow a heading level N to retain its original style, a 't' value
   5487   can be passed.  In the previous version of the themes, it was possible
   5488   to use 'nil' for the same purpose, though that is no longer valid.  In
   5489   those cases, the fallback value of the alist will be used instead,
   5490   such as what is noted above:
   5491 
   5492       (t . (monochrome no-bold background))
   5493 
   5494 + The 'modus-themes-links' provide several new possible styles, due to
   5495   an expanded set of properties that includes, among others, 'bold',
   5496   'italic', and 'background'.  The documentation covers the details.
   5497 
   5498 + The 'modus-themes-lang-checkers' can now attain a style that uses a
   5499   prominently coloured background in addition to what was available
   5500   before as a subtle background and the other variants.
   5501 
   5502 
   5503 New variables
   5504 -------------
   5505 
   5506 + The 'modus-themes-org-agenda' provides the means to refashion the
   5507   entirety of the Org agenda buffer.  The value it accepts is an alist,
   5508   with some keys expecting a symbol and others a list of properties.
   5509   The minutia are covered in its doc string.  A possible configuration
   5510   can look like this:
   5511 
   5512       (setq modus-themes-org-agenda
   5513             '((header-block . (variable-pitch scale-title))
   5514               (header-date . (grayscale workaholic bold-today))
   5515               (scheduled . uniform)
   5516               (habit . traffic-light)))
   5517 
   5518   'modus-themes-org-agenda' supersedes the old variable that was specific
   5519   to the Org habit graph: 'modus-themes-org-habit'.  There now is a
   5520   'habit' key which accepts the same values as before, plus a new style
   5521   that is optimised for users with red-green colour deficiency:
   5522   'traffic-light-deuteranopia'.  Please consult the doc string of
   5523   'modus-themes-org-agenda' or the relevant entry to the manual.
   5524 
   5525   Thanks to Gustavo Barros for contributing to the creation of this
   5526   variable as well as to all other changes in the relevant faces that
   5527   were done in the interest of usability.  A full report about
   5528   'modus-themes-org-agenda' with screen shots is available here:
   5529   <https://protesilaos.com/codelog/2021-06-02-modus-themes-org-agenda/>.
   5530 
   5531   A patch has been sent to upstream Org, with its review pending, which
   5532   improves upon some of the areas we had identified:
   5533   <https://lists.gnu.org/archive/html/emacs-orgmode/2021-06/msg00092.html>.
   5534 
   5535 + The 'modus-themes-inhibit-reload' controls a new behaviour of
   5536   automatically reloading the active theme when an option is set via the
   5537   Custom interfaces or with 'customize-set-variable'.  To opt-in to this
   5538   feature, set the variable to a 'nil' value.
   5539 
   5540   Thanks to Philip Kaludercic for implementing this in merge request 40:
   5541   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/40>.
   5542 
   5543   In the development phase of this option, a bug was identified
   5544   pertaining to recursion, as reported by Gustavo Barros in issue 213:
   5545   <https://gitlab.com/protesilaos/modus-themes/-/issues/213>.  Changes
   5546   have been made to remove that possibility, as found in merge request
   5547   45: <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/45>.
   5548 
   5549   A thread was started on the emacs-devel mailing list to inquire upon
   5550   the technicalities of this option, but it did not gain any traction:
   5551   <https://lists.gnu.org/archive/html/emacs-devel/2021-06/msg00828.html>.
   5552 
   5553   As such, we have decided to take our chances by pressing on with this
   5554   feature.  Users who are interested in it are encouraged to give it a
   5555   try and report any possible complications.  Issue 213 remains open.
   5556 
   5557 + The 'modus-themes-italic-constructs' is the new name of the variable
   5558   'modus-themes-slanted-constructs'.  The term "slant" was considered
   5559   too vague or technical and some users could have missed the meaning of
   5560   this option.
   5561 
   5562 + The 'modus-themes-scale-5' is renamed to 'modus-themes-scale-title' to
   5563   better convey its utility.
   5564 
   5565 
   5566 Changes to the manual
   5567 =====================
   5568 
   5569 + Rewrote or introduced the documentation for all the customisation
   5570   options mentioned above.  Also updated relevant code samples, such as
   5571   in the manual's introduction to the customisation options.  Evaluate
   5572   this form for an annotated code overview:
   5573 
   5574       (info "(modus-themes) Customization Options")
   5575 
   5576 + Rephrased a reference to "gamma ray values" as "gamma values".  Thanks
   5577   to Anders Johansson for the contribution in merge request 42:
   5578   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/42>.
   5579 
   5580 + Removed the Org macro that would insert the build date in the manual's
   5581   introduction.  This was required to make the file reproducible,
   5582   otherwise it would keep changing each time a new version of Emacs was
   5583   built.  Refer to Emacs bug#48661 by Glenn Morris:
   5584   <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=48661>.
   5585 
   5586 + Included note on tweaking the key hints that the Avy package produces.
   5587   This is in response to issue 215 by Rudolf Adamkovič:
   5588   <https://gitlab.com/protesilaos/modus-themes/-/issues/215>.  Thanks to
   5589   Nicolas De Jaeghere for providing the text.
   5590 
   5591 + Wrote a note on how to control the underlines that are generated in
   5592   compilation-mode buffers and related.  It is about configuring the
   5593   variable 'compilation-message-face'.
   5594 
   5595 + Documented how to configure the colours that are applied to the names
   5596   of the days in the 'M-x calendar' interface.  The relevant variable is
   5597   'calendar-weekend-days'.
   5598 
   5599 + Elaborated on a "do it yourself" (DIY) guide on how to benefit from
   5600   the hidden feature of the themes about how they handle the bold weight
   5601   and the italic slant.  In short, we do not hardcode values and thus
   5602   make it easy for users to specify the particularities of what it means
   5603   for a face to have a 'bold' or 'italic' attribute.
   5604 
   5605 
   5606 Faces and face groups
   5607 =====================
   5608 
   5609 New entries
   5610 -----------
   5611 
   5612 Newly supported packages:
   5613 
   5614 + 'ledger-mode'.  Thanks to Pengji Zhang for the feedback in issue 202:
   5615   <https://gitlab.com/protesilaos/modus-themes/-/issues/202>.
   5616 
   5617 + 'gotest'.  Thanks to Jerry Zhang for the feedback in issue 226:
   5618   <https://gitlab.com/protesilaos/modus-themes/-/issues/226>.
   5619 
   5620 + 'css-mode'
   5621 
   5622 New faces for already supported groups:
   5623 
   5624 + 'shr-h1', 'shr-h2', 'shr-h3', 'shr-h4', 'shr-h5', 'shr-h6' of the
   5625   shr.el library (simple HTML renderer, as experienced in, for example,
   5626   EWW).  Those are available for Emacs28, with a patch by me:
   5627   <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=49433>
   5628 
   5629 + 'apropos-button' as a generic face that fontifies faces in apropos
   5630   buffers.  Available for Emacs28, with a patch by me:
   5631   <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=49162>.
   5632 
   5633 + 'selectrum-mouse-highlight'.  This makes the mouse hover effect for
   5634   selectrum look the same as in most other contexts.  Thanks to okamsn
   5635   for the feedback in issue 203:
   5636   <https://gitlab.com/protesilaos/modus-themes/-/issues/203>.
   5637 
   5638 
   5639 Review of existing entries
   5640 --------------------------
   5641 
   5642 + Added an ':extend' property to 'next-error' face.  This face is used
   5643   for pulse effects.  It is good to have them extend to the edge of the
   5644   window, so that they are easier to spot.  Thanks to Gustavo Barros for
   5645   the feedback in issue 200, which is about pulse.el:
   5646   <https://gitlab.com/protesilaos/modus-themes/-/issues/200>.
   5647 
   5648 + Tweaked the various Apropos faces.  The idea was to remove the colour
   5649   from the pseudo headings so that we would not get an exaggerated
   5650   result of too much variety in the buffer (e.g. that of 'M-x apropos').
   5651   The individual buttons retain their style as links, meaning that they
   5652   are governed by the variable 'modus-themes-links'.
   5653 
   5654 + Revised 'whitespace-line' face to make it look like a warning, as it
   5655   ought to be.  Thanks to Pengji Zhang for the feedback in issue 204:
   5656   <https://gitlab.com/protesilaos/modus-themes/-/issues/204>.
   5657 
   5658 + Reworked the colour-coding of the Hydra and Transient packages.  These
   5659   are meant to tone down some excesses with the standard red and to
   5660   adapt other colours to it.  Thanks to Gustavo Barros for providing
   5661   suggestions and helping me tweak those in issue 206:
   5662   <https://gitlab.com/protesilaos/modus-themes/-/issues/206>.
   5663 
   5664 + Recoloured 'transient-argument' to improve its uniqueness in its
   5665   context and to better comply with the expectation of hydra-style
   5666   colour coding, as noted right above.
   5667 
   5668 + Made the 'org-agenda-done' face conform with the customisation option
   5669   'modus-themes-success-deuteranopia'.  This means that it will be
   5670   coloured in blue instead of green when the option is set to a non-nil
   5671   value.
   5672 
   5673 + Grayed out the foreground of the Org block delimiter lines on the
   5674   premise that any extra colouration was not needed, given the presence
   5675   of a gray background and the overall markup of the block.
   5676 
   5677 + Toned down the colouration of the 'org-code' face, so that it is
   5678   consistent with 'org-verbatim' as well as the colours used in opening
   5679   and closing lines of blocks.  Thanks to Gustavo Barros for suggesting
   5680   this change in issue 206, though it went through a couple of reviews:
   5681   <https://gitlab.com/protesilaos/modus-themes/-/issues/206>.
   5682 
   5683 + Simplified the inheritance of the 'fixed-pitch' face, which is used
   5684   for internal purposes to ensure alignment of elements in buffers that
   5685   must cope with mixed font configurations, such as an org-mode file
   5686   with 'M-x variable-pitch-font' enabled.
   5687 
   5688   [ Recall that the option 'modus-themes-no-mixed-fonts' can disable
   5689     this feature.  Also note that the 'mixed-fonts' package, or
   5690     equivalent, is not needed while using the Modus themes (though there
   5691     is nothing wrong with having them together). ]
   5692 
   5693 + Reduced the overall intensity of 'org-mode-line-clock-overrun'.
   5694   Thanks to Gustavo Barros for the feedback in issue 208:
   5695   <https://gitlab.com/protesilaos/modus-themes/-/issues/208>.
   5696 
   5697 + Simplified or otherwise tweaked several Org agenda faces to render
   5698   possible the new 'modus-themes-org-agenda' variable, as documented
   5699   above.  Thanks to Gustavo Barros for the feedback in issue 208:
   5700   <https://gitlab.com/protesilaos/modus-themes/-/issues/208>.
   5701 
   5702 + Increased ever so slightly the foreground colour of the 'highlight'
   5703   face.  This can help improve the perception of highlights, such as
   5704   upon hovering over a link with the mouse.  Thanks to Rudolf Adamkovič
   5705   for reporting the potential problem in issue 216:
   5706   <https://gitlab.com/protesilaos/modus-themes/-/issues/216>.
   5707 
   5708 + Prevented the override of the 'diff-context' face when users assign a
   5709   'bg-only' value to the 'modus-themes-diffs' variable.  This makes it
   5710   consistent with the intent of this style, which is to work with a
   5711   non-nil value for 'diff-font-lock-syntax' (basically to allow the
   5712   usual colour highlights of the underlying code syntax in diff
   5713   buffers).
   5714 
   5715 + Ensured consistency of all prompt-related faces by introducing a new
   5716   face, 'modus-themes-prompt', that is inherited by all others (all
   5717   prompt styles are controlled by the variable 'modus-themes-prompts').
   5718   This was originally implemented with the 'comint-highlight-prompt'
   5719   face, though that could potentially lead to undefined faces if the
   5720   comint library was not loaded.  Whereas the 'modus-themes-prompt'
   5721   guarantees that we pass a known face at all times.  Thanks to Philip
   5722   Kaludercic for bringing this potential bug to my attention in a
   5723   comment to merge request 43:
   5724   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/43#note_615224855>.
   5725 
   5726 + Removed the background colour from the 'widget-inactive' face.  It
   5727   would create problems in some cases, such as in Custom buffers for
   5728   multiple choice options.
   5729 
   5730 + Refined 'calendar-weekend-header' and 'calendar-weekday-header' to
   5731   emulate the design of physical calendars and remain truthful to the
   5732   expectations set by the default configuration of the calendar.el
   5733   library.  Weekends now use a faint red, while weekdays are rendered in
   5734   the same subtle gray they had before.  The underlying principle is to
   5735   make weekends convey a subtle warning to the effect that "this is not
   5736   a day for work" (notwithstanding precarious economic realities).  As
   5737   noted above, there is an entry in the manual on how to make all days
   5738   look the same, be it gray or faint red.  Evaluate this form:
   5739 
   5740       (info "(modus-themes) Note on calendarel weekday and weekend colors")
   5741 
   5742 
   5743 Request for feedback on a potential version 2.0.0 of the Modus themes
   5744 =====================================================================
   5745 
   5746 While we maintain a cautious stance towards preserving the default
   5747 styles, there are some cases where we might be forced to introduce
   5748 backward-incompatible changes.
   5749 
   5750 Three such cases that can benefit from user feedback are:
   5751 
   5752 + Issue 196 on 'modus-themes-no-mixed-fonts'
   5753   <https://gitlab.com/protesilaos/modus-themes/-/issues/196>.
   5754 
   5755 + Issue 198 on 'modus-themes-hl-line'
   5756   <https://gitlab.com/protesilaos/modus-themes/-/issues/198>
   5757 
   5758   [ Note that 'modus-themes-hl-line now accepts a list of properties as
   5759     described in the opening sections of this entry. ]
   5760 
   5761 + Issue 218 on 'modus-themes-diffs'
   5762   <https://gitlab.com/protesilaos/modus-themes/-/issues/218>.
   5763 
   5764 
   5765 Miscellaneous
   5766 =============
   5767 
   5768 + Recalibrated the value of the colour 'bg-hl-line-intense' in the
   5769   palette 'modus-themes-vivendi-colors'.  The change should be
   5770   practically indecipherable, though it slightly improves things in
   5771   certain contexts.
   5772 
   5773 + Refined the intensity of the three main yellow colours in
   5774   'modus-themes-vivendi-colors'.
   5775 
   5776 + Introduced a new 'modus-themes-faces' group so that those are
   5777   decoupled from the customisation options in the various Custom
   5778   buffers.  Thanks to Philip Kaludercic for the patch in merge request
   5779   39: <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/39>.
   5780 
   5781 + Updated the manual's "Acknowledgements" section to include all new
   5782   users who contributed to the project.
   5783 
   5784 Thanks again to everyone involved!
   5785 
   5786 
   5787 #+end_src
   5788 
   5789 * 1.4.0
   5790 :PROPERTIES:
   5791 :CUSTOM_ID: h:4c643e3c-5284-4fab-97e8-217bc1c02f5d
   5792 :END:
   5793 
   5794 #+begin_src text
   5795 Modus themes version 1.4.0
   5796 
   5797 By Protesilaos Stavrou <info@protesilaos.com> on 2021-05-25
   5798 
   5799 This entry records the changes made to the project since the release of
   5800 version 1.3.0 on 2021-04-17.  There have been around 100 commits in the
   5801 meantime, as is the norm.
   5802 
   5803 If you are coming from older versions, please consult the change log
   5804 entry for version 1.0.0 with regard to the breaking changes that were
   5805 introduced.
   5806 
   5807 Every colour-related modification is always done in accordance with the
   5808 overarching accessibility objective of the themes for a minimum contrast
   5809 ratio of 7:1 between background and foreground values in their given
   5810 combination (the WCAG AAA standard).
   5811 
   5812 URL of the official manual: <https://protesilaos.com/emacs/modus-themes>.  Or
   5813 read it with Emacs' Info reader by evaluating this form:
   5814 
   5815     (info "(modus-themes) Top")
   5816 
   5817 Remember that the themes are built into Emacs version 28 (current
   5818 development target), and are available on GNU ELPA, as well as other
   5819 archives.
   5820 
   5821 
   5822 Customisations variables
   5823 ------------------------
   5824 
   5825 + Redefined the style of 'fg-only' that 'modus-themes-diffs' accepts, so
   5826   that it no longer uses a red-green colour coding, but applies a
   5827   red-blue distinction instead.  The symbol 'fg-only' is a deprecated
   5828   alias for the more descriptive 'fg-only-deuteranopia'.
   5829 
   5830   This is done because green text on a light background is one of the
   5831   worst combinations for the purposes of legibility, as it does not
   5832   stand out in its context and thus forces undesirable compromises.
   5833   Whereas red and blue work well in this case, while making the style
   5834   accessible to users with red-green colour deficiency (deuteranopia).
   5835   To avoid inconsistencies between Modus Operandi and Modus Vivendi, we
   5836   replace green with blue in both themes.  A full report is available in
   5837   issue 183 which was created on April 21, 2021:
   5838   <https://gitlab.com/protesilaos/modus-themes/-/issues/183>.
   5839 
   5840 + Introduced the boolean 'modus-themes-success-deuteranopia' which
   5841   replaces all instances of green with blue in contexts where a
   5842   red-green colour coding is in effect (e.g. Org TODO vs DONE keywords,
   5843   isearch current match...).
   5844 
   5845 + Implemented 'modus-themes-mail-citations' to control the colouration
   5846   of cited text in email-related buffers, such as Gnus or message.el.
   5847   It accepts values nil, 'faint', and 'monochrome'.  By default (the nil
   5848   value) the text of citations cycles through blue, green, red, yellow
   5849   depending on the level of depth.
   5850 
   5851 + Expanded the set of options for 'modus-themes-mode-line' to encompass
   5852   the values 'borderless-accented', 'borderless-accented-3d', and
   5853   'borderless-accented-moody'.  Those are variations of existing styles.
   5854   The complete list:
   5855 
   5856   - nil (default)
   5857   - 3d
   5858   - moody
   5859   - borderless
   5860   - borderless-3d
   5861   - borderless-moody
   5862   - accented
   5863   - accented-3d
   5864   - accented-moody
   5865   - borderless-accented
   5866   - borderless-accented-3d
   5867   - borderless-accented-moody
   5868 
   5869 + Renamed the non-nil values that 'modus-themes-org-blocks' accepts from
   5870   'grayscale', 'rainbow' to 'gray-background' and 'tinted-background',
   5871   respectively.  The new symbols better describe their effect on Org
   5872   source blocks, namely, that they affect the background of the block
   5873   rather than the foreground.  The old symbols will still work but are
   5874   considered deprecated aliases of the newer ones.
   5875 
   5876 + Altered the intensity of the 'modus-themes-hl-line' option
   5877   'accented-background' to a more noticeable shade of cyan/teal.  The
   5878   old style was too subtle to have the desired effect.  The value
   5879   'underline-accented' is not affected by this change, as it still uses
   5880   the same subtle background it did before in combination with a more
   5881   pronounced underline colour.
   5882 
   5883 + Deleted all deprecation warnings that concerned the transition from
   5884   version 0.13.0 of the themes to 1.0.0.  Those had been in effect for
   5885   several months, spanning four tagged releases.
   5886 
   5887 
   5888 Faces or face groups
   5889 --------------------
   5890 
   5891 + Reconsidered the use of colour in all email-related citation faces to
   5892   avoid exaggerations and reduce complexity.  Colour values have been
   5893   tweaked to tone down their overall intensity, while the number of
   5894   colours has been reduced to four.  Gnus and Mu4e have faces for more
   5895   levels of citation depth, though those will simply repeat the
   5896   four-colour cycle.
   5897 
   5898 + Made the 'message-mml' face look consistent with the rest of the
   5899   buffer while composing an email by changing its foreground colour from
   5900   a yellow to a cyan variant.
   5901 
   5902 + Refined several faces in the Notmuch group in the interest of harmony:
   5903 
   5904   - Individual message headers in 'notmuch-show-mode' use bold text in
   5905     addition to their existing subtle background to better stand out in
   5906     their context. The face is 'notmuch-message-summary-face'.
   5907 
   5908   - Tags are no longer set unconditionally to a bold typographic weight.
   5909     They become such for unread threads in 'notmuch-search-mode'
   5910     buffers, as well as for headers of 'notmuch-show-mode'.
   5911 
   5912   - Removal and addition of tags is now denoted by a strike-through and
   5913     an underline effect, respectively, whereas before they both used
   5914     underlines with the only difference being their colour.
   5915 
   5916   - The subject line in 'notmuch-search-mode' buffers uses the main
   5917     foreground instead of a dimmed one.  The field of matching authors
   5918     has a tweaked foreground to keep the tabular view easy to read.
   5919 
   5920   - All cryptography-related faces are simplified to not show a coloured
   5921     background but only use a foreground colour instead.
   5922 
   5923 + Removed direct support for 'counsel-notmuch' as it already inherits
   5924   from the relevant notmuch faces.  The package is thus considered
   5925   indirectly supported.
   5926 
   5927 + Refrained from setting a background to the 'csv-separator-face' as it
   5928   would inevitably colourise the negative space in the tabular view
   5929   created by 'csv-align-mode'.  A red text colour is used instead, even
   5930   though this is not common practice: it is easier to spot for small,
   5931   single characters, such as a comma or a semicolon that is meant to
   5932   have a special meaning.  Thanks to Kevin Fleming for reporting the
   5933   problem and for offering feedback on the choice of colour in issue
   5934   194: <https://gitlab.com/protesilaos/modus-themes/-/issues/194>.
   5935 
   5936 + Distinguished between ordinary links and widget buttons by removing
   5937   the underline from the latter (the 'widget-button' face) and altering
   5938   the shade of its foreground colour.  Such widgets are used in Emacs'
   5939   Custom interfaces and can also be found in the default Notmuch "hello"
   5940   buffer that runs 'notmuch-hello-mode'.
   5941 
   5942 + Tweaked the Ediff current faces to be consistent with 'diff-mode' and
   5943   related.  In practice, this only applies when 'modus-themes-diffs' is
   5944   set to a value of 'fg-only-deuteranopia', as it adds a dim background
   5945   to the current diff hunk.  All other styles of 'modus-themes-diffs'
   5946   look the same as before while using Ediff.
   5947 
   5948 + Simplified the faces of 'corfu' to match the current state of the
   5949   upstream project.  Thanks to Daniel Mendler (its developer) for
   5950   reporting this in issue 184:
   5951   <https://gitlab.com/protesilaos/modus-themes/-/issues/184>.
   5952 
   5953 + Refined all Eshell faces so that the output of 'ls' is consistent with
   5954   the overall aesthetic of the themes.  Also made 'eshell-prompt'
   5955   inherit from 'comint-highlight-prompt' to look the same as other such
   5956   prompts (all are configurable by 'modus-themes-prompts').
   5957 
   5958 + Revised 'eshell-prompt-extras' and 'eshell-git-prompt' to use colours
   5959   and typographic weight that better match the style of the various
   5960   configurations they offer.
   5961 
   5962 + Simplified 'eshell-syntax-highlighting' to inherit from the standard
   5963   Eshell faces, where appropriate.
   5964 
   5965 + Adjusted the colour of 'centaur-tabs-active-bar-face' and removed the
   5966   bespoke 'fg-tab-accent' colour from 'modus-themes-operandi-colors' and
   5967   'modus-themes-vivendi-colors' that was only used by it (and which
   5968   should have never been introduced to begin with).
   5969 
   5970 + Updated the 'tab-bar-groups' faces to match changes upstream.  Thanks
   5971   to Fritz Grabo (its developer) for the patch in merge request 35:
   5972   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/35>.
   5973 
   5974 + Changed the Ibuffer title and group faces to better differentiate
   5975   between group titles and special or non-file-visiting buffers.  Thanks
   5976   to Nicolas De Jaeghere for the patch in merge request 37:
   5977   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/37>.
   5978 
   5979 + Ensured that all faces that denote a "success" state, or which are
   5980   expected to be coloured in green in a red-green binary, can use an
   5981   appropriate blue colour (or colour combination that involves blue)
   5982   instead when 'modus-themes-success-deuteranopia' is set to a non-nil
   5983   value.
   5984 
   5985 + Added support for the new 'bookmark-face' in Emacs version 28.  This
   5986   means that the built-in bookmark.el library is directly supported by
   5987   the themes.  This face can be disabled by setting 'bookmark-fontify'
   5988   to nil.  Thanks to Mark Barton for reporting the presence of this new
   5989   face and for providing feedback on its style in issue 189:
   5990   <https://gitlab.com/protesilaos/modus-themes/-/issues/189>.
   5991 
   5992 + Aligned 'hes-mode' ('highlight-escape-sequences') with the standard
   5993   font-lock faces for regexp grouping.  This means that it conforms with
   5994   changes to the 'modus-themes-syntax' variable.
   5995 
   5996 + Reconfigured the 'org-quote' face to adapt its style depending on the
   5997   value of 'modus-themes-org-blocks'.  The default is a subtle blue/cold
   5998   foreground colour against the main background.  When a value of
   5999   'gray-background' is assigned to 'modus-themes-org-blocks', the text's
   6000   colour becomes that of the main foreground in order to maintain a good
   6001   level of legibility.  Thanks to Rudolf Adamkovič for the feedback in
   6002   issue 190: <https://gitlab.com/protesilaos/modus-themes/-/issues/190>.
   6003 
   6004 + Refashioned the 'show-paren-match-expression' face to make it apply a
   6005   bespoke background colour and not override the expression's foreground
   6006   colours.  This face is used by 'show-paren-mode' when the
   6007   customisation variable 'show-paren-style' is set to the 'expression'
   6008   value.  Thanks to Rudolf Adamkovič for the feedback in issue 191:
   6009   <https://gitlab.com/protesilaos/modus-themes/-/issues/191>.
   6010 
   6011 + Made headings level 8 use a fine shade of magenta by default instead
   6012   of gray (notwithstanding user changes to 'modus-themes-headings').
   6013   This should have a negligible difference in Org or Outline buffers,
   6014   but is more noticeable when editing Elisp in Emacs28 while also using
   6015   'outline-minor-mode' and with 'outline-minor-mode-highlight' set to
   6016   'override'.  That is because several top-level forms use that heading
   6017   level with those configurations.
   6018 
   6019 
   6020 Documentation (the manual)
   6021 --------------------------
   6022 
   6023 + Incorporated a sample configuration block with all customisation
   6024   variables and with comment annotations of their available options, in
   6025   an attempt to make it easier for users to discover what the themes
   6026   provide.
   6027 
   6028 + Replaced all instances of "modeline" with "mode line" for consistency
   6029   with the Emacs style.  Thanks to Rudolf Adamkovič for the patch that
   6030   started this process in merge request 33:
   6031   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/33>.
   6032 
   6033 + Wrote note on setting mode line faces that indicate the state of
   6034   'god-mode'.  Thanks to Rudolf Adamkovič for the feedback in issue 187:
   6035   <https://gitlab.com/protesilaos/modus-themes/-/issues/187>.  Also
   6036   thanks to Rudolf for updating the applicable hook in merge request 34:
   6037   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/34>.
   6038 
   6039 + Listed 'org-mode' variables that affect fontification in blocks:
   6040   'org-src-fontify-natively', 'org-fontify-whole-block-delimiter-line',
   6041   and 'org-fontify-quote-and-verse-blocks'.  This complements the
   6042   already documented variables 'org-fontify-whole-heading-line' and
   6043   'org-fontify-done-headline' that pertain to headings.
   6044 
   6045 + Included note on fontifying inline Latex expressions in Org buffers.
   6046   Thanks to Rudolf Adamkovič for the feedback in issue 190:
   6047   <https://gitlab.com/protesilaos/modus-themes/-/issues/190>.
   6048 
   6049 + Elaborated on the use of 'face-remap-add-relative' by means of sample
   6050   code that cycles through arbitrary colours for the 'region' face.
   6051   This is filed under the "Do It Yourself" (DIY) section.
   6052 
   6053 + Provided a DIY method for adapting the fontification of Org source
   6054   block delimiter lines to the value of 'modus-themes-org-blocks'.
   6055 
   6056 + Expanded the DIY entry on overriding the saturation of the active
   6057   theme's colours with a method that combines the programmatic approach
   6058   with manual overrides.  The user can thus specify the colour values
   6059   they want to override and let the rest be handled by Elisp.
   6060 
   6061 + Introduced a section with answers to Frequently Asked Questions (FAQ)
   6062   about the design of the themes as well as recommendations on how to
   6063   ensure optimal reading conditions or start thinking about them.  The
   6064   questions are:
   6065 
   6066   - Is the contrast ratio about adjacent colors?
   6067   - What does it mean to avoid exaggerations?
   6068   - Why are colors mostly variants of blue, magenta, cyan?
   6069   - What is the best setup for legibility?
   6070 
   6071 
   6072 Miscellaneous
   6073 -------------
   6074 
   6075 + Removed superfluous code from internal functions and adapted their
   6076   indentation to make them easier to read.
   6077 
   6078 + Recalibrated some values in 'modus-themes-vivendi-colors' to ensure
   6079   consistency in luminance with other colours that are used in their
   6080   context.  Those are subtle changes that can only be discerned in
   6081   side-by-side comparisons of the before and after states.  Thanks to
   6082   André Alexandre Gomes for the feedback in issue 193:
   6083   <https://gitlab.com/protesilaos/modus-themes/-/issues/193>.
   6084 
   6085 + Changed the saturation and hueness of the bespoke 'fg-comment-yellow'
   6086   in 'modus-themes-operandi-colors' and 'modus-themes-vivendi-colors' to
   6087   better contrast with its context, while still keeping its luminance
   6088   consistent with its role as a colour for comments in code.  This is
   6089   used when 'modus-themes-syntax' is configured appropriately (read its
   6090   doc string or consult the manual).
   6091 
   6092 + Attempted to add explicit support for the faces of the built-in
   6093   pulse.el library, but ultimately opted against them as the doc string
   6094   of 'pulse-highlight-face' advises against customising it, even though
   6095   it is not clear from the source code in emacs.git what the problem
   6096   could be.  We shall reconsider this case for the next release cycle.
   6097   Thanks to Gustavo Barros for the feedback on several aspects of this
   6098   topic in issues 185 and 200:
   6099 
   6100   - <https://gitlab.com/protesilaos/modus-themes/-/issues/185>
   6101   - <https://gitlab.com/protesilaos/modus-themes/-/issues/200>
   6102 
   6103 + Took the feedback of John Haman in issue 199 as a reminder to complete
   6104   the set of possible values for the 'modus-themes-mode-line' variable:
   6105   <https://gitlab.com/protesilaos/modus-themes/-/issues/199>.
   6106 #+end_src
   6107 
   6108 * 1.3.0
   6109 :PROPERTIES:
   6110 :CUSTOM_ID: h:5063c0c5-832e-4577-936e-d602b07d6d79
   6111 :END:
   6112 
   6113 #+begin_src text
   6114 Modus themes version 1.3.0
   6115 
   6116 By Protesilaos Stavrou <info@protesilaos.com> on 2021-04-17
   6117 
   6118 This entry records the changes introduced to the project since the
   6119 publication of version 1.2.0 (2021-03-04).  There have been around 100
   6120 commits in the meantime, as is the norm with all releases hitherto.
   6121 
   6122 Every colour-related modification documented herein conforms with the
   6123 overarching accessibility objective of the themes for a minimum contrast
   6124 ratio of 7:1 between background and foreground values in their given
   6125 combination (the WCAG AAA standard).
   6126 
   6127 As the official manual is referenced several times throughout this log,
   6128 make sure to store its URL: <https://protesilaos.com/emacs/modus-themes>.  Or
   6129 read it from Emacs' Info reader by evaluating this form:
   6130 
   6131     (info "(modus-themes) Top")
   6132 
   6133 If you are coming from older versions, please consult the change log
   6134 entry for version 1.0.0 with regard to the breaking changes that were
   6135 introduced.
   6136 
   6137 Remember that the themes are built into Emacs28, and are available on
   6138 GNU ELPA, as well as other archives.
   6139 
   6140 
   6141 Customisation options
   6142 ---------------------
   6143 
   6144 + The old 'modus-themes-intense-hl-line' boolean variable has been
   6145   replaced by 'modus-themes-hl-line', which provides several options for
   6146   how to style the current line of 'hl-line-mode'.  To retain the old
   6147   effect, one must do this:
   6148 
   6149       ;; Replacement for (setq modus-themes-intense-hl-line t)
   6150       (setq modus-themes-hl-line 'intense-background)
   6151 
   6152   The list of possible values:
   6153 
   6154     1. nil (default)
   6155     2. intense-background
   6156     3. accented-background
   6157     4. underline-neutral
   6158     5. underline-accented
   6159     6. underline-only-neutral
   6160     7. underline-only-accented
   6161 
   6162   The doc string of 'modus-themes-hl-line' as well as the manual
   6163   describe the specifics.  Thanks to Manuel Uberti for the feedback in
   6164   commit b020592:
   6165   <https://gitlab.com/protesilaos/modus-themes/-/commit/b020592e1a96d6e00d7d03faf9c293ec6081d49c>.
   6166 
   6167 + The 'modus-themes-mode-line' variable now accepts three new "accented"
   6168   styles that complement the existing set:
   6169 
   6170     1. nil (default)
   6171     2. 3d
   6172     3. moody
   6173     4. borderless
   6174     5. borderless-3d
   6175     6. borderless-moody
   6176     7. accented
   6177     8. accented-3d
   6178     9. accented-moody
   6179 
   6180 + The 'modus-themes-region' is extended with two new options of an
   6181   "accent" background:
   6182 
   6183     1. nil (default)
   6184     2. no-extend
   6185     3. bg-only
   6186     4. bg-only-no-extend
   6187     5. accent
   6188     6. accent-no-extend
   6189 
   6190 + The default value of 'modus-themes-headings' for per-level styles can
   6191   now be set to nil.  This fixes an inconsistency between the fallback
   6192   value, which accepted nil, and the per-level styles which did not.
   6193   Thanks to Mauro Aranda for reporting this in issue 163:
   6194   <https://gitlab.com/protesilaos/modus-themes/-/issues/163>.
   6195 
   6196   Please read the manual for the specifics of this variable, as it is an
   6197   alist that accepts several possible combinations.
   6198 
   6199 
   6200 Updates to the manual
   6201 ---------------------
   6202 
   6203 + Rewrote the sections that cover the aforementioned customisation
   6204   options.
   6205 
   6206   - For 'modus-themes-mode-line', we had to revise the recommendation
   6207     for setting 'face-near-same-color-threshold' to 45000.  That value
   6208     is appropriate for the 'moody' and 'borderless-moody' options.
   6209     Whereas for 'accented-moody' the number should be raised to 70000.
   6210     Thanks to Nicolas De Jaeghere for providing this piece of
   6211     information:
   6212     <https://gitlab.com/protesilaos/modus-themes/-/commit/ab6ba698269f012ec880b690282264649bfb3b0d#note_551342198>
   6213 
   6214 + Rephrased the GNU Free Documentation License quote to match the style
   6215   of other manuals that are also built into Emacs.
   6216 
   6217 + Documented 'org-mode' variables that affect the looks of various
   6218   fontification styles.
   6219 
   6220 + Simplified the 'kbd' macro that is declared in modus-themes.org to
   6221   allow GNU ELPA's build system to parse the file for Emacs 26.
   6222 
   6223 + Documented existing support for 'tab-bar-mode' and 'tab-line-mode'.
   6224 
   6225 + Wrote a note on how to configure the 'dimmer.el' library by Neil
   6226   Okamoto, in order to guarantee consistent results with the themes.
   6227   The key is to use the RGB colour space instead of CIELAB.
   6228 
   6229 + Included note on shr.el fonts and how those are used by EWW and
   6230   Elfeed.
   6231 
   6232 + Added a "Do-It-Yourself" (DIY) section on how to remap buffer-local
   6233   faces.
   6234 
   6235 + Detailed a DIY method to make the buffer-local backdrop of a pdf-tools
   6236   page use a distinct colour than the default white for Modus Operandi.
   6237   Extended the same principle to Modus Vivendi and described how to
   6238   adapt to theme changes (such as via 'modus-themes-toggle').  Thanks to
   6239   Utkarsh Singh for providing feedback on this topic in issue 175:
   6240   <https://gitlab.com/protesilaos/modus-themes/-/issues/175>.
   6241 
   6242 + Elaborated on DIY techniques to programmatically override the
   6243   saturation of all colours specified by the active Modus theme.  Thanks
   6244   to user pRot0ta1p for the feedback in issue 166:
   6245   <https://gitlab.com/protesilaos/modus-themes/-/issues/166>.
   6246 
   6247 
   6248 Support for packages
   6249 --------------------
   6250 
   6251 These are added to the already comprehensive list of explicitly
   6252 supported packages:
   6253 
   6254 + corfu
   6255 + embark
   6256 
   6257 + pandoc-mode.  Thanks to Farasha Euker for the feedback in issue 171:
   6258   <https://gitlab.com/protesilaos/modus-themes/-/issues/171>.
   6259 
   6260 + tab-bar-groups
   6261 + telega
   6262 + vertico
   6263 
   6264 Also added support for the 'help-key-binding' face which is part of
   6265 Emacs 28.
   6266 
   6267 
   6268 Changes to already supported faces or face groups
   6269 -------------------------------------------------
   6270 
   6271 + Renamed all internal faces that the themes defined from
   6272   "modus-theme-*" to "modus-themes-*".
   6273 
   6274 + Refashioned all Ediff faces in the process of a major review of this
   6275   tools' overall design.  The manifold changes are:
   6276 
   6277   - All inactive diffs respect the underlying fontification
   6278     (e.g. programming syntax highlighting).  Before they would override
   6279     it with a gray foreground.
   6280 
   6281   - All inactive diffs have been toned down, as their background is a
   6282     finer shade of gray than the prominent one that was used before.
   6283 
   6284   - There no longer is a visual distinction between even and odd
   6285     inactive diffs (by means of different shades of gray).  We are of
   6286     the opinion that such subtleties, whose utility is marginal at best,
   6287     have no place in themes that are designed for accessibility.
   6288 
   6289   - All bespoke gray colour combinations that were only intended for
   6290     those inactive diffs have thus been removed from each theme's
   6291     palette.
   6292 
   6293   - Active diffs follow the same style as diff-mode, to ensure
   6294     theme-wide consistency (all diff styles are controlled by the
   6295     variable 'modus-themes-diffs').
   6296 
   6297   This topic was discussed at length (with screenshots) in issue 169:
   6298   <https://gitlab.com/protesilaos/modus-themes/-/issues/169>.  Thanks to
   6299   peniblec and Nicolas De Jaeghere for their feedback.
   6300 
   6301 + Made 'smerge-markers' and 'vdiff-closed-fold-face' look like the
   6302   headings in 'diff-mode' in the interest of consistency, especially
   6303   while configuring the 'modus-themes-diffs' variable.
   6304 
   6305 + Ensured consistency between all faces that pertain to key bindings in
   6306   contexts where the hint to the key is active, in that pressing the key
   6307   performs the action (e.g. Magit's transient buffers, which-key,...).
   6308   The 'help-key-binding' for Emacs 28 is not included in this group,
   6309   because it applies in cases where the keys are not active, such as in
   6310   Help buffers.
   6311 
   6312 + Refined 'epa-validity-disabled' and 'epa-validity-high' faces.  The
   6313   former no longer uses a background, as that was considered an
   6314   exaggeration.  While the latter is cast in a cyan hue instead of green
   6315   for greater clarity (this relates to the general push to optimise for
   6316   red-green colour deficiency, which means to only use green where it is
   6317   absolutely necessary and, in such cases, to provide for a blue-ish
   6318   alternative, as with the 'deuteranopia' value that can be assigned to
   6319   'modus-themes-diffs').
   6320 
   6321 + Reworked 'ace-window', 'avy', and 'magit-blame' faces to ensure that
   6322   their overlays do not inherit the face properties of underlying text,
   6323   such as a different font family or height.  Thanks to Nicolas De
   6324   Jaeghere for the multiple merge requests and the concomitant feedback:
   6325 
   6326   - <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/27>.
   6327   - <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/29>.
   6328   - <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/30>.
   6329   - <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/31>.
   6330   - <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/32>.
   6331 
   6332   Also thanks to Damien Cassou for reporting an intermediate problem
   6333   with 'avy' in issue 177; a problem that was eventually addressed by
   6334   Nicolas De Jaeghere in merge request 31 (cited above):
   6335   <https://gitlab.com/protesilaos/modus-themes/-/issues/177>.
   6336 
   6337 + Optimised the colour combinations used by 'avy' to improve the
   6338   distinction between consecutive characters.
   6339 
   6340 + Reduced the brightness of EWW certificate faces, as they would attract
   6341   disproportionate attention to themselves.
   6342 
   6343 + Reworked all EWW text field and button faces to look more like what
   6344   they are supposed to.
   6345 
   6346 + Removed the slant and distinct foreground from the 'org-quote' face,
   6347   as they would interfere with emphasis within the quote block.  Thanks
   6348   to Farasha Euker for the feedback in issue 171:
   6349   <https://gitlab.com/protesilaos/modus-themes/-/issues/171>.
   6350 
   6351 + Reduced the intensity in colouration of 'org-code' and 'org-macro' in
   6352   order to avoid exaggerations and prevent their compounding effect in
   6353   technical documents that include a high concentration of those faces.
   6354   They still retain their overall character and continue to look like
   6355   variants of 'org-verbatim'.
   6356 
   6357 + Extended support for Selectrum's new 'selectrum-quick-keys-highlight'
   6358   and 'selectrum-quick-keys-match'.
   6359 
   6360 + Adjusted a few bongo faces for improved consistency and a more
   6361   pleasant result overall.  Quote from commit 07224cda08:
   6362 
   6363       Refine bongo faces for consistency
   6364 
   6365       The previous design was meant to keep the track fields distinct
   6366       from each other.  However the use of yellow was not good
   6367       aesthetically: it does not fit with the rest of the theme.
   6368 
   6369       Upon further experimentation, I realised that the album field
   6370       (yellow) is only present when the artist and title fields are also
   6371       available: first is the title, then the artist, and finally the
   6372       album.  This is true even with 'bongo-join-inserted-tracks' set to
   6373       a non-nil value.  So changing the face from yellow to a neutral
   6374       value is safe.
   6375 
   6376       The other two faces are adapted to look better in the new context.
   6377 
   6378 + Made more command prompt faces respond to changes in the variable
   6379   'modus-themes-prompts'.  This concerns faces from the groups cider,
   6380   circe, erc, indium, rcirc.
   6381 
   6382 + Refashioned typescript faces, making them more prominent by default,
   6383   while also exposing them to the value of 'modus-themes-syntax'.
   6384 
   6385 + Revised the style of 'info-colors-ref-item-command'.  This makes
   6386   commands look the same as functions, which is technically correct.  It
   6387   also predicates the exact style on the value of the variable
   6388   'modus-themes-syntax'.
   6389 
   6390 + Made all enh-ruby-mode faces adapt to 'modus-themes-syntax'.  Same for
   6391   julia.
   6392 
   6393 + Reconfigured all ztree faces for stylistic consistency.  The
   6394   'ztreep-diff-model-add-face' now responds to the 'deuteranopia' value
   6395   that can be passed to 'modus-themes-diffs'.
   6396 
   6397 + Appended the ':extend t' attribute to 'gnus-summary-cancelled' and
   6398   'gnus-summary-selected'.  These are only noticeable on Emacs 28
   6399   following commit 88409b21c2 in emacs.git.
   6400 
   6401 + Tweaked all faces of 'highlight-changes-mode' to better deliver on the
   6402   intent of that mode.
   6403 
   6404 + Opted to unconditionally render all 'dired-async' faces in a bold
   6405   typographic weight, instead of basing them on a non-nil value for
   6406   'modus-themes-bold-constructs'.  Also changed 'dired-async-message' to
   6407   a blue foreground, which further improves the themes' performance for
   6408   red-green colour deficiency.
   6409 
   6410 + Adjusted the colours of some 'notmuch-crypto-*' faces to better convey
   6411   their meaning.
   6412 
   6413 + Removed remaining conditional logic for underline styles in some
   6414   spell- and linter- related faces to ensure that all such cases are
   6415   controlled by the variable 'modus-themes-lang-checkers' (building on
   6416   work that had been done in the past).
   6417 
   6418 + Stopped changing 'keycast-key' to match the modeline style, as that
   6419   diluted the meaning of the variable 'modus-themes-mode-line'.
   6420 
   6421 + Tweaked calendar and diary faces for stylistic effect, except for the
   6422   'diary' face which has been converted from a green to a blue variant
   6423   for the purposes of coping with cases of red-green colour deficiency.
   6424 
   6425 
   6426 Miscellaneous
   6427 -------------
   6428 
   6429 + Clarified the changes in the backward-incompatible transition from
   6430   version 0.13.0 of the themes to >= 1.0.0.  Thanks to Damien Cassou for
   6431   reporting the absence of easy-to-find information in issue 174:
   6432   <https://gitlab.com/protesilaos/modus-themes/-/issues/174>.
   6433 
   6434 + There were three point releases after 1.2.0 which refined certain
   6435   aspects of the themes' packaging so that they could work both as
   6436   built-in themes for Emacs as well as in package format via the likes
   6437   of GNU ELPA.  Those issues were eventually resolved by Basil
   6438   L. Contovounesios:
   6439 
   6440   - Issue 162: <https://gitlab.com/protesilaos/modus-themes/-/issues/162>.
   6441   - Emacs bug#45068: <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=45068#218>.
   6442 
   6443 + Rewrote the 'modus-themes-headings' variable's declaration to improve
   6444   its presentation in Custom interfaces.  Thanks to Mauro Aranda for
   6445   submitting the patch for commit 1c60927ebd.
   6446 
   6447 + Applied the ':format' keyword to all 'defcustom' forms, based on the
   6448   aforementioned patch.  This should make all options look better in the
   6449   various Custom interfaces.  Thanks to Mauro Aranda for the feedback in
   6450   issue 163: <https://gitlab.com/protesilaos/modus-themes/-/issues/163>.
   6451 
   6452 + Refined the colour values 'bg-alt' and 'bg-dim' in 'modus-vivendi' to
   6453   improve their instantiation on Textual User Interfaces.  In
   6454   particular, recalibrated the blue channel of light so that when the
   6455   TUI cannot render the colour directly, it defaults to a gray value
   6456   instead of a dark blue.
   6457 
   6458 + Added a "Last-Modified" meta header to modus-themes.el, with gets
   6459   updated automatically and uses a timestamp.  This helps users who
   6460   track the themes' git repo directly.  Thanks to Togan Muftuoglu for
   6461   the feedback in issue 168:
   6462   <https://gitlab.com/protesilaos/modus-themes/-/issues/168>.
   6463 
   6464 + Expanded the palette of each theme with accent values that are
   6465   reserved for use in the tab-bar.  Those are used by the newly
   6466   supported 'tab-bar-groups' package.
   6467 
   6468 + Recalibrated a few colour combinations to improve their resulting
   6469   legibility.  The changes should not be noticeable to the untrained
   6470   eye.  Interested parties can consult commit 349ea4a943.
   6471 
   6472 + Tweaked the hueness of the 'yellow-active' colour of 'modus-operandi'.
   6473 
   6474 Thanks once again to everyone involved!
   6475 #+end_src
   6476 
   6477 * 1.2.0
   6478 :PROPERTIES:
   6479 :CUSTOM_ID: h:751083a7-3514-40f5-9928-17a11de5b439
   6480 :END:
   6481 
   6482 #+begin_src text
   6483 Modus themes version 1.2.0
   6484 
   6485 By Protesilaos Stavrou <info@protesilaos.com> on 2021-03-04
   6486 
   6487 This entry records the changes introduced to the project since the
   6488 publication of version 1.1.0 (2021-01-24).  There have been close to 100
   6489 commits in the meantime.
   6490 
   6491 Every colour-related modification documented herein conforms with the
   6492 overarching accessibility objective of the themes for a minimum contrast
   6493 ratio of 7:1 between background and foreground values in their given
   6494 combination (the WCAG AAA standard).
   6495 
   6496 As the official manual is referenced several times throughout this log,
   6497 make sure to store its URL: <https://protesilaos.com/emacs/modus-themes>.  Or
   6498 read it from Emacs' Info reader by evaluating this form:
   6499 
   6500     (info "(modus-themes) Top")
   6501 
   6502 If you are coming from older versions, please consult the change log
   6503 entry for version 1.0.0 with regard to the breaking changes that were
   6504 introduced.
   6505 
   6506 
   6507 Prior notice: Upgrading the themes in Emacs28 and GNU ELPA
   6508 ----------------------------------------------------------
   6509 
   6510 Emacs28, the current development target, now includes a 'require-theme'
   6511 function.  It is a prerequisite to upgrading the Modus themes to their
   6512 current version.  Prior to the definition of that function, the themes
   6513 could not transition from their 0.13.0 version to >=1.0.0.  Special
   6514 thanks to Basil L. Contovounesios for making it happen, as well Mauro
   6515 Aranda and Eli Zaretskii for their feedback and support.
   6516 
   6517 Expect the Modus themes in upstream Emacs to be updated shortly after
   6518 the publication of this document.
   6519 
   6520 GNU ELPA currently ships version 0.12.0 of the two standalone packages
   6521 'modus-operandi-theme' and 'modus-vivendi-theme'.  This will change in
   6522 the immediate future, as a new 'modus-themes' package will succeed them.
   6523 That new package will be built directly from emacs.git, as it must now
   6524 become a ':core' entity instead of being listed as an ':external' one.
   6525 
   6526 Again, expect a patch to be applied to elpa.git shortly after this
   6527 document goes live.
   6528 
   6529 
   6530 Customisation options
   6531 ---------------------
   6532 
   6533 [ All variables and their values are documented in the themes' manual.
   6534   The default value is always nil. ]
   6535 
   6536 + The new boolean 'modus-themes-subtle-line-numbers' variable will make
   6537   the effect of 'display-line-numbers-mode' more subtle when set to a
   6538   non-nil value.  It removes the underlying background of the unfocused
   6539   lines while toning down their foreground.
   6540 
   6541 + The 'modus-themes-diffs' variable now accepts a 'deuteranopia' value.
   6542   This optimises for red-green colour deficiency in all modes that show
   6543   diffs (diff-mode, ediff, Magit...).  In practice, all instances of
   6544   green are replaced with appropriate blue hues.  For more on the
   6545   matter, read the report which also includes pictures:
   6546   <https://protesilaos.com/codelog/2021-02-25-modus-themes-diffs-deuteranopia/>.
   6547 
   6548 + The 'modus-themes-syntax' variable now reads 'faint-yellow-comments'
   6549   as a valid value.  This has the same scope as the existing 'faint'
   6550   value with the added effect of assigning a yellow tint to comments: it
   6551   tones down the saturation of colours that apply to code syntax
   6552   (standard font-lock faces and others inheriting from them).
   6553 
   6554 + The 'modus-themes-links' variable is expanded to accept the new value
   6555   of 'neutral-underline-only': it removes the foreground from the link
   6556   and draws a neutral gray underline below it.
   6557 
   6558 
   6559 Refinements to existing packages or face groups
   6560 -----------------------------------------------
   6561 
   6562 + Refashioned all faces that pertain to emails, including Gnus, Mu4e,
   6563   Notmuch, and the standard 'message.el' library.  This concerns the
   6564   colours that apply to the message header keys and their values, as
   6565   well as quote levels.
   6566 
   6567   - Introduced more contrasting hues for headings and made more
   6568     considerate use of bold typography.  The new colour combinations are
   6569     better suited for the task of delivering a sense of structure;
   6570     structure that is at once effective and subtle.
   6571 
   6572   - Applied less intense colours throughout all quotation levels.
   6573 
   6574   - Revised the sequencing of hues in quotation levels to allow distinct
   6575     levels to stand out more without relying on excessive saturation.
   6576 
   6577   - Aligned the styling of Notmuch header dates with their counterparts
   6578     in other similar contexts, in pursuit of theme-wide consistency.
   6579 
   6580 + Rewrote the faces of EBDB to achieve a better sense of structure.
   6581 
   6582 + Refined the colour combinations of change-log and log-view buffers to
   6583   make it easier to discern distinct elements.
   6584 
   6585 + Tweaked the colours of certain Elfeed constructs to improve the
   6586   overall presentation of its search buffers.
   6587 
   6588 + Changed the colour combinations of 'M-x re-builder' to amplify the
   6589   distinction between the matching regexp groups while still reducing
   6590   their overall intensity.
   6591 
   6592 + Reconfigured the 'diff-changed' face to always extend its background
   6593   to the edge of the window.  Such "changed" lines are visible in
   6594   'diff-mode' buffers when the command 'diff-unified->context' is
   6595   invoked.
   6596 
   6597 + Tweaked the colour combinations of ancillary faces in diff buffers
   6598   when the variable 'modus-themes-diffs' is set to the value 'fg-only'.
   6599   In particular:
   6600 
   6601   - Removed the subtle background from the diff hunk headings and changed
   6602     their colour to ensure good visibility---guarantees a sense of
   6603     structure.
   6604 
   6605   - Made the context lines inherit the default foreground colour (pure
   6606     black/white), so that it contrasts better with red, green, and
   6607     yellow text.
   6608 
   6609   - Applied an accented foreground to the diff header.  This is to
   6610     ensure that it is not mistaken for a diff hunk's context.
   6611 
   6612   All these guarantee that the foreground-only highlights in line-wise
   6613   differences draw more attention to themselves.
   6614 
   6615 + Aligned all the standard hi-* faces with their default aesthetics.
   6616   Those are used by commands such as 'highlight-symbol-at-point'.
   6617   Thanks to Philip K. for the valuable feedback in issue 157:
   6618   <https://gitlab.com/protesilaos/modus-themes/-/issues/157>.
   6619 
   6620 + Removed obsolete Consult faces and added new ones, so as to remain in
   6621   sync with the latest developments in that project.  Thanks to Daniel
   6622   Mendler (Consult's maintainer) for reporting the inconsistency in
   6623   issue 155: <https://gitlab.com/protesilaos/modus-themes/-/issues/155>.
   6624 
   6625   - 'consult-preview-line' now retains fontification on the current
   6626     line, instead of applying its own foreground.
   6627 
   6628   - 'consult-narrow-indicator' is refashioned to be colour-coded in a
   6629     consistent way with 'consult-async-split', as both denote the
   6630     delineation of a given scope.
   6631 
   6632   - 'consult-imenu-prefix' contrasts better with text on its current
   6633     line, while it adapts to possible customisations performed on the
   6634     Consult front.
   6635 
   6636 + Expanded the coverage of 'marginalia' faces to two include
   6637   'marginalia-char' and 'marginalia-type'.  This is done in the interest
   6638   of internal consistency between the elements of this set, as their
   6639   defaults were also accessible (they inherit from standard faces that
   6640   we already support).
   6641 
   6642 + Opted to render the Notmuch logo in a neutral gray backdrop.  This was
   6643   deemed necessary as the logo is an immutable image file that consists
   6644   of black and white strokes.  Black and white are the main background
   6645   values of 'modus-vivendi' and 'modus-operandi' respectively, which
   6646   could lead to confusion.  The neutral gray ensures that the logo is
   6647   visible at all times.  Thanks to Utkarsh Singh for the feedback in
   6648   issue 122: <https://gitlab.com/protesilaos/modus-themes/-/issues/122>.
   6649 
   6650 + Refined the dedicated colour values used for diff hunk headings, as
   6651   seen in diff-mode buffers or Magit.  The new colours yield text that
   6652   is easier to read by slightly toning down the combined intensity of
   6653   background+foreground.
   6654 
   6655 + Removed the subtle background of 'diff-header' and 'diff-file-header'.
   6656   The header's foreground and textual representation suffice to render
   6657   it distinct in its context.
   6658 
   6659 + Tweaked 'org-agenda-structure' and 'org-scheduled' to enhance the
   6660   usability of Org Agenda buffers.
   6661 
   6662   - Made 'org-agenda-structure' use the largest possible height that we
   6663     expose to users: 'modus-themes-scale-5'.
   6664 
   6665   - Re-calibrated the hueness of 'org-scheduled' and amplified its
   6666     saturation, in order to better convey the meaning of a scheduled
   6667     task.
   6668 
   6669   Thanks to Morgan Smith for the valuable feedback in issue 153:
   6670   <https://gitlab.com/protesilaos/modus-themes/-/issues/153>.
   6671 
   6672 + Tweaked the faces of the 'bongo' package to enhance the
   6673   distinctiveness of the constructs they style.
   6674 
   6675 + Adjusted the overall aesthetic of calendar faces in the interest of
   6676   theme-wide consistency.
   6677 
   6678 + Aligned the visual metaphors of 'org-code' with those of 'org-macro'
   6679   and 'org-verbatim', by ensuring that a subtle background is present
   6680   behind the affected text, while the foreground conforms with the norms
   6681   of the 'modus-themes-no-mixed-fonts' customisation option.
   6682 
   6683 + Made quoted text in Info buffers look the same as 'org-verbatim' and
   6684   Markdown's inline code.
   6685 
   6686 + Instructed the faces of 'info-colors' to inherit from appropriate
   6687   font-lock faces.  This guarantees that everything works as intended
   6688   with the various values of 'modus-themes-syntax'.
   6689 
   6690 + Refined the language tag of Markdown fenced blocks so that it does
   6691   attract unwarranted attention while delivering on its intended
   6692   purpose.
   6693 
   6694 + Rendered explicit the slant of ace-window hints, guaranteeing that it
   6695   does not inherit from the underlying text.  Thanks to Nicolas De
   6696   Jaeghere for the patch:
   6697   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/27>.
   6698 
   6699   [ Some more changes have been discussed, but those require tweaks to
   6700     the upstream package. ]
   6701 
   6702 + Ensured that the 'org-tree-slide-header-overlay-face' never draws an
   6703   overline when the variable 'modus-themes-headings' includes a relevant
   6704   setting for heading level 1.  Such as with the following example (all
   6705   customisation options are documented in the themes' manual):
   6706 
   6707     (setq modus-themes-headings
   6708           '((1 . section)
   6709             ...))
   6710 
   6711 + Extended support for the new 'tab-line-tab-inactive-alternate' face as
   6712   that occurs in Emacs28 (current development target).  It comes into
   6713   effect when the variable 'tab-line-tab-face-functions' includes a
   6714   value of 'tab-line-tab-face-inactive-alternating'.
   6715 
   6716 
   6717 Newly supported packages
   6718 ------------------------
   6719 
   6720 + bbdb :: Thanks to Nicolas De Jaeghere in issue 128:
   6721   <https://gitlab.com/protesilaos/modus-themes/-/issues/128>.
   6722 
   6723 + mmm-mode :: Thanks to Davor Rotim for the feedback in issue 161:
   6724   <https://gitlab.com/protesilaos/modus-themes/-/issues/161>.
   6725 
   6726 + quick-peek :: Thanks to Burgess Chang for the feedback in issue 151:
   6727   <https://gitlab.com/protesilaos/modus-themes/-/issues/151>
   6728 
   6729 + selectrum-prescient :: This new package was brought to my attention by
   6730   Manuel Uberti.  The intent is to phase out the faces in Selectrum,
   6731   namely 'selectrum-primary-highlight', 'selectrum-secondary-highlight',
   6732   though those will still be supported by the Modus themes for the
   6733   foreseeable future.
   6734 
   6735 + shortdoc
   6736 
   6737 + spray
   6738 
   6739 + terraform-mode :: Thanks to Kevin Fleming for the feedback in issue
   6740   159: <https://gitlab.com/protesilaos/modus-themes/-/issues/159>.
   6741 
   6742 + vc-dir (Emacs28)
   6743 
   6744 
   6745 Theme-related contributions to the wider community
   6746 --------------------------------------------------
   6747 
   6748 + Contributed the faces for 'vc-dir' in Emacs28 and applied them to all
   6749   VC backends: <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=46358> and
   6750   <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=46745>.
   6751 
   6752 + Contributed a new face and some related tweaks to Emacs'
   6753   'shortdoc.el': <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=46748>.
   6754 
   6755 + Added faces to the 'tab-bar-echo-area.el' package:
   6756   <https://github.com/fritzgrabo/tab-bar-echo-area/pull/2>.
   6757 
   6758 + Reported issue that led to the review of the header face in
   6759   'org-tree-slide': <https://github.com/takaxp/org-tree-slide/issues/38>.
   6760 
   6761 + Helped refine the faces of the 'rlist.el' package:
   6762   <https://gitlab.com/mmemmew/rlist/-/commit/386f506d0110bebedd3a48ff972adba96e2232eb>.
   6763 
   6764 
   6765 Documentation updates
   6766 ---------------------
   6767 
   6768 + Wrote about the indirect support for the 'goggles' package.  I had
   6769   helped write its faces, as was documented in the changelog for version
   6770   1.1.0 of the themes.  Thanks to Manuel Uberti for bringing this to my
   6771   attention in issue 158:
   6772   <https://gitlab.com/protesilaos/modus-themes/-/issues/158>.
   6773 
   6774 + Explained that any changes to 'custom-theme-load-path' and/or
   6775   'custom-theme-directory' should be performed before the themes are
   6776   loaded.  Thanks to Adrian Manea for the feedback in issue 156:
   6777   <https://gitlab.com/protesilaos/modus-themes/-/issues/156>.
   6778 
   6779 + Included the symbol 'bg-only' in the 'modus-themes-diffs' section of
   6780   the manual.  Thanks to user "iSeeU" for reporting the omission:
   6781   <https://gitlab.com/protesilaos/modus-themes/-/issues/154>.
   6782 
   6783 + Expanded the manual's entry on the semantics of the optional heading
   6784   scale used by the themes (the variables 'modus-themes-scale-[1-5]').
   6785   The values 1-4 apply to regular headings, with 4 being the largest on
   6786   the scale.  While 'modus-themes-scale-5' is reserved for special
   6787   headers, such as Org '#+title:' or the Org Agenda's structure.  Recall
   6788   that those variables only come into effect if the boolean variable
   6789   'modus-themes-scale-headings' is set to a non-nil value (it is nil by
   6790   default).
   6791 
   6792 + Made several changes to the 'modus-themes.org' file in an effort to
   6793   improve the accuracy of the generated Texinfo markup.  Thanks to Glenn
   6794   Morris and Richard Stallman for their valuable feedback in
   6795   <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=45143>.
   6796 
   6797 + Recorded a note in the manual on the intended colouration of
   6798   backgrounds applied by 'mmm-mode'.  It explains what the constraints
   6799   are from an accessibility standpoint and how users can configure
   6800   things locally for more colourful, yet inaccessible, backgrounds.
   6801   Thanks to Davor Rotim for the valuable feedback in issue 161:
   6802   <https://gitlab.com/protesilaos/modus-themes/-/issues/161>.
   6803 
   6804 + Refined the manual's note on prism.el, simplifying the code samples
   6805   and clarifying the commentary.
   6806 
   6807 + Wrote indices for concepts, variables, functions, which are rendered
   6808   in the Info manual.
   6809 
   6810 + Elaborated on the possibility---and relative merits---of implementing
   6811   a theme-agnostic hook for advanced face configurations, as opposed to
   6812   relying on 'modus-themes-after-load-theme-hook'.  Thanks to Daniel
   6813   Mendler for the valuable feedback in issue 131:
   6814   <https://gitlab.com/protesilaos/modus-themes/-/issues/131>.
   6815 
   6816 
   6817 Miscellaneous
   6818 -------------
   6819 
   6820 + Rewrote the documentation string of the 'deftheme' declaration of
   6821   'modus-operandi' and 'modus-vivendi'.
   6822 
   6823 + Provided links to the Info nodes that discuss each of the 'defcustom'
   6824   declarations.
   6825 
   6826 + Wrote doc strings for every custom face that the themes define.
   6827 #+end_src
   6828 
   6829 
   6830 * 1.1.0
   6831 :PROPERTIES:
   6832 :CUSTOM_ID: h:bb0e16a9-8a8b-4b1b-9d62-b1715295247b
   6833 :END:
   6834 
   6835 #+begin_src text
   6836 Modus themes version 1.1.0
   6837 
   6838 By Protesilaos Stavrou <info@protesilaos.com> on 2021-01-24
   6839 
   6840 This entry records the changes introduced to the project since the
   6841 publication of version 1.0.0 (2020-12-05).  There have been around 150
   6842 commits in the meantime, qualifying this as one of the largest releases
   6843 to date.
   6844 
   6845 As always, every colour-related modification documented herein conforms
   6846 with the overarching accessibility objective of the themes for a minimum
   6847 contrast ratio of 7:1 between background and foreground values in their
   6848 given combination (conformance with the WCAG AAA standard).
   6849 
   6850 As the official manual is referenced several times, make sure to store
   6851 its URL: <https://protesilaos.com/emacs/modus-themes>.
   6852 
   6853 If you are coming from older versions, please consult the change log
   6854 entry for version 1.0.0.
   6855 
   6856 
   6857 Overview
   6858 --------
   6859 
   6860 + We have brought back the options that were present in version 0.13.0
   6861   or earlier which allowed users to override colors for either---or
   6862   both---of Modus Operandi and Modus Vivendi.  Compared to the old
   6863   mechanism, the new one is more robust and should work regardless of
   6864   whether users run byte compiled code or not.  This is considered and
   6865   advanced, "do-it-yourself" pathway to theme customisation.  It is
   6866   discussed at length in the manual.
   6867 
   6868 + The new 'modus-themes-with-colors' macro makes it possible to read
   6869   palette variables from the active theme and, thus, pass them to
   6870   arbitrary functions or variables.  Again, this is part of the advanced
   6871   customisations that are covered in the manual.
   6872 
   6873 + Several of the existing customisation options provide new stylistic
   6874   variants, further expanding their utility.  While there are some new
   6875   customisations altogether.  Combined with the above, we provide the
   6876   infrastructure that allows the themes to adapt gracefully to a variety
   6877   of circumstances and cover a broad range of demands.
   6878 
   6879 + More packages are added to the already comprehensive list of supported
   6880   face groups.
   6881 
   6882 + Some of the supported faces have benefited from further, albeit
   6883   subtle, refinements, demonstrating our commitment to consistency as
   6884   well as our attention to detail.
   6885 
   6886 + Two reports on such "further refinements" were published on the code
   6887   log section of protesilaos.com: <https://protesilaos.com/codelog>.
   6888 
   6889 + We have more people contributing to the project (and assigning
   6890   copyright to the FSF---as the themes are part of Emacs) and newer
   6891   users reporting issues.  Also, there is anecdotal evidence from
   6892   several sources on an increased interest to make new or existing faces
   6893   accessible by default (such as by copying colour combinations from the
   6894   themes).
   6895 
   6896 
   6897 New customisation options
   6898 -------------------------
   6899 
   6900 + The existing 'modus-themes-mode-line' variable now supports three new
   6901   borderless styles: 'borderless', 'borderless-3d', 'borderless-moody'.
   6902 
   6903   - The 'borderless' value uses the same colors as the default (nil
   6904     value), but removes the border effect.  This is done by making the
   6905     box property use the same color as the background, effectively
   6906     blending the two and creating some padding.
   6907 
   6908   - The 'borderless-3d' and 'borderless-moody' approximate the '3d' and
   6909     'moody' options respectively, while removing the borders.  However,
   6910     to ensure that the inactive modelines remain visible, they apply a
   6911     slightly more prominent background to them than what their
   6912     counterparts do (same inactive background as with the default).
   6913 
   6914   The complete list of options:
   6915 
   6916     1. nil (default)
   6917     2. 3d
   6918     3. moody
   6919     4. borderless
   6920     5. borderless-3d
   6921     6. borderless-moody
   6922 
   6923 + 'modus-themes-lang-checkers' provides several styles for spell
   6924   checkers and code linters with regard to how they underline text.  The
   6925   default (nil) is to use a colour-coded wavy underline, without
   6926   changing the foreground of the affected text.  Other options include
   6927   the ability to set a straight underline and to control the saturation
   6928   of the foreground, while one also provides for a change in the
   6929   background of the text in question.  The valid symbols are as follows
   6930   (read the manual for more on the matter):
   6931 
   6932     1. nil (default)
   6933     2. straight-underline
   6934     3. subtle-foreground
   6935     4. subtle-foreground-straight-underline
   6936     5. intense-foreground
   6937     6. intense-foreground-straight-underline
   6938     7. colored-background
   6939 
   6940 + The 'modus-themes-org-habit' lets users pick between three styles for
   6941   the 'org-habit' table: (1) nil (the default), which uses a total of
   6942   eight colours, (2) 'simplified' which reduces the effective colours to
   6943   four, while applying less saturated hues, and (3) 'traffic-light'
   6944   which bring the colour count to three, thus blending the "clear" and
   6945   "ready" states for workflows where the distinction between is not
   6946   useful.
   6947 
   6948   Please read the manual for a more detailed description of those
   6949   variants.
   6950 
   6951   Thanks to Gustavo Barros for suggesting the idea, providing user
   6952   feedback on stylistic choices, as well as sharing insights on the
   6953   workflow that made the 'traffic-light' style possible:
   6954   <https://gitlab.com/protesilaos/modus-themes/-/issues/135>.
   6955 
   6956 + 'modus-themes-variable-pitch-ui' when set to a non-nil value applies a
   6957   proportionately spaced typeface (controlled by the 'variable-pitch'
   6958   face) to the User Interface, specifically the mode line, header line,
   6959   and tab-{bar,line}.
   6960 
   6961 + The existing 'modus-themes-links' variable now has a colourless
   6962   stylistic alternative: 'underline-only'.  The available styles:
   6963 
   6964     1. nil (default)
   6965     2. faint
   6966     3. neutral-underline
   6967     4. faint-neutral-underline
   6968     5. no-underline
   6969     6. underline-only
   6970 
   6971 + The existing 'modus-themes-prompts' variable has two new grayscale
   6972   styles: 'subtle-gray', 'intense-gray'.  Furthermore, their old
   6973   'subtle' and 'intense' values have more informative aliases in the
   6974   form of 'subtle-accented' and 'intense-accented'.  All available
   6975   values:
   6976 
   6977     1. nil (default)
   6978     2. subtle-accented ('subtle' remains for backward-compatibility)
   6979     3. intense-accented ('intense' remains for backward-compatibility)
   6980     4. subtle-gray
   6981     5. intense-gray
   6982 
   6983 + The existing 'modus-themes-headings' variable now accepts two new
   6984   styles: 'no-color', 'no-color-no-bold'.  All stylistic variants:
   6985 
   6986     1.  nil (default fallback option---covers all heading levels)
   6987     2.  t (default style for a single heading, when the fallback differs)
   6988     3.  no-bold
   6989     4.  line
   6990     5.  line-no-bold
   6991     6.  rainbow
   6992     7.  rainbow-line
   6993     8.  rainbow-line-no-bold
   6994     9.  highlight
   6995     10. highlight-no-bold
   6996     11. rainbow-highlight
   6997     12. rainbow-highlight-no-bold
   6998     13. section
   6999     14. section-no-bold
   7000     15. rainbow-section
   7001     16. rainbow-section-no-bold
   7002     17. no-color
   7003     18. no-color-no-bold
   7004 
   7005   Please read the manual for instructions on how to apply those
   7006   universally or on a per-level basis.
   7007 
   7008 
   7009 Added support for packages
   7010 --------------------------
   7011 
   7012 + cfrs (used by treemacs)
   7013 + cperl-mode
   7014 + diredc
   7015 
   7016 + display-fill-column-indicator-mode.  Thanks to Gustavo Barros for the
   7017   feedback: <https://gitlab.com/protesilaos/modus-themes/-/issues/148>.
   7018 
   7019 + evil-snipe.  Thanks to Peter Wu for the feedback:
   7020   <https://gitlab.com/protesilaos/modus-themes/-/issues/139>.
   7021 
   7022 + isl (isearch-light).  Thanks to Manuel Uberti for the feedback:
   7023   <https://gitlab.com/protesilaos/modus-themes/-/issues/144>.
   7024 
   7025 + marginalia
   7026 + org-tree-slide
   7027 + recursion-indicator
   7028 
   7029 + solaire.  Thanks to CsBigDataHub1 for the feedback:
   7030   <https://gitlab.com/protesilaos/modus-themes/-/issues/137>.
   7031 
   7032 
   7033 Refinements to already supported faces
   7034 --------------------------------------
   7035 
   7036 + Reviewed the 'rainbow-delimiters' faces.  Everything is documented in
   7037   a separate report (with screenshots).  The short version is that we
   7038   pay close attention to detail and are willing to go to great lengths
   7039   in pursuit of improving the overall user experience:
   7040   <https://protesilaos.com/codelog/2020-12-27-modus-themes-review-rainbow-delimiters/>.
   7041 
   7042 + Updated the dedicated colours for 'whitespace-mode'.  The background
   7043   should now be easier to discern.  Also removed any remaining
   7044   inconsistencies.  Thanks to Toon Claes for the feedback:
   7045   <https://gitlab.com/protesilaos/modus-themes/-/issues/149>.
   7046 
   7047 + Refined the faces of regexp constructs for strings affected by certain
   7048   values passed to the 'modus-themes-syntax' option.  This is done to
   7049   disambiguate the backslashes and grouping delimiters from the rest of
   7050   the string.  The relevant values for 'modus-themes-syntax' are:
   7051 
   7052   - green-strings
   7053   - yellow-comments-green-strings
   7054   - alt-syntax
   7055   - alt-syntax-yellow-comments
   7056 
   7057   The default colour for strings is blue, while regexp faces are yellow
   7058   and red, whereas in those variants the strings become green, hence the
   7059   need to make regexp faces more distinct (blue and magenta contrast
   7060   better with green and also between themselves, thus matching the
   7061   alternative aesthetics).
   7062 
   7063 + Reviewed dictionary.el faces (which ships with Emacs 28):
   7064 
   7065   - Made 'dictionary-reference-face' look like all other links.
   7066 
   7067   - Removed all properties from 'dictionary-word-definition-face':
   7068     the default sets a font family, which can create inconsistencies.
   7069 
   7070   - Converted 'dictionary-word-entry-face' into comment-like text.
   7071 
   7072 + Refined and expanded the faces of Consult.
   7073 
   7074   - Made its grep commands look the same as those of all other grep
   7075     tools.
   7076 
   7077   - Ensured that line number previews, such as for the 'consult-line'
   7078     command use their own style of a subtle foreground instead of
   7079     inheriting from the 'line-number' face.  This is to avoid cases
   7080     where previewed numbers and actual line numbers could be conflated
   7081     for one another.
   7082 
   7083   - Removed the foreground pertinent to 'consult-imenu-prefix', as its
   7084     bold weight combined with the structure of Imenu indices was deemed
   7085     sufficient to differentiate it from actual 'consult-imenu' targets.
   7086 
   7087 + Eliminated exaggerations in the use of colour for various 'which-key'
   7088   faces.
   7089 
   7090 + Removed the needless background from the 'log-view-commit-body' face.
   7091   This is a new face that ships with Emacs 28 (its inclusion upstream
   7092   was documented in the last changelog entry).
   7093 
   7094 + Applied a subtle background to the 'log-view-message' face, in the
   7095   interest of improving the usability of its interface, in particular,
   7096   to contribute to heightened situational awareness while invoking
   7097   'log-view-toggle-entry-display' in buffers such as those produced by
   7098   'vc-print-root-log'.
   7099 
   7100 + Introduced a neutral background for all 'outline-minor-faces' instead
   7101   of merely mirroring the style of 'outline-mode' headings.  This is
   7102   because it can sometimes be hard to tell whether 'outline-minor-mode'
   7103   is active, provided certain fairly common configurations in the
   7104   'modus-themes-headings' user option (refer to the manual for all
   7105   customisation options).
   7106 
   7107 + Tweaked 'diff-mode' headings.
   7108 
   7109   - Adjusted the values of the dedicated colours for diff headings in
   7110     order to amplify their relative contrast.
   7111 
   7112   - Assigned a bold typographic weight to the 'diff-hunk-header' face so
   7113     as to enforce a greater sense of structure.
   7114 
   7115   - Instructed 'diff-function' to inherit 'modus-theme-diff-heading' in
   7116     order to eliminate exaggerations in colouration.
   7117 
   7118 + Removed unnecessary underline from 'selectrum-current-candidate'.
   7119   Thanks to Daniel Mendler for the feedback:
   7120   <https://gitlab.com/protesilaos/modus-themes/-/issues/132>.
   7121 
   7122 + Made 'counsel-outline' inherit from the underlying Org faces.  Also
   7123   corrected the style of 'counsel-outline-default' to use the main
   7124   foreground colour.  Thanks to Gustavo Barros for the feedback:
   7125   <https://gitlab.com/protesilaos/modus-themes/-/issues/134>.
   7126 
   7127 + Prevented headings, ultimately governed by the 'modus-themes-headings'
   7128   user option, from inheriting the 'default' face as that could lead to
   7129   unintended consequences, such as by retaining a background colour when
   7130   none was expected.
   7131 
   7132 + Refashioned all faces that specified a foreground value of 'fg-alt' to
   7133   inherit the 'shadow' face instead ('fg-alt' is the colour that is
   7134   used, for example, in code comments by default).  This makes it
   7135   possible for users to enact change across the theme just by tweaking
   7136   'shadow'.
   7137 
   7138 + Fixed 'ruler-mode' text scaling adjustment, to make it cope well with
   7139   'text-scale-adjust' and relevant commands.  Also introduced minor
   7140   stylistic changes to the remainder of the 'ruler-mode' faces.
   7141 
   7142 + Eliminated the potentially problematic form of ':foreground nil' from
   7143   the 'org-ellipsis' face.  In such cases it is always better to either
   7144   specify no foreground whatsoever, or declare an unspecified value.
   7145 
   7146 
   7147 Patches from the community
   7148 --------------------------
   7149 
   7150 Remember that the themes are part of Emacs and, thus, contributions that
   7151 exceed a cumulative total of ~15 lines require the assignment of
   7152 copyright to the Free Software Foundation.  Please consult the themes'
   7153 manual on the matter.
   7154 
   7155 + Nicolas De Jaeghere added support for 'exwm-floating-border-color':
   7156   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/15>.
   7157 
   7158 + Anders Johansson added support for 'helm-fd-finish':
   7159   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/16>.
   7160 
   7161 + Carlo Zancanaro fixed misquoting of 'tuareg-font-lock-multistage-face':
   7162   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/17>.
   7163 
   7164 + Xinglu Chen expanded Notmuch support to all its remaining faces:
   7165   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/18>.
   7166 
   7167 + Kostadin Ninev added support for Dired+:
   7168   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/19>.
   7169 
   7170 + Nicolas De Jaeghere expanded the supported items of 'pdf-faces'.  Also
   7171   added an entry to the manual pertaining to link hints and the
   7172   requisite setup:
   7173   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/20>.
   7174 
   7175 + Nicolas De Jaeghere wrote the new 'modus-themes-with-colors' macro,
   7176   which is documented at length in the manual:
   7177   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/21>.
   7178 
   7179 + Nicolas De Jaeghere set up the infrastructure that grants users the
   7180   ability to override palette colors; an option that was removed in the
   7181   transition from version 0.13.0 to 1.0.0.  The relevant variables are
   7182   'modus-themes-colors-operandi', 'modus-themes-colors-vivendi' (again,
   7183   consult the manual):
   7184   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/23>.
   7185 
   7186 + Nicolas De Jaeghere deleted the 'modus-themes-core.el' file and merged
   7187   its contents into the main 'modus-themes.el' library:
   7188   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/24> and
   7189   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/25>.
   7190 
   7191 + Nicolas De Jaeghere made the 'compilation-info' face consistent with
   7192   other compilation faces in terms of their optional bold weight:
   7193   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/26>.
   7194 
   7195 Any remaining faults that may exist, despite our best intentions to
   7196 remove them, are those of the maintainer and will be addressed as soon
   7197 as they are identified.
   7198 
   7199 FSF copyright status:
   7200 
   7201 | Full name           | Copyright    |
   7202 |---------------------+--------------|
   7203 | Anders Johansson    | covered      |
   7204 | Carlo Zancanaro     | not required |
   7205 | Kostadin Ninev      | covered      |
   7206 | Nicolas De Jaeghere | covered      |
   7207 | Xinglu Chen         | not required |
   7208 
   7209 
   7210 Theme-related contributions to the wider community
   7211 --------------------------------------------------
   7212 
   7213 + Helped address an incomplete colour value in 'org-transclusion-block':
   7214   <https://github.com/nobiot/org-transclusion/issues/41>.
   7215 
   7216 + Contributed to the formation of the zebra striping of 'embark':
   7217   <https://github.com/oantolin/embark/commit/bb4ae2a666ab1f4a307edd71f77bcbb90fb25cef>.
   7218 
   7219 + Reviewed the faces of 'goggles':
   7220   <https://github.com/minad/goggles/commit/d6e584a2c9487d3df4aee818c43485e437cb87ef>.
   7221 
   7222 + Helped raise awareness about refactoring 'org-tree-slide-header-overlay-face':
   7223   <https://github.com/takaxp/org-tree-slide/issues/38>.
   7224 
   7225 + Reported an issue for Moody that would affect the subset of Emacs 28
   7226   users who enable the new 'mode-line-compact' option:
   7227   <https://github.com/tarsius/moody/issues/28>.
   7228 
   7229 + Did the same for Keycast: <https://github.com/tarsius/keycast/issues/13>.
   7230 
   7231 + Defined the new 'perl-non-scalar-variable' in upstream Emacs:
   7232   <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=45840>.
   7233 
   7234 
   7235 Miscellaneous
   7236 -------------
   7237 
   7238 + Created a new palette subset for "graph" colours, as none of the
   7239   existing paradigms would suffice for cases where faithfulness to
   7240   colour huenesss is important.  Those are currently used by
   7241   'modus-themes-org-habit'.
   7242 
   7243 + Ensured that theme functions which need to produce an error message do
   7244   so by calling 'error' instead of 'user-error'.
   7245 
   7246 + Added a 'modus-themes-load-themes' function that users can add to
   7247   their init files.
   7248 
   7249 + Expanded the project's git repo README file with a sample
   7250   'use-package' configuration.
   7251 
   7252 + The previous two points followed from an inquiry into the subtleties
   7253   between 'enable-theme' and 'load-theme'.  Those are now documented at
   7254   length in the manual.
   7255 
   7256 + Added screenshots to the web page that holds the official manual.
   7257   Thanks to Damien Cassou for the feedback:
   7258   <https://gitlab.com/protesilaos/modus-themes/-/issues/147>.
   7259 
   7260 + Swapped the values of 'cyan-faint' and 'cyan-alt-faint' for Modus
   7261   Vivendi.
   7262 
   7263 + Tweaked 'font-lock-doc-face' and 'font-lock-type-face' variations when
   7264   "faint syntax" is in effect: (setq modus-themes-syntax 'faint).
   7265 
   7266 + Refined 'font-lock-doc-face' for when modus-themes-syntax is given a
   7267   value of either 'yellow-comments-green-strings' or 'green-strings'.
   7268   The changes are minor when treated in isolation, though they have
   7269   helped improve the overall consistency of the end result: the gestalt.
   7270 
   7271 + Reviewed select "faint" colours for both Modus Operandi and Modus
   7272   Vivendi.  The technicalities are discussed in a complete report:
   7273   <https://protesilaos.com/codelog/2021-01-11-modus-themes-review-select-faint-colours/>.
   7274 
   7275 + Ensured that (setq modus-themes-syntax 'alt-syntax) and its "yellow
   7276   comments" variant are more truthful to their intended style, by
   7277   eliminating any exaggerations in the use of colour.
   7278 
   7279 + Adjusted the saturation of the green-alt value of Modus Vivendi.
   7280 
   7281 + Updated the manual to reflect all of the aforementioned.
   7282 
   7283 Thanks once again to everyone who contributed patches or reported an
   7284 issue.  This has been yet another period of intense work; work which
   7285 helps solidify the Modus themes as (i) uncompromisingly accessible in
   7286 accordance with the highest legibility standard, (ii) highly
   7287 customisable in true Emacs fashion, (iii) thoroughly comprehensive in
   7288 terms of face coverage, and (iv) meticulously designed throughout.
   7289 #+end_src
   7290 
   7291 * 1.0.0
   7292 :PROPERTIES:
   7293 :CUSTOM_ID: h:94b5915e-1085-4859-ac9f-daf91e007741
   7294 :END:
   7295 
   7296 #+begin_src text
   7297 Modus themes version 1.0.0
   7298 
   7299 By Protesilaos Stavrou <info@protesilaos.com> on 2020-12-05
   7300 
   7301 This entry documents the changes since version 0.13.0 (2020-10-08).
   7302 They constitute a major release with backward-incompatible additions
   7303 which are described below.
   7304 
   7305 As always, every colour-related modification documented herein conforms
   7306 with the overarching accessibility objective of the themes for a minimum
   7307 contrast ratio of 7:1 between background and foreground values in their
   7308 given combination (conformance with the WCAG AAA standard).
   7309 
   7310 Expect to find examples of basic and advanced customisations in the
   7311 comprehensive Info manual bundled with the themes, which is also
   7312 available at: <https://protesilaos.com/emacs/modus-themes>.
   7313 
   7314 
   7315 Overview of major changes
   7316 =========================
   7317 
   7318 0. The option that was present in earlier releases to override the
   7319    colour palette has been removed.  It cannot work with byte
   7320    compilation.  We must not compromise on performance, especially in
   7321    light of the fairly high line count of the themes (broad face
   7322    coverage combined with a multitude of customisation options).
   7323 
   7324 1. The code base has been refactored.  The two themes, Modus Operandi
   7325    (light) and Modus Vivendi (dark), derive from the same source.
   7326 
   7327 2. The refactoring makes it possible to distribute the two themes as
   7328    part of a single package.  You can find 'modus-themes' on MELPA, with
   7329    other archives and core Emacs following suit soon thereafter (the
   7330    Modus themes are built into Emacs since their version 0.12.0).
   7331 
   7332 3. The 'modus-operandi-theme' and 'modus-vivendi-theme' packages in
   7333    MELPA and GNU ELPA are obsolete.  MELPA has already deleted them and
   7334    now only provides 'modus-themes', while GNU ELPA shall do so soon
   7335    enough.
   7336 
   7337    + Package providers of GNU/Linux distros, or other archives, are
   7338      encouraged to update their sources so that they only deliver a
   7339      single package that covers both themes.
   7340 
   7341 4. To avoid surprises, the refactored code is in the 'main' branch which
   7342    becomes the default henceforth.  The 'master' branch, from where all
   7343    prior releases were built, is thus deprecated.  Existing installs of
   7344    'modus-operandi-theme' and/or 'modus-vivendi-theme' must manually
   7345    switch to the new package sources, which offer a certain guarantee
   7346    that they are informed of the breaking changes documented herein.
   7347 
   7348    + Users of 'straight.el' must make sure that they pull from the
   7349      'main' branch.  This may also be the case for other such tools,
   7350      though I have not had the time to test them all.
   7351 
   7352 5. The refactoring introduces a unified customisation framework.  Now
   7353    all user-facing variables are named 'modus-themes-*' instead of
   7354    'modus-operandi-*' and 'modus-vivendi-*'.  Users of both items can
   7355    thus cut down on duplicate code or inelegant workarounds on their
   7356    end.  Example:
   7357 
   7358        modus-operandi-bold-constructs
   7359           |   |   |   |   |   |   |   ====> modus-themes-bold-constructs
   7360        modus-vivendi-bold-constructs
   7361 
   7362 6. The themes now provide common user-facing functions.
   7363 
   7364    + 'modus-themes-load-operandi' and 'modus-themes-load-vivendi' can be
   7365      used in Lisp to load the theme they name, while disabling their
   7366      counterpart and running 'modus-themes-after-load-theme-hook'.  The
   7367      hook can be used to override or further customise faces (examples
   7368      are furnished in the manual).
   7369 
   7370    + 'modus-themes-toggle' interactively switches between Modus Operandi
   7371      and Modus Vivendi or opens a minibuffer prompt to select between
   7372      the two if none of them is active.  It ultimately calls the
   7373      aforementioned functions to load the themes, so it also triggers
   7374      the hook.  Bind this command to a key of your convenience (the
   7375      author uses F5).
   7376 
   7377    + 'modus-themes-color' returns the colour value of a symbol in the
   7378      alists that hold the themes' palettes.  The alists are
   7379      'modus-themes-colors-operandi' and 'modus-themes-colors-vivendi'.
   7380      'modus-themes-color' always operates on the active theme, making it
   7381      suitable for post-theme-load customisations (via the hook we
   7382      covered earlier).  Its usage is documented in the manual and is
   7383      meant to be employed by those who are prepared to assume
   7384      responsibility for face-related changes they introduce on their
   7385      setup.
   7386 
   7387    + 'modus-themes-color-alts' occupies the same niche as the one right
   7388      above, with the exception that it takes two arguments.  The first
   7389      is the alist key to be used by 'modus-operandi' and the second is
   7390      for 'modus-vivendi'.
   7391 
   7392    + 'modus-themes-wcag-formula' implements the WCAG formula to measure
   7393      a colour value's relative luminance.  While 'modus-themes-contrast'
   7394      applies the formula to derive the contrast ratio between two colour
   7395      values in hexadecimal RGB notation.  This can be used to verify the
   7396      accessibility of colour combinations provided by the themes or new
   7397      ones defined at the user level (the Modus themes conform with the
   7398      WCAG AAA standard which means that this kind of contrast is 7:1 or
   7399      higher for all applicable background+foreground combinations).
   7400 
   7401 
   7402 Customisation options
   7403 =====================
   7404 
   7405 This is the complete list with all the customisation options:
   7406 
   7407     modus-themes-slanted-constructs             (boolean)
   7408     modus-themes-bold-constructs                (boolean)
   7409     modus-themes-variable-pitch-headings        (boolean)
   7410     modus-themes-no-mixed-fonts                 (boolean)
   7411     modus-themes-headings                       (alist)
   7412     modus-themes-scale-headings                 (boolean)
   7413     modus-themes-fringes                        (choice)
   7414     modus-themes-org-blocks                     (choice)
   7415     modus-themes-prompts                        (choice)
   7416     modus-themes-mode-line                      (choice)
   7417     modus-themes-diffs                          (choice)
   7418     modus-themes-syntax                         (choice)
   7419     modus-themes-intense-hl-line                (boolean)
   7420     modus-themes-paren-match                    (choice)
   7421     modus-themes-region                         (choice)
   7422     modus-themes-links                          (choice)
   7423     modus-themes-completions                    (choice)
   7424 
   7425 Plus those which are contingent on 'modus-themes-scale-headings':
   7426 
   7427     modus-themes-scale-1
   7428     modus-themes-scale-2
   7429     modus-themes-scale-3
   7430     modus-themes-scale-4
   7431     modus-themes-scale-5
   7432 
   7433 Consult the manual for each of them and please verify that none of the
   7434 older options remains in your init file.
   7435 
   7436 
   7437 Customisation options that did not exist in earlier versions
   7438 ------------------------------------------------------------
   7439 
   7440 New entries and their possible values:
   7441 
   7442 1. modus-themes-syntax
   7443 
   7444    ,* nil (default)
   7445    ,* faint
   7446    ,* yellow-comments
   7447    ,* green-strings
   7448    ,* yellow-comments-green-strings
   7449    ,* alt-syntax
   7450    ,* alt-syntax-yellow-comments
   7451 
   7452    (supersedes options for "faint syntax" and "comments")
   7453 
   7454 2. modus-themes-links
   7455 
   7456    ,* nil (default)
   7457    ,* faint
   7458    ,* neutral-underline
   7459    ,* faint-neutral-underline
   7460    ,* no-underline
   7461 
   7462    (supersedes options for "no underlines")
   7463 
   7464 3. modus-themes-paren-match
   7465 
   7466    ,* nil (default)
   7467    ,* intense
   7468    ,* subtle-bold
   7469    ,* intense-bold
   7470 
   7471    (supersedes options for "intense paren match")
   7472 
   7473 4. modus-themes-region
   7474 
   7475    ,* nil (default)
   7476    ,* no-extend
   7477    ,* bg-only
   7478    ,* bg-only-no-extend
   7479 
   7480 Furthermore, the 'modus-themes-diff' has a new option to choose from:
   7481 the symbol 'bg-only'.  It applies colour-coded backgrounds but does not
   7482 override any syntax highlighting that may be present.  This makes it
   7483 suitable for use with a non-nil value for diff-font-lock-syntax (which
   7484 is the default for diff-mode buffers in Emacs 27 or higher).
   7485 
   7486 
   7487 Support for new faces or face groups
   7488 ====================================
   7489 
   7490 + consult
   7491 + macrostep
   7492 + make-mode
   7493 + pdf-tools
   7494 + popup
   7495 + shr
   7496 + sieve-mode
   7497 
   7498 (remember that the list of supported packages is already comprehensive)
   7499 
   7500 Thanks to:
   7501 
   7502 + Adam Spiers for bringing 'macrostep' to my attention.
   7503 
   7504 + Madhavan Krishnan for submitting the code for pdf-tools:
   7505   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/14>.
   7506 
   7507 + Manuel Uberti for reporting the issue with popup.el:
   7508   <https://gitlab.com/protesilaos/modus-themes/-/issues/107>.
   7509 
   7510 + Again thanks to Manuel for consult:
   7511   <https://gitlab.com/protesilaos/modus-themes/-/issues/123>.  And to
   7512   Daniel Mendler, its developer, for communicating with us on the status
   7513   of the project.
   7514 
   7515 + Togan Muftuoglu for reporting the issue with sieve-mode:
   7516   <https://gitlab.com/protesilaos/modus-themes/-/issues/121>.
   7517 
   7518 
   7519 Refinements to existing faces
   7520 =============================
   7521 
   7522 + The diary and holiday marks in 'M-x calendar' are displayed using a
   7523   slightly tinted background in order to improve their contrast.
   7524   Holidays are also rendered in a bold font.  Thanks to Nicolas De
   7525   Jaeghere for reporting the issue and following it up with valuable
   7526   feedback: <https://gitlab.com/protesilaos/modus-themes/-/issues/127>.
   7527 
   7528 + Code blocks in 'markdown-mode' now have a subtle background that
   7529   extends to the edge of the window.  Thanks to Roman Rudakov for the
   7530   suggestion and Hörmetjan Yiltiz for further testing:
   7531   <https://gitlab.com/protesilaos/modus-themes/-/issues/115>.
   7532 
   7533 + Inline code in 'markdown-mode' has a subtle background that covers the
   7534   length of the construct.  Refer to issue #115 as above.
   7535 
   7536 + Ivy's main pattern-matching faces are slightly adjusted to work more
   7537   effectively when users opt for "modus-themes-completions 'moderate" or
   7538   "modus-themes-completions 'opinionated".
   7539 
   7540 + Swiper's 'swiper-isearch' command defaults to a more colourful
   7541   presentation that clearly disambiguates matching pattern groups
   7542   between themselves as well as their own active and inactive states.
   7543   Thanks to John Haman for reporting the problem:
   7544   <https://gitlab.com/protesilaos/modus-themes/-/issues/125>.
   7545 
   7546 + Swiper's remaining faces are tweaked to better convey the intent of
   7547   this tool.
   7548 
   7549 + The border of 'ivy-posframe' is more noticeable.  Thanks to Pete
   7550   Kazmier: <https://gitlab.com/protesilaos/modus-themes/-/issues/126>.
   7551 
   7552 + The 'fringe' face no longer returns a nil background, which allows
   7553   'dap-ui-controls-mode' to display things properly.  Thanks to Simon
   7554   Pugnet: <https://gitlab.com/protesilaos/modus-themes/-/issues/106>.
   7555 
   7556 + Tags and priority cookies in Org mode no longer have a box property.
   7557   This is because of changes in upstream Org that we helped solve and
   7558   that are covered in the previous CHANGELOG entry (in short: Org
   7559   heading constructs inherit the underlying heading's properties that
   7560   are not part of their own specs, while they retain those that are
   7561   explicitly defined for them---adaptive headings).  Properly solves the
   7562   following issues:
   7563 
   7564   ,* <https://gitlab.com/protesilaos/modus-themes/-/issues/104>.  Thanks
   7565     to user "bepolymathe".
   7566 
   7567   ,* <https://gitlab.com/protesilaos/modus-themes/-/issues/95>.  Thanks
   7568     to Roman Rudakov.
   7569 
   7570 + The faces of 'M-x re-builder' are less intrusive.
   7571 
   7572 + All the following now inherit from basic font-lock faces and thus
   7573   benefit from options such as 'modus-themes-syntax':
   7574 
   7575   ,* geiser
   7576   ,* nxml-mode
   7577   ,* tuareg
   7578   ,* web-mode
   7579   ,* xah-elisp-mode
   7580 
   7581 + Diff headers have a subtle grey background that extends to the edge of
   7582   the window.
   7583 
   7584 + The faces of log-view and change-log use colour combinations that
   7585   better differentiate the various objects on display.
   7586 
   7587 + 'font-lock-type-face' uses a cyan hue instead of magenta.
   7588 
   7589 + 'magit-header-line-key' uses a blue foreground colour instead of red.
   7590 
   7591 + Doc strings in code syntax are rendered in a new dedicated colour.
   7592   The change is fairly subtle and should practically go unnoticed.
   7593 
   7594 + 'org-date' now respects the 'modus-themes-no-mixed-fonts' option.
   7595   Thanks to user "fleimgruber" for reporting the issue:
   7596   <https://gitlab.com/protesilaos/modus-themes/-/issues/124>.
   7597 
   7598 + 'org-property-value' uses a slightly different shade of cyan.
   7599 
   7600 + 'dim-autoload' will always look like a regular comment.
   7601 
   7602 + The 'italic' face is inhereted by all relevant faces instead of
   7603   hard-wiring a slant property.  This offers the potential advantage of
   7604   specifying a distinct family (or other properties) for constructs that
   7605   are meant to be rendered in italics (the manual has an example in its
   7606   DIY sections for this scenario though it uses the 'bold' face---just
   7607   apply the same idea to the 'italic' face).
   7608 
   7609 + 'dictionary-reference-face' inherits from 'button' (as with all
   7610   links).
   7611 
   7612 + Several comment-related faces beyond the basic ones work with
   7613   'modus-themes-syntax' when that has an effect on the colour of
   7614   comments.  The faces are:
   7615 
   7616   ,* git-commit-comment-file
   7617   ,* git-commit-comment-heading
   7618   ,* git-rebase-comment-hash
   7619   ,* git-rebase-comment-heading
   7620 
   7621 + 'transient-value' is more noticeable and fits better in its context.
   7622 
   7623 + All remaining Org metadata-related faces are refined for consistency
   7624   between them in an attempt to make them unobtrusive.  More subtle
   7625   colouration is applied.  Affected faces:
   7626 
   7627   ,* org-drawer
   7628   ,* org-property-value
   7629   ,* org-special-keyword
   7630 
   7631 
   7632 Theme-related contributions to the wider community
   7633 ==================================================
   7634 
   7635 + Defined the 'log-view-commit-body' for Emacs 28.1:
   7636   <https://lists.gnu.org/archive/html/bug-gnu-emacs/2020-11/msg00303.html>
   7637   and
   7638   <https://lists.gnu.org/archive/html/bug-gnu-emacs/2020-11/msg02196.html>.
   7639 
   7640 + Specified the version of the 'diff-error' face for Emacs 28.1:
   7641   <https://lists.gnu.org/archive/html/bug-gnu-emacs/2020-11/msg01328.html>.
   7642 
   7643 + Added the 'org-dispatcher-highlight' face to upstream Org:
   7644   <https://lists.gnu.org/archive/html/emacs-orgmode/2020-10/msg00158.html>.
   7645 
   7646   ,* Report with screenshots:
   7647     <https://protesilaos.com/codelog/2020-10-24-org-export-dispatcher-face/>.
   7648 
   7649 + Helped fix face of Flymake's unknown backend in inactive modelines:
   7650   <https://lists.gnu.org/archive/html/bug-gnu-emacs/2020-11/msg01119.html>.
   7651 
   7652 + Solved bug#44198 about a user not knowning the themes are in Emacs:
   7653   <https://lists.gnu.org/archive/html/bug-gnu-emacs/2020-10/msg02001.html>.
   7654 
   7655 
   7656 Miscellaneous
   7657 =============
   7658 
   7659 + The new default 'main' branch of the Modus themes' git repo is an idea
   7660   that was presented by user "Emacs Contrib" in issue 112:
   7661   <https://gitlab.com/protesilaos/modus-themes/-/issues/112>.  Raising
   7662   awareness about the negative impact of potentially, tacitly, or
   7663   explicitly offensive language is a goal worth pursuing.  Plus "main"
   7664   is a more appropriate name for the primary branch of a project and we
   7665   do not lose anything by introducing this change as part of version
   7666   1.0.0, which anyhow requires manual interventions in user
   7667   configurations.
   7668 
   7669 + Thanks to Manuel Uberti, Jeremy Friesen, and Gitlab user "Eugene" for
   7670   their feedback during the process that eventually led to the
   7671   development of the 'modus-themes-syntax' customisation option:
   7672   <https://gitlab.com/protesilaos/modus-themes/-/issues/105>.
   7673 
   7674 + Thanks to André Alexandre Gomes for the feedback in issue 111, which
   7675   led to the simplification of the manual's references to Guix:
   7676   <https://gitlab.com/protesilaos/modus-themes/-/issues/111>.
   7677 
   7678 + Thanks to Nicolas De Jaeghere for noting that BBDB is indirectly
   7679   supported: <https://gitlab.com/protesilaos/modus-themes/-/issues/128>.
   7680 
   7681 Between the refactoring of the code base and all other changes, this has
   7682 been yet another period of hard work to deliver on the promise of themes
   7683 that are (i) highly accessible and (ii) comprehensive in both their face
   7684 coverage and customisation options, while always conforming with the
   7685 highest accessibility standard for legible text.
   7686 
   7687 Special thanks to the MELPA maintainers for all their contributions.
   7688 MELPA is an integral part of the wider Emacs community.  Thanks, in
   7689 particular, to Chris Rayner who has reviewed all my pull requests
   7690 hitherto, and to Jonas Bernoulli for checking the latest one (and its
   7691 concomitant issue) that introduced the new 'modus-themes' package.
   7692 
   7693 Thank you, the reader, for your attention and for understanding the
   7694 longer term benefits of the refactoring, despite the short term friction
   7695 it may have introduced.
   7696 #+end_src
   7697 
   7698 * 0.13.0
   7699 :PROPERTIES:
   7700 :CUSTOM_ID: h:b529ec46-2a9f-4844-9760-4708d2ca575b
   7701 :END:
   7702 
   7703 #+begin_src text
   7704 Modus Operandi and Modus Vivendi version 0.13.0
   7705 
   7706 By Protesilaos Stavrou <info@protesilaos.com> on 2020-10-08
   7707 
   7708 This entry documents the changes since version 0.12.0 (2020-08-26).
   7709 There have been around 150 commits in the meantime, making this the
   7710 largest release to date (though sheer volume should not be conflated
   7711 with quality, of which there is plenty).
   7712 
   7713 As always, everything described herein conforms with the overarching
   7714 accessibility objective of the themes for a minimum contrast ratio of
   7715 7:1 between background and foreground values in their given combinations
   7716 (conformance with the WCAG AAA standard).
   7717 
   7718 Overview
   7719 ========
   7720 
   7721 1. There is a new Info manual that documents the customisation options
   7722    as well as every other piece of information pertinent to the themes.
   7723    You will find it in the Info pages inside of Emacs.  Or browse it
   7724    online: <https://protesilaos.com/emacs/modus-themes>.
   7725 
   7726 2. New customisation options grant users more power to further adapt the
   7727    active theme to their preferences.
   7728 
   7729 3. Extended coverage for even more faces and face groups, adding to the
   7730    already comprehensive list of directly supported ones.
   7731 
   7732 4. Lots of tweaks to improve the use of colour and avoid exaggerations
   7733    (well, "exaggerations" is relative, since the prior state was already
   7734    carefully designed).
   7735 
   7736 5. A new page hosts all pictures that demo the themes across a wide
   7737    range of scenaria: <https://protesilaos.com/emacs/modus-themes-pictures>.
   7738 
   7739 6. Similarly, the change log also has its own dedicated web page:
   7740    <https://protesilaos.com/emacs/modus-themes-changelog>.
   7741 
   7742 
   7743 New customisation options
   7744 =========================
   7745 
   7746 Note that all customisation options are documented at length in the new
   7747 Info manual.  What is offered here is not necessarily exhaustive.
   7748 
   7749 
   7750 Diff styles
   7751 -----------
   7752 
   7753 Symbol names ("choice" type):
   7754 
   7755 + modus-operandi-theme-diffs
   7756 + modus-vivendi-theme-diffs
   7757 
   7758 Possible values:
   7759 
   7760 1. nil (default)
   7761 2. desaturated
   7762 2. fg-only
   7763 
   7764 DEPRECATED ("boolean" type):
   7765 
   7766 + modus-operandi-theme-subtle-diffs
   7767 + modus-vivendi-theme-subtle-diffs
   7768 
   7769 This option supersedes older ones while retaining their functionality.
   7770 
   7771 The default remains unaltered, meaning that the diffs will use fairly
   7772 prominent colour-coded combinations for the various elements (e.g. green
   7773 text on an unambiguously green backdrop).
   7774 
   7775 A 'desatured' value will tone down the default aesthetic, giving a less
   7776 vibrant feel.
   7777 
   7778 While 'fg-only' removes almost all coloured backgrounds, opting to apply
   7779 colour only to the relevant text (this was the case with the
   7780 now-deprecated options).  There are some exceptions, like word-wise or
   7781 "refined" diffs, which still use coloured backgrounds to convey their
   7782 meaning.
   7783 
   7784 
   7785 Modeline styles
   7786 ---------------
   7787 
   7788 Symbol names ("choice" type):
   7789 
   7790 + modus-operandi-theme-mode-line
   7791 + modus-vivendi-theme-mode-line
   7792 
   7793 Possible values:
   7794 
   7795 1. nil (default)
   7796 2. 3d
   7797 3. moody
   7798 
   7799 DEPRECATED ("boolean" type):
   7800 
   7801 + modus-operandi-theme-3d-modeline
   7802 + modus-vivendi-theme-3d-modeline
   7803 
   7804 The default modeline continues to be a two-dimensional rectangle with a
   7805 border around it.  Active and inactive modelines use different colour
   7806 combinations for their main background and foreground.
   7807 
   7808 Option '3d' produces an effect similar to what you get in a generic
   7809 Emacs session, where the active modeline has a pseudo three-dimensional
   7810 effect applied to it.  This option offers the same functionality as that
   7811 of the deprecated variables.
   7812 
   7813 Option 'moody' is designed specifically for use with the Moody library,
   7814 though it can also be used without it.  Instead of implementing a box
   7815 effect, it applies an overline and underline instead, while also toning
   7816 down the inactive modeline.
   7817 
   7818 Thanks to Nicolas De Jaeghere for the feedback and code samples in issue
   7819 80: <https://gitlab.com/protesilaos/modus-themes/-/issues/80>
   7820 
   7821 
   7822 Headline styles
   7823 ---------------
   7824 
   7825 Symbol names ("alist" type):
   7826 
   7827 + modus-operandi-theme-headings
   7828 + modus-vivendi-theme-headings
   7829 
   7830 DEPRECATED ("boolean" type):
   7831 
   7832 + modus-operandi-theme-rainbow-headings
   7833 + modus-operandi-theme-section-headings
   7834 + modus-vivendi-theme-rainbow-headings
   7835 + modus-vivendi-theme-section-headings
   7836 
   7837 Possible values, which can be specified for each heading level (examples
   7838 further below):
   7839 
   7840 0.  nil (default fallback option---covers all heading levels)
   7841 1.  t (default style for a single heading, when the fallback differs)
   7842 2.  no-bold
   7843 3.  line
   7844 4.  line-no-bold
   7845 5.  rainbow
   7846 6.  rainbow-line
   7847 7.  rainbow-line-no-bold
   7848 8.  highlight
   7849 9.  highlight-no-bold
   7850 10. rainbow-highlight
   7851 11. rainbow-highlight-no-bold
   7852 12. section
   7853 13. section-no-bold
   7854 14. rainbow-section
   7855 15. rainbow-section-no-bold
   7856 
   7857 This supersedes and greatly expands upon what the deprecated variables
   7858 once offered.  It is now possible to (i) benefit from more stylistic
   7859 choices, and (ii) apply them on a per-level basis.
   7860 
   7861 As always, the defaults remain in tact: headings are just rendered in a
   7862 bold weight and their colours are not too saturated to offer a plain
   7863 text impression that relies on typography to convey its meaning.
   7864 
   7865 The info manual explains the details.  A few examples:
   7866 
   7867     ;; Per-level styles (t means everything else)
   7868     (setq modus-operandi-theme-headings
   7869           '((1 . highlight)
   7870             (2 . line)
   7871             (t . rainbow-line-no-bold)))
   7872 
   7873     ;; Uniform style for all levels
   7874     (setq modus-operandi-theme-headings
   7875           '((t . rainbow-line-no-bold)))
   7876 
   7877     ;; Default style for level 1, while others differ
   7878     (setq modus-operandi-theme-headings
   7879           '((1 . t)
   7880             (2 . line)
   7881             (t . rainbow-line-no-bold)))
   7882 
   7883 Thanks to Adam Spiers for the feedback in issue 81:
   7884 <https://gitlab.com/protesilaos/modus-themes/-/issues/81>.  Also thanks
   7885 to Nicolas De Jaeghere for helping refine relevant stylistic choices:
   7886 <https://gitlab.com/protesilaos/modus-themes/-/issues/90>.
   7887 
   7888 
   7889 No link underlines
   7890 ------------------
   7891 
   7892 Symbol names ("boolean" type):
   7893 
   7894 + modus-operandi-theme-no-link-underline
   7895 + modus-vivendi-theme-no-link-underline
   7896 
   7897 Possible values:
   7898 
   7899 1. nil (default)
   7900 2. t
   7901 
   7902 By default, the themes apply an underline effect to links, symbolic
   7903 links, and buttons.  Users can now disable this style by setting the new
   7904 option to 't'.
   7905 
   7906 Thanks to Utkarsh Singh for the feedback in issue 94:
   7907 <https://gitlab.com/protesilaos/modus-themes/-/issues/94>
   7908 
   7909 
   7910 No mixed fonts
   7911 --------------
   7912 
   7913 Symbol names ("boolean" type):
   7914 
   7915 + modus-operandi-theme-no-mixed-fonts
   7916 + modus-vivendi-theme-no-mixed-fonts
   7917 
   7918 Possible values:
   7919 
   7920 1. nil (default)
   7921 2. t
   7922 
   7923 By default, the themes configure some spacing-sensitive faces, such as
   7924 Org tables and code blocks, to always inherit from the 'fixed-pitch'
   7925 face (documented in the manual).  This is to ensure that those
   7926 constructs remain monospaced when users opt for something like the
   7927 built-in 'M-x variable-pitch-mode'.  Otherwise the layout would break.
   7928 
   7929 The obvious downside with this theme design is that users need to
   7930 explicitly configure the font family of 'fixed-pitch' in order to apply
   7931 their desired typeface (how to do this is also covered in the manual).
   7932 That may be something they do not want to do.  Hence this option to
   7933 disable any kind of font mixing done by the active theme.  Set it to
   7934 't'.
   7935 
   7936 
   7937 Support for new faces or face groups
   7938 ====================================
   7939 
   7940 + awesome-tray
   7941 + binder
   7942 + cperl-mode
   7943 + eldoc-highlight-function-argument
   7944 + erc escaped colour sequences
   7945 + eshell-syntax-highlighting
   7946 + flycheck-color-mode-line
   7947 + isearch regexp groups (Emacs version >= 28)
   7948 + mpdel
   7949 + objed
   7950 + org 9.4 new faces: 'org-headline-todo' and 'org-table-header'
   7951 + racket-mode
   7952 + typescript-mode
   7953 
   7954 Thanks to:
   7955 
   7956 + Damien Cassou for reporting the issue with mpdel:
   7957   <https://gitlab.com/protesilaos/modus-themes/-/issues/99>
   7958 
   7959 + Dario Gjorgjevski for reporting the issue with erc:
   7960   <https://gitlab.com/protesilaos/modus-themes/-/issues/92>
   7961 
   7962 + Markus Beppler for contributing the patch for cperl-mode:
   7963   <https://gitlab.com/protesilaos/modus-themes/-/merge_requests/11>
   7964 
   7965 + User "Moesasji" for reporting the issue with objed:
   7966   <https://gitlab.com/protesilaos/modus-themes/-/issues/79>
   7967 
   7968 
   7969 Refinements to existing faces
   7970 =============================
   7971 
   7972 + calfw applies colours and styles in a way that makes it consistent
   7973   with the rest of the themes' metaphors.
   7974 
   7975 + diredfl makes more considerate use of colour.  We still apply colour
   7976   everywhere (the whole point of this package) but make sure to avoid
   7977   exaggerations.
   7978 
   7979 + doom-modeline-battery-error face fits better with the rest of the
   7980   design.
   7981 
   7982 + elfeed search buffers use less intense colours, while still keeping
   7983   all elements fairly distinct.  The intent is to avoid a "rainbow
   7984   effect" in such a dense interface.
   7985 
   7986 + elfeed read and unread items are more distinct.
   7987 
   7988 + git commit and vc log edit messages benefit from refined colour
   7989   combinations for their various constructs.  The commit's summary is
   7990   now rendered in a bold weight, to better convey the idea that this is
   7991   a quasi heading element.
   7992 
   7993 + gnus heading colours are more consistent.  All information remains
   7994   clearly distinct, but we now avoid using colours that are on opposite
   7995   sides of the colour spectrum.  Basically to keep things distinct
   7996   without going over the top.
   7997 
   7998 + gnus read and unread items are easier to tell apart.  Thanks to user
   7999   "Nick" for reporting the issue:
   8000   <https://gitlab.com/protesilaos/modus-themes/-/issues/97>.
   8001 
   8002 + help-argument-name has a distinct foreground colour, so that it is
   8003   easier to spot it in "*Help*" buffers.  Its slant is also controlled
   8004   by the active theme's customisation option for slanted constructs (nil
   8005   by default---check the manual).
   8006 
   8007 + helpful-heading now is consistent with other heading styles.  Thanks
   8008   to Nicolas De Jaeghere for reporting the issue:
   8009   <https://gitlab.com/protesilaos/modus-themes/-/issues/90>.
   8010 
   8011 + icomplete, ido, orderless are all tweaked to work better under various
   8012   circumstances.
   8013 
   8014 + info-menu-star uses a red colour to make it easier to select a menu
   8015   entry by estimating its number.  This face applies to every third
   8016   element and is a nice little extra to have.
   8017 
   8018 + info quoted strings are configured to always render in 'fixed-pitch',
   8019   in line with the themes' design for mixed fonts (remember to check the
   8020   relevant customisation option).
   8021 
   8022 + line numbers work properly with 'text-scale-adjust'.  Thanks to user
   8023   "jixiuf" for reporting the issue:
   8024   <https://gitlab.com/protesilaos/modus-themes/-/issues/98>.
   8025 
   8026 + line-number-current-line no longer applies a bold weight to its text.
   8027   This is to avoid a certain "jump effect" while moving between lines,
   8028   where the affected numbers grow and shrink in weight as the line
   8029   changes (once you see it, you will know what I mean).
   8030 
   8031 + line-number-major-tick and line-number-minor-tick do use a bold weight
   8032   because they are fixed on the scale.  Their colours are also improved
   8033   to better complement their intended role (these faces are for Emacs 27
   8034   or higher).
   8035 
   8036 + magit-diff-file-heading-selection, magit-diff-hunk-heading-selection
   8037   use more appropriate colour combinations.
   8038 
   8039 + markdown blockquotes and org quote blocks use a different foreground,
   8040   which is colder than the previous one.  Just to make sure that they
   8041   are not mistaken for inline code.
   8042 
   8043 + message headers use less exaggerated colour combinations.  The
   8044   differences are fairly minor.
   8045 
   8046 + message-mml no longer uses a green foreground, as that could
   8047   potentially cause confusion with quoted text in some cases.  A unique,
   8048   albeit less saturated, foreground is used instead.
   8049 
   8050 + message-separator uses a more neutral colour combination, while
   8051   retaining its overall uniqueness within its context (i.e. mail
   8052   composition).
   8053 
   8054 + modeline colours are refined to improve the contrast between active
   8055   and inactive states.
   8056 
   8057 + mu4e-replied-face has a new colour that accounts for colour distance
   8058   relative to its context.  Thanks to Shreyas Ragavan for reporting the
   8059   issue: <https://gitlab.com/protesilaos/modus-themes/-/issues/69>.
   8060 
   8061 + org agenda date and structure no longer behave like headings in other
   8062   Org buffers.  Instead, they have their own styles to better perform
   8063   their intended function and to avoid exaggerations.
   8064 
   8065 + org agenda dimmed to-do items (which have blocked sub-items) are no
   8066   longer assigned a subtle grey background colour.  They are instead
   8067   rendered with a bold weight and a subtle grey foreground to minimise
   8068   distractions.  Thanks to Roman Rudakov for reporting this in issue
   8069   101: <https://gitlab.com/protesilaos/modus-themes/-/issues/101>.
   8070 
   8071 + org agenda clocked items are configured to extend their background to
   8072   the edge of the window.  Otherwise they are cut off at the last text
   8073   character, which creates inconsistencies while using tags: a tag is
   8074   placed to the right so the background extends further than without
   8075   them.  Based again on the feedback of Roman Rudakov in issue 101:
   8076   <https://gitlab.com/protesilaos/modus-themes/-/issues/101>.
   8077 
   8078 + org agenda current time no longer uses a background.  A bold weight
   8079   and a blue foreground are applied instead.  The intent is to keep
   8080   things clean.  This is also covered by Roman Rudakov's feedback in
   8081   issue 101: <https://gitlab.com/protesilaos/modus-themes/-/issues/101>.
   8082 
   8083 + org-checkbox-statistics-done, org-checkbox-statistics-todo inherit
   8084   from org-done and org-todo respectively, instead of defining their own
   8085   properties.
   8086 
   8087 + org drawers and their data now use 'fixed-pitch' in the interest of
   8088   consistency with other metadata-like faces.  Thanks (yet again!) to
   8089   Nicolas De Jaeghere for reporting the issue:
   8090   <https://gitlab.com/protesilaos/modus-themes/-/issues/91>.
   8091 
   8092 + org-footnote underlines will now always use the same colour, instead
   8093   of applying the one of other coloured constructs (e.g. when the
   8094   footnote is inline and part of the text is rendered as verbatim).
   8095 
   8096 + org-meta-line is less prominent and, thus, more consistent with other
   8097   metadata-related constructs.
   8098 
   8099 + org-roam faces are updated to match the current state of the upstream
   8100   project.  The main colour of org-roam links is now different than that
   8101   of standard links in an attempt to differentiate between the two (due
   8102   to their unique semantics).  If this is not desired, you can evaluate
   8103   the following:
   8104 
   8105       (setq org-roam-link-use-custom-faces nil)
   8106 
   8107 + org-todo, org-done, as well as relevant faces such as priorities and
   8108   statistics are reviewed to work better with all heading combinations.
   8109   Though please read the next section about "adaptive headings", as such
   8110   workarounds will no longer be necessary for future stable releases of
   8111   Org.
   8112 
   8113 + selectrum uses different styles than before to account for its unique
   8114   property of overlaying matching characters on top of the current
   8115   line's background.  We want to avoid scenaria where matches are
   8116   difficult to discern and the current line is not clear.
   8117 
   8118 + vc modeline states benefit from improved colour choices.  Just minor
   8119   adjustments to account for the review of the base modeline colours.
   8120 
   8121 + vterm base colours now are variants of gray to ensure that some tools,
   8122   such as zsh suggestions work properly.  Thanks to user "jixiuf" for
   8123   reporting this issue and suggesting a possible solution:
   8124   <https://gitlab.com/protesilaos/modus-themes/-/issues/93>.
   8125 
   8126 Contributions to the wider community
   8127 ====================================
   8128 
   8129 Sometimes the themes reveal bugs in other packages.  It is of paramount
   8130 importance that we report those to the upstream developers, try to help
   8131 them reproduce the issue, and, where possible, support them in tracing
   8132 the problem's root cause.
   8133 
   8134 Four such cases during this release:
   8135 
   8136 1. Adaptive Org headings.  Solved upstream and documented on my website:
   8137    <https://protesilaos.com/codelog/2020-09-24-org-headings-adapt/>.
   8138    Reported and discussed on the themes' issue tracker:
   8139    <https://gitlab.com/protesilaos/modus-themes/-/issues/37>.
   8140 
   8141 2. Alignment of Org tags with proportional fonts.  Ongoing thread:
   8142    <https://lists.gnu.org/archive/html/emacs-orgmode/2020-09/msg00415.html>.
   8143    Reported and discussed on the themes' issue tracker:
   8144    <https://gitlab.com/protesilaos/modus-themes/-/issues/85>.
   8145 
   8146 3. Org priority cookie has extra space.  Ongoing thread:
   8147    <https://lists.gnu.org/archive/html/emacs-orgmode/2020-09/msg00696.html>.
   8148    Reported and discussed on the themes' issue tracker, with feedback
   8149    from Roman Rudakov:
   8150    <https://gitlab.com/protesilaos/modus-themes/-/issues/95>.
   8151 
   8152 4. Company overlay pop-up misaligns items.  Reported upstream and
   8153    acknowledged as a known issue that occurs in certain cases:
   8154    <https://github.com/company-mode/company-mode/issues/1010>.
   8155    Discussion on the themes' issue tracker, with feedback from Iris
   8156    Garcia: <https://gitlab.com/protesilaos/modus-themes/-/issues/96>.
   8157 
   8158 
   8159 Miscellaneous
   8160 =============
   8161 
   8162 + Belatedly (by about 2 weeks) pushed tag for version 0.12.0.  Thanks to
   8163   Alex Griffin for bringing this to my attention:
   8164   <https://gitlab.com/protesilaos/modus-themes/-/issues/89>
   8165 
   8166 + Fixed a bug with how some older customisation options were declared as
   8167   obsolete.  Thanks to Tassilo Horn for noticing and reporting the
   8168   problem: <https://gitlab.com/protesilaos/modus-themes/-/issues/88>.
   8169 
   8170 + Fixed a misplaced optional prefix argument in the manual for how to
   8171   switch themes using a custom function.  Thanks to Manuel Uberti for
   8172   catching this omission of mine and reporting it:
   8173   <https://gitlab.com/protesilaos/modus-themes/-/issues/84>.
   8174 
   8175 + Silenced the Elisp package linter for a spurious error on a single
   8176   eldoc face.  Thanks to Steve Purcell for the guidance:
   8177   <https://github.com/purcell/package-lint/issues/187>.
   8178 
   8179 + Defined two new dedicated background colours for exceptional cases.
   8180   These are intended for internal use in very special circumstances.
   8181 
   8182 + Reword GuixSD to "Guix System" in the list of package formats
   8183   currently available.
   8184 
   8185 + Reviewed the main blue colours for both themes.  While the changes are
   8186   practically impossible to discern upon first sight, the process was
   8187   far from straightforward.  A complete report documents the minutia:
   8188   <https://protesilaos.com/codelog/2020-09-14-modus-themes-review-blues/>.
   8189 
   8190 + Reviewed the "active" palette subset, typically used in the modelines.
   8191   No report was necessary for those, as the changes were fairly simple.
   8192 
   8193 + Reviewed the "intense" background colour that comes into effect when
   8194   users opt for the customisation option for intense paren-match styles
   8195   (check the manual).  Both the hue and the saturation have been changed
   8196   to better conform with the intended function of this particular entry.
   8197 
   8198 + Reviewed the fringe-specific accented backgrounds.  Commit 7316e3320
   8199   contains tables that compare the relative luminance of old and new
   8200   values.
   8201 
   8202 + Improved the advice for setting fonts using 'set-face-attribute'.  The
   8203   information is in the manual and is also available as a blog entry:
   8204   <https://protesilaos.com/codelog/2020-09-05-emacs-note-mixed-font-heights/>.
   8205 
   8206 + Rewrote an expression as "(or x y)" instead of "(if x x y)" in one
   8207   place.  Just goes to show that tweaking the code is also part of the
   8208   deal.
   8209 
   8210 + Abstracted and simplified heading level properties by using bespoke
   8211   theme faces.  Makes it easier to keep things consistent across the
   8212   various face groups.
   8213 
   8214 + Same principle as above for diff-related styles.
   8215 
   8216 + Users who prefer to do things their own way or who just wish to
   8217   contribute code to the Modus themes may wish to read my "Notes for
   8218   aspiring Emacs theme developers":
   8219   <https://protesilaos.com/codelog/2020-08-28-notes-emacs-theme-devs/>.
   8220 
   8221 This has been yet another period of intense work: reviewing faces and
   8222 applying colours is never easy, adding new customisation options is
   8223 always tricky, and documenting everything takes a lot of time (unless
   8224 you do all of those on a whimsy, which hopefully is not the case here).
   8225 
   8226 Thanks again to everyone who helped improve the themes!
   8227 #+end_src
   8228 
   8229 * 0.12.0
   8230 :PROPERTIES:
   8231 :CUSTOM_ID: h:9d9394c1-84b6-4c23-8936-fe4f2f43301d
   8232 :END:
   8233 
   8234 #+begin_src text
   8235 Modus Operandi and Modus Vivendi version 0.12.0
   8236 
   8237 By Protesilaos Stavrou <info@protesilaos.com> on 2020-08-26
   8238 
   8239 This entry documents the set of changes since version 0.11.0
   8240 (2020-07-31).  There have been around 70 commits in the meatime, though
   8241 the sheer number may obfuscate the fact that a lot of work has gone into
   8242 this release.
   8243 
   8244 As always, every change described here conforms with the accessibility
   8245 objective of the themes for a minimum 7:1 contrast ratio between
   8246 background and foreground values in their given combinations
   8247 (conformance with the WCAG AAA standard).
   8248 
   8249 New customisation options
   8250 =========================
   8251 
   8252 1 Completion Frameworks
   8253 -----------------------
   8254 
   8255 The star of the show has to be the new option that refashions the
   8256 aesthetics of completion UIs: Helm, Icomplete, Ido, Ivy, Sallet,
   8257 Selectrum.  The 'modus-operandi-theme-completions' and
   8258 'modus-vivendi-theme-completions' accept the following symbols:
   8259 
   8260 + nil (default)
   8261 + moderate
   8262 + opinionated
   8263 
   8264 Nil means that the overall presentation of the UI follows the patterns
   8265 established by its own source code.  For example, Ivy uses four distinct
   8266 background and foreground combinations of accented colours to highlight
   8267 the matching groups.  A grey background is added to denote the implicit
   8268 match between those groups.  So we choose to respect this metaphor,
   8269 while applying colours that conform with the accessibility goal of our
   8270 project.  Whereas Icomplete or Ido use subtle styles to present their
   8271 results.  Again, we remain faithful to their presentation.
   8272 
   8273 With 'moderate', we apply nuanced background and foreground combinations
   8274 of accented colour values.  This will slightly tone down Helm, Ivy,
   8275 Sallet, Selectrum, while it will slightly adjust the looks of Icomplete
   8276 and Ido.
   8277 
   8278 Whereas 'opinionated' has a more pronounced effect on the overall
   8279 aesthetics of the UI.  For the likes of Icomplete and Ido which are
   8280 subtle by default, this option will use intense combinations of
   8281 background and foreground colours.  They are the diametric opposite of
   8282 the nil value.  Whereas Helm, Ivy, Sallet, Selectrum, will use even more
   8283 subtle colours.  Again, they are farther away than their default looks.
   8284 
   8285 These new options supersede the now-deprecated and more limited in scope
   8286 variables of prior releases:
   8287 
   8288 + modus-operandi-theme-intense-standard-completions
   8289 + modus-vivendi-theme-intense-standard-completions
   8290 
   8291 Thanks to the following people for their valuable feedback in issue 75:
   8292 https://gitlab.com/protesilaos/modus-themes/-/issues/75
   8293 
   8294 + Anders Johansson
   8295 + Manuel Uberti
   8296 + Shreyas Ragavan
   8297 
   8298 2 Prompts
   8299 ---------
   8300 
   8301 The 'modus-operandi-theme-prompts' and modus-vivendi-theme-prompts' will
   8302 change the overall looks of minibuffer and shell prompts ('M-x shell' as
   8303 well as 'M-x eshell').  Their possible values are:
   8304 
   8305 + nil (default)
   8306 + subtle
   8307 + intense
   8308 
   8309 Nil will only use a coloured foreground for the prompts' text.  Simple
   8310 and effective.
   8311 
   8312 With 'subtle', the default foreground value is retained but is now
   8313 complemented by an appropriately tinted background.  The effect is more
   8314 noticeable than the default, though not by much.
   8315 
   8316 While 'intense' applies a coloured background and foreground combination
   8317 that should clearly stand out from the rest of the context.
   8318 
   8319 Thanks to Manuel Uberti for sharing feedback in issue 74:
   8320 https://gitlab.com/protesilaos/modus-themes/-/issues/74
   8321 
   8322 3 Fringe visibility
   8323 -------------------
   8324 
   8325 A new pair of symbols supersedes older variables:
   8326 
   8327 + modus-operandi-theme-visible-fringes ==> modus-operandi-theme-fringes
   8328 + modus-vivendi-theme-visible-fringes  ==> modus-vivendi-theme-fringes
   8329 
   8330 While the deprecated options were booleans, the current ones offer a
   8331 choice between the following:
   8332 
   8333 + nil (default)
   8334 + subtle
   8335 + intense
   8336 
   8337 Nil means that the fringes have no distinct background of their own.
   8338 They still exist per the settings of 'fringe-mode', but can only be
   8339 discerned by tracking the negative space between the frame's or window's
   8340 edge and the buffer's effective boundaries.
   8341 
   8342 The 'subtle' value will apply a greyscale background that is fairly
   8343 close to the default main background (pure white/black).  The fringes
   8344 are now visible.
   8345 
   8346 As its name implies, 'intense' has a more pronounced effect than the
   8347 other values.  It also uses a greyscale background.
   8348 
   8349 Review of already supported faces and colours
   8350 =============================================
   8351 
   8352 1 Magit blame styles
   8353 --------------------
   8354 
   8355 The headers that Magit's blame interface produces were difficult to tell
   8356 apart from their context.  A set of carefully selected colours now makes
   8357 sure that they are always distinct.  Some subtle background values are
   8358 used, in addition to other typographic elements.
   8359 
   8360 Thanks to Damien Cassou for reporting this problem and for providing
   8361 valuable feedback that informed the final design.  Refer to issue 71:
   8362 https://gitlab.com/protesilaos/modus-themes/-/issues/71
   8363 
   8364 2 Paren match colours
   8365 ---------------------
   8366 
   8367 The face that highlights the matching delimiter when 'show-paren-mode'
   8368 (or equivalent) is enabled uses two dedicated colours, whose names are:
   8369 'bg-paren-match' and 'bg-paren-match-intense'.  Those have been reviewed
   8370 to make them more obvious in various contexts and to improve their
   8371 overall consistency.
   8372 
   8373 A report with relative contrast ratios is available on my website:
   8374 https://protesilaos.com/codelog/2020-08-09-modus-themes-paren-match/
   8375 
   8376 I benefited from valuable feedback from Shreyas Ragavan in issue 70:
   8377 https://gitlab.com/protesilaos/modus-themes/-/issues/70
   8378 
   8379 3 Mu4e faces
   8380 ------------
   8381 
   8382 Some faces were tweaked to make it easier to distinguish replied,
   8383 forwarded, and draft messages from other headers.  The changes are
   8384 fairly small in scope, but the effect should be that of an overall
   8385 improvement.
   8386 
   8387 Thanks to Shreyas Ragavan for noticing these inconsistencies and for
   8388 their continued participation in addressing them.  See issue 69:
   8389 https://gitlab.com/protesilaos/modus-themes/-/issues/69
   8390 
   8391 4 Notmuch message headings
   8392 --------------------------
   8393 
   8394 A couple of inconsistencies with how notmuch would style email addresses
   8395 and folded messages were addressed.  The generic 'italic' face was also
   8396 tweaked in the process, removing the foreground it would falsely define.
   8397 
   8398 Thanks to Damien Cassou for bringing these to my attention in issue 72:
   8399 https://gitlab.com/protesilaos/modus-themes/-/issues/72
   8400 
   8401 5 hl-todo
   8402 ---------
   8403 
   8404 Let the special keywords of 'hl-todo-mode' use an optional slant, just
   8405 like code comments do.  This is to ensure that they feel part of their
   8406 context.
   8407 
   8408 6 Magit general interface
   8409 -------------------------
   8410 
   8411 Several faces were reviewed in the interest of colour harmony and to
   8412 address potential inconsistencies or exaggerations.  The most noticeable
   8413 change pertains to the log views, as we now use fewer accent values,
   8414 reducing whatever unnecessary "rainbow effect" may have existed.
   8415 
   8416 7 VC commit logs
   8417 ----------------
   8418 
   8419 The presentation of 'vc-print-log' and 'vc-print-root-log' has been
   8420 reviewed to reduce the stark contrast between the colours it once used.
   8421 While the elements remain distinct, the differences between them are
   8422 more subtle, which is preferable when viewing long lists of
   8423 similar-looking patterns.
   8424 
   8425 8 Powerline
   8426 -----------
   8427 
   8428 The active and inactive minibuffers now use appropriate accented
   8429 backgrounds or foregrounds for some of their elements.  This makes them
   8430 better for their intended function.
   8431 
   8432 Thanks to Shreyas Ragavan and tycho garen for their feedback in issue
   8433 73, which was actually about adding support for Spaceline.  It uses
   8434 Powerline as its dependency, so we eventually had to accommodate both of
   8435 them: https://gitlab.com/protesilaos/modus-themes/-/issues/73
   8436 
   8437 Shreyas also helped by adding a short note in the README which informs
   8438 users of those two packages on how to tweak things when conducting tests
   8439 or changing themes.  See merge requests 9 and 10:
   8440 
   8441 + https://gitlab.com/protesilaos/modus-themes/-/merge_requests/9
   8442 + https://gitlab.com/protesilaos/modus-themes/-/merge_requests/10
   8443 
   8444 9 Latex sectioning
   8445 ------------------
   8446 
   8447 The themes will no longer affect the height of the Latex sectioning
   8448 faces.  This is because there already exists a variable that scales them
   8449 accordingly.
   8450 
   8451 Thanks to Anders Johansson for providing insights in issue 77:
   8452 https://gitlab.com/protesilaos/modus-themes/-/issues/77
   8453 
   8454 10 Transient pop-up menu
   8455 ------------------------
   8456 
   8457 Extended support for its new colour-coded faces that follow in the
   8458 footsteps of the 'hydra' package for visual semantics.
   8459 
   8460 11 Miscellaneous
   8461 ----------------
   8462 
   8463 The following faces were refined:
   8464 
   8465 + 'org-formula' inherits from 'fixed-pitch' to ensure that it does not
   8466   break table layouts when the user opts for a mixed-font setup (such as
   8467   with 'M-x variable-pitch-mode').
   8468 
   8469 + 'bongo-elapsed-track-part' uses a more appropriate accented
   8470   background.
   8471 
   8472 + 'symbol-overlay-default-face' is less intense than before.  This is in
   8473   response to feedback I received from Manuel Uberti as an aside in
   8474   issue 75: https://gitlab.com/protesilaos/modus-themes/-/issues/75
   8475 
   8476 + 'rectangle-preview' uses a slightly accented background, which
   8477   distinguishes it from the highlighted region.  This is to denote a
   8478   different state where the user is typing in some text.
   8479 
   8480 + 'diff-hl-change' now uses the more appropriate yellow colour instead
   8481   of blue.  Yellow denotes "mixed changes" and, therefore, stands
   8482   between "removed" (red) and "added" (green).  As it so happens, yellow
   8483   is a colour that derives by mixing red with green.
   8484 
   8485 New packages
   8486 ============
   8487 
   8488 The following are now explicitly supported by the themes:
   8489 
   8490 + org-table-sticky-header
   8491 + pkgbuild-mode
   8492 + semantic
   8493 + spaceline
   8494 
   8495 More faces or face groups that are defined:
   8496 
   8497 + git-rebase (magit)
   8498 + doom-modeline-debug-visual
   8499 + file-name-shadow
   8500 + the faces used by Emacs 27's 'display-line-numbers-major-tick' and
   8501   'display-line-numbers-minor-tick'
   8502 + table-cell
   8503 
   8504 Final notes
   8505 ===========
   8506 
   8507 There now exists an HTML version of the README, which will hopefully
   8508 make things easier for users: https://protesilaos.com/emacs/modus-themes/
   8509 
   8510 Other changes are not user-facing.  For example, using 'pcase' instead
   8511 of 'cond' to make relevant expressions more succinct.  Or defining a
   8512 coloured underline in a more straightforward way.  No need to document
   8513 them at length.
   8514 
   8515 While this release introduces customisation options, it feels as though
   8516 the themes are approaching a stable state.  We know what works, we have
   8517 a comprehensive colour palette that can meet our evolving needs, and we
   8518 have already achieved broad package/face coverage.  All while conforming
   8519 with the overarching objective of this project for a minimum 7:1
   8520 contrast ratio between background and foreground values in any given
   8521 combination we specify.
   8522 
   8523 I wish to thank everyone who has helped me by testing things and sharing
   8524 their thoughts.  The people already mentioned herein:
   8525 
   8526 - Anders Johansson (https://gitlab.com/andersjohansson)
   8527 - Damien Cassou (https://gitlab.com/DamienCassou)
   8528 - Manuel Uberti (https://gitlab.com/muberti)
   8529 - Shreyas Ragavan (https://gitlab.com/shrysr)
   8530 - tycho garen (https://gitlab.com/tychoish)
   8531 #+end_src
   8532 
   8533 * 0.11.0
   8534 :PROPERTIES:
   8535 :CUSTOM_ID: h:7a453154-3486-45a8-9249-9183ad49ff42
   8536 :END:
   8537 
   8538 #+begin_src text
   8539 Modus Operandi and Modus Vivendi version 0.11.0
   8540 
   8541 By Protesilaos Stavrou <info@protesilaos.com> on 2020-07-31
   8542 
   8543 This entry records the changes since version 0.10.0 (2020-06-24).  The
   8544 present release covers close to 100 commits, some of which introduce
   8545 far-reaching changes.  It is not just the quantity that matters.
   8546 Sometimes even a minor tweak requires lots of testing and forethought.
   8547 This release represents another month of intense work and attention to
   8548 detail.
   8549 
   8550 Palette review of "nuanced" colours
   8551 ===================================
   8552 
   8553 The themes contain a subset of palette variables that have a two-fold
   8554 utility:
   8555 
   8556 1. Provide a subtle coloured background that can be combined with all
   8557    foreground colours that are intended for text/code highlighting.
   8558 
   8559 2. Produce variegated text in cases where complementary information
   8560    needs to be displayed alongside some more prominent construct
   8561    (e.g. Org table formulas).
   8562 
   8563 In early July 2020, these colours went through a comprehensive review to
   8564 improve their intended use.  The complete report is available on my
   8565 website:
   8566 <https://protesilaos.com/codelog/2020-07-08-modus-themes-nuanced-colours/>
   8567 
   8568 This formed the preparatory work that enabled several of the changes
   8569 documented herein, most noticeable among which is the "Org blocks"
   8570 customisation option.
   8571 
   8572 Customisation options
   8573 =====================
   8574 
   8575 Org blocks
   8576 ----------
   8577 
   8578 1. The symbols 'modus-operandi-theme-distinct-org-blocks' and
   8579    'modus-vivendi-theme-distinct-org-blocks' are DEPRECATED.  They are
   8580    now REPLACED by the general-purpose 'modus-operandi-theme-org-blocks'
   8581    and 'modus-vivendi-theme-org-blocks' respectively.
   8582 
   8583 2. The aforementioned new symbols allow users to configure different
   8584    styles for Org blocks.
   8585 
   8586    + Option 'greyscale' (which you must quote like this: 'greyscale)
   8587      will apply a subtle grey background to the contents of the block,
   8588      while it will extend its beginning and end lines to ensure that the
   8589      area is distinct from the rest of the buffer.  This is the style
   8590      you would normally get with the old customisation options.
   8591 
   8592    + Option 'rainbow' (again, must be quoted) will instead apply a
   8593      colour-coded subtle background in the main area of the block.  The
   8594      exact colour depends on the programming language being used.  You
   8595      would need to check the source code for how these are currently
   8596      mapped (search for "org-src-block-faces").  The basic idea is to
   8597      have different colours that make it easier for mixing the
   8598      input/output of multiple programming languages.  Users who engage
   8599      in literate programming may find this particularly useful.  Because
   8600      the block is already quite apparent, the beginning and end lines
   8601      are not extended to the edge of the window, to avoid exaggerations
   8602      that could create distractions.
   8603 
   8604 Variable pitch headings (proportionately-spaced headings)
   8605 ---------------------------------------------------------
   8606 
   8607 The symbols 'modus-operandi-theme-proportional-fonts' and
   8608 'modus-vivendi-theme-proportional-fonts' are DEPRECATED.  They are now
   8609 REPLACED by the more appropriately-named
   8610 'modus-operandi-theme-variable-pitch-headings' and
   8611 'modus-vivendi-theme-variable-pitch-headings' respectively.
   8612 
   8613 The intended effect is exactly the same as before, namely, to let
   8614 headings in Org and relevant modes use a proportionately-spaced font
   8615 regardless of what the default is (typically a monospaced typeface).
   8616 
   8617 Remember that to configure the exact font family for the generic
   8618 'variable-pitch' face, you can use something like this:
   8619 
   8620     (set-face-attribute 'variable-pitch nil :family "FiraGO")
   8621 
   8622 Check the README for further details on setting and mixing fonts.
   8623 
   8624 Faint syntax for programming
   8625 ----------------------------
   8626 
   8627 Users can now enable 'modus-operandi-theme-faint-syntax' or
   8628 'modus-vivendi-theme-faint-syntax'.  The intended effect is to tone down
   8629 all syntax highlighting in programming modes, while always respecting
   8630 the overarching objective of these themes for a minimum contrast ratio
   8631 of 7:1 (highest accessibility standard for colour contrast---WCAG AAA).
   8632 
   8633 The default is to use more saturated colours.
   8634 
   8635 Intense hl-line
   8636 ---------------
   8637 
   8638 Toggling on 'modus-operandi-theme-intense-hl-line' or
   8639 'modus-vivendi-theme-intense-hl-line' will apply a more pronounced grey
   8640 to the background of faces that highlight the current line.  This
   8641 affects tools such as the built-in 'hl-line-mode', which is in turn
   8642 enabled automatically by lots of other packages, like 'elfeed' and
   8643 'mu4e'.
   8644 
   8645 The default is to use a subtle grey.
   8646 
   8647 Intense paren-match
   8648 -------------------
   8649 
   8650 Same principle as above.  'modus-operandi-theme-intense-paren-match' and
   8651 'modus-vivendi-theme-intense-paren-match' will make the matching
   8652 parentheses more intense than the default subtle warm background.  This
   8653 concerns modes such as that of the 'smartparens' package as well as the
   8654 built-in 'show-paren-mode'.
   8655 
   8656 Refactored the use of bold
   8657 ==========================
   8658 
   8659 A major review of the themes now makes it possible to specify the exact
   8660 weight of what a "bold" typeface is.  This is only meaningful for cases
   8661 where a font family has variants such as "semibold".
   8662 
   8663 Evaluate this, replacing "semibold" with the one your typeface supports:
   8664 
   8665     (set-face-attribute 'bold nil :weight 'semibold)
   8666 
   8667 The default is to use a standard bold weight.
   8668 
   8669 Packages and face groups
   8670 ========================
   8671 
   8672 Refine already-supported faces
   8673 ------------------------------
   8674 
   8675 + The following packages now use more appropriate colour combinations:
   8676 
   8677   - diary
   8678   - annotate
   8679   - transient (magit pop-up menu, though also used elsewhere)
   8680   - fountain
   8681   - calendar
   8682   - mu4e
   8683   - markdown-mode
   8684   - outline-minor-faces
   8685 
   8686 + Other changes:
   8687 
   8688   - org-agenda has undergone a thoroughgoing review to improve the
   8689     semantics of colour for scheduled tasks, deadlines, modeline
   8690     filters, current date etc.
   8691 
   8692   - org and outline-mode headings have been refined to look better with
   8693     the "rainbow headings" option that was introduced in an earlier
   8694     release (check the README).
   8695 
   8696   - org-quote now works properly with the "Org blocks" option mentioned
   8697     above.
   8698 
   8699   - org-checkbox-statistics uses the same foreground colour as org-todo,
   8700     for the sake of consistency.
   8701 
   8702   - org-date now always inherits from 'fixed-pitch', to ensure proper
   8703     alignment of elements when a mixed fonts setup is used (tools for
   8704     achieving this effect are documented at length in the README).  The
   8705     relevant patch was contributed by Matthew Stevenson.
   8706 
   8707   - org-meta-line no longer looks like a comment, which helps denote its
   8708     special utility (e.g. when evaluating a table's formula).
   8709 
   8710   - org-warning now uses a variant of red for its text, which works
   8711     better in the contexts this face is used (e.g. the agenda or the
   8712     export dispatcher).
   8713 
   8714   - We now apply a slightly more accented colour combination for
   8715     'secondary-selection', which is chiefly used by Org and Calendar in
   8716     various contexts.
   8717 
   8718   - Gnus group level faces make more considerate use of colour to better
   8719     denote their significance.
   8720 
   8721   - Cited text in message buffers has a better sequence of colours.
   8722 
   8723   - Two new Helm faces are supported.
   8724 
   8725   - Let 'keycast' use a different border colour when the "3D modeline"
   8726     option is enabled (refer to the README for that option).
   8727 
   8728   - Extend 'hl-todo-keyword-faces' with the "bug" keyword.
   8729 
   8730   - More intense colour for 'diff-hl-reverted-hunk-highlight'.
   8731 
   8732   - Tone down the focused modeline's border colour.
   8733 
   8734   - Define new bespoke faces that the themes use internally.
   8735 
   8736   - Use more appropriate colours for 'header-line-highlight'.
   8737 
   8738   - Apply greyscale line highlight for flycheck current line in the
   8739     diagnostics buffer, instead of the warmer colour combination it had
   8740     before.
   8741 
   8742   - Tweak text colour difference between MU4E read and unread messages.
   8743 
   8744 Added support for new packages
   8745 ------------------------------
   8746 
   8747 + bongo
   8748 + boon
   8749 + dictionary
   8750 + eshell-fringe-status
   8751 + eshell-git-prompt
   8752 + eshell-prompt-extras
   8753 + highlight-tail
   8754 + hl-defined
   8755 + notmuch
   8756 + tty-menu
   8757 
   8758 Miscellaneous
   8759 =============
   8760 
   8761 + Expand the README with new documentation and clarify parts of the
   8762   existing one.
   8763 
   8764 + Update the Wiki page with screenshots and their descriptions (this in
   8765   itself is a day's worth of work):
   8766   https://gitlab.com/protesilaos/modus-themes/-/wikis/Screenshots
   8767 
   8768 + Make the source code of each theme work better with the built-in
   8769   'outline-minor-mode'.  Check my video if you need a demo on how I use
   8770   this in tandem with 'imenu':
   8771   https://protesilaos.com/codelog/2020-07-20-emacs-outline-imenu/
   8772 
   8773 Thanks to, in no particular order:
   8774 
   8775 + Shreyas Ragavan (https://gitlab.com/shrysr) for introducing me to the
   8776   idea that derived the "rainbow" Org blocks and for providing valuable
   8777   feedback in several issues.
   8778 
   8779 + Matthew Stevenson (https://gitlab.com/matth0204) for contributing the
   8780   aforementioned patch for the 'org-date' face.
   8781 
   8782 + Manuel Uberti (https://gitlab.com/muberti) for offering valuable
   8783   feedback in a number of issues (and special thanks for doing this for
   8784   several months now).
   8785 
   8786 + Dinko (https://gitlab.com/dinkonin) for noticing a not-so-obvious bug
   8787   in the initial implementation of the "rainbow Org blocks" option.
   8788 
   8789 + okamsn (https://gitlab.com/okamsn) for providing the necessary
   8790   feedback that allowed me to refactor the use of "bold", mentioned
   8791   above.
   8792 
   8793 Refer to the issue tracker (or commit log) for further details:
   8794 https://gitlab.com/protesilaos/modus-themes/-/issues
   8795 #+end_src
   8796 
   8797 * 0.10.0
   8798 :PROPERTIES:
   8799 :CUSTOM_ID: h:de114a53-7cbd-49aa-bf24-d1f1f0bf342e
   8800 :END:
   8801 
   8802 #+begin_src text
   8803 Modus Operandi and Modus Vivendi version 0.10.0
   8804 
   8805 By Protesilaos Stavrou <info@protesilaos.com> on 2020-06-24
   8806 
   8807 This entry records the changes since version 0.9.0 (2020-06-03).  The
   8808 present release is focused on stability and internal improvements.
   8809 
   8810 Fixes and adjustments
   8811 ---------------------
   8812 
   8813 Basil L. Contovounesios, aka @basil-conto, (and also a contributor to
   8814 core Emacs) sent several patches that do the following:
   8815 
   8816 + Fix top-level parentheses so that the results of
   8817   'custom-theme-set-faces' and 'custom-theme-set-variables' are not
   8818   passed as arguments to the first 'custom-theme-set-faces'.
   8819 
   8820 + Fix the docstrings of the custom 'modus-theme-*' faces.
   8821 
   8822 + Simplify the syntax of properties assigned to each face.
   8823 
   8824 + Improve the way styles are inherited by Dired and Ibuffer.
   8825 
   8826 Basil also pointed out an inconsistency with regard to an unwanted
   8827 underline effect for the 'doom-modeline-urgent' face in Modus Vivendi.
   8828 It was promptly removed.
   8829 
   8830 From my part, I fixed issues 46 and 51 that concerned the way the
   8831 compiler would evaluate each theme's palette.  The palette is now
   8832 defined as a constant.  Further information:
   8833 
   8834 - https://gitlab.com/protesilaos/modus-themes/-/issues/46
   8835 - https://gitlab.com/protesilaos/modus-themes/-/issues/51
   8836 
   8837 
   8838 Improvements to existing faces
   8839 ------------------------------
   8840 
   8841 André Alexandre Gomes (@aadcg) provided valuable feedback and
   8842 suggestions in issue 50 on the redesign of several 'org-mode' faces.
   8843 
   8844 The thread is long and contains lots of screenshots:
   8845 https://gitlab.com/protesilaos/modus-themes/-/issues/50
   8846 
   8847 The changes in outline:
   8848 
   8849 + Org checkboxes have a subtle background which gives them a more
   8850   pronounced appearance while retaining their overall simplicity.
   8851 
   8852 + Org dates use a more saturated variant of cyan than they did before.
   8853   It helps distinguish them from their context.  Especially true for
   8854   dates inside of tables.
   8855 
   8856 + Org agenda dates have also undergone a slight review to match the
   8857   above.
   8858 
   8859 + Org time grid now uses a more appropriate foreground colour, which has
   8860   been designed specifically for unfocused context.
   8861 
   8862 + Org todo keywords use a more semantically-correct variant of red,
   8863   rather than the purple one they had before.
   8864 
   8865 + Org statistics' cookies for pending tasks use a red variant as well
   8866   rather than the previous yellow one, in the interest of consistency
   8867   and to avoid exaggerations.
   8868 
   8869 
   8870 Other internal refinements
   8871 --------------------------
   8872 
   8873 + Subtle review of the Modus Vivendi palette.  In short, it addresses:
   8874 
   8875   - Imbalanced levels of luminance and inconsistent differences in hue
   8876     between them and their neighbouring colours (e.g. the greens between
   8877     them, and the greens next to the yellows in the context of syntax
   8878     highlighting).  The result was that they would create an undesirable
   8879     emphatic 'pop out' effect when placed close to more moderate
   8880     colours.
   8881 
   8882   - Differences in luminance and hue could lead to scenaria where two
   8883     colours could be conflated with each other or otherwise fail to
   8884     perform their intended function.
   8885 
   8886   - The complete report is on my website:
   8887     https://protesilaos.com/codelog/2020-06-13-modus-vivendi-palette-review/
   8888 
   8889 + Major review of the 'diredfl' faces, in the interest of improved
   8890   readability and harmony between the various colours.  This benefits
   8891   from the palette changes in Modus Vivendi, but also from a similar
   8892   review to Modus Operandi that was documented in version 0.9.0.
   8893 
   8894 + Refactor the names of dedicates colours for "marking" purposes.  These
   8895   are used in Dired, Ibuffer, Proced, etc.  Then apply them consistently
   8896   throughout each theme.
   8897 
   8898 + Make sure that 'stripes' uses the same colours as 'hl-line-mode'.
   8899 
   8900 + Let symlinks use a more appropriate colour in Dired and Trashed.
   8901 
   8902 + Refine the use of colour in 'magit-tag', 'eshell-prompt',
   8903   'message-header-name', 'log-edit-header', 'change-log-function',
   8904   'message-mml', 'message-header-name', 'message-separator'.  These are
   8905   subtle (i.e. difficult) tweaks that improve the overall presentation
   8906   in context.
   8907 
   8908 + Make diff indicators not use an unnecessary background when the
   8909   user-facing option for "subtle diffs" is enabled (check the README for
   8910   the exact name of this option).  This ensures consistency between the
   8911   indicators and the actual scope of the diffs.
   8912 
   8913 + Add support for the 'minibuffer-line' package and extend existing
   8914   support of the faces used in the built-in Emacs info pages.
   8915 
   8916 My thanks to Basil and André for their contributions!
   8917 #+end_src
   8918 
   8919 * 0.9.0
   8920 :PROPERTIES:
   8921 :CUSTOM_ID: h:96ccc8b9-2d5e-4857-bf25-4e094e17bfed
   8922 :END:
   8923 
   8924 #+begin_src text
   8925 Modus Operandi and Modus Vivendi version 0.9.0
   8926 
   8927 By Protesilaos Stavrou <info@protesilaos.com> on 2020-06-03
   8928 
   8929 This entry records the changes since version 0.8.0 (2020-04-28).  The
   8930 present release contains about 50 commits, covering a month of active
   8931 development.
   8932 
   8933 All changes are aligned with the primary objective of this project,
   8934 which is conformance with the WCAG AAA accessibility standard for colour
   8935 contrast.  This translates to a minimum contrast ratio of 7:1 between a
   8936 given combination of foreground and background colours.  The highest
   8937 standard of its kind.
   8938 
   8939 All customisation options that are booleans are off ('nil') by default.
   8940 The project's policy is to offer such features on an "opt-in" basis,
   8941 while always respecting the principle of least surprise.
   8942 
   8943 Refer to the README for further information on the exact names of
   8944 symbols and the like.
   8945 
   8946 New customisation options
   8947 -------------------------
   8948 
   8949 + It is now possible to make the faces of Icomplete, Ido, and a few
   8950   other related tools such as 'orderless', use coloured backgrounds to
   8951   style their feedback.  This is the aesthetic already in effect for
   8952   Ivy, Helm, and Selectrum.  The default is more subtle, in that it uses
   8953   just an accented foreground value without any added background.
   8954 
   8955 + Advanced users can now override both the exact values of colour
   8956   variables, as well as the mapping of properties/variables to faces.
   8957   In practice this means that it is possible to completely change parts
   8958   of the theme (or the entirety of it for that matter).  It also means
   8959   that users can simply access the theme's palette for the sake of
   8960   correctly passing the appropriate value to some bespoke face of
   8961   theirs.
   8962 
   8963 + An extra increment for scaled headings is now available.  This should
   8964   hold the highest value on the scale.  Such variables only take effect
   8965   when the user opts for the "scaled headings" option.
   8966 
   8967 Overview of changes
   8968 -------------------
   8969 
   8970 + A set of internal reforms were carried through in order to allow the
   8971   colour palette to be accessed from user configuration files.  This
   8972   required a lot of debugging work to make sure the themes compile
   8973   properly and performance is not affected.
   8974 
   8975   - The original idea for this redesign was suggested by Len Trigg in
   8976     issue 39: https://gitlab.com/protesilaos/modus-themes/-/issues/39.
   8977     Len also provided a real-world implementation of this new option,
   8978     which is included in the project's README.
   8979 
   8980   - André Alexandre Gomes helped figure out the problems caused by the
   8981     initial design of this feature.  In particular, André identified a
   8982     performance penalty as well as errors pertaining to byte
   8983     compilation.  Everything was eventually resolved.  For more see
   8984     issue 44: https://gitlab.com/protesilaos/modus-themes/-/issues/44.
   8985 
   8986 + Several org-mode faces were reviewed in order to cope well with mixed
   8987   font settings.  This is about use-cases where the main typeface is
   8988   proportionately-spaced, either by default or by some minor mode like
   8989   the built-in 'variable-pitch-mode'.  The intent of configuring those
   8990   faces is to make them always inherit a fixed-pitch (monospace) font
   8991   family, in the interest of preserving the alignment of elements.  The
   8992   idea, suggested code, as well as user feedback were offered by Ben in
   8993   issue 40: https://gitlab.com/protesilaos/modus-themes/-/issues/40.
   8994 
   8995 + Mixed font settings may have some side-effects depending on user
   8996   configurations.  This is unavoidable as we cannot control how users
   8997   define their fonts.  Mark Barton reported one such case, while he was
   8998   able to fix it by making use of the suggested typeface definitions.
   8999   See issue 42: https://gitlab.com/protesilaos/modus-themes/-/issues/42.
   9000 
   9001 + The faces for the 'tab-bar-mode' and 'tab-line-mode' that ship with
   9002   Emacs 27 were written anew.  Same for those of 'centaur-tabs'.  The
   9003   ideas for the redesign as well as the overall aesthetic are Ben's, per
   9004   issue 41: https://gitlab.com/protesilaos/modus-themes/-/issues/41.
   9005 
   9006 + An edge case with Helm's interpretation of colour values for its
   9007   ripgrep interface was reported by Manuel Uberti in issue 49:
   9008   https://gitlab.com/protesilaos/modus-themes/-/issues/49.  It
   9009   essentially had to do with the syntax for the regexp engine as read by
   9010   the underlying 'rg' executable.  Collaboration on that front
   9011   eventually led to fixes in Helm itself, committed by its maintainer.
   9012   Note that the README for the Modus themes already contains information
   9013   on how Helm applies a face to the matches of grep or grep-like
   9014   commands.  Issue 49 confirmed what was already known in that regard
   9015   (i.e. that the "--color=never" command-line option is required to use
   9016   the Helm face, else a colour value from the ANSI colour vector is
   9017   used---both are supported by the themes).
   9018 
   9019 + The faces for Flycheck, Flymake, and Flyspell that would apply an
   9020   underline effect were completely rewritten to account for relevant
   9021   differences between GUI and TUI Emacs.
   9022 
   9023   - For GUI Emacs, all affected faces will now just use a colour-coded
   9024     wavy underline.  Empowered by the introduction of dedicated
   9025     linter-related colours in prior commits (for version 0.8.0), we no
   9026     longer have to change the foreground value of the offending text in
   9027     addition to applying the underline effect.  Whereas before the text
   9028     would also get repainted, which was too intrusive in most
   9029     circumstances.
   9030 
   9031   - If support for wavy underlines is not available, we assume the
   9032     presence of a TUI, which generally is relatively more limited in its
   9033     ability to reproduce colours with precision (meaning that the
   9034     dedicated linter colour could be distorted, potentially producing
   9035     inaccessible combinations).  So for those cases we apply a straight
   9036     underline combined with a colour-coded foreground for the affected
   9037     text.  This makes it more intense compared to the GUI equivalent,
   9038     but is the necessary course of action to overcome the constraints
   9039     imposed by the underlying terminal.
   9040 
   9041 + The palette of Modus Operandi underwent lots of subtle changes to make
   9042   the background value of hl-line-mode more visible while retaining the
   9043   overall style and character of the theme.  In principle, you should
   9044   not be able to tell the difference, unless presented with a careful
   9045   side-by-side comparison.  This is the comprehensive report, including
   9046   a reproducible org-mode document with all the relevant contrast ratios:
   9047   https://protesilaos.com/codelog/2020-05-10-modus-operandi-palette-review/.
   9048 
   9049 + Fixed `org-hide' to actually "hide" by using the appropriate colour
   9050   value.
   9051 
   9052 + Several other face groups received minor tweaks.
   9053 
   9054 + The README was improved to better present the available customisation
   9055   options and to cover other topics of interest.
   9056 
   9057 + Updated the screen shots and their description in the relevant Wiki
   9058   page: https://gitlab.com/protesilaos/modus-themes/-/wikis/Screenshots.
   9059 
   9060 Added support for
   9061 -----------------
   9062 
   9063 + circe
   9064 + el-search
   9065 + eros
   9066 + golden-ratio-scroll-screen
   9067 + highlight-indentation
   9068 + hyperlist
   9069 + indium
   9070 + journalctl-mode
   9071 + minimap
   9072 + nxml-mode
   9073 + vdiff
   9074 + yasnippet
   9075 #+end_src
   9076 
   9077 * 0.8.0
   9078 :PROPERTIES:
   9079 :CUSTOM_ID: h:afa34aec-7079-4c45-8e16-ab4e7cc8cd6a
   9080 :END:
   9081 
   9082 #+begin_src text
   9083 Modus Operandi and Modus Vivendi version 0.8.0
   9084 
   9085 By Protesilaos Stavrou <info@protesilaos.com> on 2020-04-28
   9086 
   9087 This entry records the changes since version 0.7.0 (2020-03-30).  The
   9088 present release contains a little more than a hundred commits, covering
   9089 one month of intense work.
   9090 
   9091 All changes are aligned with the primary objective of this project,
   9092 which is conformance with the WCAG AAA accessibility standard for colour
   9093 contrast.  This translates to a minimum contrast ratio of 7:1 between a
   9094 given combination of foreground and background colours.
   9095 
   9096 All customisation options mentioned herein are off ('nil') by default.
   9097 The project's policy is to offer such features on an "opt-in" basis,
   9098 while always respecting the principle of least surprise.
   9099 
   9100 Refer to the README for further information.
   9101 
   9102 
   9103 Four new customisation options
   9104 ------------------------------
   9105 
   9106 The options in outline, with their detailed description below:
   9107 
   9108 + Rainbow headings
   9109 + Section headings
   9110 + 3D modeline
   9111 + Subtle diffs
   9112 
   9113 1. "Rainbow headings" will apply more vivid colours to headings in
   9114    'org-mode' and 'outline-mode'.  The gradation is similar to that of a
   9115    rainbow's colour spectrum.
   9116 
   9117    The default is to use colour values that are closer to the grey
   9118    scale.
   9119 
   9120 2. "Section headings" also apply to 'org-mode' and 'outline-mode'.  They
   9121    will draw an overline over each heading and use a nuanced background
   9122    colour that is appropriate for each level.  For Org, this option has
   9123    some additional effects, where it will render keywords and priority
   9124    cookies in a box and add to them a subtle background.  This is to
   9125    make sure that everything feels consistent (to the extent possible).
   9126 
   9127    The default is to not use overlines, backgrounds, boxes in any of the
   9128    relevant faces.  This is consistent with the standard austere
   9129    colouration of headings: to not deviate too much from a "plain text"
   9130    aesthetic.
   9131 
   9132 NOTE: "rainbow headings" and "section headings" can work on their own or
   9133 be combined together.
   9134 
   9135 3. "3D modeline" will use a faux unpressed button style for the current
   9136    window's modeline (like the standard looks of 'emacs -Q').  The
   9137    colours used for the active and inactive modelines are tweaked
   9138    accordingly to maximise the effect while retaining the visual
   9139    distinction between them.
   9140 
   9141    The default is to draw the modelines in a two-dimensional style, with
   9142    the active one having a more noticeable border around it.
   9143 
   9144 4. "Subtle diffs" will use colour-coded text for line-wise differences
   9145    without applying any appropriately-coded background value or, where
   9146    necessary, by using only a subtle greyscale background.  This affects
   9147    'diff-mode', 'magit', 'ediff', and 'smerge-mode'.  For Magit an extra
   9148    set of tweaks is implemented to account for the differentiation
   9149    between the focused and unfocused diff hunks.
   9150 
   9151    Due to their unique requirements, word-wise or refined changes are
   9152    always drawn with a colour-coded background, though it is less
   9153    intense when this option is enabled.
   9154 
   9155    The default is to use a colour-coded background and foreground
   9156    combination (e.g. light green text on a dark green backdrop) and to
   9157    make appropriate adjustments for refined diffs and modes of
   9158    interaction such as Magit's focused/unfocused diff states.
   9159 
   9160 
   9161 Other major refinements
   9162 -----------------------
   9163 
   9164 + Thoroughly revise the colours of 'ediff' and 'smerge-mode', so that
   9165   they are aligned with those of 'diff-mode' and 'magit'.  This is in
   9166   addition to the "subtle diffs" options mentioned in the previous
   9167   section.
   9168 
   9169 + Review the faces used by Flycheck and Flymake.  A wavy/curly underline
   9170   is now used in all terminals that support it.  The underlined text is
   9171   drawn with a more nuanced foreground than before.  The previous design
   9172   was exaggerating an already clear effect and could make things more
   9173   difficult under certain circumstances.
   9174 
   9175 + All language checkers, including the aforementioned linter front-ends,
   9176   now benefit from a new set of colours that are designed specifically
   9177   for this particular purpose.  Makes the affected faces feel more
   9178   different than their context.
   9179 
   9180 + Use dedicated colours for escape sequences, regular expression
   9181   constructs, and quoted characters.  The goal is to better
   9182   differentiate them from their surroundings.
   9183 
   9184 + Tweak the colours of 'hydra' to improve the distinction between its
   9185   various types of behaviour.
   9186 
   9187 + Reduce the overall luminance of the background colours used in the
   9188   fringes by the likes of 'flycheck', 'flymake', 'diff-hl', etc.  They
   9189   should now not stand out more than they should, while retaining their
   9190   intended role.
   9191 
   9192 + Implement more saturated colours in Elfeed.  The previous choices
   9193   could make it harder to differentiate the various parts of the
   9194   presentation.
   9195 
   9196 + Make better use of the customisation options for bold and slanted
   9197   constructs where that is allowed.  If a face is not tied to the
   9198   semantics of these styles then it is drawn without them, unless the
   9199   user specifically opts for the relevant customisation options.
   9200 
   9201 
   9202 Added support for packages (A-Z)
   9203 --------------------------------
   9204 
   9205 + ag
   9206 + color-rg
   9207 + ctrlf
   9208 + debbugs
   9209 + eglot
   9210 + forge
   9211 + helpful
   9212 + highlight-symbol
   9213 + ibuffer
   9214 + icomplete
   9215 + iflipb
   9216 + magit-imerge
   9217 + man
   9218 + orderless
   9219 + page-break-lines
   9220 + parrot
   9221 + phi-grep
   9222 + phi-search
   9223 + pomidor
   9224 + rcirc
   9225 + spell-fu
   9226 + switch-window
   9227 + swoop
   9228 + tab-bar-mode
   9229 + tab-line-mode
   9230 + trashed
   9231 + tomatinho
   9232 + tuareg
   9233 + vimish-fold
   9234 + visible-mark
   9235 + vterm
   9236 + wcheck-mode
   9237 + winum
   9238 + woman
   9239 
   9240 
   9241 Miscellaneous changes and concluding remarks
   9242 --------------------------------------------
   9243 
   9244 + Rewrote large parts of the README to make the customisation options
   9245   easier to discover and understand.
   9246 
   9247 + Updated the screen shots and their description in the relevant Wiki
   9248   page: https://gitlab.com/protesilaos/modus-themes/-/wikis/Screenshots
   9249 #+end_src
   9250 
   9251 * 0.7.0
   9252 :PROPERTIES:
   9253 :CUSTOM_ID: h:353114b7-6980-4622-8057-b8cbb8361a8a
   9254 :END:
   9255 
   9256 #+begin_src text
   9257 Modus Operandi and Modus Vivendi version 0.7.0
   9258 
   9259 By Protesilaos Stavrou <info@protesilaos.com> on 2020-03-30
   9260 
   9261 This entry documents the changes since version 0.6.0 (2020-03-01).  The
   9262 present release is the largest to date containing 110 commits.
   9263 
   9264 All changes conform with the primary objective of this project, which is
   9265 conformance with the WCAG AAA accessibility standard for colour
   9266 contrast.  This represents a minimum contrast ratio of 7:1 between a
   9267 given combination of foreground and background colours.
   9268 
   9269 All customisation options mentioned herein are off ('nil') by default.
   9270 The project's policy is to offer such features on an "opt-in" basis.
   9271 Refer to the README or each theme's source code for the names of these
   9272 user-facing symbols.
   9273 
   9274 Major refinements to existing face groups
   9275 -----------------------------------------
   9276 
   9277 + The headline feature of this release is a refined set of colours for
   9278   visualising version-control-system differences ("diffs").  The new
   9279   colours are less intense than before and are designed to better convey
   9280   the meaning of the constructs they apply to.  Affected face groups are
   9281   those of 'magit' and 'diff-mode'.  A future release will assess how
   9282   similar packages, such as 'ediff', can benefit from this work.
   9283 
   9284 + The other major set of changes concerns the colours that apply to
   9285   fringes (see 'fringe-mode').  A new customisation option allows for a
   9286   distinct background for the fringes (courtesy of Anders Johansson in
   9287   commit 80fb704).  The default uses the same colours as the main
   9288   buffer's background.  Building on this effort, fringe indicators, such
   9289   as those of 'flycheck' now benefit from an entirely new set of
   9290   background+foreground colour combinations that are designed
   9291   specifically for the fringes.
   9292 
   9293 + A new customisation option allows users to render 'org-mode' source
   9294   blocks in a distinct background colour.  The default is to use the
   9295   same background as the rest of the buffer.  When this option is
   9296   enabled, the background colour for the beginning and end line of such
   9297   blocks is extended to the end of the window (using the ':extend t'
   9298   attribute for >= Emacs 27).  Older Emacs versions already extend to
   9299   the end of the window.
   9300 
   9301 + The colour combination that shows the matching parentheses or
   9302   delimiters has been reviewed.  The commit is fairly small and the
   9303   changes are immediately noticeable only to the most discerning of
   9304   eyes.  Still, the considerations informing the review imposed a
   9305   rigorous method.  Rather than summarise the findings, interested
   9306   readers are advised to refer to commit af3a327: it offers a
   9307   comprehensive analysis on the matter.
   9308 
   9309 Added support for packages (A-Z)
   9310 --------------------------------
   9311 
   9312 + auctex/tex
   9313 + bm
   9314 + buffer-expose
   9315 + centaur-tabs
   9316 + cider (tentative, feedback is much appreciated)
   9317 + csv-mode
   9318 + dynamic-ruler
   9319 + ebdb
   9320 + elfeed-score
   9321 + flyspell-correct
   9322 + fold-this
   9323 + freeze-it
   9324 + frog-menu
   9325 + git-walktree
   9326 + helm-switch-shell
   9327 + highlight-defined
   9328 + highlight-escape-sequences (hes-mode)
   9329 + highlight-numbers
   9330 + highlight-thing
   9331 + hl-todo
   9332 + ioccur
   9333 + julia
   9334 + kaocha-runner
   9335 + markup-faces (adoc-mode)
   9336 + multiple-cursors
   9337 + num3-mode
   9338 + org-roam
   9339 + org-superstar
   9340 + org-treescope
   9341 + outline-minor-mode
   9342 + paradox
   9343 + rainbow-identifiers
   9344 + rg
   9345 + ripgrep
   9346 + sallet (tentative, feedback is much appreciated)
   9347 + selectrum
   9348 + sesman
   9349 + side-notes
   9350 + skewer-mode
   9351 + stripes
   9352 + symbol-overlay
   9353 + syslog-mode
   9354 + vc-annotate (C-x v g)
   9355 + volatile-highlights
   9356 + web-mode
   9357 + yaml-mode
   9358 
   9359 Note about VC-annotate
   9360 ----------------------
   9361 
   9362 Quoting from the relevant note in the project's README:
   9363 
   9364     Due to the unique way `vc-annotate' (`C-x v g') applies colours,
   9365     support for its background mode (`vc-annotate-background-mode') is
   9366     disabled at the theme level.
   9367 
   9368     Normally, such a drastic measure should not belong in a theme:
   9369     assuming the user's preferences is bad practice.  However, it has
   9370     been deemed necessary in the interest of preserving colour contrast
   9371     accessibility while still supporting a useful built-in tool.
   9372 
   9373     If there actually is a way to avoid such a course of action, without
   9374     prejudice to the accessibility standard of this project, then please
   9375     report as much (or contribute as per the information in the
   9376     Contributing section).
   9377 
   9378 
   9379 Overview of refinements to already supported packages
   9380 -----------------------------------------------------
   9381 
   9382 In this section the notion of "dedicated colours" pertains to colour
   9383 values that are reserved for special faces.  They are never used for
   9384 syntax highlighting or other common scenaria.
   9385 
   9386 + Define new background colours for fringe indicators (as noted in the
   9387   first section).  Apply them to 'bm', 'diff-hl', 'git-gutter',
   9388   'flycheck' fringe indicators.  All such indicators are now made more
   9389   visible and work better with the new customisation option for
   9390   rendering the fringes in a distinct background.
   9391 
   9392 + Define dedicated colours for tab-like interfaces.  Currently these
   9393   apply only to 'centaur-tabs'.  The intention is to eventually
   9394   implement them to the tab modes that ship with Emacs 27, as well as
   9395   any other package that offers such functionality.
   9396 
   9397 + Define dedicated colours for actions that "mark" items.  Use them in
   9398   'dired', 'proced', 'gnus'. An accented background is combined with an
   9399   accented foreground.  The intention is to make the underlying
   9400   construct distinct even under circumstances where the mark's
   9401   background changes, such as when it intersects with 'hl-line-mode' or
   9402   'stripes': the accented foreground will still be recognisable as a
   9403   colour that differs from the main foreground.  The use of a bold font
   9404   weight further reinforces the intended action.
   9405 
   9406 + Refine 'dired' faces to account for the new "mark" styles.
   9407   Directories are no longer rendered in a bold weight.
   9408 
   9409 + Tweak the colours used in the built-in 'diary' and 'calendar' for
   9410   better usability.
   9411 
   9412 + Tweak 'deadgrep' colours for consistency with packages that offer
   9413   similar functionality.
   9414 
   9415 + Tweak 'compilation-line-number' in the interest of consistency with
   9416   similar interfaces.
   9417 
   9418 + Use a more appropriate colour for 'trailing-whitespace'.  It now is a
   9419   colour value that was designed specifically as a background.
   9420 
   9421 + Expand 'fountain-mode' support by covering its new heading faces.  The
   9422   headings will be presented in larger font sizes, or using proportional
   9423   fonts, should the user enable the relevant theme customisation options
   9424   (see README or source code).
   9425 
   9426 + Remove bold weight from matching parentheses in 'show-paren-mode' and
   9427   'smartparens'.  The temporarily applied bold weight can cause
   9428   misalignments while using certain fonts.  Also apply the new colours
   9429   for matching delimiters, as documented in the first section.
   9430 
   9431 + Refine 'outline-mode' colours to be consistent with those of Org's
   9432   headings.
   9433 
   9434 + Several usability and colour refinements for 'helm' and related
   9435   packages in that milieu.
   9436 
   9437 + Remove box property from emphasis markers in the mode line.  It
   9438   created inconsistencies with other faces.
   9439 
   9440 + Refine the colours used in Magit logs, `change-log', `log-view'.  They
   9441   are meant to be more distinct from their context, without drawing too
   9442   much attention to themselves.
   9443 
   9444 + Minor internal fixes for indentation and the like.
   9445 
   9446 Miscellaneous changes and concluding remarks
   9447 --------------------------------------------
   9448 
   9449 + Add section in the README which documents a legal requirement for all
   9450   potential non-trivial code contributions: the need to assign copyright
   9451   to the Free Software Foundation.  The Modus Themes are now distributed
   9452   via the official GNU ELPA repository and copyright over them is
   9453   assigned to the FSF.
   9454 
   9455 + Add CHANGELOG file which consolidates all tagged release notes such as
   9456   this one.
   9457 
   9458 + Add new screen shots to the relevant Wiki page, together with detailed
   9459   descriptions on what is being demonstrated:
   9460   https://gitlab.com/protesilaos/modus-themes/-/wikis/Screenshots
   9461 
   9462 Special thanks to Manuel Uberti for reporting several issues and
   9463 offering feedback where appropriate.  I was able to add support for lots
   9464 of new packages.  While a few among the already supported face groups
   9465 underwent tweaks and refinements.  The 'helm' ecosystem benefited the
   9466 most.
   9467 
   9468 Thanks to Anders Johansson for the patch that introduced the
   9469 fringes-related customisation option.  It inspired me to reconsider the
   9470 use of this particular area of the interface, which eventually led to
   9471 the barrage of commits that refashioned the fringe indicators.  A major
   9472 win overall.
   9473 
   9474 Thanks to Jonathan Otsuka for fixing an error of mine on the naming of
   9475 some symbols.  My apologies for missing it: I will be more careful from
   9476 now on.
   9477 
   9478 Note: both patches were small, requiring no copyright assignment.
   9479 Larger contributions are always welcome, though make sure you read the
   9480 section in the README with regard to assigning copyright to the Free
   9481 Software Foundation.
   9482 #+end_src
   9483 
   9484 * 0.6.0
   9485 :PROPERTIES:
   9486 :CUSTOM_ID: h:c8c33ff2-6f75-4642-a27e-ee6e8abc493e
   9487 :END:
   9488 
   9489 #+begin_src text
   9490 This release contains lots of refinements and additions.
   9491 
   9492 Let me start with an administrative point: I have completed the process
   9493 of assigning my copy rights to the Free Software Foundation.  This
   9494 covers every contribution I make to GNU Emacs.  In practice, it means
   9495 that the Modus themes can now be included in the official ELPA archive
   9496 and theoretically be shipped with Emacs itself.  The ELPA inclusion is
   9497 ongoing.  Once it is completed, I will update the docs accordingly.
   9498 
   9499 The administrative change has no effect on the way this project is
   9500 handled.  I still am the developer/maintainer and will continue to
   9501 improve things further.  If you still have questions, feel free to
   9502 contact me: https://protesilaos.com/contact
   9503 
   9504 Moving on to the changes since version 0.5.0 (2020-01-26).
   9505 
   9506 Added support for:
   9507 
   9508 + alert
   9509 + apropos (built-in)
   9510 + dap-mode
   9511 + deft
   9512 + dim-autoload
   9513 + dired-git
   9514 + enhanced-ruby-mode
   9515 + gbd-mi.el (built-in library)
   9516 + helm-ls-git
   9517 + helm-xref
   9518 + imenu-list
   9519 + jira (org-jira)
   9520 + js2-mode
   9521 + jupyter
   9522 + org-pomodoro
   9523 + origami
   9524 + rmail (built-in)
   9525 + vc-print-log (built-in)
   9526 + window-divider-mode (built-in)
   9527 + xref (built-in)
   9528 
   9529 Refinements to existing faces:
   9530 
   9531 + A new subset of "nuanced" accent colours has been introduced.  These
   9532 are named {red,green,yellow,blue,magenta,cyan}-nuanced.  Their purpose
   9533 is to be used in contexts where lots of structured information is
   9534 presented to the user, but each component does not need to draw too much
   9535 attention to itself (e.g. Org's metadata).  As always, their contrast
   9536 ratio is designed to always be >= 7:1 relative to the backgrounds they
   9537 may be combined with.
   9538 
   9539 + Greatly improve the support for Gnus, even though most changes are
   9540 subtle and are made in the interest of consistency.  The group levels
   9541 now make use of the "nuanced" palette where appropriate (to denote
   9542 levels of lower importance).
   9543 
   9544 + Several refinements for Org, including the use of "nuanced" colours
   9545 for various metadata tags.  The agenda headers will now be scaled
   9546 appropriately and use a variable-pitch font if the user sets the
   9547 relevant customisation values of the theme they are using (check the
   9548 documentation in each theme file or the repo's README).
   9549 
   9550 + Lots of refinements for Helm.  Some of these were introduced to align
   9551 the overall aesthetic with equivalent metaphors in Ivy.  Others are
   9552 meant to improve the styles of the headers and make various constructs
   9553 consistent with their variants in the Helm ecosystem but also with their
   9554 non-Helm counterparts (such as xref file names with and without Helm,
   9555 but also with Helm's grep).
   9556 
   9557 + Improve the colours of buttons in contexts such as M-x customize.
   9558 This is especially noticeable in modus-vivendi-theme (the dark theme)
   9559 where the buttons are a darker shade of grey rather than the original
   9560 lighter one.
   9561 
   9562 + Keycast now uses styles that are more consistent with the overall
   9563 aesthetic of the Modus themes.  This means that the mode line indicators
   9564 are blue-ish (blue is generally used for highlights in the mode line,
   9565 but also when hovering over an item with the mouse pointer).  The pseudo
   9566 button effect (colours + 3d) has been removed in favour of a flat look,
   9567 in line with the flatness of the mode line itself.  Whereas before the
   9568 keycast faces where designed to be consistent with the package's
   9569 defaults.
   9570 
   9571 There were also a few minor refinements for:
   9572 
   9573 + calendar and diary
   9574 + icomplete
   9575 + mm-uu-extract
   9576 + nobreak-hyphen and nobreak-space
   9577 + org-habit
   9578 + tooltip-mode
   9579 
   9580 Finally, the Commentary section of each theme has been greatly expanded.
   9581 It now includes the user-facing customisation options and the complete
   9582 list of supported packages.
   9583 #+end_src
   9584 
   9585 * 0.5.0
   9586 :PROPERTIES:
   9587 :CUSTOM_ID: h:dffc2bd4-6597-4be4-88f6-b349be7ebc6e
   9588 :END:
   9589 
   9590 #+begin_src text
   9591 This release contains support for several new packages and lots of
   9592 refinements for existing ones.  A lot of work went into making the
   9593 themes more robust by reviewing the inheritance of styles from one
   9594 face group to another (in general, the ':inherit' property should not
   9595 be used frivolously).  Several subtle changes were made to the colour
   9596 palette of both themes to ensure consistency, enable more possible
   9597 combinations, and avoid potential ambiguity under certain potential
   9598 circumstances.
   9599 
   9600 Overall, this release gives me confidence that the themes have reached
   9601 a fairly stable state.  What follows is an overview of the changes
   9602 since version 0.4.0 (2020-01-02).
   9603 
   9604 Added support for:
   9605 
   9606 + equake
   9607 + flymake
   9608 + focus
   9609 + fountain (fountain-mode)
   9610 + git-lens
   9611 + git-timemachine
   9612 + hi-fill-column
   9613 + highlight-blocks
   9614 + info-colors
   9615 + lsp-mode
   9616 + lsp-ui
   9617 + proced (built-in)
   9618 + regexp-builder (built-in)
   9619 + suggest
   9620 
   9621 Refinements:
   9622 
   9623 + The header line uses its own dedicated colours.  Several changes
   9624   were made in 'eww', 'info', 'elfeed', 'magit', 'flycheck' to make
   9625   sure that any accent value that appears there conforms with the
   9626   overarching accessibility objective of the Modus themes (contrast
   9627   ratio of >= 7:1, else WCAG AAA).
   9628 + 'ivy' no longer uses a box style for the current line, as that was
   9629   not always reliable.  Appropriate colours are used instead.
   9630 + 'org-mode' blocks use a foreground value that distinguishes their
   9631   opening and closing tags from source code comments.
   9632 + The 'org-ellipsis' face was configured to always inherit the looks
   9633   of its respective heading or element, rather than have its own
   9634   excessive styling.
   9635 + 'paren-match' has colours that are designed specifically for it.
   9636   This is done to retain their utility while making sure they are not
   9637   mistaken for some other type of feedback.
   9638 + 'magit' has explicit styles for the mode line process indicators,
   9639   instead of inheriting from another face.  The intention is to use
   9640   foreground values that are designed specifically for use on the mode
   9641   line (the minimum contrast ratio requirement).
   9642 + 'erc' faces have been thoroughly reviewed in the interest of better
   9643   usability.  Its mode line indicators now use appropriate colours.
   9644 + The faces of the 'messages' library have been thoroughly reviewed.
   9645   This affects various email interfaces, but also 'elfeed' entry
   9646   metadata headings.
   9647 + 'whitespace-mode' no longer has a newline character that stands out.
   9648   That kind of emphasis was not necessary, given that the symbol used
   9649   is a dollar sign, which is already far more visible than a mid dot.
   9650 + 'font-lock' (generic syntax highlighting) has better colour
   9651   combinations for regexp grouping constructs.
   9652 + 'rainbow-delimiters' was given its missing base error face.
   9653 + 'git-commit' comment action uses a slightly different foreground
   9654   value than before to better match its context.
   9655 + 'isearch' and 'query-replace' use colours that properly denote each
   9656   action's utility.
   9657 + 'visual-regexp' has been reviewed to make the matching groups more
   9658   distinct from each other.
   9659 + 'occur' and any other buffer that relies on the 'match' face can now
   9660   benefit from the new colour combinations, in that its results cannot
   9661   be confused for the active 'isearch' or 'query-replace' or even
   9662   their lazily highlighted results (or, indeed, of any other search
   9663   tool).
   9664 + 'company' uses faces for its search feedback that are consistent
   9665   with other search metaphors.
   9666 + Emacs 27's new ':extend' property is only implemented where
   9667   necessary (note that the latest release is version 26.3).
   9668 #+end_src
   9669 
   9670 * 0.4.0
   9671 :PROPERTIES:
   9672 :CUSTOM_ID: h:1597e301-f9df-4aac-8ec5-b8ecf34f2930
   9673 :END:
   9674 
   9675 #+begin_src text
   9676 This is an overview of the changes since version 0.3.0 (2019-12-25).
   9677 
   9678 Add support for:
   9679 
   9680 	+ ert
   9681 	+ flycheck-indicator
   9682 	+ mentor
   9683 	+ mu4e-conversation
   9684 	+ powerline-evil
   9685 	+ telephone-line
   9686 	+ vc (built-in version control)
   9687 
   9688 Refinements to already-supported packages:
   9689 
   9690 	+ company-mode (several refinements)
   9691 	+ doom-modeline (major review)
   9692 	+ helm (several tweaks)
   9693 	+ hl-line-mode (use unique background)
   9694 	+ ivy (improve matching line)
   9695 	+ line-number-mode (minor tweaks)
   9696 	+ markdown-mode (comprehensive expansion)
   9697 	+ mode-line (more appropriate styles for the highlight)
   9698 	+ powerline (minor tweaks)
   9699 	+ region (use unique background)
   9700 	+ swiper (improve matching line in main window)
   9701 	+ whitespace-mode (several refinements)
   9702     + mu4e (tweak mu4e-modeline-face for consistency)
   9703 
   9704 Miscellaneous:
   9705 
   9706 	+ Fix actual and potential problems with cursor faces that would
   9707       distort the use of appropriate background and foreground colours.
   9708       The documentation stipulates that the `cursor' face cannot be
   9709       inherited by other faces, due to its peculiar nature of only
   9710       recognising the background colour.
   9711 	+ Add support for more bold constructs in code.  As with all such
   9712       options, it is disabled by default, expecting the user to
   9713       explicitly opt in.
   9714 	+ Declare additional custom faces.  Only meant for internal use.
   9715 	+ Subtle refinements to "active" colour values in both Modus
   9716       Operandi and Modus Vivendi.  These mostly concern the mode line
   9717       (with a few special exceptions), where emphasis has been placed on
   9718       the need to provide greater contrast between accent values that
   9719       can be used there.
   9720 	+ Minor documentation refinements.
   9721 #+end_src
   9722 
   9723 * 0.3.0
   9724 :PROPERTIES:
   9725 :CUSTOM_ID: h:cb0ca8dc-3960-4490-b3c4-27d10cf6ed44
   9726 :END:
   9727 
   9728 #+begin_src text
   9729 Overview of changes since 0.2.0 (2019-12-18):
   9730 
   9731 + Add support for the following packages:
   9732 
   9733   + apt-sources-list
   9734   + calfw
   9735   + counsel-css
   9736   + counsel-notmuch
   9737   + counsel-org-capture-string
   9738   + cov
   9739   + disk-usage
   9740   + evil-visual-mark-mode
   9741   + geiser
   9742   + keycast
   9743   + org-journal
   9744   + org-noter
   9745   + paren-face
   9746   + powerline
   9747   + vc
   9748   + xah-elisp-mode
   9749 
   9750 + Explicitly style the following packages (these were already covered,
   9751   in terms of the colours they used, but are now targeted directly):
   9752 
   9753   + calendar
   9754   + counsel
   9755   + cursor
   9756   + package (M-x list-packages)
   9757 
   9758 + Minor tweaks to face groups:
   9759 
   9760   + dired
   9761   + compile
   9762 
   9763 + Fixes and refinements:
   9764 
   9765   + Documentation strings will now inherit the option for slanted
   9766     constructs (off by default -- see the README about all the user
   9767     options).
   9768   + Comment delimiters have the same styles as the body of the comment
   9769     to avoid inconsistencies when the option for slanted constructs is
   9770     enabled.
   9771   + The line number that is displayed in the compile log is now
   9772     correctly styled.
   9773   + Removed duplicate entries for ivy-remote and added ivy-separator.
   9774   + Ensure that the minibuffer prompt is always above the minimum
   9775     contrast ratio of 7:1, by using a more appropriate shade of cyan.
   9776   + Properly reference a couple of variables in Modus Vivendi.
   9777 
   9778 + Internal adjustments:
   9779 
   9780   + Decouple the core dired faces from those of external packages.
   9781   + Same for org and org-recur.
   9782 
   9783 + Minor documentation updates.
   9784 #+end_src
   9785 
   9786 * 0.2.0
   9787 :PROPERTIES:
   9788 :CUSTOM_ID: h:c9746d04-adf4-41b1-9b7c-6caaf17f8816
   9789 :END:
   9790 
   9791 #+begin_src text
   9792 Overview of changes since 0.1.0 (2019-12-09):
   9793 
   9794 + Comprehensive review of `org-mode' faces.  The use of colour should
   9795 now be more consistent with the semantics of each element.  These should
   9796 also respond better to a variety of combinations, such as when the user
   9797 has `hl-line-mode' enabled.  The agenda view is the greatest beneficiary
   9798 of this review.
   9799 
   9800 + Make `mu4e' mode line faces consistent with other elements that may be
   9801 placed on the mode line.
   9802 
   9803 + Make `gnus' header name/subject more distinct.
   9804 
   9805 + Several minor refinements to `ivy' and its extensions.
   9806 
   9807 + General usability refinements to `ace-window'.
   9808 
   9809 + Minor review of `elfeed' styles, in the interest of improving the
   9810 contrast between the elements.
   9811 
   9812 + Add support for:
   9813   + `persp-mode' (fork of the already supported `perspective')
   9814   + `dashboard'
   9815   + `evil-mode'
   9816   + `evil-goggles'
   9817   + `ruler-mode'
   9818 #+end_src
   9819 
   9820 * 0.1.0
   9821 :PROPERTIES:
   9822 :CUSTOM_ID: h:e14e612e-6951-4812-bc88-62c498bd5644
   9823 :END:
   9824 
   9825 #+begin_src text
   9826 First stable release of Modus Operandi and Modus Vivendi.
   9827 #+end_src