Files
AsterionWP2026/wp-content/themes/asterion-bricks
j.foucher 8207c5f72b feat(solutions): build 5-page Solutions section
Implements the 5 Solutions pages (1 hub + 4 tier detail) with full EN copy
from PDF Strategie & Contenu D.2-D.6.

Architecture
- inc/solutions-data.php: single PHP array keyed by slug, holds the 4 tiers
  (my-proserve, proserve-flex, proserve-academy, customization). Each tier
  declares its hero, sections, and optional upsell. Section schema supports
  4 types: prose / cards / list / cta.
- template-parts/solution-detail.php: reusable partial that iterates the
  sections of a tier and renders each per its type. Alternates light/dark
  backgrounds for visual rhythm.
- templates/page-solution-detail.php: WP custom Page Template
  ("Template Name: Solution Detail"). Looks up the current page slug,
  pulls the matching tier from solutions-data.php, and hands off to the
  partial. Falls back gracefully if the slug is unknown.
- templates/page-solutions-overview.php: WP custom Page Template
  ("Template Name: Solutions Overview") for /solutions/. Renders the
  3-tier comparison table + PROSERVE+ teaser.

Pages were seeded into the DB by a one-shot mu-plugin
(wp-content/mu-plugins/asterion-seed-solutions.php in LocalWP) that
created the parent /solutions/ page and 4 children with the right
post_parent + _wp_page_template, then self-deleted.

Verified all 5 URLs return HTTP 200:
  /solutions/                  62 KB
  /solutions/my-proserve/      65 KB
  /solutions/proserve-flex/    65 KB
  /solutions/proserve-academy/ 63 KB
  /solutions/customization/    62 KB

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-09 12:22:34 +02:00
..

Asterion Bricks — Child theme

Custom WordPress child theme for asterionvr.com, built on top of Bricks Builder. 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.