diff --git a/tools/ui_smoke.py b/tools/ui_smoke.py index ada3157..5b8d152 100644 --- a/tools/ui_smoke.py +++ b/tools/ui_smoke.py @@ -179,6 +179,8 @@ async def run(url, out): step("help-clicked") await page.wait_for_selector("#modal.show") step("help-shown") + # Bootstrap ignores Escape while the modal is still fading in. + await page.wait_for_timeout(400) await settled() step("help-settled") await assert_dark_theme("help modal") @@ -207,7 +209,9 @@ async def run(url, out): step("sources") await navigate("abuse") + await page.wait_for_selector("#ab-list .item", timeout=20000) report["find_rows"] = await page.locator("#ab-list .item").count() + assert report["find_rows"] > 0, "Findings tab rendered no rows" await assert_no_text_collision("abuse 1440") await assert_dark_theme("abuse") await page.screenshot(path=str(out / "black_finds.png")) diff --git a/web/index.html b/web/index.html index 9b8af49..c75b2ab 100644 --- a/web/index.html +++ b/web/index.html @@ -159,7 +159,7 @@ a:hover { color: var(--omni-foreground); } .skip-link { position: absolute; z-index: 1090; } .brand-mark { display: grid; place-items: center; flex: 0 0 var(--omni-space-8); width: var(--omni-space-8); height: var(--omni-space-8); border: 1px solid var(--omni-border); border-radius: var(--omni-radius); background: var(--omni-card); } .brand-name { display: block; font-size: var(--omni-text-title); font-weight: 600; line-height: 1.3; letter-spacing: .04em; } -.brand-caption { display: block; margin-top: var(--omni-space-1); color: var(--omni-muted-foreground); font-size: var(--omni-text-caption); font-weight: 500; line-height: 1.45; letter-spacing: .06em; } +.brand-caption { display: block; margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--omni-muted-foreground); font-size: var(--omni-text-caption); font-weight: 500; line-height: 1.45; letter-spacing: .06em; } #sidebar-menu { min-width: 0; width: 100%; } .navbar.navbar-vertical .navbar-nav { --tblr-sidebar-nav-padding-y: var(--omni-space-2); --tblr-sidebar-nav-padding-x: var(--omni-space-3); gap: var(--omni-space-1); padding-inline: var(--omni-space-2); } .navbar.navbar-vertical .navbar-nav .nav-link { gap: var(--omni-space-3); min-height: var(--omni-control-height); padding: var(--omni-space-2) var(--omni-space-3); margin: 0; border-radius: var(--omni-radius); color: var(--omni-muted-foreground); font-size: var(--omni-text-base); line-height: 1.4; transition: background-color var(--omni-transition), color var(--omni-transition); } @@ -224,7 +224,7 @@ option, optgroup { color: var(--omni-foreground); background: var(--omni-backgro .source-url { max-width: var(--omni-source-width); } .list-group { --tblr-list-group-color: var(--omni-foreground); --tblr-list-group-bg: var(--omni-background); --tblr-list-group-border-color: var(--omni-border); --tblr-list-group-action-color: var(--omni-foreground); --tblr-list-group-action-hover-color: var(--omni-foreground); --tblr-list-group-action-hover-bg: var(--omni-muted); --tblr-list-group-action-active-bg: var(--omni-muted); } .list-group-item { background-color: var(--omni-background); border-color: var(--omni-border); color: var(--omni-foreground); } -.item { padding: var(--omni-space-3) var(--omni-space-4); transition: background-color var(--omni-transition); } +.item { padding: 10px var(--omni-space-4); transition: background-color var(--omni-transition); } .item:hover, .item:focus-within { background: var(--omni-card); } .reader-open { display: block; width: 100%; border: 0; padding: 0; background: transparent; color: inherit; font: inherit; text-align: start; } .reader-open:hover .feed-title, .reader-open:focus-visible .feed-title { color: var(--omni-foreground); text-decoration: underline; text-underline-offset: var(--omni-space-1); } @@ -232,7 +232,7 @@ option, optgroup { color: var(--omni-foreground); background: var(--omni-backgro .line-clamp-2 { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; overflow-wrap: anywhere; } .feed-content { flex: 1; min-width: 0; } .feed-preview { font-size: var(--omni-text-base); line-height: 1.55; } -#list .feed-preview { -webkit-line-clamp: 1; } +#list .feed-preview { -webkit-line-clamp: 1; min-height: 1.55em; } .feed-original { color: var(--omni-muted-foreground); } #feed-form > .row { --tblr-gutter-x: var(--omni-space-3); --tblr-gutter-y: var(--omni-space-3); } #feed-form summary { cursor: pointer; font-size: var(--omni-text-small); } @@ -313,7 +313,7 @@ pre { padding: var(--omni-space-4); }