Compare commits

...

2 Commits

Author SHA1 Message Date
Alex Dunmow
63dfff0f19 feat(brutalist): bundle fonts + declare icon packs + Wave B reshoot (0.7.0)
@font-face for the 4 bundled families (8 woff2) served from
/templates/brutalist/fonts/, typography refs in all 4 presets
(Space Grotesk / Inter / IBM Plex Mono), required_icon_packs
[lucide, simple-icons], and recaptured gallery screenshots
(home/about/article x light+dark) with fonts now loading.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 20:54:19 +08:00
Alex Dunmow
b1650b2979 bump to 0.6.2 2026-07-06 20:46:49 +08:00
10 changed files with 37 additions and 1 deletions

View File

@ -3,6 +3,7 @@
theme_presets: presets.json theme_presets: presets.json
bundled_fonts: fonts.json bundled_fonts: fonts.json
master_pages: master_pages.json master_pages: master_pages.json
required_icon_packs: [lucide, simple-icons]
system_templates: system_templates:
- key: brutalist - key: brutalist
@ -111,6 +112,21 @@ css:
input_css_append: | input_css_append: |
/* === Brutalist theme utilities === */ /* === Brutalist theme utilities === */
/* Bundled display faces. The host does not yet emit @font-face for
* bundled_fonts (LoadedPlugin.BundledFonts is unconsumed), so the theme
* self-serves them from its packed asset dir (/templates/brutalist/fonts/...).
* Presets set typography.fontHeading/body/mono to template:brutalist:<family>
* so --font-heading/body/mono resolve to these families. Families/weights
* mirror fonts.json exactly (8 woff2). */
@font-face { font-family: 'Space Grotesk'; src: url('/templates/brutalist/fonts/space-grotesk-500.woff2') format('woff2'); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: 'Space Grotesk'; src: url('/templates/brutalist/fonts/space-grotesk-700.woff2') format('woff2'); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: 'Archivo Black'; src: url('/templates/brutalist/fonts/archivo-black-400.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'Inter'; src: url('/templates/brutalist/fonts/inter-400.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'Inter'; src: url('/templates/brutalist/fonts/inter-500.woff2') format('woff2'); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: 'Inter'; src: url('/templates/brutalist/fonts/inter-700.woff2') format('woff2'); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: 'IBM Plex Mono'; src: url('/templates/brutalist/fonts/ibm-plex-mono-400.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'IBM Plex Mono'; src: url('/templates/brutalist/fonts/ibm-plex-mono-500.woff2') format('woff2'); font-weight: 500; font-style: normal; font-display: swap; }
:where(.brutalist-page, .brutalist-page *) { :where(.brutalist-page, .brutalist-page *) {
border-radius: 0 !important; border-radius: 0 !important;
} }

View File

@ -2,7 +2,7 @@
name = "brutalist" name = "brutalist"
display_name = "Brutalist" display_name = "Brutalist"
scope = "@themes" scope = "@themes"
version = "0.6.1" version = "0.7.0"
description = "Concrete, oversized type, hard 12-col grid theme for design studios, architecture firms and art galleries." description = "Concrete, oversized type, hard 12-col grid theme for design studios, architecture firms and art galleries."
kind = "theme" kind = "theme"
categories = ["templates"] categories = ["templates"]

View File

@ -5,6 +5,11 @@
"description": "Paper-white concrete with a cadmium red accent. Black rules in light, paper rules in wet-concrete dark.", "description": "Paper-white concrete with a cadmium red accent. Black rules in light, paper rules in wet-concrete dark.",
"theme": { "theme": {
"mode": "both", "mode": "both",
"typography": {
"fontHeading": "template:brutalist:Space Grotesk",
"fontBody": "template:brutalist:Inter",
"fontMono": "template:brutalist:IBM Plex Mono"
},
"lightColors": { "lightColors": {
"background": "40 14% 93%", "background": "40 14% 93%",
"foreground": "0 0% 4%", "foreground": "0 0% 4%",
@ -55,6 +60,11 @@
"description": "Construction-site safety yellow. Ink type sits on yellow; wet-concrete dark glows.", "description": "Construction-site safety yellow. Ink type sits on yellow; wet-concrete dark glows.",
"theme": { "theme": {
"mode": "both", "mode": "both",
"typography": {
"fontHeading": "template:brutalist:Space Grotesk",
"fontBody": "template:brutalist:Inter",
"fontMono": "template:brutalist:IBM Plex Mono"
},
"lightColors": { "lightColors": {
"background": "40 14% 93%", "background": "40 14% 93%",
"foreground": "0 0% 4%", "foreground": "0 0% 4%",
@ -105,6 +115,11 @@
"description": "Off-white with a riso-print electric blue. Cool concrete dark with a glowing blue accent.", "description": "Off-white with a riso-print electric blue. Cool concrete dark with a glowing blue accent.",
"theme": { "theme": {
"mode": "both", "mode": "both",
"typography": {
"fontHeading": "template:brutalist:Space Grotesk",
"fontBody": "template:brutalist:Inter",
"fontMono": "template:brutalist:IBM Plex Mono"
},
"lightColors": { "lightColors": {
"background": "40 14% 93%", "background": "40 14% 93%",
"foreground": "0 0% 4%", "foreground": "0 0% 4%",
@ -155,6 +170,11 @@
"description": "Off-white with an acid lime accent. Ink type on lime; wet-concrete dark with a lime glow.", "description": "Off-white with an acid lime accent. Ink type on lime; wet-concrete dark with a lime glow.",
"theme": { "theme": {
"mode": "both", "mode": "both",
"typography": {
"fontHeading": "template:brutalist:Space Grotesk",
"fontBody": "template:brutalist:Inter",
"fontMono": "template:brutalist:IBM Plex Mono"
},
"lightColors": { "lightColors": {
"background": "40 14% 93%", "background": "40 14% 93%",
"foreground": "0 0% 4%", "foreground": "0 0% 4%",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 134 KiB

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 134 KiB

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 137 KiB

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 134 KiB

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 135 KiB

After

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 428 KiB

After

Width:  |  Height:  |  Size: 420 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 436 KiB

After

Width:  |  Height:  |  Size: 426 KiB