1.0.4 • Published 5 years ago
semantic-headings v1.0.4
semantic-headings
A React utility for dynamically generating headings with the correct semantic order.
Getting started
This library exports two react components (H and SemanticSection) that use the Context API to dynamically generate and maintain heading levels based on nested sections.
import { H, SemanticSection } from 'semantic-headings';
// renders <h1>Hello World</h1>
<H>Hello World</H>
// renders <h2>Hello World</h2>
<SemanticSection>
<H>Hello World</H>
</SemanticSection>
// renders an h1, h2, and h3
<H>Hello World</H>
<SemanticSection>
<H>Hello World</H>
<SemanticSection>
<H>Hello World</H>
</SemanticSection>
</SemanticSection>Advanced usage
Section Elements
By default the SemanticSection component does not render it's own element to the DOM. However a react component or element can be passed to SemanticSection using its element prop. Any additional props and refs passed to the component will be forwarded to that element.
<SemanticSection element="div">
<H>Hello World</H>
</SemanticSection>
// renders
<div>
<h2>Hello World</h2>
</div>Override Level
If you want to override the automatically generated level. You can do so using the level prop.
<H level={6}>Hello World</H> // <h6>Hello World</h6>Credit
The approached used in this library was inspired by @Heydon's medium post.