430 lines
7.2 KiB
CSS
430 lines
7.2 KiB
CSS
/* 结果页面整体布局 */
|
|
.result-page {
|
|
width: 100%;
|
|
height: 100vh;
|
|
display: flex;
|
|
flex-direction: column;
|
|
position: relative;
|
|
overflow: hidden;
|
|
padding: 0 0 40px;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
/* 生成中页面样式 */
|
|
.result-page.generating {
|
|
background: linear-gradient(135deg, #f5f5f5 0%, #e8e8e8 100%);
|
|
padding: 0;
|
|
}
|
|
|
|
/* 毛玻璃背景效果 */
|
|
.glassmorphism-background {
|
|
position: absolute;
|
|
inset: 0;
|
|
background: linear-gradient(135deg, rgb(255 255 255 / 10%) 0%, rgb(255 255 255 / 5%) 50%, rgb(0 0 0 / 10%) 100%);
|
|
backdrop-filter: blur(20px);
|
|
}
|
|
|
|
/* 主要内容区域 */
|
|
.result-content {
|
|
flex: 1;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
padding: 20px 16px;
|
|
position: relative;
|
|
z-index: 2;
|
|
}
|
|
|
|
/* 媒体容器 - 自适应比例 */
|
|
.result-container {
|
|
width: 100%;
|
|
max-height: 60vh;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
border-radius: 16px;
|
|
overflow: hidden;
|
|
position: relative;
|
|
}
|
|
|
|
.result-image {
|
|
width: 100%;
|
|
height: auto;
|
|
max-height: 60vh;
|
|
border-radius: 16px;
|
|
object-fit: cover;
|
|
}
|
|
|
|
.result-video {
|
|
width: 100%;
|
|
height: 60vh;
|
|
object-fit: contain;
|
|
border-radius: 16px;
|
|
}
|
|
|
|
/* 底部操作区域 */
|
|
.result-actions {
|
|
padding: 20px 16px 40px;
|
|
z-index: 10;
|
|
}
|
|
|
|
.action-buttons {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 14px;
|
|
margin-bottom: 20px;
|
|
}
|
|
|
|
/* 下载按钮 - 大按钮 */
|
|
.download-btn {
|
|
width: 100%;
|
|
height: 60px;
|
|
background: #1d1f22;
|
|
border-radius: 16px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
color: white;
|
|
font-size: 16px;
|
|
font-weight: 400;
|
|
border: none;
|
|
cursor: pointer;
|
|
}
|
|
|
|
/* 查看按钮 - 小按钮 */
|
|
.view-btn {
|
|
flex: 1;
|
|
height: 60px;
|
|
border: 1px solid #1d1f22;
|
|
border-radius: 16px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
color: #1d1f22;
|
|
font-size: 16px;
|
|
font-weight: 400;
|
|
background: white;
|
|
cursor: pointer;
|
|
}
|
|
|
|
/* 返回首页链接 */
|
|
.home-link {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
font-size: 16px;
|
|
font-weight: 400;
|
|
color: #919191;
|
|
}
|
|
|
|
/* 生成中内容区域 */
|
|
.generating-content {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: flex-start;
|
|
height: 100vh;
|
|
padding: 80px 16px 160px;
|
|
box-sizing: border-box;
|
|
position: relative;
|
|
}
|
|
|
|
/* 进度容器 */
|
|
.progress-container {
|
|
position: relative;
|
|
margin-bottom: 60px;
|
|
margin-top: 20px;
|
|
}
|
|
|
|
/* 进度方框 */
|
|
.progress-circle {
|
|
width: 280px;
|
|
height: 280px;
|
|
border-radius: 24px;
|
|
position: relative;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
background: white;
|
|
box-shadow: 0 4px 20px rgb(0 0 0 / 10%);
|
|
}
|
|
|
|
.progress-fill {
|
|
position: absolute;
|
|
inset: -10px;
|
|
border-radius: 24px;
|
|
background: conic-gradient(#ffcf5f 0deg, #ffcf5f 0deg, transparent 0deg, transparent 360deg);
|
|
padding: 10px;
|
|
z-index: 1;
|
|
}
|
|
|
|
.progress-inner {
|
|
width: 100%;
|
|
height: 100%;
|
|
border-radius: 24px;
|
|
background: white;
|
|
position: relative;
|
|
z-index: 2;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.progress-text {
|
|
font-size: 48px;
|
|
font-weight: 600;
|
|
color: #333;
|
|
}
|
|
|
|
/* 预览图片 */
|
|
.preview-image {
|
|
position: absolute;
|
|
inset: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
border-radius: 24px;
|
|
z-index: 3;
|
|
object-fit: cover;
|
|
}
|
|
|
|
/* 预览占位符 */
|
|
.preview-placeholder {
|
|
position: absolute;
|
|
inset: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
border-radius: 24px;
|
|
background: linear-gradient(135deg, #f0f0f0 0%, #e0e0e0 100%);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
z-index: 3;
|
|
}
|
|
|
|
/* 进度遮罩层 */
|
|
.progress-overlay {
|
|
position: absolute;
|
|
inset: 0;
|
|
border-radius: 24px;
|
|
background: linear-gradient(135deg, rgb(0 0 0 / 20%) 0%, rgb(0 0 0 / 10%) 50%, rgb(0 0 0 / 30%) 100%);
|
|
z-index: 4;
|
|
pointer-events: none;
|
|
}
|
|
|
|
/* 光扫描动画 */
|
|
.scan-light {
|
|
position: absolute;
|
|
inset: 0;
|
|
border-radius: 48px;
|
|
background: linear-gradient(
|
|
90deg,
|
|
transparent 0%,
|
|
rgb(255 255 255 / 8%) 40%,
|
|
rgb(255 255 255 / 15%) 50%,
|
|
rgb(255 255 255 / 8%) 60%,
|
|
transparent 100%
|
|
);
|
|
z-index: 5;
|
|
animation: scan 2s ease-in-out infinite;
|
|
pointer-events: none;
|
|
}
|
|
|
|
/* 进度文字 */
|
|
.scan-progress {
|
|
font-size: 32px;
|
|
color: #ffffff;
|
|
font-weight: 700;
|
|
z-index: 6;
|
|
text-shadow: 0 2px 4px rgb(0 0 0 / 50%), 0 0 8px rgb(0 0 0 / 30%), 0 0 16px rgb(0 0 0 / 20%);
|
|
position: absolute;
|
|
top: 50%;
|
|
left: 50%;
|
|
transform: translate(-50%, -50%);
|
|
pointer-events: none;
|
|
}
|
|
|
|
@keyframes scan {
|
|
0% {
|
|
transform: translateX(-100%);
|
|
}
|
|
|
|
100% {
|
|
transform: translateX(100%);
|
|
}
|
|
}
|
|
|
|
.placeholder-icon {
|
|
font-size: 32px;
|
|
opacity: 0.6;
|
|
}
|
|
|
|
/* 状态区域 */
|
|
.status-section {
|
|
text-align: center;
|
|
margin-bottom: 60px;
|
|
}
|
|
|
|
.status-icon-image {
|
|
width: 24px;
|
|
height: 24px;
|
|
margin-right: 8px;
|
|
}
|
|
|
|
.status-title {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
font-size: 18px;
|
|
font-weight: 500;
|
|
color: #1d1f22;
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
.status-subtitle {
|
|
font-size: 14px;
|
|
color: #919191;
|
|
}
|
|
|
|
/* 生成中操作按钮 */
|
|
.generating-actions {
|
|
margin-bottom: 40px;
|
|
}
|
|
|
|
.later-btn {
|
|
width: 200px;
|
|
height: 60px;
|
|
background: #1d1f22;
|
|
border-radius: 16px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
color: white;
|
|
font-size: 16px;
|
|
font-weight: 500;
|
|
cursor: pointer;
|
|
}
|
|
|
|
/* 提示区域 */
|
|
.tips-section {
|
|
text-align: center;
|
|
position: absolute;
|
|
bottom: 60px;
|
|
left: 50%;
|
|
transform: translateX(-50%);
|
|
width: 100%;
|
|
}
|
|
|
|
.tips-label {
|
|
font-size: 11px;
|
|
font-weight: 500;
|
|
color: #b9b9b9;
|
|
letter-spacing: 2px;
|
|
margin-bottom: 8px;
|
|
}
|
|
|
|
.tips-text {
|
|
font-size: 12px;
|
|
color: #919191;
|
|
}
|
|
|
|
/* 错误页面样式 */
|
|
.result-page.error {
|
|
background: #f5f5f5;
|
|
padding: 0;
|
|
}
|
|
|
|
.error-content {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: center;
|
|
height: 100vh;
|
|
padding: 60px 16px;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
.error-container {
|
|
text-align: center;
|
|
margin-bottom: 40px;
|
|
}
|
|
|
|
.error-text {
|
|
font-size: 18px;
|
|
font-weight: 500;
|
|
color: #333;
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
.error-message {
|
|
font-size: 14px;
|
|
color: #666;
|
|
}
|
|
|
|
.error-actions {
|
|
display: flex;
|
|
gap: 14px;
|
|
}
|
|
|
|
.try-again-btn {
|
|
width: 120px;
|
|
height: 60px;
|
|
background: #333;
|
|
border-radius: 16px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
color: white;
|
|
font-size: 16px;
|
|
font-weight: 500;
|
|
border: none;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.back-btn {
|
|
width: 100px;
|
|
height: 60px;
|
|
border: 1px solid #333;
|
|
border-radius: 16px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
color: #333;
|
|
font-size: 16px;
|
|
font-weight: 500;
|
|
background: white;
|
|
cursor: pointer;
|
|
}
|
|
|
|
/* 成功页面样式 */
|
|
.result-page.success {
|
|
background: #f5f6f8;
|
|
padding: 0;
|
|
}
|
|
|
|
.success-content {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: center;
|
|
height: 100vh;
|
|
padding: 60px 16px;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
.success-actions {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 14px;
|
|
margin-top: 20px;
|
|
width: 100%;
|
|
max-width: 300px;
|
|
}
|
|
|
|
/* 下载提示文字 */
|
|
.download-tip {
|
|
font-size: 24px;
|
|
color: #666;
|
|
text-align: center;
|
|
margin-top: 8px;
|
|
z-index: 1;
|
|
}
|