Level Up Grid
Cross-promotes the rest of the Workshopr ecosystem, grouped by facilitation phase.
When to Use
current_app set so the page doesn't advertise itself.
Variants
Default
The full catalogue of 12 apps in one grid. Every app carries its phase, applied per card.
Level Up Your Facilitation
Workshop Library
300+ workshop templates & facilitation guides
Browse LibraryAcademy
Free ebooks, toolkits, and facilitation learning paths
Start LearningPodcast
Deep dives and interviews on facilitation craft
Listen NowPlanner
Drag-and-drop agenda builder with AI assistance
Open PlannerHybrid Toolkit
Playbooks and checklists for hybrid workshops
Get the KitFacilitator
Full-screen command center for live sessions
Run a SessionSidekick
Chrome extension — your script in a side panel
Install SidekickIntervention Cards
37 cards for handling difficult workshop moments
Get CardsFacilitation Tips
60+ actionable tips for better workshops
Browse TipsFacilitator's DNA
Discover your natural facilitation style
Take the QuizAI Coach
AI guidance before, during, and after sessions
Try CoachROI Calculator
Quantify the business value of your workshops
Calculate ROI<?= ws_level_up_grid() ?>
Excluding the current app
Set current_app to drop the page's own app. Do this on every page that isn't the homepage.
Level Up Your Facilitation
Workshop Library
300+ workshop templates & facilitation guides
Browse LibraryAcademy
Free ebooks, toolkits, and facilitation learning paths
Start LearningPodcast
Deep dives and interviews on facilitation craft
Listen NowPlanner
Drag-and-drop agenda builder with AI assistance
Open PlannerHybrid Toolkit
Playbooks and checklists for hybrid workshops
Get the KitFacilitator
Full-screen command center for live sessions
Run a SessionSidekick
Chrome extension — your script in a side panel
Install SidekickFacilitation Tips
60+ actionable tips for better workshops
Browse TipsFacilitator's DNA
Discover your natural facilitation style
Take the QuizAI Coach
AI guidance before, during, and after sessions
Try CoachROI Calculator
Quantify the business value of your workshops
Calculate ROI<?= ws_level_up_grid(['current_app' => 'intervention']) ?>
Grouped by phase
group_by_phase splits the grid into four sub-sections, each with an italic phase title and a short intro in the Workshopr voice. Use it where you have room to explain the journey rather than just list tools.
Level Up Your Facilitation
Learn.
Before you run the room, you read it. Steal from facilitators who've made every mistake, study the moves that worked, and stockpile exercises you can pull when the agenda goes sideways. Your reading list now is your toolkit later.
Plan.
A workshop is a sequence of decisions you make before anyone walks in: who's there, what changes by the end, where the energy spikes and dips. Block out the time, name the moves, leave room for the room. Plan tight enough to start, loose enough to follow what actually happens.
Facilitate.
The plan meets the room and the room wins. Your job is to read what's actually happening, not what you scripted, and steer with small, specific moves. Hold the timer. Surface the unsaid. Cut what's not landing.
Reflect.
The hour after the workshop is when the value either compounds or evaporates. Capture what surfaced, send the artifacts before momentum dies, and write down the one thing you'd do differently. Run enough sessions and the patterns become a craft.
<?= ws_level_up_grid([
'current_app' => 'academy',
'group_by_phase' => true,
]) ?>Custom eyebrow and title
Override the heading when the default framing doesn't fit the page's argument.
Everything else Workshopr can do
Workshop Library
300+ workshop templates & facilitation guides
Browse LibraryAcademy
Free ebooks, toolkits, and facilitation learning paths
Start LearningPodcast
Deep dives and interviews on facilitation craft
Listen NowHybrid Toolkit
Playbooks and checklists for hybrid workshops
Get the KitFacilitator
Full-screen command center for live sessions
Run a SessionSidekick
Chrome extension — your script in a side panel
Install SidekickIntervention Cards
37 cards for handling difficult workshop moments
Get CardsFacilitation Tips
60+ actionable tips for better workshops
Browse TipsFacilitator's DNA
Discover your natural facilitation style
Take the QuizAI Coach
AI guidance before, during, and after sessions
Try CoachROI Calculator
Quantify the business value of your workshops
Calculate ROI<?= ws_level_up_grid([
'current_app' => 'planner',
'eyebrow' => 'The full toolkit',
'title' => 'Everything else Workshopr can do',
]) ?>States
| State | Behavior |
|---|---|
| Default | Every card is a link to its app, with icon, title, and one-line description. |
| Hover | Card lifts and its phase accent strengthens. |
| Focus | Native focus ring — each card is a real anchor. |
| Excluded app | current_app removes that card entirely; the grid reflows to 11. |
| Grouped | Four sub-sections, each with a phase heading, intro prose, and a 3- or 4-up grid. A phase whose only app was excluded still renders its heading. |
Real-World Usage
The standard landing-page footer: the grid, then the CTA. ws_footer() already composes both, so on pages using it you don't call this component directly.
<!-- On a standalone landing page -->
<?= ws_level_up_grid(['current_app' => 'dna']) ?>
<?= ws_cta_section('Discover your Facilitator DNA', [
'primaryBtn' => ['text' => 'Take the quiz', 'href' => '/dna/'],
]) ?>
<!-- On a page using the global footer, both are already included -->
<?= ws_footer() ?>Options
| Option | Type | Default | Purpose |
|---|---|---|---|
current_app | string | null | App key to exclude — library, planner, intervention, and so on |
eyebrow | string | 'More from Workshopr' | Small label above the title |
title | string | 'Level Up Your Facilitation' | Section heading |
group_by_phase | bool | false | Split into four phase sub-sections with intro prose. Not in the helper's docblock, but supported. |
phase_copy | array | built-in | Override the per-phase intro prose. Merged recursively, so you can replace one phase and keep the rest. Also undocumented in the helper. |
apps | array | built-in catalogue | Replace the app list entirely. Rarely needed — the built-in catalogue is the source of truth. |
id | string | null | Section element ID |
class | string | '' | Additional CSS classes |
Accessibility
| Concern | Behavior |
|---|---|
| Semantics | Each card is a real <a>, so the whole card is focusable and announced as a link. No custom click handling is involved. |
| Keyboard | Standard link tabbing. With 12 cards this is a long run of tab stops at the end of the page — a reason to set current_app and to keep the grid to one instance. |
| Link text | The accessible name is the card's title plus description, so each is distinct in a screen reader's link list. |
| Phase colour | Decorative only. The phase is also named in the grouped variant's heading, so colour never carries it alone — which matters more than ever now that all four render the same red. |
| Heading levels | The section title and phase headings are real headings, so the block is navigable. Check the levels suit where you place it. |
| Repetition | Screen-reader users hit this grid on every landing page. Keeping it in a consistent position, always last, makes it easy to skip. |
Tokens
Each card reads its phase token. Since Red Unification all four resolve to the same red — the phase names remain as semantic grouping, not as distinct colours.
| Phase | Token | Current value | Apps |
|---|---|---|---|
| learn | --phase-learn | #E54D4D | library, academy, podcasts |
| plan | --phase-plan | #E54D4D | planner, hybrid |
| facilitate | --phase-facilitate | #E54D4D | facilitator, sidekick, intervention, tips |
| reflect | --phase-reflect | #E54D4D | dna, coach, roi |
#0284C7 (plan), #7C4DFF (facilitate), and #10B981 (reflect) — the pre-unification colours. Those were retired; every phase token now resolves to Learn Red. Don't reintroduce them as literals or as var() fallbacks. See Colors.
CSS Classes
| Class | Purpose |
|---|---|
.ws-level-up | Section wrapper |
.ws-level-up__container | Max-width wrapper |
.ws-level-up__header | Eyebrow and title block |
.ws-level-up__eyebrow | Small label above the title |
.ws-level-up__grid | Card grid |
.ws-level-up__grid--3 | Three-up grid, used in the grouped variant |
.ws-level-up__phase | Phase sub-section (grouped variant) |
.ws-level-up__phase--learn / --plan / --facilitate / --reflect | Phase accents |
.ws-level-up__card | An app card — an <a> |
.ws-level-up__card--learn / --plan / --facilitate / --reflect | Per-card phase accent |
.ws-level-up__card-icon / -title / -desc / -link | Card internals |
Files
| File | Purpose |
|---|---|
includes/components/helpers.php | ws_level_up_grid() helper function |
includes/components/level-up-grid.php | Template — the app catalogue, phase copy, and grid markup |
includes/components/components.css | Styles (.ws-level-up rules) |
includes/components/footer.php | Composes this grid into the global footer |
The app catalogue lives in the template. When an app is added or renamed, update it there — and keep it consistent with PRODUCT.md §5 and the app switcher.