forked from unom/punktfunk
Move the management console (web/) off shadcn/ui to the shared @unom/ui design system the marketing site + docs are built on, on the punktfunk violet brand over dark chrome: - Add @unom/ui/@unom/style/motion/radix-ui/zod + Geist; web/.npmrc maps the @unom scope (packages are public-read, so CI needs no npm auth). - styles.css: one dark-violet palette (#141019/#1c1530, brand #6c5bf3 -> #a79ff8) exposed under BOTH the shadcn token names the routes use and @unom/ui's contract, so routes + components both resolve; pulls in @unom/ui's material gloss + easings. - components/ui/* now back onto @unom/ui (AnimatedButton/InputText/Label/ AnimatedCard); brand-mark/wordmark/logo replace the generic Radio icon in the shell + login. - MaterialProvider (specular gloss) at the root. No UI sounds, like the site. docs-site: new /api route renders the host management REST API as an interactive Scalar reference (reads public/openapi.json, a snapshot of docs/api/openapi.json), branded violet and linked from the top nav, the docs sidebar, the landing page, and host-cli.md. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
25 lines
757 B
TypeScript
25 lines
757 B
TypeScript
import type { BaseLayoutProps } from 'fumadocs-ui/layouts/shared'
|
|
import BrandMark from '@/components/BrandMark'
|
|
import Wordmark from '@/components/Wordmark'
|
|
|
|
// 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: (
|
|
<>
|
|
<BrandMark className="size-6" />
|
|
<Wordmark className="h-4" />
|
|
</>
|
|
),
|
|
},
|
|
links: [
|
|
{ text: 'Docs', url: '/docs' },
|
|
{ text: 'API', url: '/api' },
|
|
{ text: 'Website', url: 'https://punktfunk.unom.io' },
|
|
{ text: 'Source code', url: 'https://git.unom.io/unom/punktfunk' },
|
|
],
|
|
}
|
|
}
|