Componentes

<< Colores Bootstrap-icons >>

Modificadores

Muchos componentes de Bootstrap han sido construidos con el objetivo de poder ser modificados posteriormente mediante unas clases modificadoras. Esto significa que la mayor parte del estilo está contenido en una clase base (por ejemplo .btn) mientras que las variables de estilo están confinadas a las clases modificadoras (por ejemplo: .btn-danger). Estas clases se crean a partir del mapa $theme-color para personalizar el número y el nombre de nuestras clases modificadoras.

Por ejemplo, para generar a partir de los modificadores de los componentes .alert y .list-group.

// Generate contextual modifier classes for colorizing the alert.

@each $state, $value in $theme-colors {
  $alert-background: shift-color($value, $alert-bg-scale);
  $alert-border: shift-color($value, $alert-border-scale);
  $alert-color: shift-color($value, $alert-color-scale);
  @if (contrast-ratio($alert-background, $alert-color) < $min-contrast-ratio) {
    $alert-color: mix($value, color-contrast($alert-background), abs($alert-color-scale));
  }
  .alert-#{$state} {
    @include alert-variant($alert-background, $alert-border, $alert-color);
  }
}

// List group contextual variants
//
// Add modifier classes to change text and background color on individual items.
// Organizationally, this must come after the `:hover` states.

@each $state, $value in $theme-colors {
  $list-group-variant-bg: shift-color($value, $list-group-item-bg-scale);
  $list-group-variant-color: shift-color($value, $list-group-item-color-scale);
  @if (contrast-ratio($list-group-variant-bg, $list-group-variant-color) < $min-contrast-ratio) {
    $list-group-variant-color: mix($value, color-contrast($list-group-variant-bg), abs($list-group-item-color-scale));
  }

  @include list-group-item-variant($state, $list-group-variant-bg, $list-group-variant-color);
}

Responsive

Podemos modificar los responsive por ejemplo de nuestros componentes o utilities. Por ejemplo, si queremos modificar la alineación del texto donde tenemos un mix @each para cada $grid-breakpoints en Sass podríamos hacer:

// We deliberately hardcode the `bs-` prefix because we check
// this custom property in JS to determine Popper's positioning

@each $breakpoint in map-keys($grid-breakpoints) {
  @include media-breakpoint-up($breakpoint) {
    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);

    .dropdown-menu#{$infix}-start {
      --bs-position: start;

      &[data-bs-popper] {
        right: auto;
        left: 0;
      }
    }

    .dropdown-menu#{$infix}-end {
      --bs-position: end;

      &[data-bs-popper] {
        right: 0;
        left: auto;
      }
    }
  }
}

Debemos tener en cuenta que necesitamos modificar nuestro $grid-breakpoints, esto se cambiará en todos los ítems de dicho mapa.

$grid-breakpoints: (
  xs: 0,
  sm: 576px,
  md: 768px,
  lg: 992px,
  xl: 1200px,
  xxl: 1400px
);

<< Colores Bootstrap-icons >>