En todo estás vos

Componentes

Docenas de componentes reusables construidos para proveer navegación, alertas, popovers y más.

Ejemplos

Dos opciones básicas, junto con dos variaciones más específicas.

Un solo grupo de botones

Poné una serie de botones .btn dentro de un .btn-group.

<div class="btn-group">
  <button class="btn">Izquierda</button>
  <button class="btn">Centrado</button>
  <button class="btn">Derecha</button>
</div>

Varios grupos de botones

Combiná conjuntos de <div class="btn-group"> adentro de un <div class="btn-toolbar"> para hacer componentes más complejos.

<div class="btn-toolbar">
  <div class="btn-group">
    ...
  </div>
</div>

Grupo de botones vertical

Hacé que un conjunto de botones aparezca apilado verticalmente en lugar de horizontales.

<div class="btn-group btn-group-vertical">
  ...
</div>

Estilos para casillas de verificación y radiales (checkbox & radio)

Grupos de botones pueden funcionar también como radiales, donde solamente un botón puede ser activado a la vez, o casillas de verificación, donde cualquiera de los botones puede estar activo a la vez. Mirá la documentación de JavaScript para instrucciones sobre cómo hacerlo.

Dropdowns en grupos de botones

¡Atención! Los botones con dropdowns tienen que estar insertados individualmente adentro de su propio .btn-group adentro de un .btn-toolbar para que se vean correctamente.

Resumen y ejemplos

Usá cualquier botón para activar un menú dropdown colocándolo dentro de un .btn-group y colocándole el código de menú correspondiente.

<div class="btn-group">
  <a class="btn dropdown-toggle" data-toggle="dropdown" href="#">
    Acción
    <span class="caret"></span>
  </a>
  <ul class="dropdown-menu">
    <!-- dropdown menu links -->
  </ul>
</div>

Funciona con todos los tamaños de botones

Los dropdowns de botones funcionan a cualquier tamaño: .btn-large, .btn-small, o .btn-mini.

Requiere JavaScript

Los dropdowns de botones requieren que el plugin dropdown esté funcionando.

En algunos casos—como en teléfonos móviles—los menúes dropdown se extenderán fuera de la ventana. Tendrás que resolver la alineación manualmente o con código JavaScript personalizado.


Dropdown de botones divididos

Trabajando sobre el código y los estilos del grupo de botones, podemos crear fácilmente un botón dividido. Los botones divididos tienen una acción estándar a la izquierda y un botón de dropdown a la derecha con enlaces contextuales.

<div class="btn-group">
  <button class="btn">Acción</button>
  <button class="btn dropdown-toggle" data-toggle="dropdown">
    <span class="caret"></span>
  </button>
  <ul class="dropdown-menu">
    <!-- dropdown menu links -->
  </ul>
</div>

Tamaños

Usá las clases de botones .btn-mini, .btn-small, o .btn-large para dar distintos tamaños.

<div class="btn-group">
  <button class="btn btn-mini">Acción</button>
  <button class="btn btn-mini dropdown-toggle" data-toggle="dropdown">
    <span class="caret"></span>
  </button>
  <ul class="dropdown-menu">
    <!-- dropdown menu links -->
  </ul>
</div>

Menúes dropup

Los menúes dropdown puede ser activados también de abajo hacia arriba con solamente agregar una clase al elemento contenedor de .dropdown-menu. Va a cambiar la dirección del .caret y reubicar el menú para que se mueva de abajo hacia arriba en lugar de arriba hacia abajo.

<div class="btn-group dropup">
  <button class="btn">Dropup</button>
  <button class="btn dropdown-toggle" data-toggle="dropdown">
    <span class="caret"></span>
  </button>
  <ul class="dropdown-menu">
    <!-- dropdown menu links -->
  </ul>
</div>

Paginación standard

Simple paginación, útil para aplicaciones y resultados de búsquedas. El bloque es grande, fácilmente escalable y provee áreas grandes donde hacer clic.

<div class="pagination">
  <ul>
    <li><a href="#">Prev</a></li>
    <li><a href="#">1</a></li>
    <li><a href="#">2</a></li>
    <li><a href="#">3</a></li>
    <li><a href="#">4</a></li>
    <li><a href="#">5</a></li>
    <li><a href="#">Next</a></li>
  </ul>
</div>

Opciones

Estados desactivado y activado

Los enlaces se pueden personalizar para distintas circunstancias. Usá .disabled para enlaces no cliqueables y .active para indicar la página actual.

<div class="pagination">
  <ul>
    <li class="disabled"><a href="#">&laquo;</a></li>
    <li class="active"><a href="#">1</a></li>
    ...
  </ul>
</div>

También podés reemplazar los enlaces por spans para eliminar la funcionalidad del enlace manteniendo el estilo.

<div class="pagination">
  <ul>
    <li class="disabled"><span>&laquo;</span></li>
    <li class="active"><span>1</span></li>
    ...
  </ul>
</div>

Tamaños

Agregá .pagination-large, .pagination-small, o .pagination-mini para tamaños adicionales.

<div class="pagination pagination-large">
  <ul>
    ...
  </ul>
</div>
<div class="pagination">
  <ul>
    ...
  </ul>
</div>
<div class="pagination pagination-small">
  <ul>
    ...
  </ul>
</div>
<div class="pagination pagination-mini">
  <ul>
    ...
  </ul>
</div>

Alineación

Agregá una de las dos clases opcionales para cambiar la alineación de los enlaces de paginación:: .pagination-centered y .pagination-right.

<div class="pagination pagination-centered">
  ...
</div>
<div class="pagination pagination-right">
  ...
</div>

Paginador

Enlaces de anterior y siguiente para una paginación simple.

Ejemplo predeterminado

De forma predeterminada el paginador centra los enlaces.

<ul class="pager">
  <li><a href="#">Anterior</a></li>
  <li><a href="#">Siguiente</a></li>
</ul>

Enlaces alineados

También podés ubicar cada enlace en un borde:

<ul class="pager">
  <li class="previous">
    <a href="#">&larr; Anteriores</a>
  </li>
  <li class="next">
    <a href="#">Recientes &rarr;</a>
  </li>
</ul>

Estado opcional desactivado

Los enlaces del paginador también pueden usar la clase .disabled.

<ul class="pager">
  <li class="previous disabled">
    <a href="#">&larr; Anteriores</a>
  </li>
  ...
</ul>

Etiquetas

Etiqueta Código
Predeterminada <span class="label">Predeterminada</span>
Éxito <span class="label label-success">Éxito</span>
Advertencia <span class="label label-warning">Advertencia</span>
Importante <span class="label label-important">Importante</span>
Info <span class="label label-info">Info</span>
Invertido <span class="label label-inverse">Invertido</span>

Insignia

Nombre Ejemplo Código
Predeterminado 1 <span class="badge">1</span>
Éxito 2 <span class="badge badge-success">2</span>
Advertencia 4 <span class="badge badge-warning">4</span>
Importante 6 <span class="badge badge-important">6</span>
Info 8 <span class="badge badge-info">8</span>
Invertido 10 <span class="badge badge-inverse">10</span>

Desaparición práctica

Para una implementación más fácil, las etiquetas y las insignias simplemente colapsarán (a través del selector CSS :empty ) cuando no exista contenido dentro de ellas.

Unidad héroe

Un componente liviano y flexible para mostrar un contenido especial en tu sitio.

¡Hola, mundo!

Esta es una simple unidad héroe, un componente estilo jumbotron para resaltar contenido destacado.

Ver más

<div class="hero-unit">
  <h1>Encabezado</h1>
  <p>Tagline</p>
  <p>
    <a class="btn btn-primary btn-large">
      Ver más
    </a>
  </p>
</div>

Encabezado de página

Un div para envolver un h1 que le dará un especiado apropiado para el inicio de una sección de contenido de una página. Puede usar el elemento small.

<div class="page-header">
  <h1>Encabezado de página de ejemplo <small>Subtexto para el encabezado</small></h1>
</div>

Miniaturas predeterminadas

De forma predeterminada, las miniaturas están diseñadas para mostrar imágenes con un mínimo de código.

Altamente personalizable

Con un poco de código extra, es posible agregar cualquier contenido en las miniaturas, como encabezados, párrafos, o botones.

  • Etiqueta de la miniatura

    Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec id elit non mi porta gravida at eget metus. Nullam id dolor id nibh ultricies vehicula ut id elit.

    Acción Acción

  • Etiqueta de la miniatura

    Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec id elit non mi porta gravida at eget metus. Nullam id dolor id nibh ultricies vehicula ut id elit.

    Acción Acción

  • Etiqueta de la miniatura

    Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec id elit non mi porta gravida at eget metus. Nullam id dolor id nibh ultricies vehicula ut id elit.

    Acción Acción

Por qué usar miniaturas

Las miniaturas son geniales para grillas de fotos o videos, resultados de búsqueda de imágenes, productos, portfolios, y mucho más. Pueden ser enlaces o contenido estático.

Código simple y flexible

El código de las miniaturas es simple—un ul con elementos li es todo lo que necesita. También es muy flexible, permitiendo cualquier tipo de contenido con solo agregar algo de código.

Usa los tamaños de las columnas de la grilla

El componente de miniaturas usa las clases existentes de la grilla —como .span2 o .span3—para controlar el tamaño de las miniaturas.

Código

Como mencionamos antes, el código requerido para las miniaturas es liviano y sencillo. Acá hay una muestra de un uso normal para imágenes enlazadas:

<ul class="thumbnails">
  <li class="span4">
    <a href="#" class="thumbnail">
      <img data-src="holder.js/300x200" alt="">
    </a>
  </li>
  ...
</ul>

Para agregar HTML personalizado en las miniaturas, el código cambia un poco. Para permitir contenido de bloque en cualquier parte, reemplazamos el <a> por un <div>:

<ul class="thumbnails">
  <li class="span4">
    <div class="thumbnail">
      <img data-src="holder.js/300x200" alt="">
      <h3>Thumbnail label</h3>
      <p>Thumbnail caption...</p>
    </div>
  </li>
  ...
</ul>

Más ejemplos

Explorá todas las opciones con las clases de grilla que tenés disponibles. También podés usar diferentes tamaños de manera intercambiable.

Alerta predeterminada

Colocá cualquier texto y un botón opcional para descartar dentro de un .alert para obtener un mensaje básico de advertencia.

¡Atención! Tené cuidado con lo que hacés, no se ve bien.
<div class="alert">
  <button type="button" class="close" data-dismiss="alert">&times;</button>
  <strong>¡Atención!</strong> Tené cuidado con lo que hacés, no se ve bien.
</div>

Botones para desacartar

Los navegadores móviles Safari y Opera, además de requerir el atributo data-dismiss="alert", requieren un href="#" para descartar las alertas cuando se use un tag <a>.

<a href="#" class="close" data-dismiss="alert">&times;</a>

Otra solución es usar un elemento <button> con el atributo data, que es lo que se hizo en esta documentación. Cuando uses <button>, tenés que incluir type="button" o puede que tus formularios no se envíen.

<button type="button" class="close" data-dismiss="alert">&times;</button>

Descartar alertas a través de JavaScript

Usá el plugin jQuery de alertas para descartar fácilmente las alertas.


Opciones

Para mensajes más largos, aumentá el padding de arriba y de abajo agregando .alert-block.

¡Atención!

Tené cuidado con lo que hacés, no se ve bien. Nulla vitae elit libero, a pharetra augue. Praesent commodo cursus magna, vel scelerisque nisl consectetur et.

<div class="alert alert-block">
  <button type="button" class="close" data-dismiss="alert">&times;</button>
  <h4>¡Atención!</h4>
  Tené cuidado con lo que hacés...
</div>

Alternativas contextuales

Agregá clases opcionales para cambiar la connotación de una alerta.

Error o peligro

¡Caramba! Cambiá algunas cosas y tratá de hacer de nuevo el envío.
<div class="alert alert-error">
  ...
</div>

Éxito

¡Bien hecho! Pudiste leer satisfactoriamente este mensaje de alerta.
<div class="alert alert-success">
  ...
</div>

Información

¡Oiga! Esta alerta necesita tu atención, pero no es tan importante.
<div class="alert alert-info">
  ...
</div>

Ejemplos y código

Básica

Barra de progreso predeterminada con un gradiente vertical.

<div class="progress">
  <div class="bar" style="width: 60%;"></div>
</div>

Rayada

Usa un gradiente para crear un efecto de rayas. No disponible en IE7-8.

<div class="progress progress-striped">
  <div class="bar" style="width: 20%;"></div>
</div>

Animada

Agregá .active a .progress-striped para animar las rayas de derecha a izquierda. No disponible en todas las versiones de IE.

<div class="progress progress-striped active">
  <div class="bar" style="width: 40%;"></div>
</div>

Apiladas

Ubicá muchas barras dentro del mismo .progress para apilarlas.

<div class="progress">
  <div class="bar bar-success" style="width: 35%;"></div>
  <div class="bar bar-warning" style="width: 20%;"></div>
  <div class="bar bar-danger" style="width: 10%;"></div>
</div>

Opciones

Más colores

Las barras de progreso usan algunas de las clases de botones y alertas para mantener un estilo consistente.

<div class="progress progress-info">
  <div class="bar" style="width: 20%"></div>
</div>
<div class="progress progress-success">
  <div class="bar" style="width: 40%"></div>
</div>
<div class="progress progress-warning">
  <div class="bar" style="width: 60%"></div>
</div>
<div class="progress progress-danger">
  <div class="bar" style="width: 80%"></div>
</div>

Barras rayadas

Se pueden combinar las clases de colores con el estilo rayado.

<div class="progress progress-info progress-striped">
  <div class="bar" style="width: 20%"></div>
</div>
<div class="progress progress-success progress-striped">
  <div class="bar" style="width: 40%"></div>
</div>
<div class="progress progress-warning progress-striped">
  <div class="bar" style="width: 60%"></div>
</div>
<div class="progress progress-danger progress-striped">
  <div class="bar" style="width: 80%"></div>
</div>

Capacidad de los navegadores

Las barras de progreso usan gradientes, transiciones y animaciones de CSS3 para lograr todos sus efectos. Estas funcionalidades no están contempladas en IE7-9 o versiones anteriores de Firefox.

Las animaciones no funcionan en versiones anteriores a Internet Explorer 10 y Opera 12.

Estilos abstractos de objetos para construir varios tipos de componentes (como comentarios de blog, tuits, etc.) que contienen una imagen alineada a la izquierda o a la derecha junto con contenido de texto.

Ejemplo predeterminado

El 'media' predeterminado permite flotar un objeto (imagen, video, audio) a la izquierda o a la derecha de un bloque de contenido.

Encabezado del medio

Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis. Fusce condimentum nunc ac nisi vulputate fringilla. Donec lacinia congue felis in faucibus.

Encabezado del medio

Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis. Fusce condimentum nunc ac nisi vulputate fringilla. Donec lacinia congue felis in faucibus.

Encabezado del medio

Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis. Fusce condimentum nunc ac nisi vulputate fringilla. Donec lacinia congue felis in faucibus.
<div class="media">
  <a class="pull-left" href="#">
    <img class="media-object" data-src="holder.js/64x64">
  </a>
  <div class="media-body">
    <h4 class="media-heading">Encabezado del medio</h4>
    ...

    <!-- Nested media object -->
    <div class="media">
      ...
    </div>
  </div>
</div>

Lista de medios

Con un poco más de código podés usar medios dentro de una lista (útil para árboles de comentarios o listas de artículos).

  • Encabezado del medio

    Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis.

    Encabezado del medio anidado

    Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis.

    Encabezado del medio anidado

    Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis.

    Encabezado del medio anidado

    Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis.
  • Encabezado del medio

    Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis.
<ul class="media-list">
  <li class="media">
    <a class="pull-left" href="#">
      <img class="media-object" data-src="holder.js/64x64">
    </a>
    <div class="media-body">
      <h4 class="media-heading">Encabezado del medio</h4>
      ...

      <!-- Nested media object -->
      <div class="media">
        ...
     </div>
    </div>
  </li>
</ul>

Pozos

Usá el pozo como un efecto simple sobre un elemento para darle un efecto hundido.

¡Mirá, estoy en un pozo!
<div class="well">
  ...
</div>

Clases opcionales

Controlá el padding y las esquinas redondeadas con dos clases opcionales.

¡Mirá, estoy en un pozo!
<div class="well well-large">
  ...
</div>
¡Mirá, estoy en un pozo!
<div class="well well-small">
  ...
</div>

Ícono de cerar

Usá el ícono de cerrar genérico para descartar contenido como modales y alertas.

<button class="close">&times;</button>

Los dispositivos iOS requieren un href="#" para los eventos de clic, si usás un elemento a.

<a class="close" href="#">&times;</a>

Clases de ayuda

Clases simples y precisas para cambios pequeños en visualización o comportamiento.

.pull-left

Flota un elemento a la izquierda

class="pull-left"
.pull-left {
  float: left;
}

.pull-right

Flota un elemento a la derecha

class="pull-right"
.pull-right {
  float: right;
}

.muted

Cambia el color de un elemento a #999

class="muted"
.muted {
  color: #999;
}

.clearfix

Limpia el float en cualquier elemento

class="clearfix"
.clearfix {
  *zoom: 1;
  &:before,
  &:after {
    display: table;
    content: "";
  }
  &:after {
    clear: both;
  }
}