summaryrefslogtreecommitdiff
path: root/web/logo.svg
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-05-04 20:24:36 +0300
committerPaul Buetow <paul@buetow.org>2026-05-04 20:24:36 +0300
commit2eb016dbd7575c47c0c52a07831a6a3c097f1ee8 (patch)
treefc9c254146fe10820fc2bb53bc29b976361ddc71 /web/logo.svg
parent2f00f28b329110d10004c5152243707308cab95c (diff)
Add project logo, favicon, and display logo on login screen
- Add logo.svg at project root and reference it in README.md - Generate favicon.ico from logo and place in web/ - Serve logo.svg and favicon.ico as static assets - Display logo on the login page with responsive sizing
Diffstat (limited to 'web/logo.svg')
-rw-r--r--web/logo.svg60
1 files changed, 60 insertions, 0 deletions
diff --git a/web/logo.svg b/web/logo.svg
new file mode 100644
index 0000000..068b873
--- /dev/null
+++ b/web/logo.svg
@@ -0,0 +1,60 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="600" viewBox="0 0 1200 600" role="img" aria-labelledby="title desc">
+ <title id="title">Player media software logo</title>
+ <desc id="desc">A rounded gradient app icon with a play triangle and landscape motif, followed by the word Player.</desc>
+
+ <defs>
+ <linearGradient id="iconGradient" x1="0" y1="0" x2="1" y2="1">
+ <stop offset="0%" stop-color="#0A7CFF"/>
+ <stop offset="48%" stop-color="#4B67FF"/>
+ <stop offset="100%" stop-color="#8D45F7"/>
+ </linearGradient>
+
+ <linearGradient id="hillDark" x1="0" y1="0" x2="1" y2="1">
+ <stop offset="0%" stop-color="#4A2AD9"/>
+ <stop offset="100%" stop-color="#6539E8"/>
+ </linearGradient>
+
+ <linearGradient id="hillLight" x1="0" y1="0" x2="1" y2="1">
+ <stop offset="0%" stop-color="#9D72FF"/>
+ <stop offset="100%" stop-color="#C091FF"/>
+ </linearGradient>
+
+ <clipPath id="iconClip">
+ <rect x="90" y="170" width="330" height="260" rx="58" ry="58"/>
+ </clipPath>
+
+ <filter id="softShadow" x="-20%" y="-20%" width="140%" height="140%">
+ <feDropShadow dx="0" dy="14" stdDeviation="18" flood-color="#132044" flood-opacity="0.10"/>
+ </filter>
+ </defs>
+
+ <!-- Icon -->
+ <g filter="url(#softShadow)">
+ <rect x="90" y="170" width="330" height="260" rx="58" ry="58" fill="url(#iconGradient)"/>
+
+ <g clip-path="url(#iconClip)">
+ <!-- Dark foreground hill -->
+ <path d="M70 420 C110 365 145 350 185 384 L315 500 L70 500 Z" fill="url(#hillDark)" opacity="0.92"/>
+
+ <!-- Light background hill -->
+ <path d="M210 430 C255 382 292 360 340 398 L455 500 L210 500 Z" fill="url(#hillLight)" opacity="0.72"/>
+
+ <!-- Gentle purple wash near bottom -->
+ <path d="M90 390 C175 350 260 388 420 340 L420 500 L90 500 Z" fill="#6E42EA" opacity="0.24"/>
+ </g>
+
+ <!-- Play triangle -->
+ <path d="M200 236 L200 364 Q200 384 218 374 L318 311 Q337 300 318 289 L218 226 Q200 216 200 236 Z" fill="#FFFFFF"/>
+
+ <!-- Photo sun/dot -->
+ <circle cx="365" cy="335" r="26" fill="#FFFFFF" opacity="0.98"/>
+ </g>
+
+ <!-- Wordmark -->
+ <text x="480" y="352"
+ font-family="Inter, Avenir Next, Nunito Sans, Segoe UI, Helvetica, Arial, sans-serif"
+ font-size="148"
+ font-weight="800"
+ letter-spacing="-5"
+ fill="#071126">Player</text>
+</svg>