PPF — PPTX.dev Presentation Format
PPF is an open-source JSON format for describing presentations. It separates content intent from rendering complexity, letting AI agents produce slide decks without wrestling with OOXML.
Document Structure
A PPF document has four required top-level fields:
{
"$schema": "https://pptx.dev/schema/ppf/v1",
"version": "1.0",
"meta": { ... }, // Title, audience, narrative, tags
"design": { ... }, // Colors, fonts, dimensions, brand
"slides": [ ... ], // Ordered array of slides
"presenterGuide": "", // Optional global notes
"extensions": {} // Optional custom data
}metarequiredHigh-level presentation metadata. Only `title` is required. Everything else helps the AI engine make better design choices.
title*subtitleauthorcompanyaudiencepurposenarrativelanguagetagsmeta.narrativeControl the storytelling approach. Reference a named template or describe freely.
templatedescriptionkeyMessagestonedurationMinutesdesignrequiredVisual design system. Reference named schemes from pptx.gallery or define custom values.
themecolorsfontsdimensionsbackgroundbrandlayoutPreferencesSlides
Each slide has an ID, a layout reference, and an array of elements:
{
"id": "revenue-slide",
"layout": "content-with-chart",
"section": "Financial Overview",
"elements": [
{
"id": "title",
"type": "text",
"slot": "title",
"content": { "text": "Revenue Growth" }
},
{
"id": "chart",
"type": "chart",
"slot": "main",
"chartType": "bar",
"data": {
"labels": ["Q1", "Q2", "Q3", "Q4"],
"datasets": [{
"label": "Revenue ($M)",
"values": [12, 19, 24, 31],
"color": "#22c55e"
}]
}
}
],
"notes": "Revenue grew 34% YoY driven by enterprise expansion.",
"transition": { "type": "fade", "duration": 0.5 }
}Element Types
textRich text with formatting runs, markdown, or bullet lists
imageImages with fit, border radius, shadow, and caption
chartBar, line, pie, donut, area, scatter, radar, waterfall, funnel, treemap, combo
tableTabular data with headers, styled rows, and formatting
shapeRectangles, circles, arrows, lines, stars, callouts, custom SVG paths
codeCode blocks with syntax highlighting and line numbers
videoEmbedded video with poster frame and autoplay
groupNested container for grouping multiple elements
placeholderAI instruction — describes what to generate
Three Ways to Provide Design Choices
1. Reference pptx.gallery
Use named schemes from the curated gallery at pptx.gallery. Browse themes, color schemes, font pairings, layouts, and narrative templates.
"colors": { "scheme": "ocean-depth" }2. Custom JSON with validation
Define every color, font, and layout inline. Use the JSON Schema at https://pptx.dev/schema/ppf/v1 for IDE autocomplete and CI validation.
"colors": { "primary": "#1a1a2e", "accent": "#e94560" }3. AI-generated from natural language
In the Studio, describe what you want in plain language. The AI agent constructs the PPF JSON from your intent, referencing gallery options when appropriate.
"Clean, modern, dark theme for a tech startup pitch"JSON Schema
The full JSON Schema is published at https://pptx.dev/schema/ppf/v1. Use it for editor autocomplete, CI validation, or building custom tooling.