Bootstrap de tematización
Personalice Bootstrap 4 con nuestras nuevas variables Sass integradas para preferencias de estilo global para facilitar la creación de temas y cambios de componentes.
En Bootstrap 3, la tematización estuvo impulsada en gran medida por anulaciones de variables en LESS, CSS personalizado y una hoja de estilo de tema separada que incluimos en nuestros dist
archivos. Con un poco de esfuerzo, se podría rediseñar por completo el aspecto de Bootstrap 3 sin tocar los archivos principales. Bootstrap 4 proporciona un enfoque familiar, pero ligeramente diferente.
Ahora, la tematización se logra mediante variables Sass, mapas Sass y CSS personalizado. No hay una hoja de estilo de tema más dedicada; en su lugar, puede habilitar el tema incorporado para agregar degradados, sombras y más.
Utilice nuestros archivos Sass de origen para aprovechar variables, mapas, combinaciones y más.
Siempre que sea posible, evite modificar los archivos principales de Bootstrap. Para Sass, eso significa crear su propia hoja de estilo que importe Bootstrap para que pueda modificarla y ampliarla. Suponiendo que está utilizando un administrador de paquetes como npm, tendrá una estructura de archivos que se ve así:
Si descargó nuestros archivos fuente y no está utilizando un administrador de paquetes, querrá configurar manualmente algo similar a esa estructura, manteniendo los archivos fuente de Bootstrap separados de los suyos.
En su custom.scss
, importará los archivos Sass de origen de Bootstrap. Tiene dos opciones: incluir todo Bootstrap o elegir las partes que necesita. Recomendamos lo último, aunque tenga en cuenta que existen algunos requisitos y dependencias entre nuestros componentes. También deberá incluir algo de JavaScript para nuestros complementos.
Con esa configuración en su lugar, puede comenzar a modificar cualquiera de las variables y mapas de Sass en su archivo custom.scss
. También puede comenzar a agregar partes de Bootstrap en la // Optional
sección según sea necesario. Sugerimos usar la pila de importación completa de nuestro bootstrap.scss
archivo como punto de partida.
Cada variable de Sass en Bootstrap 4 incluye el !default
indicador que le permite anular el valor predeterminado de la variable en su propio Sass sin modificar el código fuente de Bootstrap. Copie y pegue las variables según sea necesario, modifique sus valores y elimine la !default
bandera. Si ya se asignó una variable, no se reasignará con los valores predeterminados en Bootstrap.
Encontrará la lista completa de variables de Bootstrap en scss/_variables.scss
.
Las anulaciones de variables dentro del mismo archivo Sass pueden estar antes o después de las variables predeterminadas. Sin embargo, al anular archivos Sass, sus anulaciones deben realizarse antes de importar los archivos Sass de Bootstrap.
Aquí hay un ejemplo que cambia el background-color
y color
por el <body>
al importar y compilar Bootstrap a través de npm:
Repita según sea necesario para cualquier variable en Bootstrap, incluidas las opciones globales a continuación.
Bootstrap 4 incluye un puñado de mapas Sass, pares de valores clave que facilitan la generación de familias de CSS relacionadas. Usamos mapas Sass para nuestros colores, puntos de interrupción de cuadrícula y más. Al igual que las variables de Sass, todos los mapas de Sass incluyen la !default
bandera y se pueden anular y ampliar.
Algunos de nuestros mapas Sass se fusionan en mapas vacíos de forma predeterminada. Esto se hace para permitir una fácil expansión de un mapa Sass determinado, pero tiene el costo de hacer que la eliminación de elementos de un mapa sea un poco más difícil.
Para modificar un color existente en nuestro $theme-colors
mapa, agregue lo siguiente a su archivo Sass personalizado:
Para agregar un nuevo color a $theme-colors
, agregue la nueva clave y valor:
Para eliminar colores de $theme-colors
, o de cualquier otro mapa, use map-remove
. Tenga en cuenta que debe insertarlo entre nuestros requisitos y opciones:
Bootstrap asume la presencia de algunas claves específicas dentro de los mapas de Sass tal como las usamos y las ampliamos nosotros mismos. A medida que personaliza los mapas incluidos, es posible que encuentre errores cuando se utiliza la clave de un mapa Sass específico.
Por ejemplo, usamos las teclas , y de primary
para success
enlaces , botones y estados de formulario. Reemplazar los valores de estas claves no debería presentar problemas, pero eliminarlas puede causar problemas de compilación de Sass. En estos casos, deberá modificar el código Sass que utiliza esos valores.danger
$theme-colors
Bootstrap utiliza varias funciones de Sass, pero solo un subconjunto es aplicable a la tematización general. Hemos incluido tres funciones para obtener valores de los mapas de colores:
Estos le permiten elegir un color de un mapa Sass de forma muy similar a como usaría una variable de color de v3.
También tenemos otra función para obtener un nivel particular de color del $theme-colors
mapa. Los valores de nivel negativos aclararán el color, mientras que los niveles más altos lo oscurecerán.
En la práctica, llamaría a la función y pasaría dos parámetros: el nombre del color $theme-colors
(p. ej., primario o peligro) y un nivel numérico.
Se podrían agregar funciones adicionales en el futuro o su propio Sass personalizado para crear funciones de nivel para mapas Sass adicionales, o incluso uno genérico si desea ser más detallado.
Una función adicional que incluimos en Bootstrap es la función de contraste de color, color-yiq
. Utiliza el espacio de color YIQ para devolver automáticamente un color de contraste claro ( #fff
) u oscuro ( #111
) basado en el color base especificado. Esta función es especialmente útil para mixins o bucles en los que genera varias clases.
Por ejemplo, para generar muestras de color a partir de nuestro $theme-colors
mapa:
También se puede utilizar para necesidades puntuales de contraste:
También puede especificar un color base con nuestras funciones de mapa de colores:
Personalice Bootstrap 4 con nuestro archivo de variables personalizadas incorporado y alterne fácilmente las preferencias globales de CSS con las nuevas $enable-*
variables de Sass. Anule el valor de una variable y vuelva a compilar npm run test
según sea necesario.
Puede encontrar y personalizar estas variables para opciones globales clave en el scss/_variables.scss
archivo de Bootstrap.
Variable | Valores | Descripción |
---|---|---|
$spacer |
1rem (predeterminado) o cualquier valor > 0 |
Especifica el valor de espaciador predeterminado para generar mediante programación nuestras utilidades de espaciador . |
$enable-rounded |
true (predeterminado) ofalse |
Habilita border-radius estilos predefinidos en varios componentes. |
$enable-shadows |
true o false (predeterminado) |
Habilita box-shadow estilos predefinidos en varios componentes. |
$enable-gradients |
true o false (predeterminado) |
Habilita gradientes predefinidos a través background-image de estilos en varios componentes. |
$enable-transitions |
true (predeterminado) ofalse |
Habilita correos electrónicos predefinidos transition en varios componentes. |
$enable-hover-media-query |
true o false (predeterminado) |
Obsoleto |
$enable-grid-classes |
true (predeterminado) ofalse |
Habilita la generación de clases CSS para el sistema grid (por ejemplo, .container , .row , .col-md-1 , etc.). |
$enable-caret |
true (predeterminado) ofalse |
Habilita el signo de intercalación de pseudo elemento en .dropdown-toggle . |
$enable-print-styles |
true (predeterminado) ofalse |
Habilita estilos para optimizar la impresión. |
Muchos de los diversos componentes y utilidades de Bootstrap se construyen a través de una serie de colores definidos en un mapa Sass. Este mapa se puede reproducir en bucle en Sass para generar rápidamente una serie de conjuntos de reglas.
Todos los colores disponibles en Bootstrap 4 están disponibles como variables Sass y un mapa Sass en scss/_variables.scss
archivo. Esto se ampliará en versiones menores posteriores para agregar tonos adicionales, al igual que la paleta de escala de grises que ya incluimos.
Así es como puede usarlos en su Sass:
Las clases de utilidad de color también están disponibles para configurar color
y background-color
.
En el futuro, nuestro objetivo será proporcionar mapas Sass y variables para los tonos de cada color, tal como lo hemos hecho con los colores de la escala de grises a continuación.
Usamos un subconjunto de todos los colores para crear una paleta de colores más pequeña para generar esquemas de color, también disponible como variables de Sass y un mapa de Sass en el scss/_variables.scss
archivo de Bootstraps.
Un amplio conjunto de variables grises y un mapa Sass scss/_variables.scss
para obtener tonos de gris consistentes en todo su proyecto.
Dentro scss/_variables.scss
de , encontrará las variables de color de Bootstrap y el mapa de Sass. Aquí hay un ejemplo del $colors
mapa Sass:
Agregue, elimine o modifique valores dentro del mapa para actualizar cómo se usan en muchos otros componentes. Desafortunadamente, en este momento, no todos los componentes utilizan este mapa de Sass. Las actualizaciones futuras se esforzarán por mejorar esto. Hasta entonces, planee hacer uso de las ${color}
variables y este mapa de Sass.
Muchos de los componentes y utilidades de Bootstrap están construidos con @each
bucles que iteran sobre un mapa de Sass. Esto es especialmente útil para generar variantes de un componente $theme-colors
y crear variantes de respuesta para cada punto de interrupción. A medida que personaliza estos mapas de Sass y los vuelve a compilar, verá automáticamente sus cambios reflejados en estos bucles.
Muchos de los componentes de Bootstrap están construidos con un enfoque de clase de modificador de base. Esto significa que la mayor parte del estilo está contenido en una clase base (p. ej., .btn
) mientras que las variaciones de estilo se limitan a las clases de modificadores (p. ej., .btn-danger
). Estas clases de modificadores se construyen a partir del $theme-colors
mapa para personalizar el número y el nombre de nuestras clases de modificadores.
Aquí hay dos ejemplos de cómo recorremos el $theme-colors
mapa para generar modificadores para el .alert
componente y todas nuestras .bg-*
utilidades en segundo plano.
Estos bucles de Sass tampoco se limitan a mapas de colores. También puede generar variaciones sensibles de sus componentes o utilidades. Tomemos, por ejemplo, nuestras utilidades de alineación de texto receptivo donde mezclamos un @each
bucle para el $grid-breakpoints
mapa Sass con una consulta de medios incluida.
Si necesita modificar su $grid-breakpoints
, sus cambios se aplicarán a todos los bucles que iteren sobre ese mapa.
Bootstrap 4 incluye alrededor de dos docenas de propiedades personalizadas de CSS (variables) en su CSS compilado. Estos brindan un fácil acceso a los valores de uso común, como nuestros colores de tema, puntos de interrupción y pilas de fuentes primarias cuando se trabaja en el Inspector de su navegador, un espacio aislado de código o creación de prototipos en general.
Estas son las variables que incluimos (tenga en cuenta que :root
es obligatorio). Están ubicados en nuestro _root.scss
archivo.
Las variables de CSS ofrecen una flexibilidad similar a las variables de Sass, pero sin necesidad de compilación antes de ser enviadas al navegador. Por ejemplo, aquí estamos restableciendo la fuente de nuestra página y los estilos de enlace con variables CSS.
Si bien originalmente incluimos puntos de interrupción en nuestras variables CSS (por ejemplo, --breakpoint-md
), estos no son compatibles con las consultas de medios , pero aún se pueden usar dentro de los conjuntos de reglas en las consultas de medios. Estas variables de punto de interrupción permanecen en el CSS compilado por compatibilidad con versiones anteriores, dado que pueden ser utilizadas por JavaScript. Obtenga más información en la especificación.
Este es un ejemplo de lo que no es compatible:
Y aquí hay un ejemplo de lo que es compatible: