Files
planet/frontend/public/earth/css/tv-panel.css
rayd1o 7cd29cf9c0 release: bump version to 0.27.0
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-14 07:37:45 +08:00

208 lines
4.7 KiB
CSS

/* tv-panel */
.hud-panel-tv {
bottom: var(--hud-offset);
right: var(--hud-offset);
width: calc(420px * var(--hud-scale));
max-width: calc(100vw - 32px);
min-width: calc(300px * var(--hud-scale));
min-height: calc(340px * var(--hud-scale));
padding: calc(18px * var(--hud-scale));
display: flex;
flex-direction: column;
gap: var(--hud-gap-sm);
z-index: 18;
}
.tv-panel-header-copy {
display: grid;
gap: calc(3px * var(--hud-scale));
}
.tv-panel-status {
color: var(--hud-text-soft);
font-size: calc(0.68rem * var(--hud-scale));
letter-spacing: 0.08em;
text-transform: uppercase;
}
.tv-panel-controls {
display: flex;
gap: var(--hud-gap-sm);
align-items: center;
min-width: 0;
}
.tv-panel-select {
flex: 1 1 auto;
min-width: 0;
appearance: none;
-webkit-appearance: none;
color-scheme: dark;
border: 1px solid rgba(201, 225, 247, 0.14);
border-radius: calc(12px * var(--hud-scale));
background: rgba(255, 255, 255, 0.04);
color: var(--hud-text);
padding: calc(10px * var(--hud-scale)) calc(12px * var(--hud-scale));
font-size: calc(0.84rem * var(--hud-scale));
}
.tv-panel-select option,
.tv-panel-select optgroup {
background: #0a1422;
color: #eef5fc;
}
.tv-panel-actions {
display: flex;
gap: var(--hud-gap-xs);
}
.tv-panel-action {
border: 1px solid rgba(201, 225, 247, 0.12);
border-radius: calc(12px * var(--hud-scale));
background: rgba(255, 255, 255, 0.05);
color: var(--hud-text);
padding: calc(10px * var(--hud-scale)) calc(12px * var(--hud-scale));
display: inline-flex;
align-items: center;
justify-content: center;
white-space: nowrap;
font-size: calc(0.84rem * var(--hud-scale));
line-height: 1;
cursor: pointer;
transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}
.tv-panel-action--icon {
padding: calc(9px * var(--hud-scale));
border-radius: calc(10px * var(--hud-scale));
}
.tv-panel-action--icon .material-symbols-rounded {
font-size: calc(18px * var(--hud-scale));
line-height: 1;
font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 20;
pointer-events: none;
}
.tv-panel-action:hover:not(:disabled) {
background: rgba(255, 255, 255, 0.08);
border-color: rgba(225, 239, 255, 0.2);
color: var(--hud-accent-strong);
}
.tv-panel-action:disabled {
opacity: 0.45;
cursor: not-allowed;
}
.tv-panel-meta {
display: grid;
gap: calc(4px * var(--hud-scale));
}
.tv-panel-title {
color: var(--hud-text);
font-size: calc(0.96rem * var(--hud-scale));
font-weight: 600;
}
.tv-panel-subtitle {
color: var(--hud-text-muted);
font-size: calc(0.74rem * var(--hud-scale));
line-height: 1.35;
}
.tv-panel-notes {
color: var(--hud-text-soft);
font-size: calc(0.68rem * var(--hud-scale));
line-height: 1.45;
}
.tv-panel-catalog {
color: var(--hud-text-soft);
font-size: calc(0.66rem * var(--hud-scale));
letter-spacing: 0.04em;
text-transform: uppercase;
}
.tv-panel-player {
position: relative;
flex: 1 1 auto;
min-height: calc(220px * var(--hud-scale));
border-radius: calc(16px * var(--hud-scale));
overflow: hidden;
border: 1px solid rgba(201, 225, 247, 0.1);
background:
linear-gradient(180deg, rgba(9, 18, 32, 0.94), rgba(5, 11, 22, 0.94));
}
.tv-panel-empty,
.tv-panel-iframe,
.tv-panel-video {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
}
.tv-panel-empty {
display: grid;
place-items: center;
padding: calc(18px * var(--hud-scale));
text-align: center;
color: var(--hud-text-muted);
font-size: calc(0.84rem * var(--hud-scale));
line-height: 1.5;
}
.tv-panel-iframe,
.tv-panel-video {
border: 0;
background: #050a14;
}
.tv-panel-resize-handle {
position: absolute;
right: calc(8px * var(--hud-scale));
bottom: calc(8px * var(--hud-scale));
width: calc(18px * var(--hud-scale));
height: calc(18px * var(--hud-scale));
border: 0;
padding: 0;
background: transparent;
cursor: nwse-resize;
z-index: 2;
}
.tv-panel-resize-handle::before {
content: "";
position: absolute;
inset: 0;
border-right: 2px solid rgba(223, 235, 248, 0.46);
border-bottom: 2px solid rgba(223, 235, 248, 0.46);
border-bottom-right-radius: calc(10px * var(--hud-scale));
opacity: 0.78;
transition: opacity 0.18s ease, border-color 0.18s ease;
}
.tv-panel-resize-handle:hover::before {
opacity: 1;
border-color: rgba(244, 249, 255, 0.78);
}
.hud-panel-tv.is-resizing {
transition: none !important;
user-select: none;
}
.earth-app.layout-expanded .hud-panel-tv:not([data-dragged="true"]) {
bottom: var(--hud-offset);
right: var(--hud-offset);
transform: translate(calc(100% - var(--hud-offset)), calc(100% - var(--hud-offset)));
}
/* TV panel keeps its fixed width on all screen sizes.
Responsive stretching removed — width only changes if user manually resizes. */