Files
awesome-design-md/design-md/raycast/preview-dark.html
2026-04-01 17:57:27 +03:00

609 lines
28 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Design System Inspired by Raycast — Dark Mode</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet">
<style>
:root {
--bg: #040506;
--bg-100: #0c0d0e;
--bg-card: #151617;
--white: #ffffff;
--fg: #f4f4f6;
--light-gray: #c8c8ca;
--silver: #b0b0b2;
--med-gray: #8e8e90;
--dim-gray: #5e5f61;
--dark-gray: #3a3b3d;
--border: #1e1f21;
--dark-border: #262728;
--button-fg: #121314;
--red: #ff6363;
--blue: #55b3ff;
--green: #5fc992;
--yellow: #ffbc33;
--red-t: rgba(255, 99, 99, 0.15);
--blue-t: rgba(85, 179, 255, 0.15);
--border-subtle: rgba(255, 255, 255, 0.04);
--border-med: rgba(255, 255, 255, 0.08);
--button-bg: hsla(0, 0%, 100%, 0.815);
--shadow-ring: rgb(22, 23, 25) 0px 0px 0px 1px, rgb(4, 5, 6) 0px 0px 0px 1px inset;
--shadow-button: rgba(255, 255, 255, 0.04) 0px 1px 0px 0px inset, rgba(255, 255, 255, 0.2) 0px 0px 0px 1px, rgba(0, 0, 0, 0.25) 0px -1px 0px 0px inset;
--shadow-float: rgba(0, 0, 0, 0.6) 0px 0px 0px 2px, rgba(255, 255, 255, 0.14) 0px 0px 14px 0px, rgba(0, 0, 0, 0.25) 0px -1px 0.4px 0px inset, rgba(255, 255, 255, 0.8) 0px 1px 0.4px 0px inset;
--font: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
--font-mono: 'GeistMono', ui-monospace, SFMono-Regular, monospace;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
font-family: var(--font);
background: var(--bg);
color: var(--fg);
line-height: 1.6;
-webkit-font-smoothing: antialiased;
font-feature-settings: "calt", "kern", "liga", "ss03";
}
.dark-badge {
position: fixed; top: 14px; right: 14px; z-index: 200;
background: var(--white); color: var(--bg);
padding: 5px 12px; border-radius: 86px;
font-size: 11px; font-weight: 600; letter-spacing: 0.2px;
}
.nav {
position: sticky; top: 0; z-index: 100;
display: flex; align-items: center; justify-content: space-between;
padding: 14px 32px;
background: rgba(4, 5, 6, 0.9);
backdrop-filter: blur(12px);
border-bottom: 1px solid var(--border-subtle);
}
.nav-brand { font-size: 15px; font-weight: 600; color: var(--white); letter-spacing: 0.2px; }
.nav-links { display: flex; gap: 24px; align-items: center; list-style: none; }
.nav-links a {
color: var(--med-gray); text-decoration: none; font-size: 14px; font-weight: 500;
letter-spacing: 0.2px; transition: color 0.2s;
}
.nav-links a:hover { color: var(--white); }
.nav-cta {
background: var(--button-bg); color: var(--button-fg) !important;
padding: 8px 20px; border-radius: 86px; font-weight: 600; font-size: 14px;
transition: background 0.2s; letter-spacing: 0.2px;
}
.nav-cta:hover { background: var(--white); }
.hero {
padding: 120px 32px 100px; text-align: center;
max-width: 1200px; margin: 0 auto;
position: relative; overflow: hidden;
}
.hero::before {
content: '';
position: absolute; top: -40px; right: -60px;
width: 400px; height: 400px;
background: repeating-linear-gradient(-45deg, var(--red) 0px, var(--red) 18px, transparent 18px, transparent 36px);
opacity: 0.1; filter: blur(1px);
border-radius: 20px; transform: rotate(12deg);
}
.hero h1 {
font-size: 72px; font-weight: 600; letter-spacing: 0px; line-height: 1.1;
color: var(--white); margin-bottom: 20px; position: relative;
font-feature-settings: 'liga' 0, 'ss02', 'ss08';
}
.hero .subtitle {
font-size: 18px; color: var(--med-gray); letter-spacing: 0.2px;
line-height: 1.5; max-width: 520px; margin: 0 auto 40px; position: relative;
}
.hero-buttons { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; position: relative; }
.btn-primary {
display: inline-flex; align-items: center;
background: var(--button-bg); color: var(--button-fg);
padding: 12px 28px; border-radius: 86px;
font-size: 16px; font-weight: 600; text-decoration: none;
border: none; cursor: pointer; transition: background 0.2s, opacity 0.2s;
letter-spacing: 0.2px; font-family: var(--font);
}
.btn-primary:hover { background: var(--white); }
.btn-secondary {
display: inline-flex; align-items: center;
background: transparent; color: var(--white);
padding: 12px 28px; border-radius: 86px;
font-size: 16px; font-weight: 500; text-decoration: none;
border: 1px solid var(--border-med); cursor: pointer;
transition: opacity 0.2s; letter-spacing: 0.2px; font-family: var(--font);
}
.btn-secondary:hover { opacity: 0.6; }
.section { max-width: 1200px; margin: 0 auto; padding: 80px 32px; }
.section-title {
font-size: 44px; font-weight: 600; letter-spacing: 0px; line-height: 1.1; margin-bottom: 12px;
font-feature-settings: 'liga' 0, 'ss02', 'ss08';
}
.section-desc { font-size: 16px; color: var(--med-gray); margin-bottom: 48px; letter-spacing: 0.2px; }
.section-divider {
border: none; border-top: 1px solid var(--border-subtle);
max-width: 1136px; margin: 0 auto;
}
.color-group { margin-bottom: 40px; }
.color-group-title {
font-size: 12px; font-weight: 600; color: var(--dim-gray);
text-transform: uppercase; letter-spacing: 0.4px; margin-bottom: 16px;
}
.color-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 14px; }
.color-swatch {
border-radius: 12px; overflow: hidden;
background: var(--bg-100); box-shadow: var(--shadow-ring);
}
.color-swatch-preview { height: 72px; width: 100%; }
.color-swatch-info { padding: 10px 12px; }
.color-swatch-name { font-size: 13px; font-weight: 600; margin-bottom: 2px; letter-spacing: 0.1px; }
.color-swatch-hex { font-size: 11px; color: var(--dim-gray); font-family: var(--font-mono); letter-spacing: 0.2px; }
.color-swatch-role { font-size: 11px; color: var(--med-gray); margin-top: 3px; line-height: 1.4; }
.type-sample { padding: 24px 0; border-bottom: 1px solid var(--border-subtle); }
.type-sample:last-child { border-bottom: none; }
.type-label { font-size: 11px; color: var(--blue); letter-spacing: 0.4px; text-transform: uppercase; margin-bottom: 8px; font-weight: 600; }
.type-spec { font-size: 12px; color: var(--dim-gray); margin-top: 8px; letter-spacing: 0.2px; }
.button-showcase { display: flex; gap: 20px; flex-wrap: wrap; align-items: center; }
.btn-ghost {
background: transparent; color: var(--dim-gray);
padding: 12px 28px; border-radius: 86px;
font-size: 16px; font-weight: 500; border: none; cursor: pointer;
box-shadow: var(--shadow-button); transition: opacity 0.2s;
letter-spacing: 0.2px; font-family: var(--font);
}
.btn-ghost:hover { opacity: 0.6; }
.btn-rect {
background: transparent; color: var(--white);
padding: 10px 20px; border-radius: 6px;
font-size: 14px; font-weight: 500;
border: 1px solid var(--border-med); cursor: pointer;
box-shadow: rgba(0, 0, 0, 0.05) 0px 7px 3px 0px, rgba(0, 0, 0, 0.3) 0px 4px 4px 0px;
transition: opacity 0.2s; letter-spacing: 0.2px; font-family: var(--font);
}
.btn-rect:hover { opacity: 0.6; }
.btn-label { display: block; font-size: 11px; color: var(--dim-gray); margin-top: 8px; text-align: center; letter-spacing: 0.2px; }
.btn-item { text-align: center; }
.card-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 16px; }
.card {
background: var(--bg-100); border-radius: 16px; padding: 28px;
border: 1px solid var(--border-subtle);
box-shadow: var(--shadow-ring); transition: border-color 0.3s;
}
.card:hover { border-color: rgba(255, 255, 255, 0.1); }
.card-float { box-shadow: var(--shadow-float); border: none; }
.card-title { font-size: 20px; font-weight: 600; letter-spacing: 0px; margin-bottom: 8px; line-height: 1.2; }
.card-text { font-size: 14px; color: var(--med-gray); line-height: 1.5; letter-spacing: 0.2px; }
.card-tag {
display: inline-block; padding: 2px 8px;
background: var(--bg-card); border-radius: 6px;
font-size: 12px; font-weight: 600; color: var(--light-gray);
margin-bottom: 12px; letter-spacing: 0.1px;
}
.form-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 24px; }
.form-group { display: flex; flex-direction: column; gap: 6px; }
.form-label { font-size: 14px; font-weight: 500; color: var(--med-gray); letter-spacing: 0.2px; }
.form-input {
background: var(--bg); border: 1px solid rgba(255, 255, 255, 0.06);
border-radius: 8px; padding: 12px 14px; color: var(--fg);
font-size: 14px; font-family: var(--font); outline: none;
transition: border-color 0.2s, box-shadow 0.2s; letter-spacing: 0.2px;
}
.form-input::placeholder { color: var(--dim-gray); }
.form-input:focus { border-color: var(--blue); box-shadow: 0 0 0 3px var(--blue-t); }
.form-input-error { border-color: var(--red); box-shadow: 0 0 0 3px var(--red-t); }
.form-error-text { font-size: 12px; color: var(--red); letter-spacing: 0.2px; }
textarea.form-input { min-height: 100px; resize: vertical; }
.spacing-row { display: flex; align-items: center; gap: 16px; margin-bottom: 10px; }
.spacing-box { height: 28px; background: var(--blue); border-radius: 4px; opacity: 0.4; }
.spacing-label { font-size: 12px; color: var(--dim-gray); min-width: 50px; text-align: right; letter-spacing: 0.2px; }
.radius-row { display: flex; gap: 20px; flex-wrap: wrap; align-items: flex-end; }
.radius-item { text-align: center; }
.radius-box {
width: 64px; height: 64px;
background: rgba(255, 255, 255, 0.03);
border: 1px solid var(--border-subtle); margin-bottom: 8px;
}
.radius-value { font-size: 11px; color: var(--dim-gray); letter-spacing: 0.2px; }
.radius-context { font-size: 10px; color: var(--dark-gray); margin-top: 2px; }
.elevation-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 20px; }
.elevation-card { padding: 24px; border-radius: 12px; background: var(--bg-100); min-height: 110px; }
.elevation-label { font-size: 14px; font-weight: 600; margin-bottom: 6px; letter-spacing: 0.1px; }
.elevation-desc { font-size: 12px; color: var(--med-gray); line-height: 1.5; letter-spacing: 0.2px; }
.footer {
text-align: center; padding: 48px 32px;
border-top: 1px solid var(--border-subtle); margin-top: 40px;
}
.footer p { font-size: 13px; color: var(--dim-gray); letter-spacing: 0.2px; }
.footer a { color: var(--blue); text-decoration: none; }
@media (max-width: 768px) {
.hero h1 { font-size: 44px; }
.hero .subtitle { font-size: 16px; }
.section-title { font-size: 32px; }
.nav-links { display: none; }
.color-grid { grid-template-columns: repeat(2, 1fr); }
.card-grid { grid-template-columns: 1fr; }
.form-grid { grid-template-columns: 1fr; }
.elevation-grid { grid-template-columns: 1fr; }
.hero::before { width: 250px; height: 250px; top: -20px; right: -40px; }
}
</style>
</head>
<body>
<div class="dark-badge">Dark Mode</div>
<nav class="nav">
<span class="nav-brand">awesome-design-md</span>
<ul class="nav-links">
<li><a href="#colors">Colors</a></li>
<li><a href="#typography">Typography</a></li>
<li><a href="#buttons">Buttons</a></li>
<li><a href="#cards">Cards</a></li>
<li><a href="#forms">Forms</a></li>
<li><a href="#elevation">Elevation</a></li>
<li><a href="#" class="nav-cta">Download</a></li>
</ul>
</nav>
<section class="hero">
<h1>Design System<br>Inspired by Raycast</h1>
<p class="subtitle">A visual catalog of design tokens, components, and patterns extracted from Raycast's marketing site and documented in DESIGN.md.</p>
<div class="hero-buttons">
<a href="#colors" class="btn-primary">Explore Tokens</a>
<a href="#buttons" class="btn-secondary">View Components</a>
</div>
</section>
<hr class="section-divider">
<section class="section" id="colors">
<h2 class="section-title">Color Palette</h2>
<p class="section-desc">Near-black blue-tinted backgrounds, precision grays, and bold semantic accents.</p>
<div class="color-group">
<h3 class="color-group-title">Primary</h3>
<div class="color-grid">
<div class="color-swatch">
<div class="color-swatch-preview" style="background: #07080a; border-bottom: 1px solid var(--border-subtle);"></div>
<div class="color-swatch-info">
<div class="color-swatch-name">Near-Black Blue</div>
<div class="color-swatch-hex">#07080a</div>
<div class="color-swatch-role">Page background</div>
</div>
</div>
<div class="color-swatch">
<div class="color-swatch-preview" style="background: #f9f9f9;"></div>
<div class="color-swatch-info">
<div class="color-swatch-name">Near White</div>
<div class="color-swatch-hex">#f9f9f9</div>
<div class="color-swatch-role">Primary text</div>
</div>
</div>
<div class="color-swatch">
<div class="color-swatch-preview" style="background: #ff6363;"></div>
<div class="color-swatch-info">
<div class="color-swatch-name">Raycast Red</div>
<div class="color-swatch-hex">#ff6363</div>
<div class="color-swatch-role">Brand accent, hero stripes</div>
</div>
</div>
</div>
</div>
<div class="color-group">
<h3 class="color-group-title">Secondary & Semantic</h3>
<div class="color-grid">
<div class="color-swatch">
<div class="color-swatch-preview" style="background: #55b3ff;"></div>
<div class="color-swatch-info">
<div class="color-swatch-name">Raycast Blue</div>
<div class="color-swatch-hex">#55b3ff</div>
<div class="color-swatch-role">Links, interactive accent</div>
</div>
</div>
<div class="color-swatch">
<div class="color-swatch-preview" style="background: #5fc992;"></div>
<div class="color-swatch-info">
<div class="color-swatch-name">Raycast Green</div>
<div class="color-swatch-hex">#5fc992</div>
<div class="color-swatch-role">Success states</div>
</div>
</div>
<div class="color-swatch">
<div class="color-swatch-preview" style="background: #ffbc33;"></div>
<div class="color-swatch-info">
<div class="color-swatch-name">Raycast Yellow</div>
<div class="color-swatch-hex">#ffbc33</div>
<div class="color-swatch-role">Warning, highlights</div>
</div>
</div>
</div>
</div>
<div class="color-group">
<h3 class="color-group-title">Surface & Background</h3>
<div class="color-grid">
<div class="color-swatch">
<div class="color-swatch-preview" style="background: #101111; border-bottom: 1px solid var(--border-subtle);"></div>
<div class="color-swatch-info">
<div class="color-swatch-name">Surface 100</div>
<div class="color-swatch-hex">#101111</div>
<div class="color-swatch-role">Card backgrounds</div>
</div>
</div>
<div class="color-swatch">
<div class="color-swatch-preview" style="background: #1b1c1e; border-bottom: 1px solid var(--border-subtle);"></div>
<div class="color-swatch-info">
<div class="color-swatch-name">Card Surface</div>
<div class="color-swatch-hex">#1b1c1e</div>
<div class="color-swatch-role">Badge fills, containers</div>
</div>
</div>
<div class="color-swatch">
<div class="color-swatch-preview" style="background: hsla(0,0%,100%,0.815);"></div>
<div class="color-swatch-info">
<div class="color-swatch-name">Button White</div>
<div class="color-swatch-hex">hsla(0,0%,100%,0.815)</div>
<div class="color-swatch-role">Primary CTA background</div>
</div>
</div>
</div>
</div>
<div class="color-group">
<h3 class="color-group-title">Neutrals & Text</h3>
<div class="color-grid">
<div class="color-swatch">
<div class="color-swatch-preview" style="background: #cecece;"></div>
<div class="color-swatch-info">
<div class="color-swatch-name">Light Gray</div>
<div class="color-swatch-hex">#cecece</div>
<div class="color-swatch-role">Secondary text</div>
</div>
</div>
<div class="color-swatch">
<div class="color-swatch-preview" style="background: #9c9c9d;"></div>
<div class="color-swatch-info">
<div class="color-swatch-name">Medium Gray</div>
<div class="color-swatch-hex">#9c9c9d</div>
<div class="color-swatch-role">Links, nav, descriptions</div>
</div>
</div>
<div class="color-swatch">
<div class="color-swatch-preview" style="background: #6a6b6c;"></div>
<div class="color-swatch-info">
<div class="color-swatch-name">Dim Gray</div>
<div class="color-swatch-hex">#6a6b6c</div>
<div class="color-swatch-role">Disabled, low-emphasis</div>
</div>
</div>
<div class="color-swatch">
<div class="color-swatch-preview" style="background: #434345;"></div>
<div class="color-swatch-info">
<div class="color-swatch-name">Dark Gray</div>
<div class="color-swatch-hex">#434345</div>
<div class="color-swatch-role">Muted borders</div>
</div>
</div>
<div class="color-swatch">
<div class="color-swatch-preview" style="background: #252829; border: 1px solid var(--border-subtle);"></div>
<div class="color-swatch-info">
<div class="color-swatch-name">Border</div>
<div class="color-swatch-hex">#252829</div>
<div class="color-swatch-role">Card borders, dividers</div>
</div>
</div>
</div>
</div>
</section>
<hr class="section-divider">
<section class="section" id="typography">
<h2 class="section-title">Typography Scale</h2>
<p class="section-desc">Inter with positive letter-spacing for airy dark-mode readability. GeistMono for code.</p>
<div class="type-sample">
<div class="type-label">Display Hero — 64px / 600 / 1.10 / 0px</div>
<div style="font-size: 64px; font-weight: 600; line-height: 1.1; font-feature-settings: 'liga' 0, 'ss02', 'ss08';">Your shortcut to everything</div>
<div class="type-spec">Inter — OpenType: liga 0, ss02, ss08</div>
</div>
<div class="type-sample">
<div class="type-label">Section Display — 56px / 400 / 1.17 / +0.2px</div>
<div style="font-size: 48px; font-weight: 400; line-height: 1.17; letter-spacing: 0.2px;">Supercharged productivity</div>
<div class="type-spec">Inter — OpenType: calt, kern, liga, ss03</div>
</div>
<div class="type-sample">
<div class="type-label">Section Heading — 24px / 500 / normal / +0.2px</div>
<div style="font-size: 24px; font-weight: 500; letter-spacing: 0.2px;">Built for speed, designed for flow</div>
<div class="type-spec">Inter — OpenType: calt, kern, liga, ss03</div>
</div>
<div class="type-sample">
<div class="type-label">Body — 16px / 500 / 1.60 / +0.2px</div>
<div style="font-size: 16px; font-weight: 500; line-height: 1.6; letter-spacing: 0.2px; color: var(--med-gray);">Raycast lets you control your tools with a few keystrokes. It's designed to keep you in the flow state — search, navigate, and execute without touching the mouse.</div>
<div class="type-spec">Inter — weight 500 baseline for dark-mode legibility</div>
</div>
<div class="type-sample">
<div class="type-label">Caption — 14px / 500 / 1.14 / +0.2px</div>
<div style="font-size: 14px; font-weight: 500; line-height: 1.14; letter-spacing: 0.2px; color: var(--med-gray);">Available on macOS 12.0 and later</div>
<div class="type-spec">Inter — small labels, metadata</div>
</div>
<div class="type-sample">
<div class="type-label">Code — 14px / 500 / 1.60 / +0.3px</div>
<div style="font-family: var(--font-mono); font-size: 14px; font-weight: 500; line-height: 1.6; letter-spacing: 0.3px; color: var(--blue);">brew install --cask raycast</div>
<div class="type-spec">GeistMono — code blocks, terminal output</div>
</div>
</section>
<hr class="section-divider">
<section class="section" id="buttons">
<h2 class="section-title">Button Variants</h2>
<p class="section-desc">Pill CTAs with translucent white, ghost variants with macOS-native inset shadows.</p>
<div class="button-showcase">
<div class="btn-item">
<a href="#" class="btn-primary">Download Raycast</a>
<span class="btn-label">Primary / White Pill</span>
</div>
<div class="btn-item">
<a href="#" class="btn-secondary">Learn More</a>
<span class="btn-label">Secondary / Outline Pill</span>
</div>
<div class="btn-item">
<button class="btn-ghost">Explore Store</button>
<span class="btn-label">Ghost / Inset Shadow</span>
</div>
<div class="btn-item">
<button class="btn-rect">View Extension</button>
<span class="btn-label">Rectangular / 6px</span>
</div>
</div>
</section>
<hr class="section-divider">
<section class="section" id="cards">
<h2 class="section-title">Card Examples</h2>
<p class="section-desc">Dark surface cards with double-ring shadows and subtle border containment.</p>
<div class="card-grid">
<div class="card">
<div class="card-tag">Extensions</div>
<h3 class="card-title">Store Ecosystem</h3>
<p class="card-text">Browse thousands of extensions built by the community. Install with one click and customize to fit your workflow.</p>
</div>
<div class="card card-float">
<div class="card-tag">AI</div>
<h3 class="card-title">Raycast AI</h3>
<p class="card-text">Chat with AI, generate text, translate, summarize — all from your command bar without switching context.</p>
</div>
<div class="card">
<div class="card-tag">Productivity</div>
<h3 class="card-title">Clipboard History</h3>
<p class="card-text">Never lose copied text again. Search your entire clipboard history and paste anything from the past.</p>
</div>
</div>
</section>
<hr class="section-divider">
<section class="section" id="forms">
<h2 class="section-title">Form Elements</h2>
<p class="section-desc">Dark inputs with blue focus rings and red error glows.</p>
<div class="form-grid">
<div class="form-group">
<label class="form-label">Full Name</label>
<input type="text" class="form-input" placeholder="Enter your name">
</div>
<div class="form-group">
<label class="form-label">Email (Focus State)</label>
<input type="email" class="form-input" placeholder="you@raycast.com" style="border-color: var(--blue); box-shadow: 0 0 0 3px var(--blue-t);">
</div>
<div class="form-group">
<label class="form-label">API Key (Error State)</label>
<input type="text" class="form-input form-input-error" value="invalid-key-123">
<span class="form-error-text">Invalid API key format</span>
</div>
<div class="form-group">
<label class="form-label">Description</label>
<textarea class="form-input" placeholder="Describe your extension..."></textarea>
</div>
</div>
</section>
<hr class="section-divider">
<section class="section" id="spacing">
<h2 class="section-title">Spacing Scale</h2>
<p class="section-desc">8px base unit with precise sub-values for fine-tuned layout.</p>
<div>
<div class="spacing-row"><span class="spacing-label">2px</span><div class="spacing-box" style="width: 8px;"></div></div>
<div class="spacing-row"><span class="spacing-label">4px</span><div class="spacing-box" style="width: 16px;"></div></div>
<div class="spacing-row"><span class="spacing-label">8px</span><div class="spacing-box" style="width: 40px;"></div></div>
<div class="spacing-row"><span class="spacing-label">12px</span><div class="spacing-box" style="width: 64px;"></div></div>
<div class="spacing-row"><span class="spacing-label">16px</span><div class="spacing-box" style="width: 88px;"></div></div>
<div class="spacing-row"><span class="spacing-label">20px</span><div class="spacing-box" style="width: 120px;"></div></div>
<div class="spacing-row"><span class="spacing-label">24px</span><div class="spacing-box" style="width: 152px;"></div></div>
<div class="spacing-row"><span class="spacing-label">32px</span><div class="spacing-box" style="width: 200px;"></div></div>
<div class="spacing-row"><span class="spacing-label">40px</span><div class="spacing-box" style="width: 260px;"></div></div>
</div>
</section>
<hr class="section-divider">
<section class="section" id="radius">
<h2 class="section-title">Border Radius Scale</h2>
<p class="section-desc">From micro 2px spans to full 86px+ pill buttons.</p>
<div class="radius-row">
<div class="radius-item"><div class="radius-box" style="border-radius: 2px;"></div><div class="radius-value">2px</div><div class="radius-context">Micro</div></div>
<div class="radius-item"><div class="radius-box" style="border-radius: 4px;"></div><div class="radius-value">4px</div><div class="radius-context">Keys</div></div>
<div class="radius-item"><div class="radius-box" style="border-radius: 6px;"></div><div class="radius-value">6px</div><div class="radius-context">Buttons</div></div>
<div class="radius-item"><div class="radius-box" style="border-radius: 8px;"></div><div class="radius-value">8px</div><div class="radius-context">Inputs</div></div>
<div class="radius-item"><div class="radius-box" style="border-radius: 12px;"></div><div class="radius-value">12px</div><div class="radius-context">Cards</div></div>
<div class="radius-item"><div class="radius-box" style="border-radius: 16px;"></div><div class="radius-value">16px</div><div class="radius-context">Large cards</div></div>
<div class="radius-item"><div class="radius-box" style="border-radius: 20px;"></div><div class="radius-value">20px</div><div class="radius-context">Hero</div></div>
<div class="radius-item"><div class="radius-box" style="border-radius: 86px; width: 64px; height: 40px;"></div><div class="radius-value">86px</div><div class="radius-context">Pill</div></div>
</div>
</section>
<hr class="section-divider">
<section class="section" id="elevation">
<h2 class="section-title">Elevation & Depth</h2>
<p class="section-desc">macOS-native shadow system with multi-layer inset highlights.</p>
<div class="elevation-grid">
<div class="elevation-card" style="box-shadow: none; border: 1px solid var(--border-subtle);">
<div class="elevation-label">Level 0 — Void</div>
<div class="elevation-desc">No shadow. The baseline void.</div>
</div>
<div class="elevation-card" style="box-shadow: rgba(0, 0, 0, 0.35) 0px 1.189px 2.377px 0px;">
<div class="elevation-label">Level 1 — Subtle</div>
<div class="elevation-desc">Minimal lift for inline elements.</div>
</div>
<div class="elevation-card" style="box-shadow: var(--shadow-ring);">
<div class="elevation-label">Level 2 — Ring</div>
<div class="elevation-desc">Double-ring containment. Standard card.</div>
</div>
<div class="elevation-card" style="box-shadow: var(--shadow-button);">
<div class="elevation-label">Level 3 — Button</div>
<div class="elevation-desc">macOS press effect. White top, dark inset.</div>
</div>
<div class="elevation-card" style="box-shadow: var(--shadow-float);">
<div class="elevation-label">Level 4 — Floating</div>
<div class="elevation-desc">Command palette depth. Maximum presence.</div>
</div>
</div>
</section>
<footer class="footer">
<p>Design system extracted from <a href="https://raycast.com">raycast.com</a> — Generated by awesome-design-md</p>
</footer>
</body>
</html>