> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sesameterminal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Live sports board

# Live sports board

The home screen (`/live`). Every live and upcoming game, grouped by league, with the
score and one-click prices for the game's main market. Main workflow: watch several
games, click to trade, dock up to four ladders beside the board.

## Content

* **Games:** live and today's upcoming games across US majors, soccer, tennis, esports
  and others.
* **Main market per game:** the moneyline (winner) market. Three-way for soccer (home,
  draw, away). If a game has no moneyline, its highest-volume market. Other markets are
  one click away (`+12` link → market view).
* **Per outcome line:** team, score, Sell (best bid) and Buy (best ask) buttons, your
  pending-order dot, your position and P\&L.
* **Per game:** clock, period, possession, live state, in-play delay chip, pre-game wipe
  warning.
* **Sorting inside a league:** live games first (by start time), then upcoming (by start
  time). Reorders are deferred while the list is in use (interactions.md).
* **League order:** most live games first, then alphabetical.

## Desktop (content area 1376 px with no ladders; 448 px with four)

```
 x: 64                                                                                          1440
 ┌──────────────────────────────────────────────────────────────────────────────────────────────┐
 │ [Live 14 | Upcoming 23]  [Mine]  [All] [NBA] [NFL] [MLB] [NHL] [Soccer] [Tennis] [Esports]   │ 36 panel header
 ├──────────────────────────────────────────────────────────────────────────────────────────────┤
 │ [chevron-down] NBA · 6 live          Sell    Buy         Position    P&L   Vol               │ 32 league header (sticky)
 ├──────────────────────────────────────────────────────────────────────────────────────────────┤
 │ (dot) Q3 4:12 [logo] Lakers   | 88  [ 41¢ ] [ 43¢ ] (dot)2 120 sh +$4.80 $1.2M +12 [ellipsis]│ 36
 │ 3s delay      [logo] Celtics    84  [ 56¢ ] [ 58¢ ]                                          │ 36
 ├──────────────────────────────────────────────────────────────────────────────────────────────┤
 │ (dot) Q1 9:40 [logo] Knicks     21  [ 60¢ ] [ 61¢ ]                      $640k +8            │
 │               [logo] Heat     | 18  [ 39¢ ] [ 40¢ ]                                          │
 ├──────────────────────────────────────────────────────────────────────────────────────────────┤
 │ 19:30         [logo] Suns           [ 47¢ ] [ 49¢ ] (dot)1               $210k +10           │
 │ Wipe          [logo] Nuggets        [ 51¢ ] [ 53¢ ]                                          │
 ├──────────────────────────────────────────────────────────────────────────────────────────────┤
 │ [chevron-down] Soccer · EPL · 3 live Sell    Buy                                             │
 │ (dot) 67'     [logo] Arsenal     1  [ 71¢ ] [ 72¢ ]                                          │ 36
 │               [logo] Draw           [ 19¢ ] [ 20¢ ]                                          │ 36
 │               [logo] Chelsea     0  [  9¢ ] [ 10¢ ]                                          │ 36
 └──────────────────────────────────────────────────────────────────────────────────────────────┘
```

`[ellipsis]` appears on hover or focus of the game block and opens the game's menu.
`Re-post 3` takes the place of `Wipe` after the start wipe.

### Columns (left-anchored, widths in steps)

Columns are left-anchored, and every column except Game state and Team has a fixed width.
Game state and Team take the board's free width in two steps (below and from a 960 px
board), so a name never truncates while its row has room ("Nothing is clipped"). The step
changes only when the board width crosses 960 px, which happens when a ladder is docked or
closed, never while the pointer rests on a price. Space left over sits at the right end.
When the board is too narrow for a column, the column hides, starting from the right:
`+N`, Vol, P\&L, Position.

| Column | Width (board \< 960 / ≥ 960) | Content |
| - | - | - |
| Game state | 96 / 112 | Line 1: live dot and clock with period (`Q3 4:12`, `67'`, `HT`, `19:30`, `in 12m`), body-sm. Line 2: delay `3s delay` (muted text), wipe warning `Wipe` (warning chip in the last 10 minutes, muted before; tooltip `Starts in 8:04 · resting orders cancel at start`), or the `Re-post 3` button. Spans the game's lines. The clock never truncates |
| Team | 176 / 320 | 20 px logo, name (body), 4 × 12 possession bar on the right. The name truncates with `…` and a tooltip only when the column is full. `Yes`/`No` labels (non-sports markets in the watchlist) in `--bid`/`--ask` |
| Score | 32 | Numeric, right-aligned; the leading score bold. Never truncates; a raw score that does not split per team (tennis sets) moves to line 1 of Game state |
| Sell | 64 | Price button (sell at best bid) |
| Buy | 64 | Price button (buy at best ask) |
| Pending | 28 | Your open orders on this outcome: 8 px dot in the side colour (split half-and-half if both sides), count when > 1; warning colour when one is delayed; hollow while sending |
| Position | 80 | `120 sh`, numeric, only on the outcome you hold |
| P\&L | 80 | Unrealised P\&L, signed, green or red |
| Vol | 88 | Market volume, compact, `--muted-foreground` |
| `+N` | 72 | Link to the market view: other markets for this game; the `[ellipsis]` menu button appears here on hover or focus |

* Every dot, icon, chip, badge and number in a line is `shrink-0`: only the team name may
  shrink. Scores, clocks, prices, sizes and P\&L reserve their widest value.
* Sell and Buy sit 8 px apart; the same 8 px separates Buy from Pending.

At 448 px (four ladders), everything up to Pending fits. Position and P\&L hide; a 6 px
`--foreground` square after the team name marks an outcome you hold (tooltip: size and
P\&L), and the docked ladder headers show the full position. The square is positioned
absolutely and takes no width from the name.

### Rows

* Outcome line height `--row-h` (36 px). A two-outcome game is 72 px, three-outcome 108.
  1 px `--border` between games.
* Hover: `--accent` on the whole game block.
* Keyboard row cursor: 2 px `--ring` bar on the left edge of the current outcome line.
* League header: 32 px, sticky under the panel header, heading text, collapse chevron,
  the column labels (caption) aligned to the columns, and a stale pill when that
  league's sports feed is stale.

### Interactions

| Input | Action |
| - | - |
| Click Buy / Sell | Order at the shown price, active stake (1 click) |
| Click the state, team or score area of an outcome line | Dock that outcome's ladder (shell rules for slots) |
| Click `+N` | Open the market view |
| Right-click a game, or click its `[ellipsis]` | Game menu: Open market, Dock ladder, Pin; then the checkbox items Alert on score change, Alert at game start, Alert at game end ([alerts.md](alerts.md#from-the-board-game-alerts)); then Cancel orders in this game (N) |
| Click `Re-post 3` | Re-post orders wiped at game start |
| Keys | `↑` `↓` `←` `→` `B` `S` `Enter` `C` (interactions.md) |

The docked ladders appear to the right of the board (app-shell.md). A docked outcome's
line gets a 2 px `--foreground` bar on the right edge of the Buy button column, so you
can see which rows are docked.

### States

| State | Board |
| - | - |
| Cold load | Skeleton: panel header, one league header, 6 game blocks with the real column geometry |
| No live games | Empty state `No live games` with the next start time and `Show upcoming` |
| Sports feed stale | Clock and score stale-styled; the league header shows `Stale 6s` |
| Market feed stale | Price buttons stale-styled and disabled; the rest stays normal |
| Game final | Stays in the list for 10 minutes with `Final`, then leaves (deferred while in use) |
| Safe / trading off | Price buttons as in components.md |

## Mobile (390 × 844)

```
 ┌──────────────────────────────────────┐
 │ app header                           │ 52
 ├──────────────────────────────────────┤
 │ [Combo] [Live 8|Today|Upcoming]      │ 44 mode and time filter
 ├──────────────────────────────────────┤
 │ [All] [NBA] [Premier League] [Liga…  │ 44 league chips (own row, scroll sideways)
 ├──────────────────────────────────────┤
 │ [chevron-down] NBA · 6 live          │ 36 league header (sticky)
 │ ┌──────────────────────────────────┐ │
 │ │ Q3 4:12  3s delay        +$4.80  │ │ 28 card header, [ellipsis] at the right edge
 │ │ [logo] Lakers  88 │Sell │ │Buy  ││ │ 44 outcome line: two-line price buttons
 │ │                   │ 41¢ │ │ 43¢ ││ │
 │ │ [logo] Celtics 84 │Sell │ │Buy  ││ │ 44 (4 px gap across and down)
 │ │                   │ 56¢ │ │ 58¢ ││ │
 │ │ 120 sh Lakers at 41¢ · 2 orders  │ │ 28 footer (only if held or orders)
 │ └──────────────────────────────────┘ │ 8 gap
 │ ┌──────────────────────────────────┐ │
 │ │ Q1 9:40                          │ │
 │ │ [logo] Knicks  21 │ 60¢ │ │ 61¢ ││ │
 │ │ [logo] Heat    18 │ 39¢ │ │ 40¢ ││ │
 │ └──────────────────────────────────┘ │
 ├──────────────────────────────────────┤
 │ Stake $ [  10 |  25  |  50  | 100 ]  │ 44 stake bar
 ├──────────────────────────────────────┤
 │ tab bar                              │ 56
 └──────────────────────────────────────┘
```

* Cards are 358 px wide (16 px margins), `--card`, `--radius-lg`, 12 px inner padding.
* Outcome line: 44 px. Logo 20, name (body; short team names; takes the free width and
  truncates only when it is full), score 28 px, then Sell and Buy price buttons (76 × 44,
  two-line) right-aligned.
* **One gap per group:** the Sell/Buy buttons of all outcome lines form one grid with a
  4 px gap across and 4 px down. Outcome lines therefore sit 4 px apart.
* Card header: game state on the left; your P\&L, pending-order dot and the `[ellipsis]`
  menu button (44 × 44 hit, always visible on touch) on the right. The delay text and
  wipe warning also sit here; on a card the warning reads `Orders cancel at start`, since touch
  has no tooltip. None of them shrinks; the header never truncates the clock.
* Footer shows only when you hold a position or have orders in the game.

| Input | Action |
| - | - |
| Tap Buy / Sell | Order at the shown price, active stake (1 tap) |
| Tap an outcome line outside the buttons | Open that outcome's ladder sheet |
| Tap the card header | Open the ladder sheet for the first outcome |
| Long-press the card, or tap its `[ellipsis]` | Action sheet: Open market, Pin, Alert on score change, Alert at game start, Alert at game end, Cancel orders in this game (N) |
| Tap the league header | Collapse or expand the league |
| Pull down at the top | Nothing (data is live; no pull-to-refresh) |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.