@mixin size($width, $height: $width) {
      width: $width;
      height: $height;
}

/* Positioning Mixin */
@mixin position($position, $args) {
  @each $o in top right bottom left {
    $i: index($args, $o);
    @if $i and $i + 1 <= length($args) and type-of(nth($args, $i + 1)) == number  {
      #{$o}: nth($args, $i + 1);
    }
  }
  position: $position;
}

@mixin absolute($args) {
  @include position("absolute", $args);
}

@mixin fixed($args) {
  @include position("fixed", $args);
}

@mixin relative($args) {
  @include position("relative", $args);
}

/* Pseudo Mixin */
@mixin pseudo($display: block, $pos: absolute, $content: ''){
    content: $content;
    display: $display;
    position: $pos;
}

/* Vendor Prefix Mixin */
@mixin prefix($map, $vendors: webkit moz ms o) {
  @each $prop, $value in $map {
    @if $vendors {
      @each $vendor in $vendors {
        #{"-" + $vendor + "-" + $prop}: #{$value};
      }
    }
    #{$prop}: #{$value}; // Dump regular property anyway
  }
}

/* Breakpoint Handler Mixin */
@mixin breakpoint($name) {
      @if map-has-key($breakpoints, $name) {
        @media #{inspect(map-get($breakpoints, $name))} {
      @content;
    }
  }
  @else {
    @warn "Couldn't find a breakpoint named `#{$name}`.";
  }
}
