Branding Integration Complete
Tier C — Historical. This document is a point-in-time snapshot preserved for reference. For current architecture, see CANONICAL_PLATFORM_ARCHITECTURE.md.
What You Now Have
1. Four Professional Brand Themes
Integrated into your Account Success Workbench:
Brand Blue (#4154A3)
- Deep corporate blue
- Default theme
- Professional, tech-focused
- Light & dark mode variants
Forest (#1E4D2B)
- Nature-inspired green
- Growth-oriented aesthetic
- Wellness/sustainability feel
- Secondary sage green accent
Paper (#5C4033)
- Warm neutral brown
- Craftsmanship aesthetic
- Publishing/design focused
- Tan/copper secondary
Mono White
- Minimalist approach
- Black on light, white on dark
- Universal compatibility
- Highest contrast
2. Logo Assets
Location: /public/logos/
All logos available in 4 brand styles:
brand-blue.svg— Blue variantforest.svg— Green variantpaper.svg— Brown variantmono-white.svg— White variant (universal)
Format: SVG (scalable, crisp at any size)
3. Branding System Files
File: packages/domain-shells/utils/branding.ts (215 lines)
Exports 7 key functions:
getBrandConfig() // Get full theme config
getThemeColors() // Get color palette
applyTheme() // Apply theme to DOM
getStoredTheme() // Get user preference
generateCSSVariables() // Generate CSS string
brandConfigs // All 4 themes
File: packages/domain-shells/components/theme-switcher.tsx (79 lines)
- Visual theme switcher component
- Shows logo preview for each theme
- Persists user selection
- Triggers DOM updates
4. Professional Integration
File: packages/domain-shells/account-success-shell-redesigned.tsx (Updated)
- Added branded logo to sidebar header
- Integrated theme system
- Uses stored user preference
- Professional brand presentation
5. Comprehensive Documentation
File: BRANDING_GUIDE.md (397 lines)
Complete reference covering:
- Theme architecture & color systems
- Usage examples for every function
- Theme details (colors, logos, use cases)
- Logo file locations & sizes
- Dark mode support
- Customization guide
- Complete API reference
- Best practices
Color Palettes
Brand Blue (Professional)
Light Mode:
Background: #ffffff
Foreground: #000000
Primary: #4154A3 (deep blue)
Secondary: #6B7ACC (lighter blue)
Muted: #808080
Border: #e5e5e5
Accent: #4154A3
Dark Mode:
Background: #111111
Foreground: #ffffff
Primary: #6B7ACC (lighter blue)
Secondary: #4154A3
Muted: #666666
Border: #333333
Accent: #7B8CDD
Forest (Growth-Oriented)
Light Mode:
Primary: #1E4D2B (forest green)
Secondary: #7BAE7F (sage green)
Dark Mode:
Primary: #7BAE7F
Secondary: #1E4D2B
Accent: #9FD5A4
Paper (Warm & Crafted)
Light Mode:
Primary: #5C4033 (warm brown)
Secondary: #C4956A (tan)
Dark Mode:
Primary: #C4956A
Secondary: #5C4033
Accent: #D9B896
Mono White (Minimalist)
Light Mode:
Primary: #000000 (black)
Secondary: #666666 (gray)
Dark Mode:
Primary: #ffffff (white)
Secondary: #cccccc (light gray)
Usage Examples
1. Apply Theme on App Load
useEffect(() => {
const { theme, mode } = getStoredTheme();
applyTheme(theme, mode);
}, []);
return <AccountSuccessShellRedesigned />;
}
2. Use Brand Logo
const config = getBrandConfig('forest');
return (
<header>
<Image
src={config.logo}
alt="Logo"
width={48}
height={48}
/>
</header>
);
}
3. Add Theme Switcher
return (
<section>
<h2>Appearance</h2>
<ThemeSwitcher />
</section>
);
}
4. Use Theme Colors in Components
const colors = getThemeColors('brand-blue', 'light');
return (
<div style={{ backgroundColor: colors.background }}>
<h1 style={{ color: colors.primary }}>Dashboard</h1>
</div>
);
}
Integration Points
Account Success Shell
✓ Branded logo in sidebar header (48x48px)
✓ Theme-aware styling
✓ Respects user preferences
✓ Smooth theme switching
Exported from Domain Shells
✓ All 5 branding functions
✓ ThemeSwitcher component
✓ 4 TypeScript types
✓ Full type safety
CSS Variables
✓ Auto-generated per theme
✓ Available in Tailwind classes
✓ Light & dark mode support
✓ Easy customization
Files Created/Updated
New Files
packages/domain-shells/utils/branding.ts (215 lines)
└─ Complete branding system
packages/domain-shells/components/theme-switcher.tsx (79 lines)
└─ Visual theme switcher
public/logos/brand-blue.svg
└─ Brand Blue variant
public/logos/forest.svg
└─ Forest Green variant
public/logos/paper.svg
└─ Paper Brown variant
public/logos/mono-white.svg
└─ Mono White variant
BRANDING_GUIDE.md (397 lines)
└─ Complete branding reference
Updated Files
packages/domain-shells/account-success-shell-redesigned.tsx
└─ Added logo display
└─ Integrated theme system
packages/domain-shells/index.ts
└─ Exported branding functions
└─ Exported ThemeSwitcher
└─ Exported theme types
TypeScript Types
BrandTheme
type BrandTheme = 'brand-blue' | 'forest' | 'paper' | 'mono-white';
ThemeMode
type ThemeMode = 'light' | 'dark';
BrandConfig
interface BrandConfig {
name: string;
logo: string;
logoWhite: string;
primaryColor: string;
secondaryColor?: string;
theme: {
light: ThemeColors;
dark: ThemeColors;
};
}
ThemeColors
interface ThemeColors {
background: string;
foreground: string;
primary: string;
secondary?: string;
muted: string;
border: string;
accent: string;
}
Customization
Add Your Own Theme
- Create logo SVG →
/public/logos/my-brand.svg - Add to
brandConfigsinbranding.ts:
'my-brand': {
name: 'My Brand',
logo: '/logos/my-brand.svg',
logoWhite: '/logos/my-brand-white.svg',
primaryColor: '#YOUR_COLOR',
theme: {
light: { /* colors */ },
dark: { /* colors */ },
},
}
- Update type:
type BrandTheme = '...' | 'my-brand'
API Quick Reference
// Get full configuration
const config = getBrandConfig('forest');
// Get color palette
const colors = getThemeColors('forest', 'light');
// Apply theme globally
applyTheme('forest', 'light');
// Get user preference
const { theme, mode } = getStoredTheme();
// Generate CSS string
const css = generateCSSVariables('forest', 'light');
Performance Notes
- Themes stored in localStorage (persisted across sessions)
- Lazy-loaded logos (SVG format for scalability)
- CSS variables computed once on theme change
- ThemeSwitcher component is lightweight
- No runtime theme calculation overhead
Dark Mode Support
Each theme includes optimized dark mode:
// Auto-adjusts all colors for dark mode
applyTheme('forest', 'dark');
Dark mode features:
- Lighter primary color for contrast
- Readable borders on dark backgrounds
- Accents that pop on dark UI
- Eye-friendly dark theme variants
Events
Listen for theme changes across your app:
window.addEventListener('theme-changed', (event: CustomEvent) => {
const { theme } = event.detail;
console.log(`Theme changed to ${theme}`);
// Re-render theme-dependent components
});
Summary
Your workbench now includes:
✅ 4 Professional Brand Themes — Blue, Forest, Paper, Mono White
✅ Branded Logo Integration — 4 SVG variants in sidebar
✅ Complete Branding System — 215 lines of production code
✅ Theme Switcher Component — Visual theme selection UI
✅ Light & Dark Modes — Full support for both modes
✅ Persistent Preferences — User choices saved locally
✅ TypeScript Types — 4 new exported types
✅ Comprehensive Docs — 397-line branding guide
✅ Easy Customization — Add your own themes
Next Steps
- Deploy — Push to production
- Test — Verify all 4 themes work
- Customize — Add your own brand theme
- Scale — Replicate across all 12+ apps
- Monitor — Track theme preferences
Files to Reference
Core Branding:
packages/domain-shells/utils/branding.tspackages/domain-shells/components/theme-switcher.tsx
Documentation:
BRANDING_GUIDE.md— Complete referenceBRANDING_INTEGRATION_COMPLETE.md— This file
Assets:
public/logos/brand-blue.svgpublic/logos/forest.svgpublic/logos/paper.svgpublic/logos/mono-white.svg
Integration:
packages/domain-shells/account-success-shell-redesigned.tsxpackages/domain-shells/index.ts
Ready to showcase your brand across all workbenches! 🎨