# Slide Authoring

Technical reference for writing or editing open-slide pages, file contract, 1920×1080...

- Repository: https://github.com/open-slide/open-slide (9607 stars)
- Category: Documents
- License: MIT
- Last updated: 2026-10-29
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add open-slide/open-slide --skill slide-authoring -g -a claude-code -y`
Codex: `npx skills add open-slide/open-slide --skill slide-authoring -g -a codex -y`
Cursor: `npx skills add open-slide/open-slide --skill slide-authoring -g -a cursor -y`
Gemini CLI: `npx skills add open-slide/open-slide --skill slide-authoring -g -a gemini-cli -y`

## Description

Technical reference for writing or editing open-slide pages, file contract, 1920×1080 canvas, type scale, layout, palette/visual direction, assets, speaker notes, stepped reveals, page transitions, and morph transitions. Consult this whenever you are about to write or modify any file under `slides/<id>/`, including from inside the `create-slide` or `apply-comments` workflows, or for any ad-hoc slide edit. Triggers on phrases like "edit slide", "tweak this page", "fix the layout", "change the palette", "reveal one by one", "add a transition", "morph transition", "write the speaker notes", "generate the script / talk track", "preview / screenshot a page", "check how it looks", "investigate the slide framework", "how do slides work here".

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Authoring open-slide pages

This skill is the **technical reference** for everything that happens inside `slides/<id>/index.tsx`. It does not own a workflow:

- `create-slide` owns "draft a new deck", it asks the user scoping questions, then delegates the *how* to this skill.
- `apply-comments` owns "process inspector markers", it finds markers and applies edits, but the edits themselves follow the rules here.
- `current-slide` resolves deictic references ("this page", "the slide I'm on") to a concrete `slideId` + `pageIndex`. Consult it **first** when the user references the current slide without naming it, then come back here for how to edit it.
- Any ad-hoc slide edit (manual tweak, one-off fix) should also consult this skill before touching the file.

When any of those paths reach the point of *writing React code for a page*, this is the source of truth. Do not duplicate the knowledge below into other skills, link here instead.

## Primitive references

Each framework primitive has a full reference file under `references/` in this skill, contract, worked examples, and its own anti-patterns. This file keeps only the always-on rules and a short summary per primitive. **Read the relevant reference file before using a primitive on a page**:

| Primitive | Read before | File |
| --- | --- | --- |
| `design` const + `var(--osd-X)` tokens | writing any new slide (default baseline) | `references/design-system.md` |
| Assets + `<ImagePlaceholder>` | importing images/videos or leaving a placeholder | `references/assets.md` |
| Webfonts | loading any non-system font | `references/webfonts.md` |
| `useSlidePageNumber()` | rendering a page-number footer | `references/page-numbers.md` |
| `<Steps>` / `<Step>` | staging a page's reveal | `references/steps.md` |
| `SlideTransition` | declaring any enter/exit animation | `references/transitions.md` |
| `MorphElement` + `morph` | morphing a shared element across pages | `references/morph.md` |

## Hard rules

The rest: https://github.com/open-slide/open-slide/blob/HEAD/packages/core/skills/slide-authoring/SKILL.md
