Article layout
The long-form page for case studies and About (Figma 93:731): header, hero, facts, body and end links. A full page, so see it live.
Live: Governance case study (device hero, Happeo accent) · About (portrait hero, site orange).
Anatomy
- Header: black title and Light lead on the left; badges on the right (date first, then client, then reading time), above the title on mobile.
- Hero, one of:
screen: the product in a CSS-drawn device on the accent band. The whole hero keeps fixed proportions and scales with the width; the band's bottom edge crops the device. From 640 Figma's band 1312 × 448 with the device 69% wide; below 640 a taller band (994 × 527) and a bigger device (91%).photo: a portrait standing on a smaller band beside the facts (facts in columns 1–2, portrait 3–6 from 1024; stacked below).
- Facts: three items (e.g. Team · My role · Timeline), each a label and two or three short lines.
- Body:
KeyFigures→ChapterNav→StoryScroll→Reflection, or plain text withTestimonialbands. Text sits in the reading column (--article-column); bands break out to full width. - End: back link left, next case study right, on the page margins.
Any img[data-zoom] in the article opens full-size in the lightbox.
Accent
accent replaces the site orange with the client's brand colour for everything in the
article (--color-accent); band sets the hero, key-figures, quote and
reflection band (--article-band).
Props
| Prop | Type | Default | Description |
|---|---|---|---|
title | string | — | The outcome, not the feature. |
lead | string | — | One or two sentences: the project and your part. |
description | string | lead | Meta description. |
date | string | — | First badge, black. |
badges | { label; color? }[] | [] | Client (accent colour) and others. |
screen | { src; alt } | — | Product screen in the device hero. |
photo | { src; alt } | — | Portrait hero instead of the device. |
visual | { src; alt } | — | A finished hero composition from Figma (band and device included), full grid width. Sandudd. |
accent | CSS colour | var(--color-accent-main) | e.g. var(--color-accent-happeo). |
band | CSS background | var(--gradient-accent-happeo) | e.g. var(--gradient-accent-main). |
facts | { label; lines[] }[] | [] | Team · role · timeline. |
readingTime | boolean | true | "n min read" badge from the body text (~230 words/min). |
back | { href; label } | — | End link, left. |
next | { href; title; label? } | — | Next case study, right. |
Tokens
| Token | Base | ≥ 640 | ≥ 1024 | ≥ 1440 | Note |
|---|---|---|---|---|---|
--article-header-pt | var(--spacing-edge) | clears the nav | |||
--article-header-text-column | 1 / -1 | 1 / span 4 | 1 / span 5 | badges need 2 cols here | |
--article-badges-column | 1 / -1 | 5 / span 2 | 6 / span 1 | ||
--article-badges-order | -1 | 0 | mobile: badges above the title | ||
--article-badges-direction | row | column | |||
--article-badges-justify | start | end | |||
--article-facts-column | 1 / -1 | span 2 | team · role · timeline | ||
--article-hero-display | block | set to none to hide on a breakpoint | |||
--article-band-ratio | 994 / 527 | 1312 / 448 | |||
--article-band-radius | var(--radius-lg) | var(--radius-band) | |||
--article-device-width | 91% | 69% | of the band | ||
--article-device-overhang | 5.7% | 7.5% | % of the width (padding) | ||
--article-device-radius | var(--radius-lg) | var(--radius-device) | |||
--article-portrait-column | 1 / -1 | 3 / -1 | portrait instead of the device (About) | ||
--article-portrait-row | auto | 2 | |||
--article-portrait-band-ratio | 1000 / 853 | 869 / 524 | < 640: photo 91% wide, ~square | ||
--article-portrait-photo-width | 91% | 76% | |||
--article-portrait-overhang | 5.7% | 14.7% | |||
--article-portrait-facts-column | 1 / -1 | 1 / span 2 | |||
--article-portrait-facts-display | grid | flex | flex column beside the portrait | ||
--article-portrait-facts-pt | var(--spacing-xl) | 0 | |||
--article-column | 1 / -1 | 2 / span 4 | 3 / span 3 | reading column | |
--article-section-space | var(--spacing-2xl) | var(--spacing-3xl) | before each h2 / band |