Files
awesome-design-md/design-md/figma/preview.html
necatiozmen 1145c998a1 first commit
2026-03-31 19:37:25 +03:00

842 lines
31 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 Preview: Figma (Light)</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=Space+Mono:wght@400;700&display=swap" rel="stylesheet">
<style>
:root {
--color-black: #000000;
--color-white: #ffffff;
--glass-dark: rgba(0, 0, 0, 0.08);
--glass-light: rgba(255, 255, 255, 0.16);
--font-sans: system-ui, -apple-system, 'Segoe UI', 'SF Pro Display', Helvetica, Arial, sans-serif;
--font-mono: 'Space Mono', 'SF Mono', Menlo, monospace;
/* Light mode tokens */
--bg-page: #ffffff;
--bg-card: #ffffff;
--bg-nav: rgba(255, 255, 255, 0.92);
--text-primary: #000000;
--text-secondary: #000000;
--text-muted: rgba(0, 0, 0, 0.5);
--border-color: rgba(0, 0, 0, 0.12);
--border-subtle: rgba(0, 0, 0, 0.06);
--section-label-color: #000000;
--glass-surface: rgba(0, 0, 0, 0.08);
}
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
background: var(--bg-page);
color: var(--text-primary);
font-family: var(--font-sans);
font-size: 16px;
font-weight: 340;
line-height: 1.45;
letter-spacing: -0.14px;
font-feature-settings: "kern" 1;
-webkit-font-smoothing: antialiased;
}
/* NAV */
.nav {
position: sticky;
top: 0;
z-index: 100;
display: flex;
align-items: center;
justify-content: space-between;
padding: 16px 40px;
background: var(--bg-nav);
backdrop-filter: blur(16px);
border-bottom: 1px solid var(--border-color);
}
.nav-brand {
font-family: var(--font-sans);
font-size: 18px;
font-weight: 700;
letter-spacing: -0.26px;
display: flex;
align-items: center;
gap: 10px;
}
.nav-brand svg { width: 24px; height: 24px; }
.nav-links { display: flex; gap: 32px; align-items: center; }
.nav-links a {
color: var(--text-primary);
text-decoration: none;
font-size: 16px;
font-weight: 400;
letter-spacing: -0.14px;
transition: opacity 0.2s;
}
.nav-links a:hover { opacity: 0.6; }
.nav-cta {
background: var(--color-black);
color: var(--color-white);
padding: 8px 18px 10px;
border: none;
border-radius: 50px;
font-size: 16px;
font-family: var(--font-sans);
font-weight: 480;
letter-spacing: -0.14px;
cursor: pointer;
}
.nav-cta:focus { outline: 2px dashed var(--color-black); outline-offset: 3px; }
/* HERO */
.hero {
position: relative;
text-align: center;
padding: 120px 40px 100px;
overflow: hidden;
background: linear-gradient(135deg, #0acf83 0%, #a259ff 30%, #f24e1e 50%, #ff7262 65%, #1abcfe 80%, #0acf83 100%);
}
.hero h1 {
font-family: var(--font-sans);
font-size: 86px;
font-weight: 400;
line-height: 1.0;
letter-spacing: -1.72px;
margin-bottom: 24px;
color: var(--color-white);
position: relative;
}
.hero p {
color: rgba(255, 255, 255, 0.85);
font-size: 20px;
font-weight: 330;
line-height: 1.4;
letter-spacing: -0.14px;
margin-bottom: 40px;
position: relative;
}
.hero-buttons { display: flex; gap: 16px; justify-content: center; position: relative; }
.btn-hero-primary {
background: var(--color-white);
color: var(--color-black);
padding: 8px 18px 10px;
border: none;
border-radius: 50px;
font-size: 16px;
font-family: var(--font-sans);
font-weight: 480;
letter-spacing: -0.14px;
cursor: pointer;
}
.btn-hero-primary:focus { outline: 2px dashed var(--color-white); outline-offset: 3px; }
.btn-hero-glass {
background: rgba(255, 255, 255, 0.16);
color: var(--color-white);
padding: 8px 18px 10px;
border: none;
border-radius: 50px;
font-size: 16px;
font-family: var(--font-sans);
font-weight: 480;
letter-spacing: -0.14px;
cursor: pointer;
backdrop-filter: blur(8px);
}
.btn-hero-glass:focus { outline: 2px dashed var(--color-white); outline-offset: 3px; }
/* PRODUCT TABS */
.product-tabs {
display: flex;
gap: 8px;
justify-content: center;
margin-bottom: 40px;
position: relative;
}
.product-tab {
background: rgba(255, 255, 255, 0.16);
color: var(--color-white);
padding: 8px 18px;
border: none;
border-radius: 50px;
font-size: 16px;
font-family: var(--font-sans);
font-weight: 480;
letter-spacing: -0.14px;
cursor: pointer;
backdrop-filter: blur(8px);
transition: background 0.2s;
}
.product-tab.active {
background: var(--color-white);
color: var(--color-black);
}
/* SECTIONS */
.section {
max-width: 1200px;
margin: 0 auto;
padding: 80px 40px;
}
.section-title {
font-family: var(--font-mono);
font-size: 18px;
font-weight: 400;
text-transform: uppercase;
letter-spacing: 0.54px;
color: var(--text-muted);
margin-bottom: 12px;
line-height: 1.3;
}
.section-heading {
font-family: var(--font-sans);
font-size: 64px;
font-weight: 400;
line-height: 1.1;
letter-spacing: -0.96px;
margin-bottom: 48px;
}
.section-divider {
border: none;
border-top: 1px solid var(--border-subtle);
margin: 0 40px;
max-width: 1200px;
margin-left: auto;
margin-right: auto;
}
/* COLOR PALETTE */
.color-group { margin-bottom: 40px; }
.color-group-title {
font-size: 26px;
font-weight: 540;
line-height: 1.35;
letter-spacing: -0.26px;
margin-bottom: 20px;
}
.color-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
gap: 16px;
}
.color-swatch {
border: 1px solid var(--border-color);
border-radius: 8px;
overflow: hidden;
}
.color-swatch-block {
height: 80px;
position: relative;
}
.color-swatch-info {
padding: 12px;
background: var(--bg-card);
}
.color-swatch-name { font-size: 14px; font-weight: 700; letter-spacing: -0.14px; margin-bottom: 2px; }
.color-swatch-hex { font-family: var(--font-mono); font-size: 12px; color: var(--text-muted); margin-bottom: 4px; letter-spacing: 0.6px; }
.color-swatch-role { font-size: 12px; color: var(--text-muted); line-height: 1.4; font-weight: 340; }
/* GRADIENT PREVIEW */
.gradient-preview {
border-radius: 8px;
overflow: hidden;
margin-bottom: 16px;
}
.gradient-block {
height: 120px;
border-radius: 8px;
}
.gradient-label {
font-family: var(--font-mono);
font-size: 12px;
color: var(--text-muted);
margin-top: 8px;
letter-spacing: 0.6px;
text-transform: uppercase;
}
/* TYPOGRAPHY */
.type-sample { margin-bottom: 32px; padding-bottom: 32px; border-bottom: 1px solid var(--border-subtle); }
.type-sample:last-child { border-bottom: none; }
.type-sample-text { margin-bottom: 8px; font-feature-settings: "kern" 1; }
.type-sample-label {
font-family: var(--font-mono);
font-size: 12px;
color: var(--text-muted);
letter-spacing: 0.6px;
}
/* WEIGHT SPECTRUM */
.weight-spectrum { display: flex; flex-direction: column; gap: 12px; margin-bottom: 40px; padding: 24px; background: var(--glass-surface); border-radius: 8px; }
.weight-sample { display: flex; align-items: baseline; gap: 16px; }
.weight-sample-text { font-family: var(--font-sans); font-size: 24px; letter-spacing: -0.26px; line-height: 1.35; flex: 1; }
.weight-sample-label { font-family: var(--font-mono); font-size: 11px; color: var(--text-muted); letter-spacing: 0.6px; text-transform: uppercase; min-width: 80px; text-align: right; }
/* BUTTONS */
.button-row {
display: flex;
flex-wrap: wrap;
gap: 24px;
align-items: flex-start;
}
.button-demo { text-align: center; }
.button-demo-label {
font-family: var(--font-mono);
font-size: 11px;
color: var(--text-muted);
margin-top: 12px;
text-transform: uppercase;
letter-spacing: 0.6px;
}
.btn-black-pill {
background: var(--color-black);
color: var(--color-white);
padding: 8px 18px 10px;
border: none;
border-radius: 50px;
font-size: 16px;
font-family: var(--font-sans);
font-weight: 480;
letter-spacing: -0.14px;
cursor: pointer;
}
.btn-black-pill:focus { outline: 2px dashed var(--color-black); outline-offset: 3px; }
.btn-white-pill {
background: var(--color-white);
color: var(--color-black);
padding: 8px 18px 10px;
border: 1px solid var(--border-color);
border-radius: 50px;
font-size: 16px;
font-family: var(--font-sans);
font-weight: 480;
letter-spacing: -0.14px;
cursor: pointer;
}
.btn-white-pill:focus { outline: 2px dashed var(--color-black); outline-offset: 3px; }
.btn-black-circle {
background: var(--color-black);
color: var(--color-white);
width: 48px;
height: 48px;
border: none;
border-radius: 50%;
font-size: 20px;
cursor: pointer;
display: inline-flex;
align-items: center;
justify-content: center;
}
.btn-black-circle:focus { outline: 2px dashed var(--color-black); outline-offset: 3px; }
.btn-glass-dark {
background: var(--glass-dark);
color: var(--color-black);
width: 48px;
height: 48px;
border: none;
border-radius: 50%;
font-size: 20px;
cursor: pointer;
display: inline-flex;
align-items: center;
justify-content: center;
}
.btn-glass-dark:focus { outline: 2px dashed var(--color-black); outline-offset: 3px; }
.btn-glass-light-demo {
background: rgba(255, 255, 255, 0.16);
color: var(--color-white);
width: 48px;
height: 48px;
border: none;
border-radius: 50%;
font-size: 20px;
cursor: pointer;
display: inline-flex;
align-items: center;
justify-content: center;
}
.glass-light-wrapper {
background: var(--color-black);
border-radius: 50%;
padding: 0;
display: inline-flex;
align-items: center;
justify-content: center;
}
/* FOCUS DEMO */
.focus-demo-row {
display: flex;
flex-wrap: wrap;
gap: 24px;
align-items: center;
margin-top: 40px;
padding: 24px;
background: var(--glass-surface);
border-radius: 8px;
}
.focus-demo-label {
font-family: var(--font-mono);
font-size: 12px;
color: var(--text-muted);
letter-spacing: 0.6px;
text-transform: uppercase;
margin-bottom: 8px;
}
.btn-focus-visible {
outline: 2px dashed var(--color-black);
outline-offset: 3px;
}
/* CARDS */
.card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 24px; }
.card {
background: var(--bg-card);
border-radius: 8px;
padding: 28px;
}
.card-standard { border: 1px solid var(--border-color); }
.card-elevated {
border: none;
box-shadow: 0 4px 24px rgba(0, 0, 0, 0.08);
}
.card-glass {
background: var(--glass-surface);
border: none;
}
.card h3 {
font-family: var(--font-sans);
font-size: 24px;
font-weight: 700;
line-height: 1.45;
letter-spacing: normal;
margin-bottom: 12px;
}
.card p { color: var(--text-muted); font-size: 16px; line-height: 1.45; font-weight: 330; letter-spacing: -0.14px; }
.card-label {
font-family: var(--font-mono);
font-size: 12px;
text-transform: uppercase;
letter-spacing: 0.6px;
color: var(--text-muted);
margin-bottom: 16px;
}
/* SPACING */
.spacing-row { display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-end; }
.spacing-item { text-align: center; }
.spacing-box {
background: rgba(0, 0, 0, 0.06);
border: 1px solid rgba(0, 0, 0, 0.12);
border-radius: 2px;
margin-bottom: 8px;
}
.spacing-label {
font-family: var(--font-mono);
font-size: 11px;
color: var(--text-muted);
letter-spacing: 0.6px;
}
/* RADIUS */
.radius-row { display: flex; flex-wrap: wrap; gap: 24px; align-items: center; }
.radius-item { text-align: center; }
.radius-box {
width: 80px;
height: 80px;
background: var(--glass-surface);
border: 1px solid var(--border-color);
margin-bottom: 8px;
}
.radius-label {
font-family: var(--font-mono);
font-size: 11px;
color: var(--text-muted);
letter-spacing: 0.6px;
}
.radius-context {
font-size: 11px;
color: var(--text-muted);
margin-top: 2px;
font-weight: 340;
}
/* ELEVATION */
.elevation-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 24px; }
.elevation-card {
background: var(--bg-card);
border-radius: 8px;
padding: 24px;
min-height: 140px;
display: flex;
flex-direction: column;
justify-content: space-between;
}
.elevation-flat { border: none; background: var(--bg-page); }
.elevation-surface { background: var(--bg-card); border: 1px solid var(--border-color); }
.elevation-elevated { border: none; box-shadow: 0 4px 24px rgba(0, 0, 0, 0.08); }
.elevation-name { font-size: 16px; font-weight: 700; margin-bottom: 8px; letter-spacing: normal; }
.elevation-desc { font-size: 13px; color: var(--text-muted); line-height: 1.5; font-weight: 340; }
.elevation-level {
font-family: var(--font-mono);
font-size: 11px;
color: var(--text-muted);
text-transform: uppercase;
letter-spacing: 0.6px;
margin-top: 12px;
}
/* RESPONSIVE */
@media (max-width: 768px) {
.nav { padding: 12px 20px; }
.nav-links a:not(.nav-cta-wrapper) { display: none; }
.hero { padding: 80px 20px 60px; }
.hero h1 { font-size: 48px; letter-spacing: -0.96px; }
.section { padding: 60px 20px; }
.section-heading { font-size: 36px; letter-spacing: -0.72px; }
.color-grid { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); }
.card-grid { grid-template-columns: 1fr; }
.hero-buttons { flex-direction: column; align-items: center; }
.button-row { flex-direction: column; align-items: flex-start; }
.product-tabs { flex-wrap: wrap; }
}
</style>
</head>
<body>
<!-- NAV -->
<nav class="nav">
<div class="nav-brand">
<svg viewBox="0 0 38 57" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M19 28.5C19 23.2533 23.2533 19 28.5 19C33.7467 19 38 23.2533 38 28.5C38 33.7467 33.7467 38 28.5 38C23.2533 38 19 33.7467 19 28.5Z" fill="#1ABCFE"/>
<path d="M0 47.5C0 42.2533 4.25329 38 9.5 38H19V47.5C19 52.7467 14.7467 57 9.5 57C4.25329 57 0 52.7467 0 47.5Z" fill="#0ACF83"/>
<path d="M19 0V19H28.5C33.7467 19 38 14.7467 38 9.5C38 4.25329 33.7467 0 28.5 0H19Z" fill="#FF7262"/>
<path d="M0 9.5C0 14.7467 4.25329 19 9.5 19H19V0H9.5C4.25329 0 0 4.25329 0 9.5Z" fill="#F24E1E"/>
<path d="M0 28.5C0 33.7467 4.25329 38 9.5 38H19V19H9.5C4.25329 19 0 23.2533 0 28.5Z" fill="#A259FF"/>
</svg>
Figma
</div>
<div class="nav-links">
<a href="#colors">Colors</a>
<a href="#typography">Typography</a>
<a href="#buttons">Buttons</a>
<a href="#cards">Cards</a>
<a href="#spacing">Spacing</a>
<a href="#elevation">Elevation</a>
<button class="nav-cta">Get started</button>
</div>
</nav>
<!-- HERO -->
<section class="hero">
<div class="product-tabs">
<button class="product-tab active">Design</button>
<button class="product-tab">Dev Mode</button>
<button class="product-tab">Prototyping</button>
<button class="product-tab">Slides</button>
</div>
<h1>Design System Preview:<br>Figma</h1>
<p>Auto-generated design token catalog from DESIGN.md</p>
<div class="hero-buttons">
<button class="btn-hero-primary">Explore Tokens</button>
<button class="btn-hero-glass">View Source</button>
</div>
</section>
<hr class="section-divider">
<!-- COLORS -->
<section class="section" id="colors">
<div class="section-title">01 / COLOR PALETTE</div>
<h2 class="section-heading">Color Palette & Roles</h2>
<div class="color-group">
<h3 class="color-group-title">Primary</h3>
<div class="color-grid">
<div class="color-swatch">
<div class="color-swatch-block" style="background: #000000;"></div>
<div class="color-swatch-info">
<div class="color-swatch-name">Pure Black</div>
<div class="color-swatch-hex">#000000</div>
<div class="color-swatch-role">All text, solid buttons, all borders. The sole interface color.</div>
</div>
</div>
<div class="color-swatch">
<div class="color-swatch-block" style="background: #ffffff; border: 1px solid rgba(0,0,0,0.12);"></div>
<div class="color-swatch-info">
<div class="color-swatch-name">Pure White</div>
<div class="color-swatch-hex">#ffffff</div>
<div class="color-swatch-role">All backgrounds, white buttons, text on dark surfaces.</div>
</div>
</div>
</div>
</div>
<div class="color-group">
<h3 class="color-group-title">Surface & Glass</h3>
<div class="color-grid">
<div class="color-swatch">
<div class="color-swatch-block" style="background: rgba(0,0,0,0.08); border: 1px solid rgba(0,0,0,0.12);"></div>
<div class="color-swatch-info">
<div class="color-swatch-name">Glass Black</div>
<div class="color-swatch-hex">rgba(0,0,0,0.08)</div>
<div class="color-swatch-role">Secondary circular buttons, glass overlays on light surfaces.</div>
</div>
</div>
<div class="color-swatch">
<div class="color-swatch-block" style="background: rgba(255,255,255,0.16); border: 1px solid rgba(0,0,0,0.12); position: relative;">
<div style="position: absolute; inset: 0; background: #000; z-index: 0;"></div>
<div style="position: absolute; inset: 0; background: rgba(255,255,255,0.16); z-index: 1;"></div>
</div>
<div class="color-swatch-info">
<div class="color-swatch-name">Glass White</div>
<div class="color-swatch-hex">rgba(255,255,255,0.16)</div>
<div class="color-swatch-role">Frosted glass overlay for buttons on dark or colored surfaces.</div>
</div>
</div>
</div>
</div>
<div class="color-group">
<h3 class="color-group-title">Gradient System</h3>
<div class="gradient-preview">
<div class="gradient-block" style="background: linear-gradient(135deg, #0acf83 0%, #a259ff 30%, #f24e1e 50%, #ff7262 65%, #1abcfe 80%, #0acf83 100%);"></div>
</div>
<div class="gradient-label">Hero Gradient -- Electric Green, Purple, Orange, Pink, Cyan</div>
<p style="color: var(--text-muted); font-size: 14px; margin-top: 8px; font-weight: 340;">Color exists only in hero gradients and product showcases. The interface layer remains strictly monochrome.</p>
</div>
</section>
<hr class="section-divider">
<!-- TYPOGRAPHY -->
<section class="section" id="typography">
<div class="section-title">02 / TYPOGRAPHY SCALE</div>
<h2 class="section-heading">Typography Rules</h2>
<div class="weight-spectrum">
<div style="font-family: var(--font-mono); font-size: 12px; color: var(--text-muted); letter-spacing: 0.6px; text-transform: uppercase; margin-bottom: 8px;">Variable Weight Spectrum</div>
<div class="weight-sample">
<span class="weight-sample-text" style="font-weight: 320;">The quick brown fox jumps</span>
<span class="weight-sample-label">Weight 320</span>
</div>
<div class="weight-sample">
<span class="weight-sample-text" style="font-weight: 330;">The quick brown fox jumps</span>
<span class="weight-sample-label">Weight 330</span>
</div>
<div class="weight-sample">
<span class="weight-sample-text" style="font-weight: 340;">The quick brown fox jumps</span>
<span class="weight-sample-label">Weight 340</span>
</div>
<div class="weight-sample">
<span class="weight-sample-text" style="font-weight: 400;">The quick brown fox jumps</span>
<span class="weight-sample-label">Weight 400</span>
</div>
<div class="weight-sample">
<span class="weight-sample-text" style="font-weight: 450;">The quick brown fox jumps</span>
<span class="weight-sample-label">Weight 450</span>
</div>
<div class="weight-sample">
<span class="weight-sample-text" style="font-weight: 480;">The quick brown fox jumps</span>
<span class="weight-sample-label">Weight 480</span>
</div>
<div class="weight-sample">
<span class="weight-sample-text" style="font-weight: 540;">The quick brown fox jumps</span>
<span class="weight-sample-label">Weight 540</span>
</div>
<div class="weight-sample">
<span class="weight-sample-text" style="font-weight: 700;">The quick brown fox jumps</span>
<span class="weight-sample-label">Weight 700</span>
</div>
</div>
<div class="type-sample">
<div class="type-sample-text" style="font-family: var(--font-sans); font-size: 86px; font-weight: 400; line-height: 1.0; letter-spacing: -1.72px;">Display Hero</div>
<div class="type-sample-label">Display / Hero -- 86px / wt 400 / lh 1.00 / ls -1.72px -- figmaSans</div>
</div>
<div class="type-sample">
<div class="type-sample-text" style="font-family: var(--font-sans); font-size: 64px; font-weight: 400; line-height: 1.1; letter-spacing: -0.96px;">Section Heading</div>
<div class="type-sample-label">Section Heading -- 64px / wt 400 / lh 1.10 / ls -0.96px -- figmaSans</div>
</div>
<div class="type-sample">
<div class="type-sample-text" style="font-family: var(--font-sans); font-size: 26px; font-weight: 540; line-height: 1.35; letter-spacing: -0.26px;">Sub-heading Medium</div>
<div class="type-sample-label">Sub-heading -- 26px / wt 540 / lh 1.35 / ls -0.26px -- figmaSans</div>
</div>
<div class="type-sample">
<div class="type-sample-text" style="font-family: var(--font-sans); font-size: 26px; font-weight: 340; line-height: 1.35; letter-spacing: -0.26px;">Sub-heading Light</div>
<div class="type-sample-label">Sub-heading Light -- 26px / wt 340 / lh 1.35 / ls -0.26px -- figmaSans</div>
</div>
<div class="type-sample">
<div class="type-sample-text" style="font-family: var(--font-sans); font-size: 24px; font-weight: 700; line-height: 1.45; letter-spacing: normal;">Feature Title Bold</div>
<div class="type-sample-label">Feature Title -- 24px / wt 700 / lh 1.45 / ls normal -- figmaSans</div>
</div>
<div class="type-sample">
<div class="type-sample-text" style="font-family: var(--font-sans); font-size: 20px; font-weight: 330; line-height: 1.4; letter-spacing: -0.14px;">Body large text for descriptions and introductions. The light weight creates an airy, ethereal reading experience that matches the design-tool aesthetic.</div>
<div class="type-sample-label">Body Large -- 20px / wt 330 / lh 1.40 / ls -0.14px -- figmaSans</div>
</div>
<div class="type-sample">
<div class="type-sample-text" style="font-family: var(--font-sans); font-size: 18px; font-weight: 320; line-height: 1.45; letter-spacing: -0.26px;">Body light text at the lightest variable weight. Nearly imperceptible thinness for secondary content and delicate UI copy.</div>
<div class="type-sample-label">Body Light -- 18px / wt 320 / lh 1.45 / ls -0.26px -- figmaSans</div>
</div>
<div class="type-sample">
<div class="type-sample-text" style="font-family: var(--font-sans); font-size: 16px; font-weight: 400; line-height: 1.45; letter-spacing: -0.14px;">Standard body text for paragraphs, navigation links, and button labels. The default reading weight for all UI copy.</div>
<div class="type-sample-label">Body / Button -- 16px / wt 400 / lh 1.45 / ls -0.14px -- figmaSans</div>
</div>
<div class="type-sample">
<div class="type-sample-text" style="font-family: var(--font-mono); font-size: 18px; font-weight: 400; line-height: 1.3; letter-spacing: 0.54px; text-transform: uppercase;">MONO SECTION LABEL</div>
<div class="type-sample-label">Mono Label -- 18px / wt 400 / lh 1.30 / ls 0.54px / uppercase -- figmaMono</div>
</div>
<div class="type-sample">
<div class="type-sample-text" style="font-family: var(--font-mono); font-size: 12px; font-weight: 400; line-height: 1.0; letter-spacing: 0.6px; text-transform: uppercase;">MONO SMALL TAG</div>
<div class="type-sample-label">Mono Small -- 12px / wt 400 / lh 1.00 / ls 0.6px / uppercase -- figmaMono</div>
</div>
</section>
<hr class="section-divider">
<!-- BUTTONS -->
<section class="section" id="buttons">
<div class="section-title">03 / BUTTON VARIANTS</div>
<h2 class="section-heading">Buttons</h2>
<div class="button-row">
<div class="button-demo">
<button class="btn-black-pill">Get started</button>
<div class="button-demo-label">Black Pill CTA</div>
</div>
<div class="button-demo">
<button class="btn-white-pill">Learn more</button>
<div class="button-demo-label">White Pill</div>
</div>
<div class="button-demo">
<button class="btn-black-circle" aria-label="Menu">&#9776;</button>
<div class="button-demo-label">Black Circle</div>
</div>
<div class="button-demo">
<button class="btn-glass-dark" aria-label="Play">&#9654;</button>
<div class="button-demo-label">Glass Dark</div>
</div>
<div class="button-demo">
<div class="glass-light-wrapper">
<button class="btn-glass-light-demo" aria-label="Close">&times;</button>
</div>
<div class="button-demo-label">Glass Light</div>
</div>
</div>
<div class="focus-demo-row">
<div>
<div class="focus-demo-label">Dashed Focus Indicator</div>
<p style="font-size: 14px; color: var(--text-muted); font-weight: 340; margin-bottom: 16px;">All interactive elements use <code style="font-family: var(--font-mono); font-size: 12px; background: var(--glass-surface); padding: 2px 6px; border-radius: 4px;">dashed 2px</code> outline on focus, echoing the selection handles in the Figma editor.</p>
</div>
<div style="display: flex; gap: 16px; align-items: center;">
<button class="btn-black-pill btn-focus-visible">Focused Pill</button>
<button class="btn-black-circle btn-focus-visible" aria-label="Focused">&#10003;</button>
</div>
</div>
</section>
<hr class="section-divider">
<!-- CARDS -->
<section class="section" id="cards">
<div class="section-title">04 / CARD EXAMPLES</div>
<h2 class="section-heading">Cards & Containers</h2>
<div class="card-grid">
<div class="card card-standard">
<div class="card-label">STANDARD CARD</div>
<h3>Minimal Border</h3>
<p>Standard content card with subtle border and 8px radius. The default container for features and content sections on the white gallery surface.</p>
</div>
<div class="card card-elevated">
<div class="card-label">ELEVATED CARD</div>
<h3>Subtle Shadow</h3>
<p>Floating card with subtle shadow elevation. Used for product showcases and hover states where the card lifts off the surface.</p>
</div>
<div class="card card-glass">
<div class="card-label">GLASS SURFACE</div>
<h3>Glass Overlay</h3>
<p>Glass-effect card using rgba(0,0,0,0.08) background. Secondary containers and grouped content areas with a translucent feel.</p>
</div>
</div>
</section>
<hr class="section-divider">
<!-- SPACING -->
<section class="section" id="spacing">
<div class="section-title">05 / SPACING SCALE</div>
<h2 class="section-heading">Spacing System</h2>
<p style="color: var(--text-muted); margin-bottom: 32px; font-weight: 340; font-size: 18px; letter-spacing: -0.26px;">Base unit: 8px. Scale from 1px to 50px.</p>
<div class="spacing-row">
<div class="spacing-item"><div class="spacing-box" style="width: 4px; height: 4px;"></div><div class="spacing-label">1px</div></div>
<div class="spacing-item"><div class="spacing-box" style="width: 8px; height: 8px;"></div><div class="spacing-label">2px</div></div>
<div class="spacing-item"><div class="spacing-box" style="width: 16px; height: 16px;"></div><div class="spacing-label">4px</div></div>
<div class="spacing-item"><div class="spacing-box" style="width: 32px; height: 32px;"></div><div class="spacing-label">8px</div></div>
<div class="spacing-item"><div class="spacing-box" style="width: 40px; height: 40px;"></div><div class="spacing-label">10px</div></div>
<div class="spacing-item"><div class="spacing-box" style="width: 48px; height: 48px;"></div><div class="spacing-label">12px</div></div>
<div class="spacing-item"><div class="spacing-box" style="width: 64px; height: 64px;"></div><div class="spacing-label">16px</div></div>
<div class="spacing-item"><div class="spacing-box" style="width: 72px; height: 72px;"></div><div class="spacing-label">18px</div></div>
<div class="spacing-item"><div class="spacing-box" style="width: 96px; height: 96px;"></div><div class="spacing-label">24px</div></div>
<div class="spacing-item"><div class="spacing-box" style="width: 128px; height: 128px;"></div><div class="spacing-label">32px</div></div>
<div class="spacing-item"><div class="spacing-box" style="width: 160px; height: 160px;"></div><div class="spacing-label">40px</div></div>
<div class="spacing-item"><div class="spacing-box" style="width: 192px; height: 192px;"></div><div class="spacing-label">48px</div></div>
<div class="spacing-item"><div class="spacing-box" style="width: 200px; height: 200px;"></div><div class="spacing-label">50px</div></div>
</div>
</section>
<hr class="section-divider">
<!-- BORDER RADIUS -->
<section class="section">
<div class="section-title">06 / BORDER RADIUS SCALE</div>
<h2 class="section-heading">Border Radius</h2>
<div class="radius-row">
<div class="radius-item"><div class="radius-box" style="border-radius: 2px;"></div><div class="radius-label">2px</div><div class="radius-context">Small links</div></div>
<div class="radius-item"><div class="radius-box" style="border-radius: 6px;"></div><div class="radius-label">6px</div><div class="radius-context">Small containers</div></div>
<div class="radius-item"><div class="radius-box" style="border-radius: 8px;"></div><div class="radius-label">8px</div><div class="radius-context">Cards, images</div></div>
<div class="radius-item"><div class="radius-box" style="border-radius: 50px; width: 120px;"></div><div class="radius-label">50px</div><div class="radius-context">Pill buttons</div></div>
<div class="radius-item"><div class="radius-box" style="border-radius: 50%;"></div><div class="radius-label">50%</div><div class="radius-context">Circle / Icon</div></div>
</div>
</section>
<hr class="section-divider">
<!-- ELEVATION -->
<section class="section" id="elevation">
<div class="section-title">07 / ELEVATION & DEPTH</div>
<h2 class="section-heading">Depth & Elevation</h2>
<div class="elevation-grid">
<div class="elevation-card elevation-flat">
<div><div class="elevation-name">Flat</div><div class="elevation-desc">No shadow. Page background and most text. The default surface.</div></div>
<div class="elevation-level">Level 0</div>
</div>
<div class="elevation-card elevation-surface">
<div><div class="elevation-name">Surface</div><div class="elevation-desc">White card on gradient or dark section. Primary depth through background contrast.</div></div>
<div class="elevation-level">Level 1</div>
</div>
<div class="elevation-card elevation-elevated">
<div><div class="elevation-name">Elevated</div><div class="elevation-desc">Subtle shadow for floating cards and hover states. Sparingly applied.</div></div>
<div class="elevation-level">Level 2</div>
</div>
</div>
</section>
<div style="height: 80px;"></div>
</body>
</html>