DESIGN.md · Analysis

Infisical

infisical.com · 21 Jun 2026 · 47 colors · Alliance, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif, Poppins, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif

Infisical

Infisical is the all-in-one identity security platform for developers, machines, and AI agents. The design system balances technical precision with vibrant energy, using a striking lime-yellow accent against a clean, minimal light-mode canvas and dark-mode depth.

Colors

surface#ffffff
surface-dim#f9fafb
surface-bright#ffffff
surface-container-lowest#f9fafb
surface-container-low#f3f4f6
surface-container#ebebeb
surface-container-high#e5e7eb
surface-container-highest#d1d5db
on-surface#1a1a1a
on-surface-variant#6b7280
inverse-surface#1a1a1a
inverse-on-surface#f9fafb
outline#9ca3af
outline-variant#d1d5db
surface-tint#e7f256
primary#e7f256
on-primary#1a1a1a
primary-container#dbf530
on-primary-container#0c0c0c
inverse-primary#c2d62b
secondary#374151
on-secondary#ffffff
secondary-container#6b7280
on-secondary-container#f9fafb
tertiary#0078d4
on-tertiary#ffffff
tertiary-container#326ce5
on-tertiary-container#ffffff
error#e5484d
on-error#ffffff
error-container#fecaca
on-error-container#7f1d1a
primary-fixed#dbf530
primary-fixed-dim#c2d62b
on-primary-fixed#0c0c0c
on-primary-fixed-variant#1a1a1a
secondary-fixed#6b7280
secondary-fixed-dim#4b5563
on-secondary-fixed#ffffff
on-secondary-fixed-variant#f9fafb
tertiary-fixed#326ce5
tertiary-fixed-dim#0078d4
on-tertiary-fixed#ffffff
on-tertiary-fixed-variant#ffffff
background#ffffff
on-background#1a1a1a
surface-variant#e5e7eb

Typography

display
fontFamily: Alliance, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif · fontSize: 60px · fontWeight: 600 · lineHeight: 68px · letterSpacing: -0.02em
headline-lg
fontFamily: Alliance, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif · fontSize: 40px · fontWeight: 600 · lineHeight: 48px · letterSpacing: -0.01em
headline-md
fontFamily: Alliance, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif · fontSize: 28px · fontWeight: 600 · lineHeight: 36px · letterSpacing: 0em
title-lg
fontFamily: Poppins, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif · fontSize: 20px · fontWeight: 600 · lineHeight: 28px · letterSpacing: 0.01em
body-lg
fontFamily: Poppins, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif · fontSize: 18px · fontWeight: 400 · lineHeight: 28px · letterSpacing: 0em
body-md
fontFamily: Poppins, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif · fontSize: 16px · fontWeight: 400 · lineHeight: 24px · letterSpacing: 0em
label-md
fontFamily: Poppins, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif · fontSize: 14px · fontWeight: 600 · lineHeight: 20px · letterSpacing: 0.01em
label-sm
fontFamily: Poppins, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif · fontSize: 12px · fontWeight: 500 · lineHeight: 16px · letterSpacing: 0.02em

Design guidance

Overview

Infisical is a developer-first identity security platform that transforms secrets management from a compliance burden into an elegant, intuitive experience. The design system embodies "Technical Minimalism with Neon Accent"—a philosophy that pairs clean, neutral surfaces (white backgrounds, dark text at rgb(26, 26, 26), subtle grays at #9ca3af) with a bold, high-saturation lime-yellow primary color (#e7f256 in light mode, #dbf530 as the container variant). This accent is used sparingly but decisively on CTAs, highlights, and key interactive elements, creating visual hierarchy without visual noise. The brand personality is precise, confident, and approachable: engineers trust it because it's transparent about what it does, and it never condescends. Voice example: "Your secrets are encrypted at rest and in transit—no exceptions, no backdoors."

Colors

The color system operates on a dual-mode foundation: light mode (default) uses a near-white surface (#ffffff) with warm grays for hierarchy, while dark mode inverts to a near-black surface (#1a1a1a) with cooler grays. Primary color is the signature lime-yellow (#e7f256 light / #dbf530 dark), applied exclusively to high-priority CTAs ('Get started for free'), focus states, and accent highlights in data visualizations. Secondary color (#374151, a warm charcoal) supports navigation, labels, and secondary CTAs. Tertiary (#0078d4, a professional blue) is reserved for links, status indicators, and tertiary actions. The surface stack is granular: surface-container-lowest (#f9fafb) for subtle backgrounds, surface-container (#ebebeb) for cards and panels, surface-container-high (#e5e7eb) for hover

Typography

The type system pairs Alliance (a geometric sans-serif used for headlines and display text) with Poppins (a rounded, friendly sans-serif for body and UI labels). Display and headline levels (60px, 40px, 28px) use Alliance at fontWeight 600, with tight negative letter-spacing (-0.02em to -0.01em) to convey technical precision. Body text (18px, 16px) uses Poppins at fontWeight 400 with 1.5x line-height (28px, 24px) for readability over long-form content. Labels and buttons use Poppins at fontWeight 600, fontSize 14px, with 0.01em letter-spacing to maintain clarity at small sizes. When displaying code or technical identifiers, apply JetBrains Mono at fontFamily 'JetBrains Mono, ui-monospace' with a 1px solid border at rgba(231, 242, 86, 0.3) and background rgba(231, 242, 86, 0.05) to distingu

Layout

The layout uses a 12-column grid with a max-width of 1280px, centered on the viewport. Horizontal padding (gutter) is 24px on desktop, reducing to 16px on tablet and 12px on mobile. Vertical rhythm is governed by the spacing scale: section separation uses lg (40px), component padding uses md (24px), and internal element spacing uses sm (12px). The hero section spans full-width with a 56px top padding and 40px horizontal padding, creating breathing room around the headline. Cards and containers use rounded-lg (1rem / 16px) for a slightly softer appearance than the default 0.5rem, reinforcing the 'approachable' brand voice. Container max-width is enforced at 1280px to prevent text lines from exceeding 75 characters, maintaining readability. White-space is generous: avoid stacking components

Elevation & Depth

Depth is conveyed through a restrained shadow system and subtle border treatments rather than dramatic layering. Level 1 (base surfaces, cards) uses elevation-sm: 0 1px 2px rgba(0, 0, 0, 0.05), creating a barely-perceptible lift. Level 2 (hovered cards, modals) uses elevation-md: 0 4px 12px rgba(0, 0, 0, 0.08), adding presence without drama. Level 3 (dropdowns, tooltips) uses elevation-lg: 0 8px 24px rgba(0, 0, 0, 0.12), reserved for floating UI that must stand above all other content. All cards and containers also use a 1px solid border at {colors.outline} (#9ca3af light, #333333 dark) to def

Shapes

The shape philosophy is "Geometric Clarity"—rounded corners are used to soften technical interfaces without sacrificing precision. Buttons and inputs use rounded-DEFAULT (0.5rem / 8px), providing a subtle roundness that feels modern without being playful. Cards and larger containers use rounded-lg (1rem / 16px), creating a more pronounced softness for content areas. Badges and pills use rounded-full (9999px) to signal compactness and status. Avoid rounded-xl (1.5rem) and rounded-full on primary CTAs; the 8px radius on 'Get started for free' buttons maintains focus and urgency. The rationale: 8

Components

Action Elements Buttons come in three variants: primary (solid lime-yellow background, black text), secondary (transparent with 1px outline), and ghost (no border, no background). Primary buttons use backgroundColor: {colors.primary} (#e7f256), textColor: {colors.on-primary} (#1a1a1a), padding: 8px 16px, height: 40px, rounded: 0.5rem, fontWeight: 600. On hover, transition to backgroundColor: {colors.primary-container} (#dbf530) over 150ms. Secondary buttons use a 1px solid border at {colors.outline}, transparent background, and on hover, fill the background with {colors.surface-container-high} (#e5e7eb). All buttons use the label-md typography (14px Poppins, 600 weight) and apply transition: all 150ms cubic-bezier(0.4, 0, 0.2, 1) for smooth state changes.

Containers & Surfaces Car

Do's and Don'ts

**Do**

  • Do use the lime-yellow primary (#e7f256) exclusively on high-priority CTAs and focus states—never on backgrounds or body text.
  • Do maintain at least 24px vertical spacing between major sections; use the lg spacing token consistently for rhythm.
  • Do apply Alliance font to all headlines and display text; reserve Poppins for body, labels, and UI controls.
  • Do transition all interactive state changes (hover, focus, active) over 150ms using cubic-bezier(0.4, 0, 0.2, 1) easing.
  • Do use 1px solid borders at {colors.outline} to define card and container edges; never rely on shadow alone for definition.
  • Do apply rounded-DEFAULT (8px) to buttons and inputs, rounded-lg (16px) to cards, and rounded-full (9999px) to badges.

**Don't**

  • Don't use the primary yellow on body text, backgrounds, or non-interactive elements—it's reserved for CTAs and accents.
  • Don't apply rounded-xl (24px) or rounded-full to buttons; use 8px for technical precision.
  • Don't stack components without whitespace; minimum 24px vertical separation between sections.
  • Don't use system-ui or generic sans-serif fallbacks; always specify Alliance or Poppins with explicit fallbacks.
  • Don't apply shadows without borders; always pair elevation with a 1px outline at {colors.outline}.
  • Don't animate state changes faster than 150ms or slower than 200ms; use cubic-bezier(0.4, 0, 0.2, 1) for consistency.