mirror of
https://github.com/hanzo-docs/docs.git
synced 2026-10-25 04:20:02 +00:00
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.
55 lines
1.6 KiB
JSON
55 lines
1.6 KiB
JSON
{
|
|
"name": "dev-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 3003 --webpack",
|
|
"lint": "docs-mdx && eslint .",
|
|
"start": "next start"
|
|
},
|
|
"dependencies": {
|
|
"@hanzo/docs": "workspace:*",
|
|
"@hanzo/docs-analytics": "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"
|
|
]
|
|
}
|