Preset Options
Full reference for the first argument passed to @cbnventures/docusaurus-preset-nova in docusaurus.config.ts. These options control which preset is active, what overrides are applied, and how plugins behave.
Top-Level Options
presets: [[
'@cbnventures/docusaurus-preset-nova',
{
preset: 'envoy',
overrides: { /* ... */ },
plugins: { /* ... */ },
analytics: { /* ... */ },
search: { /* ... */ },
progressBar: true,
iconSafelist: ['logos:slack'],
maxBundleFileSize: 3,
},
]],
| Option | Type | Default | Description |
|---|---|---|---|
preset | 'envoy' | 'foundry' | 'lantern' | 'marshal' | 'sentinel' | 'signal' | — | Which visual preset to use. Required. |
overrides | object | {} | Override individual preset values. See Overrides below. |
plugins | object | {} | Plugin configuration. See Plugin Options reference. |
analytics | object | {} | Analytics integrations. See Analytics below. |
search | object | false | false | Search configuration. false disables search entirely. |
progressBar | boolean | object | false | Enable the NProgress loading bar. |
iconSafelist | string[] | [] | Icon names to always bundle. See Icon Safelist below. |
maxBundleFileSize | number | false | 3 | Max MiB per JS bundle file. See Bundle Size below. |
Overrides
Override any visual property of the active preset. Unspecified values keep the preset defaults.
Only four override categories are exposed: colors, fonts, navbar, and footer. The preset's shape, depth, and motion characteristics are part of its identity and cannot be overridden — switch to a different preset if you need a different feel.
Colors
Each color category accepts a { light, dark } pair of hex strings. Both keys are optional within each category — omitted values fall back to the active preset's defaults.
| Option | Type | Default | Description |
|---|---|---|---|
colors.primary.light | string | Preset value | Primary brand color in light mode (hex). |
colors.primary.dark | string | Preset value | Primary brand color in dark mode (hex). |
colors.secondary.light | string | Preset value | Secondary accent color in light mode (hex). |
colors.secondary.dark | string | Preset value | Secondary accent color in dark mode (hex). |
colors.text.light | string | Preset value | Body text color in light mode (hex). |
colors.text.dark | string | Preset value | Body text color in dark mode (hex). |
colors.border.light | string | Preset value | Border and divider color in light mode (hex). |
colors.border.dark | string | Preset value | Border and divider color in dark mode (hex). |
colors.warning.light | string | Preset value | Warning admonition base color in light mode (hex). |
colors.warning.dark | string | Preset value | Warning admonition base color in dark mode (hex). |
colors.danger.light | string | Preset value | Danger/error admonition base color in light mode (hex). |
colors.danger.dark | string | Preset value | Danger/error admonition base color in dark mode (hex). |
The primary and secondary colors expand to 11-level shade scales (50 through 950) as CSS custom properties. The text, border, warning, and danger colors are used as single values plus derived color-mix tokens.
Fonts
| Option | Type | Default | Description |
|---|---|---|---|
fonts.display | string | Preset value | Display/heading font family name. |
fonts.body | string | Preset value | Body text font family name. |
fonts.code | string | Preset value | Code/monospace font family name. |
Navbar and Footer
| Option | Type | Default | Description |
|---|---|---|---|
navbar | 'bridge' | 'canopy' | 'monolith' | 'compass' | Preset value | Navbar variant. |
footer | 'commons' | 'embassy' | 'ledger' | 'launchpad' | Preset value | Footer variant. |
Analytics
| Option | Type | Default | Description |
|---|---|---|---|
analytics.gtm | object | undefined | undefined | Google Tag Manager configuration. |
analytics.gtm.containerId | string | — | GTM container ID (e.g., 'GTM-XXXXXXX'). |
Search
See Search for the full options table and explanation.
Progress Bar
| Option | Type | Default | Description |
|---|---|---|---|
progressBar | boolean | object | false | Set to true to enable the NProgress bar. |
Icon Safelist
The preset bundles only the icons it finds by scanning your docs, blog, and src files plus the resolved themeConfig at build time. Any icon referenced with a static prefix:name string — in MDX, component props, or config — is discovered automatically and tree-shaken into the build, so there is nothing to install and the client never ships icons you don't use.
Use iconSafelist for the one case the scan can't see: an icon identifier assembled dynamically at runtime (for example, built from a variable). List those identifiers so they are always bundled.
{
preset: 'envoy',
iconSafelist: ['logos:slack', 'mdi:rocket-launch'],
}
Bundle Size
A production build (docusaurus build) fails if any emitted JavaScript file is larger than maxBundleFileSize mebibytes (MiB) (default 3). This catches a bundle-size regression — an accidentally eager import, an un-tree-shaken dependency — at build time, long before it slows real page loads or trips a host's per-file limit. The error names the offending files.
Raise the limit if a site has a genuinely large legitimate chunk, or set it to false to turn the check off entirely.
{
preset: 'envoy',
maxBundleFileSize: 5, // mebibytes (MiB); or false to disable
}