Button
The base button component with multiple variants.Usage
Props
Button style variant:
solid: Default gray buttonprimary: Primary action button with theme colorwarning: Warning/destructive action buttonsilent: Transparent button, visible on hover
Renders button as a circle (1:1 aspect ratio)
Disables button interactions
Uses Radix UI Slot pattern to render child as button element
Button title (also used as aria-label)
Variants
Primary Button
From/src/components/button/Button.tsx:89:
- Background:
theme.colors["solid-primary"] - Text:
theme.colors["text-on-primary"] - Hover: Inverted colors
Warning Button
From/src/components/button/Button.tsx:104:
- Background:
theme.colors["solid-warning"] - Text:
theme.colors["text-on-warning"] - Focus ring:
theme.colors["text-warning"]
Silent Button
From/src/components/button/Button.tsx:134:
- Background: Transparent
- Hover: Solid background appears
- No shadow when not hovered
Circular Buttons
As Child Pattern
asChild prop renders the child element with button styles.
Source
Defined in/src/components/button/Button.tsx:16
IconTextButton
A button combining an icon with optional text, with responsive collapsing.Usage
Props
FontAwesome icon or custom React node
Button text (hidden on mobile if
collapsible is enabled)Breakpoint at which to hide text and show only icon:
true: Usestheme.breakpoints.mobileMax"mobileMax": 720px"tabletMax": 1024px"socialListMax": 850px
Example from Navigation
From/src/components/navigation/Navigation.tsx:56:
Example from VideoPlayerBar
From/src/components/video-player/VideoPlayerBar.tsx:186:
Responsive Behavior
The button automatically becomes circular and hides text below the specified breakpoint:Source
Defined in/src/components/button/IconTextButton.tsx:37
VideoButton
A specialized button for playing videos (not shown in detail here, but available in/src/components/button/VideoButton.tsx).
BackToTopButton
A button that scrolls to the top of the page (available in/src/components/button/BackToTopButton.tsx).
FilterToggleButton
A button for toggling filters (available in/src/components/button/FilterToggleButton.tsx).
Button Composition
Buttons can be nested within other components:Accessibility
All buttons include:aria-labelfromtitleprop- Focus visible states
- Keyboard navigation support
- Disabled state styling