Full API Reference
Every class, function, and type gets its own page with badges, clickable type links, signatures, and source breadcrumbs.
Modern API Docs for Dart
Drop-in replacement for dart doc — generates a Jaspr or VitePress site with search, dark mode, guides, and full customization
The generated Jaspr site keeps the same polished docs shell, but reshapes it into a focused landing page.
Every class, function, and type gets its own page with badges, clickable type links, signatures, and source breadcrumbs.
Built-in full-text search spans guide pages, API pages, and section headings without any external service.
Light and dark mode ship out of the box, and Jaspr theme presets let you retune the docs shell without rebuilding the app structure.
Put markdown files in doc/ or docs/ and they become guide routes with sidebar navigation next to the generated API docs.
One command can generate a unified docs site for a Dart workspace with package-aware navigation and search.
DartPad embeds, Mermaid diagrams, badges, callouts, and tabs all survive the generator pipeline.
Write API names in guides and the generator can keep them linkable across the docs site.
The generator only rewrites what changed, so large packages stay workable during iteration.
dart pub global activate dartdoc_modern
dartdoc_modern --format jaspr --output docs-site
cd docs-site && dart pub get && jaspr serve
dartdoc_modern --format jaspr \
--workspace-docs \
--exclude-packages 'example,test_utils' \
--output docs-site
cd docs-site && dart pub get && jaspr serve
dartdoc_modern --sdk-docs --format jaspr --output docs-site
cd docs-site && dart pub get && jaspr serve
dartdoc_modern --format vitepress --output docs-site
cd docs-site && npm install && npx vitepress dev
dartdoc_modern --format vitepress \
--workspace-docs \
--exclude-packages 'example,test_utils' \
--output docs-site
dartdoc_modern --sdk-docs --format vitepress --output docs-site
| dart doc | dartdoc_modern VitePress | dartdoc_modern Jaspr | |
|---|---|---|---|
| Output | Static HTML | VitePress (Markdown + Vue) | Jaspr app (Dart + SSR/static build) |
| Search | Basic | Full-text, offline | Full-text, offline |
| Dark mode | No | Yes | Yes |
| Guide docs | No | Auto from doc/ |
Auto from doc/ |
| Mono-repo | No | --workspace-docs |
--workspace-docs |
| Build speed / file count | Many HTML pages | Much faster, far fewer files | Much faster, far fewer files |
| DartPad embeds | No | Yes | Yes |
| Mermaid diagrams | No | Yes, with zoom | Yes, with runtime rendering |
| Customization | Templates | CSS, Vue components, plugins | Dart components, theme tokens, CSS |
dartdoc_modern is dramatically faster largely because it writes dramatically fewer files.
Standard dartdoc creates a separate HTML page for every member. Every method, property, constructor, and constant gets its own full HTML page with head, navigation, sidebar, and footer.
dartdoc_modern keeps members inline on the library or type page instead.
Icons class has about 2,000 static constants. dartdoc turns that into about 2,001 pages for one class.
dartdoc_modern keeps it on one page.
dartdoc generates roughly 15,000+ HTML files. dartdoc_modern
generates about 1,800 markdown files, around 52 MB of source markdown.
material_design_icons_flutter with 7,000+ static const icons, dartdoc
would emit 7,000+ individual pages. dartdoc_modern keeps that as one page.
This is a deliberate architectural choice, not a limitation. It reduces file-system churn, cuts I/O, speeds up builds, and makes browsing APIs better: you can
Ctrl+F through the whole class, jump with the outline, and use search without opening dozens of member pages.
Dart SDK API docs generated with dartdoc_modern.