775 lines
12 KiB
CSS
775 lines
12 KiB
CSS
:root {
|
|
--video-surface: #ffffff;
|
|
--video-muted: #f2f4f7;
|
|
--video-bg: #f6f7fb;
|
|
--video-outline: #e6e6e6;
|
|
--video-ink: #0f172a;
|
|
--video-accent: #0f172a;
|
|
--video-glow: rgba(15, 23, 42, 0.08);
|
|
}
|
|
|
|
body {
|
|
background-color: var(--video-bg);
|
|
background-image: none;
|
|
}
|
|
|
|
.video-header-row {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.video-hero {
|
|
padding: 16px 20px;
|
|
border-radius: 12px;
|
|
border: none;
|
|
background: #fff;
|
|
box-shadow: none;
|
|
}
|
|
|
|
.hero-kicker {
|
|
font-size: 11px;
|
|
color: var(--accents-4);
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.18em;
|
|
margin-bottom: 6px;
|
|
}
|
|
|
|
.hero-note {
|
|
display: flex;
|
|
gap: 16px;
|
|
flex-wrap: wrap;
|
|
margin-top: 12px;
|
|
font-size: 11px;
|
|
color: var(--accents-5);
|
|
}
|
|
|
|
.hero-note-item {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
background: #f5f5f5;
|
|
border: none;
|
|
padding: 6px 10px;
|
|
border-radius: 999px;
|
|
}
|
|
|
|
.hero-dot {
|
|
width: 6px;
|
|
height: 6px;
|
|
border-radius: 50%;
|
|
background: var(--video-accent);
|
|
display: inline-block;
|
|
}
|
|
|
|
.video-actions {
|
|
display: flex;
|
|
gap: 8px;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.video-top-grid {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
|
|
gap: 24px;
|
|
align-items: stretch;
|
|
margin-bottom: 24px;
|
|
}
|
|
|
|
@media (max-width: 1024px) {
|
|
.video-top-grid {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
}
|
|
|
|
.video-card {
|
|
background: var(--video-surface);
|
|
border: none;
|
|
border-radius: 12px;
|
|
padding: 20px;
|
|
box-shadow: none;
|
|
position: relative;
|
|
overflow: hidden;
|
|
--field-height: 32px;
|
|
--field-label: 11px;
|
|
--field-label-gap: 6px;
|
|
--field-block: calc(var(--field-height) + var(--field-label) + var(--field-label-gap));
|
|
--field-row-gap: 12px;
|
|
}
|
|
|
|
.video-card::after {
|
|
content: none;
|
|
}
|
|
|
|
.video-card-glow::before {
|
|
content: none;
|
|
}
|
|
|
|
.video-card-contrast {
|
|
background: #fff;
|
|
color: var(--video-ink);
|
|
border: none;
|
|
}
|
|
|
|
.video-card-contrast .card-title,
|
|
.video-card-contrast .meta-label,
|
|
.video-card-contrast .meta-value,
|
|
.video-card-contrast .progress-meta,
|
|
.video-card-contrast .video-meta {
|
|
color: #e2e8f0;
|
|
}
|
|
|
|
.card-title {
|
|
font-size: 13px;
|
|
font-weight: 600;
|
|
color: var(--video-ink);
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
.field-label {
|
|
display: block;
|
|
font-size: 11px;
|
|
color: var(--accents-4);
|
|
margin-bottom: 6px;
|
|
line-height: 1;
|
|
}
|
|
|
|
.video-card input.geist-input,
|
|
.video-card select.geist-input {
|
|
height: var(--field-height);
|
|
}
|
|
|
|
.settings-grid {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr);
|
|
grid-template-rows: var(--field-block) var(--field-block) auto;
|
|
column-gap: 16px;
|
|
row-gap: var(--field-row-gap);
|
|
align-items: start;
|
|
}
|
|
|
|
.settings-block {
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.prompt-block {
|
|
grid-column: 1;
|
|
grid-row: 1 / span 2;
|
|
}
|
|
|
|
.ref-block {
|
|
grid-column: 1;
|
|
grid-row: 3;
|
|
}
|
|
|
|
.ratio-block {
|
|
grid-column: 2;
|
|
grid-row: 1;
|
|
}
|
|
|
|
.length-block {
|
|
grid-column: 3;
|
|
grid-row: 1;
|
|
}
|
|
|
|
.resolution-block {
|
|
grid-column: 2;
|
|
grid-row: 2;
|
|
}
|
|
|
|
.preset-block {
|
|
grid-column: 3;
|
|
grid-row: 2;
|
|
}
|
|
|
|
.upload-block {
|
|
grid-column: 2;
|
|
grid-row: 3;
|
|
}
|
|
|
|
.clear-block {
|
|
grid-column: 3;
|
|
grid-row: 3;
|
|
}
|
|
|
|
.upload-block .geist-button-outline,
|
|
.clear-block .geist-button-outline {
|
|
height: 32px;
|
|
width: 100%;
|
|
}
|
|
|
|
.ref-controls {
|
|
display: grid;
|
|
grid-template-columns: 1fr;
|
|
gap: 8px;
|
|
}
|
|
|
|
.ref-controls .geist-input {
|
|
min-width: 0;
|
|
}
|
|
|
|
.ref-file-input {
|
|
display: none;
|
|
}
|
|
|
|
.ref-meta {
|
|
margin-top: 6px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 8px;
|
|
}
|
|
|
|
.ref-name {
|
|
font-size: 11px;
|
|
color: var(--accents-4);
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
max-width: 100%;
|
|
display: inline-block;
|
|
}
|
|
|
|
.ref-drop-hint {
|
|
font-size: 11px;
|
|
color: var(--accents-3);
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.ref-block.dragover {
|
|
border-radius: 10px;
|
|
box-shadow: inset 0 0 0 1px #111;
|
|
background: #f5f5f5;
|
|
}
|
|
|
|
.ref-parent-row {
|
|
margin-top: 8px;
|
|
display: grid;
|
|
grid-template-columns: 1fr auto;
|
|
gap: 8px;
|
|
}
|
|
|
|
.ref-parent-row .geist-button-outline {
|
|
height: 32px;
|
|
}
|
|
|
|
.ref-preview {
|
|
margin-top: 8px;
|
|
border: 1px solid var(--video-outline);
|
|
border-radius: 10px;
|
|
background: #fafafa;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.ref-preview.hidden {
|
|
display: none;
|
|
}
|
|
|
|
.ref-preview-image {
|
|
width: 100%;
|
|
max-height: 240px;
|
|
object-fit: contain;
|
|
display: block;
|
|
background: #fff;
|
|
}
|
|
|
|
.ref-preview-meta {
|
|
font-size: 11px;
|
|
color: var(--accents-5);
|
|
padding: 8px 10px;
|
|
border-top: 1px solid var(--video-outline);
|
|
word-break: break-all;
|
|
background: #f5f5f5;
|
|
}
|
|
|
|
@media (max-width: 640px) {
|
|
.ref-controls {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.ref-parent-row {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 900px) {
|
|
.settings-grid {
|
|
grid-template-columns: 1fr;
|
|
grid-template-rows: none;
|
|
}
|
|
|
|
.settings-block {
|
|
grid-column: auto;
|
|
grid-row: auto;
|
|
}
|
|
}
|
|
|
|
.video-textarea {
|
|
min-height: calc(var(--field-block) * 2 + var(--field-row-gap) - var(--field-label) - var(--field-label-gap));
|
|
height: calc(var(--field-block) * 2 + var(--field-row-gap) - var(--field-label) - var(--field-label-gap));
|
|
resize: vertical;
|
|
}
|
|
|
|
.status-header {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 8px;
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
.status-text {
|
|
font-size: 11px;
|
|
color: var(--accents-4);
|
|
}
|
|
|
|
.status-text.connected {
|
|
color: #059669;
|
|
}
|
|
|
|
.status-text.connecting {
|
|
color: #d97706;
|
|
}
|
|
|
|
.status-text.error {
|
|
color: #dc2626;
|
|
}
|
|
|
|
.progress-wrap {
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
.progress-bar {
|
|
width: 100%;
|
|
height: 8px;
|
|
border-radius: 999px;
|
|
background: #f0f0f0;
|
|
overflow: hidden;
|
|
position: relative;
|
|
}
|
|
|
|
.progress-fill {
|
|
height: 100%;
|
|
width: 0%;
|
|
border-radius: 999px;
|
|
background: #111;
|
|
transition: width 0.3s ease;
|
|
position: absolute;
|
|
left: 0;
|
|
top: 0;
|
|
}
|
|
|
|
.progress-bar.indeterminate .progress-fill {
|
|
width: 40%;
|
|
animation: progress-indeterminate 1.2s ease-in-out infinite;
|
|
}
|
|
|
|
@keyframes progress-indeterminate {
|
|
0% {
|
|
transform: translateX(-120%);
|
|
}
|
|
100% {
|
|
transform: translateX(220%);
|
|
}
|
|
}
|
|
|
|
.progress-meta {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
margin-top: 8px;
|
|
font-size: 11px;
|
|
color: var(--accents-4);
|
|
}
|
|
|
|
.meta-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
gap: 12px;
|
|
}
|
|
|
|
.meta-item {
|
|
padding: 10px 12px;
|
|
border-radius: 10px;
|
|
background: #f5f5f5;
|
|
border: 1px solid transparent;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.meta-label {
|
|
font-size: 10px;
|
|
color: var(--accents-4);
|
|
}
|
|
|
|
.meta-value {
|
|
font-size: 12px;
|
|
font-weight: 600;
|
|
color: var(--accents-7);
|
|
text-align: right;
|
|
overflow-wrap: anywhere;
|
|
}
|
|
|
|
.video-preview-header {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
flex-wrap: wrap;
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
.preview-actions {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.video-empty {
|
|
text-align: center;
|
|
color: var(--accents-4);
|
|
font-size: 12px;
|
|
padding: 42px 12px;
|
|
background: #f5f5f5;
|
|
border-radius: 12px;
|
|
border: 1px dashed var(--video-outline);
|
|
}
|
|
|
|
.video-stage {
|
|
min-height: 240px;
|
|
padding: 12px;
|
|
border-radius: 12px;
|
|
border: 1px solid var(--video-outline);
|
|
background: #111;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 12px;
|
|
align-items: stretch;
|
|
}
|
|
|
|
.video-item {
|
|
background: #000;
|
|
border-radius: 10px;
|
|
padding: 10px;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 10px;
|
|
}
|
|
|
|
.video-item-bar {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
color: #e2e8f0;
|
|
font-size: 11px;
|
|
}
|
|
|
|
.video-item-title {
|
|
font-size: 11px;
|
|
color: #e2e8f0;
|
|
}
|
|
|
|
.video-item-actions {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
}
|
|
|
|
.video-item-actions .geist-button-outline {
|
|
height: 26px;
|
|
padding: 0 10px;
|
|
border-color: rgba(148, 163, 184, 0.35);
|
|
color: #e2e8f0;
|
|
}
|
|
|
|
.video-item-body {
|
|
border-radius: 8px;
|
|
background: #000;
|
|
overflow: hidden;
|
|
min-height: 140px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
.video-item video {
|
|
width: 100%;
|
|
border-radius: 8px;
|
|
background: #000;
|
|
max-height: 380px;
|
|
}
|
|
|
|
.video-item-link {
|
|
display: none;
|
|
font-size: 11px;
|
|
color: rgba(226, 232, 240, 0.7);
|
|
word-break: break-all;
|
|
}
|
|
|
|
.video-item-link.has-url {
|
|
display: block;
|
|
}
|
|
|
|
.video-item-placeholder {
|
|
font-size: 12px;
|
|
color: rgba(226, 232, 240, 0.7);
|
|
}
|
|
|
|
.video-item.is-pending .video-item-actions .video-open {
|
|
display: none;
|
|
}
|
|
|
|
.video-stage.hidden,
|
|
.video-empty.hidden {
|
|
display: none;
|
|
}
|
|
|
|
.preview-actions .geist-button-outline {
|
|
height: 30px;
|
|
}
|
|
|
|
.video-card-contrast .geist-button-outline {
|
|
border-color: var(--video-outline);
|
|
color: var(--accents-7);
|
|
}
|
|
|
|
.edit-panel.hidden {
|
|
display: none;
|
|
}
|
|
|
|
.edit-preview-wrap {
|
|
border-radius: 10px;
|
|
background: #000;
|
|
overflow: hidden;
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
#editVideo {
|
|
width: 100%;
|
|
max-height: 420px;
|
|
background: #000;
|
|
}
|
|
|
|
.edit-slider-wrap {
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
#editTimeline {
|
|
width: 100%;
|
|
}
|
|
|
|
.edit-meta-grid {
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
.edit-prompt-block {
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
.manual-merge-card {
|
|
margin-top: 12px;
|
|
padding: 12px;
|
|
}
|
|
|
|
.manual-merge-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
gap: 12px;
|
|
}
|
|
|
|
.manual-merge-col .meta-label {
|
|
margin-bottom: 6px;
|
|
}
|
|
|
|
#mergeVideoPreviewA,
|
|
#mergeVideoPreviewB {
|
|
width: 100%;
|
|
max-height: 240px;
|
|
background: #000;
|
|
}
|
|
|
|
#mergeTimelineA,
|
|
#mergeTimelineB {
|
|
width: 100%;
|
|
}
|
|
|
|
.video-item.is-selected {
|
|
outline: 1px solid rgba(255, 255, 255, 0.65);
|
|
outline-offset: -1px;
|
|
}
|
|
|
|
.cache-video-list {
|
|
max-height: 360px;
|
|
overflow: auto;
|
|
border: 1px solid var(--video-outline);
|
|
border-radius: 10px;
|
|
background: #fafafa;
|
|
}
|
|
|
|
.cache-video-item {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 10px;
|
|
padding: 10px 12px;
|
|
border-bottom: 1px solid var(--video-outline);
|
|
}
|
|
|
|
.cache-video-item:last-child {
|
|
border-bottom: none;
|
|
}
|
|
|
|
.cache-video-meta {
|
|
min-width: 0;
|
|
}
|
|
|
|
.cache-video-name {
|
|
font-size: 12px;
|
|
color: var(--accents-7);
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.cache-video-sub {
|
|
font-size: 11px;
|
|
color: var(--accents-4);
|
|
}
|
|
|
|
@media (max-width: 900px) {
|
|
.video-actions,
|
|
.preview-actions,
|
|
.upload-block,
|
|
.clear-block {
|
|
display: none !important;
|
|
}
|
|
|
|
#applyParentBtn {
|
|
display: none !important;
|
|
}
|
|
|
|
.video-header-row {
|
|
gap: 8px;
|
|
}
|
|
|
|
.video-top-grid {
|
|
gap: 12px;
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
.video-card {
|
|
padding: 12px;
|
|
border-radius: 12px;
|
|
--field-height: 30px;
|
|
--field-label-gap: 4px;
|
|
--field-row-gap: 8px;
|
|
}
|
|
|
|
.settings-grid {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
grid-template-rows: auto;
|
|
gap: 8px;
|
|
}
|
|
|
|
.prompt-block,
|
|
.ref-block {
|
|
grid-column: 1 / -1;
|
|
grid-row: auto;
|
|
}
|
|
|
|
.ratio-block,
|
|
.length-block,
|
|
.resolution-block,
|
|
.preset-block,
|
|
.upload-block,
|
|
.clear-block {
|
|
grid-column: auto;
|
|
grid-row: auto;
|
|
}
|
|
|
|
.video-textarea {
|
|
min-height: 78px;
|
|
height: 78px;
|
|
}
|
|
|
|
.ref-preview-image {
|
|
max-height: 170px;
|
|
}
|
|
|
|
.meta-grid {
|
|
gap: 8px;
|
|
}
|
|
|
|
.meta-item {
|
|
padding: 8px 10px;
|
|
gap: 8px;
|
|
}
|
|
|
|
.video-empty {
|
|
padding: 20px 10px;
|
|
}
|
|
|
|
.video-stage {
|
|
min-height: 160px;
|
|
padding: 8px;
|
|
gap: 8px;
|
|
}
|
|
|
|
.video-item {
|
|
padding: 8px;
|
|
border-radius: 8px;
|
|
gap: 8px;
|
|
}
|
|
|
|
.video-item-body {
|
|
min-height: 108px;
|
|
}
|
|
|
|
.video-item video {
|
|
max-height: 240px;
|
|
}
|
|
|
|
.video-item-actions {
|
|
gap: 6px;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.video-item-actions .geist-button-outline {
|
|
height: 24px;
|
|
padding: 0 8px;
|
|
font-size: 10px;
|
|
}
|
|
|
|
#editVideo {
|
|
max-height: 260px;
|
|
}
|
|
|
|
.manual-merge-grid {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 560px) {
|
|
.settings-grid {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.video-actions {
|
|
width: 100%;
|
|
}
|
|
|
|
.video-actions .geist-button,
|
|
.video-actions .geist-button-outline {
|
|
flex: 1;
|
|
justify-content: center;
|
|
}
|
|
}
|