design-blog-hero
Generate a blog post hero artifact — TWO pixel-exact HTML canvases in a single file: an Open Graph card (1200×630) for social meta tags AND an in-page hero…
Generate a YouTube channel banner — pixel-exact 2560×1440 full canvas + 1546×423 safe-zone preview canvas in a single HTML file. The full banner bleeds to the edges (TV display uses it all); the safe zone (1546×423 centered) is the cross-device area where critical content MUST
$ npx -y skills add slogsdon/skills-design --skill design-youtube-channel-art --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/design-youtube-channel-artContext preview
The summary Claude sees to decide when to auto-load this skill.
Generate a YouTube channel banner — pixel-exact 2560×1440 full canvas + 1546×423 safe-zone preview canvas in a single HTML file. The full banner bleeds to the edges (TV display uses it all); the safe zone (1546×423 centered) is the cross-device area where critical content MUST
name: design-youtube-channel-art description: Generate a YouTube channel banner — pixel-exact 2560×1440 full canvas + 1546×423 safe-zone preview canvas in a single HTML file. The full banner bleeds to the edges (TV display uses it all); the safe zone (1546×423 centered) is the cross-device area where critical content MUST sit. Reads ./design/<brand-slug>/DESIGN.md, tokens.css, and components.html. Triggers include "youtube banner", "youtube channel art", "channel banner", "/youtube-channel-art".
Produces a single self-contained HTML file containing **two pixel-exact canvases**:
1. **Full banner** (2560×1440) — the TV-display-ready full asset that uploads to YouTube 2. **Safe zone preview** (1546×423) — what mobile + desktop visitors actually see; ALL critical content must sit inside this zone
YouTube renders the same banner asset at vastly different aspect ratios across devices (TV uses the full 2560×1440; desktop crops to a wide letterbox; mobile crops to a tighter rectangle). The safe zone is the only region guaranteed visible everywhere. Brand mark + tagline live in the safe zone; the wider canvas extends with breathing room (or texture, or extension of brand surface) that TV viewers see.
`./design/<brand-slug>/artifacts/youtube-channel-art-YYYY-MM-DD-<slug>.html`
test -f ./design/<brand-slug>/tokens.css
Ask in one message:
1. Channel name / wordmark 2. Tagline — 1 line, max 10 words, sentence-case ending in period 3. Optional category strip — short topic labels separated by mid-dot 4. Optional secondary cue — upload schedule or call-to-action 5. Social handle (optional, footer position)
If the user gives 11+ words for the tagline, push back: "It needs to fit in the 1546×423 safe zone with breathing room. What's the line that lands?" Don't proceed until they agree.
The full banner and safe zone preview must show the same content treatment — they're the same asset rendered at different framings. Pick ONE:
The wider 2560×1440 canvas EXTENDS the safe zone composition with breathing room — typically empty cream space or a subtle column rule pattern. It does NOT add additional content beyond the safe zone. The reason: TV viewers see the empty bleed area; it should feel intentional (negative space), not like a missed opportunity.
Template:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title><Brand> — YouTube banner</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=<families>&display=swap">
<style>
/* Embed tokens.css verbatim */
<contents of tokens.css>
html, body { margin: 0; padding: 0; background: #2a2a2a; min-height: 100vh; font-family: var(--type-sans-family); }
body { display: flex; flex-direction: column; align-items: center; gap: 32px; padding: 32px 0; }
.canvas-label { font-family: var(--type-mono-family); font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(255,255,255,0.7); align-self: center; }
/* Full banner — 2560×1440 (the actual upload) */
.canvas-full {
width: 2560px; height: 1440px;
background: var(--color-surface);
color: var(--color-ink);
position: relative; overflow: hidden;
display: grid;
place-items: center;
/* Show a faint dashed outline of the safe zone for design verification — DO NOT bake into final */
}
.canvas-full::after {
content: "";
position: absolute;
width: 1546px; height: 423px;
top: 50%; left: 50%;
transform: translate(-50%, -50%);
border: 1px dashed var(--color-rule);
pointer-events: none;
/* Comment this out for the final upload — it's a design guide */
}
/* Safe zone preview — 1546×423 (what mobile + desktop see) */
.canvas-safe {
width: 1546px; height: 423px;
background: var(--color-surface);
color: var(--color-ink);
position: relative; overflow: hidden;
padding: 32px 64px;
box-sizing: border-box;
display: grid;
/* layout per archetype */
}
/* Wordmark at YouTube banner scale */
.banner-wordmark {
font-family: var(--type-display-family);
font-weight: 600;
font-size: 96px;
letter-spacing: -0.012em;
line-height: 1.0;
margin: 0;
color: var(--color-ink);
}
.banner-tagline {
font-family: var(--type-display-family);
font-style: italic;
font-weight: 400;
font-size: 28px;
line-height: 1.3;
letter-spacing: -0.005em;
margin: 16px 0 0;
color: var(--color-ink-soft);
}
.banner-meta {
font-family: var(--type-mono-family);
font-size: 14px; letter-spacing: 0.1em;
text-transform: uppercase;
color: var(--color-ink-3);
}
@page { size: 2560px 1440px; margin: 0; }
</style>
</head>
<body>
<!--
Variation choices:
archetype: <picked> (consistent across both canvases)
-->
<span class="canvas-label">→ FULL BANNER · 2560×1440 · the actual upload (TV displayBrand-agnostic design system and artifact generators for Claude Code, plus a figure-worth audit and PDF and HTML-to-PNG export utilities. 19 skills total. Install via the slogsdon-claude-code-config marketplace.
Repo: slogsdon/skills-design
Generate a blog post hero artifact — TWO pixel-exact HTML canvases in a single file: an Open Graph card (1200×630) for social meta tags AND an in-page hero…
Generate a printable business card — pixel-exact 1050×600 front canvas + 1050×600 back canvas in a single HTML file. Standard 3.5×2 inch card at 300dpi. Front…
Generate a LinkedIn / Instagram multi-slide carousel — single HTML file with N square 1080×1080 .canvas divs, each representing one slide. Default N=5 (cover +…
Generate an Instagram post artifact — pixel-exact HTML canvas at 1080×1350 (portrait, default — Instagram's max-real-estate format) with opt-in 1080×1080…
Generate a deliverable landing-page HTML file (NOT a screenshot artifact). 1440px design width, mobile-responsive (CSS-only, no JS). Sections: hero…
Generate a minimal single-column standalone HTML page — mobile-first at 375px width — for use as a link-in-bio destination. Contains: name/wordmark, short…