Skeleton provides an array of opt-in utility classes for common typographic elements, with a fully functional typography scale based on your theme settings. As well as a number of primitives for generating a semantic typography set for your project's individual needs.
Native Element Styles
Skeleton provides the following utlity classes for styling semantic native HTML elements. These are available for a variety of common typographic elements and opt-in by default, providing an escape hatch to easily to break from convention.
<p>The quick brown fox jumps over the lazy dog</p>
Blockquotes
"Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nesciunt, aliquid. Molestias, odio illum voluptatibus natus dignissimos, quidem
est unde aspernatur veniam pariatur fuga distinctio esse in quas, repellendus neque reiciendis!"
astro
<blockquote class="blockquote"> "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nesciunt, aliquid. Molestias, odio illum voluptatibus natus dignissimos, quidem est unde aspernatur veniam pariatur fuga distinctio esse in quas, repellendus neque reiciendis!"</blockquote>
<pre class="pre">The quick brown fox jumps over the lazy dog.</pre>
Code
Insert the .example class here.
astro
<div>Insert the <code class="code">.example</code> class here.</div>
Keyboard
Press ⌘ + C to copy.
astro
<div>Press <kbd class="kbd">⌘</kbd> + <kbd class="kbd">C</kbd> to copy.</div>
Insert & Delete
Always Gonna Give You Up Never Gonna Give You Up
astro
<div class="w-full"> <del class="del"><s>Always</s> Gonna Give You Up</del> <ins class="ins" cite="https://youtu.be/dQw4w9WgXcQ" datetime="10-31-2022"> Never Gonna Give You Up </ins></div>
Mark
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nesciunt, aliquid. Molestias, odio illum voluptatibus
natus dignissimos, quidem est unde aspernatur veniam pariatur fuga.
astro
<p> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nesciunt, <mark class="mark">aliquid</mark>. Molestias, odio illum voluptatibus <mark class="mark">natus dignissimos</mark>, quidem est unde aspernatur veniam pariatur fuga.</p>
Lists
Skeleton defers to Tailwind’s built-in utility classes for common list styles.
Basic List
Id maxime optio soluta placeat ea eaque similique consectetur dicta tempore.
Repellat veritatis et harum ad sint reprehenderit tenetur, possimus tempora.
Lorem ipsum dolor sit amet consectetur adipisicing elit harum ad sint.
Unordered List
Id maxime optio soluta placeat ea eaque similique consectetur dicta tempore.
Repellat veritatis et harum ad sint reprehenderit tenetur, possimus tempora.
Lorem ipsum dolor sit amet consectetur adipisicing elit harum ad sint.
Ordered List
Id maxime optio soluta placeat ea eaque similique consectetur dicta tempore.
Repellat veritatis et harum ad sint reprehenderit tenetur, possimus tempora.
Lorem ipsum dolor sit amet consectetur adipisicing elit harum ad sint.
Description List
Item A
Id maxime optio soluta placeat ea eaque similique consectetur dicta tempore.
Item B
Repellat veritatis et harum ad sint reprehenderit tenetur, possimus tempora.
Item C
Lorem ipsum dolor sit amet consectetur adipisicing elit harum ad sint.
astro
<div class="w-full space-y-4"> <!-- Basic List --> <section class="space-y-4"> <p class="text-lg font-bold">Basic List</p> <ul class="list-inside list-none space-y-2"> <li>Id maxime optio soluta placeat ea eaque similique consectetur dicta tempore.</li> <li>Repellat veritatis et harum ad sint reprehenderit tenetur, possimus tempora.</li> <li>Lorem ipsum dolor sit amet consectetur adipisicing elit harum ad sint.</li> </ul> </section> <hr class="hr" /> <!-- Unordered List --> <section class="space-y-4"> <p class="text-lg font-bold">Unordered List</p> <ul class="list-inside list-disc space-y-2"> <li>Id maxime optio soluta placeat ea eaque similique consectetur dicta tempore.</li> <li>Repellat veritatis et harum ad sint reprehenderit tenetur, possimus tempora.</li> <li>Lorem ipsum dolor sit amet consectetur adipisicing elit harum ad sint.</li> </ul> </section> <hr class="hr" /> <!-- Ordered List --> <section class="space-y-4"> <p class="text-lg font-bold">Ordered List</p> <ul class="list-inside list-decimal space-y-2"> <li>Id maxime optio soluta placeat ea eaque similique consectetur dicta tempore.</li> <li>Repellat veritatis et harum ad sint reprehenderit tenetur, possimus tempora.</li> <li>Lorem ipsum dolor sit amet consectetur adipisicing elit harum ad sint.</li> </ul> </section> <hr class="hr" /> <!-- Description List --> <section class="space-y-4"> <p class="text-lg font-bold">Description List</p> <dl class="space-y-2"> <div> <dt class="font-bold">Item A</dt> <dd class="opacity-60">Id maxime optio soluta placeat ea eaque similique consectetur dicta tempore.</dd> </div> <div> <dt class="font-bold">Item B</dt> <dd class="opacity-60">Repellat veritatis et harum ad sint reprehenderit tenetur, possimus tempora.</dd> </div> <div> <dt class="font-bold">Item C</dt> <dd class="opacity-60">Lorem ipsum dolor sit amet consectetur adipisicing elit harum ad sint.</dd> </div> </dl> </section> <hr class="hr" /> <!-- Navigation List --> <nav class="space-y-2"> <!-- Optional Heading --> <p class="text-lg font-bold">Navigation List</p> <!-- / --> <ul class="space-y-2"> <li> <a class="anchor" href="#">Home</a> </li> <li> <a class="anchor" href="#">About</a> </li> <li> <a class="anchor" href="#">Blog</a> </li> </ul> </nav></div>
Advanced Features
The following features are optional and intended for professionals with extensive understanding of web-based typography. If you’re unfamiliar with these concepts, feel free skip them and use the friendly defaults Skeleton provides out of the box.
Typographic Scale
Skeleton augments Tailwind’s font-size utilities to support a customizable Typographic Scale system. Put simply, by modifying your theme’s --text-scaling property, you can control the overall scale of text globally throughout your application. See the Core API to review the scaling forumula.
--text-scaling: 1
Aa
text-9xl
Aa
text-8xl
Aa
text-7xl
Aa
text-6xl
Aa
text-5xl
Aa
text-4xl
Aa
text-3xl
Aa
text-2xl
Aa
text-xl
Aa
text-lg
Aa
text-base
Aa
text-sm
Aa
text-xs
TIP: the base scale size is 1.0 for 100%
Semantic Typography
When working in a professional environment, your designers may craft a semantic set of typography for your project using unique names, canned sizes, adn pre-configured styles. To handle this in Skeleton, we recommend following best practices for User Generated Presets , mixing CSS primitives with semantic HTML elements to replicate all required styles.
We’ve provided a boilerplate set to help you get started. Implement into your global stylesheet, then customize as needed.
Class
Preview
preset-typo-display-4
Aa
preset-typo-display-3
Aa
preset-typo-display-2
Aa
preset-typo-display-1
Aa
preset-typo-headline
Headline
preset-typo-title
Title
preset-typo-subtitle
Subtitle
preset-typo-body-1
Body 1
preset-typo-body-2
Body 2
preset-typo-caption
Caption
preset-typo-menu
Menu
preset-typo-button
Button
svelte
<div class="table-wrap"> <table class="table"> <thead> <tr> <th>Class</th> <th>Preview</th> </tr> </thead> <tbody> <tr> <td><code class="code">preset-typo-display-4</code></td> <td><h1 class="preset-typo-display-4">Aa</h1></td> </tr> <!-- --- --> <tr> <td><code class="code">preset-typo-display-3</code></td> <td><h2 class="preset-typo-display-3">Aa</h2></td> </tr> <!-- --- --> <tr> <td><code class="code">preset-typo-display-2</code></td> <td><h3 class="preset-typo-display-2">Aa</h3></td> </tr> <!-- --- --> <tr> <td><code class="code">preset-typo-display-1</code></td> <td><h4 class="preset-typo-display-1">Aa</h4></td> </tr> <!-- --- --> <tr> <td><code class="code">preset-typo-headline</code></td> <td><p class="preset-typo-headline">Headline</p></td> </tr> <!-- --- --> <tr> <td><code class="code">preset-typo-title</code></td> <td><p class="preset-typo-title">Title</p></td> </tr> <!-- --- --> <tr> <td><code class="code">preset-typo-subtitle</code></td> <td><p class="preset-typo-subtitle">Subtitle</p></td> </tr> <!-- --- --> <tr> <td><code class="code">preset-typo-body-1</code></td> <td> <p class="preset-typo-body-1">Body 1</p> </td> </tr> <!-- --- --> <tr> <td><code class="code">preset-typo-body-2</code></td> <td> <p class="preset-typo-body-2">Body 2</p> </td> </tr> <!-- --- --> <tr> <td><code class="code">preset-typo-caption</code></td> <td><span class="preset-typo-caption">Caption</span></td> </tr> <!-- --- --> <tr> <td><code class="code">preset-typo-menu</code></td> <td><span class="preset-typo-menu">Menu</span></td> </tr> <!-- --- --> <tr> <td><code class="code">preset-typo-button</code></td> <td><span class="preset-typo-button">Button</span></td> </tr> </tbody> </table></div><style lang="postcss"> /* IGNORE THIS: this is only required for our example <style> block. */ /* https://tailwindcss.com/docs/functions-and-directives#reference-directive */ @reference "@/app.css"; /* In a real world project, copy the following into your global stylesheet. Then rename, adjust the styles, and otherwise modify as desired. For a quick reference for these theme variables, see the Core API: http://skeleton.dev/docs/get-started/core-api#typography */ /* Headings */ .preset-typo-display-4, .preset-typo-display-3, .preset-typo-display-2, .preset-typo-display-1, .preset-typo-headline, .preset-typo-title, .preset-typo-subtitle, .preset-typo-caption, .preset-typo-menu, .preset-typo-button { color: var(--heading-font-color); font-family: var(--heading-font-family); font-weight: var(--heading-font-weight); @variant dark { color: var(--heading-font-color-dark); } } /* Body */ .preset-typo-body-1, .preset-typo-body-2, .preset-typo-caption, .preset-typo-menu, .preset-typo-button { color: var(--heading-font-color); @variant dark { color: var(--heading-font-color-dark); } } /* Unique Properties */ .preset-typo-display-4 { font-size: var(--text-7xl); @variant lg { font-size: var(--text-9xl); } } .preset-typo-display-3 { font-size: var(--text-6xl); @variant lg { font-size: var(--text-8xl); } } .preset-typo-display-2 { font-size: var(--text-5xl); @variant lg { font-size: var(--text-7xl); } } .preset-typo-display-1 { font-size: var(--text-4xl); @variant lg { font-size: var(--text-6xl); } } .preset-typo-headline { font-size: var(--text-2xl); @variant lg { font-size: var(--text-4xl); } } .preset-typo-title { font-size: var(--text-xl); @variant lg { font-size: var(--text-3xl); } } .preset-typo-subtitle { font-size: var(--text-base); font-family: var(--heading-font-family); color: var(--color-surface-700-300); @variant lg { font-size: var(--text-xl); } } .preset-typo-body-1 { font-size: var(--text-xl); @variant lg { font-size: var(--text-3xl); } } .preset-typo-body-2 { font-size: var(--text-lg); @variant lg { font-size: var(--text-xl); } } .preset-typo-caption { font-size: var(--text-sm); color: var(--color-surface-700-300); } .preset-typo-menu { font-weight: bold; } .preset-typo-button { font-weight: bold; }</style>