123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- @function _radial-arg-parser($G1, $G2, $pos, $shape-size) {
- @each $value in $G1, $G2 {
- $first-val: nth($value, 1);
- $pos-type: type-of($first-val);
- $spec-at-index: null;
- // Determine if spec was passed to mixin
- @if type-of($value) == list {
- $spec-at-index: if(index($value, at), index($value, at), false);
- }
- @if $spec-at-index {
- @if $spec-at-index > 1 {
- @for $i from 1 through ($spec-at-index - 1) {
- $shape-size: $shape-size nth($value, $i);
- }
- @for $i from ($spec-at-index + 1) through length($value) {
- $pos: $pos nth($value, $i);
- }
- }
- @else if $spec-at-index == 1 {
- @for $i from ($spec-at-index + 1) through length($value) {
- $pos: $pos nth($value, $i);
- }
- }
- $G1: null;
- }
- // If not spec calculate correct values
- @else {
- @if ($pos-type != color) or ($first-val != "transparent") {
- @if ($pos-type == number)
- or ($first-val == "center")
- or ($first-val == "top")
- or ($first-val == "right")
- or ($first-val == "bottom")
- or ($first-val == "left") {
- $pos: $value;
- @if $pos == $G1 {
- $G1: null;
- }
- }
- @else if
- ($first-val == "ellipse")
- or ($first-val == "circle")
- or ($first-val == "closest-side")
- or ($first-val == "closest-corner")
- or ($first-val == "farthest-side")
- or ($first-val == "farthest-corner")
- or ($first-val == "contain")
- or ($first-val == "cover") {
- $shape-size: $value;
- @if $value == $G1 {
- $G1: null;
- }
- @else if $value == $G2 {
- $G2: null;
- }
- }
- }
- }
- }
- @return $G1, $G2, $pos, $shape-size;
- }
|