Files
lilishop-uniapp/pages/product/product/style.scss
pikachu1995@126.com a32f6d2313 style(theme): 统一应用主题样式并更新组件样式变量
- 在多个页面组件中添加动态主题样式绑定
- 将硬编码的颜色值替换为CSS变量和主题配置
- 引入主题样式计算逻辑到各个页面
- 更新优惠券、地址、订单等页面的主题适配
- 替换线性渐变背景为动态主题颜色
- 移除uni_modules组件中的$set方法调用以优化性能
- 更新README中主题色管理状态为已完成
2026-10-09 16:02:11 +08:00

450 lines
7.7 KiB
SCSS

.red {
color: $price-color;
}
page {
background: #fff;
}
.num-icon {
position: absolute;
right: 5rpx;
top: 5rpx;
padding: 2rpx 6rpx;
border-top: 4rpx;
border: 2rpx solid $price-color;
color: $price-color;
font-size: 22rpx;
border-radius: 200px;
line-height: 18rpx;
}
.header-title{
font-weight: bold;
color: #333;
text-align: center;
height: 90rpx;
line-height: 90rpx;
font-size: 34rpx;
}
.cuxiao-title{
color: #999;
font-size: 24rpx;
}
.cuxiao{
padding:16rpx 32rpx 32rpx;
}
.con-cuxiao {
margin-bottom: 24rpx;
&.coupons {
padding-top: 8rpx;
}
}
.detail-btn {
display: flex;
align-items: center;
> .to-buy {
background-image: linear-gradient(135deg, $main-color, $light-color);
}
> .to-buy-theme {
background-image: none;
background: var(--theme-primary, #ff3c2a);
}
> .to-store-car {
background-image: linear-gradient(91deg, $light-color 1%, $aider-light-color 99%);
}
> .to-store-btn {
flex: 1;
width: 100%;
margin: 0 5rpx;
height: 80rpx;
text-align: center;
line-height: 80rpx;
color: #fff;
font-size: 26rpx;
border-radius: 214px;
padding: 0;
}
> .to-buy--full {
flex: 1;
margin: 0;
}
> .pt-buy {
line-height: 1.2;
display: flex;
align-items: center;
flex-direction: column;
justify-content: center;
font-size: 22rpx;
}
}
.desc-bold {
flex: 8;
font-weight: 700;
color: #262626;
line-height: 42rpx;
font-size: 32rpx;
}
.-goods-desc {
padding: 36rpx 0 0 0;
margin-bottom: 24rpx;
font-size: 24rpx;
color: #666;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden;
}
.-goods-flex {
display: flex;
justify-content: space-between;
align-items: center;
}
.icons,.favorite {
flex: 1;
font-size: 22rpx;
color: #262626;
display: flex;
flex-direction: column;
align-items: center;
}
.-goods-price {
flex: 7;
color: $price-color;
font-size: 32rpx;
line-height: 1;
::v-deep .price {
font-size: 60rpx;
}
}
.-goods-name {
margin-top: 24rpx;
}
.top-radius-0 {
margin-top: 0 !important;
border-top-left-radius: 0 !important;
border-top-right-radius: 0 !important;
}
.-goods-msg {
min-height: 120rpx;
margin-top: 24rpx;
}
.recommend-item {
// padding: 0 !important;
margin: 20rpx 0rpx;
overflow: hidden;
border-radius: 12rpx;
::v-deep .u-image__image {
// width: 228rpx;
height: 228rpx;
border-radius: 12rpx !important;
}
}
.detail_padding {
padding: 12px 20rpx 0 20rpx;
> .tips {
color: #000;
font-size: 30rpx;
font-weight: 400;
margin-bottom: 28rpx;
}
}
.headerRow {
height: 44px; //默认uni navbar就是44px
display: flex;
align-items: center;
width: 100%;
// background: #fff !important;
> .headerList {
flex: 8;
}
// > div:nth-child(2) {
// flex: 1;
// .headerList{
// display: flex;
// div{
// flex: 1;
// }
// }
// }
// > div:nth-child(3) {
// width: 100rpx;
// }
justify-content: space-between;
}
.scroll-hide {
opacity: 0;
transition: all 0.5s;
pointer-events: none;
}
.cur {
color: $main-color;
}
.cur::after {
content: "";
height: 6rpx;
background: $main-color;
width: 100%;
position: absolute;
bottom: 0;
left: 0;
}
.header-only-back {
background: transparent;
z-index: 12 !important;
}
.header,
.header-only-back {
padding-left: 10rpx;
z-index: 8;
font-size: 30rpx;
transition: all 0.5s;
:deep(.u-navbar__content__left) {
width: auto !important;
min-width: 150rpx;
padding: 0 8rpx 0 0 !important;
z-index: 2;
}
:deep(.u-navbar__content) {
padding: 0 150rpx;
box-sizing: border-box;
}
}
::v-deep .u-navbar {
padding-left: 10rpx;
}
.nav-item {
flex: 0 0 auto;
position: relative;
justify-content: center;
height: 100%;
display: flex;
align-items: center;
padding: 0 20rpx;
font-size: 28rpx;
white-space: nowrap;
}
.header {
color: #666666;
background-color: #fff;
:deep(.u-navbar__content) {
background-color: #fff !important;
}
.tab-bar {
width: 100%;
color: #666;
font-weight: 400;
}
&.bg-none {
background: transparent;
:deep(.u-navbar__content) {
background-color: transparent !important;
}
}
}
.headerRow--tabs {
justify-content: center;
gap: 8rpx;
width: 100%;
}
.headerList {
width: 100%;
}
.nav-action {
display: flex;
align-items: center;
justify-content: center;
min-width: 56rpx;
min-height: 56rpx;
padding: 0 6rpx;
}
.page-bottom {
position: relative;
flex-shrink: 0;
z-index: 9;
background: #fff;
min-height: 100rpx;
width: 100%;
display: flex;
border-top: 2rpx solid #f2f2f2;
box-sizing: border-box;
> .icon-btn {
display: flex;
align-items: center;
flex: 1;
> .icon-btn-item {
flex: 1;
position: relative;
text-align: center;
font-size: 20rpx;
color: #262626;
display: flex;
flex-direction: column;
width: 100%;
height: 100%;
align-items: center;
justify-content: center;
> .icon-btn-name {
margin-top: 2rpx;
line-height: 1;
}
}
}
> .detail-btn {
flex: 1.5;
}
}
.main-page {
height: 100vh;
display: flex;
flex-direction: column;
overflow: hidden;
}
.index {
position: relative;
z-index: 10;
flex-shrink: 0;
}
.icon-back,
.icon-list {
padding: 0;
}
.backs,
.bg-back {
display: flex;
align-items: center;
}
.headerImg {
width: 50rpx;
height: 50rpx;
vertical-align: middle;
}
.shareImg {
width: 36rpx;
height: 36rpx;
vertical-align: middle;
}
.item-spec-value {
box-sizing: border-box;
margin: 10rpx;
padding: 10rpx 20rpx;
float: left;
}
.item-spec-value {
background: #ededed;
}
page {
background: #f0f0f0;
height: 100%;
}
.product-container {
flex: 1;
min-height: 0;
display: flex;
flex-direction: column;
position: relative;
.header-line {
height: 1px;
background: #f2f2f2;
position: fixed;
top: 90rpx;
left: 0;
right: 0;
z-index: 999;
transition: all 0.5s;
&.scroll-hide {
background: none;
}
}
.scroll-page {
flex: 1;
height: 0;
width: 100%;
background: #f0f0f0;
}
.scroll-inner {
box-sizing: border-box;
background: #f0f0f0;
padding-bottom: 24rpx;
}
}
.u-mode-light-error {
border: none;
}
.showBack {
height: 60rpx;
line-height: 60rpx;
position: fixed;
margin-top: calc(10px);
z-index: 8;
width: 100%;
::v-deep .u-row {
width: 100%;
}
}
.showBox {
width: 100%;
height: 90rpx;
background: $main-color;
color: #fff;
padding: 0 20rpx;
::v-deep .price {
font-size: 36rpx;
font-weight: 400;
text-align: left;
letter-spacing: 1px;
color: #ffffff;
line-height: 90rpx;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
.status_bar {
background: #fff;
height: var(--status-bar-height);
}