diff --git a/kindred-icons/README.md b/kindred-icons/README.md new file mode 100644 index 0000000000..3ed2520f8c --- /dev/null +++ b/kindred-icons/README.md @@ -0,0 +1,98 @@ +# Kindred Create Icons + +This directory contains custom Catppuccin Mocha themed SVG icons that override the default FreeCAD icons. + +## How It Works + +Icons placed in this directory are loaded **before** the default FreeCAD icons. To override an icon, simply create an SVG file with the same name as the original icon. + +For example, to override `document-save.svg`, create `kindred-icons/document-save.svg`. + +## Icon Design Standards + +All Kindred Create icons follow these guidelines: + +### Template + +```svg + + + + +``` + +### Specifications + +| Property | Value | +|----------|-------| +| ViewBox | 32x32 | +| Background | Rounded rect, rx=4, fill=`#313244` (surface0) | +| Stroke width | 1.5-2.5 for main elements | +| Style | Flat, minimal, geometric | + +### Catppuccin Mocha Palette + +| Color | Hex | Usage | +|-------|-----|-------| +| Base | `#1e1e2e` | Deep backgrounds | +| Mantle | `#181825` | Darker backgrounds | +| Crust | `#11111b` | Darkest backgrounds | +| Surface0 | `#313244` | **Icon backgrounds** | +| Surface1 | `#45475a` | Elevated surfaces | +| Surface2 | `#585b70` | Higher surfaces | +| Overlay0 | `#6c7086` | Subtle elements | +| Overlay1 | `#7f849c` | More visible overlays | +| Overlay2 | `#9399b2` | Prominent overlays | +| Subtext0 | `#a6adc8` | Tertiary text | +| Subtext1 | `#bac2de` | Secondary text | +| Text | `#cdd6f4` | **Primary text/strokes** | +| Lavender | `#b4befe` | Soft purple accent | +| Blue | `#89b4fa` | **File operations** | +| Sapphire | `#74c7ec` | Links, info | +| Sky | `#89dceb` | Light blue accent | +| Teal | `#94e2d5` | Success secondary | +| Green | `#a6e3a1` | **Creation/Success** | +| Yellow | `#f9e2af` | **Sketcher, warnings** | +| Peach | `#fab387` | **Settings, caution** | +| Maroon | `#eba0ac` | Soft red | +| Red | `#f38ba8` | **Deletion/Error** | +| Mauve | `#cba6f7` | **Primary accent** | +| Pink | `#f5c2e7` | Decorative | +| Flamingo | `#f2cdcd` | Soft accents | +| Rosewater | `#f5e0dc` | Lightest accent | + +### Workbench Color Coding + +Each workbench uses a distinct accent color: + +| Workbench | Primary | Accent | +|-----------|---------|--------| +| Part Design | Blue `#89b4fa` | Sapphire `#74c7ec` | +| Sketcher | Yellow `#f9e2af` | Peach `#fab387` | +| Assembly | Green `#a6e3a1` | Teal `#94e2d5` | +| TechDraw | Mauve `#cba6f7` | Lavender `#b4befe` | +| Spreadsheet | Sky `#89dceb` | Sapphire `#74c7ec` | +| Mesh | Pink `#f5c2e7` | Flamingo `#f2cdcd` | +| Draft | Peach `#fab387` | Yellow `#f9e2af` | + +## Adding New Icons + +1. Identify the original icon name (e.g., `document-save.svg`) +2. Create your SVG using the template above +3. Save it in this directory with the exact same filename +4. The new icon will be used on next application start + +## Finding Original Icon Names + +Original icons are located in: +- `src/Gui/Icons/` - Core GUI icons +- `src/Mod/*/Gui/Resources/icons/` - Module-specific icons + +Use the same filename to override. + +## Related Issues + +- Epic: https://git.kindred-systems.com/kindred/create/issues/7 +- Phase 1 (Core): https://git.kindred-systems.com/kindred/create/issues/4 +- Phase 2 (Workbench): https://git.kindred-systems.com/kindred/create/issues/5 +- Phase 3 (Complete): https://git.kindred-systems.com/kindred/create/issues/6 diff --git a/kindred-icons/delete.svg b/kindred-icons/delete.svg new file mode 100644 index 0000000000..1c22cc81db --- /dev/null +++ b/kindred-icons/delete.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/kindred-icons/document-new.svg b/kindred-icons/document-new.svg new file mode 100644 index 0000000000..de23efa614 --- /dev/null +++ b/kindred-icons/document-new.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/kindred-icons/document-open.svg b/kindred-icons/document-open.svg new file mode 100644 index 0000000000..0d808ad93b --- /dev/null +++ b/kindred-icons/document-open.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/kindred-icons/document-save.svg b/kindred-icons/document-save.svg new file mode 100644 index 0000000000..aa724f110b --- /dev/null +++ b/kindred-icons/document-save.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/kindred-icons/edit-copy.svg b/kindred-icons/edit-copy.svg new file mode 100644 index 0000000000..fc75782616 --- /dev/null +++ b/kindred-icons/edit-copy.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/kindred-icons/edit-cut.svg b/kindred-icons/edit-cut.svg new file mode 100644 index 0000000000..19aaadbf8c --- /dev/null +++ b/kindred-icons/edit-cut.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/kindred-icons/edit-paste.svg b/kindred-icons/edit-paste.svg new file mode 100644 index 0000000000..a1d4d92945 --- /dev/null +++ b/kindred-icons/edit-paste.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/kindred-icons/edit-redo.svg b/kindred-icons/edit-redo.svg new file mode 100644 index 0000000000..ac278f6617 --- /dev/null +++ b/kindred-icons/edit-redo.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/kindred-icons/edit-undo.svg b/kindred-icons/edit-undo.svg new file mode 100644 index 0000000000..6edbf22659 --- /dev/null +++ b/kindred-icons/edit-undo.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/kindred-icons/preferences-system.svg b/kindred-icons/preferences-system.svg new file mode 100644 index 0000000000..72992196a8 --- /dev/null +++ b/kindred-icons/preferences-system.svg @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/kindred-icons/view-refresh.svg b/kindred-icons/view-refresh.svg new file mode 100644 index 0000000000..559d81412c --- /dev/null +++ b/kindred-icons/view-refresh.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/kindred-icons/zoom-in.svg b/kindred-icons/zoom-in.svg new file mode 100644 index 0000000000..4921addea0 --- /dev/null +++ b/kindred-icons/zoom-in.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/kindred-icons/zoom-out.svg b/kindred-icons/zoom-out.svg new file mode 100644 index 0000000000..92224fdd2d --- /dev/null +++ b/kindred-icons/zoom-out.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/Gui/BitmapFactory.cpp b/src/Gui/BitmapFactory.cpp index 154d9cbc7f..2afec18c30 100644 --- a/src/Gui/BitmapFactory.cpp +++ b/src/Gui/BitmapFactory.cpp @@ -63,6 +63,13 @@ BitmapFactoryInst& BitmapFactoryInst::instance() if (!_pcSingleton) { _pcSingleton = new BitmapFactoryInst; std::map::const_iterator it; + + // Kindred Create custom icons - highest priority + // These override default FreeCAD icons with Catppuccin Mocha themed versions + _pcSingleton->addPath( + QStringLiteral("%1/kindred-icons").arg(QString::fromStdString(App::Application::getHomePath())) + ); + it = App::GetApplication().Config().find("ProgramIcons"); if (it != App::GetApplication().Config().end()) { QString home = QString::fromStdString(App::Application::getHomePath()); diff --git a/src/Gui/CMakeLists.txt b/src/Gui/CMakeLists.txt index 28dcd164bc..64b1723df0 100644 --- a/src/Gui/CMakeLists.txt +++ b/src/Gui/CMakeLists.txt @@ -1618,3 +1618,15 @@ INSTALL( DESTINATION ${CMAKE_INSTALL_DATADIR}/3Dconnexion ) + +# Kindred Create custom icons - Catppuccin Mocha themed overrides +INSTALL( + DIRECTORY + ${CMAKE_SOURCE_DIR}/kindred-icons/ + DESTINATION + kindred-icons + FILES_MATCHING + PATTERN "*.svg" + PATTERN "*.png" + PATTERN "README.md" +)