p0c-website

Proof of concepts for fun and profit
git clone https://git.in0rdr.ch/p0c-website.git
Log | Files | Refs | Pull requests |Archive | README | LICENSE

_radial-arg-parser.scss (1828B)


      1 @function _radial-arg-parser($g1, $g2, $pos, $shape-size) {
      2   @each $value in $g1, $g2 {
      3     $first-val: nth($value, 1);
      4     $pos-type:  type-of($first-val);
      5     $spec-at-index: null;
      6 
      7     // Determine if spec was passed to mixin
      8     @if type-of($value) == list {
      9       $spec-at-index: if(index($value, at), index($value, at), false);
     10     }
     11     @if $spec-at-index {
     12       @if $spec-at-index > 1 {
     13         @for $i from 1 through ($spec-at-index - 1) {
     14           $shape-size: $shape-size nth($value, $i);
     15         }
     16         @for $i from ($spec-at-index + 1) through length($value) {
     17           $pos: $pos nth($value, $i);
     18         }
     19       }
     20       @else if $spec-at-index == 1 {
     21         @for $i from ($spec-at-index + 1) through length($value) {
     22           $pos: $pos nth($value, $i);
     23         }
     24       }
     25       $g1: null;
     26     }
     27 
     28     // If not spec calculate correct values
     29     @else {
     30       @if ($pos-type != color) or ($first-val != "transparent") {
     31         @if ($pos-type == number)
     32         or ($first-val == "center")
     33         or ($first-val == "top")
     34         or ($first-val == "right")
     35         or ($first-val == "bottom")
     36         or ($first-val == "left") {
     37 
     38           $pos: $value;
     39 
     40           @if $pos == $g1 {
     41             $g1: null;
     42           }
     43         }
     44 
     45         @else if
     46            ($first-val == "ellipse")
     47         or ($first-val == "circle")
     48         or ($first-val == "closest-side")
     49         or ($first-val == "closest-corner")
     50         or ($first-val == "farthest-side")
     51         or ($first-val == "farthest-corner")
     52         or ($first-val == "contain")
     53         or ($first-val == "cover") {
     54 
     55           $shape-size: $value;
     56 
     57           @if $value == $g1 {
     58             $g1: null;
     59           }
     60 
     61           @else if $value == $g2 {
     62             $g2: null;
     63           }
     64         }
     65       }
     66     }
     67   }
     68   @return $g1, $g2, $pos, $shape-size;
     69 }