//
// Generate balloon triangle
//
// @param  string  position
// @param  length  size              triangle size
// @param  hex     background-color
// @param  length  border-size
// @param  hex     border-color
//
_balloon-triangle(position, size, background-color, border-size = 0, border-color = transparent) {
  before = size * -1;
  after  = before;
  if (0 < border-size) {
    after = after + border-size + 1;
  }

  &::before, &::after {
    content: '';
    display: block;

    if ('top' == position || 'bottom' == position) {
      margin-left: ((size / 2) * -1);
    } else if ('right' == position || 'left' == position) {
      margin-top: ((size / 2) * -1);
    }
  }

  &::before {
    if ('top' == position) {
      _position(absolute, before, null, null, 50%);
      _triangle-top(size, size, border-color);
    } else if ('right' == position) {
      _position(absolute, 50%, before, null, null);
      _triangle-right(size, size, border-color);
    } else if ('bottom' == position) {
      _position(absolute, null, null, before, 50%);
      _triangle-bottom(size, size, border-color);
    } else if ('left' == position) {
      _position(absolute, 50%, null, null, before);
      _triangle-left(size, size, border-color);
    }
  }

  &::after {
    if ('top' == position) {
      _position(absolute, after, null, null, 50%);
      _triangle-top(size, size, background-color);
    } else if ('right' == position) {
      _position(absolute, 50%, after, null, null);
      _triangle-right(size, size, background-color);
    } else if ('bottom' == position) {
      _position(absolute, null, null, after, 50%);
      _triangle-bottom(size, size, background-color);
    } else if ('left' == position) {
      _position(absolute, 50%, null, null, after);
      _triangle-left(size, size, background-color);
    }
  }
}
