68 lines
3.7 KiB
XML
68 lines
3.7 KiB
XML
<svg viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg">
|
|
<style>
|
|
@keyframes draw-edge {
|
|
from { stroke-dashoffset: 120; }
|
|
to { stroke-dashoffset: 0; }
|
|
}
|
|
@keyframes pop-node {
|
|
0% { r: 0; opacity: 0; }
|
|
70% { r: 8; }
|
|
100% { r: 6; opacity: 1; }
|
|
}
|
|
@keyframes pop-center {
|
|
0% { r: 0; opacity: 0; }
|
|
70% { r: 10; }
|
|
100% { r: 8; opacity: 0.7; }
|
|
}
|
|
@keyframes center-idle {
|
|
0%, 100% { r: 8; opacity: 0.7; }
|
|
50% { r: 9.5; opacity: 0.6; }
|
|
}
|
|
|
|
.edge { stroke-dasharray: 120; stroke-dashoffset: 120; }
|
|
.e-back-1 { animation: draw-edge 0.5s ease-out 0.0s forwards; }
|
|
.e-back-2 { animation: draw-edge 0.5s ease-out 0.1s forwards; }
|
|
.e-back-3 { animation: draw-edge 0.5s ease-out 0.2s forwards; }
|
|
.e-mid-1 { animation: draw-edge 0.5s ease-out 0.35s forwards; }
|
|
.e-mid-2 { animation: draw-edge 0.5s ease-out 0.45s forwards; }
|
|
.e-mid-3 { animation: draw-edge 0.5s ease-out 0.55s forwards; }
|
|
.e-frt-1 { animation: draw-edge 0.5s ease-out 0.7s forwards; }
|
|
.e-frt-2 { animation: draw-edge 0.5s ease-out 0.8s forwards; }
|
|
.e-frt-3 { animation: draw-edge 0.5s ease-out 0.9s forwards; }
|
|
|
|
.v-topback { animation: pop-node 0.3s ease-out 0.05s forwards; r: 0; opacity: 0; }
|
|
.v-backleft { animation: pop-node 0.3s ease-out 0.15s forwards; r: 0; opacity: 0; }
|
|
.v-backright { animation: pop-node 0.3s ease-out 0.25s forwards; r: 0; opacity: 0; }
|
|
.v-center { animation: pop-center 0.3s ease-out 0.5s forwards, center-idle 2.4s ease-in-out 1s infinite; r: 0; opacity: 0; }
|
|
.v-frontleft { animation: pop-node 0.3s ease-out 0.75s forwards; r: 0; opacity: 0; }
|
|
.v-frontright { animation: pop-node 0.3s ease-out 0.85s forwards; r: 0; opacity: 0; }
|
|
.v-bottom { animation: pop-node 0.3s ease-out 0.95s forwards; r: 0; opacity: 0; }
|
|
</style>
|
|
|
|
<rect width="200" height="200" rx="32" fill="#14142a"/>
|
|
|
|
<!-- Back edges -->
|
|
<line x1="100" y1="42" x2="46" y2="72" stroke="#c8c8d0" stroke-width="1.5" stroke-linecap="round" opacity="0.2" class="edge e-back-1"/>
|
|
<line x1="100" y1="42" x2="154" y2="72" stroke="#c8c8d0" stroke-width="1.5" stroke-linecap="round" opacity="0.2" class="edge e-back-2"/>
|
|
<line x1="154" y1="72" x2="154" y2="128" stroke="#c8c8d0" stroke-width="1.5" stroke-linecap="round" opacity="0.2" class="edge e-back-3"/>
|
|
|
|
<!-- Mid edges -->
|
|
<line x1="46" y1="72" x2="100" y2="100" stroke="#c8c8d0" stroke-width="2" stroke-linecap="round" opacity="0.4" class="edge e-mid-1"/>
|
|
<line x1="154" y1="72" x2="100" y2="100" stroke="#c8c8d0" stroke-width="2" stroke-linecap="round" opacity="0.4" class="edge e-mid-2"/>
|
|
<line x1="100" y1="100" x2="100" y2="158" stroke="#c8c8d0" stroke-width="2" stroke-linecap="round" opacity="0.4" class="edge e-mid-3"/>
|
|
|
|
<!-- Front edges -->
|
|
<line x1="46" y1="72" x2="46" y2="128" stroke="#c8c8d0" stroke-width="2.5" stroke-linecap="round" opacity="0.9" class="edge e-frt-1"/>
|
|
<line x1="46" y1="128" x2="100" y2="158" stroke="#c8c8d0" stroke-width="2.5" stroke-linecap="round" opacity="0.9" class="edge e-frt-2"/>
|
|
<line x1="154" y1="128" x2="100" y2="158" stroke="#c8c8d0" stroke-width="2.5" stroke-linecap="round" opacity="0.9" class="edge e-frt-3"/>
|
|
|
|
<!-- Vertices -->
|
|
<circle cx="100" cy="42" fill="#3B82F6" opacity="0.55" class="v-topback"/>
|
|
<circle cx="46" cy="72" fill="#3B82F6" opacity="0.55" class="v-backleft"/>
|
|
<circle cx="154" cy="72" fill="#EF4444" opacity="0.55" class="v-backright"/>
|
|
<circle cx="100" cy="100" fill="#3B82F6" class="v-center"/>
|
|
<circle cx="46" cy="128" fill="#EF4444" class="v-frontleft"/>
|
|
<circle cx="154" cy="128" fill="#3B82F6" class="v-frontright"/>
|
|
<circle cx="100" cy="158" fill="#3B82F6" class="v-bottom"/>
|
|
</svg>
|