DESIGN.md · Analysis

VoltAgent

voltagent.dev · 3 Sept 2026 · 47 colors · Inter, IBM Plex Mono

VoltAgent

An observability-first TypeScript AI Agent framework for building enterprise multi-agent systems with development, observability, and deployment unified in one platform.

Colors

surface#050507
surface-dim#020202
surface-bright#1a1a1a
surface-container-lowest#0a0a0c
surface-container-low#101010
surface-container#151517
surface-container-high#1f1f23
surface-container-highest#2a2a2f
on-surface#f2f2f2
on-surface-variant#b8b3b0
inverse-surface#f2f2f2
inverse-on-surface#050507
outline#8a8380
outline-variant#5c5855
surface-tint#2fd6a1
primary#2fd6a1
on-primary#010409
primary-container#1a4d3f
on-primary-container#5ff0c4
inverse-primary#1a7d5f
secondary#5865f2
on-secondary#ffffff
secondary-container#3d4a9f
on-secondary-container#a5d6ff
tertiary#ff7b72
on-tertiary#ffffff
tertiary-container#8b3a33
on-tertiary-container#ffb5ad
error#fa383e
on-error#ffffff
error-container#8b1a1f
on-error-container#ffb5ad
primary-fixed#5ff0c4
primary-fixed-dim#2fd6a1
on-primary-fixed#001f18
on-primary-fixed-variant#0d5d4a
secondary-fixed#a5d6ff
secondary-fixed-dim#5865f2
on-secondary-fixed#001a4d
on-secondary-fixed-variant#1e3a7a
tertiary-fixed#ffb5ad
tertiary-fixed-dim#ff7b72
on-tertiary-fixed#3d0a05
on-tertiary-fixed-variant#8b3a33
background#050507
on-background#f2f2f2
surface-variant#3d3a39

Typography

display
fontFamily: Inter · fontSize: 60px · fontWeight: 700 · lineHeight: 68px · letterSpacing: -0.04em
headline-lg
fontFamily: Inter · fontSize: 40px · fontWeight: 600 · lineHeight: 48px · letterSpacing: -0.02em
headline-md
fontFamily: Inter · fontSize: 28px · fontWeight: 600 · lineHeight: 36px · letterSpacing: -0.01em
title-lg
fontFamily: Inter · fontSize: 20px · fontWeight: 600 · lineHeight: 28px
body-lg
fontFamily: Inter · fontSize: 18px · fontWeight: 400 · lineHeight: 28px
body-md
fontFamily: Inter · fontSize: 16px · fontWeight: 400 · lineHeight: 24px
label-md
fontFamily: Inter · fontSize: 14px · fontWeight: 600 · lineHeight: 20px · letterSpacing: 0.01em
label-sm
fontFamily: Inter · fontSize: 12px · fontWeight: 500 · lineHeight: 16px · letterSpacing: 0.02em
code-md
fontFamily: IBM Plex Mono · fontSize: 14px · fontWeight: 400 · lineHeight: 20px · letterSpacing: 0em

Design guidance

Overview

VoltAgent is an observability-first TypeScript AI Agent framework designed for developers building enterprise-scale multi-agent systems. The platform unifies development, observability, and deployment into a single cohesive experience, eliminating the fragmentation that plagues traditional AI infrastructure. The aesthetic is "Technical Minimalism with Neon Accents"—a dark, high-contrast interface where a vibrant emerald green (#2fd6a1) acts as the primary accent, signaling interactivity and system vitality against a near-black canvas (#050507). The design evokes precision, speed, and developer confidence: every pixel serves a function, every color choice communicates state or action.

The brand voice is direct, technical, and unafraid of jargon—it speaks to engineers who value clarity over marketing polish. Tone: pragmatic, occasionally witty, never condescending. Vocabulary leans into systems thinking ("observability," "multi-agent," "deployment") and avoids buzzwords. Example sentence in brand voice: "Deploy your agent system in seconds, observe every decision in real time, scale without the headaches."

Colors

The color system is built on a dark-first foundation with strategic accent deployment. **Surface Stack**: The background (#050507) is near-absolute black, providing maximum contrast for text and interactive elements. Surface containers range from #0a0a0c (lowest) through #2a2a2f (highest), creating a subtle depth hierarchy without introducing grays that would dilute the dark aesthetic. **Primary Color (#2fd6a1)**: Emerald green used exclusively for CTAs, focus states, active indicators, and brand-critical interactive elements. This color appears on "Get Started" buttons, the VoltAgent logo, feature highlights, and all hover/active states. It must never be used for body text or backgrounds—reserve it for moments that demand user attention. **Secondary Color (#5865f2)**: Discord-inspired blu

Typography

The type system pairs Inter (sans-serif) for UI and body copy with IBM Plex Mono for code and technical content. **Display (60px, 700 weight)** anchors hero sections with maximum visual impact and -0.04em letter-spacing to tighten the letterforms. **Headline-lg (40px, 600 weight)** and **Headline-md (28px, 600 weight)** establish section hierarchy with -0.02em and -0.01em tracking respectively, creating a sense of forward momentum. **Body-lg (18px, 400 weight)** and **Body-md (16px, 400 weight)** maintain readability at 28px and 24px line-heights, with generous leading to prevent text from feeling cramped on dark backgrounds. **Label-md (14px, 600 weight)** and **Label-sm (12px, 500 weight)** handle UI labels, button text, and badges with 0.01–0.02em positive letter-spacing to enhance legi

Layout

The layout uses a 12-column grid with a 1280px max-width container, maintaining consistent horizontal rhythm across all breakpoints. Page sections are separated by lg spacing (40px) vertically, creating breathing room between hero, feature cards, testimonials, and footer. The gutter (24px) is applied consistently to left/right margins on mobile and tablet, expanding proportionally on desktop. White-space is treated as a design element: negative space around the primary CTA ("Get Started") emphasizes its importance, while dense card layouts in feature sections create visual texture without overwhelming. Container padding follows the pattern: 24px on mobile, 40px on tablet, 64px on desktop. The grid is fluid on mobile (100vw - 48px), snaps to 768px on tablet, and locks at 1280px on desktop.

Elevation & Depth

Depth is conveyed through subtle shadows and border treatments rather than layered backgrounds. **Level 1 (Base)**: The surface (#050507) with no shadow—the foundation. **Level 2 (Cards & Containers)**: 1px solid border at {colors.surface-container-high} with box-shadow: 0 3px 8px rgba(0, 0, 0, 0.15). This creates a soft separation from the background without introducing visual heaviness. **Level 3 (Modals & Elevated Surfaces)**: box-shadow: 0 8px 24px rgba(0, 0, 0, 0.20) with a 1px border at {colors.outline}. **Interactive Elevation**: On hover, cards and buttons receive an additional drop-sh

Shapes

The shape philosophy is "Geometric Precision"—rounded corners are used sparingly and consistently to signal interactive elements while maintaining a technical, engineered aesthetic. **Buttons & CTAs**: 10px border-radius (lg) creates a subtle softness without appearing playful or casual. **Cards & Containers**: 10px border-radius (lg) matches buttons for visual cohesion. **Input Fields & Selects**: 6px border-radius (DEFAULT) is tighter, reinforcing their role as data-entry elements distinct from primary actions. **Badges & Pills**: 9999px border-radius (full) for fully rounded shapes, used on

Components

Action Elements **Button-Primary** uses {colors.primary} (#2fd6a1) background with {colors.on-primary} (#010409) text, 44px height, 12px 24px padding, 10px border-radius, and a 1px border matching the background. On hover, shift to {colors.primary-fixed-dim} and add box-shadow: 0 3px 8px rgba(47, 214, 161, 0.25) with a 200ms cubic-bezier(0.4, 0, 0.6, 1) transition. Active state darkens to #1a7d5f. **Button-Secondary** mirrors primary but with transparent background, 1px {colors.primary} border, and {colors.primary} text; on hover, apply rgba(47, 214, 161, 0.08) background. **Button-Ghost** uses transparent background with 1px {colors.outline-variant} border; hover state shifts to {colors.surface-container-high} with {colors.outline} border.

Containers & Surfaces **Card** component

Do's and Don'ts

**Do**

  • Do use {colors.primary} (#2fd6a1) exclusively for primary CTAs, focus indicators, and brand-critical moments—it is the system's visual anchor.
  • Do maintain minimum 7:1 contrast ratios between text and background colors; test with tools like WebAIM Contrast Checker.
  • Do apply 200ms cubic-bezier(0.4, 0, 0.6, 1) transitions to all interactive state changes (hover, focus, active) for consistent, snappy feedback.
  • Do use Inter for all UI and body copy; reserve IBM Plex Mono strictly for code blocks and technical content.
  • Do respect the 8px spacing unit: all padding, margins, and gaps should be multiples of 8px (4px, 8px, 12px, 16px, 24px, 32px, 40px, 64px).

**Don't**

  • Don't use {colors.primary} for body text, backgrounds, or non-interactive elements—it will dilute its signaling power and create visual noise.
  • Don't apply shadows lighter than rgba(0, 0, 0, 0.12); light shadows are invisible on the dark background and waste rendering performance.
  • Don't mix rounded and sharp corners on similar component types; maintain consistency within a component family (all buttons use 10px, all inputs use 6px).
  • Don't use system fonts or fallback stacks; always load Inter and IBM Plex Mono from Google Fonts to ensure brand consistency across all devices.
  • Don't animate non-interactive elements or use motion for decoration; reserve animations for state changes, loading indicators, and user feedback only.