Docs Layout

The layout of documentation

The layout of documentation pages, it includes a sidebar and a navigation header.

It is a server component, you should not reference it in a client component.

Usage

Pass your page tree to the component.

import { DocsLayout } from 'fumadocs-ui/layout';
 
export default function Layout({ children }) {
  return <DocsLayout tree={tree}>{children}</DocsLayout>;
}

The navigation header provides common interactive elements.

On larger devices, it becomes a part of sidebar.

<DocsLayout
  nav={{ title: <Logo />, githubUrl: 'https://github.com/fuma-nama/fumadocs' }}
/>
PropTypeDefault
enabled
boolean
-
component
ReactNode
-
title
ReactNode
-
children
ReactNode
-
url
string
'/'
enableSearch
boolean
-
transparentMode
"always" | "top" | "none"
none

Provide elements to navigate between pages.

<DocsLayout sidebar={{ footer: <ShareButton /> }} />
PropTypeDefault
enabled
boolean
-
component
ReactNode
-
collapsible
boolean
-
footer
ReactNode
-
defaultOpenLevel
number
1
components
Partial<Components>
-
banner
ReactNode
-
bannerProps
HTMLAttributes<HTMLDivElement>
-
footerProps
HTMLAttributes<HTMLDivElement>
-

Disable Sidebar from Pages

This is not supported. Due to the limitations of App Router, layouts are not re-rendered when navigating between pages. It is an anti-pattern to change your layout from a page.

You can consider:

  1. Disable sidebar from the entire layout.
  2. Create a MDX Page in a layout that doesn't contain a sidebar.

Last updated on

On this page

Edit on Github