index.css 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. @tailwind base;
  2. @tailwind components;
  3. @tailwind utilities;
  4. :root {
  5. font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;
  6. line-height: 1.5;
  7. font-weight: 400;
  8. }
  9. /* Light mode (default) */
  10. :root, .light {
  11. --color-bg: #f8fafc;
  12. --color-bg-secondary: #f1f5f9;
  13. --color-bg-tertiary: #e2e8f0;
  14. --color-text: #1e293b;
  15. --color-text-secondary: #475569;
  16. --color-text-muted: #94a3b8;
  17. --color-border: #e2e8f0;
  18. --color-border-light: #f1f5f9;
  19. /* Workflow node execution state colors */
  20. --node-running-bg: #eff6ff;
  21. --node-completed-bg: #f0fdf4;
  22. --node-failed-bg: #fef2f2;
  23. --node-skipped-bg: #f3f4f6;
  24. color: var(--color-text);
  25. background-color: var(--color-bg);
  26. }
  27. /* Dark mode */
  28. .dark {
  29. --color-bg: #0f172a;
  30. --color-bg-secondary: #1e293b;
  31. --color-bg-tertiary: #334155;
  32. --color-text: #f1f5f9;
  33. --color-text-secondary: #cbd5e1;
  34. --color-text-muted: #64748b;
  35. --color-border: #334155;
  36. --color-border-light: #1e293b;
  37. /* Workflow node execution state colors */
  38. --node-running-bg: #1e3a5f;
  39. --node-completed-bg: #14532d;
  40. --node-failed-bg: #450a0a;
  41. --node-skipped-bg: #374151;
  42. color: var(--color-text);
  43. background-color: var(--color-bg);
  44. }
  45. body {
  46. margin: 0;
  47. min-height: 100vh;
  48. transition: background-color 0.2s ease, color 0.2s ease;
  49. }
  50. /* React Flow custom styles */
  51. .react-flow__node {
  52. background: white;
  53. border: 1px solid #e2e8f0;
  54. border-radius: 8px;
  55. padding: 10px;
  56. box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
  57. }
  58. .dark .react-flow__node {
  59. background: #1e293b;
  60. border-color: #334155;
  61. box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
  62. }
  63. .react-flow__node.selected {
  64. border-color: #0ea5e9;
  65. box-shadow: 0 0 0 2px rgba(14, 165, 233, 0.3);
  66. }
  67. .dark .react-flow__node.selected {
  68. box-shadow: 0 0 0 2px rgba(14, 165, 233, 0.4);
  69. }
  70. .react-flow__handle {
  71. width: 12px;
  72. height: 12px;
  73. background: #0ea5e9;
  74. border: 2px solid white;
  75. }
  76. .dark .react-flow__handle {
  77. border-color: #1e293b;
  78. }
  79. .react-flow__edge-path {
  80. stroke-width: 2;
  81. }
  82. /* Default edge color - will be overridden by inline styles for colored edges */
  83. .react-flow__edge:not([style*="stroke"]) .react-flow__edge-path {
  84. stroke: #94a3b8;
  85. }
  86. .dark .react-flow__edge:not([style*="stroke"]) .react-flow__edge-path {
  87. stroke: #9ca3af;
  88. }
  89. .react-flow__edge.selected .react-flow__edge-path {
  90. stroke: #0ea5e9;
  91. stroke-width: 3;
  92. }
  93. /* Selection rectangle styling */
  94. .react-flow__selection {
  95. background: rgba(14, 165, 233, 0.1);
  96. border: 1px dashed #0ea5e9;
  97. }
  98. .dark .react-flow__selection {
  99. background: rgba(14, 165, 233, 0.15);
  100. }
  101. /* React Flow background */
  102. .react-flow__background {
  103. background-color: #f8fafc;
  104. }
  105. .dark .react-flow__background {
  106. background-color: #0f172a;
  107. }
  108. /* Grid dot styling for better visibility */
  109. .react-flow__background pattern circle {
  110. fill: #cbd5e1;
  111. }
  112. .dark .react-flow__background pattern circle {
  113. fill: #475569;
  114. }
  115. /* React Flow controls */
  116. .react-flow__controls {
  117. box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
  118. }
  119. .dark .react-flow__controls {
  120. box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
  121. }
  122. .dark .react-flow__controls-button {
  123. background: #1e293b;
  124. border-color: #334155;
  125. fill: #94a3b8;
  126. }
  127. .dark .react-flow__controls-button:hover {
  128. background: #334155;
  129. }
  130. /* React Flow minimap */
  131. .dark .react-flow__minimap {
  132. background: #1e293b;
  133. }
  134. /* Scrollbar styling */
  135. ::-webkit-scrollbar {
  136. width: 8px;
  137. height: 8px;
  138. }
  139. ::-webkit-scrollbar-track {
  140. background: transparent;
  141. }
  142. ::-webkit-scrollbar-thumb {
  143. background: #cbd5e1;
  144. border-radius: 4px;
  145. }
  146. ::-webkit-scrollbar-thumb:hover {
  147. background: #94a3b8;
  148. }
  149. .dark ::-webkit-scrollbar-thumb {
  150. background: #475569;
  151. }
  152. .dark ::-webkit-scrollbar-thumb:hover {
  153. background: #64748b;
  154. }
  155. /* Monaco editor dark mode already handles itself */