Skip to content

File Formats

MikroSlides has one canonical editable deck format and one lighter authoring format.

  • Use MikroSlides Markdown for hand-written outlines, scripts, and generated first drafts.
  • Use JSON when a tool or script needs precise control over slides, objects, geometry, fonts, and assets.

Use MikroSlides Markdown to create a deck from text. It is intended for hand-written outlines, scripts, and AI-generated first drafts.

Supported file extensions:

  • .md
  • .markdown
  • .mikroslides.md

Deck frontmatter is optional:

---
title: Launch Plan
aspect: 16:9
accent: #1665d8
background: #f8fafc
---

Supported deck fields:

FieldValues
titleDeck title
aspect or aspectRatio16:9, 4:3, 1:1
accent, background, muted, surface, textCSS color values

Slides can be separated with ---. Each slide can start with metadata:

---
layout: image-right
image: https://example.com/chart.png
alt: Chart
skip: true
# Results
- Revenue improved
- Retention improved
notes:
Pause before showing the numbers.

Supported slide fields:

FieldValues
layouttitle, section, statement, bullets, image-left, image-right, quote, comparison, timeline, chart-data, closing
backgroundCSS color value
imageImage URL or data URL
altImage description
fitcover, contain
skip or skippedtrue, yes, skip, 1
transitionnone, fade, slide

Ordinary Markdown headings also work:

# Launch Plan
Intro text for the title slide.
## Why now
- Customer demand
- Internal readiness
## Next steps
1. Pilot
2. Measure
3. Roll out

.mikroslides.json is the canonical editable deck export. It contains the full deck record: slides, objects, theme, fonts, notes, skipped-slide state, and geometry.

The schema envelope is:

{
"schema": "mikroslides.deck",
"version": 1,
"exportedAt": "2026-06-11T00:00:00.000Z",
"deck": {
"id": "deck_example",
"title": "Example",
"slides": [],
"activeSlideId": "slide_example",
"aspectRatio": "16:9",
"theme": {}
}
}

The repository includes a JSON Schema at schemas/mikroslides-deck.schema.json.

Element geometry is stored in slide-relative units:

FieldMeaning
xPercent from the left edge of the slide
yPercent from the top edge of the slide
widthPercent of slide width
heightPercent of slide height
rotationDegrees
opacity0 to 1

Example text object:

{
"id": "el_title",
"kind": "text",
"x": 10,
"y": 12,
"width": 72,
"height": 14,
"rotation": 0,
"opacity": 1,
"locked": false,
"content": "Launch Plan",
"color": "#1e293b",
"fontFamily": "system",
"fontSize": 42,
"fontWeight": 740,
"lineHeight": 1.1,
"italic": false,
"align": "left",
"verticalAlign": "center",
"listStyle": "none"
}

JSON import is normalized by MikroSlides. Missing optional fields receive defaults, invalid layout and enum values fall back to safe values, and imported decks are copied into the local library as new decks.

.mikroslides uses the same deck record as JSON and adds embedded assets where available. Use it when a deck should travel as one file with local images and local font assets.

  • Use Markdown for drafting and generated first versions.
  • Use JSON for editable backups, tests, and programmatic full-fidelity decks.
  • Use portable files when moving a deck with local assets between browsers or machines.