home / skills / yonatangross / orchestkit / thumbnail-first-frame

thumbnail-first-frame skill

/plugins/ork/skills/thumbnail-first-frame

This skill optimizes video thumbnails and first frames to boost CTR by applying proven design formulas, text rules, and platform guidelines.

npx playbooks add skill yonatangross/orchestkit --skill thumbnail-first-frame

Review the files below or copy the command above to add this skill to your agents.

Files (4)
SKILL.md
7.3 KB
---
name: thumbnail-first-frame
description: Thumbnail and first-frame optimization for click-through rates - visual hierarchy, text rules, color psychology, and platform requirements
tags: [video, thumbnail, first-frame, ctr, design, marketing]
user-invocable: false
version: 1.0.0
---

# Thumbnail and First-Frame Optimization

Maximize click-through rates with proven thumbnail design formulas, text rules, and platform-specific optimization.

## Core Principle: The 3-Second Test

Thumbnails must communicate value in under 3 seconds. Users scroll at 300+ items/hour.

```
ATTENTION FUNNEL
================

  Scroll Speed: ~300 items/hour
           |
           v
  +------------------+
  |   THUMBNAIL      |  <-- 0.5s: Pattern interrupt (face/color)
  |   VISIBLE        |
  +------------------+
           |
           v
  +------------------+
  |   TEXT READ      |  <-- 1.0s: Value proposition (3-4 words)
  +------------------+
           |
           v
  +------------------+
  |   CLICK          |  <-- 2.0s: Curiosity/benefit decision
  |   DECISION       |
  +------------------+
```

## Thumbnail Composition Formulas

### Formula 1: Face + Text + Context

The most effective formula for tutorial/educational content.

```
+------------------------------------------+
|                                          |
|  +--------+                              |
|  |        |     "3 TRICKS               |
|  |  FACE  |      YOU MISSED"            |
|  | (40%)  |                              |
|  +--------+          +-------+           |
|                      | ICON  |           |
|                      +-------+           |
|                                          |
+------------------------------------------+
     LEFT THIRD          RIGHT TWO-THIRDS
```

### Formula 2: Before/After Split

Effective for transformation content, tutorials, comparisons.

```
+-------------------+-------------------+
|                   |                   |
|     BEFORE        |      AFTER        |
|  - Muted colors   |  - Vibrant colors |
|  - Problem state  |  - Solution state |
|                   |                   |
+-------------------+-------------------+
```

### Formula 3: Number + Benefit

High-performing for listicles and how-to content.

```
+------------------------------------------+
|     +-----+                              |
|     | 7   |   "MISTAKES"                 |
|     +-----+   "KILLING YOUR CODE"        |
|    (large                                |
|     number)    [relevant icon/visual]    |
+------------------------------------------+
```

## Text Rules for Thumbnails

### The 3-4 Word Maximum

```
GOOD                          BAD
====                          ===
"FIX THIS NOW"                "Here's How To Fix This Common
"STOP DOING THIS"              Problem That Many Developers
"10X FASTER"                   Face When Building Apps"
```

### High-Contrast Text Techniques

```
TECHNIQUE 1: Stroke/Outline
+---------------------------+
|  █ WHITE TEXT      █      |
|  █ BLACK OUTLINE   █      |
+---------------------------+

TECHNIQUE 2: Background Bar
+---------------------------+
|  | DARK BAR        |      |
|  | Light text here |      |
+---------------------------+
```

## Color Psychology for CTR

### Color Performance Ranking

```
HIGHEST CTR                  LOWEST CTR
===========                  ==========
1. YELLOW (attention)        1. Gray
2. RED (urgency)             2. Brown
3. ORANGE (energy)           3. Muted pastels
4. BLUE (trust)              4. Low-contrast combos
5. GREEN (positive)
```

### Color Combinations That Convert

| Combination | Background | Text | Accents |
|-------------|------------|------|---------|
| YouTube Red | RED | WHITE | BLACK |
| Warning | YELLOW | BLACK | RED |
| Trust | DARK BLUE | WHITE | ORANGE |
| Modern Tech | BLACK | WHITE | CYAN/GREEN |

## First Frame vs Thumbnail

```
THUMBNAIL (custom image)     FIRST FRAME (video start)
========================     ========================
- Optimized for browse       - Optimized for autoplay
- Can differ from video      - Must relate to content
- Focus on CTR               - Focus on retention
- No motion                  - May have subtle motion
```

### First Frame Checklist

```
[ ] Clear subject visible
[ ] No awkward mid-action freeze
[ ] Text readable if present
[ ] Brand elements visible
[ ] Matches thumbnail promise
[ ] Works at small preview size
```

## CRITICAL: First Frame Animation Gotchas

### Spring Animation - Never Start at Zero

**PROBLEM**: Raw `spring()` starts at 0, making frame 0 invisible.

```typescript
// ❌ BAD - First frame is invisible (scale=0)
const scale = spring({ frame, fps, config: { damping: 15, stiffness: 150 } });

// ✅ GOOD - Always visible (0.9 → 1.0)
const scale = 0.9 + 0.1 * spring({ frame, fps, config: { damping: 15, stiffness: 150 } });

// ✅ GOOD - Explicit minimum scale
const scale = Math.max(0.85, spring({ frame, fps }));
```

### Opacity at Frame 0

```typescript
// ❌ BAD - Content invisible at frame 0
const opacity = interpolate(frame, [0, 15], [0, 1]);

// ✅ GOOD - First line visible immediately
const opacity = line.frame === 0
  ? 1
  : interpolate(frame - line.frame, [0, 8], [0, 1]);
```

### Frame 0 Visibility Checklist

```
[ ] No spring animations starting at raw 0
[ ] No opacity starting at 0 for initial content
[ ] Background/container visible immediately
[ ] Key message readable at frame 0
[ ] Test with: npx remotion still CompositionName out.png --frame=0
```

## Platform Quick Reference

### YouTube
- Resolution: 1920 x 1080 pixels
- Aspect ratio: 16:9
- File size: < 2MB
- Safe zone: Center 70%

### TikTok / Reels
- Aspect ratio: 9:16
- Resolution: 1080 x 1920 pixels
- Safe zone: Center 80%

### LinkedIn / Twitter
- LinkedIn: 1200 x 627 (1.91:1)
- Twitter: 1280 x 720 (16:9)

## Programmatic Generation (Remotion)

```typescript
import { AbsoluteFill, Img } from 'remotion';

export const ThumbnailTemplate: React.FC<{
  title: string;
  subtitle?: string;
  backgroundImage: string;
  accentColor: string;
}> = ({ title, subtitle, backgroundImage, accentColor }) => {
  return (
    <AbsoluteFill>
      <Img src={backgroundImage} style={backgroundStyle} />
      <div style={gradientOverlay} />
      <div style={textContainer}>
        <h1 style={{ ...titleStyle, color: accentColor }}>
          {title}
        </h1>
        {subtitle && <h2 style={subtitleStyle}>{subtitle}</h2>}
      </div>
    </AbsoluteFill>
  );
};
```

## Quick Reference Checklist

```
PRE-PUBLISH THUMBNAIL CHECKLIST
===============================

COMPOSITION
[ ] Subject clearly visible
[ ] Text readable at 50% size
[ ] Safe zones respected
[ ] Visual hierarchy clear

TEXT
[ ] 3-4 words maximum
[ ] High contrast achieved
[ ] Stroke/shadow applied

COLOR
[ ] High contrast palette
[ ] Attention color present
[ ] Mobile visibility tested

PLATFORM
[ ] Correct dimensions
[ ] File size under limit
[ ] First frame coordinated
```

## Related Skills

- `remotion-composer`: Video rendering with Remotion
- `core-web-vitals`: Image optimization for web
- `image-optimization`: Compression and format selection

## References

- [Thumbnail Formulas](./references/thumbnail-formulas.md) - Complete composition formulas
- [Platform Requirements](./references/platform-requirements.md) - Detailed platform specs
- [First Frame Optimization](./references/first-frame-optimization.md) - Animation timing details

Overview

This skill helps creators optimize thumbnails and the first video frame to maximize click-through rates and early retention. It codifies proven composition formulas, text rules, color psychology, and platform requirements so visuals communicate value within the 3-second attention window. Use it to generate, validate, or programmatically render thumbnails and first frames that convert.

How this skill works

The skill inspects thumbnail composition (face, text, context, before/after, numbers), enforces a 3–4 word text rule, and evaluates high-contrast text techniques and color palettes for CTR. It checks first-frame visibility and animation gotchas (spring start, opacity at frame 0) and emits actionable fixes or Remotion-ready snippets. It also validates platform dimensions, safe zones, and file size constraints.

When to use it

  • When preparing thumbnails for YouTube, TikTok, Reels, LinkedIn, or Twitter
  • When programmatically generating thumbnails or first frames with Remotion or React
  • Before publishing to ensure safe zones, file size, and mobile readability
  • When testing first-frame autoplay behavior and early retention
  • When A/B testing thumbnail variants to improve CTR

Best practices

  • Pass the 3-second test: lead with a pattern interrupt, a 3–4 word value proposition, then a curiosity hook
  • Use proven composition formulas: Face+Text+Context for tutorials, Before/After for transformations, Number+Benefit for listicles
  • Keep text to 3–4 words and apply high-contrast techniques (stroke/outline or background bar)
  • Prefer attention colors (yellow, red, orange) with trust accents (blue/green); avoid low-contrast and muted pastels
  • Ensure frame 0 visibility: never start spring animations at raw 0 and avoid opacity=0 for initial content

Example use cases

  • Generate a thumbnail template for a 16:9 YouTube tutorial using Face+Text+Context composition
  • Validate the first frame for a short-form Reel to prevent invisible initial frames when autoplaying
  • Programmatically render numbered list thumbnails (Number+Benefit) with Remotion and ensure text remains readable at small sizes
  • Audit a thumbnail set for color psychology, contrast, and platform-specific safe zones
  • Fix animation code by ensuring spring and opacity values keep content visible at frame 0

FAQ

What is the 3-second test?

A rule that a thumbnail must communicate value within about 3 seconds: pattern interrupt at ~0.5s, readable value proposition by ~1s, and a click decision by ~2s.

How do I avoid invisible first frames in Remotion?

Never let spring() or opacity start at raw 0. Use a minimum scale (e.g., 0.85) or add an offset (0.9 + 0.1 * spring()) and make the first line visible immediately by conditionally setting opacity to 1 at frame 0.