mirror of
https://github.com/tiennm99/ghstats.git
synced 2026-09-05 14:23:03 +00:00
fix(card): make heatmap cells 3× taller — width was tight, height had room (#21)
Cells were 4 × 4 with 1 px gap: the grid used 35 of 140 available vertical pixels (25 %) and ~80 px of dead space below. Widening the cells isn't an option — 53 weeks already consume every horizontal pixel past the weekday-label gutter. So stretch vertically instead: cellW = 4 (unchanged) cellH = 12 cellGap = 1 Grid footprint is now 265 × 91 px inside a 340 × 200 frame, with a 32 px gap below the grid for the legend. Each weekday reads as a distinct horizontal band instead of a cramped postage-stamp row. Legend keeps 8 × 8 SQUARE swatches so the "Less ▢▢▢▢▢ More" row is still recognisable as an intensity legend rather than a stretched echo of the data cells. Label baseline offset switches from `cellSize - 1` to `cellH - 3` so "Mon"/"Wed"/"Fri" sit visually centred in the taller rows.
This commit is contained in:
@@ -78,7 +78,8 @@ When there's **exactly one slice** (one language at 100%), the renderer emits tw
|
||||
| Metric | Value |
|
||||
| --- | --- |
|
||||
| Grid | 7 rows × 53 columns (Sunday → Saturday, oldest week → newest) |
|
||||
| Cell size | 4 × 4 px, 1 px gap. Grid footprint = `53 × 5 = 265 px`; `leftPad(30) + 265 = 295 px`, leaving a 45 px right gutter so the grid doesn't bleed into the frame border |
|
||||
| Cell size | 4 wide × 12 tall, 1 px gap. Width is constrained (`leftPad 30 + 53 × 5 = 295 px`, 45 px right gutter); height has headroom so cells are rectangular — makes each weekday row a distinct horizontal band instead of a postage-stamp blur |
|
||||
| Grid y-range | `topPad(62) .. 62 + 7 × 13 = 153 px`; 32 px gap to the legend at y ≈ 185 |
|
||||
| Cell colour | 5-bucket ramp `mixHex(Background, Accent, k/4)` for `k ∈ 0..4` — no dedicated ramp field on the theme schema |
|
||||
| Weekday labels | Mon / Wed / Fri only, right-anchored in the `leftPad` gutter |
|
||||
| Month labels | Printed above the first week where a 1st-of-month day falls; skipped when `x > width − 20` so `Dec` / `Apr` can't spill past the frame |
|
||||
|
||||
Reference in New Issue
Block a user