Files
AsterionWP2026/wp-content/themes/asterion-bricks/header.php
j.foucher 773f137eb7 feat(home): build complete homepage and global templates
Scaffolds all components needed for the home and ships a working
front-page implementation covering the 9-section wireframe.

Components (assets/css/components.css)
- 13 sections per Design Handoff section 3:
  buttons, links, forms, cards (5 variants), stat callouts, header,
  nav, mega menu, drawer, footer, hero, logo strip, eyebrow,
  section title/lead, conversion banner, scroll reveal.
- All token-driven, prefixed `av-`, BEM-light. Mobile-first with
  768/1024/1280 breakpoints. Respects prefers-reduced-motion.

Global templates
- header.php: sticky header (60px mobile / 72px desktop), 5-item
  nav, language switcher, primary CTA, mobile drawer with hamburger
  toggle. Skip link first focusable element.
- footer.php: 5-column dark footer (Solutions, Industries, Why
  Asterion, Why Asterion, Newsletter), bottom strip with legal
  links + social.
- index.php: archive/search/blog fallback rendering posts in
  card-blog layout.
- front-page.php: full home with 9 sections, EN copy lifted
  verbatim from PDF Strategie D.1:
    1. Hero "Your Last Mistake Should Be in VR." + 2 CTAs
    2. Trust bar (placeholder logos + 4 inline metrics)
    3. Solutions: MY / FLEX / ACADEMY (3 cards)
    4. Industries: Police / SF / Military / Firefighters (2x2)
    5. Feature heroes: UWeD, Instructor Cockpit, AAR (alternating)
    6. Featured case study with 3 stat callouts
    7. Testimonials (3 quote cards)
    8. Latest insights (queries `post`; placeholder when empty)
    9. Conversion banner (Demo / T&E / Quote)

Verified: HTTP 200 on http://localhost:10004/, 73 KB HTML, 418 ms.

Outstanding (deferred)
- Hero video master + photographs (see MISSING-ASSETS.md)
- Mega menu content (links currently flat to section index)
- Form posts (newsletter currently no-op POST)
- Bricks license activation (manual, requires user key)
- WPML setup wizard (manual, requires user key)
- Lighthouse + axe full audit (visual env required)

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

115 lines
5.1 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
/**
* Asterion Bricks — Global header
*
* Sticky header per Design Handoff section 3.5 :
* - 60px on mobile, 72px on desktop
* - Logo left, main nav center (desktop), CTA + lang switch right
* - Hamburger drawer on mobile
*
* @package AsterionBricks
*/
defined('ABSPATH') || exit;
?>
<!doctype html>
<html <?php language_attributes(); ?>>
<head>
<meta charset="<?php bloginfo('charset'); ?>">
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
<meta name="theme-color" content="#0B1F3A">
<link rel="profile" href="https://gmpg.org/xfn/11">
<?php wp_head(); ?>
</head>
<body <?php body_class(); ?>>
<?php wp_body_open(); ?>
<a class="av-skip-link" href="#main"><?php esc_html_e('Skip to main content', 'asterion-bricks'); ?></a>
<header class="av-header" role="banner">
<div class="av-container av-header__inner">
<a href="<?php echo esc_url(home_url('/')); ?>" class="av-header__logo" aria-label="Asterion VR — home">
ASTERION&nbsp;VR
</a>
<nav class="av-nav" aria-label="<?php esc_attr_e('Primary', 'asterion-bricks'); ?>">
<ul class="av-nav__list" style="display:flex;gap:var(--space-6);list-style:none;margin:0;padding:0;">
<li class="av-nav__item">
<a href="<?php echo esc_url(home_url('/solutions/')); ?>" class="av-nav__link" aria-haspopup="true" aria-expanded="false">
<?php esc_html_e('Solutions', 'asterion-bricks'); ?>
</a>
</li>
<li class="av-nav__item">
<a href="<?php echo esc_url(home_url('/industries/')); ?>" class="av-nav__link" aria-haspopup="true" aria-expanded="false">
<?php esc_html_e('Industries', 'asterion-bricks'); ?>
</a>
</li>
<li class="av-nav__item">
<a href="<?php echo esc_url(home_url('/technology/')); ?>" class="av-nav__link" aria-haspopup="true" aria-expanded="false">
<?php esc_html_e('Technology', 'asterion-bricks'); ?>
</a>
</li>
<li class="av-nav__item">
<a href="<?php echo esc_url(home_url('/why-asterion/')); ?>" class="av-nav__link">
<?php esc_html_e('Why Asterion', 'asterion-bricks'); ?>
</a>
</li>
<li class="av-nav__item">
<a href="<?php echo esc_url(home_url('/insights/')); ?>" class="av-nav__link">
<?php esc_html_e('Insights', 'asterion-bricks'); ?>
</a>
</li>
</ul>
</nav>
<div class="av-header__right">
<div class="av-lang-switch" aria-label="<?php esc_attr_e('Language', 'asterion-bricks'); ?>">
<span class="av-lang-switch__current">EN</span>
<span aria-hidden="true">·</span>
<a href="#" class="av-lang-switch__other" aria-label="<?php esc_attr_e('Switch to French', 'asterion-bricks'); ?>">FR</a>
</div>
<a href="<?php echo esc_url(home_url('/request-demo/')); ?>" class="av-btn av-btn--primary av-btn--md">
<?php esc_html_e('Request a Demo', 'asterion-bricks'); ?>
</a>
<button type="button" class="av-drawer-toggle" aria-controls="av-drawer" aria-expanded="false" aria-label="<?php esc_attr_e('Open menu', 'asterion-bricks'); ?>">
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
<line x1="3" y1="6" x2="21" y2="6"></line>
<line x1="3" y1="12" x2="21" y2="12"></line>
<line x1="3" y1="18" x2="21" y2="18"></line>
</svg>
</button>
</div>
</div>
</header>
<aside id="av-drawer" class="av-drawer" aria-hidden="true">
<button type="button" class="av-drawer__close" aria-label="<?php esc_attr_e('Close menu', 'asterion-bricks'); ?>">×</button>
<nav class="av-drawer__nav" aria-label="<?php esc_attr_e('Mobile primary', 'asterion-bricks'); ?>">
<div class="av-drawer__group">
<a href="<?php echo esc_url(home_url('/solutions/')); ?>" class="av-drawer__group-title"><?php esc_html_e('Solutions', 'asterion-bricks'); ?></a>
</div>
<div class="av-drawer__group">
<a href="<?php echo esc_url(home_url('/industries/')); ?>" class="av-drawer__group-title"><?php esc_html_e('Industries', 'asterion-bricks'); ?></a>
</div>
<div class="av-drawer__group">
<a href="<?php echo esc_url(home_url('/technology/')); ?>" class="av-drawer__group-title"><?php esc_html_e('Technology', 'asterion-bricks'); ?></a>
</div>
<div class="av-drawer__group">
<a href="<?php echo esc_url(home_url('/why-asterion/')); ?>" class="av-drawer__group-title"><?php esc_html_e('Why Asterion', 'asterion-bricks'); ?></a>
</div>
<div class="av-drawer__group">
<a href="<?php echo esc_url(home_url('/insights/')); ?>" class="av-drawer__group-title"><?php esc_html_e('Insights', 'asterion-bricks'); ?></a>
</div>
</nav>
<div class="av-drawer__cta-area">
<a href="<?php echo esc_url(home_url('/request-demo/')); ?>" class="av-btn av-btn--primary av-btn--lg" style="width:100%;">
<?php esc_html_e('Request a Demo', 'asterion-bricks'); ?>
</a>
</div>
</aside>
<main id="main" class="av-main">