amp-carousel

Edit on Github
Open in Playground

Introduction

The amp-carousel component allows displaying multiple similar pieces of content along a horizontal axis.

Setup

Import the carousel component in the header.

<script async custom-element="amp-carousel" src="https://cdn.ampproject.org/v0/amp-carousel-0.1.js"></script>

Basic Usage

Use type="carousel" to display a list of images as a continuous strip.

Example

<amp-carousel height="300"
  layout="fixed-height"
  type="carousel">
  <amp-img src="/img/image1.jpg"
    width="400"
    height="300"
    alt="a sample image"></amp-img>
  <amp-img src="/img/image2.jpg"
    width="400"
    height="300"
    alt="another sample image"></amp-img>
  <amp-img src="/img/image3.jpg"
    width="400"
    height="300"
    alt="and another sample image"></amp-img>
</amp-carousel>

Use type="slides" to display a list of images as slides.

Example

<amp-carousel width="400"
  height="300"
  layout="responsive"
  type="slides">
  <amp-img src="/img/image1.jpg"
    width="400"
    height="300"
    layout="responsive"
    alt="a sample image"></amp-img>
  <amp-img src="/img/image2.jpg"
    width="400"
    height="300"
    layout="responsive"
    alt="another sample image"></amp-img>
  <amp-img src="/img/image3.jpg"
    width="400"
    height="300"
    layout="responsive"
    alt="and another sample image"></amp-img>
</amp-carousel>

The autoplay attribute (type=slides only) advances the slide to the next slide without user interaction, by default it will advance a slide in 5000 millisecond intervals (5 seconds) and can be overridden by the delay attribute.

Example

<amp-carousel width="400"
  height="300"
  layout="responsive"
  type="slides"
  autoplay
  delay="2000">
  <amp-img src="/img/image1.jpg"
    width="400"
    height="300"
    layout="responsive"
    alt="a sample image"></amp-img>
  <amp-img src="/img/image2.jpg"
    width="400"
    height="300"
    layout="responsive"
    alt="another sample image"></amp-img>
  <amp-img src="/img/image3.jpg"
    width="400"
    height="300"
    layout="responsive"
    alt="and another sample image"></amp-img>
</amp-carousel>

Supported Contents

Each of these nodes may also have arbitrary HTML children.

Example

This is a blue box.
This is a red box.
This is a green box.
<amp-carousel height="300"
  layout="fixed-height"
  type="slides">
  <div>
    <div class="blue-box"></div>
    This is a blue box.
  </div>
  <div>
    <div class="red-box"></div>
    This is a red box.
  </div>
  <div>
    <div class="green-box"></div>
    This is a green box.
  </div>
</amp-carousel>

A good use case for amp-carousel are image galleries, here are some examples.