.vue-flow { position: relative; width: 100%; height: 100%; overflow: hidden; z-index: 0; direction: ltr; } .vue-flow__container { position: absolute; height: 100%; width: 100%; left: 0; top: 0; } .vue-flow__pane { z-index: 1; &.draggable { cursor: grab; } &.selection { cursor: pointer; } &.dragging { cursor: grabbing; } } .vue-flow__transformationpane { transform-origin: 0 0; z-index: 2; pointer-events: none; } .vue-flow__viewport { z-index: 4; overflow: clip; } .vue-flow__selection { z-index: 6; } .vue-flow__edge-labels { position: absolute; width: 100%; height: 100%; pointer-events: none; user-select: none; } .vue-flow__nodesselection-rect:focus, .vue-flow__nodesselection-rect:focus-visible { outline: none; } .vue-flow .vue-flow__edges { pointer-events: none; overflow: visible; } .vue-flow__edge-path, .vue-flow__connection-path { stroke: #b1b1b7; stroke-width: 1; fill: none; } .vue-flow__edge { pointer-events: visibleStroke; cursor: pointer; &.animated path { stroke-dasharray: 5; animation: dashdraw 0.5s linear infinite; } &.animated path.vue-flow__edge-interaction { stroke-dasharray: none; animation: none; } &.inactive { pointer-events: none; } &.selected, &:focus, &:focus-visible { outline: none; } &.selected .vue-flow__edge-path, &:focus .vue-flow__edge-path, &:focus-visible .vue-flow__edge-path { stroke: #555; } &-textwrapper { pointer-events: all; } &-textbg { fill: white; } &-text { pointer-events: none; user-select: none; } } .vue-flow__connection { pointer-events: none; .animated { stroke-dasharray: 5; animation: dashdraw 0.5s linear infinite; } } .vue-flow__connectionline { z-index: 1001; } .vue-flow__nodes { pointer-events: none; transform-origin: 0 0; } .vue-flow__node-default, .vue-flow__node-input, .vue-flow__node-output { border-width: 1px; border-style: solid; border-color: #bbb; &.selected, &:focus, &:focus-visible { outline: none; border: 1px solid #555; } } .vue-flow__node { position: absolute; user-select: none; pointer-events: all; transform-origin: 0 0; box-sizing: border-box; cursor: default; &.draggable { cursor: grab; pointer-events: all; &.dragging { cursor: grabbing; } } } .vue-flow__nodesselection { z-index: 3; transform-origin: left top; pointer-events: none; &-rect { position: absolute; pointer-events: all; cursor: grab; &.dragging { cursor: grabbing; } } } .vue-flow__handle { position: absolute; pointer-events: none; min-width: 5px; min-height: 5px; &.connectable { pointer-events: all; cursor: crosshair; } &-bottom { left: 50%; bottom: 0; transform: translate(-50%, 50%); } &-top { left: 50%; top: 0; transform: translate(-50%, -50%); } &-left { top: 50%; left: 0; transform: translate(-50%, -50%); } &-right { top: 50%; right: 0; transform: translate(50%, -50%); } } .vue-flow__edgeupdater { cursor: move; pointer-events: all; } .vue-flow__panel { position: absolute; z-index: 5; margin: 15px; &.top { top: 0; } &.bottom { bottom: 0; } &.left { left: 0; } &.right { right: 0; } &.center { left: 50%; transform: translateX(-50%); } } @keyframes dashdraw { from { stroke-dashoffset: 10; } }