2.290539 ETH / 22393.74 USD

Overview

Carousels don’t automatically normalize slide dimensions. You may need to use additional utilities to appropriate function.

Slides only

Here’s a carousel with slides only. Note the presence of the .d-block and .w-100 on carousel images to prevent browser default image alignment.

Code Example
    <div id="carouselExampleSlidesOnly" class="carousel slide" data-bs-ride="carousel">        <div class="carousel-inner">          <div class="carousel-item active">            <img src="#" class="d-block w-100" alt="...">          </div>          <div class="carousel-item">            <img src="#" class="d-block w-100" alt="...">          </div>          <div class="carousel-item">            <img src="#" class="d-block w-100" alt="...">          </div>        </div>    </div>
With controls

Adding in the previous and next controls. We recommend using <button> elements, but you can also use <a> elements with role="button".

Code Example
    <div id="carouselExampleControls" class="carousel slide" data-bs-ride="carousel">        <div class="carousel-inner">          <div class="carousel-item active">            <img src="#" class="d-block w-100" alt="...">          </div>          <div class="carousel-item">            <img src="#" class="d-block w-100" alt="...">          </div>          <div class="carousel-item">            <img src="#" class="d-block w-100" alt="...">          </div>        </div>        <button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleControls" data-bs-slide="prev">          <span class="carousel-control-prev-icon" aria-hidden="true"></span>          <span class="visually-hidden">Previous</span>        </button>        <button class="carousel-control-next" type="button" data-bs-target="#carouselExampleControls" data-bs-slide="next">          <span class="carousel-control-next-icon" aria-hidden="true"></span>          <span class="visually-hidden">Next</span>        </button>    </div>
With indicators

You can also add the indicators to the carousel, alongside the controls, too.

Code Example
    <div id="carouselExampleIndicators" class="carousel slide" data-bs-ride="carousel">        <div class="carousel-indicators">          <button type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide-to="0" class="active" aria-current="true" aria-label="Slide 1"></button>          <button type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide-to="1" aria-label="Slide 2"></button>          <button type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide-to="2" aria-label="Slide 3"></button>        </div>        <div class="carousel-inner">          <div class="carousel-item active">            <img src="..." class="d-block w-100" alt="...">          </div>          <div class="carousel-item">            <img src="..." class="d-block w-100" alt="...">          </div>          <div class="carousel-item">            <img src="..." class="d-block w-100" alt="...">          </div>        </div>        <button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide="prev">          <span class="carousel-control-prev-icon" aria-hidden="true"></span>          <span class="visually-hidden">Previous</span>        </button>        <button class="carousel-control-next" type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide="next">          <span class="carousel-control-next-icon" aria-hidden="true"></span>          <span class="visually-hidden">Next</span>        </button>    </div>
With captions

Add captions to your slides easily with the .carousel-caption element within any .carousel-item. They can be easily hidden on smaller viewports, as shown below, with optional display utilities. We hide them initially with .d-none and bring them back on medium-sized devices with .d-md-block.

Code Example
    <div id="carouselExampleCaptions" class="carousel slide" data-bs-ride="carousel">        <div class="carousel-indicators">          <button type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide-to="0" class="active" aria-current="true" aria-label="Slide 1"></button>          <button type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide-to="1" aria-label="Slide 2"></button>          <button type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide-to="2" aria-label="Slide 3"></button>        </div>        <div class="carousel-inner">          <div class="carousel-item active">            <img src="..." class="d-block w-100" alt="...">            <div class="carousel-caption d-none d-md-block">                <h5>First slide label</h5>                <p>Some representative placeholder content for the first slide.</p>            </div>          </div>          <div class="carousel-item">            <img src="..." class="d-block w-100" alt="...">            <div class="carousel-caption d-none d-md-block">                <h5>Second slide label</h5>                <p>Some representative placeholder content for the second slide.</p>            </div>          </div>          <div class="carousel-item">            <img src="..." class="d-block w-100" alt="...">            <div class="carousel-caption d-none d-md-block">                <h5>Third slide label</h5>                <p>Some representative placeholder content for the third slide.</p>            </div>          </div>        </div>        <button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide="prev">          <span class="carousel-control-prev-icon" aria-hidden="true"></span>          <span class="visually-hidden">Previous</span>        </button>        <button class="carousel-control-next" type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide="next">          <span class="carousel-control-next-icon" aria-hidden="true"></span>          <span class="visually-hidden">Next</span>        </button>    </div>
Crossfade

Add .carousel-fade to your carousel to animate slides with a fade transition instead of a slide.

Code Example
    <div id="carouselExampleFade" class="carousel slide carousel-fade" data-bs-ride="carousel">        <div class="carousel-inner">          <div class="carousel-item active">            <img src="..." class="d-block w-100" alt="...">          </div>          <div class="carousel-item">            <img src="..." class="d-block w-100" alt="...">          </div>          <div class="carousel-item">            <img src="..." class="d-block w-100" alt="...">          </div>        </div>        <button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleFade" data-bs-slide="prev">          <span class="carousel-control-prev-icon" aria-hidden="true"></span>          <span class="visually-hidden">Previous</span>        </button>        <button class="carousel-control-next" type="button" data-bs-target="#carouselExampleFade" data-bs-slide="next">          <span class="carousel-control-next-icon" aria-hidden="true"></span>          <span class="visually-hidden">Next</span>        </button>    </div>
Individual .carousel-item interval

Add data-bs-interval="" to a .carousel-item to change the amount of time to delay between automatically cycling to the next item.

Code Example
    <div id="carouselExampleInterval" class="carousel slide" data-bs-ride="carousel">        <div class="carousel-inner">          <div class="carousel-item active" data-bs-interval="10000">            <img src="..." class="d-block w-100" alt="...">          </div>          <div class="carousel-item" data-bs-interval="2000">            <img src="..." class="d-block w-100" alt="...">          </div>          <div class="carousel-item">            <img src="..." class="d-block w-100" alt="...">          </div>        </div>        <button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleInterval" data-bs-slide="prev">          <span class="carousel-control-prev-icon" aria-hidden="true"></span>          <span class="visually-hidden">Previous</span>        </button>        <button class="carousel-control-next" type="button" data-bs-target="#carouselExampleInterval" data-bs-slide="next">          <span class="carousel-control-next-icon" aria-hidden="true"></span>          <span class="visually-hidden">Next</span>        </button>    </div>
Disable touch swiping

Carousels support swiping left/right on touchscreen devices to move between slides. This can be disabled using the data-bs-touch attribute. The example below also does not include the data-bs-ride attribute and has data-bs-interval="false" so it doesn’t autoplay.

Code Example
    <div id="carouselExampleControlsNoTouching" class="carousel slide" data-bs-touch="false" data-bs-interval="false">        <div class="carousel-inner">          <div class="carousel-item active">            <img src="..." class="d-block w-100" alt="...">          </div>          <div class="carousel-item">            <img src="..." class="d-block w-100" alt="...">          </div>          <div class="carousel-item">            <img src="..." class="d-block w-100" alt="...">          </div>        </div>        <button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleControlsNoTouching" data-bs-slide="prev">          <span class="carousel-control-prev-icon" aria-hidden="true"></span>          <span class="visually-hidden">Previous</span>        </button>        <button class="carousel-control-next" type="button" data-bs-target="#carouselExampleControlsNoTouching" data-bs-slide="next">          <span class="carousel-control-next-icon" aria-hidden="true"></span>          <span class="visually-hidden">Next</span>        </button>    </div>
Dark variant

Add .carousel-dark to the .carousel for darker controls, indicators, and captions. Controls have been inverted from their default white fill with the filter CSS property.

Code Example
    <div id="carouselExampleDark" class="carousel carousel-dark slide" data-bs-ride="carousel">        <div class="carousel-indicators">          <button type="button" data-bs-target="#carouselExampleDark" data-bs-slide-to="0" class="active" aria-current="true" aria-label="Slide 1"></button>          <button type="button" data-bs-target="#carouselExampleDark" data-bs-slide-to="1" aria-label="Slide 2"></button>          <button type="button" data-bs-target="#carouselExampleDark" data-bs-slide-to="2" aria-label="Slide 3"></button>        </div>        <div class="carousel-inner">          <div class="carousel-item active" data-bs-interval="10000">            <img src="..." class="d-block w-100" alt="...">            <div class="carousel-caption d-none d-md-block">              <h5>First slide label</h5>              <p>Some representative placeholder content for the first slide.</p>            </div>          </div>          <div class="carousel-item" data-bs-interval="2000">            <img src="..." class="d-block w-100" alt="...">            <div class="carousel-caption d-none d-md-block">              <h5>Second slide label</h5>              <p>Some representative placeholder content for the second slide.</p>            </div>          </div>          <div class="carousel-item">            <img src="..." class="d-block w-100" alt="...">            <div class="carousel-caption d-none d-md-block">              <h5>Third slide label</h5>              <p>Some representative placeholder content for the third slide.</p>            </div>          </div>        </div>        <button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleDark" data-bs-slide="prev">          <span class="carousel-control-prev-icon" aria-hidden="true"></span>          <span class="visually-hidden">Previous</span>        </button>        <button class="carousel-control-next" type="button" data-bs-target="#carouselExampleDark" data-bs-slide="next">          <span class="carousel-control-next-icon" aria-hidden="true"></span>          <span class="visually-hidden">Next</span>        </button>    </div>