levineuwirth.org/static/css
Levi Neuwirth 76bda7af13 Popups: always clamp into the viewport
positionPopup clamped horizontally but never vertically: the
flip-above branch positioned tall popups (rich layouts, lead figures)
above the visible region whenever the target sat near the top of the
screen. Placement is now: below if it fits, above if THAT fits, else
the roomier side — then clamped into the viewport on both axes.
.link-popup is additionally capped at viewport height (matching GAP,
overflow-y: auto) so the clamp always has room to work, and a
dimension-less image that loads after positioning re-clamps instead of
growing past the edge.

Verified by simulating the clamp across five viewport scenarios: the
near-top bug case moves from 470px above the viewport to fully
visible; the fits-below and flip-above cases are unchanged.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-10 13:14:14 -04:00
..
annotations.css yum cappuccino yay! 2026-05-03 21:16:58 -04:00
archive.css Add link archive system: snapshots, backlinks, link-rot 2026-05-23 10:06:33 -04:00
base.css Layout: page-shell wrapper for iOS sticky, scrollable TOC 2026-05-23 12:06:02 -04:00
build.css audit: frontend a11y, JS shared utils, CSS variable definitions 2026-04-10 17:41:21 -04:00
catalog.css initial deploy! whoop 2026-03-17 21:56:14 -04:00
commonplace.css initial deploy! whoop 2026-03-17 21:56:14 -04:00
components.css Branding diet: logo sprite via <use>, lean favicon.ico, simple mask icon 2026-06-10 10:43:06 -04:00
gallery.css initial deploy! whoop 2026-03-17 21:56:14 -04:00
home.css affiliation, cabal helper script 2026-03-26 08:14:50 -04:00
images.css initial deploy! whoop 2026-03-17 21:56:14 -04:00
item-card.css Navigation refactor 2026-04-19 14:35:41 -04:00
layout.css Layout: page-shell wrapper for iOS sticky, scrollable TOC 2026-05-23 12:06:02 -04:00
library.css yum cappuccino yay! 2026-05-03 21:16:58 -04:00
links.css yum cappuccino yay! 2026-05-03 21:16:58 -04:00
marks.css Marks II: broader monogram coverage + audit-marks tool 2026-05-23 12:05:08 -04:00
memento-mori.css initial deploy! whoop 2026-03-17 21:56:14 -04:00
now.css Current rework 2026-04-26 19:42:47 -04:00
photography.css Spec dilemma 2026-05-01 21:22:01 -04:00
popups.css Popups: always clamp into the viewport 2026-06-10 13:14:14 -04:00
print.css print.css: refresh page rules and prose treatments 2026-05-23 12:06:20 -04:00
reading.css Layout: page-shell wrapper for iOS sticky, scrollable TOC 2026-05-23 12:06:02 -04:00
score-reader.css initial deploy! whoop 2026-03-17 21:56:14 -04:00
selection-popup.css initial deploy! whoop 2026-03-17 21:56:14 -04:00
sidenotes.css Sidenotes: emit the section.footnotes fallback the CSS expects 2026-06-10 10:37:28 -04:00
syntax.css initial deploy! whoop 2026-03-17 21:56:14 -04:00
typography.css yum cappuccino yay! 2026-05-03 21:16:58 -04:00
viz.css auto: 2026-04-05T01:18:45Z 2026-04-04 21:18:45 -04:00