Files
docs/packages/radix-ui/CHANGELOG.md
github-actions[bot]GitHubgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
756384341b Version Packages (#3324)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-05-29 19:49:33 +08:00

88 KiB

fumadocs-ui

16.9.3

Patch Changes

16.9.2

Patch Changes

16.9.1

Patch Changes

16.9.0

Minor Changes

  • 214d5b0: Introduce new translations API

Patch Changes

16.8.12

Patch Changes

16.8.11

Patch Changes

16.8.10

Patch Changes

16.8.9

Patch Changes

16.8.8

Patch Changes

16.8.7

Patch Changes

16.8.6

Patch Changes

16.8.5

Patch Changes

16.8.4

Patch Changes

16.8.3

Patch Changes

16.8.2

Patch Changes

16.8.1

Patch Changes

16.8.0

Patch Changes

16.7.16

Patch Changes

16.7.15

Patch Changes

16.7.14

Patch Changes

16.7.13

Patch Changes

16.7.12

Patch Changes

16.7.11

Patch Changes

16.7.10

Patch Changes

16.7.9

Patch Changes

16.7.8

Patch Changes

16.7.7

Patch Changes

16.7.6

Patch Changes

16.7.5

Patch Changes

16.7.4

Patch Changes

16.7.3

Patch Changes

16.7.2

Patch Changes

16.7.1

Patch Changes

16.7.0

Minor Changes

  • 8bdee70: Implement renderer API for replacing layout components, deprecate old options
  • bdffeba: Improved defineI18nUI() usage: allow language translations to be defined at root config.
  • f45d703: stabilize Shiki factory API

Patch Changes

16.6.17

Patch Changes

16.6.16

Patch Changes

16.6.15

Patch Changes

16.6.14

Patch Changes

16.6.13

Patch Changes

16.6.12

Patch Changes

16.6.11

Patch Changes

16.6.10

Patch Changes

16.6.9

Patch Changes

  • 0aad574: fix: reverse sidebar chevron direction for RTL layouts

    In RTL mode, the ChevronDown icon in collapsed sidebar folders was incorrectly pointing to the right (via -rotate-90). Added rtl:rotate-90 so the icon points to the left when the folder is collapsed, matching the expected RTL reading direction.

  • 6a7725b: fix: use logical CSS properties in Steps component for RTL support

  • 7a61fa5: Support codeblock.rsc API for server-side codeblocks

  • Updated dependencies [4d05c4e]

  • Updated dependencies [5f687b6]

16.6.8

Patch Changes

16.6.7

Patch Changes

16.6.6

Patch Changes

16.6.5

Patch Changes

16.6.4

Patch Changes

16.6.3

Patch Changes

16.6.2

Patch Changes

16.6.1

Patch Changes

16.6.0

Minor Changes

  • 9241992: Support Markdown in search results

    This deprecates the old contentWithHighlights field in search results, the highlights are marked with Markdown instead (e.g. Hello <mark>World</mark>).

Patch Changes

16.5.4

Patch Changes

16.5.3

Patch Changes

16.5.2

Patch Changes

16.5.1

Patch Changes

16.5.0

Minor Changes

  • 9ba1250: Support Universal Shiki configuration

Patch Changes

16.4.11

Patch Changes

16.4.10

Patch Changes

16.4.9

Patch Changes

16.4.8

Patch Changes

16.4.7

Patch Changes

16.4.6

Patch Changes

16.4.5

Patch Changes

16.4.4

Patch Changes

16.4.3

Patch Changes

16.4.2

Patch Changes

16.4.1

Patch Changes

16.4.0

Patch Changes

16.3.2

Patch Changes

16.3.1

Patch Changes

16.3.0

Minor Changes

  • a69b060: Support both Base UI and Radix UI as base component libraries

Patch Changes

16.2.5

Patch Changes

16.2.4

Patch Changes

16.2.3

Patch Changes

16.2.2

Patch Changes

16.2.1

Patch Changes

16.2.0

Minor Changes

  • 80579fd: No longer expose layout components

    This includes Root Toggle, Language Toggle, Theme Toggle etc.

    It allows Fumadocs UI to change these components without introducing breaking changes over existing customizations.

    If you're using the removed components, consider overriding the layout components with yours, or use Fumadocs CLI add/customize command.

  • a9f4eda: Require importing page layout according to your docs layout

    // for docs layout
    import { DocsPage } from "fumadocs-ui/layouts/docs/page";
    
    // for notebook layout
    import { DocsPage } from "fumadocs-ui/layouts/notebook/page";
    

    While the default fumadocs-ui/page will redirect to the correct layout, we highly recommend you to update the import.

  • 5d65002: Remove container styles, this includes --spacing-fd-container as they are no longer used.

  • 9a39883: Move Sidebar context into docs layouts

    fumadocs-ui/contexts/sidebar is removed, you can still reference the context with:

    import { useSidebar } from "fumadocs-ui/components/sidebar/base";
    

    Make sure you're only accessing it in <DocsLayout />.

Patch Changes

16.1.0

Patch Changes

16.0.15

Patch Changes

16.0.14

Patch Changes

16.0.13

Patch Changes

16.0.12

Patch Changes

16.0.11

Patch Changes

16.0.10

Patch Changes

  • 112e8d9: Support CalloutContainer, CalloutTitle and CalloutDescription components.

    They're now MDX components included by default.

  • Updated dependencies [733b01e]

16.0.9

Patch Changes

16.0.8

Patch Changes

16.0.7

Patch Changes

16.0.6

Patch Changes

16.0.5

Patch Changes

16.0.4

Patch Changes

16.0.3

Patch Changes

16.0.2

Patch Changes

16.0.1

Patch Changes

16.0.0

Major Changes

  • 0ed0ca6: Change --fd-layout-width to 1600px by default

    This will change the max layout width to 1600px, you can still change it back with:

    :root {
      --fd-layout-width: 100vw;
    }
    
  • 5210f18: Set minimal React.js version to 19.2.0

    19.2 has multiple crucial updates that can improve Fumadocs' performance, and it should work seamlessly on mainstream React.js frameworks.

    As a consequence, Next.js 16 is now the minimal version when using Fumadocs UI because Next.js always uses the internal canary version of React.js.

  • 42f09c3: Remove deprecated APIs

    • fumadocs-ui/page:
      • removed <DocsCategory />.
      • removed breadcrumbs.full option from <DocsPage />.
    • fumadocs-core/search/algolia: renamed option document to indexName.
    • fumadocs-core/search:
      • remove deprecated signature of createFromSource(): migrate to newer usage instead.
        export function createFromSource<S extends LoaderOutput<LoaderConfig>>(
          source: S,
          pageToIndexFn?: (page: InferPageType<S>) => Awaitable<AdvancedIndex>,
          options?: Omit<Options<S>, "buildIndex">,
        ): SearchAPI;
        
      • remove deprecated parameters in useSearch(), pass them in the client object instead.
    • fumadocs-core/highlight: remove deprecated withPrerenderScript and loading options from useShiki().
    • fumadocs-core/i18n: removed createI18nMiddleware, import from fumadocs-core/i18n/middleware instead.
    • fumadocs-core/source:
      • removed deprecated transformers, pageTree.attach* options from loader().
      • removed deprecated page.file property.
      • removed FileInfo & parseFilePath utilities.

Patch Changes

  • 1494340: Drop fumadocs-core/hide-if-empty usage, prefer user-side component overrides for precise control
  • de0ce6d: Add a toc-title ID to the table of contents heading for styling purposes
  • 5966e23: Fix root toggle overflow
  • Updated dependencies [230c6bf]
  • Updated dependencies [851897c]
  • Updated dependencies [4049ccc]
  • Updated dependencies [429c41a]
  • Updated dependencies [5210f18]
  • Updated dependencies [cbc93e9]
  • Updated dependencies [42f09c3]
  • Updated dependencies [55afd8a]

15.8.4

Patch Changes

15.8.3

Patch Changes

15.8.2

Patch Changes

  • 90cf1fe: Support tabMode on <DocsLayout />

  • 6c3bde5: Prefer importing <RootProvider /> from fumadocs-ui/provider/<framework>

    • Old fumadocs-ui/provider will be kept, as it's used by majority of previous projects.
    • New guides & templates will follow the new recommendation.
  • Updated dependencies [ad9a004]

  • Updated dependencies [90cf1fe]

  • Updated dependencies [747bdbc]

15.8.1

Patch Changes

15.8.0

Patch Changes

15.7.13

Patch Changes

15.7.12

Patch Changes

15.7.11

Patch Changes

15.7.10

Patch Changes

15.7.9

Patch Changes

15.7.8

Patch Changes

  • ba3382f: Support link item properties in menu items
  • efba995: Enforce the use of --removed-body-scroll-bar-size to fixed elements
  • bec3b36: Use on-root: to apply CSS variables from child layout components
  • Updated dependencies [f65778d]
  • Updated dependencies [e4c12a3]

15.7.7

Patch Changes

15.7.6

Patch Changes

15.7.5

Patch Changes

15.7.4

Patch Changes

15.7.3

Patch Changes

15.7.2

Patch Changes

15.7.1

Patch Changes

15.7.0

Minor Changes

  • e785f98: Introduce page tree fallback API

    Page tree is a tree structure.

    Previously, when an item is excluded from page tree, it is isolated entirely that you cannot display it at all.

    With the new fallback API, isolated pages will go into fallback page tree instead:

    {
      "children": [
        {
          "type": "page",
          "name": "Introduction"
        }
      ],
      "fallback": {
        "children": [
          {
            "type": "page",
            "name": "Hidden Page"
          }
        ]
      }
    }
    

    Items in fallback are invisible unless you've opened its item.

  • 50eb07f: Support type-safe i18n config

    // lib/source.ts
    import { defineI18n } from "fumadocs-core/i18n";
    
    export const i18n = defineI18n({
      defaultLanguage: "en",
      languages: ["en", "cn"],
    });
    
    // root layout
    import { defineI18nUI } from "fumadocs-ui/i18n";
    import { i18n } from "@/lib/i18n";
    
    const { provider } = defineI18nUI(i18n, {
      translations: {
        cn: {
          displayName: "Chinese",
          search: "Translated Content",
        },
        en: {
          displayName: "English",
        },
      },
    });
    
    function RootLayout({ children }: { children: React.ReactNode }) {
      return <RootProvider i18n={provider(lang)}>{children}</RootProvider>;
    }
    

    Although optional, we highly recommend you to refactor the import to i18n middleware:

    // here!
    import { createI18nMiddleware } from "fumadocs-core/i18n/middleware";
    import { i18n } from "@/lib/i18n";
    
    export default createI18nMiddleware(i18n);
    

Patch Changes

15.6.12

Patch Changes

15.6.11

Patch Changes

  • 6de6ff3: Restrict exports of layouts to avoid projects importing internal/unstable APIs
  • f0b1fee: Improve layout component customization experience by handling RWD automatically

15.6.10

Patch Changes

  • 817c237: Support search result highlighting.

    Result nodes now have a contentWithHighlights property, you can render it with custom renderer, or a default one provided on Fumadocs UI.

  • Updated dependencies [569bc26]

  • Updated dependencies [817c237]

15.6.9

Patch Changes

15.6.8

Patch Changes

15.6.7

Patch Changes

15.6.6

Patch Changes

15.6.5

Patch Changes

15.6.4

Patch Changes

15.6.3

Patch Changes

15.6.2

Patch Changes

15.6.1

Patch Changes

15.6.0

Minor Changes

  • f8d1709: Redesigned Codeblock Tabs

    Instead of relying on Tabs component, it supports a dedicated tabs component for codeblocks:

    <CodeBlockTabs>
      <CodeBlockTabsList>
        <CodeBlockTabsTrigger value="value">Name</CodeBlockTabsTrigger>
      </CodeBlockTabsList>
      <CodeBlockTab value="value" asChild>
        <CodeBlock>...</CodeBlock>
      </CodeBlockTab>
    </CodeBlockTabs>
    

    The old usage is not deprecated, you can still use them while Fumadocs' remark plugins will generate codeblock tabs using the new way.

Patch Changes

15.5.5

Patch Changes

15.5.4

Patch Changes

15.5.3

Patch Changes

15.5.2

Patch Changes

15.5.1

Patch Changes

  • b4916d2: Move hide-if-empty component to Fumadocs Core
  • 68526ea: Redesign fumadocs-ui/components/dialog/search usage to make it composable, and mark it as stable API.
  • Updated dependencies [b4916d2]
  • Updated dependencies [8738b9c]
  • Updated dependencies [a66886b]

15.5.0

Minor Changes

  • 589d101: Move TOC closer to page body on larger viewports

    Changed layout positioning, all layout components now use fixed position.

    This may impact sites that:

    • using custom styling on Fumadocs layouts.
    • added a custom footer (see below).

    For custom footer, make sure to add them into <DocsLayout /> instead:

    <DocsLayout>
      {children}
      <div className="h-[400px] bg-fd-secondary">Hello World</div>
    </DocsLayout>
    

Patch Changes

15.4.2

Patch Changes

15.4.1

Patch Changes

15.4.0

Minor Changes

  • 961b67e: Bump algolia search to v5

    This also introduced changes to some APIs since algoliasearch v4 and v5 has many differences.

    Now we highly recommend to pass an index name to sync():

    import { algoliasearch } from "algoliasearch";
    import { sync } from "fumadocs-core/search/algolia";
    const client = algoliasearch("id", "key");
    
    void sync(client, {
      indexName: "document",
      documents: records,
    });
    

    For search client, pass them to searchOptions:

    "use client";
    
    import { liteClient } from "algoliasearch/lite";
    import type { SharedProps } from "fumadocs-ui/components/dialog/search";
    import SearchDialog from "fumadocs-ui/components/dialog/search-algolia";
    
    const client = liteClient(appId, apiKey);
    
    export default function CustomSearchDialog(props: SharedProps) {
      return (
        <SearchDialog
          searchOptions={{
            client,
            indexName: "document",
          }}
          {...props}
          showAlgolia
        />
      );
    }
    

Patch Changes

  • 092fd04: Fallback to dangerouslySetInnerHTML for inlined scripts for backward compatibility
  • 7d78bc5: Improve createRelativeLink and getPageByHref for i18n usage
  • Updated dependencies [1b999eb]
  • Updated dependencies [961b67e]
  • Updated dependencies [7d78bc5]

15.3.4

Patch Changes

15.3.3

Patch Changes

15.3.2

Patch Changes

  • 1753cf1: Fix navbar external items and nav menu scroll
  • 9b38baf: add success type to callout
  • 8e862e5: Use native scroll bar for codeblocks and some elements for better performance
  • ac0ab12: Improve performance by reducing usage of @radix-ui/react-scroll-area
  • c25d678: Support Shiki focus notation transformer by default
  • Updated dependencies [c25d678]

15.3.1

Patch Changes

15.3.0

Minor Changes

  • 52b5ad8: Redesign mobile sidebar

    Mobile sidebar is now a separate component from the desktop one, with its own id nd-sidebar-mobile.

    note to advanced use cases: Fumadocs UI now stopped using fumadocs-core/sidebar, avoid using the primitive directly as provider is not used.

Patch Changes

15.2.15

Patch Changes

15.2.14

Patch Changes

15.2.13

Patch Changes

  • b433d93: Recommend using custom button/link instead for edit on GitHub button
  • 1e07ed8: Support disabling codeblock styles with .not-fumadocs-codeblock

15.2.12

Patch Changes

15.2.11

Patch Changes

  • d4d1ba7: Fix sidebar collapsible control search button still visible with search disabled
  • 4e62b41: Bundle lucide-react as part of library
  • 07cd690: Support separators without name
  • Updated dependencies [07cd690]

15.2.10

Patch Changes

15.2.9

Patch Changes

15.2.8

Patch Changes

15.2.7

Patch Changes

15.2.6

Patch Changes

15.2.5

Patch Changes

15.2.4

Patch Changes

15.2.3

Patch Changes

15.2.2

Patch Changes

15.2.1

Patch Changes

15.2.0

Patch Changes

15.1.3

Patch Changes

15.1.2

Patch Changes

15.1.1

Patch Changes

15.1.0

Patch Changes

15.0.18

Patch Changes

15.0.17

Patch Changes

15.0.16

Patch Changes

15.0.15

Patch Changes

15.0.14

Patch Changes

15.0.13

Patch Changes

15.0.12

Patch Changes

15.0.11

Patch Changes

15.0.10

Patch Changes

15.0.9

Patch Changes

15.0.8

Patch Changes

15.0.7

Patch Changes

15.0.6

Patch Changes

15.0.5

Patch Changes

15.0.4

Patch Changes

15.0.3

Patch Changes

15.0.2

Patch Changes

15.0.1

Patch Changes

15.0.0

Major Changes

  • a84f37a: Migrate to Tailwind CSS v4

    migrate:

    Follow https://tailwindcss.com/blog/tailwindcss-v4 for official migrate guide of Tailwind CSS v4.

    Fumadocs UI v15 redesigned the Tailwind CSS config to fully adhere the new config style, no JavaScript and options needed for plugins. Add the following to your CSS file:

    @import "tailwindcss";
    @import "fumadocs-ui/css/neutral.css";
    @import "fumadocs-ui/css/preset.css";
    /* if you have Twoslash enabled */
    @import "fumadocs-twoslash/twoslash.css";
    
    @source '../node_modules/fumadocs-ui/dist/**/*.js';
    /* if you have OpenAPI enabled */
    @source '../node_modules/fumadocs-openapi/dist/**/*.js';
    

    The fumadocs-ui/css/preset.css import is required, it declares necessary plugins & styles for Fumadocs UI, and fumadocs-ui/css/neutral.css defines the color palette of UI.

    Like the previous preset option in Tailwind CSS plugin, you can import other color presets like fumadocs-ui/css/vitepress.css.

    You should also pay attention to @source, the file paths are relative to the CSS file itself. For your project, it might not be ../node_modules/fumadocs-ui/dist/**/*.js.

Patch Changes

14.7.7

Patch Changes

  • 4f2538a: Support children prop in custom Folder component
  • 191012a: DocsCategory search based on file path when item isn't present in the tree
  • fb6b168: No longer rely on search context on search dialog

14.7.6

Patch Changes

14.7.5

Patch Changes

14.7.4

Patch Changes

14.7.3

Patch Changes

14.7.2

Patch Changes

14.7.1

Patch Changes

14.7.0

Patch Changes

14.6.8

Patch Changes

14.6.7

Patch Changes

14.6.6

Patch Changes

14.6.5

Patch Changes

14.6.4

Patch Changes

14.6.3

Patch Changes

14.6.2

Patch Changes

14.6.1

Patch Changes

14.6.0

Minor Changes

  • 010da9e: Tabs: support usage without value
  • bebb16b: Support DynamicCodeBlock component

Patch Changes

14.5.6

Patch Changes

14.5.5

Patch Changes

14.5.4

Patch Changes

14.5.3

Patch Changes

14.5.2

Patch Changes

14.5.1

Patch Changes

14.5.0

Minor Changes

  • 66c70ec: Replace official Tailwind CSS typography plugin

    • Other variants like prose-sm and prose-gray are removed, as it's supposed to only provide support for Fumadocs UI typography styles.
  • 05d224c: added the updateAnchor option for the Tabs ui component

Patch Changes

14.4.2

Patch Changes

14.4.1

Patch Changes

14.4.0

Minor Changes

  • 5fd4e2f: Make TOC collapse to a popover on lg screen size instead of md
  • 5fd4e2f: Support better table styles for Typography plugin
  • 8a3f5b0: Make neutral the default theme of Fumadocs UI

Patch Changes

14.3.1

Patch Changes

14.3.0

Minor Changes

  • b8a12ed: Move to tsc (experimental)

Patch Changes

14.2.1

Patch Changes

14.2.0

Minor Changes

  • e248a0f: Support Orama Cloud integration
  • 7a5393b: Replace cmdk with custom implementation

Patch Changes

14.1.1

Patch Changes

14.1.0

Patch Changes

14.0.2

Patch Changes

14.0.1

Patch Changes

14.0.0

Major Changes

  • d9e908e: Refactor import paths for layouts

    migrate: Use

    import { DocsLayout } from "fumadocs-ui/layouts/docs";
    
    import { HomeLayout } from "fumadocs-ui/layouts/home";
    
    import { BaseLayoutProps } from "fumadocs-ui/layouts/shared";
    

    Instead of

    import { DocsLayout } from "fumadocs-ui/layout";
    
    import { HomeLayout } from "fumadocs-ui/home-layout";
    
    import { HomeLayoutProps } from "fumadocs-ui/home-layout";
    
  • 9a10262: Move Twoslash UI components to fumadocs-twoslash

    why: Isolate logic from Fumadocs UI

    migrate:

    Before:

    import "fumadocs-ui/twoslash.css";
    
    import { Popup } from "fumadocs-ui/twoslash/popup";
    

    After:

    import "fumadocs-twoslash/twoslash.css";
    
    import { Popup } from "fumadocs-twoslash/ui";
    

    Tailwind CSS is now required for Twoslash integration.

  • d9e908e: Remove getImageMeta from fumadocs-ui/og

    migrate: Use Metadata API from fumadocs-core/server

  • d9e908e: Replace fumadocs-core/search/shared with fumadocs-core/server

  • be53a0e: DocsCategory now accept from prop instead of pages prop.

    why: This allows sharing the order of items with page tree. migrate:

    The component now takes from prop which is the Source API object.

    import { source } from "@/lib/source";
    import { DocsCategory } from "fumadocs-ui/page";
    
    const page = source.getPage(params.slug);
    
    <DocsCategory page={page} from={source} />;
    

Minor Changes

  • 34cf456: Support disableThemeSwitch on layouts
  • d9e908e: Bundle icons into dist
  • ad47fd8: Show i18n language toggle on home layout
  • 87063eb: Add root toggle to sidebar automatically
  • 64f0653: Introduce --fd-nav-height CSS variable for custom navbar
  • e1ee822: Support hast nodes in toc variable
  • 3d054a8: Support linking to a specific tab

Patch Changes

13.4.10

Patch Changes

13.4.9

Patch Changes

13.4.8

Patch Changes

13.4.7

Patch Changes

13.4.6

Patch Changes

13.4.5

Patch Changes

13.4.4

Patch Changes

13.4.3

Patch Changes

13.4.2

Patch Changes

13.4.1

Patch Changes

13.4.0

Minor Changes

  • 26f5360: Support built-in OG Image generation

Patch Changes

13.3.3

Patch Changes

13.3.2

Patch Changes

13.3.1

Patch Changes

13.3.0

Minor Changes

  • 8f5b19e: Introduce DocsTitle, DocsDescription and DocsCategory components
  • 32ca37a: Support Clerk-style TOC
  • 9aae448: Support multiple toc active items
  • c542561: Use cookie to store active locale on always mode

Patch Changes

13.2.2

Patch Changes

13.2.1

Patch Changes

13.2.0

Minor Changes

  • ba588a2: Support custom max width
  • ec983a3: Change default value of defaultOpenLevel to 0

Patch Changes

13.1.0

Minor Changes

  • c8910c4: Add default 'max-height' to codeblocks

Patch Changes

13.0.7

Patch Changes

13.0.6

Patch Changes

13.0.5

Patch Changes

13.0.4

Patch Changes

13.0.3

Patch Changes

13.0.2

Patch Changes

13.0.1

Patch Changes

13.0.0

Major Changes

  • 89190ae: Rename prefix option on Tailwind CSS Plugin to cssPrefix

    why: The previous name was misleading

    migrate: Rename the option.

    import { createPreset } from "fumadocs-ui/tailwind-plugin";
    
    /** @type {import('tailwindcss').Config} */
    export default {
      presets: [
        createPreset({
          cssPrefix: "fd",
        }),
      ],
    };
    
  • b02eebf: Move keepCodeBlockBackground option to code block component

    why: Easier to customize code block styles.

    migrate:

    Enable keepBackground on <CodeBlock />, and remove deprecated usage.

    import { Pre, CodeBlock } from "fumadocs-ui/components/codeblock";
    
    <MDX
      components={{
        pre: ({ ref: _ref, ...props }) => (
          <CodeBlock keepBackground {...props}>
            <Pre>{props.children}</Pre>
          </CodeBlock>
        ),
      }}
    />;
    
  • f868018: Replace secondary link items with icon link items

    why: Link items with type secondary has been deprecated long time ago.

    migrate: Replace type secondary with icon.

  • 8aebeab: Change usage of I18nProvider

    why: Make possible to load translations lazily

    migrate:

    import { RootProvider } from "fumadocs-ui/provider";
    import type { ReactNode } from "react";
    import { I18nProvider } from "fumadocs-ui/i18n";
    
    export default function Layout({
      params: { lang },
      children,
    }: {
      params: { lang: string };
      children: ReactNode;
    }) {
      return (
        <html lang={lang}>
          <body>
            <I18nProvider
              locale={lang}
              // options
              locales={[
                {
                  name: "English",
                  locale: "en",
                },
                {
                  name: "Chinese",
                  locale: "cn",
                },
              ]}
              // translations
              translations={
                {
                  cn: {
                    toc: "目錄",
                    search: "搜尋文檔",
                    lastUpdate: "最後更新於",
                    searchNoResult: "沒有結果",
                    previousPage: "上一頁",
                    nextPage: "下一頁",
                  },
                }[lang]
              }
            >
              <RootProvider>{children}</RootProvider>
            </I18nProvider>
          </body>
        </html>
      );
    }
    
  • 8aebeab: Require locale prop on I18nProvider

    why: Fix problems related to pathname parsing

    migrate: Pass locale parameter to the provider

  • 0377bb4: Rename id prop on Tabs component to groupId

    why: Conflicted with HTML id attribute.

    migrate: Rename to groupId.

  • e8e6a17: Make Tailwind CSS Plugin ESM-only

    why: Tailwind CSS supported ESM and TypeScript configs.

    migrate: Use ESM syntax in your Tailwind CSS config.

  • c901e6b: Remove deprecated fumadocs-ui/components/api components

    why: The new OpenAPI integration has its own UI implementation.

    migrate: Update to latest OpenAPI integration.

  • 89190ae: Add fd- prefix to all Fumadocs UI colors, animations and utilities

    why: The added Tailwind CSS colors may conflict with the existing colors of codebases.

    migrate: Enable addGlobalColors on Tailwind CSS Plugin or add the fd- prefix to class names.

    import { createPreset } from "fumadocs-ui/tailwind-plugin";
    
    /** @type {import('tailwindcss').Config} */
    export default {
      presets: [
        createPreset({
          addGlobalColors: true,
        }),
      ],
    };
    
  • b02eebf: Change code block component usage

    why: The previous usage was confusing, some props are passed directly to pre while some are not.

    migrate:

    Pass all props to CodeBlock component. This also includes class names, change your custom styles if necessary.

    import { Pre, CodeBlock } from "fumadocs-ui/components/codeblock";
    
    <MDX
      components={{
        // HTML `ref` attribute conflicts with `forwardRef`
        pre: ({ ref: _ref, ...props }) => (
          <CodeBlock {...props}>
            <Pre>{props.children}</Pre>
          </CodeBlock>
        ),
      }}
    />;
    

    You can ignore this if you didn't customize the default pre element.

  • 4373231: Remove RollButton component

    why: RollButton was created because there were no "Table Of Contents" on mobile viewports. Now users can use the TOC Popover to switch between headings, RollButton is no longer a suitable design for Fumadocs UI.

    migrate: Remove usages, you may copy the last implementation of RollButton.

Minor Changes

  • c684c00: Support to disable container style overriding
  • c8964d3: Include Callout as default MDX component

Patch Changes

12.5.6

Patch Changes

12.5.5

Patch Changes

12.5.4

Patch Changes

12.5.3

Patch Changes

12.5.2

Patch Changes

12.5.1

Patch Changes

12.5.0

Minor Changes

  • b9fa99d: Support tag filters in search dialog
  • a4bcaa7: Rename Layout in fumadocs-ui/layout to HomeLayout in fumadocs-ui/home-layout

Patch Changes

12.4.2

Patch Changes

12.4.1

Patch Changes

12.4.0

Minor Changes

  • eb36761: Replace link item secondary type with icon (backward compatible)
  • eb36761: Support secondary property in link items
  • eb36761: Support button type link item
  • eb36761: Support on filter in link items

Patch Changes

12.3.6

Patch Changes

12.3.5

Patch Changes

12.3.4

Patch Changes

12.3.3

Patch Changes

12.3.2

Patch Changes

12.3.1

Patch Changes

12.3.0

Patch Changes

12.2.5

Patch Changes

12.2.4

Patch Changes

12.2.3

Patch Changes

12.2.2

Patch Changes

12.2.1

Patch Changes

12.2.0

Minor Changes

  • 318eaf9: Redesign TOC popover: Make the TOC Popover trigger a part of navbar.
  • ea22d04: Improve dynamic sidebar: Improve animation & close delay

Patch Changes

  • 2f2d9cf: Improve footer: Use card-style buttons to match the other buttons
  • bcc9f91: Added a new colors for API info badge, so POST, PATCH requests are different from PUT.
  • 2f2d9cf: Improve OpenAPI styles
  • Updated dependencies [b70ff06]

12.1.3

Patch Changes

12.1.2

Patch Changes

12.1.1

Patch Changes

12.1.0

Minor Changes

  • 0a377a9: Pass the icon prop to code blocks as HTML instead of MDX attribute.

    why: Only MDX flow elements support attributes with JSX value, like:

    <Pre icon={<svg />}>...</Pre>
    

    As Shiki outputs hast elements, we have to convert the output of Shiki to an MDX flow element so that we can pass the icon property.

    Now, rehype-code passes an HTML string instead of JSX, and render it with dangerouslySetInnerHTML:

    <Pre icon="<svg />">...</Pre>
    

    migrate: Not needed, it should work seamlessly.

Patch Changes

12.0.7

Patch Changes

12.0.6

Patch Changes

12.0.5

Patch Changes

12.0.4

Patch Changes

12.0.3

Patch Changes

12.0.2

Patch Changes

12.0.1

Patch Changes

12.0.0

Major Changes

  • 62b5abb: New Layout

    • Remove navbar from docs layout, replace it with sidebar.
    • On smaller devices, navbar is always shown.
    • Remove exports of internal components, copying components from the repository is now the preferred way.

    migrate: On layouts, Rename nav.githubUrl to githubUrl. Modify your stylesheet if necessary.

  • 5741224: Remove deprecated option enableThemeProvider from Root Provider

    migrate: Use theme.enabled instead.

  • 2f8b168: Replace <LanguageSelect /> component with <LanguageToggle />

    migrate:

    Remove your <LanguageSelect /> component from the layout. Enable the new language toggle with:

    import { DocsLayout } from "fumadocs-ui/layout";
    
    export default function Layout({ children }: { children: React.ReactNode }) {
      return <DocsLayout i18n>{children}</DocsLayout>;
    }
    

Minor Changes

  • d88dfa6: Support switching between page trees with RootToggle component

Patch Changes

11.3.2

Patch Changes

11.3.1

Patch Changes

11.3.0

Minor Changes

  • 917d87f: Rename sidebar primitive minWidth prop to blockScrollingWidth

Patch Changes

11.2.2

Patch Changes

11.2.1

Patch Changes

11.2.0

Minor Changes

  • 3292df1: Support sliding dynamic sidebar

Patch Changes

11.1.3

Patch Changes

11.1.2

Patch Changes

11.1.1

Patch Changes

11.1.0

Minor Changes

  • 02a014f: Support custom menu items in navbar

Patch Changes

11.0.8

Patch Changes

11.0.7

Patch Changes

11.0.6

Patch Changes

11.0.5

Patch Changes

11.0.4

Patch Changes

11.0.3

Patch Changes

11.0.2

Patch Changes

11.0.1

Patch Changes

11.0.0

Major Changes

  • 2d8df75: Replace nav.links option with secondary links

    why: A more straightforward API design

    migrate:

    <DocsLayout
    +  links={[
    +    {
    +      type: 'secondary',
    +      text: 'Github',
    +      url: 'https://github.com',
    +      icon: <GithubIcon />,
    +      external: true,
    +    },
    +  ]}
    -  nav={{
    -    links: [
    -      {
    -        icon: <GithubIcon />,
    -        href: 'https://github.com',
    -        label: 'Github',
    -        external: true,
    -      },
    -    ],
    -  }}
    >
      {children}
    </DocsLayout>
    

Patch Changes

10.1.3

Patch Changes

10.1.2

Patch Changes

10.1.1

Patch Changes

10.1.0

Minor Changes

Patch Changes

10.0.5

Patch Changes

10.0.4

Patch Changes

10.0.3

Patch Changes

10.0.2

Patch Changes

10.0.1

Patch Changes

10.0.0

Major Changes

  • 321d1e1f: Move Typescript integrations to fumadocs-typescript

    why: It is now a stable feature

    migrate: Use fumadocs-typescript instead.

    - import { AutoTypeTable } from "fumadocs-ui/components/auto-type-table"
    + import { AutoTypeTable } from "fumadocs-typescript/ui"
    

Patch Changes

9.1.0

Minor Changes

  • ffc76e9d: Support to override sidebar components
  • 1c388ca5: Support defaultOpen for folder nodes

Patch Changes

9.0.0

Major Changes

  • 071898da: Remove deprecated usage of Files component

    Why: Since 8.3.0, you should use the Folder component instead for folders. For simplicity, the title prop has been renamed to name.

    Migrate: Replace folders with the Folder component. Rename title prop to name.

    - <Files>
    - <File title="folder">
    - <File title="file.txt" />
    - </File>
    - </Files>
    
    + <Files>
    + <Folder name="folder">
    + <File name="file.txt" />
    + </Folder>
    + </Files>
    
  • 2b355907: Remove controlled usage for Accordion

    Why: Components in Fumadocs UI should not be used outside of MDX.

    Migrate: Remove value and onValueChange props.

Patch Changes

8.3.0

Minor Changes

  • b0003d44: Add purple theme
  • 9bdb49dd: Add Folder export to fumadocs-ui/components/files
  • 99d66d2d: Rename title prop to name in File and Folder component

Patch Changes

8.2.0

Minor Changes

  • 5c24659: Support code block icons

Patch Changes

8.1.1

Patch Changes

8.1.0

Minor Changes

  • 0012eba: Support Typescript Twoslash
  • bc936c5: Add AutoTypeTable server component

Patch Changes

8.0.0

Major Changes

  • a2f4819: Improve internationalized routing

    I18nProvider now handles routing for you. Therefore, locale and onChange is no longer required.

    <I18nProvider
      translations={{
        cn: {
          name: "Chinese", // required
          search: "Translated Content",
        },
      }}
    ></I18nProvider>
    

    LanguageSelect detects available options from your translations, therefore, the languages prop is removed.

  • c608ad2: Remove deprecated docsUiPlugins

    migrate: Use createPreset instead

    const { createPreset } = require("fumadocs-ui/tailwind-plugin");
    
    /** @type {import('tailwindcss').Config} */
    module.exports = {
      content: [
        "./components/**/*.{ts,tsx}",
        "./app/**/*.{ts,tsx}",
        "./content/**/*.mdx",
        "./node_modules/fumadocs-ui/dist/**/*.js",
      ],
      presets: [createPreset()],
    };
    
  • 2ea9437: Change usage of Code Block component

    The inner pre element is now separated from code block container, making it easier to customize.`

    Before:

    import { CodeBlock, Pre } from "fumadocs-ui/mdx/pre";
    
    <Pre title={title} allowCopy {...props} />;
    

    After:

    import { CodeBlock, Pre } from "fumadocs-ui/components/codeblock";
    
    <CodeBlock title={title} allowCopy>
      <Pre {...props} />
    </CodeBlock>;
    
  • ac424ec: Update import paths of MDX components

    why: To improve consistency, all MDX components are located in /components/* instead.

    migrate:

    - import { Card, Cards } from "fumadocs-ui/mdx/card"
    + import { Card, Cards } from "fumadocs-ui/components/card"
    
    - import { Heading } from "fumadocs-ui/mdx/heading"
    + import { Heading } from "fumadocs-ui/components/heading"
    
    - import { Codeblock, Pre } from "fumadocs-ui/mdx/pre"
    + import { Codeblock, Pre } from "fumadocs-ui/components/codeblock"
    
  • 2b11c20: Rename to Fumadocs

    next-docs-zeta -> fumadocs-core

    next-docs-ui -> fumadocs-ui

    next-docs-mdx -> fumadocs-mdx

    @fuma-docs/openapi -> fumadocs-openapi

    create-next-docs-app -> create-fumadocs-app

  • 60db195: Remove Nav component export

    why: Replaced by the DocsLayout and Layout component, it is now an internal component

    migration: Use the Layout component for sharing the navbar across pages

    - import { Nav } from "fumadocs-ui/nav"
    + import { Layout } from "fumadocs-ui/layout"
    

Minor Changes

  • 60db195: Support transparent navbar

Patch Changes

7.1.2

Patch Changes

7.1.1

Patch Changes

7.1.0

Minor Changes

  • 40e51a4: Support integration with @fuma-docs/openapi
  • d2744a4: Remove tailwindcss-animate

Patch Changes

7.0.0

Major Changes

  • f995ad9: Page Footer is now a client component

    This allows the footer component to find items within the current page tree, which fixes the problem where an item from another page tree is appeared.

    Also removed the url and tree properties from DocsPage since we can pass them via React Context API.

    export default async function Page({ params }) {
      return (
        <DocsPage
    -      url={page.url}
    -      tree={pageTree}
        >
          ...
        </DocsPage>
      );
    }
    

    The footer property in DocsPage has also updated, now you can specify or replace the default footer component.

    <DocsPage footer={{ items: {} }}>...</DocsPage>
    

Minor Changes

  • b30d1cd: Support theme presets

    Add theme presets for the Tailwind CSS plugin, the default and ocean presets are available now.

    const { docsUi, docsUiPlugins } = require("next-docs-ui/tailwind-plugin");
    
    /** @type {import('tailwindcss').Config} */
    module.exports = {
      plugins: [
        ...docsUiPlugins,
        docsUi({
          preset: "ocean",
        }),
      ],
    };
    
  • 9929c5b: Support multiple page tree roots

    You can specify a root property in meta.json, the nearest root folder will be used as the root of page tree instead.

    {
      "title": "Hello World",
      "root": true
    }
    

Patch Changes

6.1.0

Minor Changes

  • 6e0d2e1: Support Layout for non-docs pages (without page tree)

    Same as Docs Layout but doesn't include a sidebar. It can be used outside of the docs, a page tree is not required.

    import { Layout } from "next-docs-ui/layout";
    
    export default function HomeLayout({ children }) {
      return <Layout>{children}</Layout>;
    }
    

    nav.items prop is deprecated

    It is now replaced by links.

  • 2a82e9d: Support linking to accordions

    You can now specify an id for accordion. The accordion will automatically open when the user is navigating to the page with the specified id in hash parameter.

    <Accordions>
    <Accordion title="My Title" id="my-title">
    
    My Content
    
    </Accordion>
    </Accordions>
    

Patch Changes

6.0.2

Patch Changes

6.0.1

Patch Changes

6.0.0

Major Changes

  • 983ede8: Remove not-found component

    The not-found component was initially intended to be the default 404 page. However, we found that the Next.js default one is good enough. For advanced cases, you can always build your own 404 page.

  • ebe8d9f: Support Tailwind CSS plugin usage

    If you are using Tailwind CSS for your docs, it's now recommended to use the official plugin instead.

    const { docsUi, docsUiPlugins } = require("next-docs-ui/tailwind-plugin");
    
    /** @type {import('tailwindcss').Config} */
    module.exports = {
      darkMode: "class",
      content: [
        "./components/**/*.{ts,tsx}",
        "./app/**/*.{ts,tsx}",
        "./content/**/*.mdx",
        "./node_modules/next-docs-ui/dist/**/*.js",
      ],
      plugins: [...docsUiPlugins, docsUi],
    };
    

    The docsUi plugin adds necessary utilities & colors, and docsUiPlugins are its dependency plugins which should not be missing.

  • 7d89e83: Add required property url to <DocsPage /> component

    You must pass the URL of current page to <DocsPage /> component.

    export default function Page({ params }) {
      return (
        <DocsPage
    +      url={page.url}
          toc={page.data.toc}
        >
          ...
        </DocsPage>
      )
    }
    

    footer property is now optional

    Your footer property in <DocsPage /> will be automatically generated if not specified.

    findNeighbour(tree, url);
    
  • 0599d50: Separate MDX components

    Previously, you can only import the code block component from next-docs-ui/mdx (Client Component) and next-docs-ui/mdx-server (Server Component).

    This may lead to confusion, hence, it is now separated into multiple files. You can import these components regardless it is either a client or a server component.

    Notice that MDXContent is now renamed to DocsBody, you must import it from next-docs-ui/page instead.

    - import { MDXContent } from "next-docs-ui/mdx"
    - import { MDXContent } from "next-docs-ui/mdx-server"
    
    + import { DocsBody } from "next-docs-ui/page"
    
    - import { Card, Cards } from "next-docs-ui/mdx"
    + import { Card, Cards } from "next-docs-ui/mdx/card"
    
    - import { Pre } from "next-docs-ui/mdx"
    + import { Pre } from "next-docs-ui/mdx/pre"
    
    - import { Heading } from "next-docs-ui/mdx"
    + import { Heading } from "next-docs-ui/mdx/heading"
    
    - import defaultComponents from "next-docs-ui/mdx"
    + import defaultComponents from "next-docs-ui/mdx/default-client"
    
    - import defaultComponents from "next-docs-ui/mdx-server"
    + import defaultComponents from "next-docs-ui/mdx/default"
    

Minor Changes

  • 56a35ce: Support custom searchOptions in Algolia Search Dialog

Patch Changes

5.0.0

Minor Changes

  • de44efe: Migrate to Shikiji
  • de44efe: Support code highlighting options

Patch Changes

4.0.9

Patch Changes

4.0.8

Patch Changes

4.0.7

Patch Changes

4.0.6

Patch Changes

4.0.5

Patch Changes

4.0.4

Patch Changes

4.0.3

Patch Changes

4.0.2

Patch Changes

4.0.1

Patch Changes

  • 927714a: Remove dropdown from theme toggle
  • d58e90a: Use await imports to import client components in Server Components
  • cc1fe39: Render TOC header & footer in Server Component
  • 01b23e2: Support Next.js 14
  • d58e90a: Add y margins to Callout and Pre component
  • Updated dependencies [2da93d8]
  • Updated dependencies [01b23e2]

4.0.0

Minor Changes

  • 6c4a782: Improve CommonJS/ESM compatibility

    Since this release, all server utilities will be CommonJS by default unless they have referenced ESM modules in the code. For instance, next-docs-zeta/middleware is now a CommonJS file. However, some modules, such as next-docs-zeta/server requires ESM-only package, hence, they remain a ESM file.

    Notice that the extension of client-side files is now .js instead of .mjs, but they're still ESM.

    Why?

    After migrating to .mjs Next.js config file, some imports stopped to work. The built-in Next.js bundler seems can't resolve these next imports in external packages, causing errors when modules have imported Next.js itself (e.g. next/image) in the code.

    By changing client-side files extension to .mjs and using CommonJS for server-side files, this error is solved.

  • 6c4a782: Support Server Component usage for MDX default components

Patch Changes

4.0.0

Minor Changes

  • 678cd3d: Improve CommonJS/ESM compatibility

    Since this release, all server utilities will be CommonJS by default unless they have referenced ESM modules in the code. For instance, next-docs-zeta/middleware is now a CommonJS file. However, some modules, such as next-docs-zeta/server requires ESM-only package, hence, they remain a ESM file.

    Notice that the extension of client-side files is now .js instead of .mjs, but they're still ESM.

    Why?

    After migrating to .mjs Next.js config file, some imports stopped to work. The built-in Next.js bundler seems can't resolve these next imports in external packages, causing errors when modules have imported Next.js itself (e.g. next/image) in the code.

    By changing client-side files extension to .mjs and using CommonJS for server-side files, this error is solved.

  • d2eb490: Support Server Component usage for MDX default components

Patch Changes

3.0.0

Minor Changes

  • 522ed48: Update typography & layout styles

Patch Changes

  • a4a8120: Update search utilities import paths.

    Search Utilities in next-docs-zeta/server is now moved to next-docs-zeta/search and next-docs-zeta/server-algolia.

    Client-side Changes: next-docs-zeta/search -> next-docs-zeta/search/client next-docs-zeta/search-algolia -> next-docs-zeta/search-algolia/client

    If you're using Next Docs UI, make sure to import the correct path.

  • Updated dependencies [1043532]

  • Updated dependencies [7a0690b]

  • Updated dependencies [a4a8120]

2.4.1

Patch Changes

2.4.0

Minor Changes

  • 82c4fc6: Override default typography styles
  • 25e6856: Create Callout component

Patch Changes

2.3.3

Patch Changes

2.3.2

Patch Changes

2.3.1

Patch Changes

2.3.0

Minor Changes

  • 32a4669: Support algolia search dialog

Patch Changes

2.2.0

Minor Changes

  • 1ff7172: Remove support for importing "next-docs-ui/components", please use "next-docs-ui/nav" instead

Patch Changes

2.1.2

Patch Changes

2.1.1

Patch Changes

2.1.0

Minor Changes

  • db050fc: Redesign default theme & layout

Patch Changes

2.0.3

Patch Changes

2.0.2

Patch Changes

2.0.1

Patch Changes

2.0.0

Major Changes

Patch Changes

1.6.9

Patch Changes

1.6.8

Patch Changes

1.6.7

Patch Changes

1.6.6

Patch Changes

1.6.5

Patch Changes

1.6.4

Patch Changes

1.6.3

Patch Changes

1.6.2

Patch Changes

1.6.1

Patch Changes

1.6.0

Patch Changes

1.5.3

Patch Changes

1.5.2

Patch Changes

1.5.1

Patch Changes

1.5.0

Patch Changes

1.4.1

Patch Changes

1.4.0

Minor Changes

  • 45a174a: Split roll-button into optional component

Patch Changes

1.3.1

Patch Changes

1.3.0

Minor Changes

  • 98226d9: Rewrite slugger and TOC utilities

Patch Changes

1.2.1

Patch Changes

1.2.0

Minor Changes

  • Remove tree prop from Docs Page, replaced by pages context.

Patch Changes

1.1.4

Patch Changes

1.1.3

Patch Changes

1.1.2

Patch Changes

1.1.1

Patch Changes

1.1.0

Minor Changes

Patch Changes

1.0.0

Minor Changes

  • d30d57f: Support optional I18n context provider

Patch Changes

0.3.2

Patch Changes

  • Fix unexpected trailing slash on Contentlayer v0.3.4
  • Add Auto scroll for TOC

0.3.1

Patch Changes

0.3.0

Minor Changes

  • Support next.js images in MDX files

Patch Changes

0.1.2

Patch Changes

0.1.1

Patch Changes