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 Twitter/X card artifact — pixel-exact HTML canvas at 1600×900 (in-feed image) by default, with 1200×630 (Open Graph link card) opt-in. Reads ./design/<brand-slug>/DESIGN.md, tokens.css, and components.html. Triggers include "twitter card for X", "x card for X",
$ npx -y skills add slogsdon/skills-design --skill design-twitter-card --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/design-twitter-cardContext preview
The summary Claude sees to decide when to auto-load this skill.
Generate a Twitter/X card artifact — pixel-exact HTML canvas at 1600×900 (in-feed image) by default, with 1200×630 (Open Graph link card) opt-in. Reads ./design/<brand-slug>/DESIGN.md, tokens.css, and components.html. Triggers include "twitter card for X", "x card for X",
name: design-twitter-card description: Generate a Twitter/X card artifact — pixel-exact HTML canvas at 1600×900 (in-feed image) by default, with 1200×630 (Open Graph link card) opt-in. Reads ./design/<brand-slug>/DESIGN.md, tokens.css, and components.html. Triggers include "twitter card for X", "x card for X", "twitter post about X", "OG card", "/twitter-card", "/x-card".
Produces a pixel-exact HTML canvas for Twitter/X. Two canvas modes:
Plus an optional companion tweet (280-char limit) or thread starter.
`./design/<brand-slug>/artifacts/twitter-<mode>-YYYY-MM-DD-<slug>.html`
test -f ./design/<brand-slug>/tokens.css
If missing, stop and instruct the user to build the design system first.
If user said "OG card" or "link card", use `og` (1200×630). Otherwise default to `feed` (1600×900) — sharper, larger, displays better in-timeline.
Ask in one message:
1. Headline — the dominant text on the canvas (max 10 words for feed mode, max 6 for OG) 2. Optional supporting line 3. Attribution — name + role, or leave blank 4. Companion tweet style: claim | thread-starter | quote | question | none
Pick ONE architecture archetype before any other axis. The single biggest cause of AI-editorial output is reaching for `chrome-led` by default.
After archetype, pick ONE per axis:
**Cross-artifact rule:** read variation comments in the most recent 2–3 artifacts under `./design/<brand-slug>/artifacts/`. Different archetype than recent. Different axis combos.
Template (swap dimensions based on mode):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title><Brand> — Twitter — <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 — switch dimensions by mode */
.canvas {
/* feed mode: 1600x900 | og mode: 1200x630 */
width: <1600 | 1200>px;
height: <900 | 630>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;
justify-content: <by variation>;
}
.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: var(--type-display-xl-weight) var(--type-display-xl-size)/var(--type-display-xl-leading) var(--type-display-xl-family);
letter-spacing: var(--type-display-xl-tracking);
margin: var(--space-md) 0 0;
/* feed mode allows larger; OG mode caps lower for safety */
font-size: clamp(48px, 6vw, 96px);
}
.footer {
display: flex;
justify-content: space-between;
align-items: baseline;
border-top: 1px solid var(--color-rule);
padding-top: var(--space-md);
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);
}
@page { size: <1600 | 1200>px <900 | 630>px; margin: 0; }
</style>
</head>
<body>
<!--
Mode: <feed | og>
Variation choices:
layout: <picked>
type-pressure: <picked>
color: <picked>
composition: <picked>
-->
<article class="canvas">
<header>
<span class="eyebrow"><eyebrow text></span>
<h1 class="headline"><headline></h1>
</header>
<footer class="footer">
<span><Brand mark or @handle></span>
<span><YYYY.MM.DD></span>
<span><optional URL or topic tag></span>
</footer>
</article>
</body>
</html>Layout adaptations (same options as `linkedin-post`):
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 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…