Must be read before creating, relaying out, or repairing Oh My PPT slide layouts. Defines the per-page decision path, the named layout pattern catalog, canvas budgeting, collision avoidance, chart overpack guardrails, and title readability rules.
71
86%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
This skill is the decision backbone for slide structure. Deep examples live in the references:
references/catalog.md — canonical 1600×900 zone skeletons and named layout patterns (the structure-choice layer you pick from before writing HTML).references/layout.md — collision-avoidance code comparison and height-budget walkthroughs.references/checklist.md — P0/P1/P2 structural self-check.Before writing HTML, answer these in order. The first three decide the role and density; the rest decide structure and budget.
references/catalog.md when it clarifies the reading path or solves a known density risk; if the page risks becoming top-heavy, a canonical 1600×900 zone skeleton is a useful starting point. These are references, not a closed menu: create a fresh composition when the page thesis or style calls for it, while keeping the same semantic anchor and readable budget.Then sketch the layout before writing (kept in your head, not emitted to the page). Picture the page as zones — what sits in each zone, roughly how tall, and how the zones balance across the full 1600×900. Confirm the sketch has a clear primary focus, actual gaps between independent modules, and no accidental large empty band; only then write the HTML. A quick shape for the sketch:
role: data-focus
density: medium
pattern: trend-exhibit
skeleton: chart-plus-insight-stack
zones: title/claim (~80, top) · dominant chart/visual middle (~420-500) · 1-2 metric chips or one insight band attached to chart · optional footnote — balanced, no accidental empty band
balance check: 3-second message visible, clear primary focus, actual gaps between independent modules, no crowded second support row
density check: if the source has too many facts, summarize before writing; do not turn every fact into a visible card
image policy: standard mode, no image request slotThe sketch is a thinking aid, not a template — keep the composition creative; just make sure the planned zones have clear hierarchy and actual gaps between independent modules before you write. The chosen pattern and skeleton are what you check against the structure recipe in catalog.md.
The catalog is advisory — patterns and skeletons are structure choices, not templates. Any pattern is re-visualized by the current style; the structure stays the same while style owns the look. Canonical 1600×900 skeletons and full four-part pattern definitions (input shape / structure recipe / budget rule / failure signs) are in references/catalog.md. Intent → pattern quick lookup:
| Intent | Patterns |
|---|---|
cover | hero-title-center · hero-title-asymmetric · hero-big-number · section-divider |
quote | hero-quote |
summary | summary-takeaways · executive-brief |
data-focus | kpi-hero · metric-band · trend-exhibit · chart-annotated |
comparison | compare-two-zone · compare-options · decision-matrix |
concept | concept-center-satellites · framework-2x2 · framework-pyramid |
process | process-linear · process-loop |
timeline | timeline-strip |
image-focus | asset-image-hero · asset-text-visual-split |
The same role and density can produce several valid patterns — pick the one whose reading path and module count best match the content.
w-full h-full; avoid fixed pixel values on the root.text-lg (18px) by default. Only a genuinely high-density bounded module may use 16px after restructuring; mark that module data-ppt-density="high" and compensate its layout when scaling it.text-2xl (24px); this is a floor, not a cap. Enlarge headings when hierarchy and the available canvas call for it.<footer>, <small>, or <figcaption> elements, or mark a non-semantic wrapper with data-ppt-text-role="auxiliary". Do not use this exemption for body copy, ordinary labels, or card descriptions.data-ppt-text-role="auxiliary"; otherwise they are ordinary labels and the 18px body floor applies.absolute / fixed only for background decoration, connectors, non-text visual accents, and intentional image/video background composition. Text-bearing structure must remain in document flow; text or transparent panels may intentionally sit over media, but media must remain inside the canvas.gap-* on grid/flex containers. Put min-w-0 on long-text children.For code comparison of collision-prone vs reliable structures, read references/layout.md.
Total canvas: 1600px wide × 900px tall. Before writing HTML, calculate the height budget in order — you run this calc yourself per page, there is no preset module size to copy:
p-6 = 48px, p-8 = 64px)gap-4 = 16px, gap-6 = 24px)Chart frame h-[Npx] must fit within the remaining space and feel intentional. Chart.js cannot use flex-1 / h-full, so first calculate the content slot, subtract support modules, then choose a role-appropriate chart height from the chart slot. Hero/main 380–560px, standard 280–360px, and compact support 220–280px are starting ranges for a 1600×900 canvas, not a composition template; scale or depart from them when the current canvas, chart semantics, or visual relationship calls for it. The chart skill's height comment must include the dedicated marker @ppt-chart-height=N, and the h-[Npx] class must use the same number. Never write chart height = 420 and then output h-[240px]. If the total exceeds 900px or becomes too dense, change the composition and hierarchy before shrinking everything.
In side-by-side or multi-column layouts, columns share width, not height. Do not divide the vertical content slot by the number of columns (for example, no 732/2 just because the page has left metrics and a right chart). Each column starts with the same vertical content slot; subtract only the modules stacked vertically inside that same column. A metric rail beside the chart affects width and hierarchy, not the chart height calculation.
Charts, tables, timelines, and long lists must share the same budget as titles and notes. Budget the chart frame height before writing HTML. Full walkthroughs are in references/layout.md.
Do not treat the missing runtime padding as permission to add more content. The slide canvas is full height, but dense content still needs actual gaps between independent modules.
grid-cols-3 support row naturally holds three cards. When 4–6 facts are genuinely needed, choose the structure that makes their relationship clearest: bento grid, metric band, compact comparison, annotated chart, table/list, or a budgeted compact matrix.flex-1 min-h-0 main content followed by an uncapped bottom grid. Give rows explicit budgeted heights (grid-rows-[auto_1fr_auto], max-h-*) or redesign the support area as part of the main composition.For chart slides, decide the chart role before choosing layout density:
Titles are part of the reading path, not a fixed header decoration.
This section applies to content and data pages. Low-density pages — cover, big-number, quote, section-divider — still need a dominant visual or typographic element that makes the composition feel complete. The failure is accidental under-fill where a few tiny modules sit at the top and the rest of the slide feels forgotten. Two forms hit this skill:
catalog.md is one option, not a required outcome.Before expanding, decide whether the page is truly sparse. A full source table, a multi-indicator comparison, or a chart plus a clear takeaway is already enough content; do not add more cards or a second summary layer. In those cases, fix distribution through hierarchy, actual module gaps, grouping, chart/table sizing, and compact annotations — not by adding content.
When the page content is truly sparse, supplement and expand in-page from the source material with substance (not decoration), but keep the result low-to-medium density. Strategies:
Expansion is conditional and conservative. If the slide is already medium/high density, or if the source already provides enough facts for the page, the fix is not more content; it is compression and hierarchy. Turn extra facts into a short evidence rail, compact table rows, grouped bullets, chart annotations, or one key-takeaway band so the page still fits 1600x900 cleanly with actual gaps between independent modules.
Stay grounded: extend from the source material's theme, conclusions, and data direction. Reasonable inference, explanation, implication, and framing are allowed; do not invent unsupported specific facts, numbers, cases, quotes, or source claims.
For dense source tables or lists, preserve the source meaning by editing it into a presentation, not by mirroring the document. Choose one primary expression (timeline, table, chart, hero metric, or comparison) and avoid repeating the same fact again as equal-weight summary cards. If all rows truly matter, use a compact table/timeline or split the material across pages; do not stack full cards until the slide becomes a data archive.
These map directly onto catalog patterns (summary-takeaways, kpi-hero, compare-two-zone, concept-center-satellites, etc.).
Across a deck, vary the structure so consecutive slides feel different, not like the same template with swapped content.
Limitation: deck-level rhythm applies to the deck-generation main flow where the model writes several pages in sequence. Single-page edit does not control neighbor pages, so it only needs to fit the page it is given.
Oh My PPT separates two concerns:
The current style may include its own "layout" advice and composition tendencies; that is expected. When style and this skill interact:
data-ppt-density="high" module or below 16px inside one, headings below 24px, or auxiliary text below 12px are backed by this skill and override the style's composition tendency. Auxiliary annotations, footers, page numbers, and source/citation lines are exempt from the 18px body floor, not from the 12px auxiliary floor. A style suggestion that would push text into absolute positioning, use the high-density exception outside a bounded module, shrink text below its applicable floor, or overflow the canvas loses to this skill.When a style's "layout" section conflicts with a structural rule here, follow the structural rule and keep the style's visual treatment.
When a slide overflows, collides, exceeds the canvas, or is under-filled (a large empty band because the modules cover only part of the height):
h-[Npx]; update the height comment so the final number matches the class.For under-fill (the mirror problem), apply §7: enlarge the primary module modestly, preserve actual gaps between independent modules, or add one substantive evidence/annotation zone in-page. Do not patch an empty page with decorative filler or a pile of new cards.
For the full P0/P1/P2 self-check list, read references/checklist.md.
references/catalog.md when it clarifies the reading path.references/checklist.md.6d1b08b
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.