@use 'sass:list';
@use 'sass:math';
@use 'sass:color';

@function mix($color1, $color2, $level) {
  $cl1: calc($level / 100);
  $cl2: calc((100 - $level) / 100);
  @return rgb(
    color.channel($color1, "red") * $cl1 + color.channel($color2, "red") * $cl2,
    color.channel($color1, "green") * $cl1 + color.channel($color2, "green") * $cl2,
    color.channel($color1, "blue") * $cl1 + color.channel($color2, "blue") * $cl2
  );
}

@function minmax($value, $min, $max) {
  @return math.max(math.min($value, $max), $min);
}

@function decrease-color($color, $level) {
  @return rgb(
    (color.channel($color, "red") - 127) * $level + 127,
    (color.channel($color, "green") - 127) * $level + 127,
    (color.channel($color, "blue") - 127) * $level + 127
  );
}

@function negative-color($color) {
  @return rgb(
    255 - color.channel($color, "red"),
    255 - color.channel($color, "green"),
    255 - color.channel($color, "blue")
  );
}
