---
name: create-presentation
description: Create or update presentation notebooks with embedded HTML and JavaScript in markdown cells using EDS blocks. Convert executable code cells to informative text. Build presentations, slides, demos, showcases with accordion, cards, tabs, hero, grid, table blocks. No runnable JavaScript cells - only visual markdown with inline scripts for presentation mode.
---
# Create Presentation Skill
## Purpose
Transform Jupyter notebooks into beautiful presentation-mode experiences using embedded HTML and JavaScript within markdown cells. Leverages EDS blocks for visual appeal while preventing code execution by users.
## When to Use
- Creating presentation notebooks
- Building interactive demos without executable code
- Converting educational notebooks to presentation format
- Creating showcases, tutorials, or product demos
- Building slide-like experiences with EDS blocks
- Updating existing notebooks to presentation mode
- Applying inline HTML styling for beautiful, consistent appearance
## Key Concepts
### Presentation Mode vs Interactive Mode vs Educational Mode vs Navigation Mode
**Interactive Notebooks** (e.g., test.ipynb):
- Users can run JavaScript code cells
- Code cells have "Run" buttons
- For developers and testing
**Educational Notebooks** (e.g., tutorial.ipynb):
- Runnable code cells for learning
- Can use auto-wrapping in notebook mode (pure markdown)
- 60% markdown, 40% code
- For teaching and explaining
- See `jupyter-educational-notebook` skill
**Presentation Notebooks** (e.g., demo.ipynb):
- No executable code cells
- All interactivity via inline scripts in markdown
- Can use auto-wrapping (notebook mode) OR manual HTML (all modes)
- For end users, clients, presentations
- Beautiful visual layouts with EDS blocks
**Navigation Notebooks** (e.g., docs-navigation.ipynb):
- No executable code cells (pure navigation)
- 100% markdown with action cards
- Multi-paradigm navigation (role, task, workflow, category)
- For complex documentation systems (20+ documents)
- Progressive disclosure with part summaries
- See template: `docs/for-ai/templates/ipynb/navigation-template.ipynb`
### Core Approach
1. **All content in markdown cells** - No code cells with executable JavaScript
2. **Inline scripts in markdown** - Use `
```
**Navigation Cell (Markdown):**
```markdown
---
## 📋 Table of Contents
- [Section 1](#section-1)
- [Section 2](#section-2)
- [Conclusion](#conclusion)
```
## Block Usage Patterns
### Accordion Block (Collapsible Sections)
**Best For:** FAQs, feature lists, detailed explanations
```markdown
Section Title
Question or Title
Answer or detailed content here...
```
### Cards Block (Grid Layout)
**Best For:** Features, team members, product showcase
```markdown
Section Title
📊 Card Title
Card content with description...
🚀 Another Card
More content here...
```
### Tabs Block (Tabbed Content)
**Best For:** Organizing related information, code examples, comparisons
```markdown
Section Title
Tab 1
Content for tab 1...
Tab 2
Content for tab 2...
```
See [resources/blocks-reference.md](resources/blocks-reference.md) for all block patterns.
## Visual Consistency Standards
**CRITICAL: All presentations must follow these exact styling standards for consistency.**
### Typography Standards
- **H1 (Hero Title)**: `font-size: 48px; font-weight: 800`
- **H2 (Major Sections)**: `color: #0d47a1; font-size: 28px; font-weight: 700; margin-bottom: 24px;`
- H2 emoji size: `32px`
- **H3 (Subsections)**: `color: #0d47a1; font-size: 26px; font-weight: 700; margin-bottom: 20px;`
- H3 emoji size: `28px`
- Use flexbox pattern: `display: flex; align-items: center; gap: 12px;`
- **Body text**: `font-size: 16px; line-height: 1.8; color: #212121;`
- **List item emojis**: `20px`
- **TOC/Navigation links**: `font-size: 18px; font-weight: 500`
- **IMPORTANT**: Use HTML headings with explicit styling, NOT markdown syntax (`##`, `###`)
- Markdown headings render with default grey colors - always use HTML
### Background Standards
- **Standard gradient**: `background: linear-gradient(135deg, #e3f2fd 0%, #bbdefb 100%);`
- **All content divs MUST include**: `color: #212121;` to prevent text fading
- **Margin**: `margin: 0 0;` (no vertical gaps that expose dark ipynb-viewer background)
- **Border radius**: `border-radius: 12px;`
- **Padding**: `padding: 32px;`
### Border Hierarchy
- **H2 major sections**: `border-left: 6px solid #0288d1;` (thick border for major parts)
- **H3 subsections**: `border-left: 4px solid #0288d1;` (thinner border for content within sections)
- **Hero cells**: No border (full-width hero styling)
- **Transition cells**: `border-left: 4px solid #0288d1;` (matches subsection weight)
### Standard Container Patterns
**H2 Major Section (NO section tag):**
```html
🎯 Section Title
Body text content here...
```
**IMPORTANT:** Do NOT wrap cells in `` tags - they cause overlay jumping between slides.
**H3 Subsection (standalone):**
```html
✨
Subsection Title
Body text content here...
```
**Hero Cell (title page):**
```html
🎯
Presentation Title
Compelling subtitle or tagline
```
### Block Wrapping Pattern
**CRITICAL**: All EDS blocks MUST be wrapped INSIDE styled divs, not as siblings.
Blocks inherit dark background from ipynb-viewer if not properly wrapped:
```html
Section Title
Explanation text about the block demonstration
```
### Common Mistakes to Avoid
1. ❌ Using markdown headings (`##`, `###`) - they render grey
2. ❌ Using `` tags to wrap cells - causes overlay jumping between slides
3. ❌ Placing blocks as siblings to styled divs - they inherit dark background
4. ❌ Forgetting `color: #212121;` on gradient divs - text fades
5. ❌ Using vertical margins (`margin: 32px 0;`) - creates black gaps
6. ❌ Inconsistent H3 margin-bottom (always use 20px, not 24px)
7. ❌ Inconsistent colors across cells
## Inline HTML Styling
### Design System
Apply consistent inline HTML styling to all markdown cells for professional presentation:
**Standard Color Palette:**
```javascript
{
heading: '#0d47a1', // Dark Blue (all headings)
text: '#212121', // Dark Gray (all body text)
border: '#0288d1', // Blue (left borders)
gradient_start: '#e3f2fd', // Light Blue (gradient start)
gradient_end: '#bbdefb', // Medium Blue (gradient end)
// Legacy/optional colors:
primary: '#1976d2', // Material Blue
secondary: '#dc004e', // Material Pink
success: '#2e7d32', // Green
warning: '#ed6c02', // Orange
background: '#f5f5f5', // Light Gray
surface: '#ffffff' // White
}
```
### Styling Patterns
**Hero Header:**
```html
🗺️ Presentation Title
Your compelling subtitle or tagline
```
**Content Card:**
```html
Section Title
Your content here with proper typography
```
**Block Wrapper (for EDS blocks):**
```html
What this demonstrates
Explanatory text before the EDS block
```
**List with Icons (Compact Spacing):**
```html
-
✅
List item text
-
✅
Last list item
```
### Typography Scale
- **H1 (Hero Title)**: 48px, font-weight: 800, emoji: 56px
- **H2 (Major Sections)**: 28px, font-weight: 700, emoji: 32px
- **H3 (Subsections)**: 26px, font-weight: 700, emoji: 28px
- **Body Text**: 16px, line-height: 1.8
- **TOC Links**: 18px, font-weight: 500
- **List Icons**: 20px (emojis)
- **Code**: Courier New, monospace
### Spacing System
- **Container Padding**: 32px (all content containers)
- **Hero Padding**: 48px (title cells)
- **H2 Margin-bottom**: 24px
- **H3 Margin-bottom**: 20px
- **Paragraph Margin-bottom**: 16px-24px
- **List Item Padding**: 12px vertical, with border separators
- **TOC Item Padding**: 10px vertical, 8px 12px for links
- **Flexbox Gap**: 12px (heading emoji spacing)
- **Border Radius**: 12px (standard), 16px (hero cells)
### Interactive Elements
**Hover Effects:**
- Background transitions on links
- Color changes on buttons
- Shadow depth changes on cards
**Best Practices:**
- ✅ **Use CSS `:hover` pseudo-class** - Inline JavaScript event handlers (`onmouseover`, `onmouseout`) are blocked by browser security
- ✅ **Use `
Custom styled content
```
### Loading CSS
If needed, manually load CSS:
```javascript
```
## Overlay Styling (Auto-Applied)
The ipynb-viewer block automatically handles consistent styling for paged presentations:
### Font Consistency
All text uses selective font inheritance (fixed in v1.0.2):
- Only `font-family` inherits, not `font-size`, `margin`, `padding`
- Inline styles with explicit sizes are preserved
- No font jumping between slides while respecting cell styling
### Fixed Position & Height
Overlay stays perfectly still when navigating (fixed in v1.0.2):
- Pinned at 5vh from top (not vertically centered)
- Content box locked at exactly 85vh tall
- Zero movement regardless of content size
- Content scrolls internally within fixed cell area
### Navigation Hover Effects
Navigation links work with CSS hover (fixed in v1.0.2):
- Use inline styles on `` elements, not `