Files
GridTV/src/css/topbar.css
T

226 lines
6.9 KiB
CSS

/* ═══════════════════════════════════════════
TOP BAR
═══════════════════════════════════════════ */
.topbar {
height: 50px;
background: var(--surface);
border-bottom: 1px solid var(--border);
display: flex;
align-items: center;
padding: 0 16px;
gap: 12px;
flex-shrink: 0;
position: relative;
z-index: 100;
}
.logo {
font-family: 'Share Tech Mono', monospace;
font-size: 13px;
color: var(--accent);
letter-spacing: 0.08em;
text-transform: uppercase;
white-space: nowrap;
}
.logo span { color: var(--text-dim); margin: 0 5px; }
.logo-sub { display: inline; }
.live-dot {
display: flex;
align-items: center;
gap: 6px;
font-size: 11px;
font-family: 'Share Tech Mono', monospace;
color: var(--accent-live);
letter-spacing: 0.1em;
margin-left: auto;
flex-shrink: 0;
}
.live-dot::before {
content: '';
width: 7px; height: 7px;
background: var(--accent-live);
border-radius: 50%;
animation: pulse 1.4s ease-in-out infinite;
}
@keyframes pulse {
0%,100% { opacity:1; transform:scale(1); }
50% { opacity:0.3; transform:scale(0.7); }
}
.clock {
font-family: 'Share Tech Mono', monospace;
font-size: 20px;
color: var(--text-bright);
letter-spacing: 0.05em;
flex-shrink: 0;
}
.date-label {
font-family: 'Share Tech Mono', monospace;
font-size: 10px;
color: var(--text-dim);
letter-spacing: 0.1em;
text-transform: uppercase;
white-space: nowrap;
}
.nav-btns {
display: flex;
gap: 4px;
flex-shrink: 0;
}
.nav-btn {
background: var(--surface2);
border: 1px solid var(--border);
color: var(--text);
font-family: 'Barlow Condensed', sans-serif;
font-size: 12px;
letter-spacing: 0.06em;
padding: 4px 10px;
cursor: pointer;
text-transform: uppercase;
transition: all 0.15s;
white-space: nowrap;
}
.nav-btn:hover, .nav-btn.active {
background: var(--accent);
color: #000;
border-color: var(--accent);
}
.copy-btns {
display: flex;
gap: 4px;
flex-shrink: 0;
}
.copy-btn {
background: transparent;
border: 1px solid var(--border-bright);
color: var(--text-dim);
font-family: 'Share Tech Mono', monospace;
font-size: 10px;
letter-spacing: 0.1em;
padding: 4px 9px;
cursor: pointer;
text-transform: uppercase;
transition: all 0.15s;
white-space: nowrap;
position: relative;
}
.copy-btn:hover {
border-color: var(--accent2);
color: var(--accent2);
}
.copy-btn.copied {
border-color: var(--accent);
color: var(--accent);
}
/* ═══════════════════════════════════════════
RESPONSIVE
═══════════════════════════════════════════ */
@media (max-width: 900px) {
:root { --channel-w: 110px; }
.logo-sub { display: none; }
.date-label { display: none; }
.clock { font-size: 16px; }
}
/* ═══════════════════════════════════════════
SÉLECTEUR DE THÈME
═══════════════════════════════════════════ */
.theme-select {
background: transparent;
border: 1px solid var(--border-bright);
color: var(--text-dim);
font-family: var(--font-mono);
font-size: 10px;
letter-spacing: 0.08em;
padding: 4px 8px;
cursor: pointer;
text-transform: uppercase;
transition: all 0.15s;
flex-shrink: 0;
-webkit-appearance: none;
appearance: none;
}
.theme-select:hover { border-color: var(--accent2); color: var(--accent2); }
.theme-select option { background: #111; color: #eee; font-family: sans-serif; }
body { overflow: hidden; }
.topbar {
height: auto;
flex-wrap: wrap;
padding: 8px 12px;
gap: 8px;
}
.logo { font-size: 11px; }
.clock { font-size: 14px; }
.grid-wrapper { display: none; }
.mobile-view { display: block; }
.tooltip { display: none !important; }
#navBtns { display: none !important; }
}
/* ── SOURCE SELECTOR ─────────────────────────────────────────────────────── */
.source-select {
background-color: var(--surface2) !important;
border: 1px solid var(--border-bright);
color: var(--text) !important;
font-family: var(--font-mono);
font-size: 11px;
padding: 5px 8px;
cursor: pointer;
letter-spacing: 0.06em;
height: 28px;
outline: none;
transition: border-color 0.15s, color 0.15s;
max-width: 130px;
-webkit-appearance: none;
appearance: none;
}
.source-select:hover { border-color: var(--accent2); color: var(--accent2) !important; }
.source-select option { background: #111 !important; color: #eee !important; font-family: sans-serif; }
/* ── SOURCE DROPDOWN ─────────────────────────────────────────────────────── */
.source-dropdown {
position: relative;
flex-shrink: 0;
}
.source-dropdown-btn {
display: flex; align-items: center; gap: 6px;
background: var(--surface2); border: 1px solid var(--border-bright);
color: var(--text); font-family: var(--font-mono); font-size: 11px;
letter-spacing: 0.06em; padding: 5px 10px; height: 28px;
cursor: pointer; white-space: nowrap;
transition: border-color 0.15s, color 0.15s;
}
.source-dropdown-btn:hover { border-color: var(--accent2); color: var(--accent2); }
.source-dropdown-arrow { font-size: 8px; opacity: 0.6; }
.source-dropdown-menu {
display: none; position: absolute; top: calc(100% + 4px); left: 0;
background: var(--surface); border: 1px solid var(--border-bright);
min-width: 160px; z-index: 1000;
flex-direction: column;
box-shadow: 0 8px 24px rgba(0,0,0,0.6);
}
.source-dropdown-menu.open { display: flex; }
.source-dropdown-item {
background: none; border: none; color: var(--text);
font-family: var(--font-mono); font-size: 11px;
letter-spacing: 0.06em; padding: 10px 14px;
text-align: left; cursor: pointer; white-space: nowrap;
transition: background 0.1s, color 0.1s;
border-bottom: 1px solid var(--border);
}
.source-dropdown-item:last-child { border-bottom: none; }
.source-dropdown-item:hover { background: var(--surface2); color: var(--accent2); }
.source-dropdown-item.active { color: var(--accent); }
.source-dropdown-personal { color: var(--accent2); }