Fluid headings and comfortable text, grounded in the reader’s font settings.
CSS only4 examplesKeyboard friendly HTML
A type scale with room to breathe
Live preview
A thoughtful beginning.
A clear next chapter.
The details that matter.
A larger introduction sets the tone for the rest of the page.
Body text uses the system font and a comfortable line height. Fluid heading sizes are bounded by rem values so they respect user preferences.
Helpful context, in a quieter voice.
View HTML / PlaygroundHTML source
example.htmlHTML
<div class="sl-stack sl-gap-6"> <h2>A thoughtful beginning.</h2> <h3>A clear next chapter.</h3> <h4>The details that matter.</h4> <p class="sl-text-lg"> A larger introduction sets the tone for the rest of the page. </p> <p class="sl-measure"> Body text uses the system font and a comfortable line height. Fluid heading sizes are bounded by rem values so they respect user preferences. </p> <p class="sl-help">Helpful context, in a quieter voice.</p></div>
HTML source · enable JavaScript for the playground13 lines · UTF-8
Result
ReadyCtrl/⌘ + Enter to run · Scripts blocked
Long-form prose
The optional prose module gives editorial content a consistent rhythm.
Live preview
Leave space for the idea.
Good foundations make room for the things that matter. A clear rhythm helps readers move through your content.
Build the structure once. Let the content change.
Use meaningful headings.
Keep the measure comfortable.
Let links look like links.
View HTML / PlaygroundHTML source
example.htmlHTML
<article class="sl-prose"> <h3>Leave space for the idea.</h3> <p> Good foundations make room for the things that matter. A clear rhythm helps readers move through your content. </p> <blockquote>Build the structure once. Let the content change.</blockquote> <ul> <li>Use meaningful headings.</li> <li>Keep the measure comfortable.</li> <li>Let links look like links.</li> </ul></article>
HTML source · enable JavaScript for the playground13 lines · UTF-8
Result
ReadyCtrl/⌘ + Enter to run · Scripts blocked
Word-by-word reveal
Words are split at build time. A single accessible heading name prevents repeated speech.
HTML source · enable JavaScript for the playground19 lines · UTF-8
Result
ReadyCtrl/⌘ + Enter to run · Scripts blocked
Classes beginning with sl- come from StyloftCSS. Examples with demo- classes also use our optional demo extension CSS ↓. Load it after the core to reproduce those details.