feat(kc): tree-node icons — 10 Catppuccin Mocha SVGs for Silo tree #42

Closed
opened 2026-02-18 21:17:09 +00:00 by forbes · 1 comment
Owner

Summary

Create the 10 SVG tree-node icons used by the Silo tree viewer objects. These icons appear in the FreeCAD document tree next to each Silo metadata node.

Icon specifications

All icons follow the conventions in kindred-icons/README.md and match the existing icons in mods/silo/freecad/resources/icons/.

Format: 24x24 viewbox, stroke-width 1.5–2, stroke-linecap round, monochrome with single Catppuccin Mocha accent color.

Icon file Visual concept Accent color Hex
silo-group.svg Folder / container Text #cdd6f4
silo-manifest.svg Info circle Blue #89b4fa
silo-metadata.svg Tag Green #a6e3a1
silo-history.svg Clock Lavender #b4befe
silo-approvals.svg Shield with checkmark Peach #fab387
silo-dependencies.svg Git branch / fork Teal #94e2d5
silo-job.svg Play circle Mauve #cba6f7
silo-macro.svg File with code brackets Yellow #f9e2af
silo-jobs-group.svg Folder with play symbol Mauve #cba6f7
silo-macros-group.svg Folder with code symbol Yellow #f9e2af

Design guidelines

  • Monochrome: Single accent color per icon — no multi-color or gradient fills
  • Stroke-based: Use strokes rather than filled shapes for consistency with existing action icons
  • Recognizable at 16px: Tree icons render at 16x16 in the FreeCAD tree view; designs must be legible at small sizes
  • No text: Icons should communicate purely through visual metaphor
  • Clean SVG: No embedded raster data, no Inkscape/Illustrator metadata, minimal path complexity

Installation location

mods/silo/freecad/resources/icons/ — alongside the 13 existing action icons.

Usage

The SiloViewerViewProvider.getIcon() method returns the icon path. The _icon_for_path() helper maps SiloPath values to icon filenames:

ICONS = {
    "silo/manifest.json": "silo-manifest.svg",
    "silo/metadata.json": "silo-metadata.svg",
    "silo/history.json": "silo-history.svg",
    "silo/approvals.json": "silo-approvals.svg",
    "silo/dependencies.json": "silo-dependencies.svg",
}
# silo/jobs/* → silo-job.svg
# silo/macros/* → silo-macro.svg

Non-blocking

This issue is independent of the viewer implementation phases. The getIcon() method returns an empty string gracefully when the SVG file is missing, so icons can be added at any time without breaking functionality.

Acceptance criteria

  • All 10 SVGs are present in mods/silo/freecad/resources/icons/
  • Each SVG uses the correct accent color from the table above
  • All SVGs use 24x24 viewbox with stroke-based design
  • Icons are visually distinct and recognizable at 16x16 display size
  • Clean SVG source (no embedded metadata, no raster data)
  • Visual consistency with existing silo-*.svg action icons

References

  • Silo Metadata Viewport Specification §7 (Icon Set)
  • docs/SILO_VIEWPORT_PLAN.md Phase 6
  • Existing icons: mods/silo/freecad/resources/icons/silo-*.svg
## Summary Create the 10 SVG tree-node icons used by the Silo tree viewer objects. These icons appear in the FreeCAD document tree next to each Silo metadata node. ## Icon specifications All icons follow the conventions in `kindred-icons/README.md` and match the existing icons in `mods/silo/freecad/resources/icons/`. **Format**: 24x24 viewbox, stroke-width 1.5–2, stroke-linecap round, monochrome with single Catppuccin Mocha accent color. | Icon file | Visual concept | Accent color | Hex | |-----------|---------------|-------------|-----| | `silo-group.svg` | Folder / container | Text | `#cdd6f4` | | `silo-manifest.svg` | Info circle | Blue | `#89b4fa` | | `silo-metadata.svg` | Tag | Green | `#a6e3a1` | | `silo-history.svg` | Clock | Lavender | `#b4befe` | | `silo-approvals.svg` | Shield with checkmark | Peach | `#fab387` | | `silo-dependencies.svg` | Git branch / fork | Teal | `#94e2d5` | | `silo-job.svg` | Play circle | Mauve | `#cba6f7` | | `silo-macro.svg` | File with code brackets | Yellow | `#f9e2af` | | `silo-jobs-group.svg` | Folder with play symbol | Mauve | `#cba6f7` | | `silo-macros-group.svg` | Folder with code symbol | Yellow | `#f9e2af` | ## Design guidelines - **Monochrome**: Single accent color per icon — no multi-color or gradient fills - **Stroke-based**: Use strokes rather than filled shapes for consistency with existing action icons - **Recognizable at 16px**: Tree icons render at 16x16 in the FreeCAD tree view; designs must be legible at small sizes - **No text**: Icons should communicate purely through visual metaphor - **Clean SVG**: No embedded raster data, no Inkscape/Illustrator metadata, minimal path complexity ## Installation location `mods/silo/freecad/resources/icons/` — alongside the 13 existing action icons. ## Usage The `SiloViewerViewProvider.getIcon()` method returns the icon path. The `_icon_for_path()` helper maps `SiloPath` values to icon filenames: ```python ICONS = { "silo/manifest.json": "silo-manifest.svg", "silo/metadata.json": "silo-metadata.svg", "silo/history.json": "silo-history.svg", "silo/approvals.json": "silo-approvals.svg", "silo/dependencies.json": "silo-dependencies.svg", } # silo/jobs/* → silo-job.svg # silo/macros/* → silo-macro.svg ``` ## Non-blocking This issue is independent of the viewer implementation phases. The `getIcon()` method returns an empty string gracefully when the SVG file is missing, so icons can be added at any time without breaking functionality. ## Acceptance criteria - [ ] All 10 SVGs are present in `mods/silo/freecad/resources/icons/` - [ ] Each SVG uses the correct accent color from the table above - [ ] All SVGs use 24x24 viewbox with stroke-based design - [ ] Icons are visually distinct and recognizable at 16x16 display size - [ ] Clean SVG source (no embedded metadata, no raster data) - [ ] Visual consistency with existing `silo-*.svg` action icons ## References - Silo Metadata Viewport Specification §7 (Icon Set) - `docs/SILO_VIEWPORT_PLAN.md` Phase 6 - Existing icons: `mods/silo/freecad/resources/icons/silo-*.svg`
forbes added the enhancement label 2026-02-18 21:17:09 +00:00
Author
Owner

We could use Lucide icons for this

We could use Lucide icons for this
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: kindred/silo-mod#42