presentation-slides
Skill4 starsChanged 7 months agoMITView on GitHub
Create HTML presentations in a warm, playful visual style with marker highlights, dashed borders, and hand-drawn feel. Supports 5 languages including Arabic RTL. Use when the user asks to create slides, a presentation, a deck, or webinar visuals.
1 other project uses a version of this.
Adopted by
Most recently taken up by
- Scodive/Paper-Agent-Skillstheir own version, first seen Nov 8, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- Scodive/Paper-Agent-Skills★ 20same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
The file
Show its rules and text
We split this skill into the rules it gives an agent
16 rules. About 0 are common, 11 are distinctive, and 5 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈11
Distinctive · estimate
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 8
Create zero-dependency HTML presentations in a warm, hand-crafted design language.
- Very specific: line 22
Every .slide must have height: 100vh.
- Very specific: line 23
ALL font sizes and spacing must use clamp(min, preferred, max) — never fixed px/rem
- Distinctive: line 55
When enhancing existing presentations, viewport fitting is the biggest risk:
- Very specific: line 58
Adding images: Must have max-height: min(50vh, 400px).
- Distinctive: line 61
Proactively reorganize: If modifications will cause overflow, automatically split content and inform the user.
- Distinctive: line 79
Do you have content ready?
- Distinctive: line 81
If user has content, ask them to share it.
- Distinctive: line 102
Use the language-appropriate Google Font (see html-template.md)
- Distinctive: line 104
Use marker highlights on 1–2 key words per slide, not more
- Distinctive: line 105
Add wavy SVG decorations on ~30% of slides
- Distinctive: line 106
Add question mark decorations on thought-provoking slides
- Distinctive: line 123
After delivery, ask the user: "Would you like to share this presentation?
- Distinctive: line 127
If the user declines, stop here.
- Very specific: line 131
Run bash scripts/deploy.sh <path-to-html>.
- Very specific: line 135
Run bash scripts/export-pdf.sh <path-to-html> [output.pdf].
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Presentation Slides
Create zero-dependency HTML presentations in a warm, hand-crafted design language. Supports English, Arabic (RTL), French, Spanish, and German.
Core Principles
- Zero Dependencies — Single HTML files with inline CSS/JS. No npm, no build tools.
- Multi-Language — Ask the user which language. Adapt font, direction, and navigation accordingly.
- Warm Aesthetic — Warm, playful, hand-crafted feel. Never generic, never corporate, never dark.
- Viewport Fitting (NON-NEGOTIABLE) — Every slide MUST fit exactly within 100vh. No scrolling within slides. Content overflows? Split into multiple slides.
- One Idea Per Slide — Big text, few words. Each slide is a talking point, not a wall of text.
Viewport Fitting Rules
These invariants apply to EVERY slide in EVERY presentation:
- Every
.slidemust haveheight: 100vh; height: 100dvh; overflow: hidden; - ALL font sizes and spacing must use
clamp(min, preferred, max)— never fixed px/rem - Content containers need
max-heightconstraints - Images:
max-height: min(50vh, 400px) - Breakpoints required for heights: 700px, 600px, 500px
- Include
prefers-reduced-motionsupport
When generating, read viewport-base.css and include its full contents in every presentation.
Content Density Limits Per Slide
| Slide Type | Maximum Content |
| Title slide | 1 heading + 1 subtitle + optional stat row |
| Statement slide | 1 tag + 1 heading + 1 body paragraph |
| Comparison slide | 1 heading + 2 column cards (max 6 items each) |
| Evidence slide | 1 tag + 1 heading + 1 body + 1 commit log (max 5 entries) |
| Question slide | 1 heading only (with decorative question marks) |
| Chart slide | 1 heading + 1 bar chart + 1 caption line |
Content exceeds limits? Split into multiple slides. Never cram, never scroll.
Phase 0: Detect Mode
Determine what the user wants:
- Mode A: New Presentation — Create from scratch. Go to Phase 1.
- Mode B: Enhancement — Improve an existing HTML presentation. Read it, understand it, enhance. Follow Mode B modification rules below.
Mode B: Modification Rules
When enhancing existing presentations, viewport fitting is the biggest risk:
- Before adding content: Count existing elements, check against density limits
- Adding images: Must have
max-height: min(50vh, 400px). If slide already has max content, split into two slides - Adding text: Max 4-6 bullets per slide. Exceeds limits? Split into continuation slides
- After ANY modification, verify:
.slidehasoverflow: hidden, new elements useclamp(), images have viewport-relative max-height, content fits at 1280x720 - Proactively reorganize: If modifications will cause overflow, automatically split content and inform the user. Don't wait to be asked
Phase 1: Content Discovery
Ask ALL questions in a single AskUserQuestion call so the user fills everything out at once:
Question 1 — Purpose (header: "Purpose"): What is this presentation for? Options: Pitch deck / Webinar-Talk / Teaching-Tutorial / Internal presentation
Question 2 — Length (header: "Length"): Approximately how many slides? Options: Short 5-10 / Medium 10-20 / Long 20+
Question 3 — Language (header: "Language"): What language? Options: English / Arabic (RTL) / French / Spanish / German
Question 4 — Content (header: "Content"): Do you have content ready? Options: All content ready / Rough notes / Topic only
If user has content, ask them to share it.
There is no style discovery phase. The style is always this design system. There is no style choice.
Phase 2: Generate Presentation
Generate the full presentation using content from Phase 1 and the design system defined in this file.
Before generating, read these supporting files:
- html-template.md — HTML architecture, JS features, and slide structure
- viewport-base.css — Mandatory responsive CSS (include in full)
- animation-patterns.md — Animation reference
Key requirements:
- Single self-contained HTML file, all CSS/JS inline
- Set
langanddirattributes based on language choice (see html-template.md) - Include the FULL contents of viewport-base.css in the
<style>block - Use the language-appropriate Google Font (see html-template.md)
- Rotate slide backgrounds — never two adjacent slides with the same color
- Use marker highlights on 1–2 key words per slide, not more
- Add wavy SVG decorations on ~30% of slides
- Add question mark decorations on thought-provoking slides
- Mobile responsive with single-column fallback for grids
Phase 3: Delivery
- Open — Use
open [filename].htmlto launch in browser - Summarize — Tell the user:
- File location and slide count
- Navigation controls (direction-aware based on language)
- How to customize: CSS variables in
:rootfor colors, font link for typography
Phase 4: Share & Export (Optional)
After delivery, ask the user: "Would you like to share this presentation? I can deploy it to a live URL or export it as a PDF."
Options: Deploy to URL / Export to PDF / Both / No thanks
If the user declines, stop here.
Deploy to URL (Vercel)
Run bash scripts/deploy.sh <path-to-html>. See the script for full instructions on Vercel setup.
Export to PDF
Run bash scripts/export-pdf.sh <path-to-html> [output.pdf]. The script captures each slide as a screenshot and combines them into a PDF. Note: animations are not preserved — the PDF is a static snapshot.
Supporting Files
| File | Purpose | When to Read |
| viewport-base.css | Mandatory responsive CSS — copy into every presentation | Phase 2 (generation) |
| html-template.md | HTML structure, JS features, language config | Phase 2 (generation) |
| animation-patterns.md | CSS animation snippets and patterns | Phase 2 (generation) |
| scripts/deploy.sh | Deploy slides to Vercel for sharing | Phase 4 (sharing) |
| scripts/export-pdf.sh | Export slides to PDF | Phase 4 (export) |
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

