/** * color definitions */ .djs-container { --color-grey-225-10-15: hsl(225, 10%, 15%); --color-grey-225-10-35: hsl(225, 10%, 35%); --color-grey-225-10-55: hsl(225, 10%, 55%); --color-grey-225-10-75: hsl(225, 10%, 75%); --color-grey-225-10-80: hsl(225, 10%, 80%); --color-grey-225-10-85: hsl(225, 10%, 85%); --color-grey-225-10-90: hsl(225, 10%, 90%); --color-grey-225-10-95: hsl(225, 10%, 95%); --color-grey-225-10-97: hsl(225, 10%, 97%); --color-blue-205-100-45: hsl(205, 100%, 45%); --color-blue-205-100-45-opacity-30: hsla(205, 100%, 45%, 30%); --color-blue-205-100-50: hsl(205, 100%, 50%); --color-blue-205-100-50-opacity-15: hsla(205, 100%, 50%, 15%); --color-blue-205-100-70: hsl(205, 100%, 75%); --color-blue-205-100-95: hsl(205, 100%, 95%); --color-green-150-86-44: hsl(150, 86%, 44%); --color-red-360-100-40: hsl(360, 100%, 40%); --color-red-360-100-45: hsl(360, 100%, 45%); --color-red-360-100-92: hsl(360, 100%, 92%); --color-red-360-100-97: hsl(360, 100%, 97%); --color-white: hsl(0, 0%, 100%); --color-black: hsl(0, 0%, 0%); --color-black-opacity-10: hsla(0, 0%, 0%, 10%); --canvas-fill-color: var(--color-white); --bendpoint-fill-color: var(--color-blue-205-100-45); --bendpoint-stroke-color: var(--canvas-fill-color); --context-pad-entry-background-color: var(--color-white); --context-pad-entry-hover-background-color: var(--color-grey-225-10-95); --element-dragger-color: var(--color-blue-205-100-50); --element-hover-outline-fill-color: var(--color-blue-205-100-45); --element-selected-outline-stroke-color: var(--color-blue-205-100-50); --element-selected-outline-secondary-stroke-color: var(--color-blue-205-100-70); --lasso-fill-color: var(--color-blue-205-100-50-opacity-15); --lasso-stroke-color: var(--element-selected-outline-stroke-color); --palette-entry-color: var(--color-grey-225-10-15); --palette-entry-hover-color: var(--color-blue-205-100-45); --palette-entry-selected-color: var(--color-blue-205-100-50); --palette-separator-color: var(--color-grey-225-10-75); --palette-toggle-hover-background-color: var(--color-grey-225-10-55); --palette-background-color: var(--color-grey-225-10-97); --palette-border-color: var(--color-grey-225-10-75); --popup-body-background-color: var(--color-white); --popup-header-entry-selected-color: var(--color-blue-205-100-50); --popup-header-entry-selected-background-color: var(--color-black-opacity-10); --popup-header-separator-color: var(--color-grey-225-10-75); --popup-background-color: var(--color-grey-225-10-97); --popup-border-color: var(--color-grey-225-10-75); --resizer-fill-color: var(--color-blue-205-100-45); --resizer-stroke-color: var(--canvas-fill-color); --search-container-background-color: var(--color-grey-225-10-97); --search-container-border-color: var(--color-blue-205-100-50); --search-container-box-shadow-color: var(--color-blue-205-100-95); --search-container-box-shadow-inset-color: var(--color-grey-225-10-80); --search-input-border-color: var(--color-grey-225-10-75); --search-result-border-color: var(--color-grey-225-10-75); --search-result-highlight-color: var(--color-black); --search-result-selected-color: var(--color-blue-205-100-45-opacity-30); --shape-attach-allowed-stroke-color: var(--color-blue-205-100-50); --shape-connect-allowed-fill-color: var(--color-grey-225-10-97); --shape-drop-allowed-fill-color: var(--color-grey-225-10-97); --shape-drop-not-allowed-fill-color: var(--color-red-360-100-97); --shape-resize-preview-stroke-color: var(--color-blue-205-100-50); --snap-line-stroke-color: var(--color-blue-205-100-45-opacity-30); --space-tool-crosshair-stroke-color: var(--color-black); --tooltip-error-background-color: var(--color-red-360-100-97); --tooltip-error-border-color: var(--color-red-360-100-45); --tooltip-error-color: var(--color-red-360-100-45); } /** * outline styles */ .djs-outline, .djs-selection-outline { fill: none; shape-rendering: geometricPrecision; stroke-width: 2px; } .djs-outline { visibility: hidden; } .djs-selection-outline { stroke: var(--element-selected-outline-stroke-color); } .djs-element.selected .djs-outline { visibility: visible; stroke: var(--element-selected-outline-stroke-color); } .djs-multi-select .djs-element.selected .djs-outline { stroke: var(--element-selected-outline-secondary-stroke-color); } .djs-shape.connect-ok .djs-visual > :nth-child(1) { fill: var(--shape-connect-allowed-fill-color) !important; } .djs-shape.connect-not-ok .djs-visual > :nth-child(1), .djs-shape.drop-not-ok .djs-visual > :nth-child(1) { fill: var(--shape-drop-not-allowed-fill-color) !important; } .djs-shape.new-parent .djs-visual > :nth-child(1) { fill: var(--shape-drop-allowed-fill-color) !important; } svg.drop-not-ok { background: var(--shape-drop-not-allowed-fill-color) !important; } svg.new-parent { background: var(--shape-drop-allowed-fill-color) !important; } /* Override move cursor during drop and connect */ .drop-not-ok, .connect-not-ok, .drop-not-ok *, .connect-not-ok * { cursor: not-allowed !important; } .drop-ok, .connect-ok, .drop-ok *, .connect-ok * { cursor: default !important; } .djs-element.attach-ok .djs-visual > :nth-child(1) { stroke-width: 5px !important; stroke: var(--shape-attach-allowed-stroke-color) !important; } .djs-frame.connect-not-ok .djs-visual > :nth-child(1), .djs-frame.drop-not-ok .djs-visual > :nth-child(1) { stroke-width: 3px !important; stroke: var(--shape-drop-not-allowed-fill-color) !important; fill: none !important; } /** * Selection box style * */ .djs-lasso-overlay { fill: var(--lasso-fill-color); stroke: var(--lasso-stroke-color); stroke-width: 2px; shape-rendering: geometricPrecision; pointer-events: none; } /** * Resize styles */ .djs-resize-overlay { fill: none; stroke-dasharray: 5 1 3 1; stroke: var(--shape-resize-preview-stroke-color); pointer-events: none; } .djs-resizer-hit { fill: none; pointer-events: all; } .djs-resizer-visual { fill: var(--resizer-fill-color); stroke-width: 1px; stroke: var(--resizer-stroke-color); shape-rendering: geometricPrecision; } .djs-resizer:hover .djs-resizer-visual { stroke: var(--resizer-stroke-color); stroke-opacity: 1; } .djs-cursor-resize-ns, .djs-resizer-n, .djs-resizer-s { cursor: ns-resize; } .djs-cursor-resize-ew, .djs-resizer-e, .djs-resizer-w { cursor: ew-resize; } .djs-cursor-resize-nwse, .djs-resizer-nw, .djs-resizer-se { cursor: nwse-resize; } .djs-cursor-resize-nesw, .djs-resizer-ne, .djs-resizer-sw { cursor: nesw-resize; } .djs-shape.djs-resizing > .djs-outline { visibility: hidden !important; } .djs-shape.djs-resizing > .djs-resizer { visibility: hidden; } .djs-dragger > .djs-resizer { visibility: hidden; } /** * drag styles */ .djs-dragger * { fill: none !important; stroke: var(--element-dragger-color) !important; } .djs-dragger tspan, .djs-dragger text { fill: var(--element-dragger-color) !important; stroke: none !important; } marker.djs-dragger circle, marker.djs-dragger path, marker.djs-dragger polygon, marker.djs-dragger polyline, marker.djs-dragger rect { fill: var(--element-dragger-color) !important; stroke: none !important; } marker.djs-dragger text, marker.djs-dragger tspan { fill: none !important; stroke: var(--element-dragger-color) !important; } .djs-dragging { opacity: 0.3; } .djs-dragging, .djs-dragging > * { pointer-events: none !important; } .djs-dragging .djs-context-pad, .djs-dragging .djs-outline { display: none !important; } /** * no pointer events for visual */ .djs-visual, .djs-outline { pointer-events: none; } .djs-element.attach-ok .djs-hit { stroke-width: 60px !important; } /** * all pointer events for hit shape */ .djs-element > .djs-hit-all, .djs-element > .djs-hit-no-move { pointer-events: all; } .djs-element > .djs-hit-stroke, .djs-element > .djs-hit-click-stroke { pointer-events: stroke; } /** * shape / connection basic styles */ .djs-connection .djs-visual { stroke-width: 2px; fill: none; } .djs-cursor-grab { cursor: -webkit-grab; cursor: -moz-grab; cursor: grab; } .djs-cursor-grabbing { cursor: -webkit-grabbing; cursor: -moz-grabbing; cursor: grabbing; } .djs-cursor-crosshair { cursor: crosshair; } .djs-cursor-move { cursor: move; } .djs-cursor-resize-ns { cursor: ns-resize; } .djs-cursor-resize-ew { cursor: ew-resize; } /** * snapping */ .djs-snap-line { stroke: var(--snap-line-stroke-color); stroke-linecap: round; stroke-width: 2px; pointer-events: none; } /** * snapping */ .djs-crosshair { stroke: var(--space-tool-crosshair-stroke-color); stroke-linecap: round; stroke-width: 1px; pointer-events: none; shape-rendering: geometricPrecision; stroke-dasharray: 5, 5; } /** * palette */ .djs-palette { position: absolute; left: 20px; top: 20px; box-sizing: border-box; width: 48px; } .djs-palette .separator { margin: 5px; padding-top: 5px; border: none; border-bottom: solid 1px var(--palette-separator-color); clear: both; } .djs-palette .entry:before { vertical-align: initial; } .djs-palette .djs-palette-toggle { cursor: pointer; } .djs-palette .entry, .djs-palette .djs-palette-toggle { color: var(--palette-entry-color); font-size: 30px; text-align: center; } .djs-palette .entry { float: left; } .djs-palette .entry img { max-width: 100%; } .djs-palette .djs-palette-entries:after { content: ''; display: table; clear: both; } .djs-palette .djs-palette-toggle:hover { background: var(--palette-toggle-hover-background-color); } .djs-palette .entry:hover { color: var(--palette-entry-hover-color); } .djs-palette .highlighted-entry { color: var(--palette-entry-selected-color) !important; } .djs-palette .entry, .djs-palette .djs-palette-toggle { width: 46px; height: 46px; line-height: 46px; cursor: default; } /** * Palette open / two-column layout is controlled via * classes on the palette. Events to hook into palette * changed life-cycle are available in addition. */ .djs-palette.two-column.open { width: 94px; } .djs-palette:not(.open) .djs-palette-entries { display: none; } .djs-palette:not(.open) { overflow: hidden; } .djs-palette.open .djs-palette-toggle { display: none; } /** * context-pad */ .djs-overlay-context-pad { width: 72px; z-index: 100; } .djs-context-pad { position: absolute; display: none; pointer-events: none; line-height: 1; } .djs-context-pad .entry { width: 22px; height: 22px; text-align: center; display: inline-block; font-size: 22px; margin: 0 2px 2px 0; border-radius: 3px; cursor: default; background-color: var(--context-pad-entry-background-color); box-shadow: 0 0 2px 1px var(--context-pad-entry-background-color); pointer-events: all; vertical-align: middle; } .djs-context-pad .entry:hover { background: var(--context-pad-entry-hover-background-color); } .djs-context-pad.open { display: block; } /** * popup styles */ .djs-popup .entry { line-height: 20px; white-space: nowrap; cursor: default; } /* larger font for prefixed icons */ .djs-popup .entry:before { vertical-align: middle; font-size: 20px; } .djs-popup .entry > span { vertical-align: middle; font-size: 14px; } .djs-popup .entry:hover, .djs-popup .entry.active:hover { background: var(--popup-header-entry-selected-background-color); } .djs-popup .entry.disabled { background: inherit; } .djs-popup .djs-popup-header .entry { display: inline-block; padding: 2px 3px 2px 3px; border: solid 1px transparent; border-radius: 3px; } .djs-popup .djs-popup-header .entry.active { color: var(--popup-header-entry-selected-color); border: solid 1px var(--popup-header-entry-selected-color); background-color: var(--popup-header-entry-selected-background-color); } .djs-popup-body .entry { padding: 4px 5px; } .djs-popup-body .entry > span { margin-left: 5px; } .djs-popup-body { background-color: var(--popup-body-background-color); } .djs-popup-header { border-bottom: 1px solid var(--popup-header-separator-color); } .djs-popup-header .entry { margin: 1px; margin-left: 3px; } .djs-popup-header .entry:last-child { margin-right: 3px; } /** * popup / palette styles */ .djs-palette { background: var(--palette-background-color); border: solid 1px var(--palette-border-color); border-radius: 2px; } .djs-popup { background: var(--popup-background-color); border: solid 1px var(--popup-border-color); border-radius: 2px; } /** * touch */ .djs-shape, .djs-connection { touch-action: none; } .djs-segment-dragger, .djs-bendpoint { display: none; } /** * bendpoints */ .djs-segment-dragger .djs-visual { display: none; fill: var(--bendpoint-fill-color); stroke: var(--bendpoint-stroke-color); stroke-width: 1px; stroke-opacity: 1; } .djs-segment-dragger:hover .djs-visual { display: block; } .djs-bendpoint .djs-visual { fill: var(--bendpoint-fill-color); stroke: var(--bendpoint-stroke-color); stroke-width: 1px; } .djs-segment-dragger:hover, .djs-bendpoints.hover .djs-segment-dragger, .djs-bendpoints.selected .djs-segment-dragger, .djs-bendpoint:hover, .djs-bendpoints.hover .djs-bendpoint, .djs-bendpoints.selected .djs-bendpoint { display: block; } .djs-drag-active .djs-bendpoints * { display: none; } .djs-bendpoints:not(.hover) .floating { display: none; } .djs-segment-dragger:hover .djs-visual, .djs-segment-dragger.djs-dragging .djs-visual, .djs-bendpoint:hover .djs-visual, .djs-bendpoint.floating .djs-visual { fill: var(--bendpoint-fill-color); stroke: var(--bendpoint-stroke-color); stroke-opacity: 1; } .djs-bendpoint.floating .djs-hit { pointer-events: none; } .djs-segment-dragger .djs-hit, .djs-bendpoint .djs-hit { fill: none; pointer-events: all; } .djs-segment-dragger.horizontal .djs-hit { cursor: ns-resize; } .djs-segment-dragger.vertical .djs-hit { cursor: ew-resize; } .djs-segment-dragger.djs-dragging .djs-hit { pointer-events: none; } .djs-updating, .djs-updating > * { pointer-events: none !important; } .djs-updating .djs-context-pad, .djs-updating .djs-outline, .djs-updating .djs-bendpoint, .djs-multi-select .djs-bendpoint, .djs-multi-select .djs-segment-dragger, .connect-ok .djs-bendpoint, .connect-not-ok .djs-bendpoint, .drop-ok .djs-bendpoint, .drop-not-ok .djs-bendpoint { display: none !important; } .djs-segment-dragger.djs-dragging, .djs-bendpoint.djs-dragging { display: block; opacity: 1.0; } /** * tooltips */ .djs-tooltip-error { width: 160px; padding: 6px; background: var(--tooltip-error-background-color); border: solid 1px var(--tooltip-error-border-color); border-radius: 2px; color: var(--tooltip-error-color); font-size: 12px; line-height: 16px; opacity: 0.75; } .djs-tooltip-error:hover { opacity: 1; } /** * search pad */ .djs-search-container { position: absolute; top: 20px; left: 0; right: 0; margin-left: auto; margin-right: auto; width: 25%; min-width: 300px; max-width: 400px; z-index: 10; font-size: 1.05em; opacity: 0.9; background: var(--search-container-background-color); border: solid 1px var(--search-container-border-color); border-radius: 2px; box-shadow: 0 0 0 2px var(--search-container-box-shadow-color), 0 0 0 1px var(--search-container-box-shadow-inset-color) inset; } .djs-search-container:not(.open) { display: none; } .djs-search-input input { font-size: 1.05em; width: 100%; padding: 6px 10px; border: 1px solid var(--search-input-border-color); box-sizing: border-box; } .djs-search-input input:focus { outline: none; border-color: var(--search-input-border-color); } .djs-search-results { position: relative; overflow-y: auto; max-height: 200px; } .djs-search-results:hover { cursor: pointer; } .djs-search-result { width: 100%; padding: 6px 10px; background: white; border-bottom: solid 1px var(--search-result-border-color); border-radius: 1px; } .djs-search-highlight { color: var(--search-result-highlight-color); } .djs-search-result-primary { margin: 0 0 10px; } .djs-search-result-secondary { font-family: monospace; margin: 0; } .djs-search-result:hover { background: var(--search-result-selected-color); } .djs-search-result-selected { background: var(--search-result-selected-color); } .djs-search-result-selected:hover { background: var(--search-result-selected-color); } .djs-search-overlay { background: var(--search-result-selected-color); } /** * hidden styles */ .djs-element-hidden, .djs-element-hidden .djs-hit, .djs-element-hidden .djs-outline, .djs-label-hidden .djs-label { display: none !important; } .djs-element .djs-hit-stroke, .djs-element .djs-hit-click-stroke, .djs-element .djs-hit-all { cursor: move; }