lian-build/assets/branding/index.html
2026-05-04 18:23:52 +01:00

1062 lines
41 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Lian Build — Branding Assets</title>
<style>
* { margin: 0; padding: 0; box-sizing: border-box }
html { scroll-behavior: smooth }
:root {
--lb-flame: #e86c2f;
--lb-amber: #f5a623;
--lb-gold: #bd9156;
--lb-forge: #f29a3d;
--lb-char: #c25a1a;
--lb-ash: #a8a8a0;
--lb-core: #fcd99e;
--lb-dark: #0d1117;
--bg-primary: #ffffff;
--bg-secondary: #f8f7f5;
--text-primary: #1a1a14;
--text-secondary: #6b6b5e;
--border-color: #e5e3de;
--card-bg: #ffffff;
--card-shadow: rgba(232, 108, 47, 0.15);
}
body.dark-mode {
--bg-primary: #0d1117;
--bg-secondary: #141920;
--text-primary: #e8e6e0;
--text-secondary: #a8a49a;
--border-color: #252d36;
--card-bg: #161c24;
--card-shadow: rgba(245, 166, 35, 0.12);
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
background: var(--bg-primary);
color: var(--text-primary);
transition: background 0.3s ease, color 0.3s ease;
padding: 20px;
}
.container { max-width: 1400px; margin: 0 auto }
header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 40px;
padding: 30px;
background: linear-gradient(135deg, #e86c2f 0%, #f5a623 60%, #fcd99e 100%);
color: white;
border-radius: 12px;
flex-wrap: wrap;
gap: 20px;
}
body.dark-mode header { background: linear-gradient(135deg, #1a0e06 0%, #2a1a08 60%, #0d1117 100%) }
header h1 { font-size: 1.6rem; font-weight: 700; letter-spacing: 0.5px }
header p { opacity: 0.9; font-size: 0.95rem; margin-top: 4px }
/* Navigation */
nav {
position: sticky;
top: 0;
background-color: rgba(255, 255, 255, 0.88);
border-bottom: 2px solid var(--border-color);
padding: 15px 0;
z-index: 100;
backdrop-filter: blur(10px);
}
body.dark-mode nav { background-color: rgba(13, 17, 23, 0.88) }
nav .nav-container {
max-width: 1400px;
margin: 0 auto;
padding: 0 20px;
display: flex;
justify-content: space-between;
align-items: center;
flex-wrap: wrap;
gap: 15px;
}
nav h2 {
font-size: 1.1rem;
font-weight: 700;
background: linear-gradient(135deg, var(--lb-gold), var(--lb-flame));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
margin: 0;
}
nav ul {
display: flex;
list-style: none;
gap: 20px;
align-items: center;
margin: 0;
padding: 0;
flex-wrap: wrap;
}
nav a {
color: var(--text-secondary);
text-decoration: none;
font-size: 0.9rem;
font-weight: 500;
transition: color 0.3s ease;
}
nav a:hover { color: var(--lb-flame) }
nav .theme-toggle {
padding: 8px 16px;
background: rgba(232, 108, 47, 0.10);
border: 2px solid var(--lb-flame);
color: var(--lb-flame);
border-radius: 6px;
cursor: pointer;
font-weight: 600;
transition: all 0.3s ease;
font-size: 0.85rem;
}
nav .theme-toggle:hover { background: var(--lb-flame); color: white }
section { scroll-margin-top: 80px; margin-bottom: 60px }
.section-title {
font-size: 1.6rem;
font-weight: 700;
color: var(--lb-flame);
margin: 40px 0 20px 0;
padding-bottom: 10px;
border-bottom: 3px solid var(--lb-ash);
}
.gallery {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 25px;
margin-bottom: 40px;
}
/* Cards */
.card {
background: var(--card-bg);
border: 2px solid var(--border-color);
border-radius: 12px;
overflow: hidden;
transition: all 0.3s ease;
display: flex;
flex-direction: column;
}
.card:hover {
box-shadow: 0 12px 24px var(--card-shadow);
transform: translateY(-4px);
border-color: var(--lb-flame);
}
.card-preview {
background: var(--bg-secondary);
padding: 30px;
height: 280px;
display: flex;
align-items: center;
justify-content: center;
border-bottom: 1px solid var(--border-color);
flex-shrink: 0;
cursor: pointer;
transition: opacity 0.2s ease;
}
.card-preview:hover { opacity: 0.9 }
.card-preview img { width: 100%; max-height: 220px; object-fit: contain; }
.card-info {
padding: 20px;
flex-grow: 1;
display: flex;
flex-direction: column;
}
.card-title {
font-size: 1.1rem;
font-weight: 600;
color: var(--lb-flame);
margin-bottom: 8px;
}
.card-label {
display: inline-block;
background: rgba(232, 108, 47, 0.12);
color: var(--lb-flame);
padding: 3px 10px;
border-radius: 4px;
font-size: 0.75rem;
font-weight: 600;
margin-bottom: 10px;
width: fit-content;
}
.card-label.label-static { background: rgba(189,145,86,0.12); color: var(--lb-gold) }
.card-label.label-dark { background: rgba(168,168,160,0.12); color: var(--lb-ash) }
.card-label.label-mono { background: rgba(168,168,160,0.10); color: var(--lb-ash) }
.card-specs {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 10px;
margin: 15px 0;
padding: 15px 0;
border-top: 1px solid var(--border-color);
border-bottom: 1px solid var(--border-color);
flex-grow: 1;
font-size: 0.85rem;
}
.spec-item { display: flex; flex-direction: column }
.spec-label { color: var(--text-secondary); font-weight: 500; margin-bottom: 3px }
.spec-value { color: var(--lb-flame); font-weight: 600 }
body.dark-mode .spec-value { color: var(--lb-amber) }
.file-name-row { margin-top: 12px }
.file-name {
display: flex;
align-items: center;
gap: 8px;
padding: 6px 10px;
border-radius: 4px;
background: rgba(232, 108, 47, 0.06);
font-family: 'Monaco', 'Courier New', monospace;
font-size: 0.82rem;
color: var(--text-secondary);
justify-content: space-between;
}
body.dark-mode .file-name { background: rgba(189,145,86,0.06) }
.copy-btn {
background: none;
border: none;
cursor: pointer;
font-size: 1rem;
padding: 2px 6px;
transition: transform 0.2s ease;
flex-shrink: 0;
}
.copy-btn:hover { transform: scale(1.2) }
/* Color Palette */
.color-palette {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
gap: 15px;
margin-bottom: 40px;
}
.color-box {
border-radius: 8px;
overflow: hidden;
border: 2px solid var(--border-color);
transition: all 0.3s ease;
}
.color-box:hover { transform: scale(1.05); border-color: var(--lb-flame) }
.color-sample { height: 80px; width: 100% }
.color-name {
padding: 10px;
background: var(--card-bg);
text-align: center;
font-size: 0.85rem;
font-weight: 600;
color: var(--text-primary);
}
.color-value {
display: flex;
align-items: center;
justify-content: space-between;
padding: 5px 10px;
background: var(--bg-secondary);
font-family: 'Monaco', 'Courier New', monospace;
font-size: 0.75rem;
color: var(--text-secondary);
cursor: pointer;
}
.color-value:hover { color: var(--lb-flame) }
/* Typography */
.typography-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 25px;
margin-bottom: 40px;
}
.font-sample {
background: var(--card-bg);
border: 2px solid var(--border-color);
border-radius: 8px;
padding: 25px;
transition: all 0.3s ease;
}
.font-sample:hover { border-color: var(--lb-flame); box-shadow: 0 8px 16px var(--card-shadow) }
.font-label {
font-size: 0.78rem;
color: var(--text-secondary);
font-weight: 600;
margin-bottom: 10px;
text-transform: uppercase;
letter-spacing: 0.8px;
}
.font-display {
color: var(--text-primary);
margin-bottom: 15px;
line-height: 1.3;
padding-bottom: 15px;
border-bottom: 1px solid var(--border-color);
}
.font-specs {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 10px;
font-size: 0.85rem;
}
.font-spec-item { display: flex; flex-direction: column }
.font-spec-label { color: var(--text-secondary); font-size: 0.75rem; margin-bottom: 3px }
.font-spec-value { color: var(--lb-flame); font-weight: 600; font-family: 'Monaco','Courier New',monospace }
body.dark-mode .font-spec-value { color: var(--lb-amber) }
/* Info box */
.info-box {
background: var(--card-bg);
border: 1px solid var(--border-color);
border-left: 4px solid var(--lb-flame);
padding: 20px;
margin-bottom: 20px;
border-radius: 6px;
}
.info-box h3 { color: var(--lb-flame); margin-bottom: 10px; font-size: 1rem }
.info-box p { color: var(--text-secondary); line-height: 1.6; font-size: 0.9rem }
/* Scalability */
.scalability-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
gap: 30px;
margin-bottom: 40px;
}
.scalability-item { text-align: center }
.scalability-item-display {
display: flex;
align-items: center;
justify-content: center;
background: var(--bg-secondary);
border: 2px solid var(--border-color);
border-radius: 8px;
margin-bottom: 12px;
height: 220px;
transition: all 0.3s ease;
}
.scalability-item-display:hover { border-color: var(--lb-flame); box-shadow: 0 8px 16px var(--card-shadow) }
.scalability-size { font-weight: 700; color: var(--text-primary); font-size: 1rem; margin-bottom: 4px }
.scalability-use { font-size: 0.85rem; color: var(--text-secondary) }
footer {
margin-top: 60px;
padding: 30px;
border-top: 1px solid var(--border-color);
text-align: center;
color: var(--text-secondary);
font-size: 0.85rem;
}
@media (max-width: 768px) {
header { flex-direction: column; text-align: center }
.section-title { font-size: 1.3rem }
.gallery { grid-template-columns: 1fr }
nav ul { gap: 12px }
}
</style>
</head>
<body>
<nav>
<div class="nav-container">
<h2>Lian Build Branding</h2>
<ul>
<li><a href="#logos">Logos</a></li>
<li><a href="#icons">Icons</a></li>
<li><a href="#mono">Monochrome</a></li>
<li><a href="#scalability">Scalability</a></li>
<li><a href="#colors">Colors</a></li>
<li><a href="#typography">Typography</a></li>
<li><a href="#guidelines">Guidelines</a></li>
<button class="theme-toggle" onclick="toggleTheme()">🌙 Dark</button>
</ul>
</div>
</nav>
<div class="container">
<header>
<div>
<h1>Lian Build</h1>
<p>Fire without the ash.</p>
<p style="opacity:0.78; font-size:0.85rem; margin-top:3px;">Ephemeral crucibles that refine code into reproducible artifacts</p>
</div>
<div style="text-align:right; align-self:center;">
<p style="font-size:0.88rem; font-weight:600; color:#e86c2f; margin:0;">Branding Assets</p>
</div>
</header>
<!-- Logo Variants -->
<section id="logos">
<h2 class="section-title">Logo Variants</h2>
<div class="gallery">
<div class="card">
<div class="card-preview" onclick="window.open('lian-h.svg','_blank')">
<img src="lian-h.svg" alt="Lian Build Horizontal"/>
</div>
<div class="card-info">
<div class="card-title">Horizontal</div>
<div class="card-label">ANIMATED</div>
<div class="card-specs">
<div class="spec-item">
<span class="spec-label">ViewBox</span>
<span class="spec-value">163×90</span>
</div>
<div class="spec-item">
<span class="spec-label">Use</span>
<span class="spec-value">Headers</span>
</div>
</div>
<div class="file-name-row">
<div class="file-name">
<span>lian-h.svg</span>
<button class="copy-btn" onclick="copyToClipboard(this)">📋</button>
</div>
</div>
</div>
</div>
<div class="card">
<div class="card-preview" onclick="window.open('lian-v.svg','_blank')">
<img src="lian-v.svg" alt="Lian Build Vertical"/>
</div>
<div class="card-info">
<div class="card-title">Vertical</div>
<div class="card-label">ANIMATED</div>
<div class="card-specs">
<div class="spec-item">
<span class="spec-label">ViewBox</span>
<span class="spec-value">110×160</span>
</div>
<div class="spec-item">
<span class="spec-label">Use</span>
<span class="spec-value">Mobile</span>
</div>
</div>
<div class="file-name-row">
<div class="file-name">
<span>lian-v.svg</span>
<button class="copy-btn" onclick="copyToClipboard(this)">📋</button>
</div>
</div>
</div>
</div>
<div class="card">
<div class="card-preview" onclick="window.open('lian-h-static.svg','_blank')">
<img src="lian-h-static.svg" alt="Lian Build Horizontal Static"/>
</div>
<div class="card-info">
<div class="card-title">Horizontal Static</div>
<div class="card-label label-static">STATIC</div>
<div class="card-specs">
<div class="spec-item">
<span class="spec-label">ViewBox</span>
<span class="spec-value">163×90</span>
</div>
<div class="spec-item">
<span class="spec-label">Use</span>
<span class="spec-value">Print</span>
</div>
</div>
<div class="file-name-row">
<div class="file-name">
<span>lian-h-static.svg</span>
<button class="copy-btn" onclick="copyToClipboard(this)">📋</button>
</div>
</div>
</div>
</div>
<div class="card">
<div class="card-preview" onclick="window.open('lian-v-static.svg','_blank')">
<img src="lian-v-static.svg" alt="Lian Build Vertical Static"/>
</div>
<div class="card-info">
<div class="card-title">Vertical Static</div>
<div class="card-label label-static">STATIC</div>
<div class="card-specs">
<div class="spec-item">
<span class="spec-label">ViewBox</span>
<span class="spec-value">110×160</span>
</div>
<div class="spec-item">
<span class="spec-label">Use</span>
<span class="spec-value">Print</span>
</div>
</div>
<div class="file-name-row">
<div class="file-name">
<span>lian-v-static.svg</span>
<button class="copy-btn" onclick="copyToClipboard(this)">📋</button>
</div>
</div>
</div>
</div>
<div class="card">
<div class="card-preview" style="background:#0d1117;" onclick="window.open('lian-dark-h.svg','_blank')">
<img src="lian-dark-h.svg" alt="Lian Build Dark Horizontal"/>
</div>
<div class="card-info">
<div class="card-title">Dark Horizontal</div>
<div class="card-label label-dark">DARK</div>
<div class="card-specs">
<div class="spec-item">
<span class="spec-label">ViewBox</span>
<span class="spec-value">163×90</span>
</div>
<div class="spec-item">
<span class="spec-label">Use</span>
<span class="spec-value">Dark BG</span>
</div>
</div>
<div class="file-name-row">
<div class="file-name">
<span>lian-dark-h.svg</span>
<button class="copy-btn" onclick="copyToClipboard(this)">📋</button>
</div>
</div>
</div>
</div>
<div class="card">
<div class="card-preview" style="background:#0d1117;" onclick="window.open('lian-dark-v.svg','_blank')">
<img src="lian-dark-v.svg" alt="Lian Build Dark Vertical"/>
</div>
<div class="card-info">
<div class="card-title">Dark Vertical</div>
<div class="card-label label-dark">DARK</div>
<div class="card-specs">
<div class="spec-item">
<span class="spec-label">ViewBox</span>
<span class="spec-value">110×160</span>
</div>
<div class="spec-item">
<span class="spec-label">Use</span>
<span class="spec-value">Dark BG</span>
</div>
</div>
<div class="file-name-row">
<div class="file-name">
<span>lian-dark-v.svg</span>
<button class="copy-btn" onclick="copyToClipboard(this)">📋</button>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- Icon Variants -->
<section id="icons">
<h2 class="section-title">Icon Variants</h2>
<div class="gallery">
<div class="card">
<div class="card-preview" onclick="window.open('lian-icon.svg','_blank')">
<img src="lian-icon.svg" alt="Lian Build Icon"/>
</div>
<div class="card-info">
<div class="card-title">Icon</div>
<div class="card-label">ANIMATED</div>
<div class="card-specs">
<div class="spec-item">
<span class="spec-label">ViewBox</span>
<span class="spec-value">100×90</span>
</div>
<div class="spec-item">
<span class="spec-label">Use</span>
<span class="spec-value">Apps</span>
</div>
</div>
<div class="file-name-row">
<div class="file-name">
<span>lian-icon.svg</span>
<button class="copy-btn" onclick="copyToClipboard(this)">📋</button>
</div>
</div>
</div>
</div>
<div class="card">
<div class="card-preview" onclick="window.open('lian-icon-static.svg','_blank')">
<img src="lian-icon-static.svg" alt="Lian Build Icon Static"/>
</div>
<div class="card-info">
<div class="card-title">Icon Static</div>
<div class="card-label label-static">STATIC</div>
<div class="card-specs">
<div class="spec-item">
<span class="spec-label">ViewBox</span>
<span class="spec-value">100×90</span>
</div>
<div class="spec-item">
<span class="spec-label">Use</span>
<span class="spec-value">Print</span>
</div>
</div>
<div class="file-name-row">
<div class="file-name">
<span>lian-icon-static.svg</span>
<button class="copy-btn" onclick="copyToClipboard(this)">📋</button>
</div>
</div>
</div>
</div>
<div class="card">
<div class="card-preview" onclick="window.open('lian-text.svg','_blank')">
<img src="lian-text.svg" alt="Lian Build Wordmark"/>
</div>
<div class="card-info">
<div class="card-title">Text / Wordmark</div>
<div class="card-label">ANIMATED</div>
<div class="card-specs">
<div class="spec-item">
<span class="spec-label">ViewBox</span>
<span class="spec-value">240×90</span>
</div>
<div class="spec-item">
<span class="spec-label">Use</span>
<span class="spec-value">Wordmark</span>
</div>
</div>
<div class="file-name-row">
<div class="file-name">
<span>lian-text.svg</span>
<button class="copy-btn" onclick="copyToClipboard(this)">📋</button>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- Monochrome -->
<section id="mono">
<h2 class="section-title">Monochrome Variants</h2>
<div class="gallery">
<div class="card">
<div class="card-preview" style="background:#f5f5f0;" onclick="window.open('lian-mono-black-h.svg','_blank')">
<img src="lian-mono-black-h.svg" alt="Lian Build Mono Black Horizontal"/>
</div>
<div class="card-info">
<div class="card-title">Mono Black Horizontal</div>
<div class="card-label label-mono">MONO</div>
<div class="card-specs">
<div class="spec-item">
<span class="spec-label">Use</span>
<span class="spec-value">Light BG</span>
</div>
<div class="spec-item">
<span class="spec-label">Format</span>
<span class="spec-value">SVG</span>
</div>
</div>
<div class="file-name-row">
<div class="file-name">
<span>lian-mono-black-h.svg</span>
<button class="copy-btn" onclick="copyToClipboard(this)">📋</button>
</div>
</div>
</div>
</div>
<div class="card">
<div class="card-preview" style="background:#f5f5f0;" onclick="window.open('lian-mono-black-v.svg','_blank')">
<img src="lian-mono-black-v.svg" alt="Lian Build Mono Black Vertical"/>
</div>
<div class="card-info">
<div class="card-title">Mono Black Vertical</div>
<div class="card-label label-mono">MONO</div>
<div class="card-specs">
<div class="spec-item">
<span class="spec-label">Use</span>
<span class="spec-value">Light BG</span>
</div>
<div class="spec-item">
<span class="spec-label">Format</span>
<span class="spec-value">SVG</span>
</div>
</div>
<div class="file-name-row">
<div class="file-name">
<span>lian-mono-black-v.svg</span>
<button class="copy-btn" onclick="copyToClipboard(this)">📋</button>
</div>
</div>
</div>
</div>
<div class="card">
<div class="card-preview" style="background:#0d1117;" onclick="window.open('lian-mono-white-h.svg','_blank')">
<img src="lian-mono-white-h.svg" alt="Lian Build Mono White Horizontal"/>
</div>
<div class="card-info">
<div class="card-title">Mono White Horizontal</div>
<div class="card-label label-mono">MONO</div>
<div class="card-specs">
<div class="spec-item">
<span class="spec-label">Use</span>
<span class="spec-value">Dark BG</span>
</div>
<div class="spec-item">
<span class="spec-label">Format</span>
<span class="spec-value">SVG</span>
</div>
</div>
<div class="file-name-row">
<div class="file-name">
<span>lian-mono-white-h.svg</span>
<button class="copy-btn" onclick="copyToClipboard(this)">📋</button>
</div>
</div>
</div>
</div>
<div class="card">
<div class="card-preview" style="background:#0d1117;" onclick="window.open('lian-mono-white-v.svg','_blank')">
<img src="lian-mono-white-v.svg" alt="Lian Build Mono White Vertical"/>
</div>
<div class="card-info">
<div class="card-title">Mono White Vertical</div>
<div class="card-label label-mono">MONO</div>
<div class="card-specs">
<div class="spec-item">
<span class="spec-label">Use</span>
<span class="spec-value">Dark BG</span>
</div>
<div class="spec-item">
<span class="spec-label">Format</span>
<span class="spec-value">SVG</span>
</div>
</div>
<div class="file-name-row">
<div class="file-name">
<span>lian-mono-white-v.svg</span>
<button class="copy-btn" onclick="copyToClipboard(this)">📋</button>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- Scalability Test -->
<section id="scalability">
<h2 class="section-title">Scalability Test</h2>
<div class="info-box" style="margin-bottom:30px;">
<p>Icon clarity at different sizes — from favicon to app icon</p>
</div>
<div class="scalability-grid">
<div class="scalability-item">
<div class="scalability-item-display">
<img src="lian-icon-static.svg" width="16" height="16" alt="16×16"/>
</div>
<div class="scalability-size">16×16</div>
<div class="scalability-use">Favicon</div>
</div>
<div class="scalability-item">
<div class="scalability-item-display">
<img src="lian-icon-static.svg" width="32" height="32" alt="32×32"/>
</div>
<div class="scalability-size">32×32</div>
<div class="scalability-use">Browser tab</div>
</div>
<div class="scalability-item">
<div class="scalability-item-display">
<img src="lian-icon-static.svg" width="64" height="64" alt="64×64"/>
</div>
<div class="scalability-size">64×64</div>
<div class="scalability-use">App icon</div>
</div>
<div class="scalability-item">
<div class="scalability-item-display">
<img src="lian-icon-static.svg" width="128" height="128" alt="128×128"/>
</div>
<div class="scalability-size">128×128</div>
<div class="scalability-use">Apple touch</div>
</div>
<div class="scalability-item">
<div class="scalability-item-display">
<img src="lian-icon-static.svg" width="200" height="200" alt="200×200"/>
</div>
<div class="scalability-size">200×200</div>
<div class="scalability-use">PWA icon</div>
</div>
</div>
</section>
<!-- Color Palette -->
<section id="colors">
<h2 class="section-title">Color Palette</h2>
<div class="color-palette">
<div class="color-box">
<div class="color-sample" style="background:#e86c2f;"></div>
<div class="color-name">Flame</div>
<div class="color-value" onclick="copyColorValue(this)"><span>#e86c2f</span><span>📋</span></div>
</div>
<div class="color-box">
<div class="color-sample" style="background:#f5a623;"></div>
<div class="color-name">Amber</div>
<div class="color-value" onclick="copyColorValue(this)"><span>#f5a623</span><span>📋</span></div>
</div>
<div class="color-box">
<div class="color-sample" style="background:#fcd99e;"></div>
<div class="color-name">Core</div>
<div class="color-value" onclick="copyColorValue(this)"><span>#fcd99e</span><span>📋</span></div>
</div>
<div class="color-box">
<div class="color-sample" style="background:#bd9156;"></div>
<div class="color-name">Gold</div>
<div class="color-value" onclick="copyColorValue(this)"><span>#bd9156</span><span>📋</span></div>
</div>
<div class="color-box">
<div class="color-sample" style="background:#f29a3d;"></div>
<div class="color-name">Forge</div>
<div class="color-value" onclick="copyColorValue(this)"><span>#f29a3d</span><span>📋</span></div>
</div>
<div class="color-box">
<div class="color-sample" style="background:#c25a1a;"></div>
<div class="color-name">Char</div>
<div class="color-value" onclick="copyColorValue(this)"><span>#c25a1a</span><span>📋</span></div>
</div>
<div class="color-box">
<div class="color-sample" style="background:#a8a8a0; border-top:1px solid #ddd;"></div>
<div class="color-name">Ash</div>
<div class="color-value" onclick="copyColorValue(this)"><span>#a8a8a0</span><span>📋</span></div>
</div>
<div class="color-box">
<div class="color-sample" style="background:#0d1117;"></div>
<div class="color-name">Dark</div>
<div class="color-value" onclick="copyColorValue(this)"><span>#0d1117</span><span>📋</span></div>
</div>
</div>
</section>
<!-- Typography -->
<section id="typography">
<h2 class="section-title">Typography</h2>
<div class="typography-grid">
<div class="font-sample">
<div class="font-label">Wordmark</div>
<div class="font-display" style="font-size:2rem; font-weight:500; letter-spacing:.22em; color:#bd9156; font-family:'Jost','Avenir Next',Futura,system-ui,sans-serif;">lian</div>
<div class="font-specs">
<div class="font-spec-item">
<span class="font-spec-label">Family</span>
<span class="font-spec-value">Jost</span>
</div>
<div class="font-spec-item">
<span class="font-spec-label">Weight</span>
<span class="font-spec-value">500</span>
</div>
<div class="font-spec-item">
<span class="font-spec-label">Tracking</span>
<span class="font-spec-value">.22em</span>
</div>
<div class="font-spec-item">
<span class="font-spec-label">Use</span>
<span class="font-spec-value">Logo, H1</span>
</div>
</div>
</div>
<div class="font-sample">
<div class="font-label">Subtitle</div>
<div class="font-display" style="font-size:1rem; font-weight:500; letter-spacing:.22em; color:#f29a3d; font-family:'Jost','Avenir Next',Futura,system-ui,sans-serif;">build</div>
<div class="font-specs">
<div class="font-spec-item">
<span class="font-spec-label">Family</span>
<span class="font-spec-value">Jost</span>
</div>
<div class="font-spec-item">
<span class="font-spec-label">Weight</span>
<span class="font-spec-value">500</span>
</div>
<div class="font-spec-item">
<span class="font-spec-label">Size</span>
<span class="font-spec-value">14px SVG</span>
</div>
<div class="font-spec-item">
<span class="font-spec-label">Use</span>
<span class="font-spec-value">Subtitle</span>
</div>
</div>
</div>
<div class="font-sample">
<div class="font-label">UI / Body</div>
<div class="font-display" style="font-size:1rem; font-weight:400;">Fire without the ash.</div>
<div class="font-specs">
<div class="font-spec-item">
<span class="font-spec-label">Family</span>
<span class="font-spec-value">System stack</span>
</div>
<div class="font-spec-item">
<span class="font-spec-label">Weight</span>
<span class="font-spec-value">400</span>
</div>
<div class="font-spec-item">
<span class="font-spec-label">Size</span>
<span class="font-spec-value">16px</span>
</div>
<div class="font-spec-item">
<span class="font-spec-label">Use</span>
<span class="font-spec-value">Body text</span>
</div>
</div>
</div>
<div class="font-sample">
<div class="font-label">Code / Files</div>
<div class="font-display" style="font-size:0.9rem; font-family:'Monaco','Courier New',monospace;">lian-h.svg</div>
<div class="font-specs">
<div class="font-spec-item">
<span class="font-spec-label">Family</span>
<span class="font-spec-value">Monaco</span>
</div>
<div class="font-spec-item">
<span class="font-spec-label">Weight</span>
<span class="font-spec-value">400</span>
</div>
<div class="font-spec-item">
<span class="font-spec-label">Size</span>
<span class="font-spec-value">14px</span>
</div>
<div class="font-spec-item">
<span class="font-spec-label">Use</span>
<span class="font-spec-value">Code, files</span>
</div>
</div>
</div>
</div>
<div class="info-box" style="margin-top:30px;">
<h3>Font Usage</h3>
<p style="margin-bottom:16px;">Jost (weight 500, tracking .22em) for the wordmark and subtitle. System font stack for all UI elements. The code symbols (<code style="font-size:.85em;">&lt;/&gt;</code>) inside the flame glyph are drawn as SVG paths — no font dependency.</p>
<div style="font-weight:600; color:var(--text-primary); margin-bottom:8px; font-size:0.9rem;">Google Fonts import:</div>
<div class="file-name" style="margin-bottom:12px;">
<span>@import url('https://fonts.googleapis.com/css2?family=Jost:wght@400;500&display=swap');</span>
<button class="copy-btn" onclick="copyToClipboard(this)">📋</button>
</div>
<div style="font-weight:600; color:var(--text-primary); margin-bottom:8px; font-size:0.9rem;">CSS font-family (wordmark fallback):</div>
<div class="file-name">
<span>font-family: "Jost", "Avenir Next", Futura, "Century Gothic", "Helvetica Neue", system-ui, sans-serif;</span>
<button class="copy-btn" onclick="copyToClipboard(this)">📋</button>
</div>
</div>
</section>
<!-- Guidelines -->
<section id="guidelines">
<h2 class="section-title">Usage Guidelines</h2>
<div class="info-box">
<h3>Logo Usage</h3>
<p>Use the <strong>horizontal logo</strong> for primary brand identification on websites, headers, and marketing materials. The vertical variant works well for mobile, splash screens, and posters. For print and PDFs, always use the <strong>static variants</strong> (no animations). Maintain a minimum of 15px clear space around all logos. Never distort, rotate, or modify the aspect ratio.</p>
</div>
<div class="info-box">
<h3>Color Palette</h3>
<p><strong>Flame (#e86c2f)</strong> and <strong>Amber (#f5a623)</strong> are the primary brand colors — they represent the forge: heat, transformation, and precision engineering. <strong>Gold (#bd9156)</strong> is used for the wordmark "lian", conveying maturity and craft. <strong>Forge (#f29a3d)</strong> is used for the subtitle "build". Use <strong>Dark (#0d1117)</strong> as the background for dark-mode contexts. Monochrome variants are for print and accessibility requirements.</p>
</div>
<div class="info-box">
<h3>Typography</h3>
<p>Use <strong>Jost</strong> (weight 500, letter-spacing .22em) for the wordmark "lian" and subtitle "build". The font conveys geometric clarity while remaining approachable. For all UI elements and body text, use the <strong>system font stack</strong>. For filenames, code snippets, and hex values, use <strong>Monaco / Courier New</strong> monospace. The <code style="font-size:.85em;">&lt;/&gt;</code> code symbol inside the flame is drawn as pure SVG paths — no external font required.</p>
</div>
<div class="info-box">
<h3>Icon / Glyph Usage</h3>
<p>Use <strong>lian-icon.svg</strong> for digital applications with animation support. Use <strong>lian-icon-static.svg</strong> for favicons, print, and contexts where animation is inappropriate. The glyph is a <strong>flame shape</strong> representing the forge metaphor — transformation through fire. The inner core pulses as a living ember. The <strong>crucible line</strong> (horizontal bar at the base) grounds the flame. The <strong>&lt;/&gt;</strong> code marks inside the flame link build systems to software craft.</p>
</div>
<div class="info-box">
<h3>Dark Mode</h3>
<p>Dark backgrounds of <strong>#0d1117</strong> or darker provide optimal contrast — the flame colors are inherently bright and stand out on dark surfaces without adjustment. Use <strong>lian-dark-h.svg</strong> and <strong>lian-dark-v.svg</strong> for dark UI applications; these variants use brighter Gold (<strong>#d4a870</strong>) and Forge (<strong>#fbb555</strong>) for the text to maintain contrast. Avoid placing the standard logo on dark backgrounds without using the dark-specific variants.</p>
</div>
</section>
<footer>
<p>Lian Build Branding System v1.0 · Fire without the ash. · All assets SVG format</p>
</footer>
</div>
<script>
function toggleTheme() {
const isDark = document.body.classList.toggle('dark-mode');
const btn = document.querySelector('nav .theme-toggle');
btn.textContent = isDark ? '☀️ Light' : '🌙 Dark';
localStorage.setItem('lian-theme', isDark ? 'dark' : 'light');
}
window.addEventListener('DOMContentLoaded', () => {
const saved = localStorage.getItem('lian-theme');
if (saved === 'dark' || (!saved && window.matchMedia('(prefers-color-scheme: dark)').matches)) {
document.body.classList.add('dark-mode');
document.querySelector('nav .theme-toggle').textContent = '☀️ Light';
}
});
function copyToClipboard(button) {
const text = button.parentElement.querySelector('span').textContent.trim();
navigator.clipboard.writeText(text).then(() => {
const original = button.textContent;
button.textContent = '✅';
setTimeout(() => { button.textContent = original; }, 2000);
});
}
function copyColorValue(element) {
const hex = element.querySelector('span').textContent.trim();
navigator.clipboard.writeText(hex).then(() => {
const icon = element.querySelectorAll('span')[1];
icon.textContent = '✓';
setTimeout(() => { icon.textContent = '📋'; }, 2000);
});
}
</script>
</body>
</html>