ununPaper
Back to tools

The standard

The unPaper HTML standard

unPaper HTML is a profile of ordinary HTML that is two things at once: a print-ready slide deck you can open in any browser, and a faithful description of an editable PowerPoint file. Author to this standard and the conversion is dependable — not lucky.

Status of this specification

unPaper HTML, Version 1. This is a published, openly implementable format specification. Anyone may build software that reads or writes unPaper HTML, for any purpose, without permission or fee. The specification is edited and stewarded by reHeritage GmbH (Berlin); it is versioned, and the conformance levels below are stable — a deck that conforms to a version converts predictably under that version indefinitely. The unPaper converter is one implementation of this format and a separate product; see Terms.

Canonical text. This page is a readable companion; the normative specification — the versioned, citable text under CC BY 4.0 — lives in the open unPaper HTML repository on GitHub. Where the two differ, the repository governs.

Conventions. The key words MUST, MUST NOT, SHOULD, SHOULD NOT and MAY, when in capitals, are to be interpreted as described in RFC 2119 and RFC 8174.

1The idea

Every other HTML-to-PowerPoint tool treats the HTML as something found in the wild and tries to recover meaning from it. unPaper turns that around: the deck is written to a spec, so the converter doesn’t guess — it lowers a known format into native PowerPoint objects. The richer the contract a deck honours, the more of it becomes editable.

The format is designed to be generated by an AI assistant (that is what unPaper Slides sets up), but nothing here is unPaper-specific: any tool or model can target it.

2Conformance levels

How much a deck guarantees depends on how much of the contract it follows.

L0Any fixed-size deck. Best-effort conversion. Always produces a file; how much is editable varies.
L1Geometry contract. 1280×720 slides, self-contained, renders without scripts. Pixel-faithful conversion.
L2Semantic contract. Uses the elements below for their meaning. Text, lists, tables and shapes all arrive native and editable, with the deck's brand in the theme.
L3Data contract. Charts carry their data. Chart numbers are editable in PowerPoint's Excel sheet; the deck is regenerable from its own description.

3The geometry contract (L1)

One self-contained HTML file. Each slide is a single element sized to a fixed 1280×720 canvas (PowerPoint’s 16:9). The file makes no network requests and uses no external CSS, fonts, scripts or images — any visual is inline SVG, pure CSS, or a data: URI. It must render completely with JavaScript disabled, because the converter reads it that way.

<section class="slide">
  <h1>One claim per slide, as a full sentence</h1>
  <p>Supporting detail…</p>
</section>

Keeping the geometry self-contained is also what makes the file safe to print and to keep offline.

4Use the element that matches the meaning (L2)

Each of these converts to a real, editable PowerPoint object — so reach for them by intent:

  • <table> (with <tr>/<th>/<td>, and colspan/rowspan where needed) for any comparison or data grid → a native, editable table. Never fake a table out of <div>s.
  • <ul>/<ol> with <li> for lists → real bullet paragraphs.
  • <a href> for links → live hyperlinks.

Cards, panels, dividers and accent bars built with ordinary CSS (background, border, border-radius, gradient, box-shadow) are reconstructed as movable native shapes automatically.

Layout grammar. To compose a slide as a grid of regions rather than one stack, give a container data-unpaper-lay; each direct child is a region holding any block (text, a list, a chart, a table). Grids: 2 equal columns, 2l wide-left + narrow-right, 2r, 3, rail (label + main) and quad (2×2). Each region converts to native objects at its measured position, so many layouts cost one attribute and almost no markup. See the layout grammar explainer for a visual walk-through.

<div data-unpaper-lay="2l">
  <div> …text and bullets… </div>
  <div data-unpaper-chart='…'> …chart svg… </div>
</div>

5Charts: draw and describe (L3)

Draw a chart as plain inline SVG for the web rendering, and attach its data — on the <svg> itself or a wrapper around it — as a data-unpaper-chart JSON attribute. The converter rebuilds it as a native chart with a real, editable Excel sheet.

data-unpaper-chart='{
  "type": "bar",          // bar | column | line | area | pie | doughnut
  "categories": ["Q1","Q2","Q3","Q4"],
  "series": [
    { "name": "Revenue", "values": [4.2,5.1,4.8,6.3], "color": "F0B429" }
  ],
  "axis": { "min": 0, "max": 8 }   // match the scale you actually drew
}'

Keep numbers a reader must see (a percentage in a doughnut’s centre) as HTML positioned over the SVG, not as SVG text — HTML survives as an editable text box.

6Speaker notes

Put a slide’s talking points in <aside class="notes"> (or any element with data-unpaper-notes) just before the slide closes. It is hidden on the slide and becomes the slide’s real PowerPoint speaker notes.

<section class="slide">
  …
  <aside class="notes">Open with the headline number; hand to Dana after the risks slide.</aside>
</section>

7Versioning

A deck may declare the dialect version on its root element so it keeps converting predictably as the standard grows:

<html data-unpaper="1">

All of the dialect’s semantic attributes share the data-unpaper- prefix. The earlier data-h2p- prefix is still accepted by the converter for older decks, but new decks should use data-unpaper-.

8Stewardship, licensing & how to reference it

The unPaper HTML specification is published and stewarded by reHeritage GmbH (Berlin, Germany). It is an open format: the specification text may be read, shared and implemented freely, and you MAY build any tool that reads or writes unPaper HTML — including commercial tools — without permission or fee. Authoring a deck to this standard is likewise unrestricted; the documents you create are yours.

The format and its name are stewarded to keep conversions interoperable; “unPaper” and “unPaper HTML” are names of reHeritage GmbH. The unPaper converter that compiles this format to PowerPoint is a separate product with its own Terms.

To reference a deck’s conformance, cite the dialect, version and level — for example, “unPaper HTML, Version 1, Level 2”.

Open standard, in your browser

The unPaper HTML standard is open: anyone — any tool, any AI — can target it. The conversion itself runs entirely in your browser, so a deck written to this standard stays private, prints identically offline, and remains yours.