Holds the built-in themes, each one adjusted to the minimums of Expresso.Palette
assets/themes/ holds the base16 schemes of the Tinted Theming project,
unchanged, and assets/themes/LICENSE gives their license. This module reads
each file when it compiles, and Expresso.Palette.adjust/1 changes the
lightness of each color that fails a minimum. The name of a theme is the
name of its file, such as :catppuccin_mocha for catppuccin-mocha.yaml.
A theme is built in only when no color of its adjusted roles moves more than
0.4 in the lightness of OKLab, which is two fifths of the way from black to
white. A larger change gives a color that the reader does not know as a color
of the scheme. The compile stops for a file that needs a larger change. The
comments of a dark scheme need the largest change, because most schemes give
them a low contrast. A comment has little chroma, so it stays a gray of the
scheme.
docs/reference/theme-option.md lists the themes, and the schemes that this
limit leaves out.
The theme :default is the theme of Expresso. It has black text on white,
and its code colors come from the Tango style of Makeup. Tango gives
base0C and base0E the same blue, so base0C is the cyan of the Tango
palette. The roles binder and argument of a β-reduction thus have
different colors.
Summary
Functions
Return the adjusted palette of a built-in theme
Return the largest change of lightness that a built-in theme may need
Return the names of the built-in themes, in alphabetical order
Functions
@spec fetch!(atom()) :: Expresso.Palette.t()
Return the adjusted palette of a built-in theme
iex> Expresso.Palette.Builtin.fetch!(:dracula).name
"Dracula"
@spec limit() :: float()
Return the largest change of lightness that a built-in theme may need
@spec names() :: [atom()]
Return the names of the built-in themes, in alphabetical order