/**
 * Icon
 * @define icon
 */

@use 'sass:map';

// Exposed variables
$theme: null !default;
$icons: null !default;

.ecl-icon {
  fill: currentcolor;
  margin: 0;
  transition: transform 300ms ease-in-out;
}

.ecl-icon--2xs {
  height: map.get($theme, 'icon', '2xs');
  width: map.get($theme, 'icon', '2xs');
}

.ecl-icon--xs {
  height: map.get($theme, 'icon', 'xs');
  width: map.get($theme, 'icon', 'xs');
}

.ecl-icon--s {
  height: map.get($theme, 'icon', 's');
  width: map.get($theme, 'icon', 's');
}

.ecl-icon--m {
  height: map.get($theme, 'icon', 'm');
  width: map.get($theme, 'icon', 'm');
}

.ecl-icon--l {
  height: map.get($theme, 'icon', 'l');
  width: map.get($theme, 'icon', 'l');
}

.ecl-icon--xl {
  height: map.get($theme, 'icon', 'xl');
  width: map.get($theme, 'icon', 'xl');
}

.ecl-icon--2xl {
  height: map.get($theme, 'icon', '2xl');
  width: map.get($theme, 'icon', '2xl');
}

.ecl-icon--fluid {
  height: map.get($theme, 'icon', 'fluid');
  width: map.get($theme, 'icon', 'fluid');
}

.ecl-icon--primary {
  fill: var(--c-p);
}

.ecl-icon--inverted {
  fill: map.get($theme, 'color', 'white');
}

.ecl-icon--rotate-90 {
  transform: rotateZ(90deg);
}

.ecl-icon--rotate-180 {
  transform: rotateZ(180deg);
}

.ecl-icon--rotate-270 {
  transform: rotateZ(270deg);
}

.ecl-icon--flip-horizontal {
  transform: scaleX(-1);
}

.ecl-icon--flip-vertical {
  transform: scaleY(-1);
}
