Canvas Design System
Main Site Tokens

Hero

Full-width hero section with badge, title + accent, subtitle, action buttons, stats, and optional image. The most prominent UI pattern on landing pages.

When to Use

Use Hero when: Top of landing pages, app homepages, or marketing pages. Provides the primary call-to-action and value proposition.
Don't use when: Interior/detail pages — use Section Header instead. For smaller page intros, use a simple heading + description.

Full Example

Hero with badge, title + accent, subtitle, buttons, and stats.

Workshop Facilitation Platform

Facilitate better
workshops & sprints.

The all-in-one platform for planning, running, and reflecting on remote workshops.

50+ Workshops
120+ Exercises
40+ Icebreakers
<?= ws_hero('Facilitate better', 'workshops & sprints.', [
    'badge' => 'Workshop Facilitation Platform',
    'badgeIcon' => 'view_kanban',
    'subtitle' => 'The all-in-one platform for planning, running, and reflecting on remote workshops.',
    'buttons' => [
        ws_button('Browse Library', ['variant' => 'primary', 'icon' => 'explore', 'href' => '/library/workshops/']),
        ws_button('Plan a Workshop', ['variant' => 'secondary', 'icon' => 'calendar_month', 'href' => '/planner/']),
    ],
    'stats' => [
        ['value' => '50+', 'label' => 'Workshops'],
        ['value' => '120+', 'label' => 'Exercises'],
        ['value' => '40+', 'label' => 'Icebreakers'],
    ],
]) ?>

Minimal

Just title + subtitle, no badge or stats.

Welcome to the Coach

Your AI-powered facilitation assistant for live workshop sessions.

<?= ws_hero('Welcome to the Coach', '', [
    'subtitle' => 'Your AI-powered facilitation assistant for live workshop sessions.',
    'buttons' => [
        ws_button('Start Session', ['variant' => 'primary', 'icon' => 'play_arrow', 'href' => '#']),
    ],
]) ?>

Title + Accent

The accent text renders in italic with the brand underline.

Exercise Library

Browse our curated
exercise library.

Find the perfect activity for any workshop moment.

Parameters

Parameter Type Default Description
$titlestringPrimary heading text (displayed as <strong>)
$accentstring''Italic accent line (brand color + underline)
badgestring''Small label above heading
badgeIconstring''Material icon in badge
subtitlestring''Description paragraph
buttonsarray[]Array of button HTML strings
statsarray[]Array of ['value', 'label'] pairs
statColorstring#E54D4DColor for stat values
imagestring''Image URL for hero visual
imageAltstring''Alt text for image

Anatomy

.hero-badge — Icon + uppercase label
.hero-title + .hero-title-accent — Heading with italic accent
.hero-subtitle — Description paragraph
.hero-actions — Primary + secondary buttons
.hero-stats — Stat values with dividers
.hero-visual — Optional image/illustration

CSS Classes

Hero styles are defined in css/styles.css. The component outputs standard hero classes.

ClassPurpose
.heroOuter wrapper
.hero-bg-patternDot pattern overlay
.hero-containerInner flex container (max-width 1120px)
.hero-contentText content column
.hero-visualImage column

Files

FilePurpose
includes/components/helpers.phpws_hero() helper function
includes/components/hero.phpHero template
css/styles.cssHero CSS (lines ~1879–2095)