Customize
All Fumadocs options Every Fumadocs customization option and where to set it in OrbitDocs, in the config, in lib/overrides.tsx, or in a docs app file.
OrbitDocs guides are a Fumadocs site. Options that are plain data (text, numbers, switches) have a key in orbitdocs.config.ts. Options that take React (components, elements, functions) go in lib/overrides.tsx of the docs app, which every layout and page in app/ reads. A few are set elsewhere in the docs app, because that app is yours.
How to read the tables:
Config : a key in orbitdocs.config.ts.
Override : a key of the overrides object in lib/overrides.tsx (root, layout or page), merged over the config. See Override React-only options .
App file : change the named file in the docs app.
Content : meta.json, frontmatter or code fence meta.
import type { OrbitOverrides } from '@orbitdocs/next' ;
export const overrides : OrbitOverrides = {
root: {}, // RootProvider: search dialog, theme, banner content
layout: {}, // Every layout and the top bar: nav, links, slots, sidebar, tabs
page: {}, // Guide pages: TOC header and footer, previous / next, page slots
};
Fumadocs option Where Key or prop Layout (docs, notebook, flux, glass, home) Config layout.type. See Layouts .Notebook navbar mode (nav.mode) Config layout.navModeTransparent navbar (nav.transparentMode) Config layout.transparentNavNav title Config site.logo or site.title. See Branding .Nav title URL (nav.url) Config navigation.titleUrlCustom nav title (nav.title, nav.children) Override layout.navLinks: main, icon, button, menu Config navigation.header. See Navigation bar .Link on (navbar or mobile menu) Config on: 'nav' | 'menu' | 'all' on a header itemLink active matching Config active: 'url' | 'nested-url' | 'none' on a header itemCustom link items (type: 'custom') Override layout.links (an array is added after the config's; a function returns the final list)GitHub link (githubUrl) Config site.githubTheme switch on/off and mode Config theme.switch.enabled, theme.switch.modeSearch button (searchToggle) Config search.enabled; its props in layout.searchToggle (Override)Layout slots (navTitle, themeSwitch, searchTrigger, sidebar, header, …) Override layout.slotscontainerPropsOverride layout.containerProps (docs, notebook, flux)
Fumadocs option Where Key or prop sidebar.enabledConfig layout.sidebar.enabled (every layout; notebook and glass through sidebar slots)sidebar.collapsibleConfig layout.sidebar.collapsiblesidebar.defaultOpenLevelConfig layout.sidebar.defaultOpenLevelsidebar.prefetchConfig layout.sidebar.prefetchsidebar.bannerConfig / Override layout.sidebar.banner (text), or layout.sidebar.banner in overrides (React)sidebar.footerConfig / Override navigation.sidebar links, or layout.sidebar.footer in overrides (React)sidebar.components (custom page tree items)Override layout.sidebar.componentsRoot folders as tabs ("root": true) Content meta.json. See Sidebar .tabModeConfig layout.tabModetabs (a custom list, or none)Config layout.tabs (false or a list of { title, url, description, icon })tabs with React icons, or { transform }Override layout.tabsPage tree order, separators, icons Content meta.json and frontmatter. See Navigation .
The glass layout's sidebar takes no banner, footer or components.
Page Copy Anchor Link
Fumadocs option Where Key or prop fullConfig layout.full, or full: true in a page's frontmatterBreadcrumb enabled, includeRoot, includePage, includeSeparator Config layout.breadcrumbFooter (previous / next) Config layout.footerFooter items (custom previous / next) Override page.footer.items; page can be a function of the pageLast updated Config layout.lastUpdated (from git)Edit on GitHub Config layout.editOnGithubPage actions (copy Markdown, open in ChatGPT / Claude) Config layout.pageActions. OrbitDocs uses its own buttons.Fumadocs ViewOptionsPopover / MarkdownCopyButton Not used Replaced by layout.pageActions Page slots (container, footer, breadcrumb, toc) Override page.slots
Fumadocs option Where Key or prop tableOfContent.enabled (and the mobile popover)Config layout.toc.enabledstyle: normal, clerk, blockConfig layout.toc.style (default clerk). See Table of contents .singleConfig layout.toc.singleTOC header / footer content Override page.tableOfContent, page.tableOfContentPopoverTOC style and single in the glass layout Not possible Glass's page takes no TOC style or single option (Fumadocs 16.15); orbitdocs check warns Inline TOC (InlineTOC) App file Register it. See MDX components .
Fumadocs option Where Key or prop Color presets (neutral, black, vitepress, dusk, catppuccin, ocean, purple, solar, emerald, ruby, aspen, shadcn) Config theme.preset. See Themes and colors .Primary color Config theme.accentAny --color-fd-* color App file app/global.cssLayout widths (--fd-layout-width, --fd-sidebar-width, --fd-toc-width) Config theme.widthsDefault theme, system theme Config theme.defaultModeTheme hotkey (D toggles light and dark) Config theme.hotKey (one key, or false)Other next-themes options Override root.themeFonts App file app/layout.tsx and app/global.css. See Branding .RTL (dir="rtl") Config site.dir (sets <html dir> and Fumadocs' dir)Favicon Config site.favicon (default public/icon.png)
Fumadocs option Where Key or prop Enable search Config search.enabledHotkey Config search.hotKey (one key)Suggested links Config search.linksdelayMsConfig search.delayMsTags and tag filters, allowClear Config search.tags (Guides and one per API), search.allowClearStatic (Orama) search Built in app/api/search/route.tsDialog footer, other dialog props Override root.search.optionsAlgolia, Orama Cloud, server-side search (SearchDialog) Override root.search.SearchDialog, plus the index it needs. See Search .
Fumadocs option Where Key or prop Banner content and link Config banner.content, banner.urlReact content Override root.bannervariant (normal, rainbow)Config banner.variantDismissible id Config banner.id, banner.dismissibleheight, rainbowColors, changeLayoutConfig banner.height, banner.rainbowColors, banner.changeLayout (default true)
Fumadocs option Where Key or prop Titles, language icons, tab, lineNumbers, noCopy, notation comments, npm tabs Content Code fence meta. See Code blocks . Shiki themes, default language Config codeBlocks.themes, codeBlocks.defaultLanguageOther rehypeCodeOptions (langs, langAlias, transformers, …) App file orbitMdxOptions({ rehypeCodeOptions }) in lib/source.ts, merged over codeBlocksRemark and rehype plugins (math, Mermaid, admonitions, Twoslash) App file orbitMdxOptions({ remarkPlugins, rehypePlugins }) in lib/source.ts. See Add MDX plugins .Heading anchors and custom ids ([#id]) Built in Default MDX components (callouts, cards, steps, tabs, accordions, type table) Built in See MDX components . Files, ImageZoom, InlineTOC, GithubInfo, DynamicCodeBlockApp file Register in app/(guides)/[...slug]/page.tsx Tabs groupId, persist, updateAnchor Content Props on <Tabs>
Internationalization (i18n) : one language per site. There is no language switch and no translated routes.
Open Graph images (fumadocs-ui/og) and a sitemap .
TOC style and single in the glass layout (Fumadocs' glass page has no such options).