Bootstrap de tematització
Personalitzeu Bootstrap 4 amb les nostres noves variables integrades de Sass per a les preferències d'estil globals per facilitar la temàtica i els canvis de components.
Introducció
A Bootstrap 3, la temàtica es va impulsar en gran mesura per substitucions variables a LESS, CSS personalitzat i un full d'estil de tema independent que vam incloure als nostres dist
fitxers. Amb cert esforç, es podria redissenyar completament l'aspecte de Bootstrap 3 sense tocar els fitxers bàsics. Bootstrap 4 ofereix un enfocament familiar, però lleugerament diferent.
Ara, la tematització s'aconsegueix mitjançant variables Sass, mapes Sass i CSS personalitzats. No hi ha més full d'estil de tema dedicat; en canvi, podeu habilitar el tema integrat per afegir degradats, ombres i molt més.
Sass
Utilitzeu els nostres fitxers Sass d'origen per aprofitar variables, mapes, mixins i molt més. A la nostra compilació hem augmentat la precisió d'arrodoniment de Sass a 6 (per defecte és 5) per evitar problemes amb l'arrodoniment del navegador.
Estructura del fitxer
Sempre que sigui possible, eviteu modificar els fitxers bàsics de Bootstrap. Per a Sass, això significa crear el vostre propi full d'estil que importi Bootstrap perquè pugueu modificar-lo i ampliar-lo. Suposant que utilitzeu un gestor de paquets com npm, tindreu una estructura de fitxers com aquesta:
Si heu baixat els nostres fitxers font i no feu servir un gestor de paquets, voldreu configurar manualment alguna cosa semblant a aquesta estructura, mantenint els fitxers font de Bootstrap separats dels vostres.
Importació
Al vostre custom.scss
, importareu els fitxers Sass d'origen de Bootstrap. Teniu dues opcions: incloure tot Bootstrap o triar les peces que necessiteu. Us animem a aquest últim, encara que tingueu en compte que hi ha alguns requisits i dependències entre els nostres components. També haureu d'incloure una mica de JavaScript per als nostres connectors.
Amb aquesta configuració al seu lloc, podeu començar a modificar qualsevol de les variables i mapes de Sass al vostre custom.scss
. També podeu començar a afegir parts de Bootstrap a la // Optional
secció segons sigui necessari. Us suggerim que utilitzeu la pila d'importació completa del nostre bootstrap.scss
fitxer com a punt de partida.
Valors per defecte de la variable
Cada variable de Sass a Bootstrap 4 inclou la !default
marca que us permet substituir el valor predeterminat de la variable al vostre propi Sass sense modificar el codi font de Bootstrap. Copieu i enganxeu variables segons sigui necessari, modifiqueu-ne els valors i elimineu la !default
marca. Si ja s'ha assignat una variable, no es tornarà a assignar amb els valors predeterminats a Bootstrap.
Trobareu la llista completa de les variables de Bootstrap a scss/_variables.scss
. Algunes variables s'estableixen a null
, aquestes variables no donen sortida a la propietat tret que s'invalidin a la vostra configuració.
Les substitucions de variables dins del mateix fitxer Sass poden venir abans o després de les variables predeterminades. Tanmateix, en substituir fitxers Sass, les substitucions s'han de produir abans d'importar els fitxers Sass de Bootstrap.
Aquí teniu un exemple que canvia el background-color
i color
per al <body>
quan s'importa i es compila Bootstrap mitjançant npm:
Repetiu segons sigui necessari per a qualsevol variable a Bootstrap, incloses les opcions globals següents.
Mapes i bucles
Bootstrap 4 inclou un grapat de mapes Sass, parells de valors clau que faciliten la generació de famílies de CSS relacionats. Utilitzem mapes Sass per als nostres colors, punts d'interrupció de la quadrícula i molt més. Igual que les variables Sass, tots els mapes Sass inclouen la !default
bandera i es poden anul·lar i ampliar.
Alguns dels nostres mapes Sass es fusionen en altres buits de manera predeterminada. Això es fa per permetre una fàcil expansió d'un mapa Sass determinat, però té el preu de fer que l'eliminació d'elements d'un mapa sigui una mica més difícil.
Modificar el mapa
Per modificar un color existent al nostre $theme-colors
mapa, afegiu el següent al vostre fitxer Sass personalitzat:
Afegeix al mapa
Per afegir un color nou a $theme-colors
, afegiu la clau i el valor nous:
Eliminar del mapa
Per eliminar colors de $theme-colors
, o de qualsevol altre mapa, utilitzeu map-remove
. Tingueu en compte que heu d'inserir-lo entre els nostres requisits i opcions:
Claus requerides
Bootstrap assumeix la presència d'algunes claus específiques dins dels mapes Sass a mesura que les utilitzem i les ampliam nosaltres mateixos. A mesura que personalitzeu els mapes inclosos, és possible que trobeu errors quan s'utilitzi la clau d'un mapa Sass específic.
Per exemple, fem servir les tecles primary
, success
, i de per als enllaços, els botons i els estats de formulari. La substitució dels valors d'aquestes claus no hauria de presentar cap problema, però eliminar-les pot provocar problemes de compilació de Sass. En aquests casos, haureu de modificar el codi Sass que fa ús d'aquests valors.danger
$theme-colors
Funcions
Bootstrap utilitza diverses funcions de Sass, però només un subconjunt és aplicable a la temàtica general. Hem inclòs tres funcions per obtenir valors dels mapes de colors:
Aquests us permeten escollir un color d'un mapa Sass de la mateixa manera que utilitzaríeu una variable de color de la v3.
També tenim una altra funció per obtenir un nivell particular de color del $theme-colors
mapa. Els valors de nivell negatius il·luminaran el color, mentre que els nivells més alts s'enfosquiran.
A la pràctica, cridaríeu a la funció i passareu dos paràmetres: el nom del color de $theme-colors
(p. ex., primari o perill) i un nivell numèric.
Es podrien afegir funcions addicionals en el futur o el vostre propi Sass personalitzat per crear funcions de nivell per a mapes Sass addicionals, o fins i tot un genèric si voleu ser més detallat.
Contrast de color
Una funció addicional que incloem a Bootstrap és la funció de contrast de color, color-yiq
. Utilitza l' espai de color YIQ per tornar automàticament un color de contrast clar ( #fff
) o fosc ( #111
) en funció del color base especificat. Aquesta funció és especialment útil per a mixins o bucles on esteu generant diverses classes.
Per exemple, per generar mostres de color a partir del nostre $theme-colors
mapa:
També es pot utilitzar per a necessitats puntuals de contrast:
També podeu especificar un color base amb les nostres funcions de mapa de colors:
Escape SVG
Utilitzem la escape-svg
funció per escapar dels caràcters <
, >
i #
per a les imatges de fons SVG. Cal escapar aquests caràcters per representar correctament les imatges de fons a IE.
Funcions de suma i resta
Utilitzem les funcions add
i subtract
per embolicar la calc
funció CSS. 0
L'objectiu principal d'aquestes funcions és evitar errors quan es passa un valor "sense unitat" a una calc
expressió. Expressions com calc(10px - 0)
retornaran un error a tots els navegadors, tot i ser matemàticament correctes.
Exemple on el calc és vàlid:
Exemple on el càlcul no és vàlid:
Opcions Sass
Personalitzeu Bootstrap 4 amb el nostre fitxer de variables personalitzades integrat i canvieu fàcilment les preferències CSS globals amb les noves $enable-*
variables de Sass. Substituïu el valor d'una variable i recompileu- npm run test
lo segons sigui necessari.
Podeu trobar i personalitzar aquestes variables per a les opcions globals clau al scss/_variables.scss
fitxer de Bootstrap.
Variable | Valors | Descripció |
---|---|---|
$spacer |
1rem (per defecte) o qualsevol valor > 0 |
Especifica el valor d'espaiador predeterminat per generar programadament les nostres utilitats d'espaiador . |
$enable-rounded |
true (per defecte) ofalse |
Habilita border-radius estils predefinits en diversos components. |
$enable-shadows |
true o false (per defecte) |
Habilita box-shadow estils predefinits en diversos components. |
$enable-gradients |
true o false (per defecte) |
Habilita gradients predefinits mitjançant background-image estils en diversos components. |
$enable-transitions |
true (per defecte) ofalse |
Habilita transition s predefinides en diversos components. |
$enable-prefers-reduced-motion-media-query |
true (per defecte) ofalse |
Habilita la prefers-reduced-motion consulta multimèdia , que suprimeix determinades animacions/transicions en funció de les preferències del navegador/sistema operatiu dels usuaris. |
$enable-hover-media-query |
true o false (per defecte) |
Obsolet |
$enable-grid-classes |
true (per defecte) ofalse |
Permet la generació de classes CSS per al sistema de graella (per exemple, .container , .row , .col-md-1 , etc.). |
$enable-caret |
true (per defecte) ofalse |
Habilita l'apunt d'element pseudo-element a .dropdown-toggle . |
$enable-pointer-cursor-for-buttons |
true (per defecte) ofalse |
Afegiu el cursor "mà" als elements del botó no desactivats. |
$enable-print-styles |
true (per defecte) ofalse |
Habilita estils per optimitzar la impressió. |
$enable-responsive-font-sizes |
true o false (per defecte) |
Habilita mides de lletra sensibles . |
$enable-validation-icons |
true (per defecte) ofalse |
Activa background-image les icones a les entrades de text i alguns formularis personalitzats per als estats de validació. |
$enable-deprecation-messages |
true o false (per defecte) |
Establiu a true per mostrar advertències quan utilitzeu qualsevol de les funcions i mixins obsoletes que s'han previst eliminar a v5 . |
Color
Molts dels diferents components i utilitats de Bootstrap es construeixen mitjançant una sèrie de colors definits en un mapa Sass. Aquest mapa es pot reproduir a Sass per generar ràpidament una sèrie de regles.
Tots els colors
Tots els colors disponibles a Bootstrap 4 estan disponibles com a variables Sass i un mapa Sass al scss/_variables.scss
fitxer. Això s'ampliarà en versions menors posteriors per afegir matisos addicionals, com la paleta d'escala de grisos que ja incloem.
A continuació s'explica com podeu utilitzar-los al vostre Sass:
Les classes d'utilitat de color també estan disponibles per configurar color
i background-color
.
En el futur, intentarem proporcionar mapes i variables de Sass per a les tons de cada color, tal com hem fet amb els colors en escala de grisos a continuació.
Colors temàtics
Utilitzem un subconjunt de tots els colors per crear una paleta de colors més petita per generar esquemes de colors, també disponible com a variables Sass i un mapa Sass al scss/_variables.scss
fitxer de Bootstrap.
Grises
Un ampli conjunt de variables de gris i un mapa Sass scss/_variables.scss
per a tons de gris coherents al vostre projecte. Tingueu en compte que aquests són "gris frescos", que tendeixen a un to blau subtil, en lloc de grisos neutres.
Dins scss/_variables.scss
de , trobareu les variables de color de Bootstrap i el mapa Sass. Aquí teniu un exemple del $colors
mapa Sass:
Afegiu, elimineu o modifiqueu valors dins del mapa per actualitzar com s'utilitzen en molts altres components. Malauradament, en aquest moment, no tots els components utilitzen aquest mapa Sass. Les futures actualitzacions s'esforçaran per millorar-ho. Fins aleshores, planifiqueu fer ús de les ${color}
variables i d'aquest mapa Sass.
Components
Molts dels components i utilitats de Bootstrap es construeixen amb @each
bucles que iteren sobre un mapa Sass. Això és especialment útil per generar variants d'un component pel nostre $theme-colors
i crear variants sensibles per a cada punt d'interrupció. A mesura que personalitzeu aquests mapes Sass i recompileu, veureu automàticament els vostres canvis reflectits en aquests bucles.
Modificadors
Molts dels components de Bootstrap es construeixen amb un enfocament de classe de modificador de base. Això significa que la major part de l'estil està continguda a una classe base (p. ex., .btn
) mentre que les variacions d'estil es limiten a classes modificadores (p. ex., .btn-danger
). Aquestes classes modificadores es construeixen a partir del $theme-colors
mapa per personalitzar el nombre i el nom de les nostres classes modificadores.
Aquí hi ha dos exemples de com fem un bucle sobre el $theme-colors
mapa per generar modificadors al .alert
component i a totes les nostres .bg-*
utilitats de fons.
Responent
Aquests bucles Sass tampoc es limiten als mapes de colors. També podeu generar variacions sensibles dels vostres components o utilitats. Prengui per exemple les nostres utilitats d'alineació de text sensibles on barregem un @each
bucle per al $grid-breakpoints
mapa Sass amb una consulta multimèdia inclosa.
Si necessiteu modificar el vostre $grid-breakpoints
, els vostres canvis s'aplicaran a tots els bucles que iterin sobre aquest mapa.
Variables CSS
Bootstrap 4 inclou unes dues dotzenes de propietats personalitzades (variables) CSS al seu CSS compilat. Aquests ofereixen un accés fàcil als valors d'ús habitual, com ara els nostres colors del tema, els punts d'interrupció i les piles de tipus de lletra principal quan treballeu a l'Inspector del vostre navegador, a una caixa de proves de codi o a la creació de prototips generals.
Variables disponibles
Aquí teniu les variables que incloem (tingueu en compte que :root
és obligatori). Es troben al nostre _root.scss
fitxer.
Exemples
Les variables CSS ofereixen una flexibilitat similar a les variables de Sass, però sense necessitat de compilar-les abans de ser enviades al navegador. Per exemple, aquí estem restablint el tipus de lletra i els estils d'enllaç de la nostra pàgina amb variables CSS.
Variables de punt d'interrupció
Tot i que originalment vam incloure punts d'interrupció a les nostres variables CSS (p. ex., --breakpoint-md
), aquests no s'admeten a les consultes multimèdia , però encara es poden utilitzar dins de conjunts de regles a les consultes multimèdia. Aquestes variables de punt d'interrupció romanen al CSS compilat per compatibilitat amb les versions anteriors, ja que poden ser utilitzades per JavaScript. Més informació a l'especificació .
Aquí teniu un exemple del que no s'admet:
I aquí teniu un exemple del que s'admet: