Skip to content

feat(docs): redesign sidebar and top bar to be minimal Vercel-style - #6145

Merged
Kitenite merged 1 commit into
mainfrom
cleanup-docs-sidebar
Aug 3, 2026
Merged

Kitenite merged 1 commit into
mainfrom
cleanup-docs-sidebar

Conversation

@Kitenite

@Kitenite Kitenite commented Aug 3, 2026 •

Copy link
Copy Markdown
Member

Summary

  • Redesign the docs sidebar from the bordered "Better Auth" accordion style (section icons, chevrons, full-bleed row borders) to a minimal Vercel-style nav: input-style search box with a ⌘K chip, static group labels, and quiet rounded links.
  • Remove all top bar borders; the sticky header and the sidebar scroller now use fade-out edges instead of hard lines.
  • Drop framer-motion from the docs app (only used by the old accordion) and add @superset/ui for the shared OverflowFadeContainer.

Why / Context

The old sidebar was visually heavy — every section header was a bordered collapsible button with an icon and animated chevron, and rows had full-width hover blocks. This restyles it to match Vercel's docs: whitespace-separated groups, clear type hierarchy (medium-weight headers over muted items), and an active page marked by a subtle bg-accent pill at regular weight.

How It Works

  • Sidebar.tsx drops the collapse state/framer-motion entirely; groups are always expanded (six flat groups didn't need an accordion). The search stays pinned while the list scrolls inside OverflowFadeContainer (fadeEdges: top+bottom) — the same component the desktop DashboardSidebar uses, so items dissolve at the edges instead of clipping.
  • The sticky top bar scrolls the window (not an inner container), so it gets the visual equivalent: a 20px background → transparent gradient strip below the header. No scroll listener needed; it's invisible at the top of the page.
  • SidebarContent.tsx keeps parsing the "<Icon> <Title>" separator format from meta.json (strips the legacy icon prefix), so no content changes were needed. Mobile nav (NavigationMobile) got the same label/item treatment.

Manual QA Checklist

Verified via headless Chromium against the dev server, light + dark, at desktop viewport:

  • Sidebar renders all groups/items; active page shows the accent pill
  • Search box opens the fumadocs search dialog (⌘K binding unchanged)
  • Sidebar list fades under the pinned search box and at the bottom edge when scrollable
  • Page content fades out under the sticky top bar when scrolled
  • No console errors; screenshots visually inspected in both themes

Not covered: real mobile-device pass on NavigationMobile (styling-only change, same markup structure).

Testing

  • bun run typecheck (docs app)
  • bun run lint (exit 0, warnings-as-errors)

Design Decisions

  • Static groups instead of collapsible: the accordion chrome was most of the visual noise, Vercel's groups are static, and six groups fit comfortably; removing it also deleted the framer-motion dependency.
  • Gradient strip instead of mask for the top bar: mask-image only works on a scroll container, and the docs page scrolls the window; an always-on gradient below the sticky header produces the identical fade with zero JS.

Summary by cubic

Redesigned the docs sidebar and sticky top bar to a minimal Vercel-style nav with static groups, a simple ⌘K search, and fade-out scroll edges. This simplifies navigation, removes heavy borders/animations, and improves readability.

  • New Features

    • Sidebar: static group labels, rounded links, input-style search with ⌘K; list uses fade edges via @superset/ui’s OverflowFadeContainer.
    • Top bar: borders removed; adds a subtle gradient fade below the sticky header.
    • Mobile nav: matches label/item styling; unified active link pill via AsideLink.
  • Dependencies

    • Removed framer-motion; added @superset/ui.

Written for commit b8cca84. Summary will update on new commits.

Review in cubic

Summary by CodeRabbit

  • Style
    • Refreshed the documentation sidebar with a cleaner static layout, updated spacing, and simplified section presentation.
    • Restyled the sidebar search control and added a visible keyboard shortcut.
    • Improved active and inactive link colors and spacing.
    • Added a subtle fade beneath the navigation header.
    • Simplified mobile navigation with more compact spacing and reduced visual clutter.

- Replace bordered accordion sidebar (icons, chevrons, row borders) with
  static muted group labels and quiet rounded links
- Input-style search box with cmd-K chip, pinned above scrolling nav
- Bold group headers over muted items for clear hierarchy; active page
  marked by a subtle bg-accent pill at regular weight
- Remove top bar borders; sticky header and sidebar scroller now use the
  desktop app's OverflowFadeContainer fade-out treatment instead
- Drop now-unused framer-motion dep; add @superset/ui
@coderabbitai

coderabbitai Bot commented Aug 3, 2026 •

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: e435acdd-1442-4f2c-80a9-8138e45e4252

📥 Commits

Reviewing files that changed from the base of the PR and between 9c101b4 and b8cca84.

⛔ Files ignored due to path filters (1)
  • bun.lock is excluded by !**/*.lock
📒 Files selected for processing (7)
  • apps/docs/package.json
  • apps/docs/src/app/(docs)/components/Sidebar/Sidebar.tsx
  • apps/docs/src/app/(docs)/components/Sidebar/components/SidebarContent/SidebarContent.tsx
  • apps/docs/src/app/components/NavigationBar/NavigationBar.tsx
  • apps/docs/src/app/components/NavigationBar/components/NavigationMobile/NavigationMobile.tsx
  • apps/docs/src/app/global.css
  • apps/docs/src/components/AsideLink/AsideLink.tsx
💤 Files with no reviewable changes (1)
  • apps/docs/src/app/global.css

📝 Walkthrough

Walkthrough

The docs app replaces animated, collapsible sidebar sections with static links in a fading scroll container. It removes sidebar icons, adds @superset/ui, removes framer-motion, and updates desktop and mobile navigation styling.

Changes

Documentation navigation

Layer / File(s) Summary
Static sidebar navigation
apps/docs/package.json, apps/docs/src/app/(docs)/components/Sidebar/...
The docs app adds @superset/ui and removes framer-motion. Sidebar sections no longer expose or resolve icons. The sidebar renders all links statically in an OverflowFadeContainer without collapse state, pathname tracking, or animations.
Navigation visual updates
apps/docs/src/app/components/NavigationBar/..., apps/docs/src/components/AsideLink/AsideLink.tsx
The navigation bar adds a gradient fade and removes border styling. Mobile navigation removes icons, separators, indentation, and extra section padding. Aside links use updated accent colors and spacing.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Possibly related PRs

  • superset-sh/superset#5824: Both changes reorganize sidebar and navigation UI components, including search controls and scroll-fade containers.

Suggested reviewers: saddlepaddle

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title uses conventional commit format and clearly summarizes the sidebar and top bar redesign.
Description check ✅ Passed The description explains the changes, rationale, implementation, testing, QA results, and known mobile-testing limitation.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch cleanup-docs-sidebar

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.

@greptile-apps

greptile-apps Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

The PR simplifies the documentation navigation and removes the obsolete accordion dependency.

  • Replaces collapsible desktop sidebar sections with permanently expanded groups and shared overflow-edge fades.
  • Restyles desktop and mobile navigation, search, active links, and the sticky top bar.
  • Adds the shared UI workspace package and removes framer-motion.

Confidence Score: 5/5

The PR appears safe to merge with no actionable defects identified.

The new shared component import is valid, the sidebar retains a functional fixed-height scrolling layout, current metadata satisfies the unchanged separator convention, and the removed link prop was unused.

Important Files Changed

Filename Overview
apps/docs/src/app/(docs)/components/Sidebar/Sidebar.tsx Replaces animated accordion navigation with static groups in a correctly sized shared overflow-fade scroller.
apps/docs/src/app/(docs)/components/Sidebar/components/SidebarContent/SidebarContent.tsx Removes legacy icon mapping while preserving the existing separator format used by all current documentation groups.
apps/docs/src/components/AsideLink/AsideLink.tsx Removes an unused prop and updates link styling without changing active-path behavior.
apps/docs/src/app/components/NavigationBar/NavigationBar.tsx Replaces hard navigation borders with a non-interactive gradient fade.
apps/docs/src/app/components/NavigationBar/components/NavigationMobile/NavigationMobile.tsx Aligns mobile navigation group and item styling with the redesigned desktop sidebar.
apps/docs/package.json Adds the shared UI package needed by the sidebar and removes the no-longer-used animation dependency.

Reviews (1): Last reviewed commit: "feat(docs): redesign sidebar and top bar..." | Re-trigger Greptile

@github-actions

github-actions Bot commented Aug 3, 2026 •

Copy link
Copy Markdown
Contributor

🧹 Preview Cleanup Complete

The following preview resources have been cleaned up:

  • ✅ Neon database branch

Thank you for your contribution! 🎉

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 issue found across 8 files

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="apps/docs/src/app/(docs)/components/Sidebar/Sidebar.tsx">

<violation number="1" location="apps/docs/src/app/(docs)/components/Sidebar/Sidebar.tsx:28">
P3: The <kbd> hint hardcodes ⌘K, which mislabels the shortcut for Windows/Linux users where the search command is Ctrl+K. Consider showing the platform-appropriate modifier (e.g., detect Meta vs ctrl and render ⌘ or Ctrl) so the hint matches the real binding on every OS.</violation>
</file>
Architecture diagram
sequenceDiagram
    participant Client as Browser
    participant Navbar as NavigationBar (Sticky Top)
    participant Sidebar as Sidebar (Desktop)
    participant MobileNav as NavigationMobile
    participant OverflowFade as OverflowFadeContainer
    participant FumaSearch as Fumadocs Search Dialog
    participant AsideLink as AsideLink Component
    participant Router as Next.js Router

    Note over Client,Router: Documentation Page Load

    Client->>Navbar: Renders sticky header
    Navbar->>Navbar: Gradient fade strip below header (always-on CSS)
    Note over Navbar: No scroll listeners needed

    Client->>Sidebar: Renders fixed sidebar
    Sidebar->>Sidebar: Static groups (all expanded, no accordion state)

    alt User clicks search button
        Sidebar->>FumaSearch: setOpenSearch(true) on button click
        Note over Sidebar: ⌘K binding unchanged
        FumaSearch-->>Client: Opens search dialog
    end

    Note over Sidebar: Group labels always visible, no collapse/expand

    Sidebar->>OverflowFade: Wrap scrollable list with fadeEdges=[top,bottom]
    OverflowFade->>OverflowFade: Apply mask-image for fade at top and bottom
    Note over OverflowFade: Items dissolve near search box and bottom edge

    Sidebar->>Sidebar: Parse sections from meta.json separator format
    Note over Sidebar: Strips legacy "<Icon> <Title>" prefix, uses title only

    Sidebar->>AsideLink: Render each navigation item
    AsideLink->>Router: Check if current path matches href
    alt Active page
        AsideLink->>AsideLink: Apply bg-accent + text-accent-foreground pill
    else Inactive page
        AsideLink->>AsideLink: Apply muted foreground, no background
    end

    Client->>MobileNav: Opens mobile nav (small viewport)
    MobileNav->>MobileNav: Render static group labels (no icons)
    MobileNav->>MobileNav: Render items with muted links
    Note over MobileNav: Same AsideLink styling, no framer-motion animations

    Note over Client,MobileNav: No longer uses framer-motion for any transitions
Loading

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

<p className="text-sm">Search documentation...</p>
<Search className="size-3.5 shrink-0" />
<span className="grow truncate text-left">Search docs...</span>
<kbd className="rounded border border-border px-1 py-px text-[11px] font-medium text-muted-foreground">

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P3: The hint hardcodes ⌘K, which mislabels the shortcut for Windows/Linux users where the search command is Ctrl+K. Consider showing the platform-appropriate modifier (e.g., detect Meta vs ctrl and render ⌘ or Ctrl) so the hint matches the real binding on every OS.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At apps/docs/src/app/(docs)/components/Sidebar/Sidebar.tsx, line 28:

<comment>The <kbd> hint hardcodes ⌘K, which mislabels the shortcut for Windows/Linux users where the search command is Ctrl+K. Consider showing the platform-appropriate modifier (e.g., detect Meta vs ctrl and render ⌘ or Ctrl) so the hint matches the real binding on every OS.</comment>

<file context>
@@ -1,113 +1,58 @@
-						<p className="text-sm">Search documentation...</p>
+						<Search className="size-3.5 shrink-0" />
+						<span className="grow truncate text-left">Search docs...</span>
+						<kbd className="rounded border border-border px-1 py-px text-[11px] font-medium text-muted-foreground">
+							⌘K
+						</kbd>
</file context>

@Kitenite
Kitenite merged commit 8538ba8 into main Aug 3, 2026
19 checks passed

This branch was previously deployed

1 inactive deployment
preview — b8cca84f Deployed Aug 3, 2026 by Kitenite via Deploy API #7047
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant