Skip to content

Backport #1666: [home][docs] migrate to new geistdocs facelift#1761

Closed
ghost wants to merge 1 commit into
stablefrom
backport/pr-1666-to-stable
Closed

Backport #1666: [home][docs] migrate to new geistdocs facelift#1761
ghost wants to merge 1 commit into
stablefrom
backport/pr-1666-to-stable

Conversation

@ghost
Copy link
Copy Markdown

@ghost ghost commented Apr 16, 2026

Automated backport of #1666 to stable.

Merge conflicts were resolved by AI (opencode with Claude Opus). Please review the conflict resolution before merging.

* fix: migrate to new facelift

* add: max-w- for footer

* update

* DCO Remediation Commit for christopherkindl <53372002+christopherkindl@users.noreply.github.com>

I, christopherkindl <53372002+christopherkindl@users.noreply.github.com>, hereby add my Signed-off-by to this commit: ba7353f
I, christopherkindl <53372002+christopherkindl@users.noreply.github.com>, hereby add my Signed-off-by to this commit: e83ca81
I, christopherkindl <53372002+christopherkindl@users.noreply.github.com>, hereby add my Signed-off-by to this commit: 8e69ff0

Signed-off-by: christopherkindl <53372002+christopherkindl@users.noreply.github.com>

* Fix: Mobile menu's "close on route change" useEffect has empty dependency array [], making it a no-op that never fires on actual route changes.

This commit fixes the issue reported at docs/components/geistdocs/mobile-menu.tsx:80

The `MobileMenu` component at `docs/components/geistdocs/mobile-menu.tsx` line 80 has a useEffect intended to close the menu on route changes:

```js
useEffect(() => {
  setShow(false);
}, []);
```

The empty dependency array `[]` means this effect runs exactly once — on initial mount — when `show` is already `false` (its initial state). This is a complete no-op. It never detects or responds to route changes.

**When this manifests:** If a user opens the mobile menu and then navigates via browser back/forward buttons, the menu remains open and `document.body.style.overflow` stays set to `'hidden'`, completely locking page scroll. While clicking the `NavLink` items within the menu closes it via their `onClick={close}` handlers, programmatic/browser-level navigation bypasses those handlers.

**Impact:** Users on mobile who use browser navigation while the menu is open will have a broken experience — the menu stays open overlaying the page and body scroll is locked.

Replaced the empty-dependency useEffect with the correct pattern already demonstrated in the sibling `sidebar.tsx` component:

1.  Added `usePathname()` from `next/navigation` to track the current route.
2.  Added a `useRef` to store the previous pathname.
3.  Updated the useEffect to depend on `pathname`, comparing it to the previous value and closing the menu when a change is detected.

This ensures the menu closes on any route change, whether triggered by clicking a link, browser back/forward, or programmatic navigation.

Co-authored-by: Vercel <vercel[bot]@users.noreply.github.com>
Co-authored-by: christopherkindl <christopher.kindl@gmail.com>

* fix(docs): use ds-gray-900 token for muted-foreground color

Replace hardcoded oklch values with var(--ds-gray-900) for both light
and dark mode to stay in sync with the design system.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: christopherkindl <53372002+christopherkindl@users.noreply.github.com>

* fix(docs): update world component colors to use 900-level tokens

Align icon and badge colors with design system by switching from 500/600
shades to 900-level variants across WorldDetailHero and
WorldTestingPerformance components.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: christopherkindl <53372002+christopherkindl@users.noreply.github.com>

* fix(docs): update world page colors and align hero layout with TOC grid

- Align hero quick links with TOC sidebar using matching grid layout
- Add shrink-0 to hero icons for consistent vertical alignment
- Update benchmark bar colors (green for fastest, blue for others)
- Remove extra px-4 padding from hero section

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: christopherkindl <53372002+christopherkindl@users.noreply.github.com>

* polish: /worlds page

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: christopherkindl <53372002+christopherkindl@users.noreply.github.com>

* feat(docs): add filterable world cards with section grouping

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: christopherkindl <53372002+christopherkindl@users.noreply.github.com>

* fix(docs): use radix checkbox with SSR placeholder to prevent layout shift

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: christopherkindl <53372002+christopherkindl@users.noreply.github.com>

* fix(docs): use badge tabs for world filters instead of checkboxes

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: christopherkindl <53372002+christopherkindl@users.noreply.github.com>

* revert: restore .husky/pre-commit from main

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: christopherkindl <53372002+christopherkindl@users.noreply.github.com>

* fix(docs): improve benchmark history chart UI and API performance

Benchmark history dialog:
- Fix DialogContent accessibility warning (use DialogDescription)
- Fix 2MB unstable_cache error by using in-memory cache for snapshot map
- Add Geist-style underline variant to Tabs component
- Add skeleton loading state matching stat cards + chart layout
- Add Geist shimmer effect to Skeleton component (--ds-gray-100/200 gradient)
- Add --ds-shadow-tooltip token and apply to chart tooltip
- Use design tokens for all chart colors (--ds-blue-800, --ds-green-800, --ds-purple-900)
- Use linear interpolation, solid gridlines (--ds-gray-400), no animations
- Add 10% fill area under single-line charts, hide for multi-line
- Add white ring to chart dots, equidistant x-axis labels
- Stale-while-revalidate client cache for instant mode switching
- Stat cards refactored to use .map() over a data array
- Lock dialog height with min-h to prevent layout shift

API performance:
- Early exit on gh-pages pagination (cap at MAX_ITEMS * 3)
- Use snapshot timestamp for releases (eliminates 30 serial API calls)
- Increase fetch batch size from 10 to 30
- Remove unstable_cache, rely on in-memory + fetch-level caching

Other:
- Add recharts.d.ts type augmentation for React 19 compatibility

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: christopherkindl <53372002+christopherkindl@users.noreply.github.com>

* fix(docs): add missing geist tokens and utilities from homepage-visuals

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: christopherkindl <53372002+christopherkindl@users.noreply.github.com>

* [DO NOT MERGE][home] Adds vercel-com workflow visuals (#1674)

* add: visualizations

* DCO Remediation Commit for christopherkindl <53372002+christopherkindl@users.noreply.github.com>

I, christopherkindl <53372002+christopherkindl@users.noreply.github.com>, hereby add my Signed-off-by to this commit: eefbc97

Signed-off-by: christopherkindl <53372002+christopherkindl@users.noreply.github.com>

* fix: adjust bar border radius and add @container to feature cards

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: christopherkindl <53372002+christopherkindl@users.noreply.github.com>

* fix: use rounded-lg for bar border radius, add @container to wide card

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: christopherkindl <53372002+christopherkindl@users.noreply.github.com>

* revert: restore geistdocs.css from main

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: christopherkindl <53372002+christopherkindl@users.noreply.github.com>

---------

Signed-off-by: christopherkindl <53372002+christopherkindl@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(docs): add mobile docs bar to cookbook pages

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: christopherkindl <53372002+christopherkindl@users.noreply.github.com>

* fix(docs): add mobile docs bar to cookbook pages

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: christopherkindl <53372002+christopherkindl@users.noreply.github.com>

* fix(docs): increase hero section vertical spacing

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: christopherkindl <53372002+christopherkindl@users.noreply.github.com>

* chore(docs): remove recharts React 19 type shim

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: christopherkindl <53372002+christopherkindl@users.noreply.github.com>

* fix(docs): hoist useTransform calls to top level of components

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: christopherkindl <53372002+christopherkindl@users.noreply.github.com>

* fix(docs): add optional chaining for world.features access

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: christopherkindl <53372002+christopherkindl@users.noreply.github.com>

* fix(docs): log warning when benchmark pagination cap is hit

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: christopherkindl <53372002+christopherkindl@users.noreply.github.com>

* fix(docs): make filter badges keyboard accessible

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: christopherkindl <53372002+christopherkindl@users.noreply.github.com>

* fix(docs): clean up setTimeout on unmount in globe path components

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: christopherkindl <53372002+christopherkindl@users.noreply.github.com>

* feat(docs): add full-width frameworks section to homepage

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: christopherkindl <53372002+christopherkindl@users.noreply.github.com>

* feat(docs): update navbar logo and add framework logos from geist symbols

- Replace LogoWorkflowSdk with Geist symbols wordmark (LogoWorkflow)
- Add currentColor framework logo icons from geistcn-assets
- Add full-width frameworks section to homepage with colored logos
- TanStack shown as "Coming soon" with analytics tracking

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: christopherkindl <53372002+christopherkindl@users.noreply.github.com>

* docs: add comment noting timestamp semantic change in benchmark API

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: christopherkindl <53372002+christopherkindl@users.noreply.github.com>

* fix(docs): move frameworks section after effortless setup on homepage

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: christopherkindl <53372002+christopherkindl@users.noreply.github.com>

---------

Signed-off-by: christopherkindl <53372002+christopherkindl@users.noreply.github.com>
Co-authored-by: Vercel <vercel[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@ghost ghost self-requested a review as a code owner April 16, 2026 01:54
@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented Apr 16, 2026

⚠️ No Changeset found

Latest commit: ff9e00c

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@vercel
Copy link
Copy Markdown
Contributor

vercel Bot commented Apr 16, 2026

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

Project Deployment Actions Updated (UTC)
example-nextjs-workflow-turbopack Ready Ready Preview, Comment Apr 16, 2026 1:56am
example-nextjs-workflow-webpack Ready Ready Preview, Comment Apr 16, 2026 1:56am
example-workflow Ready Ready Preview, Comment Apr 16, 2026 1:56am
workbench-astro-workflow Ready Ready Preview, Comment Apr 16, 2026 1:56am
workbench-express-workflow Ready Ready Preview, Comment Apr 16, 2026 1:56am
workbench-fastify-workflow Ready Ready Preview, Comment Apr 16, 2026 1:56am
workbench-hono-workflow Ready Ready Preview, Comment Apr 16, 2026 1:56am
workbench-nitro-workflow Ready Ready Preview, Comment Apr 16, 2026 1:56am
workbench-nuxt-workflow Ready Ready Preview, Comment Apr 16, 2026 1:56am
workbench-sveltekit-workflow Ready Ready Preview, Comment Apr 16, 2026 1:56am
workbench-vite-workflow Ready Ready Preview, Comment Apr 16, 2026 1:56am
workflow-docs Error Error Apr 16, 2026 1:56am
workflow-swc-playground Ready Ready Preview, Comment Apr 16, 2026 1:56am
workflow-web Ready Ready Preview, Comment Apr 16, 2026 1:56am

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 16, 2026

🧪 E2E Test Results

Some tests failed

Summary

Passed Failed Skipped Total
❌ ▲ Vercel Production 900 1 67 968
✅ 🪟 Windows 80 0 8 88
Total 980 1 75 1056

❌ Failed Tests

▲ Vercel Production (1 failed)

example (1 failed):

Details by Category

❌ ▲ Vercel Production
App Passed Failed Skipped
✅ astro 81 0 7
❌ example 80 1 7
✅ express 81 0 7
✅ fastify 81 0 7
✅ hono 81 0 7
✅ nextjs-turbopack 86 0 2
✅ nextjs-webpack 86 0 2
✅ nitro 81 0 7
✅ nuxt 81 0 7
✅ sveltekit 81 0 7
✅ vite 81 0 7
✅ 🪟 Windows
App Passed Failed Skipped
✅ nextjs-turbopack 80 0 8

📋 View full workflow run


Some E2E test jobs failed:

  • Vercel Prod: failure
  • Local Dev: failure
  • Local Prod: failure
  • Local Postgres: failure
  • Windows: success

Check the workflow run for details.

Copy link
Copy Markdown
Contributor

@vercel vercel Bot left a comment

Choose a reason for hiding this comment

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

Additional Suggestion:

The file docs/lib/geistdocs/cookbook-source.ts is completely missing from the repository, causing the build to fail with 3 "Module not found" errors.

Fix on Vercel

@TooTallNate TooTallNate deleted the backport/pr-1666-to-stable branch April 16, 2026 05:48
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.

2 participants