agentsclimarketplace

Design business card

Skill slogsdon/skills-design/skills/design-business-card

Twenty-three brand-agnostic design templates for Claude Code: LinkedIn, Instagram, YouTube, Twitch, blog hero, podcast.

Install
npx -y skills add slogsdon/skills-design --skill design-business-card

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

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 carries name + title + contact details; back is wordmark-dominant (or brand device) with minimal text. The design system's most reduced artifact — tests whether the brand can speak with almost no text. Print bleed instructions in footer comment. Reads ./design/<brand-slug>/DESIGN.md, tokens.css, and components.html. Triggers include "business card", "calling card", "name card", "/business-card".

SKILL.md

12.2 KB, as published. Nobody here has run it

Skill: business-card

Produces a single self-contained HTML file containing two pixel-exact 1050×600 canvases — the front and back of a standard 3.5×2 inch business card at 300dpi. Print-ready dimensions; bleed and crop notes documented at the end of the file.

This skill is the most extreme reduction test in the platform-skills set. A business card has ~6 square inches of total real estate; the brand must speak with nearly no text. If the brand can't hold its identity at this scale, the design system has a problem worth surfacing.

When to use

  • User needs printed business cards (or digital equivalents — Apple Wallet, Linktree alternative)
  • A DESIGN.md exists for the brand

Inputs

  • Required: brand slug, name, title/role
  • Required: primary contact (email OR URL — pick the one most likely to lead to a conversation)
  • Optional: secondary contact (the other of email/URL)
  • Optional: location (city · timezone)
  • Optional: secondary handle (e.g. GitHub for engineering brands)

Output

./design/<brand-slug>/artifacts/business-card-YYYY-MM-DD-<slug>.html

Steps

1. Verify brand exists

test -f ./design/<brand-slug>/tokens.css

2. Gather the brief

Ask in one message:

1. Name — as it should appear on the card
2. Title / role — short, sentence-case (no periods on titles — they're labels not sentences)
3. Primary contact — pick ONE: email OR URL (the one you most want to receive)
4. Optional secondary contact — the other one
5. Optional location — city · timezone (e.g. "Louisville · GMT−5")
6. Optional secondary handle — e.g. "github.com/handle" for engineering brands

If the user wants more than 4 lines of text on the front, push back: "Business cards work at 4 lines max. What's essential?"

3. Pick variation — FRONT and BACK can use different archetypes

This is the rare skill where the front and back can take DIFFERENT visual approaches because they serve different functions (front = info; back = mark/identity):

Front archetype:

  • chrome-led — name + title + contact-row, structured. Most common; readable.
  • type-only — name at maximum scale, contact details small in corner. Confident.
  • inverse-text — full canvas dark inversion (canonical v2 feature treatment). Bold.

Back archetype:

  • wordmark-dominant — full brand wordmark centered or off-center; nothing else. The mark IS the back.
  • single-mark — a single brand device (single character, monogram, or symbol) at maximum scale.
  • inverse-text — dark inversion with wordmark in cream. Mirrors the front if front is also inverted.
  • chromeless — the back is intentionally near-empty cream. The negative space IS the message.

Color treatment — pick a relationship between front and back:

  • same-surface (both cream OR both inverted)
  • inverted-back (front cream, back dark — a register flip when you turn the card)
  • inverted-front (front dark, back cream — punchy front, quiet back)

4. Generate the HTML

Template:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title><Brand> — Business card — <name></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; }

/* Front + Back — both 1050×600 (3.5×2 inch at 300dpi) */
.canvas-front, .canvas-back {
  width: 1050px; height: 600px;
  position: relative; overflow: hidden;
  padding: 48px 56px;
  box-sizing: border-box;
  display: grid;
}

.canvas-front {
  background: var(--color-surface);
  color: var(--color-ink);
  grid-template-rows: auto 1fr auto;
  gap: 16px;
}

.canvas-back {
  background: var(--color-surface);   /* or --color-ink for inversion */
  color: var(--color-ink);
  display: grid; place-items: center;  /* default for wordmark-dominant back */
}

/* === Front composition === */
.front-name {
  font-family: var(--type-display-family);
  font-weight: 500;
  font-size: 64px;
  line-height: 1.0;
  letter-spacing: -0.018em;
  margin: 0;
  color: var(--color-ink);
}
.front-title {
  font-family: var(--type-display-family);
  font-weight: 600;
  font-variant-caps: small-caps; font-feature-settings: 'smcp';
  text-transform: lowercase;
  font-size: 16px; letter-spacing: 0.08em;
  color: var(--color-ink-3);
  margin: 12px 0 0;
}
.front-contact {
  align-self: end;
  display: flex; flex-direction: column; gap: 6px;
  font-family: var(--type-mono-family);
  font-size: 16px; letter-spacing: 0.04em;
  color: var(--color-ink);
}
.front-contact .secondary { color: var(--color-ink-3); }
.front-contact .label { font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--color-ink-3); margin-right: 12px; }

/* === Back composition === */
.back-wordmark {
  font-family: var(--type-display-family);
  font-weight: 500;
  font-size: 84px;
  letter-spacing: -0.018em;
  color: var(--color-ink);
  margin: 0;
  text-align: center;
}

/* Inverted variant */
.canvas-front--inverted, .canvas-back--inverted {
  background: var(--color-ink);
  color: var(--color-surface);
}
.canvas-front--inverted .front-name { color: var(--color-surface); }
.canvas-front--inverted .front-title { color: rgba(251, 250, 249, 0.55); }
.canvas-front--inverted .front-contact { color: var(--color-surface); }
.canvas-front--inverted .front-contact .secondary { color: rgba(251, 250, 249, 0.55); }
.canvas-front--inverted .front-contact .label { color: rgba(251, 250, 249, 0.55); }
.canvas-back--inverted .back-wordmark { color: var(--color-surface); }

@page { size: 1050px 600px; margin: 0; }
</style>
</head>
<body>
<!--
Variation choices:
  front-archetype: <picked>
  back-archetype:  <picked>
  color-relation:  <picked>
-->

<span class="canvas-label">→ FRONT · 1050×600 · 3.5×2 inch at 300dpi · name + contact</span>
<article class="canvas-front">
  <header>
    <h1 class="front-name">[Speaker name]</h1>
    <p class="front-title">[title / role]</p>
  </header>
  <span></span>
  <div class="front-contact">
    <span><span class="label">Email</span>[email@domain]</span>
    <span class="secondary"><span class="label">Web</span>[domain.com]</span>
    <span class="secondary"><span class="label">Loc</span>[city · timezone]</span>
  </div>
</article>

<span class="canvas-label">→ BACK · 1050×600 · wordmark-dominant</span>
<article class="canvas-back">
  <h1 class="back-wordmark">[Wordmark]</h1>
</article>

<!--
PRINT NOTES:
  - 1050×600 px = 3.5×2 inches at 300dpi (standard US business card)
  - Add 0.125" bleed on all sides for print → final: 1087.5×637.5 px (37.5px bleed each side)
  - Or 1125×675 px with safer 0.25" bleed
  - Crop marks NOT included — most print services add their own
  - For print-ready PDF: open each canvas in browser → File → Print → Save as PDF (page size auto-set by @page)
  - Recommended printers: Moo, Vistaprint, Jukebox (luxe stocks recommend cotton or fluorescent paper for cream brands)
-->
</body>
</html>

5. Verify

  • Both canvases at exact 1050×600
  • Front has at most 4 lines of text (name + title + contact rows)
  • Title is sentence-case WITHOUT period (titles are labels, not sentences — distinct from headlines that DO end in period)
  • Back is wordmark-dominant — minimal text, mark earns the space
  • Architecture archetypes documented (front + back can differ; color relationship documented)
  • Read ../design-anti-patterns.md and verify the artifact violates none of its rules. Pay special attention to sections 1 (no decorative orbs / patterns; no stock photography), 2 (no italics-emphasis OR single-word color emphasis as default), 4 (no center-aligned hero with template — the front composition should be intentionally asymmetric or grid-anchored, not centered-template)
  • No "Founder & CEO" / "Co-founder" titles appended with em-dash decoration — the title is what it is

Business card at ./design/<brand-slug>/artifacts/business-card-YYYY-MM-DD-<slug>.html.

Front: <archetype> · Back: <archetype> · Color: <relation>.

Export each side: open in browser → DevTools → 1050×600 viewport → screenshot each .canvas-front and .canvas-back separately. Or use browser's "Save as PDF" with page size 1050×600.

For print: add 0.125-0.25" bleed (notes in file footer). Most print services accept the rendered PNG/PDF directly.

Anti-Slop Rules

Governed by three shared canonical references — read them, do not restate them:

  • ../design-anti-patterns.md — the hard floor. Wins every conflict.
  • ../design-principles.md — the craft floor (typographic hierarchy, spatial rhythm, color theory, layout logic, visual tension).
  • ../design-variation-sop.md — the named-aesthetic roster + the procedure for varying every invocation.

Forbidden (fast scan — the references hold the full list):

  • Indigo/violet/purple as default accent or primary — the hsl(230–280) family on a near-white surface. The single loudest AI tell.
  • Purple→blue / "aurora" / gradient-mesh backgrounds; gradient-fill text.
  • Glassmorphism without an explicit AA-contrast scrim; floating gradient "blobs" as atmosphere.
  • The three-up icon-card feature grid; the "hero → 3 cards → CTA" median skeleton.
  • One global border-radius on every element; timid evenly-weighted low-contrast palette.
  • Inter / Roboto / Arial / Open Sans / Lato / Helvetica / system as the primary family (Space Grotesk = yellow flag). Use a category-matched stack from the variation roster.
  • Value-free CTAs ("Get Started", "Learn More", "Sign Up"); the two-CTA hero. Name the real action and its value.

Required variation (every invocation):

  • Make at least two intentional decisions that differ from the safe defaults (palette, layout structure, typographic voice, or spatial density) AND from the most recent artifact in this brand.
  • Never default to "clean / minimal / modern" — that is the absence of a direction (variation-sop Rule 1).
  • Sketch three distinct directions, offer them as a one-line menu, generate the best-fit by default, all three only if asked (variation-sop Rule 3).

Authenticity: prefer specific over generic everywhere — real datelines (not "today"), the brand's actual voice (not "build the future" filler), concrete CTAs over placeholders.

Rules

  • Pixel exactness on both canvases. 1050×600 = 3.5×2 inches at 300dpi.
  • At most 4 lines on the front. Name + title + 2 contact rows is the maximum. More than that breaks the format.
  • Back is identity, not info. Wordmark, brand device, or intentional negative space — never repeated contact info.
  • Title without period. Titles are labels (no period); names without label suffix; contact is monospace data.
  • Print bleed documented in the file so the user knows what to add when sending to a printer.
  • Token-pure. Every visual value via var(--*) from tokens.css.
  • Anti-pattern compliance. This skill defers to three shared canonical references: ../design-anti-patterns.md (the hard floor — wins every conflict), ../design-principles.md (the craft floor), and ../design-variation-sop.md (direction roster + offer-3 procedure). The anti-patterns file is the canonical anti-tell list.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.