← All designs
Dev Tools

Composio

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.

Color Tokens

#0007cdprimary
#0005a3primary-active
#1a26ffprimary-glow
#ffffffink
#a8a8a8body
#ffffffbody-strong
#888888muted
#666666muted-soft
#222222hairline
#1a1a1ahairline-soft

version: alpha name: Composio 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

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

Brand & Accent

  • 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

  • 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

  • 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

  • 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

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

Typography

Font Family

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

Hierarchy

TokenSizeWeightLine HeightLetter SpacingUse
{typography.display-mega}72px5001.05-2.16pxHomepage hero h1
{typography.display-xl}56px5001.05-1.68pxSubsidiary heroes
{typography.display-lg}44px5001.1-1.32pxSection heads
{typography.display-md}32px5001.15-0.96pxSub-section heads
{typography.display-sm}24px5001.25-0.5pxCard group titles
{typography.title-md}18px6001.40Component titles
{typography.title-sm}16px6001.40Toolkit card titles
{typography.body-md}16px4001.50Default body
{typography.body-sm}14px4001.50Footer body
{typography.caption}13px4001.40Photo captions
{typography.caption-uppercase}11px6001.40.88pxSection labels, badge pills
{typography.code}13px4001.50Code blocks — JetBrains Mono
{typography.button}14px5001.00CTA pill labels
{typography.nav-link}14px5001.40Top-nav menu

Principles

  • 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

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

Layout

Spacing System

  • 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

  • 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

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

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.

LevelTreatmentUse
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 glowRadial gradient using {colors.primary-glow}Hero spotlight backdrop

Decorative Depth

  • 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

Border Radius Scale

TokenValueUse
{rounded.none}0pxReserved
{rounded.xs}4pxInline tags
{rounded.sm}6pxCompact rows
{rounded.md}8pxCTA buttons, form inputs
{rounded.lg}12pxToolkit cards, code blocks, terminal panes
{rounded.xl}16pxFeature cards, terminal mockup grids
{rounded.pill}9999pxSection-label badges
{rounded.full}9999pxAvatar plates (rare)

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

Components

Top Navigation

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

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

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

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

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

Forms

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

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

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

Do

  • 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

  • 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

Breakpoints

NameWidthKey Changes
Mobile< 640pxHero h1 72→36px; terminal mockup grid collapses to single pane; toolkit grid 1-up; nav hamburger.
Tablet640–1024pxHero h1 56px; terminal mockup grid stays 2×2; toolkit grid 2-up.
Desktop1024–1280pxFull hero h1 72px; full 2×2 terminal mockup; toolkit grid 4-up.
Wide> 1280pxContent caps at 1200px.

Touch Targets

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

Collapsing Strategy

  • 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

  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

  • 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.