3.9 KiB
3.9 KiB
App Icon Design & Implementation Summary
Date: 2026-09-22 12:10 Task: Design and implement an SVG app icon following Android adaptive icon guidelines
Task Description
Designed and implemented a custom app icon for Video Clipper, replacing the default Tauri branding. The icon depicts scissors cutting diagonally across a film strip, rendered in a Material Design + gradient hybrid style with a shadcn-inspired dark palette.
Process
- Brainstorming — Explored project context, asked clarifying questions (style, subject, color palette, background), proposed 3 approaches (diagonal scissors over film strip, scissors silhouette with notch, scissors framing play triangle), user selected Approach A
- Design spec — Wrote detailed spec covering canvas/adaptive icon structure, foreground artwork composition, five color palette variants, SVG structure, and output files →
docs/superpowers/specs/2026-09-22-app-icon-design.md - Implementation plan — 4-task plan covering SVG creation, variant generation, rasterization pipeline, and project reference updates →
docs/superpowers/plans/2026-09-22-app-icon.md - Subagent-driven execution — All 4 tasks implemented and reviewed via subagent-driven development
Design Decisions
- Style: Material Design geometry + modern gradients, shadcn-inspired dark palette
- Subject: Open scissors cutting a film strip diagonally
- Background: Solid zinc-900 (
#18181b) - Chosen variant: Orange (
#fb923c→#ea580cblade gradient,#f97316cut accent) - Safe zone: Inner 66% (338×338px) for adaptive icon compatibility
Changes Made
Commits (4)
cc34a05— feat: add base SVG app icon (blue variant)b32d5cb— feat: add icon color variant generation script and 5 variants3aa8fb2— feat: generate platform icons from chosen variant7786bca— chore: replace default Tauri branding with app icon
Files Created
src-tauri/icons/icon.svg— Source SVG (orange variant)src-tauri/icons/variants/icon-{blue,purple,green,orange,mono}.svg— All 5 color variantssrc-tauri/icons/32x32.png,128x128.png,128x128@2x.png— Tauri bundle PNGssrc-tauri/icons/icon.icns— macOS app iconsrc-tauri/icons/icon.ico— Windows app iconsrc-tauri/icons/— Additional iOS/Android/Appx icons (generated bytauri icon)static/favicon.svg— Web favicon (SVG)static/favicon-32.png— Web favicon fallback (PNG)scripts/generate-icon-variants.sh— Color variant generation scriptdocs/superpowers/specs/2026-09-22-app-icon-design.md— Design specdocs/superpowers/plans/2026-09-22-app-icon.md— Implementation plan
Files Modified
index.html— Added favicon<link>elements
Files Deleted
static/tauri.svg— Default Tauri branding removed
Tools Used
rsvg-convert— SVG → PNG rasterizationnpx tauri icon— Multi-platform icon generation from source PNGxmllint— SVG validation
Follow-up Items
- Visual tuning of SVG coordinates may be needed after seeing the icon at various sizes in production
- The icon geometry is approximate (hand-authored coordinates); if proportions look off at small sizes (16px favicon), a simplified variant could be created
- Android XML files generated by
tauri iconhave missing trailing newlines (cosmetic)
Lessons Learned
npx tauri iconaccepts a source PNG and generates all platform icon files automatically (PNGs, ICNS, ICO, iOS, Android) — much simpler than manual rasterizationrsvg-convert(from librsvg, installed via brew) is available on macOS for high-quality SVG → PNG conversion- Android adaptive icons require a 66% safe zone — critical artwork must fit within the inner 338×338px of a 512×512 canvas
- Hand-authoring SVG path coordinates without visual feedback is inherently approximate; the plan correctly identified visual iteration as an expected part of the process