.react-flow { --bg-color: rgb(17, 17, 17); --text-color: rgb(243, 244, 246); --node-border-radius: 10px; --node-box-shadow: 10px 0 15px rgba(42, 138, 246, 0.3), -10px 0 15px rgba(233, 42, 103, 0.3); background-color: var(--bg-color); color: var(--text-color); width: 100%; height: 100%; } .flow-container { width: 100vw; height: 100vh; padding:0x; margin:0px; } .react-flow__node-turbo { border-radius: var(--node-border-radius); display: flex; height: 70px; min-width: 150px; font-family: 'Fira Mono', Monospace; font-weight: 500; letter-spacing: -0.2px; box-shadow: var(--node-box-shadow); } .react-flow__node-turbo .wrapper { overflow: hidden; display: flex; padding: 2px; position: relative; border-radius: var(--node-border-radius); flex-grow: 1; } .gradient:before { content: ''; position: absolute; padding-bottom: calc(100% * 1.41421356237); width: calc(100% * 1.41421356237); background: conic-gradient( from -160deg at 50% 50%, #e92a67 0deg, #a853ba 120deg, #2a8af6 240deg, #e92a67 360deg ); left: 50%; top: 50%; transform: translate(-50%, -50%); border-radius: 100%; } .react-flow__node-turbo.selected .wrapper.gradient:before { content: ''; background: conic-gradient( from -160deg at 50% 50%, #e92a67 0deg, #a853ba 120deg, #2a8af6 240deg, rgba(42, 138, 246, 0) 360deg ); animation: spinner 4s linear infinite; transform: translate(-50%, -50%) rotate(0deg); z-index: -1; } @keyframes spinner { 100% { transform: translate(-50%, -50%) rotate(-360deg); } } .react-flow__node-turbo .inner { background: var(--bg-color); padding: 16px 20px; border-radius: var(--node-border-radius); display: flex; flex-direction: column; justify-content: center; flex-grow: 1; position: relative; } .react-flow__node-turbo .icon { margin-right: 8px; } .react-flow__node-turbo .body { display: flex; } .react-flow__node-turbo .title { font-size: 16px; margin-bottom: 2px; line-height: 1; } .react-flow__node-turbo .subline { font-size: 12px; color: #777; } .react-flow__node-turbo .cloud { border-radius: 100%; width: 30px; height: 30px; right: 0; position: absolute; top: 0; transform: translate(50%, -50%); display: flex; transform-origin: center center; padding: 2px; overflow: hidden; box-shadow: var(--node-box-shadow); z-index: 1; } .react-flow__node-turbo .cloud div { background-color: var(--bg-color); flex-grow: 1; border-radius: 100%; display: flex; justify-content: center; align-items: center; position: relative; } .react-flow__handle { opacity: 0; } .react-flow__handle.source { right: -10px; } .react-flow__handle.target { left: -10px; } .react-flow__node:focus { outline: none; } .react-flow__edge .react-flow__edge-path { stroke: url(#edge-gradient); stroke-width: 2; stroke-opacity: 0.75; } .react-flow__controls button { background-color: var(--bg-color); color: var(--text-color); border: 1px solid #95679e; border-bottom: none; } .react-flow__controls button:hover { background-color: rgb(37, 37, 37); } .react-flow__controls button:first-child { border-radius: 5px 5px 0 0; } .react-flow__controls button:last-child { border-bottom: 1px solid #95679e; border-radius: 0 0 5px 5px; } .react-flow__controls button path { fill: var(--text-color); } .react-flow__attribution { background: rgba(200, 200, 200, 0.2); } .react-flow__attribution a { color: #95679e; }