Skip to content

Commit cacf9d3

Browse files
committed
Apply Aurora visual identity: glass panels on a lime/teal wash
Pure CSS retint plus font swap, no markup rewrite — app.js's existing render functions already emit .card/.modal/.conv-col/.chat-panel/etc, so the whole app picks this up through the token system. - :root token block replaced with the Aurora set (--bg-wash, --surface*, --ink-primary/secondary, --border, --accent/--accent-2/--accent-gradient/ --accent-ink/--accent-glow, --card-shadow/--card-glow/--card-blur), plus every pre-existing token name (--bg-elevated, --label*, --separator*, --blue, --bubble-out/in, --tick-blue, --fill) aliased onto it so the ~300 existing var() usages across the file retint automatically. Relative brightness order (elevated < grouped < tertiary) preserved. - body background is the wash, background-attachment:fixed so it's visible on every page, not just scrolled past at the top. - Glass-panel treatment (translucent background, backdrop-filter blur+ saturate, border, shadow, hover glow) applied to .card, .modal, .conv-col, .chat-panel, plus .nav/.page-hdr/.peer-card/.fr-card for a coherent full-app look. - Primary actions (.btn-connect, .btn-primary, .fr-cta, .btn-send, .nav-id-icon, .fr-icon, outgoing message bubbles) switched from flat --accent to --accent-gradient, with text/icon color switched from white to --accent-ink since white doesn't have enough contrast on the bright lime end of the gradient. - Light theme extended (not replaced) with a real whiter/brighter
1 parent 77bc1f0 commit cacf9d3

4 files changed

Lines changed: 201 additions & 77 deletions

File tree

‎app.js‎

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ const S = {
77
filter:'all', startTime:null, selectedNode:null,
88
uptimeTimer:null, wsTimer:null,
99
// UI shell state
10-
page:'messages', peerFilter:'all', everConnected:false, accent:'blue',
10+
page:'messages', peerFilter:'all', everConnected:false, accent:'lime',
1111
// Config page state — one entry per config section (see CFG_SECTIONS)
1212
configs:{}, configEnums:null, configTab:'device', configModuleTab:'mqtt', configDirty:{},
1313
logs:[],
@@ -1020,18 +1020,21 @@ function toggleTheme() {
10201020
// ══════════════════════════════════════════════════════════════════
10211021
// SETTINGS — accent colour
10221022
// ══════════════════════════════════════════════════════════════════
1023+
// Aurora accent pairs — each swatch is a {from, to} gradient, matching the
1024+
// lime/teal pairing already used for the default brand gradient.
10231025
const ACCENT_COLORS = [
1024-
{ id:'blue', name:'Blue', hex:'#0a84ff' },
1025-
{ id:'purple', name:'Purple', hex:'#bf5af2' },
1026-
{ id:'pink', name:'Pink', hex:'#ff375f' },
1027-
{ id:'orange', name:'Orange', hex:'#ff9f0a' },
1028-
{ id:'teal', name:'Teal', hex:'#20c9b0' },
1029-
{ id:'lime', name:'Electric lime', hex:'#c6ff2e' },
1026+
{ id:'lime', name:'Lime', hex:'#c6ff4a', hex2:'#34e0a1' },
1027+
{ id:'blue', name:'Blue', hex:'#4ac8ff', hex2:'#7c5cff' },
1028+
{ id:'violet', name:'Violet', hex:'#9c7cff', hex2:'#ff6bcb' },
1029+
{ id:'coral', name:'Coral', hex:'#ff8a5c', hex2:'#ffd166' },
1030+
{ id:'teal', name:'Teal', hex:'#34e0a1', hex2:'#4ac8ff' },
1031+
{ id:'pink', name:'Pink', hex:'#ff6bcb', hex2:'#ff8a5c' },
10301032
];
10311033

10321034
function applyAccent(id) {
10331035
const c = ACCENT_COLORS.find(a => a.id === id) || ACCENT_COLORS[0];
10341036
document.documentElement.style.setProperty('--accent', c.hex);
1037+
document.documentElement.style.setProperty('--accent-2', c.hex2);
10351038
S.accent = c.id;
10361039
try { localStorage.setItem('mn_accent', c.id); } catch {}
10371040
document.querySelectorAll('.accent-swatch').forEach(el => el.classList.toggle('active', el.dataset.accent === c.id));
@@ -1044,7 +1047,7 @@ function renderSettingsPage() {
10441047
el.innerHTML = ACCENT_COLORS.map(c => `
10451048
<div class="accent-item">
10461049
<button class="accent-swatch${S.accent === c.id ? ' active' : ''}" data-accent="${c.id}"
1047-
style="background:${c.hex}" title="${esc(c.name)}" onclick="setAccent('${c.id}')">
1050+
style="background:linear-gradient(135deg,${c.hex},${c.hex2})" title="${esc(c.name)}" onclick="setAccent('${c.id}')">
10481051
<span class="icon filled">check</span>
10491052
</button>
10501053
<span class="accent-name">${esc(c.name)}</span>
@@ -1839,8 +1842,8 @@ function init() {
18391842
applyTheme(theme);
18401843

18411844
// Accent colour
1842-
let accent = 'blue';
1843-
try { accent = localStorage.getItem('mn_accent') || 'blue'; } catch {}
1845+
let accent = 'lime';
1846+
try { accent = localStorage.getItem('mn_accent') || 'lime'; } catch {}
18441847
applyAccent(accent);
18451848

18461849
// Remember the last node IP the user connected to

‎index.html‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
<script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"></script>
1010
<!-- Material Symbols (Google Icons) -->
1111
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200"/>
12-
<!-- SF Pro / Apple-style font stack -->
13-
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap"/>
12+
<!-- Aurora identity: Poppins (UI text) + JetBrains Mono (numeric/technical: peer IDs, signal metrics, timestamps) -->
13+
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap"/>
1414
<link rel="stylesheet" href="styles.css">
1515
</head>
1616
<body>

‎package.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "meshnatter",
3-
"version": "1.0.8",
3+
"version": "1.0.9",
44
"description": "Meshnatter — Meshtastic Network Monitor",
55
"main": "main.js",
66
"type": "commonjs",

0 commit comments

Comments
 (0)