From 1b7f2731185f9a70da2e6c27c3a3104e72f541b6 Mon Sep 17 00:00:00 2001 From: Alex Dunmow Date: Mon, 6 Jul 2026 20:43:04 +0800 Subject: [PATCH] feat(art-deco): bundle Cinzel/Cormorant @font-face + declare required_icon_packs Host does not consume LoadedPlugin.BundledFonts, so declare @font-face rules against served /templates/art-deco/fonts/*.woff2 and point preset typography.fontHeading/body at template:art-deco:. Declare required_icon_packs [lucide, simple-icons] so sprite URLs resolve on fresh install. Co-Authored-By: Claude Fable 5 --- manifest.yaml | 14 ++++++++++++++ presets.json | 24 ++++++++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/manifest.yaml b/manifest.yaml index 97c3db4..df3bb9a 100644 --- a/manifest.yaml +++ b/manifest.yaml @@ -3,6 +3,7 @@ theme_presets: presets.json bundled_fonts: fonts.json master_pages: master_pages.json +required_icon_packs: [lucide, simple-icons] system_templates: - key: art-deco @@ -115,6 +116,19 @@ css: * Font families always come from var(--font-heading|body|mono, ). */ + /* Bundled display faces. The host does not yet emit @font-face for + * bundled_fonts (LoadedPlugin.BundledFonts is unconsumed), so the theme + * declares its own faces against the served artifact paths + * (/templates/art-deco/fonts/...). Presets set typography.fontHeading/body + * to template:art-deco: so --font-heading/--font-body resolve to + * these families. */ + @font-face { font-family: 'Cinzel'; src: url('/templates/art-deco/fonts/cinzel-400.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; } + @font-face { font-family: 'Cinzel'; src: url('/templates/art-deco/fonts/cinzel-700.woff2') format('woff2'); font-weight: 700; font-style: normal; font-display: swap; } + @font-face { font-family: 'Cormorant Garamond'; src: url('/templates/art-deco/fonts/cormorant-garamond-400.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; } + @font-face { font-family: 'Cormorant Garamond'; src: url('/templates/art-deco/fonts/cormorant-garamond-400-italic.woff2') format('woff2'); font-weight: 400; font-style: italic; font-display: swap; } + @font-face { font-family: 'Cormorant Garamond'; src: url('/templates/art-deco/fonts/cormorant-garamond-600.woff2') format('woff2'); font-weight: 600; font-style: normal; font-display: swap; } + @font-face { font-family: 'Cormorant Garamond'; src: url('/templates/art-deco/fonts/cormorant-garamond-700.woff2') format('woff2'); font-weight: 700; font-style: normal; font-display: swap; } + @layer utilities { /* deco-rule — hairline gold rule, 1px ascending to 2px on accent lines. */ .deco-rule { diff --git a/presets.json b/presets.json index 78943c3..ddd0d4c 100644 --- a/presets.json +++ b/presets.json @@ -5,6 +5,12 @@ "description": "Jet black lifted by champagne gold — the default Art Deco palette.", "theme": { "mode": "both", + "typography": { + "fontHeading": "template:art-deco:Cinzel", + "fontBody": "template:art-deco:Cormorant Garamond", + "fontSizeBase": "17", + "lineHeightBase": "1.6" + }, "lightColors": { "background": "40 30% 96%", "foreground": "40 20% 10%", @@ -55,6 +61,12 @@ "description": "Soft ivory by day, warm ember by night, with rose-gold flourishes for weddings and jewellers.", "theme": { "mode": "both", + "typography": { + "fontHeading": "template:art-deco:Cinzel", + "fontBody": "template:art-deco:Cormorant Garamond", + "fontSizeBase": "17", + "lineHeightBase": "1.6" + }, "lightColors": { "background": "36 40% 97%", "foreground": "20 15% 14%", @@ -105,6 +117,12 @@ "description": "Velvet-tinted ivory by day, deep onyx and gold stage-light by night, for theatre and after-dark dining.", "theme": { "mode": "both", + "typography": { + "fontHeading": "template:art-deco:Cinzel", + "fontBody": "template:art-deco:Cormorant Garamond", + "fontSizeBase": "17", + "lineHeightBase": "1.6" + }, "lightColors": { "background": "280 15% 96%", "foreground": "260 20% 12%", @@ -155,6 +173,12 @@ "description": "Deco emerald and gilt — parchment and jade by day, emerald lacquer and gold by night.", "theme": { "mode": "both", + "typography": { + "fontHeading": "template:art-deco:Cinzel", + "fontBody": "template:art-deco:Cormorant Garamond", + "fontSizeBase": "17", + "lineHeightBase": "1.6" + }, "lightColors": { "background": "45 35% 95%", "foreground": "160 25% 12%",