Skip to content
prod e051e98
Browse

2 · Brand kit

Objective — build the single source of truth for visual identity — brand name, logo variations, a WCAG-checked color palette, bilingual-RTL typography, committed reference files, and marketing assets — so every later surface (email templates, social, marketing pages) consumes one consistent set of values.

The brand kit is the single source of truth for visual identity: colors, fonts, logos, and usage rules. Build it before configuring email templates, social handles, or marketing pages — every one of those consumes these values.

flowchart LR
A["1. Brand name"] --> B["2. Logo variations"]
B --> C["3. Color palette<br/>(WCAG 4.5:1)"]
C --> D["4. Typography"]
D --> E["5. Commit reference files"]
E --> F["6. Design tools"]
F --> G["7. Marketing assets"]

Confirm a name that’s available, defensible, and consistent across domain and social handles before anything else depends on it.

  1. Check availability at Namechk and Domainr.

    • ✅ The candidate name’s domain and handles are checked.
  2. Verify against the criteria — domain available (or already owned), searchable and pronounceable, no trademark conflicts, social handles available across platforms.

    • ✅ A confirmed brand name and domain.

Generate the full asset set so every app and marketing surface has the right logo at the right size.

  1. Export every asset the app and marketing surfaces need. Generate with AI tools (Midjourney, DALL·E, Looka, or Canva).

    AssetSizeFormatUse
    Logo (light bg)200×60pxPNG (transparent)Light mode
    Logo (dark bg)200×60pxPNG (transparent)Dark mode
    Icon only512×512pxPNGApp icon, favicon source
    Favicon32×32pxICO/PNGBrowser tab
    Social image1200×630pxPNG/JPGOpen Graph
    • ✅ All five assets exported.
  2. Save them under the app’s upload path.

    uploads/logo/
    ├── logo_light.png
    ├── logo_dark.png
    ├── icon.png
    ├── favicon.png
    └── og-image.png
    • ✅ The logo reads on both light AND dark backgrounds, and the favicon is legible at 16×16.

Define the complete color system, then run every text/background combination through a WCAG contrast check.

  1. Define the complete color system, then run every text/background combination through the WebAIM Contrast Checker for a WCAG 4.5:1 minimum. The hex values below are placeholders — fill them with your palette.

    Primary colors:

    RoleHexUsage
    Primary#______CTAs, links, active states
    Primary Hover#______Hover states, emphasis
    Primary Accent#______Badges, highlights

    Light-mode neutrals:

    RoleHexUsage
    Background#F8FAFBPage backgrounds
    Text Primary#1A1F26Headlines, body
    Text Secondary#6B7280Captions, muted
    Border#D1D5DBDividers, borders

    Dark-mode neutrals:

    RoleHexUsage
    Background#0F1419Page backgrounds
    Text Primary#E8ECEFHeadlines, body
    Text Secondary#6B7280Captions, muted
    Border#374151Dividers, borders

    Semantic colors:

    RoleHexUsage
    Success#22C55ESuccess messages
    Warning#F59E0BWarnings, alerts
    Error#EF4444Errors, destructive
    Info#3B82F6Information, tooltips
    • ✅ Every text/background combination passes WCAG 4.5:1.

Tools: Coolors for palette generation, Realtime Colors to preview in context, Contrast Checker for WCAG.

Select a heading font and a body font — and Arabic/RTL fonts for bilingual projects so the layout doesn’t fall back to a system font mid-page.

  1. Select a heading font and a body font. For bilingual projects, add Arabic/RTL fonts.

    Bilingual (English + Arabic):

    UseEnglish fontArabic font
    HeadingsPoppins BoldNoto Kufi Arabic Bold
    BodyMontserrat RegularNoto Kufi Arabic Medium

    English-only pairings:

    HeadingBodyStyle
    PoppinsMontserratProfessional (recommended default)
    OutfitPlus Jakarta SansFriendly, tech
    ManropeDM SansGeometric, minimal
    InterInterClean, modern (common — verify contrast on your palette)
    • ✅ A heading + body pairing is chosen (with RTL fonts if bilingual).
  2. Prepare the CSS variables the app theme will consume.

    @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&family=Montserrat:wght@400;500;600&family=Noto+Kufi+Arabic:wght@400;500;700&display=swap');
    :root {
    --font-heading: 'Poppins', Arial, Helvetica, sans-serif;
    --font-body: 'Montserrat', Arial, Helvetica, sans-serif;
    --font-heading-ar: 'Noto Kufi Arabic', 'Segoe UI', Tahoma, sans-serif;
    --font-body-ar: 'Noto Kufi Arabic', 'Segoe UI', Tahoma, sans-serif;
    }
    • ✅ The font CSS variables are prepared for the theme.

Write all values from sections 1–4 into versioned reference files so the brand is reproducible and the agent can read it later.

  1. Write the brand reference files under the project brand folder.

    Admin-Local/1-Project/0-Brand/
    ├── README.md # Complete brand reference
    ├── colors/
    │ └── color-palette.md # All hex codes (quick-reference)
    └── fonts/
    └── typography.md # Font families + CSS variables
    • ✅ The brand reference files exist with colors, typography, and assets.
  2. Fill the brand-reference template with all six sections — Colors, Typography, Logo URLs, Button styles, Link URLs, Contact info — then commit.

    Terminal window
    # Stage only the brand folder created in step 1. (git add aborts the whole
    # command with "fatal: pathspec … did not match" if you list a path that
    # doesn't exist — so don't add files you haven't written.)
    git add Admin-Local/1-Project/0-Brand/
    git commit -m "docs(brand): create brand kit reference with colors, typography, and assets"
    # Expected: a commit lands with the brand reference files staged
    • ✅ The brand reference + template are committed to the repo.

Load the brand into the design tools so non-developers stay on-brand.

  1. Canva Brand Kit — add the fonts (Poppins, Montserrat, + Arabic if bilingual) and all brand colors so non-developers stay on-brand.

    • ✅ The Canva Brand Kit holds the fonts and colors.
  2. Figma Variables (optional) — create a Variables collection for colors, typography, and spacing.

    • ✅ A Figma Variables collection exists (if used).

Produce the recurring marketing assets up front so launch and email work isn’t blocked later.

  1. Produce the recurring marketing assets and save them under the upload paths.

    AssetSizePurpose
    Hero image1200×800Landing page
    Feature screenshots800×600Marketing
    Dashboard preview1400×900Product demo
    Email header600×200Newsletters
    Social media banner1500×500Twitter/LinkedIn
    • ✅ Core marketing assets are exported to uploads/marketing/ and uploads/email/.

Do not mark this step done until every box below is checked.

  • 👤 Brand name + domain confirmed — availability checked, no trademark conflicts.
  • 👤 Logo set exported — light, dark, icon, favicon, OG — legible on both backgrounds.
  • 👤 Palette defined — every combination passes WCAG 4.5:1.
  • 👤 Typography chosen — CSS variables prepared (with RTL fonts if bilingual).
  • 🤖 Reference files committed — under Admin-Local/1-Project/0-Brand/.
  • 👤 Core marketing assets exported — hero, screenshots, banners.