diff --git a/web/public/css/iblogs.css b/web/public/css/iblogs.css index fa34159..7753b70 100644 --- a/web/public/css/iblogs.css +++ b/web/public/css/iblogs.css @@ -950,6 +950,24 @@ main { width: 100%; } +/* + * Skip layout / paint of off-screen log cells until they scroll into + * view. With logs running up to ~25 000 entries the eager render of + * every cell is what causes the multi-second freeze on initial load. + * + * `.entry` itself is `display: contents` (no box), so the rule has to + * land on the actual grid items it produces. `contain-intrinsic-size: + * auto 1.5em` lets the browser remember measured heights after first + * paint and falls back to ~one line tall as the placeholder for + * never-seen cells. Multi-line stack traces correct on first pass; the + * scroll position adjusts once. + */ +.log-inner .line-number-container, +.log-inner .line-content { + content-visibility: auto; + contain-intrinsic-size: auto 1.5em; +} + .log-inner .entry.entry-error .line-content, .log-inner .entry.entry-error .line-number-container{ background-color: var(--error-bg);