Skip to main content

Back to Component Library

Return to the main component library index
/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg
Buttons & Actions
/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg

Buttons & Actions

DownloadButton

Interactive download button with lazy loading for performance optimization. Import:
import { DownloadButton } from "/snippets/components/primitives/buttons.jsx";
Props:
PropTypeDefaultRequiredDescription
labelstring"Download"NoButton text label
iconstring"download"NoLeft icon name
downloadLinkstring-YesURL of the file to download
rightIconstring""NoOptional right icon name
borderbooleanfalseNoWhether to show a border around the button
Examples:

BasicBtn

Placeholder component for basic button functionality. Currently returns empty div. Import:
import { BasicBtn } from "/snippets/components/primitives/buttons.jsx";
Props: None Note: This is a placeholder component and currently non-functional.
/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg
Icons & Branding
/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg

Icons & Branding

LivepeerIcon

Theme-aware Livepeer logo icon that automatically adapts to light/dark mode. Import:
import { LivepeerIcon } from "/snippets/components/primitives/icons.jsx";
Props:
PropTypeDefaultRequiredDescription
sizenumber16NoIcon size in pixels
colorstringtheme-awareNoCustom color override (defaults to theme-aware color)
Examples:
/snippets/assets/logos/Livepeer-Logo-Symbol.svg Default size /snippets/assets/logos/Livepeer-Logo-Symbol.svg Size 24 /snippets/assets/logos/Livepeer-Logo-Symbol.svg Size 32

LivepeerIconFlipped

Horizontally flipped Livepeer icon. Useful for decorative purposes or directional indicators. Import:
import { LivepeerIconFlipped } from "/snippets/components/primitives/icons.jsx";
Props: Same as LivepeerIcon (accepts all Icon component props) Examples:
/snippets/assets/logos/Livepeer-Logo-Symbol.svg Normal /snippets/assets/logos/Livepeer-Logo-Symbol-Light.svg Flipped

LivepeerSVG

Inline SVG version of the Livepeer logo. Uses em units for responsive sizing. Import:
import { LivepeerSVG } from "/snippets/components/primitives/icons.jsx";
Props:
PropTypeDefaultRequiredDescription
sizenumber24NoSize parameter (currently unused, uses 1em)
...propsobject-NoAdditional SVG props
Examples:

LivepeerIconOld

Legacy Livepeer icon component using the light symbol SVG file. Import:
import { LivepeerIconOld } from "/snippets/components/primitives/icons.jsx";
Props: Accepts all Icon component props Note: This is the older version. Prefer LivepeerIcon for new code.
/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg
Links & Navigation
/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg
Simple navigation link with icon for internal documentation pages. Import:
import { GotoLink } from "/snippets/components/primitives/links.jsx";
Props:
PropTypeDefaultRequiredDescription
labelstring-YesLink text/label
relativePathstring-YesRelative URL path
textstring""NoOptional text to display before the link
iconstring"arrow-turn-down-right"NoIcon to display
Examples:

GotoCard

Card component for navigation with link, icon, and optional CTA. Import:
import { GotoCard } from "/snippets/components/primitives/links.jsx";
Props:
PropTypeDefaultRequiredDescription
labelstring-YesCard title
relativePathstring-YesRelative URL path
iconstring"arrow-turn-down-right"NoIcon to display
textReactNode-YesCard content
ctastring""NoCall-to-action button text
...propsobject-NoAdditional Card component props
Examples:


CustomCallout

A stylized callout box with customizable icon and colors. Automatically converts hex colors to rgba for proper opacity handling. Import:
import { CustomCallout } from "/snippets/components/primitives/links.jsx";
Props:
PropTypeDefaultRequiredDescription
childrenReactNode-YesContent to display in the callout
iconstring"lightbulb"NoIcon name to display
colorstringtheme accentNoPrimary color for icon, border, and background
iconSizenumber16NoSize of the icon in pixels
textSizestring"0.875rem"NoFont size for the text content
textColorstringmatches colorNoText color (defaults to match icon color)
Examples:
This is an informational message with a blue info icon.

TipWithArrow

Callout box with an arrow indicator in the top-right corner. Similar to CustomCallout but includes an arrow icon. Import:
import { TipWithArrow } from "/snippets/components/primitives/links.jsx";
Props:
PropTypeDefaultRequiredDescription
childrenReactNode-YesContent to display in the tip
iconstring"lightbulb"NoMain icon to display on the left
arrowIconstring"arrow-up-right"NoArrow icon to display in top-right
colorstringtheme accentNoPrimary color for icons, border, and background
iconSizenumber16NoSize of the main icon in pixels
arrowSizenumber16NoSize of the arrow icon in pixels
Examples:
Check out the related documentation for more details!


LinkArrow

Link component with arrow icon and optional newline. Import:
import { LinkArrow } from "/snippets/components/primitives/links.jsx";
Props:
PropTypeDefaultRequiredDescription
hrefstring-YesLink URL
labelstring-YesLink text
newlinebooleantrueNoWhether to add a line break before the link
borderColorstring-NoOptional border color
Examples:
/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg
Text & Typography
/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg

Text & Typography

Subtitle

Styled subtitle text component with customizable styling. Import:
import { Subtitle } from "/snippets/components/primitives/text.jsx";
Props:
PropTypeDefaultRequiredDescription
textstring-NoSubtitle text (alternative to children)
childrenReactNode-NoAlternative content (alternative to text)
styleobject{}NoCustom styles object
style.fontSizestring"1rem"NoFont size
style.fontStylestring"italic"NoFont style
style.colorstring"var(--accent)"NoText color
style.marginBottomstring0NoBottom margin
Examples:
This is a subtitle

CopyText

Inline code with copy button. Displays text in a code block with a clickable copy button. Import:
import { CopyText } from "/snippets/components/primitives/text.jsx";
Props:
PropTypeDefaultRequiredDescription
textstring-YesThe text to display and copy
labelstring-NoOptional label before the text
Examples:
0x1234567890abcdef

CardTitleTextWithArrow

Card title component with arrow icon integrated into the title. Import:
import { CardTitleTextWithArrow } from "/snippets/components/primitives/text.jsx";
Props:
PropTypeDefaultRequiredDescription
childrenReactNode-YesTitle text content
...cardPropsobject-NoAdditional Card component props
Examples:

Card Title with Arrow


AccordionTitleWithArrow

Accordion title component with arrow icon and optional link. Import:
import { AccordionTitleWithArrow } from "/snippets/components/primitives/text.jsx";
Props:
PropTypeDefaultRequiredDescription
textstring-YesTitle text
hrefstring-YesLink URL
colorstring"var(--text)"NoText color
Examples:
/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg
Dividers
/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg

Dividers

CustomDivider

Decorative horizontal divider with Livepeer branding icons on both ends. Optionally includes centered text between the divider lines. Icons automatically adapt to light/dark theme. Import:
import { CustomDivider } from "/snippets/components/primitives/divider.jsx";
Props:
PropTypeDefaultRequiredDescription
middleTextstring""NoOptional text to display in the center of the divider
colorstring"var(--border)"NoColor for the middle text
styleobject{}NoAdditional CSS styles
style.marginstring"24px 0"NoVertical margin
style.fontSizestring"16px"NoFont size for middle text
Examples:
/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg
/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg

/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg
Layout
/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg

Layout Primitives

Layout components for organizing content without inline styles in MDX files.

FlexContainer

Flexbox container component for arranging items in rows or columns. Import:
import { FlexContainer } from "/snippets/components/primitives/layout.jsx";
Props:
PropTypeDefaultRequiredDescription
childrenReactNode-YesContent to display
directionstring"row"NoFlex direction: “row” | “column” | “row-reverse” | “column-reverse”
gapstring"1rem"NoGap between items (CSS value)
alignstring"flex-start"NoAlign items: “flex-start” | “center” | “flex-end” | “stretch”
justifystring"flex-start"NoJustify content: “flex-start” | “center” | “flex-end” | “space-between” | “space-around” | “space-evenly”
wrapbooleanfalseNoAllow wrapping
styleobject{}NoAdditional inline styles
Examples:

Card 1

Content 1

Card 2

Content 2

Card 3

Content 3

GridContainer

CSS Grid container component for grid layouts. Import:
import { GridContainer } from "/snippets/components/primitives/layout.jsx";
Props:
PropTypeDefaultRequiredDescription
childrenReactNode-YesContent to display
columnsstring|number-NoNumber of columns or CSS grid-template-columns value
gapstring"1rem"NoGap between items (CSS value)
styleobject{}NoAdditional inline styles
Examples:

Card 1

Content

Card 2

Content

Card 3

Content

Spacer

Vertical or horizontal spacing component. Import:
import { Spacer } from "/snippets/components/primitives/layout.jsx";
Props:
PropTypeDefaultRequiredDescription
sizestring"1rem"NoSpacing size (CSS value)
directionstring"vertical"NoSpacing direction: “vertical” | “horizontal”
Examples:

Card 1

Content

Card 2

Content
/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg
Tables
/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg

Table Primitives

Table components for structured data display without inline styles.

StyledTable

Theme-aware table component with variant support. Import:
import { StyledTable, TableRow, TableCell } from "/snippets/components/primitives/tables.jsx";
Props:
PropTypeDefaultRequiredDescription
childrenReactNode-YesTable content (thead, tbody, etc.)
variantstring"default"NoTable variant: “default” | “bordered” | “minimal”
styleobject{}NoAdditional inline styles
Examples:
NameStatus
Item 1Active
Item 2Pending
TableRow Props:
PropTypeDefaultRequiredDescription
childrenReactNode-YesTable cells
headerbooleanfalseNoIs this a header row?
hoverbooleanfalseNoEnable hover effect
styleobject{}NoAdditional inline styles
TableCell Props:
PropTypeDefaultRequiredDescription
childrenReactNode-YesCell content
alignstring"left"NoText alignment: “left” | “center” | “right”
headerbooleanfalseNoIs this a header cell?
styleobject{}NoAdditional inline styles
/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg
Containers
/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg

Container Primitives

Container components for grouping and organizing content.

BorderedBox

Theme-aware bordered container component. Import:
import { BorderedBox } from "/snippets/components/primitives/containers.jsx";
Props:
PropTypeDefaultRequiredDescription
childrenReactNode-YesContent to display
variantstring"default"NoBorder variant: “default” | “accent” | “muted”
paddingstring"1rem"NoInternal padding (CSS value)
borderRadiusstring"8px"NoBorder radius (CSS value)
styleobject{}NoAdditional inline styles
Examples:
This is a bordered box with default styling.

CenteredContainer

Centered content container component. Import:
import { CenteredContainer } from "/snippets/components/primitives/containers.jsx";
Props:
PropTypeDefaultRequiredDescription
childrenReactNode-YesContent to display
maxWidthstring"800px"NoMaximum width (CSS value)
paddingstring"0"NoInternal padding (CSS value)
styleobject{}NoAdditional inline styles
Examples:

Centered Card

This card is centered with a max width of 600px.

FullWidthContainer

Full-width breakout container component for hero sections and full-width content. Import:
import { FullWidthContainer } from "/snippets/components/primitives/containers.jsx";
Props:
PropTypeDefaultRequiredDescription
childrenReactNode-YesContent to display
backgroundColorstring-NoBackground color (CSS value or CSS variable)
styleobject{}NoAdditional inline styles
Examples:
Full-width hero content

Next: Display Components

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