The lowest layer of the design system: every semantic HTML tag styled globally with tokens — no classes required.
A <blockquote> looks right because RenDS dresses it. A <kbd> has its own typographic identity. A <details> works as a basic accordion. Designers should know these tags as their base vocabulary — RenDS guarantees that each one ships with accessible typography, color, shape, and proportions by default.
When does a tag "graduate" from Primitive Zero to Primitive (with a class)?
When it needs one or more of these things: (a) variants — a <button> that also has ghost, secondary, danger; (b) sub-elements — a Card with header, body, and footer; (c) a public token API — --ren-{component}-*; (d) JavaScript for accessibility — focus trap, roving tabindex, coordination across items.
If the native HTML tag + classless is enough, it stays here.
Text & Typography
<h1> — <h6>
Heading hierarchy on the Display → Headline type scale.
Use the --display-*, --title-*, and --headline-* tokens. Apply text-wrap: balance for nicer line breaks. The first heading on a page loses its top margin automatically.
<p>
Text paragraph. Use role="doc-subtitle" for a "lead" variant.
This is a lead paragraph — use it for subtitles or intros.
And this is a regular paragraph, with text-wrap: pretty and vertical margins driven by spacing tokens.
16:9 aspect ratio by default, full-width within its container.
<iframe src="https://…" title="..."></iframe>
In production this would be a YouTube embed, Google Maps, etc. The aspect-ratio prevents collapse when no inline width/height is set.
Structure
Landmark elements (<header>, <nav>, <main>, <article>, <section>, <aside>, <footer>) are pure semantic containers. Primitive Zero applies no visual style (no background, border, or padding) — only margin and flow resets. Use them as anchors for skip links, screen reader accessibility, and style scoping.
Semantic landmarks
Containers with no visual style. Pure structure.
<header> — Page or section header <nav> — Primary navigation menu <main> — Primary content (one per page) <article> — Self-contained content (post, card) <section> — Thematic grouping with a heading <aside> — Related but secondary content <footer> — Page or section footer
These elements never graduate to primitives — they are structure, not components. For complex layouts (sidebar + main + panel) graduate to layouts (ren-layout-*) or owner CSS (grid areas).
Primitive Zero isn't limited to styling individual tags — it also defines the visual behavior of common semantic combinations. A <cite> inside a <blockquote> changes its role (byline) and therefore its shape (block with em-dash). These rules live in classless.css and activate automatically.
Design is not just what it looks like and feels like. Design is how it works.
Steve Jobs, The New York Times, 2003
<blockquote>
<p>…</p>
<cite>Steve Jobs</cite> /* automatic byline */
</blockquote>
/* vs. standalone cite */
My favorite book is <cite>The Name of the Wind</cite>.
<del> + <ins>
Visual diff. Adjacent = changelog or edit track.
The price dropped from $99 $79.
The team should must write clear code readable, clear code.
price: <del>$99</del> <ins>$79</ins>
/* combinator: del + ins
subtle red + subtle green = visual diff */
<fieldset> > <legend>
Group of fields. Legend floats over the fieldset border.