Basically this defines the 'modus-themes-color' function that lets you
retrieve the colour value assigned to KEY. The key is found in the
association list that contains each theme's colour palette.
Example for how to use this:
(set-face-attribute 'cursor nil :background (modus-themes-color 'blue))
Ongoing discussion in the Modus themes' main repo:
https://gitlab.com/protesilaos/modus-themes/-/issues/119
I have come to the realisation that we are facing a trade-off: either we
allow users to override the colour palette of each theme OR we let the
themes byte compile properly. I am strongly in favour of the latter and
have thus rendered obsolete the relevant customisation option to
override the themes' colours.
Please note that this conclusion is predicated on the knowledge I have
accummulated thus far. I may be wrong and I do not purport to be an
expert. If someone can show me how to both byte compile the themes AND
offer a user-facing variable to override individual colours, then please
let me know---I am happy to follow your guidance.
Read the info node (evaluate the following):
(info "(elisp) Eval")
... to get the value of a variable, while ‘eval’ works,
‘symbol-value’ is preferable ...
Evaluate this:
(info "(elisp) Compiling Macros")
Byte-compiling a file also executes any ‘require’ calls at top-level
in the file, so you can ensure that necessary macro definitions are
available during compilation by requiring the files that define
them (*note Named Features::). To avoid loading the macro
definition files when someone _runs_ the compiled program, write
‘eval-when-compile’ around the ‘require’ calls (*note Eval During
Compile::).