--- title: Slide module exports description: The shape the runtime expects from each slides//index.tsx. --- ```tsx title="slides//index.tsx" import type { Page, SlideMeta } from '@open-slide/core'; const Cover: Page = () =>
{/* ... */}
; export const meta: SlideMeta = { title: 'Cover', theme: 'corporate', }; export const notes = { 0: 'Open with the analyst quote.', }; export default [Cover] satisfies Page[]; ``` ## Default export `Page[]` — the array of components, in display order. Each component fills its container; the runtime renders one at a time onto the 1920×1080 canvas. ```ts type Page = ComponentType; ``` ## `meta` (optional) ```ts type SlideMeta = { /** Display title for the deck — used in the slide browser. */ title?: string; /** Name of a theme under `themes/.md`. The agent reads it before authoring. */ theme?: string; }; ``` ## `notes` (optional) A map of page index → markdown string. Surfaced in [presenter mode](/docs/core-feature/present-mode). ```ts export const notes: Record = { 0: 'Open with a smile.', 3: 'Pause for questions.', }; ``` ## `transition` (optional) A module-level `SlideTransition` becomes the default animation between every page in the deck. Per-page overrides are assigned on the `Page` component itself. See [SlideTransition](/docs/reference/slide-transitions) for the full schema and a tasteful family of defaults. ```ts import type { SlideTransition } from '@open-slide/core'; export const transition: SlideTransition = { duration: 200, exit: { /* … */ }, enter: { /* … */ }, }; ``` ## Imports from `@open-slide/core` ```ts import { CANVAS_WIDTH, // 1920 CANVAS_HEIGHT, // 1080 ImagePlaceholder, // sized empty placeholder — see /docs/reference/image-placeholder unstable_SharedElement, // match an element across pages — see /docs/reference/slide-transitions } from '@open-slide/core'; import type { unstable_SharedElementProps, Page, SlideMeta, SlideModule, SlideTransition, // per-page / module-level animations — see /docs/reference/slide-transitions SharedElementTransition, TransitionPhase, ImagePlaceholderProps, } from '@open-slide/core'; ```