311 lines
7.7 KiB
Plaintext
311 lines
7.7 KiB
Plaintext
/**
|
|
* 这里是uni-app内置的常用样式变量
|
|
*
|
|
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
|
|
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
|
|
*
|
|
*/
|
|
/**
|
|
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
|
|
*
|
|
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
|
|
*/
|
|
/* 颜色变量 */
|
|
/* 行为相关颜色 */
|
|
/* 文字基本颜色 */
|
|
/* 背景颜色 */
|
|
/* 边框颜色 */
|
|
/* 尺寸变量 */
|
|
/* 文字尺寸 */
|
|
/* 图片尺寸 */
|
|
/* Border Radius */
|
|
/* 水平间距 */
|
|
/* 垂直间距 */
|
|
/* 透明度 */
|
|
/* 文章场景相关 */
|
|
/* ============================================================
|
|
* 设计 token —— 浅色清爽
|
|
* ============================================================ */
|
|
/* ============================================================
|
|
* 页面容器
|
|
* ============================================================ */
|
|
.page.data-v-a75aa31b {
|
|
position: relative;
|
|
min-height: 100vh;
|
|
box-sizing: border-box;
|
|
padding: 30rpx 28rpx 50rpx;
|
|
background: #f8fafc;
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
gap: 20rpx;
|
|
color: #0f172a;
|
|
}
|
|
|
|
/* ============================================================
|
|
* 统一运动律动视区 (Canvas)
|
|
* ============================================================ */
|
|
.stage-canvas-wrapper.data-v-a75aa31b {
|
|
width: 100vw;
|
|
margin-left: -28rpx;
|
|
margin-right: -28rpx;
|
|
flex-shrink: 0;
|
|
/* 防止被压缩 */
|
|
height: 600rpx;
|
|
/* 固定高度,不随内容变化 */
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
margin-bottom: 24rpx;
|
|
position: relative;
|
|
}
|
|
|
|
/* ============================================================
|
|
* 音色选择器
|
|
* ============================================================ */
|
|
.sound-selector.data-v-a75aa31b {
|
|
width: 100%;
|
|
display: flex;
|
|
gap: 14rpx;
|
|
margin-bottom: 20rpx;
|
|
}
|
|
.sound-option.data-v-a75aa31b {
|
|
flex: 1;
|
|
background: #ffffff;
|
|
border: 2rpx solid rgba(15, 23, 42, 0.06);
|
|
border-radius: 24rpx;
|
|
padding: 20rpx 16rpx;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 10rpx;
|
|
box-shadow: 0 4rpx 12rpx rgba(15, 23, 42, 0.04);
|
|
transition: all 0.18s;
|
|
}
|
|
.sound-option .sound-icon.data-v-a75aa31b {
|
|
font-size: 32rpx;
|
|
}
|
|
.sound-option .sound-label.data-v-a75aa31b {
|
|
font-size: 26rpx;
|
|
font-weight: 600;
|
|
color: #475569;
|
|
letter-spacing: 1rpx;
|
|
}
|
|
.sound-option.data-v-a75aa31b:active {
|
|
transform: scale(0.97);
|
|
}
|
|
.sound-option.active.data-v-a75aa31b {
|
|
background: linear-gradient(135deg, #d1fae5 0%, #a7f3d0 100%);
|
|
border-color: #10b981;
|
|
box-shadow: 0 8rpx 20rpx rgba(16, 185, 129, 0.18), inset 0 0 0 2rpx rgba(16, 185, 129, 0.4);
|
|
}
|
|
.sound-option.active .sound-label.data-v-a75aa31b {
|
|
color: #047857;
|
|
}
|
|
|
|
/* ============================================================
|
|
* 三档位推荐
|
|
* ============================================================ */
|
|
.presets.data-v-a75aa31b {
|
|
width: 100%;
|
|
display: flex;
|
|
gap: 14rpx;
|
|
}
|
|
.preset.data-v-a75aa31b {
|
|
flex: 1;
|
|
background: #ffffff;
|
|
border: 2rpx solid rgba(15, 23, 42, 0.06);
|
|
border-radius: 24rpx;
|
|
padding: 26rpx 8rpx;
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
gap: 8rpx;
|
|
box-shadow: 0 4rpx 12rpx rgba(15, 23, 42, 0.04);
|
|
transition: all 0.18s;
|
|
}
|
|
.preset .preset-name.data-v-a75aa31b {
|
|
font-size: 28rpx;
|
|
font-weight: 700;
|
|
color: #0f172a;
|
|
letter-spacing: 2rpx;
|
|
}
|
|
.preset .preset-bpm.data-v-a75aa31b {
|
|
font-size: 22rpx;
|
|
color: #475569;
|
|
font-weight: 600;
|
|
font-variant-numeric: tabular-nums;
|
|
}
|
|
.preset .preset-desc.data-v-a75aa31b {
|
|
font-size: 18rpx;
|
|
color: #94a3b8;
|
|
letter-spacing: 1rpx;
|
|
margin-top: 2rpx;
|
|
}
|
|
.preset.data-v-a75aa31b:active {
|
|
transform: scale(0.97);
|
|
}
|
|
.preset.active.data-v-a75aa31b {
|
|
background: #d1fae5;
|
|
border-color: #10b981;
|
|
box-shadow: 0 8rpx 20rpx rgba(16, 185, 129, 0.18), inset 0 0 0 2rpx rgba(16, 185, 129, 0.4);
|
|
}
|
|
.preset.active .preset-name.data-v-a75aa31b {
|
|
color: #047857;
|
|
}
|
|
.preset.active .preset-bpm.data-v-a75aa31b {
|
|
color: #047857;
|
|
}
|
|
.preset.active .preset-desc.data-v-a75aa31b {
|
|
color: #10b981;
|
|
}
|
|
|
|
/* ============================================================
|
|
* 自定义节奏区域(标题栏 + 折叠内容)
|
|
* ============================================================ */
|
|
.custom-section.data-v-a75aa31b {
|
|
width: 100%;
|
|
margin-top: 12rpx;
|
|
}
|
|
.custom-header.data-v-a75aa31b {
|
|
width: 100%;
|
|
padding: 16rpx 6rpx;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
.custom-header .custom-title.data-v-a75aa31b {
|
|
font-size: 22rpx;
|
|
color: #94a3b8;
|
|
letter-spacing: 0.5rpx;
|
|
}
|
|
.custom-header .custom-title.data-v-a75aa31b:active {
|
|
color: #475569;
|
|
}
|
|
.custom-content.data-v-a75aa31b {
|
|
width: 100%;
|
|
background: #ffffff;
|
|
border: 2rpx solid rgba(245, 158, 11, 0.25);
|
|
border-radius: 24rpx;
|
|
box-shadow: 0 6rpx 18rpx rgba(245, 158, 11, 0.08);
|
|
padding: 20rpx 24rpx 22rpx;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 16rpx;
|
|
margin-top: 8rpx;
|
|
}
|
|
.custom-warn.data-v-a75aa31b {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8rpx;
|
|
margin-bottom: 4rpx;
|
|
}
|
|
.custom-warn .warn-dot.data-v-a75aa31b {
|
|
font-size: 18rpx;
|
|
color: #f59e0b;
|
|
}
|
|
.custom-warn .warn-text.data-v-a75aa31b {
|
|
font-size: 22rpx;
|
|
color: #b45309;
|
|
letter-spacing: 0.5rpx;
|
|
font-weight: 600;
|
|
}
|
|
.row.data-v-a75aa31b {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 12rpx;
|
|
}
|
|
.row .row-label.data-v-a75aa31b {
|
|
font-size: 24rpx;
|
|
color: #475569;
|
|
font-weight: 600;
|
|
letter-spacing: 1rpx;
|
|
flex-shrink: 0;
|
|
width: 70rpx;
|
|
}
|
|
.bpm-stepper.data-v-a75aa31b {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 6rpx;
|
|
flex: 1;
|
|
justify-content: flex-end;
|
|
}
|
|
.bpm-stepper .step-btn.data-v-a75aa31b {
|
|
min-width: 56rpx;
|
|
height: 52rpx;
|
|
line-height: 52rpx;
|
|
text-align: center;
|
|
font-size: 22rpx;
|
|
color: #475569;
|
|
background: #f1f5f9;
|
|
border-radius: 10rpx;
|
|
font-weight: 600;
|
|
padding: 0 10rpx;
|
|
font-variant-numeric: tabular-nums;
|
|
}
|
|
.bpm-stepper .step-btn.data-v-a75aa31b:active {
|
|
background: #e2e8f0;
|
|
transform: scale(0.94);
|
|
}
|
|
.bpm-stepper .step-val.data-v-a75aa31b {
|
|
min-width: 84rpx;
|
|
height: 52rpx;
|
|
line-height: 52rpx;
|
|
text-align: center;
|
|
font-size: 30rpx;
|
|
font-weight: 800;
|
|
color: #0f172a;
|
|
font-variant-numeric: tabular-nums;
|
|
background: #fef3c7;
|
|
border-radius: 10rpx;
|
|
}
|
|
.meter-tabs.data-v-a75aa31b {
|
|
display: flex;
|
|
gap: 8rpx;
|
|
}
|
|
.meter-tabs .meter-tab.data-v-a75aa31b {
|
|
height: 52rpx;
|
|
line-height: 52rpx;
|
|
padding: 0 18rpx;
|
|
font-size: 22rpx;
|
|
color: #475569;
|
|
background: #f1f5f9;
|
|
border-radius: 10rpx;
|
|
font-weight: 600;
|
|
letter-spacing: 1rpx;
|
|
}
|
|
.meter-tabs .meter-tab.active.data-v-a75aa31b {
|
|
background: #f59e0b;
|
|
color: #fff;
|
|
box-shadow: 0 4rpx 10rpx rgba(245, 158, 11, 0.3);
|
|
}
|
|
.meter-tabs .meter-tab.data-v-a75aa31b:active {
|
|
transform: scale(0.94);
|
|
}
|
|
|
|
/* ============================================================
|
|
* 底部行(已废弃,保留样式以防引用)
|
|
* ============================================================ */
|
|
.bottom-row.data-v-a75aa31b {
|
|
width: 100%;
|
|
margin-top: 6rpx;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
padding: 0 6rpx;
|
|
}
|
|
.bottom-link.data-v-a75aa31b {
|
|
font-size: 22rpx;
|
|
color: #94a3b8;
|
|
letter-spacing: 0.5rpx;
|
|
padding: 8rpx 4rpx;
|
|
}
|
|
.bottom-link.data-v-a75aa31b:active {
|
|
color: #475569;
|
|
}
|
|
.bottom-hint.data-v-a75aa31b {
|
|
font-size: 22rpx;
|
|
color: #94a3b8;
|
|
letter-spacing: 0.5rpx;
|
|
} |