Example Case Study Card
This demonstrates the three-column card layout with metadata sidebar, main content area, and decorative rail. The card responds to hover states and maintains visual hierarchy.
A warm, archive-style aesthetic with serif typography and metadata-first
design. All tokens prefixed with --ed-* and defined in
editorial-lab.css.
01
Warm cream backgrounds, near-black text, terracotta accents. Archive aesthetic.
#f3eedf Page background #ebe5d3 Card hover, sections #24211d Primary text #5c5650 Secondary text #c86a57 Links, CTAs (terracotta) #a85545 Hover state #d4cdb8 Standard dividers #e5dfd0 Subtle dividers #b8ad96 Emphasis dividers 02
Serif-led (Cormorant), light weights, generous leading. Sans-serif for labels and meta.
Cormorant — The quick brown fox jumps over the lazy dog
System UI — The quick brown fox jumps over the lazy dog
.ed-title Page Title
clamp(2.5rem, 2rem + 3vw, 4rem) / 400.ed-section-title Section Title
clamp(1.75rem, 1.5rem + 1.5vw, 2.5rem) / 500.ed-subtitle Subtitle Style
clamp(1.25rem, 1.125rem + 0.75vw, 1.75rem) / 400.ed-item-title Item / Card Title
clamp(1.375rem, 1.25rem + 0.75vw, 1.75rem) / 500.ed-intro Lead paragraph / introduction text style
clamp(1.125rem, 1rem + 0.5vw, 1.375rem) / 400.ed-kicker Kicker / Eyebrow 0.75rem / 600 / uppercase / accent .ed-label Meta Label 0.6875rem / 600 / uppercase / sans .ed-body Body text style for prose content
1.0625rem / line-height 1.7.ed-small Small / caption text for metadata
0.8125rem / sans03
Consistent spacing tokens for margins, padding, and gaps.
--ed-space-xs 0.25rem (4px) --ed-space-sm 0.5rem (8px) --ed-space-md 1rem (16px) --ed-space-lg 1.5rem (24px) --ed-space-xl 2rem (32px) --ed-space-2xl 3rem (48px) --ed-space-3xl 4rem (64px) 04
Container widths and column dimensions for the three-column card layout.
--ed-max-width 1200px Page container --ed-content-width 65ch Prose content --ed-sidebar-width 220px Meta column --ed-rail-width 180px Decorative rail Collapses to single column at 768px
05
Industrial-modernist photography: technical specimen framing, grayscale processing, archival labeling.
--ed-frame var(--ed-text) Image frame border --ed-matte var(--ed-bg-alt) Image backing/pedestal --ed-caption-size 0.625rem Technical caption text --ed-caption-tracking 0.15em Wide letter-spacing .ed-image--detail 1:1 square, grayscale → colour on hover. Artifacts, specimens.
.ed-image--action 3:2 ratio, grayscale. Workshop photos.
.ed-image--blueprint 21:9 panoramic. Service maps, journey maps, diagrams.
06
Tags feel like filing markers or archive tabs—quiet, structural, editorial rather than promotional.
--ed-tag-height 2.125rem Consistent tag height --ed-tag-pad-x 0.75rem Horizontal padding --ed-tag-gap 0.5rem Gap between tags --ed-tag-radius 0.125rem Subtle corner rounding 07
.ed-link .ed-link-arrow .ed-button .ed-button--outline .ed-pullquote This is a pull quote component. It uses the accent border and serif italic styling for emphasis within long-form content.
Example citation
.ed-aside This is the aside component used for field notes and sidebar content. It has an accent border and muted background.
.ed-rule .ed-rule--thick .ed-list 2024
08
Case study cards with three-column layout: meta, body, rail.
This demonstrates the three-column card layout with metadata sidebar, main content area, and decorative rail. The card responds to hover states and maintains visual hierarchy.
09
The Eames understood that experiences unfold over time. Motion in this system is restrained, purposeful—signalling interactivity without demanding attention.
--ed-transition 150ms ease-in-out Universal timing for all interactions prefers-reduced-motionimg)
When prefers-reduced-motion: reduce is set, animations should be
disabled or replaced with instant state changes. The system respects user preferences
for motion sensitivity.
10
Greyscale treatment subordinates client branding to the archival aesthetic. Colour returns on hover—a quiet reveal rather than a demand for attention.
filter grayscale(100%) Default state opacity 0.6 Muted presence max-height 48px Consistent scale grid 4-col → 3 → 2 Responsive columns Hover logos to see colour reveal. Component: ClientLogosEditorial.astro
11
Bidirectional navigation implies a curated sequence—an exhibition path through content rather than random access. The visitor is guided, not abandoned.
Component: NextPageNav.astro
12
Editorial furniture for long-form writing—callouts, figures, and code blocks that support the reader without interrupting flow.
.assumed-audience-card Service designers and design leaders working in complex domains who have felt friction between what their practice actually is and what a portfolio is equipped to show.
Sets reader expectations. Borrowed from Gwern's "assumed audience" pattern.
.key-insight Perhaps I've been designing too many interfaces, and not enough exhibitions.
Highlights a central idea. Accent-tinted background with italic serif.
Inline code uses accent colour with subtle background. Block code:
/* Editorial design tokens */
.ed-transition: 150ms ease-in-out;
.ed-font-serif: 'Cormorant', Georgia, serif;
.ed-accent: #c86a57; .ed-prose code and .ed-prose pre .img-wide Negative margin creates bleed effect
.ed-prose figure and .ed-prose figcaption .ed-prose ul and .ed-prose ol Explore the different page types in the editorial design system.
All styles namespaced under .editorial-lab. No CSS bleed to production.
EditorialLabLayout.astroeditorial-lab.csssrc/components/editorial/docs/style-guide/EDITORIAL_DESIGN_SYSTEM.md