fix(lcars): bundle Antonio + Share Tech Mono via @font-face (host bundled_fonts inert)

- host does not consume bundled_fonts; declare @font-face against served
  /templates/lcars/fonts/*.woff2 paths so --font-* resolve to real faces
- all 5 presets set typography.fontHeading/body/mono to template:lcars:<Family>

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Alex Dunmow 2026-07-06 19:57:15 +08:00
parent 7c7f249fa4
commit 73a139e032
2 changed files with 34 additions and 0 deletions

View File

@ -137,6 +137,15 @@ css:
1:1 onto the override vocabulary. 1:1 onto the override vocabulary.
============================================================ */ ============================================================ */
/* Bundled display faces. The host does not consume bundled_fonts
(LoadedPlugin.BundledFonts is unconsumed), so the theme declares its own
@font-face against the served artifact paths (/templates/lcars/fonts/...).
Presets set typography.fontHeading/body/mono to template:lcars:<Family> so
--font-heading/--font-body/--font-mono resolve to these families. */
@font-face { font-family: 'Antonio'; src: url('/templates/lcars/fonts/antonio-latin.woff2') format('woff2'); font-weight: 100 700; font-style: normal; font-display: swap; }
@font-face { font-family: 'Antonio'; src: url('/templates/lcars/fonts/antonio-latin-ext.woff2') format('woff2'); font-weight: 100 700; font-style: normal; font-display: swap; unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Share Tech Mono'; src: url('/templates/lcars/fonts/share-tech-mono-latin.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
/* --- Base / layout primitives --- */ /* --- Base / layout primitives --- */
.lcars-page { font-family: var(--font-body, "Antonio", "Roboto Condensed", "Arial Narrow", system-ui, sans-serif); letter-spacing: 0.02em; } .lcars-page { font-family: var(--font-body, "Antonio", "Roboto Condensed", "Arial Narrow", system-ui, sans-serif); letter-spacing: 0.02em; }
.lcars-body { font-family: var(--font-body, "Antonio", "Roboto Condensed", "Arial Narrow", system-ui, sans-serif); } .lcars-body { font-family: var(--font-body, "Antonio", "Roboto Condensed", "Arial Narrow", system-ui, sans-serif); }

View File

@ -5,6 +5,11 @@
"description": "Canonical LCARS. Black ops ground with orange, amber, and lilac panels. Light mode is daylight-ops cream with the colour bars kept vivid.", "description": "Canonical LCARS. Black ops ground with orange, amber, and lilac panels. Light mode is daylight-ops cream with the colour bars kept vivid.",
"theme": { "theme": {
"mode": "both", "mode": "both",
"typography": {
"fontHeading": "template:lcars:Antonio",
"fontBody": "template:lcars:Antonio",
"fontMono": "template:lcars:Share Tech Mono"
},
"lightColors": { "lightColors": {
"background": "40 38% 95%", "background": "40 38% 95%",
"foreground": "28 30% 12%", "foreground": "28 30% 12%",
@ -55,6 +60,11 @@
"description": "Condition-one console. Signal red and orange over black, with an amber standby channel. Light mode reads as an emergency daylight console.", "description": "Condition-one console. Signal red and orange over black, with an amber standby channel. Light mode reads as an emergency daylight console.",
"theme": { "theme": {
"mode": "both", "mode": "both",
"typography": {
"fontHeading": "template:lcars:Antonio",
"fontBody": "template:lcars:Antonio",
"fontMono": "template:lcars:Share Tech Mono"
},
"lightColors": { "lightColors": {
"background": "20 34% 95%", "background": "20 34% 95%",
"foreground": "8 34% 12%", "foreground": "8 34% 12%",
@ -105,6 +115,11 @@
"description": "24th-century sciences layout. Periwinkle blue and cyan panels with an orange action channel over black. Light mode is a bright bridge console.", "description": "24th-century sciences layout. Periwinkle blue and cyan panels with an orange action channel over black. Light mode is a bright bridge console.",
"theme": { "theme": {
"mode": "both", "mode": "both",
"typography": {
"fontHeading": "template:lcars:Antonio",
"fontBody": "template:lcars:Antonio",
"fontMono": "template:lcars:Share Tech Mono"
},
"lightColors": { "lightColors": {
"background": "215 34% 96%", "background": "215 34% 96%",
"foreground": "220 32% 14%", "foreground": "220 32% 14%",
@ -155,6 +170,11 @@
"description": "Deep-space media suite. Lilac and magenta panels with a peach action channel over indigo-black. Light mode keeps the nebula hues on soft violet paper.", "description": "Deep-space media suite. Lilac and magenta panels with a peach action channel over indigo-black. Light mode keeps the nebula hues on soft violet paper.",
"theme": { "theme": {
"mode": "both", "mode": "both",
"typography": {
"fontHeading": "template:lcars:Antonio",
"fontBody": "template:lcars:Antonio",
"fontMono": "template:lcars:Share Tech Mono"
},
"lightColors": { "lightColors": {
"background": "280 30% 96%", "background": "280 30% 96%",
"foreground": "278 30% 14%", "foreground": "278 30% 14%",
@ -205,6 +225,11 @@
"description": "Sickbay diagnostic layout. Teal and green panels with an amber alert channel over black. Light mode is a clean daylight medbay readout.", "description": "Sickbay diagnostic layout. Teal and green panels with an amber alert channel over black. Light mode is a clean daylight medbay readout.",
"theme": { "theme": {
"mode": "both", "mode": "both",
"typography": {
"fontHeading": "template:lcars:Antonio",
"fontBody": "template:lcars:Antonio",
"fontMono": "template:lcars:Share Tech Mono"
},
"lightColors": { "lightColors": {
"background": "150 26% 96%", "background": "150 26% 96%",
"foreground": "165 30% 12%", "foreground": "165 30% 12%",