Files
create/icons/themed/TechDraw_ExtensionThreadHoleBottom.svg
forbes d7b532255b
Some checks failed
Build and Test / build (pull_request) Has been cancelled
feat(icons): add icon theming infrastructure with Catppuccin color remapping
- Remove hand-crafted kindred-icons/ in favor of auto-generated themed icons
- 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 1,595 themed SVGs (45,300 color replacements)
- BitmapFactory loads icons/themed/ as highest priority before default icons
- 157-color mapping covers the full Tango palette, interpolating between
  4 luminance anchors per color family

Regenerate: python3 icons/retheme.py
2026-02-15 20:34:22 -06:00

74 lines
4.3 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="64"
height="64"
viewBox="0 0 16.933333 16.933334"
version="1.1"
id="svg843"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<defs
id="defs837" />
<metadata
id="metadata840">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
transform="translate(0,-280.06665)">
<path
style="display:inline;opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#313244;stroke-width:1.5875;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path1408-5"
d="m 8.4083989,284.84536 a 3.7041572,3.6963337 0 0 1 3.7618831,3.63272 3.7041572,3.6963337 0 0 1 -3.6352981,3.75887 3.7041572,3.6963337 0 0 1 -3.7717502,-3.62252 3.7041572,3.6963337 0 0 1 3.6250582,-3.7687" />
<path
style="display:inline;opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#6c7086;stroke-width:0.52916667;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path1"
d="m 8.4083989,284.84536 a 3.7041572,3.6963337 0 0 1 3.7618831,3.63272 3.7041572,3.6963337 0 0 1 -3.6352981,3.75887 3.7041572,3.6963337 0 0 1 -3.7717502,-3.62252 3.7041572,3.6963337 0 0 1 3.6250582,-3.7687"
transform="translate(0)" />
<path
style="fill:none;stroke:#313244;stroke-width:1.5875;stroke-linejoin:round;stroke-dasharray:none;stroke-dashoffset:1.05833"
d="M 0.52916667,8.4666664 H 16.404167"
id="path2-4"
transform="translate(0,280.06665)" />
<path
style="fill:none;stroke:#313244;stroke-width:1.5875;stroke-linejoin:round;stroke-dasharray:none;stroke-dashoffset:4"
d="m 8.4666667,16.404167 2e-7,-15.87500033"
id="path6"
transform="translate(0,280.06665)" />
<path
style="fill:none;stroke:#6c7086;stroke-width:0.529167;stroke-linejoin:round;stroke-dasharray:2.11667, 1.05833, 0.529167, 1.05833;stroke-dashoffset:0.264583"
d="M 0.52916667,8.4666664 H 16.404167"
id="path7"
transform="translate(0,280.06665)" />
<path
style="fill:none;stroke:#6c7086;stroke-width:0.529167;stroke-linejoin:round;stroke-dasharray:2.11667, 1.05833, 0.529167, 1.05833;stroke-dashoffset:0.264583"
d="m 8.4666667,16.404167 2e-7,-15.87500033"
id="path8"
transform="translate(0,280.06665)" />
<path
style="display:inline;opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#052459;stroke-width:2.11667;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path1408"
d="m 15.079497,288.54459 a 6.6141274,6.6149632 0 0 1 -4.121025,6.11615 6.6141274,6.6149632 0 0 1 -7.2201395,-1.50025 6.6141274,6.6149632 0 0 1 -1.3440426,-7.25173 6.6141274,6.6149632 0 0 1 6.2028071,-3.98871" />
<path
style="display:inline;opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#307bf7;stroke-width:1.05833334;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path2"
d="m 15.079497,288.54459 a 6.6141274,6.6149632 0 0 1 -4.121025,6.11615 6.6141274,6.6149632 0 0 1 -7.2201395,-1.50025 6.6141274,6.6149632 0 0 1 -1.3440426,-7.25173 6.6141274,6.6149632 0 0 1 6.2028071,-3.98871" />
<path
style="display:inline;opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#89b4fa;stroke-width:0.529167;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path3"
d="m 14.815671,288.28001 a 6.6141274,6.6149632 0 0 1 -4.121025,6.11615 6.6141274,6.6149632 0 0 1 -7.2201392,-1.50025 6.6141274,6.6149632 0 0 1 -1.3440426,-7.25173 6.6141274,6.6149632 0 0 1 6.2028071,-3.98871" />
</g>
</svg>