
// variable to set default float for grids.
$default-float: left;
$opposite-default-float: right !default;

// variable used to calculate and compute font-sizes.
$base-rem-unit: 16px !default;

// variable to customize gutters on columns
$column-gutter: rem-calc(10) !default;
$row-max-width: rem-calc(1080) !default;

$default-grid-list: ('pull', 'push', 'offset', 'columns');
$helper-classes: ('clear', 'hide', 'show', 'center');
$show-classes-sub-list: ('inline', 'inline-block', 'block') !default;


// Variable used for generation of grid classes.
// $screen-list map keys serves as names for break-points
// These are needed for absctracting values for generating grids, classes and class-names.
// @params
// 'range':
$screen-list: (
  'small': (
      'range': 0em 40em,
      'columns': 12,
      'grid-classes': $default-grid-list,
      'helper-classes': $helper-classes,
      'gutter': 10px
    ),
  'medium': (
      'range': 40.063em 64em,
      'columns': 12,
      'grid-classes': $default-grid-list,
      'helper-classes': $helper-classes
    ),
  'large': (
      'range': 64.063em 90em,
      'columns': 12,
      'grid-classes': $default-grid-list,
      'helper-classes': $helper-classes
    ),
) !default;


$screen-keys: map-keys($screen-list);
$break-points: length($screen-keys);

$class-names: (
  'screen-names': (
    'small': 'small-',
    'medium': 'medium-',
    'large': 'large-',
    'xlarge': 'xlarge-',
    'xxlarge': 'xxlarge-',
    'xxxlarge': 'xxxlarge'
  ),
  'helpers': (
    'pull': 'pull-',
    'push': 'push-',
    'offset': 'offset-',
    'columns': 'col-',
    'clear': 'clear-',
    'hide': 'hide-',
    'show': 'show-',
    'center': 'center-',
    'inline': 'inline-',
    'inline-block': 'inline-block-',
    'block': 'block-',
    'up': 'up',
    'only': 'only',
    'down': 'down',
  ),
);


@for $increment from 1 through $break-points {
  $screen-size: nth($screen-keys, $increment);
  $screen-values: map-get($screen-list, $screen-size);
  $media-querie : media-querie($screen-size, "up");
  $screen-values : map-merge($screen-values, (media-querie-up: $media-querie));
  $screen-list : map-merge($screen-list, ($screen-size: $screen-values));
}

@for $increment from 1 through $break-points {
  $screen-size: nth($screen-keys, $increment);
  $screen-values: map-get($screen-list, $screen-size);
  $media-querie : media-querie($screen-size, "only");
  $screen-values : map-merge($screen-values, (media-querie-only: $media-querie));
  $screen-list : map-merge($screen-list, ($screen-size: $screen-values));
}

@for $increment from 1 through $break-points {
  $screen-size: nth($screen-keys, $increment);
  $screen-values: map-get($screen-list, $screen-size);
  $media-querie : media-querie($screen-size, "down");
  $screen-values : map-merge($screen-values, (media-querie-down: $media-querie));
  $screen-list : map-merge($screen-list, ($screen-size: $screen-values));
}
