velai-workshop / velai /static /css /vue-flow-theme-default.css
kratadata's picture
Upload folder via script
0f8b3a0 verified
:root {
--vf-node-bg: #ffffff;
--vf-node-text: #222222;
--vf-connection-path: #b1b1b7;
--vf-handle: #555555;
/* custom node + UI tokens */
--vf-node-border: rgba(0, 0, 0, 0.2);
--vf-node-border-selected: #3b82f6;
--vf-node-shadow: 0 1px 2px rgba(15, 23, 42, 0.18);
--vf-node-shadow-selected: 0 0 0 1px rgba(59, 130, 246, 0.7),
0 4px 10px rgba(37, 99, 235, 0.25);
--vf-input-bg: #ffffff;
--vf-input-text: #111827;
--vf-input-border: rgba(148, 163, 184, 0.9);
--vf-input-border-focus: #3b82f6;
--vf-input-shadow-focus: 0 0 0 1px rgba(59, 130, 246, 0.35);
--vf-placeholder-text: #9ca3af;
--vf-menu-bg: #ffffff;
--vf-menu-border: rgba(15, 23, 42, 0.15);
--vf-menu-shadow: 0 4px 10px rgba(15, 23, 42, 0.15);
--vf-image-bg: #f9fafb;
--vf-accent: #1d4ed8;
--vf-accent-soft-bg: #e5f0ff;
--vf-accent-soft-border: #bfdbfe;
--vf-error-bg: #fecaca;
--vf-error-text: #b91c1c;
--vf-danger-bg: #eb311c;
--vf-danger-text: #ffffff;
}
/* canvas background for flows using this theme */
.basic-flow {
background: #f3f4f6;
color: var(--vf-node-text);
}
/* edges and labels */
.vue-flow__edge.updating .vue-flow__edge-path {
stroke: #777777;
}
.vue-flow__edge-text {
font-size: 10px;
}
.vue-flow__edge-textbg {
fill: #ffffff;
}
.vue-flow__connection-path,
.vue-flow__edge-path {
stroke: var(--vf-connection-path);
}
/* generic node card for all nodes inside .basic-flow */
.basic-flow .vue-flow__node {
cursor: grab;
background-color: var(--vf-node-bg);
color: var(--vf-node-text);
border-radius: 8px;
border: 1px solid var(--vf-node-border);
box-shadow: var(--vf-node-shadow);
overflow: visible;
box-sizing: border-box;
}
.basic-flow .vue-flow__node.selectable:focus,
.basic-flow .vue-flow__node.selectable:focus-visible {
outline: none;
}
/* single selection border, shared for all node types */
.basic-flow .vue-flow__node.selected {
border-color: var(--vf-node-border-selected);
box-shadow: var(--vf-node-shadow-selected);
}
.basic-flow .vue-flow__node:has(.vf-node-menu-open) {
z-index: 1000;
overflow: visible;
}
/* optional accents for built in node types */
.basic-flow .vue-flow__node-input {
border-color: #0041d0;
}
.basic-flow .vue-flow__node-default {
border-color: #1a192b;
}
.basic-flow .vue-flow__node-output {
border-color: #ff0072;
}
.basic-flow .vue-flow__node.vf-comment-node {
background-color: #dbeafe;
border-color: #93c5fd;
color: #1e3a5f;
}
.basic-flow .vue-flow__node.vf-comment-node.selected {
border-color: #3b82f6;
box-shadow: 0 0 0 1px rgba(59, 130, 246, 0.45);
}
.basic-flow.dark .vue-flow__node.vf-comment-node {
background-color: #1e3a5f;
border-color: #3b82f6;
color: #dbeafe;
}
.basic-flow.dark .vue-flow__node.vf-comment-node.selected {
border-color: #60a5fa;
box-shadow: 0 0 0 1px rgba(96, 165, 250, 0.5);
}
/* handles */
.vue-flow__handle {
width: 6px;
height: 6px;
background: var(--vf-handle);
border: 1px solid #ffffff;
border-radius: 100%;
}
/* selection rectangle */
.vue-flow__nodesselection-rect,
.vue-flow__selection {
background: rgba(0, 89, 220, 0.08);
border: 1px dotted rgba(0, 89, 220, 0.8);
}
.vue-flow__nodesselection-rect:focus,
.vue-flow__nodesselection-rect:focus-visible,
.vue-flow__selection:focus,
.vue-flow__selection:focus-visible {
outline: none;
}