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.
39 lines
1.1 KiB
JSON
39 lines
1.1 KiB
JSON
{
|
|
"name": "example-react-router",
|
|
"private": true,
|
|
"type": "module",
|
|
"scripts": {
|
|
"build": "react-router build",
|
|
"dev": "react-router dev",
|
|
"start": "react-router-serve ./build/server/index.js",
|
|
"types:check": "react-router typegen && @hanzo/docs-mdx && tsc --noEmit"
|
|
},
|
|
"dependencies": {
|
|
"@hanzo/docs-core": "workspace:*",
|
|
"@hanzo/docs-mdx": "workspace:*",
|
|
"@hanzo/docs-ui": "workspace:*",
|
|
"@hanzo/font": "^1.8.8",
|
|
"@react-router/node": "^7.13.2",
|
|
"@react-router/serve": "^7.13.2",
|
|
"@takumi-rs/image-response": "^0.73.1",
|
|
"isbot": "^5.1.36",
|
|
"lucide-react": "^1.0.1",
|
|
"react": "^19.2.4",
|
|
"react-dom": "^19.2.4",
|
|
"react-router": "^7.13.2",
|
|
"tailwind-merge": "^3.5.0"
|
|
},
|
|
"devDependencies": {
|
|
"@react-router/dev": "^7.15.1",
|
|
"@tailwindcss/vite": "^4.3.0",
|
|
"@types/mdx": "^2.0.13",
|
|
"@types/node": "^25.9.1",
|
|
"@types/react": "^19.2.15",
|
|
"@types/react-dom": "^19.2.3",
|
|
"react-router-devtools": "^6.2.0",
|
|
"tailwindcss": "^4.3.0",
|
|
"typescript": "^6.0.3",
|
|
"vite": "^8.0.14"
|
|
}
|
|
}
|