Design system extracted from https://www.clutch.security/ on 2026-08-27 (code-based analysis).
— · card padding: ——0%{transform:translatey(0)}50%{transform:translatey(5px)}to{transform:translatey(0)}
0%{transform:rotate(0deg)}to{transform:rotate(1turn)}
0%{transform:rotate(0deg)}to{transform:rotate(-350deg)}
0%{stroke-dashoffset:125}to{stroke-dashoffset:0}
0%{opacity:0;transform:translateX(200px)}to{opacity:1;transform:translateX(0)}
0%{opacity:0;transform:translateX(-200px)}to{opacity:1;transform:translateX(0)}
0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(200px)}
0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(-200px)}
0%{opacity:1;transform:rotateX(0deg) scale(1)}to{opacity:0;transform:rotateX(-10deg) scale(.95)}
| Field | Value |
|---|---|
| Site / Project | https://www.clutch.security/ |
| Analyzed on | 2026-08-27 |
| Analysis mode | Automated code extraction (no AI) |
This design system was extracted programmatically from the source page. It is built on a light canvas (#FFFFFF), ink text (#000000), a vivid accent (#004DFF). All type is set in Inter,sans-serif. Detected font weights: 100, 400, 500, 600. Detected style signatures: gradient-rich / aurora; technical / mono accents.
Logo asset(s): https://www.clutch.security/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Flogo-full-black.f177f8fc.svg&w=384&q=75&dpl=dpl_9iuB61RZdhWmuwbHg5LSZmGLYadR · https://www.clutch.security/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fgithubcopilot.cdbda99f.svg&w=256&q=75&dpl=dpl_9iuB61RZdhWmuwbHg5LSZmGLYadR
| Hex | RGB | HSL | Count |
|---|---|---|---|
#000000 | 0, 0, 0 | 0° 0% 0% | 33 |
#FFFFFF | 255, 255, 255 | 0° 0% 100% | 26 |
#004DFF | 0, 77, 255 | 222° 100% 50% | 9 |
#D9E4FF | 217, 228, 255 | 223° 100% 93% | 5 |
#E6C5F7 | 230, 197, 247 | 280° 76% 87% | 3 |
#F4F4F4 | 244, 244, 244 | 0° 0% 96% | 2 |
#3B82F6 | 59, 130, 246 | 217° 91% 60% | 2 |
#E5E7EB | 229, 231, 235 | 220° 13% 91% | 1 |
#111111 | 17, 17, 17 | 0° 0% 7% | 1 |
#191919 | 25, 25, 25 | 0° 0% 10% | 1 |
#D9D9D9 | 217, 217, 217 | 0° 0% 85% | 1 |
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-accent | #004DFF | 0, 77, 255 | 222° 100% 50% |
--color-primary | #004DFF | 0, 77, 255 | 222° 100% 50% |
--color-background | #FFFFFF | 255, 255, 255 | 0° 0% 100% |
--color-surface | #F4F4F4 | 244, 244, 244 | 0° 0% 96% |
--color-text-primary | #000000 | 0, 0, 0 | 0° 0% 0% |
--color-secondary | #000000 | 0, 0, 0 | 0° 0% 0% |
--color-text-secondary | #D9E4FF | 217, 228, 255 | 223° 100% 93% |
--color-border | #E5E7EB | 229, 231, 235 | 220° 13% 91% |
--color-on-primary | #FFFFFF | 255, 255, 255 | 0° 0% 100% |
--color-on-secondary | #FFFFFF | 255, 255, 255 | 0° 0% 100% |
--color-on-accent | #FFFFFF | 255, 255, 255 | 0° 0% 100% |
| Token | Hex |
|---|---|
--color-surface-container-lowest | #FFFFFF |
--color-surface-container-low | #F4F4F4 |
--color-surface-container | #E5E7EB |
--color-surface-container-high | #D9D9D9 |
linear-gradient(180deg,#191919,#000)linear-gradient(180deg,hsla(0,0%,100%,.1),hsla(0,0%,100%,.1))linear-gradient(270deg, #FFFFFF -154.98%, #000000 68.37%), linear-gradient(270deg, color(display-p3 1.000 1.000 1.000) -154.98%, color(display-p3 0.000 0.000 0.000) 68.37%)radial-gradient(37% 37% at 98.12% 50.68%, rgba(255, 255, 255, 0) 70.77%, #FFFFFF 100%)from 206.55deg at 18.84% 51%,
rgba(255, 255, 255, 0) -137.29deg,
rgba(255, 255, 255, 0) 201.31deg,
#004DFF 197.22deg,
#D9E4FF 200.69deg,
#004DFF 201.02deg,
#000000 201.15deg,
rgba(255, 255, 255, 0) 200.71deg,
rgba(255, 255, 255, 0) 552.71deg
)`
linear-gradient(111.56deg, #000000 2.79%, #FFFFFF 99.72%)linear-gradient(110.35deg, #000000 1%, #FFFFFF 99.64%)linear-gradient(108.3deg, #000000 -2.11%, #FFFFFF 99.52%)linear-gradient(0deg, rgba(255, 255, 255, 0) 40%, #000000 100%)from 150deg at 50.16% 134.06%,
#000000 -13.74deg,
rgba(255, 255, 255, 0) 8.33deg,
rgba(255, 255, 255, 0) 136.41deg,
rgba(255, 255, 255, 0.763112) 178.7deg,
#D9E4FF 200.9deg,
#000000 233.57deg,
#E6C5F7 260.37deg,
#000000 283.32deg,
#004DFF 304.77deg,
#FFFFFF 316.56deg,
#004DFF 327.82deg,
#000000 346.26deg,
rgba(255, 255, 255, 0) 368.33deg
)`
> 1 additional gradient definitions were framework utility templates (unresolvable var(--tw-gradient-stops)) and were omitted.
Primary typeface: Inter — stack: Inter,sans-serif
Inter,sans-serifPP Radio Grotesk,sans-serif'Inter'ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emojiui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospaceinheritPP Radio Grotesk| Token | Size |
|---|---|
| display | 68px |
| headline-lg | 40px |
| headline-md | 26px |
| title-lg | 20px |
| body-lg | 17px |
| body-md | 16px |
| label-md | 14px |
| label-sm | 12px |
| Size | Count |
|---|---|
| 14px | 6 |
| 13px | 3 |
| 32px | 2 |
| 26px | 2 |
| 20px | 2 |
| 16px | 2 |
| 15px | 2 |
| 12px | 2 |
| 10px | 2 |
| 1em | 1 |
| 68px | 1 |
| 56px | 1 |
| 40px | 1 |
| 24px | 1 |
| 17px | 1 |
| 38px | 1 |
Weights in use: 100, 400, 500, 600
| Value | Count |
|---|---|
| 1.5 | 1 |
| 0 | 1 |
| Value | Count |
|---|---|
| .01em | 4 |
| -.02em | 4 |
| -.01em | 3 |
| .02em | 2 |
| .16em | 2 |
| .12em | 1 |
| 0 | 1 |
| Token | Value |
|---|---|
| unit | 8px |
| xs | 2px |
| sm | 8px |
| md | 16px |
| lg | 32px |
| xl | 64px |
| Value | Count |
|---|---|
| 6px | 4 |
| 32px | 3 |
| 24px | 2 |
| 16px | 2 |
| 48px | 2 |
| 2px | 1 |
| 10px | 1 |
| 12px | 1 |
| 40px | 1 |
| 8px | 1 |
| 4px | 1 |
| 64px | 1 |
| 72px | 1 |
| 80px | 1 |
| 96px | 1 |
| Token | Value |
|---|---|
| sm | 4px |
| md | 8px |
| lg | 24px |
| pill | 50% |
| Radius | Count |
|---|---|
6px | 5 |
24px | 3 |
inherit | 1 |
12px | 1 |
16px | 1 |
4px | 1 |
8px | 1 |
5px | 1 |
60px | 1 |
80px | 1 |
50% | 1 |
0 | 1 |
| Token | Value |
|---|---|
| sm | 0 2px 6px 0 #00000029 |
| md | 3px 3.5px 0 0 #000 |
inset 0 0 20px 20px #fff0 2px 6px 0 #000000293px 3.5px 0 0 #000Container max-width: 768px
Grid columns (largest detected grid): 7
background-color 5000s ease-in-out 0s.2s easeheight 0.4s cubic-bezier(0, 0, 0, 1), visibility 0.4s, opacity 0.4scubic-bezier(.4,0,.2,1)cubic-bezier(0, 0, 0, 1)@keyframes flying { 0%{transform:translatey(0)}50%{transform:translatey(5px)}to{transform:translatey(0)} }
@keyframes rotations { 0%{transform:rotate(0deg)}to{transform:rotate(1turn)} }
@keyframes scaner-rotations { 0%{transform:rotate(0deg)}to{transform:rotate(-350deg)} }
@keyframes drawLine { 0%{stroke-dashoffset:125}to{stroke-dashoffset:0} }
@keyframes enterFromRight { 0%{opacity:0;transform:translateX(200px)}to{opacity:1;transform:translateX(0)} }
@keyframes enterFromLeft { 0%{opacity:0;transform:translateX(-200px)}to{opacity:1;transform:translateX(0)} }
@keyframes exitToRight { 0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(200px)} }
@keyframes exitToLeft { 0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(-200px)} }
@keyframes scaleOut { 0%{opacity:1;transform:rotateX(0deg) scale(1)}to{opacity:0;transform:rotateX(-10deg) scale(.95)} }
@keyframes fadeOut { 0%{opacity:1}to{opacity:0} }
@keyframes scaleIn { 0%{opacity:0;transform:rotateX(-10deg) scale(.9)}to{opacity:1;transform:rotateX(0deg) scale(1)} }
@keyframes fadeIn { 0%{opacity:0}to{opacity:1} }
enterFromRight .25s easeenterFromLeft .25s easeexitToRight .25s easeexitToLeft .25s easescaleOut .2s easefadeOut .2s easescaleIn .2s easefadeIn .2s ease:root {
--accent: #004dff;
--primary: rgb(255 255 255/var(--tw-text-opacity,1);
}
Do
#004DFF for interactive highlights and key moments — it is used sparingly on the source page.#FFFFFF; surfaces should stay within the detected neutral ramp.Don't
:root {
--color-accent: #004DFF;
--color-primary: #004DFF;
--color-background: #FFFFFF;
--color-surface: #F4F4F4;
--color-text-primary: #000000;
--color-secondary: #000000;
--color-text-secondary: #D9E4FF;
--color-border: #E5E7EB;
--color-on-primary: #FFFFFF;
--color-on-secondary: #FFFFFF;
--color-on-accent: #FFFFFF;
--color-surface-container-lowest: #FFFFFF;
--color-surface-container-low: #F4F4F4;
--color-surface-container: #E5E7EB;
--color-surface-container-high: #D9D9D9;
--font-sans: Inter,sans-serif;
--font-size-display: 68px;
--font-size-headline-lg: 40px;
--font-size-headline-md: 26px;
--font-size-title-lg: 20px;
--font-size-body-lg: 17px;
--font-size-body-md: 16px;
--font-size-label-md: 14px;
--font-size-label-sm: 12px;
--radius-sm: 4px;
--radius-md: 8px;
--radius-lg: 24px;
--radius-pill: 50%;
--shadow-sm: 0 2px 6px 0 #00000029;
--shadow-md: 3px 3.5px 0 0 #000;
--space-xs: 2px;
--space-sm: 8px;
--space-md: 16px;
--space-lg: 32px;
--space-xl: 64px;
--tracking-display: -.02em;
--tracking-label: .01em;
--container-max: 768px;
}