Implement BLE OTA

This commit is contained in:
2026-03-19 22:11:45 +01:00
parent 87fc2a3574
commit 395fd9b839
9 changed files with 163 additions and 4 deletions

View File

@@ -308,6 +308,7 @@
.no-ble p { font-size:13px; color:var(--label); line-height:1.8; }
body.disconnected .card { opacity:0.45; pointer-events:none; transition:opacity 0.3s; }
body.disconnected .card.ota-card { opacity:1; pointer-events:auto; } /* OTA works when disconnected too */
body.disconnected .cmd-grid { opacity:0.45; pointer-events:none; transition:opacity 0.3s; }
.tap-key-row { display:flex; align-items:center; gap:10px; padding-top:12px; flex-wrap:wrap; }
@@ -325,3 +326,21 @@
.tap-flash.right { background:radial-gradient(circle at center, var(--tap-right) 0%, transparent 70%); }
.tap-flash.show { opacity:1; }
.viz-wrap { position:relative; }
/* ── OTA Firmware Update ── */
.ota-card { display:flex; flex-direction:column; gap:14px; }
.ota-notice { display:flex; gap:12px; align-items:flex-start; padding:10px 12px; background:color-mix(in srgb, var(--warn) 8%, var(--bg)); border-left:3px solid var(--warn); }
.ota-notice-icon { font-size:16px; color:var(--warn); flex-shrink:0; line-height:1.4; }
.ota-notice-title { font-family:var(--sans); font-size:11px; font-weight:700; color:var(--warn); letter-spacing:0.08em; text-transform:uppercase; margin-bottom:4px; }
.ota-notice-body { font-family:var(--mono); font-size:10px; color:var(--label); line-height:1.6; }
.ota-steps { font-family:var(--mono); font-size:10px; color:var(--label); line-height:1.9; margin:0; padding-left:18px; }
.ota-steps code { color:var(--text); }
.ota-steps strong { color:var(--text); }
.ota-steps em { color:var(--accent); font-style:normal; }
.ota-btn-row { display:grid; gap:8px; }
.ota-status-row { min-height:14px; }
.ota-status { font-family:var(--mono); font-size:10px; color:var(--label); }
.ota-status.ota-ok { color:var(--ok); }
.ota-status.ota-err { color:var(--accent2); }
.cmd-btn.ota-trigger::before { background:var(--accent); }
.cmd-btn.ota-trigger:hover { border-color:var(--accent); }