Chore: improve UI

This commit is contained in:
Fuma Nama
2026-03-15 22:33:41 +08:00
parent 77965d8847
commit 48bee03e4a
2 changed files with 25 additions and 0 deletions
@@ -0,0 +1,24 @@
---
name: radix-base-ui-sync
description: Keep packages/radix-ui (fumadocs-ui) and packages/base-ui in sync. Use when editing either package, adding features, or fixing bugs so both UI variants stay consistent.
---
# Radix UI vs Base UI Package Sync
`packages/radix-ui` (fumadocs-ui) and `packages/base-ui` (@fumadocs/base-ui) are two variants of Fumadocs UI. They share the same layout structure, components, and public API; only the underlying primitives differ. When changing one package, consider the other.
## Package identity
| | radix-ui | base-ui |
| ---------------- | ----------------------- | ---------------------- |
| **Package name** | `fumadocs-ui` | `@fumadocs/base-ui` |
| **Primitives** | `@radix-ui/*` | `@base-ui/react` |
| **Config key** | `uiLibrary: 'radix-ui'` | `uiLibrary: 'base-ui'` |
## What to keep in sync
- **Layouts**: `layouts/docs`, `layouts/flux`, `layouts/home`, `layouts/notebook`, `layouts/shared` — structure and props should match; only primitive usage differs.
- **Components**: Same public API and behavior for components under `components/` (e.g. toc, steps, sidebar/page-tree, dialog/search behavior). UI primitives in `components/ui/` differ by design.
- **Provider**: `provider/base.tsx` — same props; only `DirectionProvider` and search/dialog primitives differ.
- **Contexts, utils, i18n, mdx, og**: Should stay identical or nearly identical.
- **package.json**: Same `exports` shape and version; `dependencies` differ (Radix vs Base UI).
@@ -15,6 +15,7 @@ export type ServerCodeBlockProps = HighlightOptions & {
export async function ServerCodeBlock({ code, codeblock, ...options }: ServerCodeBlockProps) {
return await highlight(code, {
defaultColor: false,
...options,
components: {
pre: (props) => (