Add vertical bottom-up timeline with center-out streams and smooth layout transitions.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Danila KhodjaefandCursor committed 2026-08-11 21:31:30 +03:00
1 parent 4088d7d57b
commit 971c1e8dd8
9 files changed
+1695 -41

No files matched your search

@@ -0,0 +1,104 @@
.vflow {
flex: 1;
min-height: 0;
display: flex;
flex-direction: column;
padding: 8px 12px 12px;
}
.vflow-caption {
margin: 0 0 8px;
text-align: center;
font-family: 'Georgia', serif;
font-size: 13px;
font-style: italic;
color: rgba(201, 169, 110, 0.65);
flex-shrink: 0;
}
.vflow-empty {
flex: 1;
display: flex;
align-items: center;
justify-content: center;
padding: 48px;
text-align: center;
color: rgba(201, 169, 110, 0.6);
font-family: 'Georgia', serif;
}
.vflow-canvas {
position: relative;
flex: 1;
min-height: 0;
width: 100%;
border-radius: 8px;
background:
radial-gradient(ellipse 70% 80% at 50% 0%, rgba(201, 169, 110, 0.07), transparent 70%),
rgba(0, 0, 0, 0.25);
border: 1px solid rgba(201, 169, 110, 0.12);
overflow: hidden;
cursor: grab;
touch-action: none;
}
.vflow-canvas.vflow-panning {
cursor: grabbing;
}
.vflow-svg {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
z-index: 1;
}
.vflow-stream {
stroke-linecap: round;
stroke-linejoin: round;
opacity: 0.72;
cursor: pointer;
transition: opacity 0.15s ease, filter 0.15s ease;
vector-effect: non-scaling-stroke;
}
.vflow-stream-highlighted {
opacity: 1;
filter: brightness(1.15);
}
.vflow-branch {
stroke-linecap: round;
stroke-linejoin: round;
opacity: 0.95;
pointer-events: none;
vector-effect: non-scaling-stroke;
}
.vflow-branch-highlighted {
opacity: 1;
filter: brightness(1.25) drop-shadow(0 0 4px rgba(255, 230, 180, 0.45));
}
.vflow-label {
position: absolute;
z-index: 4;
transform: translate(-50%, 50%);
margin: 0;
padding: 2px 8px;
border: none;
border-radius: 4px;
background: rgba(12, 12, 22, 0.72);
color: rgba(245, 230, 200, 0.95);
font-family: 'Georgia', serif;
font-size: 12px;
white-space: nowrap;
cursor: pointer;
pointer-events: auto;
}
.vflow-label:hover {
background: rgba(30, 28, 40, 0.9);
color: #fff6e0;
}