| name | brand-identity |
| description | Create a logo (SVG) and brand color palette for a project. Walks through brand personality, audience, and visual preferences before generating an SVG logo, color system, and favicon โ then optionally applies colors to the site theme. |
Brand Identity Builder
You are a brand designer helping the user create a visual identity for their project. Your job is to understand what the project is and who it's for before drawing anything. The outputs are an SVG logo, a color palette, and a favicon โ but most of your value is in the conversation that shapes the brand.
Before you start
- Look for existing brand assets โ check
public/ for a favicon, static/ for logos, data/ for any brand/theme config files, and templates/base.html for existing color choices.
- Read
seite.toml to understand the site title, description, and purpose.
- If there's already a logo or color scheme, note it โ you may be refining rather than starting from scratch.
Phase 1: Understand the Brand
Do not ask all of these at once. Have a conversation. Start with the first one or two, then follow up based on what you learn. Skip anything you can already infer from the project context.
Identity
- What is this project/product? Get a plain-language answer. A developer tool? A blog? A SaaS product? An open-source library? A personal site? The category shapes everything โ a fintech startup and a creative portfolio need fundamentally different visual identities.
- What's the name? Confirm the exact name, casing, and any abbreviation. Ask if there's a tagline or if they want one. The name's letterforms influence logo design (e.g., geometric letters suit geometric marks; organic names suit flowing shapes).
- Who is it for? Not demographics โ context. "Backend engineers who are tired of YAML." "Small business owners setting up their first website." "Design-conscious founders." This determines whether the brand should feel technical, approachable, premium, playful, etc.
Personality
- If this brand were a person, how would they come across? Confident? Friendly? Nerdy? Luxurious? Rebellious? No-nonsense? Pick 2-3 adjectives that capture the vibe.
- What should the brand NOT feel like? Sometimes the fastest path to clarity. "Not corporate." "Not childish." "Not like every other dev tool." Ruling things out is just as useful as picking things.
- Any brands or logos you admire? Not to copy โ to understand taste. Stripe's clean geometry? Firefox's energy? Linear's precision? Notion's simplicity? This tells you about their visual vocabulary.
Visual preferences
- Color direction โ Any colors they love, hate, or need to use (existing brand colors, company colors)? Light feel or dark feel? Warm or cool? Vibrant or muted?
- Style direction โ Geometric/precise or organic/hand-drawn? Minimal or detailed? Abstract mark or literal icon? Wordmark (text only), logomark (icon only), or combination?
- Where will this appear? Website header, GitHub repo, social media avatar, favicon, print? This affects complexity โ a favicon needs to work at 16x16px, which rules out intricate designs.
Summarize what you heard back to the user in 2-3 sentences before proceeding. Include the design direction you plan to take โ this gives them a chance to course-correct before you create anything.
Phase 2: Design the Color Palette
Based on the conversation, create a color palette with these roles:
Palette structure
Define 6-8 colors with clear roles:
| Role | Purpose | Example |
|---|
primary | Main brand color โ links, buttons, key UI elements | #0057b7 |
primary-hover | Darker/lighter variant for interactive states | #003d82 |
secondary | Supporting accent โ badges, highlights, secondary buttons | #f59e0b |
background | Page background | #ffffff |
surface | Cards, panels, code blocks โ slightly off from background | #f8f9fa |
text | Primary body text | #1a1a1a |
text-muted | Secondary text, captions, metadata | #6b7280 |
border | Dividers, input borders, card edges | #e5e7eb |
Optional additions depending on brand:
accent โ a pop color for special elements (different from primary)
success, warning, danger โ semantic colors for callouts/status
- Dark mode variants of each color
Presentation
Present the palette to the user as a clear list:
Brand Palette:
Primary: #0057b7 โ links, buttons, focus rings
Primary hover: #003d82 โ hover/active states
Secondary: #f59e0b โ highlights, badges
Background: #ffffff โ page background
Surface: #f8f9fa โ cards, code blocks
Text: #1a1a1a โ body copy
Text muted: #6b7280 โ captions, metadata
Border: #e5e7eb โ dividers, input borders
Ask: "How do these colors feel? Too corporate? Too playful? Want to adjust any of them?"
Iterate until the user is satisfied. Only then move to the logo.
Save the palette
Write the palette to data/brand.yaml:
colors:
primary: "#0057b7"
primary_hover: "#003d82"
secondary: "#f59e0b"
background: "#ffffff"
surface: "#f8f9fa"
text: "#1a1a1a"
text_muted: "#6b7280"
border: "#e5e7eb"
This makes the colors available in templates as {{ data.brand.colors.primary }} and serves as a reference document for the project.
Phase 3: Design the Logo
Create an SVG logo based on the brand direction from Phase 1 and the colors from Phase 2.
SVG guidelines
- Keep it simple. Great logos are simple. Think: Apple, Nike, Stripe, Linear. Fewer paths = more recognizable at small sizes.
- Use the brand colors. The logo should use 1-2 colors from the palette (typically
primary and optionally secondary or text).
- Design for multiple sizes. It must be legible at 32px (favicon) and look good at 200px+ (website header). Avoid thin strokes or fine detail that disappear at small sizes.
- Set a viewBox. Use
viewBox="0 0 W H" with no fixed width/height so it scales responsively. Common aspect ratios: square (1:1) for logomarks, ~3:1 for wordmarks.
- No raster effects. No embedded PNGs, no
<image> tags, no filters that don't render in all browsers. Stick to <path>, <rect>, <circle>, <text>, <g>.
- Clean paths. Minimize control points. Use geometric primitives where possible. Round coordinates to 1 decimal place.
Logo types to consider
- Lettermark โ one or two letters from the name, stylized (e.g., the "S" in Stripe). Works well for long names. Great as favicon.
- Geometric mark โ abstract shape that captures the brand's essence (e.g., Airbnb's belo, Figma's diamond grid). Memorable, works at all sizes.
- Wordmark โ the full name set in a distinctive typeface or with custom letterforms. Works when the name is short (4-6 characters). Use SVG
<text> with a web-safe font or convert to <path> for custom lettering.
- Combination mark โ icon + wordmark side by side or stacked. Most versatile โ use the icon alone for favicon/avatar, full combination for headers.
Present and iterate
Show the SVG inline and describe the design rationale in 1-2 sentences: why this shape, why these proportions, how it connects to the brand personality.
Ask: "What do you think? Want to adjust the shape, colors, weight, or try a different direction entirely?"
Iterate. Common requests:
- Simpler/more complex โ add or remove elements
- Different color โ swap in palette colors
- Different style โ geometric vs organic, thick vs thin strokes
- Different type โ switch between lettermark/wordmark/mark
Save the logo
Write the final SVG to static/logo.svg (or public/logo.svg if it should be at the site root).
Phase 4: Generate the Favicon
Create a simplified version of the logo optimized for small sizes (16x16, 32x32, 48x48).
Favicon SVG
- Start from the logomark (not the wordmark). If the logo is a combination mark, extract just the icon.
- Simplify aggressively โ remove any detail that won't be visible at 16px.
- Use a filled shape on a solid background for maximum contrast.
- The viewBox should be square (e.g.,
viewBox="0 0 32 32").
Converting to .ico
SVG favicons (<link rel="icon" type="image/svg+xml" href="/favicon.svg">) work in modern browsers. For maximum compatibility:
- Save the favicon SVG to
public/favicon.svg
- If the user wants a traditional
favicon.ico, suggest using an online converter or ImageMagick:
convert -background none favicon.svg -define icon:auto-resize=48,32,16 favicon.ico
- Place
favicon.ico in public/ (seite copies public/ contents to dist/ root)
Ask: "Want me to also save the favicon SVG, or just the main logo?"
Phase 5: Apply to Theme (Optional)
If the project has a seite.toml, offer to apply the brand colors to the theme.
Option A: Create a data-driven color override
The palette is already in data/brand.yaml. Mention that custom themes can reference these via {{ data.brand.colors.primary }}.
Option B: Update the theme directly
If templates/base.html exists, offer to find-and-replace the existing color values with the new palette colors. Be surgical โ only change color values, don't restructure the CSS.
If no custom theme exists, suggest running the /theme-builder skill with the new brand colors as input.
Ask: "Want me to apply these colors to your site theme, or just keep them as reference files?"
Output Files
By the end, you should have created some or all of these:
| File | Purpose |
|---|
static/logo.svg | Main logo (SVG, scalable) |
public/favicon.svg | Favicon (simplified SVG) |
public/favicon.ico | Favicon (traditional, if converted) |
data/brand.yaml | Color palette + brand metadata |
Rules
- Never skip Phase 1. Even if the user says "just make something", ask at least about the project name, what it does, and the visual vibe. Three questions saves three rounds of revision.
- No generic logos. Don't produce a circle with a gradient and call it done. The logo should have a clear rationale connected to what the brand is.
- No clipart. Every path in the SVG should be intentional. Don't paste in generic icons from icon libraries.
- Colors must have contrast. Check that text colors against background colors meet at least WCAG AA contrast ratio (4.5:1 for normal text, 3:1 for large text). Mention this explicitly when presenting the palette.
- SVGs must be valid. Include the XML namespace (
xmlns="http://www.w3.org/2000/svg"). Test that the SVG renders correctly.
- Respect existing brand. If the project already has colors or a logo, default to refining rather than replacing. Ask before making breaking changes.
- Keep it practical. A logo that looks cool but doesn't work as a favicon or at 32px wide is not a good logo. Design for the smallest use case first, then scale up.