Elementos de Boostrap
Componentes
Adicional a las diferentes clases que tiene bootstrap para gestionar la visualización y el diseño responsivo, posee una serie de componentes prediseñados con sus respectivas funcionalidades que responden a la interacción del usuario.
Jumbotron
Un Jumbotron es un componente para llamar la atención del usuario, se utiliza para mostrar mensajes sobre algún contenido o información especial.
1 | <!-- jumbotron del tamaño de un contenedor --> |
Carousel
Un carousel se utiliza para mostrar imagenes de forma secuencial, estos poseen 3 partes
.carousel-indicators
: Se utilizan para seleccionar una imagen en específico.carousel-inner
: Aquí van la secuencia de imagenes.carousel-item
: es el contenedor de las imagenes.
.carousel-control-[prev/next]
: son los controles para navegar entre las imagenes
Todo carrusel debe tener un id diferente, y tanto los indicadores como los controles deben referenciar a dicho id para asociar la interacción con éste.
1 | <div id="**example**" class="carousel slide" data-ride="carousel"> |
List Group
Las listas en grupos se utilizan para mostrar información secuencial, admiten cualquier tipo de contenido.
1 | <ul class="list-group"> |
Cards
Una tarjeta es un contenedor de contenido flexible y extensible. Incluye una amplia variedad de contenido, colores de fondo contextuales y potentes opciones de visualización.
Las cartas se componen de:
.card-header
: Consiste en la cabecera de una tarjeta.card-img-top
: Se utiliza cuando desea agregar una imagen a la tarjeta.card-body
: aquí va el contenido mismo de la tarjeta.card-footer
: Se utiliza para agregar un pie de página a esta carta
1 | <div class="card"> |
Sobreposicion de texto en imagenes
Se puede camubiar la estructura de una carta para tener texto sobre las imagenes, usando las clases .card-img
para la imagen y .card-img-overlay
para el contenido.
1 | <div class="card bg-dark text-white"> |
Conjunto de Cartas
Las cartas se pueden utilizar dentro del sistema de grid de bootstrap (container, row y col-*), sin embargo existen otras formas de agrupar cartas, simplemente agrupandolas dentro de un div con alguna de estas clases.
.card-group
: Se organizan en grupos de 3 cartas sin espacio entre ellas..card-deck
: Se organizan en grupos de 3 cartas con espacio entre ellas..card-columns
: Se organizan usando un diseño Masonry.
Stretched-link
Se utiliza cuando se desea convertir a toda la tarjeta en un link, se agrega la clase .stretched-link
al link donde se encuentra la referencia.
1 | <div class="card" style="width: 18rem;"> |
Botones
Bootstrap tiene predefinido un conjunto de botones usando la clase .btn
****en algún botón o link, esta clase define la estructura del botón, por lo que se usa en conjunto con .btn-[color]
o .btn-outline
para darle estilos usando las palabras clave de los colores de bootstrap.
Los links pueden tener estilos de botónes y los botones pueden tener estilos de links, sin embargo los links se deben usar cuando queremos ir a otra página y los botones cuando queremos realizar alguna acción con la interacción del usuario.
Dropdown
Los dropdown son botones que esconden un submenu, estos se componen de dos partes:
.dropdown-toggle
: el cual es el botón que despliega el submenu..dropdown-menu
: Un contenedor con.dropdown-item
los cuales son las opciones del menu
1 | <div class="dropdown"> |
Collapse
Los collapse se utilizan para cambiar la visibilidad de un elemento usando un accionador (botón)
Estos elementos pueden estar separados (a diferencia del dropdown) por lo que se puede utilizar de multiples formas
El contenido a esconder deberá ir en un contenedor con la clase .collapse
y debe tener un id
, este se utiliza para el accionador.
El accionador (deberalmente un botón) debe usar los atributos.data-toggle="collapse"
y .data-target
, en este ultimo debe ir # y el id del collapse.
1 | <button data-toggle="collapse" data-target="**#demo**"> |
Modal
Un modal es un elemento que se sobrepone a la página principal y la deshabilita pero la mantiene visible.
Al igual que los collapse, los elementos modales requieren un activador (generalmente un botón) y un contenedor con el contenido del modal.
Para tener el código limpio, se recomienda que el contenedor del modal se escriba después del footer y antes de cerrar el body en el html.
El accionador (deberalmente un botón) debe usar los atributos.data-toggle="modal"
y .data-target
, en este ultimo debe ir # y el id del modal.
El contenido a esconder deberá ir en un contenedor con la clase .modal
y debe tener un id
, este se utiliza para el accionador, el modal tiene diferentes elementos:
.modal
,.modal-dialog
y.modal-content
son las clases requeridas para crear un modal..modal-header
: Aquí va el titulo del modal, así como el botón de cierre (de ser necesario)- El botón de cierre debe tener el atributo
data-dismiss="modal"
- El botón de cierre debe tener el atributo
.modal-body
: En este contendor va el contenido mismo del modal.modal-footer
: Agrega un pie de página al modal.
1 | <!-- Button trigger modal --> |
Nav
Este elemento permite crear una lista con opciones de navegación
- la clase
.active
se utiliza para determinar el elemento actual seleccionado - la clase
.disabled
se utiliza para definir un link deshabilitado
1 | <ul class="nav"> |
Tabs
Los elementos de navegación pueden crear un sistema de pestañas interno para mejorar la organización del contenido. Las pestañas dividen el contenido en secciones significativas que ocupan menos espacio en la pantalla.
Estas pestañas consisten en un sistema con:
.nav-tabs
se agrega al sistema de navegación, para determinar la cantidad de pestañas y sus titulos.tab-content
: define el contenido de cada pestaña, esta debe tener una serie de.tab-pane
con un id que se utilizará por las pestañas para mostrar el respectivo contenido.
1 | <ul class="nav nav-tabs" id="myTab" role="tablist"> |
Navbar
Las navbar de bootstrap son componentes para crear barras de navegación responsivas, esto es que el contenido (links) de la barra de navegación se muestren en un tamaño particular, ya que el diseño es mobile first siempre está escondida por defecto (en un collapse).
Los elementos que componen una barra de navegación son los siguientes:
.navbar
para el contenedor, generalmente<nav>
, Esta puede ir acompañada de:.navbar-expand-{breakpoint}
donde breackpoint se refiere al tamaño desde el cual se desea mostrar la barra completa (sm, md, lg, xl)..navbar-ligth
: Para usar con colores de fondo claros, esto oscurece las letras..navbar-dark
: para colores de fondo oscuros, esto usa letras claras.- Alguna utilizad de posicionamiento de bootstrap
Dentro del navbar existen inicialmente 2 componentes:
.navbar-brand
Usado para el nombre de la empresa, producto o proyecto. Esta clase generalmente se usa en un<a>
.navbar-nav
Usado para listar las opciones de la barra de navegación
Para las opciones de navegación se suele utilizar un collapse para esconder la barra en un menú hamburguesa, para ello debe estar contenida en un div con la clases .collapse.navbar-collapse
, así mismo debe existir un botón que desplegue el collapse con la clase .navbar-toggler
.
1 | <nav class="navbar navbar-expand-lg navbar-light bg-light"> |
En los navbar se pueden usar dropdowns o formularios en linea.
Formularios
Los formularios de bootstrap se pueden construir agregando la clase .form-control
a un input, select o textarea y .from-group
al conenedor del input y label.
1 | <div class="form-group"> |
Para inputs de archivos se usa la clase .form-control-file
Para inputs de rangos se usa la clase .form-control-range
Para checkbox se utilizan las clases:
.form-check
para el contenedor.form-check-input
en para el input tipo ckecbox.form-check-label
para el label.
1 | <div class="form-group form-check"> |
Para Personalizar el layout se pueden usar filas y columnas de bootstrap dentro del formulario usando la clase .form-row
para las filas
1 | <form> |
1 | <form> |
Inputs
Los inputs de un formulario se pueden personalizar para mostrar iconos o simbolos al usuario. para ello se utiliza dentro del .input-group
las clases:
.input-group-prepend
para mostrar algo antes del input.input-group-append
para mostrar algo después del input.input-grouptext
para el contenido mismo
1 | <div class="input-group"> |
Alertas
Las alertas son pequeños componentes para mostrar mensajes contextuales en respuesta de acciones típicas de los usuarios.
Consta de la clase .alert
y .alert-{color}
según las opciones de colores de bootstrap
1 | <div class="alert alert-primary" role="alert"> |
Iconos
Bootstrap cuenta con su propio conjunto de iconos, sin embargo se puede trabajar de la mano con otras librerías como fontawesome, material-icons entre otros.
Temas
Dado que bootstrap es una librería de código abierto con licencia MIT, existen variaciones al framework, en el siguient link podrá encontrar versiones de bootstrap creados por la comunidad con diferentes colores, tipografía, tamaños y espaciado de los componentes.
Material Design
Si se desea trabajar con componentes de material design junto con las clases y utilidades de bootstrap, existen varias integraciones de éstos.
Material design es el sistema de diseño de google desarrollado en el 2014, existen diferentes frameworks como materializecss o material kit que se basan en este sistema de diseño, siendo (junto con foundation) las alternativas a bootstrap.
Material Design for Bootstrap 4 - the most popular & free UI KIT
Plantillas
Dado que bootstrap tiene licencia MIT, se pueden crear páginas de código libre (como no) y gratuitas (como pagas) desde donde se puede crear una página web, las plantillas y temas de bootstrap son páginas (archivos) creados por la comunidad para tener un punto de partida, donde solamente hay que modificar el contenido para adaptarlo a las necesidades de un proyecto.