Compare commits

...

4 Commits

Author SHA1 Message Date
Alex Dunmow
03751e936c bump to 0.5.0 2026-07-06 21:06:48 +08:00
Alex Dunmow
7bb7727852 feat: Wave B gallery screenshots (home/about/article x light+dark, dark preview)
Recapture after the bundled-fonts retrofit: headings now render in the
Orbitron display face, mono readouts in Share Tech Mono, body in Inter.
Digital-rain canvas hero renders in both modes (0.4.0 fix intact).
Dark-canonical: preview.png = 02-home-dark.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 21:06:35 +08:00
Alex Dunmow
734f8e37c3 bump to 0.4.1 2026-07-06 21:01:43 +08:00
Alex Dunmow
197eb9960b fix(cyberpunk): bundle fonts via theme @font-face + preset typography refs
The host does not consume LoadedPlugin.BundledFonts (dead code), so the
three fonts.json families (Orbitron/Share Tech Mono/Inter) never loaded and
rendered as fallback sans. Declare @font-face against the served
/templates/cyberpunk/fonts/*.woff2 paths (weights matching fonts.json
exactly) and point every preset's typography.fontHeading/body/mono at
template:cyberpunk:<Family> so --font-heading/body/mono resolve to the
bundled faces. gotham@1.2.0 precedent.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 21:01:18 +08:00
10 changed files with 41 additions and 3 deletions

View File

@ -122,8 +122,21 @@ css:
/* --- Typography ------------------------------------------- */ /* --- Typography ------------------------------------------- */
/* Families flow through the admin-bound CSS variables; the fallback /* Families flow through the admin-bound CSS variables; the fallback
leads with the bundled OFL family so the intended look survives leads with the bundled OFL family so the intended look survives
before the admin assigns a slot. @font-face for the bundled before the admin assigns a slot.
families is auto-emitted from fonts.json (source=template rows). */ Bundled faces: the host does NOT emit @font-face for bundled_fonts
(LoadedPlugin.BundledFonts is unconsumed dead code), so the theme
declares its own @font-face against the served artifact paths
(/templates/cyberpunk/fonts/...). Weights match fonts.json exactly;
presets set typography.fontHeading/body/mono to
template:cyberpunk:<Family> so --font-heading/body/mono resolve here. */
@font-face { font-family: 'Orbitron'; src: url('/templates/cyberpunk/fonts/orbitron-latin.woff2') format('woff2'); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: 'Orbitron'; src: url('/templates/cyberpunk/fonts/orbitron-latin.woff2') format('woff2'); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: 'Orbitron'; src: url('/templates/cyberpunk/fonts/orbitron-latin.woff2') format('woff2'); font-weight: 900; font-style: normal; font-display: swap; }
@font-face { font-family: 'Share Tech Mono'; src: url('/templates/cyberpunk/fonts/share-tech-mono-latin.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'Inter'; src: url('/templates/cyberpunk/fonts/inter-latin.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'Inter'; src: url('/templates/cyberpunk/fonts/inter-latin.woff2') format('woff2'); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: 'Inter'; src: url('/templates/cyberpunk/fonts/inter-latin.woff2') format('woff2'); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: 'Inter'; src: url('/templates/cyberpunk/fonts/inter-latin.woff2') format('woff2'); font-weight: 700; font-style: normal; font-display: swap; }
.cyberpunk-body { .cyberpunk-body {
font-family: var(--font-body, "Inter", system-ui, -apple-system, "Segoe UI", sans-serif); font-family: var(--font-body, "Inter", system-ui, -apple-system, "Segoe UI", sans-serif);

View File

@ -2,7 +2,7 @@
name = "cyberpunk" name = "cyberpunk"
display_name = "Cyberpunk" display_name = "Cyberpunk"
scope = "@themes" scope = "@themes"
version = "0.4.0" version = "0.5.0"
description = "Neon-on-black BlockNinja theme with glitch motifs, monospace accents, and magenta/cyan/lime tri-accent palette for SaaS, dev tools, and crypto." description = "Neon-on-black BlockNinja theme with glitch motifs, monospace accents, and magenta/cyan/lime tri-accent palette for SaaS, dev tools, and crypto."
kind = "theme" kind = "theme"
categories = ["templates"] categories = ["templates"]

View File

@ -5,6 +5,11 @@
"description": "Magenta-led tri-accent, the Cyberpunk default", "description": "Magenta-led tri-accent, the Cyberpunk default",
"theme": { "theme": {
"mode": "both", "mode": "both",
"typography": {
"fontHeading": "template:cyberpunk:Orbitron",
"fontBody": "template:cyberpunk:Inter",
"fontMono": "template:cyberpunk:Share Tech Mono"
},
"lightColors": { "lightColors": {
"background": "240 12% 97%", "background": "240 12% 97%",
"foreground": "260 25% 10%", "foreground": "260 25% 10%",
@ -55,6 +60,11 @@
"description": "Cyan-led, cooler chrome variant", "description": "Cyan-led, cooler chrome variant",
"theme": { "theme": {
"mode": "both", "mode": "both",
"typography": {
"fontHeading": "template:cyberpunk:Orbitron",
"fontBody": "template:cyberpunk:Inter",
"fontMono": "template:cyberpunk:Share Tech Mono"
},
"lightColors": { "lightColors": {
"background": "200 25% 97%", "background": "200 25% 97%",
"foreground": "220 30% 10%", "foreground": "220 30% 10%",
@ -105,6 +115,11 @@
"description": "Lime-led, we shipped at 3am", "description": "Lime-led, we shipped at 3am",
"theme": { "theme": {
"mode": "both", "mode": "both",
"typography": {
"fontHeading": "template:cyberpunk:Orbitron",
"fontBody": "template:cyberpunk:Inter",
"fontMono": "template:cyberpunk:Share Tech Mono"
},
"lightColors": { "lightColors": {
"background": "100 15% 97%", "background": "100 15% 97%",
"foreground": "120 20% 10%", "foreground": "120 20% 10%",
@ -155,6 +170,11 @@
"description": "Sunset pink over teal — vaporwave arcade at dusk", "description": "Sunset pink over teal — vaporwave arcade at dusk",
"theme": { "theme": {
"mode": "both", "mode": "both",
"typography": {
"fontHeading": "template:cyberpunk:Orbitron",
"fontBody": "template:cyberpunk:Inter",
"fontMono": "template:cyberpunk:Share Tech Mono"
},
"lightColors": { "lightColors": {
"background": "30 40% 97%", "background": "30 40% 97%",
"foreground": "300 30% 12%", "foreground": "300 30% 12%",
@ -205,6 +225,11 @@
"description": "Monochrome terminal — white phosphor on black, restrained neon", "description": "Monochrome terminal — white phosphor on black, restrained neon",
"theme": { "theme": {
"mode": "both", "mode": "both",
"typography": {
"fontHeading": "template:cyberpunk:Orbitron",
"fontBody": "template:cyberpunk:Inter",
"fontMono": "template:cyberpunk:Share Tech Mono"
},
"lightColors": { "lightColors": {
"background": "0 0% 98%", "background": "0 0% 98%",
"foreground": "0 0% 8%", "foreground": "0 0% 8%",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1016 KiB

After

Width:  |  Height:  |  Size: 997 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 342 KiB

After

Width:  |  Height:  |  Size: 302 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 333 KiB

After

Width:  |  Height:  |  Size: 290 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 693 KiB

After

Width:  |  Height:  |  Size: 675 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 665 KiB

After

Width:  |  Height:  |  Size: 640 KiB