Typography utilities for Svelte.
Inspired by the U.S. Web Design System Prose component, svelte-prose
is a collection of components for long-form typography.
yarn add -D svelte-prose
<script>
import Prose, { T } from "svelte-prose";
</script>
<Prose>
<T.H1 text="Heading level 1" />
<T.H2 text="Heading level 2" />
<p>Some text content.</p>
</Prose>
A Heading component (T.H1
, T.H2
, T.H3
, T.H4
, T.H5
, T.H6
) automatically creates an id from the text prop.
<T.H1 text="Heading level 1" />
<!-- <h1 id="heading-level-1">Heading level 1</h1> -->
The Prose
component creates a two-tiered table of contents from headings.
Hide the default ToC to render your own:
<Prose hideToc let:toc>
<nav>
<ul>
{#each toc as { id, text, children }}
<li>
<a href="#{id}">{text}</a>
<ul>
{#each children as child}
<li>
<a href="#{child.id}">{child.text}</a>
</li>
{/each}
</ul>
</li>
{/each}
</ul>
</nav>
<T.H1 text="Heading level 1" />
<T.H2 text="Heading level 2" />
<p>Some text content.</p>
</Prose>
Prose
Property name | Value |
---|---|
hideToc | boolean (default: false ) |
T.H{1-6}
Property name | Value |
---|---|
text | string (default: undefined ) |