Every part shows its points
Each part of a day's bar on the month board carries its number whatever its size; a part is never narrower than its number plus 4px a side, and the bigger parts give it the room.
Context
Your row on the month board shows your last days as bars split by game (D-012, D-013). Since 3.24.0 a part showed its number only when the code judged it would fit: its width minus 2 had to be at least 7px a digit plus 6. D-017 listed the cost: "a part too thin for its number still leaves it off".
Ru sent her row from her phone: "here the points are showing for longest word". Of her last five days, Longest word's part had its number on one, Sun 25 (21 points). The 18s on Mon 26, Sat 24 and Fri 23 were blank, and so were both of Thu 22's 15s. On a 375-wide phone an 18-point part is 22px; the test computed 19.7 against the 20 it asked for. "18" in the bars' 11px/700 is about 13px, so the number would have fit.
Options
Reproduced on Ru's five days (Daily, Longest, Trivia: 98·18·45, 58·21·30, 56·18·30, 39·18·50, 43·15·15) at 375, 390 and 320 wide.
| Option | What it does | Result |
|---|---|---|
| The test as shipped | a part shows its number when the test says it fits | 5 of 15 numbers left off at 375 wide, 2 at 390, 6 at 320 |
| A looser test | the number's own width plus 4px a side | Weighed, not built: at 320 wide Longest word's parts are 15px, under the 21px an "18" needs, so they'd still be blank |
| Smaller numbers in thin parts | a second size for the numbers | Weighed, not built: a new font size, which the system doesn't add |
| Every part fits its number | a part is never narrower than its number plus 4px a side; the bigger parts give it the room | Built: no number left off at any of the three widths |
Decision
Every part of a day's bar shows its number. A part's minimum width is its digits plus 4px a side (min-width: calc(var(--d) * 1ch + 8px), with --d set to the number's digits). The parts still share the bar by points (flex-grow), so a small part takes its room from the bigger ones, and a bar too short for its numbers grows to hold them (.ps-bar { min-width: max-content }). The width test and the code that measured the row for it are gone.
Evidence
Ru's five days, in Chromium against the real build with the database stubbed:
| Width | Numbers left off, before → after | Sideways overflow |
|---|---|---|
| 375 | 5 → 0 (four Longest, one Trivia) | none |
| 390 | 2 → 0 (Thu 22's two 15s) | none |
| 320 | 6 → 0 (every Longest, Thu 22's Trivia) | none |
The three month screens in screens/ came out pixel-identical: their days are wide enough that no part reaches its minimum.
Consequences
- A number is never missing from a part, so a blank part can't be read as no points.
- On a narrow phone a day's parts stop being in proportion. At 320 wide, Ru's 43-point Daily part on Oct 22 is drawn as wide as her two 15-point parts. The numbers and the day's total stay exact.
- No new size, colour or token: the numbers keep their 11px/700 and their inks.