AMP

Important: this documentation is not applicable to your currently selected format email!

amp-instagram

Experimental
Bento

Description

Displays an Instagram embed.

 

Required Scripts

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

Behavior

The width and height attributes are special for the Instagram embed. These should be the actual width and height of the Instagram image. The system automatically adds space for the "chrome" that Instagram adds around the image.

Many Instagrams are square. When you set layout="responsive" any value where width and height are the same will work.

Example:

<amp-instagram
  data-shortcode="fBwFP"
  data-captioned
  width="400"
  height="400"
  layout="responsive"
>
</amp-instagram>

If the Instagram is not square you will need to enter the actual dimensions of the image.

When using non-responsive layout you will need to account for the extra space added for the "instagram chrome" around the image. This is currently 48px above and below the image and 8px on the sides.

Standalone use outside valid AMP documents

Bento AMP allows you to use AMP components in non-AMP pages without needing to commit to fully valid AMP. You can take these components and place them in implementations with frameworks and CMSs that don't support AMP. Read more in our guide Use AMP components in non-AMP pages.

Example

The example below demonstrates amp-instagram component in standalone use.

<head>
  <script async src="https://cdn.ampproject.org/v0.js"></script>
  <link rel="stylesheet" type="text/css" href="https://cdn.ampproject.org/v0/amp-instagram-1.0.css">
  <script async custom-element="amp-instagram" src="https://cdn.ampproject.org/v0/amp-instagram-1.0.js"></script>
  <style>
    amp-instagram {
      aspect-ratio: 1/2;
    }
  </style>
</head>
<amp-instagram data-shortcode="CKXYAzuj7TE"></amp-instagram>

Layout and style

Each Bento component has a small CSS library you must include to guarantee proper loading without content shifts. Because of order-based specificity, you must manually ensure that stylesheets are included before any custom styles.

<link rel="stylesheet" type="text/css" href="https://cdn.ampproject.org/v0/amp-instagram-1.0.css">

Fully valid AMP pages use the AMP layout system to infer sizing of elements to create a page structure before downloading any remote resources. However, Bento use imports components into less controlled environments and AMP's layout system is inaccessible.

Container type

The amp-instagram component has a defined layout size type. To ensure the component renders correctly, be sure to apply a size to the component and its immediate children (slides) via a desired CSS layout (such as one defined with height, width, aspect-ratio, or other such properties):

amp-instagram {
  height: 500px;
  width: 100px;
}

Attributes

data-shortcode The instagram data-shortcode is found in every instagram photo URL.
For example, in https://instagram.com/p/fBwFP, fBwFP is the data-shortcode.
data-captioned Include the Instagram caption. amp-instagram will attempt to resize to the correct height including the caption.
common attributes This element includes common attributes extended to AMP components.
Need more help?

You've read this document a dozen times but it doesn't really cover all of your questions? Maybe other people felt the same: reach out to them on Stack Overflow.

Go to Stack Overflow
Found a bug or missing a feature?

The AMP project strongly encourages your participation and contributions! We hope you'll become an ongoing participant in our open source community but we also welcome one-off contributions for the issues you're particularly passionate about.

Go to GitHub