GuidesAPI ReferenceRelease Notes
HomeLog InHome
Guides

Stories - Web

Player Style - Stories

The player's appearance will resemble this when using the default presets:


{
  "titleVisible": true,
  "titleFont": "'WSC Open Sans'",
  "titleFontSize": "12px",
  "titleFontSizeEmbedded": "11px",
  "titleColor": "#F8F9FB",
  "publishedDateVisible": true,
  "publishedDateFont": "'WSC Open Sans'",
  "publishedDateFontSize": "12px",
  "publishedDateFontSizeEmbedded": "11px",
  "publishedDateColor": "#B6B7B8",
  "statusLiveStyle": {
    "backgroundColor": "#FF364E",
    "textColor": "#F8F9FB",
    "font": "'WSC Open Sans'",
    "textSize": "10px",
    "letterSpacing": "initial",
    "borderRadius": "14px",
    "borderWidth": 2,
    "borderColor": "#F8F9FB",
    "text": "LIVE",
    "isVisible": true,
    "padding": "3px 9px"
  },
  "ctaButton": {
    "color": "",
    "backgroundColor": "",
    "borderRadius": "8px",
    "padding": "0",
    "border": "",
    "fontSize": "16px",
    "font": "'WSC Open Sans'",
    "fontWeight": "700",
    "textTransform": "uppercase",
    "isAnimated": false,
    "isDisplayCtaModal": true,
    "width": "100%",
    "height": "40px",
    "position": "CENTER",
    "isVisible": true,
    "icon": {
    	"isVisible": false,
    	"url": "data:image/svg+xml;base64,URL_FOR_ICON",
    	"size": "24px",
    	"color": "inherit"
  	}
  },
  "iconsPosition": "HORIZONTAL",
  "iconsButtonPadding": "5px",
  "iconsButtonSize": "28px",
  "iconsButtonEmbeddedSize": "20px",
  "iconsButton": [
    {
      "value": "MUTE_UNMUTE",
      "isEmbeddedVisible": true,
      "isVisible": true,
      "color": "#FFFFFF",
      "backgroundColor": "transparent",
      "borderRadius": "50%"
    },
    {
      "value": "PLAY_PAUSE",
      "isEmbeddedVisible": true,
      "embeddedSize": "20px",
      "isVisible": true,
      "color": "#FFFFFF",
      "backgroundColor": "transparent",
      "borderRadius": "50%"
    },
    {
      "value": "SHARE",
      "isEmbeddedVisible": false,
      "isVisible": true,
      "color": "#FFFFFF",
      "backgroundColor": "transparent",
      "borderRadius": "50%"
    },
    {
      "value": "EXIT_PLAYER",
      "isEmbeddedVisible": false,
      "isVisible": true,
      "color": "#FFFFFF",
      "backgroundColor": "transparent",
      "borderRadius": "50%"
    },
    {
      "value": "FULLSCREEN",
      "isEmbeddedVisible": true,
      "isVisible": false,
      "color": "#FFFFFF",
      "backgroundColor": "transparent",
      "borderRadius": "50%"
    }
  ],
  "iconsButtonNavigation": [
    {
      "value": "NEXT_PAGE",
      "size": "28px",
      "isVisible": true,
      "color": "#000000",
      "backgroundColor": "#FFFFFF",
      "borderRadius": "50%",
      "padding": "10px"
    },
    {
      "value": "PREV_PAGE",
      "size": "28px",
      "isVisible": true,
      "color": "#000000",
      "backgroundColor": "#FFFFFF",
      "borderRadius": "50%",
      "padding": "10px"
    },
    {
      "value": "NEXT_STORY",
      "size": "28px",
      "isVisible": true,
      "color": "#FFFFFF",
      "backgroundColor": "transparent",
      "borderRadius": "50%",
      "padding": "0"
    },
    {
      "value": "PREV_STORY",
      "size": "28px",
      "isVisible": true,
      "color": "#FFFFFF",
      "backgroundColor": "transparent",
      "borderRadius": "50%",
      "padding": "0"
    }
  ],
  "iconsButtonOrder": [
    "MUTE_UNMUTE",
    "PLAY_PAUSE",
    "SHARE",
    "EXIT_PLAYER"
  ],
  "contentOrder": [
    "LIVE_CHIP",
    "STORY_TITLE",
    "PUBLISHED_DATE"
  ],
  "localeDirection": "LTR",
  "icons": {
    "play": "data:image/svg+xml;base64,URL_FOR_PLAY_ICON",
    "pause": "data:image/svg+xml;base64,URL_FOR_PAUSE_ICON",
    "mute": "data:image/svg+xml;base64,URL_FOR_MUTE_ICON",
    "unmute": "data:image/svg+xml;base64,URL_FOR_UNMUTE_ICON",
    "share": "data:image/svg+xml;base64,URL_FOR_SHARE_ICON",
    "fullscreen": "data:image/svg+xml;base64,URL_FOR_MUTE_ICON",
    "exitMobileTablet": "data:image/svg+xml;base64,URL_FOR_EXIT_ICON",
    "exitDesktop": "data:image/svg+xml;URL_FOR_EXIT_ICON",
    "navigation": {
      "nextPage": "data:image/svg+xml;URL_FOR_NEXT_PAGE_ICON",
      "prevPage": "data:image/svg+xml;base64,URL_FOR_PREV_PAGE_ICON",
      "nextStory": "data:image/svg+xml;base64,URL_FOR_NEXT_STORY_ICON",
      "prevStory": "data:image/svg+xml;base64,URL_FOR_PREV_STORY_ICON"
    }
  },
  "captions": {
    "font": "'Inter', sans-serif",
    "fontWeight": "700",
    "positioning": {
      "horizontal": "start",
      "vertical": "top"
    }
  }
}


Player Content

  1. Title
  2. Published Time
AttributeProperty NameDefault ValueType

Story Title -

Display

titleVisibletrueBoolean
Story Title FonttitleFont'Roboto', 'SF Pro Text', 'Open Sans'String
Story Title Font SizetitleFontSize12pxString
Story Title Font ColortitleColor#F8F9FBString

Story Published Date -

Display

publishedDateVisibletrueBoolean
Story Published Date FontpublishedDateFont'Roboto', 'SF Pro Text', 'Open Sans'String
Story Published Date Font SizepublishedDateFontSize12pxString
Story Published Date ColorpublishedDateColor#7F7F7FString
myRowCircleTheme.playerStyle.titleVisible = true
myRowCircleTheme.playerStyle.titleFont = "Monaco", 
myRowCircleTheme.playerStyle.titleColor = '#FFC0CB'
myRowCircleTheme.playerStyle.titleFontSize = '10px'

myRowCircleTheme.playerStyle.publishedDateVisible = true 
myRowCircleTheme.playerStyle.publishedDateFont = "Monaco"
myRowCircleTheme.playerStyle.publishedDateColor = '#FFC0CB' 
myRowCircleTheme.playerStyle.publishedDateFontSize = '10px'
  1. Live Chip - Status Indicator
AttributeProperty NameDefault ValueType
Background ColorbackgroundColortrueBoolean
Border RadiusborderRadius'Roboto', 'SF Pro Text', 'Open Sans'String
Border ColorborderColor12pxString
Border WidthtitleColorF8F9FBString
TexttextLIVEString
Text ColortextColor

F8F9FB

String
Text SizetextSize10pxString
Letter SpacingletterSpacinginitialString
FontfontWSC Open SansString
Is VisibleisVisibletrueString
PaddingpaddingpaddingString
myRowCircleTheme.playerStyle.statusLiveStyle.backgroundColor = '#FF364E'
myRowCircleTheme.playerStyle.statusLiveStyle.textColor = "#F8F9FB", 
myRowCircleTheme.playerStyle.statusLiveStyle.font = '#Monaco'
myRowCircleTheme.playerStyle.statusLiveStyle.textSize = '10px'
  1. Title Image
AttributeProperty NameDefault ValueType
Is VisibleisVisibletrueString
Sizesize20number
Source ModesourceModedynamicString
Static URLstaticUrl-String
Dynamic Fallback UrldynamicFallbackUrl-String
myRowCircleTheme.playerStyle.titleImage.isVisible = true;
myRowCircleTheme.playerStyle.titleImage.size = 20; // px. supported up to 32
myRowCircleTheme.playerStyle.titleImage.sourceMode = 'dynamic'; // 'static'
myRowCircleTheme.playerStyle.titleImage.staticUrl = 'https://my-domain.com/static-title-image.jpg';
myRowCircleTheme.playerStyle.titleImage.dynamicFallbackUrl = 'https://my-domain.com/fallback-image.jpg';

Player Direction

myRowCircleTheme.playerStyle.statusLiveStyle.localeDirection =  "LTR" // "RTL"

Player Content Order

To reorder the player content so that the live chip appears first, the story title second, and the published date last, you should use the contentOrder attribute within the playerStyle object, not within statusLiveStyle. Here's the corrected example:

myRowCircleTheme.playerStyle.contentOrder = ["LIVE_CHIP","STORY_TITLE","PUBLISHED_DATE"]

Captions

Use captions on StoryPlayerStyle to customize the appearance and placement of closed captions in the player.

AttributeProperty NameType
Fontcaptions.fontstring
Font sizecaptions.fontSizestring
Font weightcaptions.fontWeightstring
Horizontal positioningcaptions.positioning.horizontalstring
Vertical positioningcaptions.positioning.verticalstring

Supported values:

  • captions.positioning.horizontal: start | center
  • captions.positioning.vertical: top | center | bottom
myRowCircleTheme.playerStyle.captions = {
  font: "'WSC Open Sans'",
  fontSize: '16px',
  fontWeight: '700',
  positioning: {
    horizontal: 'center',
    vertical: 'bottom'
  }
}

Player Icons

All icons listed here use base64 encoding for their respective SVG data. The navigation icons are nested within the icons object and represent specific actions for navigating through pages and stories.

Icon NameProperty Name
Playicons.play
pauseicons.pause
muteicons.mute
unmuteicons.unmute
shareicons.share
fullscreenicons.fullscreen
exitMobileTableticons.exitMobileTablet
exitDesktopicons.exitDesktop
nextPageicons.navigation.nextPage
prevPageicons.navigation.prevPage
nextStoryicons.navigation.nextStory
prevStoryicons.navigation.prevStory
myRowCircleTheme.playerStyle.icons.mute = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgaWQ9InBsYXlfYXJyb3dfIGhvbGxvdyI+CjxtYXNrIGlkPSJtYXNrMF8yMTA2Xzk5NCIgc3R5bGU9Im1hc2stdHlwZTphbHBoYSIgbWFza1VuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeD0iMCIgeT0iMCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ij4KPHJlY3QgaWQ9IkJvdW5kaW5nIGJveCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBmaWxsPSIjRDlEOUQ5Ii8+CjwvbWFzaz4KPGcgbWFzaz0idXJsKCNtYXNrMF8yMTA2Xzk5NCkiPgo8cGF0aCBpZD0icGxheV9hcnJvdyIgZD0iTTggMTlWNUwxOSAxMkw4IDE5Wk0xMCAxNS4zNUwxNS4yNSAxMkwxMCA4LjY1VjE1LjM1WiIgZmlsbD0iI0YwRjBGMCIvPgo8L2c+CjwvZz4KPC9zdmc+Cg=='
myRowCircleTheme.playerStyle.icons.navigation.nextPage = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgaWQ9InBsYXlfYXJyb3dfIGhvbGxvdyI+CjxtYXNrIGlkPSJtYXNrMF8yMTA2Xzk5NCIgc3R5bGU9Im1hc2stdHlwZTphbHBoYSIgbWFza1VuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeD0iMCIgeT0iMCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ij4KPHJlY3QgaWQ9IkJvdW5kaW5nIGJveCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBmaWxsPSIjRDlEOUQ5Ii8+CjwvbWFzaz4KPGcgbWFzaz0idXJsKCNtYXNrMF8yMTA2Xzk5NCkiPgo8cGF0aCBpZD0icGxheV9hcnJvdyIgZD0iTTggMTlWNUwxOSAxMkw4IDE5Wk0xMCAxNS4zNUwxNS4yNSAxMkwxMCA4LjY1VjE1LjM1WiIgZmlsbD0iI0YwRjBGMCIvPgo8L2c+CjwvZz4KPC9zdmc+Cg=='

Player Icon Position

We can set our player icon position to be Vertical or Horizontal

myRowCircleTheme.playerStyle.iconsPosition = 'VERTICAL' // HORIZONTAL is the default value

Player Icons - Custom Style Global

You can control some attributes related to the player icons, such as icon player buttons, background color around them, and icon button size.

AttributeProperty NameDefault ValueType
Player button Icons PaddingiconsButtonPadding5pxstring
player buttons Icon SizeiconsButtonSize28pxstring
myRowCircleTheme.playerStyle.iconsButtonPadding = '10px'
myRowCircleTheme.playerStyle.iconsButtonSize = '30px'

Player Icons Order

You can control the order of the player icons from left to right by rearranging them as desired.

myRowCircleTheme.playerStyle.iconsButtonOrder = ["MUTE_UNMUTE","PLAY_PAUSE","SHARE","EXIT_PLAYER"]

Player Icon - Custom Style Per Icon

AttributeProperty NameType
Is Visible on Default player (Full screen)isVisibleboolean
Is Visible on Embedded layer (Only in Player Icons)isEmbeddedVisibleboolean
Icon colorcolorstring
Background ColorbackgroundColorstring
Border RadiusborderRadiusstring
Padding (Only in Navigation Buttons)paddingstring
Size (Only in Navigation Buttons)sizestring

Share behavior

The shared link opens the Story from the first page (it doesn't preserve the exact page where Share was clicked).

// Hide the share button
myRowCircleTheme.playerStyle.iconsButton.filter(icon => icon.value === 'SHARE')[0].isVisible = false

Embedded Player Customization

We allow differentiation between the fullscreen player and the embedded player.

Player Content

AttributeProperty NameDefault ValueType
Title Font ColortitleFontSizeEmbedded11pxString
Published Date Font SizepublishedDateFontSizeEmbedded11pxString

Player Custom Style

AttributeProperty NameDefault ValueType
Player Buttons SizeiconsButtonEmbeddedSize20pxString

Player Icons -

MuteUnmute/Share/Exit/Fullscreen/PlayPause

AttributeDefault ValueProperty NameType
is Button Visible20pxisEmbeddedVisibleString

Did this page help you?