mirror of
https://github.com/smittix/intercept.git
synced 2026-04-25 07:10:00 -07:00
Nav active labels used color: var(--bg-primary) which resolved to near-white on light backgrounds. Run-state chips and buttons had hardcoded dark RGBA backgrounds. Added light-theme overrides for readable text and appropriate light backgrounds. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
508 lines
11 KiB
CSS
508 lines
11 KiB
CSS
/* ============================================
|
|
Global Navigation Styles
|
|
Shared across all pages using nav.html
|
|
============================================ */
|
|
|
|
/* Icon base (kept lightweight for nav usage) */
|
|
.icon {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 18px;
|
|
height: 18px;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.icon svg {
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
|
|
.icon--sm {
|
|
width: 14px;
|
|
height: 14px;
|
|
}
|
|
|
|
/* Mode Navigation Bar */
|
|
.mode-nav {
|
|
display: none;
|
|
background: linear-gradient(180deg, rgba(17, 22, 32, 0.92), rgba(15, 20, 28, 0.88));
|
|
border-bottom: 1px solid var(--border-color, #202833);
|
|
padding: 0 20px;
|
|
position: relative;
|
|
z-index: 1100;
|
|
backdrop-filter: blur(10px);
|
|
}
|
|
|
|
@media (min-width: 1024px) {
|
|
.mode-nav {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
height: 44px;
|
|
}
|
|
}
|
|
|
|
.mode-nav-label {
|
|
font-size: 9px;
|
|
color: var(--text-secondary, #b7c1cf);
|
|
text-transform: uppercase;
|
|
letter-spacing: 1px;
|
|
margin-right: 8px;
|
|
font-weight: 500;
|
|
font-family: var(--font-mono);
|
|
}
|
|
|
|
.mode-nav-divider {
|
|
width: 1px;
|
|
height: 24px;
|
|
background: var(--border-color, #202833);
|
|
margin: 0 12px;
|
|
}
|
|
|
|
.mode-nav-btn {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
padding: 8px 14px;
|
|
background: transparent;
|
|
border: 1px solid transparent;
|
|
border-radius: 6px;
|
|
color: var(--text-secondary, #b7c1cf);
|
|
font-family: var(--font-sans);
|
|
font-size: 11px;
|
|
font-weight: 500;
|
|
cursor: pointer;
|
|
transition: all 0.15s ease;
|
|
text-decoration: none;
|
|
}
|
|
|
|
.mode-nav-btn .nav-label {
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.08em;
|
|
font-family: var(--font-mono);
|
|
font-size: 10px;
|
|
}
|
|
|
|
.mode-nav-btn:hover {
|
|
background: rgba(27, 36, 51, 0.8);
|
|
color: var(--text-primary, #e7ebf2);
|
|
border-color: var(--border-color, #202833);
|
|
}
|
|
|
|
.mode-nav-btn.active {
|
|
background: rgba(27, 36, 51, 0.9);
|
|
color: var(--text-primary, #e7ebf2);
|
|
border-color: var(--accent-cyan, #4d7dbf);
|
|
box-shadow: inset 0 -2px 0 var(--accent-cyan, #4d7dbf);
|
|
}
|
|
|
|
.mode-nav-btn.active .nav-icon {
|
|
color: var(--accent-cyan, #4d7dbf);
|
|
}
|
|
|
|
.mode-nav-actions {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 16px;
|
|
}
|
|
|
|
.nav-action-btn {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
padding: 8px 14px;
|
|
background: rgba(24, 31, 44, 0.85);
|
|
border: 1px solid var(--border-light, #2b3645);
|
|
border-radius: 6px;
|
|
color: var(--text-primary, #e7ebf2);
|
|
font-family: var(--font-sans);
|
|
font-size: 11px;
|
|
font-weight: 500;
|
|
text-decoration: none;
|
|
cursor: pointer;
|
|
transition: all 0.15s ease;
|
|
}
|
|
|
|
.nav-action-btn .nav-label {
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.08em;
|
|
font-family: var(--font-mono);
|
|
font-size: 10px;
|
|
}
|
|
|
|
.nav-action-btn:hover {
|
|
background: rgba(27, 36, 51, 0.95);
|
|
color: var(--text-primary, #e7ebf2);
|
|
box-shadow: 0 8px 16px rgba(5, 9, 15, 0.35);
|
|
border-color: var(--accent-cyan, #4d7dbf);
|
|
}
|
|
|
|
/* Dropdown Navigation */
|
|
.mode-nav-dropdown {
|
|
position: relative;
|
|
}
|
|
|
|
.mode-nav-dropdown-btn {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
padding: 8px 14px;
|
|
background: transparent;
|
|
border: 1px solid transparent;
|
|
border-radius: 6px;
|
|
color: var(--text-secondary, #b7c1cf);
|
|
font-family: var(--font-sans);
|
|
font-size: 11px;
|
|
font-weight: 500;
|
|
cursor: pointer;
|
|
transition: all 0.15s ease;
|
|
}
|
|
|
|
.mode-nav-dropdown-btn .nav-label {
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.08em;
|
|
font-family: var(--font-mono);
|
|
font-size: 10px;
|
|
}
|
|
|
|
.mode-nav-dropdown-btn .dropdown-arrow {
|
|
width: 12px;
|
|
height: 12px;
|
|
margin-left: 4px;
|
|
transition: transform 0.2s ease;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
.mode-nav-dropdown-btn .dropdown-arrow svg {
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
|
|
.mode-nav-dropdown-btn:hover {
|
|
background: rgba(27, 36, 51, 0.8);
|
|
color: var(--text-primary, #e7ebf2);
|
|
border-color: var(--border-color, #202833);
|
|
}
|
|
|
|
.mode-nav-dropdown.open .mode-nav-dropdown-btn {
|
|
background: rgba(27, 36, 51, 0.9);
|
|
color: var(--text-primary, #e7ebf2);
|
|
border-color: var(--border-color, #202833);
|
|
}
|
|
|
|
.mode-nav-dropdown.open .dropdown-arrow {
|
|
transform: rotate(180deg);
|
|
}
|
|
|
|
.mode-nav-dropdown.has-active .mode-nav-dropdown-btn {
|
|
background: rgba(27, 36, 51, 0.9);
|
|
color: var(--text-primary, #e7ebf2);
|
|
border-color: var(--accent-cyan, #4d7dbf);
|
|
box-shadow: inset 0 -2px 0 var(--accent-cyan, #4d7dbf);
|
|
}
|
|
|
|
.mode-nav-dropdown.has-active .mode-nav-dropdown-btn .nav-icon {
|
|
color: var(--accent-cyan, #4d7dbf);
|
|
}
|
|
|
|
.mode-nav-dropdown-menu {
|
|
position: absolute;
|
|
top: 100%;
|
|
left: 0;
|
|
margin-top: 4px;
|
|
min-width: 180px;
|
|
background: rgba(16, 22, 32, 0.98);
|
|
border: 1px solid var(--border-color, #202833);
|
|
border-radius: 8px;
|
|
box-shadow: 0 16px 36px rgba(5, 9, 15, 0.55);
|
|
opacity: 0;
|
|
visibility: hidden;
|
|
transform: translateY(-8px);
|
|
transition: all 0.15s ease;
|
|
z-index: 1000;
|
|
padding: 6px;
|
|
}
|
|
|
|
.mode-nav-dropdown.open .mode-nav-dropdown-menu {
|
|
opacity: 1;
|
|
visibility: visible;
|
|
transform: translateY(0);
|
|
}
|
|
|
|
.mode-nav-dropdown-menu .mode-nav-btn {
|
|
width: 100%;
|
|
justify-content: flex-start;
|
|
padding: 10px 12px;
|
|
border-radius: 6px;
|
|
}
|
|
|
|
.mode-nav-dropdown-menu .mode-nav-btn:hover {
|
|
background: rgba(27, 36, 51, 0.85);
|
|
}
|
|
|
|
.mode-nav-dropdown-menu .mode-nav-btn.active {
|
|
background: rgba(27, 36, 51, 0.95);
|
|
color: var(--text-primary, #e7ebf2);
|
|
box-shadow: inset 0 -2px 0 var(--accent-cyan, #4d7dbf);
|
|
}
|
|
|
|
/* Nav Bar Utilities */
|
|
.nav-utilities {
|
|
display: none;
|
|
align-items: center;
|
|
gap: 12px;
|
|
margin-left: auto;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
@media (min-width: 1024px) {
|
|
.nav-utilities {
|
|
display: flex;
|
|
}
|
|
}
|
|
|
|
.nav-clock {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
font-family: var(--font-mono);
|
|
font-size: 11px;
|
|
flex-shrink: 0;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.nav-clock .utc-label {
|
|
font-size: 9px;
|
|
color: var(--text-dim, #8a97a8);
|
|
text-transform: uppercase;
|
|
letter-spacing: 1px;
|
|
}
|
|
|
|
.nav-clock .utc-time {
|
|
color: var(--accent-cyan, #4d7dbf);
|
|
font-weight: 600;
|
|
}
|
|
|
|
.nav-divider {
|
|
width: 1px;
|
|
height: 20px;
|
|
background: var(--border-color, #202833);
|
|
}
|
|
|
|
.nav-tools {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.nav-tool-btn {
|
|
width: 28px;
|
|
height: 28px;
|
|
min-width: 28px;
|
|
border-radius: 6px;
|
|
background: rgba(20, 33, 53, 0.6);
|
|
border: 1px solid rgba(77, 125, 191, 0.12);
|
|
color: var(--text-secondary, #b7c1cf);
|
|
font-size: 14px;
|
|
font-weight: bold;
|
|
cursor: pointer;
|
|
transition: all 0.15s ease;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
.nav-tool-btn:hover {
|
|
background: rgba(27, 36, 51, 0.9);
|
|
border-color: var(--accent-cyan, #4d7dbf);
|
|
color: var(--accent-cyan, #4d7dbf);
|
|
box-shadow: 0 6px 14px rgba(5, 9, 15, 0.35);
|
|
}
|
|
|
|
/* Position relative needed for absolute positioned icon children */
|
|
.nav-tool-btn {
|
|
position: relative;
|
|
}
|
|
|
|
.mode-nav-btn:focus-visible,
|
|
.mode-nav-dropdown-btn:focus-visible,
|
|
.nav-action-btn:focus-visible,
|
|
.nav-tool-btn:focus-visible {
|
|
outline: 2px solid var(--accent-cyan, #4d7dbf);
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
/* Nav tool button SVG sizing and styling */
|
|
.nav-tool-btn svg {
|
|
width: 14px;
|
|
height: 14px;
|
|
stroke: currentColor;
|
|
}
|
|
|
|
.nav-tool-btn .icon {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
.nav-tool-btn .icon svg {
|
|
width: 14px;
|
|
height: 14px;
|
|
stroke: currentColor;
|
|
}
|
|
|
|
/* Theme toggle icon states */
|
|
.nav-tool-btn .icon-sun,
|
|
.nav-tool-btn .icon-moon {
|
|
position: absolute;
|
|
transition: opacity 0.2s, transform 0.2s;
|
|
}
|
|
|
|
.nav-tool-btn .icon-sun {
|
|
opacity: 0;
|
|
transform: rotate(-90deg);
|
|
}
|
|
|
|
.nav-tool-btn .icon-moon {
|
|
opacity: 1;
|
|
transform: rotate(0deg);
|
|
}
|
|
|
|
[data-theme="light"] .nav-tool-btn .icon-sun {
|
|
opacity: 1;
|
|
transform: rotate(0deg);
|
|
}
|
|
|
|
[data-theme="light"] .nav-tool-btn .icon-moon {
|
|
opacity: 0;
|
|
transform: rotate(90deg);
|
|
}
|
|
|
|
/* ---- Light theme overrides ---- */
|
|
[data-theme="light"] .mode-nav {
|
|
background: linear-gradient(180deg, rgba(240, 244, 250, 0.97) 0%, rgba(232, 238, 247, 0.95) 100%);
|
|
}
|
|
|
|
[data-theme="light"] .mode-nav-btn:hover {
|
|
background: rgba(220, 230, 244, 0.8);
|
|
}
|
|
|
|
[data-theme="light"] .mode-nav-btn.active {
|
|
background: rgba(220, 230, 244, 0.9);
|
|
color: var(--text-primary);
|
|
}
|
|
|
|
[data-theme="light"] .mode-nav-dropdown-btn:hover,
|
|
[data-theme="light"] .mode-nav-dropdown.open .mode-nav-dropdown-btn,
|
|
[data-theme="light"] .mode-nav-dropdown.has-active .mode-nav-dropdown-btn {
|
|
background: rgba(220, 230, 244, 0.9);
|
|
color: var(--text-primary);
|
|
}
|
|
|
|
[data-theme="light"] .mode-nav-dropdown-menu {
|
|
background: rgba(248, 250, 253, 0.99);
|
|
box-shadow: 0 16px 36px rgba(18, 40, 66, 0.15);
|
|
}
|
|
|
|
[data-theme="light"] .mode-nav-dropdown-menu .mode-nav-btn:hover {
|
|
background: rgba(220, 230, 244, 0.85);
|
|
}
|
|
|
|
[data-theme="light"] .mode-nav-dropdown-menu .mode-nav-btn.active {
|
|
background: rgba(220, 230, 244, 0.95);
|
|
color: var(--text-primary);
|
|
}
|
|
|
|
[data-theme="light"] .nav-tool-btn {
|
|
background: rgba(235, 241, 250, 0.7);
|
|
border-color: rgba(31, 95, 168, 0.12);
|
|
}
|
|
|
|
[data-theme="light"] .nav-tool-btn:hover {
|
|
background: rgba(220, 230, 244, 0.9);
|
|
box-shadow: 0 4px 10px rgba(18, 40, 66, 0.1);
|
|
}
|
|
|
|
[data-theme="light"] .nav-action-btn {
|
|
background: rgba(235, 241, 250, 0.85);
|
|
border-color: rgba(31, 95, 168, 0.14);
|
|
}
|
|
|
|
[data-theme="light"] .nav-action-btn:hover {
|
|
background: rgba(220, 230, 244, 0.95);
|
|
box-shadow: 0 6px 14px rgba(18, 40, 66, 0.1);
|
|
}
|
|
|
|
[data-theme="light"] a.nav-dashboard-btn,
|
|
[data-theme="light"] a.nav-dashboard-btn:link,
|
|
[data-theme="light"] a.nav-dashboard-btn:visited {
|
|
background: rgba(235, 241, 250, 0.7) !important;
|
|
border-color: rgba(31, 95, 168, 0.12) !important;
|
|
color: var(--text-secondary) !important;
|
|
}
|
|
|
|
[data-theme="light"] a.nav-dashboard-btn:hover {
|
|
background: rgba(220, 230, 244, 0.9) !important;
|
|
box-shadow: 0 4px 10px rgba(18, 40, 66, 0.1);
|
|
}
|
|
|
|
/* Effects/animations toggle icon states */
|
|
.nav-tool-btn .icon-effects-off {
|
|
display: none;
|
|
}
|
|
|
|
[data-animations="off"] .nav-tool-btn .icon-effects-on {
|
|
display: none;
|
|
}
|
|
|
|
[data-animations="off"] .nav-tool-btn .icon-effects-off {
|
|
display: flex;
|
|
}
|
|
|
|
/* Main Dashboard Button in Nav */
|
|
a.nav-dashboard-btn,
|
|
a.nav-dashboard-btn:link,
|
|
a.nav-dashboard-btn:visited {
|
|
display: inline-flex !important;
|
|
align-items: center;
|
|
gap: 6px;
|
|
padding: 6px 12px;
|
|
border-radius: 6px;
|
|
background: rgba(20, 33, 53, 0.6) !important;
|
|
border: 1px solid rgba(77, 125, 191, 0.12) !important;
|
|
color: #b7c1cf !important;
|
|
font-size: 11px;
|
|
font-weight: 500;
|
|
cursor: pointer;
|
|
transition: all 0.15s ease;
|
|
white-space: nowrap;
|
|
text-decoration: none !important;
|
|
}
|
|
|
|
a.nav-dashboard-btn:hover {
|
|
background: rgba(27, 36, 51, 0.9) !important;
|
|
border-color: #4d7dbf !important;
|
|
color: #4d7dbf !important;
|
|
box-shadow: 0 6px 14px rgba(5, 9, 15, 0.35);
|
|
}
|
|
|
|
.nav-dashboard-btn .icon {
|
|
width: 14px;
|
|
height: 14px;
|
|
}
|
|
|
|
.nav-dashboard-btn .icon svg {
|
|
width: 100%;
|
|
height: 100%;
|
|
stroke: currentColor;
|
|
}
|
|
|
|
.nav-dashboard-btn .nav-label {
|
|
font-family: var(--font-mono, 'Roboto Condensed', 'Arial Narrow', sans-serif);
|
|
letter-spacing: 0.5px;
|
|
}
|