Vite builds to dist/, deliberately not www/. www/ is still produced by sync-www.sh for the Phase 1 APK, which stays installable throughout the port; cutover is a one-line webDir change in capacitor.config.json. base is relative because Capacitor serves the bundle from the APK, where absolute asset paths would 404. index.html omits viewport-fit=cover on purpose. That string is what makes Capacitor's SystemBars plugin pass insets through to the page; without it the plugin pads the decor view and the layout is always between the status and gesture bars. Phase 1 learned this the hard way. Fonts are self-hosted for offline use, latin subsets only: three files at 68K, against the 133K Barlow costs today. Space Grotesk is variable, so one file covers 400-700. Dropped latin-ext and vietnamese. Carets are drawn as SVG, not typed. U+25BE and U+23EE sit outside every Latin subset and would fall back to a system font mid-label. base.css carries the settled palette and the measured vertical budget as tokens, so a component cannot quietly exceed it: 8 + 44 + 8 + 525 + 8 + 84 + 8 + 50 = 735 Verified: typecheck clean, 103 tests, vite build emits with the fonts copied, and www/ is untouched. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
25 lines
762 B
TypeScript
25 lines
762 B
TypeScript
import react from "@vitejs/plugin-react";
|
|
import { defineConfig } from "vite";
|
|
|
|
/**
|
|
* Builds to dist/, deliberately not www/.
|
|
*
|
|
* www/ is still produced by scripts/sync-www.sh for the Phase 1 APK, which stays
|
|
* installable while the port is in progress. Cutover is a one-line change to
|
|
* webDir in capacitor.config.json once the React app replaces it.
|
|
*
|
|
* base is relative because Capacitor serves the bundle from the APK, not a
|
|
* domain root; absolute asset paths would 404 there.
|
|
*/
|
|
export default defineConfig({
|
|
plugins: [react()],
|
|
base: "./",
|
|
build: {
|
|
outDir: "dist",
|
|
// The panel is one dense screen; a single bundle beats chunk round-trips
|
|
// from a file:// style origin.
|
|
assetsInlineLimit: 0,
|
|
target: "es2022",
|
|
},
|
|
});
|