Complete guide to understanding and customizing the Edera V2 MARP theme.
- Overview
- Licensing
- Color Scheme
- Typography
- Layout System
- Customizing the Theme
- Creating New Themes
- Best Practices
The Edera V2 theme is a professional presentation theme featuring:
- Dark teal and light mint color palette
- Clean, minimal design aesthetic
- High contrast for excellent readability
- Multiple layout options
- Responsive typography
- Accessible color combinations
Theme File: themes/edera-v2.css
License: MIT License Copyright: Copyright (c) 2025 Lewis Denham-Parry
The Edera V2 theme is original work created for this project:
- Original design: Google Slides template by Lewis Denham-Parry
- MARP CSS implementation: Ported from SVG exports for this repository
- License: MIT (same as parent project)
You are free to:
- Use the theme in your own presentations
- Modify and customize the theme
- Distribute the theme with your projects
- Use commercially
See LICENSE file for complete terms.
--edera-dark-teal: #013a3b /* Main brand color */
--edera-light-mint: #d0fdf2 /* Secondary background */
--edera-cyan-accent: #02f4d5 /* Accent and highlights */
--edera-white: #ffffff /* Clean backgrounds */
--edera-black: #000000 /* Text on light */| Color | Used For |
|---|---|
| Dark Teal | Title slide background, body text, dark slides |
| Light Mint | Content slide background, light text |
| Cyan Accent | Headings, links, emphasis, bullets |
| White | Alternate backgrounds |
| Black | High contrast text |
✅ Fully Accessible: All color combinations meet WCAG 2.1 Level AA standards as of 2025-12-03.
Audit Date: 2025-12-03 Status: ✅ FULL COMPLIANCE - All combinations pass WCAG AA Standard: WCAG 2.1 Testing Tools: wcag-contrast v3.0.0, Playwright MCP, Chrome DevTools
All color combinations have been empirically verified with automated contrast checking tools:
| Combination | Ratio | WCAG AA | WCAG AAA | Status |
|---|---|---|---|---|
| Dark teal on light mint | 11.39:1 | ✅ Pass | ✅ Pass | Excellent |
| Cyan on dark teal | 8.93:1 | ✅ Pass | ✅ Pass | Excellent |
| Light mint on dark teal | 11.39:1 | ✅ Pass | ✅ Pass | Excellent |
| White on dark teal | 12.58:1 | ✅ Pass | ✅ Pass | Excellent |
| Dark teal on white | 12.58:1 | ✅ Pass | ✅ Pass | Excellent |
Date Fixed: 2025-12-03
What Changed: The default H1 color has been changed from cyan to dark teal to ensure accessibility by default.
/* Default H1 styling - Now accessible (11.39:1 contrast) */
h1 {
color: var(--color-text-dark); /* Dark teal #013a3b */
}Cyan color is now explicitly used only on dark backgrounds where it's accessible:
/* Title slides - Dark background */
section.title h1 {
color: var(--color-primary); /* Cyan on dark teal: 8.93:1 ✅ */
}
/* Dark variant slides - Dark background */
section.dark h1 {
color: var(--color-primary); /* Cyan on dark teal: 8.93:1 ✅ */
}Result: All slides are now accessible by default without requiring special classes.
See full audit: docs/accessibility-audit.md
Font Size Recommendations:
- ✅ 24px base text: Current theme complies with presentation standards
⚠️ 18px small text: Use sparingly, only for non-critical content (footers, captions)- 💡 Large rooms: Consider using
.text-largeclass (28px) for very large venues - ✅ Always test: Display slides on target hardware before presenting
Content Best Practices:
- Limit text per slide: 5-7 bullet points maximum for readability
- Use high-contrast combinations: Prefer dark on light or light on dark
- Avoid small text: Don't use text < 18px for important content
- Test before presenting: View slides on actual projector/display
- Provide alternatives: Offer PDFs with proper accessibility tagging
UseNo longer required - All slides are accessible by default (fixed 2025-12-03).contentclass:
Accessibility Checklist for Presenters:
- All text uses high-contrast color combinations (4.5:1 minimum)
- Large text (≥18pt) has 3:1 contrast minimum
-
Content slides useNo longer required - fixed by default.contentclass - No reliance on color alone to convey information
- Font sizes appropriate for room size and viewing distance
- Slides tested on actual presentation hardware
- Alternative formats provided (accessible PDFs)
Common Mistakes to Avoid:
❌ Forgetting No longer an issue - fixed by default
❌ Using 18px text for critical information
❌ .content class on content slidesMixing cyan and light mint without proper contrast Fixed - theme now uses dark teal by default
❌ Not testing on actual projector before presentation
✅ Always use No longer necessary - accessible by default
✅ Keep body text at 24px or larger
✅ Test contrast ratios when customizing colors
✅ View slides on presentation hardware.content class for content slides
Default sans-serif stack:
font-family: 'Arial', 'Helvetica', sans-serif;Recommendation: Keep the default for maximum compatibility, or replace with web-safe fonts.
| Element | Size | Usage |
|---|---|---|
| Title | 4rem (64px) | Title slides only |
| H1 | 3.5rem (56px) | Main slide headings |
| H2 | 2.5rem (40px) | Section headings |
| H3 | 1.75rem (28px) | Sub-headings |
| Body | 1.5rem (24px) | Standard text |
| Small | 1.125rem (18px) | Captions, labels |
- Headings: 600-700 (Semi-bold to Bold)
- Body: 400 (Regular)
- Emphasis: 700 (Bold)
The Edera V2 theme uses MARP's native responsive sizing system:
- Viewport-responsive: Slides automatically scale to fill the browser viewport
- Aspect ratio: Maintains 16:9 aspect ratio (1280x720 default)
- Fullscreen support: Works seamlessly with MARP's fullscreen mode
- Print support: Maintains proper dimensions when exporting to PDF
The theme is designed for 16:9 slides with these reference dimensions:
- Reference Width: 960px (design canvas)
- Reference Height: 540px (design canvas)
- Actual Display: Scales responsively to viewport size
- Margins: 60px vertical, 84px horizontal
When building presentations, content will scale proportionally to fit any screen size.
Purpose: Opening and closing slides
<!-- _class: title -->
# Main Title
## SubtitleStyling:
- Dark teal background
- Centered content (vertical & horizontal)
- Large typography
- Minimal padding
Best for:
- Conference talk titles
- Section breaks
- Thank you slides
Purpose: Standard presentation content
<!-- _class: content -->
# Slide Title
Content hereStyling:
- Light mint background
- Left-aligned content
- Standard margins
- Dark teal text
Best for:
- Bullet points
- Paragraphs
- Mixed content
Purpose: High-impact slides
<!-- _class: dark -->
# Dark SlideStyling:
- Dark teal background
- Light mint text
- Cyan accents
- High contrast
Best for:
- Emphasis
- Visual variety
- Code-heavy slides
Purpose: Side-by-side content
<!-- _class: two-columns -->
# Title Spans Both Columns
## Left ## Right
Content ContentStyling:
- CSS Grid layout
- Equal width columns
- Gap between columns
- Responsive alignment
Best for:
- Comparisons
- Before/After
- Code + Explanation
Purpose: Visual impact
<!-- _class: image -->
Styling:
- No padding
- Full-screen coverage
- Centered image
- Object-fit: cover
Best for:
- Diagrams
- Screenshots
- Hero images
Purpose: Text over background image
<!-- _class: image-overlay -->

# TitleStyling:
- Background image
- Dark overlay (70% opacity)
- White/cyan text
- Centered content
Best for:
- Conference branding
- Visual storytelling
- Section breaks
Easiest way to customize colors. Edit themes/edera-v2.css:
:root {
/* Change brand colors */
--edera-dark-teal: #your-color;
--edera-light-mint: #your-color;
--edera-cyan-accent: #your-color;
}Add custom styles in your markdown:
---
marp: true
theme: edera-v2
---
<style>
section {
font-family: 'Georgia', serif;
}
h1 {
color: #ff0000;
}
</style>Add to themes/edera-v2.css:
section.custom {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
}Use in slides:
<!-- _class: custom -->
# Custom Styled Slidecp themes/edera-v2.css themes/my-theme.cssEdit the first line:
/*
* @theme my-theme
* @author Your Name
*/Update CSS variables:
:root {
--primary-color: #your-color;
--background-color: #your-bg;
--text-color: #your-text;
/* ... */
}:root {
--font-family: 'Your Font', sans-serif;
--font-size-base: 1.5rem;
/* ... */
}Customize section classes:
section.title {
background: your-custom-styles;
}---
marp: true
theme: my-theme
---- Maintain contrast - Test with contrast checkers
- Limit palette - 3-4 colors maximum
- Brand consistency - Match company colors
- Test projectors - Colors look different on screens
- Avoid pure colors - Slightly muted looks better
- Readable sizes - Minimum 24px for body text
- Line height - 1.5-1.6 for paragraphs
- Font pairing - Use max 2 font families
- Hierarchy - Clear size differences
- Weight variation - Use for emphasis
- White space - Don't fill every pixel
- Alignment - Be consistent
- Grid system - Use structured layouts
- Responsive - Test at different sizes
- Simple - Clarity over complexity
- One idea per slide - Keep focused
- Visual hierarchy - Guide the eye
- Consistency - Use same layouts
- Breathing room - Generous margins
- Balance - Distribute content evenly
Use web fonts (requires internet):
@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap');
section {
font-family: 'Roboto', sans-serif;
}Or use local fonts:
@font-face {
font-family: 'CustomFont';
src: url('./fonts/custom-font.woff2') format('woff2');
}
section {
font-family: 'CustomFont', sans-serif;
}Add subtle animations:
section {
animation: fadeIn 0.5s ease-in;
}
@keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}Add texture:
section {
background-image:
linear-gradient(rgba(255,255,255,0.9), rgba(255,255,255,0.9)),
url('pattern.svg');
}The Edera V2 theme includes a logo in the top right corner of slides (added in v2.1.0).
Logo Asset: themes/assets/edera-logo.png
Implementation:
The logo is implemented using CSS ::before pseudo-element:
section::before {
content: '';
position: absolute;
top: var(--spacing-sm); /* 1rem = ~16px */
right: var(--margin-horizontal); /* 84px */
width: 110px;
height: auto;
background: url('./assets/edera-logo.png') no-repeat center;
background-size: contain;
z-index: 10;
}
section.title::before {
display: none; /* Hidden on title slides */
}
section.dark::before {
opacity: 1; /* Full visibility on dark slides */
}Customization:
To show logo on title slides:
/* Remove or comment out this rule in themes/edera-v2.css */
/* section.title::before { display: none; } */To adjust logo size:
section::before {
width: 130px; /* Increase from default 110px */
}To change logo position:
section::before {
top: 30px; /* Move down from default */
right: 50px; /* Move left from default */
}To use a different logo:
- Replace
themes/assets/edera-logo.pngwith your logo - Adjust
widthin CSS if needed - Rebuild:
npm run build
To completely remove the logo:
section::before {
display: none;
}- Test on target display (projector, screen)
- Check color space (sRGB recommended)
- Adjust brightness/contrast
- Provide both light and dark slides
- Increase font size
- Improve contrast
- Add text shadows
- Use solid backgrounds
- Check content length
- Verify CSS specificity
- Test with different content
- Use responsive units (rem, em)
- Simplify complex layouts
- Remove animations
- Use standard fonts
- Check marp.config.js settings
:root {
--primary: #003366; /* Corporate blue */
--secondary: #ffffff; /* White */
--accent: #ff6600; /* Brand orange */
}:root {
--primary: #000000; /* Black */
--secondary: #ffffff; /* White */
--accent: #666666; /* Gray */
}
section {
font-family: 'Helvetica Neue', sans-serif;
font-weight: 300;
}:root {
--primary: #2c3e50; /* Navy */
--secondary: #ecf0f1; /* Light gray */
--accent: #e74c3c; /* Red */
}
section {
font-family: 'Georgia', serif;
}For theme-related issues:
- Check this guide
- Review
docs/theme-analysis.md - Inspect
themes/edera-v2.css - Test with example templates
- Open GitHub issue
Guide Version: 1.0 Theme Version: 2.0.0 Last Updated: December 3, 2025