Design Specification — Mintlify - The documentation platform for agents
| Field | Value |
| Site / Project | https://mintlify.com |
| Analyzed on | 2026-10-16 |
| Analysis mode | Automated code extraction (no AI) |
Overview
This design system was extracted programmatically from the source page. It is built on a light canvas (#FFFFFF), ink text (#000000), a vivid accent (#18E299). Display headings use a distinct face (ui-serif, Georgia, serif) over the body stack (Geist Mono). Detected font weights: 100, 400, 500, 600, 700, 800, 900. Detected style signatures: gradient-rich / aurora; technical / mono accents.
Logo asset(s): https://mintlify.com/favicon.ico?favicon.d9fa433b.ico
Color System
Detected palette (by frequency)
| Hex | RGB | HSL | Count |
#FFFFFF | 255, 255, 255 | 0° 0% 100% | 77 |
#000000 | 0, 0, 0 | 0° 0% 0% | 23 |
#08090A | 8, 9, 10 | 210° 11% 4% | 14 |
#0C8C5E | 12, 140, 94 | 158° 84% 30% | 10 |
#0A0B0F | 10, 11, 15 | 228° 20% 5% | 8 |
#18E299 | 24, 226, 153 | 158° 81% 49% | 7 |
#121715 | 18, 23, 21 | 156° 12% 8% | 5 |
#0052FF | 0, 82, 255 | 221° 100% 50% | 4 |
#C37D0D | 195, 125, 13 | 37° 88% 41% | 4 |
#476CFF | 71, 108, 255 | 228° 100% 64% | 4 |
#FAF8F5 | 250, 248, 245 | 36° 33% 97% | 4 |
#485450 | 72, 84, 80 | 160° 8% 31% | 4 |
#2547D0 | 37, 71, 208 | 228° 70% 48% | 3 |
#171717 | 23, 23, 23 | 0° 0% 9% | 3 |
#EBE9E6 | 235, 233, 230 | 36° 11% 91% | 3 |
#969E9B | 150, 158, 155 | 158° 4% 60% | 3 |
#1FA77A | 31, 167, 122 | 160° 69% 39% | 3 |
#FFA500 | 255, 165, 0 | 39° 100% 50% | 3 |
#FF6568 | 255, 101, 104 | 359° 100% 70% | 2 |
#FB2C36 | 251, 44, 54 | 357° 96% 58% | 2 |
Assigned roles
Roles are taken from the page's own semantic CSS custom properties when present, otherwise inferred from usage frequency + luminance/saturation.
| Token | Hex | RGB | HSL |
--color-primary | #0C8C5E | 12, 140, 94 | 158° 84% 30% |
--color-accent | #18E299 | 24, 226, 153 | 158° 81% 49% |
--color-background | #FFFFFF | 255, 255, 255 | 0° 0% 100% |
--color-surface | #FAF8F5 | 250, 248, 245 | 36° 33% 97% |
--color-text-primary | #000000 | 0, 0, 0 | 0° 0% 0% |
--color-secondary | #000000 | 0, 0, 0 | 0° 0% 0% |
--color-text-secondary | #485450 | 72, 84, 80 | 160° 8% 31% |
--color-border | #EBE9E6 | 235, 233, 230 | 36° 11% 91% |
--color-on-primary | #FFFFFF | 255, 255, 255 | 0° 0% 100% |
--color-on-secondary | #FFFFFF | 255, 255, 255 | 0° 0% 100% |
--color-on-accent | #000000 | 0, 0, 0 | 0° 0% 0% |
Surface ramp (derived from detected light neutrals)
| Token | Hex |
--color-surface-container-lowest | #FFFFFF |
--color-surface-container-low | #FAF8F5 |
--color-surface-container | #F9F6F3 |
--color-surface-container-high | #F3F4F6 |
--color-surface-container-highest | #EBE9E6 |
Gradients
linear-gradient(#fff,#fff)
linear-gradient(to right,transparent 0%,71%)
linear-gradient(to right,0%,transparent 71%)
Typography
Primary typeface: Geist Mono — stack: Geist Mono
Display / heading typeface: ui-serif, Georgia, serif (used for large headings; body uses the primary stack)
Font stacks (most used first)
Geist Mono
var(--font-inter)
inherit
var(--c15t-font-family)
system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"
Geist Mono Fallback
inter
inter Fallback
paperMono
paperMono Fallback
Derived type scale
| Token | Size |
| display | 50px |
| headline-lg | 40px |
| headline-md | 28px |
| title-lg | 20px |
| body-md | 16px |
| label-md | 14.4px |
Font sizes (by frequency)
| Size | Count |
| .875em | 6 |
| 2.25rem | 3 |
| 1em | 2 |
| 1.25em | 2 |
| 1.75rem | 2 |
| 2.25em | 1 |
| 1.5em | 1 |
| .9em | 1 |
| 2.5rem | 1 |
| 15px | 1 |
| 34px | 1 |
| 2rem | 1 |
| 3.125rem | 1 |
| 35px | 1 |
| 44px | 1 |
| 13px | 1 |
| .875rem | 1 |
| 14px | 1 |
Weights in use: 100, 400, 500, 600, 700, 800, 900
Line heights (by frequency)
| Value | Count |
| 1.5 | 3 |
| 2.5rem | 3 |
| 1.6 | 2 |
| 1.71429 | 2 |
| 0 | 1 |
| 1 | 1 |
| 1.11111 | 1 |
| 1.33333 | 1 |
| 1.42857 | 1 |
| 2rem | 1 |
Letter spacing (by frequency)
| Value | Count |
| -.01em | 2 |
| -.1px | 1 |
| -.02em | 1 |
| -.8px | 1 |
| -.72px | 1 |
| .02em | 1 |
| -2px | 1 |
| -.025em | 1 |
Spacing
Derived spacing scale
| Token | Value |
| unit | 8px |
| xs | 5px |
| sm | 8px |
| md | 16px |
| lg | 32px |
Raw values (by frequency)
| Value | Count |
| .75rem | 3 |
| .5rem | 2 |
| 16px | 2 |
| 5px | 1 |
| 1rem | 1 |
| 32px | 1 |
Borders & Radius
Derived radius tokens
| Token | Value |
| sm | 2px |
| md | 8px |
| pill | 50% |
Raw values (resolved, by frequency)
| Radius | Count |
0 | 5 |
2px | 2 |
.25rem | 2 |
50% | 1 |
.3125rem | 1 |
.375rem | 1 |
4px | 1 |
6px | 1 |
3.40282e38px | 1 |
8px | 1 |
Shadows
Derived elevation
| Token | Value |
| md | 0 0 0 1px rgb(/10%),0 3px 0 rgb(/10%) |
All detected shadows
inset 0 0 0 1px
0 0 0 1px rgb(/10%),0 3px 0 rgb(/10%)
Layout
Container max-width: 1088px
Grid columns (largest detected grid): 5
Breakpoints
Animation & Motion
Transitions
opacity .2s
opacity 280mscubic-bezier(0.4, 0, 0.2, 1),transform 280mscubic-bezier(0.4, 0, 0.2, 1)
text-decoration .2s ease
clip-path .8scubic-bezier(.25,.46,.45,.94)
none
Easing curves
cubic-bezier(0.4, 0, 0.2, 1)
cubic-bezier(0.215, 0.61, 0.355, 1)
cubic-bezier(0.645, 0.045, 0.355, 1)
cubic-bezier(0.34, 1.56, 0.64, 1)
cubic-bezier(0,0,.2,1)
cubic-bezier(.4,0,.2,1)
cubic-bezier(.4,0,.6,1)
cubic-bezier(.4,0,.2,1)
Keyframes
@keyframes c15t-ui-enter-EoZFn { 0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)} }
@keyframes c15t-ui-exit-Z4gI_ { 0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)} }
@keyframes c15t-ui-enter-oqaf_ { 0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)} }
@keyframes c15t-ui-exit-Yh5ig { 0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)} }
@keyframes c15t-ui-fadeIn-moBzd { to{opacity:1} }
@keyframes enterFromRight { 0%{opacity:0;transform:translate(200px)}to{opacity:1;transform:translate(0)} }
@keyframes enterFromLeft { 0%{opacity:0;transform:translate(-200px)}to{opacity:1;transform:translate(0)} }
@keyframes exitToRight { 0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(200px)} }
@keyframes exitToLeft { 0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-200px)} }
@keyframes scaleIn { 0%{opacity:0;transform:rotateX(-10deg)scale(.96)}to{opacity:1;transform:rotateX(0)scale(1)} }
@keyframes scaleOut { 0%{opacity:1;transform:rotateX(0)scale(1)}to{opacity:0;transform:rotateX(-10deg)scale(.96)} }
@keyframes navContentIn { 0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)} }
@keyframes loader-spin { to{transform:rotate(1turn)} }
@keyframes digit-in { 0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)} }
@keyframes stats-scroll { 0%{transform:translate(0)}to{transform:translate(-50%)} }
@keyframes carousel-card-dim { 0%,to{opacity:.4}40%,60%{opacity:1} }
@keyframes dither-toggle { 0%{opacity:0}6%{opacity:1}25%{opacity:1}31%{opacity:0}to{opacity:0} }
@keyframes signal-ping { 0%{opacity:.65;transform:scale(1)}to{opacity:0;transform:scale(3.2)} }
Animations
linear both carousel-card-dim
1.05s ease-in-out infinite signal-flicker
1.05s cubic-bezier(0,0,.2,1) infinite signal-ping
c15t-ui-enter-EoZFn var(--c15t-duration-fast)var(--c15t-easing)
c15t-ui-exit-Z4gI_ var(--c15t-duration-fast)var(--c15t-easing)
c15t-ui-enter-oqaf_ var(--c15t-duration-fast)var(--c15t-easing)
c15t-ui-exit-Yh5ig var(--c15t-duration-fast)var(--c15t-easing)
c15t-ui-fadeIn-moBzd .15s cubic-bezier(.165,.84,.44,1)forwards
none
Components
Extracted from the page's own interactive elements (classes → resolved CSS values).
button-primary — sample text: “Products”
| Property | Value |
| fontWeight | 500 |
| rounded | 4px |
| backgroundColor | transparent |
| padding | 4px 10px |
| backgroundColor (hover) | transparent |
button-secondary — sample text: “Pricing”
| Property | Value |
| fontWeight | 500 |
| rounded | 4px |
| backgroundColor | transparent |
| padding | 4px 10px |
| backgroundColor (hover) | transparent |
navigation-link
| Property | Value |
| fontWeight | 500 |
| rounded | 4px |
| backgroundColor | transparent |
| padding | 4px 10px |
| backgroundColor (hover) | transparent |
CTA labels found on page
- Start for free
- Sign up with Google
> Page contains canvas/WebGL elements — consider ambient effects layers.
Source Design Tokens (CSS custom properties)
:root {
--c15t-primary: var(--color-brand-base);
--c15t-primary-hover: color-mix(in oklab, var(--color-brand-base) 85%, transparent);
--c15t-surface: var(--color-background-primary);
--c15t-surface-hover: var(--color-background-soft);
--c15t-border: var(--color-border-secondary);
--c15t-border-hover: var(--color-border-tertiary);
--c15t-text: var(--color-foreground-primary);
--c15t-text-muted: var(--color-foreground-secondary);
--c15t-text-on-primary: #ffffff;
--c15t-overlay: color-mix(in oklab, var(--color-base-black) 50%, transparent);
--c15t-switch-track: var(--color-background-gray-emphasis);
--c15t-switch-track-active: var(--color-brand-base);
--c15t-switch-thumb: #ffffff;
--c15t-font-family: var(--font-inter);
--c15t-font-size-sm: 0.875rem;
--c15t-font-size-base: 1rem;
--c15t-font-size-lg: 1.125rem;
--c15t-font-weight-normal: 400;
--c15t-font-weight-medium: 500;
--c15t-font-weight-semibold: 600;
--c15t-line-height-tight: 1.25;
--c15t-line-height-normal: 1.5;
--c15t-line-height-relaxed: 1.75;
--c15t-space-xs: 0.25rem;
--c15t-space-sm: 0.5rem;
--c15t-space-md: 1rem;
--c15t-space-lg: 1.5rem;
--c15t-space-xl: 2rem;
--c15t-radius-sm: 4px;
--c15t-radius-md: 8px;
--c15t-radius-lg: 12px;
--c15t-radius-full: 9999px;
--c15t-shadow-sm: 0 1px 2px hsla(0, 0%, 0%, 0.05);
--c15t-shadow-md: 0 4px 12px hsla(0, 0%, 0%, 0.08);
--c15t-shadow-lg: 0 8px 24px hsla(0, 0%, 0%, 0.12);
--c15t-duration-fast: 280ms;
--c15t-duration-normal: 150ms;
--c15t-duration-slow: 200ms;
--c15t-easing: cubic-bezier(0.4, 0, 0.2, 1);
--c15t-easing-out: cubic-bezier(0.215, 0.61, 0.355, 1);
--c15t-easing-in-out: cubic-bezier(0.645, 0.045, 0.355, 1);
--c15t-easing-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
--font-geist-mono: "Geist Mono","Geist Mono Fallback";
--font-inter: "inter","inter Fallback";
--font-paper-mono: "paperMono","paperMono Fallback";
--font-arizona: "arizonaFlare","arizonaFlare Fallback";
--color-red-400: #ff6568;
--color-red-500: #fb2c36;
--color-red-600: #e40014;
--color-green-800: #016630;
--color-blue-500: #3080ff;
--color-gray-100: #f3f4f6;
--color-gray-200: #e5e7eb;
--color-gray-600: #4a5565;
--color-gray-800: #1e2939;
--color-neutral-100: var(--color-neutral-100);
--color-neutral-200: var(--color-neutral-200);
--color-neutral-300: var(--color-neutral-300);
--color-neutral-400: var(--color-neutral-400);
--color-neutral-500: var(--color-neutral-500);
}
Do's and Don'ts
Do
- Do reserve the accent
#18E299 for interactive highlights and key moments — it is used sparingly on the source page.
- Do keep the canvas at
#FFFFFF; surfaces should stay within the detected neutral ramp.
- Do set large headings in
ui-serif, Georgia, serif with tight tracking (-.01em), and body copy in the primary stack.
- Do stick to the detected font weight(s): 100, 400, 500, 600, 700, 800, 900.
- Do align spacing to the 8px base unit derived from the page.
Don't
- Don't introduce colors outside the detected palette — every hue above was found in the source.
Design Tokens (copy-paste)
:root {
--color-primary: #0C8C5E;
--color-accent: #18E299;
--color-background: #FFFFFF;
--color-surface: #FAF8F5;
--color-text-primary: #000000;
--color-secondary: #000000;
--color-text-secondary: #485450;
--color-border: #EBE9E6;
--color-on-primary: #FFFFFF;
--color-on-secondary: #FFFFFF;
--color-on-accent: #000000;
--color-surface-container-lowest: #FFFFFF;
--color-surface-container-low: #FAF8F5;
--color-surface-container: #F9F6F3;
--color-surface-container-high: #F3F4F6;
--color-surface-container-highest: #EBE9E6;
--font-sans: Geist Mono;
--font-size-display: 50px;
--font-size-headline-lg: 40px;
--font-size-headline-md: 28px;
--font-size-title-lg: 20px;
--font-size-body-md: 16px;
--font-size-label-md: 14.4px;
--radius-sm: 2px;
--radius-md: 8px;
--radius-pill: 50%;
--shadow-md: 0 0 0 1px rgb(/10%),0 3px 0 rgb(/10%);
--space-xs: 5px;
--space-sm: 8px;
--space-md: 16px;
--space-lg: 32px;
--font-display: ui-serif, Georgia, serif;
--tracking-display: -.01em;
--tracking-label: .02em;
--container-max: 1088px;
}