Files
2025-10-08 19:15:20 +08:00

447 lines
9.6 KiB
CSS
Raw Permalink 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.

/**
* 这里是uni-app内置的常用样式变量
*
* uni-app 官方扩展插件及插件市场https://ext.dcloud.net.cn上很多三方插件均使用了这些样式变量
* 如果你是插件开发者建议你使用scss预处理并在插件代码中直接使用这些变量无需 import 这个文件方便用户通过搭积木的方式开发整体风格一致的App
*
*/
/**
* 如果你是App开发者插件使用者你可以通过修改这些变量来定制自己的插件主题实现自定义主题功能
*
* 如果你的项目同样使用了scss预处理你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
*/
/* 颜色变量 */
/* 行为相关颜色 */
/* 藏青系主色(高亮) */
/* 文字基本颜色 */
/* 背景颜色 */
/* 边框颜色 */
/* 尺寸变量 */
/* 文字尺寸 */
/* 图片尺寸 */
/* Border Radius */
/* 水平间距 */
/* 垂直间距 */
/* 透明度 */
/* 文章场景相关 */
/* 表单控件尺寸(统一配置,避免页面内硬编码) */
body {
height: 100%;
overflow: hidden;
background: linear-gradient(180deg, #f8fbff 0%, #ffffff 60%);
}
.home {
height: 100vh;
display: flex;
flex-direction: column;
padding-bottom: calc(env(safe-area-inset-bottom) + 1rem);
position: relative;
/* 渐变背景:顶部淡蓝过渡到白色 */
background: linear-gradient(180deg, #f8fbff 0%, #ffffff 60%);
overflow: hidden;
box-sizing: border-box;
}
/* 首页横幅(移除) */
/* 公告栏 */
.notice {
margin: 0 0.75rem 0.75rem;
padding: 0.625rem 0.6875rem;
border-radius: 0.625rem;
background: #ffffff;
border: 0.0625rem solid #e5e7eb;
display: flex;
align-items: center;
gap: 0.5rem;
}
.notice-left {
flex: 0 0 auto;
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 3.125rem;
height: 1.625rem;
padding: 0 0.5rem;
border-radius: 31.21875rem;
background: #4C8DFF;
color: #fff;
font-size: 0.875rem;
font-weight: 800;
}
.notice-swiper {
height: 2.25rem;
flex: 1;
}
.notice-item {
display: flex;
align-items: center;
gap: 0.375rem;
min-height: 2.25rem;
}
.notice-text {
color: #111;
font-size: 0.875rem;
line-height: 1.125rem;
font-weight: 600;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}
.notice-tag {
color: #4C8DFF;
font-size: 0.6875rem;
padding: 0.125rem 0.3125rem;
border-radius: 31.21875rem;
background: rgba(76, 141, 255, 0.18);
}
/* 配件查询按钮 */
.parts-search-btn {
margin: 0 0.75rem 0.625rem;
padding: 0.75rem 1rem;
border-radius: 0.625rem;
background: linear-gradient(135deg, #4C8DFF 0%, #3d73e6 100%);
display: flex;
align-items: center;
justify-content: center;
gap: 0.5rem;
box-shadow: 0 0.25rem 0.625rem rgba(76, 141, 255, 0.25);
transition: all 0.2s ease;
}
.parts-search-btn-active {
opacity: 0.85;
transform: scale(0.98);
}
.parts-search-icon {
width: 1.625rem;
height: 1.625rem;
filter: brightness(0) invert(1);
}
.parts-search-text {
color: #fff;
font-size: 1.0625rem;
font-weight: 800;
letter-spacing: 0.0625rem;
}
/* 分割标题 */
.section-title {
display: flex;
align-items: center;
gap: 0.5rem;
padding: 0.3125rem 0.875rem 0;
flex: 0 0 auto;
}
.section-title::before {
content: "";
display: block;
width: 0.25rem;
height: 0.875rem;
border-radius: 0.25rem;
background: #4C8DFF;
}
.section-text {
color: #111;
font-size: 0.9375rem;
font-weight: 700;
letter-spacing: 0.03125rem;
}
/* 顶部英雄区:浅色玻璃卡片,带金色描边与柔和阴影 */
.hero {
margin: 0.5rem 0.625rem;
padding: 0.5625rem 0.5625rem 0.375rem;
border-radius: 0.625rem;
background: #ffffff;
border: 0.0625rem solid #e5e7eb;
box-shadow: none;
color: #111;
flex: 0 0 auto;
}
.hero-top {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 0.625rem;
}
.hero-sub {
display: flex;
gap: 0.375rem;
margin-bottom: 0.6875rem;
flex-wrap: wrap;
}
.chip {
padding: 0.25rem 0.5rem;
border-radius: 31.21875rem;
background: rgba(76, 141, 255, 0.1);
color: #4C8DFF;
font-size: 0.75rem;
font-weight: 700;
border: 0.0625rem solid rgba(76, 141, 255, 0.25);
}
.brand {
font-size: 1.125rem;
font-weight: 700;
letter-spacing: 0.03125rem;
color: #4C8DFF;
}
.cta {
padding: 0.25rem 0.5625rem;
border-radius: 31.21875rem;
background: #4C8DFF;
border: 0.0625rem solid #4C8DFF;
box-shadow: none;
}
.cta-text {
color: #fff;
font-size: 0.9375rem;
font-weight: 700;
letter-spacing: 0.03125rem;
}
/* 简易弹层样式 */
.dialog-mask {
position: fixed;
left: 0;
right: 0;
top: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.45);
display: flex;
align-items: center;
justify-content: center;
z-index: 10000;
}
.dialog {
width: 82vw;
background: #fff;
border-radius: 0.5rem;
padding: 0.625rem;
border: 0.0625rem solid #eef2f6;
}
.dialog-title {
font-size: 1rem;
font-weight: 800;
color: #111;
margin-bottom: 0.5rem;
}
.dialog-textarea {
width: 100%;
min-height: 5.625rem;
border: 0.0625rem solid #e8eef8;
border-radius: 0.375rem;
padding: 0.375rem;
box-sizing: border-box;
}
.dialog-actions {
display: flex;
justify-content: flex-end;
gap: 0.5625rem;
margin-top: 0.5rem;
}
.btn {
padding: 0.3125rem 0.6875rem;
border-radius: 31.21875rem;
background: #f3f6fb;
color: #334155;
border: 0.0625rem solid #e2e8f0;
font-weight: 700;
}
.btn.primary {
background: #4C8DFF;
color: #fff;
border-color: #4C8DFF;
}
/* KPI 卡片化布局:横向铺满 */
.kpi {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 0.375rem;
}
.kpi-item {
text-align: center;
background: #ffffff;
border: 0.0625rem solid #e5e7eb;
border-radius: 0.5rem;
padding: 0.5rem 0.25rem;
}
/* KPI 卡片(更扁平,降低高度) */
.kpi-grid {
gap: 0.375rem;
}
.kpi-card {
display: flex;
flex-direction: column;
align-items: flex-start;
justify-content: center;
gap: 0.25rem;
text-align: left;
padding: 0.375rem 0.4375rem;
border-radius: 0.4375rem;
background: #fff;
border: 0.0625rem solid #eef2f6;
box-shadow: 0 0.0625rem 0.25rem rgba(0, 0, 0, 0.04);
min-height: 3.75rem;
}
.kpi-icon {
width: 1.375rem;
height: 1.375rem;
opacity: 0.9;
}
.kpi-content {
display: flex;
flex-direction: column;
}
.kpi-label {
color: #6b778c;
font-weight: 700;
font-size: 0.75rem;
line-height: 0.9375rem;
}
.kpi-value {
color: #4C8DFF;
font-size: 1.0625rem;
line-height: 1.1875rem;
margin-top: 0;
font-weight: 800;
}
/* 常用功能:胶囊+阴影卡片样式的图标栅格(旧风格保留以防回退) */
.grid {
grid-row-gap: 1.125rem;
grid-column-gap: 0.8125rem;
padding: 1rem 0.75rem 0.875rem;
}
.grid-item {
position: relative;
}
.icon-squircle {
width: 4.375rem;
height: 4.375rem;
border-radius: 0.875rem;
background: #fff;
border: 0.0625rem solid #e5e7eb;
box-shadow: 0 0.3125rem 0.625rem rgba(0, 0, 0, 0.06);
}
.grid-chip {
margin-top: 0.375rem;
padding: 0.1875rem 0.4375rem;
border-radius: 31.21875rem;
background: rgba(76, 141, 255, 0.12);
color: #4C8DFF;
font-size: 0.8125rem;
font-weight: 700;
}
/* 功能容器:更轻的留白 */
.grid-wrap {
flex: 1 1 auto;
display: flex;
align-items: stretch;
justify-content: center;
margin: 0.5rem 0.625rem 0.875rem;
padding: 1rem 0.9375rem;
border-radius: 0.8125rem;
background: rgba(255, 255, 255, 0.96);
border: 0.0625rem solid #edf2f9;
box-shadow: 0 0.375rem 0.875rem rgba(32, 75, 143, 0.1);
box-sizing: border-box;
}
/* 功能卡片宫格:方形竖排,图标在上文字在下(与截图一致) */
.feature-grid {
flex: 1 1 auto;
width: 100%;
height: 100%;
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
grid-auto-rows: 1fr;
gap: 1rem 0.875rem;
align-content: space-evenly;
justify-items: center;
}
.feature-card {
width: 5.25rem;
height: 5.5rem;
background: #fff;
border: 0.0625rem solid #eef2f6;
border-radius: 0.625rem;
box-shadow: 0 0.3125rem 0.75rem rgba(0, 0, 0, 0.05);
padding: 0.5625rem 0.5rem;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.fc-icon {
width: 2.4375rem;
height: 2.4375rem;
border-radius: 0.5625rem;
background: #f7faff;
display: flex;
align-items: center;
justify-content: center;
}
.fc-img {
width: 1.6875rem;
height: 1.6875rem;
opacity: 0.95;
}
.fc-emoji {
font-size: 1.5rem;
}
.fc-placeholder {
width: 1.75rem;
height: 1.75rem;
border-radius: 0.375rem;
background: #f1f1f1;
border: 0.0625rem solid #e8eef8;
}
.fc-title {
margin-top: 0.375rem;
font-size: 0.875rem;
font-weight: 700;
color: #111;
letter-spacing: 0.03125rem;
}
/* 底部操作条:浅色半透明 + 金色主按钮 */
.bottom-bar {
position: fixed;
left: 0;
right: 0;
bottom: 0;
display: flex;
align-items: center;
justify-content: space-around;
padding: 0.4375rem 0.5625rem calc(env(safe-area-inset-bottom) + 0.4375rem);
background: rgba(255, 255, 255, 0.85);
box-shadow: 0 -0.1875rem 0.5625rem rgba(0, 0, 0, 0.08);
-webkit-backdrop-filter: blur(0.3125rem);
backdrop-filter: blur(0.3125rem);
z-index: 9999;
}
.tab {
flex: 1;
text-align: center;
color: #8a7535;
font-size: 0.8125rem;
}
.tab.active {
color: #B4880F;
}
.tab.primary {
flex: 0 0 auto;
min-width: 5.625rem;
margin: 0 0.5625rem;
padding: 0.5625rem 1rem;
background: linear-gradient(135deg, #FFE69A 0%, #F4CF62 45%, #D7A72E 100%);
color: #493c1b;
border-radius: 31.21875rem;
font-size: 0.9375rem;
font-weight: 800;
box-shadow: 0 0.3125rem 0.6875rem rgba(215, 167, 46, 0.25), 0 0 0 0.0625rem rgba(255, 255, 255, 0.7) inset;
}