.App { font-family: sans-serif; text-align: center; height: calc(100vh - 100px); width: 90%; } .visual-editor { display: flex; flex-direction: column; height: 100%; } .canvas-container { flex: auto; } .diagram-container { width: 100%; height: 100%; background: #e8eff2; background-image: linear-gradient(to right, #fff9 1px, transparent 1px), linear-gradient(to bottom, #fff9 1px, transparent 1px); background-size: 20px 20px; background-position: -1px -1px; background-attachment: fixed; z-index: 2; } .start-point-container { top: -11px; left: -11px; width: 22px; height: 22px; transform: scale(140%); border: 1px solid #fff; position: absolute; border-radius: 50%; background: #a6b846; } .start-point { margin: 5px 7px; width: 0; height: 0; border-top: 5px solid transparent; border-bottom: 5px solid transparent; border-left: 9px solid #fff; } .node { border-radius: 18px; outline: 6px solid transparent; transition: transform 0.2s cubic-bezier(0.075, 0.82, 0.165, 1); } .node:not(:has(.selected)) { outline-color: transparent; z-index: -1; } .node:has(.selected) { outline: 6px solid #1dc7fc; z-index: 0; cursor: grab; transform: scale(1.02); } .node:has(.selected):active { transform: scale(1.04); z-index: 0; cursor: grabbing; opacity: 0.9; } .custom-node { box-sizing: content-box; width: 350px; min-height: 130px; background-color: #fff; padding: 0px; border-radius: 17.5px; } .custom-node-header { flex-grow: 1; padding: 8px 24px; margin-bottom: 8px; } .custom-node-subheader { flex-grow: 1; padding: 8px; background: #eee; } .custom-node-content { flex-grow: 1; padding: 0 8px 8px 8px; } .custom-node-port { flex-grow: 1; position: relative; text-align: center; position: absolute; top: 0; right: 0px; left: 0px; height: 100%; } .custom-node-port-in { text-align: left; } .custom-node-port-out { text-align: right; } .node-block-field-container { display: flex; flex-direction: column; justify-content: flex-start; align-items: center; gap: 15px; padding: 20px 24px 24px; position: relative; } .node-title { font-size: 20px; display: flex; flex-direction: row; justify-items: flex-start; align-items: center; gap: 8px; border-radius: 10px 10px 0 0px; width: auto; margin-top: -1px; margin-left: -1px; padding: 12px 20px; color: #ffffff; font-weight: bolder; } .node-block-field { background-color: #f9fbfc; border-radius: 8px; border: 1px solid #d1d1d1; width: 100%; font-weight: 400; padding: 8px 11px; font-size: 16px; display: flex; flex-direction: row; justify-content: flex-start; align-items: flex-start; gap: 8px; overflow-x: hidden; } .node-block-field svg { margin-top: 3px; } .node-block-chips { display: flex; flex-direction: row; gap: 5px; overflow-x: hidden; } .node-white-field { background-color: #fff; } .circle-porter-out-off { filter: contrast(0.3) brightness(1.7) grayscale(1); } .circle-port { margin-bottom: 3px; width: 14px; height: 14px; border-radius: 50%; background: #ddd; cursor: pointer; border: 2px solid #0001; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24); } :not(.circle-porter-out-off) > .circle-port:hover { background: #bbb; } .circle-porter { top: 50%; margin-top: 5px; } .circle-out-porters { position: absolute; right: -12px; top: 50%; transform: translateY(-50%); } .circle-porter-in { position: absolute; top: 50%; transform: translateY(-50%); left: -12px; } .circle-porter-out { right: -30px; }