···11+# Display Font Size + Vertical Padding — Design
22+33+**Date:** 2026-07-15
44+**Status:** Approved (brainstorming)
55+66+## Goal
77+88+Make the number display easier to read and remove the white gap below it: the themed
99+font inherited from the DeskBand era (~9pt toolbar/REBAR theme font) is small for a
1010+standalone window, and the client area adds 14px of vertical padding that the top-aligned
1111+single-line EDIT leaves as white space at the bottom.
1212+1313+## Behavior
1414+1515+- **Font size:** a single constant `DISPLAY_FONT_PT = 14` in `VisualStyle.cpp`.
1616+ Both styles override the height of the font they resolve
1717+ (`lfHeight = -MulDiv(DISPLAY_FONT_PT, LOGPIXELSY, 72)` via a small shared helper):
1818+ - Themed: theme REBAR band font family, weight 600 (unchanged), height forced to 14pt.
1919+ - Classic: `lfMessageFont` family, height forced to 14pt (weight untouched).
2020+ The constant is the single knob for later size iterations.
2121+- **Vertical padding:** in `CreateStandalone`, client height goes from `ideal.y + 14` to
2222+ `ideal.y + 8` (covers the EDIT's ~4px `WS_EX_CLIENTEDGE` borders plus minimal
2323+ breathing room). Horizontal padding (+24) and the min-size guards stay.
2424+- Window width/height adapt automatically: sizing is already computed from the text
2525+ extent of the sample string `99.999,99` in the display font.
2626+2727+## Accepted side effects
2828+2929+- Window grows with the font; saved position anchors the client origin, so the bottom
3030+ edge sits a few px lower than before — one manual re-drag fixes it if it bothers.
3131+- The app is DPI-virtualized (no DPI-aware manifest), so `LOGPIXELSY` is 96 and the
3232+ point size is logical; this matches all existing metrics in the app.
3333+3434+## Components touched
3535+3636+- `VisualStyle.cpp`: `DISPLAY_FONT_PT` constant + height override in both `CreateFont`s.
3737+- `CalculatorWindow.cpp`: vertical padding constant in `CreateStandalone`.
3838+3939+## Testing
4040+4141+- Engine regression: `tests\build-and-run.cmd` → 16/16 (UI-only).
4242+- Manual (user): number readable at 14pt; no white band under the digits; window still
4343+ compact above the tray; caption auto-hide and position persistence unaffected.
4444+- Iteration expected: if 14pt doesn't convince, change `DISPLAY_FONT_PT` and rebuild.
4545+4646+## Out of scope (YAGNI)
4747+4848+- Font family changes, user-configurable size, DPI-awareness work.