Use supplied artwork for app icons

This commit is contained in:
Brad Groux 2026-06-06 01:16:55 -05:00
parent f12246ac65
commit 34f5312d95
20 changed files with 24 additions and 133 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 951 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 178 KiB

View file

@ -111,6 +111,7 @@
"packageName": "veritas-kanban"
},
"linux": {
"icon": "resources/icon.png",
"category": "Office",
"maintainer": "Digital Meld <support@digitalmeld.io>",
"synopsis": "Local-first task management and AI agent orchestration",
@ -137,6 +138,7 @@
]
},
"win": {
"icon": "resources/icon.ico",
"target": [
{
"target": "nsis",

Binary file not shown.

BIN
desktop/resources/icon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 KiB

BIN
desktop/resources/icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 951 KiB

View file

@ -1,21 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" role="img" aria-label="Veritas Kanban">
<defs>
<linearGradient id="vk-bg" x1="64" y1="32" x2="448" y2="480" gradientUnits="userSpaceOnUse">
<stop stop-color="#171a24"/>
<stop offset="1" stop-color="#08090d"/>
</linearGradient>
<linearGradient id="vk-accent" x1="140" y1="104" x2="384" y2="398" gradientUnits="userSpaceOnUse">
<stop stop-color="#8b5cf6"/>
<stop offset="1" stop-color="#14b8a6"/>
</linearGradient>
</defs>
<rect width="512" height="512" rx="104" fill="url(#vk-bg)"/>
<rect x="54" y="54" width="404" height="404" rx="86" fill="none" stroke="url(#vk-accent)" stroke-width="18"/>
<circle cx="256" cy="154" r="18" fill="#f8fafc"/>
<rect x="242" y="172" width="28" height="204" rx="14" fill="#f8fafc"/>
<rect x="174" y="386" width="164" height="32" rx="16" fill="#f8fafc"/>
<rect x="206" y="354" width="100" height="40" rx="20" fill="#14b8a6"/>
<path d="M126 206 386 178" fill="none" stroke="#d6a533" stroke-width="24" stroke-linecap="round"/>
<path d="M142 205v68M102 273h80M102 273c0 38 40 54 40 54s40-16 40-54" fill="none" stroke="#f8fafc" stroke-width="16" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M370 180v68M330 248h80M330 248c0 38 40 54 40 54s40-16 40-54" fill="none" stroke="#f8fafc" stroke-width="16" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

View file

@ -43,7 +43,8 @@ Reverse proxies should route these paths to the same Veritas host:
- `/ws`
- `/manifest.webmanifest`
- `/sw.js`
- `/favicon.svg`
- `/favicon.png`
- `/apple-touch-icon.png`
- `/icons/*`
- `/assets/*`

View file

@ -1,36 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" fill="none">
<!-- Purple circle background -->
<circle cx="32" cy="32" r="32" fill="#7c3aed"/>
<!-- White scales cutout -->
<g fill="white" stroke="white" stroke-linecap="round" stroke-linejoin="round">
<!-- Top pivot -->
<circle cx="32" cy="14" r="2.5" fill="white" stroke="none"/>
<!-- Center pillar -->
<rect x="30.5" y="16" width="3" height="28" rx="1.5" stroke="none"/>
<!-- Base -->
<rect x="23" y="46" width="18" height="3" rx="1.5" stroke="none"/>
<rect x="27" y="43.5" width="10" height="3.5" rx="1.5" stroke="none"/>
<!-- Crossbeam (tilted — left lower) -->
<line x1="11" y1="21" x2="53" y2="17" stroke-width="2.5"/>
<!-- Left chains -->
<line x1="11" y1="21" x2="11" y2="30" stroke-width="1.5"/>
<line x1="5" y1="30" x2="11" y2="30" stroke-width="1.5"/>
<line x1="11" y1="30" x2="17" y2="30" stroke-width="1.5"/>
<!-- Left pan -->
<path d="M4 30 C4 36, 11 38, 11 38 C11 38, 18 36, 18 30" fill="white" stroke="none"/>
<!-- Right chains -->
<line x1="53" y1="17" x2="53" y2="24" stroke-width="1.5"/>
<line x1="47" y1="24" x2="53" y2="24" stroke-width="1.5"/>
<line x1="53" y1="24" x2="59" y2="24" stroke-width="1.5"/>
<!-- Right pan -->
<path d="M46 24 C46 30, 53 32, 53 32 C53 32, 60 30, 60 24" fill="white" stroke="none"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

View file

@ -24,9 +24,9 @@
})();
</script>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="%BASE_URL%favicon.svg" />
<link rel="icon" type="image/png" href="%BASE_URL%favicon.png" />
<link rel="manifest" href="%BASE_URL%manifest.webmanifest" />
<link rel="apple-touch-icon" href="%BASE_URL%icons/pwa-icon.svg" />
<link rel="apple-touch-icon" href="%BASE_URL%apple-touch-icon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="application-name" content="Veritas Kanban" />
<meta name="apple-mobile-web-app-title" content="Veritas" />

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

BIN
web/public/favicon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

View file

@ -1,21 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" role="img" aria-label="Veritas Kanban">
<defs>
<linearGradient id="vk-bg" x1="8" y1="4" x2="56" y2="60" gradientUnits="userSpaceOnUse">
<stop stop-color="#171a24"/>
<stop offset="1" stop-color="#08090d"/>
</linearGradient>
<linearGradient id="vk-accent" x1="18" y1="12" x2="48" y2="50" gradientUnits="userSpaceOnUse">
<stop stop-color="#8b5cf6"/>
<stop offset="1" stop-color="#14b8a6"/>
</linearGradient>
</defs>
<rect width="64" height="64" rx="14" fill="url(#vk-bg)"/>
<rect x="7" y="7" width="50" height="50" rx="11" fill="none" stroke="url(#vk-accent)" stroke-width="3"/>
<circle cx="32" cy="19" r="2.6" fill="#f8fafc"/>
<rect x="30.2" y="21" width="3.6" height="25" rx="1.8" fill="#f8fafc"/>
<rect x="22" y="48" width="20" height="4" rx="2" fill="#f8fafc"/>
<rect x="26" y="43.5" width="12" height="5" rx="2.5" fill="#14b8a6"/>
<path d="M15.5 25.5 48.5 22" fill="none" stroke="#d6a533" stroke-width="3.5" stroke-linecap="round"/>
<path d="M17.5 25.5v8M12.5 33.5h10M12.5 33.5c0 5 5 7 5 7s5-2 5-7" fill="none" stroke="#f8fafc" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M46.5 22v8M41.5 30h10M41.5 30c0 5 5 7 5 7s5-2 5-7" fill="none" stroke="#f8fafc" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 329 KiB

View file

@ -1,21 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" role="img" aria-label="Veritas Kanban">
<defs>
<linearGradient id="vk-bg" x1="64" y1="32" x2="448" y2="480" gradientUnits="userSpaceOnUse">
<stop stop-color="#171a24"/>
<stop offset="1" stop-color="#08090d"/>
</linearGradient>
<linearGradient id="vk-accent" x1="140" y1="104" x2="384" y2="398" gradientUnits="userSpaceOnUse">
<stop stop-color="#8b5cf6"/>
<stop offset="1" stop-color="#14b8a6"/>
</linearGradient>
</defs>
<rect width="512" height="512" rx="104" fill="url(#vk-bg)"/>
<rect x="54" y="54" width="404" height="404" rx="86" fill="none" stroke="url(#vk-accent)" stroke-width="18"/>
<circle cx="256" cy="154" r="18" fill="#f8fafc"/>
<rect x="242" y="172" width="28" height="204" rx="14" fill="#f8fafc"/>
<rect x="174" y="386" width="164" height="32" rx="16" fill="#f8fafc"/>
<rect x="206" y="354" width="100" height="40" rx="20" fill="#14b8a6"/>
<path d="M126 206 386 178" fill="none" stroke="#d6a533" stroke-width="24" stroke-linecap="round"/>
<path d="M142 205v68M102 273h80M102 273c0 38 40 54 40 54s40-16 40-54" fill="none" stroke="#f8fafc" stroke-width="16" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M370 180v68M330 248h80M330 248c0 38 40 54 40 54s40-16 40-54" fill="none" stroke="#f8fafc" stroke-width="16" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 240 KiB

View file

@ -1,21 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" role="img" aria-label="Veritas Kanban">
<defs>
<linearGradient id="vk-bg" x1="64" y1="32" x2="448" y2="480" gradientUnits="userSpaceOnUse">
<stop stop-color="#171a24"/>
<stop offset="1" stop-color="#08090d"/>
</linearGradient>
<linearGradient id="vk-accent" x1="150" y1="116" x2="372" y2="384" gradientUnits="userSpaceOnUse">
<stop stop-color="#8b5cf6"/>
<stop offset="1" stop-color="#14b8a6"/>
</linearGradient>
</defs>
<rect width="512" height="512" fill="url(#vk-bg)"/>
<rect x="74" y="74" width="364" height="364" rx="82" fill="none" stroke="url(#vk-accent)" stroke-width="18"/>
<circle cx="256" cy="160" r="17" fill="#f8fafc"/>
<rect x="243" y="178" width="26" height="188" rx="13" fill="#f8fafc"/>
<rect x="182" y="378" width="148" height="30" rx="15" fill="#f8fafc"/>
<rect x="212" y="348" width="88" height="38" rx="19" fill="#14b8a6"/>
<path d="M136 212 376 186" fill="none" stroke="#d6a533" stroke-width="23" stroke-linecap="round"/>
<path d="M150 211v62M114 273h72M114 273c0 34 36 48 36 48s36-14 36-48" fill="none" stroke="#f8fafc" stroke-width="15" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M362 187v62M326 249h72M326 249c0 34 36 48 36 48s36-14 36-48" fill="none" stroke="#f8fafc" stroke-width="15" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

View file

@ -13,15 +13,21 @@
"categories": ["business", "productivity", "utilities"],
"icons": [
{
"src": "icons/pwa-icon.svg",
"sizes": "any",
"type": "image/svg+xml",
"src": "icons/pwa-icon-192.png",
"sizes": "192x192",
"type": "image/png",
"purpose": "any"
},
{
"src": "icons/pwa-maskable-icon.svg",
"sizes": "any",
"type": "image/svg+xml",
"src": "icons/pwa-icon-512.png",
"sizes": "512x512",
"type": "image/png",
"purpose": "any"
},
{
"src": "icons/pwa-maskable-icon-512.png",
"sizes": "512x512",
"type": "image/png",
"purpose": "maskable"
}
]

View file

@ -1,14 +1,16 @@
/* global caches, fetch, self, URL */
const CACHE_VERSION = 'v1';
const CACHE_VERSION = 'v2';
const STATIC_CACHE = `veritas-kanban-static-${CACHE_VERSION}`;
const SHELL_URL = new URL('./', self.registration.scope).toString();
const PRECACHE_URLS = [
SHELL_URL,
new URL('manifest.webmanifest', self.registration.scope).toString(),
new URL('favicon.svg', self.registration.scope).toString(),
new URL('icons/pwa-icon.svg', self.registration.scope).toString(),
new URL('icons/pwa-maskable-icon.svg', self.registration.scope).toString(),
new URL('favicon.png', self.registration.scope).toString(),
new URL('apple-touch-icon.png', self.registration.scope).toString(),
new URL('icons/pwa-icon-192.png', self.registration.scope).toString(),
new URL('icons/pwa-icon-512.png', self.registration.scope).toString(),
new URL('icons/pwa-maskable-icon-512.png', self.registration.scope).toString(),
];
const STATIC_DESTINATIONS = new Set(['font', 'image', 'manifest', 'script', 'style', 'worker']);