
Marp Slide
- 3.9k installs
- 2.2k repo stars
- Updated March 5, 2026
- softaworks/agent-toolkit
A skill that generates professional Marp presentation slides with theme selection, template scaffolding, and automatic quality improvements.
About
Marp Slide Creator generates professional presentation slides using Marp markdown syntax with 7 built-in themes (default, minimal, colorful, dark, gradient, tech, business). Developers and educators use this skill when creating lecture materials, seminars, technical talks, or visual presentations from structured content. The skill provides theme selection guidance based on content type, enforces best practices like concise titles and optimal whitespace, supports image integration with Marpit syntax, and handles vague "make it look good" requests by inferring appropriate theme and applying automatic design enhancements. Templates come with embedded CSS for immediate use without external file dependencies. Output files save to a designated directory as markdown with full Marp directives embedded. 7 pre-designed themes (default, minimal, colorful, dark, gradient, tech, business) with embedded CSS Automatic theme selection based on content type and user preference inference Best practices enforced: concise h2 titles, 3-5 bullet points per slide, optimal whitespace Image integration via Marpit syntax with side, centered, and full-background patterns Templates and reference guides for M.
- 7 pre-designed themes (default, minimal, colorful, dark, gradient, tech, business) with embedded CSS
- Automatic theme selection based on content type and user preference inference
- Best practices enforced: concise h2 titles, 3-5 bullet points per slide, optimal whitespace
- Image integration via Marpit syntax with side, centered, and full-background patterns
- Templates and reference guides for Marp syntax, image patterns, CSS customization, and advanced features
Marp Slide by the numbers
- 3,895 all-time installs (skills.sh)
- +21 installs in the week ending Jul 28, 2026 (Skillselion tracking)
- Ranked #105 of 1,901 Documentation skills by installs in the Skillselion catalog
- Security screen: LOW risk (skills.sh audit)
- Data as of Jul 28, 2026 (Skillselion catalog sync)
marp-slide capabilities & compatibility
- Capabilities
- theme selection and recommendation · template scaffolding with embedded css · best practices enforcement (whitespace, title le · image layout patterns (side, centered, full back · quality checklist verification
- Use cases
- presentations · documentation · ui design
- Platforms
- macOS · Windows · Linux
- Runs
- Runs locally
- Pricing
- Free
What marp-slide says it does
Create professional, visually appealing Marp presentation slides with 7 pre-designed themes and built-in best practices.
npx skills add https://github.com/softaworks/agent-toolkit --skill marp-slideAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 3.9k |
|---|---|
| repo stars | ★ 2.2k |
| Security audit | 3 / 3 scanners passed |
| Last updated | March 5, 2026 |
| Repository | softaworks/agent-toolkit ↗ |
What it does
Generate professional presentation slides in Marp format with 7 pre-designed themes and automatic quality formatting.
Who is it for?
Creating lecture materials, seminar presentations, technical talks, business proposals, and event materials
Skip if: Interactive web presentations, real-time collaboration tools, or slide decks with complex animations
When should I use this skill?
User requests slide creation, presentation design, Marp documents, or asks to 'make slides look good'
What you get
A complete Marp markdown file with embedded theme CSS, properly structured content, and ready to export to HTML/PDF.
- Marp markdown slide deck
- Themed presentation configuration
By the numbers
- 7 pre-designed themes available
- Template structure enforces 3-5 bullet points per slide
- Title guidance: 5-7 characters for Japanese, 15-25 chars per line for English
Files
Marp Slide Creator
Create professional, visually appealing Marp presentation slides with 7 pre-designed themes and built-in best practices.
When to Use This Skill
Use this skill when the user:
- Requests to create presentation slides or Marp documents
- Asks to "make slides look good" or "improve slide design"
- Provides vague instructions like "良い感じにして" (make it nice) or "かっこよく" (make it cool)
- Wants to create lecture or seminar materials
- Needs bullet-point focused slides with occasional images
Quick Start
Step 1: Select Theme
First, determine the appropriate theme based on the user's request and content.
Quick theme selection:
- Technical/Developer content → tech theme
- Business/Corporate → business theme
- Creative/Event → colorful or gradient theme
- Academic/Simple → minimal theme
- General/Unsure → default theme
- Dark background preferred → dark or tech theme
For detailed theme selection guidance, read references/theme-selection.md.
Step 2: Create Slides
1. Read relevant references first:
- Always start by reading
references/marp-syntax.mdfor basic syntax - For images:
references/image-patterns.md(official Marpit image syntax) - For advanced features (math, emoji):
references/advanced-features.md - For custom themes:
references/theme-css-guide.md
2. Copy content from the appropriate template file:
assets/template-basic.md- Default theme (most common)assets/template-minimal.md- Minimal themeassets/template-colorful.md- Colorful themeassets/template-dark.md- Dark mode themeassets/template-gradient.md- Gradient themeassets/template-tech.md- Tech/code themeassets/template-business.md- Business theme
3. Read references/best-practices.md for quality guidelines
4. Structure content following best practices:
- Title slide with
<!-- _class: lead --> - Concise h2 titles (5-7 characters in Japanese)
- 3-5 bullet points per slide
- Adequate whitespace
5. Add images if needed using patterns from references/image-patterns.md
6. Save to /mnt/user-data/outputs/ with .md extension
Available Themes
1. Default Theme
Colors: Beige background, navy text, blue headings Style: Clean, sophisticated with decorative lines Use for: General seminars, lectures, presentations Template: template-basic.md
2. Minimal Theme
Colors: White background, gray text, black headings Style: Minimal decoration, wide margins, light fonts Use for: Content-focused presentations, academic talks Template: template-minimal.md
3. Colorful & Pop Theme
Colors: Pink gradient background, multi-color accents Style: Vibrant gradients, bold fonts, rainbow accents Use for: Youth-oriented events, creative projects Template: template-colorful.md
4. Dark Mode Theme
Colors: Black background, cyan/purple accents Style: Dark theme with glow effects, eye-friendly Use for: Tech presentations, evening talks, modern look Template: template-dark.md
5. Gradient Background Theme
Colors: Purple/pink/blue/green gradients (varies per slide) Style: Different gradient per slide, white text, shadows Use for: Visual-focused, creative presentations Template: template-gradient.md
6. Tech/Code Theme
Colors: GitHub-style dark background, blue/green accents Style: Code fonts, Markdown-style headers with # symbols Use for: Programming tutorials, tech meetups, developer content Template: template-tech.md
7. Business Theme
Colors: White background, navy headings, blue accents Style: Corporate presentation style, top border, table support Use for: Business presentations, proposals, reports Template: template-business.md
Creating Slides Process
Basic Workflow
1. Understand requirements
- Identify content: title, topics, key points
- Determine target audience
- Assess formality level
2. Select theme
- Use quick selection rules above
- If uncertain, consult
references/theme-selection.md - Default to default theme if still unsure
3. Apply template
- Load appropriate template from
assets/ - CSS is already embedded - no external files needed
- Maintain template structure
4. Structure content
- Title slide:
<!-- _class: lead -->+ h1 - Content slides: h2 title + bullet points
- Keep titles to 5-7 characters (Japanese)
- Use 3-5 bullet points per slide
5. Refine quality
- Read
references/best-practices.md - Ensure adequate whitespace
- Maintain consistency
- Keep text concise (15-25 chars per line)
6. Add images
- If needed, consult
references/image-patterns.md - Common:
for side images - Use proper Marp image syntax
7. Output file
- Save to
/mnt/user-data/outputs/ - Use descriptive filename like
presentation.md
Handling "Make It Look Good" Requests
When users give vague instructions like "良い感じにして", "かっこよく", or "make it cool":
1. Infer theme from content:
- Business content → business theme
- Technical content → tech or dark theme
- Creative content → gradient or colorful theme
- General → default theme
2. Apply best practices automatically:
- Shorten titles to 5-7 characters
- Limit bullet points to 3-5 items
- Add adequate whitespace
- Use consistent structure
3. Enhance visual hierarchy:
- Use h3 for sub-sections when appropriate
- Break up dense text into multiple slides
- Ensure logical flow (intro → body → conclusion)
4. Maintain professional tone:
- Match formality to content
- Use parallel structure in lists
- Keep technical terms consistent
Image Integration
For slides with images, consult references/image-patterns.md for detailed syntax.
Common patterns:
- Side image:
- Image on right, text on left - Centered:
- Centered with specific width - Full background:
- Full-screen background - Multiple images: Multiple
![bg]declarations
Example lecture pattern:
## Slide Title

- Explanation point 1
- Explanation point 2
- Explanation point 3File Output
Always save the final Marp file to /mnt/user-data/outputs/ with .md extension:
presentation.mdseminar-slides.mdlecture-materials.md
Quality Checklist
Before delivering slides, verify:
- [ ] Theme selected appropriately for content
- [ ] CSS theme is embedded in the file
- [ ] Title slide uses
<!-- _class: lead --> - [ ] All h2 titles are concise (5-7 chars)
- [ ] Bullet points are 3-5 items per slide
- [ ] Images use proper Marp syntax
- [ ] File saved to outputs directory
- [ ] Content follows best practices
References
Core Documentation
- Marp syntax:
references/marp-syntax.md- Basic Marp/Marpit syntax (directives, frontmatter, pagination, etc.) - Image patterns:
references/image-patterns.md- Official image syntax (bg, filters, split backgrounds) - Theme CSS guide:
references/theme-css-guide.md- How to create custom themes based on Marpit specification - Advanced features:
references/advanced-features.md- Math, emoji, fragmented lists, Marp CLI, VS Code - Official themes:
references/official-themes.md- default, gaia, uncover themes documentation
Quality & Selection Guides
- Theme selection:
references/theme-selection.md- How to choose the right theme for content - Best practices:
references/best-practices.md- Quality guidelines for "cool" slides
Templates & Assets
- Templates:
assets/template-*.md- Starting points with embedded CSS for each theme (7 themes) - Standalone CSS:
assets/theme-*.css- CSS files for reference (already embedded in templates)
Official External Links
- Marp Official Site: https://marp.app/
- Marpit Directives: https://marpit.marp.app/directives
- Marpit Image Syntax: https://marpit.marp.app/image-syntax
- Marpit Theme CSS: https://marpit.marp.app/theme-css
- Marp Core GitHub: https://github.com/marp-team/marp-core
- Marp CLI GitHub: https://github.com/marp-team/marp-cli
<style> @import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&display=swap');
:root { --color-background: #f8f8f4; --color-foreground: #3a3b5a; --color-heading: #4f86c6; --color-hr: #000000; --font-default: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Meiryo', sans-serif; }
section { background-color: var(--color-background); color: var(--color-foreground); font-family: var(--font-default); font-weight: 400; box-sizing: border-box; border-bottom: 8px solid var(--color-hr); position: relative; line-height: 1.7; font-size: 22px; padding: 56px; }
section:last-of-type { border-bottom: none; }
h1, h2, h3, h4, h5, h6 { font-weight: 700; color: var(--color-heading); margin: 0; padding: 0; }
h1 { font-size: 56px; line-height: 1.4; text-align: left; }
h2 { position: absolute; top: 40px; left: 56px; right: 56px; font-size: 40px; padding-top: 0; padding-bottom: 16px; }
h2::after { content: ''; position: absolute; left: 0; bottom: 8px; width: 60px; height: 2px; background-color: var(--color-hr); }
h2 + * { margin-top: 112px; }
h3 { color: var(--color-foreground); font-size: 28px; margin-top: 32px; margin-bottom: 12px; }
ul, ol { padding-left: 32px; }
li { margin-bottom: 10px; }
footer { font-size: 0; color: transparent; position: absolute; left: 56px; right: 56px; bottom: 40px; height: 8px; background-color: var(--color-heading); }
section.lead { border-bottom: 8px solid var(--color-hr); }
section.lead footer { display: none; }
section.lead h1 { margin-bottom: 24px; }
section.lead p { font-size: 24px; color: var(--color-foreground); } </style>
<!-- _class: lead -->
プレゼンテーションタイトル
あなたの名前 2024年XX月XX日
---
アジェンダ
- トピック1
- トピック2
- トピック3
- トピック4
---
スライドタイトル
- ポイント1
- ポイント2
- ポイント3
---
まとめ
- 要点1
- 要点2
- ご清聴ありがとうございました
<style> @import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700&display=swap');
:root { --color-background: #ffffff; --color-foreground: #1f2937; --color-heading: #1e40af; --color-accent: #3b82f6; --color-border: #d1d5db; --font-default: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Meiryo', sans-serif; }
section { background-color: var(--color-background); color: var(--color-foreground); font-family: var(--font-default); font-weight: 400; box-sizing: border-box; border-top: 8px solid var(--color-heading); position: relative; line-height: 1.7; font-size: 22px; padding: 56px; }
h1, h2, h3, h4, h5, h6 { font-weight: 700; color: var(--color-heading); margin: 0; padding: 0; }
h1 { font-size: 54px; line-height: 1.3; text-align: left; font-weight: 700; letter-spacing: -0.02em; }
h2 { position: absolute; top: 40px; left: 56px; right: 56px; font-size: 38px; padding-top: 0; padding-bottom: 16px; border-bottom: 3px solid var(--color-accent); }
h2 + * { margin-top: 112px; }
h3 { color: var(--color-accent); font-size: 26px; margin-top: 32px; margin-bottom: 12px; font-weight: 600; }
ul, ol { padding-left: 32px; }
li { margin-bottom: 10px; line-height: 1.7; }
footer { font-size: 16px; color: #6b7280; position: absolute; left: 56px; right: 56px; bottom: 40px; display: flex; justify-content: space-between; align-items: center; }
footer::before { content: ''; flex: 1; height: 2px; background-color: var(--color-border); margin-right: 20px; }
section.lead { border-top: 8px solid var(--color-heading); display: flex; flex-direction: column; justify-content: center; background: linear-gradient(135deg, #ffffff 0%, #f3f4f6 100%); }
section.lead footer { display: none; }
section.lead h1 { margin-bottom: 32px; color: var(--color-heading); }
section.lead p { font-size: 24px; color: var(--color-foreground); font-weight: 500; }
table { border-collapse: collapse; width: 100%; margin: 20px 0; font-size: 18px; }
th, td { border: 1px solid var(--color-border); padding: 12px; text-align: left; }
th { background-color: var(--color-heading); color: #ffffff; font-weight: 700; }
tr:nth-child(even) { background-color: #f9fafb; }
strong { color: var(--color-heading); font-weight: 700; }
code { background-color: #f3f4f6; color: var(--color-heading); padding: 2px 6px; border-radius: 3px; font-family: 'Consolas', 'Monaco', monospace; font-size: 0.9em; } </style>
<!-- _class: lead -->
プレゼンテーション
ビジネスライク
---
アジェンダ
- トピック1
- トピック2
- トピック3
---
スライド
- ポイント1
- ポイント2
- ポイント3
<style> @import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700;900&display=swap');
:root { --color-background: #fff5f7; --color-foreground: #2d2d2d; --color-heading: #ff6b9d; --color-accent-1: #ffd93d; --color-accent-2: #6bcf7f; --color-accent-3: #4d96ff; --font-default: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Meiryo', sans-serif; }
section { background: linear-gradient(135deg, var(--color-background) 0%, #ffe5ec 100%); color: var(--color-foreground); font-family: var(--font-default); font-weight: 400; box-sizing: border-box; border-bottom: 10px solid var(--color-accent-1); position: relative; line-height: 1.7; font-size: 24px; padding: 56px; }
section:last-of-type { border-bottom: none; }
h1, h2, h3, h4, h5, h6 { font-weight: 900; color: var(--color-heading); margin: 0; padding: 0; }
h1 { font-size: 64px; line-height: 1.3; text-align: left; background: linear-gradient(135deg, var(--color-heading), var(--color-accent-3)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
h2 { position: absolute; top: 40px; left: 56px; right: 56px; font-size: 44px; padding-top: 0; padding-bottom: 20px; background: linear-gradient(90deg, var(--color-heading), var(--color-accent-3)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
h2::after { content: ''; position: absolute; left: 0; bottom: 8px; width: 80px; height: 4px; background: linear-gradient(90deg, var(--color-accent-1), var(--color-accent-2), var(--color-accent-3)); border-radius: 2px; }
h2 + * { margin-top: 120px; }
h3 { color: var(--color-accent-3); font-size: 30px; margin-top: 32px; margin-bottom: 12px; }
ul, ol { padding-left: 32px; }
li { margin-bottom: 12px; }
footer { font-size: 0; color: transparent; position: absolute; left: 56px; right: 56px; bottom: 40px; height: 10px; background: linear-gradient(90deg, var(--color-accent-1), var(--color-accent-2), var(--color-accent-3)); border-radius: 5px; }
section.lead { border-bottom: 10px solid var(--color-accent-1); background: linear-gradient(135deg, #fff5f7 0%, #ffe5ec 50%, #ffd5e0 100%); }
section.lead footer { display: none; }
section.lead h1 { margin-bottom: 24px; }
section.lead p { font-size: 26px; color: var(--color-foreground); font-weight: 700; }
strong { color: var(--color-heading); font-weight: 900; } </style>
<!-- _class: lead -->
プレゼンテーション
カラフル&ポップ
---
アジェンダ
- トピック1
- トピック2
- トピック3
---
スライド
- ポイント1
- ポイント2
- ポイント3
<style> @import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&display=swap');
:root { --color-background: #1a1a1a; --color-foreground: #e0e0e0; --color-heading: #61dafb; --color-accent: #bb86fc; --color-hr: #61dafb; --font-default: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Meiryo', sans-serif; }
section { background-color: var(--color-background); color: var(--color-foreground); font-family: var(--font-default); font-weight: 400; box-sizing: border-box; border-bottom: 8px solid var(--color-hr); position: relative; line-height: 1.7; font-size: 22px; padding: 56px; }
section:last-of-type { border-bottom: none; }
h1, h2, h3, h4, h5, h6 { font-weight: 700; color: var(--color-heading); margin: 0; padding: 0; }
h1 { font-size: 56px; line-height: 1.4; text-align: left; text-shadow: 0 0 20px rgba(97, 218, 251, 0.3); }
h2 { position: absolute; top: 40px; left: 56px; right: 56px; font-size: 40px; padding-top: 0; padding-bottom: 16px; }
h2::after { content: ''; position: absolute; left: 0; bottom: 8px; width: 60px; height: 2px; background-color: var(--color-hr); box-shadow: 0 0 10px rgba(97, 218, 251, 0.5); }
h2 + * { margin-top: 112px; }
h3 { color: var(--color-accent); font-size: 28px; margin-top: 32px; margin-bottom: 12px; }
ul, ol { padding-left: 32px; }
li { margin-bottom: 10px; }
footer { font-size: 0; color: transparent; position: absolute; left: 56px; right: 56px; bottom: 40px; height: 8px; background: linear-gradient(90deg, var(--color-heading), var(--color-accent)); box-shadow: 0 0 20px rgba(97, 218, 251, 0.3); }
section.lead { border-bottom: 8px solid var(--color-hr); }
section.lead footer { display: none; }
section.lead h1 { margin-bottom: 24px; }
section.lead p { font-size: 24px; color: var(--color-foreground); }
code { background-color: #2d2d2d; color: #61dafb; padding: 2px 8px; border-radius: 4px; font-family: 'Consolas', 'Monaco', monospace; }
strong { color: var(--color-accent); font-weight: 700; } </style>
<!-- _class: lead -->
プレゼンテーション
ダークモード
---
アジェンダ
- トピック1
- トピック2
- トピック3
---
スライド
- ポイント1
- ポイント2
- ポイント3
<style> @import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&display=swap');
:root { --color-foreground: #ffffff; --color-heading: #ffffff; --color-accent: #ffd700; --font-default: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Meiryo', sans-serif; }
section { background: linear-gradient(135deg, #667eea 0%, #764ba2 50%, #f093fb 100%); color: var(--color-foreground); font-family: var(--font-default); font-weight: 400; box-sizing: border-box; position: relative; line-height: 1.7; font-size: 22px; padding: 56px; }
section:nth-child(2n) { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); }
section:nth-child(3n) { background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%); }
section:nth-child(4n) { background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%); }
section:nth-child(5n) { background: linear-gradient(135deg, #43e97b 0%, #38f9d7 100%); }
h1, h2, h3, h4, h5, h6 { font-weight: 700; color: var(--color-heading); margin: 0; padding: 0; text-shadow: 0 2px 10px rgba(0, 0, 0, 0.3); }
h1 { font-size: 56px; line-height: 1.4; text-align: left; }
h2 { position: absolute; top: 40px; left: 56px; right: 56px; font-size: 40px; padding-top: 0; padding-bottom: 16px; }
h2::after { content: ''; position: absolute; left: 0; bottom: 8px; width: 80px; height: 3px; background-color: var(--color-accent); box-shadow: 0 2px 10px rgba(255, 215, 0, 0.5); }
h2 + * { margin-top: 112px; }
h3 { color: var(--color-accent); font-size: 28px; margin-top: 32px; margin-bottom: 12px; text-shadow: 0 2px 5px rgba(0, 0, 0, 0.3); }
ul, ol { padding-left: 32px; }
li { margin-bottom: 10px; text-shadow: 0 1px 3px rgba(0, 0, 0, 0.2); }
footer { font-size: 16px; color: rgba(255, 255, 255, 0.7); position: absolute; left: 56px; right: 56px; bottom: 40px; text-align: center; text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3); }
section.lead { background: linear-gradient(135deg, #667eea 0%, #764ba2 50%, #f093fb 100%); display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; }
section.lead h1 { margin-bottom: 24px; text-align: center; }
section.lead p { font-size: 24px; color: var(--color-foreground); text-shadow: 0 2px 5px rgba(0, 0, 0, 0.3); }
strong { color: var(--color-accent); font-weight: 700; text-shadow: 0 1px 5px rgba(0, 0, 0, 0.3); } </style>
<!-- _class: lead -->
プレゼンテーション
グラデーション背景
---
アジェンダ
- トピック1
- トピック2
- トピック3
---
スライド
- ポイント1
- ポイント2
- ポイント3
<style> @import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;500&display=swap');
:root { --color-background: #ffffff; --color-foreground: #2c2c2c; --color-heading: #1a1a1a; --color-accent: #e0e0e0; --font-default: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Meiryo', sans-serif; }
section { background-color: var(--color-background); color: var(--color-foreground); font-family: var(--font-default); font-weight: 300; box-sizing: border-box; position: relative; line-height: 1.8; font-size: 24px; padding: 60px 80px; }
h1, h2, h3, h4, h5, h6 { font-weight: 400; color: var(--color-heading); margin: 0; padding: 0; }
h1 { font-size: 60px; line-height: 1.3; text-align: left; font-weight: 300; letter-spacing: 0.02em; }
h2 { font-size: 42px; margin-bottom: 40px; font-weight: 400; letter-spacing: 0.01em; }
h3 { color: var(--color-foreground); font-size: 28px; margin-top: 32px; margin-bottom: 16px; font-weight: 400; }
ul, ol { padding-left: 32px; }
li { margin-bottom: 14px; line-height: 1.7; }
footer { font-size: 14px; color: #999999; position: absolute; left: 80px; right: 80px; bottom: 40px; text-align: center; }
section.lead { display: flex; flex-direction: column; justify-content: center; text-align: center; }
section.lead h1 { margin-bottom: 32px; text-align: center; }
section.lead p { font-size: 24px; color: var(--color-foreground); font-weight: 300; }
hr { border: none; border-top: 1px solid var(--color-accent); margin: 40px 0; } </style>
<!-- _class: lead -->
プレゼンテーション
シンプル&ミニマル
---
アジェンダ
- トピック1
- トピック2
- トピック3
---
スライドタイトル
- ポイント1
- ポイント2
- ポイント3
<style> @import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&family=Fira+Code:wght@400;500;700&display=swap');
:root { --color-background: #0d1117; --color-foreground: #c9d1d9; --color-heading: #58a6ff; --color-accent: #7ee787; --color-code-bg: #161b22; --color-border: #30363d; --font-default: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Meiryo', sans-serif; --font-code: 'Fira Code', 'Consolas', 'Monaco', monospace; }
section { background-color: var(--color-background); color: var(--color-foreground); font-family: var(--font-default); font-weight: 400; box-sizing: border-box; border-left: 4px solid var(--color-accent); position: relative; line-height: 1.6; font-size: 20px; padding: 56px; }
h1, h2, h3, h4, h5, h6 { font-weight: 700; color: var(--color-heading); margin: 0; padding: 0; font-family: var(--font-code); }
h1 { font-size: 52px; line-height: 1.3; text-align: left; }
h1::before { content: '# '; color: var(--color-accent); }
h2 { font-size: 38px; margin-bottom: 40px; padding-bottom: 12px; border-bottom: 2px solid var(--color-border); }
h2::before { content: '## '; color: var(--color-accent); }
h3 { color: var(--color-foreground); font-size: 26px; margin-top: 32px; margin-bottom: 12px; }
h3::before { content: '### '; color: var(--color-accent); }
ul, ol { padding-left: 32px; }
li { margin-bottom: 10px; }
li::marker { color: var(--color-accent); }
pre { background-color: var(--color-code-bg); border: 1px solid var(--color-border); border-radius: 6px; padding: 16px; overflow-x: auto; font-family: var(--font-code); font-size: 16px; line-height: 1.5; }
code { background-color: var(--color-code-bg); color: var(--color-accent); padding: 2px 6px; border-radius: 3px; font-family: var(--font-code); font-size: 0.9em; }
pre code { background-color: transparent; padding: 0; color: var(--color-foreground); }
footer { font-size: 14px; color: #8b949e; font-family: var(--font-code); position: absolute; left: 56px; right: 56px; bottom: 40px; text-align: right; }
footer::before { content: '// '; color: var(--color-accent); }
section.lead { border-left: 4px solid var(--color-accent); display: flex; flex-direction: column; justify-content: center; }
section.lead h1 { margin-bottom: 24px; }
section.lead p { font-size: 22px; color: var(--color-foreground); font-family: var(--font-code); }
strong { color: var(--color-accent); font-weight: 700; } </style>
<!-- _class: lead -->
プレゼンテーション
技術系(コード向け)
---
アジェンダ
- トピック1
- トピック2
- トピック3
---
スライド
- ポイント1
- ポイント2
- ポイント3
/* Google Fontsから日本語フォントを読み込み */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700&display=swap');
/* --- ビジネスライクテーマ --- */
:root {
--color-background: #ffffff;
--color-foreground: #1f2937;
--color-heading: #1e40af;
--color-accent: #3b82f6;
--color-border: #d1d5db;
--font-default: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Meiryo', sans-serif;
}
section {
background-color: var(--color-background);
color: var(--color-foreground);
font-family: var(--font-default);
font-weight: 400;
box-sizing: border-box;
border-top: 8px solid var(--color-heading);
position: relative;
line-height: 1.7;
font-size: 22px;
padding: 56px;
}
h1, h2, h3, h4, h5, h6 {
font-weight: 700;
color: var(--color-heading);
margin: 0;
padding: 0;
}
h1 {
font-size: 54px;
line-height: 1.3;
text-align: left;
font-weight: 700;
letter-spacing: -0.02em;
}
h2 {
position: absolute;
top: 40px;
left: 56px;
right: 56px;
font-size: 38px;
padding-top: 0;
padding-bottom: 16px;
border-bottom: 3px solid var(--color-accent);
}
h2 + * {
margin-top: 112px;
}
h3 {
color: var(--color-accent);
font-size: 26px;
margin-top: 32px;
margin-bottom: 12px;
font-weight: 600;
}
ul, ol {
padding-left: 32px;
}
li {
margin-bottom: 10px;
line-height: 1.7;
}
/* フッター(ページ番号風)*/
footer {
font-size: 16px;
color: #6b7280;
position: absolute;
left: 56px;
right: 56px;
bottom: 40px;
display: flex;
justify-content: space-between;
align-items: center;
}
footer::before {
content: '';
flex: 1;
height: 2px;
background-color: var(--color-border);
margin-right: 20px;
}
section.lead {
border-top: 8px solid var(--color-heading);
display: flex;
flex-direction: column;
justify-content: center;
background: linear-gradient(135deg, #ffffff 0%, #f3f4f6 100%);
}
section.lead footer {
display: none;
}
section.lead h1 {
margin-bottom: 32px;
color: var(--color-heading);
}
section.lead p {
font-size: 24px;
color: var(--color-foreground);
font-weight: 500;
}
/* テーブル */
table {
border-collapse: collapse;
width: 100%;
margin: 20px 0;
font-size: 18px;
}
th, td {
border: 1px solid var(--color-border);
padding: 12px;
text-align: left;
}
th {
background-color: var(--color-heading);
color: #ffffff;
font-weight: 700;
}
tr:nth-child(even) {
background-color: #f9fafb;
}
/* 強調ボックス */
.highlight-box {
background-color: #eff6ff;
border-left: 4px solid var(--color-accent);
padding: 20px;
margin: 20px 0;
border-radius: 4px;
}
/* 数値の強調 */
.number {
font-size: 48px;
font-weight: 700;
color: var(--color-accent);
line-height: 1;
}
/* ステップ番号 */
.step {
display: inline-block;
width: 36px;
height: 36px;
background-color: var(--color-heading);
color: #ffffff;
border-radius: 50%;
text-align: center;
line-height: 36px;
font-weight: 700;
margin-right: 12px;
}
/* 引用 */
blockquote {
border-left: 4px solid var(--color-accent);
padding-left: 20px;
color: #6b7280;
font-style: italic;
margin: 20px 0;
font-size: 20px;
}
/* リンク */
a {
color: var(--color-accent);
text-decoration: none;
border-bottom: 1px solid var(--color-accent);
}
a:hover {
color: var(--color-heading);
border-bottom-color: var(--color-heading);
}
/* 強調 */
strong {
color: var(--color-heading);
font-weight: 700;
}
/* コード */
code {
background-color: #f3f4f6;
color: var(--color-heading);
padding: 2px 6px;
border-radius: 3px;
font-family: 'Consolas', 'Monaco', monospace;
font-size: 0.9em;
}
/* Google Fontsから日本語フォントを読み込み */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700;900&display=swap');
/* --- カラフル&ポップテーマ --- */
:root {
--color-background: #fff5f7;
--color-foreground: #2d2d2d;
--color-heading: #ff6b9d;
--color-accent-1: #ffd93d;
--color-accent-2: #6bcf7f;
--color-accent-3: #4d96ff;
--font-default: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Meiryo', sans-serif;
}
section {
background: linear-gradient(135deg, var(--color-background) 0%, #ffe5ec 100%);
color: var(--color-foreground);
font-family: var(--font-default);
font-weight: 400;
box-sizing: border-box;
border-bottom: 10px solid var(--color-accent-1);
position: relative;
line-height: 1.7;
font-size: 24px;
padding: 56px;
}
section:last-of-type {
border-bottom: none;
}
h1, h2, h3, h4, h5, h6 {
font-weight: 900;
color: var(--color-heading);
margin: 0;
padding: 0;
}
h1 {
font-size: 64px;
line-height: 1.3;
text-align: left;
background: linear-gradient(135deg, var(--color-heading), var(--color-accent-3));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
h2 {
position: absolute;
top: 40px;
left: 56px;
right: 56px;
font-size: 44px;
padding-top: 0;
padding-bottom: 20px;
background: linear-gradient(90deg, var(--color-heading), var(--color-accent-3));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
h2::after {
content: '';
position: absolute;
left: 0;
bottom: 8px;
width: 80px;
height: 4px;
background: linear-gradient(90deg, var(--color-accent-1), var(--color-accent-2), var(--color-accent-3));
border-radius: 2px;
}
h2 + * {
margin-top: 120px;
}
h3 {
color: var(--color-accent-3);
font-size: 30px;
margin-top: 32px;
margin-bottom: 12px;
}
ul, ol {
padding-left: 32px;
}
li {
margin-bottom: 12px;
position: relative;
}
li::marker {
color: var(--color-heading);
font-weight: 700;
}
footer {
font-size: 0;
color: transparent;
position: absolute;
left: 56px;
right: 56px;
bottom: 40px;
height: 10px;
background: linear-gradient(90deg, var(--color-accent-1), var(--color-accent-2), var(--color-accent-3));
border-radius: 5px;
}
section.lead {
border-bottom: 10px solid var(--color-accent-1);
background: linear-gradient(135deg, #fff5f7 0%, #ffe5ec 50%, #ffd5e0 100%);
}
section.lead footer {
display: none;
}
section.lead h1 {
margin-bottom: 24px;
}
section.lead p {
font-size: 26px;
color: var(--color-foreground);
font-weight: 700;
}
/* ポップな強調 */
strong {
color: var(--color-heading);
font-weight: 900;
}
/* カラフルな区切り線 */
hr {
border: none;
height: 4px;
background: linear-gradient(90deg, var(--color-accent-1), var(--color-accent-2), var(--color-accent-3));
margin: 30px 0;
border-radius: 2px;
}
/* Google Fontsから日本語フォントを読み込み */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&display=swap');
/* --- ダークモードテーマ --- */
:root {
--color-background: #1a1a1a;
--color-foreground: #e0e0e0;
--color-heading: #61dafb;
--color-accent: #bb86fc;
--color-hr: #61dafb;
--font-default: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Meiryo', sans-serif;
}
section {
background-color: var(--color-background);
color: var(--color-foreground);
font-family: var(--font-default);
font-weight: 400;
box-sizing: border-box;
border-bottom: 8px solid var(--color-hr);
position: relative;
line-height: 1.7;
font-size: 22px;
padding: 56px;
}
section:last-of-type {
border-bottom: none;
}
h1, h2, h3, h4, h5, h6 {
font-weight: 700;
color: var(--color-heading);
margin: 0;
padding: 0;
}
h1 {
font-size: 56px;
line-height: 1.4;
text-align: left;
text-shadow: 0 0 20px rgba(97, 218, 251, 0.3);
}
h2 {
position: absolute;
top: 40px;
left: 56px;
right: 56px;
font-size: 40px;
padding-top: 0;
padding-bottom: 16px;
}
h2::after {
content: '';
position: absolute;
left: 0;
bottom: 8px;
width: 60px;
height: 2px;
background-color: var(--color-hr);
box-shadow: 0 0 10px rgba(97, 218, 251, 0.5);
}
h2 + * {
margin-top: 112px;
}
h3 {
color: var(--color-accent);
font-size: 28px;
margin-top: 32px;
margin-bottom: 12px;
}
ul, ol {
padding-left: 32px;
}
li {
margin-bottom: 10px;
}
footer {
font-size: 0;
color: transparent;
position: absolute;
left: 56px;
right: 56px;
bottom: 40px;
height: 8px;
background: linear-gradient(90deg, var(--color-heading), var(--color-accent));
box-shadow: 0 0 20px rgba(97, 218, 251, 0.3);
}
section.lead {
border-bottom: 8px solid var(--color-hr);
}
section.lead footer {
display: none;
}
section.lead h1 {
margin-bottom: 24px;
}
section.lead p {
font-size: 24px;
color: var(--color-foreground);
}
/* コード風の強調 */
code {
background-color: #2d2d2d;
color: #61dafb;
padding: 2px 8px;
border-radius: 4px;
font-family: 'Consolas', 'Monaco', monospace;
}
/* ダークモード用のリンク */
a {
color: var(--color-heading);
text-decoration: none;
border-bottom: 1px solid var(--color-heading);
}
a:hover {
text-shadow: 0 0 10px rgba(97, 218, 251, 0.5);
}
/* グロー効果 */
strong {
color: var(--color-accent);
font-weight: 700;
}
/* Google Fontsから日本語フォントを読み込み */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&display=swap');
/* --- 色やフォントの基本設定 --- */
:root {
--color-background: #f8f8f4;
--color-foreground: #3a3b5a;
--color-heading: #4f86c6;
--color-hr: #000000;
--font-default: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Meiryo', sans-serif;
}
/* --- スライド全体のスタイル --- */
section {
background-color: var(--color-background);
color: var(--color-foreground);
font-family: var(--font-default);
font-weight: 400;
box-sizing: border-box;
border-bottom: 8px solid var(--color-hr);
position: relative;
line-height: 1.7;
font-size: 22px;
padding: 56px;
}
section:last-of-type {
border-bottom: none;
}
/* --- 見出しのスタイル --- */
h1, h2, h3, h4, h5, h6 {
font-weight: 700;
color: var(--color-heading);
margin: 0;
padding: 0;
}
/* タイトルページ(h1)のスタイル */
h1 {
font-size: 56px;
line-height: 1.4;
text-align: left;
}
/* 通常スライドのタイトル(##) */
h2 {
position: absolute;
top: 40px;
left: 56px;
right: 56px;
font-size: 40px;
padding-top: 0;
padding-bottom: 16px;
}
/* h2の疑似要素(::after)を使って、短い線を実装 */
h2::after {
content: '';
position: absolute;
left: 0;
bottom: 8px;
width: 60px;
height: 2px;
background-color: var(--color-hr);
}
/* h2と後続コンテンツの間のスペースを確保 */
h2 + * {
margin-top: 112px;
}
/* サブ見出し (例: 目的, 目標) */
h3 {
color: var(--color-foreground);
font-size: 28px;
margin-top: 32px;
margin-bottom: 12px;
}
/* --- リストのスタイル --- */
ul, ol {
padding-left: 32px;
}
li {
margin-bottom: 10px;
}
/* フッターとして機能する、太い青いラインを実装 */
footer {
font-size: 0;
color: transparent;
position: absolute;
left: 56px;
right: 56px;
bottom: 40px;
height: 8px;
background-color: var(--color-heading);
}
/* --- 特別なクラス --- */
section.lead {
border-bottom: 8px solid var(--color-hr);
}
/* タイトルページではフッターラインを非表示にする */
section.lead footer {
display: none;
}
section.lead h1 {
margin-bottom: 24px;
}
section.lead p {
font-size: 24px;
color: var(--color-foreground);
}
/* ガイドライン用のスタイル */
.bad-example {
background-color: #fbe9e7;
color: #c62828;
padding: 8px 16px;
border-radius: 4px;
}
/* Google Fontsから日本語フォントを読み込み */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&display=swap');
/* --- グラデーション背景テーマ --- */
:root {
--color-foreground: #ffffff;
--color-heading: #ffffff;
--color-accent: #ffd700;
--font-default: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Meiryo', sans-serif;
}
section {
background: linear-gradient(135deg, #667eea 0%, #764ba2 50%, #f093fb 100%);
color: var(--color-foreground);
font-family: var(--font-default);
font-weight: 400;
box-sizing: border-box;
position: relative;
line-height: 1.7;
font-size: 22px;
padding: 56px;
}
/* スライドごとに異なるグラデーション */
section:nth-child(2n) {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}
section:nth-child(3n) {
background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
}
section:nth-child(4n) {
background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);
}
section:nth-child(5n) {
background: linear-gradient(135deg, #43e97b 0%, #38f9d7 100%);
}
h1, h2, h3, h4, h5, h6 {
font-weight: 700;
color: var(--color-heading);
margin: 0;
padding: 0;
text-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
}
h1 {
font-size: 56px;
line-height: 1.4;
text-align: left;
}
h2 {
position: absolute;
top: 40px;
left: 56px;
right: 56px;
font-size: 40px;
padding-top: 0;
padding-bottom: 16px;
}
h2::after {
content: '';
position: absolute;
left: 0;
bottom: 8px;
width: 80px;
height: 3px;
background-color: var(--color-accent);
box-shadow: 0 2px 10px rgba(255, 215, 0, 0.5);
}
h2 + * {
margin-top: 112px;
}
h3 {
color: var(--color-accent);
font-size: 28px;
margin-top: 32px;
margin-bottom: 12px;
text-shadow: 0 2px 5px rgba(0, 0, 0, 0.3);
}
ul, ol {
padding-left: 32px;
}
li {
margin-bottom: 10px;
text-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
}
footer {
font-size: 16px;
color: rgba(255, 255, 255, 0.7);
position: absolute;
left: 56px;
right: 56px;
bottom: 40px;
text-align: center;
text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
}
section.lead {
background: linear-gradient(135deg, #667eea 0%, #764ba2 50%, #f093fb 100%);
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
text-align: center;
}
section.lead h1 {
margin-bottom: 24px;
text-align: center;
}
section.lead p {
font-size: 24px;
color: var(--color-foreground);
text-shadow: 0 2px 5px rgba(0, 0, 0, 0.3);
}
/* 半透明の背景ボックス */
.text-box {
background-color: rgba(255, 255, 255, 0.1);
backdrop-filter: blur(10px);
padding: 20px;
border-radius: 10px;
border: 1px solid rgba(255, 255, 255, 0.2);
}
/* 強調テキスト */
strong {
color: var(--color-accent);
font-weight: 700;
text-shadow: 0 1px 5px rgba(0, 0, 0, 0.3);
}
/* コード */
code {
background-color: rgba(0, 0, 0, 0.3);
color: var(--color-accent);
padding: 2px 8px;
border-radius: 4px;
}
/* Google Fontsから日本語フォントを読み込み */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;500&display=swap');
/* --- シンプル&ミニマルテーマ --- */
:root {
--color-background: #ffffff;
--color-foreground: #2c2c2c;
--color-heading: #1a1a1a;
--color-accent: #e0e0e0;
--font-default: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Meiryo', sans-serif;
}
section {
background-color: var(--color-background);
color: var(--color-foreground);
font-family: var(--font-default);
font-weight: 300;
box-sizing: border-box;
position: relative;
line-height: 1.8;
font-size: 24px;
padding: 60px 80px;
}
h1, h2, h3, h4, h5, h6 {
font-weight: 400;
color: var(--color-heading);
margin: 0;
padding: 0;
}
h1 {
font-size: 60px;
line-height: 1.3;
text-align: left;
font-weight: 300;
letter-spacing: 0.02em;
}
h2 {
font-size: 42px;
margin-bottom: 40px;
font-weight: 400;
letter-spacing: 0.01em;
}
h3 {
color: var(--color-foreground);
font-size: 28px;
margin-top: 32px;
margin-bottom: 16px;
font-weight: 400;
}
ul, ol {
padding-left: 32px;
}
li {
margin-bottom: 14px;
line-height: 1.7;
}
footer {
font-size: 14px;
color: #999999;
position: absolute;
left: 80px;
right: 80px;
bottom: 40px;
text-align: center;
}
section.lead {
display: flex;
flex-direction: column;
justify-content: center;
text-align: center;
}
section.lead h1 {
margin-bottom: 32px;
text-align: center;
}
section.lead p {
font-size: 24px;
color: var(--color-foreground);
font-weight: 300;
}
/* ミニマルな区切り線 */
hr {
border: none;
border-top: 1px solid var(--color-accent);
margin: 40px 0;
}
/* Google Fontsから日本語フォントとコードフォントを読み込み */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&family=Fira+Code:wght@400;500;700&display=swap');
/* --- 技術系(コード向け)テーマ --- */
:root {
--color-background: #0d1117;
--color-foreground: #c9d1d9;
--color-heading: #58a6ff;
--color-accent: #7ee787;
--color-code-bg: #161b22;
--color-border: #30363d;
--font-default: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Meiryo', sans-serif;
--font-code: 'Fira Code', 'Consolas', 'Monaco', monospace;
}
section {
background-color: var(--color-background);
color: var(--color-foreground);
font-family: var(--font-default);
font-weight: 400;
box-sizing: border-box;
border-left: 4px solid var(--color-accent);
position: relative;
line-height: 1.6;
font-size: 20px;
padding: 56px;
}
h1, h2, h3, h4, h5, h6 {
font-weight: 700;
color: var(--color-heading);
margin: 0;
padding: 0;
font-family: var(--font-code);
}
h1 {
font-size: 52px;
line-height: 1.3;
text-align: left;
}
h1::before {
content: '# ';
color: var(--color-accent);
}
h2 {
font-size: 38px;
margin-bottom: 40px;
padding-bottom: 12px;
border-bottom: 2px solid var(--color-border);
}
h2::before {
content: '## ';
color: var(--color-accent);
}
h3 {
color: var(--color-foreground);
font-size: 26px;
margin-top: 32px;
margin-bottom: 12px;
}
h3::before {
content: '### ';
color: var(--color-accent);
}
ul, ol {
padding-left: 32px;
}
li {
margin-bottom: 10px;
}
li::marker {
color: var(--color-accent);
}
/* コードブロック */
pre {
background-color: var(--color-code-bg);
border: 1px solid var(--color-border);
border-radius: 6px;
padding: 16px;
overflow-x: auto;
font-family: var(--font-code);
font-size: 16px;
line-height: 1.5;
}
code {
background-color: var(--color-code-bg);
color: var(--color-accent);
padding: 2px 6px;
border-radius: 3px;
font-family: var(--font-code);
font-size: 0.9em;
}
pre code {
background-color: transparent;
padding: 0;
color: var(--color-foreground);
}
/* フッター */
footer {
font-size: 14px;
color: #8b949e;
font-family: var(--font-code);
position: absolute;
left: 56px;
right: 56px;
bottom: 40px;
text-align: right;
}
footer::before {
content: '// ';
color: var(--color-accent);
}
section.lead {
border-left: 4px solid var(--color-accent);
display: flex;
flex-direction: column;
justify-content: center;
}
section.lead h1 {
margin-bottom: 24px;
}
section.lead p {
font-size: 22px;
color: var(--color-foreground);
font-family: var(--font-code);
}
/* テーブル */
table {
border-collapse: collapse;
width: 100%;
margin: 20px 0;
}
th, td {
border: 1px solid var(--color-border);
padding: 10px;
text-align: left;
}
th {
background-color: var(--color-code-bg);
color: var(--color-heading);
font-family: var(--font-code);
}
/* リンク */
a {
color: var(--color-heading);
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
/* 強調 */
strong {
color: var(--color-accent);
font-weight: 700;
}
/* 引用 */
blockquote {
border-left: 4px solid var(--color-accent);
padding-left: 20px;
color: #8b949e;
font-style: italic;
margin: 20px 0;
}
/* ターミナル風 */
.terminal {
background-color: #000000;
color: #00ff00;
font-family: var(--font-code);
padding: 20px;
border-radius: 6px;
font-size: 16px;
}
.terminal::before {
content: '$ ';
color: #00ff00;
font-weight: 700;
}
Marp Slide Creator
A Claude Code skill for creating professional, visually appealing Marp presentation slides with 7 pre-designed themes and built-in best practices.
Purpose
This skill automates the creation of high-quality Marp presentations by providing:
- 7 professionally designed themes (default, minimal, colorful, dark, gradient, tech, business)
- Built-in best practices for slide structure and visual hierarchy
- Automatic quality improvements for vague "make it look good" requests
- Image integration with proper Marp syntax
- Theme selection guidance based on content type
When to Use
Use this skill when you need to:
- Create presentation slides or Marp documents
- Improve slide design aesthetics
- Structure lecture or seminar materials
- Transform bullet-point content into professional presentations
- Generate slides with specific themes (tech, business, creative, etc.)
Trigger phrases:
- "create slides"
- "make a presentation"
- "create Marp slides"
- "make it look good"
- "良い感じにして" (make it nice - Japanese)
- "かっこよく" (make it cool - Japanese)
How It Works
1. Theme Selection
The skill intelligently selects themes based on content:
- Technical/Developer → tech theme
- Business/Corporate → business theme
- Creative/Event → colorful or gradient theme
- Academic/Simple → minimal theme
- General → default theme
- Dark preference → dark or tech theme
2. Content Structuring
Follows best practices automatically:
- Title slide with lead class styling
- Concise headings (5-7 characters for Japanese)
- 3-5 bullet points per slide
- Adequate whitespace and visual hierarchy
- Consistent formatting throughout
3. Template Application
Uses pre-built templates with embedded CSS:
- No external CSS files needed
- Ready-to-use with Marp CLI or VS Code
- Consistent styling across all slides
4. Image Integration
Supports official Marp image syntax:
- Side images:
 - Centered images:
 - Full backgrounds:
 - Multiple images and filters
Available Themes
1. Default Theme
Style: Clean, sophisticated with decorative lines Colors: Beige background, navy text, blue headings Best for: General seminars, lectures, presentations
2. Minimal Theme
Style: Minimal decoration, wide margins, light fonts Colors: White background, gray text, black headings Best for: Content-focused presentations, academic talks
3. Colorful & Pop Theme
Style: Vibrant gradients, bold fonts, rainbow accents Colors: Pink gradient background, multi-color accents Best for: Youth-oriented events, creative projects
4. Dark Mode Theme
Style: Dark theme with glow effects, eye-friendly Colors: Black background, cyan/purple accents Best for: Tech presentations, evening talks, modern look
5. Gradient Background Theme
Style: Different gradient per slide, white text, shadows Colors: Purple/pink/blue/green gradients (varies per slide) Best for: Visual-focused, creative presentations
6. Tech/Code Theme
Style: Code fonts, Markdown-style headers with # symbols Colors: GitHub-style dark background, blue/green accents Best for: Programming tutorials, tech meetups, developer content
7. Business Theme
Style: Corporate presentation style, top border, table support Colors: White background, navy headings, blue accents Best for: Business presentations, proposals, reports
Key Features
- 7 Pre-designed Themes: Professional themes for different contexts
- Automatic Quality Enhancement: Applies best practices when users request "make it look good"
- Theme Selection Guidance: Intelligent theme selection based on content analysis
- Image Pattern Library: Official Marp image syntax with common patterns
- Embedded CSS: Templates include all styling - no external files needed
- Best Practices Built-in: Follows visual hierarchy and presentation design principles
- Multi-language Support: Works with English, Japanese, and other languages
- Quality Checklist: Ensures consistent output quality
Usage Examples
Example 1: Basic Presentation
User: Create slides about cloud computing basics
Agent: I'll create a professional presentation using the default theme.
[Creates slides with title slide, 5-7 content slides, conclusion]
[Saves to /mnt/user-data/outputs/cloud-computing.md]Example 2: Tech Meetup
User: Make slides for my Python tutorial - make it look cool
Agent: I'll use the tech theme for a programming tutorial.
[Selects tech theme with code-friendly styling]
[Structures content with code examples]
[Applies dark background and syntax-friendly colors]Example 3: Business Proposal
User: Create a business presentation about Q1 results
Agent: I'll use the business theme for your corporate presentation.
[Applies professional business styling]
[Includes table support for data]
[Uses formal tone and structure]Example 4: Vague Request (Japanese)
User: このスライドを良い感じにして
Agent: I'll enhance this presentation's visual appeal.
[Analyzes content to infer appropriate theme]
[Applies best practices: concise titles, 3-5 bullets]
[Improves whitespace and visual hierarchy]File Structure
marp-slide/
├── SKILL.md # Main skill instructions
├── README.md # This file
├── assets/
│ ├── template-basic.md # Default theme template
│ ├── template-minimal.md # Minimal theme template
│ ├── template-colorful.md # Colorful theme template
│ ├── template-dark.md # Dark theme template
│ ├── template-gradient.md # Gradient theme template
│ ├── template-tech.md # Tech theme template
│ ├── template-business.md # Business theme template
│ ├── theme-*.css # Standalone CSS files (reference)
└── references/
├── marp-syntax.md # Basic Marp/Marpit syntax
├── image-patterns.md # Image syntax patterns
├── theme-css-guide.md # Custom theme creation
├── advanced-features.md # Math, emoji, fragmented lists
├── official-themes.md # Default Marp themes docs
├── theme-selection.md # Theme selection guide
└── best-practices.md # Quality guidelinesOutput
All generated slides are saved to /mnt/user-data/outputs/ with .md extension:
- Includes embedded CSS (no external files needed)
- Ready to use with Marp CLI or VS Code Marp extension
- Can be exported to PDF, HTML, or PPTX
Quality Standards
Every presentation created follows:
- Concise titles (5-7 characters for Japanese)
- 3-5 bullet points per slide
- Proper visual hierarchy
- Adequate whitespace
- Consistent formatting
- Professional tone matching content type
- Logical flow (intro → body → conclusion)
Resources
Internal Documentation
references/marp-syntax.md- Basic Marp syntax and directivesreferences/image-patterns.md- Official image syntax guidereferences/theme-css-guide.md- Custom theme creationreferences/best-practices.md- Quality guidelines
External Links
License
This skill is part of the agent-skills project.
Marp Advanced Features Reference
Advanced features of Marp Core and Marpit.
Fragmented List (Progressive Display)
Feature to display list items progressively (animation effect).
Official documentation: https://github.com/marp-team/marpit/tree/main/docs/fragmented-list
Basic Usage
* Item 1
* Item 2
* Item 3Normally, all items are displayed at once.
Using Asterisks (*)
* Item 1
* Item 2
* Item 3When using --html option with Marp CLI, each item displays sequentially.
Important Notes
- Only effective in HTML output: No effect in PDF/PPTX/images
- Presentation mode: Works during browser presentations
- Marp for VS Code: May not work in preview
Math Notation (Marp Core Extension)
Supports Pandoc-style math formulas. Rendered using KaTeX.
Official: https://github.com/marp-team/marp-core#math-typesetting
Inline Math
Insert $E = mc^2$ in textBlock Math
$$
\int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi}
$$Multi-line Math
$$
\begin{aligned}
f(x) &= x^2 + 2x + 1 \\
&= (x + 1)^2
\end{aligned}
$$Math Examples
## Quadratic Formula
$$
x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}
$$
## Euler's Identity
$$
e^{i\pi} + 1 = 0
$$Important Notes
- KaTeX notation: Subset of LaTeX syntax
- Unsupported notation: Some LaTeX features not supported
- KaTeX official: https://katex.org/docs/supported.html
Emoji (Marp Core Extension)
Supports GitHub Emoji notation.
Official: https://github.com/marp-team/marp-core#emoji
Usage
:smile: :heart: :+1: :sparkles:Rendered result: 😄 ❤️ 👍 ✨
Common Emoji
:arrow_right: →
:check: ✓
:x: ✗
:bulb: 💡
:warning: ⚠️
:rocket: 🚀
:tada: 🎉Emoji List
Complete list: https://github.com/ikatyang/emoji-cheat-sheet
Auto-scaling
Automatically adjusts font size when there's too much text.
Disable
---
marp: true
---
<!-- _class: no-scaling -->
# No auto-scalingControl with custom CSS:
section.no-scaling {
--marpit-auto-scaling: off;
}Using HTML Tags
You can write HTML directly in Markdown.
Alignment Control
<div style="text-align: center;">
Centered text
</div>Two-Column Layout
<div style="display: flex;">
<div style="flex: 1;">
## Left Side
- Point 1
- Point 2
</div>
<div style="flex: 1;">
## Right Side
- Point 3
- Point 4
</div>
</div>Styled Box
<div style="background-color: #e3f2fd; padding: 20px; border-radius: 8px;">
**Important Point**
Important content goes here
</div>Marp CLI Detailed Options
Official: https://github.com/marp-team/marp-cli
Basic Commands
# Convert to HTML
marp slide.md
# Convert to PDF
marp slide.md --pdf
# Convert to PowerPoint
marp slide.md --pptx
# Convert to image
marp slide.md --images pngWatch Mode
# Watch file and auto-convert
marp -w slide.md
# Watch in server mode
marp -s -w slide.mdSpecify Theme
# Use custom theme
marp slide.md --theme custom-theme.css
# Specify theme directory
marp slide.md --theme-set themes/Batch Convert Multiple Files
# Convert all Markdown in directory
marp slides/*.md
# Specify output directory
marp slides/*.md -o output/HTML Output Options
# HTML output (single file)
marp slide.md -o output.html
# Standalone HTML (using CDN)
marp slide.md --htmlPDF Output Options
# PDF output
marp slide.md --pdf --allow-local-files
# PDF without page numbers
marp slide.md --pdf --pdf-notesImage Output
# Output as PNG images
marp slide.md --images png
# Output as JPEG images
marp slide.md --images jpeg
# Specify resolution
marp slide.md --images png --image-scale 2Marp for VS Code
Official: https://marketplace.visualstudio.com/items?itemName=marp-team.marp-vscode
Enable
Write in Markdown file front matter:
---
marp: true
---Preview
Ctrl+Shift+V(Win/Linux)Cmd+Shift+V(Mac)
Export
1. Command Palette (Ctrl+Shift+P) 2. Select "Marp: Export slide deck..." 3. Choose format (HTML/PDF/PPTX/PNG/JPEG)
Settings
Customizable in VS Code settings:
{
"markdown.marp.themes": [
"./themes/custom-theme.css"
],
"markdown.marp.enableHtml": true
}Automated Build with GitHub Actions
Official: https://github.com/marketplace/actions/marp-action
Basic Workflow
name: Marp Build
on:
push:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Marp Build
uses: docker://marpteam/marp-cli:latest
with:
args: slides.md --pdf --allow-local-files
- name: Upload PDF
uses: actions/upload-artifact@v3
with:
name: slides
path: slides.pdfPublish to GitHub Pages
- name: Marp to Pages
uses: docker://marpteam/marp-cli:latest
with:
args: slides.md -o index.html
- name: Deploy to Pages
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./Tips & Tricks
1. Customize Slide Numbers
section::after {
content: 'Page ' attr(data-marpit-pagination);
}2. Gradient Background
---
backgroundImage: linear-gradient(135deg, #667eea 0%, #764ba2 100%)
color: white
---3. Two-Column Layout
<div class="columns">
<div>
Left side content
</div>
<div>
Right side content
</div>
</div>
<style>
.columns {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 2rem;
}
</style>4. Progress Bar
section::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: calc(var(--paginate) / var(--paginate-total) * 100%);
height: 5px;
background-color: #3b82f6;
}Troubleshooting
PDF Not Generated
- Check if Chrome or Edge is installed
- Add
--allow-local-filesoption
Fonts Not Displaying
- Load Google Fonts with
@import - Specify local fonts with absolute path
Images Not Displaying
- Check image relative paths
- May need
--allow-local-files
Official References
- Marp Official Site: https://marp.app/
- Marpit Directives: https://marpit.marp.app/directives
- Image Syntax: https://marpit.marp.app/image-syntax
- Theme CSS: https://marpit.marp.app/theme-css
- Marp Core: https://github.com/marp-team/marp-core
- Marp CLI: https://github.com/marp-team/marp-cli
- VS Code Extension: https://marketplace.visualstudio.com/items?itemName=marp-team.marp-vscode
Marp Slide Creation Best Practices
Guidelines for creating "cool" high-quality slides.
Slide Titles (h2)
✅ Good Examples
- Concise: About 5-7 characters
- Clear: Content is immediately understandable
- Consistent: Use the same style at the same hierarchy level
## Introduction
## Problem
## Solution
## Results❌ Bad Examples
## In this section we will explain the introduction
## What are the challenges we are facingBullet Points
✅ Good Examples
- 3-5 items: Not too many
- Concise: About 15-25 characters per line
- Parallel: Same grammatical structure at the same level
- Simple and easy to understand
- Unified design
- Effective information delivery❌ Bad Examples
- This is a very long explanation that doesn't fit on one line and becomes difficult to read
- Short
- The next item is in sentence format. This lack of uniformity makes it hard to read.Slide Structure
Basic Structure
1. Title Slide (<!-- _class: lead -->)
- Title
- Presenter name
- Date
2. Agenda Slide
- Show overall flow
- About 3-5 items
3. Content Slides
- 1 slide = 1 message
- Title summarizes content
4. Summary Slide
- Reconfirm key points
- Words of thanks
Recommended Slide Count
- 5-minute presentation: 5-8 slides
- 10-minute presentation: 10-15 slides
- 20-minute presentation: 15-25 slides
Text Amount
✅ Good Balance
## Product Features
- High-speed processing
- Intuitive UI
- Highly extensible design❌ Too Crowded
## About the Product
This product was developed using the latest technology.
The main features include the following 7 points:
- Feature 1: Detailed explanation continues at length...
- Feature 2: Even more detailed explanation...
(Continued)Using Whitespace
- Adequate whitespace: Don't cram too much information
- Visual guidance: Layout that naturally draws eyes to important information
- Breathing room: Appropriate "pauses" between slides
Using Colors
Leverage colors defined in the theme:
- Background color:
#f8f8f4(light beige) - Text color:
#3a3b5a(dark navy) - Heading color:
#4f86c6(blue) - Accent color:
#000000(black)
When Using Additional Colors
<span style="color: #c62828;">Important point</span>Use sparingly and avoid excessive decoration.
Using Images
Effective Usage
- Clear purpose: To aid understanding, not just decoration
- High quality: Use high-resolution images
- Appropriate size: Neither too large nor too small
Layout Tips
# Text on left, image on right

- Point 1
- Point 2Font Size Guidelines
Defined in the theme:
- h1: 56px (title slide only)
- h2: 40px (regular slide titles)
- h3: 28px (subheadings)
- Body text: 22px
Animations and Transitions
Marp does not support animations by default. Focus on simple slide transitions.
Checklist
After completing slides, verify:
- [ ] Are titles concise (5-7 characters)?
- [ ] Are bullet points 3-5 items?
- [ ] Is it 1 slide = 1 message?
- [ ] Is the text amount appropriate?
- [ ] Is there sufficient whitespace?
- [ ] Are images used effectively?
- [ ] Is there overall consistency?
- [ ] Is the slide count appropriate?
Marp Image Syntax Reference
Image placement and styling methods based on official Marpit image syntax.
Official documentation: https://marpit.marp.app/image-syntax
Basic Image Insertion
Regular Images

Images are displayed as content.
Size Specification
Marp allows adding size keywords to images:


Supported units:
px- Pixels%- Percentem,rem,cm,mm,in,pt,pc
Abbreviations:
w:=width:h:=height:
Background Images (bg keyword)
Basic Background Image
Places the image as a slide background. It doesn't overlap with text content and is positioned in the background.
Background Size Keywords



| Keyword | Behavior | CSS Equivalent |
|---|---|---|
fit | Preserve aspect ratio, fit within slide | background-size: contain |
cover | Preserve aspect ratio, cover entire slide | background-size: cover |
contain | Same as fit | background-size: contain |
auto | Original size | background-size: auto |
Background Size (Numeric Values)


Supports the same syntax as CSS background-size property.
Split Backgrounds
You can split the screen using multiple background images.
Basic Split

Two images are displayed split left and right.
Three or More Splits


Three or more images are divided equally.
Specifying Split Direction
Default is horizontal split, but vertical split is also possible:

Use vertical keyword to change to vertical split.
Left/Right Alignment
Places image on the left, reserving text space on the right.
Places image on the right, reserving text space on the left.
Size Ratio Specification
33% image on left, 67% text space on right.
60% image on right, 40% text space on left.
Filter Effects
Brightness Adjustment

Value range: 0 (completely black) ~ 1 (normal) ~ 2+ (brighter)
Contrast

Blur
Grayscale

Value range: 0 (color) ~ 1 (full grayscale)
Sepia

Hue Rotation
Invert

Opacity
Saturation
Multiple Filters
Practical Pattern Examples
Pattern 1: Text on Left, Image on Right
## Product Introduction

- Feature 1
- Feature 2
- Feature 3Pattern 2: Background Image + Overlay Text

# Catchphrase
SubtextWhite text placed on darkened background.
Pattern 3: Multiple Image Comparison

Place Before/After side by side.
Pattern 4: Vertical Comparison

Place images top and bottom.
Pattern 5: Sized Regular Image
## Diagram

The above diagram shows...Pattern 6: 3-Split Layout


Pattern 7: Background with Filter Effects

# Easy-to-Read Text
Subdued background with blur and darknessImportant Notes
1. Background Images and Text: ![bg] images are placed on the background layer and do not overlap with text 2. Multiple Background Order: They are placed from left to right (or top to bottom) in the order written 3. Filter Support: Not all filters work in all environments 4. Relative Paths: Image paths are specified relative to the Markdown file
Official Reference
For details, refer to official documentation:
- Image syntax: https://marpit.marp.app/image-syntax
Marp Basic Syntax Reference
Basic Marp syntax based on official documentation.
Front Matter (Directives)
Basic Structure
---
marp: true
theme: default
paginate: true
---Main Global Directives
| Directive | Description | Example Values |
|---|---|---|
marp | Enable Marp functionality | true |
theme | Specify theme | default, gaia, uncover |
size | Slide size (Marp Core extension) | 16:9, 4:3, A4 |
paginate | Show page numbers | true, false |
header | Header for all slides | Any text |
footer | Footer for all slides | Any text |
backgroundColor | Background color | #fff, white |
backgroundImage | Background image | url('image.png') |
color | Text color | #000, black |
class | Apply CSS class | lead, invert |
Size Directive (Marp Core)
---
size: 16:9
---Available sizes:
16:9(1280x720, default)4:3(960x720)A4(210mm x 297mm)
Page-Specific Directives
To change settings per slide, use <!-- directive_name: value --> format:
<!-- _class: lead -->
<!-- _backgroundColor: black -->
<!-- _color: white -->
# Apply only to this slideMeaning of underscore `_`:
- Without
_: Apply to all following slides - With
_: Apply to current slide only
Slide Breaks
---
# First Slide
---
# Next Slide
------ (horizontal rule) switches to a new slide.
Headers and Footers
Global Settings
---
header: 'Lecture Name'
footer: 'October 2024'
---Per-Slide Settings
<!-- header: 'Section 1' -->
<!-- footer: 'Page number display' -->Disable
<!-- header: '' -->
<!-- footer: '' -->Pagination (Page Numbers)
---
paginate: true
---Display position and style vary by theme.
Hide on specific slide:
<!-- paginate: false -->Or:
<!-- _paginate: false -->Inline Styles
Style Specification in Markdown
---
marp: true
---
<style>
section {
background-color: #f0f0f0;
}
h1 {
color: #333;
}
</style>
# SlideScoped Style
Apply style to specific slide only:
<style scoped>
h1 {
color: red;
}
</style>
# Red heading on this slide onlyMath Formulas (Marp Core Extension)
Supports Pandoc-style math formulas:
Inline Math
$E = mc^2$Block Math
$$
\frac{-b \pm \sqrt{b^2 - 4ac}}{2a}
$$Emoji (Marp Core Extension)
:smile: :+1: :sparkles:Supports GitHub Emoji notation.
Comments
HTML comments are not rendered:
<!-- This is a comment -->Directives are also written in comment format:
<!-- _class: lead -->Official Reference Links
For details, refer to official documentation:
- Directives List: https://marpit.marp.app/directives
- Marp Core Features: https://github.com/marp-team/marp-core
- Theme CSS Specification: https://marpit.marp.app/theme-css
- Official Site: https://marp.app/
Common Configuration Examples
Basic Setup
---
marp: true
theme: default
size: 16:9
paginate: true
---Title Slide
---
marp: true
theme: default
---
<!-- _class: lead -->
<!-- _paginate: false -->
# Presentation Title
Presenter NameSection Breaks
<!-- _class: lead -->
# Chapter 2
New Section
---
## Regular SlideCustom Background Color
<!-- _backgroundColor: #e3f2fd -->
# Slide with Light Blue BackgroundMarp Official Themes Reference
Explanation of the 3 official themes included in Marp Core.
Official implementation: https://github.com/marp-team/marp-core/tree/main/themes
Official Theme List
1. default - Simple and versatile theme 2. gaia - Modern and colorful theme 3. uncover - Minimal and elegant theme
Default Theme
Features
- Colors: White background, black text, blue accent
- Font: Simple sans-serif
- Use for: General presentations
- Style: Clean, readable
Usage
---
marp: true
theme: default
---
# Title
ContentAvailable Classes
lead (Title Slide)
<!-- _class: lead -->
# Presentation
Subtitle or descriptionCentered, large text.
invert (Inverted Colors)
<!-- _class: invert -->
# Black Background · White TextBackground becomes black, text becomes white.
Combined
<!-- _class: lead invert -->
# Inverted Title SlideMultiple classes can be applied simultaneously.
Customization Example
---
theme: default
---
<style>
section {
background-color: #f5f5f5;
}
h1 {
color: #1e40af;
}
</style>Gaia Theme
Features
- Colors: Colorful, vibrant accent colors
- Font: Modern sans-serif
- Use for: Creative presentations, design showcases
- Style: Energetic, visually appealing
Usage
---
marp: true
theme: gaia
---
# TitleColor Variations
The Gaia theme has multiple color schemes:
<!-- _class: lead -->
# Default Colors
---
<!-- _class: lead invert -->
# Inverted Colors
---
<!-- _class: lead gaia -->
# Gaia ColorsDistinctive Styles
- Gradient backgrounds: Used in title slides
- Colorful accents: Headings and links
- Large typography: Impactful headings
Customization Example
---
theme: gaia
---
<style>
section {
--color-background: #fff;
--color-foreground: #333;
--color-highlight: #e91e63;
}
</style>Uncover Theme
Features
- Colors: Minimal, white or black base
- Font: Elegant serif font
- Use for: Formal presentations, academic talks
- Style: Refined, simple, elegant
Usage
---
marp: true
theme: uncover
---
# TitleAvailable Classes
lead (Title Slide)
<!-- _class: lead -->
# PresentationCentered, large serif font.
invert (Inverted Colors)
<!-- _class: invert -->
# Black Background SlideBlack background, white text.
Distinctive Styles
- Serif font: Used for headings
- Wide margins: Minimal layout
- Center alignment: Content tends to be centered
Customization Example
---
theme: uncover
---
<style>
section {
font-family: 'Georgia', serif;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
}
</style>Theme Comparison Table
| Feature | default | gaia | uncover |
|---|---|---|---|
| Background | White | Colorful | White/Black |
| Font | Sans-serif | Sans-serif | Serif |
| Colors | Simple | Vibrant | Minimal |
| Use Case | General | Creative | Formal |
| Style | Clean | Energetic | Elegant |
Common Class Specifications
Available in all official themes:
lead
<!-- _class: lead -->- For title slides
- Centered
- Large text
- Hides footer/page numbers
invert
<!-- _class: invert -->- Inverts colors
- Swaps background and text colors
- Dark mode style
Theme Selection Guidelines
When to Choose default
- General presentations
- Business use
- Need simple, readable design
- As a base for customization
When to Choose gaia
- Creative presentations
- Design-related talks
- Youth-oriented audiences
- Need visual impact
When to Choose uncover
- Formal presentations
- Academic talks
- Minimal design preference
- Want elegant impression
Combining with Custom Themes
Extending Official Themes
/* @theme my-custom-default */
@import-theme 'default';
section {
background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
}
h1 {
color: #1e3a8a;
}Switching Between Multiple Themes
---
marp: true
theme: default
---
# Section 1 (default theme)
---
<!-- theme: gaia -->
# Section 2 (gaia theme)
---
<!-- theme: uncover -->
# Section 3 (uncover theme)Note: Theme switching within the same file has limited support.
Practical Examples
Using default Theme
---
marp: true
theme: default
paginate: true
---
<!-- _class: lead -->
# Project Report
October 2024
---
## Agenda
1. Progress Status
2. Challenges and Solutions
3. Future Plans
---
## Progress Status
- Task A: Completed
- Task B: In Progress
- Task C: On ScheduleUsing gaia Theme
---
marp: true
theme: gaia
---
<!-- _class: lead -->
# New Product Launch
Innovative Design
---
## Concept
**Three Pillars**
1. 🎨 Beauty
2. 🚀 Speed
3. 💡 UsabilityUsing uncover Theme
---
marp: true
theme: uncover
---
<!-- _class: lead -->
# Research Presentation
Deep Learning Applications
---
## Research Background
Recent technological advances...
---
<!-- _class: invert -->
## Experimental Results
Accuracy: 95.3%Official References
- Official Theme Implementation: https://github.com/marp-team/marp-core/tree/main/themes
- Marp Core README: https://github.com/marp-team/marp-core
- Theme CSS Specification: https://marpit.marp.app/theme-css
Marp Theme CSS Creation Guide
How to create custom themes based on the official Marpit theme CSS specification.
Official documentation: https://marpit.marp.app/theme-css
Basic Theme Structure
@theme Metadata (Required)
Theme CSS requires @theme metadata:
/* @theme theme-name */Without this metadata, it won't be recognized as a theme.
Basic Theme CSS Example
/* @theme my-theme */
section {
background-color: #fff;
color: #333;
font-size: 24px;
padding: 60px;
}
h1 {
color: #1e40af;
font-size: 48px;
}
h2 {
color: #3b82f6;
font-size: 36px;
}HTML Structure
HTML structure generated by Marp:
<section>
<h1>Slide Title</h1>
<p>Content</p>
</section>Each slide is generated as a <section> element.
Slide Size
Default Size
section {
width: 1280px;
height: 720px;
}16:9 ratio (1280x720) is the default.
Custom Size Definition
/* @theme my-theme */
/* @size 4:3 960px 720px */
section {
width: 960px;
height: 720px;
}Custom sizes can be defined with @size metadata.
Pagination
Styling page numbers:
section::after {
content: attr(data-marpit-pagination) ' / ' attr(data-marpit-pagination-total);
position: absolute;
right: 30px;
bottom: 20px;
font-size: 16px;
color: #666;
}Available attributes:
data-marpit-pagination- Current page numberdata-marpit-pagination-total- Total page count
Headers and Footers
Header
header {
position: absolute;
top: 30px;
left: 60px;
right: 60px;
font-size: 18px;
color: #666;
}Footer
footer {
position: absolute;
bottom: 30px;
left: 60px;
right: 60px;
font-size: 18px;
color: #666;
}Theme Extension and Inheritance
Loading with @import
/* @theme my-extended-theme */
@import 'default';
section {
background-color: #f0f0f0;
}You can extend existing themes.
Inheriting Named Themes with @import-theme
/* @theme my-theme */
@import-theme 'default';
h1 {
color: red;
}Using @import-theme allows loading by theme name.
Class-Based Variations
lead Class (Title Slide)
section.lead {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
text-align: center;
}
section.lead h1 {
font-size: 64px;
}invert Class (Inverted Colors)
section.invert {
background-color: #000;
color: #fff;
}
section.invert h1,
section.invert h2 {
color: #fff;
}Scoped Style (Slide-Specific Styles)
Use <style scoped> in Markdown:
<style scoped>
section {
background-color: #e3f2fd;
}
</style>
# Only this slide has blue backgroundBackground Image Styling
Background images are processed automatically but can be adjusted with CSS:
section[data-marpit-background-image] {
background-size: cover;
background-position: center;
}Math Formula Styling (Marp Core)
.katex {
font-size: 1.2em;
}
.katex-display {
margin: 1em 0;
}List Styling
ul, ol {
margin: 0.5em 0;
padding-left: 1.5em;
}
li {
margin: 0.3em 0;
}
li::marker {
color: #3b82f6;
}Table Styling
table {
border-collapse: collapse;
width: 100%;
margin: 1em 0;
}
th, td {
border: 1px solid #ddd;
padding: 0.5em 1em;
text-align: left;
}
th {
background-color: #f0f0f0;
font-weight: bold;
}Code Block Styling
pre {
background-color: #f5f5f5;
border-radius: 4px;
padding: 1em;
overflow-x: auto;
}
code {
font-family: 'Courier New', monospace;
font-size: 0.9em;
}
pre code {
background-color: transparent;
padding: 0;
}Responsive Design
@media screen and (max-width: 1280px) {
section {
font-size: 20px;
}
h1 {
font-size: 40px;
}
}Practical Theme Examples
Minimal Theme
/* @theme minimal */
section {
background-color: #ffffff;
color: #333333;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
font-size: 24px;
padding: 80px;
}
h1, h2, h3 {
font-weight: 300;
color: #000000;
}
h1 {
font-size: 60px;
margin-bottom: 0.5em;
}
h2 {
font-size: 40px;
margin-bottom: 0.5em;
}Dark Theme
/* @theme dark */
section {
background-color: #1a1a1a;
color: #e0e0e0;
font-size: 22px;
padding: 60px;
}
h1, h2, h3 {
color: #61dafb;
}
a {
color: #61dafb;
}
code {
background-color: #2d2d2d;
color: #61dafb;
}Embedding Styles in Markdown
---
marp: true
---
<style>
section {
background-color: #f8f8f4;
font-family: 'Noto Sans JP', sans-serif;
}
h1 {
color: #4f86c6;
}
</style>
# SlideThis method allows applying custom styles without using a theme.
Best Practices
1. Ensure Contrast: Maintain a contrast ratio of 4.5:1 or higher between background and text colors 2. Appropriate Font Sizes: Body text 22-24px, titles 40-60px 3. Sufficient Spacing: Recommended padding of 60px or more 4. Fallback Fonts: Specify system fonts for when web fonts fail to load 5. Print Support: Define print styles with @media print
Official References
For details, refer to official documentation:
- Theme CSS: https://marpit.marp.app/theme-css
- Marpit API: https://marpit-api.marp.app/
- Official Theme Implementation: https://github.com/marp-team/marp-core/tree/main/themes
Marp Theme Selection Guide
Select the optimal theme from all 7 types according to your use case.
Theme List and Use Cases
1. Default (theme-default.css / template-basic.md)
Features: Refined design, decorative lines, footer bar Colors: Beige background + navy text + blue headings Use for: General seminars, training, presentations Atmosphere: Calm, elegant, sophisticated
2. Simple & Minimal (theme-minimal.css / template-minimal.md)
Features: Minimal decoration, wide margins, light fonts Colors: White background + gray text + black headings Use for: Content-focused presentations, academic talks, quiet impression Atmosphere: Clean, simple, refined
3. Colorful & Pop (theme-colorful.css / template-colorful.md)
Features: Gradients, bright colors, bold emphasis Colors: Pink background + multi-color accents Use for: Youth-oriented, events, creative projects Atmosphere: Fun, energetic, vibrant
4. Dark Mode (theme-dark.css / template-dark.md)
Features: Dark background, glow effects, eye-friendly Colors: Black background + cyan/purple accents Use for: Tech presentations, evening talks, modern impression Atmosphere: Cool, modern, futuristic
5. Gradient Background (theme-gradient.css / template-gradient.md)
Features: Different gradient per slide, white text, shadow effects Colors: Purple~pink~blue~green gradients Use for: Visual-focused, creative presentations, impressive talks Atmosphere: Vivid, dynamic, impressive
6. Tech/Code (theme-tech.css / template-tech.md)
Features: GitHub-style design, code fonts, Markdown-style symbols Colors: Black background + blue/green accents Use for: Programming courses, tech meetups, developer-focused Atmosphere: Technical, developer-oriented, GitHub-style
7. Business-like (theme-business.css / template-business.md)
Features: Corporate presentation style, table support, top border Colors: White background + dark navy headings + blue accents Use for: Business presentations, proposals, reports Atmosphere: Formal, trustworthy, professional
Theme Selection Decision Flow
Step 1: Filter by Use Case
Technical/Developer-oriented → Tech/Code Business/Corporate → Business-like Creative/Event → Colorful & Pop or Gradient Background Academic/Simple → Simple & Minimal General/Unsure → Default
Step 2: Choose by Atmosphere
Bright and fun → Colorful & Pop, Gradient Background Calm and elegant → Default, Business-like Cool and modern → Dark Mode, Tech Simple and clean → Simple & Minimal
Step 3: Choose by Background Color
Bright background: Simple & Minimal, Default, Business-like, Colorful & Pop Dark background: Dark Mode, Tech Gradient: Gradient Background
Inferring from User Requests
"Make it look good" / "Make it cool"
→ Decide based on content:
- Business content: Business-like
- Technical content: Tech or Dark Mode
- General: Default
- Creative: Gradient Background
"Keep it simple" / "Make it readable"
→ Simple & Minimal or Default
"Make it flashy" / "Make it stand out"
→ Colorful & Pop or Gradient Background
"Technical" / "Programming"
→ Tech/Code
"Business" / "Corporate" / "Proposal"
→ Business-like
"Dark" / "Black background" / "Eye-friendly"
→ Dark Mode or Tech
When to Use Default Theme
Use the default theme in these cases:
- User hasn't specified a particular theme
- Use case is not clear
- Only vague instructions like "make it look good"
- Training/seminar purposes
Suggesting Multiple Themes
Suggest 2-3 themes concisely in these cases:
- User asks "Which one is best?"
- Content allows for multiple options
- First-time user seems uncertain
Example suggestion: "I recommend the following themes for this presentation: 1. Business-like: Formal impression 2. Default: Well-balanced all-purpose Which would you prefer?"
Related skills
Forks & variants (1)
Marp Slide has 1 known copy in the catalog totaling 13 installs. They canonicalize to this original listing.
- cachemoney - 13 installs
FAQ
How do I choose the right theme for my content?
Use the quick selection rules: tech/developer content → tech theme; business/corporate → business theme; creative/event → colorful or gradient; academic/simple → minimal; general → default. Consult theme-selection.md for detailed guidance.
Can I add images to my slides?
Yes. Use Marpit image syntax like `` for side images, `` for centered, or `` for full backgrounds. See image-patterns.md for complete patterns.
Do I need external CSS files for the themes?
No. All 7 theme templates have CSS embedded, so they work standalone without external dependencies. Save as .md and use directly.
Is Marp Slide safe to install?
skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.