Files
training/miniprogram/src/pages/test/index.scss
T
Pine c6def26b52 feat(miniprogram): OSS直链上传+资讯互动+详情页重设计
- API 基址支持 TARO_APP_API_BASE 覆盖;头像/入驻资料上传带 dir 业务目录(OSS 路径规范)
- 资讯详情:真实点赞(计数)/微信分享(openType=share+useShareAppMessage)/留言;封面 3.35:1 裁切;顶部色条修复
- 发布者徽章(官方/园区/OPC 三款渐变胶囊);头像有则显示无则不留位
- 动作按钮纯图标化并入留言标题行;留言区胶囊输入+渐变发送键
2026-08-28 17:20:10 +08:00

584 lines
10 KiB
SCSS

/* OPC 创业基因测评 · 小程序端(后端驱动) */
.ot {
padding: 0 32rpx;
padding-bottom: 180rpx; /* 底部留白:避开固定 tabBar */
position: relative; z-index: 2;}
@supports (padding-bottom: env(safe-area-inset-bottom)) {
.ot {
padding-bottom: calc(180rpx + env(safe-area-inset-bottom));
}
}
/* ---------- 区块头 ---------- */
.ot-head {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 6rpx;
margin: 48rpx 0 24rpx;
}
.ot-no {
font-family: 'BubbledotICG', monospace;
color: #a3abc9;
font-size: 26rpx;
letter-spacing: 2rpx;
}
.ot-title {
font-size: 38rpx;
font-weight: 800;
letter-spacing: -0.5rpx;
line-height: 1.3;
background: linear-gradient(120deg, #8fc3ff 0%, #a8a0ff 45%, #e0a0ff 80%, #7fe0ff 100%);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
}
.ot-en {
font-family: 'BubbledotICG', monospace;
color: #5b5b5b;
font-size: 24rpx;
letter-spacing: 2rpx;
}
/* ---------- 欢迎 ---------- */
.ot-intro {
display: block;
font-size: 24rpx; /* 辅助说明降一档,减少视觉比重 */
color: #8a94b8;
line-height: 1.7;
margin-bottom: 24rpx;
}
.ot-version-grid {
display: flex;
flex-direction: column;
gap: 16rpx;
margin-bottom: 20rpx;
}
.ot-vcard {
background: rgba(255,255,255,0.55); backdrop-filter: blur(20px) saturate(160%); -webkit-backdrop-filter: blur(20px) saturate(160%);
border: 1rpx solid rgba(99, 132, 255, 0.14);
border-radius: 16px;
padding: 28rpx 32rpx;
display: flex;
flex-direction: column;
gap: 8rpx;
}
.ot-vcard.sel {
border-color: #6284ff;
box-shadow: 0 0 0 1rpx rgba(255, 210, 138, 0.6), 0 0 24rpx rgba(255, 210, 138, 0.15);
}
.ot-vname {
font-size: 34rpx;
font-weight: 700;
color: #23315c;
}
.ot-vcard.sel .ot-vname {
color: #6284ff;
}
.ot-vmeta {
font-size: 24rpx;
color: #9aa4c6;
}
.ot-vdesc {
font-size: 25rpx;
color: #a9a9a9;
line-height: 1.6;
}
.ot-features {
display: flex;
flex-direction: column;
gap: 10rpx;
margin-bottom: 32rpx;
}
.ot-feature {
font-size: 26rpx;
color: #a9a9a9;
line-height: 1.5;
}
.ot-start {
margin-top: 8rpx;
}
/* ---------- 答题 ---------- */
.ot-quiz-head {
padding-top: 8rpx;
}
.ot-quiz-top {
display: flex;
align-items: baseline;
justify-content: space-between;
}
.ot-quiz-title {
font-size: 30rpx;
font-weight: 700;
color: #23315c;
}
.ot-quiz-tag {
margin-left: 14rpx;
font-size: 20rpx;
font-weight: 600;
color: #000;
background: rgba(255,255,255,0.55); backdrop-filter: blur(20px) saturate(160%); -webkit-backdrop-filter: blur(20px) saturate(160%);
border-radius: 999px;
padding: 4rpx 16rpx;
vertical-align: middle;
}
.ot-progress-text {
font-size: 24rpx;
color: #9aa4c6;
}
.ot-progress {
height: 10rpx;
border-radius: 999px;
background: rgba(99, 132, 255, 0.14);
margin: 20rpx 0;
overflow: hidden;
}
.ot-progress-fill {
height: 100%;
border-radius: 999px;
background: linear-gradient(90deg, #6284ff, #ff8f6b);
transition: width 0.3s ease;
}
.ot-part {
display: block;
font-size: 24rpx;
color: #6284ff;
margin-bottom: 8rpx;
}
/* 单题卡片下方的操作提示 */
.ot-hint {
display: block;
margin-top: 16rpx;
font-size: 22rpx;
color: #9aa4c6;
text-align: center;
}
.ot-qcard {
background: rgba(255,255,255,0.55); backdrop-filter: blur(20px) saturate(160%); -webkit-backdrop-filter: blur(20px) saturate(160%);
border: 1rpx solid rgba(99, 132, 255, 0.14);
border-radius: 16px;
padding: 28rpx 30rpx;
margin-bottom: 20rpx;
}
.ot-qcard.answered {
border-color: rgba(255, 210, 138, 0.5);
}
/* 一题一屏:卡片更突出,题目/选项更大 */
.ot-qcard.one {
margin-top: 8rpx;
padding: 44rpx 32rpx;
}
.ot-qcard.one .ot-qtext {
font-size: 36rpx;
line-height: 1.5;
margin-bottom: 36rpx;
}
.ot-qcard.one .ot-opt {
padding: 26rpx 26rpx;
}
.ot-qnum {
display: flex;
justify-content: space-between;
align-items: center;
font-size: 22rpx;
color: #a3abc9;
margin-bottom: 12rpx;
}
.ot-check {
color: #6284ff;
font-size: 26rpx;
}
.ot-qtext {
display: block;
font-size: 30rpx;
font-weight: 600;
color: #23315c;
line-height: 1.5;
margin-bottom: 20rpx;
}
.ot-opts {
display: flex;
flex-direction: column;
gap: 12rpx;
}
.ot-opt {
display: flex;
align-items: flex-start;
gap: 12rpx;
background: rgba(255,255,255,0.55); backdrop-filter: blur(20px) saturate(160%); -webkit-backdrop-filter: blur(20px) saturate(160%);
border: 1rpx solid rgba(99, 132, 255, 0.14);
border-radius: 14px;
padding: 20rpx 22rpx;
}
.ot-opt.sel {
border-color: #6284ff;
background: rgba(255, 210, 138, 0.08);
}
.opt-key {
font-family: 'BubbledotICG', monospace;
color: #9aa4c6;
font-size: 26rpx;
flex-shrink: 0;
}
.ot-opt.sel .opt-key {
color: #6284ff;
}
.opt-text {
font-size: 27rpx;
color: #4a5580;
line-height: 1.55;
flex: 1;
}
/* 底部导航(上一题 / 进度计数) */
.ot-nav-one {
display: flex;
align-items: center;
justify-content: space-between;
gap: 16rpx;
margin: 28rpx 0 8rpx;
}
.ot-nav-btn {
flex-shrink: 0;
line-height: 2.4;
padding: 0 28rpx;
}
.ot-nav-info {
font-family: 'BubbledotICG', monospace;
font-size: 26rpx;
color: #9aa4c6;
letter-spacing: 2rpx;
}
.ot-loading {
display: block;
text-align: center;
font-size: 26rpx;
color: #6284ff;
margin-top: 24rpx;
}
/* ---------- 报告 ---------- */
.ot-result-hero {
background: linear-gradient(135deg, #161618, #221d2e);
border: 1rpx solid rgba(255, 255, 255, 0.18);
border-radius: 20px;
padding: 36rpx 32rpx;
display: flex;
align-items: center;
gap: 28rpx;
margin-bottom: 16rpx;
}
.ot-hero-left {
flex: 1;
display: flex;
flex-direction: column;
gap: 8rpx;
min-width: 0;
}
.ot-code {
font-family: 'BubbledotICG', monospace;
font-size: 60rpx;
color: #dfe6ff; /* 深色 hero 卡上提亮,保证对比度 */
letter-spacing: 4rpx;
line-height: 1;
}
.ot-persona {
font-size: 34rpx;
font-weight: 700;
color: #6284ff;
}
.ot-tagline {
font-size: 24rpx;
color: #a9a9a9;
}
.ot-openpath {
font-size: 24rpx;
color: #4a5580;
line-height: 1.5;
}
.ot-hero-right {
flex-shrink: 0;
display: flex;
flex-direction: column;
align-items: center;
gap: 12rpx;
}
.ot-ring {
width: 168rpx;
height: 168rpx;
border-radius: 50%;
background: conic-gradient(#6284ff var(--p, 0%), rgba(99, 132, 255, 0.14) var(--p, 0%));
display: flex;
align-items: center;
justify-content: center;
}
.ot-ring-inner {
width: 132rpx;
height: 132rpx;
border-radius: 50%;
background: rgba(255,255,255,0.55); backdrop-filter: blur(20px) saturate(160%); -webkit-backdrop-filter: blur(20px) saturate(160%);
display: flex;
align-items: center;
justify-content: center;
}
.ot-ring-num {
font-family: 'BubbledotICG', monospace;
font-size: 56rpx;
color: #23315c;
}
.ot-ring-label {
font-size: 22rpx;
color: #4a5580;
text-align: center;
}
.ot-verdict {
background: rgba(255, 255, 255, 0.05);
border: 1rpx solid rgba(99, 132, 255, 0.14);
border-radius: 16px;
padding: 24rpx 28rpx;
font-size: 28rpx;
color: #23315c;
line-height: 1.6;
margin-bottom: 12rpx;
}
.ot-weak {
font-size: 24rpx;
color: #8a5a00; /* 浅黄底上换深琥珀,保证对比度 */
font-weight: 600;
background: rgba(245, 200, 90, 0.28);
border: 1rpx dashed rgba(190, 140, 30, 0.55);
border-radius: 12px;
padding: 16rpx 22rpx;
margin-bottom: 8rpx;
}
/* 适配 6 维 */
.ot-dim {
display: flex;
align-items: center;
gap: 16rpx;
margin-bottom: 16rpx;
}
.ot-dim-label {
width: 140rpx;
flex-shrink: 0;
font-size: 26rpx;
color: #4a5580;
}
.ot-dim-bar {
flex: 1;
height: 26rpx;
border-radius: 999px;
background: rgba(255, 255, 255, 0.1);
overflow: hidden;
}
.ot-dim-fill {
height: 100%;
border-radius: 999px;
display: flex;
align-items: center;
justify-content: flex-end;
padding-right: 10rpx;
min-width: 60rpx;
}
.ot-dim-num {
font-family: 'BubbledotICG', monospace;
font-size: 20rpx;
color: #000;
font-weight: 700;
}
/* 特质 4 轴 */
.ot-axis {
margin-bottom: 18rpx;
}
.ot-axis-head {
display: flex;
align-items: center;
gap: 14rpx;
margin-bottom: 10rpx;
}
.ot-axis-name {
font-size: 26rpx;
color: #4a5580;
}
.ot-axis-win {
font-family: 'BubbledotICG', monospace;
font-size: 26rpx;
color: #6284ff;
}
.ot-axis-pct {
margin-left: auto;
font-family: 'BubbledotICG', monospace;
font-size: 22rpx;
color: #9aa4c6;
}
.ot-axis-bar {
height: 16rpx;
border-radius: 999px;
background: rgba(255, 255, 255, 0.1);
overflow: hidden;
}
.ot-axis-fill {
height: 100%;
border-radius: 999px;
background: linear-gradient(90deg, #6284ff, #ff8f6b);
}
/* 卡片(赛道 / 角色 / 工具) */
.ot-card {
background: rgba(255,255,255,0.55); backdrop-filter: blur(20px) saturate(160%); -webkit-backdrop-filter: blur(20px) saturate(160%);
border: 1rpx solid rgba(99, 132, 255, 0.14);
border-radius: 16px;
padding: 28rpx 30rpx;
margin-bottom: 16rpx;
display: flex;
flex-direction: column;
gap: 10rpx;
}
.ot-card-head {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 4rpx;
}
.ot-card-name {
font-size: 32rpx;
font-weight: 700;
color: #23315c;
}
.ot-badge {
font-size: 20rpx;
font-weight: 700;
color: #000;
background: rgba(255,255,255,0.55); backdrop-filter: blur(20px) saturate(160%); -webkit-backdrop-filter: blur(20px) saturate(160%);
border-radius: 999px;
padding: 4rpx 16rpx;
flex-shrink: 0;
}
.ot-badge.alt {
background: #323234;
color: #c8c8c8;
}
.ot-desc {
font-size: 26rpx;
color: #a9a9a9;
line-height: 1.6;
}
.ot-line {
font-size: 25rpx;
color: #4a5580;
line-height: 1.6;
}
.ot-line.muted {
color: #9aa4c6;
}
.ot-line .b {
color: #6284ff;
font-weight: 600;
}
/* 下一步行动 */
.ot-step {
display: block;
font-size: 26rpx;
color: #4a5580;
line-height: 1.65;
}
.ot-step.next {
color: #23315c;
}
/* 免责声明 + 重测 */
.ot-note {
display: block;
font-size: 22rpx;
color: #a3abc9;
line-height: 1.6;
margin: 24rpx 0;
}
.ot-restart {
margin-top: 8rpx;
}
.err-text {
display: block;
margin-top: 20rpx;
font-size: 26rpx;
color: #f0b8b8;
text-align: center;
}