Home · Branding · Astral

Astral Brand Identity

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

Download JSON
Primary
#78876E
Accent
#D7FF64
Body Font
Roboto
Heading
Roboto

Color Palette

Brand palette extracted from https://astral.sh/.

primary
#78876E
rgb(120, 135, 110)
secondary
#6F5D6F
rgb(111, 93, 111)
accent
#D7FF64
rgb(215, 255, 100)
background
#F4F4F1
rgb(244, 244, 241)
textPrimary
#261230
rgb(38, 18, 48)
link
#261230
rgb(38, 18, 48)

Typography

Each font links to its Google Fonts page where available.

primary
Roboto
heading
Roboto
Alliance Platt, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, monospace, Apple Color Emoji, Segoe UI Emoji
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.

Visual Assets

Astral logo
Logo
Astral favicon
Favicon
Astral social image
Social Card

UI Components

Live previews rendered using Astral's actual button styles.

buttonPrimary
background #D7FF64 textColor #261230 borderRadius 6px shadow none
buttonSecondary
background #261230 textColor #FFFFFF borderColor #F5F5F2 borderRadius 6px shadow none

Brand Personality

Tone: professional Energy: medium Audience: developers and tech professionals

Astral Brand in the Wild

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

Frequently Asked Questions

What is Astral's primary brand color?

Astral's primary brand color is #78876E. It anchors the visual identity across their website, product UI, and marketing materials.

What accent color does Astral use?

Astral uses #D7FF64 as an accent color, typically applied to interactive elements like links, buttons, and call-to-action emphasis.

What font does Astral use?

Astral uses Roboto as the primary typeface across body and headings.

Does Astral use a light or dark theme?

Astral's primary site uses a light color scheme, with a background of #F4F4F1.

Where can I find Astral's logo?

Astral's logo is available directly on their site (https://astral.sh/). The current logo URL is included in the machine-readable JSON profile linked above.

How was this brand profile generated?

This profile was extracted from https://astral.sh/ using the Firecrawl branding extraction API, which inspects the live page's CSS, fonts, color tokens, and component styles. It is not affiliated with or endorsed by Astral.

Methodology

Brand data on this page was extracted from https://astral.sh/ on using the Firecrawl branding extraction API, which inspects each site's live CSS, font network requests, color tokens, and component styles. Brand-in-the-wild images were sourced via Google Image Search restricted to ad/webinar/report queries and link out to their original third-party publishers; we link to the source rather than re-hosting third-party content. This page is published by CharacterQuilt and is not affiliated with or endorsed by Astral.

Machine-Readable Profile

Direct endpoints for agents, designers, and tooling. No login or auth required.

{
  "colorScheme": "light",
  "fonts": [
    {
      "family": "Roboto",
      "role": "body"
    },
    {
      "family": "Helvetica",
      "role": "body"
    },
    {
      "family": "Arial",
      "role": "body"
    },
    {
      "family": "Alliance Text",
      "role": "unknown"
    }
  ],
  "colors": {
    "primary": "#78876E",
    "secondary": "#6F5D6F",
    "accent": "#D7FF64",
    "background": "#F4F4F1",
    "textPrimary": "#261230",
    "link": "#261230"
  },
  "typography": {
    "fontFamilies": {
      "primary": "Roboto",
      "heading": "Roboto"
    },
    "fontStacks": {
      "heading": [
        "Alliance Platt",
        "system-ui",
        "-apple-system",
        "Segoe UI",
        "Roboto",
        "Helvetica",
        "Arial",
        "monospace",
        "Apple Color Emoji",
        "Segoe UI Emoji"
      ],
      "body": [
        "Alliance Text",
        "system-ui",
        "-apple-system",
        "Segoe UI",
        "Roboto",
        "Helvetica",
        "Arial",
        "sans-serif",
        "Apple Color Emoji",
        "Segoe UI Emoji"
      ],
      "paragraph": [
        "Alliance Text",
        "system-ui",
        "-apple-system",
        "Segoe UI",
        "Roboto",
        "Helvetica",
        "Arial",
        "sans-serif",
        "Apple Color Emoji",
        "Segoe UI Emoji"
      ]
    },
    "fontSizes": {
      "h1": "100px",
      "h2": "48px",
      "body": "20px"
    }
  },
  "spacing": {
    "baseUnit": 4,
    "borderRadius": "6px"
  },
  "components": {
    "buttonPrimary": {
      "background": "#D7FF64",
      "textColor": "#261230",
      "borderRadius": "6px",
      "borderRadiusCorners": {
        "topLeft": "6px",
        "topRight": "6px",
        "bottomRight": "6px",
        "bottomLeft": "6px"
      },
      "shadow": "none"
    },
    "buttonSecondary": {
      "background": "#261230",
      "textColor": "#FFFFFF",
      "borderColor": "#F5F5F2",
      "borderRadius": "6px",
      "borderRadiusCorners": {
        "topLeft": "6px",
        "topRight": "6px",
        "bottomRight": "6px",
        "bottomLeft": "6px"
      },
      "shadow": "none"
    }
  },
  "images": {
    "logo": "data:image/svg+xml;utf8,%3Csvg%20width%3D%22154%22%20height%3D%2224%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20data-fc-idx%3D%220%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M103.68%202.396A2.396%202.396%200%200%201%20106.076%200h19.207a2.397%202.397%200%200%201%202.397%202.396V24h-11.04v-7.2h-1.92V24h-11.04V2.396Zm14.88%208.644V9.12h-5.76v1.92h5.76ZM0%202.396A2.396%202.396%200%200%201%202.396%200h19.207A2.396%202.396%200%200%201%2024%202.396V24H12.96v-7.2h-1.92V24H0V2.396Zm14.88%208.644V9.12H9.12v1.92h5.76Z%22%20fill%3D%22currentColor%22%20style%3D%22fill%3A%20rgb(38%2C%2018%2C%2048)%20!important%3B%22%2F%3E%3Cpath%20d%3D%22M25.92%202.396A2.397%202.397%200%200%201%2028.315%200h19.207a2.396%202.396%200%200%201%202.396%202.396V7.2H38.88V5.28h-1.92v3.84h10.564a2.396%202.396%200%200%201%202.396%202.397v10.087A2.396%202.396%200%200%201%2047.523%2024H28.316a2.397%202.397%200%200%201-2.397-2.396V16.8h11.04v1.92h1.92v-3.84H28.316a2.397%202.397%200%200%201-2.397-2.397V2.396ZM75.84%203.84H64.8V0H53.76v3.84h-1.92v9.12h1.92v8.643A2.396%202.396%200%200%200%2056.155%2024h19.683v-9.12H64.8v-1.92h8.644a2.397%202.397%200%200%200%202.396-2.397V3.84Z%22%20fill%3D%22currentColor%22%20style%3D%22fill%3A%20rgb(38%2C%2018%2C%2048)%20!important%3B%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M101.76%202.396A2.397%202.397%200%200%200%2099.363%200H77.76v24H88.8v-7.2h1.92V24h11.04v-9.12h-4.8v-1.92h2.403a2.397%202.397%200%200%200%202.397-2.397V2.396ZM92.64%209.12v1.92h-5.76V9.12h5.76Z%22%20fill%3D%22currentColor%22%20style%3D%22fill%3A%20rgb(38%2C%2018%2C%2048)%20!important%3B%22%2F%3E%3Cpath%20d%3D%22M140.64%2014.88h12.96V24h-24V0h11.04v14.88Z%22%20fill%3D%22currentColor%22%20style%3D%22fill%3A%20rgb(38%2C%2018%2C%2048)%20!important%3B%22%2F%3E%3C%2Fsvg%3E",
    "favicon": "https://astral.sh/static/apple-touch-icon.png",
    "ogImage": "https://astral.sh/static/OpenGraph/Astral.jpg",
    "logoHref": "/"
  },
  "__llm_logo_reasoning": {
    "selectedIndex": 0,
    "reasoning": "Selected #0 because it is visible, located in the header, and links to the homepage, which are strong indicators of a primary brand logo.",
    "confidence": 0.9,
    "source": "llm"
  },
  "__llm_button_reasoning": {
    "primary": {
      "index": 1,
      "text": "Get Started",
      "reasoning": "Button #1 has a vibrant green background (#D7FF64), which is typically used for primary CTAs. The text 'Get Started' is action-oriented, making it a strong candidate for the primary button."
    },
    "secondary": {
      "index": 3,
      "text": "Browse Docs",
      "reasoning": "Button #3 has a dark background (#261230) and the text 'Browse Docs', which is less prominent than 'Get Started'. It provides a secondary action, making it suitable as a secondary button."
    },
    "confidence": 0.95
  },
  "personality": {
    "tone": "professional",
    "energy": "medium",
    "targetAudience": "developers and tech professionals"
  },
  "designSystem": {
    "framework": "custom",
    "componentLibrary": ""
  },
  "confidence": {
    "buttons": 0.95,
    "colors": 0.9,
    "overall": 0.925
  },
  "__llm_metadata": {
    "logoSelection": {
      "llmCalled": true,
      "llmSucceeded": true,
      "finalSource": "llm",
      "rawLogoSelection": {
        "selectedLogoIndex": 0,
        "selectedLogoReasoning": "Selected #0 because it is visible, located in the header, and links to the homepage, which are strong indicators of a primary brand logo.",
        "confidence": 0.9
      }
    },
    "buttonClassification": {
      "llmCalled": true,
      "llmSucceeded": true
    }
  }
}

Related Brand Profiles