expand ai.json

expand.ai Brand Identity

A complete profile of expand.ai's visual system — colors, typography, components, and personality — extracted from https://expand.ai/. Built for designers, agents, and AI tools.

Quick Facts

Field Value
Primary #4B5563
Accent #C1E0BE
Body Font GeistMono
Heading Font GeistMono

Color Palette

Typography

Visual Assets

UI Components

Brand Personality

Tone: modern · Energy: medium · Audience: tech-savvy professionals

expand.ai Brand in the Wild

Real-world brand assets — ads, campaigns, marketing materials.

Working with these fonts

Not found on Google Fonts? Agent Instructions that you can follow if you have permission to use the fonts:

CharacterQuilt.com suggests this flow that can help:

  1. Open the company's homepage in a browser with DevTools open.
  2. In the Network tab, filter by "Font" (or by extension: woff2, woff, ttf, otf).
  3. Hard-reload the page and click around (pricing, blog, careers) — some weights only load on specific routes.
  4. For each captured font URL: right-click → Save As to download the file locally.
  5. View the page's CSS (DevTools → Sources, or curl the stylesheet URLs) and copy out the matching @font-face declarations. Rewrite each src: url(...) to point to your local file path.

Programmatic alternative: load the URL with Playwright or Puppeteer, listen for response events whose Content-Type starts with font/, and write the body to disk. The CSS extraction step is the same.

Only do this if you have permission to use the brand assets — most proprietary fonts are licensed and may not be redistributable.

Machine-Readable Profile

{
  "colorScheme": "light",
  "fonts": [
    {
      "family": "GeistMono",
      "role": "monospace"
    },
    {
      "family": "Roboto Mono",
      "role": "monospace"
    }
  ],
  "colors": {
    "primary": "#4B5563",
    "secondary": "#DFC2BE",
    "accent": "#C1E0BE",
    "background": "#F1F2ED",
    "textPrimary": "#000000",
    "link": "#C1E0BE"
  },
  "typography": {
    "fontFamilies": {
      "primary": "GeistMono",
      "heading": "GeistMono"
    },
    "fontStacks": {
      "heading": [
        "__departureMono_a422db",
        "__departureMono_Fallback_a422db"
      ],
      "body": [
        "GeistMono",
        "ui-monospace",
        "SFMono-Regular",
        "Roboto Mono",
        "Menlo",
        "Monaco",
        "Liberation Mono",
        "DejaVu Sans Mono",
        "Courier New",
        "monospace"
      ],
      "paragraph": [
        "GeistMono",
        "ui-monospace",
        "SFMono-Regular",
        "Roboto Mono",
        "Menlo",
        "Monaco",
        "Liberation Mono",
        "DejaVu Sans Mono",
        "Courier New",
        "monospace"
      ]
    },
    "fontSizes": {
      "h1": "16px",
      "h2": "48px",
      "body": "18px"
    }
  },
  "spacing": {
    "baseUnit": 4,
    "borderRadius": "0px"
  },
  "components": {
    "buttonPrimary": {
      "background": "#F1F2ED",
      "textColor": "#57534E",
      "borderColor": "#A8A29E",
      "borderRadius": "0px",
      "borderRadiusCorners": {
        "topLeft": "0px",
        "topRight": "0px",
        "bottomRight": "0px",
        "bottomLeft": "0px"
      },
      "shadow": "none"
    },
    "buttonSecondary": {
      "background": "transparent",
      "textColor": "#57534E",
      "borderColor": "#A8A29E",
      "borderRadius": "0px",
      "borderRadiusCorners": {
        "topLeft": "0px",
        "topRight": "0px",
        "bottomRight": "0px",
        "bottomLeft": "0px"
      },
      "shadow": "none"
    }
  },
  "images": {
    "logo": "data:image/svg+xml;utf8,%3Csvg%20width%3D%221576%22%20height%3D%22278%22%20viewBox%3D%220%200%201576%20278%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20class%3D%22h-8%20w-auto%22%20data-fc-idx%3D%220%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M50.742%20127.846l59.559-64.999h49.116v79.997l-59.558%2064.998H50.742v-79.996zM0%20105.725L74.975%2020.44h131.723v149.838l-74.975%2085.285H0V105.725zM812.855%20140.886v52.537h46.186v-52.537h-46.186zm69.382%2052.537v26.387h-92.372v-26.387h-23.196v-52.537h23.196v-26.387h69.383V88.113h-69.383V61.727h92.372v26.386h23.197v105.075h-23.197v.235zM697.286%2084.577v108.844H651.1V84.577h46.186zm-92.371%20154.785v38.637H651.1v-58.427h69.383v-26.386h23.196V84.342h-23.196V57.955h-92.372v26.387h-23.196V239.362zM1043.99%2088.346h23.2v131.462H1021V88.346h-46.183v131.462h-46.393V61.96h115.566v26.386zM373.778%2088.346h-46.186v52.538h46.186V88.346zm-69.382%20131.462v-26.387h-23.197V88.346h23.197V61.96h92.372v26.386h23.196v52.538h-23.196v26.386h-69.383v26.387h69.383v26.386h-92.372v-.235zM443.16%20163.505h46.186v-52.773H443.16V58.194h46.186v52.538h46.186V58.194h46.186v52.538h-46.186v52.773h46.186v52.537h-46.186v-52.537h-46.186v52.537H443.16v-52.537zM1136.57%20193.422V84.578h46.19v108.844h-46.19zm92.37-154.785V0h-46.18v58.427h-69.39v26.387h-23.19v108.844h23.19v26.386h92.38v-26.386h23.19V38.637z%22%20fill%3D%22%23161616%22%20style%3D%22fill%3A%20rgb(22%2C%2022%2C%2022)%20!important%3B%22%2F%3E%3Cpath%20d%3D%22M1298.33%20167.272h-46.19v52.538h46.19v-52.538z%22%20fill%3D%22%23161616%22%20style%3D%22fill%3A%20rgb(22%2C%2022%2C%2022)%20!important%3B%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M1367.71%20193.423h46.19v-52.537h-46.19v52.537zm69.38%200v26.387h-92.37v-26.387h-23.2v-52.537h23.2v-26.387h69.38V88.113h-69.38V61.727h92.37v26.386h23.2v105.075h-23.2v.235zM1483.28%2061.963h46.18v157.848h-46.18V61.963zm46.18-52.537h46.19v52.537h-46.19V9.426z%22%20fill%3D%22%23161616%22%20style%3D%22fill%3A%20rgb(22%2C%2022%2C%2022)%20!important%3B%22%2F%3E%3C%2Fsvg%3E",
    "favicon": null,
    "ogImage": "http://localhost:3000/og-image.png",
    "logoHref": "/"
  },
  "__llm_logo_reasoning": {
    "selectedIndex": 0,
    "reasoning": "Selected #0 because it is located in the header, is visible, and links to the homepage, aligning with the brand 'expand.ai'.",
    "confidence": 0.95,
    "source": "llm"
  },
  "__llm_button_reasoning": {
    "primary": {
      "index": 0,
      "text": "↗Join the waitlist",
      "reasoning": "Button #0 'Join the waitlist' has a distinct background color (#F1F2ED) and is action-oriented, making it a strong candidate for the primary CTA."
    },
    "secondary": {
      "index": 1,
      "text": "↗Get a type-safe API",
      "reasoning": "Button #1 'Get a type-safe API' is from a different color group (transparent) and serves as a secondary action, complementing the primary CTA."
    },
    "confidence": 0.9
  },
  "personality": {
    "tone": "modern",
    "energy": "medium",
    "targetAudience": "tech-savvy professionals"
  },
  "designSystem": {
    "framework": "tailwind",
    "componentLibrary": ""
  },
  "confidence": {
    "buttons": 0.9,
    "colors": 0.9,
    "overall": 0.9
  },
  "__llm_metadata": {
    "logoSelection": {
      "llmCalled": true,
      "llmSucceeded": true,
      "finalSource": "llm",
      "rawLogoSelection": {
        "selectedLogoIndex": 0,
        "selectedLogoReasoning": "Selected #0 because it is located in the header, is visible, and links to the homepage, aligning with the brand 'expand.ai'.",
        "confidence": 0.95
      }
    },
    "buttonClassification": {
      "llmCalled": true,
      "llmSucceeded": true
    }
  }
}