feat: Introduce Nucleo as the main AI agent identity
- Add Nucleo atom logo with animated orbiting electrons - Redesign FAB with glassmorphism effect and purple gradient - Add connection indicator (green dot) when terminal is open - Update FloatingTerminal header with Nucleo branding - Add PermissionRequest hook support with red alert animation - Document Nucleo in README with visual states table - Create official Nucleo logo SVG in docs/
This commit is contained in:
61
docs/nucleo-logo.svg
Normal file
61
docs/nucleo-logo.svg
Normal file
@@ -0,0 +1,61 @@
|
||||
<svg width="120" height="120" viewBox="0 0 120 120" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<defs>
|
||||
<radialGradient id="coreGradient" cx="50%" cy="30%" r="60%">
|
||||
<stop offset="0%" stop-color="#c4b5fd"/>
|
||||
<stop offset="50%" stop-color="#a78bfa"/>
|
||||
<stop offset="100%" stop-color="#6366f1"/>
|
||||
</radialGradient>
|
||||
<linearGradient id="orbitGradient1" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#818cf8" stop-opacity="0.9"/>
|
||||
<stop offset="50%" stop-color="#a78bfa" stop-opacity="0.5"/>
|
||||
<stop offset="100%" stop-color="#818cf8" stop-opacity="0.9"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="electronGradient" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#e0e7ff"/>
|
||||
<stop offset="100%" stop-color="#a78bfa"/>
|
||||
</linearGradient>
|
||||
<filter id="glow" x="-50%" y="-50%" width="200%" height="200%">
|
||||
<feGaussianBlur stdDeviation="3" result="blur"/>
|
||||
<feMerge>
|
||||
<feMergeNode in="blur"/>
|
||||
<feMergeNode in="SourceGraphic"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
<filter id="coreGlow" x="-100%" y="-100%" width="300%" height="300%">
|
||||
<feGaussianBlur stdDeviation="6" result="blur"/>
|
||||
<feMerge>
|
||||
<feMergeNode in="blur"/>
|
||||
<feMergeNode in="SourceGraphic"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
</defs>
|
||||
|
||||
<!-- Background circle (subtle) -->
|
||||
<circle cx="60" cy="60" r="55" fill="none" stroke="#4f46e5" stroke-width="1" opacity="0.2"/>
|
||||
|
||||
<!-- Orbital rings -->
|
||||
<ellipse cx="60" cy="60" rx="45" ry="18" stroke="url(#orbitGradient1)" stroke-width="2" fill="none" transform="rotate(-30 60 60)" opacity="0.7"/>
|
||||
<ellipse cx="60" cy="60" rx="45" ry="18" stroke="url(#orbitGradient1)" stroke-width="2" fill="none" transform="rotate(30 60 60)" opacity="0.5"/>
|
||||
<ellipse cx="60" cy="60" rx="45" ry="18" stroke="url(#orbitGradient1)" stroke-width="2" fill="none" transform="rotate(90 60 60)" opacity="0.6"/>
|
||||
|
||||
<!-- Core nucleus with glow -->
|
||||
<circle cx="60" cy="60" r="18" fill="url(#coreGradient)" filter="url(#coreGlow)"/>
|
||||
<circle cx="60" cy="60" r="14" fill="url(#coreGradient)" opacity="0.8"/>
|
||||
<circle cx="55" cy="55" r="5" fill="white" opacity="0.4"/>
|
||||
|
||||
<!-- Electrons with glow -->
|
||||
<circle cx="60" cy="15" r="7" fill="url(#electronGradient)" filter="url(#glow)">
|
||||
<animateTransform attributeName="transform" type="rotate" from="0 60 60" to="360 60 60" dur="4s" repeatCount="indefinite"/>
|
||||
</circle>
|
||||
<circle cx="100" cy="70" r="6" fill="url(#electronGradient)" filter="url(#glow)">
|
||||
<animateTransform attributeName="transform" type="rotate" from="120 60 60" to="480 60 60" dur="5s" repeatCount="indefinite"/>
|
||||
</circle>
|
||||
<circle cx="20" cy="70" r="6" fill="url(#electronGradient)" filter="url(#glow)">
|
||||
<animateTransform attributeName="transform" type="rotate" from="240 60 60" to="600 60 60" dur="4.5s" repeatCount="indefinite"/>
|
||||
</circle>
|
||||
|
||||
<!-- Small accent electrons -->
|
||||
<circle cx="60" cy="105" r="4" fill="#c4b5fd" opacity="0.6">
|
||||
<animateTransform attributeName="transform" type="rotate" from="180 60 60" to="540 60 60" dur="6s" repeatCount="indefinite"/>
|
||||
</circle>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.1 KiB |
Reference in New Issue
Block a user