You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+78-5Lines changed: 78 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,7 +12,7 @@ Representative snapshot fixtures from the E2E suite. Click any thumbnail to open
12
12
<!-- markdownlint-disable MD033 -->
13
13
<h3>Diagram Types</h3>
14
14
15
-
DiagramForge currently supports more than a dozen diagram types across Mermaidand the conceptual DSL. This gallery is representative, not complete, and includes a few icon-enabled examples. See [Supported syntax](#supported-syntax) and [Conceptual DSL](#conceptual-dsl) below for the full set and syntax details.
15
+
DiagramForge currently supports more than a dozen diagram types across Mermaid, the Conceptual DSL, and the Wireframe DSL. This gallery is representative, not complete, and includes a few icon-enabled examples. See [Supported syntax](#supported-syntax), [Conceptual DSL](#conceptual-dsl), and [Wireframe DSL](#wireframe-dsl) below for the full set and syntax details.
16
16
17
17
<tablecellpadding="12"width="100%">
18
18
<tr>
@@ -138,6 +138,20 @@ DiagramForge currently supports more than a dozen diagram types across Mermaid a
Most diagram-as-code tools assume a browser. Mermaid.js needs a JavaScript engine to run at all — and even once you've stood up headless Chrome and extracted the SVG, you find that it renders text via `<foreignObject>` wrapping HTML `<div>`s instead of native `<text>` elements. That's fine in a web page. It's a blank box in Inkscape, a parse error in Illustrator, and a mess when you try to drop it into a PowerPoint slide. See mermaid-js/mermaid [#2688](https://github.com/mermaid-js/mermaid/issues/2688), [#1845](https://github.com/mermaid-js/mermaid/issues/1845), [#1923](https://github.com/mermaid-js/mermaid/issues/1923), [#2169](https://github.com/mermaid-js/mermaid/issues/2169).
280
294
281
-
DiagramForge aims lower and hits harder: a **subset** of Mermaid, rendered to **actual** SVG. Flowcharts, block diagrams, sequence diagrams, state diagrams, mindmaps, timelines, Venn diagrams, architecture diagrams, and XY charts — the output opens anywhere.
295
+
DiagramForge aims lower and hits harder: a **subset** of Mermaid, rendered to **actual** SVG. Flowcharts, block diagrams, sequence diagrams, state diagrams, mindmaps, timelines, Venn diagrams, architecture diagrams, XY charts, and low-fidelity wireframes — the output opens anywhere.
282
296
283
297
-**Real SVG.** Native `<text>` elements. No `<foreignObject>`, no embedded HTML, no CSS-in-SVG. Opens in Inkscape, imports into PowerPoint and Keynote, renders with librsvg.
284
298
-**Pure .NET.**`net10.0`, zero native dependencies, zero runtime package dependencies. No headless browser, no Node, no shelling out.
| Low-fidelity UI mockup / wireframe sketch | Wireframe DSL | `wireframe: Settings\n::: HEADER :::\n # Settings\n--- END ---\n[ text: Name ]\n[ Save ](#save)` |
787
802
788
803
Planned conceptual additions are aimed at presentation-native graphics that Mermaid does not cover idiomatically, such as tree hierarchies / org charts.
789
804
@@ -919,6 +934,64 @@ steps:
919
934
920
935
Requires at least 3 steps. Each step follows the format `Label: Description` — the description is optional. Icons use the standard `icon:pack:name` prefix.
921
936
937
+
### Wireframe DSL
938
+
939
+
Low-fidelity wireframe diagrams based on the [markdown-ui-dsl](https://github.com/MegaByteMark/markdown-ui-dsl) syntax. The first non-frontmatter line must start with `wireframe`.
940
+
941
+
DiagramForge implements a focused subset of the DSL — enough to sketch forms, dashboards, and component showcases as static, theme-able SVG.
942
+
943
+
#### Supported components
944
+
945
+
| Component | Syntax | Example |
946
+
| --- | --- | --- |
947
+
| Header | `::: HEADER :::`…`--- END ---` | `::: HEADER :::\n # Page Title\n--- END ---` |
948
+
| Card | `::: CARD: Label :::`…`--- END ---` | `::: CARD: Users :::\n ## 1,240\n Total\n--- END ---` |
949
+
| Row layout | `=== ROW ===`…`--- END ---` | `=== ROW ===\n [ OK ](#ok)\n [ Cancel ]\n--- END ---` |
All wireframe colors are derived from the active theme's `BackgroundColor`, `TextColor`, `SubtleTextColor`, and `AccentColor`, so every built-in theme (including dark themes) works automatically. Use [frontmatter](#with-diagram-frontmatter) to pick a theme:
984
+
985
+
```text
986
+
---
987
+
theme: dracula
988
+
---
989
+
wireframe: Dashboard
990
+
::: HEADER :::
991
+
# Mission Control
992
+
--- END ---
993
+
```
994
+
922
995
## Architecture
923
996
924
997
```mermaid
@@ -945,7 +1018,7 @@ Parsers produce a syntax-independent `Diagram` (nodes, edges, groups, labels, la
945
1018
946
1019
## Roadmap
947
1020
948
-
See [`doc/prd.md`](doc/prd.md) for the full plan. Short version: more Mermaid diagram types, more conceptual layouts, theme packs, eventually D2 and DOT parsers.
1021
+
See [`doc/prd.md`](doc/prd.md) for the full plan. Short version: more Mermaid diagram types, more conceptual layouts, wireframe enhancements, theme packs, eventually D2 and DOT parsers.
949
1022
950
1023
For analysis of which SmartArt-style conceptual diagrams are most worth adding next, see [`doc/smartart-analysis.md`](doc/smartart-analysis.md).
@@ -38,7 +39,7 @@ Clients (e.g., MarpToPptx, Obsidian plugins, CLI tools) are responsible for extr
38
39
- Provide a **pluggable parser architecture** for future syntaxes (e.g., D2, DOT).
39
40
- Remain **independent of any specific client** (Marp, PPTX, web apps, etc.).
40
41
- Support for themes and palletes, both built-in and user supplied.
41
-
- Leverage existing ecosystem. Refer to https://github.com/mermaid-js/mermaid for specification and transpile open source code (with attribution) if possible.
42
+
- Leverage existing ecosystem. Refer to <https://github.com/mermaid-js/mermaid> for specification and transpile open source code (with attribution) if possible.
42
43
43
44
### 2.2 Non‑Goals
44
45
@@ -148,7 +149,26 @@ Examples that remain good candidates for the Conceptual DSL:
148
149
- Radial / hub-and-spoke
149
150
- Pillars / stacked segments
150
151
151
-
### 5.3 Future Diagram Types (not in v1)
152
+
### 5.3 Wireframe DSL
153
+
154
+
Low-fidelity wireframe diagrams based on the [markdown-ui-dsl](https://github.com/MegaByteMark/markdown-ui-dsl) syntax. The wireframe parser implements a focused subset of the DSL to render UI mockups as self-contained SVG.
- Form elements: text input, checkbox, radio button, toggle, dropdown
160
+
- Navigation: tab bar (active/inactive states)
161
+
- Content: heading, body text, badge (inline with trailing text), image placeholder, divider
162
+
- Actions: button (primary via link syntax, secondary via plain brackets)
163
+
- Layout: `=== ROW ===` for horizontal arrangement, `::: CARD :::` for grouped content, `***` dividers, indent-based nesting
164
+
165
+
Selection rule:
166
+
167
+
- Use the wireframe DSL when the goal is a quick, theme-able, low-fidelity UI sketch inside a slide or document.
168
+
- The wireframe DSL is not a UI framework; it renders static SVG of standard UI widget shapes.
169
+
- All wireframe colors are derived from the four semantic theme properties (`BackgroundColor`, `TextColor`, `SubtleTextColor`, `AccentColor`) via `WireframePalette`, so every built-in theme works out of the box including dark themes.
0 commit comments