Files
christopherkindl 80595e6463 [home][docs] migrate to new geistdocs facelift (#1666)
* 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: ba7353f1fc
I, christopherkindl <53372002+christopherkindl@users.noreply.github.com>, hereby add my Signed-off-by to this commit: e83ca813b1
I, christopherkindl <53372002+christopherkindl@users.noreply.github.com>, hereby add my Signed-off-by to this commit: 8e69ff0d6b

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

## Bug Analysis

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.

## Fix

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: eefbc9744a

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>
2026-04-14 13:36:44 +02:00

43 lines
3.6 KiB
TypeScript

/**
* Temporary Flags SDK logo fallback.
*/
export function LogoFlagsSdk({
height = 22,
className,
}: {
height?: number;
className?: string;
}) {
const width = (76 / 22) * height;
return (
<svg
aria-hidden="true"
className={className}
fill="none"
height={height}
role="img"
viewBox="0 0 76 22"
width={width}
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M1.476 4.22H9.972V6.218H3.744V9.764H9.648V11.726H3.744V17H1.476V4.22ZM11.7114 4.22H13.9434V14.57C13.9434 15.02 14.1774 15.236 14.6094 15.236H15.3654V17H14.0514C12.6474 17 11.7114 16.118 11.7114 14.66V4.22ZM16.379 10.358C16.757 8.396 18.287 7.244 20.591 7.244C23.327 7.244 24.767 8.666 24.767 11.33V14.66C24.767 15.2 24.983 15.344 25.361 15.344H25.721V17L25.163 17.018C24.389 17.018 22.949 17 22.805 15.542C22.355 16.478 21.293 17.216 19.655 17.216C17.747 17.216 16.217 16.19 16.217 14.498C16.217 12.626 17.603 12.032 19.835 11.6L22.517 11.06C22.499 9.602 21.887 8.9 20.591 8.9C19.565 8.9 18.899 9.44 18.665 10.484L16.379 10.358ZM18.521 14.426C18.521 15.092 19.079 15.614 20.231 15.614C21.563 15.614 22.553 14.66 22.553 12.716V12.626L20.717 12.95C19.475 13.184 18.521 13.31 18.521 14.426ZM30.5774 16.532C27.9854 16.532 26.3294 14.642 26.3294 11.96C26.3294 9.188 28.0214 7.244 30.5774 7.244C31.8014 7.244 32.8094 7.892 33.2774 8.918V7.46H35.4554V15.938C35.4554 18.458 33.5834 19.916 30.9014 19.916C28.7414 19.916 27.1034 18.836 26.5994 17.18L28.8854 17.036C29.2094 17.756 29.9114 18.188 30.9194 18.188C32.3594 18.188 33.2054 17.54 33.2054 16.244V15.002C32.6654 16.01 31.6034 16.532 30.5774 16.532ZM28.6334 11.942C28.6334 13.634 29.5334 14.84 30.9734 14.84C32.3774 14.84 33.2594 13.634 33.2774 11.942C33.2954 10.25 32.4134 9.062 30.9734 9.062C29.5154 9.062 28.6334 10.25 28.6334 11.942ZM43.1598 10.502C42.9798 9.53 42.0798 8.954 41.1798 8.954C40.2618 8.954 39.5418 9.422 39.5598 10.196C39.5778 11.006 40.5858 11.33 41.5218 11.51C44.0598 11.942 45.5358 12.608 45.5358 14.462C45.5358 16.352 43.6818 17.216 41.5038 17.216C38.9298 17.216 37.1838 15.992 37.0218 13.976L39.3078 13.85C39.4878 14.858 40.2438 15.488 41.4678 15.488C42.2598 15.488 43.2318 15.2 43.2318 14.39C43.2138 13.454 42.1338 13.31 41.1438 13.094C38.8938 12.644 37.2558 12.05 37.2558 10.25C37.2558 8.378 38.8038 7.226 41.3058 7.226C43.5018 7.226 45.1038 8.45 45.4098 10.394L43.1598 10.502Z"
fill="currentColor"
/>
<rect
height="12.1517"
rx="6.07585"
stroke="currentColor"
strokeWidth="1.28793"
width="24.7957"
x="49.644"
y="4.92414"
/>
<path
d="M54.5852 12.141C54.732 12.9143 55.2606 13.4135 56.1611 13.4135C56.8463 13.4135 57.3063 13.1394 57.2966 12.6207C57.2966 12.0823 56.8365 11.7887 55.7207 11.5048C54.2622 11.1622 53.2932 10.5553 53.2932 9.42969C53.2932 8.1768 54.3307 7.39374 55.8773 7.39374C57.4336 7.39374 58.4809 8.3432 58.6375 9.73313L57.2183 9.80165C57.1204 9.05774 56.6114 8.59769 55.8479 8.59769C55.1921 8.59769 54.7223 8.93049 54.7418 9.44927C54.7614 10.0757 55.5053 10.2715 56.2492 10.4477C57.7566 10.7903 58.755 11.4559 58.755 12.5619C58.755 13.8833 57.5804 14.6175 56.1122 14.6175C54.4384 14.6175 53.2638 13.6876 53.1561 12.2193L54.5852 12.141ZM61.5555 7.55035C63.797 7.55035 65.0499 8.80325 65.0499 11.035C65.0499 13.2569 63.8264 14.5 61.6142 14.5H59.1868V7.55035H61.5555ZM60.6158 13.2863H61.5555C62.9357 13.2863 63.6013 12.5521 63.6013 11.035C63.6013 9.49821 62.9357 8.76409 61.5555 8.76409H60.6158V13.2863ZM65.3839 7.55035H66.813V10.6141L69.3873 7.55035H70.9926L68.4281 10.6141L71.159 14.5H69.5929L67.5373 11.5733L66.813 12.4249V14.5H65.3839V7.55035Z"
fill="currentColor"
/>
</svg>
);
}