Files
zt-closet-wxmini-frontend/miniprogram/custom-tab-bar/index.wxss
T
2026-09-15 16:01:59 +08:00

88 lines
1.9 KiB
Plaintext

/** v2 悬浮玻璃胶囊标签栏:左右留边、距底 + 安全区,选中态实心黑 + 顶部短横线 **/
.tabbar {
position: fixed;
left: 32rpx;
right: 32rpx;
bottom: calc(24rpx + env(safe-area-inset-bottom));
height: 120rpx;
z-index: 50;
border-radius: 60rpx;
background: rgba(255, 255, 255, .72);
-webkit-backdrop-filter: saturate(180%) blur(22px);
backdrop-filter: saturate(180%) blur(22px);
border: 1rpx solid rgba(255, 255, 255, .7);
box-shadow: 0 0 0 1rpx rgba(0, 0, 0, .05), 0 20rpx 60rpx -20rpx rgba(0, 0, 0, .16);
display: flex;
align-items: center;
}
.tab-item {
position: relative;
flex: 1;
height: 100%;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 6rpx;
color: var(--ink-3, #AEAEB2);
transition: color .2s cubic-bezier(.32, .72, 0, 1);
}
.tab-ic {
width: 42rpx;
height: 42rpx;
}
.tab-tx {
font-size: 20rpx;
letter-spacing: .02em;
line-height: 1;
}
/* 选中态短横线 */
.tab-item::after {
content: '';
position: absolute;
bottom: 12rpx;
left: 50%;
width: 28rpx;
height: 4rpx;
border-radius: 4rpx;
background: var(--ink, #0A0A0A);
transform: translateX(-50%) scaleX(.3);
opacity: 0;
transition: opacity .24s cubic-bezier(.32, .72, 0, 1), transform .24s cubic-bezier(.32, .72, 0, 1);
}
.tab-item.is-on {
color: var(--ink, #0A0A0A);
}
.tab-item.is-on::after {
opacity: 1;
transform: translateX(-50%) scaleX(1);
}
.tab-ic-wrap {
position: relative;
}
/* 未读徽标:零彩色黑底白字数字胶囊 */
.tab-badge {
position: absolute;
top: -6rpx;
left: calc(50% + 6rpx);
min-width: 30rpx;
height: 30rpx;
padding: 0 8rpx;
border-radius: 16rpx;
background: var(--ink, #0A0A0A);
color: #fff;
font-size: 18rpx;
font-weight: 600;
line-height: 30rpx;
text-align: center;
font-variant-numeric: tabular-nums;
}