---
name: slide-layout
description: Layout slides and presentations with professional design principles. Use when creating, formatting, or fixing slide decks (Google Slides, PowerPoint). Handles grid systems, text-image balance, typography hierarchy, and positioning. Triggers on requests to layout slides, fix deck formatting, position elements, or create clean presentations.
---

# Slide Layout Skill

Professional layout system for presentation slides. Apply these rules when formatting decks.

## Quick Reference: Core Measurements

### 16:9 Slides (1920x1080px / 9,144,000 EMU)

| Element | Size | Position |
|---------|------|----------|
| Page width | 9,144,000 EMU | - |
| Page height | 5,143,500 EMU | - |
| Standard margin | 457,200 EMU (0.5") | All sides |
| Left text position | 457,200 EMU | x coordinate |
| Right image edge | 9,144,000 EMU | Flush right |
| Text zone width | 4,114,800 EMU (~45%) | Left half |
| Image zone start | 4,572,000 EMU (50%) | Right half |

### Typography

| Element | Size (pt) | Size (EMU) |
|---------|-----------|------------|
| Main title | 44pt | 558,800 |
| Section header | 32pt | 406,400 |
| Body text | 18-24pt | 228,600-304,800 |
| Caption | 14-16pt | 177,800-203,200 |

### Conversion: 1 pt = 12,700 EMU | 1 cm = 360,000 EMU | 1 inch = 914,400 EMU

## Layout Patterns

### Two-Column (Text Left, Image Right)
```
┌─────────────────────────────────────────┐
│  TITLE (44pt, x=margin)                 │
├────────────────────┬────────────────────┤
│                    │                    │
│  Body text         │     IMAGE          │
│  (18-24pt)         │   (flush right)    │
│  Left 45%          │     Right 50%      │
│                    │                    │
└────────────────────┴────────────────────┘
```

**Positions:**
- Title: x=457,200 EMU, y=285,750 EMU
- Body: x=457,200 EMU, width=4,114,800 EMU
- Image: x = page_width - image_width (flush right)

### Title Slide
```
┌─────────────────────────────────────────┐
│                                         │
│           TITLE (54pt, centered)        │
│                                         │
│         Subtitle (28pt, centered)       │
│                                         │
│                                         │
│         Author / Date (18pt)            │
└─────────────────────────────────────────┘
```

### Content Slide (Single Column)
```
┌─────────────────────────────────────────┐
│  TITLE (44pt)                           │
├─────────────────────────────────────────┤
│                                         │
│  • Bullet point 1 (24pt)                │
│  • Bullet point 2                       │
│  • Bullet point 3                       │
│                                         │
│  Max 5-6 bullets, 6-8 words each        │
└─────────────────────────────────────────┘
```

## Rules (Non-Negotiable)

### Text Rules
1. **Position**: All text starts at x=457,200 EMU (0.5" margin)
2. **Width**: Text boxes max 45% of slide width to avoid image zone
3. **Font**: Use consistent font family (IBM Plex Mono, Arial, etc.)
4. **Hierarchy**: Title > Section header > Body > Caption (use size ratios)
5. **Alignment**: Left-align body text, center titles only on title slides
6. **Max content**: 40-60 words per content slide, 5-6 bullets max

### Image Rules
1. **Position**: Images flush RIGHT (x = page_width - image_width)
2. **Size**: Max 50% of slide width, maintain aspect ratio
3. **Clearance**: Minimum 40px (508,000 EMU) gap from text
4. **No overlaps**: Images must not cover text elements

### Spacing Rules
1. **After title**: 40-60px gap before body content
2. **Between bullets**: 8-12px
3. **Between sections**: 30-40px
4. **Line height**: 1.4-1.6x font size for body text

## Google Slides API Implementation

### Position a text element at left margin:
```python
'updatePageElementTransform': {
    'objectId': element_id,
    'applyMode': 'ABSOLUTE',
    'transform': {
        'scaleX': 1, 'scaleY': 1,
        'translateX': 457200,  # 0.5 inch margin
        'translateY': current_y,
        'unit': 'EMU'
    }
}
```

### Position an image flush right:
```python
page_width = 9144000  # EMU
image_width = element['size']['width']['magnitude']
new_x = page_width - image_width

'updatePageElementTransform': {
    'objectId': element_id,
    'applyMode': 'ABSOLUTE',
    'transform': {
        'scaleX': 1, 'scaleY': 1,
        'translateX': new_x,  # flush right
        'translateY': current_y,
        'unit': 'EMU'
    }
}
```

### Set text width to stay in left zone:
```python
max_text_width = 4114800  # 45% of slide width

'updatePageElementTransform': {
    'objectId': element_id,
    'transform': {
        'scaleX': max_text_width / original_width,
        # ... other transform properties
    }
}
```

## Validation Checklist

Before delivering any slide formatting work:

- [ ] All text at x=457,200 EMU (or specified margin)?
- [ ] Text width ≤45% of slide (no overflow into image zone)?
- [ ] Images flush right (right edge at page width)?
- [ ] No overlapping elements?
- [ ] Typography hierarchy correct (title > body)?
- [ ] Font sizes match spec (44pt title, 18-24pt body)?
- [ ] Adequate spacing between elements?

## Common Mistakes to Avoid

1. **Text overlapping images**: Always limit text width to left zone
2. **Images not flush right**: Calculate x = page_width - image_width
3. **Inconsistent margins**: Use same margin value for all elements
4. **Wrong units**: Always use EMU for Google Slides API
5. **Forgetting aspect ratio**: Scale images proportionally

## References

For detailed measurements and research: See `references/measurements.md`
