Advertisement
Guest User

Untitled

a guest
Aug 23rd, 2018
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SAS 10.05 KB | None | 0 0
  1. $columns: 12;
  2. $atom: (100% / $columns);
  3.  
  4. $break_lg: 1100px;
  5. $break_md: 960px;
  6. $break_sm: 780px;
  7. $break_xs: 560px;
  8.  
  9. $offset: 30px;
  10. $offset_lg: $offset;
  11. $offset_md: $offset;
  12. $offset_sm: $offset;
  13. $offset_xs: $offset;
  14.  
  15. $offset_one_side: ($offset / 2);
  16. $offset_lg_one_side: ($offset_lg / 2);
  17. $offset_md_one_side: ($offset_md / 2);
  18. $offset_sm_one_side: ($offset_sm / 2);
  19. $offset_xs_one_side: ($offset_xs / 2);
  20.  
  21. $fields: 30px;
  22. $fields_sm: 15px;
  23.  
  24. @mixin wrapper-full(){
  25.     padding-left: $fields;
  26.     padding-right: $fields;
  27.  
  28.     @include sm-block(){
  29.         padding-left: $fields_sm;
  30.         padding-right: $fields_sm;
  31.     }
  32. }
  33.  
  34. @mixin row-offsets(){
  35.     margin-left: ($offset_one_side * -1);
  36.     margin-right: ($offset_one_side * -1);
  37. }
  38.  
  39. @mixin col-offsets($type){
  40.     #{$type}-left: $offset_one_side;
  41.     #{$type}-right: $offset_one_side;
  42. }
  43.  
  44. @mixin wrapper(){
  45.     max-width: 1200px;
  46.     margin: 0 auto;
  47.     @include wrapper-full();
  48. }
  49.  
  50. @mixin row-flex(){
  51.     display: flex;
  52.     flex-wrap: wrap;
  53.     @include row-offsets();
  54. }
  55.  
  56. @mixin row-float(){
  57.     @include row-offsets();
  58.     @include clearfix();
  59. }
  60.  
  61. @mixin row-ib(){
  62.     @include row-offsets();
  63. }
  64.  
  65. @mixin col(){
  66.     box-sizing: border-box;
  67.     word-wrap: break-word;
  68.     @include col-offsets(margin);
  69. }
  70.  
  71. @mixin col-float(){
  72.     float: left;
  73. }
  74.  
  75. @mixin col-ib(){
  76.     display: inline-block;
  77.     vertical-align: top;
  78. }
  79.  
  80. @mixin col-padding(){
  81.     word-wrap: break-word;
  82.     @include col-offsets(padding);
  83. }
  84.  
  85. @mixin size($n){
  86.     $val: 100% / $columns * $n;
  87.     width: #{calc(#{$val} - #{$offset})};
  88. }
  89.  
  90. @mixin size-lg($n){
  91.     $val: 100% / $columns * $n;
  92.     @include lg(width, #{calc(#{$val} - #{$offset_lg})});
  93. }
  94.  
  95. @mixin size-md($n){
  96.     $val: 100% / $columns * $n;
  97.     @include md(width, #{calc(#{$val} - #{$offset_md})});
  98. }
  99.  
  100. @mixin size-sm($n){
  101.     $val: 100% / $columns * $n;
  102.     @include sm(width, #{calc(#{$val} - #{$offset_sm})});
  103. }
  104.  
  105. @mixin size-xs($n){
  106.     $val: 100% / $columns * $n;
  107.     @include xs(width, #{calc(#{$val} - #{$offset_xs})});
  108. }
  109.  
  110. @mixin shift($n){
  111.     $val: 100% / $columns * $n;
  112.     margin-left: #{calc(#{$val} + #{$offset_one_side})};
  113.     margin-right: #{calc(#{$val} + #{$offset_one_side})};
  114. }
  115.  
  116. @mixin shift-left($n){
  117.     $val: 100% / $columns * $n;
  118.     margin-left: #{calc(#{$val} + #{$offset_one_side})};
  119. }
  120.  
  121. @mixin shift-right($n){
  122.     $val: 100% / $columns * $n;
  123.     margin-right: #{calc(#{$val} + #{$offset_one_side})};
  124. }
  125.  
  126. @mixin shift-padding($n){
  127.     $val: 100% / $columns * $n;
  128.     padding-left: #{calc(#{$val} + #{$offset_one_side})};
  129.     padding-right: #{calc(#{$val} + #{$offset_one_side})};
  130. }
  131.  
  132. @mixin shift-padding-left($n){
  133.     $val: 100% / $columns * $n;
  134.     padding-left: #{calc(#{$val} + #{$offset_one_side})};
  135. }
  136.  
  137. @mixin shift-padding-right($n){
  138.     $val: 100% / $columns * $n;
  139.     padding-right: #{calc(#{$val} + #{$offset_one_side})};
  140. }
  141.  
  142. @mixin shift-lg($n){
  143.     $val: 100% / $columns * $n;
  144.     @include lg(margin-left, #{calc(#{$val} + #{$offset_lg_one_side})});
  145.     @include lg(margin-right, #{calc(#{$val} + #{$offset_lg_one_side})});
  146. }
  147.  
  148. @mixin shift-lg-left($n){
  149.     $val: 100% / $columns * $n;
  150.     @include lg(margin-left, #{calc(#{$val} + #{$offset_lg_one_side})});
  151. }
  152.  
  153. @mixin shift-lg-right($n){
  154.     $val: 100% / $columns * $n;
  155.     @include lg(margin-right, #{calc(#{$val} + #{$offset_lg_one_side})});
  156. }
  157.  
  158. @mixin shift-lg-padding($n){
  159.     $val: 100% / $columns * $n;
  160.     @include lg(padding-left, #{calc(#{$val} + #{$offset_lg_one_side})});
  161.     @include lg(padding-right, #{calc(#{$val} + #{$offset_lg_one_side})});
  162. }
  163.  
  164. @mixin shift-lg-padding-left($n){
  165.     $val: 100% / $columns * $n;
  166.     @include lg(padding-left, #{calc(#{$val} + #{$offset_lg_one_side})});
  167. }
  168.  
  169. @mixin shift-lg-padding-right($n){
  170.     $val: 100% / $columns * $n;
  171.     @include lg(padding-right, #{calc(#{$val} + #{$offset_lg_one_side})});
  172. }
  173.  
  174. @mixin shift-md($n){
  175.     $val: 100% / $columns * $n;
  176.     @include md(margin-left, #{calc(#{$val} + #{$offset_md_one_side})});
  177.     @include md(margin-right, #{calc(#{$val} + #{$offset_md_one_side})});
  178. }
  179.  
  180. @mixin shift-md-left($n){
  181.     $val: 100% / $columns * $n;
  182.     @include md(margin-left, #{calc(#{$val} + #{$offset_md_one_side})});
  183. }
  184.  
  185. @mixin shift-md-right($n){
  186.     $val: 100% / $columns * $n;
  187.     @include md(margin-right, #{calc(#{$val} + #{$offset_md_one_side})});
  188. }
  189.  
  190. @mixin shift-md-padding($n){
  191.     $val: 100% / $columns * $n;
  192.     @include md(padding-left, #{calc(#{$val} + #{$offset_md_one_side})});
  193.     @include md(padding-right, #{calc(#{$val} + #{$offset_md_one_side})});
  194. }
  195.  
  196. @mixin shift-md-padding-left($n){
  197.     $val: 100% / $columns * $n;
  198.     @include md(padding-left, #{calc(#{$val} + #{$offset_md_one_side})});
  199. }
  200.  
  201. @mixin shift-md-padding-right($n){
  202.     $val: 100% / $columns * $n;
  203.     @include md(padding-right, #{calc(#{$val} + #{$offset_md_one_side})});
  204. }
  205.  
  206. @mixin shift-sm($n){
  207.     $val: 100% / $columns * $n;
  208.     @include sm(margin-left, #{calc(#{$val} + #{$offset_sm_one_side})});
  209.     @include sm(margin-right, #{calc(#{$val} + #{$offset_sm_one_side})});
  210. }
  211.  
  212. @mixin shift-sm-left($n){
  213.     $val: 100% / $columns * $n;
  214.     @include sm(margin-left, #{calc(#{$val} + #{$offset_sm_one_side})});
  215. }
  216.  
  217. @mixin shift-sm-right($n){
  218.     $val: 100% / $columns * $n;
  219.     @include sm(margin-right, #{calc(#{$val} + #{$offset_sm_one_side})});
  220. }
  221.  
  222. @mixin shift-sm-padding($n){
  223.     $val: 100% / $columns * $n;
  224.     @include sm(padding-left, #{calc(#{$val} + #{$offset_sm_one_side})});
  225.     @include sm(padding-right, #{calc(#{$val} + #{$offset_sm_one_side})});
  226. }
  227.  
  228. @mixin shift-sm-padding-left($n){
  229.     $val: 100% / $columns * $n;
  230.     @include sm(padding-left, #{calc(#{$val} + #{$offset_sm_one_side})});
  231. }
  232.  
  233. @mixin shift-sm-padding-right($n){
  234.     $val: 100% / $columns * $n;
  235.     @include sm(padding-right, #{calc(#{$val} + #{$offset_sm_one_side})});
  236. }
  237.  
  238. @mixin shift-xs($n){
  239.     $val: 100% / $columns * $n;
  240.     @include xs(margin-left, #{calc(#{$val} + #{$offset_xs_one_side})});
  241.     @include xs(margin-right, #{calc(#{$val} + #{$offset_xs_one_side})});
  242. }
  243.  
  244. @mixin shift-xs-left($n){
  245.     $val: 100% / $columns * $n;
  246.     @include xs(margin-left, #{calc(#{$val} + #{$offset_xs_one_side})});
  247. }
  248.  
  249. @mixin shift-xs-right($n){
  250.     $val: 100% / $columns * $n;
  251.     @include xs(margin-right, #{calc(#{$val} + #{$offset_xs_one_side})});
  252. }
  253.  
  254. @mixin shift-xs-padding($n){
  255.     $val: 100% / $columns * $n;
  256.     @include xs(padding-left, #{calc(#{$val} + #{$offset_xs_one_side})});
  257.     @include xs(padding-right, #{calc(#{$val} + #{$offset_xs_one_side})});
  258. }
  259.  
  260. @mixin shift-xs-padding-left($n){
  261.     $val: 100% / $columns * $n;
  262.     @include xs(padding-left, #{calc(#{$val} + #{$offset_xs_one_side})});
  263. }
  264.  
  265. @mixin shift-xs-padding-right($n){
  266.     $val: 100% / $columns * $n;
  267.     @include xs(padding-right, #{calc(#{$val} + #{$offset_xs_one_side})});
  268. }
  269.  
  270. @mixin lg($name, $value){
  271.     @media screen and (max-width: $break_lg){
  272.         #{$name}: $value;
  273.     }
  274. }
  275.  
  276. @mixin lg-block(){
  277.     @media screen and (max-width: $break_lg){
  278.         @content;
  279.     }
  280. }
  281.  
  282. @mixin md($name, $value){
  283.     @media screen and (max-width: $break_md){
  284.         #{$name}: $value;
  285.     }
  286. }
  287.  
  288. @mixin md-block(){
  289.     @media screen and (max-width: $break_md){
  290.         @content;
  291.     }
  292. }
  293.  
  294. @mixin sm($name, $value){
  295.     @media screen and (max-width: $break_sm){
  296.         #{$name}: $value;
  297.     }
  298. }
  299.  
  300. @mixin sm-block(){
  301.     @media screen and (max-width: $break_sm){
  302.         @content;
  303.     }
  304. }
  305.  
  306. @mixin xs($name, $value){
  307.     @media screen and (max-width: $break_xs){
  308.         #{$name}: $value;
  309.     }
  310. }
  311.  
  312. @mixin xs-block(){
  313.     @media screen and (max-width: $break_xs){
  314.         @content;
  315.     }
  316. }
  317.  
  318. @mixin from($min_width){
  319.     @media screen and (min-width: $min_width){
  320.         @content;
  321.     }
  322. }
  323.  
  324. @mixin to($max_width){
  325.     @media screen and (max-width: $max_width){
  326.         @content;
  327.     }
  328. }
  329.  
  330. @mixin from-to($min_width, $max_width){
  331.     @media screen and (min-width: $min_width) and (max-width: $max_width){
  332.         @content;
  333.     }
  334. }
  335.  
  336. @mixin u-row-flex($offset){
  337.     display: flex;
  338.     flex-wrap: wrap;
  339.     margin-left: ($offset / -2);
  340.     margin-right: ($offset / -2);
  341. }
  342.  
  343. @mixin u-col($offset){
  344.     box-sizing: border-box;
  345.     word-wrap: break-word;
  346.     margin-left: ($offset / 2);
  347.     margin-right: ($offset / 2);
  348. }
  349.  
  350. @mixin u-size($n, $columns, $offset){
  351.     width: #{calc(100% / #{$columns} * #{$n} - #{$offset})};
  352. }
  353.  
  354. @mixin reset(){
  355.     body,div,dl,dt,dd,ul,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,input,textarea,p,blockquote,th,td{
  356.         margin: 0;
  357.         padding: 0;
  358.     }
  359.     table{
  360.         border-collapse: collapse;
  361.         border-spacing: 0;
  362.     }
  363.     fieldset,img,abbr{
  364.         border: 0;
  365.     }
  366.     address,caption,cite,code,dfn,em,strong,th,var{
  367.         font-style: normal;
  368.         font-weight: normal;
  369.     }
  370.     ul li{
  371.         list-style: none;
  372.     }
  373.     caption,th{
  374.         text-align: left;
  375.     }
  376.     h1,h2,h3,h4,h5,h6{
  377.         font-size: 100%;
  378.         font-weight: normal;
  379.     }
  380.     sup{
  381.         vertical-align: text-top;
  382.     }
  383.     sub{
  384.         vertical-align: text-bottom;
  385.     }
  386.     input,textarea,select{
  387.         font-family: inherit;
  388.         font-size: inherit;
  389.         font-weight: inherit;
  390.     }
  391.     legend{
  392.         color: #000;
  393.     }
  394.     article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section,main{
  395.         display: block;
  396.     }
  397.     img{
  398.         max-width: 100%;
  399.         height: auto;
  400.     }
  401. }
  402.  
  403. @mixin debug($background, $outline){
  404.     height: 100vh;
  405.     position: fixed;
  406.     width: 100%;
  407.    
  408.     > div{
  409.         height: inherit;
  410.         @include wrapper();
  411.        
  412.         > div{
  413.             height: inherit;
  414.             @include row-flex();
  415.            
  416.             > div{
  417.                 @include col();
  418.                 @include size(1);
  419.                 height: inherit;
  420.                 outline: $outline;
  421.                 background: $background;
  422.             }
  423.         }
  424.     }
  425. }
  426.  
  427. @mixin clearfix(){
  428.     &::after{
  429.         display: block;
  430.         content: "";
  431.         clear: both;
  432.     }
  433. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement