From LogoLoom
Generates commercial-grade SVG logos for projects by analyzing codebase (README, package.json, GitHub repos/orgs), asking user preferences on audience/feeling/colors, previewing 6-8 concepts in HTML, iterating variations, and delivering full brand kit with PNGs and swatches.
How this skill is triggered — by the user, by Claude, or both
Slash command
/LogoLoom:design-logoThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Generate a commercial-grade SVG logo for a project by reading its codebase and iterating with the user.
Generate a commercial-grade SVG logo for a project by reading its codebase and iterating with the user.
When the user says "design logo", "整 logo", "make a logo", "brand design", or wants a visual identity for a project/org.
Read the project's codebase to understand identity:
# If it's a GitHub org
~/.local/bin/gh api orgs/{org} --jq '{name, description}'
~/.local/bin/gh repo list {org} --json name,description --limit 20
# If it's a single repo
cat README.md | head -50
cat package.json | grep -E '"name"|"description"|"keywords"'
Ask the user 3 questions (keep it fast, don't overthink):
Generate 6-8 SVG logo concepts with different approaches:
Package ALL concepts into a single HTML preview file:
/tmp/{project}-logo-preview.html
HTML requirements:
file:///tmp/{project}-logo-preview.html to compare all at onceUser picks a direction → generate 4 variations of that direction:
Repeat until user says "this one" or "OK"
DO NOT run text_to_path on the final SVG. Keep original <text> elements — they render perfectly in browsers (GitHub, npm, websites). text_to_path degrades quality (wrong kerning, loses gradient fills on tspan, font mismatch). Only use text_to_path if user specifically needs print/offline use.
Generate the complete logo package in a single final HTML preview (/tmp/{project}-logo-final.html):
Must include ALL of these:
If LogoLoom MCP is available, use export_brand_kit tool to generate all files automatically. If not, manually write SVG files.
<svg>, <path>, <circle>, <rect>, <text>, <linearGradient>system-ui, -apple-system, sans-serif for sans-serif text'Courier New', monospace for monospace textviewBox for scalabilitystroke-linecap="round" for friendly feelstroke-linejoin="miter" for sharp feel<image> tags (defeats the purpose of SVG)0 0 400 1200 0 100 1000 0 280 70Centering tagline under wordmark:
import opentype from 'opentype.js';
const font = await opentype.load('./src/fonts/Inter-Bold.ttf');
let totalWidth = 0;
for (let i = 0; i < text.length; i++) {
const glyph = font.charToGlyph(text[i]);
totalWidth += (glyph.advanceWidth / font.unitsPerEm) * fontSize;
if (i < text.length - 1) totalWidth += letterSpacing;
}
const centerX = totalWidth / 2;
<text x="{centerX}" text-anchor="middle" ...>Common mistake: Using a fixed x value (e.g. x="125") without measuring — will look off-center on different systems.
text_to_path degrades quality — opentype.js converts text to paths but loses: gradient fills on <tspan>, correct letter-spacing, font-weight nuance. For web use (99% of cases), keep <text> tags. Only convert for print.
Tagline must be mathematically centered — use opentype.js to calculate exact wordmark width, then set tagline x to half that width with text-anchor="middle". Never eyeball it.
Always preview light AND dark side by side — dark mode often needs different saturation, and icon background boxes can look wrong.
Icon extraction must include <defs> — if the icon uses gradients, the extracted icon SVG must copy the <defs> block too, otherwise gradients disappear.
Full logo PNGs are essential — users need PNG for README headers, presentations, social media. Export both icon-only PNGs (square) and full-logo PNGs (wide).
Start with 6-8 concepts, narrow to 4 variations, then polish 1 — don't skip straight to final. The iteration loop is where the real design happens.
# {Project} Brand Guidelines
## Logo Files
### Full Logo (icon + wordmark)
| File | Usage |
|------|-------|
| `logo-full-light.svg` | Primary — light backgrounds |
| `logo-full-dark.svg` | Dark backgrounds |
| `logo-full-800w.png` | README header, presentations |
| `logo-full-400w.png` | Smaller placements |
| `logo-full-mono-black.svg` | Single-color printing |
| `logo-full-mono-white.svg` | Single-color on dark |
### Icon Only
| File | Usage |
|------|-------|
| `icon-light.svg` / `icon-dark.svg` | App icon, avatar |
| `icon-mono-black.svg` / `icon-mono-white.svg` | Single-color |
| `icon-256.png` / `icon-512.png` / `icon-1024.png` | Raster |
| `favicon.ico` / `favicon-16.png` / `favicon-48.png` | Favicon |
| `og-image.png` | Social share (1200×630) |
## Colors
| Name | Hex | Usage |
|------|-----|-------|
| Primary | #xxx | Gradient start, CTA buttons |
| Secondary | #xxx | Gradient end, accents |
| Text (light) | #xxx | Body text on light bg |
| Text (dark) | #xxx | Body text on dark bg |
| Background (light) | #xxx | Light mode bg |
| Background (dark) | #xxx | Dark mode bg |
## Typography
- Headings: system-ui, -apple-system, sans-serif, weight 800
- Body: system-ui, -apple-system, sans-serif, weight 400
## Usage Rules
- Minimum icon size: 16×16px
- Always maintain aspect ratio
- Do not stretch, rotate, or add effects
- Use monochrome version for single-color printing
- Minimum clear space: 25% of icon width on all sides
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub mcpware/logoloom