Editorial article
Preview Available in release assets
Compose a long-form editorial page from page-shell, sticky sidebar, prose, table-of-contents, breadcrumbs, and ordinary series links without a dedicated article component.
Server contract
Use .thin-editorial-article on a stable page region or compose the documented page-shell, sticky-sidebar, prose, table-of-contents, and breadcrumb patterns directly. Author byline, time, and series URLs server-side.
Landmarks, headings, links, article body, archive list, and pagination remain complete without CSS, JavaScript, or enhancement.
Editorial article primary example
<div class="thin-page-shell">
<header class="thin-container">
<nav class="thin-breadcrumbs" aria-label="Breadcrumbs">
<ol>
<li><a href="/">Home</a></li>
<li><a href="/notes/">Field notes</a></li>
<li aria-current="page">Designing for content</li>
</ol>
</nav>
</header>
<div class="thin-sticky-sidebar">
<aside aria-labelledby="article-contents">
<nav class="thin-table-of-contents" aria-labelledby="article-contents">
<h2 id="article-contents">On this page</h2>
<ol>
<li><a href="#overview" aria-current="location">Overview</a></li>
<li><a href="#measure">Measure and rhythm</a></li>
<li><a href="#series">Series navigation</a></li>
</ol>
</nav>
</aside>
<main id="content">
<article class="thin-prose" aria-labelledby="article-title">
<header>
<p>
<span class="thin-icon">
<svg class="thin-icon" aria-hidden="true">
<use href="/icons/sprite.svg#user">
</use>
</svg>
<span>Ryan Baird</span>
</span> · <time datetime="2026-08-01">August 1, 2026</time> · <span>8 min read</span>
</p>
<h1 id="article-title">Designing for content that refuses to be tidy</h1>
</header>
<p class="thin-lede">Editorial pages compose existing page-shell, prose, table-of-contents, and breadcrumb patterns. The server owns metadata, series links, and reading order.</p>
<h2 id="overview">Overview</h2>
<p>Start with semantic HTML, then add layout and prose skins when CSS is available.</p>
<h2 id="measure">Measure and rhythm</h2>
<p>Use <code>class="thin-flow"</code> inside prose sections when lists and paragraphs must keep block formatting context.</p>
<section id="series" aria-labelledby="series-heading">
<h2 id="series-heading">Series navigation</h2>
<nav aria-label="Series">
<ul class="thin-cluster">
<li><a href="/notes/01/">← Previous</a></li>
<li><a href="/notes/">All notes</a></li>
<li><a href="/notes/03/">Next →</a></li>
</ul>
</nav>
</section>
</article>
</main>
</div>
<footer class="thin-container">
<p>Independent footer content</p>
</footer>
</div>Show code
<div class="thin-page-shell">
<header class="thin-container">
<nav class="thin-breadcrumbs" aria-label="Breadcrumbs">
<ol>
<li><a href="/">Home</a></li>
<li><a href="/notes/">Field notes</a></li>
<li aria-current="page">Designing for content</li>
</ol>
</nav>
</header>
<div class="thin-sticky-sidebar">
<aside aria-labelledby="article-contents">
<nav class="thin-table-of-contents" aria-labelledby="article-contents">
<h2 id="article-contents">On this page</h2>
<ol>
<li><a href="#overview" aria-current="location">Overview</a></li>
<li><a href="#measure">Measure and rhythm</a></li>
<li><a href="#series">Series navigation</a></li>
</ol>
</nav>
</aside>
<main id="content">
<article class="thin-prose" aria-labelledby="article-title">
<header>
<p>
<span class="thin-icon">
<svg class="thin-icon" aria-hidden="true">
<use href="/icons/sprite.svg#user">
</use>
</svg>
<span>Ryan Baird</span>
</span> · <time datetime="2026-08-01">August 1, 2026</time> · <span>8 min read</span>
</p>
<h1 id="article-title">Designing for content that refuses to be tidy</h1>
</header>
<p class="thin-lede">Editorial pages compose existing page-shell, prose, table-of-contents, and breadcrumb patterns. The server owns metadata, series links, and reading order.</p>
<h2 id="overview">Overview</h2>
<p>Start with semantic HTML, then add layout and prose skins when CSS is available.</p>
<h2 id="measure">Measure and rhythm</h2>
<p>Use <code>class="thin-flow"</code> inside prose sections when lists and paragraphs must keep block formatting context.</p>
<section id="series" aria-labelledby="series-heading">
<h2 id="series-heading">Series navigation</h2>
<nav aria-label="Series">
<ul class="thin-cluster">
<li><a href="/notes/01/">← Previous</a></li>
<li><a href="/notes/">All notes</a></li>
<li><a href="/notes/03/">Next →</a></li>
</ul>
</nav>
</section>
</article>
</main>
</div>
<footer class="thin-container">
<p>Independent footer content</p>
</footer>
</div>Anatomy
- Page shell landmarks
- Breadcrumb trail
- Optional sticky table of contents
- Prose article with metadata header
- Series previous/next links
- Footer landmark
Variants and sizes
- Documentation article
- Blog post
- Release note
- Localized editorial page
Gallery coverage: No structured variant fixtures are published yet; the primary example above is the only verified production markup.
States and difficult content
Rendered fixtures exercise authored content and constrained layouts with the same production assets.
- Short article
- Long article
- Missing media
- Long localized title
- Narrow container
- 200% and 400% zoom
Structured state fixtures are not published for this item yet.
Interaction and keyboard behavior
Fragment links, series links, and pagination use native navigation. Optional view transitions belong to the application, not this recipe.
Accessibility
Keep one main landmark, coherent heading order, meaningful link text, authored fragment targets, and metadata in text—not color alone.
- Contract
COMPOSE- Basis
- Native article, headings, time, links, and ordered content; no APG widget
- Evidence
tests/unit/library/editorial-recipes.test.ts
API
Use .thin-editorial-article on a stable page region or compose the documented page-shell, sticky-sidebar, prose, table-of-contents, and breadcrumb patterns directly. Author byline, time, and series URLs server-side.
Behavior tier: native
Structured host, property, and example tables are not authored for this item yet. Use the summary above and the primary example.
Fallback
Landmarks, headings, links, article body, archive list, and pagination remain complete without CSS, JavaScript, or enhancement.
Assets and dependencies
/foundation.css/layouts.css/components.css
Dependencies: None
Source: packages/ui/src/items/editorial/style.ts
Composition
Derived from the examples and style specs, not authored.