morphit/apps/web/static/app-icon-maskable.svg

46 lines
3.6 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="UTF-8"?>
<!--
Morphit PWA app icon (purpose: "maskable").
Same canonical dark background (#0a0e16) and emerald-to-teal mark
as app-icon.svg, BUT sized so the mark fits entirely inside the
inner safe radius that Android's adaptive-icon mask preserves
(per the W3C maskable-icon spec, a 40% radius from center is
guaranteed to remain visible under any shaped mask: circle,
squircle, rounded square, teardrop, etc.).
Safe-zone math:
- viewBox: 512 × 512
- center: (256, 256)
- safe radius: 40% of half-diagonal ≈ 0.4 × 362 ≈ 145, but the
practical safe AREA is a square 0.8 × 0.8 = 410 × 410 inscribed
in a circle of radius ~205.
- The mark is 10.889 × 7.049 (~1.545:1). To fit inside a 205 px
radius circle: bounding ellipse axes must satisfy (w/2)² +
(h/2)² ≤ 205². Pick w = 252, h ≈ 163 → (126² + 81.5²)^½ ≈ 150 ≤ 205 ✓.
- Scale = 252 / 10.889 ≈ 23.14.
- Centered at (256 - 126, 256 - 81.5) ≈ (130, 174.5).
-->
<svg xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 512 512"
role="img"
aria-label="Morphit">
<title>Morphit</title>
<desc>Two interlocked rings — the Morphit mark — on a dark background, sized for Android adaptive icons.</desc>
<defs>
<linearGradient id="g" gradientUnits="userSpaceOnUse" x1="130" y1="256" x2="382" y2="256">
<stop offset="0" stop-color="#8EEF26"/>
<stop offset="0.502" stop-color="#00DA69"/>
<stop offset="1" stop-color="#02A6B2"/>
</linearGradient>
</defs>
<!-- Full canvas dark background so any mask shape sees ink-950. -->
<rect width="512" height="512" fill="#0a0e16"/>
<!-- Mark, centered and inside the maskable safe radius. -->
<g transform="translate(130, 174.5) scale(23.14)">
<path d="M5.451.74c.25-.16.52-.29.81-.39a3.4 3.4 0 0 1 1.11-.18c.97 0 1.85.39 2.49 1.03s1.03 1.52 1.03 2.49c0 .98-.39 1.86-1.03 2.5-.64.63-1.52 1.03-2.49 1.03a3.4 3.4 0 0 1-1.11-.18c-.29-.1-.56-.23-.81-.39-.25.16-.52.29-.81.39a3.46 3.46 0 0 1-1.12.18c-.97 0-1.85-.4-2.49-1.03-.64-.64-1.03-1.52-1.03-2.5 0-.97.39-1.85 1.03-2.49S2.551.17 3.521.17a3.46 3.46 0 0 1 1.12.18c.29.1.56.23.81.39zm1.01.22c-.18.05-.34.13-.5.22.09.11.18.24.25.38.12.25.2.55.2.85a1.96 1.96 0 0 1-.21.87c-.14.27-.33.5-.57.68-.16.12-.28.27-.37.45-.09.17-.13.36-.13.57a1.36 1.36 0 0 0 .13.57 1.27 1.27 0 0 0 .38.45h0c.24.19.52.33.82.43.28.1.59.15.91.15.8 0 1.52-.32 2.04-.85a2.87 2.87 0 0 0 .84-2.04c0-.79-.32-1.51-.84-2.03-.52-.53-1.24-.85-2.04-.85-.32 0-.63.05-.91.15zm-1.01.17h0l-.14.18zm0 5.13l.01-.02zm-1.01.17c.17-.06.34-.13.5-.22a1.85 1.85 0 0 1-.25-.37 1.91 1.91 0 0 1-.2-.86 2 2 0 0 1 .19-.85c.14-.27.33-.5.56-.68h0c.17-.12.3-.28.39-.46.09-.17.14-.37.14-.58a1.23 1.23 0 0 0-.14-.57 1.27 1.27 0 0 0-.38-.45h.01c-.25-.19-.53-.33-.82-.43s-.59-.15-.92-.15a2.83 2.83 0 0 0-2.03.85 2.83 2.83 0 0 0-.85 2.03c0 .8.32 1.52.85 2.04a2.83 2.83 0 0 0 2.03.85c.33 0 .63-.05.92-.15zm-.92-5.19c.18 0 .33.15.33.33 0 .17-.15.32-.33.32-.15 0-.29.01-.43.05-.14.03-.28.08-.41.15l-.14.09c-.05.03-.09.06-.14.1l-.13.11-.11.12a1.31 1.31 0 0 0-.2.28 1.77 1.77 0 0 0-.15.31.31.31 0 0 1-.4.2.32.32 0 0 1-.2-.41 2.68 2.68 0 0 1 .19-.42c.08-.14.18-.27.28-.38a2.06 2.06 0 0 1 .15-.16c.06-.06.12-.11.17-.15.06-.05.12-.09.19-.14a1.28 1.28 0 0 1 .2-.11c.17-.09.35-.17.55-.21.19-.05.38-.08.58-.08zm-2.42 2.81c-.02-.18.1-.34.27-.36.18-.03.34.09.36.27.02.11.05.22.08.33.04.1.09.2.14.3.09.16.04.35-.11.44-.16.09-.35.04-.44-.12a2.68 2.68 0 0 1-.19-.42 2.18 2.18 0 0 1-.11-.44z"
fill="url(#g)"
fill-rule="evenodd"
transform="translate(-.001 -.17)"/>
</g>
</svg>