mirror of
https://github.com/smittix/intercept.git
synced 2026-07-07 09:08:12 -07:00
feat: Switch application font to Roboto Condensed
Replace IBM Plex Mono, Space Mono, and JetBrains Mono with Roboto Condensed across all CSS variables, inline styles, canvas ctx.font references, and Google Fonts CDN links. Updates 28 files covering templates, stylesheets, and JS modules for consistent typography. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -5,8 +5,8 @@
|
||||
}
|
||||
|
||||
:root {
|
||||
--font-sans: 'IBM Plex Mono', 'Space Mono', ui-monospace, 'SF Mono', 'Consolas', 'Menlo', monospace;
|
||||
--font-mono: 'IBM Plex Mono', 'Space Mono', ui-monospace, 'SF Mono', 'Consolas', 'Menlo', monospace;
|
||||
--font-sans: 'Roboto Condensed', 'Arial Narrow', Roboto, 'Helvetica Neue', Arial, sans-serif;
|
||||
--font-mono: 'Roboto Condensed', 'Arial Narrow', Roboto, 'Helvetica Neue', Arial, sans-serif;
|
||||
--bg-dark: #0b1118;
|
||||
--bg-panel: #101823;
|
||||
--bg-card: #151f2b;
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
}
|
||||
|
||||
:root {
|
||||
--font-sans: 'IBM Plex Mono', 'Space Mono', ui-monospace, 'SF Mono', 'Consolas', 'Menlo', monospace;
|
||||
--font-mono: 'IBM Plex Mono', 'Space Mono', ui-monospace, 'SF Mono', 'Consolas', 'Menlo', monospace;
|
||||
--font-sans: 'Roboto Condensed', 'Arial Narrow', Roboto, 'Helvetica Neue', Arial, sans-serif;
|
||||
--font-mono: 'Roboto Condensed', 'Arial Narrow', Roboto, 'Helvetica Neue', Arial, sans-serif;
|
||||
--bg-dark: #0b1118;
|
||||
--bg-panel: #101823;
|
||||
--bg-card: #151f2b;
|
||||
|
||||
@@ -8,8 +8,8 @@
|
||||
}
|
||||
|
||||
:root {
|
||||
--font-sans: 'IBM Plex Mono', 'Space Mono', ui-monospace, 'SF Mono', 'Consolas', 'Menlo', monospace;
|
||||
--font-mono: 'IBM Plex Mono', 'Space Mono', ui-monospace, 'SF Mono', 'Consolas', 'Menlo', monospace;
|
||||
--font-sans: 'Roboto Condensed', 'Arial Narrow', Roboto, 'Helvetica Neue', Arial, sans-serif;
|
||||
--font-mono: 'Roboto Condensed', 'Arial Narrow', Roboto, 'Helvetica Neue', Arial, sans-serif;
|
||||
--bg-dark: #0b1118;
|
||||
--bg-panel: #101823;
|
||||
--bg-card: #151f2b;
|
||||
@@ -496,7 +496,7 @@ body {
|
||||
padding: 10px 15px;
|
||||
background: rgba(74, 158, 255, 0.05);
|
||||
border-bottom: 1px solid rgba(74, 158, 255, 0.1);
|
||||
font-family: 'Orbitron', 'Space Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 11px;
|
||||
font-weight: 500;
|
||||
letter-spacing: 2px;
|
||||
@@ -568,7 +568,7 @@ body {
|
||||
}
|
||||
|
||||
.vessel-name {
|
||||
font-family: 'Orbitron', 'Space Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 16px;
|
||||
font-weight: 700;
|
||||
color: var(--accent-cyan);
|
||||
@@ -662,7 +662,7 @@ body {
|
||||
}
|
||||
|
||||
.vessel-item-name {
|
||||
font-family: 'Orbitron', 'Space Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 12px;
|
||||
font-weight: 600;
|
||||
color: var(--accent-cyan);
|
||||
@@ -1223,7 +1223,7 @@ body {
|
||||
}
|
||||
|
||||
.dsc-distress-alert .dsc-alert-header {
|
||||
font-family: 'Orbitron', 'Space Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 24px;
|
||||
font-weight: 700;
|
||||
color: var(--accent-red);
|
||||
|
||||
@@ -78,8 +78,8 @@
|
||||
/* ============================================
|
||||
TYPOGRAPHY
|
||||
============================================ */
|
||||
--font-sans: 'IBM Plex Mono', 'Space Mono', ui-monospace, 'SF Mono', 'Consolas', 'Menlo', monospace;
|
||||
--font-mono: 'IBM Plex Mono', 'Space Mono', ui-monospace, 'SF Mono', 'Consolas', 'Menlo', monospace;
|
||||
--font-sans: 'Roboto Condensed', 'Arial Narrow', Roboto, 'Helvetica Neue', Arial, sans-serif;
|
||||
--font-mono: 'Roboto Condensed', 'Arial Narrow', Roboto, 'Helvetica Neue', Arial, sans-serif;
|
||||
|
||||
/* Font sizes */
|
||||
--text-xs: 10px;
|
||||
|
||||
@@ -1,18 +1,3 @@
|
||||
/* Local font declarations for offline mode */
|
||||
|
||||
/* Space Mono - Console font */
|
||||
@font-face {
|
||||
font-family: 'Space Mono';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-display: swap;
|
||||
src: url('/static/vendor/fonts/SpaceMono-Regular.woff2') format('woff2');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Space Mono';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
font-display: swap;
|
||||
src: url('/static/vendor/fonts/SpaceMono-Bold.woff2') format('woff2');
|
||||
}
|
||||
/* Note: Roboto Condensed local files not yet bundled - this is a placeholder */
|
||||
/* Font is loaded via Google Fonts CDN; offline mode will fall back to Arial Narrow / system sans-serif */
|
||||
|
||||
@@ -434,6 +434,6 @@ a.nav-dashboard-btn:hover {
|
||||
}
|
||||
|
||||
.nav-dashboard-btn .nav-label {
|
||||
font-family: var(--font-mono, 'JetBrains Mono', monospace);
|
||||
font-family: var(--font-mono, 'Roboto Condensed', 'Arial Narrow', sans-serif);
|
||||
letter-spacing: 0.5px;
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
z-index: 10000;
|
||||
overflow-y: auto;
|
||||
padding: 40px 20px;
|
||||
font-family: var(--font-mono, 'IBM Plex Mono', 'Space Mono', ui-monospace, monospace);
|
||||
font-family: var(--font-mono, 'Roboto Condensed', 'Arial Narrow', sans-serif);
|
||||
}
|
||||
|
||||
.help-modal.active {
|
||||
@@ -155,7 +155,7 @@
|
||||
border: none;
|
||||
color: var(--text-secondary, #9ca3af);
|
||||
cursor: pointer;
|
||||
font-family: var(--font-mono, 'IBM Plex Mono', 'Space Mono', ui-monospace, monospace);
|
||||
font-family: var(--font-mono, 'Roboto Condensed', 'Arial Narrow', sans-serif);
|
||||
font-size: 10px;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 1px;
|
||||
@@ -200,7 +200,7 @@
|
||||
background: var(--bg-tertiary, #151a23);
|
||||
padding: 1px 5px;
|
||||
border-radius: 3px;
|
||||
font-family: var(--font-mono, 'IBM Plex Mono', 'Space Mono', ui-monospace, monospace);
|
||||
font-family: var(--font-mono, 'Roboto Condensed', 'Arial Narrow', sans-serif);
|
||||
font-size: 10.5px;
|
||||
color: var(--accent-cyan, #4a9eff);
|
||||
}
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
}
|
||||
|
||||
:root {
|
||||
--font-sans: 'IBM Plex Mono', 'Space Mono', ui-monospace, 'SF Mono', 'Consolas', 'Menlo', monospace;
|
||||
--font-mono: 'IBM Plex Mono', 'Space Mono', ui-monospace, 'SF Mono', 'Consolas', 'Menlo', monospace;
|
||||
--font-sans: 'Roboto Condensed', 'Arial Narrow', Roboto, 'Helvetica Neue', Arial, sans-serif;
|
||||
--font-mono: 'Roboto Condensed', 'Arial Narrow', Roboto, 'Helvetica Neue', Arial, sans-serif;
|
||||
/* Tactical dark palette */
|
||||
--bg-primary: #0b1118;
|
||||
--bg-secondary: #101823;
|
||||
@@ -6372,7 +6372,7 @@ body::before {
|
||||
}
|
||||
|
||||
.module-header {
|
||||
font-family: 'Orbitron', 'Space Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 10px;
|
||||
font-weight: 600;
|
||||
color: var(--accent-cyan);
|
||||
@@ -6550,7 +6550,7 @@ body::before {
|
||||
/* Listening Mode Selector Buttons */
|
||||
.radio-mode-btn {
|
||||
padding: 12px 24px;
|
||||
font-family: 'Orbitron', 'Space Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 13px;
|
||||
font-weight: 600;
|
||||
text-transform: uppercase;
|
||||
|
||||
+57
-57
@@ -5,7 +5,7 @@
|
||||
padding: 8px 10px;
|
||||
background: var(--bg-tertiary, #1a1f2e);
|
||||
border-radius: 4px;
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
@@ -86,7 +86,7 @@
|
||||
border-radius: 4px;
|
||||
background: var(--bg-tertiary, #1a1f2e);
|
||||
color: var(--text-primary, #e0e0e0);
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 11px;
|
||||
cursor: pointer;
|
||||
transition: background 0.15s, border-color 0.15s;
|
||||
@@ -113,7 +113,7 @@
|
||||
border-bottom: 2px solid transparent;
|
||||
background: transparent;
|
||||
color: var(--text-dim, #666);
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 11px;
|
||||
text-transform: uppercase;
|
||||
cursor: pointer;
|
||||
@@ -153,7 +153,7 @@
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 7px;
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 10px;
|
||||
color: var(--text-secondary, #999);
|
||||
text-transform: uppercase;
|
||||
@@ -168,7 +168,7 @@
|
||||
}
|
||||
|
||||
.subghz-trigger-grid label {
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 9px;
|
||||
color: var(--text-dim, #666);
|
||||
text-transform: uppercase;
|
||||
@@ -182,7 +182,7 @@
|
||||
border-radius: 4px;
|
||||
background: var(--bg-primary, #0d1117);
|
||||
color: var(--text-primary, #e0e0e0);
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 10px;
|
||||
}
|
||||
|
||||
@@ -192,7 +192,7 @@
|
||||
|
||||
.subghz-trigger-help {
|
||||
margin: 0;
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 9px;
|
||||
color: var(--text-dim, #666);
|
||||
line-height: 1.4;
|
||||
@@ -207,7 +207,7 @@
|
||||
background: var(--bg-tertiary, #1a1f2e);
|
||||
border-radius: 4px;
|
||||
margin-bottom: 10px;
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
@@ -264,7 +264,7 @@
|
||||
border-radius: 4px;
|
||||
background: transparent;
|
||||
color: var(--text-primary, #e0e0e0);
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 12px;
|
||||
cursor: pointer;
|
||||
transition: background 0.15s, border-color 0.15s;
|
||||
@@ -369,7 +369,7 @@
|
||||
background: var(--bg-tertiary, #1a1f2e);
|
||||
border: 1px solid var(--border-color, #2a3040);
|
||||
border-radius: 4px;
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 11px;
|
||||
min-width: 0;
|
||||
transition: border-color 0.15s, box-shadow 0.15s, background 0.15s;
|
||||
@@ -416,7 +416,7 @@
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 9px;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.5px;
|
||||
@@ -446,7 +446,7 @@
|
||||
padding: 1px 6px;
|
||||
border-radius: 999px;
|
||||
border: 1px solid var(--border-color, #2a3040);
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 9px;
|
||||
letter-spacing: 0.35px;
|
||||
color: var(--text-dim, #666);
|
||||
@@ -512,7 +512,7 @@
|
||||
color: var(--text-dim, #666);
|
||||
font-size: 10px;
|
||||
cursor: pointer;
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
}
|
||||
|
||||
.subghz-capture-actions button:hover {
|
||||
@@ -554,7 +554,7 @@
|
||||
border-radius: 4px;
|
||||
color: var(--accent-red, #ff4444);
|
||||
font-size: 10px;
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
line-height: 1.4;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
@@ -591,7 +591,7 @@
|
||||
border-radius: 6px;
|
||||
padding: 12px;
|
||||
overflow-y: auto;
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 12px;
|
||||
color: var(--text-primary, #e0e0e0);
|
||||
min-height: 200px;
|
||||
@@ -695,12 +695,12 @@
|
||||
.subghz-tx-modal .tx-freq {
|
||||
color: var(--accent-cyan, #00d4ff);
|
||||
font-weight: 600;
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
}
|
||||
|
||||
.subghz-tx-modal .tx-duration {
|
||||
color: var(--text-dim, #666);
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
}
|
||||
|
||||
.subghz-tx-segment-box {
|
||||
@@ -742,7 +742,7 @@
|
||||
border-radius: 4px;
|
||||
background: var(--bg-primary, #0d1117);
|
||||
color: var(--text-primary, #e0e0e0);
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
@@ -755,7 +755,7 @@
|
||||
margin-bottom: 0 !important;
|
||||
font-size: 11px !important;
|
||||
color: var(--accent-cyan, #00d4ff) !important;
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
}
|
||||
|
||||
.subghz-tx-burst-assist {
|
||||
@@ -768,7 +768,7 @@
|
||||
}
|
||||
|
||||
.subghz-tx-burst-title {
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 10px;
|
||||
color: var(--text-dim, #666);
|
||||
text-transform: uppercase;
|
||||
@@ -805,7 +805,7 @@
|
||||
|
||||
.subghz-tx-burst-range {
|
||||
margin: 0 0 8px 0;
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 10px;
|
||||
color: var(--accent-cyan, #00d4ff);
|
||||
}
|
||||
@@ -839,7 +839,7 @@
|
||||
padding: 6px;
|
||||
border: 1px dashed var(--border-color, #2a3040);
|
||||
border-radius: 4px;
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 10px;
|
||||
color: var(--text-dim, #666);
|
||||
line-height: 1.4;
|
||||
@@ -854,7 +854,7 @@
|
||||
border: 1px solid var(--border-color, #2a3040);
|
||||
border-radius: 4px;
|
||||
background: rgba(0, 0, 0, 0.15);
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 10px;
|
||||
color: var(--text-secondary, #999);
|
||||
}
|
||||
@@ -865,7 +865,7 @@
|
||||
border-radius: 3px;
|
||||
background: transparent;
|
||||
color: #00d4ff;
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 10px;
|
||||
cursor: pointer;
|
||||
}
|
||||
@@ -884,7 +884,7 @@
|
||||
.subghz-tx-modal-actions button {
|
||||
padding: 8px 20px;
|
||||
border-radius: 4px;
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 12px;
|
||||
cursor: pointer;
|
||||
border: 1px solid;
|
||||
@@ -926,7 +926,7 @@
|
||||
color: var(--text-dim, #666);
|
||||
font-size: 12px;
|
||||
padding: 24px 12px;
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
}
|
||||
|
||||
.subghz-captures-list-main .subghz-empty {
|
||||
@@ -943,7 +943,7 @@
|
||||
border: 1px solid #2a3040;
|
||||
border-radius: 4px;
|
||||
padding: 5px 9px;
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 11px;
|
||||
z-index: 9999;
|
||||
display: none;
|
||||
@@ -970,7 +970,7 @@
|
||||
min-width: 180px;
|
||||
padding: 4px 0;
|
||||
box-shadow: 0 6px 20px rgba(0, 0, 0, 0.6);
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
@@ -1029,7 +1029,7 @@
|
||||
border-radius: 3px;
|
||||
background: transparent;
|
||||
color: var(--text-primary, #e0e0e0);
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 10px;
|
||||
cursor: pointer;
|
||||
transition: background 0.12s, border-color 0.12s, color 0.12s;
|
||||
@@ -1068,7 +1068,7 @@
|
||||
content: 'No peaks detected';
|
||||
color: var(--text-dim, #666);
|
||||
font-size: 10px;
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
padding: 6px 0;
|
||||
text-align: center;
|
||||
}
|
||||
@@ -1082,7 +1082,7 @@
|
||||
border: 1px solid var(--border-color, #2a3040);
|
||||
border-radius: 3px;
|
||||
cursor: pointer;
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 10px;
|
||||
transition: border-color 0.12s;
|
||||
}
|
||||
@@ -1108,7 +1108,7 @@
|
||||
border: 1px solid var(--border-color, #2a3040);
|
||||
border-radius: 6px;
|
||||
padding: 6px 12px;
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 11px;
|
||||
flex-shrink: 0;
|
||||
flex-wrap: wrap;
|
||||
@@ -1192,7 +1192,7 @@
|
||||
border-radius: 3px;
|
||||
background: transparent;
|
||||
color: #22c55e;
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 10px;
|
||||
cursor: pointer;
|
||||
text-transform: uppercase;
|
||||
@@ -1211,7 +1211,7 @@
|
||||
padding: 2px 8px;
|
||||
border: 1px solid var(--border-color, #2a3040);
|
||||
border-radius: 3px;
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 10px;
|
||||
color: var(--text-secondary, #999);
|
||||
letter-spacing: 0.3px;
|
||||
@@ -1263,7 +1263,7 @@
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 6px;
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 10px;
|
||||
}
|
||||
|
||||
@@ -1300,7 +1300,7 @@
|
||||
border-radius: 999px;
|
||||
margin-left: auto;
|
||||
margin-right: 8px;
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 10px;
|
||||
color: var(--text-dim, #666);
|
||||
background: rgba(0, 0, 0, 0.15);
|
||||
@@ -1365,7 +1365,7 @@
|
||||
padding: 6px 12px;
|
||||
overflow-y: auto;
|
||||
max-height: 114px;
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 10px;
|
||||
line-height: 1.6;
|
||||
}
|
||||
@@ -1402,7 +1402,7 @@
|
||||
}
|
||||
|
||||
.subghz-hub-header-title {
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 20px;
|
||||
font-weight: 700;
|
||||
color: var(--accent-cyan, #00d4ff);
|
||||
@@ -1410,7 +1410,7 @@
|
||||
}
|
||||
|
||||
.subghz-hub-header-sub {
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 11px;
|
||||
color: var(--text-dim, #666);
|
||||
margin-top: 2px;
|
||||
@@ -1472,14 +1472,14 @@
|
||||
}
|
||||
|
||||
.subghz-hub-title {
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
color: var(--text-primary, #e0e0e0);
|
||||
}
|
||||
|
||||
.subghz-hub-desc {
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 10px;
|
||||
color: var(--text-dim, #666);
|
||||
}
|
||||
@@ -1526,7 +1526,7 @@
|
||||
}
|
||||
|
||||
.subghz-saved-selection-count {
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 10px;
|
||||
color: var(--accent-cyan, #00d4ff);
|
||||
margin-right: 4px;
|
||||
@@ -1538,7 +1538,7 @@
|
||||
border-radius: 4px;
|
||||
background: transparent;
|
||||
color: var(--text-secondary, #999);
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 11px;
|
||||
cursor: pointer;
|
||||
transition: border-color 0.15s, color 0.15s;
|
||||
@@ -1550,7 +1550,7 @@
|
||||
}
|
||||
|
||||
.subghz-op-panel-title {
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 12px;
|
||||
color: var(--text-primary, #e0e0e0);
|
||||
text-transform: uppercase;
|
||||
@@ -1620,7 +1620,7 @@
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
color: var(--accent-red, #ff4444);
|
||||
@@ -1654,14 +1654,14 @@
|
||||
}
|
||||
|
||||
.subghz-rx-info-label {
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 9px;
|
||||
color: var(--text-dim, #666);
|
||||
letter-spacing: 0.5px;
|
||||
}
|
||||
|
||||
.subghz-rx-info-value {
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 16px;
|
||||
font-weight: 600;
|
||||
color: var(--text-primary, #e0e0e0);
|
||||
@@ -1688,7 +1688,7 @@
|
||||
border: 1px solid var(--border-color, #2a3040);
|
||||
border-radius: 4px;
|
||||
background: rgba(0, 0, 0, 0.22);
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
}
|
||||
|
||||
.subghz-rx-hint-label {
|
||||
@@ -1722,7 +1722,7 @@
|
||||
padding: 2px 8px;
|
||||
border: 1px solid var(--border-color, #2a3040);
|
||||
border-radius: 999px;
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 10px;
|
||||
color: var(--text-dim, #666);
|
||||
background: rgba(0, 0, 0, 0.2);
|
||||
@@ -1741,7 +1741,7 @@
|
||||
}
|
||||
|
||||
.subghz-rx-level-label {
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 9px;
|
||||
color: var(--text-dim, #666);
|
||||
letter-spacing: 0.5px;
|
||||
@@ -1772,7 +1772,7 @@
|
||||
}
|
||||
|
||||
.subghz-rx-scope-label {
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 9px;
|
||||
color: var(--text-dim, #666);
|
||||
letter-spacing: 0.5px;
|
||||
@@ -1832,7 +1832,7 @@
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 6px;
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 9px;
|
||||
color: var(--text-dim, #666);
|
||||
letter-spacing: 0.4px;
|
||||
@@ -1854,7 +1854,7 @@
|
||||
border-radius: 4px;
|
||||
background: transparent;
|
||||
color: var(--text-secondary, #999);
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 10px;
|
||||
cursor: pointer;
|
||||
transition: border-color 0.15s, color 0.15s, background 0.15s;
|
||||
@@ -1938,7 +1938,7 @@
|
||||
}
|
||||
|
||||
.subghz-tx-label {
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
color: var(--accent-red, #ff4444);
|
||||
@@ -1958,14 +1958,14 @@
|
||||
}
|
||||
|
||||
.subghz-tx-info-label {
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 9px;
|
||||
color: var(--text-dim, #666);
|
||||
letter-spacing: 0.5px;
|
||||
}
|
||||
|
||||
.subghz-tx-info-value {
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 16px;
|
||||
font-weight: 600;
|
||||
color: var(--text-primary, #e0e0e0);
|
||||
@@ -1998,7 +1998,7 @@
|
||||
}
|
||||
|
||||
.subghz-sweep-peaks-title {
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 10px;
|
||||
color: var(--text-dim, #666);
|
||||
text-transform: uppercase;
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
.wxsat-strip-status-text {
|
||||
font-size: 12px;
|
||||
color: var(--text-secondary, #999);
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
}
|
||||
|
||||
.wxsat-strip-btn {
|
||||
@@ -59,7 +59,7 @@
|
||||
background: transparent;
|
||||
color: var(--text-primary, #e0e0e0);
|
||||
font-size: 11px;
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
cursor: pointer;
|
||||
transition: all 0.2s;
|
||||
}
|
||||
@@ -92,7 +92,7 @@
|
||||
|
||||
.wxsat-strip-value {
|
||||
font-size: 13px;
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
color: var(--text-primary, #e0e0e0);
|
||||
}
|
||||
|
||||
@@ -114,7 +114,7 @@
|
||||
gap: 6px;
|
||||
cursor: pointer;
|
||||
font-size: 10px;
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
color: var(--text-dim, #666);
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.5px;
|
||||
@@ -146,7 +146,7 @@
|
||||
border-radius: 3px;
|
||||
color: var(--text-primary, #e0e0e0);
|
||||
font-size: 11px;
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
}
|
||||
|
||||
.wxsat-loc-input:focus {
|
||||
@@ -225,7 +225,7 @@
|
||||
.wxsat-cd-value {
|
||||
font-size: 16px;
|
||||
font-weight: 700;
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
color: var(--text-primary, #e0e0e0);
|
||||
line-height: 1;
|
||||
}
|
||||
@@ -248,13 +248,13 @@
|
||||
font-size: 12px;
|
||||
font-weight: 600;
|
||||
color: var(--accent-cyan, #00d4ff);
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
}
|
||||
|
||||
.wxsat-countdown-detail {
|
||||
font-size: 10px;
|
||||
color: var(--text-dim, #666);
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
}
|
||||
|
||||
/* ===== Timeline ===== */
|
||||
@@ -314,7 +314,7 @@
|
||||
justify-content: space-between;
|
||||
font-size: 8px;
|
||||
color: var(--text-dim, #666);
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
}
|
||||
|
||||
/* ===== Pass Predictions Panel ===== */
|
||||
@@ -349,7 +349,7 @@
|
||||
.wxsat-passes-count {
|
||||
font-size: 11px;
|
||||
color: var(--accent-cyan, #00d4ff);
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
}
|
||||
|
||||
.wxsat-passes-list {
|
||||
@@ -387,7 +387,7 @@
|
||||
background: rgba(255, 187, 0, 0.15);
|
||||
color: #ffbb00;
|
||||
margin-left: 6px;
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.5px;
|
||||
}
|
||||
@@ -409,7 +409,7 @@
|
||||
font-size: 10px;
|
||||
padding: 2px 6px;
|
||||
border-radius: 3px;
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
}
|
||||
|
||||
.wxsat-pass-mode.apt {
|
||||
@@ -428,7 +428,7 @@
|
||||
gap: 4px;
|
||||
font-size: 11px;
|
||||
color: var(--text-dim, #666);
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
}
|
||||
|
||||
.wxsat-pass-detail-label {
|
||||
@@ -499,7 +499,7 @@
|
||||
.wxsat-panel-subtitle {
|
||||
font-size: 10px;
|
||||
color: var(--accent-cyan, #00d4ff);
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
}
|
||||
|
||||
#wxsatPolarCanvas {
|
||||
@@ -547,7 +547,7 @@
|
||||
.wxsat-gallery-count {
|
||||
font-size: 11px;
|
||||
color: var(--accent-cyan, #00d4ff);
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
}
|
||||
|
||||
.wxsat-gallery-grid {
|
||||
@@ -636,7 +636,7 @@
|
||||
.wxsat-image-product {
|
||||
font-size: 10px;
|
||||
color: var(--accent-cyan, #00d4ff);
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
}
|
||||
|
||||
.wxsat-image-timestamp {
|
||||
@@ -649,7 +649,7 @@
|
||||
.wxsat-date-header {
|
||||
grid-column: 1 / -1;
|
||||
font-size: 11px;
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
color: var(--text-dim, #666);
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.5px;
|
||||
@@ -708,7 +708,7 @@
|
||||
.wxsat-capture-message {
|
||||
font-size: 11px;
|
||||
color: var(--text-secondary, #999);
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
@@ -719,7 +719,7 @@
|
||||
.wxsat-capture-elapsed {
|
||||
font-size: 11px;
|
||||
color: var(--text-dim, #666);
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
@@ -785,7 +785,7 @@
|
||||
border-radius: 4px;
|
||||
color: var(--text-secondary, #999);
|
||||
font-size: 12px;
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
@@ -941,7 +941,7 @@
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
}
|
||||
|
||||
.wxsat-phase-step {
|
||||
@@ -1012,7 +1012,7 @@
|
||||
max-height: 160px;
|
||||
padding: 6px 12px;
|
||||
background: var(--bg-primary, #0d1117);
|
||||
font-family: 'JetBrains Mono', monospace;
|
||||
font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;
|
||||
font-size: 10px;
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
}
|
||||
|
||||
:root {
|
||||
--font-sans: 'IBM Plex Mono', 'Space Mono', ui-monospace, 'SF Mono', 'Consolas', 'Menlo', monospace;
|
||||
--font-mono: 'IBM Plex Mono', 'Space Mono', ui-monospace, 'SF Mono', 'Consolas', 'Menlo', monospace;
|
||||
--font-sans: 'Roboto Condensed', 'Arial Narrow', Roboto, 'Helvetica Neue', Arial, sans-serif;
|
||||
--font-mono: 'Roboto Condensed', 'Arial Narrow', Roboto, 'Helvetica Neue', Arial, sans-serif;
|
||||
--bg-dark: #0b1118;
|
||||
--bg-panel: #101823;
|
||||
--bg-card: #151f2b;
|
||||
|
||||
@@ -373,7 +373,7 @@ function showInfo(text) {
|
||||
|
||||
const infoEl = document.createElement('div');
|
||||
infoEl.className = 'info-msg';
|
||||
infoEl.style.cssText = 'padding: 12px 15px; margin-bottom: 8px; background: #0a0a0a; border: 1px solid #1a1a1a; border-left: 2px solid #00d4ff; font-family: "Space Mono", monospace; font-size: 11px; color: #888; word-break: break-all;';
|
||||
infoEl.style.cssText = 'padding: 12px 15px; margin-bottom: 8px; background: #0a0a0a; border: 1px solid #1a1a1a; border-left: 2px solid #00d4ff; font-family: "Roboto Condensed", "Arial Narrow", sans-serif; font-size: 11px; color: #888; word-break: break-all;';
|
||||
infoEl.textContent = text;
|
||||
output.insertBefore(infoEl, output.firstChild);
|
||||
}
|
||||
@@ -387,7 +387,7 @@ function showError(text) {
|
||||
|
||||
const errorEl = document.createElement('div');
|
||||
errorEl.className = 'error-msg';
|
||||
errorEl.style.cssText = 'padding: 12px 15px; margin-bottom: 8px; background: #1a0a0a; border: 1px solid #2a1a1a; border-left: 2px solid #ff3366; font-family: "Space Mono", monospace; font-size: 11px; color: #ff6688; word-break: break-all;';
|
||||
errorEl.style.cssText = 'padding: 12px 15px; margin-bottom: 8px; background: #1a0a0a; border: 1px solid #2a1a1a; border-left: 2px solid #ff3366; font-family: "Roboto Condensed", "Arial Narrow", sans-serif; font-size: 11px; color: #ff6688; word-break: break-all;';
|
||||
errorEl.textContent = '⚠ ' + text;
|
||||
output.insertBefore(errorEl, output.firstChild);
|
||||
}
|
||||
|
||||
@@ -833,11 +833,11 @@ function renderUpdateStatus(data) {
|
||||
<div style="display: grid; gap: 8px; font-size: 12px;">
|
||||
<div style="display: flex; justify-content: space-between;">
|
||||
<span style="color: var(--text-dim);">Current Version</span>
|
||||
<span style="font-family: 'Space Mono', monospace; color: var(--text-primary);">v${data.current_version}</span>
|
||||
<span style="font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; color: var(--text-primary);">v${data.current_version}</span>
|
||||
</div>
|
||||
<div style="display: flex; justify-content: space-between;">
|
||||
<span style="color: var(--text-dim);">Latest Version</span>
|
||||
<span style="font-family: 'Space Mono', monospace; color: ${data.update_available ? 'var(--accent-green)' : 'var(--text-primary)'};">v${data.latest_version}</span>
|
||||
<span style="font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; color: ${data.update_available ? 'var(--accent-green)' : 'var(--text-primary)'};">v${data.latest_version}</span>
|
||||
</div>
|
||||
${data.last_check ? `
|
||||
<div style="display: flex; justify-content: space-between;">
|
||||
|
||||
@@ -291,7 +291,7 @@ const GPS = (function() {
|
||||
|
||||
// PRN label
|
||||
ctx.fillStyle = color;
|
||||
ctx.font = '8px JetBrains Mono, monospace';
|
||||
ctx.font = '8px Roboto Condensed, monospace';
|
||||
ctx.textAlign = 'center';
|
||||
ctx.textBaseline = 'bottom';
|
||||
ctx.fillText(sat.prn, px, py - dotSize - 2);
|
||||
@@ -299,7 +299,7 @@ const GPS = (function() {
|
||||
// SNR value
|
||||
if (sat.snr != null) {
|
||||
ctx.fillStyle = 'rgba(255,255,255,0.4)';
|
||||
ctx.font = '7px JetBrains Mono, monospace';
|
||||
ctx.font = '7px Roboto Condensed, monospace';
|
||||
ctx.textBaseline = 'top';
|
||||
ctx.fillText(Math.round(sat.snr), px, py + dotSize + 1);
|
||||
}
|
||||
@@ -331,7 +331,7 @@ const GPS = (function() {
|
||||
ctx.stroke();
|
||||
// Label
|
||||
ctx.fillStyle = '#555';
|
||||
ctx.font = '9px JetBrains Mono, monospace';
|
||||
ctx.font = '9px Roboto Condensed, monospace';
|
||||
ctx.textAlign = 'left';
|
||||
ctx.textBaseline = 'middle';
|
||||
ctx.fillText(el + '\u00b0', cx + gr + 3, cy - 2);
|
||||
@@ -346,7 +346,7 @@ const GPS = (function() {
|
||||
|
||||
// Cardinal directions
|
||||
ctx.fillStyle = '#888';
|
||||
ctx.font = 'bold 11px JetBrains Mono, monospace';
|
||||
ctx.font = 'bold 11px Roboto Condensed, monospace';
|
||||
ctx.textAlign = 'center';
|
||||
ctx.textBaseline = 'middle';
|
||||
ctx.fillText('N', cx, cy - r - 12);
|
||||
|
||||
@@ -1483,7 +1483,7 @@ function drawAudioVisualizer() {
|
||||
}
|
||||
|
||||
ctx.fillStyle = 'rgba(255, 255, 255, 0.3)';
|
||||
ctx.font = '8px Space Mono';
|
||||
ctx.font = '8px Roboto Condensed';
|
||||
ctx.fillText('0', 2, canvas.height - 2);
|
||||
ctx.fillText('4kHz', canvas.width / 4, canvas.height - 2);
|
||||
ctx.fillText('8kHz', canvas.width / 2, canvas.height - 2);
|
||||
|
||||
@@ -84,7 +84,7 @@ const SpyStations = (function() {
|
||||
modeContainer.innerHTML = modes.map(m => `
|
||||
<label class="inline-checkbox">
|
||||
<input type="checkbox" data-mode="${m}" checked onchange="SpyStations.applyFilters()">
|
||||
<span style="font-family: 'Space Mono', monospace; font-size: 10px;">${m}</span>
|
||||
<span style="font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif; font-size: 10px;">${m}</span>
|
||||
</label>
|
||||
`).join('');
|
||||
}
|
||||
|
||||
@@ -1754,7 +1754,7 @@ const SubGhz = (function() {
|
||||
// Grid
|
||||
ctx.strokeStyle = '#1a1f2e';
|
||||
ctx.lineWidth = 1;
|
||||
ctx.font = '10px JetBrains Mono, monospace';
|
||||
ctx.font = '10px Roboto Condensed, monospace';
|
||||
ctx.fillStyle = '#666';
|
||||
|
||||
for (let db = powerMin; db <= powerMax; db += 20) {
|
||||
@@ -1824,7 +1824,7 @@ const SubGhz = (function() {
|
||||
ctx.lineTo(x + 4, y - 2);
|
||||
ctx.closePath();
|
||||
ctx.fill();
|
||||
ctx.font = '9px JetBrains Mono, monospace';
|
||||
ctx.font = '9px Roboto Condensed, monospace';
|
||||
ctx.fillStyle = 'rgba(255, 170, 0, 0.8)';
|
||||
ctx.textAlign = 'center';
|
||||
ctx.fillText(peak.freq.toFixed(1), x, y - 10);
|
||||
|
||||
@@ -566,7 +566,7 @@ const WeatherSat = (function() {
|
||||
</div>
|
||||
<div style="display: flex; align-items: center; justify-content: space-between; margin-top: 4px;">
|
||||
<span class="wxsat-pass-quality ${pass.quality}">${pass.quality}</span>
|
||||
<span style="font-size: 10px; color: var(--text-dim); font-family: 'JetBrains Mono', monospace;">${countdown}</span>
|
||||
<span style="font-size: 10px; color: var(--text-dim); font-family: 'Roboto Condensed', 'Arial Narrow', sans-serif;">${countdown}</span>
|
||||
</div>
|
||||
<div style="margin-top: 6px; text-align: right;">
|
||||
<button class="wxsat-strip-btn" onclick="event.stopPropagation(); WeatherSat.startPass('${escapeHtml(pass.satellite)}')" style="font-size: 10px; padding: 2px 8px;">Capture</button>
|
||||
@@ -610,7 +610,7 @@ const WeatherSat = (function() {
|
||||
ctx.stroke();
|
||||
// Label
|
||||
ctx.fillStyle = '#555';
|
||||
ctx.font = '9px JetBrains Mono, monospace';
|
||||
ctx.font = '9px Roboto Condensed, monospace';
|
||||
ctx.textAlign = 'left';
|
||||
ctx.fillText(el + '\u00b0', cx + gr + 3, cy - 2);
|
||||
});
|
||||
@@ -624,7 +624,7 @@ const WeatherSat = (function() {
|
||||
|
||||
// Cardinal directions
|
||||
ctx.fillStyle = '#666';
|
||||
ctx.font = '10px JetBrains Mono, monospace';
|
||||
ctx.font = '10px Roboto Condensed, monospace';
|
||||
ctx.textAlign = 'center';
|
||||
ctx.textBaseline = 'middle';
|
||||
ctx.fillText('N', cx, cy - r - 10);
|
||||
@@ -692,7 +692,7 @@ const WeatherSat = (function() {
|
||||
ctx.arc(cx + r * maxR * Math.cos(maxAz), cy + r * maxR * Math.sin(maxAz), 3, 0, Math.PI * 2);
|
||||
ctx.fill();
|
||||
ctx.fillStyle = color;
|
||||
ctx.font = '9px JetBrains Mono, monospace';
|
||||
ctx.font = '9px Roboto Condensed, monospace';
|
||||
ctx.textAlign = 'center';
|
||||
ctx.fillText(Math.round(maxEl) + '\u00b0', cx + r * maxR * Math.cos(maxAz), cy + r * maxR * Math.sin(maxAz) - 8);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user