feat(ui): swap Inter for Barlow / Barlow Condensed display font
Load Barlow + Barlow Condensed from Google Fonts across all 8 HTML entry points. In global.css introduce --font-display (Barlow Condensed) alongside --font (Barlow), then wire the display font into every chrome/heading selector: h1-h6, .page-header, .panel-header, .btn, .stat-label/.stat-value, .form-label, .badge-status, .data-table thead, .tag, .nav-brand, .nav-links. Body copy stays in Barlow for readability. Also normalize a few hardcoded font-families to design-system vars: collection.css Cascadia Code stacks and deckgenerator.css Courier New now use var(--font-mono); canvas rendering in distillation.js and ai-lab.js swapped from Inter to Barlow so charts match the new type. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
1 parent
4fdddf332e
commit
88c0d94d39
13 files changed
+73
-48
No files matched your search
+2
-2
@@ -1739,7 +1739,7 @@ const AiLab = (() => {
|
||||
|
||||
// Y-axis labels (0-100%)
|
||||
ctx.fillStyle = '#8b90a0';
|
||||
ctx.font = '11px Inter, sans-serif';
|
||||
ctx.font = '11px Barlow, sans-serif';
|
||||
ctx.textAlign = 'right';
|
||||
for (let pct = 0; pct <= 100; pct += 25) {
|
||||
const y = canvas.height - padding.bottom - (pct / 100) * h;
|
||||
@@ -1785,7 +1785,7 @@ const AiLab = (() => {
|
||||
const ly = canvas.height - padding.bottom - (lastPt.winRate / 100) * h;
|
||||
ctx.fillStyle = colors[di % colors.length];
|
||||
ctx.textAlign = 'left';
|
||||
ctx.font = '11px Inter, sans-serif';
|
||||
ctx.font = '11px Barlow, sans-serif';
|
||||
ctx.fillText(data.deckName, lx + 6, ly + 4);
|
||||
});
|
||||
}
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@
|
||||
<title>Commander AI Lab — Deck Coach</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@400;500;600;700&display=swap" rel="stylesheet" />
|
||||
<link href="https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@400;600;700;800&family=Barlow:wght@400;500;600&display=swap" rel="stylesheet" />
|
||||
<link rel="stylesheet" href="global.css" />
|
||||
<link rel="stylesheet" href="coach.css" />
|
||||
</head>
|
||||
|
||||
+6
-6
@@ -810,7 +810,7 @@
|
||||
}
|
||||
|
||||
.coll-td-price {
|
||||
font-family: 'Cascadia Code', 'Fira Code', 'Consolas', monospace;
|
||||
font-family: var(--font-mono);
|
||||
text-align: right;
|
||||
white-space: nowrap;
|
||||
}
|
||||
@@ -840,7 +840,7 @@
|
||||
.coll-td-pt {
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
font-family: 'Cascadia Code', 'Fira Code', 'Consolas', monospace;
|
||||
font-family: var(--font-mono);
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
@@ -861,7 +861,7 @@
|
||||
|
||||
.coll-td-edhrec {
|
||||
text-align: right;
|
||||
font-family: 'Cascadia Code', 'Fira Code', 'Consolas', monospace;
|
||||
font-family: var(--font-mono);
|
||||
font-size: 12px;
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
@@ -1872,7 +1872,7 @@
|
||||
border: 1px solid var(--border);
|
||||
border-radius: var(--radius-md);
|
||||
padding: 12px;
|
||||
font-family: 'Cascadia Code', 'Fira Code', 'Consolas', monospace;
|
||||
font-family: var(--font-mono);
|
||||
font-size: 12px;
|
||||
line-height: 1.5;
|
||||
resize: vertical;
|
||||
@@ -1953,7 +1953,7 @@
|
||||
color: var(--text);
|
||||
overflow-x: auto;
|
||||
white-space: pre;
|
||||
font-family: 'Cascadia Code', 'Fira Code', 'Consolas', monospace;
|
||||
font-family: var(--font-mono);
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
@@ -1989,7 +1989,7 @@
|
||||
font-size: 13px;
|
||||
font-weight: 600;
|
||||
color: var(--text);
|
||||
font-family: 'Cascadia Code', 'Fira Code', 'Consolas', monospace;
|
||||
font-family: var(--font-mono);
|
||||
}
|
||||
|
||||
.coll-mapping-select {
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@
|
||||
<title>Commander AI Lab — Collection</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@400;500;600;700&display=swap" rel="stylesheet" />
|
||||
<link href="https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@400;600;700;800&family=Barlow:wght@400;500;600&display=swap" rel="stylesheet" />
|
||||
<link rel="stylesheet" href="global.css" />
|
||||
<link rel="stylesheet" href="collection.css" />
|
||||
</head>
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@
|
||||
<title>Commander AI Lab — Deck Builder</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@400;500;600;700&display=swap" rel="stylesheet" />
|
||||
<link href="https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@400;600;700;800&family=Barlow:wght@400;500;600&display=swap" rel="stylesheet" />
|
||||
<link rel="stylesheet" href="global.css" />
|
||||
<link rel="stylesheet" href="deckbuilder.css" />
|
||||
</head>
|
||||
|
||||
@@ -1267,7 +1267,7 @@
|
||||
border: 1px solid var(--border);
|
||||
border-radius: var(--radius-sm);
|
||||
padding: var(--sp-3);
|
||||
font-family: 'Courier New', monospace;
|
||||
font-family: var(--font-mono);
|
||||
font-size: 0.8rem;
|
||||
scrollbar-width: thin;
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<title>Commander AI Lab — Auto Deck Generator V3</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@400;500;600;700&display=swap" rel="stylesheet" />
|
||||
<link href="https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@400;600;700;800&family=Barlow:wght@400;500;600&display=swap" rel="stylesheet" />
|
||||
<link rel="stylesheet" href="global.css" />
|
||||
<link rel="stylesheet" href="deckgenerator.css" />
|
||||
</head>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<title>Commander AI Lab — Distillation Loop</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@400;500;600;700&display=swap" rel="stylesheet" />
|
||||
<link href="https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@400;600;700;800&family=Barlow:wght@400;500;600&display=swap" rel="stylesheet" />
|
||||
<link rel="stylesheet" href="global.css" />
|
||||
<link rel="stylesheet" href="distillation.css" />
|
||||
</head>
|
||||
|
||||
+7
-7
@@ -362,7 +362,7 @@ function renderWinRateChart(generations) {
|
||||
// Y axis labels
|
||||
const val = maxY - (maxY - minY) * (i / ySteps);
|
||||
ctx.fillStyle = '#8b90a0';
|
||||
ctx.font = '11px Inter, sans-serif';
|
||||
ctx.font = '11px Barlow, sans-serif';
|
||||
ctx.textAlign = 'right';
|
||||
ctx.fillText(val.toFixed(0) + '%', pad.left - 8, y + 4);
|
||||
}
|
||||
@@ -437,7 +437,7 @@ function renderWinRateChart(generations) {
|
||||
}
|
||||
|
||||
// Legend
|
||||
ctx.font = '11px Inter, sans-serif';
|
||||
ctx.font = '11px Barlow, sans-serif';
|
||||
const legendX = pad.left + 10;
|
||||
const legendY = pad.top + 15;
|
||||
|
||||
@@ -505,7 +505,7 @@ function renderCompositionChart(generations) {
|
||||
|
||||
const val = maxDataset - (maxDataset * i / ySteps);
|
||||
ctx.fillStyle = '#8b90a0';
|
||||
ctx.font = '11px Inter, sans-serif';
|
||||
ctx.font = '11px Barlow, sans-serif';
|
||||
ctx.textAlign = 'right';
|
||||
ctx.fillText(formatNumber(val), pad.left - 8, y + 4);
|
||||
}
|
||||
@@ -535,13 +535,13 @@ function renderCompositionChart(generations) {
|
||||
|
||||
// X label
|
||||
ctx.fillStyle = '#8b90a0';
|
||||
ctx.font = '11px Inter, sans-serif';
|
||||
ctx.font = '11px Barlow, sans-serif';
|
||||
ctx.textAlign = 'center';
|
||||
ctx.fillText('G' + g.generation, x + barWidth / 2, h - 8);
|
||||
}
|
||||
|
||||
// Legend
|
||||
ctx.font = '11px Inter, sans-serif';
|
||||
ctx.font = '11px Barlow, sans-serif';
|
||||
const legendX = pad.left + 10;
|
||||
const legendY = pad.top + 12;
|
||||
|
||||
@@ -807,7 +807,7 @@ function renderEloChart(entries) {
|
||||
|
||||
const val = maxElo - (eloRange * i / ySteps);
|
||||
ctx.fillStyle = '#8b90a0';
|
||||
ctx.font = '11px Inter, sans-serif';
|
||||
ctx.font = '11px Barlow, sans-serif';
|
||||
ctx.textAlign = 'right';
|
||||
ctx.fillText(Math.round(val).toString(), pad.left - 8, y + 4);
|
||||
}
|
||||
@@ -861,7 +861,7 @@ function renderEloChart(entries) {
|
||||
});
|
||||
|
||||
// Legend
|
||||
ctx.font = '11px Inter, sans-serif';
|
||||
ctx.font = '11px Barlow, sans-serif';
|
||||
let legendX = pad.left + 10;
|
||||
const legendY = pad.top + 12;
|
||||
modelNames.forEach(name => {
|
||||
|
||||
+49
-24
@@ -61,7 +61,8 @@
|
||||
--duration: 180ms;
|
||||
|
||||
/* Typography */
|
||||
--font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
||||
--font: 'Barlow', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
||||
--font-display: 'Barlow Condensed', 'Barlow', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
||||
--font-mono: 'JetBrains Mono', 'Fira Code', 'Cascadia Code', monospace;
|
||||
|
||||
/* Spacing scale */
|
||||
@@ -94,13 +95,15 @@ body {
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
font-family: var(--font-display);
|
||||
color: #fff;
|
||||
font-weight: 600;
|
||||
line-height: 1.25;
|
||||
font-weight: 700;
|
||||
line-height: 1.15;
|
||||
letter-spacing: 0.01em;
|
||||
}
|
||||
|
||||
h1 { font-size: 24px; }
|
||||
h2 { font-size: 18px; }
|
||||
h1 { font-size: 26px; }
|
||||
h2 { font-size: 19px; }
|
||||
h3 { font-size: 16px; }
|
||||
|
||||
a { color: var(--accent); text-decoration: none; transition: color var(--duration) var(--ease); }
|
||||
@@ -147,10 +150,12 @@ table { border-collapse: collapse; width: 100%; }
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: var(--sp-3);
|
||||
font-size: 15px;
|
||||
font-weight: 700;
|
||||
font-family: var(--font-display);
|
||||
font-size: 17px;
|
||||
font-weight: 800;
|
||||
color: #fff;
|
||||
letter-spacing: -0.01em;
|
||||
letter-spacing: 0.02em;
|
||||
text-transform: uppercase;
|
||||
text-decoration: none;
|
||||
white-space: nowrap;
|
||||
margin-right: var(--sp-8);
|
||||
@@ -177,8 +182,11 @@ table { border-collapse: collapse; width: 100%; }
|
||||
align-items: center;
|
||||
gap: var(--sp-2);
|
||||
padding: 6px 12px;
|
||||
font-size: 13px;
|
||||
font-weight: 500;
|
||||
font-family: var(--font-display);
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
letter-spacing: 0.03em;
|
||||
text-transform: uppercase;
|
||||
color: var(--text-secondary);
|
||||
border-radius: var(--radius-sm);
|
||||
white-space: nowrap;
|
||||
@@ -219,9 +227,11 @@ table { border-collapse: collapse; width: 100%; }
|
||||
}
|
||||
|
||||
.page-header h1 {
|
||||
font-size: 28px;
|
||||
font-weight: 700;
|
||||
letter-spacing: -0.02em;
|
||||
font-family: var(--font-display);
|
||||
font-size: 32px;
|
||||
font-weight: 800;
|
||||
letter-spacing: 0.005em;
|
||||
text-transform: uppercase;
|
||||
margin-bottom: var(--sp-2);
|
||||
}
|
||||
|
||||
@@ -252,13 +262,17 @@ table { border-collapse: collapse; width: 100%; }
|
||||
}
|
||||
|
||||
.panel-header h2 {
|
||||
font-size: 16px;
|
||||
font-weight: 600;
|
||||
font-family: var(--font-display);
|
||||
font-size: 17px;
|
||||
font-weight: 700;
|
||||
letter-spacing: 0.01em;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.panel-header .badge {
|
||||
font-family: var(--font-display);
|
||||
font-size: 11px;
|
||||
font-weight: 600;
|
||||
font-weight: 700;
|
||||
padding: 3px 10px;
|
||||
border-radius: var(--radius-sm);
|
||||
text-transform: uppercase;
|
||||
@@ -288,8 +302,9 @@ table { border-collapse: collapse; width: 100%; }
|
||||
}
|
||||
|
||||
.stat-label {
|
||||
font-family: var(--font-display);
|
||||
font-size: 12px;
|
||||
font-weight: 500;
|
||||
font-weight: 600;
|
||||
color: var(--text-secondary);
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.06em;
|
||||
@@ -297,8 +312,9 @@ table { border-collapse: collapse; width: 100%; }
|
||||
}
|
||||
|
||||
.stat-value {
|
||||
font-size: 28px;
|
||||
font-weight: 700;
|
||||
font-family: var(--font-display);
|
||||
font-size: 30px;
|
||||
font-weight: 800;
|
||||
color: #fff;
|
||||
line-height: 1.1;
|
||||
font-variant-numeric: tabular-nums;
|
||||
@@ -317,8 +333,11 @@ table { border-collapse: collapse; width: 100%; }
|
||||
justify-content: center;
|
||||
gap: var(--sp-2);
|
||||
padding: 8px 18px;
|
||||
font-size: 13px;
|
||||
font-weight: 600;
|
||||
font-family: var(--font-display);
|
||||
font-size: 14px;
|
||||
font-weight: 700;
|
||||
letter-spacing: 0.02em;
|
||||
text-transform: uppercase;
|
||||
border-radius: var(--radius-sm);
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
@@ -392,6 +411,7 @@ table { border-collapse: collapse; width: 100%; }
|
||||
}
|
||||
|
||||
.form-label {
|
||||
font-family: var(--font-display);
|
||||
font-size: 12px;
|
||||
font-weight: 600;
|
||||
color: var(--text-secondary);
|
||||
@@ -510,8 +530,9 @@ table { border-collapse: collapse; width: 100%; }
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 6px;
|
||||
font-family: var(--font-display);
|
||||
font-size: 11px;
|
||||
font-weight: 600;
|
||||
font-weight: 700;
|
||||
padding: 3px 10px;
|
||||
border-radius: var(--radius-sm);
|
||||
text-transform: uppercase;
|
||||
@@ -579,8 +600,9 @@ table { border-collapse: collapse; width: 100%; }
|
||||
.data-table thead th {
|
||||
text-align: left;
|
||||
padding: var(--sp-3) var(--sp-4);
|
||||
font-family: var(--font-display);
|
||||
font-size: 11px;
|
||||
font-weight: 600;
|
||||
font-weight: 700;
|
||||
color: var(--text-secondary);
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.06em;
|
||||
@@ -607,8 +629,11 @@ table { border-collapse: collapse; width: 100%; }
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
padding: 2px 8px;
|
||||
font-family: var(--font-display);
|
||||
font-size: 11px;
|
||||
font-weight: 600;
|
||||
font-weight: 700;
|
||||
letter-spacing: 0.02em;
|
||||
text-transform: uppercase;
|
||||
border-radius: var(--radius-sm);
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@
|
||||
<title>Commander AI Lab</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@400;500;600;700&display=swap" rel="stylesheet" />
|
||||
<link href="https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@400;600;700;800&family=Barlow:wght@400;500;600&display=swap" rel="stylesheet" />
|
||||
<link rel="stylesheet" href="global.css" />
|
||||
<link rel="stylesheet" href="ai-lab.css?v=4" />
|
||||
<style>
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@
|
||||
<title>Commander AI Lab — Simulator</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@400;500;600;700&display=swap" rel="stylesheet" />
|
||||
<link href="https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@400;600;700;800&family=Barlow:wght@400;500;600&display=swap" rel="stylesheet" />
|
||||
<link rel="stylesheet" href="global.css" />
|
||||
<link rel="stylesheet" href="simulator.css" />
|
||||
</head>
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@
|
||||
<title>Commander AI Lab — ML Training</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@400;500;600;700&display=swap" rel="stylesheet" />
|
||||
<link href="https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@400;600;700;800&family=Barlow:wght@400;500;600&display=swap" rel="stylesheet" />
|
||||
<link rel="stylesheet" href="global.css" />
|
||||
<link rel="stylesheet" href="training.css" />
|
||||
</head>
|
||||
|
||||
Reference in new issue
Block a user