Back to Component Library Return to the main component library index
Video Components
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:
Prop Type Default Required Description embedUrlstring- Yes YouTube embed URL (e.g., “https://www.youtube.com/embed/VIDEO_ID ”) titlestring""No Video title for accessibility and caption display authorstring""No Author name to display in caption hintstring""No Optional hint text to display captionstring- No Custom 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:
Prop Type Default Required Description srcstring- Yes Path to the video file (e.g., “/snippets/assets/media/videos/demo.mp4”) titlestring""No Video title for accessibility authorstring""No Author name to display with microphone icon captionstring- No Optional caption text (if author provided, styled with icon) hrefstring""No Optional link URL for author controlsbooleantrueNo Whether to show video controls autoPlaybooleanfalseNo Whether to autoplay the video loopbooleanfalseNo Whether to loop the video mutedbooleanfalseNo Whether to mute the video childrenReactNode- No Optional children to render inside Frame
Examples:
Basic
Autoplay Loop
With Author
Code
< Video src = "/snippets/assets/media/videos/demo.mp4" title = "Demo Video" />
< Video
src = "/snippets/assets/media/videos/demo.mp4"
autoPlay
muted
loop
author = "Author Name"
title = "Video Title"
/>
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:
Prop Type Default Required Description srcstring- Yes Video source URL titlestring- No Title text to overlay on the video subtitlestring- No Subtitle text to overlay arrowbooleanfalseNo Whether to show arrow indicator borderRadiusstring"12px"No Border radius of the video styleobject{}No Additional styles for the container
Examples:
< TitledVideo
src = "/snippets/assets/media/videos/demo.mp4"
title = "Demo Title"
subtitle = "Subtitle text"
arrow = { true }
/>
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:
Prop Type Default Required Description embedUrlstring- Yes YouTube embed URL titlestring- Yes Video title to display below the video styleobject- No Additional 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:
Prop Type Default Required Description embedUrlstring- Yes LinkedIn embed URL (should include ?compact=1) titlestring"Embedded post"No Post title for accessibility hintstring""No Optional hint text captionstring- No Optional caption text heightstring"399"No Height 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:
Prop Type Default Required Description itemsArray[]No Array of video objects from youtubeData.jsx limitnumber- No Optional limit on number of videos colsnumber2No Number 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.
Image Components
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:
Prop Type Default Required Description srcstring- Yes Image source URL altstring- Yes Alt text for accessibility captionstring- No Optional caption to display below the image iconstring- No Icon name (currently unused) hintstring- No Optional hint text fullwidthbooleantrueNo Whether to display image at full width
Examples:
< Image
src = "/images/diagram.png"
alt = "System Diagram"
caption = "Figure 1: Architecture"
/>
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:
Prop Type Default Required Description srcstring- Yes Image source URL altstring- Yes Alt text for accessibility captionstring- No Optional caption to display below the image iconstring- No Icon name (currently unused) hintstring- No Optional hint text hrefstring- Yes URL to navigate to when image is clicked
Examples:
< LinkImage
src = "/images/preview.png"
alt = "Preview"
href = "/images/full-diagram.png"
caption = "Click to view full size"
/>
Embed Components
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:
Prop Type Default Required Description urlstring- Yes URL 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" ;
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:
Quote Components
Quote Components
Quote
Simple quote component with styled border and italic text.
Import:
import { Quote } from "/snippets/components/display/quote.jsx" ;
Props:
Prop Type Default Required Description childrenReactNode- Yes Quote content
Examples:
“Livepeer is the future of decentralized video infrastructure.”
< Quote >
"Your quote text here"
</ Quote >
FrameQuote
Quote component with Frame wrapper, optional author, source, and image.
Import:
import { FrameQuote } from "/snippets/components/display/quote.jsx" ;
Props:
Prop Type Default Required Description childrenReactNode- Yes Quote content authorstring- No Author name sourcestring- No Source name hrefstring- No Link URL for source framebooleantrueNo Whether to wrap in Frame alignstring"right"No Alignment: “left”, “center”, “right” borderColorstring- No Border color imgobject- No Image object with src and alt
Examples:
“Livepeer enables decentralized video streaming at scale.”
Doug Petkanics
Livepeer Blog
< FrameQuote
author = "Author Name"
source = "Source Name"
href = "https://example.com"
align = "center"
>
"Quote text here"
</ FrameQuote >
Carousel & Showcase
Carousel & Showcase Components
CardCarousel
Renders a simple carousel that paginates through a fixed number of cards.
Import:
import { CardCarousel } from "/snippets/components/display/CardCarousel.jsx" ;
Props:
Prop Type Default Required Description childrenReactNode- Yes Card elements to display visibleCountnumber3No Number of cards to show per view gapstring|number"1.5rem"No Gap between cards (CSS value) showDotsbooleantrueNo Whether to show page indicator dots styleobject- No Container 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:
Prop Type Default Required Description itemsArray[]No Array of showcase item objects limitnumbernullNo Optional limit on number of items pageSizenumber10No Number 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 } />
Diagram Components
Diagram Components
Interactive diagram viewer with zoom controls (25%-200%) and scrollable pan support.
Import:
import { ScrollableDiagram } from "/snippets/components/display/zoomable-diagram.jsx" ;
Props:
Prop Type Default Required Description childrenReactNode- Yes Diagram or content to display titlestring""No Optional title to display above the diagram maxHeightstring"500px"No Maximum height of the scrollable container minWidthstring"100%"No Minimum width of the content area
Examples:
< ScrollableDiagram title = "System Architecture" maxHeight = "600px" >
< img src = "/diagrams/architecture.png" alt = "Architecture" />
</ ScrollableDiagram >
Social Components
Social Components
SocialLinks
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:
Prop Type Default Required Description sizenumber20No Icon size gapstring"0.75rem"No Gap between icons justifystring"center"No Justify content: “center”, “flex-start”, “flex-end” colorstring- No Override color for all icons
Examples:
< SocialLinks />
< SocialLinks size = { 24 } justify = "flex-start" />
Frame Mode Components
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:
Prop Type Default Required Description titlestring- Yes Main title text subtitlestring- No Subtitle text descriptionstring- No Description text titleColorstring"var(--hero-text)"No Title color subtitleColorstring"var(--accent)"No Subtitle color descriptionColorstring- No Description color childrenReactNode- No Additional content
Examples:
< PageHeader
title = "Page Title"
subtitle = "Subtitle"
description = "Description"
/>
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):
Prop Type Default Required Description childrenReactNode- Yes Heading text iconstring- No Icon name or path to theme-aware SVG iconSizenumbervaries No Size of icon (H1: 32, H2: 28, H3: 24, H4: 20, H5: 18, H6: 16) iconColorstring"var(--accent)"No Icon color alignstring"left"No Text alignment: “left”, “center”, “right” gapstringvaries No Gap between icon and text
Examples:
< H1 icon = "rocket" > Main Title </ H1 >
< H2 icon = "star" align = "center" > Section Title </ H2 >
< H3 > Subsection </ H3 >
Custom paragraph component for frame mode with optional icon.
Import:
import { P } from "/snippets/components/display/frameMode.jsx" ;
Props:
Prop Type Default Required Description childrenReactNode- Yes Paragraph text iconstring- No Icon name or path iconSizenumber16No Icon size iconColorstringtheme-aware No Icon color alignstring"left"No Text alignment gapstring"0.5rem"No Gap 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:
Prop Type Default Required Description colorstring"var(--border)"No Custom color for the divider marginstring"1.5rem 0"No Vertical margin opacitynumber0.2No Opacity of the divider
Examples:
< Divider />
< Divider margin = "2rem 0" opacity = { 0.5 } />
Next: Content Components Continue to Content Components →
Last modified on February 18, 2026