Org provides the user option org-emphasis-alist which associates a
character with a face, list of faces, or face attributes. The default
specification of that variable looks like this:
(setq org-emphasis-alist
'(("*" bold)
("/" italic)
("_" underline)
("=" org-verbatim verbatim)
("~" org-code verbatim)
("+" (:strike-through t))))
With the exception of org-verbatim and org-code faces, everything else
uses the corresponding type of emphasis: a bold typographic weight, or
italicized, underlined, and struck through text.
The best way for users to add some extra attributes, such as a foreground color, is to define their own faces and assign them to the given emphasis marker/character.
This is a custom face that extends the standard bold face with a red
foreground value (so it colorises the text in addition to the bold
weight):
(defface my-org-emphasis-bold
'((default :inherit bold)
(((class color) (min-colors 88) (background light))
:foreground "#a60000")
(((class color) (min-colors 88) (background dark))
:foreground "#ff8059"))
"My bold emphasis for Org.")
This face definition reads as follows:
bold face (Configure bold and italic faces).
Same principle for how to extend italic and underline with, for example,
green and yellow hues, respectively:
(defface my-org-emphasis-italic
'((default :inherit italic)
(((class color) (min-colors 88) (background light))
:foreground "#005e00")
(((class color) (min-colors 88) (background dark))
:foreground "#44bc44"))
"My italic emphasis for Org.")
(defface my-org-emphasis-underline
'((default :inherit underline)
(((class color) (min-colors 88) (background light))
:foreground "#813e00")
(((class color) (min-colors 88) (background dark))
:foreground "#d0bc00"))
"My underline emphasis for Org.")
In the case of a strike-through effect, we have no generic face to inherit from, so we can write it as follows to also change the foreground to a more subtle gray:
(defface my-org-emphasis-strike-through
'((default :strike-through t)
(((class color) (min-colors 88) (background light))
:foreground "#505050")
(((class color) (min-colors 88) (background dark))
:foreground "#a8a8a8"))
"My strike-through emphasis for Org.")
Or we can just change the color of the line that strikes through the text to, for example, a shade of red:
(defface my-org-emphasis-strike-through
'((((class color) (min-colors 88) (background light))
:strike-through "#972500")
(((class color) (min-colors 88) (background dark))
:strike-through "#ef8b50"))
"My strike-through emphasis for Org.")
It is possible to combine those effects:
(defface my-org-emphasis-strike-through
'((((class color) (min-colors 88) (background light))
:strike-through "#972500" :foreground "#505050")
(((class color) (min-colors 88) (background dark))
:strike-through "#ef8b50" :foreground "#a8a8a8"))
"My strike-through emphasis for Org.")
One may inspect the variables modus-themes-operandi-colors and
modus-themes-vivendi-colors for possible color values. Or call the
command modus-themes-list-colors to show a buffer that previews each
entry in the palette.
Visualize the active Modus theme’s palette.
Once we have defined the faces we need, we must update the
org-emphasis-alist. Given that org-verbatim and org-code are already
styled by the themes, it probably is best not to edit them:
(setq org-emphasis-alist
'(("*" my-org-emphasis-bold)
("/" my-org-emphasis-italic)
("_" my-org-emphasis-underline)
("=" org-verbatim verbatim)
("~" org-code verbatim)
("+" my-org-emphasis-strike-through)))
That’s it! For changes to take effect in already visited Org files, invoke M-x org-mode-restart.