Markdown Overview Buttons Tabs Footnotes Collapse ToC Navigation Formula Page-Specific Meta Custom Components
The color theme of your CODEDOC project is specified in .codedoc/theme.ts
:
1linkimport { createTheme } from '@codedoc/core/transport';
2link
3link
4linkexport const theme = /*#__PURE__*/createTheme({
5link light: { // --> color scheme for contenttecoxt in light-mode
6link primary: '#1eb2a6' // --> the primary color in light-mode (for links, buttons, etc.)
7link },
8link dark: { // --> color scheme for content in dark-mode
9link primary: '#1eb2a6' // --> the primary color in dark-mode (for links, buttons, etc.)
10link }
11link});
The object passed to createTheme()
method must be a ThemeExtension
object:
1linkexport interface ThemeExtension {
2link light?: Partial<ContentTheme>; // --> color scheme of content in light-mode
3link dark?: Partial<ContentTheme>; // --> color scheme of content in dark-mode
4link code?: { // @see #code-colors
5link wmbar?: boolean; // --> whether to display the top-bar of a code snippet
6link light?: Partial<CodeTheme>; // --> color scheme of code in light-mode
7link dark?: Partial<CodeTheme>; // --> color scheme of code in dark-mode
8link },
9link quote?: { // @see #quote-colors
10link light?: Partial<QuoteTheme>, // --> color scheme of quote blocks in light mode
11link dark?: Partial<QuoteTheme>, // --> color scheme of quote blocks in dark mode
12link },
13link toc?: { // @see #table-of-contents-colors
14link light?: Partial<ToCTheme>, // --> color scheme of toc in light mode
15link dark?: Partial<ToCTheme>, // --> color scheme of toc in dark mode
16link }
17link}
Color scheme of the content, i.e. texts, page background, buttons, etc. is determined via ContentTheme
objects:
1linkexport interface ContentTheme {
2link background: string; // --> CSS color string, background of the page
3link text: string; // --> CSS color string, color of text
4link primary: string; // --> CSS color string, primary color (for buttons, links, etc)
5link primaryContrast: string; // --> CSS color string, text color on primary background (e.g. buttons)
6link border: string; // --> CSS color string, border colors
7link code: string // --> CSS color string, in-text code color
8link}
You can specify any of these properties for either dark mode or light mode. Each specified property should be a valid CSS color string.
1linkexport const theme = /*#__PURE__*/createTheme({
2link light: {
3link primary: 'red',
4link background: 'rgb(240, 240, 240)',
5link text: '#616161',
6link },
7link dark: {
8link primary: '#1eb2a6'
9link }
10link});
The primaryContrast
property is an exception from said rule, as it can also have the special value "deduce"
(which is in-fact its default value). primaryContrast
will be used for text that is rendered on elements
whose background is of the primary
color. If its value is "deduce"
, then it will be either white
or black
depending on the luminosity of primary
color itself.
Color scheme of code snippets can be specified via the code
property of a ThemeExtension
object:
1linkimport {
2link createTheme,
3link DefaultCodeThemeLight,
4link} from '@codedoc/core/transport';
5link
6link
7linkexport const theme = /*#__PURE__*/createTheme({
8link light: {
9link primary: '#1eb2a6',
10link },
11link dark: {
12link primary: '#1eb2a6'
13link },
14link code: {
15link wmbar: false, // --> disable the top-bar by default
16link light: DefaultCodeThemeLight, // --> use the default light code theme in light-mode
17link },
18link});
The wmbar
property specifies whether the top-bar of code-snippets should be displayed (the little bar
with 3 dots and sometimes a filename). This bar is never displayed on code snippets that are only one line,
and is always displayed on code snippets that have a file name. The wmbar
property determines
the default behavior for other cases, though that can also be overriden for each specific snippet.
The light
and dark
properties must be CodeTheme
objects. This object determines the colors of
various syntax elements within code snippets. CODEDOC itself comes with two code theme presets,
DefaultCodeTheme
and DefaultCodeThemeLight
(the latter is not used by default). Provided values
for these two properties must be partials of CodeTheme
interface:
1linkexport interface CodeTheme {
2link background: string; // --> CSS color string, background of the snippet
3link text: string; // --> CSS color string, default text color
4link shadow: string; // --> CSS box-shadow string, shadow around a snippet
5link
6link lineHover: string; // --> CSS color string, background of a hovered line
7link lineHighlight: string; // --> CSS color string, background of a highlighted line
8link lineHighlightAdded: string; // --> CSS color string, background of a highlighted "Added" line
9link lineHighlightAddedIndicator: string; // --> CSS color string, color of the "+" sign on "Added" lines
10link lineHighlightRemoved: string; // --> CSS color string, background of a highlighted "Removed" line
11link lineHighlightRemovedIndicator: string;// --> CSS color string, color of the "-" sign on "Removed" lines
12link lineHighlightText: string; // --> CSS color string, default text color of a highlighted line
13link lineCounter: string; // --> CSS color string, color of line counters
14link lineCounterBorder: string; // --> CSS color string, color of the line counter border
15link lineCounterBorderHover: string; // --> CSS color string, color of the line counter border in a hovered line
16link lineCounterHighlight: string; // --> CSS color string, color of line counter in a highlighted line
17link errorUnderline: string; // --> CSS color string, color of wavy underline for "error" parts
18link warningUnderline: string; // --> CSS color string, color of wavy underline for "warning" parts
19link
20link terminalPrefix: string; // --> CSS color string, color of terminal prefix
21link terminalOutput: string; // --> CSS color string, color of terminal output
22link terminalOutputBackground: string; // --> CSS color string, background for terminal output
23link
24link keyword: string; // --> CSS color string, color of keywords, e.g. `import`, `return`, etc.
25link boolean: string; // --> CSS color string, color of boolean values
26link number: string; // --> CSS color string, color of numeric values
27link string: string; // --> CSS color string, color of string literals
28link function: string; // --> CSS color string, color of function tokens
29link parameter: string; // --> CSS color string, color of function parameters
30link tag: string; // --> CSS color string, color of HTML, JSX and TSX tags
31link comment: string; // --> CSS color string, color of comments
32link operator: string; // --> CSS color string, color of operators
33link punctuation: string; // --> CSS color string, color of punctuation tokens
34link builtin: string; // --> CSS color string, color of builtin values
35link className: string; // --> CSS color string, color of tag class names (HTML/JSX/TSX)
36link attrName: string; // --> CSS color string, color of tag attribute names (HTML/JSX/TSX)
37link attrValue: string; // --> CSS color string, color of tag attribute values (HTML/JSX/TSX)
38link plainText: string; // --> CSS color string, color of plain text in HTML/JSX/TSX tags
39link script: string; // --> CSS color string, color of script tokens
40link placeholder: string; // --> CSS color string, color of sass placeholders
41link selector: string; // --> CSS color string, color of css selectors
42link property: string; // --> CSS color string, color of css properties
43link important: string; // --> CSS color string, color of `important!` keyword
44link cssfunc: string; // --> CSS color string, color of css functions
45link}
The quote
property of a ThemeExtension
object specifies color scheme for block quotes, via its light
property
for light-mode and via its dark
property for dark mode. If provided, any of these two properties must be
a partial of QuoteTheme
interface:
1linkexport interface QuoteTheme {
2link background: string; // --> CSS color string, background of block-quotes
3link text: string; // --> CSS color string, text color of block-quotes
4link border: string; // --> CSS color string, border color for block-quotes
5link}
The toc
property of a ThemeExtension
object specifies color scheme for the table of contents, via its light
and dark
properties respectively for light mode and dark mode. If provided, any of these two properties must
be a partial of ToCTheme
:
1linkexport interface ToCTheme {
2link background: string; // --> CSS color string, background of ToC
3link border: string; // --> CSS color string, border of ToC
4link}