Visual Brand Extractor
Analyzes a website or brand assets to extract the complete visual identity system. Identifies colors, typography, logo usage, photography style, icon language, spacing patterns, and UI component styles. Outputs a structured brand style guide JSON that other creative skills (ad-creative-brief, slide-creator, landing-page-copy) can consume for brand-consistent output.
Prerequisites
agency.config.json in the project root
- Target website URL or set of brand asset files (logos, screenshots, PDFs)
- Browser automation access (Claude-in-Chrome MCP) for live site analysis
- Optional: existing brand guidelines document for validation
Phase 0: Intake
- Read
agency.config.json from the project root.
- Extract
agency.name, agency.domain for context on whether this is self-analysis or client analysis.
- Extract
services[] to understand what brand contexts are relevant (e.g., Shopify themes, landing pages).
- Collect inputs from the user:
- Target: website URL, or list of asset file paths
- Scope: full brand audit, or specific elements only (colors, fonts, etc.)
- Context: is this for a client project, competitor analysis, or internal use?
Phase 1: Color Extraction
Analyze the target for all color usage:
Primary colors:
- Identify the dominant brand color (used in CTAs, headers, logo)
- Extract exact hex, RGB, and HSL values
Secondary colors:
- Supporting palette colors (used in backgrounds, accents, hover states)
- Extract all values
Neutral palette:
- Background colors (white, off-white, grays)
- Text colors (body text, headings, muted text)
- Border and divider colors
Semantic colors:
- Success, error, warning, info colors if present
- Sale/discount highlight colors
Color relationships:
COLOR PALETTE:
---
Primary: #XXXXXX (rgb) -- usage: CTAs, headers, logo
Secondary: #XXXXXX (rgb) -- usage: accents, hover states
Accent: #XXXXXX (rgb) -- usage: highlights, badges
Neutrals:
- Background: #XXXXXX
- Surface: #XXXXXX
- Border: #XXXXXX
- Text: #XXXXXX
- Muted: #XXXXXX
Semantic:
- Success: #XXXXXX
- Error: #XXXXXX
- Warning: #XXXXXX
Verify contrast ratios between text and background colors meet WCAG AA (4.5:1 for body text, 3:1 for large text). Flag any violations.
Phase 2: Typography Analysis
Extract the complete type system:
Font families:
- Heading font: family name, weight(s), source (Google Fonts, Adobe, custom)
- Body font: family name, weight(s), source
- Accent/display font if used
- Monospace font if present (code blocks, pricing)
Type scale:
TYPOGRAPHY:
---
Heading font: [Family] -- weights: [300, 400, 700]
Body font: [Family] -- weights: [400, 500, 600]
Scale:
- H1: [size]px / [line-height] / [weight] / [letter-spacing]
- H2: [size]px / [line-height] / [weight] / [letter-spacing]
- H3: [size]px / [line-height] / [weight] / [letter-spacing]
- H4: [size]px / [line-height] / [weight] / [letter-spacing]
- Body: [size]px / [line-height] / [weight]
- Small: [size]px / [line-height] / [weight]
- Caption: [size]px / [line-height] / [weight]
Mobile overrides:
- H1: [size]px
- H2: [size]px
- Body: [size]px
Text styling patterns:
- Uppercase usage (headings, labels, navigation)
- Letter-spacing patterns
- Text decoration (underlines on links, strikethroughs on prices)
Phase 3: Logo and Imagery
Logo analysis:
LOGO:
---
Type: [wordmark / lettermark / icon+wordmark / abstract / mascot]
Orientation: [horizontal / vertical / icon-only variant]
Colors: [list of colors used]
Clear space: [approximate padding around logo]
Min size: [smallest observed usage]
Background usage: [light bg only / dark bg only / both with variants]
Photography style:
- Subject matter (lifestyle, product-only, people, abstract)
- Color treatment (vibrant, muted, desaturated, warm, cool)
- Composition patterns (centered, rule-of-thirds, overhead, close-up)
- Background style (solid, gradient, environmental, transparent)
Illustration and icon style:
- Icon type (outlined, filled, duotone, hand-drawn)
- Icon weight (thin, regular, bold)
- Corner style (rounded, sharp)
- Color application (mono, brand-colored, multi-color)
- Source library if identifiable (Heroicons, Feather, Phosphor, custom)
Phase 4: Spacing and Layout
Spacing system:
SPACING:
---
Base unit: [4px / 8px]
Scale: [4, 8, 12, 16, 24, 32, 48, 64, 96, 128]
Section padding: [top/bottom]
Container max-width: [px]
Grid columns: [12 / flexible]
Gutter width: [px]
Card padding: [px]
Button padding: [vertical horizontal]
Input padding: [vertical horizontal]
Component patterns:
- Border radius (none, small, medium, large, full)
- Shadow styles (none, subtle, medium, elevated)
- Divider style (line, space, gradient)
Phase 5: UI Component Audit
Catalog key component styles:
Buttons:
BUTTONS:
- Primary: [bg color, text color, border-radius, padding, font-weight, hover state]
- Secondary: [outline/ghost style details]
- Tertiary: [text-only link style]
- Size variants: [sm, md, lg if present]
Cards:
- Border vs shadow vs flat
- Image placement (top, left, background)
- Content padding
- Hover behavior
Navigation:
- Style (horizontal, hamburger, sidebar)
- Active state treatment
- Dropdown style
Forms:
- Input border style
- Focus state color
- Label placement (above, inline, floating)
- Error state style
Phase 6: Output
Return the complete brand style guide as structured JSON:
{
"brand_style_guide": {
"target": "[URL or asset source]",
"extracted_date": "[ISO date]",
"colors": {
"primary": { "hex": "#XXXXXX", "rgb": "r,g,b", "usage": "description" },
"secondary": { "hex": "#XXXXXX", "rgb": "r,g,b", "usage": "description" },
"accent": { "hex": "#XXXXXX", "rgb": "r,g,b", "usage": "description" },
"neutrals": {
"background": "#XXXXXX",
"surface": "#XXXXXX",
"border": "#XXXXXX",
"text": "#XXXXXX",
"muted": "#XXXXXX"
},
"semantic": {
"success": "#XXXXXX",
"error": "#XXXXXX",
"warning": "#XXXXXX"
},
"contrast_issues": []
},
"typography": {
"heading_font": { "family": "", "weights": [], "source": "" },
"body_font": { "family": "", "weights": [], "source": "" },
"scale": {
"h1": { "size": "", "line_height": "", "weight": "", "letter_spacing": "" },
"h2": { "size": "", "line_height": "", "weight": "", "letter_spacing": "" },
"h3": { "size": "", "line_height": "", "weight": "", "letter_spacing": "" },
"body": { "size": "", "line_height": "", "weight": "" },
"small": { "size": "", "line_height": "", "weight": "" }
}
},
"logo": {
"type": "",
"orientations": [],
"colors": [],
"clear_space": "",
"min_size": "",
"background_usage": ""
},
"imagery": {
"photography_style": "",
"color_treatment": "",
"composition": "",
"icon_style": "",
"icon_source": ""
},
"spacing": {
"base_unit": "",
"scale": [],
"section_padding": "",
"container_max_width": "",
"grid_columns": "",
"border_radius": "",
"shadow_style": ""
},
"components": {
"buttons": {},
"cards": {},
"navigation": {},
"forms": {}
}
}
}
Also provide a human-readable summary:
BRAND STYLE GUIDE SUMMARY -- [Target]
---
Visual personality: [2-3 adjective description, e.g. "clean, modern, premium"]
Primary brand color: [hex] ([color name])
Heading font: [family]
Body font: [family]
Overall feel: [1 sentence description]
Notable patterns: [key observations]
Accessibility: [pass/fail + issues]
Example Usage
Trigger phrases:
- "Extract the brand style from kibisports.com"
- "Analyze this website's visual identity"
- "Build a brand style guide from these assets"
- "What fonts and colors does this brand use?"
- "Create a visual system document for this client"
User: Extract the visual brand from shop.kibisports.com
Assistant: [navigates to site, captures color palette, fonts, spacing, component styles, outputs brand_style_guide JSON]
User: I need the brand colors and fonts for a client pitch
Assistant: [requests URL or assets, analyzes visual system, outputs structured guide focused on colors and typography]
1---2name: visual-brand3description: Extract brand visual system from a website or brand assets into a structured style guide4---56# Visual Brand Extractor78Analyzes a website or brand assets to extract the complete visual identity system. Identifies colors, typography, logo usage, photography style, icon language, spacing patterns, and UI component styles. Outputs a structured brand style guide JSON that other creative skills (`ad-creative-brief`, `slide-creator`, `landing-page-copy`) can consume for brand-consistent output.910## Prerequisites1112- `agency.config.json` in the project root13- Target website URL or set of brand asset files (logos, screenshots, PDFs)14- Browser automation access (Claude-in-Chrome MCP) for live site analysis15- Optional: existing brand guidelines document for validation1617## Phase 0: Intake18191. Read `agency.config.json` from the project root.202. Extract `agency.name`, `agency.domain` for context on whether this is self-analysis or client analysis.213. Extract `services[]` to understand what brand contexts are relevant (e.g., Shopify themes, landing pages).224. Collect inputs from the user:23 - **Target**: website URL, or list of asset file paths24 - **Scope**: full brand audit, or specific elements only (colors, fonts, etc.)25 - **Context**: is this for a client project, competitor analysis, or internal use?2627## Phase 1: Color Extraction2829Analyze the target for all color usage:3031**Primary colors:**32- Identify the dominant brand color (used in CTAs, headers, logo)33- Extract exact hex, RGB, and HSL values3435**Secondary colors:**36- Supporting palette colors (used in backgrounds, accents, hover states)37- Extract all values3839**Neutral palette:**40- Background colors (white, off-white, grays)41- Text colors (body text, headings, muted text)42- Border and divider colors4344**Semantic colors:**45- Success, error, warning, info colors if present46- Sale/discount highlight colors4748**Color relationships:**49```50COLOR PALETTE:51---52Primary: #XXXXXX (rgb) -- usage: CTAs, headers, logo53Secondary: #XXXXXX (rgb) -- usage: accents, hover states54Accent: #XXXXXX (rgb) -- usage: highlights, badges5556Neutrals:57- Background: #XXXXXX58- Surface: #XXXXXX59- Border: #XXXXXX60- Text: #XXXXXX61- Muted: #XXXXXX6263Semantic:64- Success: #XXXXXX65- Error: #XXXXXX66- Warning: #XXXXXX67```6869Verify contrast ratios between text and background colors meet WCAG AA (4.5:1 for body text, 3:1 for large text). Flag any violations.7071## Phase 2: Typography Analysis7273Extract the complete type system:7475**Font families:**76- Heading font: family name, weight(s), source (Google Fonts, Adobe, custom)77- Body font: family name, weight(s), source78- Accent/display font if used79- Monospace font if present (code blocks, pricing)8081**Type scale:**82```83TYPOGRAPHY:84---85Heading font: [Family] -- weights: [300, 400, 700]86Body font: [Family] -- weights: [400, 500, 600]8788Scale:89- H1: [size]px / [line-height] / [weight] / [letter-spacing]90- H2: [size]px / [line-height] / [weight] / [letter-spacing]91- H3: [size]px / [line-height] / [weight] / [letter-spacing]92- H4: [size]px / [line-height] / [weight] / [letter-spacing]93- Body: [size]px / [line-height] / [weight]94- Small: [size]px / [line-height] / [weight]95- Caption: [size]px / [line-height] / [weight]9697Mobile overrides:98- H1: [size]px99- H2: [size]px100- Body: [size]px101```102103**Text styling patterns:**104- Uppercase usage (headings, labels, navigation)105- Letter-spacing patterns106- Text decoration (underlines on links, strikethroughs on prices)107108## Phase 3: Logo and Imagery109110**Logo analysis:**111```112LOGO:113---114Type: [wordmark / lettermark / icon+wordmark / abstract / mascot]115Orientation: [horizontal / vertical / icon-only variant]116Colors: [list of colors used]117Clear space: [approximate padding around logo]118Min size: [smallest observed usage]119Background usage: [light bg only / dark bg only / both with variants]120```121122**Photography style:**123- Subject matter (lifestyle, product-only, people, abstract)124- Color treatment (vibrant, muted, desaturated, warm, cool)125- Composition patterns (centered, rule-of-thirds, overhead, close-up)126- Background style (solid, gradient, environmental, transparent)127128**Illustration and icon style:**129- Icon type (outlined, filled, duotone, hand-drawn)130- Icon weight (thin, regular, bold)131- Corner style (rounded, sharp)132- Color application (mono, brand-colored, multi-color)133- Source library if identifiable (Heroicons, Feather, Phosphor, custom)134135## Phase 4: Spacing and Layout136137**Spacing system:**138```139SPACING:140---141Base unit: [4px / 8px]142Scale: [4, 8, 12, 16, 24, 32, 48, 64, 96, 128]143144Section padding: [top/bottom]145Container max-width: [px]146Grid columns: [12 / flexible]147Gutter width: [px]148Card padding: [px]149Button padding: [vertical horizontal]150Input padding: [vertical horizontal]151```152153**Component patterns:**154- Border radius (none, small, medium, large, full)155- Shadow styles (none, subtle, medium, elevated)156- Divider style (line, space, gradient)157158## Phase 5: UI Component Audit159160Catalog key component styles:161162**Buttons:**163```164BUTTONS:165- Primary: [bg color, text color, border-radius, padding, font-weight, hover state]166- Secondary: [outline/ghost style details]167- Tertiary: [text-only link style]168- Size variants: [sm, md, lg if present]169```170171**Cards:**172- Border vs shadow vs flat173- Image placement (top, left, background)174- Content padding175- Hover behavior176177**Navigation:**178- Style (horizontal, hamburger, sidebar)179- Active state treatment180- Dropdown style181182**Forms:**183- Input border style184- Focus state color185- Label placement (above, inline, floating)186- Error state style187188## Phase 6: Output189190Return the complete brand style guide as structured JSON:191192```json193{194 "brand_style_guide": {195 "target": "[URL or asset source]",196 "extracted_date": "[ISO date]",197 "colors": {198 "primary": { "hex": "#XXXXXX", "rgb": "r,g,b", "usage": "description" },199 "secondary": { "hex": "#XXXXXX", "rgb": "r,g,b", "usage": "description" },200 "accent": { "hex": "#XXXXXX", "rgb": "r,g,b", "usage": "description" },201 "neutrals": {202 "background": "#XXXXXX",203 "surface": "#XXXXXX",204 "border": "#XXXXXX",205 "text": "#XXXXXX",206 "muted": "#XXXXXX"207 },208 "semantic": {209 "success": "#XXXXXX",210 "error": "#XXXXXX",211 "warning": "#XXXXXX"212 },213 "contrast_issues": []214 },215 "typography": {216 "heading_font": { "family": "", "weights": [], "source": "" },217 "body_font": { "family": "", "weights": [], "source": "" },218 "scale": {219 "h1": { "size": "", "line_height": "", "weight": "", "letter_spacing": "" },220 "h2": { "size": "", "line_height": "", "weight": "", "letter_spacing": "" },221 "h3": { "size": "", "line_height": "", "weight": "", "letter_spacing": "" },222 "body": { "size": "", "line_height": "", "weight": "" },223 "small": { "size": "", "line_height": "", "weight": "" }224 }225 },226 "logo": {227 "type": "",228 "orientations": [],229 "colors": [],230 "clear_space": "",231 "min_size": "",232 "background_usage": ""233 },234 "imagery": {235 "photography_style": "",236 "color_treatment": "",237 "composition": "",238 "icon_style": "",239 "icon_source": ""240 },241 "spacing": {242 "base_unit": "",243 "scale": [],244 "section_padding": "",245 "container_max_width": "",246 "grid_columns": "",247 "border_radius": "",248 "shadow_style": ""249 },250 "components": {251 "buttons": {},252 "cards": {},253 "navigation": {},254 "forms": {}255 }256 }257}258```259260Also provide a human-readable summary:261```262BRAND STYLE GUIDE SUMMARY -- [Target]263---264Visual personality: [2-3 adjective description, e.g. "clean, modern, premium"]265Primary brand color: [hex] ([color name])266Heading font: [family]267Body font: [family]268Overall feel: [1 sentence description]269Notable patterns: [key observations]270Accessibility: [pass/fail + issues]271```272273## Example Usage274275**Trigger phrases:**276- "Extract the brand style from kibisports.com"277- "Analyze this website's visual identity"278- "Build a brand style guide from these assets"279- "What fonts and colors does this brand use?"280- "Create a visual system document for this client"281282```283User: Extract the visual brand from shop.kibisports.com284Assistant: [navigates to site, captures color palette, fonts, spacing, component styles, outputs brand_style_guide JSON]285```286287```288User: I need the brand colors and fonts for a client pitch289Assistant: [requests URL or assets, analyzes visual system, outputs structured guide focused on colors and typography]290```