From 75f083a5cac350227b09a3e3c3df6eca90ae9d38 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 24 Aug 2026 22:14:45 +0000 Subject: [PATCH] board: a bare list lines up with the rest of the page MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The last odd thing on a phone: the Heart board's evidence-gap bullets sat inset from everything around them. The cause is the UA stylesheet's 40px list indent, which nothing here overrode — measured at a 390px viewport, the lede, the heading, the hint and the table all began at x=16 and the three bullets began at x=56, so the block read as a stray column stepped in from the page. `ul,ol{padding-left:1.15rem}` puts the marker just inside the body margin instead: bullets at x=34, and the text of each item gains the 22px back (318px -> 340px on a 390px screen). The lists that are layout rather than prose — `.stats`, `.boards`, the Heart's own `ul.det` — set their own padding and win on specificity, so none of them moves. 476 tests pass, one new. No board's own code changes: this is the shared sheet, so every page picks it up on its next render. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01VhpLPmmoSFAtVpppG8azVA --- board/_theme.py | 7 +++++++ tests/test_board_theme.py | 11 +++++++++++ 2 files changed, 18 insertions(+) diff --git a/board/_theme.py b/board/_theme.py index 7f0aabf..883e3ed 100644 --- a/board/_theme.py +++ b/board/_theme.py @@ -317,6 +317,13 @@ def mark(key): a:hover{text-decoration:underline} .muted{color:var(--muted)} .ok{color:var(--ok)}.warn{color:var(--warn)}.bad{color:var(--bad)} +/* A bare list is page text, not a quotation. The UA's 40px indent steps it in + from every other block on the page — measured on the Heart board, the + evidence-gap bullets started at x=56 against a 16px body margin, which + reads as a stray inset column on a phone. The lists that are layout rather + than prose (.stats, .boards, ul.det) set their own padding and win on + specificity. */ +ul,ol{padding-left:1.15rem} code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92em; background:var(--btn);border:1px solid var(--line);padding:.05em .35em; border-radius:5px} diff --git a/tests/test_board_theme.py b/tests/test_board_theme.py index 5ce1d5d..d8c62a2 100644 --- a/tests/test_board_theme.py +++ b/tests/test_board_theme.py @@ -240,3 +240,14 @@ def test_a_row_stacks_on_a_phone_so_the_text_gets_the_width(): re.S).group(0).replace("\n ", "") assert "table.recent td{display:block;width:auto" in stack assert "table.recent td:not([class]){flex:1 0 100%" in stack + + +def test_a_bare_list_lines_up_with_the_rest_of_the_page(): + """The UA's 40px list indent steps a bare `