refactor: move nested skills to root + add ui-ux-pro-max + ConsentOS

- Extract 9 nested skills from website-creator/ to root skills/
- Remove duplicate seo-analyzers, seo-geo, seo-multi-channel from website-creator
- Add new ui-ux-pro-max skill with full UI/UX data
- Update install-skills.sh to sync properly
- Remove .DS_Store artifacts

Moved skills:
- api-and-interface-design
- banner-design
- brand
- design-system
- design
- frontend-ui-engineering
- slides
- spec-driven-development
- ui-styling
This commit is contained in:
2026-04-22 09:55:41 +07:00
parent a29b7af4b8
commit 8a0edd225d
242 changed files with 9934 additions and 2942 deletions

View File

@@ -0,0 +1,169 @@
# Asset Approval Checklist
Comprehensive checklist for reviewing marketing assets before approval.
## Quick Review
Before detailed review, verify:
- [ ] Asset serves stated purpose
- [ ] Target audience appropriate
- [ ] No obvious errors or issues
- [ ] Aligns with campaign goals
## Visual Elements
### Logo Usage
- [ ] Correct logo variant for context
- [ ] Proper clear space maintained
- [ ] Minimum size requirements met
- [ ] Approved colors only
- [ ] No unauthorized modifications
- [ ] Appropriate for background
### Color Compliance
- [ ] Uses brand palette colors only
- [ ] Primary/secondary ratio appropriate (60/30/10)
- [ ] Semantic colors used correctly
- [ ] No off-brand colors introduced
- [ ] Consistent across all elements
### Typography
- [ ] Brand fonts used throughout
- [ ] Correct font weights applied
- [ ] Proper type hierarchy
- [ ] Appropriate sizes for medium
- [ ] Line heights adequate
- [ ] No orphans/widows in body text
### Imagery
- [ ] Matches brand photography style
- [ ] Appropriate subjects/content
- [ ] Quality meets requirements
- [ ] Properly licensed/credited
- [ ] Optimized for intended use
## Accessibility
### Visual Accessibility
- [ ] Text contrast ratio >= 4.5:1 (AA)
- [ ] Large text contrast >= 3:1
- [ ] Interactive elements have visible focus
- [ ] Color not sole indicator of meaning
- [ ] Alt text for all images
### Content Accessibility
- [ ] Clear and scannable layout
- [ ] Readable font sizes
- [ ] Logical reading order
- [ ] Meaningful headings structure
- [ ] Links describe destination
## Content Quality
### Copy Review
- [ ] Matches brand voice
- [ ] Appropriate tone for context
- [ ] No prohibited terms used
- [ ] Value proposition clear
- [ ] CTA compelling and clear
- [ ] Proofread for errors
### Messaging
- [ ] Aligns with key messages
- [ ] Differentiators highlighted
- [ ] Benefits over features
- [ ] Target audience addressed
- [ ] No conflicting claims
## Technical Requirements
### File Specifications
- [ ] Correct file format
- [ ] Appropriate resolution
- [ ] File size optimized
- [ ] Proper naming convention
- [ ] Metadata included
### Platform Requirements
| Platform | Verified |
|----------|----------|
| Instagram | [ ] Correct dimensions |
| Twitter/X | [ ] Meets requirements |
| LinkedIn | [ ] Professional standards |
| Facebook | [ ] Guidelines compliant |
| Email | [ ] Size under 1MB |
| Web | [ ] Optimized for web |
## Legal & Compliance
### Intellectual Property
- [ ] Stock images licensed
- [ ] Music/audio cleared
- [ ] No trademark violations
- [ ] User content authorized
- [ ] Credits included where needed
### Regulatory
- [ ] Required disclosures present
- [ ] No misleading claims
- [ ] Pricing accurate
- [ ] Terms linked where needed
- [ ] Privacy compliant
## Review Status
### Reviewer Sign-off
| Review Area | Reviewer | Date | Status |
|-------------|----------|------|--------|
| Visual Design | | | [ ] Pass / [ ] Revisions |
| Copy/Content | | | [ ] Pass / [ ] Revisions |
| Brand Compliance | | | [ ] Pass / [ ] Revisions |
| Technical | | | [ ] Pass / [ ] Revisions |
| Legal | | | [ ] Pass / [ ] Revisions |
### Final Approval
- [ ] All review areas passed
- [ ] Revisions completed (if any)
- [ ] Final version uploaded
- [ ] Metadata updated
- [ ] Ready for publish/use
**Approved By:** _______________
**Date:** _______________
**Version:** _______________
## Common Issues & Fixes
| Issue | Fix |
|-------|-----|
| Logo too small | Increase to minimum size |
| Wrong font | Replace with brand font |
| Low contrast | Adjust colors for accessibility |
| Off-brand color | Replace with palette color |
| Blurry image | Use higher resolution source |
| Missing alt text | Add descriptive alt text |
| Weak CTA | Strengthen action-oriented copy |
## Automation Support
The `validate-asset.cjs` script can auto-check:
- Color palette compliance
- Minimum dimensions
- File format/size
- Naming convention
- Basic metadata
Run: `node .claude/skills/brand/scripts/validate-asset.cjs <asset-path>`
## Archival
After approval:
1. Update asset status in manifest.json
2. Add approver and timestamp
3. Move previous versions to archive
4. Update campaign tracking
5. Notify relevant teams

View File

@@ -0,0 +1,157 @@
# Asset Organization Guide
Guidelines for organizing marketing assets in a structured, searchable system.
## Directory Structure
```
project-root/
├── .assets/ # Git-tracked metadata
│ ├── manifest.json # Central asset registry
│ ├── tags.json # Tagging system
│ ├── versions/ # Version history
│ │ └── {asset-id}/
│ │ └── v{n}.json
│ └── metadata/ # Type-specific metadata
│ ├── designs.json
│ ├── banners.json
│ ├── logos.json
│ └── videos.json
├── assets/ # Raw files
│ ├── designs/
│ │ ├── campaigns/ # Campaign-specific designs
│ │ ├── web/ # Website graphics
│ │ └── print/ # Print materials
│ ├── banners/
│ │ ├── social-media/ # Platform banners
│ │ ├── email-headers/ # Email template headers
│ │ └── landing-pages/ # Hero/section images
│ ├── logos/
│ │ ├── full-horizontal/ # Full logo with wordmark
│ │ ├── icon-only/ # Symbol only
│ │ ├── monochrome/ # Single color versions
│ │ └── variations/ # Special versions
│ ├── videos/
│ │ ├── ads/ # Promotional videos
│ │ ├── tutorials/ # How-to content
│ │ └── testimonials/ # Customer videos
│ ├── infographics/ # Data visualizations
│ └── generated/ # AI-generated assets
│ └── {YYYYMMDD}/ # Date-organized
```
## Naming Convention
### Format
```
{type}_{campaign}_{description}_{timestamp}_{variant}.{ext}
```
### Components
| Component | Format | Required | Examples |
|-----------|--------|----------|----------|
| type | lowercase | Yes | banner, logo, design, video |
| campaign | kebab-case | Yes* | claude-launch, q1-promo, evergreen |
| description | kebab-case | Yes | hero-image, email-header |
| timestamp | YYYYMMDD | Yes | 20251209 |
| variant | kebab-case | No | dark-mode, 1x1, mobile |
*Use "evergreen" for non-campaign assets
### Examples
```
banner_claude-launch_hero-image_20251209_16-9.png
logo_brand-refresh_horizontal-full-color_20251209.svg
design_holiday-campaign_email-hero_20251209_dark-mode.psd
video_product-demo_feature-walkthrough_20251209.mp4
infographic_evergreen_pricing-comparison_20251209.png
```
## Metadata Schema
### Asset Entry (manifest.json)
```json
{
"id": "uuid-v4",
"name": "Campaign Hero Banner",
"type": "banner",
"path": "assets/banners/landing-pages/banner_claude-launch_hero-image_20251209.png",
"dimensions": { "width": 1920, "height": 1080 },
"fileSize": 245760,
"mimeType": "image/png",
"tags": ["campaign", "hero", "launch"],
"status": "approved",
"source": {
"model": "imagen-4",
"prompt": "...",
"createdAt": "2025-12-09T10:30:00Z"
},
"version": 2,
"createdBy": "agent:content-creator",
"approvedBy": "user:john",
"approvedAt": "2025-12-09T14:00:00Z"
}
```
### Version Entry (versions/{id}/v{n}.json)
```json
{
"version": 2,
"previousVersion": 1,
"path": "assets/banners/landing-pages/banner_claude-launch_hero-image_20251209_v2.png",
"changes": "Updated CTA button color to match brand refresh",
"createdAt": "2025-12-09T12:00:00Z",
"createdBy": "agent:ui-designer"
}
```
## Tagging System
### Standard Tags
| Category | Values |
|----------|--------|
| status | draft, review, approved, archived |
| platform | instagram, twitter, linkedin, facebook, youtube, email, web |
| content-type | promotional, educational, brand, product, testimonial |
| format | 1x1, 4x5, 9x16, 16x9, story, reel, banner |
| source | imagen-4, veo-3, user-upload, canva, figma |
### Tag Usage
- Each asset should have: status + platform + content-type
- Optional: format, source, campaign
## File Organization Best Practices
1. **One file per variant** - Don't combine dark/light in one file
2. **Source files separate** - Keep .psd/.fig in same structure
3. **AI assets timestamped** - Auto-organize by generation date
4. **Archive don't delete** - Move to `archived/` with date prefix
5. **Large files external** - Videos > 100MB use cloud storage links
## Search Patterns
### By Type
```bash
# Find all banners
ls assets/banners/**/*
```
### By Campaign
```bash
# Find all assets for specific campaign
grep -l "claude-launch" .assets/manifest.json
```
### By Status
```bash
# Find approved assets only
jq '.assets[] | select(.status == "approved")' .assets/manifest.json
```
## Cleanup Workflow
1. Run `extract-colors.cjs` on new assets
2. Validate against brand guidelines
3. Update manifest.json with new entries
4. Tag appropriately
5. Remove duplicates/outdated versions

View File

@@ -0,0 +1,140 @@
# Brand Guidelines Template
Use this template to create comprehensive brand guidelines for any project.
## Document Structure
```markdown
# Brand Guidelines v{X.Y}
## Quick Reference
- **Primary Color:** #XXXXXX
- **Secondary Color:** #XXXXXX
- **Primary Font:** {font-family}
- **Voice:** {3 key traits}
## 1. Color Palette
### Primary Colors
| Name | Hex | RGB | Usage |
|------|-----|-----|-------|
| {Name} | #{hex} | rgb({r},{g},{b}) | Primary brand color, CTAs, headers |
| {Name} | #{hex} | rgb({r},{g},{b}) | Supporting accent |
### Secondary Colors
| Name | Hex | RGB | Usage |
|------|-----|-----|-------|
| {Name} | #{hex} | rgb({r},{g},{b}) | Secondary elements |
| {Name} | #{hex} | rgb({r},{g},{b}) | Highlights |
### Neutral Palette
| Name | Hex | RGB | Usage |
|------|-----|-----|-------|
| Background | #{hex} | rgb({r},{g},{b}) | Page backgrounds |
| Text Primary | #{hex} | rgb({r},{g},{b}) | Body text |
| Text Secondary | #{hex} | rgb({r},{g},{b}) | Captions, muted text |
| Border | #{hex} | rgb({r},{g},{b}) | Dividers, borders |
### Accessibility
- Text/Background Contrast: {ratio}:1 (WCAG {level})
- CTA Contrast: {ratio}:1
- All interactive elements meet WCAG 2.1 AA
## 2. Typography
### Font Stack
```css
--font-heading: '{Font}', sans-serif;
--font-body: '{Font}', sans-serif;
--font-mono: '{Font}', monospace;
```
### Type Scale
| Element | Font | Weight | Size (Desktop/Mobile) | Line Height |
|---------|------|--------|----------------------|-------------|
| H1 | {font} | 700 | 48px / 32px | 1.2 |
| H2 | {font} | 600 | 36px / 28px | 1.25 |
| H3 | {font} | 600 | 28px / 24px | 1.3 |
| H4 | {font} | 600 | 24px / 20px | 1.35 |
| Body | {font} | 400 | 16px / 16px | 1.5 |
| Small | {font} | 400 | 14px / 14px | 1.5 |
| Caption | {font} | 400 | 12px / 12px | 1.4 |
## 3. Logo Usage
### Variants
- **Primary:** Full horizontal logo with wordmark
- **Stacked:** Vertical arrangement for square spaces
- **Icon:** Symbol only for favicons, app icons
- **Monochrome:** Single color for limited palettes
### Clear Space
Minimum clear space = height of logo mark
### Minimum Size
- Digital: 80px width minimum
- Print: 25mm width minimum
### Don'ts
- Don't rotate or skew
- Don't change colors outside approved palette
- Don't add effects (shadows, gradients)
- Don't crop or modify proportions
- Don't place on busy backgrounds
## 4. Voice & Tone
### Brand Personality
{Trait 1}: {Description}
{Trait 2}: {Description}
{Trait 3}: {Description}
### Voice Chart
| Trait | We Are | We Are Not |
|-------|--------|------------|
| {Trait} | {Description} | {Anti-description} |
### Tone by Context
| Context | Tone | Example |
|---------|------|---------|
| Marketing | {tone} | "{example}" |
| Support | {tone} | "{example}" |
| Error Messages | {tone} | "{example}" |
| Success | {tone} | "{example}" |
### Prohibited Terms
- {term 1} (reason)
- {term 2} (reason)
## 5. Imagery Guidelines
### Photography Style
- {Lighting preference}
- {Subject guidelines}
- {Color treatment}
### Illustrations
- Style: {description}
- Colors: Brand palette only
- Stroke: {weight}px
### Icons
- Style: {outlined/filled/duotone}
- Size: 24px base grid
- Corner radius: {value}px
```
## Usage
1. Copy template above
2. Fill in brand-specific values
3. Save as `docs/brand-guidelines.md`
4. Reference in content workflows
## Extractable Fields
Scripts can extract:
- `colors.primary`, `colors.secondary`, `colors.neutral`
- `typography.heading`, `typography.body`
- `voice.traits`, `voice.prohibited`
- `logo.variants`, `logo.minSize`

View File

@@ -0,0 +1,186 @@
# Color Palette Management
Guidelines for defining, extracting, and enforcing brand colors.
## Color System Structure
### Hierarchy
```
Primary Colors (1-2)
├── Main brand color - Used for CTAs, headers, key elements
└── Supporting primary - Secondary emphasis
Secondary Colors (2-3)
├── Accent colors - Highlights, interactive states
└── Supporting visuals - Icons, illustrations
Neutral Palette (3-5)
├── Background colors - Page, card, modal backgrounds
├── Text colors - Headings, body, muted text
└── UI elements - Borders, dividers, shadows
Semantic Colors (4)
├── Success - #22C55E (green)
├── Warning - #F59E0B (amber)
├── Error - #EF4444 (red)
└── Info - #3B82F6 (blue)
```
## Color Documentation Format
### Markdown Table
```markdown
| Name | Hex | RGB | HSL | Usage |
|------|-----|-----|-----|-------|
| Primary Blue | #2563EB | rgb(37,99,235) | hsl(217,91%,53%) | CTAs, links |
```
### CSS Variables
```css
:root {
/* Primary */
--color-primary: #2563EB;
--color-primary-light: #3B82F6;
--color-primary-dark: #1D4ED8;
/* Secondary */
--color-secondary: #8B5CF6;
--color-accent: #F59E0B;
/* Neutral */
--color-background: #FFFFFF;
--color-surface: #F9FAFB;
--color-text-primary: #111827;
--color-text-secondary: #6B7280;
--color-border: #E5E7EB;
}
```
### Tailwind Config
```javascript
colors: {
primary: {
DEFAULT: '#2563EB',
50: '#EFF6FF',
100: '#DBEAFE',
500: '#3B82F6',
600: '#2563EB',
700: '#1D4ED8',
}
}
```
## Accessibility Requirements
### Contrast Ratios (WCAG 2.1)
| Level | Normal Text | Large Text | UI Components |
|-------|-------------|------------|---------------|
| AA | 4.5:1 | 3:1 | 3:1 |
| AAA | 7:1 | 4.5:1 | 4.5:1 |
### Checking Contrast
```javascript
// Formula for relative luminance
function luminance(r, g, b) {
const [rs, gs, bs] = [r, g, b].map(v => {
v /= 255;
return v <= 0.03928 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4);
});
return 0.2126 * rs + 0.7152 * gs + 0.0722 * bs;
}
function contrastRatio(l1, l2) {
const lighter = Math.max(l1, l2);
const darker = Math.min(l1, l2);
return (lighter + 0.05) / (darker + 0.05);
}
```
## Color Extraction
### From Images
Use `extract-colors.cjs` script to:
1. Load image file
2. Extract dominant colors using k-means clustering
3. Map to nearest brand colors
4. Report compliance percentage
### From Brand Guidelines
Parse markdown to extract:
- Hex values from tables
- CSS variable definitions
- Color names and usage descriptions
## Brand Compliance Validation
### Rules
1. **Primary color ratio**: 60-70% of design
2. **Secondary color ratio**: 20-30% of design
3. **Accent color ratio**: 5-10% of design
4. **Off-brand tolerance**: Max 20% non-palette colors
### Validation Output
```json
{
"compliance": 85,
"colors": {
"brand": ["#2563EB", "#8B5CF6", "#FFFFFF"],
"offBrand": ["#FF5500"],
"dominant": "#2563EB"
},
"issues": [
"Off-brand color #FF5500 detected (15% coverage)",
"Primary color underused (45% vs 60% target)"
]
}
```
## Color Usage Guidelines
### Do's
- Use primary for main CTAs and key elements
- Maintain consistent hover/active states
- Test all combinations for accessibility
- Document color decisions
### Don'ts
- Use more than 2-3 colors in single component
- Mix warm and cool tones without intent
- Use pure black (#000) for text (use #111 or similar)
- Rely solely on color for meaning (use icons/text too)
## Color Palette Examples
### Tech/SaaS
```
Primary: #2563EB (Blue)
Secondary: #8B5CF6 (Purple)
Accent: #10B981 (Emerald)
Background: #F9FAFB
Text: #111827
```
### Marketing/Creative
```
Primary: #F97316 (Orange)
Secondary: #EC4899 (Pink)
Accent: #14B8A6 (Teal)
Background: #FFFFFF
Text: #1F2937
```
### Professional/Corporate
```
Primary: #1E40AF (Navy)
Secondary: #475569 (Slate)
Accent: #0EA5E9 (Sky)
Background: #F8FAFC
Text: #0F172A
```
## Tools & Resources
- [Coolors](https://coolors.co) - Palette generation
- [WebAIM Contrast Checker](https://webaim.org/resources/contrastchecker/)
- [Tailwind Color Reference](https://tailwindcss.com/docs/customizing-colors)
- [Color Hunt](https://colorhunt.co) - Curated palettes

View File

@@ -0,0 +1,94 @@
# Brand Consistency Checklist
## Visual Consistency
### Logo
- [ ] Correct logo version used
- [ ] Proper clear space maintained
- [ ] Approved colors only
- [ ] Legible at all sizes
- [ ] No unauthorized modifications
### Colors
- [ ] Only brand palette colors
- [ ] Consistent color application
- [ ] Proper contrast for accessibility
- [ ] Color ratios maintained
### Typography
- [ ] Brand fonts used
- [ ] Correct weights/styles
- [ ] Proper hierarchy
- [ ] Consistent formatting
### Imagery
- [ ] Matches brand style
- [ ] Consistent editing/filters
- [ ] Appropriate subjects
- [ ] Quality standards met
## Voice Consistency
### Tone
- [ ] Matches brand personality
- [ ] Appropriate for context
- [ ] Consistent across channels
- [ ] No conflicting messages
### Language
- [ ] Brand terminology used
- [ ] Consistent capitalization
- [ ] Proper abbreviations
- [ ] Jargon level appropriate
### Messaging
- [ ] Aligns with key messages
- [ ] Value prop clear
- [ ] Differentiators highlighted
- [ ] CTAs consistent
## Channel Audit
### Website
- [ ] Homepage
- [ ] Product pages
- [ ] Blog/content
- [ ] Footer/navigation
### Social Media
- [ ] Profile images
- [ ] Cover images
- [ ] Bio/about sections
- [ ] Post templates
### Email
- [ ] Header/footer
- [ ] Templates
- [ ] Signatures
- [ ] Automated messages
### Collateral
- [ ] Presentations
- [ ] One-pagers
- [ ] Business cards
- [ ] Promotional materials
## Common Issues
| Issue | Fix |
|-------|-----|
| Outdated logo | Replace with current version |
| Off-brand colors | Update to palette |
| Wrong font | Replace with brand font |
| Inconsistent voice | Apply style guide |
| Mixed messaging | Align to framework |
## Audit Frequency
| Asset Type | Frequency |
|------------|-----------|
| Website | Monthly |
| Social profiles | Quarterly |
| Email templates | Quarterly |
| Sales materials | Quarterly |
| Full brand audit | Annually |

View File

@@ -0,0 +1,185 @@
# Logo Usage Rules
Guidelines for proper logo implementation across all marketing materials.
## Logo Variants
### Primary Variants
| Variant | File Name | Use Case |
|---------|-----------|----------|
| Full Horizontal | logo-full-horizontal.{ext} | Website headers, documents |
| Stacked | logo-stacked.{ext} | Square spaces, social avatars |
| Icon Only | logo-icon.{ext} | Favicons, app icons, small spaces |
| Wordmark Only | logo-wordmark.{ext} | When icon already present |
### Color Variants
| Variant | Use Case |
|---------|----------|
| Full Color | Default on white/light backgrounds |
| Reversed | On dark backgrounds |
| Monochrome Dark | On light backgrounds when color not possible |
| Monochrome Light | On dark backgrounds when color not possible |
## Clear Space
### Minimum Clear Space
The clear space around the logo should equal the height of the logo mark (icon portion).
```
┌─────────────────────────────┐
│ [x] │
│ ┌───────────────────┐ │
│ │ │ │
[x] │ │ [LOGO] │ [x] │
│ │ │ │
│ └───────────────────┘ │
│ [x] │
└─────────────────────────────┘
```
Where [x] = height of logo mark
## Minimum Size
### Digital
| Format | Minimum Width | Notes |
|--------|---------------|-------|
| Full Logo | 120px | All elements legible |
| Icon Only | 24px | Favicon/small icons |
| Icon Only | 32px | UI elements |
### Print
| Format | Minimum Width | Notes |
|--------|---------------|-------|
| Full Logo | 35mm | Business cards, letterhead |
| Icon Only | 10mm | Small print items |
## Color Usage
### Approved Backgrounds
| Background | Logo Version |
|------------|--------------|
| White | Full color or dark mono |
| Light gray (#F5F5F5+) | Full color or dark mono |
| Brand primary | Reversed (white) |
| Dark (#333 or darker) | Reversed (white) |
| Photography | Ensure sufficient contrast |
### Color Rules
1. Never change logo colors outside approved palette
2. Don't use gradients on the logo
3. Don't apply transparency to logo elements
4. Don't add shadows or effects
## Incorrect Usage
### Absolute Don'ts
- ❌ Stretch or compress logo
- ❌ Rotate at angles
- ❌ Add drop shadows
- ❌ Apply gradient fills
- ❌ Use unapproved colors
- ❌ Add strokes or outlines
- ❌ Place on busy backgrounds
- ❌ Crop any portion
- ❌ Rearrange elements
- ❌ Add additional elements
### Visual Examples
```
WRONG: Stretched WRONG: Rotated WRONG: Wrong color
┌──────────────┐ ┌────────┐ ┌────────┐
│ L O G O │ │ / │ │ LOGO │ <- wrong color
└──────────────┘ │ /LOGO │ └────────┘
└───────/
```
## Co-branding
### Partner Logo Guidelines
1. Equal visual weight (same height)
2. Adequate separation between logos
3. Use divider line if needed
4. Both logos in their approved colors
5. Clear space applies to both
### Layout Options
```
Option A: Side by side with divider
[OUR LOGO] | [PARTNER LOGO]
Option B: Stacked
[OUR LOGO]
+
[PARTNER LOGO]
```
## File Formats
### Recommended Formats
| Usage | Format | Notes |
|-------|--------|-------|
| Web | SVG | Preferred, scalable |
| Web fallback | PNG | With transparency |
| Print | PDF | Vector, high quality |
| Print alt | EPS | Legacy systems |
| Documents | PNG | High res (300dpi) |
### File Organization
```
assets/logos/
├── full-horizontal/
│ ├── logo-full-color.svg
│ ├── logo-full-color.png
│ ├── logo-reversed.svg
│ ├── logo-mono-dark.svg
│ └── logo-mono-light.svg
├── icon-only/
│ ├── icon-full-color.svg
│ ├── icon-reversed.svg
│ └── favicon.ico
└── monochrome/
├── logo-black.svg
└── logo-white.svg
```
## Platform-Specific Guidelines
### Social Media
| Platform | Format | Size | Notes |
|----------|--------|------|-------|
| LinkedIn | PNG | 300x300px | Icon only |
| Twitter/X | PNG | 400x400px | Icon only |
| Facebook | PNG | 180x180px | Icon only |
| Instagram | PNG | 320x320px | Icon only |
### Website
| Location | Variant | Size |
|----------|---------|------|
| Header | Full horizontal | 120-200px width |
| Footer | Full horizontal | 100-150px width |
| Favicon | Icon only | 32x32px |
| Apple Touch | Icon only | 180x180px |
### Documents
| Document | Variant | Placement |
|----------|---------|-----------|
| Letterhead | Full horizontal | Top left |
| Presentation | Icon + wordmark | Title slide |
| Report | Full horizontal | Cover + footer |
## Logo Approval Process
### Before Using Logo
1. Verify you have the correct version
2. Check background compatibility
3. Ensure minimum size requirements
4. Confirm clear space allocation
5. Review against these guidelines
### Requesting Approval
For non-standard uses:
1. Submit mockup showing proposed usage
2. Include context (medium, audience)
3. Wait for brand team approval
4. Document approved exceptions

View File

@@ -0,0 +1,85 @@
# Messaging Framework
## Framework Structure
```
Mission (Why we exist)
Vision (Where we're going)
Value Proposition (What we offer)
Positioning Statement (How we're different)
Key Messages (What we say)
Proof Points (Why to believe)
```
## Core Statements
### Mission Statement
```
We [action] for [audience] by [method] so they can [outcome].
```
### Vision Statement
```
A world where [aspiration/change we want to see].
```
### Value Proposition
```
For [target customer] who [need/problem],
[Product/Brand] is a [category]
that [key benefit].
Unlike [competitors],
we [unique differentiator].
```
### Positioning Statement
```
[Brand] is the [category] for [audience]
who want [desired outcome]
because [reason to believe].
```
## Message Architecture
### Primary Message
One sentence that captures your core value.
### Supporting Messages (3-5)
Each addresses a different benefit or audience need.
| Message | Audience Need | Proof Point |
|---------|---------------|-------------|
| [Message 1] | [Need] | [Evidence] |
| [Message 2] | [Need] | [Evidence] |
| [Message 3] | [Need] | [Evidence] |
### Elevator Pitches
**10-second:**
[One sentence that sparks interest]
**30-second:**
[Problem + solution + differentiation]
**60-second:**
[Full pitch with proof points]
## Message by Audience
| Audience | Pain Point | Key Message | CTA |
|----------|------------|-------------|-----|
| [Segment 1] | [Pain] | [Message] | [Action] |
| [Segment 2] | [Pain] | [Message] | [Action] |
## Message Testing
1. Is it clear? (No jargon)
2. Is it differentiated? (Competitors can't say it)
3. Is it credible? (Can we prove it)
4. Is it compelling? (Does audience care)
5. Is it consistent? (Aligns with brand)

View File

@@ -0,0 +1,214 @@
# Typography Specifications
Guidelines for defining and implementing brand typography.
## Font Stack Structure
### Primary Fonts
```css
/* Headings - Display font for impact */
--font-heading: 'Inter', system-ui, -apple-system, sans-serif;
/* Body - Readable for long-form content */
--font-body: 'Inter', system-ui, -apple-system, sans-serif;
/* Monospace - Code, technical content */
--font-mono: 'JetBrains Mono', 'Fira Code', monospace;
```
### Font Loading
```html
<!-- Google Fonts (recommended) -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
```
## Type Scale
### Base System
- Base size: 16px (1rem)
- Scale ratio: 1.25 (Major Third)
### Scale Definition
| Element | Size (rem) | Size (px) | Weight | Line Height |
|---------|------------|-----------|--------|-------------|
| Display | 3.815rem | 61px | 700 | 1.1 |
| H1 | 3.052rem | 49px | 700 | 1.2 |
| H2 | 2.441rem | 39px | 600 | 1.25 |
| H3 | 1.953rem | 31px | 600 | 1.3 |
| H4 | 1.563rem | 25px | 600 | 1.35 |
| H5 | 1.25rem | 20px | 600 | 1.4 |
| Body Large | 1.125rem | 18px | 400 | 1.6 |
| Body | 1rem | 16px | 400 | 1.5 |
| Small | 0.875rem | 14px | 400 | 1.5 |
| Caption | 0.75rem | 12px | 400 | 1.4 |
### Responsive Adjustments
```css
/* Mobile (< 768px) */
h1 { font-size: 2rem; } /* 32px */
h2 { font-size: 1.5rem; } /* 24px */
h3 { font-size: 1.25rem; } /* 20px */
body { font-size: 1rem; } /* 16px */
/* Desktop (>= 768px) */
h1 { font-size: 3rem; } /* 48px */
h2 { font-size: 2.25rem; } /* 36px */
h3 { font-size: 1.75rem; } /* 28px */
body { font-size: 1rem; } /* 16px */
```
## Font Weights
### Weight Scale
| Name | Value | Usage |
|------|-------|-------|
| Regular | 400 | Body text, paragraphs |
| Medium | 500 | Buttons, nav items |
| Semibold | 600 | Subheadings, emphasis |
| Bold | 700 | Headings, CTAs |
### Weight Pairing
- Headings: 600-700
- Body: 400
- Links: 500
- Buttons: 600
## Line Height Guidelines
### Rules
| Content Type | Line Height | Notes |
|--------------|-------------|-------|
| Headings | 1.1-1.3 | Tighter for visual impact |
| Body text | 1.5-1.6 | Optimal readability |
| Small text | 1.4-1.5 | Slightly tighter |
| Long-form | 1.6-1.75 | Extra comfortable |
## Letter Spacing
### Guidelines
| Element | Tracking | Value |
|---------|----------|-------|
| Display | Tighter | -0.02em |
| Headings | Normal | 0 |
| Body | Normal | 0 |
| All caps | Wider | 0.05em |
| Small caps | Wider | 0.1em |
## Paragraph Spacing
### Margins
```css
/* Heading spacing */
h1, h2 { margin-top: 2rem; margin-bottom: 1rem; }
h3, h4 { margin-top: 1.5rem; margin-bottom: 0.75rem; }
/* Paragraph spacing */
p { margin-bottom: 1rem; }
p + p { margin-top: 0; }
```
### Maximum Line Length
- Body text: 65-75 characters (optimal)
- Headings: Can be wider
- Code blocks: 80-100 characters
```css
.prose {
max-width: 65ch;
}
```
## CSS Implementation
### Full Variables
```css
:root {
/* Font Families */
--font-heading: 'Inter', system-ui, sans-serif;
--font-body: 'Inter', system-ui, sans-serif;
--font-mono: 'JetBrains Mono', monospace;
/* Font Sizes */
--text-xs: 0.75rem;
--text-sm: 0.875rem;
--text-base: 1rem;
--text-lg: 1.125rem;
--text-xl: 1.25rem;
--text-2xl: 1.5rem;
--text-3xl: 1.875rem;
--text-4xl: 2.25rem;
--text-5xl: 3rem;
/* Font Weights */
--font-normal: 400;
--font-medium: 500;
--font-semibold: 600;
--font-bold: 700;
/* Line Heights */
--leading-none: 1;
--leading-tight: 1.25;
--leading-snug: 1.375;
--leading-normal: 1.5;
--leading-relaxed: 1.625;
--leading-loose: 2;
}
```
### Tailwind Config
```javascript
theme: {
fontFamily: {
heading: ['Inter', 'system-ui', 'sans-serif'],
body: ['Inter', 'system-ui', 'sans-serif'],
mono: ['JetBrains Mono', 'monospace'],
},
fontSize: {
xs: ['0.75rem', { lineHeight: '1rem' }],
sm: ['0.875rem', { lineHeight: '1.25rem' }],
base: ['1rem', { lineHeight: '1.5rem' }],
lg: ['1.125rem', { lineHeight: '1.75rem' }],
xl: ['1.25rem', { lineHeight: '1.75rem' }],
'2xl': ['1.5rem', { lineHeight: '2rem' }],
'3xl': ['1.875rem', { lineHeight: '2.25rem' }],
'4xl': ['2.25rem', { lineHeight: '2.5rem' }],
'5xl': ['3rem', { lineHeight: '1.1' }],
}
}
```
## Common Font Pairings
### Clean & Modern
- Heading: Inter
- Body: Inter
### Professional
- Heading: Playfair Display
- Body: Source Sans Pro
### Startup/Tech
- Heading: Poppins
- Body: Open Sans
### Editorial
- Heading: Merriweather
- Body: Lato
## Accessibility
### Minimum Sizes
- Body text: 16px minimum
- Small text: 14px minimum, not for long content
- Caption: 12px minimum, use sparingly
### Contrast Requirements
- Text on background: 4.5:1 minimum (AA)
- Large text (18px+): 3:1 minimum
### Best Practices
- Don't use all caps for long text
- Avoid justified text (use left-align)
- Ensure adequate line spacing
- Don't use thin weights (<400) at small sizes

View File

@@ -0,0 +1,118 @@
Update brand colors, typography, and style - automatically syncs to all design system files.
<args>$ARGUMENTS</args>
## Overview
This command systematically updates:
1. `docs/brand-guidelines.md` - Human-readable brand doc
2. `assets/design-tokens.json` - Token source of truth
3. `assets/design-tokens.css` - Generated CSS variables
## Workflow
### Step 1: Gather Brand Input
Use `AskUserQuestion` to collect:
**Theme Selection:**
- Theme name (e.g., "Ocean Professional", "Electric Creative", "Forest Calm")
**Primary Color:**
- Color name (e.g., "Ocean Blue", "Coral", "Forest Green")
- Hex code (e.g., #3B82F6)
**Secondary Color:**
- Color name (e.g., "Golden Amber", "Electric Purple")
- Hex code
**Accent Color:**
- Color name (e.g., "Emerald", "Neon Mint")
- Hex code
**Brand Mood (for AI image generation):**
- Mood keywords (e.g., "professional, trustworthy, premium" or "bold, creative, energetic")
### Step 2: Update Brand Guidelines
Edit `docs/brand-guidelines.md`:
1. **Quick Reference table** - Update color names and hex codes
2. **Brand Concept section** - Update theme name and description
3. **Color Palette section** - Update Primary, Secondary, Accent colors with shades
4. **AI Image Generation section** - Update base prompt, keywords, mood descriptors
### Step 3: Sync to Design Tokens
Run the sync script:
```bash
node .claude/skills/brand/scripts/sync-brand-to-tokens.cjs
```
This will:
- Update `assets/design-tokens.json` with new color names and values
- Regenerate `assets/design-tokens.css` with correct CSS variables
### Step 4: Verify Sync
Confirm all files are updated:
```bash
# Check brand context extraction
node .claude/skills/brand/scripts/inject-brand-context.cjs --json | head -30
# Check CSS variables
grep "primary" assets/design-tokens.css | head -5
```
### Step 5: Report
Output summary:
- Theme: [name]
- Primary: [name] ([hex])
- Secondary: [name] ([hex])
- Accent: [name] ([hex])
- Files updated: brand-guidelines.md, design-tokens.json, design-tokens.css
## Files Modified
| File | Purpose |
|------|---------|
| `docs/brand-guidelines.md` | Human-readable brand documentation |
| `assets/design-tokens.json` | Token definitions (primitive→semantic→component) |
| `assets/design-tokens.css` | CSS variables for UI components |
## Skills Used
- `brand` - Brand context extraction and sync
- `design-system` - Token generation
## Examples
```bash
# Interactive mode
/brand:update
# With theme hint
/brand:update "Ocean Professional"
# Quick preset
/brand:update "midnight purple"
```
## Color Presets
If user specifies a preset name, use these defaults:
| Preset | Primary | Secondary | Accent |
|--------|---------|-----------|--------|
| ocean-professional | #3B82F6 Ocean Blue | #F59E0B Golden Amber | #10B981 Emerald |
| electric-creative | #FF6B6B Coral | #9B5DE5 Electric Purple | #00F5D4 Neon Mint |
| forest-calm | #059669 Forest Green | #92400E Warm Brown | #FBBF24 Sunlight |
| midnight-purple | #7C3AED Violet | #EC4899 Pink | #06B6D4 Cyan |
| sunset-warm | #F97316 Orange | #DC2626 Red | #FACC15 Yellow |
## Important
- **Always sync all three files** - Never update just brand-guidelines.md alone
- **Verify extraction** - Run inject-brand-context.cjs after update to confirm
- **Test image generation** - Optionally generate a test image to verify brand application

View File

@@ -0,0 +1,96 @@
# Visual Identity Basics
## Core Visual Elements
### Logo
- **Primary:** Full logo (horizontal/stacked)
- **Secondary:** Abbreviated version
- **Icon/Mark:** Symbol only
- **Clear space:** Minimum padding around logo
- **Minimum size:** Smallest readable size
### Color Palette
```
Primary Colors (1-2)
├── Main brand color
└── Supporting primary
Secondary Colors (2-3)
├── Accent colors
└── Supporting visuals
Neutrals (3-4)
├── Text colors
├── Background colors
└── UI elements
```
### Typography
| Usage | Font | Weight | Size |
|-------|------|--------|------|
| H1 | [Font] | Bold | 32-48px |
| H2 | [Font] | Semibold | 24-32px |
| Body | [Font] | Regular | 16-18px |
| Caption | [Font] | Regular | 12-14px |
## Visual Guidelines Template
```markdown
## Logo Usage
### Correct Usage
- [Guidelines for proper logo use]
### Incorrect Usage
- Don't stretch or distort
- Don't change colors (unless approved)
- Don't add effects
- Don't place on busy backgrounds
## Color Specifications
### Primary Palette
| Color | Hex | RGB | Usage |
|-------|-----|-----|-------|
| [Name] | #XXXXXX | r,g,b | [Where to use] |
### Accessibility
- Text contrast ratio: 4.5:1 minimum
- Button contrast: WCAG AA compliant
## Imagery Style
### Photography
- [Lighting preferences]
- [Subject guidelines]
- [Composition rules]
- [Editing style]
### Illustrations
- [Style description]
- [Color usage]
- [Complexity level]
### Icons
- [Style: outlined/filled/duotone]
- [Stroke weight]
- [Corner radius]
```
## Quick Checks
### Logo
- [ ] Correct version for context
- [ ] Sufficient clear space
- [ ] Legible at size used
- [ ] Correct color for background
### Colors
- [ ] From approved palette
- [ ] Accessible contrast
- [ ] Consistent across materials
### Typography
- [ ] Correct fonts
- [ ] Appropriate hierarchy
- [ ] Readable size

View File

@@ -0,0 +1,88 @@
# Brand Voice Framework
## Voice vs. Tone
**Voice** = Brand's personality (consistent)
**Tone** = How voice adapts to context (variable)
Example: A friendly brand (voice) might be celebratory in a win announcement but empathetic in a support response (tone).
## Voice Dimensions
### Tone Spectrum
```
Formal ←――――――――――――――→ Casual
[Legal docs] [Social media]
```
### Language Spectrum
```
Simple ←――――――――――――――→ Complex
[Consumer] [Technical B2B]
```
### Character Spectrum
```
Serious ←――――――――――――――→ Playful
[Finance] [Entertainment]
```
### Emotion Spectrum
```
Reserved ←――――――――――――――→ Expressive
[Corporate] [Lifestyle brand]
```
## Voice Development Process
### Step 1: Define Personality Traits
Choose 3-5 traits that describe your brand:
- Confident, not arrogant
- Friendly, not unprofessional
- Knowledgeable, not condescending
- Innovative, not gimmicky
- Authentic, not casual
### Step 2: Create Voice Chart
| Trait | Description | Do | Don't |
|-------|-------------|-----|-------|
| [Trait] | [Meaning] | [Example] | [Example] |
### Step 3: Context Adaptation
| Context | Tone Shift | Example |
|---------|------------|---------|
| Social media | More casual | "Hey there!" |
| Support | More empathetic | "We understand..." |
| Legal | More formal | "In accordance with..." |
| Sales | More confident | "You'll see results..." |
## Voice Testing
Ask these questions:
1. Does this sound like our brand?
2. Would a competitor say this?
3. Does it resonate with our audience?
4. Is it consistent with our values?
## Voice Guide Template
```markdown
## [Brand] Voice Guide
### We Are
- [Trait 1]: [Description]
- [Trait 2]: [Description]
- [Trait 3]: [Description]
### We Sound Like
[Example phrases]
### We Don't Sound Like
[Anti-examples]
### Sample Rewrites
Before: [Generic copy]
After: [Branded copy]
```