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 an Instagram post artifact — pixel-exact HTML canvas at 1080×1350 (portrait, default — Instagram's max-real-estate format) with opt-in 1080×1080 (square) and 1080×1920 (story / reel cover) modes. Reads ./design/<brand-slug>/DESIGN.md, tokens.css, and components.html.
$ npx -y skills add slogsdon/skills-design --skill design-instagram-post --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/design-instagram-postContext preview
The summary Claude sees to decide when to auto-load this skill.
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 (square) and 1080×1920 (story / reel cover) modes. Reads ./design/<brand-slug>/DESIGN.md, tokens.css, and components.html.
name: design-instagram-post description: 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 (square) and 1080×1920 (story / reel cover) modes. Reads ./design/<brand-slug>/DESIGN.md, tokens.css, and components.html. Triggers include "instagram post about X", "ig post", "ig story", "instagram artifact", "/instagram-post".
Produces a pixel-exact HTML canvas for Instagram. Three canvas modes:
Plus an optional caption suggestion (2200-char limit; first 125 chars visible before "more").
`./design/<brand-slug>/artifacts/instagram-<mode>-YYYY-MM-DD-<slug>.html`
test -f ./design/<brand-slug>/tokens.css
Default `portrait` (1080×1350) — gets the most feed space and converts best. Use `square` if user explicitly asks for grid coherence with existing square posts. Use `story` for Stories or Reel covers.
Ask in one message:
1. Headline — the dominant text on the canvas (max 8 words for portrait/square, max 6 for story) 2. Optional supporting line (max 12 words) 3. Attribution — name + handle, or leave blank 4. Caption style: insight | story | announcement | carousel-intro | reel-cover | none 5. Hashtag set: any specific tags, or leave blank for none
Pick ONE archetype before any other axis. Portrait dimensions invite vertical type stacking and number-led layouts that horizontal formats don't — use them.
After archetype, pick from:
**Cross-artifact rule:** different archetype than the most recent artifact in this brand. Read variation comments in `./design/<brand-slug>/artifacts/`.
Instagram crops portrait posts to a square in the explore feed and to ~1:1 thumbnails on profile grids. Keep critical content (headline + brand mark) within the **center 1080×1080 of a portrait canvas**, with safe margins of `var(--space-2xl)` from the top and bottom edges. The top/bottom 135px regions can carry secondary content (eyebrow, footer) but should remain readable when cropped out.
For Story mode (1080×1920), Instagram's interface chrome covers the top 250px and bottom 220px. Keep critical content within `y: 250–1700`.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title><Brand> — Instagram <mode> — <topic></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; display: grid; place-items: center; font-family: var(--type-body-md-family); }
.canvas {
/* Per mode:
portrait: 1080x1350
square: 1080x1080
story: 1080x1920 */
width: 1080px;
height: <1350 | 1080 | 1920>px;
background: var(--color-surface);
color: var(--color-ink);
position: relative;
overflow: hidden;
padding: var(--space-3xl);
box-sizing: border-box;
display: flex;
flex-direction: column;
}
/* Story mode — content respects IG's interface chrome */
.canvas--story {
padding: 270px var(--space-3xl) 240px;
}
/* Portrait/square — the safe-crop center ring (visual aid for design, removed in export) */
.canvas--portrait::after {
/* Uncomment during design to visualize crop safety
content: ""; position: absolute; left: 0; right: 0; top: 135px; bottom: 135px;
border: 1px dashed var(--color-rule);
pointer-events: none;
*/
}
.eyebrow {
font: var(--type-label-caps-weight) var(--type-label-caps-size)/var(--type-label-caps-leading) var(--type-label-caps-family);
letter-spacing: var(--type-label-caps-tracking);
text-transform: uppercase;
color: var(--color-ink-soft);
}
.headline {
font-family: var(--type-display-xl-family);
font-weight: var(--type-display-xl-weight);
letter-spacing: var(--type-display-xl-tracking);
font-size: clamp(72px, 9vw, 132px);
line-height: 1.04;
margin: var(--space-md) 0 0;
}
.support {
font-family:Brand-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 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…
Generate a LinkedIn post artifact — a 1200×627 image canvas (LinkedIn's recommended share image dimension) plus a companion text suggestion (1300-char limit,…