.hc-tabbar-box { position: fixed; bottom: 0; right: 0; left: 0; background: white; z-index: 8090; padding: 28rpx 28rpx calc(var(--window-bottom) + 34rpx); box-shadow: 0 -12rpx 10rpx -12rpx rgba(215, 224, 253, 100); .hc-tabbar { position: relative; display: flex; justify-content: space-between; .item { position: relative; font-size: 26rpx; color: #8E8E93; height: 82rpx; width: 150rpx; .icon-box { position: relative; .icon { position: relative; display: flex; font-size: 42rpx; align-items: center; justify-content: center; text { transform-origin: 24rpx 24rpx; animation-duration: 1s; animation-iteration-count: 1; animation-fill-mode: backwards; } text[class^="i-ooui-"] { font-size: 36rpx; } } } .name { position: absolute; text-align: center; bottom: 0; width: 100%; z-index: 2; } &.cur { .icon-box { height: 150rpx; width: 150rpx; position: absolute; top: -86rpx; background: white; border-radius: 50%; display: flex; align-items: center; justify-content: center; box-shadow: 0 -12rpx 10rpx -12rpx rgba(165, 187, 255, 100); .icon { background: #554D84; width: 100rpx; height: 100rpx; border-radius: 50%; color: white; display: inline-flex; font-size: 48rpx; text { animation-name: tabbarIcon; } text[class^="i-ooui-"] { font-size: 40rpx; } } } .name { color: #554D84; } } } } } @keyframes tabbarIcon { 20% { transform: rotate3d(0, 0, 1, 15deg); } 40% { transform: rotate3d(0, 0, 1, -10deg); } 60% { transform: rotate3d(0, 0, 1, 5deg); } 80% { transform: rotate3d(0, 0, 1, -5deg); } 100% { transform: rotate3d(0, 0, 1, 0deg); } }