catcrafts.net/favicon.svg
Jorijn van der Graaf b49042a626
All checks were successful
Deploy / build-deploy (push) Successful in 5m32s
new logo
2026-08-05 23:52:40 +02:00

45 lines
2.6 KiB
XML

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" role="img" aria-label="Catcrafts">
<!--
The ASCII cat, reified: ^ ^ caret eyes and the site's ">_" prompt as the
mouth — the cat speaks shell. The prompt sits left of centre on purpose;
prompts are left-aligned. Replaces the bare ">_" tile, which was honest
about the terminal but silent about the name.
Head geometry is the "flare" revision: the first cut had a flat crown
between wide ear tufts and a square jaw, which read horned-owl. Now the
ears stand tall over a domed skull, the cheeks taper to a rounded chin
(owl faces stay wide all the way down), and the whiskers spring OUTWARD
from the cheek line into the corners the taper frees up — outside the
face so they never crowd the prompt. Whiskers are drawn at 3.5 against
the face's 5 so they read as hair, not bone.
Drawn as paths, not <text>. A text favicon depends on a font being available
at 16px in whatever context the browser rasterises it — including contexts
with no font stack at all — and falls back to a blank tile when it is not.
Paths always render.
The same geometry is inlined in RenderNav (Catcrafts.Shared-Views.cppm)
with CSS-variable colours. Change the drawing there too or the header and
the tab icon drift apart.
-->
<rect width="64" height="64" rx="12" fill="#0b0d10"/>
<!-- head: tall ears, domed crown, cheeks tapering to a rounded chin -->
<path d="M9 26 L13 4 L23 15 Q32 11 41 15 L51 4 L55 26 L54 38 Q52 56 32 56 Q12 56 10 38 Z"
fill="none" stroke="#4cc2ff" stroke-width="5" stroke-linejoin="round"/>
<!-- whiskers: outside the silhouette, anchored to the cheek line -->
<path d="M10.5 40 L4.5 42 M11.5 46 L6 49 M53.5 40 L59.5 42 M52.5 46 L58 49"
fill="none" stroke="#4cc2ff" stroke-width="3.5" stroke-linecap="round"/>
<!-- eyes: the ^ ^ of a happy ASCII cat. Two units above the first cut so
the > keeps clear air after the prompt moved up away from the chin. -->
<path d="M17 32 L23 25 L29 32 M35 32 L41 25 L47 32"
fill="none" stroke="#4cc2ff" stroke-width="5"
stroke-linecap="round" stroke-linejoin="round"/>
<!-- mouth: the shell prompt. Two units higher than the first cut — the
tapered jaw curves inward through the y48-52 band the glyphs' stroke
edges used to occupy, and they visibly collided with the chin. -->
<path d="M23 38 L29 43 L23 48"
fill="none" stroke="#e6e8ec" stroke-width="5"
stroke-linecap="round" stroke-linejoin="round"/>
<path d="M34 48 L42 48"
fill="none" stroke="#e6e8ec" stroke-width="5" stroke-linecap="round"/>
</svg>