Skip to Content
react-brackets

Layouts

Two-sided brackets, hiding byes, and how matches are placed.

Two-sided

layout="mirrored" splits the bracket into halves that meet at the final, like the ones on TV.

Round 1

  1. Falcons2
    Vipers3
  2. Cobras4
    Hawks3
  3. Lynx1
    Sharks0
  4. Orcas1
    Pumas0

Quarterfinals

  1. Vipers
    Cobras
  2. Lynx
    Orcas

Semifinals

  1. TBD
    TBD

Final

  1. TBD
    TBD

Semifinals

  1. TBD
    TBD

Quarterfinals

  1. Wolves
    TBD
  2. TBD
    TBD

Round 1

  1. Wolves2
    Moose0
  2. Bison
    Otters
  3. Herons
    Owls
  4. Ravens
    Cranes
<Bracket stage={stage} layout="mirrored" />

Hiding byes

With a field that isn't a power of two, the top seeds play a "Bye" in round one. hideByes hides those matches and their lines, and leaves everything else in place:

<Bracket stage={singleElimination(sixTeams)} hideByes />

How placement works

The core places every match on a grid, centred between the matches that feed it. Matches with no feeder stack from the top of their column, which is how round robin and Swiss rounds become tidy columns. The React layer uses CSS grid with subgrid, so placement never needs measuring and any card height works. Only the connector lines are measured.

On this page