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
+5 -1
View File
@@ -2,6 +2,7 @@
import { createRootRoute, HeadContent, Outlet, Scripts } from '@tanstack/react-router'
import * as React from 'react'
import { RootProvider } from 'fumadocs-ui/provider/tanstack'
import '@fontsource-variable/geist'
import appCss from '@/styles/app.css?url'
export const Route = createRootRoute({
@@ -12,7 +13,10 @@ export const Route = createRootRoute({
{ name: 'color-scheme', content: 'dark light' },
{ title: 'punktfunk docs' },
],
links: [{ rel: 'stylesheet', href: appCss }],
links: [
{ rel: 'stylesheet', href: appCss },
{ rel: 'icon', type: 'image/svg+xml', href: '/favicon.svg' },
],
}),
component: RootComponent,
})