Commit graph

128 commits

Author SHA1 Message Date
Protesilaos Stavrou b7b60365fb
Add 'prose-table-formula' semantinc colour mapping; use it in 'org-formula' 2023-11-24 10:14:21 +02:00
Protesilaos Stavrou b23c84e6b4
Expand 'deftheme' with metadata
This is to support new features in Emacs where themes can specify
the set they belong to, as well as whether they are light or dark.
The built-in command is 'theme-choose-variant'.

This is in response to Emacs bug#65468:
<https://debbugs.gnu.org/cgi/bugreport.cgi?bug=65468>.  Thanks to
Mauro Aranda for bringing this matter to my attention.
2023-08-25 06:37:18 +03:00
Protesilaos Stavrou 7b65e735b8
Add semantic colour mappings for terminal emulators
These are used by ansi-term, vterm, and the like.  The idea is to
empower users to differentiate background and foreground values.  By
convention, terminal emulators use the same value for both background
and foreground, although this is not optimal with high contrast themes
because what works as a foreground does not necessarily look nice as a
background.

The default values of the new mappings retain the prior state, just to
not break existing configurations.

Thanks to Tony Zorman for reporting the bug that provided the impetus
for this change:
<https://lists.sr.ht/~protesilaos/modus-themes/%3C87fs4wforf.fsf%40hyperspace%3E>.
2023-08-10 12:28:08 +03:00
Protesilaos Stavrou 4e331d27de
Revise bg-hover hue in all themes except tritanopia
The previous colour was not sufficiently distinct from bg-completion.
This would make it hard to spot the difference while, for example,
using 'vertico-mode' in tandem with 'vertico-mouse-mode'.

Same principle for the difference between the mouse hover and lazy
isearch highlights (e.g. in Dired or Occur buffers).

Changing the hue here follows the same principle that underpinned the
redesign of the grey backgrounds for version 4 of the project:
depending on hardware capabilities, colour reproduction may not be
optimal, so we need to be more considerate with the choice of colour
values.

The tritanopia themes are not affected by this, as they already use
highly distinct hues.

Thanks to Daniel Mendler[1] for bringing this matter to my attention
and for testing the proposed alternatives.  This was done via a
private channel and the information is shared with permission.

[1] <https://github.com/minad>
2023-07-07 09:52:13 +03:00
Protesilaos Stavrou eb59dcc178
modus-vivendi-deuteranopia: tweak bg-removed-refine value 2023-06-30 16:15:27 +03:00
Protesilaos Stavrou 99b23d6983
Add support for japanese-holidays
Thanks to Olaf Meeuwissen for bringing this package to my attention
and showing me how traditional Japanese calendars style Saturdays.
This was done in issue 311 on the GitLab mirror:
<https://gitlab.com/protesilaos/modus-themes/-/issues/311>.
2023-06-15 07:22:14 +03:00
Protesilaos Stavrou f9c83600a9
Tweak deuteranopia mail-cite-2 colour mapping
This makes nested quotes in mail/message buffers easier to spot, while
still being consistent with the requirements of those themes.
2023-05-29 08:13:24 +03:00
Protesilaos Stavrou 51eca51ef3
Define "prominent" faces and semantic colour mappings
These are used for Flymake/Flycheck fringe indicators, errors in
isearch, and other such highlights.
2023-05-17 09:24:57 +03:00
Protesilaos Stavrou adbd8e3f83
Add semantic colour mappings for space errors
This extends commit fe02830.
2023-05-17 07:53:00 +03:00
Protesilaos Stavrou b503206a62
Introduce semantic colour mappings for marks
These are encountered in various buffers, such as Dired and Trashed.
2023-05-17 07:38:30 +03:00
Protesilaos Stavrou fe028304d4
Make whitespace-mode much more subtle; add semantic colour mappings
The previous style involved the use of a dim grey background.  While
this is good to spot invisible characters quickly, it is bad for users
who want to run 'whitespace-mode' at all times (e.g. for Python which
is space-sensitive).

We thus remove the backgrounds by default but provide the option to
reinstate them via palette overrides (as documented at length in the
manual).  To this end, we have two new semantic colour mappings for
ordinary negative space and its invisible characters.

Thanks to Christian Tietze and Oliver Epper for their feedback in
issue 80 on the GitHub mirror: <https://github.com/protesilaos/modus-themes/issues/80>.
2023-05-17 07:17:45 +03:00
Protesilaos Stavrou 36aeb9d8f8
Refine the deuteranopia yellows for warnings, errors, comments
These slight adjustments make it easier to tell apart distinct
elements that may be positioned close together.
2023-05-17 07:16:04 +03:00
Protesilaos Stavrou ae8808400c
Recalibrate deuteranopia "graph" colours
This is the same idea as with commit 66b8509, except here we need to
make extra arrangements to account for the red-green colour
deficiency.
2023-05-03 08:19:06 +03:00
Protesilaos Stavrou 98690410be
Add semantic colour mapping for "date range" 2023-05-02 14:42:29 +03:00
Protesilaos Stavrou 038295f72c
Make all theme descriptions more informative 2023-03-25 17:37:33 +02:00
Protesilaos Stavrou 21099418eb
Add bg-diff-context palette entry; implement it 2023-02-04 09:09:31 +02:00
Protesilaos Stavrou 1ee4c9576f
RENAME bg-\(added\|changed\|removed\)-intense to bg-\1-fringe
This specifies what the colours are used for.  Otherwise they are
confusing.

This change breaks any colour overrides for those names.  They need to
be renamed to use "-fringe" instead of "-intense".
2023-02-04 08:31:48 +02:00
Protesilaos Stavrou 235435c68f
Refine diff colours for fringes and deuteranopia added
Thanks to Andrew Troppin for showing me some usability issues with the
previous style.  This was done via a private channel and the
information is shared with permission.
2023-02-04 08:27:02 +02:00
Protesilaos Stavrou 188f68ba43
Make it possible to have recursive palette mapping
This means that a semantic colour mapping in the palette can have as
its value another mapping.  The function will find the underlying
colour.

This solves a problem reported by Imran Khan on the mailing list:
<https://lists.sr.ht/~protesilaos/modus-themes/%3Cb7ca4702162fd575593f8ded28d9a888.contact%40imrankhan.live%3E>.

I was aware of it from before the release of version 4.0.0 but I was
hesitant to implement recursion prior to getting some feedback on the
new palette overriding feature.

Also thanks to Christian Tietze for participating in that discussion
on the mailing list.
2023-01-04 12:28:06 +02:00
Protesilaos Stavrou 6ae40baacc
Update copyright years 2023-01-01 14:01:57 +02:00
Protesilaos Stavrou 57cb3347ad
Make sure all outline headers are the correct length 2022-12-31 15:04:53 +02:00
Protesilaos Stavrou 32dc7f9bc1
Deprecate modus-themes-region; use overrides
This is the last user option that we need to deprecate for the release
of version 4.  Now all colour-related changes happen through palette
overrides.

Thanks to Christian Tietze for reminding me about it:
<https://lists.sr.ht/~protesilaos/modus-themes/%3Cm1ilhtrs09.fsf%40christiantietze.de%3E>.
2022-12-30 18:56:51 +02:00
Protesilaos Stavrou 575644f9a3
Add uncommon accent backgrounds 2022-12-30 18:56:51 +02:00
Protesilaos Stavrou 52a848e42c
Add missing entry for paren match underline
Thanks to Tony Zorman for reminding me about it:
<https://lists.sr.ht/~protesilaos/modus-themes/%3C874jtew0gp.fsf%40hyperspace%3E>.
2022-12-30 05:26:53 +02:00
Protesilaos Stavrou 93401ca2c8
Clarify that mappings cannot be recursive
Thanks to tumashu for reminding me of this in issue 56 on the GitHub
mirror: <https://github.com/protesilaos/modus-themes/issues/56>.
2022-12-29 14:47:42 +02:00
Protesilaos Stavrou 72eb32f4fb
Implement rainbow mappings
These are now used in the rainbow-delimiters package, but there may be
more applications.

Thanks to Aleksei Pirogov for bringing this matter to my attention in
issue 54 on the GitHub mirror: <https://github.com/protesilaos/modus-themes/issues/54>.
2022-12-29 10:38:44 +02:00
Protesilaos Stavrou 2fa9a272fe
Simplify modus-themes-prompts; add overrides for its colors 2022-12-28 15:47:18 +02:00
Protesilaos Stavrou eb38b92495
Decouple accent mappings from completion 2022-12-28 14:58:12 +02:00
Protesilaos Stavrou 7c74495bf7
Give appropriate name to intense backgrounds 2022-12-28 14:56:08 +02:00
Protesilaos Stavrou 8bb44672da
Refine uncommon accents for the dark themes 2022-12-28 14:35:37 +02:00
Protesilaos Stavrou 737253a0bd
Remove some of the uncommon colors from the palettes 2022-12-28 06:34:13 +02:00
Protesilaos Stavrou 13beb314f8
Add 'date-weekday' mapping 2022-12-28 05:44:00 +02:00
Protesilaos Stavrou ff4bbd5dae
Refine colour-coded underlines 2022-12-27 07:28:20 +02:00
Protesilaos Stavrou 670bbaf869
Add intense diff foregrounds; use them for diffstat 2022-12-27 06:45:27 +02:00
Protesilaos Stavrou 7648c5eafc
Refine deuteranopia mode line err, warning, info 2022-12-27 06:16:20 +02:00
Protesilaos Stavrou 4f1edb3560
Refine deuteranopia mode lines 2022-12-27 06:04:25 +02:00
Protesilaos Stavrou d7b1c7da77
Revise deuteranopia 'prose-code' mapping 2022-12-26 18:13:06 +02:00
Protesilaos Stavrou 71e157f1b7
Refine diff colours in deuteranopia themes 2022-12-26 18:00:19 +02:00
Protesilaos Stavrou e4833cd655
Tone down deuteranopia active mode line backgrounds 2022-12-26 17:33:38 +02:00
Protesilaos Stavrou b8aa0887be
Implement mode line mappings for err, warning, info 2022-12-26 10:48:52 +02:00
Protesilaos Stavrou 83b6cfd9d7
Dim the fringe mapping 2022-12-26 10:17:26 +02:00
Protesilaos Stavrou 533595cf16
Define a 'date-now' mapping 2022-12-26 03:53:12 +02:00
Protesilaos Stavrou 6a5cbf838f
Tweak some date mappings for deuteranopia 2022-12-26 03:48:20 +02:00
Protesilaos Stavrou 45bacd9cfd
Make deuteranopia cursor, prompt easier to spot 2022-12-26 03:48:02 +02:00
Protesilaos Stavrou 920acc5688
Make deuteranopia active mode line blue
Just to be sure that it is easier to spot, as the different shades of
gray may pose a problem for some users.

These can always be configured via overrides.
2022-12-26 03:46:20 +02:00
Protesilaos Stavrou d8daaf85b9
Only allow 'unspecified' in palettes
Makes it easier to read for someone who is not familiar with what 't'
means for underlines.
2022-12-26 03:33:10 +02:00
Protesilaos Stavrou 9e4d1eb4c6
Remove duplicate TODOs 2022-12-25 14:49:24 +02:00
Protesilaos Stavrou e478002d82
Use overrides for heading background and overline 2022-12-24 09:09:33 +02:00
Protesilaos Stavrou 41a9d726a8
Reorganise the palettes 2022-12-24 08:49:24 +02:00
Protesilaos Stavrou 30b7868fed
Rename accent mappings for consistency 2022-12-23 13:23:32 +02:00
Protesilaos Stavrou baa8dcec18
Expand link mappings; accept 't' and 'unspecified' values 2022-12-23 13:22:54 +02:00
Protesilaos Stavrou d7affae1b6
Add nuanced accented backgrounds 2022-12-23 13:16:10 +02:00
Protesilaos Stavrou 86547e4c21
Clarify doc strings of palette overrides 2022-12-23 12:34:58 +02:00
Protesilaos Stavrou 9cd3314018
Deprecate modus-themes-links; use mappings instead 2022-12-22 12:15:15 +02:00
Protesilaos Stavrou 53e98dd349
Deprecate modus-themes-subtle-line-numbers; add mappings 2022-12-22 07:09:16 +02:00
Protesilaos Stavrou 718557503a
Make box buttons respond to palette overrides 2022-12-21 12:05:23 +02:00
Protesilaos Stavrou 92188a2113
Tweak some deuteranopia mappings 2022-12-21 09:03:05 +02:00
Protesilaos Stavrou 912731d599
Sort date mappings A-Z 2022-12-20 09:16:39 +02:00
Protesilaos Stavrou 64ffc9d21d
Expand and refine mappings for dates 2022-12-20 09:06:05 +02:00
Protesilaos Stavrou c70713eecb
Add mappings for prose-done, prose-todo 2022-12-20 08:45:13 +02:00
Protesilaos Stavrou 3b40d82a92
Reorganise some palette mappings 2022-12-20 07:01:00 +02:00
Protesilaos Stavrou 0d49906db4
Rename 'tag' mapping to 'prose-tag' 2022-12-20 06:57:21 +02:00
Protesilaos Stavrou 3e2a8704ed
Add mappings for more prose constructs (e.g. org-mode) 2022-12-20 06:47:25 +02:00
Protesilaos Stavrou cdfbd26801
Introduce more colours (work-in-progress) 2022-12-20 06:37:33 +02:00
Protesilaos Stavrou 24e6b3e1e3
Re-order some entries in the palette 2022-12-20 04:43:46 +02:00
Protesilaos Stavrou ca4c8f6e31
Add support for font-lock-doc-markup-face
Thanks to Mattias Engdegård for bringing 'font-lock-doc-markup-face'
to my attention and for explaining the stylistic demands it has.
2022-12-19 16:38:42 +02:00
Protesilaos Stavrou b891d54771
Tweak magenta-faint across all themes 2022-12-19 13:17:35 +02:00
Protesilaos Stavrou 889c5dc34e
Add tab colours to the palette 2022-12-19 05:41:37 +02:00
Protesilaos Stavrou f01530e9b7
Update doc strings of individual theme overrides 2022-12-18 08:38:44 +02:00
Protesilaos Stavrou dab4cbfb33
Make overrides 'defcustom'; rename common overrides
Thanks to Philip Kaludercic for suggesting the conversion of these
variables to user options:
<https://lists.sr.ht/~protesilaos/modus-themes/%3C87wn6qgjkx.fsf%40posteo.net%3E#%3C87edsyvvsy.fsf@posteo.net%3E>.

They are now easier to discover through the Custom UI.  Their ':type'
can be refined.
2022-12-18 08:33:09 +02:00
Protesilaos Stavrou 7d4d93f9a8
Reposition "rx-*" mappings close to syntax entries 2022-12-18 07:04:33 +02:00
Protesilaos Stavrou 3fcf136507
Deprecate modus-themes-fringes; add 'fringe' mapping
The user can thus override the 'fringe' mapping to whatever colour
they prefer, instead of us hardcoding it to two shades of gray.

To make the 'fringe' invisible, set it to the main background.

Video tutorial on colour mappings:
<https://protesilaos.com/codelog/2022-12-17-modus-themes-v4-demo/>.
2022-12-18 06:13:46 +02:00
Protesilaos Stavrou b9bbe2d3e5
Use appropriate deuteranopia graph colours 2022-12-17 18:56:16 +02:00
Protesilaos Stavrou 95bc61c7c0
Clarify the doc strings of all palette variables 2022-12-17 18:52:53 +02:00
Protesilaos Stavrou 3ebdcc4f5d
Tweak the deftheme doc of the deueteranopia themes 2022-12-17 18:48:53 +02:00
Protesilaos Stavrou 964ad36f63
Rename graph colours for consistency 2022-12-17 13:33:29 +02:00
Protesilaos Stavrou bb75e632f7
Make comments yellow in deuteranopia themes 2022-12-16 07:28:04 +02:00
Protesilaos Stavrou 1b4238f51d
Add deuteranopia THEMES; remove the user option
Providing bespoke themes gives us the freedom to implement changes
wherever necessary without making the code more complex.  The now
discontinued 'modus-themes-deuteranopia' was a user option with
limited scope: it simply replaced green with blue in some contexts.
But a proper design for deuteranopia requires more than that.  These
new themes are the right solution and I am sure the people who need
them will greatly appreciate them.
2022-12-16 05:58:12 +02:00