Hello World
Your first document
Welcome to the docs! You can start writing documents in /content/docs.
What is Next?
Runs on Next.js · React Router · TanStack Start · Waku · Astro
Create your first docs site.
npm i fumadocs-ui fumadocs-coreimport { } from '@/lib/source';
.getP- getPageTree
- getPageByHref
- getPages
- getPage
- getPageByUrl
;
export interface ButtonProps {
/** The text inside the button. */
label: string;
/** Renders a link instead. */
href?: string;
/** @deprecated Use `className`. */
color?: string;
/** Called when it is pressed. */
onPress?: () => void;
}button.tsx
Deprecates color, use className.
Adds href, to render a link.
Deprecates color, use className.
Adds href, to render a link.
Prop
Type
Prop
Type
# Button
A button, or a link with href.
## Props
- label: string: The text inside the button.
- href?: string: Renders a link instead.
- color?: string:
- onPress?: function: Called when it is pressed.# Button A button, or a link with href. ## Props - label: string: The text inside the button. - href?: string: Renders a link instead. - color?: string, deprecated: Use className. - onPress?: function: Called when it is pressed.
Button
A button, or a link with href.
export interface ButtonProps {
/** The text inside the button. */
label: string;
/** Renders a link instead. */
href?: string;
color?: string;
/** Called when it is pressed. */
onPress?: () => void;
}Button
A button, or a link with href.
export interface ButtonProps {
/** The text inside the button. */
label: string;
/** Renders a link instead. */
href?: string;
/** @deprecated Use `className`. */
color?: string;
/** Called when it is pressed. */
onPress?: () => void;
}UILayouts and components
CoreSearch, page tree, TOC and i18nfixed
ContentWhere your pages come from
FrameworkWhat your docs run on
ZBSearch built in, or Algolia and more.
API pages and a playground from your spec.
Ask AI, answered from your docs.
Every page as Markdown for AI agents.
Localized routes, page trees and UI text.
npx @fumadocs/cli customizenpx @fumadocs/cli add banner filesfumadocs-ui16.17.9
fumadocs.dev/registry
29filesfiles
4filesfiles
My App
My App
Search
Your first document
Welcome to the docs! You can start writing documents in /content/docs.
What is Next?
On this page
What is Next?
My App
My App
Search
Your first document
Welcome to the docs! You can start writing documents in /content/docs.
What is Next?
On this page
What is Next?
import { source } from '@/lib/source';import { DocsLayout } from 'fumadocs-ui/layouts/docs';import { DocsLayout } from '@/layouts/docs';import { DocsLayout } from '@/layouts/docs';import { baseOptions } from '@/lib/layout.shared';export default function Layout({ children }: LayoutProps<'/docs'>) {return (<DocsLayout tree={source.getPageTree()} {...baseOptions()}>{children}</DocsLayout>);}import { source } from '@/lib/source';import {DocsBody,DocsDescription,DocsPage,DocsTitle,MarkdownCopyButton,ViewOptionsPopover,} from 'fumadocs-ui/layouts/docs/page';} from '@/layouts/docs/page';} from '@/layouts/docs/page';import { notFound } from 'next/navigation';export function DocsTitle({ children, className, ...props }: ComponentProps<'h1'>) {return (<h1 {...props} className={cn('text-[1.75em] font-semibold', className)}><h1 {...props} className={cn('text-[2.5em] font-semibold', className)}><h1 {...props} className={cn('text-[2.5em] font-semibold', className)}>{children}</h1>);}My App
My App
Search
Your first document
Welcome to the docs! You can start writing documents in /content/docs.
What is Next?
On this page
What is Next?
My App
My App
Search
Your first document
Welcome to the docs! You can start writing documents in /content/docs.
What is Next?
On this page
What is Next?
import { type HTMLAttributes, useEffect, useState } from 'react';import { X } from 'lucide-react';import { cn } from '@/utils/cn';import { cn } from '../lib/cn';import { cn } from '../lib/cn';import { buttonVariants } from '@/components/ui/button';import { buttonVariants } from './ui/button';import { buttonVariants } from './ui/button';import { useTranslations } from '@fuma-translate/react';variant === 'normal' && 'bg-fd-secondary',variant === 'normal' && 'bg-fd-primary text-fd-primary-foreground',variant === 'normal' && 'bg-fd-primary text-fd-primary-foreground',variant === 'rainbow' && 'bg-fd-background',!open && 'hidden',import { cva } from 'class-variance-authority';import { FileIcon, FolderIcon, FolderOpen } from 'lucide-react';import { type HTMLAttributes, type ReactNode, useState } from 'react';import { cn } from '@/utils/cn';import { cn } from '../lib/cn';import { cn } from '../lib/cn';import { Collapsible, CollapsibleContent, CollapsibleTrigger } from './ui/collapsible';Fumadocs powers the docs of its open source SDKs.
“You know how you end up rebuilding a full docs site every time you start a new project? Fumadocs fixes this by giving you all the right blocks that you compose together. Like headless docs to build exactly what you need.”
“I'd have no shot building @arktypeio docs that looked half this good without it 😍”
“fumadocs is the best Next.js docs framework”
“Major shoutout to @fuma_nama for making fumadocs, a gorgeous documentation framework that composes beautifully into the App Router.”
ready