Basic page structure
Here is the code for the basic document structure:
---
title:
description:
parent:
---
<h1>Documentation Template</h1>
<article class="bcls-article">
<summary>This is a template to demonstrate various CSS classes used in our documentation and provide sample code for them.</summary>
<section class="bcls-section">
<h2 id=""></h2>
<p></p>
</section>
</article>
Dash snippet: docstart
And here is how it works:

The id
on the h2
tag is important because it is used to build the Page Contents menu:

Images
Images set off on their own
You can set off images on their own with a border added or no border.

<figure class="bcls-figure">
<img class="bcls-image" src="/assets/images/doc-template/page-contents.png" alt="Basic Doc Structure">
<figcaption class="bcls-caption--image">Basic Doc Structure</figcaption>
</figure>
Dash snippet: bcimg
Image without border

If you wanted an image with no border, use this instead:
<figure class="bcls-figure">
<img class="bcls-image--no-border" src="" alt="description">
<figcaption class="bcls-caption--image">description</figcaption>
</figure>
Dash snippet: imgnoborder
For inline images, just use an <img>
tag without the figure and caption tags. No special classes for inline images.
Image formats
- For screenshots, use .png or .jpg (png preferred)
- For diagrams use .svg if at all possible (svg resizes better than other formats). Many image editors like Lucidchart allow you to export the image as svg
Task lists
We use some special lists for different purposes.
Task list that resumes numbering when you restart it
- Step 1
- Step 2
-
Step 3: code for the list:
<ol class="bcls-tasklist"> <li></li> </ol>
- Step 4: Dash snippet:
bctasklist
Subheading
Some content you want to add before restarting the steps.
- Step 5
- Step 6
Task list with numbers starting at 1
- Here is step 1 of the task.
- Step 2 of the task.
-
Code to create this list:
<ol class="bcls-tasklist-restart"> <li></li> </ol>
Dash snippet: bcnewlist
Tables
We have special styles for tables. Here is the basic code to create one:
<div style="overflow-x: scroll;">
<table class="bcls-table">
<caption class="bcls-caption--table">description</caption>
<thead class="bcls-table__head">
<tr>
<th>Table Header</th>
<th>Table Header</th>
</tr>
</thead>
<tbody class="bcls-table__body">
<tr>
<td>Table cell</td>
<td>Table cell</td>
</tr>
</tbody>
</table>
</div>
Dash snippet: bctable
And below is a sample table:
Column header | Column header |
---|---|
Table cell | Table cell |
Notes for information, tips, and warnings
We have special notes styles to highlight important information, tips that might help customers, or warnings about things might go wrong.
Dash snippet: bclsinfo
Dash snippet: bctip
Dash snippet: bcwarning
Embedding videos
Training videos
For training videos, we use an in-page experience. The code looks like this:
<div class="training-video-player-ipx" data-experience="5a73630f7afd7a00101bc1b5" data-video-ids="4878165648001"> </div></span>
<script src="https://players.brightcove.net/20318290001/experience_5a73630f7afd7a00101bc1b5/live.js"></script>
Note that the video id (highlighted above) is the only thing that changes.
Sample videos/players
For samples, it will depend on what the sample is demonstrating. Where possible, use the basic (iframe) embed code, but if you need to add custom CSS or JavaScript, you will need to use the advanced (in-page) embed code. In either case, be sure to use the responsive version of the code.
Short animated-gif style videos
Matt created a special player for these in the In-App Help account.
These also need to be responsive, and making them so is a little more complicated, because the responsive code the Brightcove Player uses assumes a 16:9 aspect ratio, and these videos are usually odd sizes (as we try to make them as small as possible). Here's sample code to show you what needs to be done:
<div style="position: relative; display: block; max-width: 960px;">
<div style="padding-top: 43.64%;">
<iframe src="https://players.brightcove.net/6225316964001/Qznf2bKtV_default/index.html?videoId=6267506952001" allowfullscreen="" allow="encrypted-media" style="position: absolute; top: 0px; right: 0px; bottom: 0px; left: 0px; width: 100%; height: 100%;"></iframe>
</div>
</div>
The key to responsive video is the padding-top
value in the second div
tag (highlighted above). The value needs to be the actual height of the video divided by the actual width, expressed as a percentage:

Simulate UI buttons
To help users identify buttons in Studio that you are referring to, we've create classes to simulate the buttons in documentation. Examples with the code are below.
<span class="button-blue">Add New</span>
<span class="button-blue-text">Add New</span>
<span class="button-blue-text-bordered">Add New</span>
<span class="button-red">Add New</span>
<span class="button-red-text">Add New</span>
<span class="button-red-text-border">Add New</span>
<span class="button-gray">Add New</span>
<span class="button-blue-text-bordered"> <i data-feather="edit-3"></i> Edit</span>
Code and localization
The AWS machine translator we use to localize our sites translates code as if it were ordinary text, which is always wrong! To stop this, I got Amazon to add handling for a special translate="no"
attribute that stops the content of the tag from being translated. you can use that attribute on any tag, but it's especially important to use it when you are including sample code.
Inline code
For inline code, just use <code translate="No">some same code</code> (Dash snippet: codent
)
Code blocks
For code blocks, we use a library that adds line numbering and syntax highlighting for the code, based on special classes.
HTML
For an HTML block: <pre class="line-numbers"><code class="language-html" translate="No"></code></pre>
(Dash snippet: pchtml
)
Example
<section class="bcls-section">
<h2 id=""></h2>
<p></p>
</section>
CSS
For a CSS block: <pre class="line-numbers"><code class="language-css" translate="No"></code></pre>
(Dash snippet: pccss
)
Example
.bcls-tasklist-restart {
list-style-type: none;
margin-left: 0;
counter-reset: rstep calc(var(--s) - 1);
}
JavaScript
For a CSS block: <pre class="line-numbers"><code class="language-javascript" translate="No"></code></pre>
(Dash snippet: pcjs
)
Example
var cookiesArray = document.cookie.split(";"), cookiesObj = {}, i, tmpArray = [];
for (i = 0; i < cookiesArray.length; i++) {
tmpArray = cookiesArray[i].split("=");
if (tmpArray[0].indexOf('BC_TOKEN') > -1) {
cookiesObj.BC_TOKEN = tmpArray[1];
}
}
window.prompt("BC_TOKEN:", cookiesObj.BC_TOKEN);
Several other languages are supported, including json (Dash snippet: pcljson
), swift, objective-c, and java (Dash snippet: pcjava
). See this page for all languages Prism supports. Our implementation doesn't support all the languages, but if you need to add one that isn't supported, ask Robert.
If you don't want line numbers for a short snippet, just remove the class="line-numbers"
from the pre
tag.
Highlighting and marking user input
Sometimes it's useful to highlight an important part of code, or an item that the user needs to replace with their own information.
To highlight some code, use <span class="bcls-highlight">(some code here)</span>
(Dash snippet: select the code that you want to highlight, and then type bchighlight
)
To mark some code that the user needs to modify, use <span class="bcls-input">{your_access_token}</span>
(Dash snippet: select the code that you want to apply this to, and then type bcinput
)
Collapsable sections
We sometimes use collapsable sections for bits of information that are included on a lot of different pages (for example, how to create client credentials for an API), and also for some long code blocks that many users may not be interested in seeing (like a sample response to an API request).Here's an example:
This part appears in the page
What's in this part can contain any HTML and is hidden until the user clicks on the visible part.
The code
<details>
<summary>This part appears in the page</summary>
<p>What's in this part can contain any HTML and is hidden until the user clicks on the visible part.</p>
</details>
FAQ
Sample
Is this the question?
Yes, and this is the answer.What HTML can you put in the answer?
Anything you like!

List
- item 1
- item 2
Code
<details>
<summary>Is this the question?</summary>
Yes, and this is the answer.
</details>
<details>
<summary>What HTML can you put in the answer?</summary>
<p>Anything you like!</p>
<figure class="bcls-figure">
<img class="bcls-image" src="/test-assets/images/lunar-eclipse.png" alt="Sample Image">
<figcaption class="bcls-caption--image">Sample Image</figcaption>
</figure>
<h4>List</h4>
<ul>
<li>item 1</li>
<li>item 2</li>
</ul>
</details>
Button
Sample
Code
<button class="bcls-button">BCLS Button</button>
Icons
Topic | Icon | Code |
---|---|---|
Administration, Administering Accounts | <i class="fa-solid fa-gear"></i> | |
Adobe | <i class="fa-solid fa-a"></i> | |
Advanced Topics, Advanced Features | <i class="fa-solid fa-diamond"></i> | |
Advertising | <i class="fa-solid fa-rectangle-ad"></i> | |
Analytics, Reviewing Analytics, Using Analytics Module | <i class="fa-solid fa-chart-line-up"></i> | |
Android | <i class="fa-brands fa-android"></i> | |
Annotations, Custom Annotations | <i class="fa-solid fa-bookmark"></i> | |
Appearance and Controls | <i class="fa-solid fa-sidebar"></i> | |
Aspera | <i class="fa-solid fa-folder-arrow-up"></i> | |
Audience | <i class="fa-solid fa-vector-square"></i> | |
Basics | <i class="fa-solid fa-cubes"></i> | |
Beacon Web Store | <i class="fa-solid fa-store"></i> | |
Brightcove Video Connect for Microsoft Teams | <i class="fa-brands fa-microsoft"></i> | |
Build | <i class="fa-solid fa-cubes"></i> | |
Campaign, Administering Campaign | <i class="fa-solid fa-vector-square"></i> | |
Captions | <i class="fa-solid fa-closed-captioning"></i> | |
Channels, Beacon Channels, Cloud Playout Channels | <i class="fa-solid fa-table-list"></i> | |
Cloud Playout | <i class="fa-solid fa-cloud-bolt"></i> | |
Code Samples | <i class="fa-solid fa-file-code"></i> | |
Coding Topics, Code | <i class="fa-solid fa-code"></i> | |
CMS | <i class="fa-solid fa-folder-grid"></i> | |
Cross-Device Resume (XDR) | <i class="fa-solid fa-laptop-mobile"></i> | |
Data Collection | <i class="fa-solid fa-binary"></i> | |
Delivery Rules |
<i class="fa-solid fa-memo-circle-check"></i> | |
Delivery System | <i class="fa-solid fa-truck"></i> | |
Developers | <i class="fa-solid fa-rectangle-code"></i> | |
Developer Support | <i class="fa-solid fa-comments-question-check"></i> | |
Dimension, Dimension Guides | <i class="fa-solid fa-cube"></i> | |
DRM | <i class="fa-solid fa-lock"></i> | |
Drupal | <i class="fa-brands fa-drupal"></i> | |
Dynamic Ingest | <i class="fa-solid fa-cloud-arrow-up"></i> | |
eCDN | <i class="fa-solid fa-chart-network"></i> | |
eCommerce | <i class="fa-solid fa-cart-shopping"></i> | |
Experiences | <i class="fa-solid fa-browsers"></i> | |
Features | <i class="fa-solid fa-sparkles"></i> | |
General Topics | <i class="fa-solid fa-book"></i> | |
Get Started | <i class="fa-solid fa-map-pin"></i> | |
Guides | <i class="fa-solid fa-books"></i> | |
Home | <i class="fa-solid fa-house-blank"></i> | |
Hootsuite | <i class="fa-solid fa-h"></i> | |
Image | <i class="fa-solid fa-image"></i> | |
In-Page, In-Page Experience | <i class="fa-solid fa-sidebar-flip"></i> | |
Information, General Information | <i class="fa-solid fa-circle-info"></i> | |
Ingest Profile, Managing Ingest Profiles | <i class="fa-solid fa-sliders"></i> | |
Ingestion, Ingestions MRSS | <i class="fa-solid fa-cloud-arrow-up"></i> | |
Integrations | <i class="fa-solid fa-puzzle-piece-simple"></i> | |
Interactivity | <i class="fa-solid fa-hand-back-point-up"></i> | |
iOS | <i class="fa-brands fa-apple"></i> | |
Landing Page, Landing Page Experience | <i class="fa-solid fa-file-lines"></i> | |
Live, Live Streaming, Live Event, Live Events, Using the Live Module | <i class="fa-solid fa-satellite-dish"></i> | |
Marketing Automation, Campaign | <i class="fa-solid fa-chart-network"></i> | |
Media, Managing Media, Using the Media Module | <i class="fa-solid fa-photo-film"></i> | |
Monetization, Monetizing Content | <i class="fa-solid fa-money-bills"></i> | |
OAuth | <i class="fa-solid fa-shield"></i> | |
Organizing, Organizing Videos | <i class="fa-solid fa-folder-tree"></i> | |
Overview, Product Overview | <i class="fa-solid fa-file"></i> | |
Pages, Managing Pages | <i class="fa-solid fa-files"></i> | |
Players, Playback, Managing Players, Non-Brightcove Players, Using the Players Module, Player Properties | <i class="fa-solid fa-play"></i> | |
Plugins | <i class="fa-solid fa-plug"></i> | |
Policy | <i class="fa-solid fa-key-skeleton-left-right"></i> | |
Portal, Portal Experience | <i class="fa-solid fa-browser"></i> | |
Projects | <i class="fa-solid fa-object-group"></i> | |
Publishing Videos, Publishing Players, Publishing, Publishing to Third-Party Apps | <i class="fa-solid fa-display-code"></i> | |
References | <i class="fa-solid fa-books"></i> | |
Registered Users | <i class="fa-solid fa-users"></i> | |
Release Notes, Notes | <i class="fa-solid fa-memo-pad"></i> | |
Series and Seasons | <i class="fa-solid fa-list-timeline"></i> | |
Settings | <i class="fa-solid fa-gear"></i> | |
Sharing and Embedding | <i class="fa-solid fa-share-from-square"></i> | |
Sharepoint | <i class="fa-solid fa-s"></i> | |
Sitecore | <i class="fa-solid fa-s"></i> | |
Social | <i class="fa-solid fa-share-nodes"></i> | |
SSAI | <i class="fa-solid fa-rectangle-ad"></i> | |
Styling | <i class="fa-solid fa-brush"></i> | |
Support | <i class="fa-solid fa-comments-question-check"></i> | |
Templates | <i class="fa-solid fa-clone"></i> | |
Training | <i class="fa-solid fa-chalkboard-user"></i> | |
Troubleshooting | <i class="fa-solid fa-bug"></i> | |
tvOS | <i class="fa-brands fa-apple"></i> | |
Upload | <i class="fa-solid fa-cloud-arrow-up"></i> | |
Utilities | <i class="fa-solid fa-toolbox"></i> | |
User | <i class="fa-solid fa-user"></i> | |
Videos, Managing Videos, Managing Video Files, Video Properties, Organizing Videos | <i class="fa-solid fa-film"></i> | |
Virtual Event, Virtual Event Experience | <i class="fa-solid fa-calendar-circle-user"></i> | |
Web Conferencing | <i class="fa-solid fa-camera-web"></i> | |
Wordpress | <i class="fa-brands fa-wordpress"></i> |
Notes
Note link: Some text with a note[1-1]
<p>Note link: Some text with a note<sup><strong><a href="#note1-1">[1-1]</a></strong></sup></p>
Notes
- [1-1] Here is the note text
<h3>Notes</h3>
<ul>
<li id="note1-1" style="list-style: none;"><sup><strong>[1-1]</strong></sup> Here is the note text</li>
</ul>