Fix stack cover: single sticky folder unit, hide inactive bodies.

Tested all four variants in browser — only active layer body visible while
tabs stay staggered; scroll covers previous layers correctly.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-05-20 23:11:57 -04:00
co-authored by Cursor
parent bb8469ca10
commit cfe1cf3922
14 changed files with 499 additions and 160 deletions
+30 -27
View File
@@ -27,27 +27,12 @@ body {
}
.frame {
position: relative;
position: sticky;
margin: 0 0.5rem;
border-left: 3px solid #3a3a44;
background: #141418;
box-shadow: 0 8px 0 #0a0a0c, 0 14px 28px rgba(0,0,0,0.45);
}
.frame-line {
position: sticky;
z-index: 60;
padding: 0.65rem 0 0.35rem 1rem;
background: #141418;
}
.frame-body {
position: sticky;
top: var(--stack-reveal);
padding: 0 0 2rem 1rem;
min-height: var(--stack-body-h);
z-index: 10;
background: #141418;
}
.frame-line {
@@ -59,25 +44,43 @@ body {
cursor: pointer;
text-align: left;
width: 100%;
padding: 0.65rem 0 0.35rem 1rem;
background: #141418;
}
.frame-line:hover { color: #9fdf9f; text-decoration: underline; }
.frame-body {
padding: 0 0 2rem 1rem;
min-height: var(--stack-body-h);
background: #141418;
}
.f0 { top: calc(var(--stack-stick) + var(--stack-step) * 0); border-color: #c4a574; }
.f0 .frame-body { margin-top: calc(var(--stack-reveal) - var(--stack-stick) - var(--stack-tab-h)); }
.f1 { top: calc(var(--stack-stick) + var(--stack-step) * 1); }
.f1 .frame-body { margin-top: calc(var(--stack-reveal) - var(--stack-stick) - var(--stack-step) * 1 - var(--stack-tab-h)); }
.f2 { top: calc(var(--stack-stick) + var(--stack-step) * 2); }
.f2 .frame-body { margin-top: calc(var(--stack-reveal) - var(--stack-stick) - var(--stack-step) * 2 - var(--stack-tab-h)); }
.f3 { top: calc(var(--stack-stick) + var(--stack-step) * 3); }
.f3 .frame-body { margin-top: calc(var(--stack-reveal) - var(--stack-stick) - var(--stack-step) * 3 - var(--stack-tab-h)); }
.f4 { top: calc(var(--stack-stick) + var(--stack-step) * 4); border-color: #6b8b9b; }
.f4 .frame-body { margin-top: calc(var(--stack-reveal) - var(--stack-stick) - var(--stack-step) * 4 - var(--stack-tab-h)); }
.f5 { top: calc(var(--stack-stick) + var(--stack-step) * 5); }
.f5 .frame-body { margin-top: calc(var(--stack-reveal) - var(--stack-stick) - var(--stack-step) * 5 - var(--stack-tab-h)); }
.f6 { top: calc(var(--stack-stick) + var(--stack-step) * 6); border-color: #7eb87a; }
.f6 .frame-body { margin-top: calc(var(--stack-reveal) - var(--stack-stick) - var(--stack-step) * 6 - var(--stack-tab-h)); }
.frame-body strong { color: #e8e6e3; font-weight: 500; display: block; margin-bottom: 0.2rem; }
.frame-body p { color: #6b6966; font-size: 0.74rem; }
.frame-body a { color: #8b9cb3; text-decoration: none; }
.f0 .frame-line { top: calc(var(--stack-stick) + var(--stack-step) * 0); }
.f0 { border-color: #c4a574; }
.f1 .frame-line { top: calc(var(--stack-stick) + var(--stack-step) * 1); }
.f2 .frame-line { top: calc(var(--stack-stick) + var(--stack-step) * 2); }
.f3 .frame-line { top: calc(var(--stack-stick) + var(--stack-step) * 3); }
.f4 .frame-line { top: calc(var(--stack-stick) + var(--stack-step) * 4); }
.f4 { border-color: #6b8b9b; }
.f5 .frame-line { top: calc(var(--stack-stick) + var(--stack-step) * 5); }
.f6 .frame-line { top: calc(var(--stack-stick) + var(--stack-step) * 6); }
.f6 { border-color: #7eb87a; }
.foot {
display: flex; justify-content: space-between;
width: min(600px, 100%); margin: 0 auto;