ghost · desktop
提取置信度
- 组件与网站的匹配度为 93%
- 覆盖了网站 100% 的颜色
- 覆盖了网站 100% 的文字样式
- 100% 的令牌在网站上出现过
Linear 的设计系统以深色为主,是为工程团队打造的高密度产品界面。表面色板以近黑色(#08090a、#0f1011)为基础,通过层层叠加的深灰色区分侧边栏、卡片和面板。字体全部使用 Inter Variable,展示尺寸下搭配精确的负字间距;行内代码则使用 Berkeley Mono。圆角设计刻意保持较小(以 2–6px 为主),仅在徽章和状态标签上使用胶囊形状。层级主要通过细微的 1px 内描边和低透明度的投影来体现,而非强烈的叠层效果。主要行动按钮采用 Linear 标志性的靛蓝色(#5e6ad2),用于注册按钮和关键链接。
2px
2px
8px
8px
8px
8px
12px
12px
16px
16px
16px
16px
16px
1376px
1376px
1376px
1376px
1376px
1436px
1436px
1436px
组件
Buttons4
ghost · desktop
ghost · desktop
ghost · desktop
Cards7
desktop
聚焦时,根元素 的 padding right 为 0px,网站上为 32px; 根元素 的 border right width 为 0px,网站上为 1px,另有 1 项。
默认匹配度 100%73 项测量全部一致
悬停匹配度 100%19 项测量全部一致
聚焦匹配度 100%19 项测量中有 3 项不同
默认,实例 2匹配度 100%73 项测量全部一致
默认,实例 3匹配度 100%73 项测量全部一致
desktop
Icon 的 x 为 14px,网站上为 19px。
默认匹配度 100%293 项测量中有 1 项不同
默认,实例 2匹配度 100%293 项测量中有 1 项不同
默认,实例 3匹配度 100%293 项测量中有 1 项不同
默认,实例 4匹配度 100%293 项测量中有 1 项不同
desktop
Icon 的 x 为 14px,网站上为 19px。
默认匹配度 100%235 项测量中有 1 项不同
默认,实例 2匹配度 100%235 项测量中有 1 项不同
默认,实例 3匹配度 100%235 项测量中有 1 项不同
desktop
Group 4 的 y 为 87px,网站上为 163px; List 的 y 为 88px,网站上为 164px,另有 15 项。
默认匹配度 100%361 项测量中有 17 项不同
悬停匹配度 100%18 项测量全部一致
聚焦匹配度 100%18 项测量全部一致
默认,实例 2匹配度 99%361 项测量中有 17 项不同
默认,实例 3匹配度 98%361 项测量中有 17 项不同
默认,实例 4匹配度 100%361 项测量中有 17 项不同
desktop
无法验证:页面放入其中的照片、媒体或广告覆盖了它的大部分区域,且其他地方没有差异,因此这次对比无法说明配方的质量。
默认匹配度 100%122 项测量全部一致
聚焦匹配度 100%18 项测量全部一致
默认,实例 2匹配度 100%122 项测量全部一致
默认,实例 3匹配度 100%122 项测量全部一致
默认,实例 4匹配度 100%122 项测量全部一致
默认,实例 5匹配度 100%122 项测量全部一致
默认,实例 6匹配度 100%122 项测量全部一致
desktop
它的渲染与网站的相似度为 30%,低于 96% 的标准。
默认匹配度 30%108 项测量全部一致
聚焦匹配度 29%18 项测量全部一致
默认,实例 2匹配度 30%108 项测量全部一致
默认,实例 3匹配度 100%108 项测量全部一致
默认,实例 4匹配度 30%108 项测量全部一致
默认,实例 5匹配度 30%108 项测量全部一致
默认,实例 6匹配度 100%108 项测量全部一致
desktop
Group 6 的 height 为 56px,网站上为 96px; Text 3 的 y 为 42px,网站上为 55px,另有 39 项。
默认匹配度 100%588 项测量中有 41 项不同
默认,实例 2匹配度 100%588 项测量中有 41 项不同
默认,实例 3匹配度 100%588 项测量中有 41 项不同
默认,实例 4匹配度 100%588 项测量中有 41 项不同
Extras14
desktop
desktop
desktop
Group 6 的 height 为 56px,网站上为 96px; Text 3 的 y 为 42px,网站上为 55px,另有 39 项。
默认匹配度 100%588 项测量中有 41 项不同
默认,实例 2匹配度 100%588 项测量中有 41 项不同
默认,实例 3匹配度 100%588 项测量中有 41 项不同
默认,实例 4匹配度 100%588 项测量中有 41 项不同
desktop
Icon 2 的 x 为 14px,网站上为 19px。
默认匹配度 98%253 项测量中有 1 项不同
默认,实例 2匹配度 98%253 项测量中有 1 项不同
默认,实例 3匹配度 98%253 项测量中有 1 项不同
默认,实例 4匹配度 97%253 项测量中有 1 项不同
默认,实例 5匹配度 96%253 项测量中有 1 项不同
desktop
desktop
Icon 的 x 为 0px,网站上为 7px。
默认匹配度 100%34 项测量中有 1 项不同
悬停匹配度 100%18 项测量全部一致
聚焦匹配度 98%18 项测量全部一致
desktop
desktop
desktop
desktop
默认匹配度 99%242 项测量全部一致
desktop
desktop
默认匹配度 100%27 项测量全部一致
默认,实例 2匹配度 100%27 项测量全部一致
默认,实例 3匹配度 100%27 项测量全部一致
desktop
desktop
默认匹配度 100%24 项测量全部一致
默认,实例 2匹配度 100%24 项测量全部一致
默认,实例 3匹配度 100%24 项测量全部一致
默认,实例 4匹配度 100%24 项测量全部一致
默认,实例 5匹配度 100%24 项测量全部一致
默认,实例 6匹配度 100%24 项测量全部一致
Headers6
desktop
默认匹配度 100%607 项测量全部一致
悬停未检查
聚焦未检查
cta 上的聚焦匹配度 100%18 项测量全部一致
cta 上的悬停匹配度 100%18 项测量全部一致
nav link 2 上的聚焦匹配度 100%18 项测量全部一致
nav link 2 上的悬停匹配度 100%18 项测量全部一致
nav link 3 上的聚焦匹配度 100%18 项测量全部一致
nav link 3 上的悬停匹配度 100%18 项测量全部一致
nav link 4 上的聚焦匹配度 100%18 项测量全部一致
nav link 4 上的悬停匹配度 100%18 项测量全部一致
nav link 5 上的聚焦匹配度 100%22 项测量全部一致
nav link 5 上的悬停匹配度 100%22 项测量全部一致
nav link 上的聚焦匹配度 100%18 项测量全部一致
desktop
默认匹配度 100%607 项测量全部一致
悬停未检查
聚焦未检查
cta 上的聚焦匹配度 100%18 项测量全部一致
cta 上的悬停匹配度 100%18 项测量全部一致
nav link 2 上的聚焦匹配度 100%18 项测量全部一致
nav link 2 上的悬停匹配度 100%18 项测量全部一致
nav link 3 上的聚焦匹配度 100%18 项测量全部一致
nav link 3 上的悬停匹配度 100%18 项测量全部一致
nav link 4 上的聚焦匹配度 100%18 项测量全部一致
nav link 4 上的悬停匹配度 100%18 项测量全部一致
nav link 5 上的聚焦匹配度 100%22 项测量全部一致
nav link 5 上的悬停匹配度 100%22 项测量全部一致
nav link 上的聚焦匹配度 100%18 项测量全部一致
desktop
默认匹配度 100%607 项测量全部一致
悬停未检查
聚焦未检查
cta 上的聚焦匹配度 100%18 项测量全部一致
cta 上的悬停匹配度 100%18 项测量全部一致
nav link 2 上的聚焦匹配度 100%18 项测量全部一致
nav link 2 上的悬停匹配度 100%18 项测量全部一致
nav link 3 上的聚焦匹配度 100%18 项测量全部一致
nav link 3 上的悬停匹配度 100%18 项测量全部一致
nav link 4 上的聚焦匹配度 100%22 项测量全部一致
nav link 4 上的悬停匹配度 100%22 项测量全部一致
nav link 上的聚焦匹配度 100%18 项测量全部一致
mobile
默认匹配度 100%339 项测量全部一致
悬停未检查
聚焦未检查
menu toggle 上的聚焦匹配度 100%18 项测量全部一致
nav link 2 上的聚焦匹配度 99%18 项测量全部一致
nav link 2 上的悬停匹配度 100%18 项测量全部一致
nav link 3 上的聚焦匹配度 100%22 项测量全部一致
nav link 3 上的悬停匹配度 100%22 项测量全部一致
nav link 上的聚焦匹配度 100%18 项测量全部一致
mobile
默认匹配度 100%339 项测量全部一致
悬停未检查
聚焦未检查
menu toggle 上的聚焦匹配度 100%18 项测量全部一致
nav link 2 上的聚焦匹配度 99%18 项测量全部一致
nav link 2 上的悬停匹配度 100%18 项测量全部一致
nav link 3 上的聚焦匹配度 100%22 项测量全部一致
nav link 3 上的悬停匹配度 100%22 项测量全部一致
nav link 上的聚焦匹配度 100%18 项测量全部一致
mobile
默认匹配度 100%339 项测量全部一致
悬停未检查
聚焦未检查
menu toggle 上的聚焦匹配度 100%18 项测量全部一致
nav link 2 上的聚焦匹配度 99%18 项测量全部一致
nav link 2 上的悬停匹配度 100%18 项测量全部一致
nav link 3 上的聚焦匹配度 100%22 项测量全部一致
nav link 3 上的悬停匹配度 100%22 项测量全部一致
nav link 上的聚焦匹配度 100%18 项测量全部一致
Footers4
desktop
Column 的 width 为 192px,网站上为 20px; Link 的 width 为 192px,网站上为 20px,另有 9 项。
默认匹配度 100%2017 项测量中有 11 项不同
悬停未检查
聚焦未检查
button 2 上的聚焦匹配度 100%18 项测量全部一致
button 上的聚焦匹配度 100%18 项测量全部一致
link 2 上的聚焦匹配度 100%18 项测量全部一致
link 2 上的悬停匹配度 100%18 项测量全部一致
link 3 上的聚焦匹配度 100%18 项测量全部一致
link 3 上的悬停匹配度 100%18 项测量全部一致
link 上的聚焦匹配度 100%18 项测量全部一致
link 上的悬停匹配度 100%18 项测量全部一致
desktop
Column 的 width 为 192px,网站上为 20px; Link 的 width 为 192px,网站上为 20px,另有 2 项。
默认匹配度 100%1901 项测量中有 4 项不同
悬停未检查
聚焦未检查
link 2 上的聚焦匹配度 100%18 项测量全部一致
link 2 上的悬停匹配度 100%18 项测量全部一致
link 3 上的聚焦匹配度 100%18 项测量全部一致
link 3 上的悬停匹配度 100%18 项测量全部一致
link 上的聚焦匹配度 100%18 项测量全部一致
link 上的悬停匹配度 100%18 项测量全部一致
mobile
默认匹配度 100%1904 项测量全部一致
悬停未检查
聚焦未检查
link 上的聚焦匹配度 100%18 项测量全部一致
link 上的悬停匹配度 100%18 项测量全部一致
mobile
默认匹配度 100%1904 项测量全部一致
悬停未检查
聚焦未检查
link 上的聚焦匹配度 100%18 项测量全部一致
link 上的悬停匹配度 100%18 项测量全部一致
Linear
Overview
Linear's marketing surface reads like the product itself: a near-black Void canvas (canvas, #08090A) with charcoal panels stacked a half-step lighter, fenced by 1px hairlines rather than shadows. The mood is engineering-grade and restrained. Realistic product UI mockups, a customer logo strip and Berkeley Mono micro-labels ("FIG 0.1") stand in for illustration. Nothing shouts; the page earns attention through precision.
Density is split by purpose. Marketing sections breathe, with very large vertical gaps and left-aligned content in a centered container. Product mockups are dense: board columns, issue cards and a pricing comparison table run at 10–13px. The two scales coexist because the mockups behave as content, not decoration.
Hierarchy comes from luminance, not hue. Text steps down a strict gray ladder: ink, then ink-secondary, then muted, then subtle. Display type is set at weight 510 with tight negative tracking and a line-height of 1. The single high-contrast moment is the light pill CTA: Bone (on-dark-surface, #E5E5E6) with canvas text. Linear Indigo (primary, #5E6AD2) is held back for focus and interactive accents.
Key Characteristics:
- Near-black canvas (
canvas, #08090A) with tonal charcoal layers (surface,surface-raised) and 1px hairlines. - Monochrome gray text ladder:
ink, thenink-secondary,muted,subtleandfaint. - Inter Variable throughout, at the non-standard variable weights 510 and 590. Berkeley Mono appears only for micro-labels.
- Display sizes (
hero-display,display-lg,display-md) use line-height 1 and negative tracking that scales with size. - Every measured button is a full pill (
rounded.full). Panels use tight 4–9px radii. - Ghost buttons are the default: transparent fill with
mutedtext, and a translucent white wash plusinktext on hover. - A frosted fixed header (
blur(20px)) with a translucent white bottom hairline. - Status hues (
accent-blue,danger,success) live only inside product illustrations.
Colors
The palette is almost entirely neutral. Value contrast does the work, and chroma is rationed to focus states and in-product status.
Brand & Accent
- Linear Indigo (
primary, #5E6AD2): focus and interactive accents only (observed in focus and interactive roles, nowhere else). The measured focus outline on every interactive recipe is1px solid #5E69D1with a 2px offset, a near-identical rendering of this hue. - Signal Blue (
accent-blue, #4EA7FC): status dots and fills inside product mockups (e.g.card-2-group-10, flagged: thecard-2-iconx did not reproduce the measured 19px). Never use it for marketing chrome. - Alert Red (
danger, #EB5757): in-product status and priority markers only. - Done Green (
success, #27A644): in-product completion states and the pricing table's check marks. - Ice Tint (
accent-cyan-tint, #DCFFFF): a rare pale tint inside illustrations. Do not promote it to UI.
Surface
- Void (
canvas, #08090A): page and footer background (footer-landing,footer-inner), and the text color on light pill CTAs. - Graphite (
surface, #121414): the first panel step above the canvas. - Raised Graphite (
surface-raised, #1C1C1F): the next tonal step, for elevated panels inside mockups. - Bone (
on-dark-surface, #E5E5E6): the fill of the light pill CTA (header-landing-nav-link-4), with a matching 1px #E5E5E6 border. It goes to #FFFFFF on hover.
Text
- Ink (
ink, #F7F8F8): headlines, primary copy and the hover text for every ghost control. - Silver (
ink-secondary, #D0D6E0): card titles, sidebar items and list text (card-text-2,sidebar-nav-item,card-4-text-2). - Slate (
muted, #8A8F98): body descriptions, nav links, footer links and the resting ghost-button label. - Dim (
subtle, #62666D): micro-labels, icon-button glyphs, footer legal links and accordion icons. - Faint (
faint, #3E3E44): the lowest tier, for inactive glyphs such asfooter-inner-button-2.
Hairlines & Borders
- Hairline (
hairline, #23252A): the footer top border, divider fills in the header (header-landing-group-3) and segmented-control borders (footer-inner-columns-3). - Border (
border, #24282C): component outlines such as theicon-button-3ring. - Border Strong (
border-strong, #34343A): heavier dividers, used heavily on one page.
Component & State Colors (measured on recipes, not page palette)
- White Wash 8% (#FFFFFF14): the hover/focus fill of
button-ghostand header nav links. It is also the dominant translucent hairline, used on the header bottom border and on thecard-2-groupandboard-column-2borders. - White Wash 5% (#FFFFFF0D): the
icon-button-2hover fill. - White Wash 2% (#FFFFFF05): the
sidebar-nav-itemhover fill and theicon-button-3resting fill. - Card Well (#0F1011): the panel fill of mockup issue cards (
card-2-group,card-3-group,board-column-2). - Chip Edge (#2E2E32): the 1px border on
label-chipandbadge. - Toggle Well (#28282C): the selected segment in
footer-inner-group. - Table Rule (#202122): the left border of
table-group-10cells.
There are no gradient tokens. Gradients appear only as a soft radial glow beneath the hero mockup and as fade-out masks on preview cards. Treat them as image treatment, not as fills for UI.
Typography
Font Family
- Inter Variable: every UI and marketing role, from the 72px hero to 10px micro-labels. The fallback stack is
"SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, …, sans-serif. The variable axis is mandatory, because the system depends on the non-standard weights 510 and 590. - Berkeley Mono: monospaced figure labels only (e.g.
card-text, 12px/400 inmuted, oncard, flagged: thecardpadding-right did not reproduce the measured 32px on focus). The fallback stack isui-monospace, "SF Mono", Menlo, monospace.
Hierarchy
| Token | Size | Weight | Line Height | Letter Spacing | Use |
|---|---|---|---|---|---|
hero-display | 72px | 510 | 1 | -1.584px | Single hero headline |
display-lg | 64px | 510 | 1 | -1.408px | Page-level H1s |
display-md | 48px | 510 | 1 | -1.056px | Section headlines, stat numerals (stat-body) |
heading-lg | 32px | 590 | 1.15 | -0.704px | Secondary section headings |
title-md | 20px | 590 | 1.35 | -0.24px | Card and feature titles |
body-lg | 17px | 400 | 1.6 | normal | Lead paragraphs |
body | 16px | 400 | 1.5 | normal | Default document text |
body-md | 15px | 400 | 1.6 | -0.165px | Feature descriptions, card body |
body-md-strong | 15px | 510 | 1.6 | -0.165px | Accordion labels, inline emphasis |
body-sm | 14px | 400 | 1.5 | -0.182px | Stat captions, card meta |
body-sm-strong | 14px | 510 | 1.5 | -0.182px | Emphasized small text |
nav-link | 13px | 400 | 1.5 | normal | Header and footer links |
button | 13px | 510 | 1.5 | normal | Pill CTA labels, footer headings |
caption | 12px | 400 | 1.15 | normal | Chip and badge text |
label | 12px | 510 | 1.4 | normal | Mockup card titles, board column names |
micro | 10px | 400 | 1.4 | -0.15px | Issue IDs and timestamps in mockups |
Principles
- Three weights only: 400, 510 and 590. 510 replaces the usual 500 and 590 replaces 600. Weight 700 and above never appears. Bold is expressed by a small variable-axis nudge, not by a heavy cut.
- Tracking tightens with size. Display sizes track at roughly -0.022em, giving -1.584px at 72px and -1.056px at 48px. Body sizes from 14–15px take a slight negative value. The 12–13px UI text and
bodystay atnormal, while footer text tightens to -0.13px. - Line-height is split by role. Display sizes use 1, so headlines stack tight. Headings use 1.15–1.35. Reading text opens to 1.5–1.6.
- Color carries hierarchy before size. A 15px line in
mutedsits below a 15px line inink-secondary, so step the color first.
Note on Font Substitutes
Inter is open source (rsms/inter). Load the variable build so that weights 510 and 590 resolve exactly; static Inter will round to 500 and 600, which reads slightly heavier. Berkeley Mono is a commercial typeface. Substitute JetBrains Mono or IBM Plex Mono at 12px and weight 400, and reduce the size by about 0.5px if the x-height runs large next to Inter.
Layout
Spacing System
No base spacing step was published. The verified measurements come from the header, footer and button recipes:
| Token | Value | Read on |
|---|---|---|
header-landing-gap | 8px | Gap between desktop nav items (header-landing-nav-list); same on header-inner-gap and header-inner-2-gap |
header-landing-mobile-gap | 16px | Gap between mobile header items; same on header-inner-mobile-gap and header-inner-2-mobile-gap |
footer-landing-mobile-column-gap | 16px | Column gap of the mobile footer grid; same on footer-inner-mobile-column-gap |
footer-landing-mobile-gap | 2px | Vertical gap between stacked footer links; same on footer-inner-mobile-gap |
button-ghost-3-padding-x | 8px | Horizontal padding of the compact icon+label ghost button |
No section-padding measurement was verified. The very large vertical gaps between page sections are visible in the screenshots but carry no token.
Grid & Container
- On desktop, the header's inner container caps at
header-landing-inner-max-width(1436px).header-inner-inner-max-widthandheader-inner-2-inner-max-widthconfirm the same value. - On mobile, header and footer inners cap at
header-landing-mobile-inner-max-widthandfooter-landing-mobile-inner-max-width(1376px). - Feature sections split into two columns: a large title on the left, with the description and a text link on the right.
- The "FIG" illustration strip and the pricing plans run as equal columns separated by hairline vertical dividers, not gutters with cards.
- The customers page uses a card grid (image on top, title and "Read story →" below), a row of stats divided by left hairlines, and a dense list table.
- Product mockups embed kanban board columns and stacked issue cards.
Whitespace Philosophy
The page is generous at the macro scale and tight at the micro scale. Sections are separated by large empty bands of canvas, never by colored backgrounds. Inside components, spacing collapses to the small steps above: header-landing-gap between nav items and footer-landing-mobile-gap between footer links. The contrast between airy sections and dense mockups is what makes the product screenshots feel real.
Measured Layout
Every spacing token restates a measurement of a verified component recipe, or the step those measurements share.
header-landing-gap: 8px (header-landing, gap ofheader-landing-nav-list)header-landing-inner-max-width: 1436px (header-landing, max width ofheader-landing-inner)header-landing-mobile-gap: 16px (header-landing-mobile, gap ofheader-landing-mobile-nav-list)header-landing-mobile-inner-max-width: 1376px (header-landing-mobile, max width ofheader-landing-mobile-inner)footer-landing-mobile-column-gap: 16px (footer-landing-mobile, column gap of thefooter-landing-mobile-columnsgrid)footer-landing-mobile-gap: 2px (footer-landing-mobile, gap offooter-landing-mobile-list)footer-landing-mobile-inner-max-width: 1376px (footer-landing-mobile, max width offooter-landing-mobile-inner)header-inner-gap: 8px (header-inner, gap ofheader-inner-nav-list)header-inner-inner-max-width: 1436px (header-inner, max width ofheader-inner-inner)header-inner-mobile-gap: 16px (header-inner-mobile, gap ofheader-inner-mobile-nav-list)header-inner-mobile-inner-max-width: 1376px (header-inner-mobile, max width ofheader-inner-mobile-inner)header-inner-2-gap: 8px (header-inner-2, gap ofheader-inner-2-nav-list)header-inner-2-inner-max-width: 1436px (header-inner-2, max width ofheader-inner-2-inner)header-inner-2-mobile-gap: 16px (header-inner-2-mobile, gap ofheader-inner-2-mobile-nav-list)header-inner-2-mobile-inner-max-width: 1376px (header-inner-2-mobile, max width ofheader-inner-2-mobile-inner)footer-inner-mobile-column-gap: 16px (footer-inner-mobile, column gap of thefooter-inner-mobile-columnsgrid)footer-inner-mobile-gap: 2px (footer-inner-mobile, gap offooter-inner-mobile-list)footer-inner-mobile-inner-max-width: 1376px (footer-inner-mobile, max width offooter-inner-mobile-inner)button-ghost-padding-x: 12px (button-ghost, horizontal padding of the root)button-ghost-2-padding-x: 12px (button-ghost-2, horizontal padding of the root)button-ghost-3-padding-x: 8px (button-ghost-3, horizontal padding of the root)
The footer lays out in 5 columns at mobile. The stat grid lays out in 4 columns at desktop.
Elevation & Depth
| Level | Treatment | Use |
|---|---|---|
| 0 — Flat | canvas (#08090A) with no border | Page background, footer body |
| 1 — Tonal step | Fill shifts to surface / surface-raised, or the mockup well #0F1011 (card-2-group) | Panels and mockup cards; depth comes from luminance |
| 2 — Hairline | 1px solid #FFFFFF14 borders (board-column-2, card-2-group, header bottom); 1px solid #23252A footer top; inset ring rgba(255, 255, 255, 0.05) 0px 0px 0px 1px inset | Default separation for every container and divider |
| 3 — Framed panel | rgba(255, 255, 255, 0.03) 0px 0px 0px 1px inset, rgba(255, 255, 255, 0.04) 0px 1px 0px 0px inset, rgba(0, 0, 0, 0.6) 0px 0px 0px 1px, rgba(0, 0, 0, 0.1) 0px 4px 4px 0px | Larger app-frame panels: an inner light rim plus an outer dark ring |
| 4 — Soft lift | transparent 0px 8px 2px 0px, #00000003 0px 5px 2px 0px, #0000000A 0px 3px 2px 0px, #00000012 0px 1px 1px 0px, #00000014 0px 0px 1px 0px | The light pill CTA (header-landing-nav-link-4, header-inner-nav-link-5) |
| 5 — Float | rgba(0, 0, 0, 0.2) 0px 4px 24px 0px | Rare floating overlays seen on one page |
| Glass | backdrop-filter: blur(20px) over a transparent fill, with a #FFFFFF14 bottom hairline | The fixed header on every page (header-landing, header-inner, header-landing-mobile) |
| Focus | outline: 1px solid #5E69D1, outline-offset: 2px | Every interactive recipe |
Shadow philosophy. On a near-black canvas, a drop shadow has almost nothing to darken, so Linear builds depth from light instead. Surfaces step up in luminance, and edges are drawn with translucent white hairlines and inset rims that catch light like a bevel. Real shadows are present but whisper-quiet. The five-layer stack on the light pill CTA is a contact shadow built from 1–8% black, there to seat a bright object on a dark field. Panel frames add a 60% black outer ring so they cut cleanly from the canvas. The frosted blur(20px) header is the one material effect, letting content dissolve beneath the navigation as it scrolls. When adding depth, reach first for a tonal step or hairline, then an inset rim, and only then a shadow.
Shapes
Border Radius Scale
| Token | Value | Use |
|---|---|---|
xs | 2px | Tiny inline marks |
sm | 4px | Customer story media frames (card-5-group, card-6-group) |
sm-2 | 4.4625px | A scaled radius inside product mockups |
md | 5px | Segmented toggle buttons (footer-inner-button, footer-inner-group) |
md-2 | 6px | Logo link in the header (header-landing-nav-link) |
lg | 8px | Sidebar nav items (sidebar-nav-item), accordion rows (accordion), the segmented control frame (footer-inner-columns-3) |
lg-2 | 9px | Mockup issue cards (card-2-group, board-column-2) |
xl | 12px | Larger panels and app frames |
2xl | 16px | Label chips and badges (label-chip, badge) |
3xl | 22px | Large hero containers |
4xl | 400px | Oversized rounded ornaments |
full | 9999px | Every button, nav link, icon button, avatar group and toggle |
The geometry runs in two registers. Anything you click is a full pill (rounded.full): ghost buttons, header nav links, the light Sign up CTA, icon buttons (icon-button, flagged: the icon-button-icon x did not reproduce the measured 6px) and avatar or assignee clusters in the mockups. Anything that contains content is a tight rectangle at 4–12px. Circles appear for status dots and check/cross icons. The isometric line-art figures are deliberately angular, giving a hard-edged counterpoint to the soft UI. Never round a content panel to pill-like extremes, and never square off a button.
Components
Each component below was distilled from the live page: the recipe is a standalone, placeholder-filled reproduction with literal values, and every frontmatter key named in the anatomy carries the same measurements. A verified component reproduced the original in every check; a flagged one is shipped with the reason it did not; one marked not verifiable could not be compared with the original, which says nothing about the recipe.
Buttons
Button, ghost
Verification: verified against the live page at desktop.
Anatomy
button-ghost: the component root, a<button>(.c-button-ghost), 7-character label
Recipe
HTML · CSS
<div class="c-button-ghost-scope">
<button class="c-button-ghost" type="button">lorem i</button>
</div>
.c-button-ghost-scope {
background-color: #08090A;
color: #F7F8F8;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
}
.c-button-ghost {
display: inline-flex;
justify-content: center;
align-items: center;
border-spacing: 0px;
box-sizing: border-box;
height: 32px;
padding: 0px 12px;
position: relative;
background-color: transparent;
color: #8A8F98;
border: 0;
border-radius: 9999px;
cursor: pointer;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 13px;
font-weight: 400;
line-height: 19.5px;
letter-spacing: normal;
text-transform: none;
text-align: center;
white-space: nowrap;
list-style-type: none;
transition-duration: 0.1s;
transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
transition-property: color, background;
}
.c-button-ghost::before {
content: "";
display: block;
box-sizing: border-box;
width: 88px;
height: 32px;
position: absolute;
top: 0px;
right: -8px;
bottom: 0px;
left: -8px;
z-index: 0;
}
.c-button-ghost:hover {
background-color: #FFFFFF14;
color: #F7F8F8;
}
.c-button-ghost:hover::before {
color: #F7F8F8;
}
.c-button-ghost:hover::after {
content: "";
display: block;
box-sizing: border-box;
width: 136px;
height: 32px;
position: absolute;
top: 32px;
right: -32px;
bottom: -32px;
left: -32px;
}
.c-button-ghost:focus {
background-color: #FFFFFF14;
color: #F7F8F8;
outline: 1px solid #5E69D1;
outline-offset: 2px;
}
.c-button-ghost:focus::before {
color: #F7F8F8;
}
.c-button-ghost:focus::after {
content: "";
display: block;
box-sizing: border-box;
width: 136px;
height: 32px;
position: absolute;
top: 32px;
right: -32px;
bottom: -32px;
left: -32px;
}
States
- hover (
button-ghost-hover): background-color #FFFFFF14, color #F7F8F8, ::before color #F7F8F8, ::after content "", ::after display block, ::after box-sizing border-box, ::after width 136px, ::after height 32px, ::after position absolute, ::after top 32px, ::after right -32px, ::after bottom -32px, ::after left -32px - focus (
button-ghost-focus): background-color #FFFFFF14, color #F7F8F8, outline 1px solid #5E69D1, outline-offset 2px, ::before color #F7F8F8, ::after content "", ::after display block, ::after box-sizing border-box, ::after width 136px, ::after height 32px, ::after position absolute, ::after top 32px, ::after right -32px, ::after bottom -32px, ::after left -32px
Button, ghost (2)
Verification: verified against the live page at desktop.
Anatomy
button-ghost-2: the component root, a<button>(.c-button-ghost-2), 9-character label
Recipe
HTML · CSS
<div class="c-button-ghost-2-scope">
<button class="c-button-ghost-2" type="button">lorem ips</button>
</div>
.c-button-ghost-2-scope {
background-color: #08090A;
color: #F7F8F8;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
}
.c-button-ghost-2 {
display: inline-flex;
justify-content: center;
align-items: center;
border-spacing: 0px;
box-sizing: border-box;
height: 32px;
padding: 0px 12px;
position: relative;
background-color: transparent;
color: #8A8F98;
border: 0;
border-radius: 9999px;
cursor: pointer;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 13px;
font-weight: 400;
line-height: 19.5px;
letter-spacing: normal;
text-transform: none;
text-align: center;
white-space: nowrap;
list-style-type: none;
transition-duration: 0.1s;
transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
transition-property: color, background;
}
.c-button-ghost-2::before {
content: "";
display: block;
box-sizing: border-box;
width: 105px;
height: 32px;
position: absolute;
top: 0px;
right: -8px;
bottom: 0px;
left: -8px;
z-index: 0;
}
.c-button-ghost-2:hover {
background-color: #FFFFFF14;
color: #F7F8F8;
}
.c-button-ghost-2:hover::before {
color: #F7F8F8;
}
.c-button-ghost-2:hover::after {
content: "";
display: block;
box-sizing: border-box;
width: 153px;
height: 32px;
position: absolute;
top: 32px;
right: -32px;
bottom: -32px;
left: -32px;
}
.c-button-ghost-2:focus {
background-color: #FFFFFF14;
color: #F7F8F8;
outline: 1px solid #5E69D1;
outline-offset: 2px;
}
.c-button-ghost-2:focus::before {
color: #F7F8F8;
}
.c-button-ghost-2:focus::after {
content: "";
display: block;
box-sizing: border-box;
width: 153px;
height: 32px;
position: absolute;
top: 32px;
right: -32px;
bottom: -32px;
left: -32px;
}
States
- hover (
button-ghost-2-hover): background-color #FFFFFF14, color #F7F8F8, ::before color #F7F8F8, ::after content "", ::after display block, ::after box-sizing border-box, ::after width 153px, ::after height 32px, ::after position absolute, ::after top 32px, ::after right -32px, ::after bottom -32px, ::after left -32px - focus (
button-ghost-2-focus): background-color #FFFFFF14, color #F7F8F8, outline 1px solid #5E69D1, outline-offset 2px, ::before color #F7F8F8, ::after content "", ::after display block, ::after box-sizing border-box, ::after width 153px, ::after height 32px, ::after position absolute, ::after top 32px, ::after right -32px, ::after bottom -32px, ::after left -32px
Button, ghost (3)
Verification: verified against the live page at desktop.
Anatomy
button-ghost-3: the component root, a<button>(.c-button-ghost-3)button-ghost-3-icon: icon placeholder, 16px (.c-button-ghost-3__icon)button-ghost-3-label: label text, 5 characters (.c-button-ghost-3__label)
Recipe
HTML · CSS
<div class="c-button-ghost-3-scope">
<button class="c-button-ghost-3" type="button">
<span class="c-button-ghost-3__icon" aria-hidden="true"></span>
<span class="c-button-ghost-3__label">lorem</span>
</button>
</div>
.c-button-ghost-3-scope {
background-color: #08090A;
color: #F7F8F8;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
}
.c-button-ghost-3 {
display: inline-flex;
justify-content: center;
align-items: baseline;
flex-shrink: 0;
gap: 6px;
border-spacing: 0px;
box-sizing: border-box;
max-width: 100%;
padding: 0px 8px;
position: relative;
background-color: transparent;
color: #8A8F98;
border: 0;
border-radius: 9999px;
cursor: pointer;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 15px;
font-weight: 400;
line-height: 24px;
letter-spacing: normal;
text-transform: none;
text-align: center;
white-space: nowrap;
transition-duration: 0.16s;
transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
transition-property: border, background-color, color, box-shadow, opacity, filter, transform;
}
.c-button-ghost-3__icon {
display: block;
align-self: center;
flex-shrink: 0;
box-sizing: border-box;
width: 16px;
height: 16px;
overflow-x: hidden;
overflow-y: hidden;
background-color: currentcolor;
}
.c-button-ghost-3:hover {
color: #F7F8F8;
}
.c-button-ghost-3:focus {
outline: 1px solid #5E69D1;
outline-offset: 2px;
}
States
- hover (
button-ghost-3-hover): color #F7F8F8 - focus: outline 1px solid #5E69D1, outline-offset 2px
Button, ghost (4)
Verification: verified against the live page at desktop.
Anatomy
button-ghost-4: the component root, a<button>(.c-button-ghost-4)button-ghost-4-group: inner group (.c-button-ghost-4__group)button-ghost-4-group-2: inner group (.c-button-ghost-4__group-2)button-ghost-4-label: label text, 12 characters (.c-button-ghost-4__label)button-ghost-4-label-2: label text, 1 characters (.c-button-ghost-4__label-2)
Recipe
HTML · CSS
<div class="c-button-ghost-4-scope">
<button class="c-button-ghost-4" type="button">
<span class="c-button-ghost-4__group">
<span class="c-button-ghost-4__group-2">
<span class="c-button-ghost-4__label">lorem ipsum</span>
<span class="c-button-ghost-4__label-2">l</span>
</span>
</span>
</button>
</div>
.c-button-ghost-4-scope {
background-color: #08090A;
color: #F7F8F8;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
}
.c-button-ghost-4 {
display: inline-block;
border-spacing: 0px;
box-sizing: border-box;
padding: 0px;
background-color: transparent;
color: #FFFFFF;
border: 0;
cursor: pointer;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 13.3333px;
font-weight: 400;
line-height: normal;
letter-spacing: normal;
text-transform: none;
text-align: center;
list-style-type: none;
}
.c-button-ghost-4__group {
display: block;
box-sizing: border-box;
transition-duration: 0.16s, 0.16s;
transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94), cubic-bezier(0.25, 0.46, 0.45, 0.94);
transition-property: filter, transform;
}
.c-button-ghost-4__group-2 {
display: inline;
box-sizing: border-box;
color: #8A8F98;
font-size: 15px;
line-height: 24px;
letter-spacing: -0.165px;
}
.c-button-ghost-4__label-2 {
display: inline;
box-sizing: border-box;
color: #62666D;
font-size: 18px;
line-height: 28.8px;
transition: color 0.16s cubic-bezier(0.25, 0.46, 0.45, 0.94);
margin-left: 4px;
}
.c-button-ghost-4:focus {
outline: 1px solid #5E69D1;
outline-offset: 2px;
}
States
- focus: outline 1px solid #5E69D1, outline-offset 2px
Cards
Card
Verification: flagged, the card padding-right did not reproduce the measured 32px on focus after 2 correction attempts.
Anatomy
- Group: 3 instances in a 3-column grid; the recipe carries the values they all share
card: the component root, a<div>(.c-card)card-text: label text, 7 characters (.c-card__text)card-group: inner grid (.c-card__group)card-icon: icon placeholder, 265x262px (.c-card__icon)card-group-2: inner flex column (.c-card__group-2)card-text-2: label text, 13 characters (.c-card__text-2)card-body: label text, 78 characters (.c-card__body)
Recipe
HTML · CSS
<div class="c-card-scope">
<div class="c-card">
<span class="c-card__text">lorem i</span>
<div class="c-card__group">
<span class="c-card__icon" aria-hidden="true"></span>
</div>
<div class="c-card__group-2">
<span class="c-card__text-2">lorem ipsum d</span>
<p class="c-card__body">lorem ipsum dolor sit amet consectetur adipiscing elit sed do eiusmod tempor l</p>
</div>
</div>
</div>
.c-card-scope {
background-color: #08090A;
color: #F7F8F8;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
}
.c-card {
display: inline-flex;
flex-direction: column;
justify-content: flex-end;
border-spacing: 0px;
box-sizing: border-box;
height: 468px;
position: relative;
color: #F7F8F8;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
}
.c-card__text {
display: block;
box-sizing: border-box;
position: absolute;
top: 0px;
color: #8A8F98;
opacity: 0.4;
font-family: "Berkeley Mono", ui-monospace, "SF Mono", Menlo, monospace;
font-size: 12px;
line-height: 16.8px;
text-transform: uppercase;
}
.c-card__group {
display: grid;
align-items: center;
flex-grow: 1;
flex-basis: 0%;
box-sizing: border-box;
overflow-x: hidden;
overflow-y: hidden;
}
.c-card__icon {
display: block;
flex-shrink: 0;
box-sizing: border-box;
width: 265px;
height: 262px;
max-width: 100%;
background-color: currentcolor;
}
.c-card__group-2 {
display: flex;
flex-direction: column;
gap: 8px;
box-sizing: border-box;
}
.c-card__text-2 {
display: block;
box-sizing: border-box;
color: #D0D6E0;
font-size: 15px;
font-weight: 510;
letter-spacing: -0.165px;
}
.c-card__body {
display: block;
box-sizing: border-box;
max-width: 368px;
margin: 0px;
color: #8A8F98;
font-size: 15px;
letter-spacing: -0.165px;
}
.c-card:hover {
padding: 0px 32px 0px 0px;
border-right-width: 1px;
border-right-style: solid;
border-right-color: #FFFFFF14;
}
.c-card:focus {
padding: 0px 32px 0px 0px;
border-right-width: 1px;
border-right-style: solid;
border-right-color: #FFFFFF14;
}
States
- hover: padding 0px 32px 0px 0px, border-right-width 1px, border-right-style solid, border-right-color #FFFFFF14
- focus: padding 0px 32px 0px 0px, border-right-width 1px, border-right-style solid, border-right-color #FFFFFF14
Card (2)
Verification: flagged, the card-2-icon x did not reproduce the measured 19px after 2 correction attempts.
Anatomy
- Group: 4 instances in a 1-column grid, 8px gap; the recipe carries the values they all share
card-2: the component root, a<div>(.c-card-2)card-2-group: inner flex column (.c-card-2__group)card-2-group-2: inner flex row (.c-card-2__group-2)card-2-text: label text, 7 characters (.c-card-2__text)card-2-group-3: inner grid (.c-card-2__group-3)card-2-media: image placeholder, 14px (.c-card-2__media)card-2-group-4: inner flex row (.c-card-2__group-4)card-2-group-5: inner block (.c-card-2__group-5)card-2-text-2: label text, 25 characters (.c-card-2__text-2)card-2-group-6: inner flex row (.c-card-2__group-6)card-2-group-7: inner grid (.c-card-2__group-7)card-2-icon: icon placeholder, 12px (.c-card-2__icon)card-2-group-8: inner flex row (.c-card-2__group-8, 2 instances)card-2-group-9: inner group (.c-card-2__group-9)card-2-text-3: label text, 3 characters (.c-card-2__text-3, 2 instances)card-2-group-10: inner group (.c-card-2__group-10)
Recipe
HTML · CSS
<div class="c-card-2-scope">
<div class="c-card-2">
<div class="c-card-2__group">
<div class="c-card-2__group-2">
<span class="c-card-2__text">lorem i</span>
<span class="c-card-2__group-3">
<span class="c-card-2__media" aria-hidden="true"></span>
</span>
</div>
<div class="c-card-2__group-4">
<div class="c-card-2__group-5">
<span class="c-card-2__text-2">lorem ipsum dolor sit ame</span>
</div>
</div>
<div class="c-card-2__group-6">
<span class="c-card-2__group-7">
<span class="c-card-2__icon" aria-hidden="true"></span>
</span>
<span class="c-card-2__group-8">
<span class="c-card-2__group-9"></span>
<span class="c-card-2__text-3">lor</span>
</span>
<span class="c-card-2__group-8">
<span class="c-card-2__group-10"></span>
<span class="c-card-2__text-3">lorem</span>
</span>
</div>
</div>
</div>
</div>
.c-card-2-scope {
background-color: #0F1011;
color: #F7F8F8;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
}
.c-card-2 {
display: inline-block;
border-spacing: 0px;
box-sizing: border-box;
color: #F7F8F8;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
}
.c-card-2__group {
display: flex;
flex-direction: column;
box-sizing: border-box;
width: 300px;
height: 96px;
padding: 8px 10px 12px 12px;
position: relative;
background-color: #0F1011;
background-image: linear-gradient(#FFFFFF05, #FFFFFF05), none;
background-clip: border-box, border-box;
border: 1px solid #FFFFFF14;
border-radius: 9px;
transform: matrix(1, 0, 0, 1, 0, 0);
}
.c-card-2__group::after {
content: "";
display: block;
box-sizing: border-box;
width: 298px;
height: 94px;
position: absolute;
top: 0px;
right: 0px;
bottom: 0px;
left: 0px;
background-color: #FFFFFF08;
border-radius: 9px;
opacity: 0;
}
.c-card-2__group-2 {
display: flex;
justify-content: space-between;
align-items: center;
gap: 8px;
box-sizing: border-box;
height: 22px;
}
.c-card-2__text {
display: block;
box-sizing: border-box;
color: #62666D;
font-size: 10px;
line-height: 14px;
letter-spacing: -0.15px;
}
.c-card-2__group-3 {
display: grid;
align-items: center;
flex-shrink: 0;
box-sizing: border-box;
width: 14px;
height: 14px;
color: #62666D;
}
.c-card-2__media {
display: block;
flex-shrink: 0;
box-sizing: border-box;
width: 14px;
height: 14px;
max-width: 100%;
aspect-ratio: auto 14 / 14;
overflow-x: clip;
overflow-y: clip;
background-color: currentcolor;
border-radius: 50%;
}
.c-card-2__group-4 {
display: flex;
align-items: center;
gap: 6px;
box-sizing: border-box;
height: 18px;
}
.c-card-2__group-5 {
display: block;
flex-grow: 1;
flex-basis: 0%;
box-sizing: border-box;
overflow-x: hidden;
overflow-y: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.c-card-2__text-2 {
display: inline;
box-sizing: border-box;
color: #D0D6E0;
font-size: 12px;
font-weight: 510;
line-height: 16.8px;
}
.c-card-2__group-6 {
display: flex;
align-items: center;
gap: 4px;
box-sizing: border-box;
margin-top: auto;
}
.c-card-2__group-7 {
display: grid;
align-items: center;
flex-shrink: 0;
box-sizing: border-box;
width: 24px;
height: 24px;
color: #8A8F98;
border: 1px solid #FFFFFF14;
border-radius: 9999px;
}
.c-card-2__icon {
display: block;
flex-shrink: 0;
box-sizing: border-box;
width: 12px;
height: 12px;
overflow-x: hidden;
overflow-y: hidden;
background-color: currentcolor;
}
.c-card-2__group-8 {
display: flex;
align-items: center;
flex-shrink: 0;
gap: 4px;
box-sizing: border-box;
height: 24px;
border: 1px solid #FFFFFF14;
border-radius: 9999px;
padding-right: 8px;
padding-left: 6px;
}
.c-card-2__group-9 {
display: block;
box-sizing: border-box;
width: 7px;
height: 7px;
border-radius: 50%;
margin-right: 3px;
margin-left: 3px;
}
.c-card-2__text-3 {
display: block;
box-sizing: border-box;
color: #8A8F98;
font-size: 12px;
font-weight: 510;
line-height: 14px;
}
.c-card-2__group-10 {
display: block;
box-sizing: border-box;
width: 7px;
height: 7px;
background-color: #4EA7FC;
border-radius: 50%;
margin-right: 3px;
margin-left: 3px;
}
States
- No hover or focus change was observed.
Card (3)
Verification: flagged, the card-3-icon x did not reproduce the measured 19px after 2 correction attempts.
Anatomy
- Group: 3 instances in a 1-column grid, 8px gap; the recipe carries the values they all share
card-3: the component root, a<div>(.c-card-3)card-3-group: inner flex column (.c-card-3__group)card-3-group-2: inner flex row (.c-card-3__group-2)card-3-text: label text, 8 characters (.c-card-3__text)card-3-group-3: inner grid (.c-card-3__group-3)card-3-media: image placeholder, 14px (.c-card-3__media)card-3-group-4: inner flex row (.c-card-3__group-4)card-3-group-5: inner block (.c-card-3__group-5)card-3-text-2: label text, 35 characters (.c-card-3__text-2)card-3-group-6: inner flex row (.c-card-3__group-6)card-3-group-7: inner grid (.c-card-3__group-7)card-3-icon: icon placeholder, 12px (.c-card-3__icon, 2 instances)card-3-group-8: inner flex row (.c-card-3__group-8)card-3-text-3: label text, 5 characters (.c-card-3__text-3)
Recipe
HTML · CSS
<div class="c-card-3-scope">
<div class="c-card-3">
<div class="c-card-3__group">
<div class="c-card-3__group-2">
<span class="c-card-3__text">lorem ip</span>
<span class="c-card-3__group-3">
<span class="c-card-3__media" aria-hidden="true"></span>
</span>
</div>
<div class="c-card-3__group-4">
<div class="c-card-3__group-5">
<span class="c-card-3__text-2">lorem ipsum dolor sit amet consecte</span>
</div>
</div>
<div class="c-card-3__group-6">
<span class="c-card-3__group-7">
<span class="c-card-3__icon" aria-hidden="true"></span>
</span>
<span class="c-card-3__group-8">
<span class="c-card-3__icon" aria-hidden="true"></span>
<span class="c-card-3__text-3">lorem</span>
</span>
</div>
</div>
</div>
</div>
.c-card-3-scope {
background-color: #0F1011;
color: #F7F8F8;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
}
.c-card-3 {
display: inline-block;
border-spacing: 0px;
box-sizing: border-box;
color: #F7F8F8;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
}
.c-card-3__group {
display: flex;
flex-direction: column;
box-sizing: border-box;
width: 300px;
height: 96px;
padding: 8px 10px 12px 12px;
position: relative;
background-color: #0F1011;
background-image: linear-gradient(#FFFFFF05, #FFFFFF05), none;
background-clip: border-box, border-box;
border: 1px solid #FFFFFF14;
border-radius: 9px;
transform: matrix(1, 0, 0, 1, 0, 0);
}
.c-card-3__group::after {
content: "";
display: block;
box-sizing: border-box;
width: 298px;
height: 94px;
position: absolute;
top: 0px;
right: 0px;
bottom: 0px;
left: 0px;
background-color: #FFFFFF08;
border-radius: 9px;
opacity: 0;
}
.c-card-3__group-2 {
display: flex;
justify-content: space-between;
align-items: center;
gap: 8px;
box-sizing: border-box;
height: 22px;
}
.c-card-3__text {
display: block;
box-sizing: border-box;
color: #62666D;
font-size: 10px;
line-height: 14px;
letter-spacing: -0.15px;
}
.c-card-3__group-3 {
display: grid;
align-items: center;
flex-shrink: 0;
box-sizing: border-box;
width: 14px;
height: 14px;
color: #62666D;
}
.c-card-3__media {
display: block;
flex-shrink: 0;
box-sizing: border-box;
width: 14px;
height: 14px;
max-width: 100%;
aspect-ratio: auto 14 / 14;
overflow-x: clip;
overflow-y: clip;
background-color: currentcolor;
border-radius: 50%;
}
.c-card-3__group-4 {
display: flex;
align-items: center;
gap: 6px;
box-sizing: border-box;
height: 18px;
}
.c-card-3__group-5 {
display: block;
flex-grow: 1;
flex-basis: 0%;
box-sizing: border-box;
overflow-x: hidden;
overflow-y: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.c-card-3__text-2 {
display: inline;
box-sizing: border-box;
color: #D0D6E0;
font-size: 12px;
font-weight: 510;
line-height: 16.8px;
}
.c-card-3__group-6 {
display: flex;
align-items: center;
gap: 4px;
box-sizing: border-box;
margin-top: auto;
}
.c-card-3__group-7 {
display: grid;
align-items: center;
flex-shrink: 0;
box-sizing: border-box;
width: 24px;
height: 24px;
color: #8A8F98;
border: 1px solid #FFFFFF14;
border-radius: 9999px;
}
.c-card-3__icon {
display: block;
flex-shrink: 0;
box-sizing: border-box;
width: 12px;
height: 12px;
overflow-x: hidden;
overflow-y: hidden;
background-color: currentcolor;
}
.c-card-3__group-8 {
display: flex;
align-items: center;
flex-shrink: 0;
gap: 4px;
box-sizing: border-box;
height: 24px;
border: 1px solid #FFFFFF14;
border-radius: 9999px;
padding-right: 8px;
padding-left: 6px;
}
.c-card-3__text-3 {
display: block;
box-sizing: border-box;
}
States
- No hover or focus change was observed.
Card (4)
Verification: flagged, the card-4-group-4 y did not reproduce the measured 163px after 2 correction attempts.
Anatomy
- Group: 4 instances in a 4-column grid; the recipe carries the values they all share
card-4: the component root, a<section>(.c-card-4)card-4-group: inner group (.c-card-4__group)card-4-title: heading, 4 characters (.c-card-4__title)card-4-group-2: inner block (.c-card-4__group-2)card-4-group-3: inner flex row (.c-card-4__group-3)card-4-text: label text, 2 characters (.c-card-4__text)card-4-group-4: inner block (.c-card-4__group-4)card-4-list: inner flex column (.c-card-4__list)card-4-item: inner flex row (.c-card-4__item, 5 instances)card-4-icon: icon placeholder, 16px (.c-card-4__icon, 5 instances)card-4-text-2: label text, 17 characters (.c-card-4__text-2, 5 instances)card-4-group-5: inner block (.c-card-4__group-5)card-4-group-6: inner flex row (.c-card-4__group-6)card-4-link: link, 11-character label (.c-card-4__link)
Recipe
HTML · CSS
<div class="c-card-4-scope">
<section class="c-card-4">
<div class="c-card-4__group">
<h3 class="c-card-4__title">lore</h3>
<div class="c-card-4__group-2"></div>
<div class="c-card-4__group-3">
<span class="c-card-4__text">lo</span>
</div>
</div>
<div class="c-card-4__group-4"></div>
<ul class="c-card-4__list">
<li class="c-card-4__item">
<span class="c-card-4__icon" aria-hidden="true"></span>
<span class="c-card-4__text-2">lorem ipsum dolor</span>
</li>
<li class="c-card-4__item">
<span class="c-card-4__icon" aria-hidden="true"></span>
<span class="c-card-4__text-2">lorem i</span>
</li>
<li class="c-card-4__item">
<span class="c-card-4__icon" aria-hidden="true"></span>
<span class="c-card-4__text-2">lorem ipsu</span>
</li>
<li class="c-card-4__item">
<span class="c-card-4__icon" aria-hidden="true"></span>
<span class="c-card-4__text-2">lorem ipsum do</span>
</li>
<li class="c-card-4__item">
<span class="c-card-4__icon" aria-hidden="true"></span>
<span class="c-card-4__text-2">lorem ipsum</span>
</li>
</ul>
<div class="c-card-4__group-5"></div>
<div class="c-card-4__group-6">
<a class="c-card-4__link" href="#">lorem ipsum</a>
</div>
</section>
</div>
.c-card-4-scope {
background-color: #08090A;
color: #F7F8F8;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
}
.c-card-4 {
display: inline-flex;
flex-direction: column;
border-spacing: 0px;
box-sizing: border-box;
min-height: 534px;
color: #F7F8F8;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
padding-right: 32px;
padding-left: 32px;
}
.c-card-4__group {
display: block;
box-sizing: border-box;
}
.c-card-4__title {
display: block;
box-sizing: border-box;
margin: 0px;
font-size: 24px;
font-weight: 590;
line-height: 31.92px;
letter-spacing: -0.288px;
}
.c-card-4__group-2 {
display: block;
box-sizing: border-box;
width: 1px;
height: 1px;
min-width: 1px;
min-height: 1px;
margin-top: 7px;
margin-left: -1px;
}
.c-card-4__group-3 {
display: flex;
align-items: center;
box-sizing: border-box;
height: 24px;
}
.c-card-4__text {
display: block;
box-sizing: border-box;
}
.c-card-4__group-4 {
display: block;
box-sizing: border-box;
width: 1px;
height: 1px;
min-width: 1px;
min-height: 1px;
margin-top: 23px;
margin-left: -1px;
}
.c-card-4__list {
display: flex;
flex-direction: column;
gap: 16px;
box-sizing: border-box;
padding: 0px;
margin: 0px;
list-style-type: disc;
}
.c-card-4__item {
display: flex;
align-items: center;
gap: 8px;
box-sizing: border-box;
}
.c-card-4__icon {
display: block;
flex-shrink: 0;
box-sizing: border-box;
width: 16px;
height: 16px;
overflow-x: hidden;
overflow-y: hidden;
background-color: currentcolor;
}
.c-card-4__text-2 {
display: block;
box-sizing: border-box;
color: #D0D6E0;
font-size: 13px;
line-height: 19.5px;
letter-spacing: -0.13px;
}
.c-card-4__group-5 {
display: block;
box-sizing: border-box;
width: 1px;
height: 1px;
min-width: 1px;
min-height: 1px;
margin-top: 43px;
margin-left: -1px;
}
.c-card-4__group-6 {
display: flex;
gap: 8px;
box-sizing: border-box;
width: 100%;
margin-top: auto;
}
.c-card-4__link {
display: flex;
justify-content: center;
align-items: center;
flex-grow: 1;
flex-basis: 0%;
gap: 8px;
box-sizing: border-box;
height: 40px;
max-width: 100%;
position: relative;
border-radius: 9999px;
cursor: pointer;
font-size: 13px;
font-weight: 510;
line-height: 40px;
text-decoration-line: none;
white-space: nowrap;
padding-right: 14px;
padding-left: 14px;
transition-duration: 0.16s;
transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
transition-property: border, background-color, color, box-shadow, opacity, filter, transform;
}
.c-card-4:hover {
border-left-width: 0px;
border-left-style: none;
border-left-color: #F7F8F8;
}
.c-card-4:focus {
border-left-width: 0px;
border-left-style: none;
border-left-color: #F7F8F8;
}
States
- hover: border-left-width 0px, border-left-style none, border-left-color #F7F8F8
- focus: border-left-width 0px, border-left-style none, border-left-color #F7F8F8
Card (5)
Verification: not verifiable, what the page placed in it (photos, media, ads) covers most of it and nothing else differs, so the comparison could not be judged.
Anatomy
- Group: 6 instances in a 3-column grid; the recipe carries the values they all share
card-5: the component root, a<a>(.c-card-5)card-5-group: inner flex row (.c-card-5__group)card-5-media: image placeholder, 386x218px (.c-card-5__media)card-5-group-2: inner group (.c-card-5__group-2)card-5-group-3: inner flex column (.c-card-5__group-3)card-5-text: label text, 48 characters (.c-card-5__text)card-5-group-4: inner group (.c-card-5__group-4)card-5-text-2: label text, 11 characters (.c-card-5__text-2)card-5-text-3: label text, 1 characters (.c-card-5__text-3)
Recipe
HTML · CSS
<div class="c-card-5-scope">
<a class="c-card-5" href="#">
<div class="c-card-5__group">
<span class="c-card-5__media" aria-hidden="true"></span>
<span class="c-card-5__group-2"></span>
</div>
<div class="c-card-5__group-3">
<span class="c-card-5__text">lorem ipsum dolor sit amet consectetur adipiscin</span>
<span class="c-card-5__group-4">
<span class="c-card-5__text-2">lorem ipsum</span>
<span class="c-card-5__text-3">l</span>
</span>
</div>
</a>
</div>
.c-card-5-scope {
background-color: #08090A;
color: #F7F8F8;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
}
.c-card-5 {
display: inline-flex;
flex-direction: column;
gap: 24px;
border-spacing: 0px;
box-sizing: border-box;
color: #F7F8F8;
cursor: pointer;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
text-decoration-line: none;
}
.c-card-5__group {
display: flex;
justify-content: center;
align-items: center;
box-sizing: border-box;
aspect-ratio: 1600 / 900;
position: relative;
overflow-x: hidden;
overflow-y: hidden;
border-radius: 4px;
transition: filter 0.2s cubic-bezier(0.215, 0.61, 0.355, 1);
}
.c-card-5__media {
display: block;
flex-shrink: 0;
box-sizing: border-box;
width: 386px;
height: 218px;
position: absolute;
top: -1px;
right: -1px;
bottom: -1px;
left: -1px;
overflow-x: clip;
overflow-y: clip;
background-color: currentcolor;
}
.c-card-5__group-2 {
display: block;
box-sizing: border-box;
width: 80%;
height: 35%;
position: relative;
background-color: #FFFFFF;
}
.c-card-5__group-3 {
display: flex;
flex-direction: column;
flex-grow: 1;
flex-basis: 0%;
box-sizing: border-box;
padding-right: 24px;
}
.c-card-5__text {
display: block;
box-sizing: border-box;
font-size: 20px;
font-weight: 510;
line-height: 26.6px;
letter-spacing: -0.24px;
}
.c-card-5__group-4 {
display: block;
box-sizing: border-box;
color: #8A8F98;
font-size: 14px;
line-height: 21px;
letter-spacing: -0.182px;
transition: color 0.15s ease;
padding-top: 24px;
margin-top: auto;
}
.c-card-5__text-3 {
display: inline;
box-sizing: border-box;
color: #62666D;
transition: color 0.15s ease;
}
.c-card-5:focus {
outline: 1px solid #5E69D1;
outline-offset: 2px;
}
States
- focus: outline 1px solid #5E69D1, outline-offset 2px
Card (6)
Verification: flagged, the render matched 30% of the original pixels, below the 96% required (instance 1) after 2 correction attempts.
Anatomy
- Group: 6 instances in a 3-column grid; the recipe carries the values they all share
card-6: the component root, a<a>(.c-card-6)card-6-group: inner flex row (.c-card-6__group)card-6-group-2: inner group (.c-card-6__group-2)card-6-group-3: inner flex column (.c-card-6__group-3)card-6-text: label text, 63 characters (.c-card-6__text)card-6-group-4: inner group (.c-card-6__group-4)card-6-text-2: label text, 10 characters (.c-card-6__text-2)card-6-text-3: label text, 1 characters (.c-card-6__text-3)
Recipe
HTML · CSS
<div class="c-card-6-scope">
<a class="c-card-6" href="#">
<div class="c-card-6__group">
<span class="c-card-6__group-2"></span>
</div>
<div class="c-card-6__group-3">
<span class="c-card-6__text">lorem ipsum dolor sit amet consectetur adipiscing elit sed do e</span>
<span class="c-card-6__group-4">
<span class="c-card-6__text-2">lorem ipsu</span>
<span class="c-card-6__text-3">l</span>
</span>
</div>
</a>
</div>
.c-card-6-scope {
background-color: #08090A;
color: #F7F8F8;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
}
.c-card-6 {
display: inline-flex;
flex-direction: column;
gap: 24px;
border-spacing: 0px;
box-sizing: border-box;
color: #F7F8F8;
cursor: pointer;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
text-decoration-line: none;
}
.c-card-6__group {
display: flex;
justify-content: center;
align-items: center;
box-sizing: border-box;
aspect-ratio: 1600 / 900;
position: relative;
overflow-x: hidden;
overflow-y: hidden;
border-radius: 4px;
transition: filter 0.2s cubic-bezier(0.215, 0.61, 0.355, 1);
}
.c-card-6__group-2 {
display: block;
box-sizing: border-box;
width: 80%;
height: 35%;
position: relative;
}
.c-card-6__group-3 {
display: flex;
flex-direction: column;
flex-grow: 1;
flex-basis: 0%;
box-sizing: border-box;
padding-right: 24px;
}
.c-card-6__text {
display: block;
box-sizing: border-box;
font-size: 20px;
font-weight: 510;
line-height: 26.6px;
letter-spacing: -0.24px;
}
.c-card-6__group-4 {
display: block;
box-sizing: border-box;
color: #8A8F98;
font-size: 14px;
line-height: 21px;
letter-spacing: -0.182px;
transition: color 0.15s ease;
padding-top: 24px;
margin-top: auto;
}
.c-card-6__text-3 {
display: inline;
box-sizing: border-box;
color: #62666D;
transition: color 0.15s ease;
}
.c-card-6:focus {
outline: 1px solid #5E69D1;
outline-offset: 2px;
}
States
- focus: outline 1px solid #5E69D1, outline-offset 2px
Card (7)
Verification: flagged, the card-7-group-6 height did not reproduce the measured 96px after 2 correction attempts.
Anatomy
- Group: 4 instances in a 4-column grid, 12px gap; the recipe carries the values they all share
card-7: the component root, a<div>(.c-card-7)card-7-group: inner flex row (.c-card-7__group)card-7-group-2: inner flex row (.c-card-7__group-2)card-7-group-3: inner grid (.c-card-7__group-3)card-7-icon: icon placeholder, 14px (.c-card-7__icon, 3 instances)card-7-text: label text, 7 characters (.c-card-7__text)card-7-text-2: label text, 1 characters (.c-card-7__text-2)card-7-group-4: inner flex row (.c-card-7__group-4)card-7-button: button (.c-card-7__button, 2 instances)card-7-group-5: inner flex column (.c-card-7__group-5), content not capturedcard-7-group-6: inner block (.c-card-7__group-6, 4 instances), content not capturedcard-7-group-7: inner flex row (.c-card-7__group-7, 4 instances), content not capturedcard-7-text-3: label text, 8 characters (.c-card-7__text-3, 4 instances)card-7-group-8: inner grid (.c-card-7__group-8, 3 instances), content not capturedcard-7-group-9: inner flex row (.c-card-7__group-9, 3 instances)card-7-group-10: inner block (.c-card-7__group-10, 3 instances), content not capturedcard-7-group-11: inner flex row (.c-card-7__group-11, 3 instances), content not capturedcard-7-group-12: inner grid (.c-card-7__group-12, 3 instances), content not captured
Recipe
HTML · CSS
<div class="c-card-7-scope">
<div class="c-card-7">
<div class="c-card-7__group">
<div class="c-card-7__group-2">
<span class="c-card-7__group-3">
<span class="c-card-7__icon" aria-hidden="true"></span>
</span>
<span class="c-card-7__text">lorem i</span>
<span class="c-card-7__text-2">l</span>
</div>
<div class="c-card-7__group-4">
<button class="c-card-7__button" type="button">
<span class="c-card-7__icon" aria-hidden="true"></span>
</button>
<button class="c-card-7__button" type="button">
<span class="c-card-7__icon" aria-hidden="true"></span>
</button>
</div>
</div>
<div class="c-card-7__group-5">
<div class="c-card-7__group-6">
<div class="c-card-7__group-7">
<span class="c-card-7__text-3">lorem ip</span>
<span class="c-card-7__group-8"></span>
</div>
<div class="c-card-7__group-9">
<div class="c-card-7__group-10"></div>
</div>
<div class="c-card-7__group-11">
<span class="c-card-7__group-12"></span>
</div>
</div>
<div class="c-card-7__group-6">
<div class="c-card-7__group-7">
<span class="c-card-7__text-3">lorem ip</span>
<span class="c-card-7__group-8"></span>
</div>
<div class="c-card-7__group-9">
<div class="c-card-7__group-10"></div>
</div>
<div class="c-card-7__group-11">
<span class="c-card-7__group-12"></span>
</div>
</div>
<div class="c-card-7__group-6">
<div class="c-card-7__group-7">
<span class="c-card-7__text-3">lorem ip</span>
<span class="c-card-7__group-8"></span>
</div>
<div class="c-card-7__group-9">
<div class="c-card-7__group-10"></div>
</div>
<div class="c-card-7__group-11">
<span class="c-card-7__group-12"></span>
</div>
</div>
<div class="c-card-7__group-6">
<div class="c-card-7__group-7">
<span class="c-card-7__text-3">lorem ip</span>
</div>
</div>
</div>
</div>
</div>
.c-card-7-scope {
background-color: #0F1011;
color: #F7F8F8;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
}
.c-card-7 {
display: inline-block;
border-spacing: 0px;
box-sizing: border-box;
width: 300px;
color: #F7F8F8;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
}
.c-card-7__group {
display: flex;
justify-content: space-between;
align-items: center;
gap: 8px;
box-sizing: border-box;
padding-right: 12px;
padding-bottom: 28px;
padding-left: 12px;
}
.c-card-7__group-2 {
display: flex;
align-items: center;
gap: 11px;
box-sizing: border-box;
}
.c-card-7__group-3 {
display: grid;
align-items: center;
flex-shrink: 0;
box-sizing: border-box;
width: 14px;
height: 14px;
opacity: 0.9;
}
.c-card-7__icon {
display: block;
flex-shrink: 0;
box-sizing: border-box;
width: 14px;
height: 14px;
overflow-x: hidden;
overflow-y: hidden;
background-color: currentcolor;
}
.c-card-7__text {
display: block;
box-sizing: border-box;
color: #D0D6E0;
font-size: 12px;
font-weight: 510;
line-height: 14px;
}
.c-card-7__text-2 {
display: block;
box-sizing: border-box;
color: #8A8F98;
font-size: 12px;
line-height: 14px;
}
.c-card-7__group-4 {
display: flex;
align-items: center;
gap: 8px;
box-sizing: border-box;
}
.c-card-7__button {
display: grid;
align-items: center;
box-sizing: border-box;
width: 14px;
height: 14px;
padding: 0px;
background-color: transparent;
color: #62666D;
border: 0;
cursor: default;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 13.3333px;
font-weight: 400;
line-height: normal;
letter-spacing: normal;
text-transform: none;
text-align: center;
}
.c-card-7__group-5 {
display: flex;
flex-direction: column;
gap: 8px;
box-sizing: border-box;
}
.c-card-7__group-6 {
box-sizing: border-box;
}
.c-card-7__group-7 {
display: flex;
box-sizing: border-box;
}
.c-card-7__text-3 {
display: block;
box-sizing: border-box;
color: #62666D;
font-size: 10px;
line-height: 14px;
letter-spacing: -0.15px;
}
.c-card-7__group-8 {
display: grid;
align-items: center;
flex-shrink: 0;
box-sizing: border-box;
width: 14px;
height: 14px;
color: #62666D;
}
.c-card-7__group-9 {
display: flex;
align-items: center;
gap: 6px;
box-sizing: border-box;
height: 18px;
}
.c-card-7__group-10 {
display: block;
flex-grow: 1;
flex-basis: 0%;
box-sizing: border-box;
overflow-x: hidden;
overflow-y: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.c-card-7__group-11 {
display: flex;
align-items: center;
gap: 4px;
box-sizing: border-box;
margin-top: auto;
}
.c-card-7__group-12 {
display: grid;
align-items: center;
flex-shrink: 0;
box-sizing: border-box;
width: 24px;
height: 24px;
color: #8A8F98;
border: 1px solid #FFFFFF14;
border-radius: 9999px;
}
States
- No hover or focus change was observed.
Board columns
Board column
Verification: flagged, the board-column-group-6 height did not reproduce the measured 96px after 2 correction attempts.
Anatomy
- Group: 4 instances in a 4-column grid, 12px gap; the recipe carries the values they all share
board-column: the component root, a<div>(.c-board-column)board-column-group: inner flex row (.c-board-column__group)board-column-group-2: inner flex row (.c-board-column__group-2)board-column-group-3: inner grid (.c-board-column__group-3)board-column-icon: icon placeholder, 14px (.c-board-column__icon, 3 instances)board-column-text: label text, 7 characters (.c-board-column__text)board-column-text-2: label text, 1 characters (.c-board-column__text-2)board-column-group-4: inner flex row (.c-board-column__group-4)board-column-button: button (.c-board-column__button, 2 instances)board-column-group-5: inner flex column (.c-board-column__group-5), content not capturedboard-column-group-6: inner block (.c-board-column__group-6, 4 instances), content not capturedboard-column-group-7: inner flex row (.c-board-column__group-7, 4 instances), content not capturedboard-column-text-3: label text, 8 characters (.c-board-column__text-3, 4 instances)board-column-group-8: inner grid (.c-board-column__group-8, 3 instances), content not capturedboard-column-group-9: inner flex row (.c-board-column__group-9, 3 instances)board-column-group-10: inner block (.c-board-column__group-10, 3 instances), content not capturedboard-column-group-11: inner flex row (.c-board-column__group-11, 3 instances), content not capturedboard-column-group-12: inner grid (.c-board-column__group-12, 3 instances), content not captured
Recipe
HTML · CSS
<div class="c-board-column-scope">
<div class="c-board-column">
<div class="c-board-column__group">
<div class="c-board-column__group-2">
<span class="c-board-column__group-3">
<span class="c-board-column__icon" aria-hidden="true"></span>
</span>
<span class="c-board-column__text">lorem i</span>
<span class="c-board-column__text-2">l</span>
</div>
<div class="c-board-column__group-4">
<button class="c-board-column__button" type="button">
<span class="c-board-column__icon" aria-hidden="true"></span>
</button>
<button class="c-board-column__button" type="button">
<span class="c-board-column__icon" aria-hidden="true"></span>
</button>
</div>
</div>
<div class="c-board-column__group-5">
<div class="c-board-column__group-6">
<div class="c-board-column__group-7">
<span class="c-board-column__text-3">lorem ip</span>
<span class="c-board-column__group-8"></span>
</div>
<div class="c-board-column__group-9">
<div class="c-board-column__group-10"></div>
</div>
<div class="c-board-column__group-11">
<span class="c-board-column__group-12"></span>
</div>
</div>
<div class="c-board-column__group-6">
<div class="c-board-column__group-7">
<span class="c-board-column__text-3">lorem ip</span>
<span class="c-board-column__group-8"></span>
</div>
<div class="c-board-column__group-9">
<div class="c-board-column__group-10"></div>
</div>
<div class="c-board-column__group-11">
<span class="c-board-column__group-12"></span>
</div>
</div>
<div class="c-board-column__group-6">
<div class="c-board-column__group-7">
<span class="c-board-column__text-3">lorem ip</span>
<span class="c-board-column__group-8"></span>
</div>
<div class="c-board-column__group-9">
<div class="c-board-column__group-10"></div>
</div>
<div class="c-board-column__group-11">
<span class="c-board-column__group-12"></span>
</div>
</div>
<div class="c-board-column__group-6">
<div class="c-board-column__group-7">
<span class="c-board-column__text-3">lorem ip</span>
</div>
</div>
</div>
</div>
</div>
.c-board-column-scope {
background-color: #0F1011;
color: #F7F8F8;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
}
.c-board-column {
display: inline-block;
border-spacing: 0px;
box-sizing: border-box;
width: 300px;
color: #F7F8F8;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
}
.c-board-column__group {
display: flex;
justify-content: space-between;
align-items: center;
gap: 8px;
box-sizing: border-box;
padding-right: 12px;
padding-bottom: 28px;
padding-left: 12px;
}
.c-board-column__group-2 {
display: flex;
align-items: center;
gap: 11px;
box-sizing: border-box;
}
.c-board-column__group-3 {
display: grid;
align-items: center;
flex-shrink: 0;
box-sizing: border-box;
width: 14px;
height: 14px;
opacity: 0.9;
}
.c-board-column__icon {
display: block;
flex-shrink: 0;
box-sizing: border-box;
width: 14px;
height: 14px;
overflow-x: hidden;
overflow-y: hidden;
background-color: currentcolor;
}
.c-board-column__text {
display: block;
box-sizing: border-box;
color: #D0D6E0;
font-size: 12px;
font-weight: 510;
line-height: 14px;
}
.c-board-column__text-2 {
display: block;
box-sizing: border-box;
color: #8A8F98;
font-size: 12px;
line-height: 14px;
}
.c-board-column__group-4 {
display: flex;
align-items: center;
gap: 8px;
box-sizing: border-box;
}
.c-board-column__button {
display: grid;
align-items: center;
box-sizing: border-box;
width: 14px;
height: 14px;
padding: 0px;
background-color: transparent;
color: #62666D;
border: 0;
cursor: default;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 13.3333px;
font-weight: 400;
line-height: normal;
letter-spacing: normal;
text-transform: none;
text-align: center;
}
.c-board-column__group-5 {
display: flex;
flex-direction: column;
gap: 8px;
box-sizing: border-box;
}
.c-board-column__group-6 {
box-sizing: border-box;
}
.c-board-column__group-7 {
display: flex;
box-sizing: border-box;
}
.c-board-column__text-3 {
display: block;
box-sizing: border-box;
color: #62666D;
font-size: 10px;
line-height: 14px;
letter-spacing: -0.15px;
}
.c-board-column__group-8 {
display: grid;
align-items: center;
flex-shrink: 0;
box-sizing: border-box;
width: 14px;
height: 14px;
color: #62666D;
}
.c-board-column__group-9 {
display: flex;
align-items: center;
gap: 6px;
box-sizing: border-box;
height: 18px;
}
.c-board-column__group-10 {
display: block;
flex-grow: 1;
flex-basis: 0%;
box-sizing: border-box;
overflow-x: hidden;
overflow-y: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.c-board-column__group-11 {
display: flex;
align-items: center;
gap: 4px;
box-sizing: border-box;
margin-top: auto;
}
.c-board-column__group-12 {
display: grid;
align-items: center;
flex-shrink: 0;
box-sizing: border-box;
width: 24px;
height: 24px;
color: #8A8F98;
border: 1px solid #FFFFFF14;
border-radius: 9999px;
}
States
- No hover or focus change was observed.
Board column (2)
Verification: flagged, the board-column-2-icon-2 x did not reproduce the measured 19px after 2 correction attempts.
Anatomy
- Group: 5 instances in a 1-column grid, 8px gap; the recipe carries the values they all share
board-column-2: the component root, a<div>(.c-board-column-2)board-column-2-group: inner flex row (.c-board-column-2__group)board-column-2-text: label text, 8 characters (.c-board-column-2__text)board-column-2-group-2: inner grid (.c-board-column-2__group-2)board-column-2-icon: icon placeholder, 14px (.c-board-column-2__icon)board-column-2-group-3: inner flex row (.c-board-column-2__group-3)board-column-2-group-4: inner block (.c-board-column-2__group-4)board-column-2-text-2: label text, 27 characters (.c-board-column-2__text-2)board-column-2-group-5: inner flex row (.c-board-column-2__group-5)board-column-2-group-6: inner grid (.c-board-column-2__group-6)board-column-2-icon-2: icon placeholder, 12px (.c-board-column-2__icon-2, 2 instances)board-column-2-group-7: inner flex row (.c-board-column-2__group-7, 2 instances)board-column-2-group-8: inner group (.c-board-column-2__group-8)board-column-2-text-3: label text, 3 characters (.c-board-column-2__text-3, 2 instances)
Recipe
HTML · CSS
<div class="c-board-column-2-scope">
<div class="c-board-column-2">
<div class="c-board-column-2__group">
<span class="c-board-column-2__text">lorem ip</span>
<span class="c-board-column-2__group-2">
<span class="c-board-column-2__icon" aria-hidden="true"></span>
</span>
</div>
<div class="c-board-column-2__group-3">
<div class="c-board-column-2__group-4">
<span class="c-board-column-2__text-2">lorem ipsum dolor sit amet</span>
</div>
</div>
<div class="c-board-column-2__group-5">
<span class="c-board-column-2__group-6">
<span class="c-board-column-2__icon-2" aria-hidden="true"></span>
</span>
<span class="c-board-column-2__group-7">
<span class="c-board-column-2__group-8"></span>
<span class="c-board-column-2__text-3">lor</span>
</span>
<span class="c-board-column-2__group-7">
<span class="c-board-column-2__icon-2" aria-hidden="true"></span>
<span class="c-board-column-2__text-3">lorem</span>
</span>
</div>
</div>
</div>
.c-board-column-2-scope {
background-color: #0F1011;
color: #F7F8F8;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
}
.c-board-column-2 {
display: inline-flex;
flex-direction: column;
border-spacing: 0px;
box-sizing: border-box;
width: 300px;
height: 96px;
padding: 8px 10px 12px 12px;
position: relative;
background-color: #0F1011;
background-image: linear-gradient(#FFFFFF05, #FFFFFF05), none;
background-clip: border-box, border-box;
color: #F7F8F8;
border: 1px solid #FFFFFF14;
border-radius: 9px;
transform: matrix(1, 0, 0, 1, 0, 0);
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
}
.c-board-column-2::after {
content: "";
display: block;
box-sizing: border-box;
width: 298px;
height: 94px;
position: absolute;
top: 0px;
right: 0px;
bottom: 0px;
left: 0px;
background-color: #FFFFFF08;
border-radius: 9px;
opacity: 0;
}
.c-board-column-2__group {
display: flex;
justify-content: space-between;
align-items: center;
gap: 8px;
box-sizing: border-box;
height: 22px;
}
.c-board-column-2__text {
display: block;
box-sizing: border-box;
color: #62666D;
font-size: 10px;
line-height: 14px;
letter-spacing: -0.15px;
}
.c-board-column-2__group-2 {
display: grid;
align-items: center;
flex-shrink: 0;
box-sizing: border-box;
width: 14px;
height: 14px;
color: #62666D;
}
.c-board-column-2__icon {
display: block;
flex-shrink: 0;
box-sizing: border-box;
width: 14px;
height: 14px;
overflow-x: hidden;
overflow-y: hidden;
background-color: currentcolor;
}
.c-board-column-2__group-3 {
display: flex;
align-items: center;
gap: 6px;
box-sizing: border-box;
height: 18px;
}
.c-board-column-2__group-4 {
display: block;
flex-grow: 1;
flex-basis: 0%;
box-sizing: border-box;
overflow-x: hidden;
overflow-y: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.c-board-column-2__text-2 {
display: inline;
box-sizing: border-box;
color: #D0D6E0;
font-size: 12px;
font-weight: 510;
line-height: 16.8px;
}
.c-board-column-2__group-5 {
display: flex;
align-items: center;
gap: 4px;
box-sizing: border-box;
margin-top: auto;
}
.c-board-column-2__group-6 {
display: grid;
align-items: center;
flex-shrink: 0;
box-sizing: border-box;
width: 24px;
height: 24px;
color: #8A8F98;
border: 1px solid #FFFFFF14;
border-radius: 9999px;
}
.c-board-column-2__icon-2 {
display: block;
flex-shrink: 0;
box-sizing: border-box;
width: 12px;
height: 12px;
overflow-x: hidden;
overflow-y: hidden;
background-color: currentcolor;
}
.c-board-column-2__group-7 {
display: flex;
align-items: center;
flex-shrink: 0;
gap: 4px;
box-sizing: border-box;
height: 24px;
border: 1px solid #FFFFFF14;
border-radius: 9999px;
padding-right: 8px;
padding-left: 6px;
}
.c-board-column-2__group-8 {
display: block;
box-sizing: border-box;
}
.c-board-column-2__text-3 {
display: block;
box-sizing: border-box;
color: #8A8F98;
font-size: 12px;
font-weight: 510;
line-height: 14px;
}
States
- No hover or focus change was observed.
Sidebar nav item
Verification: verified against the live page at desktop.
Anatomy
sidebar-nav-item: the component root, a<button>(.c-sidebar-nav-item)sidebar-nav-item-icon: icon placeholder, 14px (.c-sidebar-nav-item__icon)sidebar-nav-item-text: label text, 5 characters (.c-sidebar-nav-item__text)
Recipe
HTML · CSS
<div class="c-sidebar-nav-item-scope">
<button class="c-sidebar-nav-item" type="button">
<span class="c-sidebar-nav-item__icon" aria-hidden="true"></span>
<span class="c-sidebar-nav-item__text">lorem</span>
</button>
</div>
.c-sidebar-nav-item-scope {
background-color: #090A0B;
color: #F7F8F8;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
}
.c-sidebar-nav-item {
display: inline-flex;
align-items: center;
gap: 8px;
border-spacing: 0px;
box-sizing: border-box;
height: 28px;
padding: 0px 7px;
background-color: transparent;
color: #D0D6E0;
border: 0;
border-radius: 8px;
cursor: pointer;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 13px;
font-weight: 510;
line-height: normal;
letter-spacing: normal;
text-transform: none;
text-align: center;
}
.c-sidebar-nav-item__icon {
display: block;
flex-shrink: 0;
box-sizing: border-box;
width: 14px;
height: 14px;
overflow-x: hidden;
overflow-y: hidden;
background-color: currentcolor;
}
.c-sidebar-nav-item:hover {
background-color: #FFFFFF05;
}
.c-sidebar-nav-item:focus {
outline: 1px solid #5E69D1;
outline-offset: 2px;
}
States
- hover (
sidebar-nav-item-hover): background-color #FFFFFF05 - focus: outline 1px solid #5E69D1, outline-offset 2px
Integration tag
Verification: verified against the live page at desktop.
Anatomy
integration-tag: the component root, a<button>(.c-integration-tag)integration-tag-group: inner group (.c-integration-tag__group)integration-tag-group-2: inner group (.c-integration-tag__group-2)integration-tag-text: label text, 12 characters (.c-integration-tag__text)integration-tag-text-2: label text, 1 characters (.c-integration-tag__text-2)
Recipe
HTML · CSS
<div class="c-integration-tag-scope">
<button class="c-integration-tag" type="button">
<span class="c-integration-tag__group">
<span class="c-integration-tag__group-2">
<span class="c-integration-tag__text">lorem ipsum</span>
<span class="c-integration-tag__text-2">l</span>
</span>
</span>
</button>
</div>
.c-integration-tag-scope {
background-color: #08090A;
color: #F7F8F8;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
}
.c-integration-tag {
display: inline-block;
border-spacing: 0px;
box-sizing: border-box;
padding: 0px;
background-color: transparent;
color: #FFFFFF;
border: 0;
cursor: pointer;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 13.3333px;
font-weight: 400;
line-height: normal;
letter-spacing: normal;
text-transform: none;
text-align: center;
list-style-type: none;
}
.c-integration-tag__group {
display: block;
box-sizing: border-box;
transition-duration: 0.16s, 0.16s;
transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94), cubic-bezier(0.25, 0.46, 0.45, 0.94);
transition-property: filter, transform;
}
.c-integration-tag__group-2 {
display: inline;
box-sizing: border-box;
color: #8A8F98;
font-size: 15px;
line-height: 24px;
letter-spacing: -0.165px;
}
.c-integration-tag__text-2 {
display: inline;
box-sizing: border-box;
color: #62666D;
font-size: 18px;
line-height: 28.8px;
transition: color 0.16s cubic-bezier(0.25, 0.46, 0.45, 0.94);
margin-left: 4px;
}
.c-integration-tag:focus {
outline: 1px solid #5E69D1;
outline-offset: 2px;
}
States
- focus: outline 1px solid #5E69D1, outline-offset 2px
Icon buttons
Icon button
Verification: flagged, the icon-button-icon x did not reproduce the measured 6px after 2 correction attempts.
Anatomy
icon-button: the component root, a<button>(.c-icon-button)icon-button-icon: icon placeholder, 16px (.c-icon-button__icon)
Recipe
HTML · CSS
<div class="c-icon-button-scope">
<button class="c-icon-button" type="button">
<span class="c-icon-button__icon" aria-hidden="true"></span>
</button>
</div>
.c-icon-button-scope {
background-color: #090A0B;
color: #F7F8F8;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
}
.c-icon-button {
display: inline-grid;
align-items: center;
border-spacing: 0px;
box-sizing: border-box;
width: 28px;
height: 28px;
padding: 0px;
background-color: transparent;
color: #62666D;
border: 0;
border-radius: 9999px;
cursor: default;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 13.3333px;
font-weight: 400;
line-height: normal;
letter-spacing: normal;
text-transform: none;
text-align: center;
}
.c-icon-button__icon {
display: block;
flex-shrink: 0;
box-sizing: border-box;
width: 16px;
height: 16px;
overflow-x: hidden;
overflow-y: hidden;
background-color: currentcolor;
}
.c-icon-button:focus {
outline: 1px solid #5E69D1;
outline-offset: 2px;
}
States
- focus: outline 1px solid #5E69D1, outline-offset 2px
Icon button (2)
Verification: flagged, the icon-button-2-icon x did not reproduce the measured 7px after 2 correction attempts.
Anatomy
icon-button-2: the component root, a<button>(.c-icon-button-2)icon-button-2-icon: icon placeholder, 14px (.c-icon-button-2__icon)
Recipe
HTML · CSS
<div class="c-icon-button-2-scope">
<button class="c-icon-button-2" type="button">
<span class="c-icon-button-2__icon" aria-hidden="true"></span>
</button>
</div>
.c-icon-button-2-scope {
background-color: #FFFFFF03;
color: #F7F8F8;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
}
.c-icon-button-2 {
display: inline-grid;
align-items: center;
border-spacing: 0px;
box-sizing: border-box;
width: 28px;
height: 28px;
padding: 0px;
background-color: transparent;
color: #62666D;
border: 0;
border-radius: 9999px;
cursor: pointer;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 13.3333px;
font-weight: 400;
line-height: normal;
letter-spacing: normal;
text-transform: none;
text-align: center;
transition: transform 0.16s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.c-icon-button-2__icon {
display: block;
flex-shrink: 0;
box-sizing: border-box;
width: 14px;
height: 14px;
overflow-x: hidden;
overflow-y: hidden;
background-color: currentcolor;
}
.c-icon-button-2:hover {
background-color: #FFFFFF0D;
color: #8A8F98;
}
.c-icon-button-2:focus {
outline: 1px solid #5E69D1;
outline-offset: 2px;
}
States
- hover (
icon-button-2-hover): background-color #FFFFFF0D, color #8A8F98 - focus: outline 1px solid #5E69D1, outline-offset 2px
Icon button (3)
Verification: flagged, the icon-button-3-icon x did not reproduce the measured 7px after 2 correction attempts.
Anatomy
icon-button-3: the component root, a<button>(.c-icon-button-3)icon-button-3-icon: icon placeholder, 15px (.c-icon-button-3__icon)
Recipe
HTML · CSS
<div class="c-icon-button-3-scope">
<button class="c-icon-button-3" type="button">
<span class="c-icon-button-3__icon" aria-hidden="true"></span>
</button>
</div>
.c-icon-button-3-scope {
background-color: #090A0B;
color: #F7F8F8;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
}
.c-icon-button-3 {
display: inline-grid;
align-items: center;
border-spacing: 0px;
box-sizing: border-box;
width: 28px;
height: 28px;
padding: 0px;
background-color: #FFFFFF05;
color: #E2E4E7;
border: 1px solid #24282C;
border-radius: 9999px;
cursor: default;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 13.3333px;
font-weight: 400;
line-height: normal;
letter-spacing: normal;
text-transform: none;
text-align: center;
}
.c-icon-button-3__icon {
display: block;
flex-shrink: 0;
box-sizing: border-box;
width: 15px;
height: 15px;
overflow-x: hidden;
overflow-y: hidden;
background-color: currentcolor;
}
.c-icon-button-3:focus {
outline: 1px solid #5E69D1;
outline-offset: 2px;
}
States
- focus: outline 1px solid #5E69D1, outline-offset 2px
Label chip
Verification: flagged, the render matched 86% of the original pixels, below the 96% required on focus after 2 correction attempts.
Anatomy
label-chip: the component root, a<button>(.c-label-chip)label-chip-group: inner block (.c-label-chip__group)label-chip-text: label text, 11 characters (.c-label-chip__text)
Recipe
HTML · CSS
<div class="c-label-chip-scope">
<button class="c-label-chip" type="button">
<div class="c-label-chip__group"></div>
<span class="c-label-chip__text">lorem ipsum</span>
</button>
</div>
.c-label-chip-scope {
background-color: #FFFFFF03;
color: #F7F8F8;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
}
.c-label-chip {
display: inline-flex;
align-items: center;
gap: 2px;
border-spacing: 0px;
box-sizing: border-box;
height: 24px;
padding: 0px 11px 0px 7px;
background-color: transparent;
color: #D0D6E0;
border: 1px solid #2E2E32;
border-radius: 16px;
cursor: default;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 12px;
font-weight: 400;
line-height: 14px;
letter-spacing: normal;
text-transform: none;
text-align: center;
transition-duration: 0.16s, 0.16s;
transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94), cubic-bezier(0.25, 0.46, 0.45, 0.94);
transition-property: filter, transform;
}
.c-label-chip__group {
display: block;
box-sizing: border-box;
width: 16px;
height: 16px;
position: relative;
}
.c-label-chip__group::after {
content: "";
display: block;
box-sizing: border-box;
width: 6px;
height: 6px;
position: absolute;
top: 8px;
right: 2px;
bottom: 2px;
left: 8px;
background-color: #27A644;
border-radius: 50%;
transform: matrix(1, 0, 0, 1, -3, -3);
}
.c-label-chip:focus {
outline: 1px solid #5E69D1;
outline-offset: 2px;
}
States
- focus: outline 1px solid #5E69D1, outline-offset 2px
Headers
Header (landing)
Verification: desktop verified against the live page at desktop; mobile verified against the live page at mobile.
Variant observed on https://linear.app/.
Anatomy
header-landing: the component root, a<header>(.c-header-landing)header-landing-nav: inner flex row (.c-header-landing__nav)header-landing-inner: inner flex row (.c-header-landing__inner)header-landing-nav-list: inner flex row (.c-header-landing__nav-list)header-landing-nav-item: inner flex row (.c-header-landing__nav-item)header-landing-group: inner flex row (.c-header-landing__group)header-landing-nav-link: link (.c-header-landing__nav-link)header-landing-nav-link-icon: icon placeholder, 88x22px (.c-header-landing__nav-link-icon)header-landing-nav-item-2: inner flex row (.c-header-landing__nav-item-2)header-landing-nav-list-2: inner flex row (.c-header-landing__nav-list-2)header-landing-nav-item-3: inner grid (.c-header-landing__nav-item-3, 6 instances)header-landing-cta: thebutton-ghostbutton, 7-character label (.c-header-landing__cta, 2 instances)header-landing-nav-link-2: link, 9-character label (.c-header-landing__nav-link-2, 4 instances)header-landing-group-2: inner block (.c-header-landing__group-2, 2 instances)header-landing-group-3: inner block (.c-header-landing__group-3)header-landing-nav-list-3: inner flex row (.c-header-landing__nav-list-3)header-landing-nav-item-4: inner grid (.c-header-landing__nav-item-4, 2 instances)header-landing-nav-link-3: link, 6-character label (.c-header-landing__nav-link-3)header-landing-nav-link-4: link, 7-character label (.c-header-landing__nav-link-4)
Desktop recipe
HTML · CSS
<div class="c-header-landing-scope">
<header class="c-header-landing">
<nav class="c-header-landing__nav">
<div class="c-header-landing__inner">
<ul class="c-header-landing__nav-list">
<li class="c-header-landing__nav-item">
<div class="c-header-landing__group">
<a class="c-header-landing__nav-link" href="#">
<span class="c-header-landing__nav-link-icon" aria-hidden="true"></span>
</a>
</div>
</li>
<li class="c-header-landing__nav-item-2">
<ul class="c-header-landing__nav-list-2">
<li class="c-header-landing__nav-item-3">
<button class="c-header-landing__cta" type="button">lorem i</button>
</li>
<li class="c-header-landing__nav-item-3">
<button class="c-header-landing__cta" type="button">lorem ips</button>
</li>
<li class="c-header-landing__nav-item-3">
<a class="c-header-landing__nav-link-2" href="#">lorem ips</a>
</li>
<li class="c-header-landing__nav-item-3">
<a class="c-header-landing__nav-link-2" href="#">lorem i</a>
</li>
<li class="c-header-landing__nav-item-3">
<a class="c-header-landing__nav-link-2" href="#">lor</a>
</li>
<li class="c-header-landing__nav-item-3">
<a class="c-header-landing__nav-link-2" href="#">lorem i</a>
</li>
</ul>
<div class="c-header-landing__group-2"></div>
<div class="c-header-landing__group-3"></div>
<div class="c-header-landing__group-2"></div>
<ul class="c-header-landing__nav-list-3">
<li class="c-header-landing__nav-item-4">
<a class="c-header-landing__nav-link-3" href="#">lorem</a>
</li>
<li class="c-header-landing__nav-item-4">
<a class="c-header-landing__nav-link-4" href="#">lorem i</a>
</li>
</ul>
</li>
</ul>
</div>
</nav>
</header>
</div>
.c-header-landing-scope {
background-color: #08090A;
color: #F7F8F8;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
}
.c-header-landing {
display: block;
border-spacing: 0px;
box-sizing: border-box;
position: fixed;
top: 0px;
right: 0px;
left: 0px;
z-index: 100;
background-image: linear-gradient(#0B0B0BCC 0%, #0B0B0BC2 100%);
color: #F7F8F8;
backdrop-filter: blur(20px);
transform: matrix(1, 0, 0, 1, 0, 0);
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
border-bottom-width: 1px;
border-bottom-style: solid;
border-bottom-color: #FFFFFF14;
transition-duration: 0.1s;
transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
transition-property: border-color, background;
}
.c-header-landing::before {
content: "";
display: block;
box-sizing: border-box;
width: 1440px;
height: 72px;
position: absolute;
top: 0px;
right: 0px;
bottom: 0px;
left: 0px;
z-index: -1;
background-image: linear-gradient(#08090A 0%, transparent 100%);
}
.c-header-landing__nav {
display: flex;
align-items: center;
box-sizing: border-box;
height: 100%;
}
.c-header-landing__inner {
display: flex;
align-items: center;
box-sizing: border-box;
width: 100%;
height: 72px;
max-width: 1436px;
padding-right: 77px;
padding-left: 77px;
margin-right: auto;
margin-left: auto;
}
.c-header-landing__nav-list {
display: flex;
align-items: center;
gap: 8px;
box-sizing: border-box;
width: 100%;
min-height: 72px;
padding: 0px;
margin: 0px;
list-style-type: none;
}
.c-header-landing__nav-item {
display: flex;
flex-grow: 1;
flex-basis: 0%;
box-sizing: border-box;
white-space: nowrap;
}
.c-header-landing__group {
display: flex;
box-sizing: border-box;
}
.c-header-landing__nav-link {
display: flex;
align-items: center;
box-sizing: border-box;
height: 32px;
color: #F7F8F8;
border-radius: 6px;
cursor: pointer;
text-decoration-line: none;
padding-right: 8px;
padding-left: 8px;
margin-left: -8px;
}
.c-header-landing__nav-link-icon {
display: block;
flex-shrink: 0;
box-sizing: border-box;
width: 88px;
height: 22px;
overflow-x: hidden;
overflow-y: hidden;
background-color: currentcolor;
}
.c-header-landing__nav-item-2 {
display: flex;
align-items: center;
flex-shrink: 0;
box-sizing: border-box;
width: 100%;
max-width: 620px;
}
.c-header-landing__nav-list-2 {
display: flex;
align-items: center;
box-sizing: border-box;
padding: 0px;
margin: 0px;
list-style-type: none;
}
.c-header-landing__nav-item-3 {
display: grid;
box-sizing: border-box;
white-space: nowrap;
}
.c-header-landing__cta {
display: flex;
justify-content: center;
align-items: center;
box-sizing: border-box;
height: 32px;
padding: 0px 12px;
position: relative;
background-color: transparent;
color: #8A8F98;
border: 0;
border-radius: 9999px;
cursor: pointer;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 13px;
font-weight: 400;
line-height: 19.5px;
letter-spacing: normal;
text-transform: none;
text-align: center;
transition-duration: 0.1s;
transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
transition-property: color, background;
}
.c-header-landing__cta::before {
content: "";
display: block;
box-sizing: border-box;
width: 88px;
height: 32px;
position: absolute;
top: 0px;
right: -8px;
bottom: 0px;
left: -8px;
z-index: 0;
}
.c-header-landing__nav-link-2 {
display: flex;
justify-content: center;
align-items: center;
box-sizing: border-box;
height: 32px;
position: relative;
color: #8A8F98;
border-radius: 9999px;
cursor: pointer;
font-size: 13px;
line-height: 19.5px;
text-decoration-line: none;
padding-right: 12px;
padding-left: 12px;
transition-duration: 0.1s;
transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
transition-property: color, background;
}
.c-header-landing__group-2 {
display: block;
flex-grow: 1;
flex-basis: 0%;
box-sizing: border-box;
}
.c-header-landing__group-3 {
display: block;
box-sizing: border-box;
width: 1px;
height: 16px;
background-color: #23252A;
margin-right: 8px;
margin-left: 8px;
}
.c-header-landing__nav-list-3 {
display: flex;
justify-content: flex-end;
align-items: center;
gap: 8px;
box-sizing: border-box;
padding: 0px;
margin: 0px;
list-style-type: none;
}
.c-header-landing__nav-item-4 {
display: grid;
justify-content: center;
align-items: center;
box-sizing: border-box;
white-space: nowrap;
}
.c-header-landing__nav-link-3 {
display: flex;
justify-content: center;
align-items: center;
box-sizing: border-box;
width: 100%;
height: 32px;
position: relative;
color: #8A8F98;
border-radius: 9999px;
cursor: pointer;
font-size: 13px;
line-height: 19.5px;
text-decoration-line: none;
padding-right: 12px;
padding-left: 12px;
transition-duration: 0.1s;
transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
transition-property: color, background;
}
.c-header-landing__nav-link-4 {
display: flex;
justify-content: center;
align-items: center;
flex-shrink: 0;
gap: 8px;
box-sizing: border-box;
width: 100%;
height: 32px;
max-width: 100%;
position: relative;
background-color: #E5E5E6;
color: #08090A;
border: 1px solid #E5E5E6;
border-radius: 9999px;
box-shadow: transparent 0px 8px 2px 0px, #00000003 0px 5px 2px 0px, #0000000A 0px 3px 2px 0px, #00000012 0px 1px 1px 0px, #00000014 0px 0px 1px 0px;
cursor: pointer;
font-size: 13px;
font-weight: 510;
line-height: 32px;
text-decoration-line: none;
padding-right: 12px;
padding-left: 12px;
transition-duration: 0.16s;
transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
transition-property: border, background-color, color, box-shadow, opacity, filter, transform;
}
.c-header-landing__nav-link:focus {
outline: 1px solid #5E69D1;
outline-offset: 2px;
}
.c-header-landing__cta:hover {
background-color: #FFFFFF14;
color: #F7F8F8;
}
.c-header-landing__cta:hover::before {
color: #F7F8F8;
}
.c-header-landing__cta:hover::after {
content: "";
display: block;
box-sizing: border-box;
width: 136px;
height: 32px;
position: absolute;
top: 32px;
right: -32px;
bottom: -32px;
left: -32px;
}
.c-header-landing__cta:focus {
background-color: #FFFFFF14;
color: #F7F8F8;
outline: 1px solid #5E69D1;
outline-offset: 2px;
}
.c-header-landing__cta:focus::before {
color: #F7F8F8;
}
.c-header-landing__cta:focus::after {
content: "";
display: block;
box-sizing: border-box;
width: 136px;
height: 32px;
position: absolute;
top: 32px;
right: -32px;
bottom: -32px;
left: -32px;
}
.c-header-landing__nav-link-2:hover {
background-color: #FFFFFF14;
color: #F7F8F8;
}
.c-header-landing__nav-link-2:focus {
outline: 1px solid #5E69D1;
outline-offset: 2px;
}
.c-header-landing__nav-link-3:hover {
background-color: #FFFFFF14;
color: #F7F8F8;
}
.c-header-landing__nav-link-3:focus {
outline: 1px solid #5E69D1;
outline-offset: 2px;
}
.c-header-landing__nav-link-4:hover {
background-color: #FFFFFF;
}
.c-header-landing__nav-link-4:focus {
outline: 1px solid #5E69D1;
outline-offset: 2px;
}
Mobile anatomy
header-landing-mobile: the component root, a<header>(.c-header-landing-mobile)header-landing-mobile-nav: inner flex column (.c-header-landing-mobile__nav)header-landing-mobile-inner: inner flex row (.c-header-landing-mobile__inner)header-landing-mobile-nav-list: inner flex row (.c-header-landing-mobile__nav-list)header-landing-mobile-nav-item: inner flex row (.c-header-landing-mobile__nav-item)header-landing-mobile-group: inner flex row (.c-header-landing-mobile__group)header-landing-mobile-nav-link: link (.c-header-landing-mobile__nav-link)header-landing-mobile-nav-link-icon: icon placeholder, 88x22px (.c-header-landing-mobile__nav-link-icon)header-landing-mobile-nav-item-2: inner flex row (.c-header-landing-mobile__nav-item-2)header-landing-mobile-nav-list-2: inner flex row (.c-header-landing-mobile__nav-list-2)header-landing-mobile-nav-item-3: inner grid (.c-header-landing-mobile__nav-item-3, 2 instances)header-landing-mobile-nav-link-2: link, 6-character label (.c-header-landing-mobile__nav-link-2)header-landing-mobile-nav-link-3: link, 7-character label (.c-header-landing-mobile__nav-link-3)header-landing-mobile-nav-item-4: inner group (.c-header-landing-mobile__nav-item-4)header-landing-mobile-menu-toggle: button (.c-header-landing-mobile__menu-toggle)header-landing-mobile-menu-toggle-icon: icon placeholder, 16px (.c-header-landing-mobile__menu-toggle-icon)
Mobile recipe
HTML · CSS
<div class="c-header-landing-mobile-scope">
<header class="c-header-landing-mobile">
<nav class="c-header-landing-mobile__nav">
<div class="c-header-landing-mobile__inner">
<ul class="c-header-landing-mobile__nav-list">
<li class="c-header-landing-mobile__nav-item">
<div class="c-header-landing-mobile__group">
<a class="c-header-landing-mobile__nav-link" href="#">
<span class="c-header-landing-mobile__nav-link-icon" aria-hidden="true"></span>
</a>
</div>
</li>
<li class="c-header-landing-mobile__nav-item-2">
<ul class="c-header-landing-mobile__nav-list-2">
<li class="c-header-landing-mobile__nav-item-3">
<a class="c-header-landing-mobile__nav-link-2" href="#">lorem</a>
</li>
<li class="c-header-landing-mobile__nav-item-3">
<a class="c-header-landing-mobile__nav-link-3" href="#">lorem i</a>
</li>
</ul>
</li>
<li class="c-header-landing-mobile__nav-item-4">
<button class="c-header-landing-mobile__menu-toggle" type="button">
<span class="c-header-landing-mobile__menu-toggle-icon" aria-hidden="true"></span>
</button>
</li>
</ul>
</div>
</nav>
</header>
</div>
.c-header-landing-mobile-scope {
background-color: #08090A;
color: #F7F8F8;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
}
.c-header-landing-mobile {
display: block;
border-spacing: 0px;
box-sizing: border-box;
position: fixed;
top: 0px;
right: 0px;
left: 0px;
z-index: 100;
background-image: linear-gradient(#0B0B0BCC 0%, #0B0B0BC2 100%);
color: #F7F8F8;
backdrop-filter: blur(20px);
transform: matrix(1, 0, 0, 1, 0, 0);
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
border-bottom-width: 1px;
border-bottom-style: solid;
border-bottom-color: #FFFFFF14;
transition-duration: 0.1s;
transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
transition-property: border-color, background;
}
.c-header-landing-mobile::before {
content: "";
display: block;
box-sizing: border-box;
width: 390px;
height: 64px;
position: absolute;
top: 0px;
right: 0px;
bottom: 0px;
left: 0px;
z-index: -1;
background-image: linear-gradient(#08090A 0%, transparent 100%);
}
.c-header-landing-mobile__nav {
display: flex;
flex-direction: column;
align-items: center;
box-sizing: border-box;
height: 100%;
}
.c-header-landing-mobile__inner {
display: flex;
align-items: center;
box-sizing: border-box;
width: 100%;
height: 64px;
max-width: 1376px;
padding-right: 23px;
padding-left: 23px;
margin-right: auto;
margin-left: auto;
}
.c-header-landing-mobile__nav-list {
display: flex;
align-items: center;
gap: 16px;
box-sizing: border-box;
width: 100%;
min-height: 64px;
padding: 0px;
margin: 0px;
list-style-type: none;
}
.c-header-landing-mobile__nav-item {
display: flex;
flex-grow: 1;
flex-basis: 0%;
box-sizing: border-box;
white-space: nowrap;
}
.c-header-landing-mobile__group {
display: flex;
box-sizing: border-box;
}
.c-header-landing-mobile__nav-link {
display: flex;
align-items: center;
box-sizing: border-box;
height: 32px;
color: #F7F8F8;
border-radius: 6px;
cursor: pointer;
text-decoration-line: none;
padding-right: 8px;
padding-left: 8px;
margin-left: -8px;
}
.c-header-landing-mobile__nav-link-icon {
display: block;
flex-shrink: 0;
box-sizing: border-box;
width: 88px;
height: 22px;
overflow-x: hidden;
overflow-y: hidden;
background-color: currentcolor;
}
.c-header-landing-mobile__nav-item-2 {
display: flex;
align-items: center;
flex-shrink: 0;
box-sizing: border-box;
max-width: 620px;
}
.c-header-landing-mobile__nav-list-2 {
display: flex;
justify-content: flex-end;
align-items: center;
gap: 8px;
box-sizing: border-box;
padding: 0px;
margin: 0px;
list-style-type: none;
}
.c-header-landing-mobile__nav-item-3 {
display: grid;
justify-content: center;
align-items: center;
box-sizing: border-box;
white-space: nowrap;
}
.c-header-landing-mobile__nav-link-2 {
display: flex;
justify-content: center;
align-items: center;
box-sizing: border-box;
width: 100%;
height: 32px;
position: relative;
color: #8A8F98;
border-radius: 9999px;
cursor: pointer;
font-size: 13px;
line-height: 19.5px;
text-decoration-line: none;
padding-right: 12px;
padding-left: 12px;
transition-duration: 0.1s;
transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
transition-property: color, background;
}
.c-header-landing-mobile__nav-link-3 {
display: flex;
justify-content: center;
align-items: center;
flex-shrink: 0;
gap: 8px;
box-sizing: border-box;
width: 100%;
height: 32px;
max-width: 100%;
position: relative;
background-color: #E5E5E6;
color: #08090A;
border: 1px solid #E5E5E6;
border-radius: 9999px;
box-shadow: transparent 0px 8px 2px 0px, #00000003 0px 5px 2px 0px, #0000000A 0px 3px 2px 0px, #00000012 0px 1px 1px 0px, #00000014 0px 0px 1px 0px;
cursor: pointer;
font-size: 13px;
font-weight: 510;
line-height: 32px;
text-decoration-line: none;
padding-right: 12px;
padding-left: 12px;
transition-duration: 0.16s;
transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
transition-property: border, background-color, color, box-shadow, opacity, filter, transform;
}
.c-header-landing-mobile__nav-item-4 {
display: block;
box-sizing: border-box;
white-space: nowrap;
margin-left: -16px;
}
.c-header-landing-mobile__menu-toggle {
display: flex;
justify-content: center;
align-items: center;
box-sizing: border-box;
height: 64px;
aspect-ratio: 1 / 1;
padding: 0px;
background-color: transparent;
color: #F7F8F8;
border: 0;
cursor: pointer;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
letter-spacing: normal;
text-transform: none;
text-align: center;
margin-right: -28px;
}
.c-header-landing-mobile__menu-toggle-icon {
display: block;
flex-shrink: 0;
box-sizing: border-box;
width: 16px;
height: 16px;
overflow-x: hidden;
overflow-y: hidden;
background-color: currentcolor;
}
.c-header-landing-mobile__nav-link:focus {
outline: 1px solid #5E69D1;
outline-offset: 2px;
}
.c-header-landing-mobile__nav-link-2:hover {
background-color: #FFFFFF14;
color: #F7F8F8;
}
.c-header-landing-mobile__nav-link-2:focus {
outline: 1px solid #5E69D1;
outline-offset: 2px;
}
.c-header-landing-mobile__nav-link-3:hover {
background-color: #FFFFFF;
}
.c-header-landing-mobile__nav-link-3:focus {
outline: 1px solid #5E69D1;
outline-offset: 2px;
}
.c-header-landing-mobile__menu-toggle:focus {
outline: none;
}
States
header-landing-nav-linkfocus: outline 1px solid #5E69D1, outline-offset 2pxheader-landing-ctahover (header-landing-cta-hover): background-color #FFFFFF14, color #F7F8F8, ::before color #F7F8F8, ::after content "", ::after display block, ::after box-sizing border-box, ::after width 136px, ::after height 32px, ::after position absolute, ::after top 32px, ::after right -32px, ::after bottom -32px, ::after left -32pxheader-landing-ctafocus (header-landing-cta-focus): background-color #FFFFFF14, color #F7F8F8, outline 1px solid #5E69D1, outline-offset 2px, ::before color #F7F8F8, ::after content "", ::after display block, ::after box-sizing border-box, ::after width 136px, ::after height 32px, ::after position absolute, ::after top 32px, ::after right -32px, ::after bottom -32px, ::after left -32pxheader-landing-nav-link-2hover (header-landing-nav-link-2-hover): background-color #FFFFFF14, color #F7F8F8header-landing-nav-link-2focus: outline 1px solid #5E69D1, outline-offset 2pxheader-landing-nav-link-3hover (header-landing-nav-link-3-hover): background-color #FFFFFF14, color #F7F8F8header-landing-nav-link-3focus: outline 1px solid #5E69D1, outline-offset 2pxheader-landing-nav-link-4hover (header-landing-nav-link-4-hover): background-color #FFFFFFheader-landing-nav-link-4focus: outline 1px solid #5E69D1, outline-offset 2px- mobile,
header-landing-mobile-nav-linkfocus: outline 1px solid #5E69D1, outline-offset 2px - mobile,
header-landing-mobile-nav-link-2hover (header-landing-mobile-nav-link-2-hover): background-color #FFFFFF14, color #F7F8F8 - mobile,
header-landing-mobile-nav-link-2focus: outline 1px solid #5E69D1, outline-offset 2px - mobile,
header-landing-mobile-nav-link-3hover (header-landing-mobile-nav-link-3-hover): background-color #FFFFFF - mobile,
header-landing-mobile-nav-link-3focus: outline 1px solid #5E69D1, outline-offset 2px - mobile,
header-landing-mobile-menu-togglefocus: outline none
Header (inner)
Verification: desktop verified against the live page at desktop; mobile verified against the live page at mobile.
Variant observed on https://linear.app/pricing.
Anatomy
header-inner: the component root, a<header>(.c-header-inner)header-inner-nav: inner flex row (.c-header-inner__nav)header-inner-inner: inner flex row (.c-header-inner__inner)header-inner-nav-list: inner flex row (.c-header-inner__nav-list)header-inner-nav-item: inner flex row (.c-header-inner__nav-item)header-inner-group: inner flex row (.c-header-inner__group)header-inner-nav-link: link (.c-header-inner__nav-link)header-inner-nav-link-icon: icon placeholder, 88x22px (.c-header-inner__nav-link-icon)header-inner-nav-item-2: inner flex row (.c-header-inner__nav-item-2)header-inner-nav-list-2: inner flex row (.c-header-inner__nav-list-2)header-inner-nav-item-3: inner grid (.c-header-inner__nav-item-3, 6 instances)header-inner-cta: thebutton-ghostbutton, 7-character label (.c-header-inner__cta, 2 instances)header-inner-nav-link-2: link, 9-character label (.c-header-inner__nav-link-2, 3 instances)header-inner-nav-link-3: link, 7-character label (.c-header-inner__nav-link-3)header-inner-group-2: inner block (.c-header-inner__group-2, 2 instances)header-inner-group-3: inner block (.c-header-inner__group-3)header-inner-nav-list-3: inner flex row (.c-header-inner__nav-list-3)header-inner-nav-item-4: inner grid (.c-header-inner__nav-item-4, 2 instances)header-inner-nav-link-4: link, 6-character label (.c-header-inner__nav-link-4)header-inner-nav-link-5: link, 7-character label (.c-header-inner__nav-link-5)
Desktop recipe
HTML · CSS
<div class="c-header-inner-scope">
<header class="c-header-inner">
<nav class="c-header-inner__nav">
<div class="c-header-inner__inner">
<ul class="c-header-inner__nav-list">
<li class="c-header-inner__nav-item">
<div class="c-header-inner__group">
<a class="c-header-inner__nav-link" href="#">
<span class="c-header-inner__nav-link-icon" aria-hidden="true"></span>
</a>
</div>
</li>
<li class="c-header-inner__nav-item-2">
<ul class="c-header-inner__nav-list-2">
<li class="c-header-inner__nav-item-3">
<button class="c-header-inner__cta" type="button">lorem i</button>
</li>
<li class="c-header-inner__nav-item-3">
<button class="c-header-inner__cta" type="button">lorem ips</button>
</li>
<li class="c-header-inner__nav-item-3">
<a class="c-header-inner__nav-link-2" href="#">lorem ips</a>
</li>
<li class="c-header-inner__nav-item-3">
<a class="c-header-inner__nav-link-3" href="#">lorem i</a>
</li>
<li class="c-header-inner__nav-item-3">
<a class="c-header-inner__nav-link-2" href="#">lor</a>
</li>
<li class="c-header-inner__nav-item-3">
<a class="c-header-inner__nav-link-2" href="#">lorem i</a>
</li>
</ul>
<div class="c-header-inner__group-2"></div>
<div class="c-header-inner__group-3"></div>
<div class="c-header-inner__group-2"></div>
<ul class="c-header-inner__nav-list-3">
<li class="c-header-inner__nav-item-4">
<a class="c-header-inner__nav-link-4" href="#">lorem</a>
</li>
<li class="c-header-inner__nav-item-4">
<a class="c-header-inner__nav-link-5" href="#">lorem i</a>
</li>
</ul>
</li>
</ul>
</div>
</nav>
</header>
</div>
.c-header-inner-scope {
background-color: #08090A;
color: #F7F8F8;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
}
.c-header-inner {
display: block;
border-spacing: 0px;
box-sizing: border-box;
position: fixed;
top: 0px;
right: 0px;
left: 0px;
z-index: 100;
background-image: linear-gradient(#0B0B0BCC 0%, #0B0B0BC2 100%);
color: #F7F8F8;
backdrop-filter: blur(20px);
transform: matrix(1, 0, 0, 1, 0, 0);
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
border-bottom-width: 1px;
border-bottom-style: solid;
border-bottom-color: #FFFFFF14;
transition-duration: 0.1s;
transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
transition-property: border-color, background;
}
.c-header-inner::before {
content: "";
display: block;
box-sizing: border-box;
width: 1440px;
height: 72px;
position: absolute;
top: 0px;
right: 0px;
bottom: 0px;
left: 0px;
z-index: -1;
background-image: linear-gradient(#08090A 0%, transparent 100%);
}
.c-header-inner__nav {
display: flex;
align-items: center;
box-sizing: border-box;
height: 100%;
}
.c-header-inner__inner {
display: flex;
align-items: center;
box-sizing: border-box;
width: 100%;
height: 72px;
max-width: 1436px;
padding-right: 77px;
padding-left: 77px;
margin-right: auto;
margin-left: auto;
}
.c-header-inner__nav-list {
display: flex;
align-items: center;
gap: 8px;
box-sizing: border-box;
width: 100%;
min-height: 72px;
padding: 0px;
margin: 0px;
list-style-type: none;
}
.c-header-inner__nav-item {
display: flex;
flex-grow: 1;
flex-basis: 0%;
box-sizing: border-box;
white-space: nowrap;
}
.c-header-inner__group {
display: flex;
box-sizing: border-box;
}
.c-header-inner__nav-link {
display: flex;
align-items: center;
box-sizing: border-box;
height: 32px;
color: #F7F8F8;
border-radius: 6px;
cursor: pointer;
text-decoration-line: none;
padding-right: 8px;
padding-left: 8px;
margin-left: -8px;
}
.c-header-inner__nav-link-icon {
display: block;
flex-shrink: 0;
box-sizing: border-box;
width: 88px;
height: 22px;
overflow-x: hidden;
overflow-y: hidden;
background-color: currentcolor;
}
.c-header-inner__nav-item-2 {
display: flex;
align-items: center;
flex-shrink: 0;
box-sizing: border-box;
width: 100%;
max-width: 620px;
}
.c-header-inner__nav-list-2 {
display: flex;
align-items: center;
box-sizing: border-box;
padding: 0px;
margin: 0px;
list-style-type: none;
}
.c-header-inner__nav-item-3 {
display: grid;
box-sizing: border-box;
white-space: nowrap;
}
.c-header-inner__cta {
display: flex;
justify-content: center;
align-items: center;
box-sizing: border-box;
height: 32px;
padding: 0px 12px;
position: relative;
background-color: transparent;
color: #8A8F98;
border: 0;
border-radius: 9999px;
cursor: pointer;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 13px;
font-weight: 400;
line-height: 19.5px;
letter-spacing: normal;
text-transform: none;
text-align: center;
transition-duration: 0.1s;
transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
transition-property: color, background;
}
.c-header-inner__cta::before {
content: "";
display: block;
box-sizing: border-box;
width: 88px;
height: 32px;
position: absolute;
top: 0px;
right: -8px;
bottom: 0px;
left: -8px;
z-index: 0;
}
.c-header-inner__nav-link-2 {
display: flex;
justify-content: center;
align-items: center;
box-sizing: border-box;
height: 32px;
position: relative;
color: #8A8F98;
border-radius: 9999px;
cursor: pointer;
font-size: 13px;
line-height: 19.5px;
text-decoration-line: none;
padding-right: 12px;
padding-left: 12px;
transition-duration: 0.1s;
transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
transition-property: color, background;
}
.c-header-inner__nav-link-3 {
display: flex;
justify-content: center;
align-items: center;
box-sizing: border-box;
height: 32px;
position: relative;
color: #F7F8F8;
border-radius: 9999px;
cursor: pointer;
font-size: 13px;
line-height: 19.5px;
text-decoration-line: none;
padding-right: 12px;
padding-left: 12px;
transition-duration: 0.1s;
transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
transition-property: color, background;
}
.c-header-inner__group-2 {
display: block;
flex-grow: 1;
flex-basis: 0%;
box-sizing: border-box;
}
.c-header-inner__group-3 {
display: block;
box-sizing: border-box;
width: 1px;
height: 16px;
background-color: #23252A;
margin-right: 8px;
margin-left: 8px;
}
.c-header-inner__nav-list-3 {
display: flex;
justify-content: flex-end;
align-items: center;
gap: 8px;
box-sizing: border-box;
padding: 0px;
margin: 0px;
list-style-type: none;
}
.c-header-inner__nav-item-4 {
display: grid;
justify-content: center;
align-items: center;
box-sizing: border-box;
white-space: nowrap;
}
.c-header-inner__nav-link-4 {
display: flex;
justify-content: center;
align-items: center;
box-sizing: border-box;
width: 100%;
height: 32px;
position: relative;
color: #8A8F98;
border-radius: 9999px;
cursor: pointer;
font-size: 13px;
line-height: 19.5px;
text-decoration-line: none;
padding-right: 12px;
padding-left: 12px;
transition-duration: 0.1s;
transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
transition-property: color, background;
}
.c-header-inner__nav-link-5 {
display: flex;
justify-content: center;
align-items: center;
flex-shrink: 0;
gap: 8px;
box-sizing: border-box;
width: 100%;
height: 32px;
max-width: 100%;
position: relative;
background-color: #E5E5E6;
color: #08090A;
border: 1px solid #E5E5E6;
border-radius: 9999px;
box-shadow: transparent 0px 8px 2px 0px, #00000003 0px 5px 2px 0px, #0000000A 0px 3px 2px 0px, #00000012 0px 1px 1px 0px, #00000014 0px 0px 1px 0px;
cursor: pointer;
font-size: 13px;
font-weight: 510;
line-height: 32px;
text-decoration-line: none;
padding-right: 12px;
padding-left: 12px;
transition-duration: 0.16s;
transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
transition-property: border, background-color, color, box-shadow, opacity, filter, transform;
}
.c-header-inner__nav-link:focus {
outline: 1px solid #5E69D1;
outline-offset: 2px;
}
.c-header-inner__cta:hover {
background-color: #FFFFFF14;
color: #F7F8F8;
}
.c-header-inner__cta:hover::before {
color: #F7F8F8;
}
.c-header-inner__cta:hover::after {
content: "";
display: block;
box-sizing: border-box;
width: 136px;
height: 32px;
position: absolute;
top: 32px;
right: -32px;
bottom: -32px;
left: -32px;
}
.c-header-inner__cta:focus {
background-color: #FFFFFF14;
color: #F7F8F8;
outline: 1px solid #5E69D1;
outline-offset: 2px;
}
.c-header-inner__cta:focus::before {
color: #F7F8F8;
}
.c-header-inner__cta:focus::after {
content: "";
display: block;
box-sizing: border-box;
width: 136px;
height: 32px;
position: absolute;
top: 32px;
right: -32px;
bottom: -32px;
left: -32px;
}
.c-header-inner__nav-link-2:hover {
background-color: #FFFFFF14;
color: #F7F8F8;
}
.c-header-inner__nav-link-2:focus {
outline: 1px solid #5E69D1;
outline-offset: 2px;
}
.c-header-inner__nav-link-3:hover {
background-color: #FFFFFF14;
}
.c-header-inner__nav-link-3:focus {
outline: 1px solid #5E69D1;
outline-offset: 2px;
}
.c-header-inner__nav-link-4:hover {
background-color: #FFFFFF14;
color: #F7F8F8;
}
.c-header-inner__nav-link-4:focus {
outline: 1px solid #5E69D1;
outline-offset: 2px;
}
.c-header-inner__nav-link-5:hover {
background-color: #FFFFFF;
}
.c-header-inner__nav-link-5:focus {
outline: 1px solid #5E69D1;
outline-offset: 2px;
}
Mobile anatomy
header-inner-mobile: the component root, a<header>(.c-header-inner-mobile)header-inner-mobile-nav: inner flex column (.c-header-inner-mobile__nav)header-inner-mobile-inner: inner flex row (.c-header-inner-mobile__inner)header-inner-mobile-nav-list: inner flex row (.c-header-inner-mobile__nav-list)header-inner-mobile-nav-item: inner flex row (.c-header-inner-mobile__nav-item)header-inner-mobile-group: inner flex row (.c-header-inner-mobile__group)header-inner-mobile-nav-link: link (.c-header-inner-mobile__nav-link)header-inner-mobile-nav-link-icon: icon placeholder, 88x22px (.c-header-inner-mobile__nav-link-icon)header-inner-mobile-nav-item-2: inner flex row (.c-header-inner-mobile__nav-item-2)header-inner-mobile-nav-list-2: inner flex row (.c-header-inner-mobile__nav-list-2)header-inner-mobile-nav-item-3: inner grid (.c-header-inner-mobile__nav-item-3, 2 instances)header-inner-mobile-nav-link-2: link, 6-character label (.c-header-inner-mobile__nav-link-2)header-inner-mobile-nav-link-3: link, 7-character label (.c-header-inner-mobile__nav-link-3)header-inner-mobile-nav-item-4: inner group (.c-header-inner-mobile__nav-item-4)header-inner-mobile-menu-toggle: button (.c-header-inner-mobile__menu-toggle)header-inner-mobile-menu-toggle-icon: icon placeholder, 16px (.c-header-inner-mobile__menu-toggle-icon)
Mobile recipe
HTML · CSS
<div class="c-header-inner-mobile-scope">
<header class="c-header-inner-mobile">
<nav class="c-header-inner-mobile__nav">
<div class="c-header-inner-mobile__inner">
<ul class="c-header-inner-mobile__nav-list">
<li class="c-header-inner-mobile__nav-item">
<div class="c-header-inner-mobile__group">
<a class="c-header-inner-mobile__nav-link" href="#">
<span class="c-header-inner-mobile__nav-link-icon" aria-hidden="true"></span>
</a>
</div>
</li>
<li class="c-header-inner-mobile__nav-item-2">
<ul class="c-header-inner-mobile__nav-list-2">
<li class="c-header-inner-mobile__nav-item-3">
<a class="c-header-inner-mobile__nav-link-2" href="#">lorem</a>
</li>
<li class="c-header-inner-mobile__nav-item-3">
<a class="c-header-inner-mobile__nav-link-3" href="#">lorem i</a>
</li>
</ul>
</li>
<li class="c-header-inner-mobile__nav-item-4">
<button class="c-header-inner-mobile__menu-toggle" type="button">
<span class="c-header-inner-mobile__menu-toggle-icon" aria-hidden="true"></span>
</button>
</li>
</ul>
</div>
</nav>
</header>
</div>
.c-header-inner-mobile-scope {
background-color: #08090A;
color: #F7F8F8;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
}
.c-header-inner-mobile {
display: block;
border-spacing: 0px;
box-sizing: border-box;
position: fixed;
top: 0px;
right: 0px;
left: 0px;
z-index: 100;
background-image: linear-gradient(#0B0B0BCC 0%, #0B0B0BC2 100%);
color: #F7F8F8;
backdrop-filter: blur(20px);
transform: matrix(1, 0, 0, 1, 0, 0);
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
border-bottom-width: 1px;
border-bottom-style: solid;
border-bottom-color: #FFFFFF14;
transition-duration: 0.1s;
transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
transition-property: border-color, background;
}
.c-header-inner-mobile::before {
content: "";
display: block;
box-sizing: border-box;
width: 390px;
height: 64px;
position: absolute;
top: 0px;
right: 0px;
bottom: 0px;
left: 0px;
z-index: -1;
background-image: linear-gradient(#08090A 0%, transparent 100%);
}
.c-header-inner-mobile__nav {
display: flex;
flex-direction: column;
align-items: center;
box-sizing: border-box;
height: 100%;
}
.c-header-inner-mobile__inner {
display: flex;
align-items: center;
box-sizing: border-box;
width: 100%;
height: 64px;
max-width: 1376px;
padding-right: 23px;
padding-left: 23px;
margin-right: auto;
margin-left: auto;
}
.c-header-inner-mobile__nav-list {
display: flex;
align-items: center;
gap: 16px;
box-sizing: border-box;
width: 100%;
min-height: 64px;
padding: 0px;
margin: 0px;
list-style-type: none;
}
.c-header-inner-mobile__nav-item {
display: flex;
flex-grow: 1;
flex-basis: 0%;
box-sizing: border-box;
white-space: nowrap;
}
.c-header-inner-mobile__group {
display: flex;
box-sizing: border-box;
}
.c-header-inner-mobile__nav-link {
display: flex;
align-items: center;
box-sizing: border-box;
height: 32px;
color: #F7F8F8;
border-radius: 6px;
cursor: pointer;
text-decoration-line: none;
padding-right: 8px;
padding-left: 8px;
margin-left: -8px;
}
.c-header-inner-mobile__nav-link-icon {
display: block;
flex-shrink: 0;
box-sizing: border-box;
width: 88px;
height: 22px;
overflow-x: hidden;
overflow-y: hidden;
background-color: currentcolor;
}
.c-header-inner-mobile__nav-item-2 {
display: flex;
align-items: center;
flex-shrink: 0;
box-sizing: border-box;
max-width: 620px;
}
.c-header-inner-mobile__nav-list-2 {
display: flex;
justify-content: flex-end;
align-items: center;
gap: 8px;
box-sizing: border-box;
padding: 0px;
margin: 0px;
list-style-type: none;
}
.c-header-inner-mobile__nav-item-3 {
display: grid;
justify-content: center;
align-items: center;
box-sizing: border-box;
white-space: nowrap;
}
.c-header-inner-mobile__nav-link-2 {
display: flex;
justify-content: center;
align-items: center;
box-sizing: border-box;
width: 100%;
height: 32px;
position: relative;
color: #8A8F98;
border-radius: 9999px;
cursor: pointer;
font-size: 13px;
line-height: 19.5px;
text-decoration-line: none;
padding-right: 12px;
padding-left: 12px;
transition-duration: 0.1s;
transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
transition-property: color, background;
}
.c-header-inner-mobile__nav-link-3 {
display: flex;
justify-content: center;
align-items: center;
flex-shrink: 0;
gap: 8px;
box-sizing: border-box;
width: 100%;
height: 32px;
max-width: 100%;
position: relative;
background-color: #E5E5E6;
color: #08090A;
border: 1px solid #E5E5E6;
border-radius: 9999px;
box-shadow: transparent 0px 8px 2px 0px, #00000003 0px 5px 2px 0px, #0000000A 0px 3px 2px 0px, #00000012 0px 1px 1px 0px, #00000014 0px 0px 1px 0px;
cursor: pointer;
font-size: 13px;
font-weight: 510;
line-height: 32px;
text-decoration-line: none;
padding-right: 12px;
padding-left: 12px;
transition-duration: 0.16s;
transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
transition-property: border, background-color, color, box-shadow, opacity, filter, transform;
}
.c-header-inner-mobile__nav-item-4 {
display: block;
box-sizing: border-box;
white-space: nowrap;
margin-left: -16px;
}
.c-header-inner-mobile__menu-toggle {
display: flex;
justify-content: center;
align-items: center;
box-sizing: border-box;
height: 64px;
aspect-ratio: 1 / 1;
padding: 0px;
background-color: transparent;
color: #F7F8F8;
border: 0;
cursor: pointer;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
letter-spacing: normal;
text-transform: none;
text-align: center;
margin-right: -28px;
}
.c-header-inner-mobile__menu-toggle-icon {
display: block;
flex-shrink: 0;
box-sizing: border-box;
width: 16px;
height: 16px;
overflow-x: hidden;
overflow-y: hidden;
background-color: currentcolor;
}
.c-header-inner-mobile__nav-link:focus {
outline: 1px solid #5E69D1;
outline-offset: 2px;
}
.c-header-inner-mobile__nav-link-2:hover {
background-color: #FFFFFF14;
color: #F7F8F8;
}
.c-header-inner-mobile__nav-link-2:focus {
outline: 1px solid #5E69D1;
outline-offset: 2px;
}
.c-header-inner-mobile__nav-link-3:hover {
background-color: #FFFFFF;
}
.c-header-inner-mobile__nav-link-3:focus {
outline: 1px solid #5E69D1;
outline-offset: 2px;
}
.c-header-inner-mobile__menu-toggle:focus {
outline: none;
}
States
header-inner-nav-linkfocus: outline 1px solid #5E69D1, outline-offset 2pxheader-inner-ctahover (header-inner-cta-hover): background-color #FFFFFF14, color #F7F8F8, ::before color #F7F8F8, ::after content "", ::after display block, ::after box-sizing border-box, ::after width 136px, ::after height 32px, ::after position absolute, ::after top 32px, ::after right -32px, ::after bottom -32px, ::after left -32pxheader-inner-ctafocus (header-inner-cta-focus): background-color #FFFFFF14, color #F7F8F8, outline 1px solid #5E69D1, outline-offset 2px, ::before color #F7F8F8, ::after content "", ::after display block, ::after box-sizing border-box, ::after width 136px, ::after height 32px, ::after position absolute, ::after top 32px, ::after right -32px, ::after bottom -32px, ::after left -32pxheader-inner-nav-link-2hover (header-inner-nav-link-2-hover): background-color #FFFFFF14, color #F7F8F8header-inner-nav-link-2focus: outline 1px solid #5E69D1, outline-offset 2pxheader-inner-nav-link-3hover (header-inner-nav-link-3-hover): background-color #FFFFFF14header-inner-nav-link-3focus: outline 1px solid #5E69D1, outline-offset 2pxheader-inner-nav-link-4hover (header-inner-nav-link-4-hover): background-color #FFFFFF14, color #F7F8F8header-inner-nav-link-4focus: outline 1px solid #5E69D1, outline-offset 2pxheader-inner-nav-link-5hover (header-inner-nav-link-5-hover): background-color #FFFFFFheader-inner-nav-link-5focus: outline 1px solid #5E69D1, outline-offset 2px- mobile,
header-inner-mobile-nav-linkfocus: outline 1px solid #5E69D1, outline-offset 2px - mobile,
header-inner-mobile-nav-link-2hover (header-inner-mobile-nav-link-2-hover): background-color #FFFFFF14, color #F7F8F8 - mobile,
header-inner-mobile-nav-link-2focus: outline 1px solid #5E69D1, outline-offset 2px - mobile,
header-inner-mobile-nav-link-3hover (header-inner-mobile-nav-link-3-hover): background-color #FFFFFF - mobile,
header-inner-mobile-nav-link-3focus: outline 1px solid #5E69D1, outline-offset 2px - mobile,
header-inner-mobile-menu-togglefocus: outline none
Header (inner, 2)
Verification: desktop verified against the live page at desktop; mobile verified against the live page at mobile.
Variant observed on https://linear.app/customers.
Anatomy
header-inner-2: the component root, a<header>(.c-header-inner-2)header-inner-2-nav: inner flex row (.c-header-inner-2__nav)header-inner-2-inner: inner flex row (.c-header-inner-2__inner)header-inner-2-nav-list: inner flex row (.c-header-inner-2__nav-list)header-inner-2-nav-item: inner flex row (.c-header-inner-2__nav-item)header-inner-2-group: inner flex row (.c-header-inner-2__group)header-inner-2-nav-link: link (.c-header-inner-2__nav-link)header-inner-2-nav-link-icon: icon placeholder, 88x22px (.c-header-inner-2__nav-link-icon)header-inner-2-nav-item-2: inner flex row (.c-header-inner-2__nav-item-2)header-inner-2-nav-list-2: inner flex row (.c-header-inner-2__nav-list-2)header-inner-2-nav-item-3: inner grid (.c-header-inner-2__nav-item-3, 6 instances)header-inner-2-cta: thebutton-ghostbutton, 7-character label (.c-header-inner-2__cta, 2 instances)header-inner-2-nav-link-2: link, 9-character label (.c-header-inner-2__nav-link-2)header-inner-2-nav-link-3: link, 7-character label (.c-header-inner-2__nav-link-3, 3 instances)header-inner-2-group-2: inner block (.c-header-inner-2__group-2, 2 instances)header-inner-2-group-3: inner block (.c-header-inner-2__group-3)header-inner-2-nav-list-3: inner flex row (.c-header-inner-2__nav-list-3)header-inner-2-nav-item-4: inner grid (.c-header-inner-2__nav-item-4, 2 instances)header-inner-2-nav-link-4: link, 6-character label (.c-header-inner-2__nav-link-4)header-inner-2-nav-link-5: link, 7-character label (.c-header-inner-2__nav-link-5)
Desktop recipe
HTML · CSS
<div class="c-header-inner-2-scope">
<header class="c-header-inner-2">
<nav class="c-header-inner-2__nav">
<div class="c-header-inner-2__inner">
<ul class="c-header-inner-2__nav-list">
<li class="c-header-inner-2__nav-item">
<div class="c-header-inner-2__group">
<a class="c-header-inner-2__nav-link" href="#">
<span class="c-header-inner-2__nav-link-icon" aria-hidden="true"></span>
</a>
</div>
</li>
<li class="c-header-inner-2__nav-item-2">
<ul class="c-header-inner-2__nav-list-2">
<li class="c-header-inner-2__nav-item-3">
<button class="c-header-inner-2__cta" type="button">lorem i</button>
</li>
<li class="c-header-inner-2__nav-item-3">
<button class="c-header-inner-2__cta" type="button">lorem ips</button>
</li>
<li class="c-header-inner-2__nav-item-3">
<a class="c-header-inner-2__nav-link-2" href="#">lorem ips</a>
</li>
<li class="c-header-inner-2__nav-item-3">
<a class="c-header-inner-2__nav-link-3" href="#">lorem i</a>
</li>
<li class="c-header-inner-2__nav-item-3">
<a class="c-header-inner-2__nav-link-3" href="#">lor</a>
</li>
<li class="c-header-inner-2__nav-item-3">
<a class="c-header-inner-2__nav-link-3" href="#">lorem i</a>
</li>
</ul>
<div class="c-header-inner-2__group-2"></div>
<div class="c-header-inner-2__group-3"></div>
<div class="c-header-inner-2__group-2"></div>
<ul class="c-header-inner-2__nav-list-3">
<li class="c-header-inner-2__nav-item-4">
<a class="c-header-inner-2__nav-link-4" href="#">lorem</a>
</li>
<li class="c-header-inner-2__nav-item-4">
<a class="c-header-inner-2__nav-link-5" href="#">lorem i</a>
</li>
</ul>
</li>
</ul>
</div>
</nav>
</header>
</div>
.c-header-inner-2-scope {
background-color: #08090A;
color: #F7F8F8;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
}
.c-header-inner-2 {
display: block;
border-spacing: 0px;
box-sizing: border-box;
position: fixed;
top: 0px;
right: 0px;
left: 0px;
z-index: 100;
background-image: linear-gradient(#0B0B0BCC 0%, #0B0B0BC2 100%);
color: #F7F8F8;
backdrop-filter: blur(20px);
transform: matrix(1, 0, 0, 1, 0, 0);
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
border-bottom-width: 1px;
border-bottom-style: solid;
border-bottom-color: #FFFFFF14;
transition-duration: 0.1s;
transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
transition-property: border-color, background;
}
.c-header-inner-2::before {
content: "";
display: block;
box-sizing: border-box;
width: 1440px;
height: 72px;
position: absolute;
top: 0px;
right: 0px;
bottom: 0px;
left: 0px;
z-index: -1;
background-image: linear-gradient(#08090A 0%, transparent 100%);
}
.c-header-inner-2__nav {
display: flex;
align-items: center;
box-sizing: border-box;
height: 100%;
}
.c-header-inner-2__inner {
display: flex;
align-items: center;
box-sizing: border-box;
width: 100%;
height: 72px;
max-width: 1436px;
padding-right: 77px;
padding-left: 77px;
margin-right: auto;
margin-left: auto;
}
.c-header-inner-2__nav-list {
display: flex;
align-items: center;
gap: 8px;
box-sizing: border-box;
width: 100%;
min-height: 72px;
padding: 0px;
margin: 0px;
list-style-type: none;
}
.c-header-inner-2__nav-item {
display: flex;
flex-grow: 1;
flex-basis: 0%;
box-sizing: border-box;
white-space: nowrap;
}
.c-header-inner-2__group {
display: flex;
box-sizing: border-box;
}
.c-header-inner-2__nav-link {
display: flex;
align-items: center;
box-sizing: border-box;
height: 32px;
color: #F7F8F8;
border-radius: 6px;
cursor: pointer;
text-decoration-line: none;
padding-right: 8px;
padding-left: 8px;
margin-left: -8px;
}
.c-header-inner-2__nav-link-icon {
display: block;
flex-shrink: 0;
box-sizing: border-box;
width: 88px;
height: 22px;
overflow-x: hidden;
overflow-y: hidden;
background-color: currentcolor;
}
.c-header-inner-2__nav-item-2 {
display: flex;
align-items: center;
flex-shrink: 0;
box-sizing: border-box;
width: 100%;
max-width: 620px;
}
.c-header-inner-2__nav-list-2 {
display: flex;
align-items: center;
box-sizing: border-box;
padding: 0px;
margin: 0px;
list-style-type: none;
}
.c-header-inner-2__nav-item-3 {
display: grid;
box-sizing: border-box;
white-space: nowrap;
}
.c-header-inner-2__cta {
display: flex;
justify-content: center;
align-items: center;
box-sizing: border-box;
height: 32px;
padding: 0px 12px;
position: relative;
background-color: transparent;
color: #8A8F98;
border: 0;
border-radius: 9999px;
cursor: pointer;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 13px;
font-weight: 400;
line-height: 19.5px;
letter-spacing: normal;
text-transform: none;
text-align: center;
transition-duration: 0.1s;
transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
transition-property: color, background;
}
.c-header-inner-2__cta::before {
content: "";
display: block;
box-sizing: border-box;
width: 88px;
height: 32px;
position: absolute;
top: 0px;
right: -8px;
bottom: 0px;
left: -8px;
z-index: 0;
}
.c-header-inner-2__nav-link-2 {
display: flex;
justify-content: center;
align-items: center;
box-sizing: border-box;
height: 32px;
position: relative;
color: #F7F8F8;
border-radius: 9999px;
cursor: pointer;
font-size: 13px;
line-height: 19.5px;
text-decoration-line: none;
padding-right: 12px;
padding-left: 12px;
transition-duration: 0.1s;
transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
transition-property: color, background;
}
.c-header-inner-2__nav-link-3 {
display: flex;
justify-content: center;
align-items: center;
box-sizing: border-box;
height: 32px;
position: relative;
color: #8A8F98;
border-radius: 9999px;
cursor: pointer;
font-size: 13px;
line-height: 19.5px;
text-decoration-line: none;
padding-right: 12px;
padding-left: 12px;
transition-duration: 0.1s;
transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
transition-property: color, background;
}
.c-header-inner-2__group-2 {
display: block;
flex-grow: 1;
flex-basis: 0%;
box-sizing: border-box;
}
.c-header-inner-2__group-3 {
display: block;
box-sizing: border-box;
width: 1px;
height: 16px;
background-color: #23252A;
margin-right: 8px;
margin-left: 8px;
}
.c-header-inner-2__nav-list-3 {
display: flex;
justify-content: flex-end;
align-items: center;
gap: 8px;
box-sizing: border-box;
padding: 0px;
margin: 0px;
list-style-type: none;
}
.c-header-inner-2__nav-item-4 {
display: grid;
justify-content: center;
align-items: center;
box-sizing: border-box;
white-space: nowrap;
}
.c-header-inner-2__nav-link-4 {
display: flex;
justify-content: center;
align-items: center;
box-sizing: border-box;
width: 100%;
height: 32px;
position: relative;
color: #8A8F98;
border-radius: 9999px;
cursor: pointer;
font-size: 13px;
line-height: 19.5px;
text-decoration-line: none;
padding-right: 12px;
padding-left: 12px;
transition-duration: 0.1s;
transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
transition-property: color, background;
}
.c-header-inner-2__nav-link-5 {
display: flex;
justify-content: center;
align-items: center;
flex-shrink: 0;
gap: 8px;
box-sizing: border-box;
width: 100%;
height: 32px;
max-width: 100%;
position: relative;
background-color: #E5E5E6;
color: #08090A;
border: 1px solid #E5E5E6;
border-radius: 9999px;
box-shadow: transparent 0px 8px 2px 0px, #00000003 0px 5px 2px 0px, #0000000A 0px 3px 2px 0px, #00000012 0px 1px 1px 0px, #00000014 0px 0px 1px 0px;
cursor: pointer;
font-size: 13px;
font-weight: 510;
line-height: 32px;
text-decoration-line: none;
padding-right: 12px;
padding-left: 12px;
transition-duration: 0.16s;
transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
transition-property: border, background-color, color, box-shadow, opacity, filter, transform;
}
.c-header-inner-2__nav-link:focus {
outline: 1px solid #5E69D1;
outline-offset: 2px;
}
.c-header-inner-2__cta:hover {
background-color: #FFFFFF14;
color: #F7F8F8;
}
.c-header-inner-2__cta:hover::before {
color: #F7F8F8;
}
.c-header-inner-2__cta:hover::after {
content: "";
display: block;
box-sizing: border-box;
width: 136px;
height: 32px;
position: absolute;
top: 32px;
right: -32px;
bottom: -32px;
left: -32px;
}
.c-header-inner-2__cta:focus {
background-color: #FFFFFF14;
color: #F7F8F8;
outline: 1px solid #5E69D1;
outline-offset: 2px;
}
.c-header-inner-2__cta:focus::before {
color: #F7F8F8;
}
.c-header-inner-2__cta:focus::after {
content: "";
display: block;
box-sizing: border-box;
width: 136px;
height: 32px;
position: absolute;
top: 32px;
right: -32px;
bottom: -32px;
left: -32px;
}
.c-header-inner-2__nav-link-2:hover {
background-color: #FFFFFF14;
}
.c-header-inner-2__nav-link-2:focus {
outline: 1px solid #5E69D1;
outline-offset: 2px;
}
.c-header-inner-2__nav-link-3:hover {
background-color: #FFFFFF14;
color: #F7F8F8;
}
.c-header-inner-2__nav-link-3:focus {
outline: 1px solid #5E69D1;
outline-offset: 2px;
}
.c-header-inner-2__nav-link-4:hover {
background-color: #FFFFFF14;
color: #F7F8F8;
}
.c-header-inner-2__nav-link-4:focus {
outline: 1px solid #5E69D1;
outline-offset: 2px;
}
.c-header-inner-2__nav-link-5:hover {
background-color: #FFFFFF;
}
.c-header-inner-2__nav-link-5:focus {
outline: 1px solid #5E69D1;
outline-offset: 2px;
}
Mobile anatomy
header-inner-2-mobile: the component root, a<header>(.c-header-inner-2-mobile)header-inner-2-mobile-nav: inner flex column (.c-header-inner-2-mobile__nav)header-inner-2-mobile-inner: inner flex row (.c-header-inner-2-mobile__inner)header-inner-2-mobile-nav-list: inner flex row (.c-header-inner-2-mobile__nav-list)header-inner-2-mobile-nav-item: inner flex row (.c-header-inner-2-mobile__nav-item)header-inner-2-mobile-group: inner flex row (.c-header-inner-2-mobile__group)header-inner-2-mobile-nav-link: link (.c-header-inner-2-mobile__nav-link)header-inner-2-mobile-nav-link-icon: icon placeholder, 88x22px (.c-header-inner-2-mobile__nav-link-icon)header-inner-2-mobile-nav-item-2: inner flex row (.c-header-inner-2-mobile__nav-item-2)header-inner-2-mobile-nav-list-2: inner flex row (.c-header-inner-2-mobile__nav-list-2)header-inner-2-mobile-nav-item-3: inner grid (.c-header-inner-2-mobile__nav-item-3, 2 instances)header-inner-2-mobile-nav-link-2: link, 6-character label (.c-header-inner-2-mobile__nav-link-2)header-inner-2-mobile-nav-link-3: link, 7-character label (.c-header-inner-2-mobile__nav-link-3)header-inner-2-mobile-nav-item-4: inner group (.c-header-inner-2-mobile__nav-item-4)header-inner-2-mobile-menu-toggle: button (.c-header-inner-2-mobile__menu-toggle)header-inner-2-mobile-menu-toggle-icon: icon placeholder, 16px (.c-header-inner-2-mobile__menu-toggle-icon)
Mobile recipe
HTML · CSS
<div class="c-header-inner-2-mobile-scope">
<header class="c-header-inner-2-mobile">
<nav class="c-header-inner-2-mobile__nav">
<div class="c-header-inner-2-mobile__inner">
<ul class="c-header-inner-2-mobile__nav-list">
<li class="c-header-inner-2-mobile__nav-item">
<div class="c-header-inner-2-mobile__group">
<a class="c-header-inner-2-mobile__nav-link" href="#">
<span class="c-header-inner-2-mobile__nav-link-icon" aria-hidden="true"></span>
</a>
</div>
</li>
<li class="c-header-inner-2-mobile__nav-item-2">
<ul class="c-header-inner-2-mobile__nav-list-2">
<li class="c-header-inner-2-mobile__nav-item-3">
<a class="c-header-inner-2-mobile__nav-link-2" href="#">lorem</a>
</li>
<li class="c-header-inner-2-mobile__nav-item-3">
<a class="c-header-inner-2-mobile__nav-link-3" href="#">lorem i</a>
</li>
</ul>
</li>
<li class="c-header-inner-2-mobile__nav-item-4">
<button class="c-header-inner-2-mobile__menu-toggle" type="button">
<span class="c-header-inner-2-mobile__menu-toggle-icon" aria-hidden="true"></span>
</button>
</li>
</ul>
</div>
</nav>
</header>
</div>
.c-header-inner-2-mobile-scope {
background-color: #08090A;
color: #F7F8F8;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
}
.c-header-inner-2-mobile {
display: block;
border-spacing: 0px;
box-sizing: border-box;
position: fixed;
top: 0px;
right: 0px;
left: 0px;
z-index: 100;
background-image: linear-gradient(#0B0B0BCC 0%, #0B0B0BC2 100%);
color: #F7F8F8;
backdrop-filter: blur(20px);
transform: matrix(1, 0, 0, 1, 0, 0);
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
border-bottom-width: 1px;
border-bottom-style: solid;
border-bottom-color: #FFFFFF14;
transition-duration: 0.1s;
transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
transition-property: border-color, background;
}
.c-header-inner-2-mobile::before {
content: "";
display: block;
box-sizing: border-box;
width: 390px;
height: 64px;
position: absolute;
top: 0px;
right: 0px;
bottom: 0px;
left: 0px;
z-index: -1;
background-image: linear-gradient(#08090A 0%, transparent 100%);
}
.c-header-inner-2-mobile__nav {
display: flex;
flex-direction: column;
align-items: center;
box-sizing: border-box;
height: 100%;
}
.c-header-inner-2-mobile__inner {
display: flex;
align-items: center;
box-sizing: border-box;
width: 100%;
height: 64px;
max-width: 1376px;
padding-right: 23px;
padding-left: 23px;
margin-right: auto;
margin-left: auto;
}
.c-header-inner-2-mobile__nav-list {
display: flex;
align-items: center;
gap: 16px;
box-sizing: border-box;
width: 100%;
min-height: 64px;
padding: 0px;
margin: 0px;
list-style-type: none;
}
.c-header-inner-2-mobile__nav-item {
display: flex;
flex-grow: 1;
flex-basis: 0%;
box-sizing: border-box;
white-space: nowrap;
}
.c-header-inner-2-mobile__group {
display: flex;
box-sizing: border-box;
}
.c-header-inner-2-mobile__nav-link {
display: flex;
align-items: center;
box-sizing: border-box;
height: 32px;
color: #F7F8F8;
border-radius: 6px;
cursor: pointer;
text-decoration-line: none;
padding-right: 8px;
padding-left: 8px;
margin-left: -8px;
}
.c-header-inner-2-mobile__nav-link-icon {
display: block;
flex-shrink: 0;
box-sizing: border-box;
width: 88px;
height: 22px;
overflow-x: hidden;
overflow-y: hidden;
background-color: currentcolor;
}
.c-header-inner-2-mobile__nav-item-2 {
display: flex;
align-items: center;
flex-shrink: 0;
box-sizing: border-box;
max-width: 620px;
}
.c-header-inner-2-mobile__nav-list-2 {
display: flex;
justify-content: flex-end;
align-items: center;
gap: 8px;
box-sizing: border-box;
padding: 0px;
margin: 0px;
list-style-type: none;
}
.c-header-inner-2-mobile__nav-item-3 {
display: grid;
justify-content: center;
align-items: center;
box-sizing: border-box;
white-space: nowrap;
}
.c-header-inner-2-mobile__nav-link-2 {
display: flex;
justify-content: center;
align-items: center;
box-sizing: border-box;
width: 100%;
height: 32px;
position: relative;
color: #8A8F98;
border-radius: 9999px;
cursor: pointer;
font-size: 13px;
line-height: 19.5px;
text-decoration-line: none;
padding-right: 12px;
padding-left: 12px;
transition-duration: 0.1s;
transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
transition-property: color, background;
}
.c-header-inner-2-mobile__nav-link-3 {
display: flex;
justify-content: center;
align-items: center;
flex-shrink: 0;
gap: 8px;
box-sizing: border-box;
width: 100%;
height: 32px;
max-width: 100%;
position: relative;
background-color: #E5E5E6;
color: #08090A;
border: 1px solid #E5E5E6;
border-radius: 9999px;
box-shadow: transparent 0px 8px 2px 0px, #00000003 0px 5px 2px 0px, #0000000A 0px 3px 2px 0px, #00000012 0px 1px 1px 0px, #00000014 0px 0px 1px 0px;
cursor: pointer;
font-size: 13px;
font-weight: 510;
line-height: 32px;
text-decoration-line: none;
padding-right: 12px;
padding-left: 12px;
transition-duration: 0.16s;
transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
transition-property: border, background-color, color, box-shadow, opacity, filter, transform;
}
.c-header-inner-2-mobile__nav-item-4 {
display: block;
box-sizing: border-box;
white-space: nowrap;
margin-left: -16px;
}
.c-header-inner-2-mobile__menu-toggle {
display: flex;
justify-content: center;
align-items: center;
box-sizing: border-box;
height: 64px;
aspect-ratio: 1 / 1;
padding: 0px;
background-color: transparent;
color: #F7F8F8;
border: 0;
cursor: pointer;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
letter-spacing: normal;
text-transform: none;
text-align: center;
margin-right: -28px;
}
.c-header-inner-2-mobile__menu-toggle-icon {
display: block;
flex-shrink: 0;
box-sizing: border-box;
width: 16px;
height: 16px;
overflow-x: hidden;
overflow-y: hidden;
background-color: currentcolor;
}
.c-header-inner-2-mobile__nav-link:focus {
outline: 1px solid #5E69D1;
outline-offset: 2px;
}
.c-header-inner-2-mobile__nav-link-2:hover {
background-color: #FFFFFF14;
color: #F7F8F8;
}
.c-header-inner-2-mobile__nav-link-2:focus {
outline: 1px solid #5E69D1;
outline-offset: 2px;
}
.c-header-inner-2-mobile__nav-link-3:hover {
background-color: #FFFFFF;
}
.c-header-inner-2-mobile__nav-link-3:focus {
outline: 1px solid #5E69D1;
outline-offset: 2px;
}
.c-header-inner-2-mobile__menu-toggle:focus {
outline: none;
}
States
header-inner-2-nav-linkfocus: outline 1px solid #5E69D1, outline-offset 2pxheader-inner-2-ctahover (header-inner-2-cta-hover): background-color #FFFFFF14, color #F7F8F8, ::before color #F7F8F8, ::after content "", ::after display block, ::after box-sizing border-box, ::after width 136px, ::after height 32px, ::after position absolute, ::after top 32px, ::after right -32px, ::after bottom -32px, ::after left -32pxheader-inner-2-ctafocus (header-inner-2-cta-focus): background-color #FFFFFF14, color #F7F8F8, outline 1px solid #5E69D1, outline-offset 2px, ::before color #F7F8F8, ::after content "", ::after display block, ::after box-sizing border-box, ::after width 136px, ::after height 32px, ::after position absolute, ::after top 32px, ::after right -32px, ::after bottom -32px, ::after left -32pxheader-inner-2-nav-link-2hover (header-inner-2-nav-link-2-hover): background-color #FFFFFF14header-inner-2-nav-link-2focus: outline 1px solid #5E69D1, outline-offset 2pxheader-inner-2-nav-link-3hover (header-inner-2-nav-link-3-hover): background-color #FFFFFF14, color #F7F8F8header-inner-2-nav-link-3focus: outline 1px solid #5E69D1, outline-offset 2pxheader-inner-2-nav-link-4hover (header-inner-2-nav-link-4-hover): background-color #FFFFFF14, color #F7F8F8header-inner-2-nav-link-4focus: outline 1px solid #5E69D1, outline-offset 2pxheader-inner-2-nav-link-5hover (header-inner-2-nav-link-5-hover): background-color #FFFFFFheader-inner-2-nav-link-5focus: outline 1px solid #5E69D1, outline-offset 2px- mobile,
header-inner-2-mobile-nav-linkfocus: outline 1px solid #5E69D1, outline-offset 2px - mobile,
header-inner-2-mobile-nav-link-2hover (header-inner-2-mobile-nav-link-2-hover): background-color #FFFFFF14, color #F7F8F8 - mobile,
header-inner-2-mobile-nav-link-2focus: outline 1px solid #5E69D1, outline-offset 2px - mobile,
header-inner-2-mobile-nav-link-3hover (header-inner-2-mobile-nav-link-3-hover): background-color #FFFFFF - mobile,
header-inner-2-mobile-nav-link-3focus: outline 1px solid #5E69D1, outline-offset 2px - mobile,
header-inner-2-mobile-menu-togglefocus: outline none
Footers
Footer (landing)
Verification: desktop flagged, the footer-landing-column width did not reproduce the measured 20px after 2 correction attempts; mobile verified against the live page at mobile.
Variant observed on https://linear.app/.
Anatomy
footer-landing: the component root, a<footer>(.c-footer-landing)footer-landing-inner: inner block (.c-footer-landing__inner)footer-landing-columns: inner grid (.c-footer-landing__columns)footer-landing-column: inner block (.c-footer-landing__column)footer-landing-link: link (.c-footer-landing__link)footer-landing-link-icon: icon placeholder, 20px (.c-footer-landing__link-icon)footer-landing-column-2: inner block (.c-footer-landing__column-2, 5 instances)footer-landing-heading: heading, 7 characters (.c-footer-landing__heading, 5 instances)footer-landing-list: inner flex column (.c-footer-landing__list, 5 instances)footer-landing-item: inner group (.c-footer-landing__item, 33 instances)footer-landing-link-2: link, 6-character label (.c-footer-landing__link-2, 33 instances)footer-landing-text: label text, 13 characters (.c-footer-landing__text)footer-landing-column-3: inner block (.c-footer-landing__column-3)footer-landing-columns-2: inner flex row (.c-footer-landing__columns-2)footer-landing-link-3: link, 7-character label (.c-footer-landing__link-3, 4 instances)footer-landing-column-4: inner block (.c-footer-landing__column-4)footer-landing-column-5: inner block (.c-footer-landing__column-5)
Desktop recipe
HTML · CSS
<div class="c-footer-landing-scope">
<footer class="c-footer-landing">
<div class="c-footer-landing__inner">
<div class="c-footer-landing__columns">
<div class="c-footer-landing__column">
<a class="c-footer-landing__link" href="#">
<span class="c-footer-landing__link-icon" aria-hidden="true"></span>
</a>
</div>
<div class="c-footer-landing__column-2">
<h3 class="c-footer-landing__heading">lorem i</h3>
<ul class="c-footer-landing__list">
<li class="c-footer-landing__item">
<a class="c-footer-landing__link-2" href="#">lorem</a>
</li>
<li class="c-footer-landing__item">
<a class="c-footer-landing__link-2" href="#">lore</a>
</li>
<li class="c-footer-landing__item">
<a class="c-footer-landing__link-2" href="#">lo</a>
</li>
<li class="c-footer-landing__item">
<a class="c-footer-landing__link-2" href="#">lorem</a>
</li>
<li class="c-footer-landing__item">
<a class="c-footer-landing__link-2" href="#">lorem i</a>
</li>
<li class="c-footer-landing__item">
<a class="c-footer-landing__link-2" href="#">lorem ip</a>
</li>
</ul>
</div>
<div class="c-footer-landing__column-2">
<h3 class="c-footer-landing__heading">lorem ip</h3>
<ul class="c-footer-landing__list">
<li class="c-footer-landing__item">
<a class="c-footer-landing__link-2" href="#">lore</a>
</li>
<li class="c-footer-landing__item">
<a class="c-footer-landing__link-2" href="#">lorem</a>
</li>
<li class="c-footer-landing__item">
<a class="c-footer-landing__link-2" href="#">lorem ipsum dol</a>
</li>
<li class="c-footer-landing__item">
<a class="c-footer-landing__link-2" href="#">lorem ipsum dolor</a>
</li>
<li class="c-footer-landing__item">
<a class="c-footer-landing__link-2" href="#">lorem ip</a>
</li>
<li class="c-footer-landing__item">
<a class="c-footer-landing__link-2" href="#">lorem</a>
</li>
<li class="c-footer-landing__item">
<a class="c-footer-landing__link-2" href="#">lorem ipsum</a>
</li>
<li class="c-footer-landing__item">
<a class="c-footer-landing__link-2" href="#">lorem ips</a>
</li>
</ul>
</div>
<div class="c-footer-landing__column-2">
<h3 class="c-footer-landing__heading">lorem i</h3>
<ul class="c-footer-landing__list">
<li class="c-footer-landing__item">
<a class="c-footer-landing__link-2" href="#">lorem</a>
</li>
<li class="c-footer-landing__item">
<a class="c-footer-landing__link-2" href="#">lorem ips</a>
</li>
<li class="c-footer-landing__item">
<a class="c-footer-landing__link-2" href="#">lorem i</a>
</li>
<li class="c-footer-landing__item">
<a class="c-footer-landing__link-2" href="#">lor</a>
</li>
<li class="c-footer-landing__item">
<a class="c-footer-landing__link-2" href="#">lorem</a>
</li>
<li class="c-footer-landing__item">
<a class="c-footer-landing__link-2" href="#">lorem i</a>
</li>
<li class="c-footer-landing__item">
<a class="c-footer-landing__link-2" href="#">lorem</a>
</li>
</ul>
</div>
<div class="c-footer-landing__column-2">
<h3 class="c-footer-landing__heading">lorem ips</h3>
<ul class="c-footer-landing__list">
<li class="c-footer-landing__item">
<a class="c-footer-landing__link-2" href="#">lorem</a>
</li>
<li class="c-footer-landing__item">
<a class="c-footer-landing__link-2" href="#">lorem ip</a>
</li>
<li class="c-footer-landing__item">
<a class="c-footer-landing__link-2" href="#">
<span class="c-footer-landing__text">lorem ipsum d</span>
</a>
</li>
<li class="c-footer-landing__item">
<a class="c-footer-landing__link-2" href="#">lorem ipsu</a>
</li>
<li class="c-footer-landing__item">
<a class="c-footer-landing__link-2" href="#">lorem</a>
</li>
<li class="c-footer-landing__item">
<a class="c-footer-landing__link-2" href="#">lorem ipsu</a>
</li>
<li class="c-footer-landing__item">
<a class="c-footer-landing__link-2" href="#">lorem ip</a>
</li>
</ul>
</div>
<div class="c-footer-landing__column-2">
<h3 class="c-footer-landing__heading">lorem i</h3>
<ul class="c-footer-landing__list">
<li class="c-footer-landing__item">
<a class="c-footer-landing__link-2" href="#">lorem ipsu</a>
</li>
<li class="c-footer-landing__item">
<a class="c-footer-landing__link-2" href="#">lorem ips</a>
</li>
<li class="c-footer-landing__item">
<a class="c-footer-landing__link-2" href="#">lorem ipsum</a>
</li>
<li class="c-footer-landing__item">
<a class="c-footer-landing__link-2" href="#">lorem</a>
</li>
<li class="c-footer-landing__item">
<a class="c-footer-landing__link-2" href="#">lorem i</a>
</li>
</ul>
</div>
<div class="c-footer-landing__column-3">
<div class="c-footer-landing__columns-2">
<a class="c-footer-landing__link-3" href="#">lorem i</a>
<a class="c-footer-landing__link-3" href="#">lorem</a>
<a class="c-footer-landing__link-3" href="#">lor</a>
<a class="c-footer-landing__link-3" href="#">lor</a>
</div>
</div>
<div class="c-footer-landing__column-4"></div>
<div class="c-footer-landing__column-5"></div>
</div>
</div>
</footer>
</div>
.c-footer-landing-scope {
background-color: #08090A;
color: #F7F8F8;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
}
.c-footer-landing {
display: inline-block;
border-spacing: 0px;
box-sizing: border-box;
max-width: 100%;
position: relative;
z-index: 50;
background-color: #08090A;
color: #F7F8F8;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
border-top-width: 1px;
border-top-style: solid;
border-top-color: #23252A;
}
.c-footer-landing__inner {
display: block;
box-sizing: border-box;
max-width: 1436px;
margin-right: auto;
margin-left: auto;
}
.c-footer-landing__columns {
display: grid;
align-items: start;
grid-template-columns: repeat(6, minmax(0px, 1fr));
box-sizing: border-box;
padding: 56px 46px;
}
.c-footer-landing__column {
display: block;
box-sizing: border-box;
margin-left: 32px;
}
.c-footer-landing__link {
display: flex;
box-sizing: border-box;
color: #F7F8F8;
cursor: pointer;
text-decoration-line: none;
transition: color 0.1s ease;
}
.c-footer-landing__link-icon {
display: block;
flex-shrink: 0;
box-sizing: border-box;
width: 20px;
height: 20px;
overflow-x: hidden;
overflow-y: hidden;
background-color: currentcolor;
}
.c-footer-landing__column-2 {
display: block;
box-sizing: border-box;
width: 100%;
font-size: 13px;
line-height: 19.5px;
letter-spacing: -0.13px;
padding-right: 32px;
padding-left: 32px;
}
.c-footer-landing__heading {
display: block;
box-sizing: border-box;
margin: 0px 0px 24px;
font-size: 13px;
font-weight: 510;
}
.c-footer-landing__list {
display: flex;
flex-direction: column;
gap: 2px;
box-sizing: border-box;
padding: 0px;
margin: 0px;
list-style-type: none;
}
.c-footer-landing__item {
display: list-item;
box-sizing: border-box;
}
.c-footer-landing__link-2 {
display: inline-flex;
align-items: center;
box-sizing: border-box;
min-height: 28px;
color: #8A8F98;
cursor: pointer;
text-decoration-line: none;
white-space: nowrap;
transition: color 0.1s ease;
}
.c-footer-landing__text {
display: block;
box-sizing: border-box;
}
.c-footer-landing__column-3 {
display: block;
align-self: center;
box-sizing: border-box;
margin-top: 80px;
}
.c-footer-landing__columns-2 {
display: flex;
gap: 20px;
box-sizing: border-box;
padding-right: 32px;
padding-left: 32px;
}
.c-footer-landing__link-3 {
display: block;
box-sizing: border-box;
color: #62666D;
cursor: pointer;
font-size: 13px;
line-height: 19.5px;
letter-spacing: -0.13px;
text-decoration-line: none;
}
.c-footer-landing__column-4 {
display: block;
box-sizing: border-box;
width: 100%;
font-size: 13px;
line-height: 19.5px;
letter-spacing: -0.13px;
padding-right: 32px;
padding-left: 32px;
margin-top: 80px;
}
.c-footer-landing__column-5 {
display: block;
align-self: center;
box-sizing: border-box;
padding-right: 32px;
padding-left: 32px;
margin-top: 80px;
}
.c-footer-landing__link:hover {
color: #8A8F98;
}
.c-footer-landing__link:focus {
outline: 1px solid #5E69D1;
outline-offset: 2px;
}
.c-footer-landing__link-2:hover {
color: #F7F8F8;
}
.c-footer-landing__link-2:focus {
outline: 1px solid #5E69D1;
outline-offset: 2px;
}
.c-footer-landing__link-3:hover {
color: #8A8F98;
}
.c-footer-landing__link-3:focus {
outline: 1px solid #5E69D1;
outline-offset: 2px;
}
Mobile anatomy
footer-landing-mobile: the component root, a<footer>(.c-footer-landing-mobile)footer-landing-mobile-inner: inner block (.c-footer-landing-mobile__inner)footer-landing-mobile-columns: inner grid (.c-footer-landing-mobile__columns)footer-landing-mobile-column: inner block (.c-footer-landing-mobile__column, 6 instances)footer-landing-mobile-column-heading: heading, 7 characters (.c-footer-landing-mobile__column-heading, 6 instances)footer-landing-mobile-list: inner flex column (.c-footer-landing-mobile__list, 6 instances)footer-landing-mobile-item: inner group (.c-footer-landing-mobile__item, 37 instances)footer-landing-mobile-link: link, 6-character label (.c-footer-landing-mobile__link, 37 instances)footer-landing-mobile-text: label text, 4 characters (.c-footer-landing-mobile__text)
Mobile recipe
HTML · CSS
<div class="c-footer-landing-mobile-scope">
<footer class="c-footer-landing-mobile">
<div class="c-footer-landing-mobile__inner">
<div class="c-footer-landing-mobile__columns">
<div class="c-footer-landing-mobile__column">
<h3 class="c-footer-landing-mobile__column-heading">lorem i</h3>
<ul class="c-footer-landing-mobile__list">
<li class="c-footer-landing-mobile__item">
<a class="c-footer-landing-mobile__link" href="#">lorem</a>
</li>
<li class="c-footer-landing-mobile__item">
<a class="c-footer-landing-mobile__link" href="#">lore</a>
</li>
<li class="c-footer-landing-mobile__item">
<a class="c-footer-landing-mobile__link" href="#">lo</a>
</li>
<li class="c-footer-landing-mobile__item">
<a class="c-footer-landing-mobile__link" href="#">lorem</a>
</li>
<li class="c-footer-landing-mobile__item">
<a class="c-footer-landing-mobile__link" href="#">lorem i</a>
</li>
<li class="c-footer-landing-mobile__item">
<a class="c-footer-landing-mobile__link" href="#">lorem ip</a>
</li>
</ul>
</div>
<div class="c-footer-landing-mobile__column">
<h3 class="c-footer-landing-mobile__column-heading">lorem ip</h3>
<ul class="c-footer-landing-mobile__list">
<li class="c-footer-landing-mobile__item">
<a class="c-footer-landing-mobile__link" href="#">lore</a>
</li>
<li class="c-footer-landing-mobile__item">
<a class="c-footer-landing-mobile__link" href="#">lorem</a>
</li>
<li class="c-footer-landing-mobile__item">
<a class="c-footer-landing-mobile__link" href="#">lorem ipsum dol</a>
</li>
<li class="c-footer-landing-mobile__item">
<a class="c-footer-landing-mobile__link" href="#">lorem ipsum dolor</a>
</li>
<li class="c-footer-landing-mobile__item">
<a class="c-footer-landing-mobile__link" href="#">lorem ip</a>
</li>
<li class="c-footer-landing-mobile__item">
<a class="c-footer-landing-mobile__link" href="#">lorem</a>
</li>
<li class="c-footer-landing-mobile__item">
<a class="c-footer-landing-mobile__link" href="#">lorem ipsum</a>
</li>
<li class="c-footer-landing-mobile__item">
<a class="c-footer-landing-mobile__link" href="#">lorem ips</a>
</li>
</ul>
</div>
<div class="c-footer-landing-mobile__column">
<h3 class="c-footer-landing-mobile__column-heading">lorem i</h3>
<ul class="c-footer-landing-mobile__list">
<li class="c-footer-landing-mobile__item">
<a class="c-footer-landing-mobile__link" href="#">lorem</a>
</li>
<li class="c-footer-landing-mobile__item">
<a class="c-footer-landing-mobile__link" href="#">lorem ips</a>
</li>
<li class="c-footer-landing-mobile__item">
<a class="c-footer-landing-mobile__link" href="#">lorem i</a>
</li>
<li class="c-footer-landing-mobile__item">
<a class="c-footer-landing-mobile__link" href="#">lor</a>
</li>
<li class="c-footer-landing-mobile__item">
<a class="c-footer-landing-mobile__link" href="#">lorem</a>
</li>
<li class="c-footer-landing-mobile__item">
<a class="c-footer-landing-mobile__link" href="#">lorem i</a>
</li>
<li class="c-footer-landing-mobile__item">
<a class="c-footer-landing-mobile__link" href="#">lorem</a>
</li>
</ul>
</div>
<div class="c-footer-landing-mobile__column">
<h3 class="c-footer-landing-mobile__column-heading">lorem ips</h3>
<ul class="c-footer-landing-mobile__list">
<li class="c-footer-landing-mobile__item">
<a class="c-footer-landing-mobile__link" href="#">lorem</a>
</li>
<li class="c-footer-landing-mobile__item">
<a class="c-footer-landing-mobile__link" href="#">lorem ip</a>
</li>
<li class="c-footer-landing-mobile__item">
<a class="c-footer-landing-mobile__link" href="#">
<span class="c-footer-landing-mobile__text">lore</span>
</a>
</li>
<li class="c-footer-landing-mobile__item">
<a class="c-footer-landing-mobile__link" href="#">lorem ipsu</a>
</li>
<li class="c-footer-landing-mobile__item">
<a class="c-footer-landing-mobile__link" href="#">lorem</a>
</li>
<li class="c-footer-landing-mobile__item">
<a class="c-footer-landing-mobile__link" href="#">lorem ipsu</a>
</li>
<li class="c-footer-landing-mobile__item">
<a class="c-footer-landing-mobile__link" href="#">lorem ip</a>
</li>
</ul>
</div>
<div class="c-footer-landing-mobile__column">
<h3 class="c-footer-landing-mobile__column-heading">lorem i</h3>
<ul class="c-footer-landing-mobile__list">
<li class="c-footer-landing-mobile__item">
<a class="c-footer-landing-mobile__link" href="#">lorem ipsu</a>
</li>
<li class="c-footer-landing-mobile__item">
<a class="c-footer-landing-mobile__link" href="#">lorem ips</a>
</li>
<li class="c-footer-landing-mobile__item">
<a class="c-footer-landing-mobile__link" href="#">lorem ipsum</a>
</li>
<li class="c-footer-landing-mobile__item">
<a class="c-footer-landing-mobile__link" href="#">lorem</a>
</li>
<li class="c-footer-landing-mobile__item">
<a class="c-footer-landing-mobile__link" href="#">lorem i</a>
</li>
</ul>
</div>
<div class="c-footer-landing-mobile__column">
<h3 class="c-footer-landing-mobile__column-heading">lorem</h3>
<ul class="c-footer-landing-mobile__list">
<li class="c-footer-landing-mobile__item">
<a class="c-footer-landing-mobile__link" href="#">lorem i</a>
</li>
<li class="c-footer-landing-mobile__item">
<a class="c-footer-landing-mobile__link" href="#">lorem</a>
</li>
<li class="c-footer-landing-mobile__item">
<a class="c-footer-landing-mobile__link" href="#">lor</a>
</li>
<li class="c-footer-landing-mobile__item">
<a class="c-footer-landing-mobile__link" href="#">lor</a>
</li>
</ul>
</div>
</div>
</div>
</footer>
</div>
.c-footer-landing-mobile-scope {
background-color: #08090A;
color: #F7F8F8;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
}
.c-footer-landing-mobile {
display: inline-block;
border-spacing: 0px;
box-sizing: border-box;
max-width: 100%;
position: relative;
z-index: 50;
background-color: #08090A;
color: #F7F8F8;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
border-top-width: 1px;
border-top-style: solid;
border-top-color: #23252A;
}
.c-footer-landing-mobile__inner {
display: block;
box-sizing: border-box;
max-width: 1376px;
margin-right: auto;
margin-left: auto;
}
.c-footer-landing-mobile__columns {
display: grid;
align-items: start;
gap: 48px 16px;
grid-template-columns: repeat(2, minmax(0px, 1fr));
box-sizing: border-box;
padding: 56px 16px 24px;
}
.c-footer-landing-mobile__column {
display: block;
box-sizing: border-box;
width: 100%;
font-size: 13px;
line-height: 19.5px;
letter-spacing: -0.13px;
padding-right: 8px;
padding-left: 8px;
}
.c-footer-landing-mobile__column-heading {
display: block;
box-sizing: border-box;
margin: 0px 0px 16px;
font-size: 13px;
font-weight: 510;
}
.c-footer-landing-mobile__list {
display: flex;
flex-direction: column;
gap: 2px;
box-sizing: border-box;
padding: 0px;
margin: 0px;
list-style-type: none;
}
.c-footer-landing-mobile__item {
display: list-item;
box-sizing: border-box;
}
.c-footer-landing-mobile__link {
display: inline-flex;
align-items: center;
box-sizing: border-box;
min-height: 28px;
color: #8A8F98;
cursor: pointer;
text-decoration-line: none;
transition: color 0.1s ease;
}
.c-footer-landing-mobile__text {
display: block;
box-sizing: border-box;
}
.c-footer-landing-mobile__link:hover {
color: #F7F8F8;
}
.c-footer-landing-mobile__link:focus {
outline: 1px solid #5E69D1;
outline-offset: 2px;
}
States
footer-landing-linkhover (footer-landing-link-hover): color #8A8F98footer-landing-linkfocus: outline 1px solid #5E69D1, outline-offset 2pxfooter-landing-link-2hover (footer-landing-link-2-hover): color #F7F8F8footer-landing-link-2focus: outline 1px solid #5E69D1, outline-offset 2pxfooter-landing-link-3hover (footer-landing-link-3-hover): color #8A8F98footer-landing-link-3focus: outline 1px solid #5E69D1, outline-offset 2px- mobile,
footer-landing-mobile-linkhover (footer-landing-mobile-link-hover): color #F7F8F8 - mobile,
footer-landing-mobile-linkfocus: outline 1px solid #5E69D1, outline-offset 2px
Footer (inner)
Verification: desktop flagged, the footer-inner-column width did not reproduce the measured 20px after 2 correction attempts; mobile verified against the live page at mobile.
Variant observed on https://linear.app/changelog/2026-09-24-new-controls-for-linear-coding-agent.
Anatomy
footer-inner: the component root, a<footer>(.c-footer-inner)footer-inner-inner: inner block (.c-footer-inner__inner)footer-inner-columns: inner grid (.c-footer-inner__columns)footer-inner-column: inner block (.c-footer-inner__column)footer-inner-link: link (.c-footer-inner__link)footer-inner-link-icon: icon placeholder, 20px (.c-footer-inner__link-icon)footer-inner-column-2: inner block (.c-footer-inner__column-2, 5 instances)footer-inner-heading: heading, 7 characters (.c-footer-inner__heading, 5 instances)footer-inner-list: inner flex column (.c-footer-inner__list, 5 instances)footer-inner-item: inner group (.c-footer-inner__item, 33 instances)footer-inner-link-2: link, 6-character label (.c-footer-inner__link-2, 33 instances)footer-inner-text: label text, 13 characters (.c-footer-inner__text)footer-inner-column-3: inner block (.c-footer-inner__column-3)footer-inner-columns-2: inner flex row (.c-footer-inner__columns-2)footer-inner-link-3: link, 7-character label (.c-footer-inner__link-3, 4 instances)footer-inner-column-4: inner block (.c-footer-inner__column-4)footer-inner-column-5: inner block (.c-footer-inner__column-5)footer-inner-columns-3: inner flex row (.c-footer-inner__columns-3)footer-inner-button: button (.c-footer-inner__button)footer-inner-group: inner group (.c-footer-inner__group)footer-inner-button-icon: icon placeholder, 14px (.c-footer-inner__button-icon)footer-inner-button-2: button (.c-footer-inner__button-2)footer-inner-logo: icon placeholder, 14px (.c-footer-inner__logo)
Desktop recipe
HTML · CSS
<div class="c-footer-inner-scope">
<footer class="c-footer-inner">
<div class="c-footer-inner__inner">
<div class="c-footer-inner__columns">
<div class="c-footer-inner__column">
<a class="c-footer-inner__link" href="#">
<span class="c-footer-inner__link-icon" aria-hidden="true"></span>
</a>
</div>
<div class="c-footer-inner__column-2">
<h3 class="c-footer-inner__heading">lorem i</h3>
<ul class="c-footer-inner__list">
<li class="c-footer-inner__item">
<a class="c-footer-inner__link-2" href="#">lorem</a>
</li>
<li class="c-footer-inner__item">
<a class="c-footer-inner__link-2" href="#">lore</a>
</li>
<li class="c-footer-inner__item">
<a class="c-footer-inner__link-2" href="#">lo</a>
</li>
<li class="c-footer-inner__item">
<a class="c-footer-inner__link-2" href="#">lorem</a>
</li>
<li class="c-footer-inner__item">
<a class="c-footer-inner__link-2" href="#">lorem i</a>
</li>
<li class="c-footer-inner__item">
<a class="c-footer-inner__link-2" href="#">lorem ip</a>
</li>
</ul>
</div>
<div class="c-footer-inner__column-2">
<h3 class="c-footer-inner__heading">lorem ip</h3>
<ul class="c-footer-inner__list">
<li class="c-footer-inner__item">
<a class="c-footer-inner__link-2" href="#">lore</a>
</li>
<li class="c-footer-inner__item">
<a class="c-footer-inner__link-2" href="#">lorem</a>
</li>
<li class="c-footer-inner__item">
<a class="c-footer-inner__link-2" href="#">lorem ipsum dol</a>
</li>
<li class="c-footer-inner__item">
<a class="c-footer-inner__link-2" href="#">lorem ipsum dolor</a>
</li>
<li class="c-footer-inner__item">
<a class="c-footer-inner__link-2" href="#">lorem ip</a>
</li>
<li class="c-footer-inner__item">
<a class="c-footer-inner__link-2" href="#">lorem</a>
</li>
<li class="c-footer-inner__item">
<a class="c-footer-inner__link-2" href="#">lorem ipsum</a>
</li>
<li class="c-footer-inner__item">
<a class="c-footer-inner__link-2" href="#">lorem ips</a>
</li>
</ul>
</div>
<div class="c-footer-inner__column-2">
<h3 class="c-footer-inner__heading">lorem i</h3>
<ul class="c-footer-inner__list">
<li class="c-footer-inner__item">
<a class="c-footer-inner__link-2" href="#">lorem</a>
</li>
<li class="c-footer-inner__item">
<a class="c-footer-inner__link-2" href="#">lorem ips</a>
</li>
<li class="c-footer-inner__item">
<a class="c-footer-inner__link-2" href="#">lorem i</a>
</li>
<li class="c-footer-inner__item">
<a class="c-footer-inner__link-2" href="#">lor</a>
</li>
<li class="c-footer-inner__item">
<a class="c-footer-inner__link-2" href="#">lorem</a>
</li>
<li class="c-footer-inner__item">
<a class="c-footer-inner__link-2" href="#">lorem i</a>
</li>
<li class="c-footer-inner__item">
<a class="c-footer-inner__link-2" href="#">lorem</a>
</li>
</ul>
</div>
<div class="c-footer-inner__column-2">
<h3 class="c-footer-inner__heading">lorem ips</h3>
<ul class="c-footer-inner__list">
<li class="c-footer-inner__item">
<a class="c-footer-inner__link-2" href="#">lorem</a>
</li>
<li class="c-footer-inner__item">
<a class="c-footer-inner__link-2" href="#">lorem ip</a>
</li>
<li class="c-footer-inner__item">
<a class="c-footer-inner__link-2" href="#">
<span class="c-footer-inner__text">lorem ipsum d</span>
</a>
</li>
<li class="c-footer-inner__item">
<a class="c-footer-inner__link-2" href="#">lorem ipsu</a>
</li>
<li class="c-footer-inner__item">
<a class="c-footer-inner__link-2" href="#">lorem</a>
</li>
<li class="c-footer-inner__item">
<a class="c-footer-inner__link-2" href="#">lorem ipsu</a>
</li>
<li class="c-footer-inner__item">
<a class="c-footer-inner__link-2" href="#">lorem ip</a>
</li>
</ul>
</div>
<div class="c-footer-inner__column-2">
<h3 class="c-footer-inner__heading">lorem i</h3>
<ul class="c-footer-inner__list">
<li class="c-footer-inner__item">
<a class="c-footer-inner__link-2" href="#">lorem ipsu</a>
</li>
<li class="c-footer-inner__item">
<a class="c-footer-inner__link-2" href="#">lorem ips</a>
</li>
<li class="c-footer-inner__item">
<a class="c-footer-inner__link-2" href="#">lorem ipsum</a>
</li>
<li class="c-footer-inner__item">
<a class="c-footer-inner__link-2" href="#">lorem</a>
</li>
<li class="c-footer-inner__item">
<a class="c-footer-inner__link-2" href="#">lorem i</a>
</li>
</ul>
</div>
<div class="c-footer-inner__column-3">
<div class="c-footer-inner__columns-2">
<a class="c-footer-inner__link-3" href="#">lorem i</a>
<a class="c-footer-inner__link-3" href="#">lorem</a>
<a class="c-footer-inner__link-3" href="#">lor</a>
<a class="c-footer-inner__link-3" href="#">lor</a>
</div>
</div>
<div class="c-footer-inner__column-4"></div>
<div class="c-footer-inner__column-5">
<div class="c-footer-inner__columns-3">
<button class="c-footer-inner__button" type="button">
<span class="c-footer-inner__group"></span>
<span class="c-footer-inner__button-icon" aria-hidden="true"></span>
</button>
<button class="c-footer-inner__button-2" type="button">
<span class="c-footer-inner__logo" aria-hidden="true"></span>
</button>
</div>
</div>
</div>
</div>
</footer>
</div>
.c-footer-inner-scope {
background-color: #08090A;
color: #F7F8F8;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
}
.c-footer-inner {
display: inline-block;
border-spacing: 0px;
box-sizing: border-box;
max-width: 100%;
position: relative;
z-index: 50;
background-color: #08090A;
color: #F7F8F8;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
border-top-width: 1px;
border-top-style: solid;
border-top-color: #23252A;
}
.c-footer-inner__inner {
display: block;
box-sizing: border-box;
max-width: 1436px;
margin-right: auto;
margin-left: auto;
}
.c-footer-inner__columns {
display: grid;
align-items: start;
grid-template-columns: repeat(6, minmax(0px, 1fr));
box-sizing: border-box;
padding: 56px 46px;
}
.c-footer-inner__column {
display: block;
box-sizing: border-box;
margin-left: 32px;
}
.c-footer-inner__link {
display: flex;
box-sizing: border-box;
color: #F7F8F8;
cursor: pointer;
text-decoration-line: none;
transition: color 0.1s ease;
}
.c-footer-inner__link-icon {
display: block;
flex-shrink: 0;
box-sizing: border-box;
width: 20px;
height: 20px;
overflow-x: hidden;
overflow-y: hidden;
background-color: currentcolor;
}
.c-footer-inner__column-2 {
display: block;
box-sizing: border-box;
width: 100%;
font-size: 13px;
line-height: 19.5px;
letter-spacing: -0.13px;
padding-right: 32px;
padding-left: 32px;
}
.c-footer-inner__heading {
display: block;
box-sizing: border-box;
margin: 0px 0px 24px;
font-size: 13px;
font-weight: 510;
}
.c-footer-inner__list {
display: flex;
flex-direction: column;
gap: 2px;
box-sizing: border-box;
padding: 0px;
margin: 0px;
list-style-type: none;
}
.c-footer-inner__item {
display: list-item;
box-sizing: border-box;
}
.c-footer-inner__link-2 {
display: inline-flex;
align-items: center;
box-sizing: border-box;
min-height: 28px;
color: #8A8F98;
cursor: pointer;
text-decoration-line: none;
white-space: nowrap;
transition: color 0.1s ease;
}
.c-footer-inner__text {
display: block;
box-sizing: border-box;
}
.c-footer-inner__column-3 {
display: block;
align-self: center;
box-sizing: border-box;
margin-top: 80px;
}
.c-footer-inner__columns-2 {
display: flex;
gap: 20px;
box-sizing: border-box;
padding-right: 32px;
padding-left: 32px;
}
.c-footer-inner__link-3 {
display: block;
box-sizing: border-box;
color: #62666D;
cursor: pointer;
font-size: 13px;
line-height: 19.5px;
letter-spacing: -0.13px;
text-decoration-line: none;
}
.c-footer-inner__column-4 {
display: block;
box-sizing: border-box;
width: 100%;
font-size: 13px;
line-height: 19.5px;
letter-spacing: -0.13px;
padding-right: 32px;
padding-left: 32px;
margin-top: 80px;
}
.c-footer-inner__column-5 {
display: block;
align-self: center;
box-sizing: border-box;
padding-right: 32px;
padding-left: 32px;
margin-top: 80px;
}
.c-footer-inner__columns-3 {
display: flex;
box-sizing: border-box;
padding: 2px;
border: 1px solid #23252A;
border-radius: 8px;
}
.c-footer-inner__button {
display: flex;
justify-content: center;
align-items: center;
box-sizing: border-box;
width: 24px;
height: 22px;
padding: 0px;
position: relative;
background-color: transparent;
color: #F7F8F8;
border: 0;
border-radius: 5px;
cursor: pointer;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 13.3333px;
font-weight: 400;
line-height: normal;
letter-spacing: normal;
text-transform: none;
text-align: center;
transition: color 0.2s ease;
}
.c-footer-inner__group {
display: block;
box-sizing: border-box;
position: absolute;
top: 0px;
right: 0px;
bottom: 0px;
left: 0px;
background-color: #28282C;
border-radius: 5px;
}
.c-footer-inner__button-icon {
display: block;
flex-shrink: 0;
box-sizing: border-box;
width: 14px;
height: 14px;
position: relative;
top: 0px;
right: 0px;
bottom: 0px;
left: 0px;
z-index: 1;
overflow-x: hidden;
overflow-y: hidden;
background-color: currentcolor;
}
.c-footer-inner__button-2 {
display: flex;
justify-content: center;
align-items: center;
box-sizing: border-box;
width: 24px;
height: 22px;
padding: 0px;
position: relative;
background-color: transparent;
color: #3E3E44;
border: 0;
border-radius: 5px;
cursor: pointer;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 13.3333px;
font-weight: 400;
line-height: normal;
letter-spacing: normal;
text-transform: none;
text-align: center;
transition: color 0.2s ease;
}
.c-footer-inner__logo {
display: block;
flex-shrink: 0;
box-sizing: border-box;
width: 14px;
height: 14px;
position: relative;
top: 0px;
right: 0px;
bottom: 0px;
left: 0px;
z-index: 1;
overflow-x: hidden;
overflow-y: hidden;
background-color: currentcolor;
}
.c-footer-inner__link:hover {
color: #8A8F98;
}
.c-footer-inner__link:focus {
outline: 1px solid #5E69D1;
outline-offset: 2px;
}
.c-footer-inner__link-2:hover {
color: #F7F8F8;
}
.c-footer-inner__link-2:focus {
outline: 1px solid #5E69D1;
outline-offset: 2px;
}
.c-footer-inner__link-3:hover {
color: #8A8F98;
}
.c-footer-inner__link-3:focus {
outline: 1px solid #5E69D1;
outline-offset: 2px;
}
.c-footer-inner__button:focus {
outline: 1px solid #5E69D1;
outline-offset: 2px;
}
.c-footer-inner__button-2:focus {
outline: 1px solid #5E69D1;
outline-offset: 2px;
}
Mobile anatomy
footer-inner-mobile: the component root, a<footer>(.c-footer-inner-mobile)footer-inner-mobile-inner: inner block (.c-footer-inner-mobile__inner)footer-inner-mobile-columns: inner grid (.c-footer-inner-mobile__columns)footer-inner-mobile-column: inner block (.c-footer-inner-mobile__column, 6 instances)footer-inner-mobile-column-heading: heading, 7 characters (.c-footer-inner-mobile__column-heading, 6 instances)footer-inner-mobile-list: inner flex column (.c-footer-inner-mobile__list, 6 instances)footer-inner-mobile-item: inner group (.c-footer-inner-mobile__item, 37 instances)footer-inner-mobile-link: link, 6-character label (.c-footer-inner-mobile__link, 37 instances)footer-inner-mobile-text: label text, 4 characters (.c-footer-inner-mobile__text)
Mobile recipe
HTML · CSS
<div class="c-footer-inner-mobile-scope">
<footer class="c-footer-inner-mobile">
<div class="c-footer-inner-mobile__inner">
<div class="c-footer-inner-mobile__columns">
<div class="c-footer-inner-mobile__column">
<h3 class="c-footer-inner-mobile__column-heading">lorem i</h3>
<ul class="c-footer-inner-mobile__list">
<li class="c-footer-inner-mobile__item">
<a class="c-footer-inner-mobile__link" href="#">lorem</a>
</li>
<li class="c-footer-inner-mobile__item">
<a class="c-footer-inner-mobile__link" href="#">lore</a>
</li>
<li class="c-footer-inner-mobile__item">
<a class="c-footer-inner-mobile__link" href="#">lo</a>
</li>
<li class="c-footer-inner-mobile__item">
<a class="c-footer-inner-mobile__link" href="#">lorem</a>
</li>
<li class="c-footer-inner-mobile__item">
<a class="c-footer-inner-mobile__link" href="#">lorem i</a>
</li>
<li class="c-footer-inner-mobile__item">
<a class="c-footer-inner-mobile__link" href="#">lorem ip</a>
</li>
</ul>
</div>
<div class="c-footer-inner-mobile__column">
<h3 class="c-footer-inner-mobile__column-heading">lorem ip</h3>
<ul class="c-footer-inner-mobile__list">
<li class="c-footer-inner-mobile__item">
<a class="c-footer-inner-mobile__link" href="#">lore</a>
</li>
<li class="c-footer-inner-mobile__item">
<a class="c-footer-inner-mobile__link" href="#">lorem</a>
</li>
<li class="c-footer-inner-mobile__item">
<a class="c-footer-inner-mobile__link" href="#">lorem ipsum dol</a>
</li>
<li class="c-footer-inner-mobile__item">
<a class="c-footer-inner-mobile__link" href="#">lorem ipsum dolor</a>
</li>
<li class="c-footer-inner-mobile__item">
<a class="c-footer-inner-mobile__link" href="#">lorem ip</a>
</li>
<li class="c-footer-inner-mobile__item">
<a class="c-footer-inner-mobile__link" href="#">lorem</a>
</li>
<li class="c-footer-inner-mobile__item">
<a class="c-footer-inner-mobile__link" href="#">lorem ipsum</a>
</li>
<li class="c-footer-inner-mobile__item">
<a class="c-footer-inner-mobile__link" href="#">lorem ips</a>
</li>
</ul>
</div>
<div class="c-footer-inner-mobile__column">
<h3 class="c-footer-inner-mobile__column-heading">lorem i</h3>
<ul class="c-footer-inner-mobile__list">
<li class="c-footer-inner-mobile__item">
<a class="c-footer-inner-mobile__link" href="#">lorem</a>
</li>
<li class="c-footer-inner-mobile__item">
<a class="c-footer-inner-mobile__link" href="#">lorem ips</a>
</li>
<li class="c-footer-inner-mobile__item">
<a class="c-footer-inner-mobile__link" href="#">lorem i</a>
</li>
<li class="c-footer-inner-mobile__item">
<a class="c-footer-inner-mobile__link" href="#">lor</a>
</li>
<li class="c-footer-inner-mobile__item">
<a class="c-footer-inner-mobile__link" href="#">lorem</a>
</li>
<li class="c-footer-inner-mobile__item">
<a class="c-footer-inner-mobile__link" href="#">lorem i</a>
</li>
<li class="c-footer-inner-mobile__item">
<a class="c-footer-inner-mobile__link" href="#">lorem</a>
</li>
</ul>
</div>
<div class="c-footer-inner-mobile__column">
<h3 class="c-footer-inner-mobile__column-heading">lorem ips</h3>
<ul class="c-footer-inner-mobile__list">
<li class="c-footer-inner-mobile__item">
<a class="c-footer-inner-mobile__link" href="#">lorem</a>
</li>
<li class="c-footer-inner-mobile__item">
<a class="c-footer-inner-mobile__link" href="#">lorem ip</a>
</li>
<li class="c-footer-inner-mobile__item">
<a class="c-footer-inner-mobile__link" href="#">
<span class="c-footer-inner-mobile__text">lore</span>
</a>
</li>
<li class="c-footer-inner-mobile__item">
<a class="c-footer-inner-mobile__link" href="#">lorem ipsu</a>
</li>
<li class="c-footer-inner-mobile__item">
<a class="c-footer-inner-mobile__link" href="#">lorem</a>
</li>
<li class="c-footer-inner-mobile__item">
<a class="c-footer-inner-mobile__link" href="#">lorem ipsu</a>
</li>
<li class="c-footer-inner-mobile__item">
<a class="c-footer-inner-mobile__link" href="#">lorem ip</a>
</li>
</ul>
</div>
<div class="c-footer-inner-mobile__column">
<h3 class="c-footer-inner-mobile__column-heading">lorem i</h3>
<ul class="c-footer-inner-mobile__list">
<li class="c-footer-inner-mobile__item">
<a class="c-footer-inner-mobile__link" href="#">lorem ipsu</a>
</li>
<li class="c-footer-inner-mobile__item">
<a class="c-footer-inner-mobile__link" href="#">lorem ips</a>
</li>
<li class="c-footer-inner-mobile__item">
<a class="c-footer-inner-mobile__link" href="#">lorem ipsum</a>
</li>
<li class="c-footer-inner-mobile__item">
<a class="c-footer-inner-mobile__link" href="#">lorem</a>
</li>
<li class="c-footer-inner-mobile__item">
<a class="c-footer-inner-mobile__link" href="#">lorem i</a>
</li>
</ul>
</div>
<div class="c-footer-inner-mobile__column">
<h3 class="c-footer-inner-mobile__column-heading">lorem</h3>
<ul class="c-footer-inner-mobile__list">
<li class="c-footer-inner-mobile__item">
<a class="c-footer-inner-mobile__link" href="#">lorem i</a>
</li>
<li class="c-footer-inner-mobile__item">
<a class="c-footer-inner-mobile__link" href="#">lorem</a>
</li>
<li class="c-footer-inner-mobile__item">
<a class="c-footer-inner-mobile__link" href="#">lor</a>
</li>
<li class="c-footer-inner-mobile__item">
<a class="c-footer-inner-mobile__link" href="#">lor</a>
</li>
</ul>
</div>
</div>
</div>
</footer>
</div>
.c-footer-inner-mobile-scope {
background-color: #08090A;
color: #F7F8F8;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
}
.c-footer-inner-mobile {
display: inline-block;
border-spacing: 0px;
box-sizing: border-box;
max-width: 100%;
position: relative;
z-index: 50;
background-color: #08090A;
color: #F7F8F8;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
border-top-width: 1px;
border-top-style: solid;
border-top-color: #23252A;
}
.c-footer-inner-mobile__inner {
display: block;
box-sizing: border-box;
max-width: 1376px;
margin-right: auto;
margin-left: auto;
}
.c-footer-inner-mobile__columns {
display: grid;
align-items: start;
gap: 48px 16px;
grid-template-columns: repeat(2, minmax(0px, 1fr));
box-sizing: border-box;
padding: 56px 16px 24px;
}
.c-footer-inner-mobile__column {
display: block;
box-sizing: border-box;
width: 100%;
font-size: 13px;
line-height: 19.5px;
letter-spacing: -0.13px;
padding-right: 8px;
padding-left: 8px;
}
.c-footer-inner-mobile__column-heading {
display: block;
box-sizing: border-box;
margin: 0px 0px 16px;
font-size: 13px;
font-weight: 510;
}
.c-footer-inner-mobile__list {
display: flex;
flex-direction: column;
gap: 2px;
box-sizing: border-box;
padding: 0px;
margin: 0px;
list-style-type: none;
}
.c-footer-inner-mobile__item {
display: list-item;
box-sizing: border-box;
}
.c-footer-inner-mobile__link {
display: inline-flex;
align-items: center;
box-sizing: border-box;
min-height: 28px;
color: #8A8F98;
cursor: pointer;
text-decoration-line: none;
transition: color 0.1s ease;
}
.c-footer-inner-mobile__text {
display: block;
box-sizing: border-box;
}
.c-footer-inner-mobile__link:hover {
color: #F7F8F8;
}
.c-footer-inner-mobile__link:focus {
outline: 1px solid #5E69D1;
outline-offset: 2px;
}
States
footer-inner-linkhover (footer-inner-link-hover): color #8A8F98footer-inner-linkfocus: outline 1px solid #5E69D1, outline-offset 2pxfooter-inner-link-2hover (footer-inner-link-2-hover): color #F7F8F8footer-inner-link-2focus: outline 1px solid #5E69D1, outline-offset 2pxfooter-inner-link-3hover (footer-inner-link-3-hover): color #8A8F98footer-inner-link-3focus: outline 1px solid #5E69D1, outline-offset 2pxfooter-inner-buttonfocus: outline 1px solid #5E69D1, outline-offset 2pxfooter-inner-button-2focus: outline 1px solid #5E69D1, outline-offset 2px- mobile,
footer-inner-mobile-linkhover (footer-inner-mobile-link-hover): color #F7F8F8 - mobile,
footer-inner-mobile-linkfocus: outline 1px solid #5E69D1, outline-offset 2px
Table
Verification: flagged, the table-group-7 height did not reproduce the measured 3404px after 2 correction attempts.
Anatomy
table: the component root, a<div>(.c-table)table-group: inner block (.c-table__group)table-group-2: inner block (.c-table__group-2)table-group-3: inner block (.c-table__group-3)table-group-4: inner grid (.c-table__group-4)table-group-5: inner block (.c-table__group-5), content not capturedtable-group-6: inner flex row (.c-table__group-6, 4 instances), content not capturedtable-group-7: inner block (.c-table__group-7), content not capturedtable-group-8: inner grid (.c-table__group-8, 3 instances), content not capturedtable-group-9: inner flex row (.c-table__group-9, 3 instances)table-text: label text, 7 characters (.c-table__text, 3 instances)table-group-10: inner flex row (.c-table__group-10, 10 instances)table-group-11: inner flex row (.c-table__group-11, 10 instances), content not captured
Recipe
HTML · CSS
<div class="c-table-scope">
<div class="c-table">
<div class="c-table__group"></div>
<div class="c-table__group-2">
<div class="c-table__group-3">
<div class="c-table__group-4">
<div class="c-table__group-5"></div>
<div class="c-table__group-6"></div>
<div class="c-table__group-6"></div>
<div class="c-table__group-6"></div>
<div class="c-table__group-6"></div>
</div>
</div>
</div>
<div class="c-table__group-7">
<div class="c-table__group-8">
<div class="c-table__group-9">
<span class="c-table__text">lorem i</span>
</div>
<div class="c-table__group-10">
<div class="c-table__group-11"></div>
</div>
<div class="c-table__group-10">
<div class="c-table__group-11"></div>
</div>
<div class="c-table__group-10">
<div class="c-table__group-11"></div>
</div>
<div class="c-table__group-10">
<div class="c-table__group-11"></div>
</div>
</div>
<div class="c-table__group-8">
<div class="c-table__group-9">
<span class="c-table__text">lorem ipsum</span>
</div>
<div class="c-table__group-10">
<div class="c-table__group-11"></div>
</div>
<div class="c-table__group-10">
<div class="c-table__group-11"></div>
</div>
<div class="c-table__group-10">
<div class="c-table__group-11"></div>
</div>
<div class="c-table__group-10">
<div class="c-table__group-11"></div>
</div>
</div>
<div class="c-table__group-8">
<div class="c-table__group-9">
<span class="c-table__text">lorem</span>
</div>
<div class="c-table__group-10">
<div class="c-table__group-11"></div>
</div>
<div class="c-table__group-10">
<div class="c-table__group-11"></div>
</div>
</div>
</div>
</div>
</div>
.c-table-scope {
background-color: #08090A;
color: #F7F8F8;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
}
.c-table {
display: inline-block;
border-spacing: 0px;
box-sizing: border-box;
color: #F7F8F8;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
}
.c-table__group {
display: block;
box-sizing: border-box;
width: 100%;
height: 1px;
}
.c-table__group-2 {
display: block;
box-sizing: border-box;
position: sticky;
top: 72px;
z-index: 3;
margin-bottom: 125px;
}
.c-table__group-2::before {
content: "";
display: block;
box-sizing: border-box;
width: 1440px;
height: 56px;
position: absolute;
top: 0px;
right: -48px;
bottom: 0px;
left: 672px;
background-color: #0B0B0BCC;
backdrop-filter: blur(20px);
margin-left: -720px;
border-bottom-width: 1px;
border-bottom-style: solid;
border-bottom-color: #202122;
transition-duration: 0.12s, 0.12s, 0.12s;
transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94), cubic-bezier(0.25, 0.46, 0.45, 0.94), cubic-bezier(0.25, 0.46, 0.45, 0.94);
transition-property: background, backdrop-filter, border-color;
}
.c-table__group-3 {
display: block;
box-sizing: border-box;
position: relative;
}
.c-table__group-4 {
display: grid;
grid-template-columns: 2fr repeat(4, 1fr);
box-sizing: border-box;
width: 100%;
position: relative;
}
.c-table__group-5 {
display: block;
box-sizing: border-box;
padding: 12px 32px;
}
.c-table__group-6 {
display: flex;
align-items: flex-end;
box-sizing: border-box;
padding: 12px 32px;
}
.c-table__group-7 {
display: block;
box-sizing: border-box;
padding-top: 57px;
margin-top: -125px;
}
.c-table__group-8 {
display: grid;
grid-template-columns: 2fr repeat(4, 1fr);
box-sizing: border-box;
width: 100%;
height: 44px;
position: relative;
}
.c-table__group-8::before {
content: "";
display: block;
box-sizing: border-box;
width: 1344px;
height: 44px;
position: absolute;
top: 0px;
right: 0px;
bottom: 0px;
left: 0px;
background-color: #141516;
border-radius: 6px;
opacity: 0;
transition: opacity 0.15s cubic-bezier(0.215, 0.61, 0.355, 1);
}
.c-table__group-9 {
display: flex;
align-items: center;
gap: 8px;
box-sizing: border-box;
min-height: 44px;
position: relative;
padding-right: 32px;
padding-left: 32px;
}
.c-table__text {
display: block;
box-sizing: border-box;
color: #8A8F98;
font-size: 15px;
letter-spacing: -0.165px;
}
.c-table__group-10 {
display: flex;
align-items: center;
box-sizing: border-box;
min-height: 42px;
padding: 14px 32px;
position: relative;
border-left-width: 1px;
border-left-style: solid;
border-left-color: #202122;
}
.c-table__group-11 {
display: flex;
align-items: center;
gap: 8px;
box-sizing: border-box;
}
States
- No hover or focus change was observed.
Table section
Verification: verified against the live page at desktop.
Anatomy
- Group: 6 instances in a 1-column grid; the recipe carries the values they all share
table-section: the component root, a<div>(.c-table-section)table-section-text: label text, 4 characters (.c-table-section__text)
Recipe
HTML · CSS
<div class="c-table-section-scope">
<div class="c-table-section">
<span class="c-table-section__text">lore</span>
</div>
</div>
.c-table-section-scope {
background-color: #08090A;
color: #F7F8F8;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
}
.c-table-section {
display: block;
border-spacing: 0px;
box-sizing: border-box;
padding: 42px 32px;
color: #F7F8F8;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
}
.c-table-section__text {
display: inline;
box-sizing: border-box;
font-size: 24px;
font-weight: 510;
line-height: 31.92px;
letter-spacing: -0.288px;
}
States
- No hover or focus change was observed.
Nav
Verification: verified against the live page at desktop.
Anatomy
nav: the component root, a<nav>(.c-nav)nav-group: inner flex row (.c-nav__group)nav-list: inner flex row (.c-nav__list)nav-item: inner flex row (.c-nav__item)nav-group-2: inner flex row (.c-nav__group-2), content not capturednav-item-2: inner flex row (.c-nav__item-2)nav-list-2: inner flex row (.c-nav__list-2), content not capturednav-group-3: inner block (.c-nav__group-3, 2 instances)nav-group-4: inner block (.c-nav__group-4)nav-list-3: inner flex row (.c-nav__list-3), content not captured
Recipe
HTML · CSS
<div class="c-nav-scope">
<nav class="c-nav">
<div class="c-nav__group">
<ul class="c-nav__list">
<li class="c-nav__item">
<div class="c-nav__group-2"></div>
</li>
<li class="c-nav__item-2">
<ul class="c-nav__list-2"></ul>
<div class="c-nav__group-3"></div>
<div class="c-nav__group-4"></div>
<div class="c-nav__group-3"></div>
<ul class="c-nav__list-3"></ul>
</li>
</ul>
</div>
</nav>
</div>
.c-nav-scope {
background-color: #08090A;
color: #F7F8F8;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
}
.c-nav {
display: flex;
align-items: center;
border-spacing: 0px;
box-sizing: border-box;
color: #F7F8F8;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
}
.c-nav__group {
display: flex;
align-items: center;
box-sizing: border-box;
width: 100%;
height: 72px;
max-width: 1436px;
padding-right: 77px;
padding-left: 77px;
margin-right: auto;
margin-left: auto;
}
.c-nav__list {
display: flex;
align-items: center;
gap: 8px;
box-sizing: border-box;
width: 100%;
min-height: 72px;
padding: 0px;
margin: 0px;
list-style-type: none;
}
.c-nav__item {
display: flex;
flex-grow: 1;
flex-basis: 0%;
box-sizing: border-box;
white-space: nowrap;
}
.c-nav__group-2 {
display: flex;
box-sizing: border-box;
}
.c-nav__item-2 {
display: flex;
align-items: center;
flex-shrink: 0;
box-sizing: border-box;
width: 100%;
max-width: 620px;
}
.c-nav__list-2 {
display: flex;
align-items: center;
box-sizing: border-box;
padding: 0px;
margin: 0px;
list-style-type: none;
}
.c-nav__group-3 {
display: block;
flex-grow: 1;
flex-basis: 0%;
box-sizing: border-box;
}
.c-nav__group-4 {
display: block;
box-sizing: border-box;
width: 1px;
height: 16px;
background-color: #23252A;
margin-right: 8px;
margin-left: 8px;
}
.c-nav__list-3 {
display: flex;
justify-content: flex-end;
align-items: center;
gap: 8px;
box-sizing: border-box;
padding: 0px;
margin: 0px;
list-style-type: none;
}
States
- No hover or focus change was observed.
Stat
Verification: verified against the live page at desktop.
Anatomy
- Group: 3 instances in a 4-column grid; the recipe carries the values they all share
stat: the component root, a<div>(.c-stat)stat-body: label text, 4 characters (.c-stat__body)stat-text: label text, 24 characters (.c-stat__text)
Recipe
HTML · CSS
<div class="c-stat-scope">
<div class="c-stat">
<p class="c-stat__body">lore</p>
<span class="c-stat__text">lorem ipsum dolor sit am</span>
</div>
</div>
.c-stat-scope {
background-color: #08090A;
color: #F7F8F8;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
}
.c-stat {
display: inline-flex;
flex-direction: column;
gap: 12px;
border-spacing: 0px;
box-sizing: border-box;
color: #F7F8F8;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
padding-right: 32px;
padding-left: 32px;
border-left-width: 1px;
border-left-style: solid;
border-left-color: #FFFFFF14;
}
.c-stat__body {
display: block;
box-sizing: border-box;
margin: 0px;
font-size: 48px;
font-weight: 510;
line-height: 48px;
letter-spacing: -1.056px;
}
.c-stat__text {
display: block;
box-sizing: border-box;
color: #8A8F98;
font-size: 14px;
line-height: 21px;
letter-spacing: -0.182px;
}
States
- No hover or focus change was observed.
Accordion
Verification: verified against the live page at desktop.
Anatomy
accordion: the component root, a<button>(.c-accordion)accordion-group: inner flex row (.c-accordion__group)accordion-icon: icon placeholder, 16px (.c-accordion__icon)accordion-text: label text, 5 characters (.c-accordion__text)
Recipe
HTML · CSS
<div class="c-accordion-scope">
<button class="c-accordion" type="button">
<span class="c-accordion__group">
<span class="c-accordion__icon" aria-hidden="true"></span>
</span>
<span class="c-accordion__text">lorem</span>
</button>
</div>
.c-accordion-scope {
background-color: #08090A;
color: #D0D6E0;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 17px;
font-weight: 400;
line-height: 27.2px;
}
.c-accordion {
display: inline-flex;
flex-direction: row-reverse;
flex-grow: 1;
flex-basis: 0%;
border-spacing: 0px;
box-sizing: border-box;
padding: 16px 0px;
background-color: transparent;
color: #F7F8F8;
border: 0;
border-radius: 8px;
cursor: pointer;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 15px;
font-weight: 510;
line-height: 24px;
letter-spacing: -0.165px;
text-transform: none;
text-align: start;
}
.c-accordion__group {
display: flex;
align-items: center;
flex-shrink: 0;
box-sizing: border-box;
height: 24px;
color: #62666D;
transition: transform 0.12s ease;
margin-left: auto;
}
.c-accordion__icon {
display: block;
flex-shrink: 0;
box-sizing: border-box;
width: 16px;
height: 16px;
overflow-x: hidden;
overflow-y: hidden;
background-color: currentcolor;
}
.c-accordion:focus {
outline: 1px solid #5E69D1;
outline-offset: 2px;
}
States
- focus: outline 1px solid #5E69D1, outline-offset 2px
Badge
Verification: flagged, the render matched 86% of the original pixels, below the 96% required on focus after 2 correction attempts.
Anatomy
badge: the component root, a<button>(.c-badge)badge-group: inner block (.c-badge__group)badge-text: label text, 11 characters (.c-badge__text)
Recipe
HTML · CSS
<div class="c-badge-scope">
<button class="c-badge" type="button">
<div class="c-badge__group"></div>
<span class="c-badge__text">lorem ipsum</span>
</button>
</div>
.c-badge-scope {
background-color: #FFFFFF03;
color: #F7F8F8;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 24px;
}
.c-badge {
display: inline-flex;
align-items: center;
gap: 2px;
border-spacing: 0px;
box-sizing: border-box;
height: 24px;
padding: 0px 11px 0px 7px;
background-color: transparent;
color: #D0D6E0;
border: 1px solid #2E2E32;
border-radius: 16px;
cursor: default;
font-family: "Inter Variable", "SF Pro Display", -apple-system, system-ui, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 12px;
font-weight: 400;
line-height: 14px;
letter-spacing: normal;
text-transform: none;
text-align: center;
transition-duration: 0.16s, 0.16s;
transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94), cubic-bezier(0.25, 0.46, 0.45, 0.94);
transition-property: filter, transform;
}
.c-badge__group {
display: block;
box-sizing: border-box;
width: 16px;
height: 16px;
position: relative;
}
.c-badge__group::after {
content: "";
display: block;
box-sizing: border-box;
width: 6px;
height: 6px;
position: absolute;
top: 8px;
right: 2px;
bottom: 2px;
left: 8px;
background-color: #27A644;
border-radius: 50%;
transform: matrix(1, 0, 0, 1, -3, -3);
transform-origin: 3px 3px;
}
.c-badge:focus {
outline: 1px solid #5E69D1;
outline-offset: 2px;
}
States
- focus: outline 1px solid #5E69D1, outline-offset 2px
Do's and Don'ts
Do
- Reserve Linear Indigo (
primary, #5E6AD2) for focus and interactive accents. Every measured focus state is a1px solid #5E69D1outline with a 2px offset. - Shape every button as a pill with
rounded.full.button-ghost,button-ghost-2andbutton-ghost-3all measure 9999px. - Keep control heights on the observed ladder:
button-ghostandbutton-ghost-2at 32px,button-ghost-4at 29px,button-ghost-3at 24px, andsidebar-nav-itemand the icon buttons at 28px. - Default to ghost buttons. They rest transparent with
mutedtext, and on hover take the #FFFFFF14 wash withinktext. - Make the primary CTA the light pill:
on-dark-surfacefill,canvastext,buttontypography and the five-layer soft-lift shadow, going to #FFFFFF on hover (header-landing-nav-link-4). - Keep the frosted fixed header (
header-landing):blur(20px)over transparent, with a#FFFFFF14bottom hairline, 73px tall on desktop and capped atheader-landing-inner-max-width. - Build hierarchy with the gray ladder:
ink, thenink-secondary,mutedandsubtle, before reaching for size or color. - Separate stats, plan columns and table cells with 1px left hairlines (the
statborder is #FFFFFF14), not with boxed cards.
Don't
- Don't use weights other than 400, 510 and 590, and never substitute a static 600 or 700 for
heading-lgortitle-md. - Don't add a third typeface. Inter Variable carries everything, and Berkeley Mono is limited to micro figure labels.
- Don't use
accent-blue,dangerorsuccessfor marketing chrome; they belong inside product mockups. - Don't fill the page with colored section backgrounds. Sections sit on
canvasand are separated by space or ahairlinerule. - Don't replace the header's blur with an opaque
surfacefill. - Don't describe or rebuild the system as flat. Hairlines, inset rims and the soft-lift stack are part of it.
- Don't use heavy drop shadows such as large dark blurs on cards. The strongest float in the evidence is
rgba(0, 0, 0, 0.2) 0px 4px 24px 0px. - Don't set display headings with positive tracking or line-height above 1.
hero-displaythroughdisplay-mdare tight by design.
Responsive Behavior
This analysis is two-viewport (one desktop capture, one mobile capture). No intermediate breakpoints were observed, so none are stated.
What changes between viewports
- Header: shrinks from 73px (
header-landing) to 65px (header-landing-mobile). The desktop nav links collapse behind a menu toggle (header-landing-mobile-menu-toggle, a 64px hit area with a 16px glyph). The logo, a 6-character text link and the light Sign up pill remain visible. The item gap widens fromheader-landing-gaptoheader-landing-mobile-gap, and the frostedblur(20px)treatment is kept. - Container: the inner max width reads
header-landing-inner-max-widthon desktop andheader-landing-mobile-inner-max-widthon mobile. - Content: multi-column feature splits stack into a single left-aligned column. Headlines wrap and stack. Preview cards scroll horizontally instead of tiling. Sections stay separated by hairlines.
- Footer: the link columns reflow into a grid with
footer-landing-mobile-column-gap, and links stack withfooter-landing-mobile-gap. The footer grows to 878px tall (footer-landing-mobile).
Touch targets
The measured interactive heights are 32px for ghost pills and nav links, 28px for icon buttons and sidebar items, and 24px for button-ghost-3, label-chip and badge. Only the 64px menu toggle clears a 44px touch guideline. When building mobile-first, pad hit areas beyond the visual pill rather than enlarging the pill.
Iteration Guide
- Reference tokens, never raw hex. Use
canvas,ink,mutedandhairlineby name. The translucent state colors (#FFFFFF14, #FFFFFF05) are component-level values; reuse them only through the recipe that carries them (button-ghost-hover,sidebar-nav-item-hover). - Keep
primaryscarce. Indigo marks focus and interactive accents only. If a new design wants a colored CTA, use the light pill (on-dark-surfacefill,canvastext) instead. - Every new button is a pill. Use
rounded.fullwith height from the existing ladder (32 / 29 / 28 / 24px),buttonornav-linktypography, and the shared focus outline1px solid #5E69D1with a 2px offset. - Add depth in this order: a tonal step (
surface→surface-raised), then a#FFFFFF14hairline, then an inset rim, then a shadow from the elevation table. Never invent a new shadow. - Typography edits stay on the ladder. Use weights 400, 510 and 590 only, and line-height 1 for display tokens. Scale letter-spacing proportionally if you introduce a new display size, at roughly -0.022em.
- Variants live in recipes. Header variants are
header-landing,header-inner,header-inner-2and their-mobiletwins; footer variants arefooter-landingandfooter-inner. Extend an existing recipe before creating a new one, and treat flagged recipes (e.g.card-4, flagged: thecard-4-group-4y did not reproduce the measured 163px) as approximate. - Status hues stay in product mockups.
accent-blue,danger,successandaccent-cyan-tintmust not leak into marketing chrome, backgrounds or headings.
Known Gaps
- Analysis is two-viewport. Breakpoint values and tablet behavior are unknown.
- No section-rhythm measurement. The vertical spacing between page sections and the page-level grid gutters carry no verified token.
- Many recipes did not reproduce exactly. These include
card,card-2,card-3,card-4,card-6(30% pixel match),card-7,board-column,board-column-2,table,footer-landing,footer-inner,label-chipandbadge(86% match), andicon-button,icon-button-2andicon-button-3. Treat their geometry as approximate. card-5is not verifiable: page media covered most of the component, so the comparison could not be judged.- Unreached content: several board-column, card-7 and table internals are marked "content not captured". The dense mockup interiors are only partly specified.
- Interaction states are limited to the captured hover and focus. Active/pressed states, the opened mobile menu, accordion expansion, dropdowns and toggles are not documented.
- Motion was not captured: transitions, scroll animations and the hero mockup's behavior are unknown.
- The gradient glow and fade masks on the hero and preview cards were observed visually but not measured.
- Auth-walled surfaces were not captured: the actual Linear app, login and signup flows.
这份 DESIGN.md 文件使用英文,因为 AI 编程智能体以英文读取它。
提取自 Linear 的公开网站,并非官方品牌规范。查看其他网站的字体
相似示例
浏览全部
Notion
Notion 营销首页以深海军蓝(#02093a)的首屏区块搭配浅色(#f6f5f4)的主体背景,所有文字层级统一使用定制字体 NotionInter。设计采用 12 栏网格,栏间距为 28px,圆角体系兼顾两种规格:卡片使用 8px,药丸形按钮使用 9999px。浮层元素则采用多层递进式阴影系统。品牌蓝(#2537b1)用于行动按钮与重点强调,从 gray-200 到 gray-900 的语义化灰阶则负责所有文字与背景面的层级划分。

Figma
Figma的营销网站采用鲜明的黑白单色体系,核心是其自有的figmaSans可变字体。设计以排版为主导:大号展示标题采用88px/56px,字距紧凑且为负值,与字重330的轻盈正文形成对比。按钮使用全圆角胶囊形状(border-radius: 9999px),实心黑底配白色文字。布局基于网格,最大内容宽度为1440px,每个区块上下留白80px,画布干净为白色。层次感很弱,阴影是基于oklch的细微叠加效果。页脚横幅中出现淡紫色的强调色#cb9fd2。整体风格自信、排版讲究,并突出品牌形象。

Airbnb
Airbnb 的设计系统以一款专有的可变字体(Airbnb Cereal VF)为核心,配色接近单色的中性色调,以深炭色(#222222)和浅灰色为基调。品牌标志性的珊瑚粉色"Rausch"(#ff385c)仅用于主要行动按钮和标志。布局采用响应式图片卡片网格,图片与文字的比例宽松,卡片带有 20px 的柔和圆角,并通过多层环境阴影营造细微的层次感,避免强烈的明暗对比。搜索栏是一个醒目的胶囊形容器,统一了用户的核心操作。
IKEA
IKEA的全球首页采用大胆、扁平的设计系统,以标志性的IKEA黄色(#ffdb00)作为主要操作区域,并以IKEA蓝色(#0058a3)作为品牌标识的点缀色。整个字体体系基于一款定制字体Noto IKEA构建,使用400和700两种字重,字号等级划分严谨,从14px的正文到51px的展示标题。层级主要通过色彩对比和版面结构来体现,而非依靠阴影。版面采用最大宽度为90rem的容器,桌面端网格间距为1.5rem,交互元素统一应用8px的圆角。米白色背景(#fffefb)与纯粹的#111111文字形成温和对比,营造出高对比度、易于阅读的无障碍浏览体验。

Railway
Railway 的设计系统是一套以深色为主的开发者平台界面,底色是近乎黑色的深海军蓝(#13111c、#0b0b0f),文字采用高对比度的米白色(#f7f7f8),品牌强调色为独特的紫色(#853bce / #553f83)。首屏使用 IBM Plex Serif 呈现编辑式的厚重感,界面文案统一使用 Inter,代码场景则使用 JetBrains Mono 与 SF Mono。层级关系主要依靠内嵌的白色发光描边(rgba(255,255,255,0.2) 1.5px inset)来实现,而非投影,使界面呈现玻璃面板般的质感。间距系统以 4px 为基础,节奏紧凑而明确,常用 8/12/16/24/32。圆角普遍较小,以 4px 为主,卡片与首屏容器则有选择地使用 8px 和 16px。

Shopify
Shopify 营销首页采用极具冲击力的全幅视频主视觉,近黑色背景(#02090a)与上方白色导航栏形成鲜明对比。品牌主色为醒目的薄荷绿(#36f4a4),克制地用于高亮和交互状态。字体分工明确:展示与编辑类标题使用 NeueHaasGrotesk,界面正文使用 Inter-Variable。CTA 按钮采用全圆角药丸形(border-radius: 9999px)。整体风格自信、高对比、充满憧憬,旨在将访客转化为商家。