MohammedNaeem commited on
Commit
2bf98f9
·
verified ·
1 Parent(s): 07ba3cd

Design a next-generation Multi-Agent AI Collaboration Platform that redefines the paradigm of human-AI workflows through a revolutionary, production-grade interface. This is not an iteration—it is a complete reimagining of how autonomous agents, human operators, and complex data systems visually coexist and interact.

Browse files

Design Philosophy & Visual Direction:

Aesthetic: Sophisticated "Post-Corporate" futurism—clean, authoritative, yet organic. Move beyond sterile SaaS templates. Think: Blade Runner 2049 meets Notion, with the functional density of a Bloomberg Terminal and the elegance of Linear.
Color Architecture: Strictly no dominant purple. Instead, deploy a chromatic strategy using:
Primary: Deep oceanic teal (#0A4F4F) to electric coral (#FF6B6B) gradient system, OR charcoal slate (#1A1D21) with vermillion (#E85D04) and citron (#CCFF00) accents
Semantic Coding: Distinctive hues for agent types (Autonomous=warm amber, Human=neutral blue, System=cool slate, Execution=vibrant emerald)
Dark Mode Native: True OLED black (#000000) backgrounds with high-contrast zinc (#A1A1AA) typography and luminous accent glows
Interaction States: Micro-gradients that shift with data velocity—subtle, non-distracting bioluminescent cues



Spatial & Interaction Design:

Canvas-First Architecture: Infinite zoomable workspace (Figma-like) where agents exist as intelligent "nodes" with orbital awareness—not static sidebar lists
Glassmorphic Intelligence: Agents manifest as semi-transparent, depth-layered entities with real-time activity indicators (neural pulse animations, subtle bloom effects)
Dynamic Topology: Visual representation of agent relationships as living, breathing connection lines (bezier curves with data-pulse animations) that thicken with bandwidth and shift color with sentiment/confidence scores
Ambient Awareness: Non-intrusive peripheral vision system—agents working in background show subtle edge-glow; urgent interventions use spatial audio-visual cues from the correct vector

Component & UX Specifications:

Agent Avatars: Abstract geometric forms (icosahedrons, mobius strips) rather than human faces, with distinct motion signatures—each agent type has unique "breathing" rhythms and particle trails when moving across the canvas
Collaboration Stream: Chronological feed transformed into a horizontal "Time-Reel" at screen bottom, showing agent decisions as filmstrip cells with scrubbable history
Command Interface: Omnibar with contextual intelligence—natural language input that expands into node-based logic trees (visual programming meets chat)
Conflict Resolution UI: When agents disagree, visual "tension zones" emerge—gradient meshes that require conscious human mediation through tactile slider controls
Data Corporeality: Files and datasets rendered as manipulable 3D artifacts with physics—drag a document onto an agent, watch it "absorb" with satisfying haptic-visual feedback

Typography & Micro-interactions:

Font System: Inter or Geist for UI elements; Space Grotesk or Plus Jakarta Sans for agent communications—distinct voice for machine vs. human text
Motion Physics: Everything springs, never oscillates. Agents arrive with orchestrated entrances (scale + blur resolve). 60fps minimum on all transitions. Damping values: 0.8 (snappy but substantial)
Negative Space: Aggressive information density with intelligent decluttering—agents fade to wireframe outlines when not in focus, expanding to full detail on proximity hover

Technical Rigor:

Responsive Liquid Layouts: From 4K multi-monitor setups (agents spread across spatial zones) to mobile (stacked card metaphor with gesture-based orchestration)
Accessibility WCAG 2.1 AA+: High contrast mode available, reduced motion alternatives for neurodivergent users, screen reader optimized with semantic agent status announcements
Design Token System: Complete atomic design methodology with CSS variables for all glow effects, z-index layers, and easing curves

Emotional Outcome: The interface should evoke control without overwhelm—users feel like orchestral conductors, not database administrators. Every pixel should communicate that this is a thinking system, not a tool.

Files changed (3) hide show
  1. README.md +8 -5
  2. index.html +302 -19
  3. style.css +275 -18
README.md CHANGED
@@ -1,10 +1,13 @@
1
  ---
2
- title: Synapse Canvas
3
- emoji: 🔥
4
- colorFrom: indigo
5
- colorTo: purple
6
  sdk: static
7
  pinned: false
 
 
8
  ---
9
 
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
1
  ---
2
+ title: Synapse Canvas 🧠
3
+ colorFrom: green
4
+ colorTo: red
5
+ emoji: 🐳
6
  sdk: static
7
  pinned: false
8
+ tags:
9
+ - deepsite-v3
10
  ---
11
 
12
+ # Welcome to your new DeepSite project!
13
+ This project was created with [DeepSite](https://huggingface.co/deepsite).
index.html CHANGED
@@ -1,19 +1,302 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Synapse Canvas — Multi-Agent AI Collaboration Platform</title>
7
+ <link rel="stylesheet" href="style.css">
8
+ <script src="https://cdn.tailwindcss.com"></script>
9
+ <script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
10
+ <script src="https://unpkg.com/feather-icons"></script>
11
+ <script>
12
+ tailwind.config = {
13
+ darkMode: 'class',
14
+ theme: {
15
+ extend: {
16
+ colors: {
17
+ ocean: {
18
+ 900: '#0A4F4F',
19
+ 800: '#0D6B6B',
20
+ 700: '#108888',
21
+ 600: '#14A5A5',
22
+ 500: '#17C2C2',
23
+ },
24
+ coral: {
25
+ 500: '#FF6B6B',
26
+ 400: '#FF8585',
27
+ 300: '#FF9F9F',
28
+ },
29
+ charcoal: {
30
+ 950: '#000000',
31
+ 900: '#0A0A0F',
32
+ 800: '#141419',
33
+ 700: '#1A1D21',
34
+ 600: '#252830',
35
+ },
36
+ vermillion: {
37
+ 500: '#E85D04',
38
+ 400: '#F0701A',
39
+ },
40
+ citron: {
41
+ 500: '#CCFF00',
42
+ 400: '#D4FF33',
43
+ },
44
+ agent: {
45
+ autonomous: '#F59E0B',
46
+ human: '#3B82F6',
47
+ system: '#64748B',
48
+ execution: '#10B981',
49
+ }
50
+ },
51
+ fontFamily: {
52
+ sans: ['Inter', 'system-ui', 'sans-serif'],
53
+ mono: ['JetBrains Mono', 'monospace'],
54
+ display: ['Space Grotesk', 'sans-serif'],
55
+ },
56
+ animation: {
57
+ 'neural-pulse': 'neuralPulse 2s ease-in-out infinite',
58
+ 'data-flow': 'dataFlow 1.5s ease-in-out infinite',
59
+ 'bloom-glow': 'bloomGlow 3s ease-in-out infinite',
60
+ 'agent-breathe': 'agentBreathe 4s ease-in-out infinite',
61
+ 'orbit': 'orbit 20s linear infinite',
62
+ },
63
+ keyframes: {
64
+ neuralPulse: {
65
+ '0%, 100%': { opacity: 0.4, transform: 'scale(1)' },
66
+ '50%': { opacity: 1, transform: 'scale(1.05)' },
67
+ },
68
+ dataFlow: {
69
+ '0%': { strokeDashoffset: '100' },
70
+ '100%': { strokeDashoffset: '0' },
71
+ },
72
+ bloomGlow: {
73
+ '0%, 100%': { filter: 'blur(20px) opacity(0.5)' },
74
+ '50%': { filter: 'blur(30px) opacity(0.8)' },
75
+ },
76
+ agentBreathe: {
77
+ '0%, 100%': { transform: 'scale(0.98)', opacity: 0.9 },
78
+ '50%': { transform: 'scale(1.02)', opacity: 1 },
79
+ },
80
+ orbit: {
81
+ '0%': { transform: 'rotate(0deg)' },
82
+ '100%': { transform: 'rotate(360deg)' },
83
+ }
84
+ }
85
+ }
86
+ }
87
+ }
88
+ </script>
89
+ <link rel="preconnect" href="https://fonts.googleapis.com">
90
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
91
+ <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&family=Space+Grotesk:wght@400;500;600;700&display=swap" rel="stylesheet">
92
+ </head>
93
+ <body class="bg-charcoal-950 text-zinc-300 font-sans overflow-hidden">
94
+ <!-- Ambient Background Layer -->
95
+ <div class="fixed inset-0 pointer-events-none">
96
+ <div class="absolute inset-0 bg-[radial-gradient(ellipse_at_top_left,_var(--tw-gradient-stops))] from-ocean-900/20 via-transparent to-transparent"></div>
97
+ <div class="absolute top-0 right-0 w-96 h-96 bg-coral-500/10 rounded-full blur-3xl animate-bloom-glow"></div>
98
+ <div class="absolute bottom-0 left-0 w-64 h-64 bg-citron-500/5 rounded-full blur-2xl"></div>
99
+ <!-- Grid Pattern -->
100
+ <div class="absolute inset-0 opacity-[0.03]" style="background-image: linear-gradient(rgba(255,255,255,0.1) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.1) 1px, transparent 1px); background-size: 60px 60px;"></div>
101
+ </div>
102
+
103
+ <!-- Main Application Container -->
104
+ <div id="app" class="relative h-screen w-full flex flex-col">
105
+
106
+ <!-- Top Navigation Bar -->
107
+ <synapse-header></synapse-header>
108
+
109
+ <!-- Workspace Area -->
110
+ <div class="flex-1 flex relative overflow-hidden">
111
+
112
+ <!-- Left Sidebar: Agent Palette -->
113
+ <synapse-agent-palette></synapse-agent-palette>
114
+
115
+ <!-- Infinite Canvas -->
116
+ <main id="canvas-container" class="flex-1 relative overflow-hidden cursor-grab active:cursor-grabbing">
117
+ <!-- Transform Layer for Pan/Zoom -->
118
+ <div id="canvas-transform" class="absolute inset-0 origin-center transition-transform duration-75 ease-out" style="transform: translate(0px, 0px) scale(1);">
119
+
120
+ <!-- Canvas Grid -->
121
+ <div class="absolute inset-0 opacity-[0.05]" style="background-image: radial-gradient(circle, rgba(255,255,255,0.3) 1px, transparent 1px); background-size: 40px 40px;"></div>
122
+
123
+ <!-- Connection Layer (SVG) -->
124
+ <svg id="connection-layer" class="absolute inset-0 w-full h-full pointer-events-none">
125
+ <defs>
126
+ <linearGradient id="flow-gradient" x1="0%" y1="0%" x2="100%" y2="0%">
127
+ <stop offset="0%" stop-color="#0A4F4F" stop-opacity="0.2" />
128
+ <stop offset="50%" stop-color="#CCFF00" stop-opacity="0.6" />
129
+ <stop offset="100%" stop-color="#E85D04" stop-opacity="0.2" />
130
+ </linearGradient>
131
+ <filter id="glow">
132
+ <feGaussianBlur stdDeviation="3" result="coloredBlur"/>
133
+ <feMerge>
134
+ <feMergeNode in="coloredBlur"/>
135
+ <feMergeNode in="SourceGraphic"/>
136
+ </feMerge>
137
+ </filter>
138
+ </defs>
139
+ <!-- Dynamic connections rendered here -->
140
+ </svg>
141
+
142
+ <!-- Agent Nodes Layer -->
143
+ <div id="nodes-layer" class="absolute inset-0">
144
+ <!-- Nodes rendered dynamically -->
145
+ </div>
146
+
147
+ <!-- Floating Context Menu -->
148
+ <div id="context-menu" class="absolute hidden bg-charcoal-800/95 backdrop-blur-xl border border-charcoal-600 rounded-xl shadow-2xl p-2 min-w-[200px] z-50">
149
+ <div class="px-3 py-2 text-xs font-medium text-zinc-500 uppercase tracking-wider">Actions</div>
150
+ <button class="w-full text-left px-3 py-2 text-sm text-zinc-300 hover:bg-charcoal-700 rounded-lg flex items-center gap-2 transition-colors">
151
+ <i data-feather="zap" class="w-4 h-4 text-citron-500"></i>
152
+ Execute Workflow
153
+ </button>
154
+ <button class="w-full text-left px-3 py-2 text-sm text-zinc-300 hover:bg-charcoal-700 rounded-lg flex items-center gap-2 transition-colors">
155
+ <i data-feather="git-branch" class="w-4 h-4 text-ocean-500"></i>
156
+ Fork Agent
157
+ </button>
158
+ <button class="w-full text-left px-3 py-2 text-sm text-zinc-300 hover:bg-charcoal-700 rounded-lg flex items-center gap-2 transition-colors">
159
+ <i data-feather="shield" class="w-4 h-4 text-coral-500"></i>
160
+ Isolate & Debug
161
+ </button>
162
+ <div class="h-px bg-charcoal-600 my-2"></div>
163
+ <button class="w-full text-left px-3 py-2 text-sm text-zinc-400 hover:text-coral-500 hover:bg-coral-500/10 rounded-lg flex items-center gap-2 transition-colors">
164
+ <i data-feather="trash-2" class="w-4 h-4"></i>
165
+ Terminate Agent
166
+ </button>
167
+ </div>
168
+ </div>
169
+
170
+ <!-- Canvas Controls -->
171
+ <div class="absolute bottom-6 right-6 flex flex-col gap-2">
172
+ <button id="zoom-in" class="w-10 h-10 bg-charcoal-800/90 backdrop-blur border border-charcoal-600 rounded-lg flex items-center justify-center text-zinc-400 hover:text-white hover:border-ocean-500 transition-all">
173
+ <i data-feather="plus" class="w-5 h-5"></i>
174
+ </button>
175
+ <button id="zoom-reset" class="w-10 h-10 bg-charcoal-800/90 backdrop-blur border border-charcoal-600 rounded-lg flex items-center justify-center text-zinc-400 hover:text-white hover:border-ocean-500 transition-all text-xs font-mono">
176
+ 100%
177
+ </button>
178
+ <button id="zoom-out" class="w-10 h-10 bg-charcoal-800/90 backdrop-blur border border-charcoal-600 rounded-lg flex items-center justify-center text-zinc-400 hover:text-white hover:border-ocean-500 transition-all">
179
+ <i data-feather="minus" class="w-5 h-5"></i>
180
+ </button>
181
+ </div>
182
+
183
+ <!-- Mini-map -->
184
+ <div class="absolute top-6 right-6 w-48 h-32 bg-charcoal-900/90 backdrop-blur border border-charcoal-700 rounded-lg overflow-hidden">
185
+ <div class="absolute inset-0 opacity-30" style="background-image: radial-gradient(circle, rgba(255,255,255,0.2) 1px, transparent 1px); background-size: 8px 8px;"></div>
186
+ <div id="minimap-viewport" class="absolute border-2 border-ocean-500/50 bg-ocean-500/10 rounded" style="left: 20%; top: 20%; width: 40%; height: 40%;"></div>
187
+ <!-- Minimap dots for nodes -->
188
+ <div class="absolute w-1.5 h-1.5 rounded-full bg-agent-autonomous" style="left: 30%; top: 35%;"></div>
189
+ <div class="absolute w-1.5 h-1.5 rounded-full bg-agent-human" style="left: 50%; top: 45%;"></div>
190
+ <div class="absolute w-1.5 h-1.5 rounded-full bg-agent-execution" style="left: 40%; top: 55%;"></div>
191
+ </div>
192
+ </main>
193
+
194
+ <!-- Right Panel: Inspector -->
195
+ <synapse-inspector></synapse-inspector>
196
+ </div>
197
+
198
+ <!-- Bottom Time-Reel -->
199
+ <synapse-time-reel></synapse-time-reel>
200
+
201
+ <!-- Omnibar Command Interface -->
202
+ <div id="omnibar" class="fixed bottom-32 left-1/2 -translate-x-1/2 w-[600px] max-w-[90vw] opacity-0 pointer-events-none transition-all duration-300 z-50">
203
+ <div class="bg-charcoal-800/95 backdrop-blur-2xl border border-charcoal-600 rounded-2xl shadow-2xl overflow-hidden">
204
+ <div class="flex items-center gap-3 px-4 py-3 border-b border-charcoal-700">
205
+ <i data-feather="terminal" class="w-5 h-5 text-citron-500"></i>
206
+ <input type="text" placeholder="Command agents, query data, or create workflows..."
207
+ class="flex-1 bg-transparent text-white placeholder-zinc-500 outline-none font-mono text-sm">
208
+ <span class="text-xs text-zinc-500 px-2 py-1 bg-charcoal-700 rounded">⌘K</span>
209
+ </div>
210
+ <div class="max-h-64 overflow-y-auto">
211
+ <div class="px-4 py-2 text-xs font-medium text-zinc-500 uppercase tracking-wider">Recent Commands</div>
212
+ <button class="w-full text-left px-4 py-3 hover:bg-charcoal-700/50 flex items-center gap-3 transition-colors group">
213
+ <div class="w-8 h-8 rounded-lg bg-agent-autonomous/20 flex items-center justify-center">
214
+ <i data-feather="cpu" class="w-4 h-4 text-agent-autonomous"></i>
215
+ </div>
216
+ <div class="flex-1">
217
+ <div class="text-sm text-zinc-200 group-hover:text-white">Deploy sentiment analysis agent</div>
218
+ <div class="text-xs text-zinc-500">Autonomous • Marketing pipeline</div>
219
+ </div>
220
+ </button>
221
+ <button class="w-full text-left px-4 py-3 hover:bg-charcoal-700/50 flex items-center gap-3 transition-colors group">
222
+ <div class="w-8 h-8 rounded-lg bg-agent-execution/20 flex items-center justify-center">
223
+ <i data-feather="database" class="w-4 h-4 text-agent-execution"></i>
224
+ </div>
225
+ <div class="flex-1">
226
+ <div class="text-sm text-zinc-200 group-hover:text-white">Sync Q3 financial projections</div>
227
+ <div class="text-xs text-zinc-500">Execution • 2.4GB dataset</div>
228
+ </div>
229
+ </button>
230
+ </div>
231
+ </div>
232
+ </div>
233
+
234
+ <!-- Conflict Resolution Modal -->
235
+ <div id="conflict-modal" class="fixed inset-0 bg-black/80 backdrop-blur-sm z-50 hidden items-center justify-center">
236
+ <div class="bg-charcoal-900 border border-charcoal-600 rounded-2xl max-w-2xl w-full mx-4 overflow-hidden">
237
+ <div class="p-6 border-b border-charcoal-700">
238
+ <div class="flex items-center gap-3 mb-2">
239
+ <div class="w-10 h-10 rounded-full bg-gradient-to-br from-coral-500 to-vermillion-500 flex items-center justify-center animate-pulse">
240
+ <i data-feather="alert-triangle" class="w-5 h-5 text-white"></i>
241
+ </div>
242
+ <div>
243
+ <h3 class="text-lg font-semibold text-white">Agent Conflict Detected</h3>
244
+ <p class="text-sm text-zinc-400">Resolution required for workflow integrity</p>
245
+ </div>
246
+ </div>
247
+ </div>
248
+ <div class="p-6 space-y-4">
249
+ <div class="flex gap-4">
250
+ <div class="flex-1 p-4 bg-charcoal-800 rounded-xl border border-agent-autonomous/30">
251
+ <div class="flex items-center gap-2 mb-2">
252
+ <div class="w-2 h-2 rounded-full bg-agent-autonomous animate-pulse"></div>
253
+ <span class="text-sm font-medium text-agent-autonomous">Analyzer-7</span>
254
+ </div>
255
+ <p class="text-sm text-zinc-300">Recommend immediate market exit based on volatility signals. Confidence: 94%</p>
256
+ </div>
257
+ <div class="flex-1 p-4 bg-charcoal-800 rounded-xl border border-agent-human/30">
258
+ <div class="flex items-center gap-2 mb-2">
259
+ <div class="w-2 h-2 rounded-full bg-agent-human"></div>
260
+ <span class="text-sm font-medium text-agent-human">Strategist-3</span>
261
+ </div>
262
+ <p class="text-sm text-zinc-300">Advocate holding position. Pattern matches 2019 recovery. Confidence: 87%</p>
263
+ </div>
264
+ </div>
265
+ <div class="relative">
266
+ <div class="h-2 bg-charcoal-700 rounded-full overflow-hidden">
267
+ <div id="conflict-slider-track" class="absolute inset-y-0 left-1/2 w-1 bg-gradient-to-r from-agent-autonomous via-white to-agent-human"></div>
268
+ </div>
269
+ <input type="range" min="0" max="100" value="50"
270
+ class="absolute inset-0 w-full h-full opacity-0 cursor-grab active:cursor-grabbing"
271
+ id="conflict-slider">
272
+ <div class="flex justify-between mt-2 text-xs text-zinc-500">
273
+ <span>Follow Analyzer-7</span>
274
+ <span id="conflict-value" class="text-white font-mono">50%</span>
275
+ <span>Follow Strategist-3</span>
276
+ </div>
277
+ </div>
278
+ </div>
279
+ <div class="p-6 border-t border-charcoal-700 flex gap-3">
280
+ <button class="flex-1 py-3 bg-coral-500 hover:bg-coral-400 text-white rounded-xl font-medium transition-colors">
281
+ Override & Decide
282
+ </button>
283
+ <button class="px-6 py-3 border border-charcoal-600 hover:bg-charcoal-800 text-zinc-300 rounded-xl transition-colors" onclick="document.getElementById('conflict-modal').classList.add('hidden')">
284
+ Defer
285
+ </button>
286
+ </div>
287
+ </div>
288
+ </div>
289
+ </div>
290
+
291
+ <!-- Component Scripts -->
292
+ <script src="components/synapse-header.js"></script>
293
+ <script src="components/synapse-agent-palette.js"></script>
294
+ <script src="components/synapse-inspector.js"></script>
295
+ <script src="components/synapse-time-reel.js"></script>
296
+ <script src="components/synapse-agent-node.js"></script>
297
+
298
+ <script src="script.js"></script>
299
+ <script>feather.replace();</script>
300
+ <script src="https://huggingface.co/deepsite/deepsite-badge.js"></script>
301
+ </body>
302
+ </html>
style.css CHANGED
@@ -1,28 +1,285 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  body {
2
- padding: 2rem;
3
- font-family: -apple-system, BlinkMacSystemFont, "Arial", sans-serif;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  }
5
 
6
- h1 {
7
- font-size: 16px;
8
- margin-top: 0;
9
  }
10
 
11
- p {
12
- color: rgb(107, 114, 128);
13
- font-size: 15px;
14
- margin-bottom: 10px;
15
- margin-top: 5px;
16
  }
17
 
18
- .card {
19
- max-width: 620px;
20
- margin: 0 auto;
21
- padding: 16px;
22
- border: 1px solid lightgray;
23
- border-radius: 16px;
24
  }
25
 
26
- .card p:last-child {
27
- margin-bottom: 0;
 
 
 
28
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Synapse Canvas — Design Token System */
2
+
3
+ :root {
4
+ /* Core Colors */
5
+ --color-ocean-900: #0A4F4F;
6
+ --color-ocean-500: #17C2C2;
7
+ --color-coral-500: #FF6B6B;
8
+ --color-charcoal-950: #000000;
9
+ --color-charcoal-900: #0A0A0F;
10
+ --color-charcoal-800: #141419;
11
+ --color-charcoal-700: #1A1D21;
12
+ --color-vermillion-500: #E85D04;
13
+ --color-citron-500: #CCFF00;
14
+
15
+ /* Agent Semantic Colors */
16
+ --agent-autonomous: #F59E0B;
17
+ --agent-human: #3B82F6;
18
+ --agent-system: #64748B;
19
+ --agent-execution: #10B981;
20
+
21
+ /* Typography */
22
+ --font-sans: 'Inter', system-ui, sans-serif;
23
+ --font-mono: 'JetBrains Mono', monospace;
24
+ --font-display: 'Space Grotesk', sans-serif;
25
+
26
+ /* Motion */
27
+ --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
28
+ --ease-smooth: cubic-bezier(0.4, 0, 0.2, 1);
29
+ --duration-instant: 150ms;
30
+ --duration-fast: 250ms;
31
+ --duration-normal: 400ms;
32
+ --duration-slow: 600ms;
33
+
34
+ /* Z-Index Scale */
35
+ --z-background: -1;
36
+ --z-base: 0;
37
+ --z-elevated: 10;
38
+ --z-floating: 100;
39
+ --z-overlay: 1000;
40
+ --z-modal: 2000;
41
+ --z-toast: 3000;
42
+
43
+ /* Glow Effects */
44
+ --glow-ocean: 0 0 20px rgba(23, 194, 194, 0.3);
45
+ --glow-coral: 0 0 20px rgba(255, 107, 107, 0.3);
46
+ --glow-citron: 0 0 20px rgba(204, 255, 0, 0.3);
47
+ --glow-agent-autonomous: 0 0 15px rgba(245, 158, 11, 0.4);
48
+ --glow-agent-human: 0 0 15px rgba(59, 130, 246, 0.4);
49
+ --glow-agent-execution: 0 0 15px rgba(16, 185, 129, 0.4);
50
+ }
51
+
52
+ /* Base Reset */
53
+ *, *::before, *::after {
54
+ box-sizing: border-box;
55
+ margin: 0;
56
+ padding: 0;
57
+ }
58
+
59
+ html {
60
+ font-size: 16px;
61
+ -webkit-font-smoothing: antialiased;
62
+ -moz-osx-font-smoothing: grayscale;
63
+ }
64
+
65
  body {
66
+ font-family: var(--font-sans);
67
+ background: var(--color-charcoal-950);
68
+ color: #A1A1AA;
69
+ line-height: 1.5;
70
+ overflow: hidden;
71
+ }
72
+
73
+ /* Scrollbar Styling */
74
+ ::-webkit-scrollbar {
75
+ width: 6px;
76
+ height: 6px;
77
+ }
78
+
79
+ ::-webkit-scrollbar-track {
80
+ background: var(--color-charcoal-900);
81
+ }
82
+
83
+ ::-webkit-scrollbar-thumb {
84
+ background: var(--color-charcoal-700);
85
+ border-radius: 3px;
86
+ }
87
+
88
+ ::-webkit-scrollbar-thumb:hover {
89
+ background: var(--color-charcoal-600);
90
+ }
91
+
92
+ /* Selection */
93
+ ::selection {
94
+ background: rgba(23, 194, 194, 0.3);
95
+ color: white;
96
+ }
97
+
98
+ /* Focus States */
99
+ :focus-visible {
100
+ outline: 2px solid var(--color-ocean-500);
101
+ outline-offset: 2px;
102
+ }
103
+
104
+ /* Agent Node Base Styles */
105
+ .agent-node {
106
+ position: absolute;
107
+ width: 280px;
108
+ transition: all var(--duration-fast) var(--ease-spring);
109
+ transform-origin: center center;
110
+ }
111
+
112
+ .agent-node:hover {
113
+ z-index: var(--z-floating);
114
+ }
115
+
116
+ .agent-node.focused {
117
+ z-index: calc(var(--z-floating) + 10);
118
+ }
119
+
120
+ .agent-node.wireframe {
121
+ opacity: 0.6;
122
+ }
123
+
124
+ .agent-node.wireframe .node-content {
125
+ background: transparent;
126
+ border-style: dashed;
127
+ }
128
+
129
+ /* Glassmorphism Base */
130
+ .glass {
131
+ background: rgba(20, 20, 25, 0.8);
132
+ backdrop-filter: blur(20px) saturate(180%);
133
+ -webkit-backdrop-filter: blur(20px) saturate(180%);
134
+ border: 1px solid rgba(255, 255, 255, 0.08);
135
+ }
136
+
137
+ .glass-strong {
138
+ background: rgba(26, 29, 33, 0.95);
139
+ backdrop-filter: blur(40px) saturate(200%);
140
+ -webkit-backdrop-filter: blur(40px) saturate(200%);
141
+ border: 1px solid rgba(255, 255, 255, 0.12);
142
+ }
143
+
144
+ /* Connection Lines */
145
+ .connection-line {
146
+ fill: none;
147
+ stroke-width: 2;
148
+ stroke-linecap: round;
149
+ pointer-events: stroke;
150
+ transition: all var(--duration-fast) var(--ease-smooth);
151
  }
152
 
153
+ .connection-line:hover {
154
+ stroke-width: 4;
155
+ filter: url(#glow);
156
  }
157
 
158
+ .connection-line.active {
159
+ animation: dataPulse 1s ease-in-out infinite;
 
 
 
160
  }
161
 
162
+ @keyframes dataPulse {
163
+ 0%, 100% { stroke-opacity: 0.4; }
164
+ 50% { stroke-opacity: 1; }
 
 
 
165
  }
166
 
167
+ /* Data Flow Particles */
168
+ .data-particle {
169
+ fill: var(--color-citron-500);
170
+ filter: url(#glow);
171
+ animation: flowAlongPath 2s linear infinite;
172
  }
173
+
174
+ @keyframes flowAlongPath {
175
+ 0% { offset-distance: 0%; opacity: 0; }
176
+ 10% { opacity: 1; }
177
+ 90% { opacity: 1; }
178
+ 100% { offset-distance: 100%; opacity: 0; }
179
+ }
180
+
181
+ /* Neural Pulse Animation */
182
+ .neural-pulse {
183
+ position: relative;
184
+ }
185
+
186
+ .neural-pulse::after {
187
+ content: '';
188
+ position: absolute;
189
+ inset: -4px;
190
+ border-radius: inherit;
191
+ background: inherit;
192
+ opacity: 0;
193
+ animation: pulseRing 2s ease-out infinite;
194
+ z-index: -1;
195
+ }
196
+
197
+ @keyframes pulseRing {
198
+ 0% { transform: scale(1); opacity: 0.5; }
199
+ 100% { transform: scale(1.5); opacity: 0; }
200
+ }
201
+
202
+ /* Agent Avatar Geometries */
203
+ .agent-avatar {
204
+ width: 48px;
205
+ height: 48px;
206
+ position: relative;
207
+ display: flex;
208
+ align-items: center;
209
+ justify-content: center;
210
+ }
211
+
212
+ .agent-avatar::before {
213
+ content: '';
214
+ position: absolute;
215
+ inset: 0;
216
+ border-radius: 12px;
217
+ background: linear-gradient(135deg, currentColor 0%, transparent 50%);
218
+ opacity: 0.3;
219
+ }
220
+
221
+ .agent-avatar.autonomous {
222
+ color: var(--agent-autonomous);
223
+ }
224
+
225
+ .agent-avatar.human {
226
+ color: var(--agent-human);
227
+ border-radius: 50%;
228
+ }
229
+
230
+ .agent-avatar.system {
231
+ color: var(--agent-system);
232
+ clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
233
+ }
234
+
235
+ .agent-avatar.execution {
236
+ color: var(--agent-execution);
237
+ border-radius: 4px;
238
+ transform: rotate(45deg);
239
+ }
240
+
241
+ .agent-avatar.execution > * {
242
+ transform: rotate(-45deg);
243
+ }
244
+
245
+ /* Activity Indicators */
246
+ .activity-indicator {
247
+ width: 8px;
248
+ height: 8px;
249
+ border-radius: 50%;
250
+ position: relative;
251
+ }
252
+
253
+ .activity-indicator.active {
254
+ animation: activityBlink 1.5s ease-in-out infinite;
255
+ }
256
+
257
+ .activity-indicator.processing {
258
+ animation: activitySpin 1s linear infinite;
259
+ }
260
+
261
+ @keyframes activityBlink {
262
+ 0%, 100% { opacity: 0.3; transform: scale(1); }
263
+ 50% { opacity: 1; transform: scale(1.2); }
264
+ }
265
+
266
+ @keyframes activitySpin {
267
+ 0% { transform: rotate(0deg); }
268
+ 100% { transform: rotate(360deg); }
269
+ }
270
+
271
+ /* Tension Zone (Conflict) */
272
+ .tension-zone {
273
+ position: absolute;
274
+ border-radius: 50%;
275
+ background: radial-gradient(ellipse at center,
276
+ rgba(232, 93, 4, 0.2) 0%,
277
+ rgba(255, 107, 107, 0.1) 40%,
278
+ transparent 70%
279
+ );
280
+ animation: tensionPulse 2s ease-in-out infinite;
281
+ pointer-events: none;
282
+ }
283
+
284
+ @keyframes tensionPulse {
285
+ 0%, 100% { transform: scale(1); opacity: 0.6; }