Skip to content

chore: bump fumadocs to 16.11, fumadocs-mdx to 15, shiki to 4 - #1493

Open
franky47 wants to merge 18 commits into
nextfrom
chore/bump-fumadocs
Open

chore: bump fumadocs to 16.11, fumadocs-mdx to 15, shiki to 4#1493
franky47 wants to merge 18 commits into
nextfrom
chore/bump-fumadocs

Conversation

@franky47

@franky47 franky47 commented Jul 19, 2026

Copy link
Copy Markdown
Member

Dependency bump: fumadocs-core/ui 16.0.4 to 16.11.5, fumadocs-mdx 13.0.2 to 15.2.0 (two majors), shiki + @shikijs/transformers 3 to 4 (aligned with the shiki fumadocs now ships).

The mdx 13→15 migration: collections import from the generated collections/server entry (toFumadocsSource() replaces createMDXSource), lastModifiedTime: 'git' becomes the lastModified plugin, and defineDocs is exported whole instead of destructured so the generator emits a docs collection with its meta attached. next.config was already ESM.

fumadocs-ui 16.11 came with behavioural changes the diff adapts to:

  • It no longer ships a container utility override; the site layouts rely on it for centering, so globals.css now provides it (same values: centered, 1400px cap on 2xl).
  • The theme switch defaults to light-dark; mode: 'light-dark-system' restores the system option.
  • sidebar.banner is a ReactNode now, not a component — passing the function crashed RSC serialization at build time.
  • Loose page content under DocsLayout needs a DocsPage slot: the playground demo pages rendered as a collapsed grid without it.
  • Markdown moved from fumadocs-core/content to fumadocs-core/content/md.

Visual regression pass: Playwright screenshots of 9 pages (landing, docs, playground, blog, stats, changelog) in light and dark, compared against production nuqs.dev. All at parity after the fixes above. Two pre-existing artifacts confirmed identical on prod: the degraded v2.9.0 changelog entry (its DTO has unrecognized labels keys) and the lowercase compact-number suffixes on /stats (Vercel's ICU renders 115m, local Node 115M — runtime, not code).

Still deferred: lucide-react 1.x (drops brand icons used on the conf pages), @types/node (pinned to the repo's Node 24), express 5 (e2e infra).

Second pass of the dependency bump, covering the fumadocs-coupled set.
fumadocs-mdx 13 to 15 brings the entry-files layout (collections/server
imports, toFumadocsSource) and the lastModified plugin. fumadocs-ui
16.11 dropped its container utility override (restored locally, the
site layouts rely on it for centering), defaults the theme switch to
light-dark (system mode restored), takes sidebar banner as a ReactNode
instead of a component, and requires loose page content to sit in a
DocsPage slot (playground demos). Visual parity checked against
production with Playwright screenshots across 9 pages in both themes.
@vercel

vercel Bot commented Jul 19, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
nuqs Ready Ready Preview Aug 7, 2026 10:45pm

@coderabbitai

coderabbitai Bot commented Jul 19, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: f686994f-903e-436c-a79c-7fcf85717afc

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@socket-security

socket-security Bot commented Jul 19, 2026

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addedfumadocs-mdx@​15.2.0981007395100
Added@​shikijs/​transformers@​4.4.21001007397100
Addedfumadocs-core@​16.11.5981007796100
Addedfumadocs-ui@​16.11.5981007796100
Addedshiki@​4.4.21001007798100

View full report

Workspace-scoped runs (the CI way) resolve paths from knip.json, not
tsconfig, so the new collections/* alias needs mirroring there.
The Linting job installs with --ignore-scripts, so the .source folder
the collections alias points at never exists there; knip then reads
collections/server as an unlisted bare dependency.
The container utility left preset.css in fumadocs-ui 16.2 (it still
ships in preset-legacy.css) and the theme switch default changed in
16.7 — both surfaced here only because of the 16.0.4 jump. Also
document the CI ordering dependency between fumadocs-mdx generation
and the docs knip run.
@franky47 franky47 added the documentation Improvements or additions to documentation label Jul 19, 2026
@franky47 franky47 added this to the 🪵 Backlog milestone Jul 19, 2026
@franky47 franky47 added the AI slop PR generated by AI, needs some cleanup before merging label Jul 19, 2026
fumadocs-ui 16.11 positions the docs sidebar and TOC with sticky
inside a grid that must grow with the page, but our global
html/body height: 100% capped the body at the viewport, freezing
both in place — min-height keeps the sticky-footer flex layout
working while letting the grid stretch. The new TOC styles (normal
and clerk) both draw an SVG thumb that bends around indentation;
a local StraightTOC swaps the list for the classic straight rail
while reusing the upstream sticky container and scroll area.
The classic TOC items carried a prose class that styles inline code
(border, background, mono sizing); adopt the exact 16.0.4 item classes
including the per-depth padding steps.
fumadocs-ui 16.11 caps DocsPage children at 900px but start-aligns
them in the main grid area, leaving the slack on the right; centering
the children restores the balanced look aligned with the search bar.
The DocsPage wrapper the demos now need brought the docs template with
it: a 900px child cap, a reserved 268px TOC column (via the empty-TOC
placeholder), and prev/next pager cards. Playground pages were
full-bleed and pager-less in production, so lift the cap, disable the
TOC slot, and drop the pager there.
fumadocs-ui exposes it as the thumbBox option on the TOC item list;
production (16.0.4) had no such marker.
@pkg-pr-new

pkg-pr-new Bot commented Jul 19, 2026

Copy link
Copy Markdown
pnpm add https://pkg.pr.new/nuqs@1493

commit: 870b31a

Tooling for the one-off prod-vs-preview screenshot audit, swept in by
accident; it lives outside the repo.
The bespoke straight-rail TOC dropped the scroll-position highlight;
the stock component tracks it properly, and the curved rail is
acceptable. The mobile popover keeps thumbBox disabled.
@franky47
franky47 marked this pull request as ready for review July 19, 2026 12:16
franky47 added 2 commits July 19, 2026 14:23
Production never had the system option — an early screenshot misread
suggested it did. fumadocs 16.11 defaults to light-dark, so the
override goes away entirely.
Swept in by a broad git add; tool-local state, not source.
Comment thread packages/docs/src/app/globals.css
Comment thread packages/docs/mdx-components.tsx
Comment thread packages/docs/src/app/docs/[[...slug]]/page.tsx Outdated
Both were added while chasing implicit-any errors that only appeared
locally and no longer reproduce from a clean state (stale .next
typegen); nuqs and fumadocs types flow correctly without them.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

AI slop PR generated by AI, needs some cleanup before merging documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant