Fix stack cover: shared sticky line, z-index, show body only on stack.
All folders stick at --stack-reveal; higher layers paint over lower ones. Bodies hidden until panel aligns on the stack line (no vertical list). Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+7
-7
@@ -23,7 +23,7 @@
|
||||
<header class="layer-head"><button type="button" class="layer-id" data-goto="0">L0</button><span class="layer-name">foundation</span></header>
|
||||
<h1>Levkin</h1>
|
||||
<p class="tagline">Software · Canada · remote</p>
|
||||
<p class="body">Boutique engineering — production systems, automation, enterprise.</p>
|
||||
<p class="layer-copy">Boutique engineering — production systems, automation, enterprise.</p>
|
||||
<div class="chips"><span>15+ yrs</span><span>8h→2m</span><span>24/7</span></div>
|
||||
<p class="avail">Taking new engagements</p>
|
||||
</div></section></div>
|
||||
@@ -31,37 +31,37 @@
|
||||
<div class="scroll-section" data-layer="1"><section class="layer layer-1"><div class="layer-tab" aria-hidden="true"></div><div class="layer-inner">
|
||||
<header class="layer-head"><button type="button" class="layer-id" data-goto="1">L1</button><span class="layer-name">application</span></header>
|
||||
<h2>Custom software</h2>
|
||||
<p class="body">Web apps, APIs, internal tools — TS · Python · .NET</p>
|
||||
<p class="layer-copy">Web apps, APIs, internal tools — TS · Python · .NET</p>
|
||||
</div></section></div>
|
||||
|
||||
<div class="scroll-section" data-layer="2"><section class="layer layer-2"><div class="layer-tab" aria-hidden="true"></div><div class="layer-inner">
|
||||
<header class="layer-head"><button type="button" class="layer-id" data-goto="2">L2</button><span class="layer-name">automation</span><a href="https://auto.levkin.ca" class="layer-link">auto.levkin.ca ↗</a></header>
|
||||
<h2>Automation</h2>
|
||||
<p class="body">n8n · Zapier · CI/CD · webhooks · LLMs</p>
|
||||
<p class="layer-copy">n8n · Zapier · CI/CD · webhooks · LLMs</p>
|
||||
</div></section></div>
|
||||
|
||||
<div class="scroll-section" data-layer="3"><section class="layer layer-3"><div class="layer-tab" aria-hidden="true"></div><div class="layer-inner">
|
||||
<header class="layer-head"><button type="button" class="layer-id" data-goto="3">L3</button><span class="layer-name">enterprise</span><a href="https://caseware.levkin.ca" class="layer-link">caseware.levkin.ca ↗</a></header>
|
||||
<h2>CaseWare & CaseView</h2>
|
||||
<p class="body">15+ years · CaseWare Intl, MNP, JazzIt</p>
|
||||
<p class="layer-copy">15+ years · CaseWare Intl, MNP, JazzIt</p>
|
||||
</div></section></div>
|
||||
|
||||
<div class="scroll-section" data-layer="4"><section class="layer layer-4"><div class="layer-tab" aria-hidden="true"></div><div class="layer-inner">
|
||||
<header class="layer-head"><button type="button" class="layer-id" data-goto="4">L4</button><span class="layer-name">quality</span><a href="https://iliadobkin.com" class="layer-link">iliadobkin.com ↗</a></header>
|
||||
<h2>Quality engineering</h2>
|
||||
<p class="body">Senior SDET · test automation · CI/CD · trace-driven QA</p>
|
||||
<p class="layer-copy">Senior SDET · test automation · CI/CD · trace-driven QA</p>
|
||||
</div></section></div>
|
||||
|
||||
<div class="scroll-section" data-layer="5"><section class="layer layer-5"><div class="layer-tab" aria-hidden="true"></div><div class="layer-inner">
|
||||
<header class="layer-head"><button type="button" class="layer-id" data-goto="5">L5</button><span class="layer-name">operations</span><a href="https://jobs.levkin.ca" class="layer-link">jobs.levkin.ca ↗</a></header>
|
||||
<h2>Job Ops</h2>
|
||||
<p class="body">Internal hiring orchestrator (auth required)</p>
|
||||
<p class="layer-copy">Internal hiring orchestrator (auth required)</p>
|
||||
</div></section></div>
|
||||
|
||||
<div class="scroll-section scroll-section--final" data-layer="6"><section class="layer layer-6"><div class="layer-tab" aria-hidden="true"></div><div class="layer-inner">
|
||||
<header class="layer-head"><button type="button" class="layer-id" data-goto="6">L6</button><span class="layer-name">interface</span></header>
|
||||
<h2>Engage</h2>
|
||||
<p class="body">Discover → Proposal → Ship → Maintain</p>
|
||||
<p class="layer-copy">Discover → Proposal → Ship → Maintain</p>
|
||||
<div class="contact-row">
|
||||
<a class="btn" href="https://cal.levkin.ca/ilia/consult">Book 15 min</a>
|
||||
<a class="btn btn-ghost" href="mailto:hello@levkine.ca">hello@levkine.ca</a>
|
||||
|
||||
+13
-24
@@ -4,7 +4,6 @@
|
||||
:root {
|
||||
--mono: 'IBM Plex Mono', ui-monospace, monospace;
|
||||
--sans: 'Instrument Sans', system-ui, sans-serif;
|
||||
--card-tab-h: 0.5rem;
|
||||
}
|
||||
|
||||
* { box-sizing: border-box; margin: 0; padding: 0; }
|
||||
@@ -37,16 +36,19 @@ body {
|
||||
|
||||
.layer {
|
||||
position: sticky;
|
||||
top: var(--stack-reveal);
|
||||
margin: 0;
|
||||
border-radius: 8px 8px 6px 6px;
|
||||
border: 1px solid rgba(255,255,255,0.08);
|
||||
box-shadow: 0 12px 36px rgba(0,0,0,0.5);
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
.layer-tab {
|
||||
position: absolute;
|
||||
left: 10px;
|
||||
right: 10px;
|
||||
bottom: calc(100% + var(--stack-step) * var(--layer, 0));
|
||||
height: 6px;
|
||||
margin: 0 10px -6px;
|
||||
border-radius: 5px 5px 0 0;
|
||||
background: inherit;
|
||||
filter: brightness(1.12);
|
||||
@@ -60,26 +62,13 @@ body {
|
||||
min-height: var(--stack-body-h);
|
||||
}
|
||||
|
||||
.layer-0 { background: #1c1c20; top: calc(var(--stack-stick) + var(--stack-step) * 0); }
|
||||
.layer-0 .layer-inner { margin-top: calc(var(--stack-reveal) - var(--stack-stick) - var(--card-tab-h)); }
|
||||
|
||||
.layer-1 { background: #24242c; top: calc(var(--stack-stick) + var(--stack-step) * 1); }
|
||||
.layer-1 .layer-inner { margin-top: calc(var(--stack-reveal) - var(--stack-stick) - var(--stack-step) * 1 - var(--card-tab-h)); }
|
||||
|
||||
.layer-2 { background: #2c2c36; top: calc(var(--stack-stick) + var(--stack-step) * 2); }
|
||||
.layer-2 .layer-inner { margin-top: calc(var(--stack-reveal) - var(--stack-stick) - var(--stack-step) * 2 - var(--card-tab-h)); }
|
||||
|
||||
.layer-3 { background: #343440; top: calc(var(--stack-stick) + var(--stack-step) * 3); }
|
||||
.layer-3 .layer-inner { margin-top: calc(var(--stack-reveal) - var(--stack-stick) - var(--stack-step) * 3 - var(--card-tab-h)); }
|
||||
|
||||
.layer-4 { background: #3c3c4a; top: calc(var(--stack-stick) + var(--stack-step) * 4); }
|
||||
.layer-4 .layer-inner { margin-top: calc(var(--stack-reveal) - var(--stack-stick) - var(--stack-step) * 4 - var(--card-tab-h)); }
|
||||
|
||||
.layer-5 { background: #444454; top: calc(var(--stack-stick) + var(--stack-step) * 5); }
|
||||
.layer-5 .layer-inner { margin-top: calc(var(--stack-reveal) - var(--stack-stick) - var(--stack-step) * 5 - var(--card-tab-h)); }
|
||||
|
||||
.layer-6 { background: #4c4c5e; top: calc(var(--stack-stick) + var(--stack-step) * 6); }
|
||||
.layer-6 .layer-inner { margin-top: calc(var(--stack-reveal) - var(--stack-stick) - var(--stack-step) * 6 - var(--card-tab-h)); }
|
||||
.layer-0 { background: #1c1c20; z-index: 10; --layer: 0; }
|
||||
.layer-1 { background: #24242c; z-index: 11; --layer: 1; }
|
||||
.layer-2 { background: #2c2c36; z-index: 12; --layer: 2; }
|
||||
.layer-3 { background: #343440; z-index: 13; --layer: 3; }
|
||||
.layer-4 { background: #3c3c4a; z-index: 14; --layer: 4; }
|
||||
.layer-5 { background: #444454; z-index: 15; --layer: 5; }
|
||||
.layer-6 { background: #4c4c5e; z-index: 16; --layer: 6; }
|
||||
|
||||
.layer-head {
|
||||
display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem 0.65rem;
|
||||
@@ -98,7 +87,7 @@ body {
|
||||
.layer h1 { font-size: 2rem; font-weight: 600; letter-spacing: -0.03em; }
|
||||
.layer h2 { font-size: 1.2rem; font-weight: 600; margin-bottom: 0.35rem; }
|
||||
.tagline { font-family: var(--mono); font-size: 0.65rem; color: #6b6966; margin-bottom: 0.4rem; }
|
||||
.body { font-size: 0.9rem; color: #a8a6a1; }
|
||||
.layer-copy { font-size: 0.9rem; color: #a8a6a1; }
|
||||
.chips { display: flex; flex-wrap: wrap; gap: 0.3rem; margin: 0.5rem 0; }
|
||||
.chips span {
|
||||
font-family: var(--mono); font-size: 0.55rem; padding: 0.15rem 0.4rem;
|
||||
|
||||
Reference in New Issue
Block a user