feat(docs): add animated product website

This commit is contained in:
2026-07-16 16:38:30 +02:00
parent e40a4bfee2
commit d61d6f3c5b
38 changed files with 12046 additions and 0 deletions

View File

@@ -0,0 +1,190 @@
/* Direct / relay network scene */
.network-visual {
position: relative;
width: 100%;
min-height: 520px;
overflow: hidden;
border: 1px solid #302737;
border-radius: 27px;
background: radial-gradient(circle at center, rgba(168, 85, 247, 0.1), transparent 47%), #151117;
}
.network-grid {
position: absolute;
inset: 0;
background-image:
linear-gradient(rgba(255, 255, 255, 0.04) 1px, transparent 1px),
linear-gradient(90deg, rgba(255, 255, 255, 0.04) 1px, transparent 1px);
background-size: 30px 30px;
mask-image: radial-gradient(circle at center, black, transparent 79%);
}
.network-device {
position: absolute;
z-index: 4;
top: 178px;
display: grid;
width: 105px;
height: 145px;
place-items: center;
border: 5px solid #3b3340;
border-radius: 20px;
background: linear-gradient(145deg, #29222d, #171419);
box-shadow: 0 22px 60px rgba(0, 0, 0, 0.38);
color: #d89bff;
}
.network-device-left { left: 30px; transform: rotate(-5deg); }
.network-device-right { right: 30px; transform: rotate(5deg); }
.network-device svg { width: 31px; }
.network-device small {
position: absolute;
bottom: 14px;
color: #756b79;
font-family: var(--font-mono);
font-size: 7px;
font-weight: 800;
letter-spacing: 0.09em;
}
.network-device-top {
position: absolute;
top: 8px;
left: 50%;
width: 35px;
height: 5px;
border-radius: 999px;
background: #080609;
transform: translateX(-50%);
}
.network-routes {
position: absolute;
z-index: 2;
inset: 34px 0 auto;
width: 100%;
height: calc(100% - 40px);
overflow: visible;
}
.network-direct-glow,
.network-direct,
.network-direct-pulse,
.network-relay-base,
.network-relay-line {
fill: none;
stroke-linecap: round;
}
.network-direct-glow {
stroke: rgba(168, 85, 247, 0.26);
stroke-width: 20;
filter: url(#network-route-glow);
}
.network-direct {
stroke: #3d3343;
stroke-width: 8;
}
.network-direct-pulse {
stroke: url(#network-route-gradient);
stroke-width: 3;
stroke-dasharray: 4 18;
animation: network-dash 2.2s linear infinite;
}
.network-relay-base {
stroke: #2e2732;
stroke-width: 5;
}
.network-relay-line {
stroke: #776681;
stroke-width: 2;
stroke-dasharray: 4 11;
animation: network-dash 3.4s linear infinite reverse;
}
.network-direct-label {
position: absolute;
z-index: 5;
top: 62px;
left: 50%;
display: flex;
align-items: center;
gap: 9px;
padding: 7px 10px;
border: 1px solid #372c3c;
border-radius: 999px;
background: rgba(25, 20, 28, 0.82);
color: #9a8fa0;
font-family: var(--font-mono);
font-size: 7px;
font-weight: 800;
letter-spacing: 0.08em;
transform: translateX(-50%);
}
.network-relay-node {
position: absolute;
z-index: 5;
bottom: 39px;
left: 50%;
display: flex;
align-items: center;
flex-direction: column;
transform: translateX(-50%);
}
.relay-core {
position: relative;
z-index: 2;
display: grid;
width: 66px;
height: 66px;
margin-bottom: 11px;
place-items: center;
border: 1px solid #5c426a;
border-radius: 20px;
background: linear-gradient(145deg, #312139, #1d1721);
box-shadow: 0 0 45px rgba(168, 85, 247, 0.18);
color: #d294fc;
transform: rotate(45deg);
}
.relay-core svg { width: 24px; transform: rotate(-45deg); }
.network-relay-node strong { color: #d9d1dc; font-size: 10px; }
.network-relay-node small { color: #756b79; font-size: 7px; }
.relay-ring {
position: absolute;
top: -18px;
left: 50%;
border: 1px solid rgba(168, 85, 247, 0.3);
border-radius: 50%;
transform: translateX(-50%);
animation: relay-ring 3s ease-out infinite;
}
.relay-ring-one { width: 100px; height: 100px; }
.relay-ring-two { width: 136px; height: 136px; animation-delay: 1.2s; }
.network-packet {
position: absolute;
z-index: 3;
display: grid;
width: 26px;
height: 32px;
place-items: center;
border: 1px solid #aa65d2;
border-radius: 6px;
background: #2c2231;
color: #d69bfa;
opacity: 0;
}
.network-packet svg { width: 13px; }
.network-packet-one { animation: network-packet-top 6s ease-in-out infinite; }
.network-packet-two { animation: network-packet-bottom 7s ease-in-out 2.2s infinite; }