feat(docs-site): brand the docs to match the punktfunk website

Theme the Fumadocs docs site with the punktfunk identity, mirroring the
marketing site:

- Swap the stock `neutral` preset for `purple`, then override --color-fd-*
  with the violet lens-mark palette (#6c5bf3 / #a79ff8). The brand is the
  violet, not the site's blue marketing background, so the blue is not used
  as a reading surface; dark mode tints the chrome toward the app-icon
  violet-dark (#1c1530).
- Adopt @unom/ui's token contract (--brand/--primary/--accent + bg-brand
  etc.) as the shared token source, and @source its dist.
- Load Geist (the brand typeface) via @fontsource-variable/geist.
- Add the BrandMark lens to the nav + landing hero, wire the brand
  favicon.svg, and add Docs/Website nav links.
- Keep the Fumadocs light/dark toggle.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-20 14:40:30 +02:00
parent 68e772b662
commit dc183ac898
10 changed files with 903 additions and 19 deletions
+12 -1
View File
@@ -1,10 +1,21 @@
import type { BaseLayoutProps } from 'fumadocs-ui/layouts/shared'
import BrandMark from '@/components/BrandMark'
// Shared chrome (nav title, links) for both the docs layout and the home layout.
// The lens mark + wordmark mirror the punktfunk marketing site's header.
export function baseOptions(): BaseLayoutProps {
return {
nav: {
title: 'punktfunk',
title: (
<>
<BrandMark className="size-6" />
<span className="font-display font-semibold tracking-tight">punktfunk</span>
</>
),
},
links: [
{ text: 'Docs', url: '/docs' },
{ text: 'Website', url: 'https://punktfunk.unom.io' },
],
}
}