Refine Burrow owl icon source
Some checks failed
Build Rust / Cargo Test (push) Successful in 4m3s
Build Site / Next.js Build (push) Failing after 4s
Lint Governance / BEP Metadata (push) Successful in 1s

This commit is contained in:
Conrad Kramer 2026-06-07 21:43:58 -07:00
parent 940f46bbbc
commit 6c169f6b45
51 changed files with 313 additions and 30 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 8.2 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1 MiB

After

Width:  |  Height:  |  Size: 483 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 9.9 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 606 B

After

Width:  |  Height:  |  Size: 573 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 853 B

After

Width:  |  Height:  |  Size: 791 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 3 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 242 KiB

After

Width:  |  Height:  |  Size: 97 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

After

Width:  |  Height:  |  Size: 5.1 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.4 KiB

After

Width:  |  Height:  |  Size: 5.5 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

After

Width:  |  Height:  |  Size: 5.9 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.3 KiB

After

Width:  |  Height:  |  Size: 6.6 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.5 KiB

After

Width:  |  Height:  |  Size: 6.8 KiB

Before After
Before After

View file

@ -5,29 +5,45 @@
<stop offset="0" stop-color="#1b140f"/>
<stop offset="1" stop-color="#080604"/>
</linearGradient>
<linearGradient id="burrow-gold" x1="46" y1="37" x2="82" y2="91" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#d89a43"/>
<stop offset="1" stop-color="#9a5b1c"/>
<linearGradient id="burrow-body" x1="48" y1="29" x2="80" y2="84" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#b87435"/>
<stop offset="0.65" stop-color="#72401f"/>
<stop offset="1" stop-color="#2a1710"/>
</linearGradient>
<linearGradient id="burrow-ground" x1="25" y1="96" x2="103" y2="116" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#4a2a18"/>
<stop offset="0.48" stop-color="#a7632a"/>
<stop offset="1" stop-color="#3a2114"/>
</linearGradient>
<linearGradient id="burrow-gold" x1="45" y1="41" x2="83" y2="59" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#ffd762"/>
<stop offset="1" stop-color="#c98213"/>
</linearGradient>
</defs>
<rect x="4" y="4" width="120" height="120" rx="28" fill="url(#burrow-bg)"/>
<ellipse cx="64" cy="91" rx="45" ry="18" fill="#3a2214"/>
<ellipse cx="64" cy="91" rx="35" ry="10" fill="#090604"/>
<path d="M28 52c7-20 21-31 36-31s29 11 36 31c5 16 1 38-11 51H39C27 90 23 68 28 52Z" fill="#24160f"/>
<path d="M37 50c7-15 17-22 27-22s20 7 27 22c5 12 3 29-5 40H42c-8-11-10-28-5-40Z" fill="#59371f"/>
<path d="M31 36c15 8 25 15 33 25C48 60 38 53 31 36Z" fill="#c48636"/>
<path d="M97 36c-15 8-25 15-33 25 16-1 26-8 33-25Z" fill="#c48636"/>
<path d="M40 52c4-8 11-13 20-13 3 0 6 1 9 2-4 12-12 20-24 22-3-2-5-6-5-11Z" fill="#0b0806"/>
<path d="M88 52c-4-8-11-13-20-13-3 0-6 1-9 2 4 12 12 20 24 22 3-2 5-6 5-11Z" fill="#0b0806"/>
<circle cx="50" cy="52" r="11" fill="url(#burrow-gold)"/>
<circle cx="78" cy="52" r="11" fill="url(#burrow-gold)"/>
<circle cx="50" cy="52" r="6" fill="#050403"/>
<circle cx="78" cy="52" r="6" fill="#050403"/>
<circle cx="54" cy="48" r="2.5" fill="#f6dfb7"/>
<circle cx="82" cy="48" r="2.5" fill="#f6dfb7"/>
<path d="M64 58l9 9-9 19-9-19Z" fill="#d8892e"/>
<path d="M64 58v28l-9-19Z" fill="#f0ad47"/>
<path d="M42 84c6 6 13 9 22 9s16-3 22-9c-5 17-13 27-22 27s-17-10-22-27Z" fill="#7a4b29"/>
<path d="M58 76c-6 1-11 5-15 11M70 76c6 1 11 5 15 11" fill="none" stroke="#b97932" stroke-width="5" stroke-linecap="round"/>
<path d="M50 28c3-5 8-9 14-9s11 4 14 9" fill="none" stroke="#9a5b1c" stroke-width="5" stroke-linecap="round"/>
<path d="M45 58c0-18 7-29 19-29s19 11 19 29c0 17-8 28-19 28S45 75 45 58Z" fill="url(#burrow-body)"/>
<path d="M49 62c3 6 8 10 15 10s12-4 15-10c1 14-5 22-15 22s-16-8-15-22Z" fill="#4b2919" opacity=".42"/>
<path d="M48 41c4-9 10-14 16-14s12 5 16 14c-5-4-11-6-16-6s-11 2-16 6Z" fill="#8b4f25"/>
<path d="M50 42c4-4 9-6 14-6 2 0 4 .3 5 .8-3 6-7 9-14 10-2-.7-4-2-5-4.8Z" fill="#fff0c8"/>
<path d="M78 42c-4-4-9-6-14-6-2 0-4 .3-5 .8 3 6 7 9 14 10 2-.7 4-2 5-4.8Z" fill="#fff0c8"/>
<circle cx="56" cy="43" r="5.4" fill="url(#burrow-gold)"/>
<circle cx="72" cy="43" r="5.4" fill="url(#burrow-gold)"/>
<circle cx="56" cy="43" r="2.8" fill="#050403"/>
<circle cx="72" cy="43" r="2.8" fill="#050403"/>
<path d="M64 47l4 4.4-4 7.8-4-7.8Z" fill="#d89642"/>
<path d="M51 35c4-4 8-5.8 13-5.8s9 1.8 13 5.8" fill="none" stroke="#f2d69e" stroke-width="3" stroke-linecap="round"/>
<g fill="#f2d69e" opacity=".9">
<ellipse cx="55" cy="58" rx="3.1" ry="1.7" transform="rotate(20 55 58)"/>
<ellipse cx="64" cy="59" rx="3.4" ry="1.7"/>
<ellipse cx="73" cy="58" rx="3.1" ry="1.7" transform="rotate(-20 73 58)"/>
<ellipse cx="58" cy="68" rx="3.4" ry="1.7" transform="rotate(30 58 68)"/>
<ellipse cx="70" cy="68" rx="3.4" ry="1.7" transform="rotate(-30 70 68)"/>
<ellipse cx="64" cy="77" rx="1.8" ry="4"/>
</g>
<path d="M56 78c2-1 5-1 7 0l-2 31c-.3 2.5-4.3 2.5-4.6 0Z" fill="#d99b52"/>
<path d="M65 78c2-1 5-1 7 0l-1.4 31c-.3 2.5-4.3 2.5-4.6 0Z" fill="#d99b52"/>
<path d="M23 108c9-7 24-11 41-11s32 4 41 11c-10-3-23-4.5-41-4.5S33 105 23 108Z" fill="url(#burrow-ground)"/>
<path d="M33 111c7-4 17-6 31-6s24 2 31 6c-8-1.5-18-2.2-31-2.2s-23 .7-31 2.2Z" fill="#0d0805"/>
<path d="M56.5 110c-4 1-7.7 3.2-10.8 6.5 5.2-1.2 9.5-1 12.8.7 2 1 4.3-.5 4.1-2.7-.2-2.4-2.4-5.2-6.1-4.5Z" fill="#3d2917"/>
<path d="M71.5 110c4 1 7.7 3.2 10.8 6.5-5.2-1.2-9.5-1-12.8.7-2 1-4.3-.5-4.1-2.7.2-2.4 2.4-5.2 6.1-4.5Z" fill="#3d2917"/>
</svg>

Before

Width:  |  Height:  |  Size: 2 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

Before After
Before After

View file

@ -1,9 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
<g fill="#2e3436">
<path d="M3.1 6.3C3.8 3.7 5.5 2 8 2s4.2 1.7 4.9 4.3c.5 2-.1 4.4-1.7 5.7H4.8C3.2 10.7 2.6 8.3 3.1 6.3Z"/>
<path d="M1.5 4.1c2.4 1.1 3.8 2.1 5 3.5-2.3-.1-3.9-1.1-5-3.5ZM14.5 4.1c-2.4 1.1-3.8 2.1-5 3.5 2.3-.1 3.9-1.1 5-3.5Z"/>
<path d="M7.2 7.2 8 8.1l.8-.9-.8 4.2Z"/>
<path d="M5.6 6.4a1.3 1.3 0 1 0 0 .1ZM10.4 6.4a1.3 1.3 0 1 0 0 .1Z" fill="#fff"/>
<path d="M8 11.5c-2.7 0-4.9.8-5.6 2 .9-.3 2.8-.5 5.6-.5s4.7.2 5.6.5c-.7-1.2-2.9-2-5.6-2Z"/>
<path d="M5 7c0-2.7 1.1-4.4 3-4.4S11 4.3 11 7c0 2.4-1.2 4-3 4s-3-1.6-3-4Z"/>
<path d="M5.2 4.8c.8-1 1.7-1.5 2.8-1.5s2 .5 2.8 1.5C9.9 4.4 9 4.2 8 4.2s-1.9.2-2.8.6Z"/>
<path d="M5.8 5.7c.6-.5 1.2-.8 2-.7-.3.8-.9 1.2-1.7 1.3-.2-.1-.3-.3-.3-.6ZM10.2 5.7c-.6-.5-1.2-.8-2-.7.3.8.9 1.2 1.7 1.3.2-.1.3-.3.3-.6Z" fill="#fff"/>
<path d="M7.5 6.5 8 7l.5-.5L8 8.2Z"/>
<path d="M6.8 10.3h.6l-.2 2.5h-.5ZM8.6 10.3h.6l-.1 2.5h-.5Z"/>
<path d="M2.4 13c1.1-.9 3-1.4 5.6-1.4s4.5.5 5.6 1.4c-1.4-.3-3.3-.5-5.6-.5s-4.2.2-5.6.5Z"/>
<path d="M6.8 12.9c-.8.2-1.4.6-2 1.1 1-.2 1.7-.2 2.2 0 .3.1.6-.1.6-.4s-.3-.8-.8-.7ZM9.2 12.9c.8.2 1.4.6 2 1.1-1-.2-1.7-.2-2.2 0-.3.1-.6-.1-.6-.4s.3-.8.8-.7Z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 578 B

After

Width:  |  Height:  |  Size: 817 B

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

View file

@ -0,0 +1,64 @@
{
"fill" : {
"automatic-gradient" : "srgb:0.09020,0.06275,0.04314,1.00000"
},
"groups" : [
{
"layers" : [
{
"glass" : false,
"hidden" : false,
"image-name" : "burrow-ground.png",
"name" : "burrow-ground",
"position" : {
"scale" : 1,
"translation-in-points" : [
0,
0
]
}
},
{
"glass" : false,
"hidden" : false,
"image-name" : "owl-figure.png",
"name" : "owl-figure",
"position" : {
"scale" : 1,
"translation-in-points" : [
0,
0
]
}
},
{
"glass" : false,
"hidden" : false,
"image-name" : "owl-legs.png",
"name" : "owl-legs",
"position" : {
"scale" : 1,
"translation-in-points" : [
0,
0
]
}
}
],
"shadow" : {
"kind" : "neutral",
"opacity" : 0.36
},
"translucency" : {
"enabled" : false,
"value" : 0
}
}
],
"supported-platforms" : {
"circles" : [
"watchOS"
],
"squares" : "shared"
}
}

View file

@ -1,12 +1,46 @@
# Burrow Brand Source
`burrow-owl-icon-master.png` is the current generated master for the Burrow app
icon. The mark centers a burrowing owl in a dark brown/black field with minimal
warm brown and gold accents.
icon. The mark centers a leg-forward burrowing owl in a dark brown/black field
with minimal warm brown and gold accents.
Regenerate the Apple app icon PNGs from the master with:
The editable source is split by intent:
- `burrowing-owl-icon-source.svg` is the human-readable vector source.
- `icon-layers/*.svg` are the transparent source layers used to regenerate the
Icon Composer package.
- `Burrow.icon` is the Icon Composer document. Keep it to three broad raster
layers: `burrow-ground`, `owl-figure`, and `owl-legs`.
- `burrowing-owl-concept-v2.png` is reference art only; do not use it directly
as an app icon.
That layer count is intentional. The identifying cue is the long Burrowing Owl
leg silhouette, so Icon Composer should receive broad shape planes instead of
small decorative SVG layers. Face and spot details are flattened into
`owl-figure.png`; the legs stay in the front layer so they survive small sizes.
Regenerate the Icon Composer layer assets and Apple app icon PNGs with:
```bash
for src in design/brand/icon-layers/*.svg; do
name="$(basename "$src" .svg)"
sips -s format png "$src" --out "design/brand/Burrow.icon/Assets/${name}.png" >/dev/null
done
magick \
design/brand/Burrow.icon/Assets/owl-body.png \
design/brand/Burrow.icon/Assets/owl-face.png \
design/brand/Burrow.icon/Assets/owl-spots.png \
-background none -layers merge -strip \
PNG32:design/brand/Burrow.icon/Assets/owl-figure.png
"/Applications/Xcode/Xcode.app/Contents/Applications/Icon Composer.app/Contents/Executables/ictool" \
design/brand/Burrow.icon \
--export-image \
--output-file design/brand/burrow-owl-icon-master.png \
--platform iOS \
--rendition Default \
--width 1024 \
--height 1024 \
--scale 1
for f in Apple/UI/Assets.xcassets/AppIcon.appiconset/*.png; do
size="$(basename "$f" .png)"
magick design/brand/burrow-owl-icon-master.png -colorspace sRGB -resize "${size}x${size}!" -strip "PNG24:$f"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 MiB

After

Width:  |  Height:  |  Size: 722 KiB

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 214 KiB

View file

@ -0,0 +1,79 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1024" height="1024" viewBox="0 0 1024 1024" role="img" aria-label="Burrow burrowing owl icon source">
<defs>
<linearGradient id="body-fill" x1="360" y1="230" x2="650" y2="725" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#b87435"/>
<stop offset="0.62" stop-color="#72401f"/>
<stop offset="1" stop-color="#2a1710"/>
</linearGradient>
<linearGradient id="ground-fill" x1="230" y1="740" x2="800" y2="900" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#4a2a18"/>
<stop offset="0.46" stop-color="#a7632a"/>
<stop offset="1" stop-color="#3a2114"/>
</linearGradient>
<linearGradient id="leg-fill" x1="430" y1="600" x2="604" y2="920" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#f2c27c"/>
<stop offset="1" stop-color="#9b612c"/>
</linearGradient>
<radialGradient id="eye-fill" cx="50%" cy="45%" r="55%">
<stop offset="0" stop-color="#ffd762"/>
<stop offset="1" stop-color="#c98213"/>
</radialGradient>
<filter id="soft-shadow" x="-20%" y="-20%" width="140%" height="140%">
<feDropShadow dx="0" dy="20" stdDeviation="16" flood-color="#000000" flood-opacity="0.34"/>
</filter>
</defs>
<g id="burrow-ground">
<ellipse cx="512" cy="886" rx="350" ry="72" fill="#070403" opacity="0.82"/>
<path d="M190 872c62-57 182-88 322-88s260 31 322 88c-82-22-190-34-322-34s-240 12-322 34Z" fill="url(#ground-fill)"/>
<path d="M266 888c54-31 136-46 246-46s192 15 246 46c-62-12-144-18-246-18s-184 6-246 18Z" fill="#0d0805"/>
<path d="M178 876c-24 12-39 29-45 50 36-13 78-19 124-17l-13-39c-23 0-45 2-66 6Z" fill="#321c11"/>
<path d="M846 876c24 12 39 29 45 50-36-13-78-19-124-17l13-39c23 0 45 2 66 6Z" fill="#321c11"/>
<ellipse cx="318" cy="880" rx="22" ry="9" fill="#b17034" opacity="0.66"/>
<ellipse cx="721" cy="873" rx="21" ry="9" fill="#c27a36" opacity="0.62"/>
</g>
<g id="owl-body" filter="url(#soft-shadow)">
<path d="M346 455c0-144 65-235 166-235s166 91 166 235c0 134-68 224-166 224s-166-90-166-224Z" fill="url(#body-fill)"/>
<path d="M378 478c24 52 68 80 134 80s110-28 134-80c5 113-48 181-134 181s-139-68-134-181Z" fill="#4b2919" opacity="0.38"/>
<path d="M380 506c-31 47-34 104-8 171 45-33 68-85 70-156Z" fill="#2b1710" opacity="0.48"/>
<path d="M644 506c31 47 34 104 8 171-45-33-68-85-70-156Z" fill="#2b1710" opacity="0.48"/>
<path d="M443 596c26 18 49 27 69 27s43-9 69-27c-14 49-37 74-69 74s-55-25-69-74Z" fill="#c48340" opacity="0.38"/>
</g>
<g id="owl-face">
<path d="M365 346c37-75 86-113 147-113s110 38 147 113c-42-31-91-47-147-47s-105 16-147 47Z" fill="#8b4f25"/>
<path d="M386 350c36-32 74-48 112-48 15 0 30 3 45 8-22 42-60 65-115 70-18-5-32-15-42-30Z" fill="#fff0c8"/>
<path d="M638 350c-36-32-74-48-112-48-15 0-30 3-45 8 22 42 60 65 115 70 18-5 32-15 42-30Z" fill="#fff0c8"/>
<path d="M407 355c21-20 47-29 78-28-13 30-35 47-67 51-7-6-11-14-11-23Z" fill="#170e09"/>
<path d="M617 355c-21-20-47-29-78-28 13 30 35 47 67 51 7-6 11-14 11-23Z" fill="#170e09"/>
<circle cx="446" cy="358" r="34" fill="url(#eye-fill)"/>
<circle cx="578" cy="358" r="34" fill="url(#eye-fill)"/>
<circle cx="446" cy="358" r="18" fill="#050403"/>
<circle cx="578" cy="358" r="18" fill="#050403"/>
<circle cx="457" cy="343" r="8" fill="#fff8e4"/>
<circle cx="589" cy="343" r="8" fill="#fff8e4"/>
<path d="M512 384l30 34-30 62-30-62Z" fill="#d89642"/>
<path d="M512 384v96l-30-62Z" fill="#f0bd65" opacity="0.84"/>
<path d="M402 295c31-27 68-41 110-41s79 14 110 41" fill="none" stroke="#f2d69e" stroke-width="20" stroke-linecap="round"/>
</g>
<g id="owl-spots" fill="#f2d69e" opacity="0.9">
<ellipse cx="443" cy="471" rx="22" ry="13" transform="rotate(22 443 471)"/>
<ellipse cx="512" cy="478" rx="25" ry="13"/>
<ellipse cx="581" cy="471" rx="22" ry="13" transform="rotate(-22 581 471)"/>
<ellipse cx="462" cy="543" rx="26" ry="13" transform="rotate(30 462 543)"/>
<ellipse cx="512" cy="552" rx="28" ry="13"/>
<ellipse cx="562" cy="543" rx="26" ry="13" transform="rotate(-30 562 543)"/>
<ellipse cx="512" cy="621" rx="14" ry="30"/>
</g>
<g id="owl-legs">
<path d="M437 616c20-9 43-9 63 0l-18 258c-2 22-31 22-33 0Z" fill="url(#leg-fill)"/>
<path d="M524 616c20-9 43-9 63 0l-12 258c-2 22-31 22-33 0Z" fill="url(#leg-fill)"/>
<path d="M446 676h40M442 744h38M438 812h35M538 676h40M536 744h38M533 812h35" stroke="#74461f" stroke-width="9" stroke-linecap="round" opacity="0.34"/>
<path d="M451 872c-34 9-63 26-88 51 42-9 76-7 102 7 16 8 35-4 33-22-1-20-19-42-47-36Z" fill="#d99b52"/>
<path d="M573 872c34 9 63 26 88 51-42-9-76-7-102 7-16 8-35-4-33-22 1-20 19-42 47-36Z" fill="#d99b52"/>
<path d="M398 922l-32 30M444 928l-6 43M489 921l29 35M626 922l32 30M580 928l6 43M535 921l-29 35" stroke="#2a1710" stroke-width="14" stroke-linecap="round"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.9 KiB

View file

@ -0,0 +1,16 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1024" height="1024" viewBox="0 0 1024 1024">
<defs>
<linearGradient id="ground-fill" x1="230" y1="740" x2="800" y2="900" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#4a2a18"/>
<stop offset="0.46" stop-color="#a7632a"/>
<stop offset="1" stop-color="#3a2114"/>
</linearGradient>
</defs>
<ellipse cx="512" cy="886" rx="350" ry="72" fill="#070403" opacity="0.82"/>
<path d="M190 872c62-57 182-88 322-88s260 31 322 88c-82-22-190-34-322-34s-240 12-322 34Z" fill="url(#ground-fill)"/>
<path d="M266 888c54-31 136-46 246-46s192 15 246 46c-62-12-144-18-246-18s-184 6-246 18Z" fill="#0d0805"/>
<path d="M178 876c-24 12-39 29-45 50 36-13 78-19 124-17l-13-39c-23 0-45 2-66 6Z" fill="#321c11"/>
<path d="M846 876c24 12 39 29 45 50-36-13-78-19-124-17l13-39c23 0 45 2 66 6Z" fill="#321c11"/>
<ellipse cx="318" cy="880" rx="22" ry="9" fill="#b17034" opacity="0.66"/>
<ellipse cx="721" cy="873" rx="21" ry="9" fill="#c27a36" opacity="0.62"/>
</svg>

After

Width:  |  Height:  |  Size: 1 KiB

View file

@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1024" height="1024" viewBox="0 0 1024 1024">
<defs>
<linearGradient id="body-fill" x1="360" y1="230" x2="650" y2="725" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#b87435"/>
<stop offset="0.62" stop-color="#72401f"/>
<stop offset="1" stop-color="#2a1710"/>
</linearGradient>
<filter id="soft-shadow" x="-20%" y="-20%" width="140%" height="140%">
<feDropShadow dx="0" dy="20" stdDeviation="16" flood-color="#000000" flood-opacity="0.34"/>
</filter>
</defs>
<g filter="url(#soft-shadow)">
<path d="M346 455c0-144 65-235 166-235s166 91 166 235c0 134-68 224-166 224s-166-90-166-224Z" fill="url(#body-fill)"/>
<path d="M378 478c24 52 68 80 134 80s110-28 134-80c5 113-48 181-134 181s-139-68-134-181Z" fill="#4b2919" opacity="0.38"/>
<path d="M380 506c-31 47-34 104-8 171 45-33 68-85 70-156Z" fill="#2b1710" opacity="0.48"/>
<path d="M644 506c31 47 34 104 8 171-45-33-68-85-70-156Z" fill="#2b1710" opacity="0.48"/>
<path d="M443 596c26 18 49 27 69 27s43-9 69-27c-14 49-37 74-69 74s-55-25-69-74Z" fill="#c48340" opacity="0.38"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View file

@ -0,0 +1,22 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1024" height="1024" viewBox="0 0 1024 1024">
<defs>
<radialGradient id="eye-fill" cx="50%" cy="45%" r="55%">
<stop offset="0" stop-color="#ffd762"/>
<stop offset="1" stop-color="#c98213"/>
</radialGradient>
</defs>
<path d="M365 346c37-75 86-113 147-113s110 38 147 113c-42-31-91-47-147-47s-105 16-147 47Z" fill="#8b4f25"/>
<path d="M386 350c36-32 74-48 112-48 15 0 30 3 45 8-22 42-60 65-115 70-18-5-32-15-42-30Z" fill="#fff0c8"/>
<path d="M638 350c-36-32-74-48-112-48-15 0-30 3-45 8 22 42 60 65 115 70 18-5 32-15 42-30Z" fill="#fff0c8"/>
<path d="M407 355c21-20 47-29 78-28-13 30-35 47-67 51-7-6-11-14-11-23Z" fill="#170e09"/>
<path d="M617 355c-21-20-47-29-78-28 13 30 35 47 67 51 7-6 11-14 11-23Z" fill="#170e09"/>
<circle cx="446" cy="358" r="34" fill="url(#eye-fill)"/>
<circle cx="578" cy="358" r="34" fill="url(#eye-fill)"/>
<circle cx="446" cy="358" r="18" fill="#050403"/>
<circle cx="578" cy="358" r="18" fill="#050403"/>
<circle cx="457" cy="343" r="8" fill="#fff8e4"/>
<circle cx="589" cy="343" r="8" fill="#fff8e4"/>
<path d="M512 384l30 34-30 62-30-62Z" fill="#d89642"/>
<path d="M512 384v96l-30-62Z" fill="#f0bd65" opacity="0.84"/>
<path d="M402 295c31-27 68-41 110-41s79 14 110 41" fill="none" stroke="#f2d69e" stroke-width="20" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View file

@ -0,0 +1,14 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1024" height="1024" viewBox="0 0 1024 1024">
<defs>
<linearGradient id="leg-fill" x1="430" y1="600" x2="604" y2="920" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#f2c27c"/>
<stop offset="1" stop-color="#9b612c"/>
</linearGradient>
</defs>
<path d="M437 616c20-9 43-9 63 0l-18 258c-2 22-31 22-33 0Z" fill="url(#leg-fill)"/>
<path d="M524 616c20-9 43-9 63 0l-12 258c-2 22-31 22-33 0Z" fill="url(#leg-fill)"/>
<path d="M446 676h40M442 744h38M438 812h35M538 676h40M536 744h38M533 812h35" stroke="#74461f" stroke-width="9" stroke-linecap="round" opacity="0.34"/>
<path d="M451 872c-34 9-63 26-88 51 42-9 76-7 102 7 16 8 35-4 33-22-1-20-19-42-47-36Z" fill="#d99b52"/>
<path d="M573 872c34 9 63 26 88 51-42-9-76-7-102 7-16 8-35-4-33-22 1-20 19-42 47-36Z" fill="#d99b52"/>
<path d="M398 922l-32 30M444 928l-6 43M489 921l29 35M626 922l32 30M580 928l6 43M535 921l-29 35" stroke="#2a1710" stroke-width="14" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 1 KiB

View file

@ -0,0 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1024" height="1024" viewBox="0 0 1024 1024">
<g fill="#f2d69e" opacity="0.9">
<ellipse cx="443" cy="471" rx="22" ry="13" transform="rotate(22 443 471)"/>
<ellipse cx="512" cy="478" rx="25" ry="13"/>
<ellipse cx="581" cy="471" rx="22" ry="13" transform="rotate(-22 581 471)"/>
<ellipse cx="462" cy="543" rx="26" ry="13" transform="rotate(30 462 543)"/>
<ellipse cx="512" cy="552" rx="28" ry="13"/>
<ellipse cx="562" cy="543" rx="26" ry="13" transform="rotate(-30 562 543)"/>
<ellipse cx="512" cy="621" rx="14" ry="30"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 610 B

View file

@ -138,6 +138,12 @@ production services are enabled.
- Namespace cache setup remains the fast path for remote Bazel and local disk
caches.
- Use a shared Burrow owl identity across app shells:
- the mark uses a grounded Burrowing Owl silhouette: compact face, warm brown
body, small cream markings, and long pale legs visible in front of the
burrow rim.
- `design/brand/Burrow.icon` is the Icon Composer source and is intentionally
kept to three broad raster layers: burrow ground, owl figure, and front
legs.
- `design/brand/burrow-owl-icon-master.png` is the generated raster master for
Apple app icon outputs.
- Apple asset catalogs derive all `AppIcon` PNG sizes from that master and