255 lines
5.0 KiB
SCSS
255 lines
5.0 KiB
SCSS
.visualiser-root {
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: flex-start;
|
|
height: 100%;
|
|
min-height: 0;
|
|
overflow-y: auto;
|
|
overflow-x: hidden;
|
|
padding: $spacePadding;
|
|
}
|
|
|
|
.visualiser-container {
|
|
position: relative;
|
|
width: min(100%, 760px);
|
|
}
|
|
|
|
.visualiser-flow {
|
|
width: 100%;
|
|
padding: 20px 16px;
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
gap: 10px;
|
|
}
|
|
|
|
.visualiser-level {
|
|
width: 100%;
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: flex-start;
|
|
}
|
|
|
|
.visualiser-level-row {
|
|
display: grid;
|
|
align-items: center;
|
|
justify-items: center;
|
|
}
|
|
|
|
.visualiser-node {
|
|
width: 220px;
|
|
padding: 12px 14px;
|
|
border-radius: 12px;
|
|
background: linear-gradient(
|
|
135deg,
|
|
lighten($mode--light-bg, 2%),
|
|
lighten($blue, 38%)
|
|
);
|
|
border: 1px solid rgba($blue, 0.28);
|
|
color: $leftMenu-background;
|
|
font-weight: 600;
|
|
text-align: center;
|
|
letter-spacing: 0.2px;
|
|
box-shadow: 0 6px 14px rgba($blue, 0.2);
|
|
transition:
|
|
opacity 0.16s ease,
|
|
transform 0.16s ease,
|
|
box-shadow 0.16s ease;
|
|
}
|
|
|
|
.visualiser-node.is-hovered {
|
|
transform: translateY(-1px);
|
|
box-shadow: 0 10px 22px rgba($blue, 0.33);
|
|
}
|
|
|
|
.visualiser-node.is-related {
|
|
box-shadow: 0 8px 18px rgba($blue, 0.27);
|
|
}
|
|
|
|
.visualiser-node.is-dim {
|
|
opacity: 0.45;
|
|
}
|
|
|
|
.visualiser-node-content {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 8px;
|
|
}
|
|
|
|
.visualiser-connector {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
gap: 4px;
|
|
margin: 2px 0;
|
|
}
|
|
|
|
.visualiser-connector-line {
|
|
width: 2px;
|
|
height: 18px;
|
|
background: linear-gradient(180deg, rgba($blue, 0.6), rgba($blue, 0.2));
|
|
}
|
|
|
|
.visualiser-connector-arrow {
|
|
width: 0;
|
|
height: 0;
|
|
border-left: 6px solid transparent;
|
|
border-right: 6px solid transparent;
|
|
border-top: 8px solid rgba($blue, 0.6);
|
|
}
|
|
|
|
.visualiser-connector-tail {
|
|
width: 2px;
|
|
height: 10px;
|
|
background: rgba($blue, 0.2);
|
|
}
|
|
|
|
.visualiser-connector-branch {
|
|
width: 100%;
|
|
height: 34px;
|
|
}
|
|
|
|
.visualiser-connector-spacer {
|
|
width: 100%;
|
|
height: 34px;
|
|
}
|
|
|
|
.visualiser-connector-branch-line {
|
|
stroke: rgba($blue, 0.55);
|
|
stroke-width: 2px;
|
|
vector-effect: non-scaling-stroke;
|
|
}
|
|
|
|
.visualiser-connector-branch-arrow {
|
|
fill: rgba($blue, 0.55);
|
|
}
|
|
|
|
@include color-mode(dark) {
|
|
.visualiser-node {
|
|
background: linear-gradient(
|
|
135deg,
|
|
lighten($mode--dark-bg, 6%),
|
|
rgba($blue, 0.35)
|
|
);
|
|
border: 1px solid rgba($blue, 0.45);
|
|
color: $leftMenu-color;
|
|
box-shadow: 0 8px 18px rgba($blue, 0.28);
|
|
}
|
|
|
|
.visualiser-connector-line {
|
|
background: linear-gradient(180deg, rgba($blue, 0.8), rgba($blue, 0.3));
|
|
}
|
|
|
|
.visualiser-connector-arrow {
|
|
border-top-color: rgba($blue, 0.8);
|
|
}
|
|
|
|
.visualiser-connector-tail {
|
|
background: rgba($blue, 0.3);
|
|
}
|
|
|
|
.visualiser-connector-branch-line {
|
|
stroke: rgba($blue, 0.8);
|
|
}
|
|
|
|
.visualiser-connector-branch-arrow {
|
|
fill: rgba($blue, 0.8);
|
|
}
|
|
|
|
.visualiser-outcome-connector-line {
|
|
stroke: rgba($blue, 0.65);
|
|
}
|
|
|
|
.visualiser-outcome-connector-arrow {
|
|
fill: rgba($blue, 0.65);
|
|
}
|
|
}
|
|
|
|
.visualiser-outcome-connectors {
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
pointer-events: none;
|
|
overflow: visible;
|
|
}
|
|
|
|
.visualiser-outcome-connector-line {
|
|
fill: none;
|
|
stroke: rgba($blue, 0.45);
|
|
stroke-width: 2px;
|
|
stroke-dasharray: 4, 4;
|
|
vector-effect: non-scaling-stroke;
|
|
transition:
|
|
opacity 0.16s ease,
|
|
stroke-width 0.16s ease,
|
|
stroke 0.16s ease;
|
|
}
|
|
|
|
.visualiser-outcome-connector-arrow {
|
|
fill: rgba($blue, 0.45);
|
|
}
|
|
|
|
.visualiser-outcome-connector-label {
|
|
font-size: 2px;
|
|
font-weight: 600;
|
|
fill: $blue;
|
|
paint-order: stroke fill;
|
|
stroke: $mode--light-bg;
|
|
stroke-width: 1px;
|
|
stroke-linecap: round;
|
|
stroke-linejoin: round;
|
|
user-select: none;
|
|
transition:
|
|
opacity 0.16s ease,
|
|
fill 0.16s ease;
|
|
}
|
|
|
|
.visualiser-outcome-connector-line.is-active {
|
|
stroke-width: 2.6px;
|
|
stroke: rgba($blue, 0.75);
|
|
stroke-dasharray: 0;
|
|
}
|
|
|
|
.visualiser-outcome-connector-line.is-active-outgoing {
|
|
stroke-width: 2.8px;
|
|
stroke: rgba($blue, 0.82);
|
|
stroke-dasharray: 0;
|
|
filter: drop-shadow(0 0 3px rgba($blue, 0.6));
|
|
}
|
|
|
|
.visualiser-outcome-connector-line.is-active-incoming {
|
|
stroke-width: 2.2px;
|
|
stroke: rgba($blue, 0.58);
|
|
stroke-dasharray: 2, 2;
|
|
}
|
|
|
|
.visualiser-outcome-connector-line.is-dim {
|
|
opacity: 0.2;
|
|
}
|
|
|
|
.visualiser-outcome-connector-label.is-active {
|
|
fill: darken($blue, 8%);
|
|
}
|
|
|
|
.visualiser-outcome-connector-label.is-active-outgoing {
|
|
fill: darken($blue, 12%);
|
|
}
|
|
|
|
.visualiser-outcome-connector-label.is-active-incoming {
|
|
fill: darken($blue, 2%);
|
|
}
|
|
|
|
.visualiser-outcome-connector-label.is-dim {
|
|
opacity: 0.25;
|
|
}
|
|
|
|
@include color-mode(dark) {
|
|
.visualiser-outcome-connector-label {
|
|
fill: lighten($blue, 20%);
|
|
stroke: $mode--dark-bg;
|
|
}
|
|
}
|