fix(as-S6): the operator's rulings — sentence tagline, no side stripe, matte dot, stripe on ::before

Operator, 2026-09-28: "go with your recommendations".
- Tagline: 'held for review · wipes in {ttl}h unless kept', mono, muted,
  12px, sentence case ("ephemeral" goes, as agreed with booth-dev).
- 'Needs you' rows lose the 3px side stripe; the '? N OPEN' stamp says it.
  The flagged filmstrip frame keeps its bottom stripe.
- The brand dot is matte (glow = live power; a live bench keeps its glow).
- Wipe now and the armed bulk delete carry the hazard stripe on a 3px
  ::before, so the button's own background is honestly what sits under its
  text; the stripe renders as before.

Contract: as_antislop S6. Falsifiers: antislop.toml 49/49 proved (S1-S4, S6);
all 12 tables 329/329 proved on this tree.
This commit is contained in:
vh
2026-09-28 13:30:31 -07:00
parent 1d6821b732
commit ec807fe41b
5 changed files with 116 additions and 16 deletions
+18
View File
@@ -154,3 +154,21 @@ def test_doc_headings_step_by_size(browser, live):
for lo, hi, name in ((body, h3, "h3:body"), (h3, h2, "h2:h3"), (h2, h1, "h1:h2")):
assert hi / lo >= 1.18, f"{name} is {hi / lo:.2f} ({hi}px over {lo}px)"
page.close()
# ---- S6: the hazard stripe on a pseudo-element -----------------------------------
def test_the_hazard_stripe_is_a_pseudo_element(browser, live):
base, root = live
(root / "w").mkdir()
(root / "w" / "a.txt").write_text("x")
page = browser.new_page(viewport={"width": 1280, "height": 800})
page.goto(f"{base}/b/w/", wait_until="load")
got = page.locator(".wipe-lg button").evaluate("""b => {
const own = getComputedStyle(b), pre = getComputedStyle(b, '::before');
return {own: own.backgroundImage, pre: pre.backgroundImage, h: pre.height, content: pre.content};
}""")
assert got["own"] == "none", f"the button paints its own stripe: {got['own'][:80]}"
assert "repeating-linear-gradient" in got["pre"] and got["h"] == "3px" and got["content"] != "none", got
page.close()