build(packaging): set up multi-platform packaging and CI/CD
- Add GitHub Actions workflows for CI and releases - Create icon generation script and SVG source - Configure electron-builder for macOS, Windows, Linux - Add macOS entitlements for code signing - Add Linux post-install/remove scripts - Enhance package.json with publishing scripts - Add artifact naming convention
This commit is contained in:
68
resources/icons/README.md
Normal file
68
resources/icons/README.md
Normal file
@@ -0,0 +1,68 @@
|
||||
# ClawX Application Icons
|
||||
|
||||
This directory contains the application icons for all supported platforms.
|
||||
|
||||
## Required Files
|
||||
|
||||
| File | Platform | Description |
|
||||
|------|----------|-------------|
|
||||
| `icon.svg` | Source | Vector source for all icons |
|
||||
| `icon.icns` | macOS | Apple Icon Image format |
|
||||
| `icon.ico` | Windows | Windows ICO format |
|
||||
| `icon.png` | All | 512x512 PNG fallback |
|
||||
| `16x16.png` - `512x512.png` | Linux | PNG set for Linux |
|
||||
|
||||
## Generating Icons
|
||||
|
||||
### Using the Script
|
||||
|
||||
```bash
|
||||
# Make the script executable
|
||||
chmod +x scripts/generate-icons.sh
|
||||
|
||||
# Run icon generation
|
||||
./scripts/generate-icons.sh
|
||||
```
|
||||
|
||||
### Prerequisites
|
||||
|
||||
**macOS:**
|
||||
```bash
|
||||
brew install imagemagick librsvg
|
||||
```
|
||||
|
||||
**Linux:**
|
||||
```bash
|
||||
apt install imagemagick librsvg2-bin
|
||||
```
|
||||
|
||||
**Windows:**
|
||||
Install ImageMagick from https://imagemagick.org/
|
||||
|
||||
### Manual Generation
|
||||
|
||||
If you prefer to generate icons manually:
|
||||
|
||||
1. **macOS (.icns)**
|
||||
- Create a `.iconset` folder with properly named PNGs
|
||||
- Run: `iconutil -c icns -o icon.icns ClawX.iconset`
|
||||
|
||||
2. **Windows (.ico)**
|
||||
- Use ImageMagick: `convert icon_16.png icon_32.png icon_64.png icon_128.png icon_256.png icon.ico`
|
||||
|
||||
3. **Linux (PNGs)**
|
||||
- Generate PNGs at: 16, 32, 48, 64, 128, 256, 512 pixels
|
||||
|
||||
## Design Guidelines
|
||||
|
||||
- **Background**: Gradient from #6366f1 to #8b5cf6 (Indigo to Violet)
|
||||
- **Corner Radius**: ~20% of width (200px on 1024px canvas)
|
||||
- **Foreground**: White claw symbol with "X" accent
|
||||
- **Safe Area**: Keep 10% margin from edges
|
||||
|
||||
## Updating the Icon
|
||||
|
||||
1. Edit `icon.svg` with your vector editor (Figma, Illustrator, Inkscape)
|
||||
2. Run `./scripts/generate-icons.sh`
|
||||
3. Verify generated icons look correct
|
||||
4. Commit all generated files
|
||||
35
resources/icons/icon.svg
Normal file
35
resources/icons/icon.svg
Normal file
@@ -0,0 +1,35 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024">
|
||||
<defs>
|
||||
<linearGradient id="bgGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" style="stop-color:#6366f1;stop-opacity:1" />
|
||||
<stop offset="100%" style="stop-color:#8b5cf6;stop-opacity:1" />
|
||||
</linearGradient>
|
||||
<linearGradient id="clawGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" style="stop-color:#ffffff;stop-opacity:1" />
|
||||
<stop offset="100%" style="stop-color:#e0e7ff;stop-opacity:1" />
|
||||
</linearGradient>
|
||||
</defs>
|
||||
|
||||
<!-- Background -->
|
||||
<rect x="0" y="0" width="1024" height="1024" rx="200" fill="url(#bgGrad)"/>
|
||||
|
||||
<!-- Claw shape -->
|
||||
<g transform="translate(512, 512)" fill="url(#clawGrad)">
|
||||
<!-- Center circle -->
|
||||
<circle cx="0" cy="0" r="100"/>
|
||||
|
||||
<!-- Claw fingers -->
|
||||
<path d="M -50 -80 Q -80 -200 -150 -280 Q -180 -320 -150 -350 Q -120 -380 -80 -350 Q -20 -300 40 -150 Z" />
|
||||
<path d="M 50 -80 Q 80 -200 150 -280 Q 180 -320 150 -350 Q 120 -380 80 -350 Q 20 -300 -40 -150 Z" />
|
||||
<path d="M -100 20 Q -220 0 -320 -40 Q -370 -60 -390 -20 Q -410 20 -370 50 Q -300 100 -150 80 Z" />
|
||||
<path d="M 100 20 Q 220 0 320 -40 Q 370 -60 390 -20 Q 410 20 370 50 Q 300 100 150 80 Z" />
|
||||
<path d="M 0 120 Q 0 250 0 350 Q 0 400 40 420 Q 80 400 80 350 L 80 250 Q 60 150 0 120 Z" />
|
||||
<path d="M 0 120 Q 0 250 0 350 Q 0 400 -40 420 Q -80 400 -80 350 L -80 250 Q -60 150 0 120 Z" />
|
||||
</g>
|
||||
|
||||
<!-- X mark -->
|
||||
<g transform="translate(750, 750)" fill="#ffffff" opacity="0.9">
|
||||
<rect x="-60" y="-15" width="120" height="30" rx="15" transform="rotate(45)"/>
|
||||
<rect x="-60" y="-15" width="120" height="30" rx="15" transform="rotate(-45)"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
Reference in New Issue
Block a user