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
npx claudepluginhub mcpware/logoloomCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.