toread/image_src/icon-app.svg

66 lines
4.2 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- 512x512 app icon — desktop launcher & Android (keep content in inner ~340px safe zone) -->
<svg width="512" height="512" viewBox="0 0 512 512" fill="none" xmlns="http://www.w3.org/2000/svg">
<defs>
<radialGradient id="bgGrad" cx="45%" cy="35%" r="75%">
<stop offset="0%" stop-color="#2e6b8a"/>
<stop offset="100%" stop-color="#0d2535"/>
</radialGradient>
<filter id="shadow" x="-10%" y="-5%" width="130%" height="120%">
<feDropShadow dx="5" dy="7" stdDeviation="8" flood-color="#00000066"/>
</filter>
<linearGradient id="pageGrad" x1="0%" y1="0%" x2="100%" y2="0%">
<stop offset="0%" stop-color="#f0ede3"/>
<stop offset="100%" stop-color="#e8e4d8"/>
</linearGradient>
<linearGradient id="coverGrad" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#3a82a6"/>
<stop offset="100%" stop-color="#1a3d52"/>
</linearGradient>
<linearGradient id="spineGrad" x1="0%" y1="0%" x2="100%" y2="0%">
<stop offset="0%" stop-color="#122c3c"/>
<stop offset="100%" stop-color="#2e6b8a"/>
</linearGradient>
<linearGradient id="coverShine" x1="0%" y1="0%" x2="30%" y2="100%">
<stop offset="0%" stop-color="#ffffff" stop-opacity="0.18"/>
<stop offset="100%" stop-color="#ffffff" stop-opacity="0"/>
</linearGradient>
</defs>
<!-- Full-bleed background -->
<rect width="512" height="512" fill="url(#bgGrad)"/>
<!-- Subtle radial glow behind book -->
<ellipse cx="268" cy="256" rx="200" ry="220" fill="#2e6b8a" opacity="0.25"/>
<!-- Book, scaled 1.84x and centered (book canvas 200x260 → 368x478, centered in 512x512) -->
<!-- x_offset=(512-368)/2=72, y_offset=(512-478)/2=17 -->
<g transform="translate(72, 17) scale(1.84)">
<!-- Pages -->
<rect x="36" y="18" width="142" height="230" rx="2" fill="url(#pageGrad)" filter="url(#shadow)"/>
<rect x="34" y="16" width="142" height="230" rx="2" fill="#ece9df"/>
<rect x="32" y="14" width="142" height="230" rx="2" fill="#f0ede3"/>
<!-- Spine -->
<rect x="18" y="14" width="18" height="230" rx="2" fill="url(#spineGrad)"/>
<line x1="35" y1="14" x2="35" y2="244" stroke="#00000030" stroke-width="1"/>
<!-- Cover -->
<rect x="32" y="14" width="142" height="230" rx="2" fill="url(#coverGrad)"/>
<rect x="32" y="14" width="142" height="230" rx="2" fill="url(#coverShine)"/>
<!-- Cover border -->
<rect x="40" y="22" width="126" height="214" rx="1" fill="none" stroke="#ffffff30" stroke-width="1.5"/>
<!-- Star (scale 0.888 within book, translate 67,59) -->
<g transform="translate(67, 59) scale(0.888)">
<path d="m 32.120065,25.957965 -15.0296,-9.2912 c -0.3066,-0.187 -0.6532,0.1603 -0.4666,0.4676 l 8.9112,14.4745 c 0.2399,0.3874 0.5665,0.7013 0.9597,0.9284 l 14.0032,8.0555 V 0.34209525 c 0,-0.394094 -0.5532,-0.474248 -0.6665,-0.1002 z" fill="#6197b4"/>
<path d="m 25.901665,48.988865 -9.271,15.0556 c -0.1866,0.3073 0.16,0.6546 0.4665,0.4676 l 14.4431,-8.9305 c 0.3866,-0.2405 0.6999,-0.5678 0.9265,-0.9619 l 8.038,-14.0336 H 0.34134532 c -0.393231,0 -0.473212,0.5544 -0.09997,0.6679 z" fill="#bdccd6"/>
<path d="m 55.101065,32.189965 9.2711,-15.0623 c 0.1866,-0.3072 -0.16,-0.6546 -0.4666,-0.4675 l -14.4431,8.9371 c -0.3865,0.2405 -0.6998,0.5678 -0.9264,0.9619 l -8.038,14.027 h 40.1634 c 0.3932,0 0.4732,-0.5544 0.1,-0.668 z" fill="#94bfcf"/>
<path d="m 54.507965,48.641565 -14.0099,-8.0555 v 40.2507 c 0,0.3941 0.5532,0.4742 0.6665,0.1002 l 7.7181,-25.7094 15.0296,9.2912 c 0.3066,0.187 0.6532,-0.1603 0.4665,-0.4676 l -8.9177,-14.4812 c -0.2333,-0.3807 -0.5666,-0.7013 -0.9531,-0.9284 z" fill="#eee9d9"/>
</g>
<!-- Title -->
<text x="103" y="180" text-anchor="middle" font-family="Georgia, serif" font-size="15" font-weight="bold" fill="#ffffff" letter-spacing="1">TOREAD</text>
<line x1="55" y1="188" x2="151" y2="188" stroke="#ffffff50" stroke-width="0.8"/>
<text x="103" y="202" text-anchor="middle" font-family="Georgia, serif" font-size="9" fill="#aaccdd" letter-spacing="2">E-READER</text>
<!-- Bottom spine detail -->
<rect x="18" y="228" width="18" height="16" fill="#0e2030"/>
</g>
</svg>