SpaceBetween.scss 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. // Space Between
  2. $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';
  3. $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';
  4. @mixin setPxs($pxs) {
  5. @each $name in $pxs{
  6. $varName: --rpx-#{$name};
  7. @include render($name, $varName);
  8. }
  9. }
  10. @mixin setPcts($pxs) {
  11. @each $name in $pxs{
  12. $varName: --percent-#{$name};
  13. @include render($name, $varName);
  14. }
  15. }
  16. @mixin render($name, $varName) {
  17. // H5 支持 ~ :not
  18. // .space-x-#{$name} {
  19. // --space-x-reverse: 0;
  20. // & > :not([hidden])~:not([hidden]) {
  21. // margin-right: calc(var($varName) * var(--space-x-reverse));
  22. // margin-left: calc(var($varName) * calc(1 - var(--space-x-reverse)));
  23. // }
  24. // }
  25. // .space-y-#{$name} {
  26. // --space-y-reverse: 0;
  27. // & > :not([hidden])~:not([hidden]) {
  28. // margin-bottom: calc(var($varName) * var(--space-y-reverse));
  29. // margin-top: calc(var($varName) * calc(1 - var(--space-y-reverse)));
  30. // }
  31. // }
  32. .space-x-#{$name} {
  33. & > view + view, & > text + text, & > navigator + navigator {
  34. margin-left: calc(var($varName) * calc(1 - var(--space-x-reverse)));
  35. margin-right: calc(var($varName) * var(--space-x-reverse));
  36. }
  37. }
  38. .space-y-#{$name} {
  39. & > view + view, & > text + text, & > navigator + navigator {
  40. margin-top: calc(var($varName) * calc(1 - var(--space-y-reverse)));
  41. margin-bottom: calc(var($varName) * var(--space-y-reverse));
  42. }
  43. }
  44. }
  45. [class*='space-'] {
  46. --space-x-reverse: 0;
  47. --space-y-reverse: 0;
  48. }
  49. @include setPxs($pxNames);
  50. .space-x-reverse {
  51. --space-x-reverse: 1;
  52. }
  53. .space-y-reverse {
  54. --space-y-reverse: 1;
  55. }