| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209 |
- // 公共SCSS变量定义
- $colors: (
- primary: #108cff,
- primary-light: rgba(16, 140, 255, 0.08),
- bg: #f9fafb,
- card: #ffffff,
- border: #f5f5f5,
- text-primary: #1f2937,
- text-secondary: #374151,
- shadow: rgba(0, 0, 0, 0.05)
- );
- $sizes: (
- radius: 16rpx,
- padding: 32rpx,
- padding-sm: 28rpx,
- margin-sm: 18rpx,
- margin-xs: 16rpx,
- icon-padding: 14rpx,
- font-title: 34rpx,
- font-content: 32rpx,
- line-height: 56rpx,
- checkbox-size: 32rpx
- );
- // 字体优化
- $font: (
- family: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif',
- smoothing: antialiased
- );
- // 字体大小变量
- $font-sizes: (
- title: 38rpx,
- content: 34rpx,
- sub-content: 30rpx,
- small: 26rpx,
- tiny: 24rpx
- );
- // 字体权重变量
- $font-weights: (
- bold: 700,
- semi-bold: 600,
- medium: 500,
- regular: 450,
- light: 400
- );
- // 行高变量
- $line-heights: (
- large: 56rpx,
- medium: 48rpx,
- small: 40rpx
- );
- // 字间距变量
- $letter-spacings: (
- large: 1rpx,
- medium: 0.8rpx,
- small: 0.5rpx
- );
- // 文本颜色变量
- $text-colors: (
- primary: map-get($colors, text-primary),
- secondary: map-get($colors, text-secondary),
- tertiary: #666666,
- placeholder: #999999
- );
- // 公共混合宏
- @mixin flex-center {
- display: flex;
- align-items: center;
- }
- @mixin shadow($level: 1) {
- $shadow-levels: (
- 1: 0 2rpx 12rpx map-get($colors, shadow),
- 2: 0 4rpx 20rpx map-get($colors, shadow),
- 3: 0 8rpx 30rpx map-get($colors, shadow)
- );
- box-shadow: map-get($shadow-levels, $level);
- transition: box-shadow 0.3s ease;
- }
- @mixin card {
- width: 100%;
- margin: 0;
- background-color: map-get($colors, card);
- border-radius: map-get($sizes, radius);
- @include shadow;
- }
- // 字体样式混合宏
- @mixin font-styles(
- $size: content,
- $weight: regular,
- $color: primary,
- $line-height: medium,
- $letter-spacing: medium
- ) {
- font-size: map-get($font-sizes, $size);
- font-weight: map-get($font-weights, $weight);
- color: map-get($text-colors, $color);
- line-height: map-get($line-heights, $line-height);
- letter-spacing: map-get($letter-spacings, $letter-spacing);
- font-family: map-get($font, family);
- }
- // 公共页面容器样式
- .page-container {
- box-sizing: border-box;
- padding: 0;
- background-color: map-get($colors, bg);
- font-family: map-get($font, family);
- -webkit-font-smoothing: map-get($font, smoothing);
- font-smoothing: map-get($font, smoothing);
- }
- // 公共字体样式
- // 页面主标题
- .page-title {
- @include font-styles($size: title, $weight: bold, $color: primary);
- }
- // 卡片标题
- .card-title {
- @include font-styles($size: title, $weight: bold, $color: primary);
- border-bottom: 1rpx solid map-get($colors, border);
- padding: map-get($sizes, padding-sm) map-get($sizes, padding);
- margin: 0;
- }
- // 地址标题
- .address-title {
- @include font-styles($size: title, $weight: bold, $color: primary);
- flex: 1;
- }
- // 主要内容文字
- .content-text {
- @include font-styles;
- }
- // 辅助文字
- .auxiliary-text {
- @include font-styles($size: small, $weight: regular, $color: tertiary, $line-height: small, $letter-spacing: small);
- }
- // 复选框/单选框文字
- .form-item-text {
- @include font-styles;
- vertical-align: middle;
- }
- // 空状态文字
- .empty-text {
- @include font-styles;
- text-align: center;
- }
- // 标签文字
- .label-text {
- @include font-styles($size: tiny, $weight: regular, $color: tertiary);
- }
- // 值文字
- .value-text {
- @include font-styles($size: small, $weight: regular, $color: secondary);
- }
- // 公共卡片样式
- .card_wrap {
- @include card;
- margin-bottom: 20rpx;
- &:hover {
- @include shadow(2);
- }
- }
- // 公共地址标题样式
- .address-header {
- display: flex;
- justify-content: space-between;
- align-items: center;
- margin-bottom: map-get($sizes, margin-sm);
- padding-bottom: map-get($sizes, margin-sm);
- border-bottom: 1rpx solid map-get($colors, border);
- .location-icon {
- margin-right: map-get($sizes, margin-xs);
- background-color: map-get($colors, primary-light);
- padding: map-get($sizes, icon-padding);
- border-radius: 50%;
- flex-shrink: 0;
- }
- .address-title {
- margin-left: 16rpx;
- }
- .add-image-btn {
- margin-top: -10rpx;
- }
- }
|