// The Contactlab color palette
$colors: (
  'accent': #1890ff,
  'accent100': #e6f7ff,
  'accent200': #bae7ff,
  'accent300': #91d5ff,
  'accent400': #69c0ff,
  'accent500': #40a9ff,
  'accent600': #1890ff,
  'accent700': #096dd9,
  'accent800': #0050b3,
  'accent900': #003a8c,
  'base': '#141414',
  'base100': #fafafa,
  'base200': #f5f5f5,
  'base300': #f0f0f0,
  'base400': #d9d9d9,
  'base500': #bfbfbf,
  'base600': #8c8c8c,
  'base700': #595959,
  'base800': #434343,
  'base900': #141414,
  'info': #1890ff,
  'success': #52c41a,
  'warning': #faad14,
  'error': #f5222d,
  'white': #fff,
  'black': #000,
  'fluo-base300': #e9e8ff,
  'fluo-base600': #b4afff,
  'fluo-base900': #7168ff,
  'fluo-accent300': #e1f9ef,
  'fluo-accent600': #9bebd0,
  'fluo-accent900': #00c9bd
);

@function colors($key) {
  @if map-has-key($colors, $key) {
    @return map-get($colors, $key);
  } @else {
    @warn 'Unfortunately, no value could be retrieved from `#{$colors}`. ' + 'Please make sure it is defined in the `$colors` map.';

    @return null;
  }
}

// The Contactlab elevations
$z1: 0 1px 3px 0 rgba(0, 20, 32, 0.12);
$z2: 0 3px 6px 0 rgba(0, 20, 32, 0.04), 0 3px 6px 0 rgba(0, 20, 32, 0.12);
$z3: 0 6px 6px 0 rgba(0, 20, 32, 0.09), 0 10px 20px 0 rgba(0, 20, 32, 0.13);
$z4: 0 10px 10px 0 rgba(0, 20, 32, 0.05), 0 14px 28px 0 rgba(0, 20, 32, 0.16);
$z5: 0 19px 38px 0 rgba(0, 20, 32, 0.16), 0 15px 12px 0 rgba(0, 20, 32, 0.12);
$accent-z1: 0 1px 3px 0 rgba(3, 145, 236, 0.12);
$accent-z2: 0 3px 6px 0 rgba(3, 145, 236, 0.04),
  0 3px 6px 0 rgba(3, 145, 236, 0.12);
$accent-z3: 0 6px 6px 0 rgba(3, 145, 236, 0.09),
  0 10px 20px 0 rgba(3, 145, 236, 0.13);
$accent-z4: 0 10px 10px 0 rgba(3, 145, 236, 0.05),
  0 14px 28px 0 rgba(3, 145, 236, 0.16);
$accent-z5: 0 19px 38px 0 rgba(3, 145, 236, 0.16),
  0 15px 12px 0 rgba(3, 145, 236, 0.12);

$elevations: (
  'z1': $z1,
  'z2': $z2,
  'z3': $z3,
  'z4': $z4,
  'z5': $z5,
  'accent-z1': $accent-z1,
  'accent-z2': $accent-z2,
  'accent-z3': $accent-z3,
  'accent-z4': $accent-z4,
  'accent-z5': $accent-z5
);

@function elevations($key) {
  @if map-has-key($elevations, $key) {
    @return map-get($elevations, $key);
  } @else {
    @warn "Unfortunately, no value could be retrieved from `#{$elevations}`. "
       + "Please make sure it is defined in the `$elevations` map.";

    @return null;
  }
}

// The Contactlab transitions
$elevation-transition: box-shadow 0.3s cubic-bezier(0.4, 0, 0.2, 1);
