Skip to main content

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

docusaurus.config.ts
ts
presets: [[
  '@cbnventures/docusaurus-preset-nova',
  {
    preset: 'envoy',
    overrides: { /* ... */ },
    plugins: { /* ... */ },
    analytics: { /* ... */ },
    search: { /* ... */ },
    progressBar: true,
    iconSafelist: ['logos:slack'],
    maxBundleFileSize: 3,
  },
]],
OptionTypeDefaultDescription
preset'envoy' | 'foundry' | 'lantern' | 'marshal' | 'sentinel' | 'signal'Which visual preset to use. Required.
overridesobject{}Override individual preset values. See Overrides below.
pluginsobject{}Plugin configuration. See Plugin Options reference.
analyticsobject{}Analytics integrations. See Analytics below.
searchobject | falsefalseSearch configuration. false disables search entirely.
progressBarboolean | objectfalseEnable the NProgress loading bar.
iconSafeliststring[][]Icon names to always bundle. See Icon Safelist below.
maxBundleFileSizenumber | false3Max 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.

OptionTypeDefaultDescription
colors.primary.lightstringPreset valuePrimary brand color in light mode (hex).
colors.primary.darkstringPreset valuePrimary brand color in dark mode (hex).
colors.secondary.lightstringPreset valueSecondary accent color in light mode (hex).
colors.secondary.darkstringPreset valueSecondary accent color in dark mode (hex).
colors.text.lightstringPreset valueBody text color in light mode (hex).
colors.text.darkstringPreset valueBody text color in dark mode (hex).
colors.border.lightstringPreset valueBorder and divider color in light mode (hex).
colors.border.darkstringPreset valueBorder and divider color in dark mode (hex).
colors.warning.lightstringPreset valueWarning admonition base color in light mode (hex).
colors.warning.darkstringPreset valueWarning admonition base color in dark mode (hex).
colors.danger.lightstringPreset valueDanger/error admonition base color in light mode (hex).
colors.danger.darkstringPreset valueDanger/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

OptionTypeDefaultDescription
fonts.displaystringPreset valueDisplay/heading font family name.
fonts.bodystringPreset valueBody text font family name.
fonts.codestringPreset valueCode/monospace font family name.
OptionTypeDefaultDescription
navbar'bridge' | 'canopy' | 'monolith' | 'compass'Preset valueNavbar variant.
footer'commons' | 'embassy' | 'ledger' | 'launchpad'Preset valueFooter variant.

Analytics

OptionTypeDefaultDescription
analytics.gtmobject | undefinedundefinedGoogle Tag Manager configuration.
analytics.gtm.containerIdstringGTM container ID (e.g., 'GTM-XXXXXXX').

See Search for the full options table and explanation.

Progress Bar

OptionTypeDefaultDescription
progressBarboolean | objectfalseSet 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.

docusaurus.config.ts
ts
{
  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.

docusaurus.config.ts
ts
{
  preset: 'envoy',
  maxBundleFileSize: 5, // mebibytes (MiB); or false to disable
}