12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- @function _linear-positions-parser($pos) {
- $type: type-of(nth($pos, 1));
- $spec: null;
- $degree: null;
- $side: null;
- $corner: null;
- $length: length($pos);
- // Parse Side and corner positions
- @if ($length > 1) {
- @if nth($pos, 1) == "to" { // Newer syntax
- $side: nth($pos, 2);
- @if $length == 2 { // eg. to top
- // Swap for backwards compatability
- $degree: _position-flipper(nth($pos, 2));
- }
- @else if $length == 3 { // eg. to top left
- $corner: nth($pos, 3);
- }
- }
- @else if $length == 2 { // Older syntax ("top left")
- $side: _position-flipper(nth($pos, 1));
- $corner: _position-flipper(nth($pos, 2));
- }
- @if ("#{$side} #{$corner}" == "left top") or ("#{$side} #{$corner}" == "top left") {
- $degree: _position-flipper(#{$side}) _position-flipper(#{$corner});
- }
- @else if ("#{$side} #{$corner}" == "right top") or ("#{$side} #{$corner}" == "top right") {
- $degree: _position-flipper(#{$side}) _position-flipper(#{$corner});
- }
- @else if ("#{$side} #{$corner}" == "right bottom") or ("#{$side} #{$corner}" == "bottom right") {
- $degree: _position-flipper(#{$side}) _position-flipper(#{$corner});
- }
- @else if ("#{$side} #{$corner}" == "left bottom") or ("#{$side} #{$corner}" == "bottom left") {
- $degree: _position-flipper(#{$side}) _position-flipper(#{$corner});
- }
- $spec: to $side $corner;
- }
- @else if $length == 1 {
- // Swap for backwards compatability
- @if $type == string {
- $degree: $pos;
- $spec: to _position-flipper($pos);
- }
- @else {
- $degree: -270 - $pos; //rotate the gradient opposite from spec
- $spec: $pos;
- }
- }
- $degree: unquote($degree + ",");
- $spec: unquote($spec + ",");
- @return $degree $spec;
- }
- @function _position-flipper($pos) {
- @return if($pos == left, right, null)
- if($pos == right, left, null)
- if($pos == top, bottom, null)
- if($pos == bottom, top, null);
- }
|