# Asterion Bricks — Child theme Custom WordPress child theme for **asterionvr.com**, built on top of [Bricks Builder](https://bricksbuilder.io). Tactical-cinematic design system for the PROSERVE XR training platform. ## Structure ``` asterion-bricks/ ├── style.css # WP theme metadata only (CSS lives in assets/css/) ├── functions.php # enqueues, theme support, includes ├── theme.json # Gutenberg color/typo palette ├── assets/ │ ├── css/ │ │ ├── tokens.css # design tokens — source of truth │ │ ├── utilities.css # CSS reset + utility classes (.av-container, etc.) │ │ └── components.css # component styles (buttons, cards, header, footer…) │ ├── js/ │ │ └── main.js # vanilla JS, defer-loaded │ ├── fonts/ # self-hosted Inter (RGPD) │ └── img/ # static visuals ├── templates/ # Bricks template JSON exports (versioned) └── inc/ ├── cpt.php # custom post types: case_study, scenario └── seo.php # Schema.org JSON-LD overrides ``` ## Conventions - **CSS prefix** : `av-` (asterion-vr) on every custom selector to avoid collision with Bricks classes. - **BEM-light** naming : `.av-card`, `.av-card--feature`, `.av-card__icon`, `.av-card.is-loading`. - **Zero hardcoded values** — every color, spacing, radius and duration goes through `tokens.css`. - **JS** : vanilla, defer-loaded, prefer `IntersectionObserver` over scroll listeners. - **A11y** : keyboard reachable, `:focus-visible` outline, ARIA where needed, contrast ≥ 4.5:1, `prefers-reduced-motion` respected. ## Activation 1. Ensure Bricks parent is installed at `wp-content/themes/bricks/`. 2. WP Admin → Appearance → Themes → activate **Asterion Bricks**. ## Performance budget (per BRIEF section 9) | Asset | Budget | |-----------------|-------------------------------| | HTML initial | < 100 KB gzipped | | CSS total | < 50 KB gzipped | | JS initial | < 200 KB gzipped | | Hero video | < 2 MB | | Hero poster | < 150 KB | | LCP / CLS / TBT | < 2.5s / < 0.1 / < 200ms | ## License GPL v2 or later. Same as WordPress core.