$ the-wire · showcase
VitePress adds asset sharding, fixes Safari CJK glyph fallback
By RepoJournal · Filed · About Vue.js · Composed from the cited sources · methodology
VitePress shipped opt-in asset sharding and routed CJK symbol fallback through the system font on WebKit, fixing wrong-weight full-width characters in Safari on macOS and iOS.
VitePress added support for asset sharding [1], letting builds split static assets across sharded output instead of a single bundle. Separately, a theme fix routes CJK symbol fallback through the system font on WebKit [2], correcting full-width characters such as `|` that rendered at the wrong weight in Safari on macOS and iOS while Chrome and Orion showed them correctly [3]. The root cause is that macOS 26 and iOS 26 ship a reduced PingFang for web content: roughly 1,400 glyphs (U+FF5C |, ①, ★, ※, kana) live in a hidden ".CJK Symbols Fallback" font that only CoreText's language-aware fallback resolves. Safari keeps the full on-demand font, flagged as user-installed, away from web content.
VitePress also fixed dangling Vue symlinks left behind after a deps upgrade [4], cleaning up broken links in the install tree. The change is narrow and doesn't alter build output.
On the JSX Vapor side, two type-level fixes landed: Vapor block type is now inferred via a conditional type [5], and the JSX global namespace is populated [6]. Both target type resolution for Vapor-mode JSX; consumers relying on inferred block types or global JSX declarations should see accuracy, not a runtime change.
Action items
- → Upgrade vitepress to pick up the WebKit CJK fallback fix if you ship Chinese-language docs vuejs/vitepress [plan]
- → Re-run your docs build to clear dangling Vue symlinks if you upgraded deps recently vuejs/vitepress [plan]
- → Upgrade to the latest vue-jsx-vapor for corrected Vapor block and JSX global type inference vuejs/vue-jsx-vapor [monitor]
References
- [1] feat: add support for asset sharding ↗ vuejs/vitepress
- [2] fix(theme): route CJK symbol fallback through the system font on WebKit ↗ vuejs/vitepress
- [3] fix(theme): route CJK symbol fallback through the system font on WebKit ↗ vuejs/vitepress
- [4] fix: handle dangling vue symlinks after deps upgrade ↗ vuejs/vitepress
- [5] fix(types): infer Vapor block type via conditional type ↗ vuejs/vue-jsx-vapor
- [6] fix(types): populate JSX global namespace ↗ vuejs/vue-jsx-vapor