About brand-identity
A design skill for building a complete visual identity system through code, covering logos, colors, typography, patterns, and brand guidelines. It is for design and development work that turns brand attributes into reusable visual specifications.
Key features
- 01Design four logo forms and usage rules
- 02Define brand and semantic color systems
- 03Choose font pairings with fallback stacks
- 04Create branded patterns and textures
- 05Plan favicons, app icons, and social avatars
- 06Organize guidelines and review visual proofs
Use cases
- 01Build a visual identity for a new brand
- 02Create logo variations for an existing brand
- 03Define brand colors and typography for a website
- 04Compile brand guidelines and application examples
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ arnavpuri/ designskills --skill brand-identityAfter installing, type/brand-identityin Claude Code to confirm it loaded.
Details
From the project READMEBrand Identity
Create cohesive visual identity systems that communicate brand values through code.
Prerequisites
Before building a brand identity, check for existing design context:
- Read
.agents/design-context.md(seedesign-context) for existing brand name, colors, fonts, style archetype, audience, and Brand Marks. Refresh only what the user wants changed. - Identify the brand's industry, target audience, and personality traits (3-5 adjectives).
- Delegate depth: generate the full shade scale with the
color-paletteskill and the type scale withtypography. Variables below (--brand-100,--brand-500, ...) are that shared primitive scale.
Step 1: Logo Design Principles
Core Rules
- Simplicity: Must be recognizable at 16x16px (favicon size). Strip away every element that does not add meaning.
- Memorability: One distinctive feature. Not three. Not five. One.
- Scalability: Must work from 16px favicon to billboard. Avoid thin strokes that disappear at small sizes.
- Versatility: Must work on light backgrounds, dark backgrounds, and photos.
- Timelessness: Avoid trends (current gradients, specific illustration styles). Flat, geometric forms endure.
CSS/SVG Logo Techniques
Use simple geometric SVG marks (48x48 viewBox, rounded rect + inner shape). For CSS-only marks: display: grid; place-items: center on a colored rounded square, ::after pseudo-element for the inner shape.
Ship final logos as SVG with text converted to paths (or drawn as shapes) -- never depend on a web font or <text> inside a logo file. AI image generation (image-generation skill, Gemini) is useful for exploring concept directions and moodboards, but it produces raster images with unreliable lettering; redraw the chosen direction as clean SVG.
Step 2: Logo Variations
Every brand needs at minimum 4 logo forms:
- Primary (Lockup): Icon + wordmark side by side (
flex, gap: 0.75rem). Icon 40px, wordmark in heading font 1.25rem/700. - Secondary (Stacked): Icon above wordmark (
flex-direction: column, text-align: center). - Icon Mark: Symbol only -- for favicons, app icons, avatars.
- Wordmark Only: Text-only version for inline use.
Responsive pattern: Show full logo by default, swap to icon-only at max-width: 480px.
Step 3: Brand Color System
A brand color system is more than a palette. Structure it as:
Color Roles
| Role | Count | Purpose |
|---|---|---|
| Primary | 1 | Main brand color. CTAs, key UI elements. |
| Secondary | 1 | Supporting accent. Complementary. |
| Neutral | 1 scale | Grays for text, borders, backgrounds. |
| Semantic | 4 | Success, warning, error, info. |
| Surface | 2-3 | Background layers. |
Implementation
:root {
/* Brand */
--color-primary: oklch(0.55 0.15 250);
--color-primary-light: oklch(0.70 0.10 250);
--color-primary-dark: oklch(0.40 0.15 250);
--color-secondary: oklch(0.60 0.18 330);
--color-secondary-light: oklch(0.75 0.12 330);
/* Surfaces (semantic names shared with design-system) */
--bg-primary: oklch(0.99 0.005 250);
--bg-secondary: oklch(0.97 0.005 250);
--bg-raised: oklch(1.00 0 0);
/* Text */
--text-primary: oklch(0.20 0.02 250);
--text-secondary: oklch(0.50 0.01 250); /* ~5.8:1 on bg-primary */
--text-inverse: oklch(0.97 0.005 250);
}
Convert every final color to hex for the guidelines page and design-context (the color-palette skill has a conversion + contrast script), and verify each text/background pair.
Step 4: Typography System
Brand Font Selection
| Brand personality | Font style | Examples |
|---|---|---|
| Traditional | Serif | Playfair Display, Lora |
| Modern / Clean | Neo-grotesque / geometric sans | Inter, DM Sans, Manrope |
| Friendly / Warm | Rounded sans | Nunito, Quicksand |
| Technical | Monospace or grotesk | JetBrains Mono, Space Grotesk |
| Luxury | Thin serif/sans | Cormorant, Outfit |
| Playful | Display or handwritten | Bricolage Grotesque, Caveat |
Font Stack Definition
:root {
--font-heading: 'Playfair Display', Georgia, 'Times New Roman', serif; /* design-context: Heading Font */
--font-body: 'Inter', system-ui, -apple-system, sans-serif;
--font-mono: 'JetBrains Mono', 'Fira Code', 'Cascadia Code', monospace;
}
Always include system fallbacks. Always include generic family last.
Step 5: Brand Pattern and Texture Elements
Subtle patterns add visual richness and brand recognition.
Dot Grid Pattern
.brand-pattern-dots {
background-image: radial-gradient(
circle,
var(--brand-200) 1px,
transparent 1px
);
background-size: 24px 24px;
}
Diagonal Lines
.brand-pattern-lines {
background-image: repeating-linear-gradient(
45deg,
transparent,
transparent 10px,
var(--brand-100) 10px,
var(--brand-100) 11px
);
}
Grid Pattern
.brand-pattern-grid {
background-image:
linear-gradient(var(--brand-100) 1px, transparent 1px),
linear-gradient(90deg, var(--brand-100) 1px, transparent 1px);
background-size: 32px 32px;
}
Gradient Noise Texture
.brand-texture {
position: relative;
}
.brand-texture::after {
content: '';
position: absolute;
inset: 0;
background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.05'/%3E%3C/svg%3E");
pointer-events: none;
}
Step 6: Logo Spacing and Clear Zone
Minimum Clear Space
The clear zone around a logo should equal the height of the logo mark (or a specific letter like the "x" in the wordmark).
.logo-container {
/* Clear zone = logo height on all sides */
padding: var(--logo-clearzone, 2rem);
}
/* Minimum size constraints */
.logo-primary {
min-width: 120px; /* Never render smaller than this */
}
.logo-icon-mark {
min-width: 24px; /* Absolute minimum for icon-only */
}
Usage Rules (Document These)
- Do not rotate the logo.
- Do not change the logo colors outside the approved set.
- Do not stretch or distort.
- Do not place on busy backgrounds without a container.
- Maintain minimum clear space equal to the mark height.
Step 7: Brand Guidelines Document Structure
When building a brand guidelines page or system, include these sections:
Sections
- Brand Story: Mission, vision, values (1 paragraph each).
- Logo: All variations, clear zone rules, minimum sizes, misuse examples.
- Color: Primary, secondary, semantic palettes with hex/oklch/rgb values.
- Typography: Font families, scale, pairing rules.
- Imagery: Photography style, illustration style, icon style.
- Voice & Tone: Writing guidelines (though this is beyond visual design).
- Patterns & Textures: Background treatments.
- Application Examples: How everything comes together.
Structure as semantic sections (<section id="logo">, <section id="colors">, etc.) within a <main class="brand-guide">. Use specimen blocks (light/dark bg variants, display: grid; place-items: center; min-height: 200px) for logo display. Color swatches in auto-fit grid (minmax(160px, 1fr)).
Step 8: Favicon and App Icon Generation
Favicon Sizes
| Format | Size | Usage |
|---|---|---|
| ICO | 32x32 | Browser tab (legacy) |
| PNG | 180x180 | Apple touch icon |
| PNG | 192x192 | Android home screen |
| PNG | 512x512 | Android splash, PWA |
| SVG | any | Modern browsers, scalable |
SVG Favicon (Best Modern Approach)
<link rel="icon" href="/favicon.ico" sizes="32x32">
<link rel="icon" href="/favicon.svg" type="image/svg+xml">
<link rel="apple-touch-icon" href="/apple-touch-icon.png"><!-- 180x180, no transparency -->
<link rel="manifest" href="/site.webmanifest">
<!-- favicon.svg - supports dark mode! -->
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
<style>
rect { fill: #4f46e5; }
@media (prefers-color-scheme: dark) {
rect { fill: #818cf8; }
}
</style>
<rect width="32" height="32" rx="6"/>
<!-- Letterform as a path, not <text>: fonts render differently per OS -->
<path d="M11 8h6a4 4 0 0 1 0 8h-6zm0 8h7a4 4 0 0 1 0 8h-7z" fill="none" stroke="white" stroke-width="3" stroke-linejoin="round"/>
</svg>
Use the design-context Primary hex (and Primary Light for dark mode) instead of the example colors.
Web Manifest
{
"name": "Brand Name",
"short_name": "Brand",
"icons": [
{ "src": "/icon-192.png", "sizes": "192x192", "type": "image/png" },
{ "src": "/icon-512.png", "sizes": "512x512", "type": "image/png" },
{ "src": "/icon-maskable-512.png", "sizes": "512x512", "type": "image/png", "purpose": "maskable" }
],
"theme_color": "#4f46e5",
"background_color": "#ffffff"
}
Step 9: Social Media Avatar Consistency
Rules for Platform Consistency
- Use the icon mark (not the full logo) for square/circular avatars.
- Add padding so the mark does not touch the circular crop edge.
- Use the primary brand color as background.
/* Avatar-safe logo layout */
.social-avatar {
width: 400px;
height: 400px;
background: var(--brand-500);
display: grid;
place-items: center;
border-radius: 50%; /* Preview circular crop */
}
.social-avatar .logo-mark {
width: 55%; /* Leave ~22.5% padding on each side */
height: 55%;
color: white;
}
Platform Sizes
| Platform | Recommended upload size |
|---|---|
| X/Twitter | 400x400px |
| 400x400px | |
| 320x320px | |
| GitHub | 500x500px |
| Slack | 512x512px |
Step 10: Brand Application Examples
Business Card
3.5x2in, flex column, justify-content: space-between. Name in display font 14pt/700, title 9pt uppercase in brand color, contact 8pt gray.
Email Signature
Table-based: logo mark (48px) with brand-color border-right, name/title/contact stacked in adjacent cell. Use Arial, inline styles only.
Step 11: Verify and Save
- Render a proof sheet (scratchpad HTML): every logo variation on light, dark, and brand-color backgrounds; the icon mark at 16, 32, 48, and 180px; the favicon in a mock browser tab; the avatar inside a circle crop. Screenshot it (
npx playwright screenshot --full-page "file://$PWD/brand-proof.html" proof.png) and view it with Read. Check: mark still recognizable at 16px, no strokes vanish, contrast holds on every background, nothing touches the circular crop. - Offer to write back to
.agents/design-context.md, updating only changed fields: Brand Identity (name, tagline), Color System rows (hex), Typography fonts, Design Style archetype, and Brand Marks (Logo description, Icon Style). Show the diff and ask before saving.
Quick Reference: Brand Identity Checklist
- Define brand personality (3-5 adjectives).
- Choose primary and secondary brand colors.
- Select font pairing (heading + body).
- Design logo mark, create all 4 variations.
- Define clear zone and minimum sizes.
- Generate full color system (shades, semantics, neutrals).
- Create brand patterns/textures.
- Build favicons and app icons.
- Create social media avatar.
- Document everything in a brand guidelines page.
- Render a proof sheet, inspect it, and save the brand to design-context.