Last updated

Media

The Media component displays media content from your Fluid playlist with various display modes.

Usage

<!-- Display a specific Playlist -->
<fluid-media-widget playlist-id="your-playlist-id"></fluid-media-widget>

<!-- Display specific media -->
<fluid-media-widget media-id="your-media-id"></fluid-media-widget>

Attributes

AttributeTypeDefaultDescription
playlist-idstringPlaylist ID to fetch media from
media-idstringSingle media ID to display
hide-widgetbooleanfalseWhether to hide the component
class-namestringAdditional CSS classes
heightstringThumbnail height
widthstringThumbnail width

Display Options

AttributeTypeDefaultDescription
embed-typestring'default'Display mode: 'popover', 'inline', 'inline-shopping', 'default'
auto-openbooleanfalseAuto-open on load (popover mode only)
thumbnail-foambooleanfalseUse object-cover for thumbnail

Display Modes

Default Mode

Shows media with associated cta options (this is what is displayed on the shareable media pages)

<fluid-media-widget
  media-id="your-media-id"
  embed-type="default"
></fluid-media-widget>

Popover Mode

Shows a thumbnail that opens media in a popover overlay: auto-open true enabled will open the popover on load

<fluid-media-widget
  media-id="your-media-id"
  embed-type="popover"
  auto-open="true"
></fluid-media-widget>

Inline Mode

Embeds media directly in the page:

<fluid-media-widget
  media-id="your-media-id"
  embed-type="inline"
></fluid-media-widget>

Examples

Custom Dimensions

<fluid-media-widget
  playlist-id="your-playlist-id"
  height="300px"
  width="500px"
></fluid-media-widget>

Auto-Opening Popover

<fluid-media-widget
  media-id="your-media-id"
  embed-type="popover"
  auto-open="true"
></fluid-media-widget>

CTA Options

You can customize the Call-to-Action (CTA) displayed with media using client-side overrides. CTA options can be set via HTML attributes or the SDK API.

CTA Options Reference

OptionTypeRequiredDescription
typestringYesCTA type: 'cart', 'link', 'phone', or 'email'
urlstringIf type is 'link'URL to navigate to when CTA is clicked
buttonTextstringNoCustom button text (not applicable for 'cart' type)
buttonDescriptionstringNoDescription text below the button (not applicable for 'cart'

Setting CTA via HTML Attribute

Use the cta-options-manual-override attribute with a JSON string:

<!-- Link CTA -->
<fluid-media-widget
  media-id="12345"
  cta-options-manual-override='{"type":"link","url":"https://shop.example.com","buttonText":"Shop Now"}'
></fluid-media-widget>

<!-- Cart CTA this section will display all tagged products if available -->
<fluid-media-widget
  media-id="12345"
  cta-options-manual-override='{"type":"cart"}'
></fluid-media-widget>

<!-- Email CTA with description -->
<fluid-media-widget
  media-id="12345"
  cta-options-manual-override='{"type":"email","buttonText":"Get Updates","buttonDescription":"Join 10,000+ subscribers"}'
></fluid-media-widget>

<!-- Phone CTA -->
<fluid-media-widget
  media-id="12345"
  cta-options-manual-override='{"type":"phone","buttonText":"Call Now"}'
></fluid-media-widget>

Setting CTA via SDK API

Media-Specific Settings (Higher Priority)

Set CTA options for specific media IDs using the SDK. These persist in localStorage and are page-scoped:

// Set CTA for a specific media item
window.FairShareSDK.media.settings.setForMedia("12345", {
  ctaOptionsManualOverride: {
    type: "email",
    buttonText: "Get Updates",
    buttonDescription: "Join 10,000+ subscribers",
  },
});

Default Settings (Lower Priority)

Set default CTA options that apply to all media widgets on the page when no specific override exists:

// Set default CTA for all media widgets on this page
window.FairShareSDK.media.settings.setDefault({
  ctaOptionsManualOverride: {
    type: "cart",
  },
});

Priority Order

CTA options are applied in the following priority (highest to lowest):

  1. HTML Attribute (cta-options-manual-override) — Highest priority
  2. SDK API - Media-Specific (setForMedia) — Medium priority
  3. SDK API - Default Settings (setDefault) — Lowest priority

JavaScript API

// Get media data
const media = await window.FairShareSDK.getMedia("media-slug-or-id");
  • getMedia — Get media data programmatically
  • Playlist — Display a playlist of media