Files
zooqueen b605993234 Zen is the family across every app, example and static page
The docs estate declared its typeface in 30 root layouts and one linked
stylesheet, each pulling a third-party family off a hosted font CDN on the
critical path of every route. Two of those surfaces also self-hosted the
faces, so the same bytes were vendored by hand in the repo.

@hanzo/font 1.8.8 is where Zen is authored. It is now mounted the way this
repo already mounts every other package stylesheet — `@import '@hanzo/font/css'`
at the top of the app's own sheet — which declares the @font-face rules and
publishes --font-zen-sans / --font-zen-mono. A single :root block per app binds
those to --font-sans / --font-mono, the pair every rule and every font-*
utility already read, so the variable contract is untouched and the next face
swap is two lines rather than a sweep. Genuine system fallbacks stay.

Mounting through the sheet rather than a JS side-effect import also drops the
untyped bare subpath TypeScript could not resolve, so no per-app declaration
shim is needed.

public/reference/ is static HTML with no bundler, so it keeps its own
@font-face; scripts/sync-reference-fonts.ts copies the two variable faces out
of the installed package on each build and the directory is ignored, the same
rule public/openapi/ already follows. The hand-vendored faces are deleted.

Also corrects the brand typography table, which still named a face Hanzo does
not ship, and the three sample configs and two skill pages that repeated it.
2026-08-24 13:20:49 -07:00

54 lines
1.6 KiB
JSON

{
"name": "bootnode-docs",
"version": "0.1.1",
"private": true,
"scripts": {
"build": "pnpm build:pre && next build --webpack && pnpm build:post",
"build:pre": "bun ./scripts/pre-build.ts",
"build:post": "bun ./scripts/post-build.ts",
"types:check": "docs-mdx && next typegen && tsc --noEmit",
"clean": "rimraf .next",
"dev": "next dev --port 3005 --webpack",
"lint": "docs-mdx && eslint .",
"start": "next start"
},
"dependencies": {
"@hanzo/docs": "workspace:*",
"@hanzo/docs-base-ui": "workspace:*",
"@hanzo/docs-core": "workspace:*",
"@hanzo/docs-mdx": "workspace:*",
"@hanzo/font": "^1.8.8",
"@hanzo/mdx-runtime": "workspace:*",
"@shikijs/rehype": "^3.21.0",
"@shikijs/transformers": "^3.21.0",
"class-variance-authority": "^0.7.1",
"lucide-react": "^0.562.0",
"next": "16.2.12",
"next-themes": "^0.4.6",
"react": "^19.2.8",
"react-dom": "^19.2.8",
"shiki": "^3.21.0",
"tailwind-merge": "^3.4.0",
"zod": "^4.3.5"
},
"devDependencies": {
"@hanzo/docs-cli": "workspace:*",
"@next/bundle-analyzer": "16.2.12",
"@next/env": "16.2.12",
"@next/eslint-plugin-next": "16.2.12",
"@tailwindcss/postcss": "^4.1.18",
"@types/node": "25.0.5",
"@types/react": "^19.2.18",
"@types/react-dom": "^19.2.4",
"browserslist-config-baseline": "^0.5.0",
"postcss": "^8.5.6",
"tailwindcss": "^4.1.18",
"tailwindcss-animate": "^1.0.7",
"tsconfig": "workspace:*",
"typescript": "^6.0.3"
},
"browserslist": [
"extends browserslist-config-baseline/2024"
]
}