linear.app ships with data-theme=dark. The marketing background token is #010102 and the dark base level is #08090a; one theme sets border-primary to #ffffff14 (8% white), giving hairline dividers. Depth comes from soft radial gradients of translucent white, such as #ffffff0a (about 4%) fading to transparent, plus edge-glow and shine-beam masks on cards. The accent is #7170ff (hover #828fff), used sparingly. Type is Inter Variable at weights 510 (medium) and 680 (bold); the hero headline's lines start at opacity 0 with blur(10px) and translateY(20%) and resolve in.
Near-black with faint white glows and hairline borders gives depth without boxes or heavy color, so the product UI and the headline carry the page. The few accent touches stand out because nothing else competes.
Developer tools, AI and software products, technical launches, and any piece that should feel precise and premium
Steal it for your brand
The same system, written in your colors, type and shapes. Nothing of Linear's look comes with it.
palette.night, text in palette.on night, secondary text at 60% opacity.palette.on night at 8% opacity instead of filled boxes.palette.on night at 4 to 8% opacity fading to transparent at half its radius.palette.accent on night for at most one or two marks per screen: a link, a status, a single highlighted word.{
"recipe": {
"page_fill": "{palette.night}",
"text": "{palette.on_night}",
"text_muted_opacity": 0.6,
"hairline": "{palette.on_night}",
"hairline_opacity": 0.08,
"hairline_px": 1,
"glow_color": "{palette.on_night}",
"glow_opacity": {
"by": "style.emphasis",
"map": {
"color": 0.04,
"contrast": 0.08
},
"default": 0.05
},
"glow_radius_ratio": 0.5,
"accent": "{palette.accent_on_night}",
"accent_share_max": 0.05,
"card_radius_px": "{style.radius}",
"headline_weight": "{typography.display.weight}",
"headline_reveal": {
"blur_px_from": 10,
"rise_ratio_from": 0.2,
"duration_ms": {
"by": "style.motion",
"map": {
"calm": 900,
"crisp": 500,
"playful": 700
},
"default": 700
},
"stagger_ms": 80
},
"section_gap_px": {
"by": "style.density",
"map": {
"airy": 160,
"balanced": 128,
"dense": 96
},
"default": 128
}
},
"fallbacks": {
"palette.night": "{palette.ink}",
"palette.on_night": "{palette.paper}",
"palette.accent_on_night": "{palette.accent}",
"style.radius": 12
},
"steps": [
"Set the whole page on {palette.night}, text in {palette.on_night}, secondary text at 60% opacity.",
"Separate sections and cards with 1 px hairlines of {palette.on_night} at 8% opacity instead of filled boxes.",
"Behind the hero and key cards, place one radial glow of {palette.on_night} at 4 to 8% opacity fading to transparent at half its radius.",
"Use {palette.accent_on_night} for at most one or two marks per screen: a link, a status, a single highlighted word.",
"Reveal the headline line by line from a 10 px blur and a small rise, over the recipe's headline_reveal duration_ms with stagger_ms between lines; then hold still."
]
}The lesson
Let a near-black page, faint hairlines and a cropped view of the app do the separating, so the headline needs no boxes or color.
White type on near-black: "The product development system for teams and agents", a grey subline "Purpose-built for planning and building products. Designed for the AI era." and a "New Loops" link. The app interface starts directly below in a thin-bordered panel showing an issue titled "Faster app launch"; a pale Sign up pill is the nav's brightest button.
A dark canvas can lose legibility for small text, so check contrast on your own copy. Keep the few bright accents and the app view cropped into the hero.