ghost · desktop
추출 신뢰도
- 컴포넌트가 사이트와 93% 일치
- 사이트 색상의 100% 반영
- 사이트 텍스트 스타일의 100% 반영
- 사이트에서 확인된 토큰 100%
Linear의 디자인 시스템은 엔지니어링 팀을 위해 만들어진, 다크 모드를 우선으로 한 고밀도 제품 UI입니다. 표면 팔레트는 거의 검은색인 #08090a와 #0f1011을 기준으로 하며, 사이드바, 카드, 패널을 구분하기 위해 여러 단계의 어두운 회색을 겹겹이 사용합니다. 타이포그래피는 Inter Variable만 사용하고, 디스플레이 크기에서는 정교한 음의 자간을 적용합니다. 인라인 코드에는 Berkeley Mono를 씁니다. 모서리 반경은 의도적으로 작게 유지되며, 주로 2~6px을 사용하고 알약 모양은 배지와 상태 칩에만 제한적으로 씁니다. 입체감은 강한 레이어 효과보다는 1px 안쪽 테두리와 낮은 불투명도의 그림자로 표현합니다. 기본 CTA 색상은 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개 다름
기본 상태, 인스턴스 2100% 일치측정값 73개 일치
기본 상태, 인스턴스 3100% 일치측정값 73개 일치
desktop
Icon x: 14px (사이트: 19px).
기본 상태100% 일치측정값 293개 중 1개 다름
기본 상태, 인스턴스 2100% 일치측정값 293개 중 1개 다름
기본 상태, 인스턴스 3100% 일치측정값 293개 중 1개 다름
기본 상태, 인스턴스 4100% 일치측정값 293개 중 1개 다름
desktop
Icon x: 14px (사이트: 19px).
기본 상태100% 일치측정값 235개 중 1개 다름
기본 상태, 인스턴스 2100% 일치측정값 235개 중 1개 다름
기본 상태, 인스턴스 3100% 일치측정값 235개 중 1개 다름
desktop
Group 4 y: 87px (사이트: 163px); List y: 88px (사이트: 164px) 외 15개.
기본 상태100% 일치측정값 361개 중 17개 다름
호버100% 일치측정값 18개 일치
포커스100% 일치측정값 18개 일치
기본 상태, 인스턴스 299% 일치측정값 361개 중 17개 다름
기본 상태, 인스턴스 398% 일치측정값 361개 중 17개 다름
기본 상태, 인스턴스 4100% 일치측정값 361개 중 17개 다름
desktop
검증 불가: 페이지가 넣은 사진, 미디어, 광고가 대부분을 덮고 있고 그 외에는 다른 점이 없어서, 비교 결과로는 레시피에 대해 알 수 있는 것이 없어요.
기본 상태100% 일치측정값 122개 일치
포커스100% 일치측정값 18개 일치
기본 상태, 인스턴스 2100% 일치측정값 122개 일치
기본 상태, 인스턴스 3100% 일치측정값 122개 일치
기본 상태, 인스턴스 4100% 일치측정값 122개 일치
기본 상태, 인스턴스 5100% 일치측정값 122개 일치
기본 상태, 인스턴스 6100% 일치측정값 122개 일치
desktop
사이트와의 렌더링 일치도가 30%로, 기준치 96%에 못 미쳐요.
기본 상태30% 일치측정값 108개 일치
포커스29% 일치측정값 18개 일치
기본 상태, 인스턴스 230% 일치측정값 108개 일치
기본 상태, 인스턴스 3100% 일치측정값 108개 일치
기본 상태, 인스턴스 430% 일치측정값 108개 일치
기본 상태, 인스턴스 530% 일치측정값 108개 일치
기본 상태, 인스턴스 6100% 일치측정값 108개 일치
desktop
Group 6 height: 56px (사이트: 96px); Text 3 y: 42px (사이트: 55px) 외 39개.
기본 상태100% 일치측정값 588개 중 41개 다름
기본 상태, 인스턴스 2100% 일치측정값 588개 중 41개 다름
기본 상태, 인스턴스 3100% 일치측정값 588개 중 41개 다름
기본 상태, 인스턴스 4100% 일치측정값 588개 중 41개 다름
Extras14
desktop
desktop
포커스 시, 사이트와의 렌더링 일치도가 86%로, 기준치 96%에 못 미쳐요.
기본 상태99% 일치측정값 48개 일치
포커스86% 일치측정값 22개 일치
desktop
Group 6 height: 56px (사이트: 96px); Text 3 y: 42px (사이트: 55px) 외 39개.
기본 상태100% 일치측정값 588개 중 41개 다름
기본 상태, 인스턴스 2100% 일치측정값 588개 중 41개 다름
기본 상태, 인스턴스 3100% 일치측정값 588개 중 41개 다름
기본 상태, 인스턴스 4100% 일치측정값 588개 중 41개 다름
desktop
Icon 2 x: 14px (사이트: 19px).
기본 상태98% 일치측정값 253개 중 1개 다름
기본 상태, 인스턴스 298% 일치측정값 253개 중 1개 다름
기본 상태, 인스턴스 398% 일치측정값 253개 중 1개 다름
기본 상태, 인스턴스 497% 일치측정값 253개 중 1개 다름
기본 상태, 인스턴스 596% 일치측정값 253개 중 1개 다름
desktop
desktop
Icon x: 0px (사이트: 7px).
기본 상태100% 일치측정값 34개 중 1개 다름
호버100% 일치측정값 18개 일치
포커스98% 일치측정값 18개 일치
desktop
desktop
desktop
포커스 시, 사이트와의 렌더링 일치도가 86%로, 기준치 96%에 못 미쳐요.
기본 상태98% 일치측정값 48개 일치
포커스86% 일치측정값 22개 일치
desktop
기본 상태99% 일치측정값 242개 일치
desktop
desktop
기본 상태100% 일치측정값 27개 일치
기본 상태, 인스턴스 2100% 일치측정값 27개 일치
기본 상태, 인스턴스 3100% 일치측정값 27개 일치
desktop
desktop
기본 상태100% 일치측정값 24개 일치
기본 상태, 인스턴스 2100% 일치측정값 24개 일치
기본 상태, 인스턴스 3100% 일치측정값 24개 일치
기본 상태, 인스턴스 4100% 일치측정값 24개 일치
기본 상태, 인스턴스 5100% 일치측정값 24개 일치
기본 상태, 인스턴스 6100% 일치측정값 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를 사용합니다. 레이아웃은 거터 28px의 12열 그리드를 기반으로 하며, 카드에는 8px, 알약형 요소에는 9999px의 이중 모서리 반경을 적용합니다. 플로팅 UI 요소에는 여러 겹으로 이루어진 점진적 그림자 시스템을 사용합니다. 브랜드 블루(#2537b1)는 CTA와 강조 요소에 쓰이며, gray-200부터 gray-900까지의 의미 기반 회색 단계가 모든 텍스트와 표면의 위계를 구성합니다.

Figma
Figma의 마케팅 사이트는 명확한 흑백 모노크롬 시스템을 바탕으로 하며, 독자적인 가변 폰트 figmaSans를 중심에 두고 있습니다. 디자인은 타이포그래피가 주도하는 방식으로, 88px/56px의 큰 디스플레이 제목은 자간을 좁게 조여 가벼운 굵기 330의 본문 텍스트와 대비를 이룹니다. CTA 버튼은 검은색 바탕에 흰색 글자를 넣은 완전히 둥근 알약 모양(border-radius: 9999px)을 사용합니다. 레이아웃은 그리드 기반으로, 최대 콘텐츠 너비는 1440px이며 섹션 상하 여백은 80px로 넉넉하게 잡혀 있고, 바탕은 깔끔한 흰색입니다. 깊이감 표현은 최소화되어 있으며, 그림자는 oklch 기반의 은은한 오버레이를 사용합니다. 푸터 배너에는 연보라색 포인트 컬러 #cb9fd2가 등장합니다. 전체적인 미감은 자신감 있고, 타이포그래피적으로 세련되며, 브랜드를 전면에 드러내는 느낌입니다.

Airbnb
Airbnb의 디자인 시스템은 단일 독점 가변 폰트(Airbnb Cereal VF)를 중심으로 구축되어 있으며, 짙은 차콜(#222222)과 밝은 그레이를 기반으로 한 거의 무채색에 가까운 중립 팔레트를 사용합니다. 브랜드의 상징적인 "Rausch" 코랄 핑크(#ff385c)는 기본 CTA와 로고에만 제한적으로 사용됩니다. 레이아웃은 반응형 사진 카드 그리드로 이루어지며, 이미지와 텍스트의 비율을 여유 있게 가져갑니다. 카드에는 20px의 부드러운 둥근 모서리가 적용되고, 여러 겹으로 된 은은한 그림자 시스템이 강한 대비 없이 섬세한 깊이감을 만들어 냅니다. 핵심 사용자 행동을 하나로 묶는 검색창은 눈에 잘 띄는 알약 모양의 컨테이너로 구성되어 있습니다.
IKEA
IKEA의 글로벌 홈페이지는 굵고 평평한 디자인 시스템을 바탕으로 하며, 상징적인 IKEA Yellow(#ffdb00)를 주요 액션 영역으로, IKEA Blue(#0058a3)를 브랜드 로고 강조색으로 사용합니다. 전체 타이포그래피 체계는 Noto IKEA라는 단일 커스텀 서체로 구성되며, 400과 700 두께를 사용해 본문 14px에서 디스플레이 제목 51px까지 촘촘하게 정의된 크기 체계를 따릅니다. 입체감은 그림자가 아니라 색의 대비와 레이아웃 구조를 통해 전달됩니다. 레이아웃은 최대 너비 90rem의 컨테이너와 데스크톱 기준 1.5rem의 그리드 간격을 사용하며, 상호작용 요소에는 8px 모서리 반경 토큰을 일관되게 적용합니다. 오프화이트 배경(#fffefb)은 짙은 #111111 텍스트와 어우러져 따뜻함을 더하고, 대비가 높아 읽기 쉽고 접근성이 좋은 화면을 만들어 냅니다.

Railway
Railway의 디자인 시스템은 짙은 네이비 계열의 거의 검은 표면(#13111c, #0b0b0f)을 기반으로 한 다크 중심의 개발자 플랫폼 UI입니다. 고대비의 오프화이트 텍스트(#f7f7f8)와 보라색 브랜드 강조색(#853bce / #553f83)이 특징적입니다. 히어로 영역에는 에디토리얼한 무게감을 주기 위해 IBM Plex Serif를 사용하고, 모든 UI 문구는 Inter가 담당하며, 코드가 표시되는 곳에는 JetBrains Mono와 SF Mono를 씁니다. 입체감은 드롭 섀도 대신 rgba(255,255,255,0.2) 1.5px inset 흰색 발광 테두리로 표현되어, UI 전체에 유리 패널 같은 분위기를 줍니다. 간격 체계는 4px 단위를 기준으로 하며, 8/12/16/24/32의 리듬이 뚜렷합니다. 모서리 반경은 대체로 4px로 작게 유지되고, 카드와 히어로 컨테이너에는 선택적으로 8px과 16px을 적용합니다.

Shopify
Shopify의 마케팅 홈페이지는 화면 전체를 채우는 역동적인 동영상 히어로 섹션을 사용하며, 배경은 #02090a의 거의 검은색으로 위쪽 흰색 내비게이션 바와 강하게 대비됩니다. 주요 브랜드 강조색은 선명한 민트 그린 #36f4a4이며, 하이라이트와 인터랙티브 상태에만 절제해서 사용합니다. 타이포그래피는 디스플레이 및 에디토리얼 제목에 NeueHaasGrotesk를, UI 본문에 Inter-Variable을 나누어 적용합니다. CTA 버튼은 완전히 둥근 필(pill) 형태(border-radius: 9999px)를 사용합니다. 전체적인 시스템은 자신감 있고 고대비이며 열망을 자극하는 느낌으로, 방문자를 판매자로 전환하도록 설계되어 있습니다.