Skip to main content

Back to Component Library

Return to the main component library index
/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg
Video Components
/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg

Video Components

YouTubeVideo

Embeds a YouTube video with optional caption and author attribution. Displays a YouTube video in a responsive iframe within a Frame component. Import:
import { YouTubeVideo } from "/snippets/components/display/video.jsx";
Props:
PropTypeDefaultRequiredDescription
embedUrlstring-YesYouTube embed URL (e.g., “https://www.youtube.com/embed/VIDEO_ID”)
titlestring""NoVideo title for accessibility and caption display
authorstring""NoAuthor name to display in caption
hintstring""NoOptional hint text to display
captionstring-NoCustom caption (overrides author/title format)
Examples:
<YouTubeVideo embedUrl="https://www.youtube.com/embed/VIDEO_ID" />

<YouTubeVideo 
  embedUrl="https://www.youtube.com/embed/VIDEO_ID"
  author="Livepeer"
  title="Video Title"
  hint="Click to play"
/>
Note: YouTubeVideo currently unavailable due to component bug. See component-bugs.md for details.

Video

Self-hosted video component with Frame wrapper. Displays a self-hosted video file within a Frame component. Import:
import { Video } from "/snippets/components/display/video.jsx";
Props:
PropTypeDefaultRequiredDescription
srcstring-YesPath to the video file (e.g., “/snippets/assets/media/videos/demo.mp4”)
titlestring""NoVideo title for accessibility
authorstring""NoAuthor name to display with microphone icon
captionstring-NoOptional caption text (if author provided, styled with icon)
hrefstring""NoOptional link URL for author
controlsbooleantrueNoWhether to show video controls
autoPlaybooleanfalseNoWhether to autoplay the video
loopbooleanfalseNoWhether to loop the video
mutedbooleanfalseNoWhether to mute the video
childrenReactNode-NoOptional children to render inside Frame
Examples:

TitledVideo

A video component with an overlay title. Displays a looping video with an optional title overlay and styled border. Import:
import { TitledVideo } from "/snippets/components/display/video.jsx";
Props:
PropTypeDefaultRequiredDescription
srcstring-YesVideo source URL
titlestring-NoTitle text to overlay on the video
subtitlestring-NoSubtitle text to overlay
arrowbooleanfalseNoWhether to show arrow indicator
borderRadiusstring"12px"NoBorder radius of the video
styleobject{}NoAdditional styles for the container
Examples:
Daydream Demo

ShowcaseVideo

Showcase video component with custom styling for showcase pages. Import:
import { ShowcaseVideo } from "/snippets/components/display/video.jsx";
Props: Same as TitledVideo (uses TitledVideo internally with showcase-specific styling)

CardVideo

YouTube video embedded in a Card component. Displays a YouTube video within a Card component with a title caption below. Import:
import { CardVideo } from "/snippets/components/display/video.jsx";
Props:
PropTypeDefaultRequiredDescription
embedUrlstring-YesYouTube embed URL
titlestring-YesVideo title to display below the video
styleobject-NoAdditional styles
Examples:
<CardVideo
  embedUrl="https://www.youtube.com/embed/VIDEO_ID"
  title="Video Title"
/>
Note: CardVideo currently unavailable due to component bug. See component-bugs.md for details.

LinkedInEmbed

Embeds a LinkedIn post with optional caption and hint. Follows LinkedIn’s official embed requirements. Import:
import { LinkedInEmbed } from "/snippets/components/display/video.jsx";
Props:
PropTypeDefaultRequiredDescription
embedUrlstring-YesLinkedIn embed URL (should include ?compact=1)
titlestring"Embedded post"NoPost title for accessibility
hintstring""NoOptional hint text
captionstring-NoOptional caption text
heightstring"399"NoHeight of the embed iframe
Examples:
<LinkedInEmbed
  embedUrl="https://www.linkedin.com/embed/feed/update/urn:li:ugcPost:7387171661868933120?compact=1"
  title="Livepeer Update"
  caption="Latest news from the Livepeer team"
  height="500"
/>

YouTubeVideoData

Renders YouTube videos from youtubeData.jsx format. Converts YouTube watch URLs to embed URLs and displays them in a grid. Import:
import { YouTubeVideoData } from "/snippets/components/display/video.jsx";
Props:
PropTypeDefaultRequiredDescription
itemsArray[]NoArray of video objects from youtubeData.jsx
limitnumber-NoOptional limit on number of videos
colsnumber2NoNumber of columns for grid layout
Note: Requires data from snippets/automations/youtube/youtubeData.jsx

YouTubeVideoDownload

Placeholder for YouTube video with download functionality. Currently non-functional (deprecated). Note: This component is deprecated. Use YouTubeVideo instead.
/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg
Image Components
/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg

Image Components

Image

Image component with Frame wrapper. Displays an image within a Frame component with optional caption and hint. Import:
import { Image } from "/snippets/components/display/image.jsx";
Props:
PropTypeDefaultRequiredDescription
srcstring-YesImage source URL
altstring-YesAlt text for accessibility
captionstring-NoOptional caption to display below the image
iconstring-NoIcon name (currently unused)
hintstring-NoOptional hint text
fullwidthbooleantrueNoWhether to display image at full width
Examples:
Livepeer Logo

LinkImage

Clickable image that opens in a new tab. Displays an image within a Frame component that links to a URL. Import:
import { LinkImage } from "/snippets/components/display/image.jsx";
Props:
PropTypeDefaultRequiredDescription
srcstring-YesImage source URL
altstring-YesAlt text for accessibility
captionstring-NoOptional caption to display below the image
iconstring-NoIcon name (currently unused)
hintstring-NoOptional hint text
hrefstring-YesURL to navigate to when image is clicked
Examples:
Logo
/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg
Embed Components
/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg

Embed Components

MarkdownEmbed

Fetches and renders markdown content from a URL. Dynamically fetches markdown content from a remote URL and renders it. Import:
import { MarkdownEmbed } from "/snippets/components/display/embed.jsx";
Props:
PropTypeDefaultRequiredDescription
urlstring-YesURL of the markdown file to fetch and display
Examples:
<MarkdownEmbed url="https://raw.githubusercontent.com/user/repo/main/README.md" />

EmbedMarkdown

Alias for MarkdownEmbed. Alternative name for the same component. Import:
import { EmbedMarkdown } from "/snippets/components/display/embed.jsx";

TwitterTimeline

Embeds a Twitter/X timeline using an iframe widget. Import:
import { TwitterTimeline } from "/snippets/components/display/embed.jsx";
Props: None (uses hardcoded widget URL) Examples:
<TwitterTimeline />
/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg
Quote Components
/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg

Quote Components

Quote

Simple quote component with styled border and italic text. Import:
import { Quote } from "/snippets/components/display/quote.jsx";
Props:
PropTypeDefaultRequiredDescription
childrenReactNode-YesQuote content
Examples:
“Livepeer is the future of decentralized video infrastructure.”

FrameQuote

Quote component with Frame wrapper, optional author, source, and image. Import:
import { FrameQuote } from "/snippets/components/display/quote.jsx";
Props:
PropTypeDefaultRequiredDescription
childrenReactNode-YesQuote content
authorstring-NoAuthor name
sourcestring-NoSource name
hrefstring-NoLink URL for source
framebooleantrueNoWhether to wrap in Frame
alignstring"right"NoAlignment: “left”, “center”, “right”
borderColorstring-NoBorder color
imgobject-NoImage object with src and alt
Examples:
“Livepeer enables decentralized video streaming at scale.”

Doug Petkanics
Livepeer Blog
/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg
Carousel & Showcase
/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg

CardCarousel

Renders a simple carousel that paginates through a fixed number of cards. Import:
import { CardCarousel } from "/snippets/components/display/CardCarousel.jsx";
Props:
PropTypeDefaultRequiredDescription
childrenReactNode-YesCard elements to display
visibleCountnumber3NoNumber of cards to show per view
gapstring|number"1.5rem"NoGap between cards (CSS value)
showDotsbooleantrueNoWhether to show page indicator dots
styleobject-NoContainer style overrides
Examples:
<CardCarousel visibleCount={3}>
  <Card title="Card 1">Content 1</Card>
  <Card title="Card 2">Content 2</Card>
  <Card title="Card 3">Content 3</Card>
  <Card title="Card 4">Content 4</Card>
</CardCarousel>

ShowcaseCards

Interactive showcase cards component with search, filtering, and pagination. Import:
import { ShowcaseCards } from "/snippets/components/display/showcaseCards.jsx";
Props:
PropTypeDefaultRequiredDescription
itemsArray[]NoArray of showcase item objects
limitnumbernullNoOptional limit on number of items
pageSizenumber10NoNumber of items per page
Item Object Structure:
  • title - Card title
  • subtitle - Card subtitle
  • description - Card description
  • href - Link URL
  • categoryTags - Array of category strings
  • productTags - Array of product strings
  • mediaSrc - Image/video source
  • mediaType - “image” or “video”
  • logo - Logo image URL
  • links - Array of link objects
Examples:
const items = [
  {
    title: "Project Name",
    subtitle: "Subtitle",
    description: "Description",
    href: "/project",
    categoryTags: ["Apps"],
    productTags: ["Livepeer"],
    mediaSrc: "/images/project.png",
    mediaType: "image"
  }
];

<ShowcaseCards items={items} limit={10} pageSize={6} />
/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg
Diagram Components
/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg

Diagram Components

ScrollableDiagram

Interactive diagram viewer with zoom controls (25%-200%) and scrollable pan support. Import:
import { ScrollableDiagram } from "/snippets/components/display/zoomable-diagram.jsx";
Props:
PropTypeDefaultRequiredDescription
childrenReactNode-YesDiagram or content to display
titlestring""NoOptional title to display above the diagram
maxHeightstring"500px"NoMaximum height of the scrollable container
minWidthstring"100%"NoMinimum width of the content area
Examples:
/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg
Social Components
/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg

Social Components

Social media icon links for Livepeer. Displays a row of social media icon links with official brand colors. Import:
import { SocialLinks } from "/snippets/components/display/socialLinks.jsx";
Props:
PropTypeDefaultRequiredDescription
sizenumber20NoIcon size
gapstring"0.75rem"NoGap between icons
justifystring"center"NoJustify content: “center”, “flex-start”, “flex-end”
colorstring-NoOverride color for all icons
Examples:
/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg
Frame Mode Components
/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg

Frame Mode Components

Components for use in Mintlify frame mode pages. These provide styled headings and text that work properly when mode: frame is set in frontmatter. Full page header component with title, subtitle, description, and divider. Import:
import { PageHeader } from "/snippets/components/display/frameMode.jsx";
Props:
PropTypeDefaultRequiredDescription
titlestring-YesMain title text
subtitlestring-NoSubtitle text
descriptionstring-NoDescription text
titleColorstring"var(--hero-text)"NoTitle color
subtitleColorstring"var(--accent)"NoSubtitle color
descriptionColorstring-NoDescription color
childrenReactNode-NoAdditional content
Examples:

H1, H2, H3, H4, H5, H6

Custom heading components for frame mode with optional icons. Import:
import { H1, H2, H3, H4, H5, H6 } from "/snippets/components/display/frameMode.jsx";
Props (all headings):
PropTypeDefaultRequiredDescription
childrenReactNode-YesHeading text
iconstring-NoIcon name or path to theme-aware SVG
iconSizenumbervariesNoSize of icon (H1: 32, H2: 28, H3: 24, H4: 20, H5: 18, H6: 16)
iconColorstring"var(--accent)"NoIcon color
alignstring"left"NoText alignment: “left”, “center”, “right”
gapstringvariesNoGap between icon and text
Examples:

P

Custom paragraph component for frame mode with optional icon. Import:
import { P } from "/snippets/components/display/frameMode.jsx";
Props:
PropTypeDefaultRequiredDescription
childrenReactNode-YesParagraph text
iconstring-NoIcon name or path
iconSizenumber16NoIcon size
iconColorstringtheme-awareNoIcon color
alignstring"left"NoText alignment
gapstring"0.5rem"NoGap between icon and text
Examples:
// P component with icon currently unavailable due to component bug
// Use P without icon prop, or see component-bugs.md for details
<P align="center">Centered text</P>

Divider

Horizontal divider line for frame mode. Renders a horizontal rule with proper styling. Import:
import { Divider } from "/snippets/components/display/frameMode.jsx";
Props:
PropTypeDefaultRequiredDescription
colorstring"var(--border)"NoCustom color for the divider
marginstring"1.5rem 0"NoVertical margin
opacitynumber0.2NoOpacity of the divider
Examples:

Next: Content Components

Continue to Content Components →
Last modified on February 18, 2026