Guanghu Domestic Migration d1e47f4565
Some checks are pending
自动更新代码和重启 / update-and-restart (push) Waiting to run
CI检查 + 自动部署 / check (push) Waiting to run
CI检查 + 自动部署 / deploy (push) Blocked by required conditions
重启聊天服务 / restart (push) Waiting to run
chore: import sanitized domestic snapshot for REPO-002
Source snapshot: ca48d3ddf926d79aa138306164169baf764bb829
2026-07-17 15:54:41 +08:00

380 lines
7.2 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* === 全局重置 === */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Segoe UI', 'PingFang SC', Roboto, system-ui, sans-serif;
}
body {
background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
min-height: 100vh;
padding: 20px;
color: #fff;
}
/* === 主容器 === */
.container {
max-width: 1400px;
margin: 0 auto;
background: rgba(255, 255, 255, 0.05);
backdrop-filter: blur(10px);
border-radius: 24px;
padding: 24px;
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4);
border: 1px solid rgba(255, 255, 255, 0.1);
}
/* === 标题区域 === */
h1 {
font-size: 2.5em;
margin-bottom: 24px;
background: linear-gradient(45deg, #fff, #e94560);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
text-shadow: 0 0 20px rgba(233, 69, 96, 0.3);
letter-spacing: 2px;
}
/* === 两列布局 === */
.main-layout {
display: grid;
grid-template-columns: 280px 1fr 300px;
gap: 20px;
margin-top: 20px;
}
/* === 左侧面板通用样式 === */
.left-panel, .right-panel {
background: rgba(10, 10, 20, 0.6);
border-radius: 20px;
padding: 20px;
border: 1px solid rgba(255, 255, 255, 0.05);
backdrop-filter: blur(5px);
}
/* === 素材分类标题 === */
.left-panel h3 {
color: #e94560;
margin: 16px 0 12px 0;
font-size: 1.2em;
letter-spacing: 1px;
border-left: 4px solid #e94560;
padding-left: 12px;
}
.left-panel h3:first-of-type {
margin-top: 0;
}
/* === 素材网格 === */
.material-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 10px;
margin-bottom: 10px;
}
/* === 素材项 === */
.material-item {
background: rgba(255, 255, 255, 0.05);
border: 1px solid rgba(255, 255, 255, 0.1);
border-radius: 12px;
padding: 10px;
text-align: center;
cursor: pointer;
transition: all 0.2s ease;
color: #fff;
font-size: 0.9em;
}
.material-item:hover {
background: rgba(233, 69, 96, 0.2);
border-color: #e94560;
transform: translateY(-2px);
}
/* === 中间画布区域 === */
.canvas-area {
background: rgba(0, 0, 0, 0.3);
border-radius: 20px;
padding: 20px;
display: flex;
flex-direction: column;
align-items: center;
border: 1px solid rgba(255, 255, 255, 0.05);
}
/* === 画布 === */
#mainCanvas {
width: 100%;
max-width: 800px;
aspect-ratio: 16/9;
background: #0a0a14;
border-radius: 16px;
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
border: 2px solid rgba(233, 69, 96, 0.3);
cursor: crosshair;
}
/* === 画布控制栏 === */
.canvas-controls {
margin-top: 16px;
display: flex;
gap: 12px;
flex-wrap: wrap;
justify-content: center;
}
/* === 按钮样式 === */
.btn {
background: linear-gradient(45deg, #2a1a3a, #1a1a2e);
border: 1px solid #533483;
color: #fff;
padding: 10px 24px;
border-radius: 30px;
font-size: 0.95em;
font-weight: 500;
cursor: pointer;
transition: all 0.2s ease;
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3);
letter-spacing: 0.5px;
}
.btn:hover {
background: linear-gradient(45deg, #3a2a4a, #2a1a3a);
border-color: #e94560;
transform: translateY(-2px);
box-shadow: 0 6px 15px rgba(233, 69, 96, 0.3);
}
.btn-primary {
background: linear-gradient(45deg, #e94560, #533483);
border-color: #e94560;
font-weight: 600;
}
.btn-primary:hover {
background: linear-gradient(45deg, #ff5570, #634393);
box-shadow: 0 6px 20px rgba(233, 69, 96, 0.5);
}
/* === 右侧面板 === */
.right-panel {
display: flex;
flex-direction: column;
gap: 20px;
}
/* === 场景列表 === */
.scene-list {
background: rgba(0, 0, 0, 0.2);
border-radius: 12px;
padding: 12px;
min-height: 120px;
border: 1px solid rgba(255, 255, 255, 0.05);
}
.scene-item {
background: rgba(233, 69, 96, 0.1);
border: 1px solid #533483;
border-radius: 8px;
padding: 8px 12px;
margin-bottom: 8px;
cursor: pointer;
transition: all 0.2s;
display: flex;
justify-content: space-between;
align-items: center;
}
.scene-item:hover {
background: rgba(233, 69, 96, 0.2);
border-color: #e94560;
}
.scene-item.active {
background: rgba(233, 69, 96, 0.3);
border-color: #e94560;
box-shadow: 0 0 15px rgba(233, 69, 96, 0.3);
}
/* === 时间轴 === */
.timeline {
background: rgba(0, 0, 0, 0.3);
border-radius: 16px;
padding: 16px;
margin-top: 20px;
border: 1px solid rgba(255, 255, 255, 0.05);
}
.timeline h3 {
color: #e94560;
margin-bottom: 12px;
font-size: 1.1em;
}
.timeline-controls {
display: flex;
gap: 10px;
margin-bottom: 16px;
flex-wrap: wrap;
}
.frames-container {
display: flex;
gap: 12px;
overflow-x: auto;
padding: 12px 0;
min-height: 100px;
}
.frame-thumb {
min-width: 120px;
height: 68px;
background: #0f0f1a;
border: 2px solid #533483;
border-radius: 8px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
cursor: pointer;
transition: all 0.2s;
font-size: 0.8em;
color: #aaa;
position: relative;
}
.frame-thumb:hover {
border-color: #e94560;
transform: scale(1.05);
}
.frame-thumb.active {
border-color: #e94560;
background: rgba(233, 69, 96, 0.2);
box-shadow: 0 0 15px rgba(233, 69, 96, 0.3);
}
.frame-index {
font-size: 1.2em;
font-weight: bold;
color: #e94560;
margin-bottom: 4px;
}
/* === 预览模式样式 === */
.preview-mode .left-panel,
.preview-mode .right-panel,
.preview-mode .timeline,
.preview-mode .canvas-controls .btn:not(#exitPreviewBtn):not(#playPreviewBtn):not(#pausePreviewBtn):not(#stopPreviewBtn) {
display: none !important;
}
.preview-mode .canvas-area {
grid-column: 1 / -1;
justify-content: center;
min-height: 80vh;
}
.preview-mode #mainCanvas {
max-width: 1200px;
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.6);
}
.preview-mode .preview-controls {
display: flex !important;
gap: 12px;
margin-top: 20px;
justify-content: center;
}
/* === 分享面板样式 === */
.share-panel {
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background: #1a1a2e;
border: 2px solid #e94560;
border-radius: 24px;
padding: 30px;
z-index: 1000;
min-width: 400px;
box-shadow: 0 30px 60px rgba(0, 0, 0, 0.8);
backdrop-filter: blur(20px);
}
.share-panel h3 {
color: #e94560;
margin-bottom: 20px;
font-size: 1.5em;
}
.share-url {
background: #0a0a14;
border: 1px solid #533483;
border-radius: 12px;
padding: 12px;
margin: 15px 0;
word-break: break-all;
font-size: 0.9em;
color: #fff;
max-height: 100px;
overflow-y: auto;
}
.share-actions {
display: flex;
gap: 12px;
justify-content: flex-end;
margin-top: 20px;
}
/* === 遮罩层 === */
.overlay {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.7);
backdrop-filter: blur(5px);
z-index: 999;
}
/* === 工具类 === */
.hidden {
display: none !important;
}
/* === canvas-asset来自原来文件保留 === */
.canvas-asset:hover {
transform: scale(1.1);
}
.canvas-asset.selected {
outline: 2px dashed #e94560;
outline-offset: 4px;
}
/* === 滚动条样式(来自原来文件,保留) === */
::-webkit-scrollbar {
width: 8px;
height: 8px;
}
::-webkit-scrollbar-track {
background: #0f0f1a;
}
::-webkit-scrollbar-thumb {
background: #533483;
border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
background: #e94560;
}