Design Specification — CrewAI
| Field | Value |
| Site / Project | https://crewai.com/ |
| Analyzed on | 2026-08-10 |
| 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 (#FB2C36). Display headings use a distinct face (var(--font-heading-italic),serif) over the body stack (Geist Mono). Detected font weights: 100, 300, 400. Detected style signatures: technical / mono accents.
Logo asset(s): https://crewai.com/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Frmv9a2eqdsyw%2F43FWSfRH2vqRsJLZ3pu4Zd%2F8ca1ea655f42d45b541628cb8ea9c7cd%2FDocuSign-Logo-1.png&w=3840&q=75
Color System
Detected palette (by frequency)
| Hex | RGB | HSL | Count |
#000000 | 0, 0, 0 | 0° 0% 0% | 22 |
#131313 | 19, 19, 19 | 0° 0% 7% | 5 |
#FFFFFF | 255, 255, 255 | 0° 0% 100% | 4 |
#FF6568 | 255, 101, 104 | 359° 100% 70% | 1 |
#FB2C36 | 251, 44, 54 | 357° 96% 58% | 1 |
#E40014 | 228, 0, 20 | 355° 100% 45% | 1 |
#F4F5F6 | 244, 245, 246 | 210° 10% 96% | 1 |
#F5F5F5 | 245, 245, 245 | 0° 0% 96% | 1 |
#E5E5E5 | 229, 229, 229 | 0° 0% 90% | 1 |
#D4D4D4 | 212, 212, 212 | 0° 0% 83% | 1 |
#525252 | 82, 82, 82 | 0° 0% 32% | 1 |
#262626 | 38, 38, 38 | 0° 0% 15% | 1 |
#171717 | 23, 23, 23 | 0° 0% 9% | 1 |
#333333 | 51, 51, 51 | 0° 0% 20% | 1 |
#474747 | 71, 71, 71 | 0° 0% 28% | 1 |
#666666 | 102, 102, 102 | 0° 0% 40% | 1 |
#AFAFAF | 175, 175, 175 | 0° 0% 69% | 1 |
#E7E7E7 | 231, 231, 231 | 0° 0% 91% | 1 |
#F2F2F2 | 242, 242, 242 | 0° 0% 95% | 1 |
#FF5A50 | 255, 90, 80 | 3° 100% 66% | 1 |
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-background | #FFFFFF | 255, 255, 255 | 0° 0% 100% |
--color-primary | #FF6568 | 255, 101, 104 | 359° 100% 70% |
--color-accent | #FB2C36 | 251, 44, 54 | 357° 96% 58% |
--color-surface | #F4F5F6 | 244, 245, 246 | 210° 10% 96% |
--color-text-primary | #000000 | 0, 0, 0 | 0° 0% 0% |
--color-secondary | #000000 | 0, 0, 0 | 0° 0% 0% |
--color-text-secondary | #E5E5E5 | 229, 229, 229 | 0° 0% 90% |
--color-border | #D4D4D4 | 212, 212, 212 | 0° 0% 83% |
--color-on-primary | #000000 | 0, 0, 0 | 0° 0% 0% |
--color-on-secondary | #FFFFFF | 255, 255, 255 | 0° 0% 100% |
--color-on-accent | #FFFFFF | 255, 255, 255 | 0° 0% 100% |
Surface ramp (derived from detected light neutrals)
| Token | Hex |
--color-surface-container-lowest | #FFFFFF |
--color-surface-container-low | #F5F5F5 |
--color-surface-container | #F4F5F6 |
--color-surface-container-high | #F2F2F2 |
--color-surface-container-highest | #E7E7E7 |
Gradients
linear-gradient(#000 50%,#0000)
> 1 additional gradient definitions were framework utility templates (unresolvable var(--tw-gradient-stops)) and were omitted.
Typography
Primary typeface: Geist Mono — stack: Geist Mono
Display / heading typeface: var(--font-heading-italic),serif (used for large headings; body uses the primary stack)
Font stacks (most used first)
Geist Mono
var(--font-mono)
var(--font-heading)
var(--font-sans)
var(--font-heading-italic)
GT Standard
Geist Mono Fallback
var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji")
var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace)
var(--font-heading-italic),serif
Derived type scale
| Token | Size |
| body-md | 16px |
| label-sm | 12.8px |
Font sizes (by frequency)
Weights in use: 100, 300, 400
Line heights (by frequency)
| Value | Count |
| 1 | 8 |
| 1.2 | 2 |
| 1.375 | 1 |
| 1.3 | 1 |
| 1.27 | 1 |
| 1.125 | 1 |
| .78 | 1 |
| 1.5 | 1 |
| 0 | 1 |
Letter spacing (by frequency)
| Value | Count |
| -.04em | 7 |
| -.02em | 3 |
| -.03em | 2 |
| 0 | 1 |
Spacing
Borders & Radius
Derived radius tokens
| Token | Value |
| sm | 4px |
| md | 8px |
| lg | 32px |
Raw values (resolved, by frequency)
| Radius | Count |
3.40282e38px | 4 |
0 | 3 |
.25rem | 3 |
1.5rem | 2 |
2rem | 2 |
.5rem | 2 |
1rem | 1 |
.375rem | 1 |
.75rem | 1 |
Shadows
Derived elevation
| Token | Value |
| md | 0 4px 12px #0003 |
All detected shadows
Layout
Container max-width: 768px
Grid columns (largest detected grid): 4
Breakpoints
- 40rem
- 48rem
- 64rem
- 80rem
- 96rem
Animation & Motion
Easing curves
cubic-bezier(0,0,.2,1)
cubic-bezier(.4,0,.2,1)
cubic-bezier(.4,0,.2,1)
cubic-bezier(.86,0,.07,1)
var(--tw-ease,var(--default-transition-timing-function))
var(--ease-in-out)
var(--ease-m-ease)
var(--ease-out)
Keyframes
@keyframes marquee { 0%{transform:translate(0)}to{transform:translate(-25%)} }
Animations
Components
Extracted from the page's own interactive elements (classes → resolved CSS values).
button-primary — sample text: “Resources”
| Property | Value |
| fontSize | 16px |
| padding | 8px 12px |
| transition | color, background-color, border-color 150ms cubic-bezier(0.4, 0, 0.2, 1) |
button-secondary — sample text: “Sign Up”
| Property | Value |
| padding | 10px 20px |
navigation-link
| Property | Value |
| fontSize | 16px |
| padding | 10px 20px |
| transition | color, background-color, border-color 150ms cubic-bezier(0.4, 0, 0.2, 1) |
CTA labels found on page
- Sign In
- Sign Up
- Try Now
- Learn More
- Learn more
Source Design Tokens (CSS custom properties)
:root {
--font-mono: "Geist Mono","Geist Mono Fallback";
--font-sans: "GT Standard",ui-sans-serif,system-ui,sans-serif;
--color-red-400: #ff6568;
--color-red-500: #fb2c36;
--color-red-600: #e40014;
--color-neutral-50: #f4f5f6;
--color-neutral-100: #f5f5f5;
--color-neutral-200: #e5e5e5;
--color-neutral-300: #d4d4d4;
--color-neutral-600: #525252;
--color-neutral-800: #262626;
--color-neutral-900: #171717;
--color-black: #000;
--color-white: #fff;
--spacing: .25rem;
--container-xs: 20rem;
--container-sm: 24rem;
--container-md: 28rem;
--container-lg: 32rem;
--container-xl: 36rem;
--container-2xl: 42rem;
--container-3xl: 48rem;
--container-4xl: 56rem;
--container-5xl: 64rem;
--text-xs: 11px;
--text-xs--line-height: 1;
--text-sm: 15px;
--text-sm--line-height: 1.2;
--text-base: 16px;
--text-base--line-height: 1.375;
--text-lg: 18px;
--text-lg--line-height: 1.3;
--text-xl: 20px;
--text-xl--line-height: 1.27;
--text-2xl: 24px;
--text-2xl--line-height: 1.2;
--text-3xl: 32px;
--text-3xl--line-height: 1.125;
--text-4xl: 40px;
--text-4xl--line-height: 1;
--text-5xl: 46px;
--text-5xl--line-height: 1;
--text-6xl: 48px;
--text-6xl--line-height: 1;
--text-7xl: 60px;
--text-7xl--line-height: 1;
--text-9xl: 100px;
--text-9xl--line-height: 1;
--font-weight-normal: 400;
--font-weight-medium: 500;
--font-weight-semibold: 600;
--tracking-wide: .025em;
--tracking-wider: .05em;
--leading-snug: 1.375;
--leading-relaxed: 1.625;
--radius-sm: .25rem;
--radius-md: .375rem;
--radius-lg: .5rem;
--radius-xl: .75rem;
--radius-2xl: 1rem;
}
Do's and Don'ts
Do
- Do reserve the accent
#FB2C36 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
var(--font-heading-italic),serif with tight tracking (-.04em), and body copy in the primary stack.
- Do stick to the detected font weight(s): 100, 300, 400.
Don't
- Don't introduce colors outside the detected palette — every hue above was found in the source.
Design Tokens (copy-paste)
:root {
--color-background: #FFFFFF;
--color-primary: #FF6568;
--color-accent: #FB2C36;
--color-surface: #F4F5F6;
--color-text-primary: #000000;
--color-secondary: #000000;
--color-text-secondary: #E5E5E5;
--color-border: #D4D4D4;
--color-on-primary: #000000;
--color-on-secondary: #FFFFFF;
--color-on-accent: #FFFFFF;
--color-surface-container-lowest: #FFFFFF;
--color-surface-container-low: #F5F5F5;
--color-surface-container: #F4F5F6;
--color-surface-container-high: #F2F2F2;
--color-surface-container-highest: #E7E7E7;
--font-sans: Geist Mono;
--font-size-body-md: 16px;
--font-size-label-sm: 12.8px;
--radius-sm: 4px;
--radius-md: 8px;
--radius-lg: 32px;
--shadow-md: 0 4px 12px #0003;
--font-display: var(--font-heading-italic),serif;
--tracking-display: -.04em;
--container-max: 768px;
}