Files
ssh-manager/frontend/public/ssh-manager.svg
2026-04-17 17:53:06 +08:00

104 lines
5.1 KiB
XML

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" role="img" aria-label="SSH Manager">
<defs>
<linearGradient id="bg" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#07152f" />
<stop offset="100%" stop-color="#0a1d3f" />
</linearGradient>
<linearGradient id="neon" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#3cc8ff" />
<stop offset="55%" stop-color="#6ce7ff" />
<stop offset="100%" stop-color="#7fffd4" />
</linearGradient>
<linearGradient id="panel" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#17345f" />
<stop offset="100%" stop-color="#112748" />
</linearGradient>
<filter id="glow" x="-50%" y="-50%" width="200%" height="200%">
<feGaussianBlur stdDeviation="5" result="blur" />
<feMerge>
<feMergeNode in="blur" />
<feMergeNode in="SourceGraphic" />
</feMerge>
</filter>
<filter id="softGlow" x="-50%" y="-50%" width="200%" height="200%">
<feGaussianBlur stdDeviation="2.4" result="blur" />
<feMerge>
<feMergeNode in="blur" />
<feMergeNode in="SourceGraphic" />
</feMerge>
</filter>
<style>
.trace { fill: none; stroke: #143b6f; stroke-linecap: round; stroke-width: 2.2; opacity: 0.75; }
.trace2 { fill: none; stroke: #1a4f88; stroke-linecap: round; stroke-width: 1.6; opacity: 0.6; }
.dot { fill: #1f78b4; opacity: 0.85; }
.rack { fill: #17345f; stroke: url(#neon); stroke-width: 2.2; }
.lightG { fill: #88ff96; }
.lightY { fill: #ffd96b; }
.lightR { fill: #ff7686; }
</style>
</defs>
<rect x="18" y="18" width="220" height="220" rx="34" fill="url(#bg)" />
<rect x="18" y="18" width="220" height="220" rx="34" fill="none" stroke="#3cc8ff" stroke-width="4" filter="url(#glow)" />
<path class="trace" d="M36 62h28v-18h18v34h20" />
<path class="trace" d="M36 96h42v18h22v-16h24" />
<path class="trace" d="M36 160h24v22h34v-18h18" />
<path class="trace" d="M36 196h54v-26h20" />
<path class="trace" d="M220 58h-24v-14h-22v36h-14" />
<path class="trace" d="M220 98h-38v14h-20v-18h-18" />
<path class="trace" d="M220 156h-28v24h-36v-20h-16" />
<path class="trace" d="M220 194h-42v-18h-24" />
<circle class="dot" cx="64" cy="44" r="3" />
<circle class="dot" cx="78" cy="114" r="3" />
<circle class="dot" cx="60" cy="182" r="3" />
<circle class="dot" cx="196" cy="44" r="3" />
<circle class="dot" cx="182" cy="112" r="3" />
<circle class="dot" cx="194" cy="180" r="3" />
<g filter="url(#softGlow)">
<rect x="72" y="74" width="114" height="96" rx="12" fill="url(#panel)" stroke="#8af3ff" stroke-width="3" />
<rect x="82" y="86" width="94" height="72" rx="10" fill="#101c35" stroke="#53d9ff" stroke-opacity="0.7" />
<circle cx="90" cy="80" r="3.4" class="lightR" />
<circle cx="98" cy="80" r="3.4" class="lightY" />
<circle cx="106" cy="80" r="3.4" class="lightG" />
<text x="94" y="103" font-size="8.5" fill="#baf7ff" font-family="IBM Plex Mono, monospace">$ ssh -i keys/mgmt.pem</text>
<text x="94" y="114" font-size="7.8" fill="#8bcfe2" font-family="IBM Plex Mono, monospace">admin@prod-1.net</text>
<text x="92" y="132" font-size="34" fill="#b4ffff" font-family="IBM Plex Sans, sans-serif" font-weight="700">$</text>
<rect x="108" y="125" width="24" height="6" rx="3" fill="url(#neon)" />
</g>
<g transform="translate(127 148)" filter="url(#glow)">
<circle r="47" fill="rgba(10,29,63,0.5)" stroke="#5ce8ff" stroke-width="1.8" />
<circle r="36" fill="none" stroke="#2fc7ff" stroke-width="1.4" stroke-opacity="0.5" />
<circle cx="-45" cy="0" r="3.4" fill="#55efff" />
<circle cx="45" cy="0" r="3.4" fill="#55efff" />
<circle cx="0" cy="-45" r="3.4" fill="#55efff" />
<circle cx="0" cy="45" r="3.4" fill="#55efff" />
<rect class="rack" x="-27" y="-24" width="22" height="10" rx="3" />
<rect class="rack" x="-27" y="-10" width="22" height="10" rx="3" />
<rect class="rack" x="-27" y="4" width="22" height="10" rx="3" />
<rect class="rack" x="-27" y="18" width="22" height="10" rx="3" />
<rect class="rack" x="5" y="-24" width="22" height="10" rx="3" />
<rect class="rack" x="5" y="-10" width="22" height="10" rx="3" />
<rect class="rack" x="5" y="4" width="22" height="10" rx="3" />
<rect class="rack" x="5" y="18" width="22" height="10" rx="3" />
<circle cx="-10" cy="-19" r="1.6" class="lightG" />
<circle cx="-14" cy="-5" r="1.6" class="lightY" />
<circle cx="-8" cy="9" r="1.6" class="lightG" />
<circle cx="-12" cy="23" r="1.6" class="lightR" />
<circle cx="22" cy="-19" r="1.6" class="lightY" />
<circle cx="18" cy="-5" r="1.6" class="lightG" />
<circle cx="24" cy="9" r="1.6" class="lightY" />
<circle cx="20" cy="23" r="1.6" class="lightG" />
<path class="trace2" d="M-16 -14v-10c0-7 5-12 12-12h8c7 0 12 5 12 12v10" />
<path class="trace2" d="M-16 18v10c0 7 5 12 12 12h8c7 0 12-5 12-12v-10" />
<path class="trace2" d="M-5 -14v28" />
<path class="trace2" d="M5 -14v28" />
<rect x="-6" y="32" width="12" height="8" rx="2.2" fill="#17345f" stroke="#79f7ff" stroke-width="1.4" />
</g>
</svg>