Structure
One wrapper class on the content region. Everything inside stays classless: the markup a rich-text editor or CMS body field produces is the markup you render.
Flowing Content
A complete classless article: every element below is styled by the system with no classes in the markup.
Service Overview
This paragraph carries a regular link, strong text, and emphasized text, all styled without a single class attribute.
A second paragraph demonstrates the vertical rhythm between consecutive blocks of flowing text.
Eligibility
- First requirement
- Second requirement
- Nested detail
- Another nested detail
- Third requirement
- Submit the application
- Track the request
A flowing citation renders with a side bar and secondary tone; for a featured pull-quote card, use the Quote component instead.
| Stage | Duration |
|---|---|
| Review | 3 days |
| Approval | 1 day |
A closing paragraph after the divider ends the article with no trailing margin.
Where Each Default Lives
Classless styling is layered: some elements are styled everywhere, some only inside the wrapper, and richer treatments stay opt-in components.
| Elements | Scope | Richer tier |
|---|---|---|
h1 to h6, list indent, img | Global: styled everywhere | Section and Block titles for composed layouts |
a | Global: every bare link | .nds-link variants |
hr | Global: renders as the system divider | .nds-divider with text content |
table | Global: renders as the system table | .nds-table with sorting, sub-rows, responsive modes |
p, list rhythm, blockquote, figcaption | Prose only: inside the wrapper | Quote component for featured pull-quotes |
Built-in Features
What the wrapper provides before you write any CSS.
Editor and CMS output renders correctly as-is, with no classes added to the markup.
Any NDS component dropped inside the region renders untouched; prose rules never outrank component styling.
The NDS editor's typing surface shares the same rhythm, so drafts preview the way published content renders.
Everything applies inside the wrapper only: pages and markup outside a prose region render exactly as they did before.
Consistent spacing between blocks, with first and last margins trimmed so the region sits flush inside cards, section bodies, and the editor.
Quotes, tables, and dividers share tokens with their full components, so upgrading an element to its component keeps the design consistent.
Usage Guidelines
When to reach for prose, and how to combine it with the rest of the layout system.
Best Practices
- Use prose for content you do not author element by element: CMS body fields, rich-text editor output, long-form articles, and help or policy text.
- Wrap once at the region root (the
articleor the container your CMS renders into), not around individual elements. - Sections structure the page; prose fills a section body with flowing text. Keep composed layouts (cards, grids, forms) outside the wrapper or accept that they simply keep their own styling inside it.
- Do not add
.nds-section-titleor.nds-block-titleto headings inside flowing content: bare headings are already styled, and the component classes override the content hierarchy with page-structure sizing. - Bare
tableandhrelements render as the system table and divider everywhere, prose or not; inside prose they also pick up editorial spacing. - For a featured quotation with attribution, use the Quote component; the classless
blockquoteis the in-text citation tier. - For sortable, paginated, or responsive data, upgrade the bare table to the Table component; the classless table is a readable static default.
- Content headings start at
h2: the page title is the hero'sh1, and in-content headings sit one visual rung below section titles by design.