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 minimal single-column standalone HTML page — mobile-first at 375px width — for use as a link-in-bio destination. Contains: name/wordmark, short tagline, list of links (each a styled <a> block), social footer. Self-contained, works offline, deployable as-is to GitHub
$ npx -y skills add slogsdon/skills-design --skill design-link-in-bio --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/design-link-in-bioContext preview
The summary Claude sees to decide when to auto-load this skill.
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 tagline, list of links (each a styled <a> block), social footer. Self-contained, works offline, deployable as-is to GitHub
name: design-link-in-bio description: | 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 tagline, list of links (each a styled <a> block), social footer. Self-contained, works offline, deployable as-is to GitHub Pages or Netlify. Reads ./design/<brand-slug>/DESIGN.md, tokens.css, and components.html. Triggers include "link in bio", "linktree replacement", "bio page", "/link-in-bio".
Produces a deliverable mobile-first HTML page at 375px primary design width (with a centered-on-desktop fallback that maintains the column constraint). This is **NOT** a screenshot artifact — it's a real page meant to be deployed to a static host (GitHub Pages, Netlify, Vercel) as a `link-in-bio` destination from social profiles.
The format is functionally identical to a Linktree-style page, but the visual treatment commits to the brand's editorial register rather than the rounded-button-stack template that all link-in-bio services produce by default.
`./design/<brand-slug>/artifacts/link-in-bio.html` (single file — overwrite OK; canonical bio page for the brand)
test -f ./design/<brand-slug>/tokens.css
Ask in one message:
1. Name / wordmark — how the brand displays at the top 2. Tagline — 1 line, max 10 words, sentence-case ending in period per brand voice 3. Links — list of label + URL pairs, in display order. Optionally per-link meta description (1 sentence). 4. Social footer handles — Twitter/X, GitHub, etc. 5. Optional: which link (if any) is "current" — gets the brand accent treatment
The link-in-bio is small surface area, so the variation lever is the OVERALL register:
Template:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>[name] — links</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>
* { box-sizing: border-box; }
html, body { margin: 0; }
body {
background: var(--color-surface);
color: var(--color-ink);
font-family: var(--type-sans-family);
font-size: 17px;
line-height: 1.55;
font-feature-settings: 'ss01', 'cv11', 'kern';
min-height: 100vh;
}
/* Mobile-first column — 375px design width, centered on desktop */
.page {
max-width: 375px;
margin: 0 auto;
padding: 64px 24px 80px;
min-height: 100vh;
display: flex;
flex-direction: column;
}
/* Header — wordmark + tagline */
.bio-head { padding-bottom: 32px; border-bottom: 1px solid var(--color-rule); margin-bottom: 32px; }
.wordmark { font-family: var(--type-display-family); font-weight: 600; font-size: 28px; line-height: 1.0; letter-spacing: -0.01em; color: var(--color-ink); margin: 0; }
.tagline { font-family: var(--type-display-family); font-style: italic; font-weight: 400; font-size: 16px; line-height: 1.45; color: var(--color-ink-soft); margin: 12px 0 0; max-width: 32ch; }
/* Link list — numbered, no buttons, no rounded rectangles */
.links { list-style: none; padding: 0; margin: 0 0 48px; flex: 1; }
.links li {
border-top: 1px solid var(--color-rule);
}
.links li:last-child { border-bottom: 1px solid var(--color-rule); }
.links a {
display: grid;
grid-template-columns: 32px 1fr auto;
gap: 12px;
padding: 18px 0;
align-items: baseline;
text-decoration: none;
color: var(--color-ink);
transition: color 200ms;
}
.links a:hover { color: var(--color-ink-soft); }
.links .num {
font-family: var(--type-mono-family);
font-size: 12px; letter-spacing: 0.06em;
color: var(--color-ink-3);
align-self: baseline;
}
.links .label {
font-family: var(--type-display-family);
font-weight: 500; font-size: 18px; line-height: 1.3;
letter-spacing: -0.005em;
}
.links .label .meta {
display: block;
margin-top: 4px;
font-family: var(--type-sans-family);
font-size: 13px;
font-weight: 400;
color: var(--color-ink-3);
}
.links .arrow {
font-family: var(--type-mono-family);
font-size: 14px;
color: var(--color-ink-3);
transition: transform 200ms, color 200ms;
}
.links a:hover .arrow { transform: translateX(3px); color: var(--color-ink); }
/* "Current" link — brand accent */
.links li.is-current .num { color: var(--color-accent); }
.links li.is-current .arrow { color: var(--color-accent); }
.links li.is-current::before {
content: 'CURRENT';
display: block;
padding: 8px 0 0;
font-family: var(--type-mono-family);
font-size: 10px; letter-spacing: 0.18em;
color: var(--color-accent);
}
/* Social footBrand-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 LinkedIn post artifact — a 1200×627 image canvas (LinkedIn's recommended share image dimension) plus a companion text suggestion (1300-char limit,…