- playground/voyage-playground.html: minimal skeleton (DOCTYPE, app-header, guide-panel, aria-live region, skip-to-main link). Steps 8-11 will extend with render-pipeline + creation gestures + sidebar + export. - playground/vendor/playground-design-system/: synced via 'node scripts/sync-design-system.mjs voyage' (27 files + MANIFEST.json with source_commit + sync_date + SHA-256 per file). - tests/playground/voyage-playground.test.mjs: 8 tests pinning HTML existence, DOCTYPE, no-external-URLs, no-marked, A11Y skip-to-main + aria-live, MANIFEST.json structure, vendored DS files present. - shared/PLAYGROUND-MAINTENANCE.md: consumer list updated 5 -> 6 (added voyage).
84 lines
2.2 KiB
CSS
84 lines
2.2 KiB
CSS
/* Code generated by sync-design-system.mjs; DO NOT EDIT. */
|
|
/*
|
|
* Self-hosted web fonts for Playground Design System.
|
|
*
|
|
* All three families are licensed under SIL Open Font License 1.1.
|
|
* Full license text and provenance: ./fonts/LICENSES.md
|
|
*
|
|
* Why self-hosted:
|
|
* - No external requests (no fonts.googleapis.com, no IP/UA leakage).
|
|
* - Works offline / behind air-gapped firewalls.
|
|
* - GDPR-compliant for Norwegian public-sector deployments.
|
|
*
|
|
* Bundle size: ~940 KB total across 9 woff2 files.
|
|
* Loaded via font-display: swap to avoid FOIT.
|
|
*/
|
|
|
|
/* ========== Inter (UI / body) ========== */
|
|
@font-face {
|
|
font-family: "Inter";
|
|
font-style: normal;
|
|
font-weight: 400;
|
|
font-display: swap;
|
|
src: url("./fonts/Inter-Regular.woff2") format("woff2");
|
|
}
|
|
@font-face {
|
|
font-family: "Inter";
|
|
font-style: normal;
|
|
font-weight: 500;
|
|
font-display: swap;
|
|
src: url("./fonts/Inter-Medium.woff2") format("woff2");
|
|
}
|
|
@font-face {
|
|
font-family: "Inter";
|
|
font-style: normal;
|
|
font-weight: 600;
|
|
font-display: swap;
|
|
src: url("./fonts/Inter-SemiBold.woff2") format("woff2");
|
|
}
|
|
@font-face {
|
|
font-family: "Inter";
|
|
font-style: normal;
|
|
font-weight: 700;
|
|
font-display: swap;
|
|
src: url("./fonts/Inter-Bold.woff2") format("woff2");
|
|
}
|
|
|
|
/* ========== JetBrains Mono (code) ========== */
|
|
@font-face {
|
|
font-family: "JetBrains Mono";
|
|
font-style: normal;
|
|
font-weight: 400;
|
|
font-display: swap;
|
|
src: url("./fonts/JetBrainsMono-Regular.woff2") format("woff2");
|
|
}
|
|
@font-face {
|
|
font-family: "JetBrains Mono";
|
|
font-style: normal;
|
|
font-weight: 500;
|
|
font-display: swap;
|
|
src: url("./fonts/JetBrainsMono-Medium.woff2") format("woff2");
|
|
}
|
|
@font-face {
|
|
font-family: "JetBrains Mono";
|
|
font-style: normal;
|
|
font-weight: 600;
|
|
font-display: swap;
|
|
src: url("./fonts/JetBrainsMono-SemiBold.woff2") format("woff2");
|
|
}
|
|
|
|
/* ========== Source Serif 4 (occasional editorial accents) ========== */
|
|
@font-face {
|
|
font-family: "Source Serif 4";
|
|
font-style: normal;
|
|
font-weight: 400;
|
|
font-display: swap;
|
|
src: url("./fonts/SourceSerif4-Regular.woff2") format("woff2");
|
|
}
|
|
@font-face {
|
|
font-family: "Source Serif 4";
|
|
font-style: normal;
|
|
font-weight: 600;
|
|
font-display: swap;
|
|
src: url("./fonts/SourceSerif4-Semibold.woff2") format("woff2");
|
|
}
|