C

Composio Design System

8 colors20 componentsSatoshi / CerealAug 2026

---

version: alpha

name: Composio-design-analysis

description: A developer-tools brand for AI-agent tool integration whose marketing surfaces lean into a dark, technical aesthetic with a single deep-electric-blue voltage (`#0007cd`). The page floor is near-black (`#0f0f0f`); cards float above on subtle gray-tinted surfaces. abcDiatype carries display and body in a single sans family with weights 400-600. The brand's strongest visual signature is a four-pane terminal-style mockup (a 2×2 grid of dark code/output panels) with a central blue spotlight glow — used as the homepage hero anchor.

colors:

primary: "#0007cd"

primary-active: "#0005a3"

primary-glow: "#1a26ff"

ink: "#ffffff"

body: "#a8a8a8"

body-strong: "#ffffff"

muted: "#888888"

muted-soft: "#666666"

hairline: "#222222"

hairline-soft: "#1a1a1a"

hairline-strong: "#333333"

canvas: "#0f0f0f"

canvas-deep: "#000000"

surface-card: "#181818"

surface-card-elevated: "#222222"

surface-strong: "#2a2a2a"

on-primary: "#ffffff"

on-dark: "#ffffff"

accent-cyan: "#00d4ff"

accent-violet: "#7b3aed"

semantic-error: "#ff4d4d"

semantic-success: "#33d17a"

typography:

display-mega:

fontFamily: "'abcDiatype', ui-sans-serif, system-ui, sans-serif"

fontSize: 72px

fontWeight: 500

lineHeight: 1.05

letterSpacing: -2.16px

display-xl:

fontFamily: "'abcDiatype', ui-sans-serif, system-ui, sans-serif"

fontSize: 56px

fontWeight: 500

lineHeight: 1.05

letterSpacing: -1.68px

display-lg:

fontFamily: "'abcDiatype', ui-sans-serif, system-ui, sans-serif"

fontSize: 44px

fontWeight: 500

lineHeight: 1.1

letterSpacing: -1.32px

display-md:

fontFamily: "'abcDiatype', ui-sans-serif, system-ui, sans-serif"

fontSize: 32px

fontWeight: 500

lineHeight: 1.15

letterSpacing: -0.96px

display-sm:

fontFamily: "'abcDiatype', ui-sans-serif, system-ui, sans-serif"

fontSize: 24px

fontWeight: 500

lineHeight: 1.25

letterSpacing: -0.5px

title-md:

fontFamily: "'abcDiatype', ui-sans-serif, system-ui, sans-serif"

fontSize: 18px

fontWeight: 600

lineHeight: 1.4

letterSpacing: 0

title-sm:

fontFamily: "'abcDiatype', ui-sans-serif, system-ui, sans-serif"

fontSize: 16px

fontWeight: 600

lineHeight: 1.4

letterSpacing: 0

body-md:

fontFamily: "'abcDiatype', ui-sans-serif, system-ui, sans-serif"

fontSize: 16px

fontWeight: 400

lineHeight: 1.5

letterSpacing: 0

body-sm:

fontFamily: "'abcDiatype', ui-sans-serif, system-ui, sans-serif"

fontSize: 14px

fontWeight: 400

lineHeight: 1.5

letterSpacing: 0

caption:

fontFamily: "'abcDiatype', ui-sans-serif, system-ui, sans-serif"

fontSize: 13px

fontWeight: 400

lineHeight: 1.4

letterSpacing: 0

caption-uppercase:

fontFamily: "'abcDiatype', ui-sans-serif, system-ui, sans-serif"

fontSize: 11px

fontWeight: 600

lineHeight: 1.4

letterSpacing: 0.88px

textTransform: uppercase

code:

fontFamily: "'JetBrains Mono', 'Fira Code', monospace"

fontSize: 13px

fontWeight: 400

lineHeight: 1.5

letterSpacing: 0

button:

fontFamily: "'abcDiatype', ui-sans-serif, system-ui, sans-serif"

fontSize: 14px

fontWeight: 500

lineHeight: 1.0

letterSpacing: 0

nav-link:

fontFamily: "'abcDiatype', ui-sans-serif, system-ui, sans-serif"

fontSize: 14px

fontWeight: 500

lineHeight: 1.4

letterSpacing: 0

rounded:

none: 0px

xs: 4px

sm: 6px

md: 8px

lg: 12px

xl: 16px

pill: 9999px

full: 9999px

spacing:

xxs: 4px

xs: 8px

sm: 12px

base: 16px

md: 20px

lg: 24px

xl: 32px

xxl: 48px

section: 96px

components:

top-nav-dark:

backgroundColor: "{colors.canvas}"

textColor: "{colors.body-strong}"

typography: "{typography.nav-link}"

height: 64px

button-primary:

backgroundColor: "{colors.primary}"

textColor: "{colors.on-primary}"

typography: "{typography.button}"

rounded: "{rounded.md}"

padding: 10px 18px

height: 40px

button-primary-active:

backgroundColor: "{colors.primary-active}"

textColor: "{colors.on-primary}"

rounded: "{rounded.md}"

button-secondary-dark:

backgroundColor: "{colors.surface-card-elevated}"

textColor: "{colors.body-strong}"

typography: "{typography.button}"

rounded: "{rounded.md}"

padding: 10px 18px

height: 40px

button-outline:

backgroundColor: transparent

textColor: "{colors.body-strong}"

typography: "{typography.button}"

rounded: "{rounded.md}"

padding: 9px 17px

height: 40px

button-tertiary-text:

backgroundColor: transparent

textColor: "{colors.body}"

typography: "{typography.button}"

hero-band:

backgroundColor: "{colors.canvas}"

textColor: "{colors.body-strong}"

typography: "{typography.display-mega}"

padding: 96px

terminal-mockup-grid:

backgroundColor: "{colors.canvas-deep}"

textColor: "{colors.body-strong}"

typography: "{typography.code}"

rounded: "{rounded.xl}"

padding: 32px

terminal-pane:

backgroundColor: "{colors.surface-card}"

textColor: "{colors.body}"

typography: "{typography.code}"

rounded: "{rounded.lg}"

padding: 20px

feature-card:

backgroundColor: "{colors.surface-card}"

textColor: "{colors.body}"

typography: "{typography.title-md}"

rounded: "{rounded.xl}"

padding: 28px

toolkit-card:

backgroundColor: "{colors.surface-card}"

textColor: "{colors.body-strong}"

typography: "{typography.title-sm}"

rounded: "{rounded.lg}"

padding: 20px

toolkit-icon:

backgroundColor: "{colors.surface-card-elevated}"

rounded: "{rounded.md}"

size: 40px

spotlight-glow-card:

backgroundColor: "{colors.surface-card}"

textColor: "{colors.body-strong}"

typography: "{typography.display-md}"

rounded: "{rounded.xl}"

padding: 48px

code-block:

backgroundColor: "{colors.canvas-deep}"

textColor: "{colors.body}"

typography: "{typography.code}"

rounded: "{rounded.lg}"

padding: 20px

badge-pill:

backgroundColor: "{colors.surface-card-elevated}"

textColor: "{colors.body-strong}"

typography: "{typography.caption-uppercase}"

rounded: "{rounded.pill}"

padding: 4px 10px

text-input:

backgroundColor: "{colors.surface-card}"

textColor: "{colors.body-strong}"

typography: "{typography.body-md}"

rounded: "{rounded.md}"

padding: 12px 16px

height: 44px

search-input:

backgroundColor: "{colors.surface-card}"

textColor: "{colors.body-strong}"

typography: "{typography.body-md}"

rounded: "{rounded.md}"

padding: 10px 16px

height: 40px

cta-band-spotlight:

backgroundColor: "{colors.canvas}"

textColor: "{colors.body-strong}"

typography: "{typography.display-lg}"

padding: 96px

testimonial-card:

backgroundColor: "{colors.surface-card}"

textColor: "{colors.body}"

typography: "{typography.body-md}"

rounded: "{rounded.lg}"

padding: 24px

footer-dark:

backgroundColor: "{colors.canvas}"

textColor: "{colors.body}"

typography: "{typography.body-sm}"

padding: 64px 48px

footer-link:

backgroundColor: transparent

textColor: "{colors.body}"

typography: "{typography.body-sm}"

---

Overview

Section 01

Composio's marketing site reads like a serious developer-infrastructure brand — closer to Vercel or Stripe Docs in atmosphere than to a typical AI-tools startup. The base canvas is a near-black `{colors.canvas}` (#0f0f0f) holding white type and a single voltage of **deep electric blue** (`{colors.primary}` — #0007cd) carrying every primary CTA, brand wordmark, and atmospheric spotlight glow that backs the homepage hero.

Type runs **abcDiatype** as the single sans family across display, body, navigation, and captions. Display sits at weight 500 — confident but not bombastic. Code blocks and terminal mockups switch to JetBrains Mono.

The page rhythm is monolithic: dark canvas top to bottom with subtle elevation steps via card surfaces. The brand's strongest visual signature is a **four-pane terminal-style mockup** — a 2×2 grid of dark code/output panels with a central blue spotlight glow behind them.

**Key Characteristics:**

Single accent: `{colors.primary}` (#0007cd) for primary CTAs, wordmark, spotlight glows.
Single sans family: abcDiatype carries everything except code (JetBrains Mono).
Dark monolithic canvas: `{colors.canvas}` runs top to bottom; depth from `{colors.surface-card}` and `{colors.surface-card-elevated}` brightness steps.
Terminal-mockup hero: 2×2 grid of code/output panes is the brand signature.
Compact pill geometry: CTAs sit at `{rounded.md}` (8px), not full pills — developer-tool dialect.
Spotlight-glow atmospheric backdrop: a radial blue glow centered behind hero content.
96px section rhythm.

Colors

Section 02

Brand & Accent

Section 03
Composio Blue (`{colors.primary}` — #0007cd): Primary CTAs, wordmark, spotlight glow center.
Composio Blue Active (`{colors.primary-active}` — #0005a3): Press state.
Spotlight Glow Tone (`{colors.primary-glow}` — #1a26ff): Brighter blue used inside radial atmospheric glows.
Accent Cyan (`{colors.accent-cyan}` — #00d4ff): Sparingly on data-flow visualizations.
Accent Violet (`{colors.accent-violet}` — #7b3aed): Inside specific product illustrations only.

Surface

Section 04
Canvas (`{colors.canvas}` — #0f0f0f): Page floor — near-black.
Canvas Deep (`{colors.canvas-deep}` — #000000): Pure black for terminal mockup grids and code blocks.
Surface Card (`{colors.surface-card}` — #181818): Default content card.
Surface Card Elevated (`{colors.surface-card-elevated}` — #222222): Terminal panes, secondary buttons.
Surface Strong (`{colors.surface-strong}` — #2a2a2a): Dropdown menus.

Hairlines

Section 05
Hairline (`{colors.hairline}` — #222222): Default 1px divider.
Hairline Soft (`{colors.hairline-soft}` — #1a1a1a): Lighter divider.
Hairline Strong (`{colors.hairline-strong}` — #333333): Stronger panel outline.

Text

Section 06
Ink (`{colors.ink}` — #ffffff): Display headlines.
Body (`{colors.body}` — #a8a8a8): Default running-text — soft gray.
Body Strong (`{colors.body-strong}` — #ffffff): Same as ink.
Muted (`{colors.muted}` — #888888): Sub-titles, breadcrumbs.
Muted Soft (`{colors.muted-soft}` — #666666): Disabled text.
On Primary (`{colors.on-primary}` — #ffffff): White text on blue CTAs.

Semantic

Section 07
Success (`{colors.semantic-success}` — #33d17a): "Online", "active" indicators.
Error (`{colors.semantic-error}` — #ff4d4d): Validation errors.

Typography

Section 08

Font Family

Section 09

The system runs **abcDiatype** (Lineto) across every text role. Code blocks switch to **JetBrains Mono**. Fallback: `ui-sans-serif, system-ui, sans-serif`.

Hierarchy

Section 010

| Token | Size | Weight | Line Height | Letter Spacing | Use |

|---|---|---|---|---|---|

| `{typography.display-mega}` | 72px | 500 | 1.05 | -2.16px | Homepage hero h1 |

| `{typography.display-xl}` | 56px | 500 | 1.05 | -1.68px | Subsidiary heroes |

| `{typography.display-lg}` | 44px | 500 | 1.1 | -1.32px | Section heads |

| `{typography.display-md}` | 32px | 500 | 1.15 | -0.96px | Sub-section heads |

| `{typography.display-sm}` | 24px | 500 | 1.25 | -0.5px | Card group titles |

| `{typography.title-md}` | 18px | 600 | 1.4 | 0 | Component titles |

| `{typography.title-sm}` | 16px | 600 | 1.4 | 0 | Toolkit card titles |

| `{typography.body-md}` | 16px | 400 | 1.5 | 0 | Default body |

| `{typography.body-sm}` | 14px | 400 | 1.5 | 0 | Footer body |

| `{typography.caption}` | 13px | 400 | 1.4 | 0 | Photo captions |

| `{typography.caption-uppercase}` | 11px | 600 | 1.4 | 0.88px | Section labels, badge pills |

| `{typography.code}` | 13px | 400 | 1.5 | 0 | Code blocks — JetBrains Mono |

| `{typography.button}` | 14px | 500 | 1.0 | 0 | CTA pill labels |

| `{typography.nav-link}` | 14px | 500 | 1.4 | 0 | Top-nav menu |

Principles

Section 011
Display weight stays at 500. Confident but not display-bold.
abcDiatype across every role. No display/body family split.
JetBrains Mono on every code surface.

Note on Font Substitutes

Section 012

abcDiatype is a Lineto licensed typeface. Open-source substitute: **Inter** at weight 500 with letter-spacing -1.5%.

Layout

Section 013

Spacing System

Section 014
Base unit: 4px.
Tokens: `{spacing.xxs}` 4px · `{spacing.xs}` 8px · `{spacing.sm}` 12px · `{spacing.base}` 16px · `{spacing.md}` 20px · `{spacing.lg}` 24px · `{spacing.xl}` 32px · `{spacing.xxl}` 48px · `{spacing.section}` 96px.
Section padding: `{spacing.section}` (96px) for major bands.

Grid & Container

Section 015
Max content width: ~1200px.
Editorial body: 12-column grid.
Terminal mockup grid: 2×2 equal-size panes.
Toolkit grid: 4-up at desktop, 2-up tablet, 1-up mobile.
Footer: 5-column at desktop.

Whitespace Philosophy

Section 016

The dark canvas creates its own depth — whitespace can stay tight without feeling crowded. 96px between bands; 24px between cards inside a band.

Elevation & Depth

Section 017

The system uses **brightness-step elevation**: surfaces step up in brightness instead of casting drop shadows. Combined with subtle radial blue glows, this creates a focused dark-mode atmosphere.

| Level | Treatment | Use |

|---|---|---|

| Flat (canvas) | `{colors.canvas}` (#0f0f0f) | Body bands, footer |

| Recessed | `{colors.canvas-deep}` (#000000) | Terminal mockup grid background, code blocks |

| Card | `{colors.surface-card}` (#181818) | Default content cards |

| Card elevated | `{colors.surface-card-elevated}` (#222222) | Terminal panes, secondary buttons |

| Atmospheric glow | Radial gradient using `{colors.primary-glow}` | Hero spotlight backdrop |

Decorative Depth

Section 018
Spotlight glow backdrops — radial blue gradient centered behind hero content.
Terminal-pane brightness ladder — 2×2 mockup uses canvas-deep outer + surface-card-elevated panes.

Shapes

Section 019

Border Radius Scale

Section 020

| Token | Value | Use |

|---|---|---|

| `{rounded.none}` | 0px | Reserved |

| `{rounded.xs}` | 4px | Inline tags |

| `{rounded.sm}` | 6px | Compact rows |

| `{rounded.md}` | 8px | CTA buttons, form inputs |

| `{rounded.lg}` | 12px | Toolkit cards, code blocks, terminal panes |

| `{rounded.xl}` | 16px | Feature cards, terminal mockup grids |

| `{rounded.pill}` | 9999px | Section-label badges |

| `{rounded.full}` | 9999px | Avatar plates (rare) |

Compact developer-ergonomic radii — 8px CTAs, 12-16px cards. Signals "developer tool" rather than "consumer brand."

Components

Section 021

Top Navigation

Section 022

**`top-nav-dark`** — Default top nav. Background `{colors.canvas}`, text `{colors.body-strong}`, height 64px. Layout: Composio wordmark left, primary horizontal menu (Product / Toolkits / Docs / Pricing / Customers / Blog), GitHub stars + Sign In + "Get started" right.

Buttons

Section 023

**`button-primary`** — The signature Composio Blue CTA. Background `{colors.primary}`, text `{colors.on-primary}`, type `{typography.button}` (14px / 500), padding 10px × 18px, height 40px, rounded `{rounded.md}` (8px).

**`button-primary-active`** — Press state. Background `{colors.primary-active}`.

**`button-secondary-dark`** — Surface-elevated secondary. Background `{colors.surface-card-elevated}`, text `{colors.body-strong}`.

**`button-outline`** — Transparent with 1px hairline-strong border.

**`button-tertiary-text`** — Inline text link.

Hero & Atmospheric

Section 024

**`hero-band`** — Homepage hero. Background `{colors.canvas}`, full-width display headline in `{typography.display-mega}` (72px / 500), subhead, two CTAs, and a spotlight-glow backdrop emanating from behind the centered terminal-mockup grid.

**`terminal-mockup-grid`** — The brand's strongest visual signature. 2×2 grid of dark code/output panels inside a `{rounded.xl}` (16px) container. Background `{colors.canvas-deep}`, padding 32px, gap 16px.

**`terminal-pane`** — Individual code/output panel inside the mockup grid. Background `{colors.surface-card}`, text `{colors.body}` in `{typography.code}`, rounded `{rounded.lg}` (12px), padding 20px.

**`spotlight-glow-card`** — Large feature card with centered display headline and a radial blue glow behind it. Background `{colors.surface-card}`, text `{colors.body-strong}` in `{typography.display-md}`, rounded `{rounded.xl}`, padding 48px.

Cards

Section 025

**`feature-card`** — 3-up benefit grid. Background `{colors.surface-card}`, text `{colors.body}`, type `{typography.title-md}`, rounded `{rounded.xl}`, padding 28px.

**`toolkit-card`** — 4-up toolkit grid (Slack, GitHub, Stripe, Notion, Linear, etc.). Background `{colors.surface-card}`, text `{colors.body-strong}`, type `{typography.title-sm}`, rounded `{rounded.lg}`, padding 20px. 40px square `{component.toolkit-icon}` top, toolkit name, one-line description.

**`toolkit-icon`** — Square icon plate. Background `{colors.surface-card-elevated}`, rounded `{rounded.md}`, 40px size.

**`testimonial-card`** — Quote card. Background `{colors.surface-card}`, text `{colors.body}`, rounded `{rounded.lg}`, padding 24px.

Code

Section 026

**`code-block`** — Inline code/terminal block. Background `{colors.canvas-deep}`, text `{colors.body}` in `{typography.code}`, rounded `{rounded.lg}`, padding 20px.

Forms

Section 027

**`text-input`** — Background `{colors.surface-card}`, text `{colors.body-strong}`, rounded `{rounded.md}` (8px), padding 12px × 16px, height 44px.

**`search-input`** — Compact search field. Same surface and radius, smaller padding, 40px height.

Tags & Badges

Section 028

**`badge-pill`** — Small uppercase pill. Background `{colors.surface-card-elevated}`, text `{colors.body-strong}`, type `{typography.caption-uppercase}`, rounded `{rounded.pill}`, padding 4px × 10px.

CTA / Footer

Section 029

**`cta-band-spotlight`** — Pre-footer band. Background `{colors.canvas}` with centered radial spotlight glow. Display headline + single primary CTA pill. 96px padding.

**`footer-dark`** — Closing footer. Background `{colors.canvas}`, text `{colors.body}`. 5-column link list. 64×48px padding.

**`footer-link`** — Background transparent, text `{colors.body}`, type `{typography.body-sm}`.

Do's and Don'ts

Section 030

Do

Section 031
Reserve `{colors.primary}` for primary CTAs, wordmark, and spotlight glows.
Use `{rounded.md}` (8px) for every CTA — not full pills.
Use brightness-step ladder for elevation; avoid drop shadows.
Pair every hero with a centered radial blue spotlight glow.
Render code, CLI commands in JetBrains Mono via `{typography.code}`.
Use the 2×2 terminal-mockup grid as the homepage hero anchor.

Don't

Section 032
Don't introduce a secondary brand color. Cyan and violet are illustrative-only.
Don't use full pills on CTAs.
Don't drop display weight to 400.
Don't add drop shadow tiers.
Don't use canvas-deep (#000000) outside terminal/code surfaces.
Don't extract a CTA color from a third-party widget (cookie consent, OneTrust). The brand's CTA color is what appears on actual page CTAs.

Responsive Behavior

Section 033

Breakpoints

Section 034

| Name | Width | Key Changes |

|---|---|---|

| Mobile | < 640px | Hero h1 72→36px; terminal mockup grid collapses to single pane; toolkit grid 1-up; nav hamburger. |

| Tablet | 640–1024px | Hero h1 56px; terminal mockup grid stays 2×2; toolkit grid 2-up. |

| Desktop | 1024–1280px | Full hero h1 72px; full 2×2 terminal mockup; toolkit grid 4-up. |

| Wide | > 1280px | Content caps at 1200px. |

Touch Targets

Section 035
Primary CTA at 40px height — at WCAG AA, padded for AAA.
Search input at 40px.

Collapsing Strategy

Section 036
Top nav switches to hamburger below 768px.
Terminal mockup 2×2 grid collapses to a single pane on mobile.
Toolkit grid: 4-up → 2-up → 1-up.
Hero spotlight glow stays at every breakpoint.

Iteration Guide

Section 037

1. Focus on a single component at a time.

2. CTAs default to `{rounded.md}` (8px). Cards use `{rounded.lg}` or `{rounded.xl}`.

3. Variants live as separate entries inside `components:`.

4. Use `{token.refs}` everywhere — never inline hex.

5. Hover state never documented.

6. abcDiatype 500 for display, 400/600 for body. JetBrains Mono on every code surface.

7. Composio Blue stays scarce.

Known Gaps

Section 038
abcDiatype is licensed; Inter is the substitute.
Animation timings out of scope.
In-product surfaces (toolkit dashboards, agent playground) are behind login walls.
Form validation states beyond focus not visible on captured surfaces.
72,570+ DESIGN.md files generated