Icon Migration Phase 3: Complete Icon Set & Theme Switching #6

Closed
opened 2026-02-05 16:26:58 +00:00 by forbes · 0 comments
Owner

Overview

Complete the icon migration and implement theme switching capability for future flexibility.

Remaining Icons

View & Display Icons

  • DrawStyle*.svg - All draw style icons (Wireframe, Shaded, etc.)
  • Std_View*.svg - View orientation icons
  • Std_ToggleVisibility.svg and related visibility icons
  • Navigation cursors (cursor-*.svg)

Object Type Icons

  • Tree_*.svg - Tree view icons
  • Feature*.svg - Feature icons
  • Link*.svg - Link and LinkGroup icons
  • Document.svg - Document icon

UI Chrome Icons

  • button_*.svg - Arrow/navigation buttons
  • DAG view icons
  • Selection icons

Module-Specific Icons

  • Complete remaining Sketcher constraint icons
  • Complete remaining PartDesign feature icons
  • Complete remaining Assembly joint icons
  • TechDraw annotation and view icons
  • Spreadsheet formatting icons (leverage existing ztools icons)

Theme Switching Infrastructure

Goals

  1. Support multiple icon themes (Catppuccin Mocha default, potentially others)
  2. Allow runtime theme switching without restart
  3. Integrate with preference system

Implementation

  • Create IconThemeManager class
  • Add theme selection to Preferences dialog
  • Implement icon cache invalidation on theme change
  • Store theme preference in user config

Theme Package Structure

share/kindred-create/icons/
├── catppuccin-mocha/     # Default theme
│   ├── 32x32/
│   │   ├── document-save.svg
│   │   └── ...
│   └── theme.json        # Theme metadata
└── [future-theme]/
    └── ...

Background Color Coding System

Implement optional background color coding for icon categories:

Category Background Color Use Case
Default surface0 #313244 Standard icons
Creation surface1 #45475a Create/Add actions
Modification surface0 #313244 Edit/Modify actions
Deletion Subtle red tint Delete/Remove actions
View/Display surface2 #585b70 View controls

Acceptance Criteria

  • All FreeCAD core icons have Catppuccin equivalents
  • Theme switching works via preferences
  • Icon theme persists across sessions
  • Documentation for creating custom themes
  • Migration guide for users with custom icon overrides

Dependencies

  • #3 Icon Migration: Set up icon override infrastructure
  • #4 Icon Migration Phase 1: Core Toolbar Icons
  • #5 Icon Migration Phase 2: Workbench Icons
## Overview Complete the icon migration and implement theme switching capability for future flexibility. ## Remaining Icons ### View & Display Icons - [ ] `DrawStyle*.svg` - All draw style icons (Wireframe, Shaded, etc.) - [ ] `Std_View*.svg` - View orientation icons - [ ] `Std_ToggleVisibility.svg` and related visibility icons - [ ] Navigation cursors (`cursor-*.svg`) ### Object Type Icons - [ ] `Tree_*.svg` - Tree view icons - [ ] `Feature*.svg` - Feature icons - [ ] `Link*.svg` - Link and LinkGroup icons - [ ] `Document.svg` - Document icon ### UI Chrome Icons - [ ] `button_*.svg` - Arrow/navigation buttons - [ ] DAG view icons - [ ] Selection icons ### Module-Specific Icons - [ ] Complete remaining Sketcher constraint icons - [ ] Complete remaining PartDesign feature icons - [ ] Complete remaining Assembly joint icons - [ ] TechDraw annotation and view icons - [ ] Spreadsheet formatting icons (leverage existing ztools icons) ## Theme Switching Infrastructure ### Goals 1. Support multiple icon themes (Catppuccin Mocha default, potentially others) 2. Allow runtime theme switching without restart 3. Integrate with preference system ### Implementation - [ ] Create `IconThemeManager` class - [ ] Add theme selection to Preferences dialog - [ ] Implement icon cache invalidation on theme change - [ ] Store theme preference in user config ### Theme Package Structure ``` share/kindred-create/icons/ ├── catppuccin-mocha/ # Default theme │ ├── 32x32/ │ │ ├── document-save.svg │ │ └── ... │ └── theme.json # Theme metadata └── [future-theme]/ └── ... ``` ## Background Color Coding System Implement optional background color coding for icon categories: | Category | Background Color | Use Case | |----------|-----------------|----------| | Default | `surface0` #313244 | Standard icons | | Creation | `surface1` #45475a | Create/Add actions | | Modification | `surface0` #313244 | Edit/Modify actions | | Deletion | Subtle red tint | Delete/Remove actions | | View/Display | `surface2` #585b70 | View controls | ## Acceptance Criteria - [ ] All FreeCAD core icons have Catppuccin equivalents - [ ] Theme switching works via preferences - [ ] Icon theme persists across sessions - [ ] Documentation for creating custom themes - [ ] Migration guide for users with custom icon overrides ## Dependencies - #3 Icon Migration: Set up icon override infrastructure - #4 Icon Migration Phase 1: Core Toolbar Icons - #5 Icon Migration Phase 2: Workbench Icons
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: kindred/create#6