node-red/packages/node_modules/@node-red/editor-client/src/sass/flow.scss

431 lines
11 KiB
SCSS
Raw Normal View History

2015-04-09 15:46:29 +02:00
/**
* Copyright JS Foundation and other contributors, http://js.foundation
2015-04-09 15:46:29 +02:00
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
**/
2019-05-08 14:26:48 +02:00
.nr-ui-view-lasso {
stroke-width: 1px;
2022-06-18 22:05:25 +02:00
stroke: var(--red-ui-view-lasso-stroke);
fill: var(--red-ui-view-lasso-fill);
2015-04-09 15:46:29 +02:00
stroke-dasharray: 10 5;
}
.nr-ui-view-slice {
stroke-width: 1px;
2022-06-18 22:05:25 +02:00
stroke: var(--red-ui-view-lasso-stroke);
fill: none;
stroke-dasharray: 10 5;
}
2019-05-15 14:54:29 +02:00
.node_label_italic, // deprecated: use red-ui-flow-node-label-italic
.red-ui-flow-node-label-italic {
2015-04-09 15:46:29 +02:00
font-style: italic;
}
2019-05-15 14:54:29 +02:00
.red-ui-flow-node-label-white {
2022-06-18 22:05:25 +02:00
fill: var(--red-ui-view-background) !important;
2015-04-09 15:46:29 +02:00
}
2019-05-15 14:54:29 +02:00
.red-ui-flow-node-label {
2015-04-09 15:46:29 +02:00
stroke-width: 0;
2022-06-18 22:05:25 +02:00
fill: var(--red-ui-node-label-color);
2015-04-09 15:46:29 +02:00
font-size: 14px;
pointer-events: none;
-webkit-touch-callout: none;
@include disable-selection;
.red-ui-flow-node-label-text {
dominant-baseline: middle;
}
&.red-ui-flow-node-label-right .red-ui-flow-node-label-text {
text-anchor: end;
}
2015-04-09 15:46:29 +02:00
}
2019-05-15 14:54:29 +02:00
.red-ui-flow-port-label {
2015-04-09 15:46:29 +02:00
stroke-width: 0;
2022-06-18 22:05:25 +02:00
fill: var(--red-ui-node-port-label-color);
2015-04-09 15:46:29 +02:00
font-size: 16px;
dominant-baseline: middle;
2015-04-09 15:46:29 +02:00
text-anchor: middle;
pointer-events: none;
-webkit-touch-callout: none;
@include disable-selection;
}
2019-05-15 14:54:29 +02:00
.red-ui-flow-node {
2022-06-18 22:05:25 +02:00
stroke: var(--red-ui-node-border);
2015-04-09 15:46:29 +02:00
cursor: move;
2015-07-12 00:43:45 +02:00
stroke-width: 1;
2015-04-09 15:46:29 +02:00
}
.red-ui-workspace-select-mode {
g.red-ui-flow-node.red-ui-flow-node-hovered * {
cursor: pointer !important
}
g.red-ui-flow-node, g.red-ui-flow-link {
opacity: 0.5;
}
g.red-ui-flow-node.red-ui-flow-node-hovered:not(.red-ui-flow-node-selected) {
opacity: 0.9;
.red-ui-flow-node {
stroke-width: 2;
2022-06-18 22:05:25 +02:00
stroke: var(--red-ui-node-selected-color) !important;
stroke-dasharray: 10, 4;
}
}
}
.red-ui-flow-group {
&.red-ui-flow-group-hovered {
.red-ui-flow-group-outline-select {
stroke-opacity: 0.8 !important;
stroke-dasharray: 10 4 !important;
}
}
&.red-ui-flow-group-active-hovered:not(.red-ui-flow-group-hovered) {
.red-ui-flow-group-outline-select {
2022-06-18 22:05:25 +02:00
stroke: var(--red-ui-link-link-color);
}
}
}
.red-ui-flow-group-outline {
fill: none;
2022-06-18 22:05:25 +02:00
stroke: var(--red-ui-node-selected-color);
stroke-opacity: 0;
stroke-width: 12;
pointer-events: stroke;
}
.red-ui-flow-group-outline-select {
fill: none;
2022-06-18 22:05:25 +02:00
stroke: var(--red-ui-node-selected-color);
pointer-events: stroke;
stroke-opacity: 0;
stroke-width: 3;
&.red-ui-flow-group-outline-select-background {
2022-06-18 22:05:25 +02:00
stroke: var(--red-ui-view-background);
stroke-width: 6;
}
}
.red-ui-flow-group-body {
pointer-events: none;
2022-06-18 22:05:25 +02:00
fill: var(--red-ui-group-default-fill);
fill-opacity: var(--red-ui-group-default-fill-opacity);
stroke-width: 2;
2022-06-18 22:05:25 +02:00
stroke: var(--red-ui-group-default-stroke);
stroke-opacity: var(--red-ui-group-default-stroke-opacity);
}
.red-ui-flow-group-label {
@include disable-selection;
2022-06-18 22:05:25 +02:00
fill: var(--red-ui-group-default-label-color);
}
2019-05-15 14:54:29 +02:00
.red-ui-flow-node-unknown {
2015-04-09 15:46:29 +02:00
stroke-dasharray:10,4;
2022-06-18 22:05:25 +02:00
stroke: var(--red-ui-node-border-unknown);
2015-04-09 15:46:29 +02:00
}
2019-05-15 14:54:29 +02:00
.red-ui-flow-node-placeholder {
stroke-dasharray:10,4;
2022-06-18 22:05:25 +02:00
stroke: var(--red-ui-node-border-placeholder);
fill: var(--red-ui-node-background-placeholder);
opacity: 0.5;
stroke-width: 2;
}
2019-05-15 14:54:29 +02:00
.red-ui-flow-node-icon-group {
2020-08-28 17:35:47 +02:00
text {
@include disable-selection;
}
2019-05-15 14:54:29 +02:00
.fa-lg {
@include disable-selection;
2019-05-15 14:54:29 +02:00
stroke: none;
2022-06-18 22:05:25 +02:00
fill: var(--red-ui-node-icon-color);
2019-05-15 14:54:29 +02:00
text-anchor: middle;
font-family: FontAwesome;
}
}
.red-ui-flow-node-icon-shade {
stroke: none;
2022-06-18 22:05:25 +02:00
fill: var(--red-ui-node-icon-background-color-fill);
fill-opacity: var(--red-ui-node-icon-background-color-opacity);
2019-05-15 14:54:29 +02:00
}
.red-ui-flow-node-icon-shade-border {
2022-06-18 22:05:25 +02:00
stroke-opacity: var(--red-ui-node-icon-border-color-opacity);
stroke: var(--red-ui-node-icon-border-color);
2019-05-15 14:54:29 +02:00
stroke-width: 1;
}
2019-05-15 14:54:29 +02:00
.red-ui-flow-node-button {
2015-04-09 15:46:29 +02:00
fill: inherit;
2020-06-22 15:37:52 +02:00
&.red-ui-flow-node-button-disabled {
opacity: 0.4;
.red-ui-flow-node-button-button {
cursor: default;
}
}
}
.red-ui-flow-node-button-button {
cursor: pointer;
2015-04-09 15:46:29 +02:00
}
2019-05-15 14:54:29 +02:00
.red-ui-flow-node-button-background {
2022-06-18 22:05:25 +02:00
fill: var(--red-ui-node-background-placeholder);
2019-05-15 14:54:29 +02:00
}
2019-05-08 14:26:48 +02:00
2019-05-15 14:54:29 +02:00
.red-ui-flow-port {
2022-06-18 22:05:25 +02:00
stroke: var(--red-ui-node-border);
2015-07-12 00:43:45 +02:00
stroke-width: 1;
2022-06-18 22:05:25 +02:00
fill: var(--red-ui-node-port-background);
2015-04-09 15:46:29 +02:00
cursor: crosshair;
}
2019-05-15 14:54:29 +02:00
.red-ui-flow-node-error {
2022-06-18 22:05:25 +02:00
fill: var(--red-ui-node-status-error-background);
stroke: var(--red-ui-node-status-error-border);
2019-05-08 20:05:30 +02:00
stroke-width:1px;
cursor: default;
stroke-linejoin: round;
stroke-linecap: round;
}
2019-05-15 14:54:29 +02:00
.red-ui-flow-node-changed {
2022-06-18 22:05:25 +02:00
fill: var(--red-ui-node-status-changed-background);
stroke: var(--red-ui-node-status-changed-border);
2019-05-08 20:05:30 +02:00
cursor: default;
stroke-width:1px;
stroke-linejoin: round;
stroke-linecap: round;
2015-04-09 15:46:29 +02:00
}
g.red-ui-flow-node-selected {
.red-ui-workspace-select-mode & {
opacity: 1;
}
.red-ui-flow-node,.red-ui-flow-subflow-port {
stroke-width: 2;
2022-06-18 22:05:25 +02:00
stroke: var(--red-ui-node-selected-color) !important;
}
2015-04-09 15:46:29 +02:00
}
2019-05-15 14:54:29 +02:00
.red-ui-flow-node-highlighted {
2022-06-18 22:05:25 +02:00
border-color: var(--red-ui-node-selected-color) !important;
2016-09-30 00:46:29 +02:00
border-style: dashed !important;
2022-06-18 22:05:25 +02:00
stroke: var(--red-ui-node-selected-color);
stroke-width: 3;
stroke-dasharray: 8, 4;
2015-04-09 15:46:29 +02:00
}
2019-05-15 14:54:29 +02:00
.red-ui-flow-subflow .red-ui-flow-node {
}
2019-05-15 14:54:29 +02:00
.red-ui-workspace-disabled {
.red-ui-flow-node {
stroke-dasharray: 8, 3;
fill-opacity: 0.5;
}
2019-05-15 14:54:29 +02:00
.red-ui-flow-link-line {
stroke-dasharray: 10,8 !important;
stroke-width: 2 !important;
2022-06-18 22:05:25 +02:00
stroke: var(--red-ui-link-disabled-color);
}
.red-ui-flow-port {
fill-opacity: 1;
stroke-dasharray: none;
}
.red-ui-flow-group, .red-ui-flow-group-body {
stroke-dasharray: 8, 3;
}
}
.red-ui-flow-node-disabled {
&.red-ui-flow-node, .red-ui-flow-node {
stroke-dasharray: 8, 3;
fill-opacity: 0.5;
}
&.red-ui-flow-link-line {
stroke-dasharray: 10,8 !important;
stroke-width: 2 !important;
2022-06-18 22:05:25 +02:00
stroke: var(--red-ui-link-disabled-color);
}
.red-ui-flow-port {
fill-opacity: 1;
stroke-dasharray: none;
}
}
@each $current-color in red green yellow blue grey gray {
.red-ui-flow-node-status-dot-#{""+$current-color} {
2022-06-18 22:05:25 +02:00
fill: var(--red-ui-node-status-colors-#{"" + $current-color});
stroke: var(--red-ui-node-status-colors-#{"" + $current-color});
2019-05-15 14:54:29 +02:00
}
.red-ui-flow-node-status-ring-#{""+$current-color} {
2022-06-18 22:05:25 +02:00
fill: var(--red-ui-view-background);
stroke: var(--red-ui-node-status-colors-#{"" + $current-color});
2019-05-15 14:54:29 +02:00
}
}
2019-05-15 14:54:29 +02:00
.red-ui-flow-node-status-label {
@include disable-selection;
stroke-width: 0;
2022-06-18 22:05:25 +02:00
fill: var(--red-ui-secondary-text-color);
font-size:9pt;
text-anchor:start;
}
2019-05-15 14:54:29 +02:00
.red-ui-flow-port-hovered {
2022-06-18 22:05:25 +02:00
stroke: var(--red-ui-port-selected-color);
fill: var(--red-ui-port-selected-color);
}
2019-05-15 14:54:29 +02:00
.red-ui-flow-subflow-port {
2022-06-18 22:05:25 +02:00
fill: var(--red-ui-node-background-placeholder);
stroke: var(--red-ui-node-border);
2015-04-09 15:46:29 +02:00
}
2019-05-15 14:54:29 +02:00
.red-ui-flow-drag-line {
2022-06-18 22:05:25 +02:00
stroke: var(--red-ui-node-selected-color) !important;
stroke-width: 3;
2015-04-09 15:46:29 +02:00
fill: none;
pointer-events: none;
}
2019-05-15 14:54:29 +02:00
.red-ui-flow-link-line {
2022-06-18 22:05:25 +02:00
stroke: var(--red-ui-link-color);
2015-07-12 00:43:45 +02:00
stroke-width: 3;
2015-04-09 15:46:29 +02:00
fill: none;
pointer-events: none;
}
2019-05-15 14:54:29 +02:00
.red-ui-flow-link-link {
stroke-width: 2;
2022-06-18 22:05:25 +02:00
stroke: var(--red-ui-link-link-color);
fill: none;
stroke-dasharray: 25,4;
}
.red-ui-flow-link-off-flow {
stroke-width: 2;
}
2019-05-15 14:54:29 +02:00
.red-ui-flow-link-port {
2022-06-18 22:05:25 +02:00
fill: var(--red-ui-node-link-port-background);
stroke: var(--red-ui-link-link-color);
stroke-width: 1;
}
2019-05-15 14:54:29 +02:00
.red-ui-flow-link-group-active .red-ui-flow-link-port {
2022-06-18 22:05:25 +02:00
stroke: var(--red-ui-link-link-active-color);
}
2019-05-15 14:54:29 +02:00
.red-ui-flow-link-group:hover {
cursor: pointer;
}
2015-04-09 15:46:29 +02:00
2019-05-15 14:54:29 +02:00
.red-ui-flow-link-outline {
2022-06-18 22:05:25 +02:00
stroke: var(--red-ui-view-background);
stroke-opacity: 0.4;
2018-06-25 14:18:00 +02:00
stroke-width: 5;
2015-04-09 15:46:29 +02:00
cursor: crosshair;
fill: none;
pointer-events: none;
}
2019-05-15 14:54:29 +02:00
.red-ui-flow-link-background {
2022-06-18 22:05:25 +02:00
stroke: var(--red-ui-view-background);
2015-04-09 15:46:29 +02:00
opacity: 0;
2015-07-12 00:43:45 +02:00
stroke-width: 20;
2015-04-09 15:46:29 +02:00
cursor: crosshair;
fill: none;
}
2019-05-15 14:54:29 +02:00
.red-ui-flow-link-splice > .red-ui-flow-link-line {
stroke-dasharray: 15,8;
}
2015-04-09 15:46:29 +02:00
2019-05-15 14:54:29 +02:00
g.red-ui-flow-link-selected path.red-ui-flow-link-line {
2022-06-18 22:05:25 +02:00
stroke: var(--red-ui-node-selected-color);
2015-04-09 15:46:29 +02:00
}
2019-05-15 14:54:29 +02:00
g.red-ui-flow-link-unknown path.red-ui-flow-link-line {
2022-06-18 22:05:25 +02:00
stroke: var(--red-ui-link-unknown-color);
2015-04-09 15:46:29 +02:00
stroke-width: 2;
stroke-dasharray: 10, 4;
}
2017-01-26 16:38:25 +01:00
// @keyframes *must* be on multiple lines so build-custom-theme can filter them out
@keyframes red-ui-flow-port-tooltip-fadeIn {
from { opacity:0; } to { opacity:1; }
}
2017-01-26 16:38:25 +01:00
2019-05-15 14:54:29 +02:00
.red-ui-flow-port-tooltip {
2017-01-26 16:38:25 +01:00
opacity:0;
2019-05-15 14:54:29 +02:00
animation: 0.1s ease-in 0s 1 normal forwards red-ui-flow-port-tooltip-fadeIn;
2017-01-26 16:38:25 +01:00
pointer-events: none;
2017-01-27 17:33:11 +01:00
2019-05-15 15:17:44 +02:00
path:first-child {
2022-06-18 22:05:25 +02:00
fill: var(--red-ui-popover-background);
stroke: var(--red-ui-popover-background);
2017-01-27 17:33:11 +01:00
stroke-width: 1;
}
}
2019-05-15 14:54:29 +02:00
.red-ui-flow-port-tooltip-label {
2017-01-27 17:33:11 +01:00
stroke-width: 0;
2022-06-18 22:05:25 +02:00
fill: var(--red-ui-popover-color);
font-family: var(--red-ui-primary-font);
2017-01-27 17:33:11 +01:00
font-size: 12px;
pointer-events: none;
-webkit-touch-callout: none;
white-space: pre;
2017-01-27 17:33:11 +01:00
@include disable-selection;
2017-01-26 16:38:25 +01:00
}
.red-ui-flow-junction-dragging {
.red-ui-flow-junction-background {
background: red !important
}
}
.red-ui-flow-junction:not(.red-ui-flow-junction-dragging):hover {
.red-ui-flow-junction-background {
transform: scale(1.4);
stroke-width: 0.6;
}
.red-ui-flow-junction-port {
opacity: 1;
pointer-events: auto;
}
.red-ui-flow-junction-port-input {
transform: translate(-10px,0)
}
.red-ui-flow-junction-port-output {
transform: translate(10px,0)
}
}
.red-ui-flow-junction-port {
2022-06-18 22:05:25 +02:00
stroke: var(--red-ui-node-border);
stroke-width: 1;
2022-06-18 22:05:25 +02:00
fill: var(--red-ui-node-port-background);
cursor: crosshair;
transition: transform 0.1s;
opacity: 0;
pointer-events: none;
}
2022-02-28 13:53:11 +01:00
.red-ui-flow-junction-background {
2022-06-18 22:05:25 +02:00
stroke: var(--red-ui-node-border);
2022-02-28 13:53:11 +01:00
stroke-width: 1;
2022-06-18 22:05:25 +02:00
fill: var(--red-ui-node-port-background);
2022-02-28 13:53:11 +01:00
cursor: crosshair;
transform: scale(1);
transition: transform 0.1s;
&:hover {
}
2022-02-28 13:53:11 +01:00
}
.red-ui-flow-junction-hovered {
2022-06-18 22:05:25 +02:00
stroke: var(--red-ui-port-selected-color);
fill: var(--red-ui-port-selected-color);
2022-02-28 13:53:11 +01:00
}
.red-ui-flow-junction.selected .red-ui-flow-junction-background {
2022-06-18 22:05:25 +02:00
stroke: var(--red-ui-port-selected-color);
// fill: var(--red-ui-port-selected-color);
2022-02-28 13:53:11 +01:00
}