Knockout Bracket

New

Google-style tournament bracket that pages one round at a time — the leftmost round stacks compactly while later rounds center between their feeder matches, with cards, elbow connectors, headers and container height animating to every new layout.

Showing Round of 16, Quarter-finals, and Semi-finals
Round of 16
Quarter-finals
Semi-finals
  • Sat, 4 JulFT
    Canada0
    Morocco3
  • Sun, 5 JulFT
    Paraguay0
    France1
  • Mon, 6 JulFT
    USA1
    Belgium4
  • Mon, 6 JulFT
    Portugal0
    Spain1
  • Mon, 6 JulFT
    Brazil1
    Norway2
  • Mon, 6 JulFT
    Mexico2
    England3
  • Tue, 7 JulFT (P)
    Switzerland0 (4)
    Colombia0 (3)
  • Tue, 7 JulFT
    Argentina3
    Egypt2
  • Fri, 10 Jul, 4:00 amFT
    France2
    Morocco0
  • Sat, 11 Jul, 3:00 amFT
    Spain2
    Belgium1
  • TodayFT
    Norway1
    England2
  • TodayFT
    Argentina3
    Switzerland1
  • Wed, 15 Jul, 4:00 am
    France
    Spain
  • Thu, 16 Jul, 3:00 am
    England
    Argentina

Install

Add it with the shadcn CLI, or copy the source manually.

$ bunx --bun shadcn add @beui/knockout-bracket

API Reference

rounds
{}

Ordered rounds; each must hold half as many matches as the one before (16 → 8 → 4 → 2 → 1).

initialRound?
number

Round shown as the leftmost column on mount. Defaults to 1, clamped to the valid range.

1
className?
string

Keep in mind

Some components on this site are inspired by or recreated from existing work across the web. I'm not here to take credit; just to learn, experiment, and sometimes push things a bit further. If something looks familiar and I forgot to mention you, reach out and I'll fix that right away.