feat(icons): add icon theming infrastructure with Catppuccin color remapping #246

Merged
forbes merged 2 commits from feat/icon-theming into main 2026-02-16 02:36:21 +00:00
Owner

Summary

Restructures icon organization and adds automated color remapping of upstream FreeCAD icons to the Catppuccin Mocha dark theme.

Changes

Directory restructure

  • kindred-icons/ -> icons/kindred/ (git mv, preserves history)
  • New icons/mappings/ with two palette CSVs
  • New icons/themed/ with 795 auto-remapped upstream SVGs
  • New icons/retheme.py conversion script

Icon loading (BitmapFactory.cpp)

  1. icons/kindred/ — hand-crafted overrides (highest priority)
  2. icons/themed/ — auto-remapped upstream icons (second priority)
  3. Default FreeCAD icons (fallback)

Color mapping

  • 157 color mappings from Tango palette to Catppuccin Mocha
  • 10 color families (yellow, green, orange, blue, plum, chocolate, red, teal, white-gray, dark-gray)
  • 4 luminance anchors per family, with intermediate shades interpolated
  • 24,698 total color replacements across 795 SVGs

Files modified

  • src/Gui/BitmapFactory.cpp — load path updates + themed icon path
  • src/Gui/CMakeLists.txt — install both icon directories
  • docs/ — all path references updated
  • .gitignore — comment update

Regenerating themed icons

python3 icons/retheme.py
## Summary Restructures icon organization and adds automated color remapping of upstream FreeCAD icons to the Catppuccin Mocha dark theme. ## Changes ### Directory restructure - `kindred-icons/` -> `icons/kindred/` (git mv, preserves history) - New `icons/mappings/` with two palette CSVs - New `icons/themed/` with 795 auto-remapped upstream SVGs - New `icons/retheme.py` conversion script ### Icon loading (BitmapFactory.cpp) 1. `icons/kindred/` — hand-crafted overrides (highest priority) 2. `icons/themed/` — auto-remapped upstream icons (second priority) 3. Default FreeCAD icons (fallback) ### Color mapping - 157 color mappings from Tango palette to Catppuccin Mocha - 10 color families (yellow, green, orange, blue, plum, chocolate, red, teal, white-gray, dark-gray) - 4 luminance anchors per family, with intermediate shades interpolated - 24,698 total color replacements across 795 SVGs ### Files modified - `src/Gui/BitmapFactory.cpp` — load path updates + themed icon path - `src/Gui/CMakeLists.txt` — install both icon directories - `docs/` — all path references updated - `.gitignore` — comment update ### Regenerating themed icons ```bash python3 icons/retheme.py ```
forbes added 1 commit 2026-02-16 02:31:31 +00:00
feat(icons): add icon theming infrastructure with Catppuccin color remapping
Some checks failed
Build and Test / build (pull_request) Has been cancelled
3b37ff86bd
- Move kindred-icons/ to icons/kindred/ (better organization)
- Add icons/mappings/ with FCAD.csv (Tango palette) and kindred.csv (Catppuccin Mocha)
- Add icons/retheme.py script to remap upstream FreeCAD SVG colors
- Generate icons/themed/ with 795 auto-themed SVGs (24,698 color replacements)
- Update BitmapFactory.cpp to load icons/kindred (highest priority) then
  icons/themed (auto-remapped upstream icons) before default FreeCAD icons
- Update CMakeLists.txt to install both icon directories
- Update all documentation references to new paths

The 157-color mapping covers the full Tango palette used across FreeCAD's
icon set, interpolating between 4 luminance anchors per color family.
forbes force-pushed feat/icon-theming from 3b37ff86bd to d7b532255b 2026-02-16 02:34:53 +00:00 Compare
forbes added 1 commit 2026-02-16 02:36:08 +00:00
Merge branch 'main' into feat/icon-theming
Some checks failed
Build and Test / build (pull_request) Has been cancelled
b083970a4d
forbes merged commit f4d91db094 into main 2026-02-16 02:36:21 +00:00
forbes deleted branch feat/icon-theming 2026-02-16 02:36:24 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: kindred/create#246