chore(logo): fix release yml and chang logo (#42)
4
.github/workflows/release.yml
vendored
@@ -350,8 +350,8 @@ jobs:
|
|||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "=== Verify release-info.json ==="
|
echo "=== Verify release-info.json ==="
|
||||||
echo "Reading release-info.json directly from OSS..."
|
ossutil cp oss://valuecell-clawx/latest/release-info.json /tmp/release-info.json -f
|
||||||
ossutil cat oss://valuecell-clawx/latest/release-info.json | jq .
|
jq . /tmp/release-info.json
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "✅ All files uploaded and verified successfully!"
|
echo "✅ All files uploaded and verified successfully!"
|
||||||
|
|||||||
@@ -29,8 +29,9 @@ export function createTray(mainWindow: BrowserWindow): Tray {
|
|||||||
// Windows: use .ico for best quality in system tray
|
// Windows: use .ico for best quality in system tray
|
||||||
iconPath = join(iconsDir, 'icon.ico');
|
iconPath = join(iconsDir, 'icon.ico');
|
||||||
} else if (process.platform === 'darwin') {
|
} else if (process.platform === 'darwin') {
|
||||||
// macOS: use 16x16 PNG as template image
|
// macOS: use Template.png for proper status bar icon
|
||||||
iconPath = join(iconsDir, '16x16.png');
|
// The "Template" suffix tells macOS to treat it as a template image
|
||||||
|
iconPath = join(iconsDir, 'tray-icon-Template.png');
|
||||||
} else {
|
} else {
|
||||||
// Linux: use 32x32 PNG
|
// Linux: use 32x32 PNG
|
||||||
iconPath = join(iconsDir, '32x32.png');
|
iconPath = join(iconsDir, '32x32.png');
|
||||||
@@ -41,9 +42,14 @@ export function createTray(mainWindow: BrowserWindow): Tray {
|
|||||||
// Fallback to icon.png if platform-specific icon not found
|
// Fallback to icon.png if platform-specific icon not found
|
||||||
if (icon.isEmpty()) {
|
if (icon.isEmpty()) {
|
||||||
icon = nativeImage.createFromPath(join(iconsDir, 'icon.png'));
|
icon = nativeImage.createFromPath(join(iconsDir, 'icon.png'));
|
||||||
|
// Still try to set as template for macOS
|
||||||
|
if (process.platform === 'darwin') {
|
||||||
|
icon.setTemplateImage(true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// On macOS, set as template image for proper dark/light mode support
|
// Note: Using "Template" suffix in filename automatically marks it as template image
|
||||||
|
// But we can also explicitly set it for safety
|
||||||
if (process.platform === 'darwin') {
|
if (process.platform === 'darwin') {
|
||||||
icon.setTemplateImage(true);
|
icon.setTemplateImage(true);
|
||||||
}
|
}
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 8.0 KiB After Width: | Height: | Size: 8.0 KiB |
|
Before Width: | Height: | Size: 547 B After Width: | Height: | Size: 574 B |
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 47 KiB |
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 3.3 KiB |
@@ -11,6 +11,8 @@ This directory contains the application icons for all supported platforms.
|
|||||||
| `icon.ico` | Windows | Windows ICO format |
|
| `icon.ico` | Windows | Windows ICO format |
|
||||||
| `icon.png` | All | 512x512 PNG fallback |
|
| `icon.png` | All | 512x512 PNG fallback |
|
||||||
| `16x16.png` - `512x512.png` | Linux | PNG set for Linux |
|
| `16x16.png` - `512x512.png` | Linux | PNG set for Linux |
|
||||||
|
| `tray-icon-template.svg` | Source | macOS tray icon template source |
|
||||||
|
| `tray-icon-Template.png` | macOS | 22x22 status bar icon (note: "Template" suffix required) |
|
||||||
|
|
||||||
## Generating Icons
|
## Generating Icons
|
||||||
|
|
||||||
@@ -55,14 +57,23 @@ If you prefer to generate icons manually:
|
|||||||
|
|
||||||
## Design Guidelines
|
## Design Guidelines
|
||||||
|
|
||||||
- **Background**: Gradient from #6366f1 to #8b5cf6 (Indigo to Violet)
|
### Application Icon
|
||||||
- **Corner Radius**: ~20% of width (200px on 1024px canvas)
|
- **Corner Radius**: ~20% of width (200px on 1024px canvas)
|
||||||
- **Foreground**: White claw symbol with "X" accent
|
- **Foreground**: White claw symbol with "X" accent
|
||||||
- **Safe Area**: Keep 10% margin from edges
|
- **Safe Area**: Keep 10% margin from edges
|
||||||
|
|
||||||
|
### macOS Tray Icon
|
||||||
|
- **Format**: Single-color (black) on transparent background
|
||||||
|
- **Size**: 22x22 pixels (system automatically handles @2x retina)
|
||||||
|
- **Naming**: Must end with "Template.png" for automatic template mode
|
||||||
|
- **Design**: Simplified monochrome version of main icon (ClawX logo)
|
||||||
|
- **Source**: Use `tray-icon-template.svg` as the source
|
||||||
|
- **Important**: Must be pure black (#000000) on transparent background - no gradients or colors
|
||||||
|
|
||||||
## Updating the Icon
|
## Updating the Icon
|
||||||
|
|
||||||
1. Edit `icon.svg` with your vector editor (Figma, Illustrator, Inkscape)
|
1. Edit `icon.svg` with your vector editor (Figma, Illustrator, Inkscape)
|
||||||
2. Run `./scripts/generate-icons.sh`
|
2. For macOS tray icon, edit `tray-icon-template.svg` (must be single-color black on transparent)
|
||||||
3. Verify generated icons look correct
|
3. Run `node scripts/generate-icons.mjs`
|
||||||
4. Commit all generated files
|
4. Verify generated icons look correct
|
||||||
|
5. Commit all generated files
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 422 KiB After Width: | Height: | Size: 422 KiB |
|
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 47 KiB |
|
Before Width: | Height: | Size: 9.1 KiB After Width: | Height: | Size: 10 KiB |
BIN
resources/icons/tray-icon-Template.png
Normal file
|
After Width: | Height: | Size: 428 B |
3
resources/icons/tray-icon-template.svg
Normal file
|
After Width: | Height: | Size: 9.0 KiB |
@@ -77,6 +77,20 @@ try {
|
|||||||
}
|
}
|
||||||
echo` ✅ Created ${generatedCount} Linux PNG icons`;
|
echo` ✅ Created ${generatedCount} Linux PNG icons`;
|
||||||
|
|
||||||
|
// 5. Generate macOS Tray Icon Template
|
||||||
|
echo`📍 Generating macOS tray icon template...`;
|
||||||
|
const TRAY_SVG_SOURCE = path.join(ICONS_DIR, 'tray-icon-template.svg');
|
||||||
|
|
||||||
|
if (fs.existsSync(TRAY_SVG_SOURCE)) {
|
||||||
|
await sharp(TRAY_SVG_SOURCE)
|
||||||
|
.resize(22, 22)
|
||||||
|
.png()
|
||||||
|
.toFile(path.join(ICONS_DIR, 'tray-icon-Template.png'));
|
||||||
|
echo` ✅ Created tray-icon-Template.png (22x22)`;
|
||||||
|
} else {
|
||||||
|
echo` ⚠️ tray-icon-template.svg not found, skipping tray icon generation`;
|
||||||
|
}
|
||||||
|
|
||||||
echo`\n✨ Icon generation complete! Files located in: ${ICONS_DIR}`;
|
echo`\n✨ Icon generation complete! Files located in: ${ICONS_DIR}`;
|
||||||
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
|||||||