# Formats

A **format** decides how a story is told. The source stays the same: front matter, scenes separated
by `---` and `:::` directives. Only the renderer changes, chosen with the `format:` key of the front
matter (`deck` by default).

```md
---
title: Lorem ipsum
format: deck # deck | motion | report | toon | book | roadmap | calendar | stories
---

--- layout=cover

# Lorem ipsum
```

## Status

Formats are released **one by one**. Each one gets its packages, its examples, its section in this
documentation and its own site.

| Format                                             | Output                                                              | One scene is          | Package               | Status                                       |
| -------------------------------------------------- | ------------------------------------------------------------------- | --------------------- | --------------------- | -------------------------------------------- |
| [`deck`](/formats/deck/overview)                   | presentation: navigation, presenter console, HTML and PDF export    | a slide               | `@recit/deck`         | <StatusBadge status="available" />           |
| [`docs`](/documentation/integrations/site-stories) | stories as pages and embeds of a Récit site                         | a page                | `@recit/site-stories` | <StatusBadge status="available" />           |
| [`motion`](/formats/motion)                        | video and web animation: MP4, playback in the browser               | a shot                | `@recit/motion*`      | <StatusBadge status="available" />           |
| `report`                                           | data report: charts, tables, continuous HTML and paged PDF          | a section             | `@recit/report`       | <StatusBadge status="planned" phase="P6" />  |
| `toon`                                             | webtoon: vertical strip of panels, translatable bubbles, slices     | a panel               | `@recit/toon`         | <StatusBadge status="planned" phase="P7" />  |
| `book`                                             | book: printable PDF, EPUB 3 and web edition                         | a chapter             | `@recit/book`         | <StatusBadge status="planned" phase="P8" />  |
| `roadmap`                                          | public roadmap: lanes, milestones, now-next-later, timeline, kanban | a lane or a milestone | `@recit/roadmap`      | <StatusBadge status="planned" phase="P9" />  |
| `calendar`                                         | calendar and agenda: month, week, agenda and year views, ICS feed   | an event              | `@recit/calendar`     | <StatusBadge status="planned" phase="P10" /> |
| `stories`                                          | web stories: full-screen 9:16 cards, tap and swipe                  | a card                | `@recit/stories`      | <StatusBadge status="planned" phase="P11" /> |

## Available formats

### Deck

Slide decks written in Markdown or MDX: layouts, highlighted code, math, diagrams, progressive
steps, speaker notes, presenter console, smartphone remote, static site, single HTML file and PDF.
See [Deck](/formats/deck/overview), and the gallery on [presentation.recit.dev](https://presentation.recit.dev).

### Docs

Every story can be published inside a Récit site: one prerendered route per story, `<StoryEmbed />`
and `<StoryGallery />` in MDX pages, and a Pagefind search that returns the slide. This site uses
it. See [Stories in a site](/documentation/integrations/site-stories).

### Motion

The same story becomes a video. Scenes become shots made of animated blocks (title, chapter,
statement, stat, list, compare bars, UI mock), in `16:9`, `1:1` or `9:16`. The same block engine
plays in the browser (embeds, pages) and renders an MP4. `recit render story.md` produces the video,
and `<StoryEmbed slug="…" format="motion" />` plays it in a page. Video is an output of `motion`,
not a separate format. Its Markdown syntax is specified in [Motion](/formats/motion), and
[motion.recit.dev](https://motion.recit.dev) shows the gallery.

## Planned formats

### Report

Quarterly reports, studies and frozen dashboards. Numbers always come **from the data, never from
the text**: `:value{data=sales field=revenue agg=sum}`, `::chart` and `::table` read CSV, JSON or
YAML sources and are computed at build time (charts rendered as SVG). Output: a continuous HTML page
with a table of contents, and a paged PDF with numbered contents, running headers and page numbers.

### Toon

Webtoon episodes: panel images, with the **text of the bubbles kept apart** so lettering is
generated and translatable. `:::bubble`, `:::caption` and `:::sfx` are positioned on each panel.
Output: a vertical scroll reader, image slices sized for publishing platforms, and a vertical video
through motion.

### Book

Books, manuals and theses written across several Markdown files. Chapters, footnotes,
cross-references and an index. Output: a print-ready PDF (odd and even pages, running titles, roman
then arabic numbering), a valid EPUB 3, and a web edition where each chapter becomes a documentation
page.

### Roadmap

Product, open-source or team roadmaps: lanes, items with status, dates, owners and tags, milestones
and dependencies. Three views (now-next-later, timeline, kanban) with filters in the URL. Exports:
ICS for milestones, RSS for shipped items, PDF for the timeline. The roadmap of Récit itself will be
the first one published.

### Calendar

Meetups, courses, releases and editorial calendars, in Markdown or JSON. Recurrences, time zones,
localized dates. Month, week, agenda and year views, one page per event, and a subscribable ICS
feed. A past event can link to its deck or its video.

### Stories

Full-screen vertical cards, played with a tap, a swipe or the keyboard, with progress bars and
autoplay. Embeddable in a page or a landing, exportable as one image per card (`1080×1920`) or as a
vertical video through motion.

## Bridges between formats

A story can change format by changing `format:` or with `recit convert`. Only bridges with a closed
mapping are promised; anything else produces an explicit error.

| From → to          | Mapping                                             |
| ------------------ | --------------------------------------------------- |
| deck → motion      | layouts → animated blocks                           |
| report → deck      | one section → one slide, charts and tables kept     |
| toon → motion      | one panel → one `9:16` shot with a vertical pan     |
| book → docs        | one chapter → one page, table of contents → sidebar |
| roadmap → calendar | each milestone or dated item → an event             |
| calendar → stories | upcoming events → an "upcoming" story               |
| stories ⇄ motion   | one card → one `9:16` shot                          |
| report → stories   | each KPI or chart → a card                          |
