Add NexRedirect logo (nr) — adapted from CoreXVoice nv-icon

This commit is contained in:
Hendrik 2026-05-01 17:54:13 +02:00
parent d7272c5e58
commit 13a18d21a9
3 changed files with 112 additions and 9 deletions

28
app/icon.svg Normal file
View file

@ -0,0 +1,28 @@
<svg viewBox="0 0 80 80" xmlns="http://www.w3.org/2000/svg" width="80" height="80">
<defs>
<linearGradient id="g" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#22d3ee"/>
<stop offset="100%" stop-color="#34d399"/>
</linearGradient>
<radialGradient id="bg" cx="30%" cy="25%" r="85%">
<stop offset="0%" stop-color="#1a1f2e"/>
<stop offset="100%" stop-color="#0a0c10"/>
</radialGradient>
<linearGradient id="gx" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#67e8f9"/>
<stop offset="55%" stop-color="#22d3ee"/>
<stop offset="100%" stop-color="#10b981"/>
</linearGradient>
</defs>
<rect width="80" height="80" rx="20" fill="url(#bg)"/>
<rect x="0.5" y="0.5" width="79" height="79" rx="19.5" fill="none" stroke="#ffffff" stroke-opacity="0.06" stroke-width="1"/>
<text x="40" y="55"
text-anchor="middle"
textLength="48"
lengthAdjust="spacingAndGlyphs"
font-family="Georgia,'Times New Roman',serif"
font-size="44"
font-weight="400"
fill="#f3f4f6">n<tspan fill="url(#gx)">r</tspan></text>
<line x1="24" y1="63" x2="56" y2="63" stroke="url(#g)" stroke-width="1.2" stroke-linecap="round" opacity="0.7"/>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View file

@ -1,14 +1,52 @@
export function Logo({ size = 32 }: { size?: number }) {
const fontSize = Math.round(size * 0.46);
return (
<div
className="flex items-center justify-center rounded-lg border border-cyan-300/20 bg-zinc-900 shadow-[0_4px_12px_rgba(34,211,238,0.2)]"
style={{ width: size, height: size, fontFamily: "Georgia,'Times New Roman',serif" }}
<svg
viewBox="0 0 80 80"
xmlns="http://www.w3.org/2000/svg"
width={size}
height={size}
style={{ display: "block" }}
>
<span style={{ fontSize, fontWeight: 400, letterSpacing: "-1px", lineHeight: 1 }}>
<span style={{ color: "#f3f4f6" }}>c</span>
<span style={{ background: "linear-gradient(135deg,#22d3ee,#34d399)", WebkitBackgroundClip: "text", WebkitTextFillColor: "transparent", backgroundClip: "text" }}>x</span>
</span>
</div>
<defs>
<linearGradient id="nr-line" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stopColor="#22d3ee" />
<stop offset="100%" stopColor="#34d399" />
</linearGradient>
<radialGradient id="nr-bg" cx="30%" cy="25%" r="85%">
<stop offset="0%" stopColor="#1a1f2e" />
<stop offset="100%" stopColor="#0a0c10" />
</radialGradient>
<linearGradient id="nr-r" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stopColor="#67e8f9" />
<stop offset="55%" stopColor="#22d3ee" />
<stop offset="100%" stopColor="#10b981" />
</linearGradient>
<filter id="nr-glow" x="-40%" y="-40%" width="180%" height="180%">
<feGaussianBlur stdDeviation="1.2" result="blur" />
<feMerge>
<feMergeNode in="blur" />
<feMergeNode in="SourceGraphic" />
</feMerge>
</filter>
</defs>
<rect width="80" height="80" rx="20" fill="url(#nr-bg)" />
<rect x="0.5" y="0.5" width="79" height="79" rx="19.5" fill="none" stroke="#ffffff" strokeOpacity="0.06" strokeWidth="1" />
<g filter="url(#nr-glow)">
<text
x="40"
y="55"
textAnchor="middle"
textLength="48"
lengthAdjust="spacingAndGlyphs"
fontFamily="Georgia,'Times New Roman',serif"
fontSize="44"
fontWeight="400"
fill="#f3f4f6"
>
n<tspan fill="url(#nr-r)">r</tspan>
</text>
</g>
<line x1="24" y1="63" x2="56" y2="63" stroke="url(#nr-line)" strokeWidth="1.2" strokeLinecap="round" opacity="0.7" />
</svg>
);
}

37
public/nr-icon.svg Normal file
View file

@ -0,0 +1,37 @@
<svg viewBox="0 0 80 80" xmlns="http://www.w3.org/2000/svg" width="80" height="80">
<defs>
<linearGradient id="g" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#22d3ee"/>
<stop offset="100%" stop-color="#34d399"/>
</linearGradient>
<radialGradient id="bg" cx="30%" cy="25%" r="85%">
<stop offset="0%" stop-color="#1a1f2e"/>
<stop offset="100%" stop-color="#0a0c10"/>
</radialGradient>
<linearGradient id="gx" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#67e8f9"/>
<stop offset="55%" stop-color="#22d3ee"/>
<stop offset="100%" stop-color="#10b981"/>
</linearGradient>
<filter id="glow" x="-40%" y="-40%" width="180%" height="180%">
<feGaussianBlur stdDeviation="1.2" result="blur"/>
<feMerge>
<feMergeNode in="blur"/>
<feMergeNode in="SourceGraphic"/>
</feMerge>
</filter>
</defs>
<rect width="80" height="80" rx="20" fill="url(#bg)"/>
<rect x="0.5" y="0.5" width="79" height="79" rx="19.5" fill="none" stroke="#ffffff" stroke-opacity="0.06" stroke-width="1"/>
<g filter="url(#glow)">
<text x="40" y="55"
text-anchor="middle"
textLength="48"
lengthAdjust="spacingAndGlyphs"
font-family="Georgia,'Times New Roman',serif"
font-size="44"
font-weight="400"
fill="#f3f4f6">n<tspan fill="url(#gx)">r</tspan></text>
</g>
<line x1="24" y1="63" x2="56" y2="63" stroke="url(#g)" stroke-width="1.2" stroke-linecap="round" opacity="0.7"/>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB