Redesign icon: wood texture shield with darken-blended Syncthing motif
All checks were successful
Release / build (push) Successful in 2m34s

Replace procedural icon renderer with pre-rendered textured icons:
- Use Stammtisch wood texture as shield face (crop tabletop planks)
- Apply Syncthing motif via darken blend ("warpaint on wood" effect)
- Fix Syncthing logo geometry: asymmetric node placement (76°/116°/168°
  gaps) with offset hub, matching the official SVG
- Metal rim with rivets and directional lighting
- Embed pre-rendered PNGs via go:embed (no runtime rendering)
- Icon generator in cmd/icongen/ takes wood texture as input

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Axel Meyer
2026-03-03 23:01:51 +01:00
parent cdeae01398
commit 110bb715ff
17 changed files with 426 additions and 333 deletions

View File

@@ -1,7 +1,5 @@
package icons
import "image/color"
// State represents the current sync state for icon rendering.
type State int
@@ -12,19 +10,3 @@ const (
StateError // Red — folder error
StateDisconnected // Dark gray — cannot reach Syncthing
)
// colors maps each state to its icon color.
var colors = map[State]color.RGBA{
StateIdle: {76, 175, 80, 255}, // green
StateSyncing: {33, 150, 243, 255}, // blue
StatePaused: {158, 158, 158, 255}, // gray
StateError: {244, 67, 54, 255}, // red
StateDisconnected: {97, 97, 97, 255}, // dark gray
}
func colorForState(s State) color.RGBA {
if c, ok := colors[s]; ok {
return c
}
return colors[StateDisconnected]
}