Unlimited Wordpress themes, plugins, graphics & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Web Design
  2. Bootstrap 4

Cómo crear una página de aterrizaje animada con Bootstrap y Material Kit

by
Difficulty:IntermediateLength:MediumLanguages:

Spanish (Español) translation by Carlos (you can also view the original English article)

En un tutorial pasado, analizamos cómo crear una página de aterrizaje responsiva con Bootstrap 4. Hoy, aprenderemos a crear una página de aterrizaje animada con Material Kit, un kit de interfaz de usuario (UI) gratuito de Bootstrap 4 y basado en Material Design de Google.

Para implementarlo, utilizaremos una combinación de las clases auxiliares de Bootstrap 4, las clases adicionales de Material Kit y de código personalizado cuando se requiera.

En lo que vamos a trabajar

Aquí está la página que crearemos durante este tutorial (observa la página completa para lograr el máximo efecto):

El concepto detrás de esta página es ofrecer un panorama rápido de Escocia. El contenido del texto es de Wikipedia, mientras que las imágenes son de Unsplash.

Nota: Este tutorial asume que tienes cierta familiaridad con Bootstrap 4. Si necesitas un repaso, consulta los siguientes tutoriales:

¿Qué es Material Kit?

Material Kit

Como ya se mencionó, Material Kit es un kit gratuito de interfaz de usuario (UI) de Bootstrap 4 inspirado en Material Design de Google.

«Material Design es un lenguaje de diseño que Google desarrolló en 2014. Extendiendo los patrones de las “tarjetas” que debutaron en Google Now, Material Design usa diseños basados en rejillas, animaciones, transiciones responsivas, rellenos y efectos de profundidad como iluminación y sombras».

Creado por Creative Tim, no solo personaliza la apariencia predeterminada de los componentes de Bootstrap 4, sino que también implementa sus propios estilos.

Además de la versión estándar gratuita, también existe una variante premium llamada Material Kit Pro con más funciones y capacidades. Afortunadamente, este kit de interfaz de usuario viene con una documentación bien organizada y tres páginas prediseñadas para acelerar el proceso de aprendizaje.

1. Incluye las bibliotecas necesarias de CSS y JS

Para los fines de este ejercicio, tendremos que descargar e incluir bastantes archivos en nuestro «pen».

Primero, importaremos los archivos requeridos de Material Kit siguiendo las instrucciones de esta página. Ten en cuenta que solo incluiremos los recursos que vamos a usar. Por ejemplo, nuestra página no contendrá un slider de rango, por lo que no es necesario incorporar noUISlider.

A continuación, importaremos AOS.js, una biblioteca fácil de utilizar que revelará nuestros elementos a medida que nos desplacemos por la página.

Considerando todo lo anterior, en el editor CSS de nuestro «pen» incluiremos tres archivos:

The required CSS files

Del mismo modo, el editor de JavaScript contendrá cinco archivos:

The required JS files

2. Establece el marcado

Con todo el material necesario en su sitio, examinemos el marcado de la página.

Primero definiremos una cabecera (header), cinco secciones, un pie de página (footer) y un botón para volver al principio. Colocaremos las últimas cuatro secciones dentro del elemento main. Como veremos más adelante, este elemento de envoltura recibirá un margen superior negativo, por lo que su contenido se superpondrá a la parte inferior de la primera sección.

Nota: ya que estamos en el tema, quizá este tutorial sobre el colapso de los márgenes pueda ser interesante:

Aquí está la estructura de la página:


3. Crea la cabecera (header)

La cabecera de la página se comportará como un elemento de posición fija e incluirá sólo un botón externo de llamada a la acción. Al principio, su fondo será transparente, pero después de 50px de desplazamiento se volverá blanco:

The header layout

Aquí está su estructura:

Ten en cuenta que en una página real, dentro de la cabecera tendríamos una navbar (barra de navegación) con enlaces a las diferentes secciones.

4. Crea la sección hero

La sección hero (o «sección del banner») contendrá una imagen de fondo a pantalla completa y dos encabezados. Además, por razones de legibilidad, crearemos una imagen vacía superpuesta utilizando el pseudoelemento ::after:

The layout of the hero section

Aquí está su estructura:

Y los estilos para la superposición:


5. Crea las secciones principales

Como lo comentamos anteriormente, el elemento main cubrirá la parte inferior de la sección hero:

The main layout

Para lograr esta estructura, tenemos que añadirle las clases main y main-raised:

Sección 1

La primera sección dentro de main contendrá un encabezado y dos párrafos:

The layout of the first section inside the main

El marcado de la sección:

Sección 2

En esta sección, usaremos pestañas para presentar algunos detalles de las ciudades más grandes de Escocia:

Section 2

Aquí está el marcado:

Nota: Crearemos las pestañas siguiendo principalmente el marcado de Bootstrap en lugar de utilizar del todo el marcado de Material Kit. Creo que el ejemplo de Bootstrap es más completo y tiene más sentido con respecto a la accesibilidad.

Finalmente, especificaremos algunos estilos simples para agrandar los enlaces de las pestañas:

Seccion 3

La tercera sección contendrá un encabezado y una rejilla de tarjetas similar a Masonry. Cada tarjeta tendrá una imagen junto con un título que formará parte de su superposición. Para hacer esto, vamos a aprovechar el diseño CSS de múltiples columnas.

En pantallas pequeñas (<576 px), todas las tarjetas se apilarán:

The layout of the third section inside the main on mobile devices

En pantallas más grandes, no obstante, tendremos un diseño de dos columnas:

The layout of the third section inside the main on small screens and above

Aquí está la estructura de la sección:

Los estilos que producirán este comportamiento:


Sección 4

La cuarta sección incluirá un encabezado y un formulario.

De la misma manera que la sección anterior, en pantallas pequeñas (<576 px), todas las tarjetas se apilarán:

The layout of the fourth section inside the main on mobile devices

En pantallas más grandes, tendremos un diseño de dos columnas:

The layout of the fourth section inside the main on small screens and above

Aquí está la estructura de la sección:

De forma predeterminada, Material Kit añade un color púrpura a la casilla de verificación. Además, los elementos del formulario reciben un borde púrpura inferior animado durante el estado de enfoque. En este punto, reemplazaremos ese color con el rosa común (rosa intenso) que se utiliza en toda la página.

Los estilos requeridos:


6. Crea el botón de «Volver al inicio»

El botón de volver al inicio será un elemento de posición fija que al principio estará oculto:

The back to top button layout

Aquí está su estructura:

Observa la clase is-hidden responsable de ocultarlo.

Los estilos del botón asociados:

Tan pronto como un usuario se desplace al final de la página, aparecerá el botón. Si el usuario hace clic en él, volverá con suavidad a la parte superior de la página (al inicio).

El siguiente código JavaScript controla la funcionalidad anteriormente citada:

Ten en cuenta que la sección del pie de página no incluye nada especial, así que lo omitiremos por simplicidad. ¡Puedes comprobarlo por ti mismo!

¡Buen trabajo, amigos! Sin tanto esfuerzo, logramos crear una hermosa página de aterrizaje con Material Design.

Pero, seamos honestos, aún se puede mejorar, ¿verdad?

7. Anima los elementos durante el desplazamiento

¡Hasta este momento, nuestra página se ve muy bien! Pero, vayamos un paso más allá y demos vida a elementos específicos a medida que aparecen. Hay distintas maneras de lograrlo (por ejemplo, con plugins de JS, Intersection Observer API, etc.). De hecho, ya he cubierto ese requerimiento en tutoriales anteriores:

Para este ejemplo, vamos a usar AOS.js, una sencilla biblioteca de JavaScript que me gusta mucho.

Como primer paso, añadiremos el atributo personalizado data-aos a los elementos objetivo. El valor de este atributo puede recibir diferentes palabras clave como fade-up, fade-down y flip-left que indican el tipo de efecto. En nuestro caso, la mayoría de los elementos (aparte de los elementos masonry) aparecerán con una pequeña animación de diapositiva, por tanto, les daremos data-aos data-aos="fade-up"', de esta forma:

Luego, inicializaremos el plugin y modificaremos algunas de sus opciones predeterminadas. Lo más importante, estableceremos once: true. Eso hará que las animaciones se activen solo una vez. De manera específica, al desplazarnos por la página por primera vez:

Cabe señalar que también añadimos un segundo atributo personalizado (data-aos-delay) a los dos últimos enlaces de la pestaña (ciudades):

El valor de este atributo anulará al que se pase dentro del objeto de configuración (delay: 50). Su trabajo es animar de manera secuencial la pestaña enlaces/ciudades. Por defecto, aparecerían todos a la vez porque tienen la misma posición vertical.

Finalmente, al navegar por las pestañas, la altura de la página cambiará. En tal caso, tenemos que informar al plugin sobre este cambio y dejar que recalcule las posiciones de los elementos objetivo. Por supuesto, este proceso solo tiene sentido cuando la opción once se ajusta a true y las animaciones ocurren todo el tiempo. De todas formas, si necesitas tal comportamiento, aquí está el código requerido:


Conclusión

¡Eso es todo, amigos! Gracias por seguirme, espero que el viaje haya valido la pena y que hayas adquirido nuevos conocimientos. Si alguna vez has creado alguna página con Material Kit, o cualquier otro framework de Material Design, no te olvides compartirlo con nosotros en los comentarios.

¿Cuál es tu framework favorito de Material Design?

Aquí tienes un recordatorio de lo que creamos:

Como una última reflexión, recuerda que la mejor forma de entender y quizá extender esta página es revisando el código mediante las herramientas de desarrollo. Se recomienda este mismo enfoque si decides profundizar en las páginas preconstruidas de Material Kit.

Como siempre, ¡muchas gracias por leernos!

Más tutoriales de Bootstrap 4

Lleva tus habilidades de Bootstrap 4 al siguiente nivel con estos tutoriales:

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.