Design Specification — Paper – design, share, ship
| Field | Value |
| Site / Project | https://paper.design |
| Analyzed on | 2026-08-04 |
| 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 (#FCFCF9), ink text (#000000), a vivid accent (#ACC4E4). All type is set in var(--default-font-family). Detected font weights: 400, 500, 600. Detected style signatures: gradient-rich / aurora; technical / mono accents; dark-mode aware.
Logo asset(s): https://paper.design/logos/companies/0-ramp.svg · https://paper.design/logos/companies/1-vercel.svg
Color System
Detected palette (by frequency)
| Hex | RGB | HSL | Count |
#000000 | 0, 0, 0 | 0° 0% 0% | 96 |
#FFFFFF | 255, 255, 255 | 0° 0% 100% | 61 |
#181818 | 24, 24, 24 | 0° 0% 9% | 13 |
#C1C1C0 | 193, 193, 192 | 60° 1% 75% | 4 |
#EFEFE4 | 239, 239, 228 | 60° 26% 92% | 4 |
#F9F9F9 | 249, 249, 249 | 0° 0% 98% | 4 |
#444444 | 68, 68, 68 | 0° 0% 27% | 4 |
#959595 | 149, 149, 149 | 0° 0% 58% | 4 |
#666666 | 102, 102, 102 | 0° 0% 40% | 3 |
#222222 | 34, 34, 34 | 0° 0% 13% | 3 |
#373737 | 55, 55, 55 | 0° 0% 22% | 3 |
#111111 | 17, 17, 17 | 0° 0% 7% | 3 |
#81ADEC | 129, 173, 236 | 215° 74% 72% | 2 |
#ACC4E4 | 172, 196, 228 | 214° 51% 78% | 2 |
#E2E2E2 | 226, 226, 226 | 0° 0% 89% | 2 |
#505050 | 80, 80, 80 | 0° 0% 31% | 2 |
#4D94FB | 77, 148, 251 | 216° 96% 64% | 2 |
#797979 | 121, 121, 121 | 0° 0% 47% | 2 |
#FCFBFD | 252, 251, 253 | 270° 33% 99% | 2 |
#DDDDDD | 221, 221, 221 | 0° 0% 87% | 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-background | #FCFCF9 | 252, 252, 249 | 60° 33% 98% |
--color-border | #D7D7D6 | 215, 215, 214 | 60° 1% 84% |
--color-primary | #81ADEC | 129, 173, 236 | 215° 74% 72% |
--color-accent | #ACC4E4 | 172, 196, 228 | 214° 51% 78% |
--color-surface | #EFEFE4 | 239, 239, 228 | 60° 26% 92% |
--color-text-primary | #000000 | 0, 0, 0 | 0° 0% 0% |
--color-secondary | #000000 | 0, 0, 0 | 0° 0% 0% |
--color-text-secondary | #C1C1C0 | 193, 193, 192 | 60° 1% 75% |
--color-on-primary | #000000 | 0, 0, 0 | 0° 0% 0% |
--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 | #FCFCF9 |
--color-surface-container | #FCFBFD |
--color-surface-container-high | #F9F9F9 |
--color-surface-container-highest | #F7F7F1 |
Gradients
linear-gradient(to bottom,#81adec,#5d8cd7)
linear-gradient(to bottom,#a4c6f7,#5d8cd7)
linear-gradient(in oklab 90deg,#f4f4f4 33%,#ddd 33%,#ddd 67%,#fdfdfd 67%)
linear-gradient(in oklab 90deg,lab(96.172% 0 0) 33%,lab(88.168% 0 0) 33%,lab(88.168% 0 0) 67%,lab(99.304% -.0000298023 0) 67%)
linear-gradient(in oklab 90deg,#0002 33%,#0004 33%,#0004 67%,#ffffff28 67%)
linear-gradient(in oklab 90deg,lab(0% 0 0/.133) 33%,lab(0% 0 0/.267) 33%,lab(0% 0 0/.267) 67%,lab(100% 0 0/.157) 67%)
linear-gradient(to right,#efefe41px,transparent 1px),linear-gradient(to bottom,#efefe41px,transparent 1px)
Typography
Primary typeface: var(--default-font-family) — stack: var(--default-font-family)
Font stacks (most used first)
var(--default-font-family)
Inter
Matter,system-ui
var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji")
ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace
-apple-system,BlinkMacSystemFont,Inter,system-ui,sans-serif
var(--font-mono)
Matter
Paper Mono
monospace
Derived type scale
| Token | Size |
| display | 56px |
| body-lg | 18px |
| body-md | 16px |
| label-md | 14px |
| label-sm | 12px |
Font sizes (by frequency)
| Size | Count |
| 12px | 3 |
| 18px | 3 |
| 14px | 2 |
| 1em | 1 |
| 56px | 1 |
| .75em | 1 |
Weights in use: 400, 500, 600
Line heights (by frequency)
| Value | Count |
| 28px | 6 |
| 1 | 2 |
| 20px | 1 |
| 24px | 1 |
| 32px | 1 |
| 38px | 1 |
| 48px | 1 |
| 52px | 1 |
| 68px | 1 |
| 1.5 | 1 |
Letter spacing (by frequency)
| Value | Count |
| -.015em | 3 |
| -.02em | 3 |
| .015em | 2 |
| -.01em | 2 |
| .05em | 2 |
| .01em | 1 |
| .005em | 1 |
| -.084px | 1 |
Spacing
Derived spacing scale
| Token | Value |
| unit | 4px |
| xs | 4px |
| sm | 8px |
| md | 16px |
| lg | 40px |
| xl | 60px |
Raw values (by frequency)
| Value | Count |
| 8px | 4 |
| 40px | 3 |
| 60px | 3 |
| 12px | 3 |
| 16px | 2 |
| 30px | 2 |
| 28px | 2 |
| 0px | 2 |
| 1px | 1 |
| 4px | 1 |
| .01em | 1 |
| 24px | 1 |
| 10px | 1 |
| 44px | 1 |
Borders & Radius
Derived radius tokens
| Token | Value |
| sm | 1px |
| md | 8px |
| lg | 48px |
Raw values (resolved, by frequency)
| Radius | Count |
5px | 3 |
0 | 2 |
4px | 2 |
14px | 2 |
12px | 1 |
2px | 1 |
6px | 1 |
8px | 1 |
1px | 1 |
24px | 1 |
3.40282e38px | 1 |
48px | 1 |
Shadows
Derived elevation
| Token | Value |
| sm | 0 0 0 1px #80808026,0 93px 26px #0000,0 59px 24px #00000003,0 33px 20px #0000000d,0 15px 15px #00000017,0 4px 8px #0000001a |
| md | inset 0 1px #ffffff1f,inset 0 -1px #0000001f |
| lg | 0 16px 32px -16px #0000001f,0 8px 16px -8px #00000014,0 4px 8px -4px #0000000a,0 2px 4px #00000005,0 0 0 1px #00000014 |
All detected shadows
inset 0 -.05em .5em #ffffff0f,inset 0 -.15em #000000e6,inset 0 .25em .5em #ffffff06,0 0 0 .075em #ffffff26,0 .08em .17em #000000f2
0 0 0 1px #80808026,0 93px 26px #0000,0 59px 24px #00000003,0 33px 20px #0000000d,0 15px 15px #00000017,0 4px 8px #0000001a
inset 0 1px #ffffff1f,inset 0 -1px #0000001f
0 16px 32px -16px #0000001f,0 8px 16px -8px #00000014,0 4px 8px -4px #0000000a,0 2px 4px #00000005,0 0 0 1px #00000014
inset 0 -.05em .5em #00000006,inset 0 .05em #fffffff2,inset 0 .25em .5em #00000006,inset 0 -.05em #00000026,0 0 0 .05em #0000001f,0 .08em .17em #0003
inset 0 -.05em .5em #00000006,inset 0 .05em #fffffff2,inset 0 .25em .5em #00000006,inset 0 -.025em .05em #00000026,0 0 0 .05em #0000001f,0 .04em .05em #0003
Layout
Container max-width: 899px
Grid columns (largest detected grid): 3
Breakpoints
- 640px
- 720px
- 899px
- 900px
- 1080px
- 1140px
- 1471px
- 1600px
Animation & Motion
Transitions
background .15s ease-out,transform .1s ease-out
translate 60ms,box-shadow 60ms
transform .15s cubic-bezier(.16,1,.3,1)
color .15s ease-out
opacity .15s ease-out
Easing curves
var(--tw-ease,ease)
cubic-bezier(.16,1,.3,1)
cubic-bezier(.25,0,.4,1)
Keyframes
@keyframes marquee { 0%{transform:translate(0)} to{transform:translateX(var(--marquee-offset))} }
@keyframes cursor-reveal { 0%{opacity:0;scale:.5} to{opacity:1;scale:1} }
@keyframes cursor-exit { 0%{opacity:1;scale:1} to{opacity:0;scale:.5} }
@keyframes terminal-chunk-in { 0%{opacity:0;filter:blur(2px);transform:translateY(4px)}to{opacity:1;filter:blur();transform:translateY(0)} }
@keyframes doc-video-playback { 0%{opacity:0;scale:.8}20%{opacity:1;scale:1}80%{opacity:1;scale:1}to{opacity:0;scale:.8} }
Components
Extracted from the page's own interactive elements (classes → resolved CSS values).
button-primary — sample text: “download Paper”
| Property | Value |
| fontWeight | 500 |
| padding | 24px 56px |
| backgroundColor (hover) | #000000 |
button-secondary — sample text: “download Paper”
| Property | Value |
| fontWeight | 500 |
| textColor | #FFFFFF |
| padding | 28px 72px |
navigation-link
| Property | Value |
| transition | opacity 150ms cubic-bezier(0.4, 0, 0.2, 1) |
CTA labels found on page
> Page contains canvas/WebGL elements — consider ambient effects layers.
Source Design Tokens (CSS custom properties)
:root {
--color-blue-300: #a4c6f7;
--color-blue-400: #81adec;
--color-blue-500: #5d8cd7;
--color-blue-600: #4570bc;
--color-gray-50: #f5f5f2;
--color-gray-100: #eaeae7;
--color-gray-200: #d7d7d6;
--color-gray-300: #c1c1c0;
--color-gray-400: #a8a8a8;
--color-gray-500: #909090;
--color-gray-600: #666;
--color-gray-700: #5b5b5b;
--color-gray-800: #424242;
--color-gray-900: #222;
--color-gray-950: #181818;
--color-paper-50: #fcfcf9;
--color-paper-100: #efefe4;
--color-black: #000;
--color-white: #fff;
--color-paper: var(--color-paper-50);
--color-cream: var(--color-paper-100);
--color-off-black: var(--color-gray-950);
--color-root: var(--color-cream);
--color-background: var(--color-paper);
--color-foreground: var(--color-off-black);
--color-note-surface: #f7f7f1;
--color-gray: var(--color-gray-500);
--color-dark-gray: var(--color-gray-600);
--color-border: var(--color-gray-200);
--color-border-dark: var(--color-gray-900);
--color-blue: var(--color-blue-400);
--color-light-blue: var(--color-blue-300);
--color-focus: #81adec;
--color-selection: #8ab9ff80;
--spacing: 1px;
--spacing-vw: calc(1vw - var(--scrollbar-width)/100);
--container-content: calc(var(--body-width) - 32px);
--default-font-family: Matter,system-ui;
--font-mono: "Paper Mono","SFMono-Regular",Menlo,ui-monospace,monospace;
--text-xs: 14px;
--text-xs--line-height: 20px;
--text-xs--letter-spacing: .015em;
--text-sm: 16px;
--text-sm--line-height: 24px;
--text-sm--letter-spacing: .015em;
--text-base: 18px;
--text-base--line-height: 28px;
--text-base--letter-spacing: .01em;
--text-lg: 24px;
--text-lg--line-height: 32px;
--text-lg--letter-spacing: .005em;
--text-xl: 30px;
--text-xl--line-height: 38px;
--text-xl--letter-spacing: -.015em;
--text-2xl: 40px;
--text-2xl--line-height: 48px;
--text-2xl--letter-spacing: -.015em;
--text-3xl: 48px;
--text-3xl--line-height: 52px;
--text-3xl--letter-spacing: -.02em;
}
Do's and Don'ts
Do
- Do reserve the accent
#ACC4E4 for interactive highlights and key moments — it is used sparingly on the source page.
- Do keep the canvas at
#FCFCF9; surfaces should stay within the detected neutral ramp.
- Do stick to the detected font weight(s): 400, 500, 600.
- Do align spacing to the 4px 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-background: #FCFCF9;
--color-border: #D7D7D6;
--color-primary: #81ADEC;
--color-accent: #ACC4E4;
--color-surface: #EFEFE4;
--color-text-primary: #000000;
--color-secondary: #000000;
--color-text-secondary: #C1C1C0;
--color-on-primary: #000000;
--color-on-secondary: #FFFFFF;
--color-on-accent: #000000;
--color-surface-container-lowest: #FFFFFF;
--color-surface-container-low: #FCFCF9;
--color-surface-container: #FCFBFD;
--color-surface-container-high: #F9F9F9;
--color-surface-container-highest: #F7F7F1;
--font-sans: var(--default-font-family);
--font-size-display: 56px;
--font-size-body-lg: 18px;
--font-size-body-md: 16px;
--font-size-label-md: 14px;
--font-size-label-sm: 12px;
--radius-sm: 1px;
--radius-md: 8px;
--radius-lg: 48px;
--shadow-sm: 0 0 0 1px #80808026,0 93px 26px #0000,0 59px 24px #00000003,0 33px 20px #0000000d,0 15px 15px #00000017,0 4px 8px #0000001a;
--shadow-md: inset 0 1px #ffffff1f,inset 0 -1px #0000001f;
--shadow-lg: 0 16px 32px -16px #0000001f,0 8px 16px -8px #00000014,0 4px 8px -4px #0000000a,0 2px 4px #00000005,0 0 0 1px #00000014;
--space-xs: 4px;
--space-sm: 8px;
--space-md: 16px;
--space-lg: 40px;
--space-xl: 60px;
--tracking-display: -.015em;
--tracking-label: .015em;
--container-max: 899px;
}