feat: 首页下方剧本评测展示页替换为ScriptReviewShowcase,团队token监控替换为ModelGenerationShowcase

This commit is contained in:
OmniAI Developer
2026-06-02 22:45:16 +08:00
parent d4d8cc528d
commit 1cac62d14a
7 changed files with 2150 additions and 12 deletions
@@ -0,0 +1,787 @@
/* ===== Model Generation Showcase ===== */
.omni-model-gen-showcase {
--mgs-green: #00ff88;
--mgs-blue: #4fc3f7;
--mgs-purple: #a855f7;
--mgs-bg: #0a0b12;
--mgs-surface: rgba(14, 16, 38, 0.75);
--mgs-elevated: rgba(20, 22, 52, 0.85);
--mgs-border-subtle: rgba(0, 255, 136, 0.08);
--mgs-border-default: rgba(0, 255, 136, 0.14);
--mgs-border-hover: rgba(0, 255, 136, 0.28);
--mgs-text-primary: #eef0f6;
--mgs-text-secondary: #8b8fa7;
--mgs-text-muted: #5a5e78;
display: flex;
gap: 10px;
width: 100%;
height: 100%;
padding: 8px 10px;
background: var(--mgs-bg);
color: var(--mgs-text-primary);
font-family: "Inter", "Noto Sans SC", sans-serif;
overflow: hidden;
}
/* ===== Left Panel ===== */
.mgs-left-panel {
width: 166px;
min-width: 166px;
display: flex;
flex-direction: column;
gap: 8px;
}
.mgs-brand-section {
padding: 2px 0;
}
.mgs-brand-section h1 {
font-size: 13px;
font-weight: 900;
line-height: 1.25;
background: linear-gradient(135deg, var(--mgs-green), var(--mgs-blue));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
margin: 0 0 4px;
}
.mgs-subtitle {
font-size: 8px;
line-height: 1.5;
color: var(--mgs-text-secondary);
margin: 0;
}
/* Mode Tabs */
.mgs-mode-tabs {
display: flex;
flex-direction: column;
gap: 4px;
}
.mgs-mode-tab {
display: flex;
align-items: center;
gap: 7px;
padding: 7px 9px;
border-radius: 8px;
background: var(--mgs-surface);
border: 1px solid var(--mgs-border-subtle);
cursor: pointer;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
position: relative;
overflow: hidden;
}
.mgs-mode-tab::before {
content: "";
position: absolute;
inset: 0;
background: linear-gradient(135deg, rgba(0, 255, 136, 0.05), transparent);
opacity: 0;
transition: opacity 0.3s;
}
.mgs-mode-tab:hover {
border-color: var(--mgs-border-hover);
transform: translateX(3px);
box-shadow: 0 3px 14px rgba(0, 255, 136, 0.08);
}
.mgs-mode-tab:hover::before {
opacity: 1;
}
.mgs-mode-tab.is-active {
border-color: rgba(0, 255, 136, 0.25);
background: var(--mgs-elevated);
box-shadow: 0 0 16px rgba(0, 255, 136, 0.1), inset 0 0 14px rgba(0, 255, 136, 0.03);
}
.mgs-mode-tab.is-active::before {
opacity: 1;
}
.mgs-mode-icon {
width: 26px;
height: 26px;
border-radius: 6px;
display: flex;
align-items: center;
justify-content: center;
font-size: 13px;
flex-shrink: 0;
background: rgba(0, 255, 136, 0.08);
transition: all 0.3s;
}
.mgs-mode-tab.is-active .mgs-mode-icon {
background: rgba(0, 255, 136, 0.15);
box-shadow: 0 0 8px rgba(0, 255, 136, 0.2);
}
.mgs-mode-info h3 {
font-size: 9px;
font-weight: 700;
margin: 0 0 1px;
transition: color 0.3s;
}
.mgs-mode-tab.is-active .mgs-mode-info h3 {
color: var(--mgs-green);
}
.mgs-mode-info p {
font-size: 7px;
color: var(--mgs-text-muted);
line-height: 1.3;
margin: 0;
}
/* Workflow */
.mgs-workflow {
margin-top: auto;
padding: 8px 10px;
border-radius: 8px;
background: var(--mgs-surface);
border: 1px solid var(--mgs-border-subtle);
position: relative;
overflow: hidden;
}
.mgs-workflow::after {
content: "";
position: absolute;
top: 0;
left: -100%;
width: 50%;
height: 100%;
background: linear-gradient(90deg, transparent, rgba(0, 255, 136, 0.06), transparent);
animation: mgs-flow 3s ease-in-out infinite;
}
@keyframes mgs-flow {
0% { left: -100%; }
100% { left: 200%; }
}
.mgs-workflow-title {
font-size: 7px;
color: var(--mgs-text-muted);
font-weight: 600;
text-transform: uppercase;
letter-spacing: 1px;
margin-bottom: 6px;
}
.mgs-workflow-steps {
display: flex;
align-items: center;
gap: 2px;
font-size: 7px;
font-weight: 600;
}
.mgs-wf-step {
flex: 1;
text-align: center;
padding: 4px 2px;
border-radius: 4px;
color: var(--mgs-text-secondary);
background: rgba(0, 255, 136, 0.04);
border: 1px solid var(--mgs-border-subtle);
transition: all 0.3s;
white-space: nowrap;
}
.mgs-wf-step.is-active {
color: var(--mgs-green);
border-color: rgba(0, 255, 136, 0.2);
background: rgba(0, 255, 136, 0.08);
animation: mgs-step-pulse 2s ease-in-out infinite;
}
@keyframes mgs-step-pulse {
0%, 100% { box-shadow: 0 0 0 rgba(0, 255, 136, 0); }
50% { box-shadow: 0 0 6px rgba(0, 255, 136, 0.15); }
}
.mgs-wf-arrow {
color: var(--mgs-text-muted);
font-size: 7px;
flex-shrink: 0;
}
/* ===== Center Area ===== */
.mgs-center-area {
flex: 1;
display: flex;
align-items: center;
justify-content: center;
min-width: 0;
}
.mgs-input-card {
width: 100%;
max-width: 380px;
border-radius: 12px;
background: var(--mgs-elevated);
border: 1px solid var(--mgs-border-default);
padding: 14px;
position: relative;
box-shadow: 0 0 24px rgba(0, 255, 136, 0.04), 0 4px 16px rgba(0, 0, 0, 0.2);
}
.mgs-card-header {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 8px;
}
.mgs-card-mode-badge {
display: inline-flex;
align-items: center;
gap: 4px;
padding: 2px 8px;
border-radius: 12px;
font-size: 8px;
font-weight: 700;
background: rgba(0, 255, 136, 0.1);
color: var(--mgs-green);
border: 1px solid rgba(0, 255, 136, 0.15);
}
.mgs-dot {
width: 4px;
height: 4px;
border-radius: 50%;
background: var(--mgs-green);
animation: mgs-pulse 2s infinite;
}
@keyframes mgs-pulse {
0%, 100% { opacity: 1; transform: scale(1); }
50% { opacity: 0.5; transform: scale(0.8); }
}
.mgs-card-status {
font-size: 7px;
color: var(--mgs-text-muted);
}
/* Prompt Area */
.mgs-prompt-area {
margin-bottom: 8px;
}
.mgs-prompt-input {
width: 100%;
padding: 6px 8px;
border-radius: 6px;
background: rgba(0, 0, 0, 0.3);
border: 1px solid var(--mgs-border-default);
color: var(--mgs-text-primary);
font-size: 8px;
font-family: inherit;
outline: none;
resize: none;
height: 36px;
}
.mgs-prompt-input::placeholder {
color: var(--mgs-text-muted);
}
.mgs-prompt-input:focus {
border-color: rgba(0, 255, 136, 0.3);
}
/* Options */
.mgs-options {
display: flex;
gap: 4px;
margin-bottom: 8px;
flex-wrap: wrap;
}
.mgs-opt {
padding: 3px 7px;
border-radius: 5px;
font-size: 7px;
font-weight: 600;
background: rgba(0, 255, 136, 0.06);
border: 1px solid var(--mgs-border-subtle);
color: var(--mgs-text-secondary);
cursor: pointer;
transition: all 0.3s;
}
.mgs-opt:hover {
border-color: var(--mgs-border-hover);
color: var(--mgs-green);
}
.mgs-opt.is-selected {
border-color: rgba(0, 255, 136, 0.25);
color: var(--mgs-green);
background: rgba(0, 255, 136, 0.1);
}
/* Agent Result */
.mgs-agent-output-area {
margin-bottom: 8px;
}
.mgs-agent-result {
padding: 8px 10px;
border-radius: 8px;
background: rgba(0, 255, 136, 0.04);
border: 1px solid var(--mgs-border-subtle);
}
.mgs-agent-result-label {
font-size: 7px;
font-weight: 700;
color: var(--mgs-green);
text-transform: uppercase;
letter-spacing: 1px;
margin-bottom: 4px;
display: flex;
align-items: center;
gap: 4px;
}
.mgs-agent-result-label::before {
content: "";
width: 4px;
height: 4px;
border-radius: 50%;
background: var(--mgs-green);
animation: mgs-pulse 2s infinite;
}
.mgs-agent-result-text {
font-size: 8px;
line-height: 1.5;
color: var(--mgs-text-secondary);
}
/* Chat Input */
.mgs-chat-input-row {
display: flex;
gap: 4px;
align-items: center;
}
.mgs-chat-input {
flex: 1;
padding: 5px 8px;
border-radius: 6px;
background: rgba(0, 0, 0, 0.3);
border: 1px solid var(--mgs-border-default);
color: var(--mgs-text-primary);
font-size: 8px;
font-family: inherit;
outline: none;
}
.mgs-chat-input::placeholder {
color: var(--mgs-text-muted);
}
.mgs-chat-send {
padding: 5px 12px;
border-radius: 6px;
border: none;
background: var(--mgs-green);
color: #0a0b12;
cursor: pointer;
font-size: 8px;
font-weight: 700;
box-shadow: 0 0 8px rgba(0, 255, 136, 0.2);
white-space: nowrap;
}
/* Image Grid */
.mgs-img-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 5px;
}
.mgs-img-cell {
aspect-ratio: 4 / 3;
border-radius: 6px;
background: linear-gradient(135deg, rgba(0, 255, 136, 0.05), rgba(79, 195, 247, 0.03));
border: 1px solid var(--mgs-border-subtle);
display: flex;
align-items: center;
justify-content: center;
font-size: 14px;
color: var(--mgs-text-muted);
transition: all 0.3s;
}
.mgs-img-cell:hover {
border-color: var(--mgs-border-hover);
transform: scale(1.02);
}
/* Video Config */
.mgs-video-config {
margin-bottom: 8px;
}
.mgs-config-row {
display: flex;
align-items: center;
justify-content: space-between;
padding: 4px 0;
border-bottom: 1px solid var(--mgs-border-subtle);
font-size: 7px;
}
.mgs-config-row:last-child {
border-bottom: none;
}
.mgs-config-label {
color: var(--mgs-text-secondary);
font-weight: 500;
}
.mgs-config-value {
color: var(--mgs-green);
font-weight: 600;
padding: 2px 6px;
border-radius: 4px;
background: rgba(0, 255, 136, 0.08);
}
/* Video Preview */
.mgs-video-preview {
aspect-ratio: 16 / 9;
border-radius: 8px;
background: linear-gradient(135deg, rgba(0, 255, 136, 0.04), rgba(168, 85, 247, 0.04));
border: 1px solid var(--mgs-border-subtle);
display: flex;
align-items: center;
justify-content: center;
}
.mgs-play-btn {
width: 32px;
height: 32px;
border-radius: 50%;
background: rgba(0, 255, 136, 0.15);
border: 2px solid rgba(0, 255, 136, 0.3);
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
transition: all 0.3s;
}
.mgs-play-btn:hover {
background: rgba(0, 255, 136, 0.25);
transform: scale(1.08);
box-shadow: 0 0 14px rgba(0, 255, 136, 0.2);
}
.mgs-play-btn svg {
fill: var(--mgs-green);
width: 12px;
height: 12px;
margin-left: 1px;
}
.mgs-video-timeline {
margin-top: 6px;
height: 3px;
border-radius: 2px;
background: rgba(0, 255, 136, 0.1);
overflow: hidden;
}
.mgs-video-timeline-fill {
height: 100%;
width: 35%;
border-radius: 2px;
background: linear-gradient(90deg, var(--mgs-green), var(--mgs-blue));
animation: mgs-timeline 3s ease-in-out infinite;
}
@keyframes mgs-timeline {
0%, 100% { width: 30%; }
50% { width: 45%; }
}
/* ===== Right Panel ===== */
.mgs-right-panel {
width: 168px;
min-width: 168px;
display: flex;
flex-direction: column;
gap: 6px;
overflow-y: auto;
}
.mgs-right-panel::-webkit-scrollbar {
width: 2px;
}
.mgs-right-panel::-webkit-scrollbar-thumb {
background: rgba(0, 255, 136, 0.12);
border-radius: 2px;
}
.mgs-output-section {
flex: 1;
display: flex;
flex-direction: column;
min-height: 0;
}
.mgs-section-label {
font-size: 7px;
font-weight: 700;
color: var(--mgs-text-muted);
text-transform: uppercase;
letter-spacing: 1px;
margin-bottom: 4px;
display: flex;
align-items: center;
gap: 4px;
}
.mgs-section-dot {
width: 4px;
height: 4px;
border-radius: 50%;
animation: mgs-pulse 2s infinite;
}
.mgs-section-dot.is-green { background: var(--mgs-green); }
.mgs-section-dot.is-blue { background: var(--mgs-blue); }
.mgs-section-dot.is-purple { background: var(--mgs-purple); }
.mgs-output-cards {
display: flex;
flex-direction: column;
gap: 6px;
flex: 1;
}
.mgs-out-card {
padding: 8px 10px;
border-radius: 8px;
background: var(--mgs-surface);
border: 1px solid var(--mgs-border-subtle);
cursor: pointer;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
position: relative;
overflow: hidden;
}
.mgs-out-card::before {
content: "";
position: absolute;
inset: 0;
background: linear-gradient(135deg, rgba(0, 255, 136, 0.03), transparent);
opacity: 0;
transition: opacity 0.3s;
}
.mgs-out-card:hover {
border-color: var(--mgs-border-hover);
transform: translateY(-2px);
box-shadow: 0 5px 16px rgba(0, 255, 136, 0.06);
}
.mgs-out-card:hover::before {
opacity: 1;
}
.mgs-out-card-top {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 4px;
}
.mgs-out-tag {
font-size: 7px;
font-weight: 700;
padding: 1px 6px;
border-radius: 4px;
background: rgba(0, 255, 136, 0.1);
color: var(--mgs-green);
letter-spacing: 0.5px;
}
.mgs-out-tag.is-img {
background: rgba(79, 195, 247, 0.1);
color: var(--mgs-blue);
}
.mgs-out-tag.is-video {
background: rgba(168, 85, 247, 0.1);
color: var(--mgs-purple);
}
.mgs-out-title {
font-size: 9px;
font-weight: 700;
}
.mgs-out-preview {
font-size: 8px;
color: var(--mgs-text-secondary);
line-height: 1.45;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}
.mgs-out-img-placeholder {
height: 40px;
border-radius: 5px;
margin-top: 4px;
display: flex;
align-items: center;
justify-content: center;
font-size: 14px;
}
.mgs-out-img-placeholder.is-realistic {
background: linear-gradient(135deg, rgba(0, 255, 136, 0.06), rgba(0, 255, 136, 0.02));
border: 1px dashed rgba(0, 255, 136, 0.12);
}
.mgs-out-img-placeholder.is-illustration {
background: linear-gradient(135deg, rgba(79, 195, 247, 0.06), rgba(168, 85, 247, 0.04));
border: 1px dashed rgba(79, 195, 247, 0.12);
}
.mgs-out-img-placeholder.is-ecommerce {
background: linear-gradient(135deg, rgba(168, 85, 247, 0.06), rgba(0, 255, 136, 0.03));
border: 1px dashed rgba(168, 85, 247, 0.12);
}
.mgs-out-video-placeholder {
height: 36px;
border-radius: 5px;
margin-top: 4px;
background: linear-gradient(135deg, rgba(168, 85, 247, 0.06), rgba(0, 255, 136, 0.03));
border: 1px dashed rgba(168, 85, 247, 0.12);
display: flex;
align-items: center;
justify-content: center;
gap: 5px;
}
.mgs-mini-play {
width: 18px;
height: 18px;
border-radius: 50%;
background: rgba(168, 85, 247, 0.2);
border: 1.5px solid rgba(168, 85, 247, 0.3);
display: flex;
align-items: center;
justify-content: center;
}
.mgs-mini-play svg {
fill: var(--mgs-purple);
width: 7px;
height: 7px;
margin-left: 1px;
}
.mgs-video-duration {
font-size: 7px;
color: var(--mgs-text-muted);
}
/* ===== Responsive ===== */
@media (max-width: 980px) {
.omni-model-gen-showcase {
flex-direction: column;
gap: 8px;
padding: 6px;
overflow-y: auto;
}
.mgs-left-panel {
width: 100%;
min-width: 0;
flex-direction: column;
}
.mgs-mode-tabs {
flex-direction: row;
gap: 4px;
}
.mgs-mode-tab {
flex: 1;
flex-direction: column;
align-items: center;
text-align: center;
gap: 3px;
padding: 6px;
}
.mgs-mode-tab:hover {
transform: translateY(-2px);
}
.mgs-mode-icon {
width: 22px;
height: 22px;
font-size: 11px;
}
.mgs-mode-info h3 {
font-size: 8px;
}
.mgs-mode-info p {
display: none;
}
.mgs-workflow {
display: none;
}
.mgs-center-area {
min-height: 200px;
}
.mgs-right-panel {
width: 100%;
min-width: 0;
flex-direction: row;
gap: 6px;
overflow-x: auto;
}
.mgs-output-cards {
flex-direction: row;
}
.mgs-out-card {
min-width: 150px;
flex: 0 0 auto;
}
}
@media (max-width: 560px) {
.mgs-input-card {
padding: 10px;
}
}