update logos and image strucutre

This commit is contained in:
jwinterm
2026-02-07 22:29:23 -05:00
parent 375e7e2868
commit 357d5b4122
63 changed files with 2482 additions and 20 deletions
@@ -0,0 +1,127 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200">
<defs>
<filter id="glow">
<feGaussianBlur stdDeviation="1.5" result="blur"/>
<feMerge>
<feMergeNode in="blur"/>
<feMergeNode in="SourceGraphic"/>
</feMerge>
</filter>
<filter id="pulseGlow">
<feGaussianBlur stdDeviation="3" result="blur"/>
<feMerge>
<feMergeNode in="blur"/>
<feMergeNode in="SourceGraphic"/>
</feMerge>
</filter>
<!-- The Z-trace path as reusable definition -->
<path id="trace" d="m 20,28 h 66 l 6,6 h 16 l 6,-6 h 58 l 6,6 v 60 l -6,6 H 28 l -6,6 v 60 l 6,6 h 58 l 6,-6 h 16 l 6,6 h 52"/>
</defs>
<!-- Background -->
<rect width="200" height="200" rx="26" fill="#0a0a0a"/>
<!-- Base trace (dim) -->
<use href="#trace" fill="none" stroke="#45c99e" stroke-width="2" opacity="0.2"
stroke-linecap="round" stroke-linejoin="round"/>
<!-- Pulse 1: bright traveling dash -->
<use href="#trace" fill="none" stroke="#45c99e" stroke-width="3" opacity="0.9"
stroke-linecap="round" stroke-linejoin="round" filter="url(#pulseGlow)"
stroke-dasharray="30 568">
<animate attributeName="stroke-dashoffset" from="0" to="-598" dur="3s" repeatCount="indefinite"/>
</use>
<!-- Pulse 2: offset by half -->
<use href="#trace" fill="none" stroke="#7ddfbe" stroke-width="2" opacity="0.6"
stroke-linecap="round" stroke-linejoin="round" filter="url(#pulseGlow)"
stroke-dasharray="20 578">
<animate attributeName="stroke-dashoffset" from="-299" to="-897" dur="3s" repeatCount="indefinite"/>
</use>
<!-- Pulse 3: smaller, faster accent -->
<use href="#trace" fill="none" stroke="#ffffff" stroke-width="1.5" opacity="0.4"
stroke-linecap="round" stroke-linejoin="round"
stroke-dasharray="8 590">
<animate attributeName="stroke-dashoffset" from="-100" to="-698" dur="3s" repeatCount="indefinite"/>
</use>
<!-- Nodes that pulse as signal passes -->
<g filter="url(#pulseGlow)">
<!-- Entry node -->
<circle cx="20" cy="28" r="2.5" fill="#45c99e">
<animate attributeName="r" values="2.5;4.5;2.5" dur="3s" repeatCount="indefinite"/>
<animate attributeName="opacity" values="0.5;1;0.5" dur="3s" repeatCount="indefinite"/>
</circle>
<!-- Top chevron -->
<circle cx="92" cy="34" r="2" fill="#45c99e">
<animate attributeName="r" values="2;3.5;2" dur="3s" begin="0.28s" repeatCount="indefinite"/>
<animate attributeName="opacity" values="0.4;1;0.4" dur="3s" begin="0.28s" repeatCount="indefinite"/>
</circle>
<circle cx="108" cy="34" r="2" fill="#45c99e">
<animate attributeName="r" values="2;3.5;2" dur="3s" begin="0.33s" repeatCount="indefinite"/>
<animate attributeName="opacity" values="0.4;1;0.4" dur="3s" begin="0.33s" repeatCount="indefinite"/>
</circle>
<!-- Top-right corner -->
<circle cx="178" cy="34" r="2.5" fill="#45c99e">
<animate attributeName="r" values="2.5;4.5;2.5" dur="3s" begin="0.55s" repeatCount="indefinite"/>
<animate attributeName="opacity" values="0.5;1;0.5" dur="3s" begin="0.55s" repeatCount="indefinite"/>
</circle>
<!-- Right bend -->
<circle cx="172" cy="100" r="2.5" fill="#45c99e">
<animate attributeName="r" values="2.5;4.5;2.5" dur="3s" begin="0.9s" repeatCount="indefinite"/>
<animate attributeName="opacity" values="0.5;1;0.5" dur="3s" begin="0.9s" repeatCount="indefinite"/>
</circle>
<!-- Center -->
<circle cx="100" cy="100" r="2.5" fill="#45c99e">
<animate attributeName="r" values="2.5;5;2.5" dur="3s" begin="1.25s" repeatCount="indefinite"/>
<animate attributeName="opacity" values="0.4;1;0.4" dur="3s" begin="1.25s" repeatCount="indefinite"/>
</circle>
<!-- Left bend -->
<circle cx="28" cy="100" r="2.5" fill="#45c99e">
<animate attributeName="r" values="2.5;4.5;2.5" dur="3s" begin="1.55s" repeatCount="indefinite"/>
<animate attributeName="opacity" values="0.5;1;0.5" dur="3s" begin="1.55s" repeatCount="indefinite"/>
</circle>
<!-- Bottom-left corner -->
<circle cx="22" cy="166" r="2.5" fill="#45c99e">
<animate attributeName="r" values="2.5;4.5;2.5" dur="3s" begin="1.9s" repeatCount="indefinite"/>
<animate attributeName="opacity" values="0.5;1;0.5" dur="3s" begin="1.9s" repeatCount="indefinite"/>
</circle>
<!-- Bottom chevron -->
<circle cx="92" cy="166" r="2" fill="#45c99e">
<animate attributeName="r" values="2;3.5;2" dur="3s" begin="2.2s" repeatCount="indefinite"/>
<animate attributeName="opacity" values="0.4;1;0.4" dur="3s" begin="2.2s" repeatCount="indefinite"/>
</circle>
<circle cx="108" cy="166" r="2" fill="#45c99e">
<animate attributeName="r" values="2;3.5;2" dur="3s" begin="2.25s" repeatCount="indefinite"/>
<animate attributeName="opacity" values="0.4;1;0.4" dur="3s" begin="2.25s" repeatCount="indefinite"/>
</circle>
<!-- Exit node -->
<circle cx="166" cy="172" r="2.5" fill="#45c99e">
<animate attributeName="r" values="2.5;4.5;2.5" dur="3s" begin="2.5s" repeatCount="indefinite"/>
<animate attributeName="opacity" values="0.5;1;0.5" dur="3s" begin="2.5s" repeatCount="indefinite"/>
</circle>
</g>
<!-- Border -->
<rect x="14" y="14" width="172" height="172" rx="16" fill="none"
stroke="#45c99e" stroke-width="3.5" filter="url(#glow)" opacity="0.7"/>
<!-- S -->
<path d="M 78,36 H 36 V 58 H 78 V 82 H 36"
fill="none" stroke="#35925c" stroke-width="14"
stroke-linecap="round" stroke-linejoin="round"/>
<!-- U -->
<path d="m 118,36 v 34 c 0,12.15 9.85,14 22,14 12.15,0 22,-1.85 22,-14 V 36"
fill="none" stroke="#e8689e" stroke-width="14"
stroke-linecap="round" stroke-linejoin="round"/>
<!-- C -->
<path d="M 78,118 H 36 V 164 H 78"
fill="none" stroke="#4aade0" stroke-width="14"
stroke-linecap="round" stroke-linejoin="round"/>
<!-- H -->
<path d="M 118,118 V 164 M 162,118 V 164 M 118,141 H 162"
fill="none" stroke="#45c99e" stroke-width="14"
stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 6.0 KiB

@@ -0,0 +1,127 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200">
<defs>
<filter id="glow">
<feGaussianBlur stdDeviation="1.5" result="blur"/>
<feMerge>
<feMergeNode in="blur"/>
<feMergeNode in="SourceGraphic"/>
</feMerge>
</filter>
<filter id="pulseGlow">
<feGaussianBlur stdDeviation="3" result="blur"/>
<feMerge>
<feMergeNode in="blur"/>
<feMergeNode in="SourceGraphic"/>
</feMerge>
</filter>
<!-- The Z-trace path as reusable definition -->
<path id="trace" d="m 20,28 h 66 l 6,6 h 16 l 6,-6 h 58 l 6,6 v 60 l -6,6 H 28 l -6,6 v 60 l 6,6 h 58 l 6,-6 h 16 l 6,6 h 52"/>
</defs>
<!-- Background -->
<rect width="200" height="200" rx="26" fill="#f5f5f5"/>
<!-- Base trace (dim) -->
<use href="#trace" fill="none" stroke="#1a7a5a" stroke-width="2" opacity="0.2"
stroke-linecap="round" stroke-linejoin="round"/>
<!-- Pulse 1: bright traveling dash -->
<use href="#trace" fill="none" stroke="#1a7a5a" stroke-width="3" opacity="0.7"
stroke-linecap="round" stroke-linejoin="round" filter="url(#pulseGlow)"
stroke-dasharray="30 568">
<animate attributeName="stroke-dashoffset" from="0" to="-598" dur="3s" repeatCount="indefinite"/>
</use>
<!-- Pulse 2: offset by half -->
<use href="#trace" fill="none" stroke="#2a9a6a" stroke-width="2" opacity="0.5"
stroke-linecap="round" stroke-linejoin="round" filter="url(#pulseGlow)"
stroke-dasharray="20 578">
<animate attributeName="stroke-dashoffset" from="-299" to="-897" dur="3s" repeatCount="indefinite"/>
</use>
<!-- Pulse 3: smaller, faster accent -->
<use href="#trace" fill="none" stroke="#333333" stroke-width="1.5" opacity="0.3"
stroke-linecap="round" stroke-linejoin="round"
stroke-dasharray="8 590">
<animate attributeName="stroke-dashoffset" from="-100" to="-698" dur="3s" repeatCount="indefinite"/>
</use>
<!-- Nodes that pulse as signal passes -->
<g filter="url(#pulseGlow)">
<!-- Entry node -->
<circle cx="20" cy="28" r="2.5" fill="#1a7a5a">
<animate attributeName="r" values="2.5;4.5;2.5" dur="3s" repeatCount="indefinite"/>
<animate attributeName="opacity" values="0.5;1;0.5" dur="3s" repeatCount="indefinite"/>
</circle>
<!-- Top chevron -->
<circle cx="92" cy="34" r="2" fill="#1a7a5a">
<animate attributeName="r" values="2;3.5;2" dur="3s" begin="0.28s" repeatCount="indefinite"/>
<animate attributeName="opacity" values="0.4;1;0.4" dur="3s" begin="0.28s" repeatCount="indefinite"/>
</circle>
<circle cx="108" cy="34" r="2" fill="#1a7a5a">
<animate attributeName="r" values="2;3.5;2" dur="3s" begin="0.33s" repeatCount="indefinite"/>
<animate attributeName="opacity" values="0.4;1;0.4" dur="3s" begin="0.33s" repeatCount="indefinite"/>
</circle>
<!-- Top-right corner -->
<circle cx="178" cy="34" r="2.5" fill="#1a7a5a">
<animate attributeName="r" values="2.5;4.5;2.5" dur="3s" begin="0.55s" repeatCount="indefinite"/>
<animate attributeName="opacity" values="0.5;1;0.5" dur="3s" begin="0.55s" repeatCount="indefinite"/>
</circle>
<!-- Right bend -->
<circle cx="172" cy="100" r="2.5" fill="#1a7a5a">
<animate attributeName="r" values="2.5;4.5;2.5" dur="3s" begin="0.9s" repeatCount="indefinite"/>
<animate attributeName="opacity" values="0.5;1;0.5" dur="3s" begin="0.9s" repeatCount="indefinite"/>
</circle>
<!-- Center -->
<circle cx="100" cy="100" r="2.5" fill="#1a7a5a">
<animate attributeName="r" values="2.5;5;2.5" dur="3s" begin="1.25s" repeatCount="indefinite"/>
<animate attributeName="opacity" values="0.4;1;0.4" dur="3s" begin="1.25s" repeatCount="indefinite"/>
</circle>
<!-- Left bend -->
<circle cx="28" cy="100" r="2.5" fill="#1a7a5a">
<animate attributeName="r" values="2.5;4.5;2.5" dur="3s" begin="1.55s" repeatCount="indefinite"/>
<animate attributeName="opacity" values="0.5;1;0.5" dur="3s" begin="1.55s" repeatCount="indefinite"/>
</circle>
<!-- Bottom-left corner -->
<circle cx="22" cy="166" r="2.5" fill="#1a7a5a">
<animate attributeName="r" values="2.5;4.5;2.5" dur="3s" begin="1.9s" repeatCount="indefinite"/>
<animate attributeName="opacity" values="0.5;1;0.5" dur="3s" begin="1.9s" repeatCount="indefinite"/>
</circle>
<!-- Bottom chevron -->
<circle cx="92" cy="166" r="2" fill="#1a7a5a">
<animate attributeName="r" values="2;3.5;2" dur="3s" begin="2.2s" repeatCount="indefinite"/>
<animate attributeName="opacity" values="0.4;1;0.4" dur="3s" begin="2.2s" repeatCount="indefinite"/>
</circle>
<circle cx="108" cy="166" r="2" fill="#1a7a5a">
<animate attributeName="r" values="2;3.5;2" dur="3s" begin="2.25s" repeatCount="indefinite"/>
<animate attributeName="opacity" values="0.4;1;0.4" dur="3s" begin="2.25s" repeatCount="indefinite"/>
</circle>
<!-- Exit node -->
<circle cx="166" cy="172" r="2.5" fill="#1a7a5a">
<animate attributeName="r" values="2.5;4.5;2.5" dur="3s" begin="2.5s" repeatCount="indefinite"/>
<animate attributeName="opacity" values="0.5;1;0.5" dur="3s" begin="2.5s" repeatCount="indefinite"/>
</circle>
</g>
<!-- Border -->
<rect x="14" y="14" width="172" height="172" rx="16" fill="none"
stroke="#1a7a5a" stroke-width="3.5" filter="url(#glow)" opacity="0.5"/>
<!-- S -->
<path d="M 78,36 H 36 V 58 H 78 V 82 H 36"
fill="none" stroke="#1e6e45" stroke-width="14"
stroke-linecap="round" stroke-linejoin="round"/>
<!-- U -->
<path d="m 118,36 v 34 c 0,12.15 9.85,14 22,14 12.15,0 22,-1.85 22,-14 V 36"
fill="none" stroke="#c44e7a" stroke-width="14"
stroke-linecap="round" stroke-linejoin="round"/>
<!-- C -->
<path d="M 78,118 H 36 V 164 H 78"
fill="none" stroke="#2e85b8" stroke-width="14"
stroke-linecap="round" stroke-linejoin="round"/>
<!-- H -->
<path d="M 118,118 V 164 M 162,118 V 164 M 118,141 H 162"
fill="none" stroke="#1a7a5a" stroke-width="14"
stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 6.0 KiB

@@ -0,0 +1,205 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200">
<defs>
<filter id="glow">
<feGaussianBlur stdDeviation="1.5" result="blur"/>
<feMerge>
<feMergeNode in="blur"/>
<feMergeNode in="SourceGraphic"/>
</feMerge>
</filter>
<filter id="megaGlow">
<feGaussianBlur stdDeviation="5" result="blur"/>
<feMerge>
<feMergeNode in="blur"/>
<feMergeNode in="blur"/>
<feMergeNode in="SourceGraphic"/>
</feMerge>
</filter>
<filter id="warpGlow">
<feGaussianBlur stdDeviation="8" result="blur"/>
<feMerge>
<feMergeNode in="blur"/>
<feMergeNode in="SourceGraphic"/>
</feMerge>
</filter>
<path id="trace" d="m 20,28 h 66 l 6,6 h 16 l 6,-6 h 58 l 6,6 v 60 l -6,6 H 28 l -6,6 v 60 l 6,6 h 58 l 6,-6 h 16 l 6,6 h 52"/>
<!-- Animated gradient for border -->
<linearGradient id="shiftGrad" x1="0" y1="0" x2="1" y2="1">
<stop offset="0%">
<animate attributeName="stop-color" values="#35925c;#e8689e;#4aade0;#45c99e;#35925c" dur="4s" repeatCount="indefinite"/>
</stop>
<stop offset="50%">
<animate attributeName="stop-color" values="#4aade0;#45c99e;#e8689e;#35925c;#4aade0" dur="4s" repeatCount="indefinite"/>
</stop>
<stop offset="100%">
<animate attributeName="stop-color" values="#e8689e;#4aade0;#35925c;#e8689e;#e8689e" dur="4s" repeatCount="indefinite"/>
</stop>
</linearGradient>
<!-- Radial pulse for shockwaves -->
<radialGradient id="shockS" cx="57" cy="59" r="50" gradientUnits="userSpaceOnUse">
<stop offset="0%" stop-color="#35925c" stop-opacity="0.6"/>
<stop offset="100%" stop-color="#35925c" stop-opacity="0"/>
</radialGradient>
<radialGradient id="shockU" cx="140" cy="55" r="50" gradientUnits="userSpaceOnUse">
<stop offset="0%" stop-color="#e8689e" stop-opacity="0.6"/>
<stop offset="100%" stop-color="#e8689e" stop-opacity="0"/>
</radialGradient>
<radialGradient id="shockC" cx="57" cy="141" r="50" gradientUnits="userSpaceOnUse">
<stop offset="0%" stop-color="#4aade0" stop-opacity="0.6"/>
<stop offset="100%" stop-color="#4aade0" stop-opacity="0"/>
</radialGradient>
<radialGradient id="shockH" cx="140" cy="141" r="50" gradientUnits="userSpaceOnUse">
<stop offset="0%" stop-color="#45c99e" stop-opacity="0.6"/>
<stop offset="100%" stop-color="#45c99e" stop-opacity="0"/>
</radialGradient>
<clipPath id="roundClip">
<rect width="200" height="200" rx="26"/>
</clipPath>
</defs>
<!-- Background -->
<rect width="200" height="200" rx="26" fill="#050508"/>
<!-- Matrix rain columns (clipped to rounded rect) -->
<g clip-path="url(#roundClip)" opacity="0.12" font-family="'SF Mono','Fira Code',monospace" font-size="10" fill="#45c99e">
<text x="10" y="0"><animate attributeName="y" from="-20" to="220" dur="2.1s" repeatCount="indefinite"/>01</text>
<text x="25" y="0"><animate attributeName="y" from="-60" to="220" dur="1.8s" repeatCount="indefinite"/>{ }</text>
<text x="42" y="0"><animate attributeName="y" from="-40" to="220" dur="2.5s" repeatCount="indefinite"/>S</text>
<text x="58" y="0"><animate attributeName="y" from="-80" to="220" dur="1.6s" repeatCount="indefinite"/>10</text>
<text x="74" y="0"><animate attributeName="y" from="-10" to="220" dur="2.8s" repeatCount="indefinite"/>U</text>
<text x="90" y="0"><animate attributeName="y" from="-50" to="220" dur="2.0s" repeatCount="indefinite"/>0x</text>
<text x="106" y="0"><animate attributeName="y" from="-90" to="220" dur="1.7s" repeatCount="indefinite"/>C</text>
<text x="122" y="0"><animate attributeName="y" from="-30" to="220" dur="2.3s" repeatCount="indefinite"/>fn</text>
<text x="138" y="0"><animate attributeName="y" from="-70" to="220" dur="1.9s" repeatCount="indefinite"/>H</text>
<text x="154" y="0"><animate attributeName="y" from="-15" to="220" dur="2.6s" repeatCount="indefinite"/>;</text>
<text x="170" y="0"><animate attributeName="y" from="-55" to="220" dur="2.2s" repeatCount="indefinite"/>=></text>
<text x="185" y="0"><animate attributeName="y" from="-35" to="220" dur="1.5s" repeatCount="indefinite"/>[]</text>
</g>
<!-- Shockwave rings when letters appear -->
<circle cx="57" cy="59" r="0" fill="url(#shockS)" opacity="0">
<animate attributeName="r" values="0;0;0;60;0;0" keyTimes="0;0.14;0.15;0.25;0.26;1" dur="6s" repeatCount="indefinite"/>
<animate attributeName="opacity" values="0;0;0.5;0;0;0" keyTimes="0;0.14;0.15;0.25;0.26;1" dur="6s" repeatCount="indefinite"/>
</circle>
<circle cx="140" cy="55" r="0" fill="url(#shockU)" opacity="0">
<animate attributeName="r" values="0;0;0;60;0;0" keyTimes="0;0.29;0.3;0.4;0.41;1" dur="6s" repeatCount="indefinite"/>
<animate attributeName="opacity" values="0;0;0.5;0;0;0" keyTimes="0;0.29;0.3;0.4;0.41;1" dur="6s" repeatCount="indefinite"/>
</circle>
<circle cx="57" cy="141" r="0" fill="url(#shockC)" opacity="0">
<animate attributeName="r" values="0;0;0;60;0;0" keyTimes="0;0.44;0.45;0.55;0.56;1" dur="6s" repeatCount="indefinite"/>
<animate attributeName="opacity" values="0;0;0.5;0;0;0" keyTimes="0;0.44;0.45;0.55;0.56;1" dur="6s" repeatCount="indefinite"/>
</circle>
<circle cx="140" cy="141" r="0" fill="url(#shockH)" opacity="0">
<animate attributeName="r" values="0;0;0;60;0;0" keyTimes="0;0.59;0.6;0.7;0.71;1" dur="6s" repeatCount="indefinite"/>
<animate attributeName="opacity" values="0;0;0.5;0;0;0" keyTimes="0;0.59;0.6;0.7;0.71;1" dur="6s" repeatCount="indefinite"/>
</circle>
<!-- Electrified circuit trace: multiple overlapping animated strokes -->
<use href="#trace" fill="none" stroke="#45c99e" stroke-width="2" opacity="0.25"
stroke-linecap="round" stroke-linejoin="round"/>
<!-- Fast pulse 1 -->
<use href="#trace" fill="none" stroke="#7ddfbe" stroke-width="3" opacity="0.8"
stroke-linecap="round" filter="url(#megaGlow)"
stroke-dasharray="15 583">
<animate attributeName="stroke-dashoffset" from="0" to="-598" dur="1.5s" repeatCount="indefinite"/>
</use>
<!-- Fast pulse 2 (opposite direction feel - offset) -->
<use href="#trace" fill="none" stroke="#ffffff" stroke-width="1.5" opacity="0.5"
stroke-linecap="round"
stroke-dasharray="5 593">
<animate attributeName="stroke-dashoffset" from="-200" to="-798" dur="1.5s" repeatCount="indefinite"/>
</use>
<!-- Crackle: erratic short dashes -->
<use href="#trace" fill="none" stroke="#45c99e" stroke-width="4" opacity="0.3"
stroke-linecap="round" filter="url(#glow)"
stroke-dasharray="3 40 8 60 2 80 5 400">
<animate attributeName="stroke-dashoffset" from="0" to="-598" dur="2.3s" repeatCount="indefinite"/>
<animate attributeName="opacity" values="0.3;0.6;0.1;0.5;0.2;0.3" dur="0.7s" repeatCount="indefinite"/>
</use>
<!-- Nodes: pulsing orbs with halos -->
<g filter="url(#megaGlow)">
<circle cx="20" cy="28" r="2.5" fill="#45c99e">
<animate attributeName="r" values="2;5;2" dur="1.5s" repeatCount="indefinite"/>
<animate attributeName="opacity" values="0.6;1;0.6" dur="1.5s" repeatCount="indefinite"/>
</circle>
<circle cx="100" cy="100" r="3" fill="#ffffff">
<animate attributeName="r" values="3;7;3" dur="2s" repeatCount="indefinite"/>
<animate attributeName="opacity" values="0.3;0.8;0.3" dur="2s" repeatCount="indefinite"/>
<animate attributeName="fill" values="#45c99e;#e8689e;#4aade0;#45c99e" dur="4s" repeatCount="indefinite"/>
</circle>
<circle cx="166" cy="172" r="2.5" fill="#45c99e">
<animate attributeName="r" values="2;5;2" dur="1.5s" begin="0.75s" repeatCount="indefinite"/>
<animate attributeName="opacity" values="0.6;1;0.6" dur="1.5s" begin="0.75s" repeatCount="indefinite"/>
</circle>
<!-- Corner nodes -->
<circle cx="178" cy="34" r="2" fill="#e8689e">
<animate attributeName="r" values="2;4;2" dur="1.8s" begin="0.3s" repeatCount="indefinite"/>
</circle>
<circle cx="172" cy="100" r="2" fill="#4aade0">
<animate attributeName="r" values="2;4;2" dur="1.8s" begin="0.6s" repeatCount="indefinite"/>
</circle>
<circle cx="28" cy="100" r="2" fill="#e8689e">
<animate attributeName="r" values="2;4;2" dur="1.8s" begin="0.9s" repeatCount="indefinite"/>
</circle>
<circle cx="22" cy="166" r="2" fill="#4aade0">
<animate attributeName="r" values="2;4;2" dur="1.8s" begin="1.2s" repeatCount="indefinite"/>
</circle>
</g>
<!-- Color-shifting animated border -->
<rect x="14" y="14" width="172" height="172" rx="16" fill="none"
stroke="url(#shiftGrad)" stroke-width="3.5" filter="url(#glow)">
<animate attributeName="opacity" values="0.7;1;0.7" dur="2s" repeatCount="indefinite"/>
</rect>
<!-- S slams in with scale -->
<g transform-origin="57 59">
<animateTransform attributeName="transform" type="scale"
values="0;0;1.15;1;1;1;0" keyTimes="0;0.14;0.17;0.2;0.85;0.95;1"
dur="6s" repeatCount="indefinite"/>
<path d="M 78,36 H 36 V 58 H 78 V 82 H 36"
fill="none" stroke="#35925c" stroke-width="14"
stroke-linecap="round" stroke-linejoin="round" filter="url(#glow)"/>
</g>
<!-- U slams in -->
<g transform-origin="140 55">
<animateTransform attributeName="transform" type="scale"
values="0;0;1.15;1;1;1;0" keyTimes="0;0.29;0.32;0.35;0.85;0.95;1"
dur="6s" repeatCount="indefinite"/>
<path d="m 118,36 v 34 c 0,12.15 9.85,14 22,14 12.15,0 22,-1.85 22,-14 V 36"
fill="none" stroke="#e8689e" stroke-width="14"
stroke-linecap="round" stroke-linejoin="round" filter="url(#glow)"/>
</g>
<!-- C slams in -->
<g transform-origin="57 141">
<animateTransform attributeName="transform" type="scale"
values="0;0;1.15;1;1;1;0" keyTimes="0;0.44;0.47;0.5;0.85;0.95;1"
dur="6s" repeatCount="indefinite"/>
<path d="M 78,118 H 36 V 164 H 78"
fill="none" stroke="#4aade0" stroke-width="14"
stroke-linecap="round" stroke-linejoin="round" filter="url(#glow)"/>
</g>
<!-- H slams in -->
<g transform-origin="140 141">
<animateTransform attributeName="transform" type="scale"
values="0;0;1.15;1;1;1;0" keyTimes="0;0.59;0.62;0.65;0.85;0.95;1"
dur="6s" repeatCount="indefinite"/>
<path d="M 118,118 V 164 M 162,118 V 164 M 118,141 H 162"
fill="none" stroke="#45c99e" stroke-width="14"
stroke-linecap="round" stroke-linejoin="round" filter="url(#glow)"/>
</g>
<!-- Final flash on complete -->
<rect width="200" height="200" rx="26" fill="#ffffff" opacity="0">
<animate attributeName="opacity" values="0;0;0.15;0;0;0" keyTimes="0;0.64;0.66;0.72;0.95;1" dur="6s" repeatCount="indefinite"/>
</rect>
</svg>

After

Width:  |  Height:  |  Size: 11 KiB

@@ -0,0 +1,205 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200">
<defs>
<filter id="glow">
<feGaussianBlur stdDeviation="1.5" result="blur"/>
<feMerge>
<feMergeNode in="blur"/>
<feMergeNode in="SourceGraphic"/>
</feMerge>
</filter>
<filter id="megaGlow">
<feGaussianBlur stdDeviation="5" result="blur"/>
<feMerge>
<feMergeNode in="blur"/>
<feMergeNode in="blur"/>
<feMergeNode in="SourceGraphic"/>
</feMerge>
</filter>
<filter id="warpGlow">
<feGaussianBlur stdDeviation="8" result="blur"/>
<feMerge>
<feMergeNode in="blur"/>
<feMergeNode in="SourceGraphic"/>
</feMerge>
</filter>
<path id="trace" d="m 20,28 h 66 l 6,6 h 16 l 6,-6 h 58 l 6,6 v 60 l -6,6 H 28 l -6,6 v 60 l 6,6 h 58 l 6,-6 h 16 l 6,6 h 52"/>
<!-- Animated gradient for border -->
<linearGradient id="shiftGrad" x1="0" y1="0" x2="1" y2="1">
<stop offset="0%">
<animate attributeName="stop-color" values="#1e6e45;#c44e7a;#2e85b8;#1a7a5a;#1e6e45" dur="4s" repeatCount="indefinite"/>
</stop>
<stop offset="50%">
<animate attributeName="stop-color" values="#2e85b8;#1a7a5a;#c44e7a;#1e6e45;#2e85b8" dur="4s" repeatCount="indefinite"/>
</stop>
<stop offset="100%">
<animate attributeName="stop-color" values="#c44e7a;#2e85b8;#1e6e45;#c44e7a;#c44e7a" dur="4s" repeatCount="indefinite"/>
</stop>
</linearGradient>
<!-- Radial pulse for shockwaves -->
<radialGradient id="shockS" cx="57" cy="59" r="50" gradientUnits="userSpaceOnUse">
<stop offset="0%" stop-color="#1e6e45" stop-opacity="0.4"/>
<stop offset="100%" stop-color="#1e6e45" stop-opacity="0"/>
</radialGradient>
<radialGradient id="shockU" cx="140" cy="55" r="50" gradientUnits="userSpaceOnUse">
<stop offset="0%" stop-color="#c44e7a" stop-opacity="0.4"/>
<stop offset="100%" stop-color="#c44e7a" stop-opacity="0"/>
</radialGradient>
<radialGradient id="shockC" cx="57" cy="141" r="50" gradientUnits="userSpaceOnUse">
<stop offset="0%" stop-color="#2e85b8" stop-opacity="0.4"/>
<stop offset="100%" stop-color="#2e85b8" stop-opacity="0"/>
</radialGradient>
<radialGradient id="shockH" cx="140" cy="141" r="50" gradientUnits="userSpaceOnUse">
<stop offset="0%" stop-color="#1a7a5a" stop-opacity="0.4"/>
<stop offset="100%" stop-color="#1a7a5a" stop-opacity="0"/>
</radialGradient>
<clipPath id="roundClip">
<rect width="200" height="200" rx="26"/>
</clipPath>
</defs>
<!-- Background -->
<rect width="200" height="200" rx="26" fill="#f5f5f5"/>
<!-- Matrix rain columns (clipped to rounded rect) -->
<g clip-path="url(#roundClip)" opacity="0.1" font-family="'SF Mono','Fira Code',monospace" font-size="10" fill="#1a7a5a">
<text x="10" y="0"><animate attributeName="y" from="-20" to="220" dur="2.1s" repeatCount="indefinite"/>01</text>
<text x="25" y="0"><animate attributeName="y" from="-60" to="220" dur="1.8s" repeatCount="indefinite"/>{ }</text>
<text x="42" y="0"><animate attributeName="y" from="-40" to="220" dur="2.5s" repeatCount="indefinite"/>S</text>
<text x="58" y="0"><animate attributeName="y" from="-80" to="220" dur="1.6s" repeatCount="indefinite"/>10</text>
<text x="74" y="0"><animate attributeName="y" from="-10" to="220" dur="2.8s" repeatCount="indefinite"/>U</text>
<text x="90" y="0"><animate attributeName="y" from="-50" to="220" dur="2.0s" repeatCount="indefinite"/>0x</text>
<text x="106" y="0"><animate attributeName="y" from="-90" to="220" dur="1.7s" repeatCount="indefinite"/>C</text>
<text x="122" y="0"><animate attributeName="y" from="-30" to="220" dur="2.3s" repeatCount="indefinite"/>fn</text>
<text x="138" y="0"><animate attributeName="y" from="-70" to="220" dur="1.9s" repeatCount="indefinite"/>H</text>
<text x="154" y="0"><animate attributeName="y" from="-15" to="220" dur="2.6s" repeatCount="indefinite"/>;</text>
<text x="170" y="0"><animate attributeName="y" from="-55" to="220" dur="2.2s" repeatCount="indefinite"/>=></text>
<text x="185" y="0"><animate attributeName="y" from="-35" to="220" dur="1.5s" repeatCount="indefinite"/>[]</text>
</g>
<!-- Shockwave rings when letters appear -->
<circle cx="57" cy="59" r="0" fill="url(#shockS)" opacity="0">
<animate attributeName="r" values="0;0;0;60;0;0" keyTimes="0;0.14;0.15;0.25;0.26;1" dur="6s" repeatCount="indefinite"/>
<animate attributeName="opacity" values="0;0;0.4;0;0;0" keyTimes="0;0.14;0.15;0.25;0.26;1" dur="6s" repeatCount="indefinite"/>
</circle>
<circle cx="140" cy="55" r="0" fill="url(#shockU)" opacity="0">
<animate attributeName="r" values="0;0;0;60;0;0" keyTimes="0;0.29;0.3;0.4;0.41;1" dur="6s" repeatCount="indefinite"/>
<animate attributeName="opacity" values="0;0;0.4;0;0;0" keyTimes="0;0.29;0.3;0.4;0.41;1" dur="6s" repeatCount="indefinite"/>
</circle>
<circle cx="57" cy="141" r="0" fill="url(#shockC)" opacity="0">
<animate attributeName="r" values="0;0;0;60;0;0" keyTimes="0;0.44;0.45;0.55;0.56;1" dur="6s" repeatCount="indefinite"/>
<animate attributeName="opacity" values="0;0;0.4;0;0;0" keyTimes="0;0.44;0.45;0.55;0.56;1" dur="6s" repeatCount="indefinite"/>
</circle>
<circle cx="140" cy="141" r="0" fill="url(#shockH)" opacity="0">
<animate attributeName="r" values="0;0;0;60;0;0" keyTimes="0;0.59;0.6;0.7;0.71;1" dur="6s" repeatCount="indefinite"/>
<animate attributeName="opacity" values="0;0;0.4;0;0;0" keyTimes="0;0.59;0.6;0.7;0.71;1" dur="6s" repeatCount="indefinite"/>
</circle>
<!-- Electrified circuit trace -->
<use href="#trace" fill="none" stroke="#1a7a5a" stroke-width="2" opacity="0.2"
stroke-linecap="round" stroke-linejoin="round"/>
<!-- Fast pulse 1 -->
<use href="#trace" fill="none" stroke="#2a9a6a" stroke-width="3" opacity="0.6"
stroke-linecap="round" filter="url(#megaGlow)"
stroke-dasharray="15 583">
<animate attributeName="stroke-dashoffset" from="0" to="-598" dur="1.5s" repeatCount="indefinite"/>
</use>
<!-- Fast pulse 2 -->
<use href="#trace" fill="none" stroke="#333333" stroke-width="1.5" opacity="0.35"
stroke-linecap="round"
stroke-dasharray="5 593">
<animate attributeName="stroke-dashoffset" from="-200" to="-798" dur="1.5s" repeatCount="indefinite"/>
</use>
<!-- Crackle -->
<use href="#trace" fill="none" stroke="#1a7a5a" stroke-width="4" opacity="0.2"
stroke-linecap="round" filter="url(#glow)"
stroke-dasharray="3 40 8 60 2 80 5 400">
<animate attributeName="stroke-dashoffset" from="0" to="-598" dur="2.3s" repeatCount="indefinite"/>
<animate attributeName="opacity" values="0.2;0.4;0.08;0.35;0.15;0.2" dur="0.7s" repeatCount="indefinite"/>
</use>
<!-- Nodes: pulsing orbs -->
<g filter="url(#megaGlow)">
<circle cx="20" cy="28" r="2.5" fill="#1a7a5a">
<animate attributeName="r" values="2;5;2" dur="1.5s" repeatCount="indefinite"/>
<animate attributeName="opacity" values="0.6;1;0.6" dur="1.5s" repeatCount="indefinite"/>
</circle>
<circle cx="100" cy="100" r="3" fill="#666666">
<animate attributeName="r" values="3;7;3" dur="2s" repeatCount="indefinite"/>
<animate attributeName="opacity" values="0.2;0.6;0.2" dur="2s" repeatCount="indefinite"/>
<animate attributeName="fill" values="#1a7a5a;#c44e7a;#2e85b8;#1a7a5a" dur="4s" repeatCount="indefinite"/>
</circle>
<circle cx="166" cy="172" r="2.5" fill="#1a7a5a">
<animate attributeName="r" values="2;5;2" dur="1.5s" begin="0.75s" repeatCount="indefinite"/>
<animate attributeName="opacity" values="0.6;1;0.6" dur="1.5s" begin="0.75s" repeatCount="indefinite"/>
</circle>
<!-- Corner nodes -->
<circle cx="178" cy="34" r="2" fill="#c44e7a">
<animate attributeName="r" values="2;4;2" dur="1.8s" begin="0.3s" repeatCount="indefinite"/>
</circle>
<circle cx="172" cy="100" r="2" fill="#2e85b8">
<animate attributeName="r" values="2;4;2" dur="1.8s" begin="0.6s" repeatCount="indefinite"/>
</circle>
<circle cx="28" cy="100" r="2" fill="#c44e7a">
<animate attributeName="r" values="2;4;2" dur="1.8s" begin="0.9s" repeatCount="indefinite"/>
</circle>
<circle cx="22" cy="166" r="2" fill="#2e85b8">
<animate attributeName="r" values="2;4;2" dur="1.8s" begin="1.2s" repeatCount="indefinite"/>
</circle>
</g>
<!-- Color-shifting animated border -->
<rect x="14" y="14" width="172" height="172" rx="16" fill="none"
stroke="url(#shiftGrad)" stroke-width="3.5" filter="url(#glow)">
<animate attributeName="opacity" values="0.5;0.8;0.5" dur="2s" repeatCount="indefinite"/>
</rect>
<!-- S slams in with scale -->
<g transform-origin="57 59">
<animateTransform attributeName="transform" type="scale"
values="0;0;1.15;1;1;1;0" keyTimes="0;0.14;0.17;0.2;0.85;0.95;1"
dur="6s" repeatCount="indefinite"/>
<path d="M 78,36 H 36 V 58 H 78 V 82 H 36"
fill="none" stroke="#1e6e45" stroke-width="14"
stroke-linecap="round" stroke-linejoin="round" filter="url(#glow)"/>
</g>
<!-- U slams in -->
<g transform-origin="140 55">
<animateTransform attributeName="transform" type="scale"
values="0;0;1.15;1;1;1;0" keyTimes="0;0.29;0.32;0.35;0.85;0.95;1"
dur="6s" repeatCount="indefinite"/>
<path d="m 118,36 v 34 c 0,12.15 9.85,14 22,14 12.15,0 22,-1.85 22,-14 V 36"
fill="none" stroke="#c44e7a" stroke-width="14"
stroke-linecap="round" stroke-linejoin="round" filter="url(#glow)"/>
</g>
<!-- C slams in -->
<g transform-origin="57 141">
<animateTransform attributeName="transform" type="scale"
values="0;0;1.15;1;1;1;0" keyTimes="0;0.44;0.47;0.5;0.85;0.95;1"
dur="6s" repeatCount="indefinite"/>
<path d="M 78,118 H 36 V 164 H 78"
fill="none" stroke="#2e85b8" stroke-width="14"
stroke-linecap="round" stroke-linejoin="round" filter="url(#glow)"/>
</g>
<!-- H slams in -->
<g transform-origin="140 141">
<animateTransform attributeName="transform" type="scale"
values="0;0;1.15;1;1;1;0" keyTimes="0;0.59;0.62;0.65;0.85;0.95;1"
dur="6s" repeatCount="indefinite"/>
<path d="M 118,118 V 164 M 162,118 V 164 M 118,141 H 162"
fill="none" stroke="#1a7a5a" stroke-width="14"
stroke-linecap="round" stroke-linejoin="round" filter="url(#glow)"/>
</g>
<!-- Final flash on complete -->
<rect width="200" height="200" rx="26" fill="#1a7a5a" opacity="0">
<animate attributeName="opacity" values="0;0;0.08;0;0;0" keyTimes="0;0.64;0.66;0.72;0.95;1" dur="6s" repeatCount="indefinite"/>
</rect>
</svg>

After

Width:  |  Height:  |  Size: 11 KiB

@@ -0,0 +1,125 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200">
<defs>
<filter id="glow">
<feGaussianBlur stdDeviation="1.2" result="blur"/>
<feMerge>
<feMergeNode in="blur"/>
<feMergeNode in="SourceGraphic"/>
</feMerge>
</filter>
<filter id="bigGlow">
<feGaussianBlur stdDeviation="3" result="blur"/>
<feMerge>
<feMergeNode in="blur"/>
<feMergeNode in="SourceGraphic"/>
</feMerge>
</filter>
<pattern id="scan" patternUnits="userSpaceOnUse" width="200" height="4">
<rect width="200" height="1.5" fill="#ffffff" opacity="0.012"/>
</pattern>
<clipPath id="roundClip"><rect width="200" height="200" rx="26"/></clipPath>
</defs>
<!-- Background -->
<rect width="200" height="200" rx="26" fill="#08090c"/>
<rect width="200" height="200" rx="26" fill="url(#scan)"/>
<!-- Border -->
<rect x="14" y="14" width="172" height="172" rx="16" fill="none"
stroke="#45c99e" stroke-width="3" filter="url(#glow)" opacity="0.6"/>
<!-- Command prompt text: "> such_" typed out -->
<g clip-path="url(#roundClip)">
<!-- Prompt caret ">" always visible during typing phase -->
<text x="30" y="110" font-family="'SF Mono','Fira Code','Courier New',monospace"
font-size="26" font-weight="bold" fill="#45c99e" opacity="0">
<animate attributeName="opacity" values="0;0;0.5;0.5;0;0"
keyTimes="0;0.04;0.05;0.35;0.38;1" dur="6s" repeatCount="indefinite"/>
>
</text>
<!-- "s" -->
<text x="52" y="110" font-family="'SF Mono','Fira Code','Courier New',monospace"
font-size="26" font-weight="bold" fill="#35925c" opacity="0">
<animate attributeName="opacity" values="0;0;0.8;0.8;0;0"
keyTimes="0;0.07;0.08;0.35;0.38;1" dur="6s" repeatCount="indefinite"/>
s
</text>
<!-- "u" -->
<text x="68" y="110" font-family="'SF Mono','Fira Code','Courier New',monospace"
font-size="26" font-weight="bold" fill="#e8689e" opacity="0">
<animate attributeName="opacity" values="0;0;0.8;0.8;0;0"
keyTimes="0;0.12;0.13;0.35;0.38;1" dur="6s" repeatCount="indefinite"/>
u
</text>
<!-- "c" -->
<text x="84" y="110" font-family="'SF Mono','Fira Code','Courier New',monospace"
font-size="26" font-weight="bold" fill="#4aade0" opacity="0">
<animate attributeName="opacity" values="0;0;0.8;0.8;0;0"
keyTimes="0;0.17;0.18;0.35;0.38;1" dur="6s" repeatCount="indefinite"/>
c
</text>
<!-- "h" -->
<text x="100" y="110" font-family="'SF Mono','Fira Code','Courier New',monospace"
font-size="26" font-weight="bold" fill="#45c99e" opacity="0">
<animate attributeName="opacity" values="0;0;0.8;0.8;0;0"
keyTimes="0;0.22;0.23;0.35;0.38;1" dur="6s" repeatCount="indefinite"/>
h
</text>
<!-- Blinking cursor for the command line -->
<rect x="116" y="90" width="13" height="22" rx="2" fill="#e8689e">
<animate attributeName="opacity" values="0;0;0.8;0;0.8;0;0.8;0;0.8;0;0"
keyTimes="0;0.06;0.07;0.1;0.11;0.15;0.16;0.2;0.21;0.35;0.38"
dur="6s" repeatCount="indefinite"/>
<!-- Cursor follows text as it types -->
<animate attributeName="x"
values="52;52;68;68;84;84;100;100;116;116"
keyTimes="0;0.07;0.08;0.12;0.13;0.17;0.18;0.22;0.23;1"
dur="6s" repeatCount="indefinite"/>
</rect>
</g>
<!-- After typing, text fades and letters EXPAND into position -->
<!-- S materializes -->
<path d="M 78,36 H 36 V 58 H 78 V 82 H 36"
fill="none" stroke="#35925c" stroke-width="14"
stroke-linecap="round" stroke-linejoin="round" filter="url(#glow)"
opacity="0">
<animate attributeName="opacity" values="0;0;1;1;0"
keyTimes="0;0.38;0.45;0.88;0.96" dur="6s" repeatCount="indefinite"/>
</path>
<!-- U materializes -->
<path d="m 118,36 v 34 c 0,12.15 9.85,14 22,14 12.15,0 22,-1.85 22,-14 V 36"
fill="none" stroke="#e8689e" stroke-width="14"
stroke-linecap="round" stroke-linejoin="round" filter="url(#glow)"
opacity="0">
<animate attributeName="opacity" values="0;0;1;1;0"
keyTimes="0;0.42;0.49;0.88;0.96" dur="6s" repeatCount="indefinite"/>
</path>
<!-- C materializes -->
<path d="M 78,118 H 36 V 164 H 78"
fill="none" stroke="#4aade0" stroke-width="14"
stroke-linecap="round" stroke-linejoin="round" filter="url(#glow)"
opacity="0">
<animate attributeName="opacity" values="0;0;1;1;0"
keyTimes="0;0.46;0.53;0.88;0.96" dur="6s" repeatCount="indefinite"/>
</path>
<!-- H materializes -->
<path d="M 118,118 V 164 M 162,118 V 164 M 118,141 H 162"
fill="none" stroke="#45c99e" stroke-width="14"
stroke-linecap="round" stroke-linejoin="round" filter="url(#glow)"
opacity="0">
<animate attributeName="opacity" values="0;0;1;1;0"
keyTimes="0;0.5;0.57;0.88;0.96" dur="6s" repeatCount="indefinite"/>
</path>
<!-- Flash when letters appear -->
<rect width="200" height="200" rx="26" fill="#45c99e" opacity="0">
<animate attributeName="opacity" values="0;0;0.08;0;0"
keyTimes="0;0.37;0.39;0.44;1" dur="6s" repeatCount="indefinite"/>
</rect>
</svg>

After

Width:  |  Height:  |  Size: 5.2 KiB

@@ -0,0 +1,125 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200">
<defs>
<filter id="glow">
<feGaussianBlur stdDeviation="1.2" result="blur"/>
<feMerge>
<feMergeNode in="blur"/>
<feMergeNode in="SourceGraphic"/>
</feMerge>
</filter>
<filter id="bigGlow">
<feGaussianBlur stdDeviation="3" result="blur"/>
<feMerge>
<feMergeNode in="blur"/>
<feMergeNode in="SourceGraphic"/>
</feMerge>
</filter>
<pattern id="scan" patternUnits="userSpaceOnUse" width="200" height="4">
<rect width="200" height="1.5" fill="#000000" opacity="0.015"/>
</pattern>
<clipPath id="roundClip"><rect width="200" height="200" rx="26"/></clipPath>
</defs>
<!-- Background -->
<rect width="200" height="200" rx="26" fill="#f5f5f5"/>
<rect width="200" height="200" rx="26" fill="url(#scan)"/>
<!-- Border -->
<rect x="14" y="14" width="172" height="172" rx="16" fill="none"
stroke="#1a7a5a" stroke-width="3" filter="url(#glow)" opacity="0.4"/>
<!-- Command prompt text: "> such_" typed out -->
<g clip-path="url(#roundClip)">
<!-- Prompt caret ">" always visible during typing phase -->
<text x="30" y="110" font-family="'SF Mono','Fira Code','Courier New',monospace"
font-size="26" font-weight="bold" fill="#1a7a5a" opacity="0">
<animate attributeName="opacity" values="0;0;0.5;0.5;0;0"
keyTimes="0;0.04;0.05;0.35;0.38;1" dur="6s" repeatCount="indefinite"/>
>
</text>
<!-- "s" -->
<text x="52" y="110" font-family="'SF Mono','Fira Code','Courier New',monospace"
font-size="26" font-weight="bold" fill="#1e6e45" opacity="0">
<animate attributeName="opacity" values="0;0;0.8;0.8;0;0"
keyTimes="0;0.07;0.08;0.35;0.38;1" dur="6s" repeatCount="indefinite"/>
s
</text>
<!-- "u" -->
<text x="68" y="110" font-family="'SF Mono','Fira Code','Courier New',monospace"
font-size="26" font-weight="bold" fill="#c44e7a" opacity="0">
<animate attributeName="opacity" values="0;0;0.8;0.8;0;0"
keyTimes="0;0.12;0.13;0.35;0.38;1" dur="6s" repeatCount="indefinite"/>
u
</text>
<!-- "c" -->
<text x="84" y="110" font-family="'SF Mono','Fira Code','Courier New',monospace"
font-size="26" font-weight="bold" fill="#2e85b8" opacity="0">
<animate attributeName="opacity" values="0;0;0.8;0.8;0;0"
keyTimes="0;0.17;0.18;0.35;0.38;1" dur="6s" repeatCount="indefinite"/>
c
</text>
<!-- "h" -->
<text x="100" y="110" font-family="'SF Mono','Fira Code','Courier New',monospace"
font-size="26" font-weight="bold" fill="#1a7a5a" opacity="0">
<animate attributeName="opacity" values="0;0;0.8;0.8;0;0"
keyTimes="0;0.22;0.23;0.35;0.38;1" dur="6s" repeatCount="indefinite"/>
h
</text>
<!-- Blinking cursor for the command line -->
<rect x="116" y="90" width="13" height="22" rx="2" fill="#c44e7a">
<animate attributeName="opacity" values="0;0;0.8;0;0.8;0;0.8;0;0.8;0;0"
keyTimes="0;0.06;0.07;0.1;0.11;0.15;0.16;0.2;0.21;0.35;0.38"
dur="6s" repeatCount="indefinite"/>
<!-- Cursor follows text as it types -->
<animate attributeName="x"
values="52;52;68;68;84;84;100;100;116;116"
keyTimes="0;0.07;0.08;0.12;0.13;0.17;0.18;0.22;0.23;1"
dur="6s" repeatCount="indefinite"/>
</rect>
</g>
<!-- After typing, text fades and letters EXPAND into position -->
<!-- S materializes -->
<path d="M 78,36 H 36 V 58 H 78 V 82 H 36"
fill="none" stroke="#1e6e45" stroke-width="14"
stroke-linecap="round" stroke-linejoin="round" filter="url(#glow)"
opacity="0">
<animate attributeName="opacity" values="0;0;1;1;0"
keyTimes="0;0.38;0.45;0.88;0.96" dur="6s" repeatCount="indefinite"/>
</path>
<!-- U materializes -->
<path d="m 118,36 v 34 c 0,12.15 9.85,14 22,14 12.15,0 22,-1.85 22,-14 V 36"
fill="none" stroke="#c44e7a" stroke-width="14"
stroke-linecap="round" stroke-linejoin="round" filter="url(#glow)"
opacity="0">
<animate attributeName="opacity" values="0;0;1;1;0"
keyTimes="0;0.42;0.49;0.88;0.96" dur="6s" repeatCount="indefinite"/>
</path>
<!-- C materializes -->
<path d="M 78,118 H 36 V 164 H 78"
fill="none" stroke="#2e85b8" stroke-width="14"
stroke-linecap="round" stroke-linejoin="round" filter="url(#glow)"
opacity="0">
<animate attributeName="opacity" values="0;0;1;1;0"
keyTimes="0;0.46;0.53;0.88;0.96" dur="6s" repeatCount="indefinite"/>
</path>
<!-- H materializes -->
<path d="M 118,118 V 164 M 162,118 V 164 M 118,141 H 162"
fill="none" stroke="#1a7a5a" stroke-width="14"
stroke-linecap="round" stroke-linejoin="round" filter="url(#glow)"
opacity="0">
<animate attributeName="opacity" values="0;0;1;1;0"
keyTimes="0;0.5;0.57;0.88;0.96" dur="6s" repeatCount="indefinite"/>
</path>
<!-- Flash when letters appear -->
<rect width="200" height="200" rx="26" fill="#1a7a5a" opacity="0">
<animate attributeName="opacity" values="0;0;0.05;0;0"
keyTimes="0;0.37;0.39;0.44;1" dur="6s" repeatCount="indefinite"/>
</rect>
</svg>

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

@@ -0,0 +1,220 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 632.87714 200"
version="1.1"
id="svg266"
sodipodi:docname="circuit_light_w_colortext.svg"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
width="632.87714"
height="200"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs270">
<linearGradient
inkscape:collect="always"
id="linearGradient10868">
<stop
style="stop-color:#1a5c38;stop-opacity:1;"
offset="0"
id="stop10864" />
<stop
style="stop-color:#b83670;stop-opacity:1;"
offset="0.33980843"
id="stop11424" />
<stop
style="stop-color:#1a749e;stop-opacity:1;"
offset="0.65709108"
id="stop11426" />
<stop
style="stop-color:#278063;stop-opacity:1;"
offset="1"
id="stop10866" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient10868"
id="linearGradient10870"
x1="209.93192"
y1="98.885666"
x2="619.01202"
y2="98.885666"
gradientUnits="userSpaceOnUse" />
</defs>
<sodipodi:namedview
id="namedview268"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
inkscape:zoom="0.90774833"
inkscape:cx="125.03466"
inkscape:cy="311.20961"
inkscape:window-width="1452"
inkscape:window-height="1233"
inkscape:window-x="3989"
inkscape:window-y="445"
inkscape:window-maximized="0"
inkscape:current-layer="svg266" />
<!-- Background -->
<rect
width="632.87714"
height="200"
fill="#0a0a0a"
id="rect2"
x="0"
y="0"
style="fill:#ffffff;stroke-width:1.77887"
ry="22.926825" />
<text
xml:space="preserve"
style="font-weight:bold;font-size:84px;line-height:81.6378px;font-family:'Archivo Black';-inkscape-font-specification:'Archivo Black, Bold';fill:url(#linearGradient10870);fill-opacity:1;stroke:#ffffff;stroke-width:15"
x="206.31992"
y="88.012764"
id="text1510"><tspan
sodipodi:role="line"
id="tspan1508"
x="206.31992"
y="88.012764"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:84px;font-family:'Archivo Black';-inkscape-font-specification:'Archivo Black, ';fill:url(#linearGradient10870);fill-opacity:1;stroke:none">Such</tspan><tspan
sodipodi:role="line"
x="206.31992"
y="169.65056"
id="tspan1512"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:84px;font-family:'Archivo Black';-inkscape-font-specification:'Archivo Black, ';fill:url(#linearGradient10870);fill-opacity:1;stroke:none">Software</tspan></text>
<rect
width="200"
height="200"
rx="26"
fill="#f7f8fa"
id="rect228"
x="0"
y="0" />
<!-- Single unbroken Z-trace -->
<path
d="m 20,28 h 66 l 6,6 h 16 l 6,-6 h 58 l 6,6 v 60 l -6,6 H 28 l -6,6 v 60 l 6,6 h 58 l 6,-6 h 16 l 6,6 h 58"
fill="none"
stroke="#1a5c38"
stroke-width="2"
opacity="0.18"
stroke-linecap="round"
stroke-linejoin="round"
id="path230"
sodipodi:nodetypes="cccccccccccccccccc" />
<!-- Nodes on trace vertices -->
<g
fill="#1a5c38"
opacity="0.22"
id="g254">
<circle
cx="20"
cy="28"
r="2.5"
id="circle232" />
<circle
cx="92"
cy="34"
r="2"
id="circle234" />
<circle
cx="108"
cy="34"
r="2"
id="circle236" />
<circle
cx="178"
cy="34"
r="2.5"
id="circle238" />
<circle
cx="172"
cy="100"
r="2.5"
id="circle240" />
<circle
cx="100"
cy="100"
r="2"
id="circle242" />
<circle
cx="28"
cy="100"
r="2.5"
id="circle244" />
<circle
cx="22"
cy="166"
r="2.5"
id="circle246" />
<circle
cx="92"
cy="166"
r="2"
id="circle248" />
<circle
cx="108"
cy="166"
r="2"
id="circle250" />
<circle
cx="172"
cy="172"
r="2.5"
id="circle252" />
</g>
<!-- Border -->
<rect
x="14"
y="14"
width="172"
height="172"
rx="16"
fill="none"
stroke="#1a5c38"
stroke-width="3.5"
opacity="0.45"
id="rect256" />
<!-- S - deep forest (7.5:1) -->
<path
d="M 78,36 H 36 V 58 H 78 V 82 H 36"
fill="none"
stroke="#1a5c38"
stroke-width="14"
stroke-linecap="round"
stroke-linejoin="round"
id="path258" />
<!-- U - deep rose (5.2:1) -->
<path
d="m 118,36 v 34 c 0,12.15 9.85,16 22,16 12.15,0 22,-3.85 22,-16 V 36"
fill="none"
stroke="#b83670"
stroke-width="14"
stroke-linecap="round"
stroke-linejoin="round"
id="path260" />
<!-- C - deep blue (4.9:1) -->
<path
d="M 78,118 H 36 v 46 h 42"
fill="none"
stroke="#1a749e"
stroke-width="14"
stroke-linecap="round"
stroke-linejoin="round"
id="path262" />
<!-- H - deep teal (4.5:1) -->
<path
d="m 118,118 v 46 m 44,-46 v 46 m -44,-23 h 44"
fill="none"
stroke="#278063"
stroke-width="14"
stroke-linecap="round"
stroke-linejoin="round"
id="path264" />
</svg>

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

@@ -0,0 +1,189 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 632.87714 200"
version="1.1"
id="svg266"
sodipodi:docname="circuit_light_w_text.svg"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
width="632.87714"
height="200"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs270" />
<sodipodi:namedview
id="namedview268"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
inkscape:zoom="0.90774833"
inkscape:cx="36.904502"
inkscape:cy="311.20961"
inkscape:window-width="1452"
inkscape:window-height="1233"
inkscape:window-x="3989"
inkscape:window-y="445"
inkscape:window-maximized="0"
inkscape:current-layer="svg266" />
<!-- Background -->
<rect
width="632.87714"
height="200"
fill="#0a0a0a"
id="rect2"
x="0"
y="0"
style="fill:#ffffff;stroke-width:1.77887"
ry="22.926825" />
<text
xml:space="preserve"
style="font-weight:bold;font-size:84px;line-height:81.6378px;font-family:'Archivo Black';-inkscape-font-specification:'Archivo Black, Bold';fill:#000000;stroke:#ffffff;stroke-width:15"
x="206.31992"
y="88.012764"
id="text1510"><tspan
sodipodi:role="line"
id="tspan1508"
x="206.31992"
y="88.012764"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:84px;font-family:'Archivo Black';-inkscape-font-specification:'Archivo Black, ';fill:#000000;fill-opacity:1;stroke:none">Such</tspan><tspan
sodipodi:role="line"
x="206.31992"
y="169.65056"
id="tspan1512"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:84px;font-family:'Archivo Black';-inkscape-font-specification:'Archivo Black, ';fill:#000000;fill-opacity:1;stroke:none">Software</tspan></text>
<rect
width="200"
height="200"
rx="26"
fill="#f7f8fa"
id="rect228"
x="0"
y="0" />
<!-- Single unbroken Z-trace -->
<path
d="m 20,28 h 66 l 6,6 h 16 l 6,-6 h 58 l 6,6 v 60 l -6,6 H 28 l -6,6 v 60 l 6,6 h 58 l 6,-6 h 16 l 6,6 h 58"
fill="none"
stroke="#1a5c38"
stroke-width="2"
opacity="0.18"
stroke-linecap="round"
stroke-linejoin="round"
id="path230"
sodipodi:nodetypes="cccccccccccccccccc" />
<!-- Nodes on trace vertices -->
<g
fill="#1a5c38"
opacity="0.22"
id="g254">
<circle
cx="20"
cy="28"
r="2.5"
id="circle232" />
<circle
cx="92"
cy="34"
r="2"
id="circle234" />
<circle
cx="108"
cy="34"
r="2"
id="circle236" />
<circle
cx="178"
cy="34"
r="2.5"
id="circle238" />
<circle
cx="172"
cy="100"
r="2.5"
id="circle240" />
<circle
cx="100"
cy="100"
r="2"
id="circle242" />
<circle
cx="28"
cy="100"
r="2.5"
id="circle244" />
<circle
cx="22"
cy="166"
r="2.5"
id="circle246" />
<circle
cx="92"
cy="166"
r="2"
id="circle248" />
<circle
cx="108"
cy="166"
r="2"
id="circle250" />
<circle
cx="172"
cy="172"
r="2.5"
id="circle252" />
</g>
<!-- Border -->
<rect
x="14"
y="14"
width="172"
height="172"
rx="16"
fill="none"
stroke="#1a5c38"
stroke-width="3.5"
opacity="0.45"
id="rect256" />
<!-- S - deep forest (7.5:1) -->
<path
d="M 78,36 H 36 V 58 H 78 V 82 H 36"
fill="none"
stroke="#1a5c38"
stroke-width="14"
stroke-linecap="round"
stroke-linejoin="round"
id="path258" />
<!-- U - deep rose (5.2:1) -->
<path
d="m 118,36 v 34 c 0,12.15 9.85,16 22,16 12.15,0 22,-3.85 22,-16 V 36"
fill="none"
stroke="#b83670"
stroke-width="14"
stroke-linecap="round"
stroke-linejoin="round"
id="path260" />
<!-- C - deep blue (4.9:1) -->
<path
d="M 78,118 H 36 v 46 h 42"
fill="none"
stroke="#1a749e"
stroke-width="14"
stroke-linecap="round"
stroke-linejoin="round"
id="path262" />
<!-- H - deep teal (4.5:1) -->
<path
d="m 118,118 v 46 m 44,-46 v 46 m -44,-23 h 44"
fill="none"
stroke="#278063"
stroke-width="14"
stroke-linecap="round"
stroke-linejoin="round"
id="path264" />
</svg>

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

@@ -0,0 +1,38 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200">
<defs>
<filter id="glow">
<feGaussianBlur stdDeviation="1.2" result="blur"/>
<feMerge>
<feMergeNode in="blur"/>
<feMergeNode in="SourceGraphic"/>
</feMerge>
</filter>
</defs>
<!-- Background -->
<rect width="200" height="200" rx="26" fill="#0a0a0a"/>
<!-- Border -->
<rect x="14" y="14" width="172" height="172" rx="16" fill="none"
stroke="#45c99e" stroke-width="3.5" filter="url(#glow)" opacity="0.7"/>
<!-- S - green (5.1:1) -->
<path d="M 78,36 H 36 V 58 H 78 V 82 H 36"
fill="none" stroke="#35925c" stroke-width="14"
stroke-linecap="round" stroke-linejoin="round"/>
<!-- U - rose (6.5:1) -->
<path d="m 118,36 v 34 c 0,12.15 9.85,14 22,14 12.15,0 22,-1.85 22,-14 V 36"
fill="none" stroke="#e8689e" stroke-width="14"
stroke-linecap="round" stroke-linejoin="round"/>
<!-- C - blue (7.9:1) -->
<path d="M 78,118 H 36 V 164 H 78"
fill="none" stroke="#4aade0" stroke-width="14"
stroke-linecap="round" stroke-linejoin="round"/>
<!-- H - teal (9.5:1) -->
<path d="M 118,118 V 164 M 162,118 V 164 M 118,141 H 162"
fill="none" stroke="#45c99e" stroke-width="14"
stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

@@ -0,0 +1,131 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 632.87714 200"
version="1.1"
id="svg642"
sodipodi:docname="clean_dark_w_text.svg"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
width="632.87714"
height="200"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview644"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
inkscape:zoom="0.641875"
inkscape:cx="222.00584"
inkscape:cy="239.14314"
inkscape:window-width="1452"
inkscape:window-height="1233"
inkscape:window-x="4173"
inkscape:window-y="670"
inkscape:window-maximized="0"
inkscape:current-layer="svg642" />
<defs
id="defs628">
<filter
id="glow"
x="-0.026918605"
y="-0.026918605"
width="1.0538372"
height="1.0538372">
<feGaussianBlur
stdDeviation="1.2"
result="blur"
id="feGaussianBlur619" />
<feMerge
id="feMerge625">
<feMergeNode
in="blur"
id="feMergeNode621" />
<feMergeNode
in="SourceGraphic"
id="feMergeNode623" />
</feMerge>
</filter>
</defs>
<!-- Background -->
<!-- Border -->
<rect
width="632.87714"
height="200"
fill="#0a0a0a"
id="rect2"
x="0"
y="0"
style="stroke-width:1.77887"
ry="22.926825" />
<text
xml:space="preserve"
style="font-weight:bold;font-size:84px;line-height:81.6378px;font-family:'Archivo Black';-inkscape-font-specification:'Archivo Black, Bold';fill:#ffffff;stroke:#ffffff;stroke-width:15"
x="206.31992"
y="88.012764"
id="text1510"><tspan
sodipodi:role="line"
id="tspan1508"
x="206.31992"
y="88.012764"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:84px;font-family:'Archivo Black';-inkscape-font-specification:'Archivo Black, ';fill:#ffffff;fill-opacity:1;stroke:none">Such</tspan><tspan
sodipodi:role="line"
x="206.31992"
y="169.65056"
id="tspan1512"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:84px;font-family:'Archivo Black';-inkscape-font-specification:'Archivo Black, ';fill:#ffffff;fill-opacity:1;stroke:none">Software</tspan></text>
<rect
x="14"
y="14"
width="172"
height="172"
rx="16"
fill="none"
stroke="#45c99e"
stroke-width="3.5"
filter="url(#glow)"
opacity="0.7"
id="rect632" />
<!-- S - green (5.1:1) -->
<path
d="M 78,36 H 36 V 58 H 78 V 82 H 36"
fill="none"
stroke="#35925c"
stroke-width="14"
stroke-linecap="round"
stroke-linejoin="round"
id="path634" />
<!-- U - rose (6.5:1) -->
<path
d="m 118,36 v 34 c 0,12.15 9.85,14 22,14 12.15,0 22,-1.85 22,-14 V 36"
fill="none"
stroke="#e8689e"
stroke-width="14"
stroke-linecap="round"
stroke-linejoin="round"
id="path636" />
<!-- C - blue (7.9:1) -->
<path
d="M 78,118 H 36 v 46 h 42"
fill="none"
stroke="#4aade0"
stroke-width="14"
stroke-linecap="round"
stroke-linejoin="round"
id="path638" />
<!-- H - teal (9.5:1) -->
<path
d="m 118,118 v 46 m 44,-46 v 46 m -44,-23 h 44"
fill="none"
stroke="#45c99e"
stroke-width="14"
stroke-linecap="round"
stroke-linejoin="round"
id="path640" />
</svg>

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

@@ -0,0 +1,88 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 200 200"
version="1.1"
id="svg14"
sodipodi:docname="clean_greyscale_on_black.svg"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs18" />
<sodipodi:namedview
id="namedview16"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
inkscape:zoom="2.5675"
inkscape:cx="113.92405"
inkscape:cy="156.3778"
inkscape:window-width="1452"
inkscape:window-height="1233"
inkscape:window-x="5530"
inkscape:window-y="448"
inkscape:window-maximized="0"
inkscape:current-layer="svg14" />
<!-- Background -->
<rect
width="200"
height="200"
rx="26"
fill="#0a0a0a"
id="rect2" />
<!-- Border -->
<rect
x="14"
y="14"
width="172"
height="172"
rx="16"
fill="none"
stroke="#e8e8e8"
stroke-width="3.5"
opacity="0.35"
id="rect4" />
<!-- S -->
<path
d="M 78,36 H 36 V 58 H 78 V 82 H 36"
fill="none"
stroke="#e8e8e8"
stroke-width="14"
stroke-linecap="round"
stroke-linejoin="round"
id="path6" />
<!-- U -->
<path
d="m 118,36 v 34 c 0,12.15 9.85,14 22,14 12.15,0 22,-1.85 22,-14 V 36"
fill="none"
stroke="#e8e8e8"
stroke-width="14"
stroke-linecap="round"
stroke-linejoin="round"
id="path8" />
<!-- C -->
<path
d="M 78,118 H 36 V 164 H 78"
fill="none"
stroke="#e8e8e8"
stroke-width="14"
stroke-linecap="round"
stroke-linejoin="round"
id="path10" />
<!-- H -->
<path
d="M 118,118 V 164 M 162,118 V 164 M 118,141 H 162"
fill="none"
stroke="#e8e8e8"
stroke-width="14"
stroke-linecap="round"
stroke-linejoin="round"
id="path12" />
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

@@ -0,0 +1,88 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 200 200"
version="1.1"
id="svg205"
sodipodi:docname="clean_greyscale_on_white.svg"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs209" />
<sodipodi:namedview
id="namedview207"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
inkscape:zoom="2.5675"
inkscape:cx="96.397274"
inkscape:cy="132.61928"
inkscape:window-width="1452"
inkscape:window-height="1233"
inkscape:window-x="3922"
inkscape:window-y="481"
inkscape:window-maximized="0"
inkscape:current-layer="svg205" />
<!-- Background -->
<rect
width="200"
height="200"
rx="26"
fill="#ffffff"
id="rect193" />
<!-- Border -->
<rect
x="14"
y="14"
width="172"
height="172"
rx="16"
fill="none"
stroke="#1a1a1a"
stroke-width="3.5"
opacity="0.35"
id="rect195" />
<!-- S -->
<path
d="M 78,36 H 36 V 58 H 78 V 82 H 36"
fill="none"
stroke="#1a1a1a"
stroke-width="14"
stroke-linecap="round"
stroke-linejoin="round"
id="path197" />
<!-- U -->
<path
d="m 118,36 v 34 c 0,12.15 9.85,16 22,16 12.15,0 22,-3.85 22,-16 V 36"
fill="none"
stroke="#1a1a1a"
stroke-width="14"
stroke-linecap="round"
stroke-linejoin="round"
id="path199" />
<!-- C -->
<path
d="M 78,118 H 36 V 164 H 78"
fill="none"
stroke="#1a1a1a"
stroke-width="14"
stroke-linecap="round"
stroke-linejoin="round"
id="path201" />
<!-- H -->
<path
d="M 118,118 V 164 M 162,118 V 164 M 118,141 H 162"
fill="none"
stroke="#1a1a1a"
stroke-width="14"
stroke-linecap="round"
stroke-linejoin="round"
id="path203" />
</svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

@@ -0,0 +1,28 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200">
<!-- Background -->
<rect width="200" height="200" rx="26" fill="#f7f8fa"/>
<!-- Border -->
<rect x="14" y="14" width="172" height="172" rx="16" fill="none"
stroke="#1a5c38" stroke-width="3.5" opacity="0.45"/>
<!-- S - deep forest (7.5:1) -->
<path d="M 78,36 H 36 V 58 H 78 V 82 H 36"
fill="none" stroke="#1a5c38" stroke-width="14"
stroke-linecap="round" stroke-linejoin="round"/>
<!-- U - deep rose (5.2:1) -->
<path d="m 118,36 v 34 c 0,12.15 9.85,16 22,16 12.15,0 22,-3.85 22,-16 V 36"
fill="none" stroke="#b83670" stroke-width="14"
stroke-linecap="round" stroke-linejoin="round"/>
<!-- C - deep blue (4.9:1) -->
<path d="M 78,118 H 36 V 164 H 78"
fill="none" stroke="#1a749e" stroke-width="14"
stroke-linecap="round" stroke-linejoin="round"/>
<!-- H - deep teal (4.5:1) -->
<path d="M 118,118 V 164 M 162,118 V 164 M 118,141 H 162"
fill="none" stroke="#278063" stroke-width="14"
stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

@@ -0,0 +1,117 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 632.87714 200"
version="1.1"
id="svg1027"
sodipodi:docname="clean_light_w_text.svg"
width="632.87714"
height="200"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs1031" />
<sodipodi:namedview
id="namedview1029"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
inkscape:zoom="1.28375"
inkscape:cx="172.54138"
inkscape:cy="199.80526"
inkscape:window-width="1452"
inkscape:window-height="1233"
inkscape:window-x="3840"
inkscape:window-y="840"
inkscape:window-maximized="0"
inkscape:current-layer="svg1027" />
<!-- Background -->
<rect
width="632.87714"
height="200"
fill="#0a0a0a"
id="rect2"
x="0"
y="0"
style="fill:#ffffff;stroke-width:1.77887"
ry="22.926825" />
<text
xml:space="preserve"
style="font-weight:bold;font-size:84px;line-height:81.6378px;font-family:'Archivo Black';-inkscape-font-specification:'Archivo Black, Bold';fill:#000000;stroke:#ffffff;stroke-width:15"
x="206.31992"
y="88.012756"
id="text1510"><tspan
sodipodi:role="line"
id="tspan1508"
x="206.31992"
y="88.012756"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:84px;font-family:'Archivo Black';-inkscape-font-specification:'Archivo Black, ';fill:#000000;fill-opacity:1;stroke:none">Such</tspan><tspan
sodipodi:role="line"
x="206.31992"
y="169.65056"
id="tspan1512"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:84px;font-family:'Archivo Black';-inkscape-font-specification:'Archivo Black, ';fill:#000000;fill-opacity:1;stroke:none">Software</tspan></text>
<rect
width="200"
height="200"
rx="26"
fill="#f7f8fa"
id="rect1015"
x="0"
y="0" />
<!-- Border -->
<rect
x="14"
y="14"
width="172"
height="172"
rx="16"
fill="none"
stroke="#1a5c38"
stroke-width="3.5"
opacity="0.45"
id="rect1017" />
<!-- S - deep forest (7.5:1) -->
<path
d="M 78,36 H 36 V 58 H 78 V 82 H 36"
fill="none"
stroke="#1a5c38"
stroke-width="14"
stroke-linecap="round"
stroke-linejoin="round"
id="path1019" />
<!-- U - deep rose (5.2:1) -->
<path
d="m 118,36 v 34 c 0,12.15 9.85,16 22,16 12.15,0 22,-3.85 22,-16 V 36"
fill="none"
stroke="#b83670"
stroke-width="14"
stroke-linecap="round"
stroke-linejoin="round"
id="path1021" />
<!-- C - deep blue (4.9:1) -->
<path
d="M 78,118 H 36 v 46 h 42"
fill="none"
stroke="#1a749e"
stroke-width="14"
stroke-linecap="round"
stroke-linejoin="round"
id="path1023" />
<!-- H - deep teal (4.5:1) -->
<path
d="m 118,118 v 46 m 44,-46 v 46 m -44,-23 h 44"
fill="none"
stroke="#278063"
stroke-width="14"
stroke-linecap="round"
stroke-linejoin="round"
id="path1025" />
</svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

@@ -0,0 +1,89 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 200 200"
version="1.1"
id="svg14"
sodipodi:docname="clean_mono_on_black.svg"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs18" />
<sodipodi:namedview
id="namedview16"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
inkscape:zoom="3.6309933"
inkscape:cx="77.526995"
inkscape:cy="127.37561"
inkscape:window-width="1452"
inkscape:window-height="1233"
inkscape:window-x="5530"
inkscape:window-y="448"
inkscape:window-maximized="0"
inkscape:current-layer="svg14" />
<!-- Background -->
<rect
width="200"
height="200"
rx="26"
fill="#0a0a0a"
id="rect2" />
<!-- Border -->
<rect
x="14"
y="14"
width="172"
height="172"
rx="16"
fill="none"
stroke="#e8e8e8"
stroke-width="3.5"
opacity="0.35"
id="rect4"
style="stroke:#ffffff;stroke-opacity:1;opacity:1" />
<!-- S -->
<path
d="M 78,36 H 36 V 58 H 78 V 82 H 36"
fill="none"
stroke="#e8e8e8"
stroke-width="14"
stroke-linecap="round"
stroke-linejoin="round"
id="path6" />
<!-- U -->
<path
d="m 118,36 v 34 c 0,12.15 9.85,14 22,14 12.15,0 22,-1.85 22,-14 V 36"
fill="none"
stroke="#e8e8e8"
stroke-width="14"
stroke-linecap="round"
stroke-linejoin="round"
id="path8" />
<!-- C -->
<path
d="M 78,118 H 36 V 164 H 78"
fill="none"
stroke="#e8e8e8"
stroke-width="14"
stroke-linecap="round"
stroke-linejoin="round"
id="path10" />
<!-- H -->
<path
d="M 118,118 V 164 M 162,118 V 164 M 118,141 H 162"
fill="none"
stroke="#e8e8e8"
stroke-width="14"
stroke-linecap="round"
stroke-linejoin="round"
id="path12" />
</svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

@@ -0,0 +1,114 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 632.87714 200"
version="1.1"
id="svg14"
sodipodi:docname="clean_mono_on_black_w_text.svg"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
width="632.87714"
height="200"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs18" />
<sodipodi:namedview
id="namedview16"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
inkscape:zoom="1.28375"
inkscape:cx="256.28043"
inkscape:cy="87.633886"
inkscape:window-width="2445"
inkscape:window-height="1233"
inkscape:window-x="5070"
inkscape:window-y="185"
inkscape:window-maximized="0"
inkscape:current-layer="svg14" />
<!-- Background -->
<rect
width="632.87714"
height="200"
fill="#0a0a0a"
id="rect2"
x="0"
y="0"
style="stroke-width:1.77887"
ry="22.926825" />
<!-- Border -->
<rect
x="14"
y="14"
width="172"
height="172"
rx="16"
fill="none"
stroke="#e8e8e8"
stroke-width="3.5"
opacity="0.35"
id="rect4"
style="opacity:1;stroke:#ffffff;stroke-opacity:1" />
<!-- S -->
<path
d="M 78,36 H 36 V 58 H 78 V 82 H 36"
fill="none"
stroke="#e8e8e8"
stroke-width="14"
stroke-linecap="round"
stroke-linejoin="round"
id="path6"
style="stroke:#ffffff;stroke-opacity:1" />
<!-- U -->
<path
d="m 118,36 v 34 c 0,12.15 9.85,14 22,14 12.15,0 22,-1.85 22,-14 V 36"
fill="none"
stroke="#e8e8e8"
stroke-width="14"
stroke-linecap="round"
stroke-linejoin="round"
id="path8"
style="stroke:#ffffff;stroke-opacity:1" />
<!-- C -->
<path
d="M 78,118 H 36 v 46 h 42"
fill="none"
stroke="#e8e8e8"
stroke-width="14"
stroke-linecap="round"
stroke-linejoin="round"
id="path10"
style="stroke:#ffffff;stroke-opacity:1" />
<!-- H -->
<path
d="m 118,118 v 46 m 44,-46 v 46 m -44,-23 h 44"
fill="none"
stroke="#e8e8e8"
stroke-width="14"
stroke-linecap="round"
stroke-linejoin="round"
id="path12"
style="stroke:#ffffff;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-weight:bold;font-size:84px;line-height:81.6378px;font-family:'Archivo Black';-inkscape-font-specification:'Archivo Black, Bold';fill:#ffffff;stroke:#ffffff;stroke-width:15"
x="206.31992"
y="88.012764"
id="text1510"><tspan
sodipodi:role="line"
id="tspan1508"
x="206.31992"
y="88.012764"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:84px;font-family:'Archivo Black';-inkscape-font-specification:'Archivo Black, ';fill:#ffffff;fill-opacity:1;stroke:none">Such</tspan><tspan
sodipodi:role="line"
x="206.31992"
y="169.65056"
id="tspan1512"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:84px;font-family:'Archivo Black';-inkscape-font-specification:'Archivo Black, ';fill:#ffffff;fill-opacity:1;stroke:none">Software</tspan></text>
</svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

@@ -0,0 +1,89 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 200 200"
version="1.1"
id="svg205"
sodipodi:docname="clean_mono_on_white.svg"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs209" />
<sodipodi:namedview
id="namedview207"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
inkscape:zoom="2.5675"
inkscape:cx="96.397274"
inkscape:cy="132.61928"
inkscape:window-width="1452"
inkscape:window-height="1233"
inkscape:window-x="3922"
inkscape:window-y="481"
inkscape:window-maximized="0"
inkscape:current-layer="svg205" />
<!-- Background -->
<rect
width="200"
height="200"
rx="26"
fill="#ffffff"
id="rect193" />
<!-- Border -->
<rect
x="14"
y="14"
width="172"
height="172"
rx="16"
fill="none"
stroke="#1a1a1a"
stroke-width="3.5"
opacity="0.35"
id="rect195"
style="opacity:1" />
<!-- S -->
<path
d="M 78,36 H 36 V 58 H 78 V 82 H 36"
fill="none"
stroke="#1a1a1a"
stroke-width="14"
stroke-linecap="round"
stroke-linejoin="round"
id="path197" />
<!-- U -->
<path
d="m 118,36 v 34 c 0,12.15 9.85,16 22,16 12.15,0 22,-3.85 22,-16 V 36"
fill="none"
stroke="#1a1a1a"
stroke-width="14"
stroke-linecap="round"
stroke-linejoin="round"
id="path199" />
<!-- C -->
<path
d="M 78,118 H 36 V 164 H 78"
fill="none"
stroke="#1a1a1a"
stroke-width="14"
stroke-linecap="round"
stroke-linejoin="round"
id="path201" />
<!-- H -->
<path
d="M 118,118 V 164 M 162,118 V 164 M 118,141 H 162"
fill="none"
stroke="#1a1a1a"
stroke-width="14"
stroke-linecap="round"
stroke-linejoin="round"
id="path203" />
</svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

@@ -0,0 +1,118 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 632.87714 200"
version="1.1"
id="svg205"
sodipodi:docname="clean_mono_on_white_w_text.svg"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
width="632.87714"
height="200"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs209" />
<sodipodi:namedview
id="namedview207"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
inkscape:zoom="0.90774833"
inkscape:cx="179.01437"
inkscape:cy="333.24214"
inkscape:window-width="1452"
inkscape:window-height="1233"
inkscape:window-x="3922"
inkscape:window-y="481"
inkscape:window-maximized="0"
inkscape:current-layer="svg205" />
<!-- Background -->
<rect
width="632.87714"
height="200"
fill="#0a0a0a"
id="rect2"
x="0"
y="0"
style="fill:#ffffff;stroke-width:1.77887"
ry="22.926825" />
<text
xml:space="preserve"
style="font-weight:bold;font-size:84px;line-height:81.6378px;font-family:'Archivo Black';-inkscape-font-specification:'Archivo Black, Bold';fill:#000000;stroke:#ffffff;stroke-width:15"
x="206.31992"
y="88.012764"
id="text1510"><tspan
sodipodi:role="line"
id="tspan1508"
x="206.31992"
y="88.012764"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:84px;font-family:'Archivo Black';-inkscape-font-specification:'Archivo Black, ';fill:#000000;fill-opacity:1;stroke:none">Such</tspan><tspan
sodipodi:role="line"
x="206.31992"
y="169.65056"
id="tspan1512"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:84px;font-family:'Archivo Black';-inkscape-font-specification:'Archivo Black, ';fill:#000000;fill-opacity:1;stroke:none">Software</tspan></text>
<rect
width="200"
height="200"
rx="26"
fill="#ffffff"
id="rect193"
x="0"
y="0" />
<!-- Border -->
<rect
x="14"
y="14"
width="172"
height="172"
rx="16"
fill="none"
stroke="#1a1a1a"
stroke-width="3.5"
opacity="0.35"
id="rect195"
style="opacity:1" />
<!-- S -->
<path
d="M 78,36 H 36 V 58 H 78 V 82 H 36"
fill="none"
stroke="#1a1a1a"
stroke-width="14"
stroke-linecap="round"
stroke-linejoin="round"
id="path197" />
<!-- U -->
<path
d="m 118,36 v 34 c 0,12.15 9.85,16 22,16 12.15,0 22,-3.85 22,-16 V 36"
fill="none"
stroke="#1a1a1a"
stroke-width="14"
stroke-linecap="round"
stroke-linejoin="round"
id="path199" />
<!-- C -->
<path
d="M 78,118 H 36 v 46 h 42"
fill="none"
stroke="#1a1a1a"
stroke-width="14"
stroke-linecap="round"
stroke-linejoin="round"
id="path201" />
<!-- H -->
<path
d="m 118,118 v 46 m 44,-46 v 46 m -44,-23 h 44"
fill="none"
stroke="#1a1a1a"
stroke-width="14"
stroke-linecap="round"
stroke-linejoin="round"
id="path203" />
</svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

@@ -0,0 +1,106 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 200 200"
version="1.1"
id="svg25"
sodipodi:docname="favicon_dark.svg"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview27"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
inkscape:zoom="5.135"
inkscape:cx="71.178189"
inkscape:cy="100"
inkscape:window-width="3840"
inkscape:window-height="2091"
inkscape:window-x="3840"
inkscape:window-y="32"
inkscape:window-maximized="1"
inkscape:current-layer="svg25" />
<defs
id="defs11">
<filter
id="glow"
x="-0.026918605"
y="-0.026918605"
width="1.0538372"
height="1.0538372">
<feGaussianBlur
stdDeviation="1.2"
result="blur"
id="feGaussianBlur2" />
<feMerge
id="feMerge8">
<feMergeNode
in="blur"
id="feMergeNode4" />
<feMergeNode
in="SourceGraphic"
id="feMergeNode6" />
</feMerge>
</filter>
</defs>
<!-- Background -->
<rect
width="200"
height="200"
rx="26"
fill="#0a0a0a"
id="rect13" />
<!-- Border -->
<rect
x="14"
y="14"
width="172"
height="172"
rx="16"
fill="none"
stroke="#45c99e"
stroke-width="3.5"
filter="url(#glow)"
opacity="0.7"
id="rect15" />
<!-- S - green (5.1:1) -->
<!-- U - rose (6.5:1) -->
<!-- C - blue (7.9:1) -->
<!-- H - teal (9.5:1) -->
<ellipse
style="fill:#35925c;stroke-width:14.0117;fill-opacity:1"
id="path1890"
cx="57"
cy="59"
rx="30.173216"
ry="29.420959" />
<ellipse
style="fill:#e8689e;stroke-width:14.0117;fill-opacity:1"
id="path1890-5"
cx="140"
cy="59"
rx="30.173216"
ry="29.420959" />
<ellipse
style="fill:#4aade0;stroke-width:14.0117;fill-opacity:1"
id="path1890-3"
cx="57"
cy="141"
rx="30.173216"
ry="29.420959" />
<ellipse
style="fill:#45c99e;stroke-width:14.0117;fill-opacity:1"
id="path1890-56"
cx="140"
cy="141"
rx="30.173216"
ry="29.420959" />
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

@@ -0,0 +1,80 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 200 200"
version="1.1"
id="svg214"
sodipodi:docname="favicon_light.svg"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs218" />
<sodipodi:namedview
id="namedview216"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
inkscape:zoom="5.135"
inkscape:cx="71.178189"
inkscape:cy="100"
inkscape:window-width="3840"
inkscape:window-height="2091"
inkscape:window-x="3840"
inkscape:window-y="32"
inkscape:window-maximized="1"
inkscape:current-layer="svg214" />
<!-- Background -->
<rect
width="200"
height="200"
rx="26"
fill="#f7f8fa"
id="rect202" />
<!-- Border -->
<rect
x="14"
y="14"
width="172"
height="172"
rx="16"
fill="none"
stroke="#1a5c38"
stroke-width="3.5"
opacity="0.45"
id="rect204" />
<!-- S - deep forest (7.5:1) -->
<!-- U - deep rose (5.2:1) -->
<!-- C - deep blue (4.9:1) -->
<!-- H - deep teal (4.5:1) -->
<circle
style="fill:#1a5c38;stroke-width:15;fill-opacity:1"
id="path497"
cx="57"
cy="59"
r="28.221895" />
<circle
style="fill:#b83670;stroke-width:15;fill-opacity:1"
id="path497-3"
cx="140"
cy="59"
r="28.221895" />
<circle
style="fill:#1a749e;stroke-width:15;fill-opacity:1"
id="path497-6"
cx="57"
cy="141"
r="28.221895" />
<circle
style="fill:#278063;stroke-width:15;fill-opacity:1"
id="path497-7"
cx="140"
cy="141"
r="28.221895" />
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Before

Width:  |  Height:  |  Size: 5.4 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

Before

Width:  |  Height:  |  Size: 1.2 MiB

After

Width:  |  Height:  |  Size: 1.2 MiB

Before

Width:  |  Height:  |  Size: 200 KiB

After

Width:  |  Height:  |  Size: 200 KiB

Before

Width:  |  Height:  |  Size: 5.4 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

Before

Width:  |  Height:  |  Size: 234 KiB

After

Width:  |  Height:  |  Size: 234 KiB

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

Before

Width:  |  Height:  |  Size: 1.2 MiB

After

Width:  |  Height:  |  Size: 1.2 MiB

Before

Width:  |  Height:  |  Size: 215 KiB

After

Width:  |  Height:  |  Size: 215 KiB

Before

Width:  |  Height:  |  Size: 70 KiB

After

Width:  |  Height:  |  Size: 70 KiB

Before

Width:  |  Height:  |  Size: 313 KiB

After

Width:  |  Height:  |  Size: 313 KiB

Before

Width:  |  Height:  |  Size: 1.3 MiB

After

Width:  |  Height:  |  Size: 1.3 MiB

Before

Width:  |  Height:  |  Size: 2.9 MiB

After

Width:  |  Height:  |  Size: 2.9 MiB

Before

Width:  |  Height:  |  Size: 95 KiB

After

Width:  |  Height:  |  Size: 95 KiB

Before

Width:  |  Height:  |  Size: 509 KiB

After

Width:  |  Height:  |  Size: 509 KiB

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 46 KiB

+2 -2
View File
@@ -8,12 +8,12 @@
"theme_color": "#000000", "theme_color": "#000000",
"icons": [ "icons": [
{ {
"src": "/images/favicon.svg", "src": "/images/branding/favicon_dark.svg",
"type": "image/svg+xml", "type": "image/svg+xml",
"purpose": "any" "purpose": "any"
}, },
{ {
"src": "/images/favicon_192.png", "src": "/images/branding/favicon_dark.png",
"sizes": "192x192", "sizes": "192x192",
"type": "image/png" "type": "image/png"
} }
+14 -2
View File
@@ -26,8 +26,8 @@ export default function AboutPage() {
<div id="main-content" className="z-10 w-full max-w-6xl mx-auto py-20 px-4 pb-24 md:pb-20"> <div id="main-content" className="z-10 w-full max-w-6xl mx-auto py-20 px-4 pb-24 md:pb-20">
<h1 className="text-4xl md:text-5xl font-bold mb-10 text-center">About Us</h1> <h1 className="text-4xl md:text-5xl font-bold mb-10 text-center">About Us</h1>
<div className="section-container"> <div className="section-container relative">
<div className="prose dark:prose-invert max-w-none mb-12"> <div className="prose dark:prose-invert max-w-none mb-12">
<p className="text-xl leading-relaxed"> <p className="text-xl leading-relaxed">
Founded in 2021 by John Winter Murphy in Chester County, PA, and operating in Kennett Square since July 2025, Founded in 2021 by John Winter Murphy in Chester County, PA, and operating in Kennett Square since July 2025,
@@ -94,6 +94,18 @@ export default function AboutPage() {
<FounderSignature /> <FounderSignature />
</div> </div>
<img
src="/images/animations/anim3_matrix_light.svg"
alt=""
aria-hidden="true"
className="absolute bottom-4 right-4 w-16 h-16 opacity-50 block dark:hidden motion-reduce:hidden"
/>
<img
src="/images/animations/anim3_matrix.svg"
alt=""
aria-hidden="true"
className="absolute bottom-4 right-4 w-16 h-16 opacity-50 hidden dark:block motion-reduce:hidden"
/>
</div> </div>
</div> </div>
<MobileNav /> <MobileNav />
+17 -1
View File
@@ -43,10 +43,26 @@ export default function BlogPage() {
<Header /> <Header />
<div id="main-content" className="z-10 w-full max-w-4xl mx-auto py-20 px-4 pb-24 md:pb-20"> <div id="main-content" className="z-10 w-full max-w-4xl mx-auto py-20 px-4 pb-24 md:pb-20">
<h1 className="text-4xl md:text-5xl font-bold mb-6">Blog</h1> <h1 className="text-4xl md:text-5xl font-bold mb-6">Blog</h1>
<p className="text-xl text-muted-foreground mb-12"> <p className="text-xl text-muted-foreground mb-8">
News, launches, and technical notes. News, launches, and technical notes.
</p> </p>
{/* Animated accent */}
<div className="flex justify-center mb-12 motion-reduce:hidden">
<img
src="/images/animations/anim_type_v4_light.svg"
alt=""
aria-hidden="true"
className="w-24 h-24 opacity-60 block dark:hidden"
/>
<img
src="/images/animations/anim_type_v4.svg"
alt=""
aria-hidden="true"
className="w-24 h-24 opacity-60 hidden dark:block"
/>
</div>
{publishedPosts.length === 0 ? ( {publishedPosts.length === 0 ? (
<p className="text-muted-foreground">No posts yet. Check back soon.</p> <p className="text-muted-foreground">No posts yet. Check back soon.</p>
) : ( ) : (
@@ -76,7 +76,7 @@ export default function SmirkWalletReleasePost() {
<h2>Open Source</h2> <h2>Open Source</h2>
<p> <p>
Everything is open source. The extension, backend, and WASM libraries are all on GitHub: The extension and WASM libraries are open source on GitHub:
</p> </p>
<ul> <ul>
<li> <li>
+8 -5
View File
@@ -15,12 +15,15 @@ export const metadata: Metadata = {
}, },
icons: { icons: {
icon: [ icon: [
{ url: "/images/favicon.svg", type: "image/svg+xml" }, { url: "/images/branding/favicon_dark.svg", type: "image/svg+xml", media: "(prefers-color-scheme: dark)" },
{ url: "/images/favicon_192.png", sizes: "192x192", type: "image/png" }, { url: "/images/branding/favicon_light.svg", type: "image/svg+xml", media: "(prefers-color-scheme: light)" },
{ url: "/images/branding/favicon_dark.png", sizes: "192x192", type: "image/png", media: "(prefers-color-scheme: dark)" },
{ url: "/images/branding/favicon_light.png", sizes: "192x192", type: "image/png", media: "(prefers-color-scheme: light)" },
], ],
shortcut: "/images/favicon.svg", shortcut: "/images/branding/favicon_dark.svg",
apple: [ apple: [
{ url: "/images/favicon_192.png", sizes: "192x192", type: "image/png" }, { url: "/images/branding/favicon_dark.png", sizes: "192x192", type: "image/png", media: "(prefers-color-scheme: dark)" },
{ url: "/images/branding/favicon_light.png", sizes: "192x192", type: "image/png", media: "(prefers-color-scheme: light)" },
], ],
}, },
manifest: "/manifest.json", manifest: "/manifest.json",
@@ -31,7 +34,7 @@ const structuredData = {
"@type": "Organization", "@type": "Organization",
name: "Such Software LLC", name: "Such Software LLC",
url: "https://such.software", url: "https://such.software",
logo: "https://such.software/images/logo_dark.svg", logo: "https://such.software/images/branding/clean_dark_w_text.svg",
description: "Next-generation web applications engineered for scale, compliance, and performance.", description: "Next-generation web applications engineered for scale, compliance, and performance.",
address: { address: {
"@type": "PostalAddress", "@type": "PostalAddress",
+15
View File
@@ -84,6 +84,21 @@ export default function ProductsPage() {
</Link> </Link>
))} ))}
</div> </div>
<div className="flex justify-center mt-16 motion-reduce:hidden">
<img
src="/images/animations/anim3_matrix_light.svg"
alt=""
aria-hidden="true"
className="w-20 h-20 opacity-40 block dark:hidden"
/>
<img
src="/images/animations/anim3_matrix.svg"
alt=""
aria-hidden="true"
className="w-20 h-20 opacity-50 hidden dark:block"
/>
</div>
</div> </div>
<MobileNav /> <MobileNav />
</main> </main>
+7
View File
@@ -139,6 +139,13 @@ export default function ServicesPage() {
<div className="mt-20 p-16 rounded-[2.5rem] bg-gradient-to-br from-slate-900 via-slate-800 to-indigo-950 text-white text-center shadow-2xl relative overflow-hidden group border-2 border-white/5"> <div className="mt-20 p-16 rounded-[2.5rem] bg-gradient-to-br from-slate-900 via-slate-800 to-indigo-950 text-white text-center shadow-2xl relative overflow-hidden group border-2 border-white/5">
<div className="absolute inset-0 bg-blue-500/10 opacity-0 group-hover:opacity-100 transition-opacity" /> <div className="absolute inset-0 bg-blue-500/10 opacity-0 group-hover:opacity-100 transition-opacity" />
{/* Animated pulse accent */}
<img
src="/images/animations/anim1_pulse.svg"
alt=""
aria-hidden="true"
className="absolute top-4 right-4 w-20 h-20 opacity-20 group-hover:opacity-40 transition-opacity motion-reduce:hidden"
/>
<h2 className="text-4xl font-bold mb-6 relative z-10 tracking-tight">Start building the future</h2> <h2 className="text-4xl font-bold mb-6 relative z-10 tracking-tight">Start building the future</h2>
<p className="mb-10 text-slate-300 text-lg max-w-2xl mx-auto relative z-10 leading-relaxed font-medium"> <p className="mb-10 text-slate-300 text-lg max-w-2xl mx-auto relative z-10 leading-relaxed font-medium">
We are currently accepting a limited number of partners for performance-based development. We are currently accepting a limited number of partners for performance-based development.
@@ -9,14 +9,14 @@ export const FounderSignature = () => {
<div className="flex items-center gap-6 relative z-10"> <div className="flex items-center gap-6 relative z-10">
<div className="relative w-16 h-16 flex items-center justify-center"> <div className="relative w-16 h-16 flex items-center justify-center">
<Image <Image
src="/images/logo_dark.svg" src="/images/branding/clean_dark.svg"
alt="Such Software Icon" alt="Such Software Icon"
width={56} width={56}
height={56} height={56}
className="hidden dark:block object-contain" className="hidden dark:block object-contain"
/> />
<Image <Image
src="/images/logo_light.svg" src="/images/branding/clean_light.svg"
alt="Such Software Icon" alt="Such Software Icon"
width={56} width={56}
height={56} height={56}
+2 -2
View File
@@ -9,7 +9,7 @@ export function SiteLogo() {
<div className="relative w-40 h-11 lg:w-48 lg:h-12"> <div className="relative w-40 h-11 lg:w-48 lg:h-12">
{/* Dark mode logo (white text) */} {/* Dark mode logo (white text) */}
<Image <Image
src="/images/logo_dark_w_name.svg" src="/images/branding/clean_dark_w_text.svg"
alt="Such Software" alt="Such Software"
fill fill
className="object-contain hidden dark:block" className="object-contain hidden dark:block"
@@ -17,7 +17,7 @@ export function SiteLogo() {
/> />
{/* Light mode logo (black text) */} {/* Light mode logo (black text) */}
<Image <Image
src="/images/logo_light_w_name.svg" src="/images/branding/clean_light_w_text.svg"
alt="Such Software" alt="Such Software"
fill fill
className="object-contain block dark:hidden" className="object-contain block dark:hidden"
@@ -16,7 +16,7 @@ export const PortfolioGrid = () => {
</div> </div>
<div className="absolute inset-6 bottom-24 rounded-2xl overflow-hidden z-10 bg-slate-800/30"> <div className="absolute inset-6 bottom-24 rounded-2xl overflow-hidden z-10 bg-slate-800/30">
<Image <Image
src="/images/r-cryptocurrency.png" src="/images/products/r-cryptocurrency.png"
alt="Screenshot of r/CryptoCurrency subreddit homepage showing over 10 million subscribers, community links, and a cartoon moon mascot" alt="Screenshot of r/CryptoCurrency subreddit homepage showing over 10 million subscribers, community links, and a cartoon moon mascot"
fill fill
className="object-contain p-4 opacity-80 transition-transform duration-1000 group-hover:scale-105" className="object-contain p-4 opacity-80 transition-transform duration-1000 group-hover:scale-105"
@@ -35,7 +35,7 @@ export const PortfolioGrid = () => {
</div> </div>
<div className="absolute inset-x-4 bottom-4 top-24 rounded-lg overflow-hidden z-10 bg-black/5 dark:bg-white/5 border border-indigo-500/10 shadow-inner"> <div className="absolute inset-x-4 bottom-4 top-24 rounded-lg overflow-hidden z-10 bg-black/5 dark:bg-white/5 border border-indigo-500/10 shadow-inner">
<Image <Image
src="/images/moonplace.png" src="/images/products/moonplace.png"
alt="Screenshot of MoonPlace collaborative pixel art canvas showing colorful community-created artwork" alt="Screenshot of MoonPlace collaborative pixel art canvas showing colorful community-created artwork"
fill fill
className="object-contain p-2 opacity-50 transition-transform duration-1000 group-hover:scale-110" className="object-contain p-2 opacity-50 transition-transform duration-1000 group-hover:scale-110"
@@ -54,7 +54,7 @@ export const PortfolioGrid = () => {
</div> </div>
<div className="absolute inset-x-4 bottom-4 top-28 rounded-lg overflow-hidden z-10 bg-black/5 dark:bg-white/5 border border-amber-500/10 shadow-inner flex items-center justify-center"> <div className="absolute inset-x-4 bottom-4 top-28 rounded-lg overflow-hidden z-10 bg-black/5 dark:bg-white/5 border border-amber-500/10 shadow-inner flex items-center justify-center">
<Image <Image
src="/images/smirk-wallet.png" src="/images/products/smirk-wallet.png"
alt="Screenshot of Smirk Wallet browser extension showing multi-currency support for BTC, LTC, XMR, WOW, and GRIN" alt="Screenshot of Smirk Wallet browser extension showing multi-currency support for BTC, LTC, XMR, WOW, and GRIN"
fill fill
className="object-contain p-4 opacity-60 transition-transform duration-1000 group-hover:scale-110" className="object-contain p-4 opacity-60 transition-transform duration-1000 group-hover:scale-110"
@@ -76,7 +76,7 @@ export const PortfolioGrid = () => {
</div> </div>
<div className="absolute inset-x-4 bottom-4 top-24 rounded-lg overflow-hidden z-10 bg-black/5 dark:bg-white/5 border border-orange-500/10 shadow-inner"> <div className="absolute inset-x-4 bottom-4 top-24 rounded-lg overflow-hidden z-10 bg-black/5 dark:bg-white/5 border border-orange-500/10 shadow-inner">
<Image <Image
src="/images/privacy-labs.png" src="/images/products/privacy-labs.png"
alt="Screenshots of Monerogue roguelike game and Wowne.ro WebAssembly wallet interface" alt="Screenshots of Monerogue roguelike game and Wowne.ro WebAssembly wallet interface"
fill fill
className="object-contain p-2 opacity-50 transition-transform duration-1000 group-hover:scale-110" className="object-contain p-2 opacity-50 transition-transform duration-1000 group-hover:scale-110"
@@ -95,7 +95,7 @@ export const PortfolioGrid = () => {
</div> </div>
<div className="absolute inset-4 rounded-xl overflow-hidden z-10 bg-zinc-200/50 dark:bg-zinc-800/50"> <div className="absolute inset-4 rounded-xl overflow-hidden z-10 bg-zinc-200/50 dark:bg-zinc-800/50">
<Image <Image
src="/images/occupy-wallets.png" src="/images/products/occupy-wallets.png"
alt="Screenshot of Occupy Wallets gallery displaying illustrated artwork with political and economic commentary" alt="Screenshot of Occupy Wallets gallery displaying illustrated artwork with political and economic commentary"
fill fill
className="object-contain p-4 opacity-60 transition-transform duration-1000 group-hover:scale-105" className="object-contain p-4 opacity-60 transition-transform duration-1000 group-hover:scale-105"