stratumiops/assets/web/stratumiops.svg
Jesús Pérez 1680d80a3d
Some checks failed
Rust CI / Security Audit (push) Has been cancelled
Rust CI / Check + Test + Lint (nightly) (push) Has been cancelled
Rust CI / Check + Test + Lint (stable) (push) Has been cancelled
Nickel Type Check / Nickel Type Checking (push) Has been cancelled
chore: Init repo, add docs
2026-01-22 22:15:19 +00:00

192 lines
11 KiB
XML

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 300" width="800" height="300">
<defs>
<linearGradient id="hpLayerGrad" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" style="stop-color:#6366F1"/>
<stop offset="100%" style="stop-color:#4F46E5"/>
</linearGradient>
<linearGradient id="hpProcessorGrad" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" style="stop-color:#22D3EE"/>
<stop offset="100%" style="stop-color:#06B6D4"/>
</linearGradient>
<linearGradient id="hpFlowGrad" x1="0%" y1="0%" x2="100%" y2="0%">
<stop offset="0%" style="stop-color:#6366F1"/>
<stop offset="50%" style="stop-color:#22D3EE"/>
<stop offset="100%" style="stop-color:#6366F1"/>
<animate attributeName="x1" values="0%;100%;0%" dur="2.5s" repeatCount="indefinite"/>
<animate attributeName="x2" values="100%;200%;100%" dur="2.5s" repeatCount="indefinite"/>
</linearGradient>
<linearGradient id="hpUnderlineGrad" x1="280" y1="195" x2="750" y2="195" gradientUnits="userSpaceOnUse">
<stop offset="0%" style="stop-color:#6366F1"/>
<stop offset="50%" style="stop-color:#22D3EE"/>
<stop offset="100%" style="stop-color:#6366F1"/>
</linearGradient>
<linearGradient id="hpShimmer" x1="0%" y1="0%" x2="100%" y2="0%">
<stop offset="0%" style="stop-color:#6366F1"/>
<stop offset="40%" style="stop-color:#6366F1"/>
<stop offset="50%" style="stop-color:#22D3EE"/>
<stop offset="60%" style="stop-color:#6366F1"/>
<stop offset="100%" style="stop-color:#6366F1"/>
<animate attributeName="x1" values="-100%;100%" dur="3s" repeatCount="indefinite" begin="2s"/>
<animate attributeName="x2" values="0%;200%" dur="3s" repeatCount="indefinite" begin="2s"/>
</linearGradient>
<filter id="hpProcessorGlow" x="-50%" y="-50%" width="200%" height="200%">
<feGaussianBlur stdDeviation="5" result="coloredBlur">
<animate attributeName="stdDeviation" values="4;8;4" dur="1.5s" repeatCount="indefinite"/>
</feGaussianBlur>
<feMerge>
<feMergeNode in="coloredBlur"/>
<feMergeNode in="SourceGraphic"/>
</feMerge>
</filter>
<filter id="hpNodeGlow" x="-50%" y="-50%" width="200%" height="200%">
<feGaussianBlur stdDeviation="3" result="coloredBlur"/>
<feMerge>
<feMergeNode in="coloredBlur"/>
<feMergeNode in="SourceGraphic"/>
</feMerge>
</filter>
<clipPath id="hpTextReveal">
<rect x="280" y="80" width="0" height="150">
<animate attributeName="width" values="0;800" dur="1s" fill="freeze" begin="1s" calcMode="spline" keySplines="0.25 0.1 0.25 1"/>
</rect>
</clipPath>
<path id="hpPathIn1" d="M25 40 Q25 65 55 80 Q85 95 95 100" fill="none"/>
<path id="hpPathIn2" d="M215 40 Q215 65 185 80 Q155 95 145 100" fill="none"/>
<path id="hpPathOut1" d="M95 100 Q85 105 55 120 Q25 135 25 160" fill="none"/>
<path id="hpPathOut2" d="M145 100 Q155 105 185 120 Q215 135 215 160" fill="none"/>
<style>
.hp-wordmark { font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; font-weight: 700; }
</style>
</defs>
<!-- Logo Icon -->
<g transform="translate(20, 50)">
<!-- Layers -->
<rect x="-220" y="18" width="220" height="24" rx="5" fill="url(#hpLayerGrad)" opacity="0.7">
<animate attributeName="x" values="-220;0" dur="0.5s" fill="freeze" calcMode="spline" keySplines="0.25 0.1 0.25 1"/>
<animate attributeName="opacity" values="0.5;0.8;0.5" dur="3s" repeatCount="indefinite" begin="1.5s"/>
</rect>
<rect x="-220" y="88" width="220" height="24" rx="5" fill="url(#hpLayerGrad)">
<animate attributeName="x" values="-220;0" dur="0.5s" fill="freeze" begin="0.15s" calcMode="spline" keySplines="0.25 0.1 0.25 1"/>
</rect>
<rect x="-220" y="158" width="220" height="24" rx="5" fill="url(#hpLayerGrad)" opacity="0.7">
<animate attributeName="x" values="-220;0" dur="0.5s" fill="freeze" begin="0.3s" calcMode="spline" keySplines="0.25 0.1 0.25 1"/>
<animate attributeName="opacity" values="0.8;0.5;0.8" dur="3s" repeatCount="indefinite" begin="1.5s"/>
</rect>
<!-- Flows -->
<path d="M35 42 Q35 65 70 85 Q95 100 95 100" stroke="url(#hpFlowGrad)" stroke-width="3" fill="none" opacity="0" stroke-linecap="round">
<animate attributeName="opacity" values="0;0.6" dur="0.3s" fill="freeze" begin="0.5s"/>
</path>
<path d="M185 42 Q185 65 150 85 Q125 100 125 100" stroke="url(#hpFlowGrad)" stroke-width="3" fill="none" opacity="0" stroke-linecap="round">
<animate attributeName="opacity" values="0;0.6" dur="0.3s" fill="freeze" begin="0.6s"/>
</path>
<path d="M95 100 Q95 100 70 115 Q35 135 35 158" stroke="url(#hpFlowGrad)" stroke-width="3" fill="none" opacity="0" stroke-linecap="round">
<animate attributeName="opacity" values="0;0.6" dur="0.3s" fill="freeze" begin="0.7s"/>
</path>
<path d="M125 100 Q125 100 150 115 Q185 135 185 158" stroke="url(#hpFlowGrad)" stroke-width="3" fill="none" opacity="0" stroke-linecap="round">
<animate attributeName="opacity" values="0;0.6" dur="0.3s" fill="freeze" begin="0.8s"/>
</path>
<!-- Particles -->
<circle r="4" fill="#22D3EE" filter="url(#hpNodeGlow)">
<animateMotion dur="1.2s" repeatCount="indefinite" begin="1.5s">
<mpath href="#hpPathIn1"/>
</animateMotion>
<animate attributeName="opacity" values="1;0.5;0.2" dur="1.2s" repeatCount="indefinite" begin="1.5s"/>
</circle>
<circle r="4" fill="#22D3EE" filter="url(#hpNodeGlow)">
<animateMotion dur="1.2s" repeatCount="indefinite" begin="1.8s">
<mpath href="#hpPathIn2"/>
</animateMotion>
<animate attributeName="opacity" values="1;0.5;0.2" dur="1.2s" repeatCount="indefinite" begin="1.8s"/>
</circle>
<circle r="3" fill="#6366F1">
<animateMotion dur="1.2s" repeatCount="indefinite" begin="2.1s">
<mpath href="#hpPathOut1"/>
</animateMotion>
<animate attributeName="opacity" values="0.2;0.5;1" dur="1.2s" repeatCount="indefinite" begin="2.1s"/>
</circle>
<circle r="3" fill="#6366F1">
<animateMotion dur="1.2s" repeatCount="indefinite" begin="2.4s">
<mpath href="#hpPathOut2"/>
</animateMotion>
<animate attributeName="opacity" values="0.2;0.5;1" dur="1.2s" repeatCount="indefinite" begin="2.4s"/>
</circle>
<!-- I/O Points -->
<circle cx="35" cy="30" r="0" fill="#22D3EE" filter="url(#hpNodeGlow)">
<animate attributeName="r" values="0;6" dur="0.2s" fill="freeze" begin="0.25s"/>
<animate attributeName="r" values="5;7;5" dur="2s" repeatCount="indefinite" begin="1.5s"/>
</circle>
<circle cx="185" cy="30" r="0" fill="#22D3EE" filter="url(#hpNodeGlow)">
<animate attributeName="r" values="0;6" dur="0.2s" fill="freeze" begin="0.3s"/>
<animate attributeName="r" values="6;5;6" dur="2s" repeatCount="indefinite" begin="1.5s"/>
</circle>
<circle cx="35" cy="170" r="0" fill="#6366F1">
<animate attributeName="r" values="0;6" dur="0.2s" fill="freeze" begin="0.4s"/>
<animate attributeName="r" values="5;7;5" dur="2s" repeatCount="indefinite" begin="1.8s"/>
</circle>
<circle cx="185" cy="170" r="0" fill="#6366F1">
<animate attributeName="r" values="0;6" dur="0.2s" fill="freeze" begin="0.45s"/>
<animate attributeName="r" values="6;5;6" dur="2s" repeatCount="indefinite" begin="1.8s"/>
</circle>
<!-- Central processor -->
<rect x="85" y="75" width="50" height="50" rx="9" fill="url(#hpProcessorGrad)" filter="url(#hpProcessorGlow)" opacity="0">
<animate attributeName="opacity" values="0;1" dur="0.3s" fill="freeze" begin="0.45s"/>
</rect>
<rect x="97" y="87" width="26" height="26" rx="5" fill="#ffffff" opacity="0">
<animate attributeName="opacity" values="0;0.95" dur="0.25s" fill="freeze" begin="0.55s"/>
</rect>
<!-- Equalizer bars -->
<rect x="101" y="96" width="4" height="8" rx="1" fill="#22D3EE" opacity="0">
<animate attributeName="opacity" values="0;1" dur="0.15s" fill="freeze" begin="0.7s"/>
<animate attributeName="height" values="8;14;6;10;8" dur="0.6s" repeatCount="indefinite" begin="1.2s"/>
<animate attributeName="y" values="96;93;97;95;96" dur="0.6s" repeatCount="indefinite" begin="1.2s"/>
</rect>
<rect x="108" y="93" width="4" height="14" rx="1" fill="#06B6D4" opacity="0">
<animate attributeName="opacity" values="0;1" dur="0.15s" fill="freeze" begin="0.75s"/>
<animate attributeName="height" values="14;8;12;16;14" dur="0.55s" repeatCount="indefinite" begin="1.25s"/>
<animate attributeName="y" values="93;96;94;92;93" dur="0.55s" repeatCount="indefinite" begin="1.25s"/>
</rect>
<rect x="115" y="95" width="4" height="10" rx="1" fill="#22D3EE" opacity="0">
<animate attributeName="opacity" values="0;1" dur="0.15s" fill="freeze" begin="0.8s"/>
<animate attributeName="height" values="10;16;8;12;10" dur="0.5s" repeatCount="indefinite" begin="1.3s"/>
<animate attributeName="y" values="95;92;96;94;95" dur="0.5s" repeatCount="indefinite" begin="1.3s"/>
</rect>
<!-- Processor pulse -->
<rect x="85" y="75" width="50" height="50" rx="9" fill="none" stroke="#22D3EE" stroke-width="1.5" opacity="0">
<animate attributeName="x" values="85;70" dur="2s" repeatCount="indefinite" begin="1.5s"/>
<animate attributeName="y" values="75;60" dur="2s" repeatCount="indefinite" begin="1.5s"/>
<animate attributeName="width" values="50;80" dur="2s" repeatCount="indefinite" begin="1.5s"/>
<animate attributeName="height" values="50;80" dur="2s" repeatCount="indefinite" begin="1.5s"/>
<animate attributeName="rx" values="9;14" dur="2s" repeatCount="indefinite" begin="1.5s"/>
<animate attributeName="opacity" values="0.5;0" dur="2s" repeatCount="indefinite" begin="1.5s"/>
</rect>
</g>
<!-- Wordmark -->
<g clip-path="url(#hpTextReveal)">
<text x="280" y="175" class="hp-wordmark" font-size="72" fill="url(#hpShimmer)">
Stratum<tspan fill="url(#hpProcessorGrad)">I</tspan>Ops
</text>
</g>
<!-- Cursor -->
<rect x="280" y="115" width="4" height="70" rx="2" fill="#22D3EE" opacity="0">
<animate attributeName="opacity" values="0;1;1;0;0" dur="0.8s" fill="freeze" begin="1s" keyTimes="0;0.1;0.5;0.51;1"/>
<animate attributeName="x" values="280;980" dur="1s" fill="freeze" begin="1s" calcMode="spline" keySplines="0.25 0.1 0.25 1"/>
</rect>
<!-- Underline -->
<line x1="280" y1="195" x2="280" y2="195" stroke="url(#hpUnderlineGrad)" stroke-width="3" stroke-linecap="round" opacity="0">
<animate attributeName="opacity" values="0;0.7" dur="0.1s" fill="freeze" begin="1.4s"/>
<animate attributeName="x2" values="280;750" dur="0.8s" fill="freeze" begin="1.4s" calcMode="spline" keySplines="0.25 0.1 0.25 1"/>
</line>
</svg>