twitter-bootstrap sass bootstrap-4

twitter bootstrap - Cómo extender/modificar(personalizar) Bootstrap 4 con SASS



twitter-bootstrap bootstrap-4 (3)

Explicaré desde cero: Descargar Ruby porque sass está escrito en Ruby. Abra el "símbolo del sistema de inicio con Ruby" e ingrese esto:

gem install sass

En macos, ruby ​​ya está instalado. entonces en terminal:

sudo gem install sass

Si instaló bootstrap a través del administrador de paquetes; escribe este código en main.scss

@import "../node_modules/bootstrap/scss/bootstrap";

luego navegue a su directorio de trabajo donde guarda sus archivos main.scss o main.css. Ingrese este código en la línea de comando:

sass main.scss main.css

esto inicializará la compilación de sass a css.

Si descargó los archivos fuente de bootstrap, busque la carpeta "scss" en su carpeta fuente

BOOTSTRAP/bootstrap-4.2.1/bootstrap-4.2.1/scss

y cópielo en su carpeta de estilo en su proyecto donde guarda todos los archivos de estilo: css, scss, bootstrap y luego importa el archivo "bootstrap.scss" en main.scss

@import "./scss/bootstrap.scss";

Y ahora inicialice la compilación ingresando este código:

sass main.scss main.css

Finalmente, puedes escribir:

sass --watch main.scss:main.css //this should be running

para ver todos los cambios en main.css NO OLVIDES: escribirás tus códigos css en main.scss, sass lo compilará en main.css y vincularás el archivo main.css en tu html.

Si está utilizando el código de Visual Studio, puede instalar la extensión "Live Sass Compiler" y debajo verá el botón "Watch Sass". cree el archivo main.scss en la carpeta de estilo y después de importar los archivos de la manera que expliqué anteriormente, haga clic en el botón "ver Sass" y comenzará a compilarse.

Ahora en la carpeta bootstrap, debajo de la carpeta scss hay _variables.scss carpeta _variables.scss . esto contiene variables de arranque. Digamos que quieres cambiar el radio del borde. en el archivo main.scss , antes de importar su bootstrap:

$border-radius:10rem @import "./scss/bootstrap.scss";

Quiero crear un tema de sitio web basado en Bootstrap. Quiero ampliar los componentes predeterminados de Bootstrap y cambiar algunos de ellos. Para esto, necesitaría acceso a las variables SASS que Bootstrap define para poder anularlas.

Pensé en clonar Bootstrap de GitHub y cambiarlo directamente, pero escuché que en realidad no es una buena práctica. ¿Me podría dar algún consejo por favor?


La versión de Bootstrap de Github siempre cambia, ya que la base en sí misma se actualiza constantemente. Sin mencionar que la forma en que Bootstrap está estructurado no necesariamente compila la forma en que exportará su compilador SASS. La mejor práctica es estructurarlo de la manera más adecuada para usted.

Así es como suelo estructurar todo mi proyecto

/style/ /style/theme.scss /style/theme.min.css /style/bootstrap.scss /style/bootstrap.min.css /style/bootstrap/{subfiles} /style/bootstrap/mixins/{subfiles} /style/bootstrap/utilities/{subfiles} /scripts/ /scripts/bootstrap.min.js /scripts/main.min.js /scripts/bootstrap/

Esto supone que tiene sass y js minifier.


Aquí se explica cómo anular / personalizar Bootstrap 4 con SASS ...

Las anulaciones y las personalizaciones deben mantenerse en un archivo custom.scss separado que esté separado de los archivos fuente Bootstrap SASS. De esta manera, los cambios que realice no afectarán la fuente de Bootstrap, lo que hace que los cambios o la actualización de Bootstrap más tarde sean mucho más fáciles.

1- Considere la estructura de carpetas SASS de Bootstrap, junto con su custom.scss ...

|-- /bootstrap | |-- /scss | | |-- /mixins | | |-- /utilities | | |-- bootstrap.scss | | |-- variables.scss | | |-- functions.scss | | |-- ...more bootstrap scss files | custom.scss

2- En su custom.scss , importe los archivos Bootstrap necesarios para las anulaciones. ( Por lo general , esto es solo variables.scss . En algunos casos, con cutomizaciones más complejas, también puede necesitar las functions , los mixins y otros archivos Bootstrap). Realice los cambios, luego @import "bootstrap" . Es importante importar Bootstrap después de los cambios ...

/* custom.scss */ /* import the necessary Bootstrap files */ @import "bootstrap/functions"; @import "bootstrap/variables"; /* make changes to the !default Bootstrap variables */ $body-color: green; /* finally, import Bootstrap to set the changes! */ @import "bootstrap";

2a ( opcional ): también puede ampliar las clases Bootstrap existentes después de @import "bootstrap"; para crear nuevas clases personalizadas . Por ejemplo, aquí hay una nueva clase .row-dark que extiende (hereda de) la clase Bootstrap .row y luego agrega un color de fondo.

/* optionally create new custom classes from existing classes */ .row-dark { @extend .row; background-color: #333333; color: #ffffff; }

3- Compila el SASS (node-sass, gulp-sass, webpack / NPM, etc.). ¡La salida CSS contendrá las anulaciones! No olvide verificar los includePaths si sus @imports fallan. Para obtener una lista completa de las variables que puede anular, consulte el archivo variables.scss . También hay estas variables globales .

Demostración de Bootstrap SASS en Codeply

En resumen, así es como funciona:

1_ Primero, cuando el archivo custom.scss se procesa usando SASS, los valores predeterminados se definen en bootstrap/variables.scss .

2_ A continuación, se establecen nuestros valores personalizados, que anularán cualquiera de las variables que tenían valores predeterminados establecidos en bootstrap/variables.scss .

3_ Finalmente, se importa Bootstrap ( @import "bootstrap" ) que permite que el procesador SASS (compilador AKA) genere todos los CSS apropiados utilizando los valores predeterminados de Bootstrap y las anulaciones personalizadas.

Para aquellos que no conocen SASS, pruebe esta tool que hice.

Ver también:
¿Cómo obtener 15 columnas en Bootstrap 4 en SASS CSS?
Tamaños de cuadrícula Bootstrap v4 / Lista Sass
Personalizar la plantilla CSS de Bootstrap
Extendiendo Bootstrap 4 y SASS