Migrando a v5
Realiza un seguimiento y revisa los cambios en los archivos fuente, la documentación y los componentes de Bootstrap para ayudarte a migrar de v4 a v5.
v5.3.0
Si estás migrando desde nuestras versiones alfa anteriores de v5.3.0, revisa sus cambios además de esta sección.
Ayudantes
- Los enlaces de colores una vez más tienen
!important
para que funcionen mejor con nuestras utilidades de enlaces recién agregadas.
Utilidades
- Se agregó una nueva
.d-inline-grid
utilidad de visualización.
v5.3.0-alpha2
Si estás migrando desde nuestra versión alfa anterior de v5.3.0, revisa los cambios que se enumeran a continuación.
Variables CSS
- Se eliminaron varias variables CSS raíz duplicadas y no utilizadas.
Modos de color
-
Los colores del modo oscuro ahora se derivan de los colores de nuestro tema (p. ej.,
$primary
) en Sass, en lugar de tintes o sombras específicas del color (p. ej.,$blue-300
). Esto permite un modo oscuro más automatizado al personalizar los colores predeterminados del tema. -
Se agregaron mapas Sass para generar colores de tema para texto en modo oscuro, fondo sutil y borde sutil.
-
Los ejemplos de fragmentos ahora están listos para el modo oscuro con marcado actualizado y estilos personalizados reducidos.
-
Se agregó
color-scheme: dark
al CSS del modo oscuro para cambiar los controles de nivel del sistema operativo, como las barras de desplazamiento -
Los estados de validación de formulario
border-color
y de textocolor
ahora responden al modo oscuro, gracias a las nuevas variables Sass y CSS. -
Se eliminaron las variables CSS de fondo de control de formulario agregadas recientemente y se reasignaron las variables Sass para usar variables CSS en su lugar. Esto simplifica el estilo en los modos de color y evita un problema por el cual los controles de formulario en modo oscuro no se actualizan correctamente.
-
Nuestras
box-shadow
s volverán a permanecer siempre oscuras en lugar de invertirse a blanco cuando estémos en modo oscuro. -
HTML y JavaScript mejorados para nuestro script de alternancia de modo de color. Se mejoró el selector para cambiar el SVG activo y el marcado se hizo más accesible con atributos ARIA.
-
Colores de sintaxis de código de documentación mejorados y más en los modos claro y oscuro.
Tipografía
- Ya no configuramos un color para
$headings-color-dark
o--bs-heading-color
para el modo oscuro. Para evitar varios problemas de encabezados dentro de los componentes que aparecen en el color incorrecto, configuramos la variable Sass ennull
y agregamos una verificaciónnull
como la que usamos en el modo de luz predeterminado.
Componentes
-
Las tarjetas ahora tienen un
color
establecido para mejorar la representación en todos los modos de color. -
Se agregó una nueva variante
.nav-underline
para nuestra navegación con un borde inferior más simple debajo del enlace de navegación activo. Consulta la documentación para ver un ejemplo. -
Los navegadores ahora tienen nuevos estilos
:focus-visible
que coinciden mejor con nuestros estilos de enfoque de botones personalizados.
Ayudantes
-
Se agregó un nuevo asistente
.icon-link
para colocar y alinear rápidamente íconos Bootstrap junto a un enlace textual. Los enlaces de íconos también son compatibles con nuestras nuevas utilidades de enlaces. -
Se agregó un nuevo asistente de anillo de enfoque para eliminar el
outline
predeterminado y configurar un anillo de enfoque personalizadobox-shadow
.
Utilidades
-
Se cambiaron el nombre de las variables Sass y CSS
${color}-text
a${color}-text-emphasis
para que coincidan con sus utilidades asociadas. -
Se agregó un nuevo asistente
.link-body-emphasis
junto con nuestros enlaces de colores. Esto crea un enlace coloreado usando nuestro modo de color color de énfasis responsive. -
Se agregaron nuevas utilidades de enlace para la opacidad del color del enlace, el desplazamiento del subrayado, el color del subrayado y la opacidad del subrayado. Explora las nuevas utilidades de enlaces.
-
Las utilidades
border-width
basadas en variables CSS se han revertido para establecer sus propiedades directamente (como se hacía antes de v5.2.0). Esto evita problemas de herencia entre elementos anidados, incluidas las tablas. -
Se agregó una nueva utilidad
.border-black
para que coincida con nuestras utilidades.text-black
y.bg-black
. -
En desuso Dejó en desuso la utilidad
.text-muted
y$text-muted
variable Sass. Ha sido reemplazado por.text-body-secondary
y$body-secondary-color
.
Docs
-
Los ejemplos ahora se muestran con el modo de color claro u oscuro apropiado según lo dicta la configuración en nuestros documentación. Cada ejemplo tiene un selector de modo de color individual.
-
JavaScript incluido mejorado para la demostración en vivo de Toast.
-
Se agregó el contenido del repositorio
twbs/examples
en la parte superior de la página de ejemplos.
Herramientas
-
Se agregaron pruebas SCSS a través de True para ayudar a probar nuestra API de utilidades y otras personalizaciones.
-
Se reemplazaron instancias de nuestro proyecto bootstrap-npm-starter con el repositorio twbs/examplesmás nuevo y completo.
Para obtener una lista completa de cambios, consulta el proyecto v5.3.0-alpha2 en GitHub.
v5.3.0-alpha1
¡Modos de color!
Obtén más información leyendo la nueva documentación sobre modos de color.
-
Soporte global para modos de color claro (predeterminado) y oscuro. Establece el modo de color globalmente en el elemento
:root
, en grupos. de elementos y componentes con una clase contenedora, o directamente en componentes, condata-bs-theme="light|dark"
. También se incluye un nuevo mixincolor-mode()
que puede generar un conjunto de reglas con el selectordata-bs-theme
o una media query, según sus preferencias.Obsoleto Los modos de color reemplazan las variantes oscuras de los componentes, por lo que
.btn-close-white
,.carousel-dark
,.dropdown-menu-dark
y.navbar-dark
están en desuso. -
Nuevo sistema de colores extendido. Hemos agregado nuevos colores de tema (pero no en
$theme-colors
) para obtener una paleta de colores más matizada para todo el sistema con nuevas colores secundarios, terciarios y de énfasis paracolor
ybackground-color
. Estos nuevos colores están disponibles como variables Sass, variables CSS y utilidades. -
También hemos ampliado las variables Sass de color de tema, las variables CSS y las utilidades para incluir énfasis en el texto, colores de fondo sutiles y colores de borde sutiles. Están disponibles como variables Sass, variables CSS y utilidades.
-
Se agrega una nueva hoja de estilo
_variables-dark.scss
para albergar sobrescrituras específicas del modo oscuro. Esta hoja de estilo debe importarse inmediatamente después del archivo_variables.scss
existente en su pila de importación.diff --git a/scss/bootstrap.scss b/scss/bootstrap.scss index 8f8296def..449d70487 100644 --- a/scss/bootstrap.scss +++ b/scss/bootstrap.scss @@ -6,6 +6,7 @@ // Configuration @import "functions"; @import "variables"; +@import "variables-dark"; @import "maps"; @import "mixins"; @import "utilities";
Variables CSS
-
Restaura variables CSS para puntos de interrupción, aunque no las usamos en nuestras media queries porque no son compatibles. Sin embargo, estos pueden resultar útiles en contextos específicos de JS.
-
Según la actualización de los modos de color, hemos agregado nuevas utilidades para las nuevas variables CSS de Sass
secondary
ytertiary
texto y colores de fondo, además de{color}-bg-subtle
,{color}-border-subtle
y{color}-text-emphasis
para los colores de nuestro tema. Estos nuevos colores están disponibles a través de variables Sass y CSS (pero no nuestros mapas de colores) con el objetivo expreso de facilitar la personalización en múltiples modos de colores, como claro y oscuro. -
Agrega variables adicionales para alertas,
.btn-close
y.offcanvas
. -
La variable
--bs-heading-color
está de vuelta con una actualización y compatibilidad con el modo oscuro. Primero, ahora verificamos si hay un valornull
en la variable Sass asociada,$headings-color
, antes de intentar generar la variable CSS, por lo que de forma predeterminada no está presente en nuestra CSS compilado. En segundo lugar, utilizamos la variable CSS con un valor alternativo,inherit
, lo que permite que el comportamiento original persista, pero también permite sobrescrituras. -
Convierte enlaces para usar variables CSS para diseñar
color
, pero notext-decoration
. Los colores ahora se configuran con--bs-link-color-rgb
y--bs-link-opacity
como colorrgba()
, lo que permite Puedes personalizar la translucidez con facilidad. La pseudoclasea:hover
ahora sobrescribe--bs-link-color-rgb
en lugar de establecer explícitamente la propiedadcolor
. -
--bs-border-width
ahora se utiliza en más componentes para tener un mayor control sobre el estilo global predeterminado. -
Agrega nuevas variables CSS raíz para nuestros
box-shadow
, incluidos--bs-box-shadow
,--bs-box-shadow-sm
,--bs-box-shadow-lg
y--bs-box-shadow-inset
.
Componentes
Alerta
-
Las variantes de alerta ahora tienen estilo mediante variables CSS.
-
Obsoleto El mixin
.alert-variant()
ahora está obsoleto. Ahora usamos un bucle Sass directamente para modificar las variables CSS predeterminadas del componente para cada variante.
Grupo de lista
-
Las variantes de elementos del grupo de listas ahora tienen estilo mediante variables CSS.
-
Obsoleto El mixin
.list-group-variant()
ahora está obsoleto. Ahora usamos un bucle Sass directamente para modificar las variables CSS predeterminadas del componente para cada variante.
Desplegables
- Obsoleto La clase
.dropdown-menu-dark
ha quedado obsoleta y reemplazada pordata-bs-theme="dark"
en el menú desplegable o en cualquier elemento principal. Consulte los documentación para ver un ejemplo.
Botón cerrar
- Obsoleto La clase
.btn-close-white
ha quedado obsoleta y reemplazada pordata-bs-theme="dark"
en el botón de cerrar o en cualquier elemento principal. Consulta los documentación para ver un ejemplo.
Barra de navegación
- Obsoleta La clase
.navbar-dark
ha quedado obsoleta y reemplazada pordata-bs-theme="dark"
en la barra de navegación o en cualquier elemento principal. Consulta los documentación para ver ejemplos actualizados.
Barras de progreso
El marcado para las barras de progreso se actualizó en la
versión 5.3.0. Debido a la ubicación de role
y varios atributos aria-
en el elemento
interno .progress-bar
, algunos lectores de pantalla no anunciaban barras de progreso de
valor cero. Ahora, role="progressbar"
y los atributos aria-*
relevantes
están en el elemento .progress
externo, dejando .progress-bar
únicamente para la
presentación visual de la barra y la etiqueta opcional.
Si bien recomendamos adoptar el nuevo marcado para mejorar la compatibilidad con todos los lectores de pantalla, ten en cuenta que la estructura de la barra de progreso heredada seguirá funcionando como antes.
<!-- Previous markup -->
<div class="progress">
<div class="progress-bar" role="progressbar" aria-label="Basic example" style="width: 25%" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100"></div>
</div>
<!-- New markup -->
<div class="progress" role="progressbar" aria-label="Basic example" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100">
<div class="progress-bar" style="width: 25%"></div>
</div>
También hemos introducido una nueva clase .progress-stacked
para envolver múltiples barras de progreso en una sola barra de
progreso apilada.
<!-- Previous markup -->
<div class="progress">
<div class="progress-bar" role="progressbar" aria-label="Segment one" style="width: 15%" aria-valuenow="15" aria-valuemin="0" aria-valuemax="100"></div>
<div class="progress-bar bg-success" role="progressbar" aria-label="Segment two" style="width: 30%" aria-valuenow="30" aria-valuemin="0" aria-valuemax="100"></div>
<div class="progress-bar bg-info" role="progressbar" aria-label="Segment three" style="width: 20%" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100"></div>
</div>
<!-- New markup -->
<div class="progress-stacked">
<div class="progress" role="progressbar" aria-label="Segment one" aria-valuenow="15" aria-valuemin="0" aria-valuemax="100" style="width: 15%">
<div class="progress-bar"></div>
</div>
<div class="progress" role="progressbar" aria-label="Segment two" aria-valuenow="30" aria-valuemin="0" aria-valuemax="100" style="width: 30%">
<div class="progress-bar bg-success"></div>
</div>
<div class="progress" role="progressbar" aria-label="Segment three" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100" style="width: 20%">
<div class="progress-bar bg-info"></div>
</div>
</div>
Formularios
-
.form-control
ahora tiene un estilo con variables CSS para admitir modos de color. Esto incluye la adición de dos nuevas variables CSS raíz para los fondos de control de formulario predeterminados y deshabilitados. -
.form-check
y.form-switch
(componentes) ahora están creados con variables CSS para configurar labackground-image
. El uso aquí difiere de otros componentes en que los distintos estados de enfoque, activo, etc. para cada componente no se establecen en la clase base. En cambio, los estados sobrescriben una variable (por ejemplo,--bs-form-switch-bg
). -
Las etiquetas de formulario flotante ahora tienen un
background-color
para corregir la compatibilidad con elementos<textarea>
. Se han realizado cambios adicionales para admitir también estados discapacitados y más. -
Se corrigió la visualización de entradas de fecha y hora en navegadores basados en WebKit.
Utilidades
-
Obsoleto
.text-muted
será reemplazado por.text-body-secondary
en v6.Con la adición de los colores y variables del tema expandido, las variables y la utilidad
.text-muted
han quedado obsoletas con v5.3.0. Su valor predeterminado también se ha reasignado a la nueva variable CSS--bs-secondary-color
para admitir mejor los modos de color. Se eliminará en v6.0.0. -
Agrega nuevas utilidades
.overflow-x
,.overflow-y
y varias.object-fit-*
. La propiedad object-fit se utiliza para especificar cómo se debe cambiar el tamaño de un<img>
o<video>
para que se ajuste a su contenedor, lo que nos brinda una alternativa responsive a usarbackground-image
para una imagen de relleno/ajuste de tamaño variable. -
Agrega una nueva utilidad
.fw-medium
. -
Se agregaron nuevas
.z-*
utilidades paraz-index
. -
Utilidades de sombra de Box (y variables Sass) se han actualizado para el modo oscuro. Ahora usan
--bs-body-color-rgb
para generar los valores de colorrgba()
, lo que les permite adaptarse fácilmente a los modos de color basados en el color de primer plano especificado.
Para obtener una lista completa de cambios, consulta el proyecto v5.3.0 en GitHub.
v5.2.0
Diseño renovado
Bootstrap v5.2.0 presenta una sutil actualización de diseño para un puñado de componentes y propiedades en
todo el proyecto, más notablemente a través de valores refinados de border-radius
. en
botones y controles de formulario. Nuestra documentación también se ha actualizado con una nueva
página de inicio, un diseño de documentación más simple que ya no contrae secciones de la barra lateral y
ejemplos más destacados de iconos de Bootstrap.
Más variables CSS
Hemos actualizado todos nuestros componentes para usar variables CSS. Si bien Sass aún
sustenta todo, cada componente se ha actualizado para incluir variables CSS en la base del componente. clases
(por ejemplo, .btn
), lo que permite una mayor personalización en tiempo real de Bootstrap. En
versiones posteriores, continuaremos ampliando nuestro uso de variables CSS en nuestro diseño, formularios,
ayudas y utilidades. Lea más sobre las variables CSS en cada componente en sus respectivas páginas de
documentación.
Nuestro uso de variables CSS estará algo incompleto hasta Bootstrap 6. Si bien nos encantaría implementarlas
completamente en todos los ámbitos, corren el riesgo de causar cambios importantes. Por ejemplo, configurar
$alert-border-width: var(--bs-border-width)
en nuestro código fuente rompe el Sass potencial en
su propio código si estuviera haciendo $alert-border-width * 2
por alguna razón.
Como tal, siempre que sea posible, continuaremos avanzando hacia más variables CSS, pero reconoce que nuestra implementación puede estar ligeramente limitada en la versión 5.
Nuevo _maps.scss
Bootstrap v5.2.0 introdujo un nuevo archivo Sass con _maps.scss
. Extrae varios
mapas Sass de _variables.scss
para solucionar un problema por el cual las actualizaciones de un
mapa original no se aplicaban a los mapas secundarios que los ampliaban. Por ejemplo, las actualizaciones de
$theme-colors
no se aplicaban a otros mapas temáticos que dependían de
$theme-colors
, lo que interrumpía los flujos de trabajo de personalización clave. En resumen,
Sass tiene una limitación según la cual una vez que se ha usadouna variable o mapa predeterminado, no
se puede actualizar. Existe una deficiencia similar con las variables CSS cuando se usan para componer
otras variables CSS.
Es por eso que las personalizaciones de variables en Bootstrap deben venir después de
@import "functions"
, pero antes de @import "variables"
y el resto de nuestra pila de
importación. Lo mismo se aplica a los mapas Sass: debes sobrescribir los valores predeterminados antes de
utilizarlos. Los siguientes mapas se han movido al nuevo _maps.scss
:
$theme-colors-rgb
$utilities-colors
$utilities-text
$utilities-text-colors
$utilities-bg
$utilities-bg-colors
$negative-spacers
$gutters
Tus compilaciones CSS Bootstrap personalizadas ahora deberían verse así con una importación de mapas separada.
// Functions come first
@import "functions";
// Optional variable overrides here
+ $custom-color: #df711b;
+ $custom-theme-colors: (
+ "custom": $custom-color
+ );
// Variables come next
@import "variables";
+ // Optional Sass map overrides here
+ $theme-colors: map-merge($theme-colors, $custom-theme-colors);
+
+ // Followed by our default maps
+ @import "maps";
+
// Rest of our imports
@import "mixins";
@import "utilities";
@import "root";
@import "reboot";
// etc
Nuevas utilidades
- Utilidades
font-weight
ampliadas para incluir.fw-semibold
para fuentes semibold. - Utilidades
border-radius
, ampliadas para incluir dos nuevas tamaños,.rounded-4
y.rounded-5
, para más opciones.
Cambios adicionales
-
Se introdujo la nueva opción
$enable-container-classes
. — Ahora, al optar por el diseño experimental CSS Grid, las clases.container-*
seguirán compiladas, a menos que esta opción esté configurada enfalse
. Los contenedores ahora también mantienen sus valores de gutter. -
El componente Offcanvas ahora tiene variaciones de respuesta. El
.offcanvas
original La clase permanece sin cambios: oculta el contenido en todas las viewports. Para que responda, cambie esa clase.offcanvas
a cualquier clase.offcanvas-{sm|md|lg|xl|xxl}
. -
Ahora se pueden habilitar divisores de tabla más gruesos. — Eliminamos el borde más grueso y difícil de sobrescribir entre los grupos de tablas y lo trasladamos a una clase opcional que puede aplicar,
.table-group-divider
. Consulte los documentación de la tabla para ver un ejemplo. -
Scrollspy ha sido reescrito para usar la API Intersection Observer, lo que significa que ya no necesita envoltorios principales relativos, desaprueba la configuración
offset
y más. Busque que sus implementaciones de Scrollspy sean más precisas y consistentes en el resaltado de navegación. -
Las ventanas emergentes y la tooltips ahora usan variables CSS. Algunas variables CSS se han actualizado desde sus contrapartes Sass para reducir la cantidad de variables. Como resultado, tres variables han quedado obsoletas en esta versión:
$popover-arrow-color
,$popover-arrow-outer-color
y$tooltip-arrow-color
. -
Se agregaron nuevos ayudantes
.text-bg-{color}
. En lugar de configurar.text-*
y.bg-*
utilidades, ahora puedes usar los.text-bg-*
ayudantes para establezca unbackground-color
con uncolor
de primer plano contrastante. -
Se agregó el modificador
.form-check-reverse
para invertir el orden de las etiquetas y las casillas de verificación/radios asociadas. -
Se agregó soporte para columnas rayadas a las tablas a través de la nueva clase
.table-striped-columns
.
Para obtener una lista completa de cambios, consulta el proyecto v5.2.0 en GitHub.
v5.1.0
-
Se agregó soporte experimental para el diseño de cuadrícula CSS. — Este es un trabajo en progreso y aún no está listo para su uso en producción, pero puede optar por la nueva función a través de Sass. Para habilitarlo, deshabilite la cuadrícula predeterminada configurando
$enable-grid-classes: false
y habilite la cuadrícula CSS configurando$enable-cssgrid: true
. -
Barras de navegación actualizadas para admitir offcanvas. — Agregue cajones offcanvas en cualquier barra de navegación con las clases responsive
.navbar-expand-*
y algunas marcas offcanvas. -
Se agregó un nuevo componente de marcador de posición. — Nuestro componente más nuevo, una forma de proporcionar bloqueos temporales en lugar de contenido real para ayudar a indicar que todavía se está cargando algo en su sitio o aplicación.
-
El complemento Contraer ahora admite el colapso horizontal. — Añade
.collapse-horizontal
a tu.collapse
para contraer elwidth
en lugar delheight
. Evite repintar el navegador estableciendo unamin-height
o unaheight
. -
Se agregaron nuevos ayudantes de reglas verticales y de pila. — Aplique rápidamente múltiples propiedades de flexbox para crear rápidamente diseños personalizados con pilas. Elija entre pilas horizontales (
.hstack
) y verticales (.vstack
). Agregue divisores verticales similares a los elementos<hr>
con los ayudantes.vr
nuevos. -
Se agregaron nuevas variables CSS globales
:root
. — Se agregaron varias variables CSS nuevas al nivel:root
para controlar los estilos<body>
. Hay más en proceso, incluidas nuestras utilidades y componentes, pero por ahora lea variables CSS en la sección Personalizar. -
Se revisaron las utilidades de color y fondo para usar variables CSS y se agregaron nuevas opacidad del texto y opacidad de fondo utilidades. —
.text-*
y.bg-*
(utilidades) ahora se crean con variables CSS y valores de colorrgba()
, lo que permite puedes personalizar fácilmente cualquier utilidad con nuevas utilidades de opacidad. -
Se agregaron nuevos ejemplos de fragmentos basados en mostrar cómo personalizar nuestros componentes. — Utilice componentes personalizados listos para usar y otros patrones de diseño comunes con nuestros nuevos ejemplos de fragmentos. Incluye pies de página, menús desplegables, listar gruposy modales.
-
Se eliminaron los estilos de posicionamiento no utilizados de las ventanas emergentes y la tooltips , ya que Popper los maneja únicamente.
$tooltip-margin
ha quedado obsoleto y se ha establecido ennull
en el proceso.
¿Quieres más información? Lee la publicación del blog v5.1.0.
v5.0.0
Dependencias
- Se eliminó jQuery.
- Actualizado de Popper v1.x a Popper v2.x.
- Reemplazó Libsass con Dart Sass ya que nuestro compilador Sass dado que Libsass estaba obsoleto.
- Migrado de Jekyll a Hugo para crear nuestra documentación.
Soporte del navegador
- Se eliminó Internet Explorer 10 y 11
- Microsoft Edge eliminado <16 (Legacy Edge)
- Firefox eliminado <60
- Dropped Safari < 12
- Se eliminó iOS Safari <12
- Chrome eliminado <60
Cambios en la documentación.
- Página de inicio, diseño de documentación y pie de página rediseñados.
- Se agregó nueva guía de paquetes.
- Se agregó nueva sección Personalizar, reemplazando Página de temas de v4 ⬀, con nuevos detalles sobre Sass, opciones de configuración global, combinaciones de colores, variables CSS y más.
- Reorganicé toda la documentación del formulario en una nueva sección Formularios, dividiendo el contenido en páginas más enfocadas.
- Del mismo modo, actualicé la sección Diseño, para desarrollar el contenido de la cuadrícula con mayor claridad.
- Se cambió el nombre de la página del componente "Navs" a "Navs & Tabs".
- Se cambió el nombre de la página "Checks" a "Checks y radios".
- Rediseñamos la barra de navegación y agregamos una nueva subnav para que sea más fácil navegar por nuestras versiones de sitios y documentación.
- Se agregó un nuevo método abreviado de teclado para el campo de búsqueda: Ctrl + /.
Sass
-
Hemos eliminado las combinaciones de mapas Sass predeterminadas para que sea más fácil eliminar valores redundantes. Tenga en cuenta que ahora debe definir todos los valores en los mapas de Sass como
$theme-colors
. Vea cómo manejar los mapas Sass. -
Breaking Se cambió el nombre de la función
color-yiq()
y las variables relacionadas acolor-contrast()
ya que ya no está relacionado con el espacio de color YIQ. Ver n.º 30168.$yiq-contrasted-threshold
pasa a llamarse$min-contrast-ratio
.$yiq-text-dark
y$yiq-text-light
pasan a llamarse respectivamente$color-contrast-dark
y$color-contrast-light
.
-
Últimas Los parámetros de los mixins de media query han cambiado para adoptar un enfoque más lógico.
media-breakpoint-down()
usa el punto de interrupción en sí en lugar del siguiente punto de interrupción (por ejemplo,media-breakpoint-down(lg)
en lugar demedia-breakpoint-down(md)
apunta a viewports más pequeñas quelg
).- De manera similar, el segundo parámetro en
media-breakpoint-between()
también usa el punto de interrupción en sí en lugar del siguiente punto de interrupción (por ejemplo,media-between(sm, lg)
en lugar demedia-breakpoint-between(sm, md)
apunta a viewports entresm
ylg
) .
-
Rompiendo Se eliminaron los estilos de impresión y la variable
$enable-print-styles
. Las clases de exhibición de impresiones todavía existen. Ver #28339. -
Rompiendo Se eliminaron
color()
,theme-color()
ygray()
funciona a favor de las variables. Ver #29083. -
Rompiendo Se cambió el nombre de la función
theme-color-level()
acolor-level()
y ahora acepta cualquier color que desee en lugar de solo colores$theme-color
. Ver #29083 Cuidado:color-level()
se eliminó más tarde env5.0.0-alpha3
. -
Rompiendo Renombrado
$enable-prefers-reduced-motion-media-query
y$enable-pointer-cursor-for-buttons
a$enable-reduced-motion
y$enable-button-pointers
por brevedad. -
Rompiendo Se eliminó el mixin
bg-gradient-variant()
. Utilice la clase.bg-gradient
para agregar degradados a los elementos en lugar de las clases.bg-gradient-*
generadas. -
Último Se eliminaron mixins previamente obsoletos:
hover
,hover-focus
,plain-hover-focus
yhover-focus-active
float()
form-control-mixin()
nav-divider()
retina-img()
text-hide()
(también eliminó la clase de utilidad asociada,.text-hide
)visibility()
form-control-focus()
-
Rotura Se cambió el nombre de la función
scale-color()
ashift-color()
para evitar colisiones con Función de escala de color propia de Sass. -
box-shadow
(mixins) ahora permiten valoresnull
y eliminannone
de múltiples argumentos. Ver #30394. -
El mixin
border-radius()
ahora tiene un valor predeterminado.
Sistema de color
-
El sistema de color que funcionaba con
color-level()
y$theme-color-interval
se eliminó en favor de un nuevo sistema de color. Todas las funcioneslighten()
ydarken()
en nuestro código base se reemplazan portint-color()
yshade-color()
. Estas funciones mezclarán el color con blanco o negro en lugar de cambiar su luminosidad en una cantidad fija.shift-color()
teñirá o sombreará un color dependiendo de si su parámetro de peso es positivo o negativo. Consulta el n.º 30622 para obtener más detalles. -
Se agregaron nuevos tintes y sombras para cada color, proporcionando nueve colores separados para cada color base, como nuevas variables Sass.
-
Contraste de color mejorado. Relación de contraste de color mejorada de 3:1 a 4,5:1 y colores azul, verde, cian y rosa actualizados para garantizar el contraste WCAG 2.1 AA. También cambiamos nuestro color de contraste de
$gray-900
a$black
. -
Para respaldar nuestro sistema de color, hemos agregado nuevas funciones personalizadas
tint-color()
yshade-color()
para mezclar nuestros colores apropiadamente.
Actualizaciones de grid
-
¡Nuevo punto de interrupción! Se agregó un nuevo punto de interrupción
xxl
para1400px
y superiores. No hay cambios en todos los demás puntos de interrupción. -
Gutters mejorados. Los gutters ahora están configurados en rems y son más estrechos que la versión 4 (
1.5rem
, o alrededor de24px
, en lugar de30px
). Esto alinea los gutters de nuestro sistema de red con nuestras utilidades de espaciado.- Se agregó una nueva clase de canal (
.g-*
,.gx-*
y.gy-*
) para controlar gutters horizontales/verticales, gutters horizontales y gutters verticales. - Breaking Renombrado
.no-gutters
a.g-0
para que coincida con las nuevas utilidades de canal.
- Se agregó una nueva clase de canal (
-
Las columnas ya no tienen
position: relative
aplicada, por lo que es posible que tengas que agregar.position-relative
a algunos elementos para restaurar ese comportamiento. -
Rompiendo Se eliminaron varias clases
.order-*
que a menudo no se utilizaban. Ahora solo proporcionamos.order-1
a.order-5
listos para usar. -
Rotura Se eliminó el componente
.media
ya que se puede replicar fácilmente con utilidades. Consulte #28265 y el página de utilidades flexibles para ver un ejemplo. -
Rompiendo
bootstrap-grid.css
ahora solo aplicabox-sizing: border-box
al columna en lugar de restablecer el tamaño del cuadro global. De esta manera, nuestros estilos de cuadrícula se pueden utilizar en más lugares sin interferencias. -
$enable-grid-classes
ya no deshabilita la generación de clases de contenedor. Ver n.º 29146. -
Se actualizó el mixin
make-col
para que el valor predeterminado sea columnas iguales sin un tamaño específico.
Contenido, Reboot, etc.
-
RFS ahora está habilitado de forma predeterminada. Encabezados que utilizan
font-size()
mixin ajustará automáticamente sufont-size
para escalar con la viewport. Esta característica estaba habilitada anteriormente con la versión 4. -
Rompiendo Revisamos nuestra tipografía de visualización para reemplazar nuestras variables
$display-*
y con un$display-font-sizes
Mapa descarado. También se eliminaron las variables$display-*-weight
individuales para un único$display-font-weight
y se ajustaron losfont-size
.. p> -
Se agregaron dos nuevos tamaños de encabezado
.display-*
,.display-5
y.display-6
. -
Los enlaces están subrayados de forma predeterminada (no solo al pasar el mouse), a menos que formen parte de componentes específicos.
-
Tablas rediseñadas para actualizar sus estilos y reconstruirlas con variables CSS para tener más control sobre el estilo.
-
Rompiendo Las tablas anidadas ya no heredan estilos.
-
Rotura
.thead-light
y.thead-dark
se eliminan en favor de.table-*
clases variantes que se pueden usar para todos los elementos de la tabla (thead
,tbody
,tfoot
,tr
,th
ytd
). -
Rompiendo El mixin
table-row-variant()
pasa a llamarsetable-variant()
y acepta solo 2 parámetros:$color
(nombre del color) y$value
(código de color). El color del borde y los colores de acento se calculan automáticamente en función de las variables de factor de la tabla. -
Dividir las variables de relleno de celdas de la tabla en
-y
y-x
. -
Rompiendo Clase
.pre-scrollable
eliminada. Ver #29135 -
Breaking
.text-*
(utilidades) ya no agregan estados de desplazamiento y enfoque a los enlaces. En su lugar, se pueden utilizar clases auxiliares.link-*
. Ver n.º 29267 -
Rompiendo Se eliminó la clase
.text-justify
. Ver n.º 29793 -
Breaking
<hr>
(elementos) ahora usanheight
en lugar deborder
para admitir mejor el atributosize
. Esto también permite el uso de utilidades de relleno para crear divisores más gruesos (por ejemplo,<hr class="py-1">
). -
Restablecer el
padding-left
horizontal predeterminado en los elementos<ul>
y<ol>
desde el valor predeterminado del navegador40px
a2rem
. -
Se agregó
$enable-smooth-scroll
, que aplicascroll-behavior: smooth
globalmente, excepto para los usuarios que solicitan movimiento reducido a través deprefers-reduced-motion
media query. Ver #31877
RTL
- Se ha cambiado el nombre de las variables, utilidades y mixins específicos de dirección horizontal para
usar propiedades lógicas como las que se encuentran en los diseños de flexbox, por ejemplo,
start
yend
en lugar deleft
yright
.
Formularios
-
¡Se agregaron nuevos formularios flotantes! Hemos promovido el ejemplo de Etiquetas flotantes a componentes de formulario totalmente compatibles. Consulta la nueva página de etiquetas flotantes.
-
Últimas Elementos de formulario nativos y personalizados consolidados. Casillas de verificación, radios, selecciones y otros Se han consolidado los insumos que tenían clases nativas y personalizadas en v4. Ahora casi todos nuestros elementos de formulario son completamente personalizados, la mayoría sin necesidad de HTML personalizado.
.custom-control.custom-checkbox
ahora es.form-check
..custom-control.custom-radio
ahora es.form-check
..custom-control.custom-switch
ahora es.form-check.form-switch
..custom-select
ahora es.form-select
..custom-file
y.form-control-file
han sido reemplazados por estilos personalizados encima de.form-control
..custom-range
ahora es.form-range
.- Se eliminaron
.form-control-file
y.form-control-range
nativos.
-
Rompiendo Se eliminaron
.input-group-append
y.input-group-prepend
. Ahora puede simplemente agregar botones y.input-group-text
como elementos secundarios directos de los grupos de entrada. -
El antiguo radio de borde faltante en el grupo de entrada con error de retroalimentación de validación finalmente se solucionó agregando una clase
.has-validation
adicional para ingresar grupos con validación. -
Rompiendo Se eliminaron clases de diseño específicas de formulario para nuestro sistema de cuadrícula. Utilice nuestra cuadrícula y utilidades en lugar de
.form-group
,.form-row
o.form-inline
. -
Rompiendo Las etiquetas de formulario ahora requieren
.form-label
. -
Breaking
.form-text
ya no establecedisplay
, lo que le permite crear ayuda en línea o en bloque Texto como desees simplemente cambiando el elemento HTML. -
Los controles de formulario ya no utilizan una
height
fija cuando es posible, sino que difieren a lamin-height
para mejorar la personalización y la compatibilidad con otros componentes. -
Los íconos de validación ya no se aplican a
<select>
conmultiple
. -
Archivos fuente Sass reorganizados en
scss/forms/
, incluidos los estilos de grupo de entrada.
Componentes
- Valores de
padding
unificados para alertas, rutas de navegación, tarjetas, menús desplegables, grupos de listas, modales, ventanas emergentes e tooltips que se basarán en nuestra variable$spacer
. Ver #30564.
Acordeón
- Se agregó nuevo componente de acordeón.
Alertas
-
Las alertas ahora tienen ejemplos con iconos.
-
Se eliminaron estilos personalizados para
<hr>
en cada alerta, ya que ya usancurrentColor
.
Insignias
-
Rompiendo Se eliminaron todas las clases de color
.badge-*
para utilidades de fondo (por ejemplo, use.bg-primary
en lugar de.badge-primary
). -
Rompiendo Caído
.badge-pill
; utilice la utilidad.rounded-pill
en su lugar. -
Rompiendo Se eliminaron los estilos de desplazamiento y enfoque para los elementos
<a>
y<button>
. -
Se aumentó el relleno predeterminado para las insignias de
.25em
/.5em
a.35em
/.65em
.
Breadcrumbs
-
Se simplificó la apariencia predeterminada de las rutas de navegación eliminando
padding
,background-color
yborder-radius
. -
Se agregó una nueva propiedad personalizada de CSS
--bs-breadcrumb-divider
para una fácil personalización sin necesidad de volver a compilar CSS.
Botones
-
Rompiendo Botones de alternancia, con casillas de verificación o radios, ya no requieren JavaScript y tienen un nuevo marcado. Ya no requerimos un elemento envolvente, agregue
.btn-check
al<input>
y emparéjelo con cualquier clase.btn
en<label>
. Ver #30650. Los documentación para esto se han movido de nuestra página Botones a la nueva sección Formularios. -
Rompiendo Se eliminó
.btn-block
para utilidades. En lugar de usar.btn-block
en.btn
, envuelva sus botones con.d-grid
y una utilidad.gap-*
para espaciarlos como necesario. Cambie a clases responsive para tener aún más control sobre ellas. Lea los documentación para ver algunos ejemplos. -
Actualizamos nuestros mixins
button-variant()
ybutton-outline-variant()
para admitir parámetros adicionales. -
Botones actualizados para garantizar un mayor contraste en los estados activo y flotante.
-
Los botones deshabilitados ahora tienen
pointer-events: none;
.
Tarjeta
-
Rompiendo Se eliminó
.card-deck
a favor de nuestra cuadrícula. Envuelva sus tarjetas en clases de columnas y agregue un contenedor principal.row-cols-*
para recrear mazos de cartas (pero con más control sobre la alineación responsive). -
Rompiendo Se eliminó
.card-columns
a favor de la masonería. Ver #28922. -
Rompiendo Se reemplazó el acordeón basado en
.card
por un nuevo componente Acordeón.
Carrusel
-
Se agregó una nueva
.carousel-dark
variante para texto, controles e indicadores oscuros ( ideal para fondos más claros). -
Se reemplazaron los íconos de chevron para los controles del carrusel con nuevos SVG de Iconos de Bootstrap.
Botón cerrar
-
Rompiendo Se cambió el nombre de
.close
a.btn-close
para obtener un nombre menos genérico. -
Los botones de cierre ahora usan una
background-image
(SVG incrustado) en lugar de un×
en el HTML, lo que permite una personalización más sencilla sin necesidad de tocar el marcado. -
Se agregó una nueva variante
.btn-close-white
que usafilter: invert(1)
para permitir un mayor contraste para descartar íconos contra fondos más oscuros.
Collapse
- Se eliminó el anclaje de desplazamiento para acordeones.
Desplegables
-
Se agregó una nueva variante
.dropdown-menu-dark
y variables asociadas para menús desplegables oscuros bajo demanda. -
Se agregó una nueva variable para
$dropdown-padding-x
. -
Se oscureció el divisor desplegable para mejorar el contraste.
-
Rompiendo Todos los eventos del menú desplegable ahora se activan en el botón de alternancia del menú desplegable y luego se distribuyen en el elemento principal.
-
Los menús desplegables ahora tienen un atributo
data-bs-popper="static"
establecido cuando la posición del menú desplegable es estática o el menú desplegable está en la barra de navegación. Esto lo agrega nuestro JavaScript y nos ayuda a usar estilos de posición personalizados sin interferir con el posicionamiento de Popper. -
Rompiendo Se eliminó la opción
flip
para el complemento desplegable en favor de la configuración nativa de Popper. Ahora puede desactivar el comportamiento de volteo pasando una matriz vacía parafallbackPlacements
opción en el modificador flip . -
Ahora se puede hacer clic en los menús desplegables con una nueva opción
autoClose
para controlar el comportamiento de cierre automático. Puede utilizar esta opción para aceptar el clic dentro o fuera del menú desplegable para hacerlo interactivo. -
Los menús desplegables ahora admiten
.dropdown-item
envueltos en<li>
s.
Jumbotron
- Rotura Se eliminó el componente jumbotron ya que se puede replicar con utilidades. Vea nuestro nuevo ejemplo de Jumbotron para una demostración.
Grupo de lista
- Se agregó un nuevo
.list-group-numbered
modificador para enumerar grupos.
Navs y pestañas
- Se agregaron nuevas variables
null
parafont-size
,font-weight
,color
y:hover
color
hasta la clase.nav-link
.
Barras de navegación
- Romper Las barras de navegación ahora requieren un contenedor en su interior (para simplificar drásticamente los requisitos de espaciado y el CSS requerido).
- Rompiendo La clase
.active
ya no se puede aplicar a.nav-item
s, debe aplicarse directamente en.nav-link
s.
Offcanvas
- Se agregó el nuevo componente offcanvas.
Paginación
-
Los enlaces de paginación ahora tienen un
margin-left
personalizable que se redondea dinámicamente en todas las esquinas cuando se separan unos de otros. -
Se agregaron
transition
a los enlaces de paginación.
Popovers
-
Rompiendo Se cambió el nombre de
.arrow
a.popover-arrow
en nuestra plantilla de ventana emergente predeterminada. -
Se cambió el nombre de la opción
whiteList
aallowList
.
Spinners
-
Los controles giratorios ahora respetan
prefers-reduced-motion: reduce
al ralentizar las animaciones. Ver #31882. -
Alineación vertical mejorada de la ruleta.
Toasts
-
Las tostadas ahora se pueden posicionar en un
.toast-container
con la ayuda de utilidades de posicionamiento. -
Se cambió la duración predeterminada del toast a 5 segundos.
-
Se eliminó el
overflow: hidden
de los mensajes del sistema y se reemplazó conborder-radius
adecuados con funcionescalc()
.
Tooltips
-
Rompiendo Se cambió el nombre de
.arrow
a.tooltip-arrow
en nuestra plantilla de tooltips predeterminada. -
Rompiendo El valor predeterminado para
fallbackPlacements
se cambia a['top', 'right', 'bottom', 'left']
para una mejor ubicación de los elementos popper. -
Rompiendo Se cambió el nombre de la opción
whiteList
aallowList
.
Utilidades
-
Última hora Se cambiaron los nombres de varias utilidades para usar nombres de propiedades lógicas en lugar de nombres direccionales con la adición de soporte RTL:
- Renombrado
.float-left
y.float-right
a.float-start
y.float-end
. - Renombrado
.border-left
y.border-right
a.border-start
y.border-end
. - Renombrado
.rounded-left
y.rounded-right
a.rounded-start
y.rounded-end
. - Renombrado
.ml-*
y.mr-*
a.ms-*
y.me-*
. - Renombrado
.pl-*
y.pr-*
a.ps-*
y.pe-*
. - Renombrado
.text-*-left
y.text-*-right
a.text-*-start
y.text-*-end
.
- Renombrado
-
Últimas Márgenes negativos deshabilitados de forma predeterminada.
-
Se agregó una nueva clase
.bg-body
para configurar rápidamente el fondo del<body>
en elementos adicionales. -
Se agregaron nuevas utilidades de posición para
top
,right
,bottom
yleft
. Los valores incluyen0
,50%
y100%
para cada propiedad. -
Se agregó el nuevo
.translate-middle-x
& Utilidades.translate-middle-y
para centrar horizontal o verticalmente elementos posicionados absolutos/fijos. -
Se agregaron nuevas
border-width
(utilidades). -
Rompiendo Se cambió el nombre de
.text-monospace
a.font-monospace
. -
Rompiendo Se eliminó
.text-hide
porque es un método anticuado para ocultar texto que ya no debería usarse. -
Se agregaron utilidades
.fs-*
para las utilidadesfont-size
(con RFS habilitado). Estos usan la misma escala que los encabezados predeterminados de HTML (1-6, de grande a pequeño) y se pueden modificar a través del mapa Sass. -
Rompiendo Se cambió el nombre de las utilidades
.font-weight-*
a.fw-*
para mayor brevedad y coherencia. . -
Últimas Se cambió el nombre de la utilidad
.font-italic
a.fst-italic
para mayor brevedad y coherencia con las nuevas Utilidad.fst-normal
. -
Se agregó
.d-grid
para mostrar utilidades y nuevas utilidadesgap
(.gap
) para diseños CSS Grid y flexbox. -
Rompiendo Se eliminaron
.rounded-sm
yrounded-lg
y se introdujo una nueva escala de clases. ,.rounded-0
a.rounded-3
. Ver #31687. -
Se agregaron nuevas utilidades
line-height
:.lh-1
,.lh-sm
,.lh-base
y.lh-lg
. Consulte aquí. -
Movimos la utilidad
.d-none
en nuestro CSS para darle más peso sobre otras utilidades de visualización. -
Se extendió el asistente
.visually-hidden-focusable
para que también funcione en contenedores, usando:focus-within
.
Ayudantes
-
Último Se ha cambiado el nombre de los ayudantes de inserción responsive a ayudantes de ratio con nuevos nombres de clases y comportamientos mejorados, así como una útil variable CSS.
- Se ha cambiado el nombre de las clases para cambiar
by
ax
en la relación de aspecto. Por ejemplo,.ratio-16by9
ahora es.ratio-16x9
. - Hemos eliminado el
.embed-responsive-item
y el selector de grupo de elementos en favor de un.ratio > *
selector. No se necesitan más clases y el asistente de proporción ahora funciona con cualquier elemento HTML. - El mapa Sass
$embed-responsive-aspect-ratios
ha sido renombrado a$aspect-ratios
y sus valores han sido simplificado para incluir el nombre de la clase y el porcentaje como el parkey: value
. - Las variables CSS ahora se generan e incluyen para cada valor en el mapa Sass. Modifique la variable
--bs-aspect-ratio
en.ratio
para crear cualquier relación de aspecto personalizada.
- Se ha cambiado el nombre de las clases para cambiar
-
Última hora Las clases de “lector de pantalla” ahora son clases “visualmente ocultas”.
- Cambié el archivo Sass de
scss/helpers/_screenreaders.scss
ascss/helpers/_visually-hidden.scss
- Renombrado
.sr-only
y.sr-only-focusable
a.visually-hidden
y.visually-hidden-focusable
- Renombrados mixins
sr-only()
ysr-only-focusable()
avisually-hidden()
yvisually-hidden-focusable()
.
- Cambié el archivo Sass de
-
bootstrap-utilities.css
ahora también incluye nuestros ayudantes. Ya no es necesario importar los ayudantes en compilaciones personalizadas.
JavaScript
-
Se eliminó la dependencia de jQuery y se reescribieron los complementos para que estén en JavaScript normal.
-
Últimas Los atributos de datos para todos los complementos de JavaScript ahora tienen espacios de nombres para ayudar a distinguir la funcionalidad de Bootstrap de la de terceros y de su propio código. Por ejemplo, usamos
data-bs-toggle
en lugar dedata-toggle
. -
Todos los complementos ahora pueden aceptar un selector de CSS como primer argumento. Puedes pasar un elemento DOM o cualquier selector de CSS válido para crear una nueva instancia de el complemento:
const modal = new bootstrap.Modal('#myModal') const dropdown = new bootstrap.Dropdown('[data-bs-toggle="dropdown"]')
-
popperConfig
se puede pasar como una función que acepta la configuración Popper predeterminada de Bootstrap como argumento, para que puedas fusionar esta configuración predeterminada a tu manera. Se aplica a menús desplegables, ventanas emergentes e tooltips. -
El valor predeterminado para
fallbackPlacements
se cambia a['top', 'right', 'bottom', 'left']
para una mejor ubicación de los elementos Popper. Se aplica a menús desplegables, ventanas emergentes e tooltips. -
Se eliminó el guión bajo de métodos estáticos públicos como
_getInstance()
→getInstance()
.