.text {
  // Alinhamento
  @each $text-align in $text-aligns {
    &-#{$text-align} {
      text-align: unquote($text-align);
    }
  }

  // Peso
  @each $key in map-keys($font-weights) {
    &-weight-#{$key} {
      font-weight: var(--font-weight-#{$key});
    }
  }

  // Escala pra cima
  @each $key in map-keys($font-sizes-up) {
    &-up-#{$key} {
      font-size: var(--font-size-up-#{$key});
    }
  }

  // Escala pra baixo
  @each $key in map-keys($font-sizes-down) {
    &-down-#{$key} {
      font-size: var(--font-size-down-#{$key});
    }
  }

  // Escala padrão
  &-base {
    font-size: var(--font-size-default);
  }

  // Entrelinha
  @each $key in map-keys($line-heights) {
    &-height-#{$key} {
      line-height: var(--line-height-#{$key});
    }
  }

  // Espaços em branco
  @each $space in $white-spaces {
    &-#{$space} {
      white-space: #{$space} !important;
    }
  }

  // Truncamento
  &-truncate {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  // Quebra de linha
  &-break {
    word-break: break-word !important;
    word-wrap: break-word !important;
  }

  // Transformações
  @each $transform in $text-transforms {
    &-#{$transform} {
      text-transform: #{$transform} !important;
    }
  }
}

// Estilos com breakpoints
@each $breakpoint in "sm", "md", "lg", "xl" {
  @include media-breakpoint-up($breakpoint) {
    .text {
      @each $text-align in $text-aligns {
        &-#{$breakpoint}-#{$text-align} {
          text-align: unquote($text-align);
        }
      }

      @each $key in map-keys($font-weights) {
        &-weight-#{$breakpoint}-#{$key} {
          font-weight: var(--font-weight-#{$key});
        }
      }

      @each $key in map-keys($font-sizes-up) {
        &-up-#{$breakpoint}-#{$key} {
          font-size: var(--font-size-#{$key});
        }
      }

      @each $key in map-keys($font-sizes-down) {
        &-down-#{$breakpoint}-#{$key} {
          font-size: var(--font-size-#{$key});
        }
      }

      &-#{$breakpoint}-base {
        font-size: var(--font-size-default);
      }

      @each $key in map-keys($line-heights) {
        &-height-#{$breakpoint}-#{$key} {
          line-height: var(--line-height-#{$key});
        }
      }

      @each $transform in $text-transforms {
        &-#{$breakpoint}-#{$transform} {
          text-transform: #{$transform} !important;
        }
      }
    }
  }
}
