[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/modus-operandi-theme c9ce126 061/153: Merge branch 'ref
From: |
Stefan Monnier |
Subject: |
[elpa] externals/modus-operandi-theme c9ce126 061/153: Merge branch 'refactor-headings-options' into master |
Date: |
Thu, 18 Mar 2021 13:47:39 -0400 (EDT) |
branch: externals/modus-operandi-theme
commit c9ce126eab8c3be27bdadf906a0eb759ef8834ae
Merge: 53f877a 9f9160f
Author: Protesilaos Stavrou <info@protesilaos.com>
Commit: Protesilaos Stavrou <info@protesilaos.com>
Merge branch 'refactor-headings-options' into master
---
doc/modus-themes.org | 133 ++++++++++++-------
modus-operandi-theme.el | 330 ++++++++++++++++++++++++++++++++----------------
modus-vivendi-theme.el | 330 ++++++++++++++++++++++++++++++++----------------
3 files changed, 533 insertions(+), 260 deletions(-)
diff --git a/doc/modus-themes.org b/doc/modus-themes.org
index 3d23dd9..a43f8d1 100644
--- a/doc/modus-themes.org
+++ b/doc/modus-themes.org
@@ -288,9 +288,10 @@
https://www.reddit.com/r/emacs/comments/gqsz8u/weekly_tipstricketc_thread/fsfakh
modus-%1$s-theme-completions 'moderate ;
{nil,'moderate,'opinionated}
modus-%1$s-theme-diffs nil ; {nil,'desaturated,'fg-only}
modus-%1$s-theme-org-blocks 'greyscale ; {nil,'greyscale,'rainbow}
+ modus-%1$s-theme-headings ; Read further below in the manual for
this one
+ '((1 . line)
+ (t . rainbow-line-no-bold))
modus-%1$s-theme-variable-pitch-headings t
- modus-%1$s-theme-rainbow-headings t
- modus-%1$s-theme-section-headings t
modus-%1$s-theme-scale-headings t
modus-%1$s-theme-scale-1 1.1
modus-%1$s-theme-scale-2 1.15
@@ -681,66 +682,110 @@ major-mode so that the colours are applied properly: use
=M-x org-mode= or
=M-x org-mode-restart= to refresh the buffer. Or start typing in each
code block (inefficient at scale, but it still works).
-** Option for colourful headings
+** Option for headings' overall style
:PROPERTIES:
-:ALT_TITLE: Accented headings
-:DESCRIPTION: Toggle saturated outline headings
-:CUSTOM_ID: h:61b65cff-cc37-4c69-91d7-f818293139a0
+:ALT_TITLE: Heading styles
+:DESCRIPTION: Choose among several styles, also per heading level
+:CUSTOM_ID: h:271eff19-97aa-4090-9415-a6463c2f9ae1
:END:
+This is defined as an alist and, therefore, uses a different approach
+than other customisation options documented in this manual.
+
Symbol names:
-+ =modus-operandi-theme-rainbow-headings=
-+ =modus-vivendi-theme-rainbow-headings=
++ =modus-operandi-theme-headings=
++ =modus-vivendi-theme-headings=
+
+Possible values, which can be specified for each heading level (examples
+further below):
+
++ =t= (default style)
++ =no-bold=
++ =line=
++ =line-no-bold=
++ =rainbow=
++ =rainbow-line=
++ =rainbow-line-no-bold=
++ =rainbow-highlight=
++ =rainbow-highlight-no-bold=
++ =section=
++ =section-no-bold=
++ =rainbow-section=
++ =rainbow-section-no-bold=
+
+To control faces per level from 1-8, use something like this (same for
+=modus-vivendi-theme-headings=):
-Possible values:
+#+begin_src emacs-lisp
+(setq modus-operandi-theme-headings
+ '((1 . highlight)
+ (2 . line)
+ (t . rainbow-line-no-bold)))
+#+end_src
-1. =nil= (default)
-2. =t=
+The above uses the =highlight= value for heading levels 1 and the =line= for
+headings 2. All other levels fall back to =rainbow-line-no-bold=.
-Apply more saturated colours to headings in =org-mode= and =outline-mode=
-while retaining all other heading properties. The colours follow the
-rainbow's spectrum. In Org headings, some additional tweaks are made to
-adapt keywords (like "TODO") to the more vivid presentation.
+To set a uniform value for all heading levels, use this pattern:
-The default uses a more frugal aesthetic for headings, letting their
-bold typography and the nuances between the various heading levels
-provide the elements of differentiation.
+#+begin_src emacs-lisp
+(setq modus-operandi-theme-headings
+ '((t . rainbow-line-no-bold)))
+#+end_src
-** Option for sectioned headings
-:PROPERTIES:
-:ALT_TITLE: Section headings
-:DESCRIPTION: Toggle sectioned outline headings
-:CUSTOM_ID: h:7649e1b4-7b1d-41bc-aebd-fdae585212d9
-:END:
+The default style for headings uses a fairly desaturated foreground
+value in combination with a bold typographic weight. To specify this
+style for a given level N (assuming you wish to have another fallback
+option), just specify the value t like this:
-Symbol names:
+#+begin_src emacs-lisp
+(setq modus-operandi-theme-headings
+ '((1 . t)
+ (2 . line)
+ (t . rainbow-line-no-bold)))
+#+end_src
-+ =modus-operandi-theme-section-headings=
-+ =modus-vivendi-theme-section-headings=
+A description of all other possible values:
-Possible values:
++ =no-bold= retains the default text colour while removing the typographic
+ weight.
-1. =nil= (default)
-2. =t=
++ =line= is the same as the default plus an overline over the heading.
-Uses a background colour and an overline to mark section headings in
-=org-mode= and =outline-mode=. These attributes are applied in addition to
-the existing foreground colour and the bold weight and can, therefore,
-be combined with the "rainbow" headings option (as well as all the other
-options pertaining to headings). For Org several additional faces are
-configured accordingly, such as =TODO= keywords which gain a box style.
++ =line-no-bold= is the same as =line= without bold weight.
-The default is to use only a subtle foreground and a bold weight for
-headings, while no boxes or {under,over}-line effects are present.
++ =rainbow= uses a more colourful foreground in combination with bold
+ weight.
-Note that the background for sectioned headings will extend to the edge
-of the window. To make it cover just the area occupied by the heading's
-text, use this:
++ =rainbow-line= is the same as =rainbow= plus an overline.
-#+begin_src emacs-lisp
-(setq org-fontify-whole-heading-line nil)
-#+end_src
++ =rainbow-line-no-bold= is the same as =rainbow-line= without the bold
+ weight.
+
++ =highlight= retains the default style of a fairly desaturated foreground
+ combined with a bold weight and add to it a subtle accented
+ background.
+
++ =highlight-no-bold= is the same as =highlight= without a bold weight.
+
++ =rainbow-highlight= is the same as =highlight= but with a more colourful
+ foreground.
+
++ =rainbow-highlight-no-bold= is the same as =rainbow-highlight= without a
+ bold weight.
+
++ =section= retains the default looks and adds to them both an overline
+ and a slightly accented background. It is, in effect, a combination
+ of the =line= and =highlight= values.
+
++ =section-no-bold= is the same as =section= without a bold weight.
+
++ =rainbow-section= is the same as =section= but with a more colourful
+ foreground.
+
++ =rainbow-section-no-bold= is the same as =rainbow-section= without a bold
+ weight."
** Option for scaled headings
:PROPERTIES:
diff --git a/modus-operandi-theme.el b/modus-operandi-theme.el
index 698f65d..d661f45 100644
--- a/modus-operandi-theme.el
+++ b/modus-operandi-theme.el
@@ -42,8 +42,7 @@
;; modus-operandi-theme-slanted-constructs (boolean)
;; modus-operandi-theme-bold-constructs (boolean)
;; modus-operandi-theme-variable-pitch-headings (boolean)
-;; modus-operandi-theme-rainbow-headings (boolean)
-;; modus-operandi-theme-section-headings (boolean)
+;; modus-operandi-theme-headings (alist)
;; modus-operandi-theme-scale-headings (boolean)
;; modus-operandi-theme-fringes (choice)
;; modus-operandi-theme-org-blocks (choice)
@@ -447,14 +446,110 @@ between foreground and background is >= 7:1)."
"Use proportional fonts (variable-pitch) in headings."
:type 'boolean)
+(define-obsolete-variable-alias 'modus-operandi-theme-rainbow-headings
+ 'modus-operandi-theme-headings "`modus-operandi-theme' 0.13.0")
+
(defcustom modus-operandi-theme-rainbow-headings nil
"Use more saturated colours for headings."
:type 'boolean)
+(define-obsolete-variable-alias 'modus-operandi-theme-section-headings
+ 'modus-operandi-theme-headings "`modus-operandi-theme' 0.13.0")
+
(defcustom modus-operandi-theme-section-headings nil
"Use a background and an overline in headings."
:type 'boolean)
+(defcustom modus-operandi-theme-headings
+ '((t . nil))
+ "Alist of styles for headings, with optional value per level.
+
+To control faces per level from 1-8, use something like this:
+
+ (setq modus-operandi-theme-headings
+ '((1 . highlight)
+ (2 . line)
+ (t . rainbow-line-no-bold)))
+
+To set a uniform value for all heading levels, use this pattern:
+
+ (setq modus-operandi-theme-headings
+ '((t . rainbow-line-no-bold)))
+
+The default uses a fairly desaturated foreground value in
+combination with a bold typographic weight. To specify this
+style for a given level N (assuming you wish to have another
+fallback option), just specify the value t like this:
+
+ (setq modus-operandi-theme-headings
+ '((1 . t)
+ (2 . line)
+ (t . rainbow-line-no-bold)))
+
+A description of all possible values:
+
++ `no-bold' retains the default text colour while removing
+ the typographic weight.
+
++ `line' is the same as the default plus an overline over the
+ heading.
+
++ `line-no-bold' is the same as `line' without bold weight.
+
++ `rainbow' uses a more colourful foreground in combination
+ with bold weight.
+
++ `rainbow-line' is the same as `rainbow' plus an overline.
+
++ `rainbow-line-no-bold' is the same as `rainbow-line' without
+ the bold weight.
+
++ `highlight' retains the default style of a fairly desaturated
+ foreground combined with a bold weight and add to it a subtle
+ accented background.
+
++ `highlight-no-bold' is the same as `highlight' without a bold
+ weight.
+
++ `rainbow-highlight' is the same as `highlight' but with a more
+ colourful foreground.
+
++ `rainbow-highlight-no-bold' is the same as `rainbow-highlight'
+ without a bold weight.
+
++ `section' retains the default looks and adds to them both an
+ overline and a slightly accented background. It is, in effect,
+ a combination of the `line' and `highlight' values.
+
++ `section-no-bold' is the same as `section' without a bold
+ weight.
+
++ `rainbow-section' is the same as `section' but with a more
+ colourful foreground.
+
++ `rainbow-section-no-bold' is the same as `rainbow-section'
+ without a bold weight."
+ :type
+ '(alist
+ :key-type symbol
+ :value-type
+ (choice (const :tag "Fairly desaturated foreground with bold weight
(default)" t)
+ (const :tag "Like the default without bold weight" no-bold)
+ (const :tag "Like the default plus overline" line)
+ (const :tag "Like `line' without bold weight" line-no-bold)
+ (const :tag "Like the default but with more colourful foreground"
rainbow)
+ (const :tag "Like `rainbow' plus overline" rainbow-line)
+ (const :tag "Like `rainbow' without bold weight" rainbow-no-bold)
+ (const :tag "Like `rainbow-line' without bold weight"
rainbow-line-no-bold)
+ (const :tag "Like the default plus subtle background" highlight)
+ (const :tag "Like `highlight' without bold weight"
highlight-no-bold)
+ (const :tag "Like `highlight' with more colourful foreground"
rainbow-highlight)
+ (const :tag "Like `rainbow-highlight' without bold weight"
rainbow-highlight-no-bold)
+ (const :tag "Like `highlight' plus overline" section)
+ (const :tag "Like `section' without bold weight" section-no-bold)
+ (const :tag "Like `section' with more colourful foreground"
rainbow-section)
+ (const :tag "Like `rainbow-section' without bold weight"
rainbow-section-no-bold))))
+
(defcustom modus-operandi-theme-scale-headings nil
"Use font scaling for headings."
:type 'boolean)
@@ -735,29 +830,65 @@ FAINT is the less saturated colour."
(list :foreground faint)
(list :foreground normal)))
-(defun modus-operandi-theme-heading-foreground (subtle rainbow)
- "Apply foreground value to headings.
-SUBTLE is the default aesthetic. RAINBOW is the saturated one."
- (if modus-operandi-theme-rainbow-headings
- (list :foreground rainbow)
- (list :foreground subtle)))
-
-(defun modus-operandi-theme-heading-block (bg fg)
- "Conditionally extend heading styles.
-Apply BG to background and FG to overline."
- (if modus-operandi-theme-section-headings
- (append
- (and (>= emacs-major-version 27) '(:extend t))
- (list :background bg :overline fg))
- (list :background nil :overline nil)))
+(defun modus-operandi-theme-heading-p (key)
+ "Query style of KEY in `modus-operandi-theme-headings'."
+ (cdr (assoc key modus-operandi-theme-headings)))
+
+(defun modus-operandi-theme-heading (level fg fg-alt bg border)
+ "Conditional styles for `modus-operandi-theme-headings'.
-(defun modus-operandi-theme-org-todo-block (bgbox fgbox fg)
- "Conditionally extend the styles of Org keywords.
-BGBOX applies to the background. FGBOX applies to the foreground
-and the border. FG is used when no block style is in effect."
- (if modus-operandi-theme-section-headings
- (list :background bgbox :foreground fgbox :box (list :color fgbox))
- (list :foreground fg)))
+LEVEL is the heading's position in their order. FG is the
+default text colour. FG-ALT is an accented, more saturated value
+than the default. BG is a nuanced, typically accented,
+background that can work well with either of the foreground
+values. BORDER is a colour value that combines well with the
+background and alternative foreground."
+ (let* ((key (modus-operandi-theme-heading-p `,level))
+ (style (if key key (modus-operandi-theme-heading-p t)))
+ (var (if modus-operandi-theme-variable-pitch-headings
+ 'variable-pitch
+ 'default)))
+ (pcase style
+ ('no-bold
+ (list :inherit `,var :foreground fg))
+ ('line
+ (list :inherit `(bold ,var) :foreground fg :overline border))
+ ('line-no-bold
+ (list :inherit `,var :foreground fg :overline border))
+ ('rainbow
+ (list :inherit `(bold ,var) :foreground fg-alt))
+ ('rainbow-no-bold
+ (list :inherit `,var :foreground fg-alt))
+ ('rainbow-line
+ (list :inherit `(bold ,var) :foreground fg-alt :overline border))
+ ('rainbow-line-no-bold
+ (list :inherit `,var :foreground fg-alt :overline border))
+ ('highlight
+ (list :inherit `(bold ,var) :background bg :foreground fg))
+ ('highlight-no-bold
+ (list :inherit `,var :background bg :foreground fg))
+ ('rainbow-highlight
+ (list :inherit `(bold ,var) :background bg :foreground fg-alt))
+ ('rainbow-highlight-no-bold
+ (list :inherit `,var :background bg :foreground fg-alt))
+ ('section
+ (append
+ (and (>= emacs-major-version 27) '(:extend t))
+ (list :inherit `(bold ,var) :background bg :foreground fg :overline
border)))
+ ('section-no-bold
+ (append
+ (and (>= emacs-major-version 27) '(:extend t))
+ (list :inherit `,var :background bg :foreground fg :overline border)))
+ ('rainbow-section
+ (append
+ (and (>= emacs-major-version 27) '(:extend t))
+ (list :inherit `(bold ,var) :background bg :foreground fg-alt
:overline border)))
+ ('rainbow-section-no-bold
+ (append
+ (and (>= emacs-major-version 27) '(:extend t))
+ (list :inherit `,var :background bg :foreground fg-alt :overline
border)))
+ (_
+ (list :inherit `(bold ,var) :foreground fg)))))
(defun modus-operandi-theme-org-block (bgblk)
"Conditionally set the background of Org blocks.
@@ -3283,18 +3414,18 @@ Also bind `class' to ((class color) (min-colors 89))."
`(org-agenda-clocking ((,class :inherit modus-theme-special-cold)))
`(org-agenda-column-dateline ((,class :background ,bg-alt)))
`(org-agenda-current-time ((,class :inherit modus-theme-subtle-cyan)))
- `(org-agenda-date ((,class :inherit ,modus-theme-variable-pitch :foreground
,cyan-alt-other
- ,@(modus-operandi-theme-scale
modus-operandi-theme-scale-4)
- ,@(modus-operandi-theme-heading-block
cyan-nuanced-bg cyan-nuanced))))
+ `(org-agenda-date ((,class ,@(modus-operandi-theme-heading
+ 1 cyan-alt-other cyan-alt-other
cyan-nuanced-bg cyan-nuanced)
+ ,@(modus-operandi-theme-scale
modus-operandi-theme-scale-4))))
`(org-agenda-date-today ((,class :inherit (bold ,modus-theme-variable-pitch)
:background ,cyan-intense-bg :foreground
,fg-main
,@(modus-operandi-theme-scale
modus-operandi-theme-scale-4))))
- `(org-agenda-date-weekend ((,class :inherit ,modus-theme-variable-pitch
:foreground ,cyan
- ,@(modus-operandi-theme-scale
modus-operandi-theme-scale-4)
- ,@(modus-operandi-theme-heading-block
blue-nuanced-bg cyan-nuanced))))
+ `(org-agenda-date-weekend ((,class ,@(modus-operandi-theme-heading
+ 1 cyan cyan blue-nuanced-bg
cyan-nuanced)
+ ,@(modus-operandi-theme-scale
modus-operandi-theme-scale-4))))
`(org-agenda-diary ((,class :foreground ,fg-main)))
`(org-agenda-dimmed-todo-face ((,class :inherit
modus-theme-subtle-neutral)))
- `(org-agenda-done ((,class ,@(modus-operandi-theme-org-todo-block
green-nuanced-bg green-nuanced green))))
+ `(org-agenda-done ((,class :foreground ,green-alt)))
`(org-agenda-filter-category ((,class :inherit bold :foreground
,magenta-active)))
`(org-agenda-filter-effort ((,class :inherit bold :foreground
,magenta-active)))
`(org-agenda-filter-regexp ((,class :inherit bold :foreground
,magenta-active)))
@@ -3313,25 +3444,25 @@ Also bind `class' to ((class color) (min-colors 89))."
`(org-block-end-line ((,class :inherit org-block-begin-line)))
`(org-checkbox ((,class :box (:line-width 1 :color ,bg-active)
:background ,bg-inactive :foreground ,fg-active)))
- `(org-checkbox-statistics-done ((,class :foreground ,green
-
,@(modus-operandi-theme-heading-block
- green-nuanced-bg
green-nuanced))))
- `(org-checkbox-statistics-todo ((,class
,@(modus-operandi-theme-heading-foreground red-alt red)
-
,@(modus-operandi-theme-heading-block
- red-nuanced-bg red-nuanced))))
+ `(org-checkbox-statistics-done ((,class :box ,bg-region :background ,bg-dim
+ :foreground ,green
+ :inherit
,modus-theme-variable-pitch)))
+ `(org-checkbox-statistics-todo ((,class :box ,bg-region :background ,bg-dim
+ :foreground ,red-alt
+ :inherit
,modus-theme-variable-pitch)))
`(org-clock-overlay ((,class :inherit modus-theme-special-cold)))
`(org-code ((,class :inherit fixed-pitch :foreground ,magenta)))
`(org-column ((,class :background ,bg-alt)))
`(org-column-title ((,class :inherit bold :underline t :background
,bg-alt)))
`(org-date ((,class :inherit fixed-pitch :foreground ,cyan-alt-other
:underline t)))
`(org-date-selected ((,class :inherit bold :foreground ,blue-alt
:inverse-video t)))
- `(org-default ((,class :background ,bg-main :foreground ,fg-main)))
`(org-document-info ((,class :foreground ,fg-special-cold)))
`(org-document-info-keyword ((,class :inherit fixed-pitch :foreground
,fg-alt)))
`(org-document-title ((,class :inherit (bold ,modus-theme-variable-pitch)
:foreground ,fg-special-cold
,@(modus-operandi-theme-scale
modus-operandi-theme-scale-5))))
- `(org-done ((,class ,@(modus-operandi-theme-org-todo-block green-nuanced-bg
green-nuanced green))))
- `(org-drawer ((,class :foreground ,cyan-alt)))
+ `(org-done ((,class :box ,bg-region :background ,bg-dim :foreground ,green
+ :inherit ,modus-theme-variable-pitch)))
+ `(org-drawer ((,class :inherit ,modus-theme-variable-pitch :foreground
,cyan)))
`(org-ellipsis ((,class :foreground nil))) ; inherits from the heading's
colour
`(org-footnote ((,class :foreground ,blue-alt :underline ,blue-alt)))
`(org-formula ((,class :inherit fixed-pitch :foreground ,red-alt)))
@@ -3343,48 +3474,39 @@ Also bind `class' to ((class color) (min-colors 89))."
`(org-habit-overdue-future-face ((,class :inherit modus-theme-refine-red)))
`(org-habit-ready-face ((,class :inherit modus-theme-intense-blue)))
`(org-habit-ready-future-face ((,class :inherit modus-theme-refine-blue)))
- `(org-headline-done ((,class :foreground ,green-nuanced
- ,@(modus-operandi-theme-heading-block
- green-nuanced-bg green-nuanced))))
+ `(org-headline-done ((,class :inherit ,modus-theme-variable-pitch
:foreground ,green-nuanced)))
`(org-hide ((,class :foreground ,bg-main)))
`(org-indent ((,class :inherit (fixed-pitch org-hide))))
`(org-latex-and-related ((,class :foreground ,magenta-refine-fg)))
- `(org-level-1 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-operandi-theme-heading-foreground fg-main
magenta-alt-other)
- ,@(modus-operandi-theme-scale
modus-operandi-theme-scale-4)
- ,@(modus-operandi-theme-heading-block
magenta-nuanced-bg magenta-nuanced))))
- `(org-level-2 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-operandi-theme-heading-foreground
fg-special-warm magenta-alt)
- ,@(modus-operandi-theme-scale
modus-operandi-theme-scale-3)
- ,@(modus-operandi-theme-heading-block red-nuanced-bg
red-nuanced))))
- `(org-level-3 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-operandi-theme-heading-foreground
fg-special-cold blue)
- ,@(modus-operandi-theme-scale
modus-operandi-theme-scale-2)
- ,@(modus-operandi-theme-heading-block
blue-nuanced-bg blue-nuanced))))
- `(org-level-4 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-operandi-theme-heading-foreground
fg-special-mild cyan)
- ,@(modus-operandi-theme-scale
modus-operandi-theme-scale-1)
- ,@(modus-operandi-theme-heading-block
cyan-nuanced-bg cyan-nuanced))))
- `(org-level-5 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-operandi-theme-heading-foreground
fg-special-calm green-alt-other)
- ,@(modus-operandi-theme-heading-block
green-nuanced-bg green-nuanced))))
- `(org-level-6 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-operandi-theme-heading-foreground
yellow-nuanced yellow-alt-other)
- ,@(modus-operandi-theme-heading-block
yellow-nuanced-bg yellow-nuanced))))
- `(org-level-7 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-operandi-theme-heading-foreground
red-nuanced red-alt)
- ,@(modus-operandi-theme-heading-block red-nuanced-bg
red-nuanced))))
- `(org-level-8 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-operandi-theme-heading-foreground fg-dim
magenta)
- ,@(modus-operandi-theme-heading-block bg-alt
fg-alt))))
+ `(org-level-1 ((,class ,@(modus-operandi-theme-heading
+ 1 fg-main magenta-alt-other magenta-nuanced-bg
bg-region)
+ ,@(modus-operandi-theme-scale
modus-operandi-theme-scale-4))))
+ `(org-level-2 ((,class ,@(modus-operandi-theme-heading
+ 2 fg-special-warm magenta-alt red-nuanced-bg
bg-region)
+ ,@(modus-operandi-theme-scale
modus-operandi-theme-scale-3))))
+ `(org-level-3 ((,class ,@(modus-operandi-theme-heading
+ 3 fg-special-cold blue blue-nuanced-bg bg-region)
+ ,@(modus-operandi-theme-scale
modus-operandi-theme-scale-2))))
+ `(org-level-4 ((,class ,@(modus-operandi-theme-heading
+ 4 fg-special-mild cyan cyan-nuanced-bg bg-region)
+ ,@(modus-operandi-theme-scale
modus-operandi-theme-scale-1))))
+ `(org-level-5 ((,class ,@(modus-operandi-theme-heading
+ 5 fg-special-calm green-alt-other
green-nuanced-bg bg-region))))
+ `(org-level-6 ((,class ,@(modus-operandi-theme-heading
+ 6 yellow-nuanced yellow-alt-other
yellow-nuanced-bg bg-region))))
+ `(org-level-7 ((,class ,@(modus-operandi-theme-heading
+ 7 red-nuanced red-alt red-nuanced-bg bg-region))))
+ `(org-level-8 ((,class ,@(modus-operandi-theme-heading
+ 8 fg-dim magenta bg-alt bg-region))))
`(org-link ((,class :inherit link)))
`(org-list-dt ((,class :inherit bold)))
- `(org-macro ((,class :inherit org-latex-and-related)))
+ `(org-macro ((,class :background ,blue-nuanced-bg :foreground
,magenta-alt-other)))
`(org-meta-line ((,class :inherit fixed-pitch :background ,cyan-nuanced-bg
:foreground ,cyan-nuanced)))
`(org-mode-line-clock ((,class :foreground ,fg-main)))
`(org-mode-line-clock-overrun ((,class :inherit modus-theme-active-red)))
- `(org-priority ((,class ,@(modus-operandi-theme-org-todo-block
magenta-nuanced-bg magenta-nuanced magenta)
- ,@(modus-operandi-theme-heading-foreground magenta
magenta-alt-other))))
+ `(org-priority ((,class :box ,bg-region :background ,bg-dim :foreground
,magenta
+ :inherit ,modus-theme-variable-pitch)))
+ `(org-property-value ((,class :foreground ,cyan-alt-other)))
`(org-quote ((,class ,@(if modus-operandi-theme-org-blocks
(append
(and (>= emacs-major-version 27) '(:extend t))
@@ -3395,14 +3517,15 @@ Also bind `class' to ((class color) (min-colors 89))."
`(org-scheduled-previously ((,class :foreground ,yellow-alt-other)))
`(org-scheduled-today ((,class :foreground ,magenta-alt-other)))
`(org-sexp-date ((,class :inherit org-date)))
- `(org-special-keyword ((,class ,@(modus-operandi-theme-org-todo-block
cyan-nuanced-bg cyan-nuanced cyan-alt))))
+ `(org-special-keyword ((,class :inherit ,modus-theme-variable-pitch
+ :foreground ,blue-nuanced)))
`(org-table ((,class :inherit fixed-pitch :foreground ,fg-special-cold)))
- `(org-tag ((,class ,@(modus-operandi-theme-bold-weight) :foreground
,magenta-nuanced)))
+ `(org-tag ((,class :foreground ,magenta-nuanced)))
`(org-tag-group ((,class :inherit bold :foreground ,cyan-nuanced)))
`(org-target ((,class :underline t)))
`(org-time-grid ((,class :foreground ,fg-unfocused)))
- `(org-todo ((,class ,@(modus-operandi-theme-org-todo-block red-nuanced-bg
red-nuanced red-alt)
- ,@(modus-operandi-theme-heading-foreground red-alt
red))))
+ `(org-todo ((,class :box ,bg-region :background ,bg-dim :foreground ,red-alt
+ :inherit ,modus-theme-variable-pitch)))
`(org-upcoming-deadline ((,class :foreground ,red-alt-other)))
`(org-upcoming-distant-deadline ((,class :foreground ,red-nuanced)))
`(org-verbatim ((,class :inherit fixed-pitch :background ,bg-alt
:foreground ,fg-special-calm)))
@@ -3436,37 +3559,28 @@ Also bind `class' to ((class color) (min-colors 89))."
`(origami-fold-header-face ((,class :background ,bg-dim :foreground ,fg-dim
:box t)))
`(origami-fold-replacement-face ((,class :background ,bg-alt :foreground
,fg-alt)))
;;;;; outline-mode
- `(outline-1 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-operandi-theme-heading-foreground fg-main
magenta-alt-other)
- ,@(modus-operandi-theme-scale
modus-operandi-theme-scale-4)
- ,@(modus-operandi-theme-heading-block
magenta-nuanced-bg magenta-nuanced))))
- `(outline-2 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-operandi-theme-heading-foreground
fg-special-warm magenta-alt)
- ,@(modus-operandi-theme-scale
modus-operandi-theme-scale-3)
- ,@(modus-operandi-theme-heading-block red-nuanced-bg
red-nuanced))))
- `(outline-3 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-operandi-theme-heading-foreground
fg-special-cold blue)
- ,@(modus-operandi-theme-scale
modus-operandi-theme-scale-2)
- ,@(modus-operandi-theme-heading-block blue-nuanced-bg
blue-nuanced))))
- `(outline-4 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-operandi-theme-heading-foreground
fg-special-mild cyan)
- ,@(modus-operandi-theme-scale
modus-operandi-theme-scale-1)
- ,@(modus-operandi-theme-heading-block cyan-nuanced-bg
cyan-nuanced))))
- `(outline-5 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-operandi-theme-heading-foreground
fg-special-calm green-alt-other)
- ,@(modus-operandi-theme-heading-block green-nuanced-bg
green-nuanced))))
- `(outline-6 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-operandi-theme-heading-foreground
yellow-nuanced yellow-alt-other)
- ,@(modus-operandi-theme-heading-block
yellow-nuanced-bg yellow-nuanced))))
- `(outline-7 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-operandi-theme-heading-foreground red-nuanced
red-alt)
- ,@(modus-operandi-theme-heading-block red-nuanced-bg
red-nuanced))))
- `(outline-8 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-operandi-theme-heading-foreground fg-dim
magenta)
- ,@(modus-operandi-theme-heading-block bg-alt fg-alt))))
+ `(outline-1 ((,class ,@(modus-operandi-theme-heading
+ 1 fg-main magenta-alt-other magenta-nuanced-bg
bg-region)
+ ,@(modus-operandi-theme-scale
modus-operandi-theme-scale-4))))
+ `(outline-2 ((,class ,@(modus-operandi-theme-heading
+ 2 fg-special-warm magenta-alt red-nuanced-bg
bg-region)
+ ,@(modus-operandi-theme-scale
modus-operandi-theme-scale-3))))
+ `(outline-3 ((,class ,@(modus-operandi-theme-heading
+ 3 fg-special-cold blue blue-nuanced-bg bg-region)
+ ,@(modus-operandi-theme-scale
modus-operandi-theme-scale-2))))
+ `(outline-4 ((,class ,@(modus-operandi-theme-heading
+ 4 fg-special-mild cyan cyan-nuanced-bg bg-region)
+ ,@(modus-operandi-theme-scale
modus-operandi-theme-scale-1))))
+ `(outline-5 ((,class ,@(modus-operandi-theme-heading
+ 5 fg-special-calm green-alt-other green-nuanced-bg
bg-region))))
+ `(outline-6 ((,class ,@(modus-operandi-theme-heading
+ 6 yellow-nuanced yellow-alt-other yellow-nuanced-bg
bg-region))))
+ `(outline-7 ((,class ,@(modus-operandi-theme-heading
+ 7 red-nuanced red-alt red-nuanced-bg bg-region))))
+ `(outline-8 ((,class ,@(modus-operandi-theme-heading
+ 8 fg-dim magenta bg-alt bg-region))))
;;;;; outline-minor-faces
- `(outline-minor-0 ((,class ,@(unless modus-operandi-theme-section-headings
- (list :background cyan-nuanced-bg)))))
+ `(outline-minor-0 ((,class nil)))
;;;;; package (M-x list-packages)
`(package-description ((,class :foreground ,fg-special-cold)))
`(package-help-section-name ((,class :inherit bold :foreground
,magenta-alt-other)))
diff --git a/modus-vivendi-theme.el b/modus-vivendi-theme.el
index 69398f0..99fc9a7 100644
--- a/modus-vivendi-theme.el
+++ b/modus-vivendi-theme.el
@@ -42,8 +42,7 @@
;; modus-vivendi-theme-slanted-constructs (boolean)
;; modus-vivendi-theme-bold-constructs (boolean)
;; modus-vivendi-theme-variable-pitch-headings (boolean)
-;; modus-vivendi-theme-rainbow-headings (boolean)
-;; modus-vivendi-theme-section-headings (boolean)
+;; modus-vivendi-theme-headings (alist)
;; modus-vivendi-theme-scale-headings (boolean)
;; modus-vivendi-theme-fringes (choice)
;; modus-vivendi-theme-org-blocks (choice)
@@ -447,14 +446,110 @@ between foreground and background is >= 7:1)."
"Use proportional fonts (variable-pitch) in headings."
:type 'boolean)
+(define-obsolete-variable-alias 'modus-vivendi-theme-rainbow-headings
+ 'modus-vivendi-theme-headings "`modus-vivendi-theme' 0.13.0")
+
(defcustom modus-vivendi-theme-rainbow-headings nil
"Use more saturated colours for headings."
:type 'boolean)
+(define-obsolete-variable-alias 'modus-vivendi-theme-section-headings
+ 'modus-vivendi-theme-headings "`modus-vivendi-theme' 0.13.0")
+
(defcustom modus-vivendi-theme-section-headings nil
"Use a background and an overline in headings."
:type 'boolean)
+(defcustom modus-vivendi-theme-headings
+ '((t . nil))
+ "Alist of styles for headings, with optional value per level.
+
+To control faces per level from 1-8, use something like this:
+
+ (setq modus-vivendi-theme-headings
+ '((1 . highlight)
+ (2 . line)
+ (t . rainbow-line-no-bold)))
+
+To set a uniform value for all heading levels, use this pattern:
+
+ (setq modus-vivendi-theme-headings
+ '((t . rainbow-line-no-bold)))
+
+The default uses a fairly desaturated foreground value in
+combination with a bold typographic weight. To specify this
+style for a given level N (assuming you wish to have another
+fallback option), just specify the value t like this:
+
+ (setq modus-vivendi-theme-headings
+ '((1 . t)
+ (2 . line)
+ (t . rainbow-line-no-bold)))
+
+A description of all possible values:
+
++ `no-bold' retains the default text colour while removing
+ the typographic weight.
+
++ `line' is the same as the default plus an overline over the
+ heading.
+
++ `line-no-bold' is the same as `line' without bold weight.
+
++ `rainbow' uses a more colourful foreground in combination
+ with bold weight.
+
++ `rainbow-line' is the same as `rainbow' plus an overline.
+
++ `rainbow-line-no-bold' is the same as `rainbow-line' without
+ the bold weight.
+
++ `highlight' retains the default style of a fairly desaturated
+ foreground combined with a bold weight and add to it a subtle
+ accented background.
+
++ `highlight-no-bold' is the same as `highlight' without a bold
+ weight.
+
++ `rainbow-highlight' is the same as `highlight' but with a more
+ colourful foreground.
+
++ `rainbow-highlight-no-bold' is the same as `rainbow-highlight'
+ without a bold weight.
+
++ `section' retains the default looks and adds to them both an
+ overline and a slightly accented background. It is, in effect,
+ a combination of the `line' and `highlight' values.
+
++ `section-no-bold' is the same as `section' without a bold
+ weight.
+
++ `rainbow-section' is the same as `section' but with a more
+ colourful foreground.
+
++ `rainbow-section-no-bold' is the same as `rainbow-section'
+ without a bold weight."
+ :type
+ '(alist
+ :key-type symbol
+ :value-type
+ (choice (const :tag "Fairly desaturated foreground with bold weight
(default)" t)
+ (const :tag "Like the default without bold weight" no-bold)
+ (const :tag "Like the default plus overline" line)
+ (const :tag "Like `line' without bold weight" line-no-bold)
+ (const :tag "Like the default but with more colourful foreground"
rainbow)
+ (const :tag "Like `rainbow' plus overline" rainbow-line)
+ (const :tag "Like `rainbow' without bold weight" rainbow-no-bold)
+ (const :tag "Like `rainbow-line' without bold weight"
rainbow-line-no-bold)
+ (const :tag "Like the default plus subtle background" highlight)
+ (const :tag "Like `highlight' without bold weight"
highlight-no-bold)
+ (const :tag "Like `highlight' with more colourful foreground"
rainbow-highlight)
+ (const :tag "Like `rainbow-highlight' without bold weight"
rainbow-highlight-no-bold)
+ (const :tag "Like `highlight' plus overline" section)
+ (const :tag "Like `section' without bold weight" section-no-bold)
+ (const :tag "Like `section' with more colourful foreground"
rainbow-section)
+ (const :tag "Like `rainbow-section' without bold weight"
rainbow-section-no-bold))))
+
(defcustom modus-vivendi-theme-scale-headings nil
"Use font scaling for headings."
:type 'boolean)
@@ -735,29 +830,65 @@ FAINT is the less saturated colour."
(list :foreground faint)
(list :foreground normal)))
-(defun modus-vivendi-theme-heading-foreground (subtle rainbow)
- "Apply foreground value to headings.
-SUBTLE is the default aesthetic. RAINBOW is the saturated one."
- (if modus-vivendi-theme-rainbow-headings
- (list :foreground rainbow)
- (list :foreground subtle)))
-
-(defun modus-vivendi-theme-heading-block (bg fg)
- "Conditionally extend heading styles.
-Apply BG to background and FG to overline."
- (if modus-vivendi-theme-section-headings
- (append
- (and (>= emacs-major-version 27) '(:extend t))
- (list :background bg :overline fg))
- (list :background nil :overline nil)))
+(defun modus-vivendi-theme-heading-p (key)
+ "Query style of KEY in `modus-vivendi-theme-headings'."
+ (cdr (assoc key modus-vivendi-theme-headings)))
+
+(defun modus-vivendi-theme-heading (level fg fg-alt bg border)
+ "Conditional styles for `modus-vivendi-theme-headings'.
-(defun modus-vivendi-theme-org-todo-block (bgbox fgbox fg)
- "Conditionally extend the styles of Org keywords.
-BGBOX applies to the background. FGBOX applies to the foreground
-and the border. FG is used when no block style is in effect."
- (if modus-vivendi-theme-section-headings
- (list :background bgbox :foreground fgbox :box (list :color fgbox))
- (list :foreground fg)))
+LEVEL is the heading's position in their order. FG is the
+default text colour. FG-ALT is an accented, more saturated value
+than the default. BG is a nuanced, typically accented,
+background that can work well with either of the foreground
+values. BORDER is a colour value that combines well with the
+background and alternative foreground."
+ (let* ((key (modus-vivendi-theme-heading-p `,level))
+ (style (if key key (modus-vivendi-theme-heading-p t)))
+ (var (if modus-vivendi-theme-variable-pitch-headings
+ 'variable-pitch
+ 'default)))
+ (pcase style
+ ('no-bold
+ (list :inherit `,var :foreground fg))
+ ('line
+ (list :inherit `(bold ,var) :foreground fg :overline border))
+ ('line-no-bold
+ (list :inherit `,var :foreground fg :overline border))
+ ('rainbow
+ (list :inherit `(bold ,var) :foreground fg-alt))
+ ('rainbow-no-bold
+ (list :inherit `,var :foreground fg-alt))
+ ('rainbow-line
+ (list :inherit `(bold ,var) :foreground fg-alt :overline border))
+ ('rainbow-line-no-bold
+ (list :inherit `,var :foreground fg-alt :overline border))
+ ('highlight
+ (list :inherit `(bold ,var) :background bg :foreground fg))
+ ('highlight-no-bold
+ (list :inherit `,var :background bg :foreground fg))
+ ('rainbow-highlight
+ (list :inherit `(bold ,var) :background bg :foreground fg-alt))
+ ('rainbow-highlight-no-bold
+ (list :inherit `,var :background bg :foreground fg-alt))
+ ('section
+ (append
+ (and (>= emacs-major-version 27) '(:extend t))
+ (list :inherit `(bold ,var) :background bg :foreground fg :overline
border)))
+ ('section-no-bold
+ (append
+ (and (>= emacs-major-version 27) '(:extend t))
+ (list :inherit `,var :background bg :foreground fg :overline border)))
+ ('rainbow-section
+ (append
+ (and (>= emacs-major-version 27) '(:extend t))
+ (list :inherit `(bold ,var) :background bg :foreground fg-alt
:overline border)))
+ ('rainbow-section-no-bold
+ (append
+ (and (>= emacs-major-version 27) '(:extend t))
+ (list :inherit `,var :background bg :foreground fg-alt :overline
border)))
+ (_
+ (list :inherit `(bold ,var) :foreground fg)))))
(defun modus-vivendi-theme-org-block (bgblk)
"Conditionally set the background of Org blocks.
@@ -3283,18 +3414,18 @@ Also bind `class' to ((class color) (min-colors 89))."
`(org-agenda-clocking ((,class :inherit modus-theme-special-cold)))
`(org-agenda-column-dateline ((,class :background ,bg-alt)))
`(org-agenda-current-time ((,class :inherit modus-theme-subtle-cyan)))
- `(org-agenda-date ((,class :inherit ,modus-theme-variable-pitch :foreground
,cyan-alt-other
- ,@(modus-vivendi-theme-scale
modus-vivendi-theme-scale-4)
- ,@(modus-vivendi-theme-heading-block
cyan-nuanced-bg cyan-nuanced))))
+ `(org-agenda-date ((,class ,@(modus-vivendi-theme-heading
+ 1 cyan-alt-other cyan-alt-other
cyan-nuanced-bg cyan-nuanced)
+ ,@(modus-vivendi-theme-scale
modus-vivendi-theme-scale-4))))
`(org-agenda-date-today ((,class :inherit (bold ,modus-theme-variable-pitch)
:background ,cyan-intense-bg :foreground
,fg-main
,@(modus-vivendi-theme-scale
modus-vivendi-theme-scale-4))))
- `(org-agenda-date-weekend ((,class :inherit ,modus-theme-variable-pitch
:foreground ,cyan
- ,@(modus-vivendi-theme-scale
modus-vivendi-theme-scale-4)
- ,@(modus-vivendi-theme-heading-block
blue-nuanced-bg cyan-nuanced))))
+ `(org-agenda-date-weekend ((,class ,@(modus-vivendi-theme-heading
+ 1 cyan cyan blue-nuanced-bg
cyan-nuanced)
+ ,@(modus-vivendi-theme-scale
modus-vivendi-theme-scale-4))))
`(org-agenda-diary ((,class :foreground ,fg-main)))
`(org-agenda-dimmed-todo-face ((,class :inherit
modus-theme-subtle-neutral)))
- `(org-agenda-done ((,class ,@(modus-vivendi-theme-org-todo-block
green-nuanced-bg green-nuanced green))))
+ `(org-agenda-done ((,class :foreground ,green-alt)))
`(org-agenda-filter-category ((,class :inherit bold :foreground
,magenta-active)))
`(org-agenda-filter-effort ((,class :inherit bold :foreground
,magenta-active)))
`(org-agenda-filter-regexp ((,class :inherit bold :foreground
,magenta-active)))
@@ -3313,25 +3444,25 @@ Also bind `class' to ((class color) (min-colors 89))."
`(org-block-end-line ((,class :inherit org-block-begin-line)))
`(org-checkbox ((,class :box (:line-width 1 :color ,bg-active)
:background ,bg-inactive :foreground ,fg-active)))
- `(org-checkbox-statistics-done ((,class :foreground ,green
- ,@(modus-vivendi-theme-heading-block
- green-nuanced-bg
green-nuanced))))
- `(org-checkbox-statistics-todo ((,class
,@(modus-vivendi-theme-heading-foreground red-alt red)
- ,@(modus-vivendi-theme-heading-block
- red-nuanced-bg red-nuanced))))
+ `(org-checkbox-statistics-done ((,class :box ,bg-region :background ,bg-dim
+ :foreground ,green
+ :inherit
,modus-theme-variable-pitch)))
+ `(org-checkbox-statistics-todo ((,class :box ,bg-region :background ,bg-dim
+ :foreground ,red-alt
+ :inherit
,modus-theme-variable-pitch)))
`(org-clock-overlay ((,class :inherit modus-theme-special-cold)))
`(org-code ((,class :inherit fixed-pitch :foreground ,magenta)))
`(org-column ((,class :background ,bg-alt)))
`(org-column-title ((,class :inherit bold :underline t :background
,bg-alt)))
`(org-date ((,class :inherit fixed-pitch :foreground ,cyan-alt-other
:underline t)))
`(org-date-selected ((,class :inherit bold :foreground ,blue-alt
:inverse-video t)))
- `(org-default ((,class :background ,bg-main :foreground ,fg-main)))
`(org-document-info ((,class :foreground ,fg-special-cold)))
`(org-document-info-keyword ((,class :inherit fixed-pitch :foreground
,fg-alt)))
`(org-document-title ((,class :inherit (bold ,modus-theme-variable-pitch)
:foreground ,fg-special-cold
,@(modus-vivendi-theme-scale
modus-vivendi-theme-scale-5))))
- `(org-done ((,class ,@(modus-vivendi-theme-org-todo-block green-nuanced-bg
green-nuanced green))))
- `(org-drawer ((,class :foreground ,cyan-alt)))
+ `(org-done ((,class :box ,bg-region :background ,bg-dim :foreground ,green
+ :inherit ,modus-theme-variable-pitch)))
+ `(org-drawer ((,class :inherit ,modus-theme-variable-pitch :foreground
,cyan)))
`(org-ellipsis ((,class :foreground nil))) ; inherits from the heading's
colour
`(org-footnote ((,class :foreground ,blue-alt :underline ,blue-alt)))
`(org-formula ((,class :inherit fixed-pitch :foreground ,red-alt)))
@@ -3343,48 +3474,39 @@ Also bind `class' to ((class color) (min-colors 89))."
`(org-habit-overdue-future-face ((,class :inherit modus-theme-refine-red)))
`(org-habit-ready-face ((,class :inherit modus-theme-intense-blue)))
`(org-habit-ready-future-face ((,class :inherit modus-theme-refine-blue)))
- `(org-headline-done ((,class :foreground ,green-nuanced
- ,@(modus-vivendi-theme-heading-block
- green-nuanced-bg green-nuanced))))
+ `(org-headline-done ((,class :inherit ,modus-theme-variable-pitch
:foreground ,green-nuanced)))
`(org-hide ((,class :foreground ,bg-main)))
`(org-indent ((,class :inherit (fixed-pitch org-hide))))
`(org-latex-and-related ((,class :foreground ,magenta-refine-fg)))
- `(org-level-1 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-vivendi-theme-heading-foreground fg-main
magenta-alt-other)
- ,@(modus-vivendi-theme-scale
modus-vivendi-theme-scale-4)
- ,@(modus-vivendi-theme-heading-block
magenta-nuanced-bg magenta-nuanced))))
- `(org-level-2 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-vivendi-theme-heading-foreground
fg-special-warm magenta-alt)
- ,@(modus-vivendi-theme-scale
modus-vivendi-theme-scale-3)
- ,@(modus-vivendi-theme-heading-block red-nuanced-bg
red-nuanced))))
- `(org-level-3 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-vivendi-theme-heading-foreground
fg-special-cold blue)
- ,@(modus-vivendi-theme-scale
modus-vivendi-theme-scale-2)
- ,@(modus-vivendi-theme-heading-block blue-nuanced-bg
blue-nuanced))))
- `(org-level-4 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-vivendi-theme-heading-foreground
fg-special-mild cyan)
- ,@(modus-vivendi-theme-scale
modus-vivendi-theme-scale-1)
- ,@(modus-vivendi-theme-heading-block cyan-nuanced-bg
cyan-nuanced))))
- `(org-level-5 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-vivendi-theme-heading-foreground
fg-special-calm green-alt-other)
- ,@(modus-vivendi-theme-heading-block
green-nuanced-bg green-nuanced))))
- `(org-level-6 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-vivendi-theme-heading-foreground
yellow-nuanced yellow-alt-other)
- ,@(modus-vivendi-theme-heading-block
yellow-nuanced-bg yellow-nuanced))))
- `(org-level-7 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-vivendi-theme-heading-foreground
red-nuanced red-alt)
- ,@(modus-vivendi-theme-heading-block red-nuanced-bg
red-nuanced))))
- `(org-level-8 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-vivendi-theme-heading-foreground fg-dim
magenta)
- ,@(modus-vivendi-theme-heading-block bg-alt
fg-alt))))
+ `(org-level-1 ((,class ,@(modus-vivendi-theme-heading
+ 1 fg-main magenta-alt-other magenta-nuanced-bg
bg-region)
+ ,@(modus-vivendi-theme-scale
modus-vivendi-theme-scale-4))))
+ `(org-level-2 ((,class ,@(modus-vivendi-theme-heading
+ 2 fg-special-warm magenta-alt red-nuanced-bg
bg-region)
+ ,@(modus-vivendi-theme-scale
modus-vivendi-theme-scale-3))))
+ `(org-level-3 ((,class ,@(modus-vivendi-theme-heading
+ 3 fg-special-cold blue blue-nuanced-bg bg-region)
+ ,@(modus-vivendi-theme-scale
modus-vivendi-theme-scale-2))))
+ `(org-level-4 ((,class ,@(modus-vivendi-theme-heading
+ 4 fg-special-mild cyan cyan-nuanced-bg bg-region)
+ ,@(modus-vivendi-theme-scale
modus-vivendi-theme-scale-1))))
+ `(org-level-5 ((,class ,@(modus-vivendi-theme-heading
+ 5 fg-special-calm green-alt-other
green-nuanced-bg bg-region))))
+ `(org-level-6 ((,class ,@(modus-vivendi-theme-heading
+ 6 yellow-nuanced yellow-alt-other
yellow-nuanced-bg bg-region))))
+ `(org-level-7 ((,class ,@(modus-vivendi-theme-heading
+ 7 red-nuanced red-alt red-nuanced-bg bg-region))))
+ `(org-level-8 ((,class ,@(modus-vivendi-theme-heading
+ 8 fg-dim magenta bg-alt bg-region))))
`(org-link ((,class :inherit link)))
`(org-list-dt ((,class :inherit bold)))
- `(org-macro ((,class :inherit org-latex-and-related)))
+ `(org-macro ((,class :background ,blue-nuanced-bg :foreground
,magenta-alt-other)))
`(org-meta-line ((,class :inherit fixed-pitch :background ,cyan-nuanced-bg
:foreground ,cyan-nuanced)))
`(org-mode-line-clock ((,class :foreground ,fg-main)))
`(org-mode-line-clock-overrun ((,class :inherit modus-theme-active-red)))
- `(org-priority ((,class ,@(modus-vivendi-theme-org-todo-block
magenta-nuanced-bg magenta-nuanced magenta)
- ,@(modus-vivendi-theme-heading-foreground magenta
magenta-alt-other))))
+ `(org-priority ((,class :box ,bg-region :background ,bg-dim :foreground
,magenta
+ :inherit ,modus-theme-variable-pitch)))
+ `(org-property-value ((,class :foreground ,cyan-alt-other)))
`(org-quote ((,class ,@(if modus-vivendi-theme-org-blocks
(append
(and (>= emacs-major-version 27) '(:extend t))
@@ -3395,14 +3517,15 @@ Also bind `class' to ((class color) (min-colors 89))."
`(org-scheduled-previously ((,class :foreground ,yellow-alt-other)))
`(org-scheduled-today ((,class :foreground ,magenta-alt-other)))
`(org-sexp-date ((,class :inherit org-date)))
- `(org-special-keyword ((,class ,@(modus-vivendi-theme-org-todo-block
cyan-nuanced-bg cyan-nuanced cyan-alt))))
+ `(org-special-keyword ((,class :inherit ,modus-theme-variable-pitch
+ :foreground ,blue-nuanced)))
`(org-table ((,class :inherit fixed-pitch :foreground ,fg-special-cold)))
- `(org-tag ((,class ,@(modus-vivendi-theme-bold-weight) :foreground
,magenta-nuanced)))
+ `(org-tag ((,class :foreground ,magenta-nuanced)))
`(org-tag-group ((,class :inherit bold :foreground ,cyan-nuanced)))
`(org-target ((,class :underline t)))
`(org-time-grid ((,class :foreground ,fg-unfocused)))
- `(org-todo ((,class ,@(modus-vivendi-theme-org-todo-block red-nuanced-bg
red-nuanced red-alt)
- ,@(modus-vivendi-theme-heading-foreground red-alt
red))))
+ `(org-todo ((,class :box ,bg-region :background ,bg-dim :foreground ,red-alt
+ :inherit ,modus-theme-variable-pitch)))
`(org-upcoming-deadline ((,class :foreground ,red-alt-other)))
`(org-upcoming-distant-deadline ((,class :foreground ,red-nuanced)))
`(org-verbatim ((,class :inherit fixed-pitch :background ,bg-alt
:foreground ,fg-special-calm)))
@@ -3436,37 +3559,28 @@ Also bind `class' to ((class color) (min-colors 89))."
`(origami-fold-header-face ((,class :background ,bg-dim :foreground ,fg-dim
:box t)))
`(origami-fold-replacement-face ((,class :background ,bg-alt :foreground
,fg-alt)))
;;;;; outline-mode
- `(outline-1 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-vivendi-theme-heading-foreground fg-main
magenta-alt-other)
- ,@(modus-vivendi-theme-scale
modus-vivendi-theme-scale-4)
- ,@(modus-vivendi-theme-heading-block
magenta-nuanced-bg magenta-nuanced))))
- `(outline-2 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-vivendi-theme-heading-foreground
fg-special-warm magenta-alt)
- ,@(modus-vivendi-theme-scale
modus-vivendi-theme-scale-3)
- ,@(modus-vivendi-theme-heading-block red-nuanced-bg
red-nuanced))))
- `(outline-3 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-vivendi-theme-heading-foreground
fg-special-cold blue)
- ,@(modus-vivendi-theme-scale
modus-vivendi-theme-scale-2)
- ,@(modus-vivendi-theme-heading-block blue-nuanced-bg
blue-nuanced))))
- `(outline-4 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-vivendi-theme-heading-foreground
fg-special-mild cyan)
- ,@(modus-vivendi-theme-scale
modus-vivendi-theme-scale-1)
- ,@(modus-vivendi-theme-heading-block cyan-nuanced-bg
cyan-nuanced))))
- `(outline-5 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-vivendi-theme-heading-foreground
fg-special-calm green-alt-other)
- ,@(modus-vivendi-theme-heading-block green-nuanced-bg
green-nuanced))))
- `(outline-6 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-vivendi-theme-heading-foreground
yellow-nuanced yellow-alt-other)
- ,@(modus-vivendi-theme-heading-block yellow-nuanced-bg
yellow-nuanced))))
- `(outline-7 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-vivendi-theme-heading-foreground red-nuanced
red-alt)
- ,@(modus-vivendi-theme-heading-block red-nuanced-bg
red-nuanced))))
- `(outline-8 ((,class :inherit (bold ,modus-theme-variable-pitch)
- ,@(modus-vivendi-theme-heading-foreground fg-dim
magenta)
- ,@(modus-vivendi-theme-heading-block bg-alt fg-alt))))
+ `(outline-1 ((,class ,@(modus-vivendi-theme-heading
+ 1 fg-main magenta-alt-other magenta-nuanced-bg
bg-region)
+ ,@(modus-vivendi-theme-scale
modus-vivendi-theme-scale-4))))
+ `(outline-2 ((,class ,@(modus-vivendi-theme-heading
+ 2 fg-special-warm magenta-alt red-nuanced-bg
bg-region)
+ ,@(modus-vivendi-theme-scale
modus-vivendi-theme-scale-3))))
+ `(outline-3 ((,class ,@(modus-vivendi-theme-heading
+ 3 fg-special-cold blue blue-nuanced-bg bg-region)
+ ,@(modus-vivendi-theme-scale
modus-vivendi-theme-scale-2))))
+ `(outline-4 ((,class ,@(modus-vivendi-theme-heading
+ 4 fg-special-mild cyan cyan-nuanced-bg bg-region)
+ ,@(modus-vivendi-theme-scale
modus-vivendi-theme-scale-1))))
+ `(outline-5 ((,class ,@(modus-vivendi-theme-heading
+ 5 fg-special-calm green-alt-other green-nuanced-bg
bg-region))))
+ `(outline-6 ((,class ,@(modus-vivendi-theme-heading
+ 6 yellow-nuanced yellow-alt-other yellow-nuanced-bg
bg-region))))
+ `(outline-7 ((,class ,@(modus-vivendi-theme-heading
+ 7 red-nuanced red-alt red-nuanced-bg bg-region))))
+ `(outline-8 ((,class ,@(modus-vivendi-theme-heading
+ 8 fg-dim magenta bg-alt bg-region))))
;;;;; outline-minor-faces
- `(outline-minor-0 ((,class ,@(unless modus-vivendi-theme-section-headings
- (list :background cyan-nuanced-bg)))))
+ `(outline-minor-0 ((,class nil)))
;;;;; package (M-x list-packages)
`(package-description ((,class :foreground ,fg-special-cold)))
`(package-help-section-name ((,class :inherit bold :foreground
,magenta-alt-other)))
- [elpa] externals/modus-operandi-theme 6d302de 022/153: Clarify docstring for intense hl line option, (continued)
- [elpa] externals/modus-operandi-theme 6d302de 022/153: Clarify docstring for intense hl line option, Stefan Monnier, 2021/03/18
- [elpa] externals/modus-operandi-theme 88c6446 027/153: Put git-rebase faces in the right place, Stefan Monnier, 2021/03/18
- [elpa] externals/modus-operandi-theme 9c1d5f9 016/153: Add support for eldoc-highlight-function-argument, Stefan Monnier, 2021/03/18
- [elpa] externals/modus-operandi-theme 63db2ad 052/153: Clarify recommended method for scaling headings, Stefan Monnier, 2021/03/18
- [elpa] externals/modus-operandi-theme e8aeccb 026/153: Remove README.org, Stefan Monnier, 2021/03/18
- [elpa] externals/modus-operandi-theme ecf58e3 081/153: Fix inconsistent ':inherit', Stefan Monnier, 2021/03/18
- [elpa] externals/modus-operandi-theme 1c75265 037/153: Add support for binder, Stefan Monnier, 2021/03/18
- [elpa] externals/modus-operandi-theme be587b4 080/153: New custom option to remove underline from links, Stefan Monnier, 2021/03/18
- [elpa] externals/modus-operandi-theme f527ae7 041/153: Let Org tags respect their heading's font weight, Stefan Monnier, 2021/03/18
- [elpa] externals/modus-operandi-theme 863999f 067/153: Make markdown headers scale, Stefan Monnier, 2021/03/18
- [elpa] externals/modus-operandi-theme c9ce126 061/153: Merge branch 'refactor-headings-options' into master,
Stefan Monnier <=
- [elpa] externals/modus-operandi-theme e2b8fc6 074/153: Make Org drawers and their data fixed-pitch, Stefan Monnier, 2021/03/18
- [elpa] externals/modus-operandi-theme b337b07 084/153: Fix indentation, Stefan Monnier, 2021/03/18
- [elpa] externals/modus-operandi-theme 0ef6c44 089/153: Minor comment update, Stefan Monnier, 2021/03/18
- [elpa] externals/modus-operandi-theme 4bc1321 091/153: Use more appropriate colour for vc-edited-state, Stefan Monnier, 2021/03/18
- [elpa] externals/modus-operandi-theme 57e7bed 092/153: Refine "active" palette subset (modeline colours), Stefan Monnier, 2021/03/18
- [elpa] externals/modus-operandi-theme d09ba39 094/153: Use internal function for org-quote styling, Stefan Monnier, 2021/03/18
- [elpa] externals/modus-operandi-theme c01f05e 095/153: New customisation option to disable font mixing, Stefan Monnier, 2021/03/18
- [elpa] externals/modus-operandi-theme b62d948 100/153: Tweak standard VC modeline faces, Stefan Monnier, 2021/03/18
- [elpa] externals/modus-operandi-theme 199bad3 106/153: Use (or x y) instead of (if x x y) in one place, Stefan Monnier, 2021/03/18
- [elpa] externals/modus-operandi-theme 7a211a2 108/153: Use optional link underline more consistently, Stefan Monnier, 2021/03/18