TonyLikeDev's picture
Fix UI layout visibility bug and make video preview responsive
2695bbc
Raw
History Blame Contribute Delete
5.61 kB
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
[hidden] {
display: none !important;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
background: #f5f5ff;
min-height: 100vh;
display: flex;
flex-direction: column;
}
/* Header */
header {
background: white;
border-bottom: 1px solid #e8e8f0;
padding: 0 32px;
height: 52px;
display: flex;
align-items: center;
}
.brand {
display: flex;
align-items: center;
gap: 8px;
font-weight: 700;
font-size: 16px;
color: #1e1b4b;
}
/* Main layout */
main {
display: flex;
flex: 1;
height: calc(100vh - 52px);
overflow: hidden;
}
/* Left panel */
.left-panel {
width: 260px;
min-width: 260px;
background: white;
border-right: 1px solid #e8e8f0;
padding: 20px 16px;
display: flex;
flex-direction: column;
gap: 12px;
overflow-y: auto;
}
/* Upload zone */
.upload-zone {
border: 2px dashed #c7d2fe;
border-radius: 14px;
padding: 28px 16px;
text-align: center;
cursor: pointer;
transition: border-color 0.2s, background 0.2s;
}
.upload-zone:hover,
.upload-zone.dragover {
border-color: #6366f1;
background: #f5f3ff;
}
.upload-title {
font-size: 15px;
font-weight: 600;
color: #1e1b4b;
margin: 10px 0 12px;
}
.choose-btn {
background: white;
border: 1.5px solid #d1d5db;
color: #374151;
padding: 6px 16px;
border-radius: 20px;
font-size: 13px;
cursor: pointer;
transition: border-color 0.2s;
}
.choose-btn:hover { border-color: #6366f1; color: #6366f1; }
/* File card */
.file-card {
background: #6366f1;
border-radius: 10px;
padding: 10px 12px;
display: flex;
align-items: center;
justify-content: space-between;
}
.file-info {
display: flex;
align-items: center;
gap: 8px;
min-width: 0;
}
.file-name {
display: block;
font-size: 13px;
font-weight: 500;
color: white;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
max-width: 140px;
}
.file-duration {
display: block;
font-size: 11px;
color: #c7d2fe;
margin-top: 2px;
}
.delete-btn {
background: none;
border: none;
color: #c7d2fe;
cursor: pointer;
padding: 4px;
flex-shrink: 0;
display: flex;
align-items: center;
transition: color 0.2s;
}
.delete-btn:hover { color: white; }
/* Process button */
.process-btn {
width: 100%;
background: #6366f1;
color: white;
border: none;
padding: 12px;
border-radius: 10px;
font-size: 14px;
font-weight: 600;
cursor: pointer;
transition: background 0.2s;
}
.process-btn:hover { background: #4f46e5; }
.process-btn:disabled { background: #a5b4fc; cursor: not-allowed; }
/* Status */
#status {
font-size: 13px;
color: #6b7280;
text-align: center;
}
#status.error { color: #dc2626; }
#status.success { color: #16a34a; }
/* Right panel */
.right-panel {
flex: 1;
padding: 28px 32px;
overflow-y: auto;
display: flex;
flex-direction: column;
}
/* Empty state */
.empty-state {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 12px;
color: #c7d2fe;
font-size: 14px;
}
/* Player section */
.player-section {
display: flex;
flex-direction: column;
gap: 20px;
}
.player-wrap {
background: white;
border-radius: 16px;
padding: 20px;
box-shadow: 0 2px 12px rgba(99,102,241,0.08);
}
audio {
width: 100%;
border-radius: 8px;
}
video {
width: 100%;
max-height: 60vh;
object-fit: contain;
border-radius: 8px;
background: #000;
}
/* Toggle */
.toggle-row {
display: flex;
align-items: center;
justify-content: center;
gap: 12px;
}
.toggle-label {
font-size: 14px;
font-weight: 500;
color: #9ca3af;
}
.enhanced-label { color: #6366f1; font-weight: 600; }
.toggle-switch {
position: relative;
display: inline-block;
width: 48px;
height: 26px;
}
.toggle-switch input { display: none; }
.toggle-slider {
position: absolute;
inset: 0;
background: #e5e7eb;
border-radius: 999px;
cursor: pointer;
transition: background 0.2s;
}
.toggle-slider:before {
content: '';
position: absolute;
width: 20px;
height: 20px;
left: 3px;
top: 3px;
background: white;
border-radius: 50%;
transition: transform 0.2s;
box-shadow: 0 1px 4px rgba(0,0,0,0.15);
}
.toggle-switch input:checked + .toggle-slider { background: #6366f1; }
.toggle-switch input:checked + .toggle-slider:before { transform: translateX(22px); }
/* Control card */
.control-card {
background: white;
border-radius: 14px;
padding: 16px 20px;
box-shadow: 0 2px 12px rgba(99,102,241,0.06);
}
.control-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 10px;
}
.control-name {
font-size: 14px;
font-weight: 500;
color: #374151;
}
.control-value {
font-size: 13px;
color: #6366f1;
font-weight: 600;
}
input[type="range"] {
width: 100%;
accent-color: #6366f1;
cursor: pointer;
}
.slider-hints {
display: flex;
justify-content: space-between;
font-size: 11px;
color: #9ca3af;
margin-top: 6px;
}
/* Download button */
.download-btn {
display: block;
text-align: center;
background: white;
color: #6366f1;
border: 1.5px solid #6366f1;
padding: 12px;
border-radius: 10px;
font-size: 14px;
font-weight: 600;
text-decoration: none;
transition: background 0.2s, color 0.2s;
}
.download-btn:hover {
background: #6366f1;
color: white;
}
/* Responsive */
@media (max-width: 640px) {
main { flex-direction: column; height: auto; }
.left-panel { width: 100%; border-right: none; border-bottom: 1px solid #e8e8f0; }
}