Bootstrap 4 starter (ZURB Style)
La plantilla de ZURB es genial por defecto y quería un sistema de construcción de páginas similar con Bootstrap.
Last updated
La plantilla de ZURB es genial por defecto y quería un sistema de construcción de páginas similar con Bootstrap.
Last updated
Que trae zurb template por defecto:
Handlebars HTML templates con Panini
Sass compilación y prefijado
JavaScript module bundling con webpack
BrowserSync servidor local
Para producción construye:
CSS compresión
JavaScript compresión
Image compresión
Construcción de páginas
El directorio src/ incluye tres directorios utilizados para crear las páginas HTML: pages/, layouts/, y partials/. Para construir las páginas zurb utiliza Panini, su propio motor de plantillas, Panini está basado en y te permite crear layouts, partials, includes etc… como si estubieras trabajando con en un Jekyll.
Compilación de Sass
Sass se compila a CSS con Libsass (via node-sass).
También crea un source map. Para producción el CSS se comprime con clean-css, y elimina todo el CSS que no utilizas con UnCSS.
Compilación de JavaScript
Javascript se transpila con Babel (con el pluguin es2015) así que puedes utilizar código ES2015.
Te crea un source map de js. Por defecto te crea un archivo app.js sin comprimir. Cuando construyes para producción utiliza UglifyJS para comprimir.
Compresión de imagenes
Todas las imágenes se copian de assets/img a tu directorio dist. Cuando construyes para producción las imágenes se comprimen con gulp-imagemin.
BrowserSync
Creación de guía de Estilo
Ahora la tendencia es utilizar webpack para todo, pero digamos que webpack es más complejo mientras que Gulp es sencillo y hace bien su trabajo. Me parece bien utilizar webpack para transpilar el js porque webpack es lo que se utiliza con vue.js y react y está bien acostumbrarse.
Con yarn start
arrancas Gulp, que creará el sitio en la carpeta dist
visible desde la siguiente URL:
Para crear una versión del sito para producción, con los assets comprimidos, ejecuta yarn run build
.
Crea un directorio para tu proyecto:
$ mkdir my-bootstrap-starter && cd my-bootstrap-starter
Crea la estructura de archivos de tu proyecto al estilo ZURB (desde la terminal o desde tu editor):
$ mkdir src && cd src
$ mkdir assets layouts pages partials
$ cd src/assets
$ mkdir img js scss
Crea los archivos scss y js en assets. Crea los archivos de layouts. Crea un index.html en pages y especifica el tipo de layout en sintaxis yaml.
Creamos un archivo package.json:
$ npm-init
Si no quieres que npm te haga la encuesta para rellenar el package.json añade -y
:
$ npm init -y
Edita el archivo package.json y especifica gulpfile como main y añade tu configuración de los scripts.
Para instalar paquetes de node (con npm) escribe:
$ npm install <package_name>
o su abreviatura:
$ npm i <package_name>
.
Instala Bootstrap, jQuery y popper.js:
$ npm i bootstrap jquery popper.js
Puedes ser más intrépido y hacerlo todo en una línea:
$ npm init -y && npm i bootstrap jquery popper.js
Esto añadirá las siguientes dependencias en node_modules y aparecerá así en tu package.json:
Para instalar paquetes de node como dependencias de desarrollo utiliza:
$ npm install <package_name> —save-dev
o su atajo:
$ npm <package_name> -D
.
Comparación de comandos CLI:
npm5
Yarn
npm install
yarn install
yarn install --flat
yarn install har
npm install --no-package-lock
yarn install --no-lockfile
npm install [package]
yarn add [package]
npm install [package] --save-dev
yarn add [package] --dev
yarn add [package] --per
npm install [package] --save-optional
yarn add [package] --optional
npm install [package] --save-exact
yarn add [package] --exact
yarn add [package] --tilde
npm install [package --global
yarn global add package
npm update --global
yarn global upgrade
npm rebuild
yarn add --force
npm unistall [package]
yarn remove [package]
npm cache clean
yarn cache clean [package]
rm -rf node_modules & npm install
yarn upgrade
npm version major
yarn version --major
npm version minor
yarn version --minor
npm version patch
yarn version --patch
Editar el package.json manualmente:
En este proyecto voy a instalar todas las dependencias de desarrollo de la plantilla de ZURB menos style-sherpa, así que iré más rápido haciendo un copy paste de su package.json.
Crea tu archivo gulpfile.js en la raíz del proyecto:
$ touch gulfile.babel.js
De nuevo hacemos copy paste del gulpfile de zurb, elimina las referencias a sherpa y la tarea styleGuide pues no vamos a utilizarla.
Crea tu archivo de configuración yml.
$ touch config.yml
De nuevo hacemos copy paste de zurb…
Cambiamos los Path de Sass en config.yml:
Crea un archivo de configuración de babel:
$ touch .babelrc
Edita tu archivo oculto de configuración de babel:
Crea tu archivo gitignore:
$ touch .gitignore
Edita el index.html y añade algo como:
<h1>Hellow world! </h1>
He mantenido la estructura de Zurb template, simplemente he remplazado las rutas a los scripts de Foundation por las rutas a los scripts de Bootstrap.
He preparado los scripts de forma que tienes 2 opciones:
Importar Bootstrap completo de node_modules o importar solo los componentes que necesites para optimizar tu aplicación:
Tarea scripts tal como viene en ZURB, no necesitamos modificarla:
Para añadir funciones solo en una página utilizamos panini:
Igual que con los scripts para cargar los estilos de Bootstrap podemos cargar Bootstrap completo o solamente los módulos que necesitemos:
Tarea styles tal como viene en la plantilla de ZURB, no necesitamos modificarla:
Para organizar los CSS he seguido la metodología SMACSS:
SMACSS divide los CSS en categorías:
Base
Layout
Module
State
Theme
Puedes instalar fontawesome en tus node_modules con el siguiente comando:
$ npm install @fortawesome/fontawesome-free
Tendrás que copiar tus fuentes de node_modules a dist, esto lo puede hacer con Gulp:
Ahora tienes que editar tus css:
He creado un archivo _variables.scss de variables para fontawesome, en la variable fa-font-path
indicas la ruta a la carpeta de fontawesome en dist desde el css final:
Y otro archivo _main.scss donde importo la librería:
Links
Tools
Todo el proceso de construcción de JS es llevado a cabo por .
La plantilla te monta un servidor local con BrowserSync en el puerto . Cuando haces un cambio en tus archivos, el navegador se actualiza en tiempo real.
En Zurb tienen , un pequeño plugin que te genera una plantilla para que puedas crear la guía de estilo para tu proyecto. Esto es genial pero queda fuera de mi objetivo actual en este proyecto.
Para utilizar la plantilla necesitas (0.12 o superior) y instalados en tu computadora.
Puedes descargar la plantilla con Git o bajarla del repositorio de .
Descarga o haz un clone de , estudia como funciona y su estructura de archivos, pues la idea es hacer lo mismo pero remplazando los estilos y el los scripts de ZURB por los de Bootstrap.
$ git clone
Vamos a trabajar con así que si no tienes node en tu máquina ya estás tardando.
Ejecuta $ npm start
y tu sitio web debería abrirse en el puerto .