Migración a v5
Realice un seguimiento y revise los cambios en los archivos de origen, la documentación y los componentes de Bootstrap para ayudarlo a migrar de v4 a v5.
dependencias
- Dejó jQuery.
- Actualizado de Popper v1.x a Popper v2.x.
- Se reemplazó Libsass con Dart Sass ya que nuestro compilador Sass dado a Libsass estaba obsoleto.
- Migrado de Jekyll a Hugo para construir nuestra documentación.
Compatibilidad con navegador
- Soltó Internet Explorer 10 y 11
- Eliminado Microsoft Edge < 16 (Legacy Edge)
- Firefox caído < 60
- Safari eliminado < 12
- Soltó iOS Safari < 12
- Chrome caído < 60
Cambios en la documentación
- Página de inicio, diseño de documentos y pie de página rediseñados.
- Se agregó una nueva guía de paquetes .
- Se agregó una nueva sección Personalizar , reemplazando la página Temas de v4 , con nuevos detalles sobre Sass, opciones de configuración global, esquemas de color, variables CSS y más.
- Se reorganizó toda la documentación de los formularios en la nueva sección de Formularios , dividiendo el contenido en páginas más enfocadas.
- Del mismo modo, se actualizó 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 "Navegaciones" a "Navegaciones y pestañas".
- Se cambió el nombre de la página "Cheques" a "Cheques y radios".
- Se rediseñó la barra de navegación y se agregó una nueva subnavegación para facilitar la navegación por nuestros sitios y versiones de documentos.
- Se agregó un nuevo método abreviado de teclado para el campo de búsqueda: Ctrl + /.
Hablar con descaro a
-
Hemos eliminado las fusiones de mapas de Sass predeterminadas para facilitar la eliminación de valores redundantes. Tenga en cuenta que ahora debe definir todos los valores en los mapas Sass como
$theme-colors
. Vea cómo lidiar con los mapas de Sass . -
RoturaFunción renombrada
color-yiq()
y variables relacionadas,color-contrast()
ya que ya no está relacionada con el espacio de color YIQ. Ver #30168.$yiq-contrasted-threshold
se renombra a$min-contrast-ratio
.$yiq-text-dark
y$yiq-text-light
se renombran respectivamente como$color-contrast-dark
y$color-contrast-light
.
-
RoturaLos parámetros de mixins de consulta de medios han cambiado para un enfoque más lógico.
media-breakpoint-down()
utiliza el propio punto de interrupción en lugar del siguiente punto de interrupción (p. ej.,media-breakpoint-down(lg)
en lugar de ventanas demedia-breakpoint-down(md)
visualización de destino más pequeñas quelg
).- De manera similar, el segundo parámetro
media-breakpoint-between()
también usa el propio punto de interrupción en lugar del siguiente punto de interrupción (por ejemplo,media-between(sm, lg)
en lugar de las vistas demedia-breakpoint-between(sm, md)
destino entresm
ylg
).
-
RoturaSe eliminaron los estilos de impresión y
$enable-print-styles
la variable. Las clases de visualización de impresión todavía existen. Ver #28339 . -
RoturaSe eliminaron las funciones
color()
,theme-color()
ygray()
en favor de las variables. Ver #29083 . -
Rotura
theme-color-level()
Función renombradacolor-level()
y ahora acepta cualquier color que desee en lugar de solo$theme-color
colores. Ver #29083 Cuidado:color-level()
se dejó caer más tardev5.0.0-alpha3
. -
RoturaRenombrado
$enable-prefers-reduced-motion-media-query
y$enable-pointer-cursor-for-buttons
para$enable-reduced-motion
y$enable-button-pointers
por brevedad. -
RoturaEliminado el
bg-gradient-variant()
mixin. Use la.bg-gradient
clase para agregar degradados a los elementos en lugar de las.bg-gradient-*
clases generadas. -
Rotura Se eliminaron los 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
scale-color()
Función renombradashift-color()
para evitar la colisión con la propia función de escalado de color de Sass. -
box-shadow
Los mixins ahora permitennull
valores y se eliminannone
de múltiples argumentos. Ver #30394 . -
El
border-radius()
mixin ahora tiene un valor predeterminado.
sistema de colores
-
El sistema de color con el que funcionaba
color-level()
y$theme-color-interval
se eliminó a 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. Elshift-color()
matizará o matizará un color dependiendo de si su parámetro de peso es positivo o negativo. Ver #30622 para más detalles. -
Se agregaron nuevos tintes y sombras para cada color, proporcionando nueve colores separados para cada color base, como nuevas variables de 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 color de
$gray-900
a$black
. -
Para respaldar nuestro sistema de color, hemos agregado nuevas funciones personalizadas
tint-color()
parashade-color()
mezclar nuestros colores de manera adecuada.
Actualizaciones de cuadrícula
-
¡Nuevo punto de quiebre! Se agregó un nuevo
xxl
punto de interrupción para1400px
y hacia arriba. No hay cambios en todos los demás puntos de interrupción. -
Canalones mejorados. Los canalones ahora se establecen en rems y son más angostos que v4 (
1.5rem
, o aproximadamente24px
, hacia abajo desde30px
). Esto alinea las canaletas de nuestro sistema de red con nuestras utilidades de espaciado.- Se agregó una nueva clase de medianil (
.g-*
,.gx-*
y.gy-*
) para controlar canalones horizontales/verticales, canalones horizontales y canalones verticales. - RoturaRenombrado
.no-gutters
a.g-0
para que coincida con las nuevas utilidades de canalón.
- Se agregó una nueva clase de medianil (
-
Las columnas ya no se
position: relative
aplican, por lo que es posible que deba agregar.position-relative
algunos elementos para restaurar ese comportamiento. -
RoturaEliminó varias
.order-*
clases que a menudo no se usaban. Ahora solo proporcionamos productos listos.order-1
para.order-5
usar. -
RoturaSe eliminó el
.media
componente, ya que se puede replicar fácilmente con las utilidades. Consulte el n.º 28265 y la página de utilidades flexibles para ver un ejemplo . -
Rotura
bootstrap-grid.css
ahora solo se aplicabox-sizing: border-box
a la columna en lugar de restablecer el tamaño global del cuadro. De esta manera, nuestros estilos de cuadrícula se pueden usar en más lugares sin interferencias. -
$enable-grid-classes
ya no deshabilita la generación de clases contenedoras. Ver #29146. -
Se actualizó el
make-col
mixin por defecto a columnas iguales sin un tamaño específico.
Contenido, reinicio, etc.
-
RFS ahora está habilitado de forma predeterminada. Los encabezados que usan el
font-size()
mixin se ajustarán automáticamentefont-size
a su escala con la ventana gráfica. Esta característica se incorporó previamente con v4. -
RoturaRevisamos nuestra tipografía de visualización para reemplazar nuestras
$display-*
variables y con un$display-font-sizes
mapa Sass. También se eliminaron las$display-*-weight
variables individuales por un solo$display-font-weight
y ajustadofont-size
s. -
Se agregaron dos nuevos
.display-*
tamaños de encabezado.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 un mayor control sobre el estilo.
-
RoturaLas tablas anidadas ya no heredan estilos.
-
Rotura
.thead-light
y.thead-dark
se descartan en favor de las.table-*
clases variantes que se pueden usar para todos los elementos de la tabla ( ,thead
,tbody
,tfoot
ytr
) .th
td
-
RoturaEl
table-row-variant()
mixin se renombratable-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 énfasis se calculan automáticamente en función de las variables de factor de la tabla. -
Divida las variables de relleno de celdas de la tabla en
-y
y-x
. -
RoturaClase abandonada
.pre-scrollable
. Ver #29135 -
Rotura
.text-*
Las utilidades ya no agregan estados de enfoque y desplazamiento a los enlaces..link-*
En su lugar, se pueden usar clases auxiliares. Ver #29267 -
RoturaClase abandonada
.text-justify
. Ver #29793 -
Rotura
<hr>
los elementos ahora se usanheight
en lugar deborder
para admitir mejor elsize
atributo. Esto también permite el uso de utilidades de relleno para crear divisores más gruesos (p. ej.,<hr class="py-1">
). -
Restablecer elementos horizontales predeterminados y
padding-left
del valor predeterminado del navegador a .<ul>
<ol>
40px
2rem
-
Se agregó
$enable-smooth-scroll
, que se aplicascroll-behavior: smooth
globalmente, excepto para los usuarios que solicitan un movimiento reducido a través deprefers-reduced-motion
una consulta de medios. Ver #31877
RTL
- Las variables, utilidades y mixins específicos de la dirección horizontal se han renombrado 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 nuevas formas flotantes! Hemos promovido el ejemplo de etiquetas flotantes a componentes de formulario totalmente compatibles. Vea la nueva página de etiquetas flotantes.
-
Rotura Elementos de formulario nativos y personalizados consolidados. Se consolidaron casillas de verificación, radios, selecciones y otras entradas que tenían clases nativas y personalizadas en v4. Ahora, casi todos nuestros elementos de formulario son totalmente personalizados, la mayoría sin necesidad de HTML personalizado.
.custom-check
.form-check
es ahora.custom-check.custom-switch
.form-check.form-switch
es ahora.custom-select
.form-select
es ahora.custom-file
y.form-file
han sido reemplazados por estilos personalizados en la parte superior de.form-control
..custom-range
.form-range
es ahora- Eliminado nativo
.form-control-file
y.form-control-range
.
-
Roturacaído
.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 error Falta el radio del borde en el grupo de entrada con el error de retroalimentación de validación finalmente se corrige al agregar una
.has-validation
clase adicional a los grupos de entrada con validación. -
Rotura Se eliminaron las clases de diseño específicas del formulario para nuestro sistema de cuadrícula. Use nuestra cuadrícula y utilidades en lugar de
.form-group
,.form-row
o.form-inline
. -
RoturaLas etiquetas de formulario ahora requieren
.form-label
. -
Rotura
.form-text
ya no se establecedisplay
, lo que le permite crear texto de ayuda en línea o en bloque como desee simplemente cambiando el elemento HTML. -
Los íconos de validación ya no se aplican a los correos
<select>
electrónicos conmultiple
. -
Archivos Sass de origen reorganizados en
scss/forms/
, incluidos los estilos de grupo de entrada.
Componentes
- Valores unificados
padding
para alertas, migas de pan, tarjetas, menús desplegables, grupos de listas, modales, popovers e información sobre herramientas que se basarán en nuestra$spacer
variable. Ver #30564 .
Acordeón
- Se agregó un nuevo componente de acordeón .
Alertas
-
Las alertas ahora tienen ejemplos con íconos .
-
Se eliminaron los estilos personalizados para correos electrónicos
<hr>
en cada alerta, ya que ya usancurrentColor
.
Insignias
-
RoturaSe eliminaron todas
.badge-*
las clases de color para las utilidades de fondo (p. ej., usar.bg-primary
en lugar de.badge-primary
). -
RoturaEliminado :
.badge-pill
use la.rounded-pill
utilidad en su lugar. -
RoturaSe eliminaron los estilos de desplazamiento y enfoque para
<a>
y<button>
elementos. -
Se aumentó el relleno predeterminado para las insignias de
.25em
/.5em
a.35em
/.65em
.
Migas de pan
-
Simplificó la apariencia predeterminada de las migas de pan 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
-
Rotura Los botones de alternar , con casillas de verificación o radios, ya no requieren JavaScript y tienen un nuevo marcado. Ya no necesitamos un elemento envolvente, lo agregamos
.btn-check
al<input>
, y lo emparejamos con cualquier.btn
clase en el<label>
. Ver #30650 . Los documentos para esto se han movido de nuestra página de Botones a la nueva sección de Formularios. -
Rotura Retirado
.btn-block
por servicios públicos. En lugar de usar.btn-block
on.btn
, envuelva sus botones con.d-grid
una.gap-*
utilidad para espaciarlos según sea necesario. Cambie a clases receptivas para tener aún más control sobre ellas. Lea los documentos para ver algunos ejemplos. -
Se actualizaron nuestros
button-variant()
ybutton-outline-variant()
mixins para admitir parámetros adicionales. -
Botones actualizados para garantizar un mayor contraste en los estados activo y de desplazamiento.
-
Los botones deshabilitados ahora tienen
pointer-events: none;
.
Tarjeta
-
RoturaCayó
.card-deck
a favor de nuestra cuadrícula. Envuelve tus cartas en clases de columnas y agrega un.row-cols-*
contenedor principal para recrear mazos de cartas (pero con más control sobre la alineación receptiva). -
RoturaAbandonado
.card-columns
a favor de la Masonería. Ver #28922 . -
RoturaSe reemplazó el
.card
acordeón basado con un nuevo componente Accordion .
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 de carrusel con nuevos SVG de Bootstrap Icons .
botón cerrar
-
RoturaRenombrado
.close
a.btn-close
por un nombre menos genérico. -
Los botones de cierre ahora usan un
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
.btn-close-white
variante quefilter: invert(1)
permite habilitar íconos de descarte de mayor contraste contra fondos más oscuros.
Colapsar
- Se eliminó el anclaje de desplazamiento para acordeones.
Listas deplegables
-
Se agregaron nuevas
.dropdown-menu-dark
variantes y variables asociadas para menús desplegables oscuros bajo demanda. -
Se agregó una nueva variable para
$dropdown-padding-x
. -
Oscureció el divisor desplegable para mejorar el contraste.
-
RoturaTodos los eventos para el menú desplegable ahora se activan en el botón de alternancia del menú desplegable y luego se expanden al elemento principal.
-
Los menús desplegables ahora tienen un
data-bs-popper="static"
conjunto de atributos cuando el posicionamiento del menú desplegable es estático ydata-bs-popper="none"
cuando 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. -
RoturaSe eliminó
flip
la opción para el complemento desplegable a favor de la configuración nativa de Popper. Ahora puede deshabilitar el comportamiento de voltear pasando una matriz vacía para lafallbackPlacements
opción en el modificador de volteo . -
Ahora se puede hacer clic en los menús desplegables con una nueva
autoClose
opción para manejar el comportamiento de cierre automático . Puede usar esta opción para aceptar el clic dentro o fuera del menú desplegable para hacerlo interactivo. -
Los menús desplegables ahora admiten
.dropdown-item
s envueltos en<li>
s.
jumbotron
- RoturaSe 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 a la lista de grupos.
Navegaciones y pestañas
- Se agregaron nuevas
null
variables parafont-size
,font-weight
,color
y:hover
color
a la.nav-link
clase.
barras de navegación
- RoturaLas barras de navegación ahora requieren un contenedor dentro (para simplificar drásticamente los requisitos de espacio y CSS requerido).
Offcanvas
- Se agregó el nuevo componente offcanvas .
Paginación
-
Los enlaces de paginación ahora son personalizables
margin-left
y se redondean dinámicamente en todas las esquinas cuando se separan entre sí. -
Se agregaron
transition
s a los enlaces de paginación.
Popovers
-
RoturaRenombrado
.arrow
en.popover-arrow
nuestra plantilla de ventana emergente predeterminada. -
whiteList
Opción renombrada aallowList
.
Hilanderos
-
Los giradores ahora honran
prefers-reduced-motion: reduce
al ralentizar las animaciones. Ver #31882 . -
Mejora de la alineación vertical de la rueda giratoria.
tostadas
-
Las tostadas ahora se pueden colocar en un
.toast-container
con la ayuda de las utilidades de posicionamiento . -
Se cambió la duración predeterminada del brindis a 5 segundos.
-
Eliminado
overflow: hidden
de las tostadas y reemplazado porborder-radius
s adecuados concalc()
funciones.
Información sobre herramientas
-
RoturaRenombrado
.arrow
a.tooltip-arrow
en nuestra plantilla de información sobre herramientas predeterminada. -
RoturaEl valor predeterminado para
fallbackPlacements
se cambia a['top', 'right', 'bottom', 'left']
para una mejor ubicación de los elementos emergentes. -
Rotura
whiteList
Opción renombrada aallowList
.
Utilidades
-
RoturaSe cambiaron los nombres de varias utilidades para usar nombres de propiedades lógicas en lugar de nombres direccionales con la adición de compatibilidad con RTL:
- Renombrado
.left-*
y.right-*
a.start-*
y.end-*
. - 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
-
RoturaMárgenes negativos deshabilitados por defecto.
-
Se agregó una nueva
.bg-body
clase para configurar rápidamente el<body>
fondo de los elementos adicionales. -
Se agregaron nuevas utilidades de posición para
top
,right
,bottom
yleft
. Los valores incluyen0
,50%
y100%
para cada propiedad. -
Se agregaron nuevas
.translate-middle-x
y.translate-middle-y
utilidades para centrar horizontal o verticalmente elementos de posición absoluta/fija. -
Se agregaron nuevas
border-width
utilidades . -
RoturaRenombrado
.text-monospace
a.font-monospace
. -
RoturaEliminado
.text-hide
porque es un método anticuado para ocultar texto que ya no debería usarse. -
Se agregaron
.fs-*
utilidades parafont-size
utilidades (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 de Sass. -
Rotura
.font-weight-*
Utilidades renombradas en cuanto.fw-*
a brevedad y consistencia. -
Rotura
.font-style-*
Utilidades renombradas en cuanto.fst-*
a brevedad y consistencia. -
Se agregaron
.d-grid
para mostrar utilidades y nuevasgap
utilidades (.gap
) para diseños CSS Grid y flexbox. -
RoturaEliminado
.rounded-sm
yrounded-lg
, e introducido una nueva escala de clases,.rounded-0
a.rounded-3
. Ver #31687 . -
Se agregaron nuevas
line-height
utilidades:.lh-1
,.lh-sm
y . Ver aquí _.lh-base
.lh-lg
-
Movió la
.d-none
utilidad en nuestro CSS para darle más peso sobre otras utilidades de visualización. -
Extendió el
.visually-hidden-focusable
asistente para trabajar también en contenedores, usando:focus-within
.
ayudantes
-
Rotura Se ha cambiado el nombre de los asistentes de incrustación receptivos a asistentes de proporción con nuevos nombres de clase y comportamientos mejorados, así como una variable CSS útil.
- Se ha cambiado el nombre de las clases para cambiar
by
ax
en la relación de aspecto. Por ejemplo,.ratio-16by9
es ahora.ratio-16x9
. - Hemos eliminado el
.embed-responsive-item
selector de grupo de elementos y en favor de un.ratio > *
selector más simple. No se necesita más clase, y el ayudante de relación ahora funciona con cualquier elemento HTML. - Se
$embed-responsive-aspect-ratios
ha cambiado el nombre del mapa de Sass$aspect-ratios
y sus valores se han simplificado para incluir el nombre de la clase y el porcentaje comokey: value
par. - Las variables CSS ahora se generan e incluyen para cada valor en el mapa Sass. Modifique la
--bs-aspect-ratio
variable en.ratio
para crear cualquier relación de aspecto personalizada .
- Se ha cambiado el nombre de las clases para cambiar
-
Rotura 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
- Renombrado
sr-only()
ysr-only-focusable()
mixins avisually-hidden()
yvisually-hidden-focusable()
.
- Cambió el archivo Sass de
-
bootstrap-utilities.css
ahora también incluye a nuestros ayudantes. Ya no es necesario importar ayudantes en compilaciones personalizadas.
JavaScript
-
Se eliminó la dependencia de jQuery y se reescribieron los complementos para que estén en JavaScript normal.
-
RoturaLos atributos de datos para todos los complementos de JavaScript ahora tienen espacios de nombres para ayudar a distinguir la funcionalidad de Bootstrap 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 CSS como primer argumento. Puede pasar un elemento DOM o cualquier selector de CSS válido para crear una nueva instancia del complemento:
var modal = new bootstrap.Modal('#myModal') var dropdown = new bootstrap.Dropdown('[data-bs-toggle="dropdown"]')
-
popperConfig
se puede pasar como una función que acepta la configuración predeterminada de Popper de Bootstrap como argumento, para que pueda fusionar esta configuración predeterminada a su manera. Se aplica a los menús desplegables, popovers e información sobre herramientas. -
El valor predeterminado para
fallbackPlacements
se cambia a['top', 'right', 'bottom', 'left']
para una mejor ubicación de los elementos Popper. Se aplica a los menús desplegables, popovers e información sobre herramientas. -
Se eliminó el guión bajo de los métodos estáticos públicos como
_getInstance()
→getInstance()
.