feat(ui): 优化顶部安全距离,实现微信小程序与H5端无缝兼容及胶囊避让

这个提交包含在:
wikiboss
2026-09-16 20:53:02 +08:00
父节点 6f6e6229ec
当前提交 6d3076cdb8
共有 6 个文件被更改,包括 56 次插入 和 4 次删除

查看文件

@@ -40,6 +40,15 @@ export default {
--tab-bg: #151D30;
--tab-color: #94A3B8;
--tab-active: #6366F1;
/* 顶部与多端安全区变量 (小程序状态栏 / 原生胶囊避让 / H5 沉浸式自然留白) */
--safe-header-gap: calc(var(--status-bar-height, 0px) + 36rpx);
--capsule-right-space: 0rpx;
/* #ifdef MP-WEIXIN */
--safe-header-gap: calc(var(--status-bar-height, 44px) + 20rpx);
--capsule-right-space: 210rpx;
/* #endif */
}
/* 浅色暖阳晨曦主题 (Light Warm Sunset Morning) */

查看文件

@@ -231,7 +231,7 @@ const createActivity = () => {
.activity-container {
min-height: 100vh;
background-color: #0A0F1D;
padding: calc(24rpx + env(safe-area-inset-top, 0px)) 32rpx calc(180rpx + env(safe-area-inset-bottom));
padding: var(--safe-header-gap, 36rpx) 32rpx calc(180rpx + env(safe-area-inset-bottom));
}
.tab-header {

查看文件

@@ -236,11 +236,18 @@ const navTo = (url) => {
}
.header-search {
padding: calc(20rpx + env(safe-area-inset-top, 0px)) 32rpx 20rpx;
padding-top: var(--safe-header-gap, 36rpx);
padding-right: calc(32rpx + var(--capsule-right-space, 0rpx));
padding-bottom: 20rpx;
padding-left: 32rpx;
background-color: #0A0F1D;
position: sticky;
top: 0;
z-index: 50;
/* #ifdef MP-WEIXIN */
/* 微信小程序端胶囊按钮避让 (capsule-space) */
padding-right: calc(32rpx + var(--capsule-right-space, 210rpx));
/* #endif */
.search-box {
display: flex;

查看文件

@@ -210,7 +210,7 @@ const rateExpert = (id) => {
.order-list-container {
min-height: 100vh;
background-color: #0A0F1D;
padding: calc(24rpx + env(safe-area-inset-top, 0px)) 32rpx calc(160rpx + env(safe-area-inset-bottom));
padding: var(--safe-header-gap, 36rpx) 32rpx calc(160rpx + env(safe-area-inset-bottom));
}
.tab-header {

查看文件

@@ -258,7 +258,7 @@ const navTo = (url) => {
.user-container {
min-height: 100vh;
background-color: #0A0F1D;
padding: calc(24rpx + env(safe-area-inset-top, 0px)) 32rpx calc(160rpx + env(safe-area-inset-bottom));
padding: var(--safe-header-gap, 36rpx) 32rpx calc(160rpx + env(safe-area-inset-bottom));
}
.profile-card {