@mixin make-borders($map, $prefix, $breakpoint: null) {
  // Inclui o breakpoint na classe se ele for informado
  $class-breakpoint: if($breakpoint, "-#{$breakpoint}", "");

  .border {
    // Define os estilos de borda
    @each $style in "solid", "dotted", "dashed" {
      // Aplica estilo solid como padrão
      $class-style: if($style == "solid", "", "-#{$style}");

      // Cria bordas dos estilos
      &#{$class-style}#{$class-breakpoint} {
        border-color: var(--theme-border-base);
        border-style: #{$style};
        border-width: var(--#{$prefix}01);
      }

      // Cria as espessuras da borda
      @each $key in map-keys($map) {
        // Remove a chave "none" do loop
        @if $key != "none" {
          // Remove zeros à esquerda das chaves
          $class-width: remove-leading-zero($key);

          // Nome da classe com estilo e largura
          $class-name: #{$class-style}#{$class-breakpoint}-#{$class-width};

          // Cria bordas dos estilos e suas larguras
          &#{$class-name} {
            border-color: var(--theme-border-base);
            border-style: #{$style};
            border-width: var(--#{$prefix}#{$key});
          }
        }
      }
    }

    // Inclui a chave "none"
    &#{$class-breakpoint}-0 {
      border: var(--#{$prefix}none);
    }
  }
}

@mixin make-rounders($map, $prefix, $breakpoint: null) {
  // Inclui o breakpoint na classe se ele for informado
  $class-breakpoint: if($breakpoint, "-#{$breakpoint}", "");

  .rounder {
    @each $key in map-keys($map) {
      // Remove zeros à esquerda das chaves
      $class-value: if($key == "none", "0", remove-leading-zero($key));

      // Nome da classe com estilo e largura
      $class-name: #{$class-breakpoint}-#{$class-value};

      // Cria o arredondamento das larguras
      &#{$class-name} {
        border-radius: var(--#{$prefix}#{$key});
      }
    }
  }
}

@mixin make-opacities($map, $prefix, $breakpoint: null) {
  // Inclui o breakpoint na classe se ele for informado
  $class-breakpoint: if($breakpoint, "-#{$breakpoint}", "");

  .opacity {
    @each $key in map-keys($map) {
      // Remove zeros à esquerda das chaves
      $class-value: if($key == "none", "0", remove-leading-zero($key));

      // Nome da classe com estilo e largura
      $class-name: #{$class-breakpoint}-#{$class-value};

      // Cria o arredondamento das larguras
      &#{$class-name} {
        opacity: var(--#{$prefix}#{$key});
      }
    }
  }
}
