Notable changes per Nimbus release. Two packages publish from this monorepo:
nimbus-docs (the framework) and create-nimbus-docs (the scaffolder).
Their versions move independently.
Frozen. New release notes are no longer added to this file. Per-package changelogs are now generated by Changesets:
packages/nimbus-docs/CHANGELOG.mdandpackages/create-nimbus-docs/CHANGELOG.md. The history below is preserved as-is. Nothing between the newest entries here (nimbus-docs@0.0.2/create-nimbus-docs@0.0.3) and the first Changesets-managed release was changelogged; everything since lives in the per-package changelogs linked above.
The polish-focused release. v1 is still pre-stable — breaking changes are intentional, undocumented impact is not.
getSidebar(slug, options?)→getSidebar(slug). Themodeparameter is gone. The helper always returns the scoped tree (current section only). Callers that previously needed the full un-scoped tree (e.g. header section tabs) should switch togetSidebarSections(slug).SidebarConfig.moderemoved fromNimbusConfig. Config files carryingsidebar: { mode: "full" }keep validating (passthrough schema) but the field has no effect; remove it.
getSidebarSections(slug)returns oneSidebarSection({ label, href, isActive }) per top-level group in the sidebar tree. Used byHeader.astroto render the section-tab strip. New public typeSidebarSectionexported fromnimbus-docs/types. Replaces the user-ownedlib/sections.tsderivation, which is deleted from all shipped templates (-64 lines per starter).getLastUpdated(entry)runsgit log -1 --format=%aI -- <filePath>and returns the most recent author date as aDate. Author date rather than committer date so rebases of unchanged content keep their dates. Returnsundefinedsilently on any failure (shallow clone, untracked file, no.git, git not on PATH). Wired into the starter's[...slug].astroasentry.data.lastUpdated ?? await getLastUpdated(entry)— frontmatter wins, git fallback, nomtimelie when git can't answer.defaultCodeTransformers()returns the canonical Shiki transformer chain (six from@shikijs/transformersplus the Nimbus-ownedtitleAndLangTransformer). Wired intoshikiConfig.transformersfor fenced MDX blocks and into the starter'sCode.astrofor the<Code>component (and anything composing it, like<CodeGroup>).- Premium code-block features ship automatically on every fenced
block and every
<Code>invocation:- Filename title bar via
```ts title="src/foo.ts" - Visible language tag (inside title bar when present, top-right of pre otherwise; auto-hides on hover so the copy button takes over)
- Line highlighting via
{1,3-5}meta or// [!code highlight] - Diff via
// [!code ++]/// [!code --] - Focus mode via
// [!code focus](dims surrounding lines; clears on hover) - Error / warning lines via
// [!code error]/// [!code warning] - Word highlighting via
// [!code word:foo]or meta/pattern/
- Filename title bar via
- Animated page transitions ship by default via
<ClientRouter />inBaseLayout.astro. 180ms cross-fade plus 4px upward rise on the incoming page; respectsprefers-reduced-motion: reduce(skips animation, keeps SPA swap). Components were already transition-aware viamount()'sastro:before-swap/astro:page-loadlifecycle. AGENT.mdaudit brief ships at the root of every scaffolded project. Replaces the earliernimbus checkCLI idea — coding agents read it automatically and apply judgment to edge cases a rule engine couldn't.
- Aside / Banner / Callout use the same
color-mixtype-tinted border pattern. Banner converted from Tailwindborder-info/bg-*utilities to thebanner-cardCSS class for consistency with Aside. - Mobile sidebar toggle auto-hides on pages without a sidebar
dialog via
body:not(:has([data-mobile-sidebar])) [data-menu-btn]. Landing pages and custom pages no longer show a hamburger button that does nothing. - Registry generator output is deterministic. Removed the
generatedAtfield fromRegistryIndex(nothing reads it; it caused a 1-line diff on every regen). Code.astropremium chrome propagates through<CodeGroup>automatically because the transformers are applied at component level, not just markdown level.
- The 0.0.1 scaffolder published with
nimbus-docs: "workspace:*"leaking into the tarball was already fixed increate-nimbus-docs@0.0.2. The pinning script (pinNimbusDocsVersionincopy-template.mjs) now follows the publishednimbus-docsversion automatically — a bump tonimbus-docscascades into a fresh template pin on nextcopy-template.mjsrun.
CI/CD systems do shallow clones by default (Vercel, Cloudflare Pages,
GitHub Actions checkout@v4 at fetch-depth: 1). For getLastUpdated
to produce real dates in deployed builds, configure full history on
the checkout step:
- uses: actions/checkout@v4
with:
fetch-depth: 0Without this, the helper returns undefined and the layout falls back
to frontmatter lastUpdated or hides the line entirely.
Initial productionization release. Closes Row 8 (AGENT.md audit brief),
fixes the workspace:* leak into the shipped tarball, ships the
Cloudflare-first deployment shape with Markdown for Agents support.
See git history for the full set: git log v0.0.1.