NornaKit

BUILT WITH SWIFT. NATIVE BY DESIGN.

Give your ideas
a clearer shape.

Mermaid diagrams, rendered natively in Swift.
From a few lines of text to a picture that makes sense.

Currently macOS 14+Pure SwiftNo WebView
hello-nornakit.mmdNative output
An idea becomes Mermaid source, then a native diagram and an SVG exportAn idea becomes Mermaid source, then a native diagram and an SVG export
An actual Swift render. Presented here as a screenshot.CoreText → CoreGraphics
01

Native, all the way.

Parsing, text measurement, layout, and drawing happen in Swift. No browser runtime in your app.

02

One scene. More possibilities.

The native canvas and SVG share the same geometry. Preview your diagram, then take it with you.

03

Ready to integrate.

Add NornaKit as a Swift Package. Parse, lay out, draw, and export diagrams directly in your app.

THE NATIVE COLLECTION

A little syntax. A lot of clarity.

33 diagram families · 36 examples

Explore real output from the native engine. Select a diagram to see its screenshot and source.

Example
Source
Download .mmd

Each family includes a working example. Syntax support varies by diagram type.See support notes ↗

NATIVE DIAGRAMS FOR YOUR APP

A native canvas.
A familiar language.

Add NornaKit to your app for native diagram rendering and export. Norna Studio is an optional Mac tool for demos, rendering checks, debugging, and occasional exports.

Read the documentation
Norna StudioCompanion demo and debugging tool
Blocked when opening Norna Studio?

Norna Studio currently has no Developer ID signature or Apple notarization. macOS may report that the developer cannot be verified or the app cannot be opened.

After downloading from this project’s GitHub Releases and verifying that you trust the app, move Norna Studio to Applications. Open Terminal and run:

xattr -dr com.apple.quarantine "/Applications/Norna Studio.app"

Then open Norna Studio again. This command removes the download quarantine attribute from this app. If you installed it elsewhere, replace the path with its actual location. It does not repair an incomplete or damaged download.

Installation and first-launch help
Swift
import NornaKit

let renderer = NativeDiagramRenderer()
let diagram = try await renderer.render(
    "flowchart LR\n A[Hello] --> B[NornaKit]"
)

let scene = diagram.scene
let svg = diagram.themedSVG(.appleLight)

Add the NornaKit package and import NornaKit to render diagrams.

Less between your idea and the diagram.

Take a closer look
Native output