Initial child theme structure inheriting from Bricks parent. Token-driven, RGPD-native, mobile-first foundation ready for component and template work. What's in this commit - style.css: WP theme metadata (Template: bricks, v0.1.0) - functions.php: enqueue cascade tokens -> utilities -> components, defer-loaded main.js, font preload, theme support, image sizes (av-hero 2400x1350, av-card 800x600, av-thumb 400x300), Gutenberg default styles dequeued - theme.json: Gutenberg color/typo palette mirroring tokens - assets/css/tokens.css: full design system per Design Handoff section 2 (brand colors, neutrals, semantics, type scale + line-heights, 8pt spacing, radii, shadows, z-index, motion, prefers-reduced-motion) - assets/css/utilities.css: modern reset + .av-container, .av-skip-link, .av-sr-only, .av-stack, .av-section helpers, opinionated heading scale - assets/css/components.css: index of planned components + buttons (5 variants x 4 sizes per Design Handoff section 3.1) and links - assets/js/main.js: vanilla skeleton with header scroll, IntersectionObserver reveal, count-up, mobile drawer; respects prefers-reduced-motion - inc/cpt.php: register_post_type case_study (slug /customers/) + scenario (slug /scenarios/) + shared 'industry' taxonomy - inc/seo.php: Organization JSON-LD on home; placeholders for Product, Article, FAQPage, BreadcrumbList - assets/fonts/: Inter Variable + Italic WOFF2 self-hosted (RGPD; no Google Fonts CDN). Inter Display @font-face commented — Inter 4+ uses opsz axis from the same file. Out of scope (intentionally deferred) - Component fills: cards, forms, navigation, alerts, modals, tabs (placeholders) - Page templates: home and beyond - Bricks JSON template exports - Schema.org Product / Article / FAQPage / BreadcrumbList implementations Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2.3 KiB
Self-hosted Inter fonts
Self-hosted to comply with GDPR. Loading fonts from Google Fonts CDN sends each visitor's IP address to Google — explicitly ruled illegal by a German court in 2022 (LG München I, 20 January 2022, file no. 3 O 17493/20). For an institutional B2G site addressing French ministries and EU security forces, Google Fonts is a non-starter.
Files expected here
| File | Purpose | Required |
|---|---|---|
Inter-Variable.woff2 |
Body + UI font (variable axis: weight 100-900) | ✅ Yes |
Inter-Variable-Italic.woff2 |
Italic variant | ✅ Yes |
InterDisplay-Variable.woff2 |
Optimized for display sizes (titles, hero) | 🟡 Recommended |
Where to download
Official source : https://rsms.me/inter
- Visit https://github.com/rsms/inter/releases/latest
- Download the latest
Inter-X.Y.zip. - Inside the ZIP, locate the
web/folder. - Copy
Inter-Variable.woff2andInter-Variable-Italic.woff2into this directory. - For
InterDisplay-Variable.woff2, look inextras/web/if present in the release, or use the same Inter Variable file (Inter 4+ merged Display into the optical-size axis).
Alternative via npm (if you already have a node toolchain) :
npm install @fontsource-variable/inter
cp node_modules/@fontsource-variable/inter/files/inter-latin-wght-normal.woff2 ./Inter-Variable.woff2
cp node_modules/@fontsource-variable/inter/files/inter-latin-wght-italic.woff2 ./Inter-Variable-Italic.woff2
License
SIL Open Font License 1.1. Free to use, modify, and redistribute, including in commercial websites. Attribution not required but appreciated.
After dropping the WOFF2 here
Nothing else to do. The @font-face declarations in ../css/tokens.css reference these filenames directly. The <link rel="preload"> in functions.php (wp_head action) starts fetching them on page load.
If a file is missing, the page silently falls back to the system stack (-apple-system, Segoe UI, Roboto, etc.) without any user-visible error.