---
title: "Markdown component | zenit Zig UI"
description: "Renders a supported Markdown subset as native nodes. Headings, emphasis, inline code, lists and quotes become real layout text nodes."
url: https://ui.surf/zenit/components/markdown
language: en
alternate_zh: https://ui.surf/zenit/zh/components/markdown.md
alternate_es: https://ui.surf/zenit/es/components/markdown.md
alternate_ja: https://ui.surf/zenit/ja/components/markdown.md
alternate_ko: https://ui.surf/zenit/ko/components/markdown.md
alternate_fr: https://ui.surf/zenit/fr/components/markdown.md
alternate_de: https://ui.surf/zenit/de/components/markdown.md
project: zenit v0.1.0-alpha (Zig 0.15.2, macOS)
source: https://github.com/version-next/zenit
---

# Markdown

`ui.widgets.Markdown`

Renders a supported Markdown subset as native nodes.

[Video](https://ui.surf/zenit/media/stories/markdown.mp4?v=212f340ccc)

**BEHAVIOR CONTRACT**

Headings, emphasis, inline code, lists and quotes become real layout text nodes.

**RECORDED INTERACTION**

Shows headings, bold, italic, lists and quotes.

`examples/storybook/stories.zig:2871`

```zig
// ── Markdown ──
pub fn buildMarkdown(scope: *ui.Scope, cx: *ui.Cx) anyerror!*ui.Node {
    _ = scope;
    const md =
        \\# Markdown
        \\
        \\Supports **bold**, *italic*, and `inline code`.
        \\
        \\- bullet one
        \\- bullet two
        \\
        \\> A blockquote line.
    ;
    const res = try W.Markdown(md, .{ .base_font_size = 13 }).render(cx);
    return res.root;
}
```

[View source on GitHubexamples/storybook/stories.zig:2871](https://github.com/version-next/zenit/blob/HEAD/examples/storybook/stories.zig#L2871)

The story's verbatim source from the Storybook (zenit 4c50245 2026-10-01). `W` is `ui.widgets`; `col` / `row` / `label` are small Storybook layout helpers.

### MarkdownBuilder

`ui.widgets.Markdown`

mount returns `MarkdownBuilder` directly. Append it to a parent.
