Airbnb Design Tokens
Online marketplace for lodging and experiences
Image gallery lazy loading
Observed with Dembrandt. Semantic roles, gradients, and breakpoints come from live extractions where available; contrast is computed from the real palette. Try the CLI for the complete W3C token export.
Design tokens observed from publicly visible CSS. Dembrandt does not host, copy, or redistribute any brand assets.
Colors
Typography
Shadows
Spacing
Border Radius
Borders
Links
Gradients
linear-gradient(#ffffff 39.9%, #f8f8f8 100%)
Opacity
Breakpoints
Motion
Contrast · WCAG 2.2
Button label
3.52:1
Body text
15.91:1
Button States
React + Next.js{
"$schema": "https://design-tokens.org/schema.json",
"color": {
"palette-1": {
"$type": "color",
"$value": "#ff385c"
},
"palette-2": {
"$type": "color",
"$value": "#222222"
},
"palette-3": {
"$type": "color",
"$value": "#6a6a6a"
},
"palette-4": {
"$type": "color",
"$value": "#ebebeb"
},
"palette-5": {
"$type": "color",
"$value": "#f7f7f7"
},
"palette-6": {
"$type": "color",
"$value": "#ffffff"
},
"primary": {
"$type": "color",
"$value": "#ff385c"
},
"background": {
"$type": "color",
"$value": "#ffffff"
},
"text": {
"$type": "color",
"$value": "#222222"
},
"link": {
"$type": "color",
"$value": "#222222"
}
},
"border": {
"border-1": {
"$type": "border",
"$value": "1px solid #dddddd"
},
"border-2": {
"$type": "border",
"$value": "1px solid rgba(255, 255, 255, 0.5)"
}
},
"gradient": {
"gradient-1": {
"$type": "gradient",
"$value": "linear-gradient(#ffffff 39.9%, #f8f8f8 100%)"
}
},
"fontFamily": {
"base": {
"$type": "fontFamily",
"$value": "Airbnb Cereal VF, Circular, sans-serif"
}
},
"fontWeight": {
"weight-400": {
"$type": "fontWeight",
"$value": 400
},
"weight-600": {
"$type": "fontWeight",
"$value": 600
},
"weight-700": {
"$type": "fontWeight",
"$value": 700
}
},
"dimension": {
"space-1": {
"$type": "dimension",
"$value": "4px"
},
"space-2": {
"$type": "dimension",
"$value": "8px"
},
"space-3": {
"$type": "dimension",
"$value": "12px"
},
"space-4": {
"$type": "dimension",
"$value": "16px"
},
"space-5": {
"$type": "dimension",
"$value": "24px"
},
"space-6": {
"$type": "dimension",
"$value": "32px"
},
"radius-1": {
"$type": "dimension",
"$value": "8px"
},
"radius-2": {
"$type": "dimension",
"$value": "14px"
},
"radius-3": {
"$type": "dimension",
"$value": "32px"
},
"radius-4": {
"$type": "dimension",
"$value": "50%"
}
},
"shadow": {
"shadow-1": {
"$type": "shadow",
"$value": "0 1px 2px rgba(0,0,0,0.08)"
},
"shadow-2": {
"$type": "shadow",
"$value": "0 6px 20px rgba(0,0,0,0.12)"
},
"shadow-3": {
"$type": "shadow",
"$value": "0 16px 40px rgba(0,0,0,0.2)"
}
},
"opacity": {
"opacity-0": {
"$type": "number",
"$value": 0
},
"opacity-1": {
"$type": "number",
"$value": 0.04
},
"opacity-2": {
"$type": "number",
"$value": 0.08
},
"opacity-3": {
"$type": "number",
"$value": 0.16
},
"opacity-4": {
"$type": "number",
"$value": 0.4
},
"opacity-5": {
"$type": "number",
"$value": 0.64
},
"opacity-6": {
"$type": "number",
"$value": 0.92
},
"opacity-7": {
"$type": "number",
"$value": 1
}
},
"duration": {
"duration-1": {
"$type": "duration",
"$value": "120ms"
},
"duration-2": {
"$type": "duration",
"$value": "180ms"
},
"duration-3": {
"$type": "duration",
"$value": "280ms"
},
"duration-4": {
"$type": "duration",
"$value": "420ms"
}
},
"cubicBezier": {
"ease-1": {
"$type": "cubicBezier",
"$value": "cubic-bezier(0.4, 0, 0.2, 1)"
},
"ease-2": {
"$type": "cubicBezier",
"$value": "cubic-bezier(0.16, 1, 0.3, 1)"
},
"ease-3": {
"$type": "cubicBezier",
"$value": "linear"
}
},
"breakpoint": {
"bp-1": {
"$type": "dimension",
"$value": "320px"
},
"bp-2": {
"$type": "dimension",
"$value": "480px"
},
"bp-3": {
"$type": "dimension",
"$value": "768px"
},
"bp-4": {
"$type": "dimension",
"$value": "1024px"
},
"bp-5": {
"$type": "dimension",
"$value": "1280px"
},
"bp-6": {
"$type": "dimension",
"$value": "1920px"
}
},
"contrast": {
"button-label": {
"ratio": 3.52,
"grade": "AA Large"
},
"body-text": {
"ratio": 15.91,
"grade": "AAA"
}
}
}
// ...and moreOther token exports
All flags in the CLI quickstart. Same tokens in your editor via the MCP server.