Add raster panel icon family
Some checks failed
Build: Android / Android Rust Core Stub (push) Failing after 25s
Build Rust / Cargo Test (push) Successful in 4m2s
Build Site / Next.js Build (push) Failing after 4s
Lint Governance / BEP Metadata (push) Successful in 2s

This commit is contained in:
Conrad Kramer 2026-06-08 00:20:25 -07:00
parent c81712b781
commit 60cc48a4b7
278 changed files with 1992 additions and 621 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 199 KiB

After

Width:  |  Height:  |  Size: 485 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 140 KiB

After

Width:  |  Height:  |  Size: 485 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

Before After
Before After

View file

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

View file

@ -1,50 +1,46 @@
# Burrow Brand Source
`burrow-owl-icon-master.png` is the current generated master for the Burrow app
icon. The mark centers a leg-forward burrowing owl in a dark brown/black field
with minimal warm brown and gold accents.
`design/brand/panel-variants/source-sheet.png` is the locked icon style sheet.
The six cropped PNG masters in `design/brand/panel-variants/` are the canonical
app icon source. Do not redraw these as SVG; regenerate platform outputs from
the raster panel masters.
The editable source is split by intent:
`Scripts/generate-brand-icons.py` owns all generated outputs:
- `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.
- `Apple/UI/Assets.xcassets/AppIcon.appiconset`: primary iOS and macOS app
icons at exact asset-catalog dimensions.
- `Apple/UI/Assets.xcassets/BurrowPanel*.appiconset`: iOS alternate app icons.
- `Apple/UI/Assets.xcassets/BurrowPanel*Preview.imageset`: in-app selector
previews.
- `design/brand/watchos/AppIcon.appiconset`: watchOS reference app icon catalog
using the selected watchOS panel.
- `Android/app/src/main/res/mipmap-*`: Android launcher PNGs.
- `store-metadata/android/icon.png`: Google Play icon.
- `burrow-gtk/data/icons/hicolor/{16,24,32,48,64,128,256,512}/apps`: Linux
hicolor PNGs.
- `design/brand/low-res`: low-resolution QA exports and preview strips.
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.
Platform picks:
Regenerate the Icon Composer layer assets and Apple app icon PNGs with:
- iOS primary: `panel-01-guardian`
- iOS alternates: `panel-02-field`, `panel-03-burrow`, `panel-04-sentinel`,
`panel-05-stride`, `panel-06-post`
- macOS primary: `panel-05-stride`
- watchOS primary: `panel-03-burrow`
- Android primary: `panel-01-guardian`
- Linux primary: `panel-01-guardian`
Regenerate all package assets from existing masters 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"
done
Scripts/generate-brand-icons.py
```
If the locked source sheet changes, extract fresh 1024px masters and regenerate
with:
```bash
Scripts/generate-brand-icons.py --extract-from /path/to/source-sheet.png
```
Run low-resolution export QA with:
@ -53,12 +49,9 @@ Run low-resolution export QA with:
Scripts/check-brand-icon-lowres.sh
```
The script writes `design/brand/low-res/`, including:
Review these after every icon change:
- `burrow-icon-{16,20,24,29,32,40,48,64,80,128,256}.png`
- `preview-strip.png`, a 256-to-16px visual strip scaled up for inspection
- `pixel-preview-strip.png`, a nearest-neighbor strip for 32px and below
- `report.csv`, with color-count and grayscale-contrast checks
Sizes that overlap `Apple/UI/Assets.xcassets/AppIcon.appiconset/` should remain
pixel-identical to the generated app catalog assets.
- `design/brand/panel-variants/preview-strip.png`
- `design/brand/low-res/preview-strip.png`
- `design/brand/low-res/pixel-preview-strip.png`
- `design/brand/low-res/report.csv`

Binary file not shown.

Before

Width:  |  Height:  |  Size: 899 KiB

After

Width:  |  Height:  |  Size: 485 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 111 KiB

After

Width:  |  Height:  |  Size: 485 KiB

Before After
Before After

View file

@ -1,76 +0,0 @@
<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="260" y1="220" x2="765" y2="690" 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="330" y1="860" x2="700" y2="930" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#2b170e"/>
<stop offset="0.5" stop-color="#7a4320"/>
<stop offset="1" stop-color="#21110a"/>
</linearGradient>
<linearGradient id="leg-fill" x1="400" y1="600" x2="625" y2="910" 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">
<path d="M256 904c61-31 146-46 256-46s195 15 256 46c-73-9-158-14-256-14s-183 5-256 14Z" fill="#050302" opacity="0.78"/>
<path d="M310 884c49-24 116-36 202-36s153 12 202 36c-59-10-126-15-202-15s-143 5-202 15Z" fill="url(#ground-fill)" opacity="0.64"/>
<path d="M360 900c38-14 89-21 152-21s114 7 152 21c-44-5-95-8-152-8s-108 3-152 8Z" fill="#0b0604"/>
</g>
<g id="owl-body" filter="url(#soft-shadow)">
<path d="M262 458c0-88 44-164 126-208 37-20 78-28 124-24 46-4 87 4 124 24 82 44 126 120 126 208 0 85-53 148-160 181l-90 28-90-28c-107-33-160-96-160-181Z" fill="url(#body-fill)"/>
<path d="M316 486c42 43 108 64 196 64s154-21 196-64c-13 87-78 137-196 160-118-23-183-73-196-160Z" fill="#4b2919" opacity="0.3"/>
<path d="M286 499c-58 45-82 109-72 190 88-31 143-90 164-178Z" fill="#2b1710" opacity="0.62"/>
<path d="M738 499c58 45 82 109 72 190-88-31-143-90-164-178Z" fill="#2b1710" opacity="0.62"/>
<path d="M400 578c44 27 82 41 112 41s68-14 112-41c-26 47-63 72-112 72s-86-25-112-72Z" fill="#c48340" opacity="0.26"/>
</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 293c24-22 53-34 86-36" fill="none" stroke="#f2d69e" stroke-width="20" stroke-linecap="round"/>
<path d="M536 257c33 2 62 14 86 36" 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="544" rx="25" ry="13" transform="rotate(30 462 544)"/>
<ellipse cx="562" cy="544" rx="25" ry="13" transform="rotate(-30 562 544)"/>
<ellipse cx="484" cy="617" rx="18" ry="11" transform="rotate(18 484 617)"/>
<ellipse cx="548" cy="617" rx="18" ry="11" transform="rotate(-18 548 617)"/>
</g>
<g id="owl-legs">
<path d="M411 612c20-8 42-6 60 5l-3 258c0 22-30 24-33 2Z" fill="url(#leg-fill)"/>
<path d="M553 617c18-11 40-13 60-5l-24 265c-3 22-33 20-33-2Z" fill="url(#leg-fill)"/>
<path d="M424 683h36M422 752h34M421 817h30M563 683h36M558 752h34M553 817h30" stroke="#74461f" stroke-width="9" stroke-linecap="round" opacity="0.3"/>
<path d="M437 874c-40 8-73 23-98 46 43-6 79-2 109 12 17 8 35-5 31-23-4-21-19-40-42-35Z" fill="#d99b52"/>
<path d="M579 874c40 8 73 23 98 46-43-6-79-2-109 12-17 8-35-5-31-23 4-21 19-40 42-35Z" fill="#d99b52"/>
<path d="M392 920l-30 25M436 927l-9 38M478 919l24 29M632 920l30 25M588 927l9 38M546 919l-24 29" stroke="#2a1710" stroke-width="13" stroke-linecap="round"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 4.8 KiB

View file

@ -1,12 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1024" height="1024" viewBox="0 0 1024 1024">
<defs>
<linearGradient id="ground-fill" x1="330" y1="860" x2="700" y2="930" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#2b170e"/>
<stop offset="0.5" stop-color="#7a4320"/>
<stop offset="1" stop-color="#21110a"/>
</linearGradient>
</defs>
<path d="M256 904c61-31 146-46 256-46s195 15 256 46c-73-9-158-14-256-14s-183 5-256 14Z" fill="#050302" opacity="0.78"/>
<path d="M310 884c49-24 116-36 202-36s153 12 202 36c-59-10-126-15-202-15s-143 5-202 15Z" fill="url(#ground-fill)" opacity="0.64"/>
<path d="M360 900c38-14 89-21 152-21s114 7 152 21c-44-5-95-8-152-8s-108 3-152 8Z" fill="#0b0604"/>
</svg>

Before

Width:  |  Height:  |  Size: 741 B

View file

@ -1,19 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1024" height="1024" viewBox="0 0 1024 1024">
<defs>
<linearGradient id="body-fill" x1="260" y1="220" x2="765" y2="690" 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="M262 458c0-88 44-164 126-208 37-20 78-28 124-24 46-4 87 4 124 24 82 44 126 120 126 208 0 85-53 148-160 181l-90 28-90-28c-107-33-160-96-160-181Z" fill="url(#body-fill)"/>
<path d="M316 486c42 43 108 64 196 64s154-21 196-64c-13 87-78 137-196 160-118-23-183-73-196-160Z" fill="#4b2919" opacity="0.3"/>
<path d="M286 499c-58 45-82 109-72 190 88-31 143-90 164-178Z" fill="#2b1710" opacity="0.62"/>
<path d="M738 499c58 45 82 109 72 190-88-31-143-90-164-178Z" fill="#2b1710" opacity="0.62"/>
<path d="M400 578c44 27 82 41 112 41s68-14 112-41c-26 47-63 72-112 72s-86-25-112-72Z" fill="#c48340" opacity="0.26"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

View file

@ -1,23 +0,0 @@
<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 293c24-22 53-34 86-36" fill="none" stroke="#f2d69e" stroke-width="20" stroke-linecap="round"/>
<path d="M536 257c33 2 62 14 86 36" fill="none" stroke="#f2d69e" stroke-width="20" stroke-linecap="round"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

View file

@ -1,14 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1024" height="1024" viewBox="0 0 1024 1024">
<defs>
<linearGradient id="leg-fill" x1="400" y1="600" x2="625" y2="910" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#f2c27c"/>
<stop offset="1" stop-color="#9b612c"/>
</linearGradient>
</defs>
<path d="M411 612c20-8 42-6 60 5l-3 258c0 22-30 24-33 2Z" fill="url(#leg-fill)"/>
<path d="M553 617c18-11 40-13 60-5l-24 265c-3 22-33 20-33-2Z" fill="url(#leg-fill)"/>
<path d="M424 683h36M422 752h34M421 817h30M563 683h36M558 752h34M553 817h30" stroke="#74461f" stroke-width="9" stroke-linecap="round" opacity="0.3"/>
<path d="M437 874c-40 8-73 23-98 46 43-6 79-2 109 12 17 8 35-5 31-23-4-21-19-40-42-35Z" fill="#d99b52"/>
<path d="M579 874c40 8 73 23 98 46-43-6-79-2-109 12-17 8-35-5-31-23 4-21 19-40 42-35Z" fill="#d99b52"/>
<path d="M392 920l-30 25M436 927l-9 38M478 919l24 29M632 920l30 25M588 927l9 38M546 919l-24 29" stroke="#2a1710" stroke-width="13" stroke-linecap="round"/>
</svg>

Before

Width:  |  Height:  |  Size: 1 KiB

View file

@ -1,11 +0,0 @@
<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="544" rx="25" ry="13" transform="rotate(30 462 544)"/>
<ellipse cx="562" cy="544" rx="25" ry="13" transform="rotate(-30 562 544)"/>
<ellipse cx="484" cy="617" rx="18" ry="11" transform="rotate(18 484 617)"/>
<ellipse cx="548" cy="617" rx="18" ry="11" transform="rotate(-18 548 617)"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 673 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 613 KiB

After

Width:  |  Height:  |  Size: 485 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 630 B

After

Width:  |  Height:  |  Size: 730 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 903 B

After

Width:  |  Height:  |  Size: 1,011 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 70 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5 KiB

After

Width:  |  Height:  |  Size: 6.9 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 118 KiB

After

Width:  |  Height:  |  Size: 143 KiB

Before After
Before After

View file

@ -1,12 +1,12 @@
size,colors,gray_stddev,status
16,194,0.109923,ok
20,260,0.101566,ok
24,358,0.0940771,ok
29,475,0.103601,ok
32,541,0.0941397,ok
40,763,0.129173,ok
48,963,0.133595,ok
64,1399,0.149997,ok
80,1804,0.163688,ok
128,2922,0.180054,ok
256,5348,0.19461,ok
16,182,0.135534,ok
20,247,0.142914,ok
24,325,0.157326,ok
29,436,0.156951,ok
32,504,0.164219,ok
40,691,0.173161,ok
48,868,0.179509,ok
64,1287,0.190366,ok
80,1701,0.198425,ok
128,3115,0.210773,ok
256,6728,0.212284,ok

1 size colors gray_stddev status
2 16 194 182 0.109923 0.135534 ok
3 20 260 247 0.101566 0.142914 ok
4 24 358 325 0.0940771 0.157326 ok
5 29 475 436 0.103601 0.156951 ok
6 32 541 504 0.0941397 0.164219 ok
7 40 763 691 0.129173 0.173161 ok
8 48 963 868 0.133595 0.179509 ok
9 64 1399 1287 0.149997 0.190366 ok
10 80 1804 1701 0.163688 0.198425 ok
11 128 2922 3115 0.180054 0.210773 ok
12 256 5348 6728 0.19461 0.212284 ok

View file

@ -0,0 +1,16 @@
# Burrow Raster Panel Icon Variants
The six PNG masters here are cropped from `source-sheet.png` and are the
locked app icon source. Do not redraw them; regenerate package assets from
these rasters.
| Variant | Use | Source |
| --- | --- | --- |
| `panel-01-guardian` | iOS primary, Android primary, Linux primary | Guardian, top-left panel |
| `panel-02-field` | iOS alternate | Field, top-middle panel |
| `panel-03-burrow` | iOS alternate, watchOS primary | Burrow, top-right panel |
| `panel-04-sentinel` | iOS alternate | Sentinel, bottom-left panel |
| `panel-05-stride` | iOS alternate, macOS primary | Stride, bottom-middle panel |
| `panel-06-post` | iOS alternate | Post, bottom-right panel |
`preview-strip.png` shows the six raster masters side by side.

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 485 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 525 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 463 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 453 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 484 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 471 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 409 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 MiB

View file

@ -0,0 +1,140 @@
{
"images": [
{
"filename": "watch-panel-03-48.png",
"idiom": "watch",
"scale": "2x",
"size": "24x24",
"role": "notificationCenter",
"subtype": "38mm"
},
{
"filename": "watch-panel-03-55.png",
"idiom": "watch",
"scale": "2x",
"size": "27.5x27.5",
"role": "notificationCenter",
"subtype": "42mm"
},
{
"filename": "watch-panel-03-66.png",
"idiom": "watch",
"scale": "2x",
"size": "33x33",
"role": "notificationCenter",
"subtype": "45mm"
},
{
"filename": "watch-panel-03-58.png",
"idiom": "watch",
"scale": "2x",
"size": "29x29",
"role": "companionSettings"
},
{
"filename": "watch-panel-03-87.png",
"idiom": "watch",
"scale": "3x",
"size": "29x29",
"role": "companionSettings"
},
{
"filename": "watch-panel-03-80.png",
"idiom": "watch",
"scale": "2x",
"size": "40x40",
"role": "appLauncher",
"subtype": "38mm"
},
{
"filename": "watch-panel-03-88.png",
"idiom": "watch",
"scale": "2x",
"size": "44x44",
"role": "appLauncher",
"subtype": "40mm"
},
{
"filename": "watch-panel-03-92.png",
"idiom": "watch",
"scale": "2x",
"size": "46x46",
"role": "appLauncher",
"subtype": "41mm"
},
{
"filename": "watch-panel-03-100.png",
"idiom": "watch",
"scale": "2x",
"size": "50x50",
"role": "appLauncher",
"subtype": "44mm"
},
{
"filename": "watch-panel-03-102.png",
"idiom": "watch",
"scale": "2x",
"size": "51x51",
"role": "appLauncher",
"subtype": "45mm"
},
{
"filename": "watch-panel-03-108.png",
"idiom": "watch",
"scale": "2x",
"size": "54x54",
"role": "appLauncher",
"subtype": "49mm"
},
{
"filename": "watch-panel-03-172.png",
"idiom": "watch",
"scale": "2x",
"size": "86x86",
"role": "quickLook",
"subtype": "38mm"
},
{
"filename": "watch-panel-03-196.png",
"idiom": "watch",
"scale": "2x",
"size": "98x98",
"role": "quickLook",
"subtype": "42mm"
},
{
"filename": "watch-panel-03-216.png",
"idiom": "watch",
"scale": "2x",
"size": "108x108",
"role": "quickLook",
"subtype": "44mm"
},
{
"filename": "watch-panel-03-234.png",
"idiom": "watch",
"scale": "2x",
"size": "117x117",
"role": "quickLook",
"subtype": "45mm"
},
{
"filename": "watch-panel-03-258.png",
"idiom": "watch",
"scale": "2x",
"size": "129x129",
"role": "quickLook",
"subtype": "49mm"
},
{
"filename": "watch-panel-03-1024.png",
"idiom": "watch-marketing",
"scale": "1x",
"size": "1024x1024"
}
],
"info": {
"author": "xcode",
"version": 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 463 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB