Kitchen sink
Every element ZenithDocs can render, on a single page.
On this page
This page uses every Markdown feature and component available in ZenithDocs. Use it to check a theme at a glance.
Switch the accent preset to preview it on this page. Use the button in the header to toggle dark mode.
Backdrop styles, drawn behind the top of the page. Scroll back up after switching.
A regular paragraph with bold, italic, bold italic, strikethrough, inline code, highlighted text, CSS, H2O and E = mc2. Press Ctrl + Shift + P to open the command palette.
Links can point to another page, to a section of this page, or to an external site. Bare URLs are linked too: https://lumosframework.com.
A second paragraph follows, long enough to wrap on several lines, so you can judge the line height and measure of body text. Good documentation reads like a conversation: short sentences, concrete examples and a clear structure make it easy to skim.
This heading uses [#custom-anchor] to set its id.
- Unordered item
- Item with formatting and
code- Nested item
- Another nested item
- Third level
- Last item
- First step
- Second step
- Nested ordered item
- Another one
- Third step
- Completed task
- Another completed task
- Pending task
Documentation is a love letter that you write to your future self.
It can span several paragraphs, and contain
codeor formatting.
| Left aligned | Centered | Right aligned |
|---|---|---|
| Search | Yes | Static index with Pagefind |
| i18n | Yes | Several languages, with a fallback |
llms.txt |
Yes | Markdown output for LLMs |
| Playground | No | Out of scope for a static site |
Native details element
Raw HTML works in MDX, including <details>.
Content above the rule.
Content below the rule.
GitHub alerts are a Markdown extension supported on GitHub: a blockquote starting with [!TYPE]. ZenithDocs renders them as callouts, so the same file looks right both on GitHub and on your site. Each of the five alert types has its own style.
A code block without a language.interface Options {
name: string;
excited?: boolean;
}
export function greet({ name, excited = false }: Options): string {
return `Hello, ${name}${excited ? '!' : '.'}`;
}const first = 'meta highlight';
const second = 'this line is highlighted from the meta';
const third = 'back to normal';const regular = true;
const important = true;
const alsoRegular = true;import zenith from 'zenith-docs';
export default { integrations: [zenith({ title: 'Docs' })] };export default defineConfig({
integrations: [
starlight({ title: 'Docs' }),
zenith({ title: 'Docs' }),
],
});.card {
padding: 1rem;
border-radius: var(--radius-main);
background: var(--background-2);
}{
"name": "my-docs",
"type": "module",
"scripts": {
"dev": "astro dev",
"build": "astro build"
}
}---
const { name } = Astro.props;
---
<p class="hello">Hello, {name}!</p>
<style>
.hello { color: var(--accent); }
</style>title: Kitchen sink
sidebar:
label: Every element
hidden: falsenpx zenith build && npx zenith preview --openconst aVeryLongLine = 'This line is deliberately long so that the code block has to scroll horizontally instead of wrapping, which keeps the code readable.';With icon and link
The whole card is clickable.
Without a link
A static card with an icon.
Without an icon
Just a title and a description.
Title only
npm
npm install github:AymericChaverot/zenith-docspnpm
pnpm add github:AymericChaverot/zenith-docsnpm
This set follows the one above, and the choice is remembered across pages, including the installation page.pnpm
Selected pnpm.Rich content
Tabs can hold any content, like lists:
- One
- Two
Built from values
Without items, the tab list is built from each <Tab> value.
Grouped: only one opens at a time
Opening another accordion of the group closes this one.
Second item of the group
Accordions are native <details> elements.
Third item of the group
No JavaScript involved.
A standalone accordion
Accordions can also be used on their own.
apps
docs
src
content
Built-in icons can be used anywhere with the Icon component:
ZenithDocs builds on Lumos1 and Astro2.