Components

From a single odds button to a complete bet slip. Pick a component, explore the details, and make it your own.

New here? Start with installation

56 components to build with

LiveLiveLive, 67′

Live Indicator

Matches & teams

Eight ways to show a live match: badges, dots, pulses, broadcast signals and match clocks. Includes color, size, paused and finished states.

Bet Button

Foundations

A raised, color-aware betting control that installs independently of any theme.

Metal Button

Foundations

Inspired by metal-fx by Jakub Antalik. An animated liquid-metal border wraps neutral and brand buttons that follow the active theme.

Amount Bar

Bet slips & money

A compact numeric input with composable accessories and value-transforming actions.

A self-contained playing card with face layouts, three sizes, native div props, and an optional custom back image.

2.50

decimal

+150

american

3/2

fractional

Odds Provider

Odds & prices

Wrap it once at the root and every price in the tree renders in the format the user picked. Ships Odds, useOdds and useOddsValue. Add Odds Format Select to let users switch, and Animated Odds for rolling digits.

ManualAuto

A reusable mutually-exclusive choice control with radio-group semantics.

+12.5%-4.2%

Trend Badge

Odds & prices

An inline badge pairing a direction icon with a value for rising or falling prices.

amount-panel

Amount Panel

Bet slips & money

A prominent amount entry layout with composable quick actions.

animated-odds

Animated Odds

Odds & prices

A drop-in for the provider's Odds component with rolling digits. Same props, same format switching, animated with NumberFlow.

animated-price

Animated Price

Odds & prices

Smooth, animated number transitions for changing prices.

autoscale-input

Autoscale Input

Foundations

A numeric field that formats as you type and shrinks its type to keep the whole amount in view.

bet

Bet

Utilities

Settles a slip of one or more legs: the result, the price, the returns and the profit.

bet-slip

Bet Slip

Blocks

A trade ticket built from parts: the pick up top, buy or sell, market or limit, the outcomes, then a stake and what it returns. Every part is optional, so leave out the sides or the order type and the slip just buys at the market, or list several legs for a combo.

bet-summary

Bet Summary

Bet slips & money

A composable read-only summary for calculated bet results.

bet-ticket

A settled bet as a printed ticket: every selection's result, the returns and the profit, torn off at the bottom. One leg is a single, many are an accumulator.

blackjack

Presentational blackjack cards and hands: hidden cards, soft/hard totals, active hands and settled outcomes.

button

Button

Foundations

A simple button component.

card

Card

Foundations

A card surface shell with betui elevation. Children own their own padding.

chat

Chat

Foundations

A transcript that follows new messages, assembled from header, message and composer slots.

circuits

Circuits

Utilities

Every circuit on the 2026 calendar, traced from OpenF1 location data and keyed by its circuit_key, so a car's raw location lands on the outline as is.

color-treatment

Derives a readable foreground and a bottom edge from an arbitrary hex color.

contest-card

A contest pass: the matchup tinted by both teams, torn off along a perforation from the players, squads and prize.

country-flag

Country Flag

Matches & teams

An ISO country flag from FlagCDN. SVG by default, with soft corners, plain and brand border variants. PNG and WebP sizes include retina sources.

currency

Currency

Utilities

Formats numeric values as localized currency.

currency-selector

Currency Selector

Bet slips & money

A wallet currency menu with real crypto SVG marks, balances, and keyboard selection.

drag-scroll-gallery

A horizontal rail you throw with a pointer, trackpad or wheel. Inertia, rubber-banded ends, optional snap, and cards that scale and tilt away from centre.

elevated-button

Elevated Button

Foundations

A tactile raised-key button that sinks on press, plus the track and surface it shares with the segmented control and stepper.

fixture-list

The sportsbook coupon: fixtures under a bar per day, the 1x2 and a handicap on every row, with ▲ ▼ to walk the handicap ladder. Every price toggles on its own, ready for a bet slip, and the prices drop under the teams on narrow screens.

game-card

Game Card

Markets & picks

A game's lines between two teams, composed from parts: logos over their own colours, where the picks lean, and a column of picks per market.

helmet

Helmet

Matches & teams

A football helmet in side profile, painted from team colours at runtime so one drawing serves every team.

input

Input

Foundations

The Bet UI input used across every theme.

jersey

Jersey

Matches & teams

A football jersey from the front, painted from team colours at runtime: a stand-in for a player headshot.

live-match-card

An in-play fixture: live pulse, running score either side of the minute, competition underneath.

live-match-feed

A scoreboard over a running commentary: the fixture holds still while the feed underneath takes new lines.

market-card

Market Card

Markets & picks

A market and its outcomes, the backbone of a sportsbook: composed from parts around a MarketGrid. Every price toggles on its own, ready for a bet slip.

market-grid

Market Grid

Markets & picks

Groups market selections by columns, rows, or inline.

match-card

A played fixture on a card: league, date, both crests and the score.

match-chip

Match Chip

Matches & teams

A pocket scoreboard built from parts: logos and names either side of the score and clock, 144px wide so two and a half sit across a phone.

match-feed

Match Feed

Matches & teams

A live ticker of match events: new lines push the feed up and the oldest fades off the top.

moneyline-card

Moneyline Card

Markets & picks

Who wins, composed from parts: both teams over a wash of their colours, each payout on a glass tile.

odds

Odds

Utilities

The conversion and formatting functions behind every odds component. Call them directly when you need a plain string outside React.

odds-format-select

Odds Format Select

Odds & prices

A shadcn Select bound to provider state, so changing it re-formats every price on the page. Compose the trigger and items however you like, narrow the list with the formats prop, or skip it and drive the provider from any control with useOdds.

openf1

OpenF1

Utilities

Plugs OpenF1 into the race tracker. A typed fetch, raceAt to turn a session's rows into tracker props at any moment, and useOpenF1Race to follow a session live or replay one inside the free rate limit.

order-book

Order Book

Markets & picks

Bids and asks with cumulative depth, last trade and spread.

outcome

Outcome

Markets & picks

A selection with its event and price, stacked or inline. Compose the parts and drop an Odds in the price slot to follow the OddsProvider.

pick

Pick

Markets & picks

A pick'em toggle: an outline that floods with the pick colour, grouped so each market takes one side.

prediction-card

Prediction Card

Markets & picks

A prediction market at a glance, built from parts: the question over a chance dial or a line per outcome, Yes and No to buy, and fills that float up off the buttons as they trade.

prop-card

Prop Card

Markets & picks

A player prop, composed from parts: the player over their team colour, the line, and less or more.

quick-stakes

Quick Stakes

Bet slips & money

One-tap stake buttons on a single price: each shows its amount over what it would win, and the win rolls as the odds move.

race-tracker

A live race on its real circuit: every car where it is on the lap, the leader's margin and laps to go, the running order with sector bars underneath. Plain props, so any timing feed plugs in.

relative-time

Relative Time

Foundations

A live world clock: one row per time zone, with day/night, offset from local and relative dates.

result-badge

Result Badge

Bet slips & money

A tight badge for won, lost, void or open. Five styles over one tone family per result.

stepper-buttons

Stepper Buttons

Foundations

A tactile quantity stepper: minus, count and plus in one raised-key control.

ticket

Ticket

Bet slips & money

A printed ticket to compose: header, legs, details and serial on paper with a torn or straight edge, perforated where it would tear.

track

Track

Utilities

Circuit geometry behind the race tracker: lays an outline out for drawing, finds a car's place on the lap from raw x/y, and traces new circuits from one lap of location samples.