_triangle.scss 2.5 KB
Newer Older
1 2 3 4
@mixin triangle ($size, $color, $direction) {
  height: 0;
  width: 0;

5 6 7 8 9 10
  $width: nth($size, 1);
  $height: nth($size, length($size));

  $foreground-color: nth($color, 1);
  $background-color: if(length($color) == 2, nth($color, 2), transparent);

11
  @if ($direction == up) or ($direction == down) or ($direction == right) or ($direction == left) {
12 13 14

    $width: $width / 2;
    $height: if(length($size) > 1, $height, $height/2);
15 16

    @if $direction == up {
17 18 19
      border-left: $width solid $background-color;
      border-right: $width solid $background-color;
      border-bottom: $height solid $foreground-color;
20 21

    } @else if $direction == right {
22 23 24
      border-top: $width solid $background-color;
      border-bottom: $width solid $background-color;
      border-left: $height solid $foreground-color;
25 26

    } @else if $direction == down {
27 28 29
      border-left: $width solid $background-color;
      border-right: $width solid $background-color;
      border-top: $height solid $foreground-color;
30 31

    } @else if $direction == left {
32 33 34
      border-top: $width solid $background-color;
      border-bottom: $width solid $background-color;
      border-right: $height solid $foreground-color;
35 36 37 38
    }
  }

  @else if ($direction == up-right) or ($direction == up-left) {
39
    border-top: $height solid $foreground-color;
40 41

    @if $direction == up-right {
42
      border-left:  $width solid $background-color;
43 44

    } @else if $direction == up-left {
45
      border-right: $width solid $background-color;
46 47 48 49
    }
  }

  @else if ($direction == down-right) or ($direction == down-left) {
50
    border-bottom: $height solid $foreground-color;
51 52

    @if $direction == down-right {
53
      border-left:  $width solid $background-color;
54 55

    } @else if $direction == down-left {
56
      border-right: $width solid $background-color;
57 58
    }
  }
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82

  @else if ($direction == inset-up) {
    border-width: $height $width;
    border-style: solid;
    border-color: $background-color $background-color $foreground-color;
  }

  @else if ($direction == inset-down) {
    border-width: $height $width;
    border-style: solid;
    border-color: $foreground-color $background-color $background-color;
  }

  @else if ($direction == inset-right) {
    border-width: $width $height;
    border-style: solid;
    border-color: $background-color $background-color $background-color $foreground-color;
  }

  @else if ($direction == inset-left) {
    border-width: $width $height;
    border-style: solid;
    border-color: $background-color $foreground-color $background-color $background-color;
  }
83
}