.container { width: 100%; height: 100%; position: relative; --journey-line-color: var(--base600); --journey-active-color: var(--primary400); } .view { position: absolute; top: 0; left: 0; right: 0; bottom: 0; display: flex; flex-direction: row; flex-wrap: nowrap; overflow: auto; gap: 100px; } .header { display: flex; min-height: 70px; } .num { display: flex; align-items: center; justify-content: center; border-radius: 100%; width: 50px; height: 50px; font-size: 16px; font-weight: 700; color: var(--base100); background: var(--base800); z-index: 1; margin: 0 auto; } .column { display: flex; flex-direction: column; } .nodes { position: relative; display: flex; flex-direction: column; gap: 10px; height: 100%; } .item { position: relative; cursor: pointer; padding: 10px 20px; background: var(--base75); border-radius: 5px; display: flex; align-items: center; justify-content: space-between; min-width: 300px; min-height: 60px; } .item:hover:not(.selected) { color: var(--base900); background: var(--base100); } .selected { color: var(--base75); background: var(--base900); font-weight: 400; } .item.active { background: var(--primary400); } .behind { color: var(--base400); } .ahead { color: var(--base400); } .current { color: var(--base500); } .name { font-weight: 500; } .count { border-radius: 4px; padding: 5px 10px; background: var(--base200); } .selected .count { color: var(--base50); background: var(--base800); } .line { position: absolute; left: -100px; width: 100px; } .line.flat:before { content: ''; position: absolute; width: 97px; left: 3px; border-top: 3px solid var(--journey-line-color); } .line.fromUp:before { content: ''; position: absolute; top: -30px; left: 50px; margin-top: 3px; margin-left: -3px; border: 0; border-bottom-left-radius: 100%; border-left: 3px solid var(--journey-line-color); border-bottom: 3px solid var(--journey-line-color); width: 50px; height: 30px; } .line.fromDown:before { content: ''; position: absolute; top: 0; left: 50px; margin-left: -3px; border: 0; border-top-left-radius: 100%; border-left: 3px solid var(--journey-line-color); border-top: 3px solid var(--journey-line-color); width: 50px; height: 30px; } .line.fromUp:after, .line.fromDown:after { content: ''; position: absolute; top: -6px; right: -6px; margin: 0; bottom: 0; border-radius: 100%; border: 3px solid var(--journey-line-color); background: var(--base50); width: 13px; height: 13px; } .line.toUp:before { content: ''; position: absolute; top: -30px; margin-top: 3px; right: -350px; border: 0; border-bottom-right-radius: 100%; border-right: 3px solid var(--journey-line-color); border-bottom: 3px solid var(--journey-line-color); width: 50px; height: 30px; } .line.toDown:before { content: ''; position: absolute; top: 0; right: -350px; border: 0; border-top-right-radius: 100%; border-right: 3px solid var(--journey-line-color); border-top: 3px solid var(--journey-line-color); width: 50px; height: 30px; } .line.toUp:after, .line.toDown:after { content: ''; position: absolute; top: -6px; right: -306px; margin: 0; bottom: 0; border-radius: 100%; border: 3px solid var(--journey-line-color); background: var(--base50); width: 13px; height: 13px; } .bar { position: absolute; left: -100px; width: 50px; height: 20px; border-right: 3px solid var(--journey-line-color); } .item.active .bar, .item.active .line:before, .item.active .line:after { border-color: var(--journey-active-color); z-index: 1; } .item.active .count { background: var(--primary600); }