Guides
Styling
nizel-style ships scoped CSS for rendered Nizel content and official plugin output.
Use it when you want Nizel HTML to be styled directly without writing application-specific selectors for every Markdown and plugin element.
Install
npm install nizel-style
Full Stylesheet
Import the complete stylesheet when you want core content styles and all first-party plugin styles.
import 'nizel-style';
Or link the compiled CSS:
<link rel="stylesheet" href="/node_modules/nizel-style/dist/nizel-style.css">
Wrap rendered output with a supported scope:
<article class="nizel-content">
<!-- rendered Nizel HTML -->
</article>
The same styles also target [data-nizel-content] and .nizel-prose.
Partial Styles
Load only the CSS for the plugins you use.
import 'nizel-style/tokens.css';
import 'nizel-style/base.css';
import 'nizel-style/plugins/alert.css';
import 'nizel-style/plugins/code-copy.css';
import 'nizel-style/plugins/shiki.css';
import 'nizel-style/plugins/task-list.css';
Available plugin entrypoints:
| Plugin | CSS |
|---|---|
| Abbreviations | nizel-style/plugins/abbr.css |
| Alerts | nizel-style/plugins/alert.css |
| Citations | nizel-style/plugins/citations.css |
| Code Copy | nizel-style/plugins/code-copy.css |
| Definition Lists | nizel-style/plugins/deflist.css |
| Details | nizel-style/plugins/details.css |
| Diagrams | nizel-style/plugins/diagrams.css |
| Footnotes | nizel-style/plugins/footnotes.css |
| Frontmatter UI | nizel-style/plugins/frontmatter-ui.css |
| Heading Anchors | nizel-style/plugins/heading-anchors.css |
| Math | nizel-style/plugins/math.css |
| Media | nizel-style/plugins/media.css |
| Shiki | nizel-style/plugins/shiki.css |
| Task Lists | nizel-style/plugins/task-list.css |
| Table of Contents | nizel-style/plugins/toc.css |
| Typography | nizel-style/plugins/typography.css |
Theme Tokens
Set tokens on :root, a theme container, or directly on the content scope.
.nizel-content {
--nizel-foreground: #1f2328;
--nizel-background: #ffffff;
--nizel-surface: #f6f8fa;
--nizel-border: #d0d7de;
--nizel-primary: #2563eb;
--nizel-secondary: #7c3aed;
--nizel-error: #b42318;
--nizel-info: #0969da;
--nizel-success: #1a7f37;
--nizel-warning: #9a6700;
--nizel-font-body: Inter, system-ui, sans-serif;
--nizel-font-heading: Inter, system-ui, sans-serif;
--nizel-font-code: "SF Mono", Menlo, Monaco, monospace;
}
The token layer falls back to common app tokens such as --foreground, --background, --primary, --secondary, --error, and --info.
Spacing
Spacing is based on named em tokens so rendered content scales with its font size.
.nizel-content {
--nizel-space-xxs: 0.2em;
--nizel-space-xs: 0.35em;
--nizel-space-s: 0.65em;
--nizel-space: 1em;
--nizel-space-l: 1.35em;
--nizel-space-xl: 1.8em;
--nizel-space-xxl: 2.6em;
}
Plugin styles use those variables instead of hard-coded spacing values.
Preview
The package includes a Markdown-backed preview fixture in packages/nizel-style/preview.md.
npm run preview:build --workspace nizel-style
Open packages/nizel-style/preview.html to inspect the rendered output.