@use 'sass:math';

$gutter: 30px !default;
$max-width: 1000px !default;

@mixin container($max-width: $max-width, $gutter: $gutter) {
  width: calc(100% - #{$gutter});
  max-width: $max-width;
  margin: 0 auto;
}

@mixin grid($gutter: $gutter, $direction: row, $justify: flex-start) {
  display: flex;
  flex-flow: $direction wrap;
  justify-content: $justify;

  @if $direction != column {
    margin-left: math.div(-$gutter, 2);
    margin-right: math.div(-$gutter, 2);
  } @else {
    margin-top: math.div(-$gutter, 2);
    margin-bottom: math.div(-$gutter, 2);
  }
}

@mixin cell($count: 5, $gutter: $gutter, $span: 1, $direction: row) {
  flex: 0 0 0px;
  @if $span > 1 {
    flex-basis: calc(((100% - #{$gutter * $count}) / #{$count}) * #{$span} + #{($span - 1) * $gutter});
  } @else {
    flex-basis: calc(#{math.div(100%, $count)} - #{$gutter});
  }

  @if $direction != column {
    margin-left: math.div($gutter, 2);
    margin-right: math.div($gutter, 2);
  } @else {
    margin-top: math.div($gutter, 2);
    margin-bottom: math.div($gutter, 2);
  }
}


// not to be used with grid above
@mixin simple-cell($gutter: $gutter, $direction: row) {
  flex: 1 1 0px;

  @if $direction != column {
    margin-right: $gutter;

    &:last-child {
      margin-right: 0;
    }
  } @else {
    margin-bottom: $gutter;

    &:last-child {
      margin-bottom: 0;
    }
  }
}
