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-thresholdse renombra a$min-contrast-ratio.$yiq-text-darky$yiq-text-lightse renombran respectivamente como$color-contrast-darky$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 entresmylg).
-
RoturaSe eliminaron los estilos de impresión y
$enable-print-stylesla 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-colorcolores. Ver #29083 Cuidado:color-level()se dejó caer más tardev5.0.0-alpha3. -
RoturaRenombrado
$enable-prefers-reduced-motion-media-queryy$enable-pointer-cursor-for-buttonspara$enable-reduced-motiony$enable-button-pointerspor brevedad. -
RoturaEliminado el
bg-gradient-variant()mixin. Use la.bg-gradientclase 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-focusyhover-focus-activefloat()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-shadowLos mixins ahora permitennullvalores y se eliminannonede 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-intervalse 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-900a$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
xxlpunto de interrupción para1400pxy 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-guttersa.g-0para que coincida con las nuevas utilidades de canalón.
- Se agregó una nueva clase de medianil (
-
Las columnas ya no se
position: relativeaplican, por lo que es posible que deba agregar.position-relativealgunos elementos para restaurar ese comportamiento. -
RoturaEliminó varias
.order-*clases que a menudo no se usaban. Ahora solo proporcionamos productos listos.order-1para.order-5usar. -
RoturaSe eliminó el
.mediacomponente, 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.cssahora solo se aplicabox-sizing: border-boxa 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-classesya no deshabilita la generación de clases contenedoras. Ver #29146. -
Se actualizó el
make-colmixin 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-sizea 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-sizesmapa Sass. También se eliminaron las$display-*-weightvariables individuales por un solo$display-font-weighty ajustadofont-sizes. -
Se agregaron dos nuevos
.display-*tamaños de encabezado.display-5y.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-lighty.thead-darkse descartan en favor de las.table-*clases variantes que se pueden usar para todos los elementos de la tabla ( ,thead,tbody,tfootytr) .thtd -
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
-yy-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 usanheighten lugar deborderpara admitir mejor elsizeatributo. 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-leftdel valor predeterminado del navegador a .<ul><ol>40px2rem -
Se agregó
$enable-smooth-scroll, que se aplicascroll-behavior: smoothglobalmente, excepto para los usuarios que solicitan un movimiento reducido a través deprefers-reduced-motionuna 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,
startyenden lugar deleftyright.
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-checkes ahora.custom-check.custom-switch.form-check.form-switches ahora.custom-select.form-selectes ahora.custom-filey.form-filehan sido reemplazados por estilos personalizados en la parte superior de.form-control..custom-range.form-rangees ahora- Eliminado nativo
.form-control-filey.form-control-range.
-
Roturacaído
.input-group-appendy.input-group-prepend. Ahora puede simplemente agregar botones y.input-group-textcomo 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-validationclase 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-rowo.form-inline. -
RoturaLas etiquetas de formulario ahora requieren
.form-label. -
Rotura
.form-textya 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
paddingpara alertas, migas de pan, tarjetas, menús desplegables, grupos de listas, modales, popovers e información sobre herramientas que se basarán en nuestra$spacervariable. 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-primaryen lugar de.badge-primary). -
RoturaEliminado :
.badge-pilluse la.rounded-pillutilidad 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/.5ema.35em/.65em.
Migas de pan
-
Simplificó la apariencia predeterminada de las migas de pan eliminando
padding,background-coloryborder-radius. -
Se agregó una nueva propiedad personalizada de CSS
--bs-breadcrumb-dividerpara 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-checkal<input>, y lo emparejamos con cualquier.btnclase 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-blockpor servicios públicos. En lugar de usar.btn-blockon.btn, envuelva sus botones con.d-griduna.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-decka 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-columnsa favor de la Masonería. Ver #28922 . -
RoturaSe reemplazó el
.cardacordeón basado con un nuevo componente Accordion .
Carrusel
-
Se agregó una nueva
.carousel-darkvariante 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
.closea.btn-closepor 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-whitevariante 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-darkvariantes 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ó
flipla 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 lafallbackPlacementsopción en el modificador de volteo . -
Ahora se puede hacer clic en los menús desplegables con una nueva
autoCloseopció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-items 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-numberedmodificador a la lista de grupos.
Navegaciones y pestañas
- Se agregaron nuevas
nullvariables parafont-size,font-weight,colory:hovercolora la.nav-linkclase.
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-lefty se redondean dinámicamente en todas las esquinas cuando se separan entre sí. -
Se agregaron
transitions a los enlaces de paginación.
Popovers
-
RoturaRenombrado
.arrowen.popover-arrownuestra plantilla de ventana emergente predeterminada. -
whiteListOpción renombrada aallowList.
Hilanderos
-
Los giradores ahora honran
prefers-reduced-motion: reduceal 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-containercon la ayuda de las utilidades de posicionamiento . -
Se cambió la duración predeterminada del brindis a 5 segundos.
-
Eliminado
overflow: hiddende las tostadas y reemplazado porborder-radiuss adecuados concalc()funciones.
Información sobre herramientas
-
RoturaRenombrado
.arrowa.tooltip-arrowen nuestra plantilla de información sobre herramientas predeterminada. -
RoturaEl valor predeterminado para
fallbackPlacementsse cambia a['top', 'right', 'bottom', 'left']para una mejor ubicación de los elementos emergentes. -
Rotura
whiteListOpció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-lefty.float-righta.float-starty.float-end. - Renombrado
.border-lefty.border-righta.border-starty.border-end. - Renombrado
.rounded-lefty.rounded-righta.rounded-starty.rounded-end. - Renombrado
.ml-*y.mr-*a.ms-*y.me-*. - Renombrado
.pl-*y.pr-*a.ps-*y.pe-*. - Renombrado
.text-lefty.text-righta.text-starty.text-end.
- Renombrado
-
RoturaMárgenes negativos deshabilitados por defecto.
-
Se agregó una nueva
.bg-bodyclase para configurar rápidamente el<body>fondo de los elementos adicionales. -
Se agregaron nuevas utilidades de posición para
top,right,bottomyleft. Los valores incluyen0,50%y100%para cada propiedad. -
Se agregaron nuevas
.translate-middle-xy.translate-middle-yutilidades para centrar horizontal o verticalmente elementos de posición absoluta/fija. -
Se agregaron nuevas
border-widthutilidades . -
RoturaRenombrado
.text-monospacea.font-monospace. -
RoturaEliminado
.text-hideporque es un método anticuado para ocultar texto que ya no debería usarse. -
Se agregaron
.fs-*utilidades parafont-sizeutilidades (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-gridpara mostrar utilidades y nuevasgaputilidades (.gap) para diseños CSS Grid y flexbox. -
RoturaEliminado
.rounded-smyrounded-lg, e introducido una nueva escala de clases,.rounded-0a.rounded-3. Ver #31687 . -
Se agregaron nuevas
line-heightutilidades:.lh-1,.lh-smy . Ver aquí _.lh-base.lh-lg -
Movió la
.d-noneutilidad en nuestro CSS para darle más peso sobre otras utilidades de visualización. -
Extendió el
.visually-hidden-focusableasistente 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
byaxen la relación de aspecto. Por ejemplo,.ratio-16by9es ahora.ratio-16x9. - Hemos eliminado el
.embed-responsive-itemselector 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-ratiosha cambiado el nombre del mapa de Sass$aspect-ratiosy sus valores se han simplificado para incluir el nombre de la clase y el porcentaje comokey: valuepar. - Las variables CSS ahora se generan e incluyen para cada valor en el mapa Sass. Modifique la
--bs-aspect-ratiovariable en.ratiopara 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.scssascss/helpers/_visually-hidden.scss - Renombrado
.sr-onlyy.sr-only-focusablea.visually-hiddeny.visually-hidden-focusable - Renombrado
sr-only()ysr-only-focusable()mixins avisually-hidden()yvisually-hidden-focusable().
- Cambió el archivo Sass de
-
bootstrap-utilities.cssahora 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-toggleen 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"]') -
popperConfigse 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
fallbackPlacementsse 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().