123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- // $sizes: 0,1,2,3,4,5,6,7,8,9,10,11,12,14,16,20,24,28,32,36,40,44,48,52,56,60,64,72,80,96;
- $varPre: '';
- // 尺寸相关
- $percents: 2,3,4,5,6,12;
- $pxs: '0' 0 ,'px' 1 ,'0-5' 2 ,'1' 4 ,'1-5' 6 ,'2' 8 ,'2-5' 10 ,'3' 12 ,'3-5' 14 ,'4' 16 ,'5' 20 ,'6' 24 ,'7' 28 ,'8' 32 ,'9' 36 ,'10' 40 ,'11' 44 ,'12' 48 ,'14' 56 ,'16' 64 ,'20' 80 ,'24' 96 ,'28' 112 ,'32' 128 ,'36' 144 ,'40' 160 ,'44' 176 ,'48' 192 ,'52' 208 ,'56' 224 ,'60' 240 ,'64' 256 ,'72' 288 ,'80' 320 ,'96' 384;
- $pxNames: '0' ,'px' ,'0-5' ,'1' ,'1-5' ,'2' ,'2-5' ,'3' ,'3-5' ,'4' ,'5' ,'6' ,'7' ,'8' ,'9' ,'10' ,'11' ,'12' ,'14' ,'16' ,'20' ,'24' ,'28' ,'32' ,'36' ,'40' ,'44' ,'48' ,'52' ,'56' ,'60' ,'64' ,'72' ,'80' ,'96';
- $pctNames: '1_2' ,'1_3' ,'2_3' ,'1_4' ,'2_4' ,'3_4' ,'1_5' ,'2_5' ,'3_5' ,'4_5' ,'1_6' ,'2_6' ,'3_6' ,'4_6' ,'5_6' ,'1_12' ,'2_12' ,'3_12' ,'4_12' ,'5_12' ,'6_12' ,'7_12' ,'8_12' ,'9_12' ,'10_12' ,'11_12';
- @mixin setVar($varName, $val) {
- #{$varName}: #{$val};
- }
- @mixin setPageRpxVar {
- @each $name, $v in $pxs {
- $varName: --#{$varPre}rpx-#{$name};
- @if($name == 'px') {
- @include setVar($varName, #{$v}rpx);
- } @else {
- @include setVar($varName, #{$v * 2}rpx);
- }
- }
- }
- @mixin setPagePercentVar {
- // 百分比
- @each $s in $percents { // ($i / $s) 待编辑器内sass版本升级 变为 math.div(a, b) 方式不报错
- @for $i from 1 through $s {
- @if $i < $s {
- $varName: --#{$varPre}percent-#{$i}_#{$s};
- $val: calc(#{$i} / #{$s} * 100%);
- @include setVar($varName, $val);
- }
- }
- }
-
- @include setVar(--#{$varPre}percent-full, 100%);
- @include setVar(--#{$varPre}percent-auto, auto);
- @include setVar(--#{$varPre}w-screen, 100vw);
- @include setVar(--#{$varPre}h-screen, 100vh);
- }
- // px & percent 公用函数 调用页面实现render函数即可
- @mixin setPxs($pxs) {
- @each $name in $pxs{
- $varName: --#{$varPre}rpx-#{$name};
- @include render($name, $varName);
- }
- }
- @mixin setPcts($pxs) {
- @each $name in $pxs{
- $varName: --#{$varPre}percent-#{$name};
- @include render($name, $varName);
- }
- }
- // 文字相关设置
- $fontSizes: '3xs' 10, '2xs' 11, 'xs' 12, 'mini' 13, 'sm' 14, 'md' 15, 'base' 16, 'lg' 18, 'xl' 20, '2xl' 24, '3xl' 30, '4xl' 36, '5xl' 48, '6xl' 60, '7xl' 72, '8xl' 96, '9xl' 128;
- $fontSizeLineHeights: 12, 14, 16, 18, 20, 22, 24, 28, 28, 32, 36, 40, -1, -2, -3, -4, -5;
- $fontSizeVars: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15;
- @mixin getFontSizeAndLineHeight($lineHeight, $fname, $fval) {
- $varFontSizeName: --#{$varPre}text-#{$fname};
- $varFontLineHeightName: --#{$varPre}text-#{$fname}-line-height;
- #{$varFontSizeName}: #{$fval * 2}rpx;
- @if($lineHeight > 10) {
- #{$varFontLineHeightName}: #{$lineHeight * 2}rpx;
- } @else {
- #{$varFontLineHeightName}: 1;
- }
- }
- @mixin setPageFontSizeAndLineHeightVar {
- @each $i in $fontSizeVars {
- $n: index($fontSizeVars, $i);
- $fsize: nth($fontSizes, $n);
- $fname: nth($fsize, 1);
- $fval: nth($fsize, 2);
- $lineHeight: nth($fontSizeLineHeights, $n);
- @include getFontSizeAndLineHeight($lineHeight, $fname, $fval);
- }
- }
- // Font.scss 用
- @mixin setFontSizes($fontSizes) {
- @each $name, $val in $fontSizes{
- $varName: --#{$varPre}text-#{$name};
- $varLhName: --#{$varPre}text-#{$name}-lineHeight;
- @include render($name, $varName, $varLhName);
- }
- }
- // border Radius
- $borderRadius: 'none' 0, 'sm' 2, '' 4, 'md' 6, 'lg' 8, 'xl' 12, '2xl' 16, '3xl' 24, 'full' 9999;
- @mixin setBorderRadiusVar {
- @each $name, $val in $borderRadius {
- $varName: '';
- @if($name != '') {
- $varName: --#{$varPre}rounded-#{$name};
- } @else {
- $varName: --#{$varPre}rounded;
- }
- @include setVar($varName, #{$val * 2}rpx);
- }
- }
- // BorderRadius.scss 用
- @mixin setBorderRadius($arr) {
- @each $name, $val in $arr{
- $varName: '';
- @if($name != '') {
- $varName: --#{$varPre}rounded-#{$name};
- } @else {
- $varName: --#{$varPre}rounded;
- }
- @include render($name, $varName);
- }
- }
- page {
- @include setPageRpxVar;
- @include setPagePercentVar;
- @include setPageFontSizeAndLineHeightVar;
- @include setBorderRadiusVar;
- }
|