Design Specification — Link in bio tool: Everything you are, in one simple link | Linktree
| Field | Value |
| Site / Project | https://linktr.ee/ |
| Analyzed on | 2026-09-02 |
| 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 muted accent (#1E2330). All type is set in var(--font-linksans). Detected font weights: 100, 300, 400, 500, 600, 700, 800. Detected style signatures: gradient-rich / aurora; rounded / pill-heavy; technical / mono accents.
Logo asset(s): https://linktr.ee/favicon.ico?favicon.12e703tnl4s-b.ico
Color System
Detected palette (by frequency)
| Hex | RGB | HSL | Count |
#000000 | 0, 0, 0 | 0° 0% 0% | 62 |
#1E2330 | 30, 35, 48 | 223° 23% 15% | 59 |
#FFFFFF | 255, 255, 255 | 0° 0% 100% | 32 |
#F3F3F1 | 243, 243, 241 | 60° 8% 95% | 18 |
#D2E823 | 210, 232, 35 | 67° 81% 52% | 10 |
#EFF0EC | 239, 240, 236 | 75° 12% 93% | 10 |
#502274 | 80, 34, 116 | 274° 55% 29% | 9 |
#5A662D | 90, 102, 45 | 73° 39% 29% | 8 |
#B69FAF | 182, 159, 175 | 318° 14% 67% | 8 |
#676B5F | 103, 107, 95 | 80° 6% 40% | 7 |
#FC3E4B | 252, 62, 75 | 356° 97% 62% | 6 |
#43E660 | 67, 230, 96 | 131° 77% 58% | 6 |
#CC01DD | 204, 1, 221 | 295° 99% 44% | 6 |
#C41500 | 196, 21, 0 | 6° 100% 38% | 6 |
#F4F4F1 | 244, 244, 241 | 60° 12% 95% | 6 |
#E9C0E9 | 233, 192, 233 | 300° 48% 83% | 5 |
#061492 | 6, 20, 146 | 234° 92% 30% | 5 |
#780016 | 120, 0, 22 | 349° 100% 24% | 5 |
#4C2E05 | 76, 46, 5 | 35° 88% 16% | 5 |
#E0E2D9 | 224, 226, 217 | 73° 13% 87% | 5 |
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-accent | #1E2330 | 30, 35, 48 | 223° 23% 15% |
--color-primary | #D2E823 | 210, 232, 35 | 67° 81% 52% |
--color-surface | #F3F3F1 | 243, 243, 241 | 60° 8% 95% |
--color-text-primary | #000000 | 0, 0, 0 | 0° 0% 0% |
--color-secondary | #000000 | 0, 0, 0 | 0° 0% 0% |
--color-text-secondary | #5A662D | 90, 102, 45 | 73° 39% 29% |
--color-border | #B69FAF | 182, 159, 175 | 318° 14% 67% |
--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 | #F6F7F5 |
--color-surface-container | #F4F4F1 |
--color-surface-container-high | #F3F3F1 |
--color-surface-container-highest | #EFF0EC |
Gradients
radial-gradient(circle at 0%,#6fc2ca,#4f33f8 71.67%,#6c2ce2)
linear-gradient(144deg,#f6f2ff 72.5%,#e8e1f7 101.9%)
linear-gradient(145deg,#fff 65.7%,#f7f7f7 101.2%)
linear-gradient(150deg,#f6f2ff 72.5%,#e8e1f7 101.9%)
> 1 additional gradient definitions were framework utility templates (unresolvable var(--tw-gradient-stops)) and were omitted.
Typography
Primary typeface: var(--font-linksans) — stack: var(--font-linksans)
Font stacks (most used first)
var(--font-linksans)
DM Mono
'Anybody Variablefont Wdth Wght'
var(--font-sans)
var(--font-mono)
'Linksans'
'Roboto Flex'
'Archivo'
DM Mono Fallback
mencken
Derived type scale
| Token | Size |
| display | 80px |
| headline-lg | 41px |
| headline-md | 28px |
| title-lg | 20px |
| body-lg | 18.2px |
| body-md | 16.6px |
| label-md | 14px |
| label-sm | 12px |
Font sizes (by frequency)
| Size | Count |
| 24px | 7 |
| 20px | 7 |
| 16px | 5 |
| 56px | 5 |
| 12px | 4 |
| 18.18px | 4 |
| 18px | 4 |
| 40px | 4 |
| 14px | 4 |
| 28px | 3 |
| 2rem | 3 |
| 41px | 3 |
| .75rem | 2 |
| 3rem | 2 |
| 10px | 2 |
| 13px | 2 |
| 15px | 2 |
| 80px | 2 |
| 34px | 2 |
| 16.6px | 2 |
Weights in use: 100, 300, 400, 500, 600, 700, 800
Line heights (by frequency)
| Value | Count |
| 1 | 5 |
| 1.5 | 3 |
| 0 | 2 |
| 24px | 2 |
| .9 | 2 |
| 1.05 | 2 |
| 1.07 | 2 |
| 1.1 | 2 |
| 21px | 1 |
| 20px | 1 |
Letter spacing (by frequency)
| Value | Count |
| -.01em | 5 |
| -.02em | 2 |
| -1px | 2 |
| -.2px | 1 |
| -.3px | 1 |
| -.4px | 1 |
| -.5px | 1 |
| -.013em | 1 |
Spacing
Derived spacing scale
| Token | Value |
| unit | 8px |
| xs | 4px |
| sm | 8px |
| md | 16px |
| lg | 32px |
| xl | 56px |
Raw values (by frequency)
| Value | Count |
| 32px | 15 |
| 24px | 13 |
| 16px | 12 |
| 8px | 11 |
| 12px | 11 |
| 48px | 11 |
| 64px | 11 |
| 40px | 10 |
| 20px | 7 |
| 80px | 6 |
| 4px | 5 |
| 7.27px | 4 |
| 58.18px | 4 |
| 128px | 3 |
| 6px | 3 |
| 56px | 3 |
Borders & Radius
Derived radius tokens
Raw values (resolved, by frequency)
| Radius | Count |
48px | 5 |
24px | 5 |
16px | 5 |
0 | 4 |
28px | 4 |
inherit | 3 |
40px | 3 |
3.40282e38px | 3 |
8px | 3 |
32px | 3 |
64px | 2 |
.57vw | 2 |
Shadows
Derived elevation
| Token | Value |
| sm | 4px 4px 0 0 #000 |
| md | 5px 5px 0 0 |
All detected shadows
4px 4px 0 0 #000
5px 5px 0 0
Layout
Container max-width: 700px
Grid columns (largest detected grid): 5
Breakpoints
- 480px
- 768px
- 991px
- 992px
- 1279px
- 1280px
- 1440px
- 1920px
Animation & Motion
Transitions
none
transform .3s cubic-bezier(1,0,0,1)
transform .7s cubic-bezier(.433,.217,.355,1)
Easing curves
cubic-bezier(.4, 0, 1, 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)
var(--tw-ease,var(--default-transition-timing-function))
cubic-bezier(.4,.2,.2,1)
cubic-bezier(.4,.2,.2,1)
Keyframes
@keyframes accordion-down { 0%{height:0}to{height:var(--radix-accordion-content-height)} }
@keyframes accordion-up { 0%{height:var(--radix-accordion-content-height)}to{height:0} }
@keyframes nav-dropdown-in { 0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)} }
@keyframes nav-tab-panel-in { 0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)} }
@keyframes overlay-in { 0%{opacity:0}to{opacity:1} }
@keyframes overlay-out { 0%{opacity:1}to{opacity:0} }
@keyframes content-in { 0%{opacity:0;transform:translate(-50%,-48%)scale(.96)}to{opacity:1;transform:translate(-50%,-50%)scale(1)} }
@keyframes content-out { 0%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-48%)scale(.96)} }
@keyframes home-hero-tower-up { 0%,2%{transform:translateY(0)}20%,22%{transform:translateY(calc(-1 * var(--card-step)))}40%,42%{transform:translateY(calc(-2 * var(--card-step)))}60%,62%{transform:translateY(calc(-3 * var(--card-step)))}80%,82%{transform:translateY(calc(-4 * var(--card-step)))}to{transform:translateY(calc(-5 * var(--card-step)))} }
@keyframes home-hero-tower-left { 0%,2%{transform:translate(0)}20%,22%{transform:translateX(calc(-1 * var(--card-step)))}40%,42%{transform:translateX(calc(-2 * var(--card-step)))}60%,62%{transform:translateX(calc(-3 * var(--card-step)))}80%,82%{transform:translateX(calc(-4 * var(--card-step)))}to{transform:translateX(calc(-5 * var(--card-step)))} }
@keyframes marquee { 0%{transform:translate(0)}to{transform:translate(-50%)} }
@keyframes spin { to{transform:rotate(360deg)} }
@keyframes pulse { 50%{opacity:.5} }
Animations
home-hero-tower-left var(--hero-tower-duration) ease-in-out infinite
home-hero-tower-left var(--hero-tower-duration) ease-in-out infinite paused
home-hero-tower-up var(--hero-tower-duration) ease-in-out infinite
home-hero-tower-up var(--hero-tower-duration) ease-in-out infinite paused
.2s ease-out nav-tab-panel-in
var(--animate-pulse)
var(--animate-spin)
.18s ease-out accordion-up
.15s ease-in content-out
.15s ease-in overlay-out
Components
Extracted from the page's own interactive elements (classes → resolved CSS values).
button-primary — sample text: “Get started for free”
| Property | Value |
| fontWeight | 500 |
| fontSize | 16px |
| padding | 0 36px |
button-secondary — sample text: “Get started for free”
| Property | Value |
| fontWeight | 500 |
| fontSize | 16px |
| padding | 0 36px |
Effects
- backdrop-filter:
saturate()
Source Design Tokens (CSS custom properties)
:root {
--font-dm-mono: "DM Mono", "DM Mono Fallback";
--font-mencken: "mencken", "mencken Fallback";
--font-thatthat: "thatThat", "thatThat Fallback";
--font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
--font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;
--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
--color-red-500: #fb2c36;
--color-red-600: #e40014;
--color-red-700: #bf000f;
--color-yellow-200: #fff085;
--color-green-100: #dcfce7;
--color-green-500: #00c758;
--color-emerald-600: #009767;
--color-blue-100: #dbeafe;
--color-blue-500: #3080ff;
--color-blue-600: #155dfc;
--color-blue-900: #1c398e;
--color-slate-100: #f1f5f9;
--color-slate-200: #e2e8f0;
--color-slate-700: #314158;
--color-slate-900: #0f172b;
--color-gray-50: #f9fafb;
--color-gray-100: #f3f4f6;
--color-gray-200: #e5e7eb;
--color-gray-400: #99a1af;
--color-gray-500: #6a7282;
--color-gray-600: #4a5565;
--color-gray-700: #364153;
--color-gray-800: #1e2939;
--color-gray-900: #101828;
--color-gray-950: #030712;
--color-stone-50: #fafaf9;
--color-black: #000;
--color-white: #fff;
--spacing: .25rem;
--breakpoint-sm: 480px;
--breakpoint-md: 768px;
--breakpoint-lg: 992px;
--breakpoint-xl: 1280px;
--breakpoint-2xl: 1440px;
--container-xs: 20rem;
--container-sm: 24rem;
--container-md: 28rem;
--container-lg: 32rem;
--container-xl: 36rem;
--container-2xl: 42rem;
--container-3xl: 48rem;
--container-5xl: 64rem;
--container-7xl: 80rem;
--text-xs: .75rem;
--text-xs--line-height: calc(1 / .75);
--text-sm: .875rem;
--text-sm--line-height: calc(1.25 / .875);
--text-base: 16px;
--text-base--line-height: calc(1.5 / 1);
--text-lg: 1.125rem;
--text-lg--line-height: calc(1.75 / 1.125);
--text-xl: 1.25rem;
--text-xl--line-height: calc(1.75 / 1.25);
--text-2xl: 1.5rem;
}
Do's and Don'ts
Do
- Do reserve the accent
#1E2330 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 stick to the detected font weight(s): 100, 300, 400, 500, 600, 700, 800.
- 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-background: #FFFFFF;
--color-accent: #1E2330;
--color-primary: #D2E823;
--color-surface: #F3F3F1;
--color-text-primary: #000000;
--color-secondary: #000000;
--color-text-secondary: #5A662D;
--color-border: #B69FAF;
--color-on-primary: #000000;
--color-on-secondary: #FFFFFF;
--color-on-accent: #FFFFFF;
--color-surface-container-lowest: #FFFFFF;
--color-surface-container-low: #F6F7F5;
--color-surface-container: #F4F4F1;
--color-surface-container-high: #F3F3F1;
--color-surface-container-highest: #EFF0EC;
--font-sans: var(--font-linksans);
--font-size-display: 80px;
--font-size-headline-lg: 41px;
--font-size-headline-md: 28px;
--font-size-title-lg: 20px;
--font-size-body-lg: 18.2px;
--font-size-body-md: 16.6px;
--font-size-label-md: 14px;
--font-size-label-sm: 12px;
--radius-md: 8px;
--radius-lg: 48px;
--shadow-sm: 4px 4px 0 0 #000;
--shadow-md: 5px 5px 0 0;
--space-xs: 4px;
--space-sm: 8px;
--space-md: 16px;
--space-lg: 32px;
--space-xl: 56px;
--tracking-display: -.01em;
--container-max: 700px;
}