Files
create/icons/themed/Sketcher_SwitchVirtualSpace.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

90 lines
9.3 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg width="64px" height="64px" id="svg5821" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" 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="defs5823">
<marker orient="auto" refY="0.0" refX="0.0" id="Arrow2Mend" style="overflow:visible">
<path id="path4003" style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " transform="scale(0.6) rotate(180) translate(0,0)" />
</marker>
<marker orient="auto" refY="0.0" refX="0.0" id="Arrow1Mend" style="overflow:visible">
<path id="path3985" d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " style="fill-rule:evenodd;stroke:#11111b;stroke-width:1pt" transform="scale(0.4) rotate(180) translate(10,0)" />
</marker>
<linearGradient id="linearGradient6349">
<stop style="stop-color:#11111b;stop-opacity:1" offset="0" id="stop6351" />
<stop style="stop-color:#11111b;stop-opacity:0" offset="1" id="stop6353" />
</linearGradient>
<linearGradient id="linearGradient3377">
<stop style="stop-color:#0845b0;stop-opacity:1" offset="0" id="stop3379" />
<stop style="stop-color:#5190f8;stop-opacity:1" offset="1" id="stop3381" />
</linearGradient>
<linearGradient xlink:href="#linearGradient3377" id="linearGradient3383" x1="901.1875" y1="1190.875" x2="1267.9062" y2="1190.875" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-1,0,0,1,2199.356,0)" />
<radialGradient xlink:href="#linearGradient6349" id="radialGradient6355" cx="1103.6399" cy="1424.4465" fx="1103.6399" fy="1424.4465" r="194.40614" gradientTransform="matrix(-1.4307499,-1.3605156e-7,-1.202713e-8,0.1264801,2674.7488,1244.2826)" gradientUnits="userSpaceOnUse" />
<linearGradient xlink:href="#linearGradient3768" id="linearGradient3774" x1="1178.153" y1="1453.8708" x2="1105.0463" y2="1059.0945" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.70270076,0,0,0.78787889,315.88365,269.84952)" />
<linearGradient id="linearGradient3768">
<stop style="stop-color:#d76363;stop-opacity:1" offset="0" id="stop3770" />
<stop style="stop-color:#f2cdcd;stop-opacity:1" offset="1" id="stop3772" />
</linearGradient>
<linearGradient xlink:href="#linearGradient3768-5" id="linearGradient3054-3" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.69497956,0,0,0.78924205,-531.38841,136.64219)" x1="1178.153" y1="1453.8708" x2="1105.0463" y2="1059.0945" />
<linearGradient id="linearGradient3768-5">
<stop style="stop-color:#d76363;stop-opacity:1" offset="0" id="stop3770-6" />
<stop style="stop-color:#f2cdcd;stop-opacity:1" offset="1" id="stop3772-2" />
</linearGradient>
</defs>
<metadata id="metadata5826">
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:creator>
<cc:Agent>
<dc:title>[wmayer]</dc:title>
</cc:Agent>
</dc:creator>
<dc:date>2014-11-26</dc:date>
<dc:relation>https://www.freecad.org/wiki/index.php?title=Artwork</dc:relation>
<dc:publisher>
<cc:Agent>
<dc:title>FreeCAD</dc:title>
</cc:Agent>
</dc:publisher>
<dc:identifier>FreeCAD/src/Mod/Sketcher/Gui/Resources/icons/Sketcher_MergeSketch.svg</dc:identifier>
<dc:rights>
<cc:Agent>
<dc:title>FreeCAD LGPL2+</dc:title>
</cc:Agent>
</dc:rights>
<cc:license>https://www.gnu.org/copyleft/lesser.html</cc:license>
<dc:contributor>
<cc:Agent>
<dc:title>[agryson] Alexander Gryson</dc:title>
</cc:Agent>
</dc:contributor>
</cc:Work>
</rdf:RDF>
</metadata>
<g id="layer1">
<g id="g3360" transform="matrix(0.1367863,0,0,0.1367863,-119.15519,-134.86962)">
<g id="g3047" transform="matrix(0.62222324,0,0,0.61432167,842.63789,423.10469)">
<rect y="1059.0726" x="456.97491" height="190.40639" width="187.98842" id="rect3860-3-2" style="color:#11111b;fill:none;stroke:#912424;stroke-width:70.94758606;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path transform="matrix(5.1840059,0,0,5.236176,488.24021,896.75107)" d="M 48.363636,33.272728 A 18.181818,18.181818 0 0 1 30.181818,51.454546 18.181818,18.181818 0 0 1 12,33.272728 18.181818,18.181818 0 0 1 30.181818,15.09091 18.181818,18.181818 0 0 1 48.363636,33.272728 Z" id="path3862-6-6" style="color:#11111b;fill:none;stroke:#912424;stroke-width:13.61751175;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<rect y="1059.0726" x="456.97491" height="190.40639" width="187.9884" id="rect3860-3-9-1" style="color:#11111b;fill:none;stroke:#f2cdcd;stroke-width:23.64919472;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path transform="matrix(5.1840059,0,0,5.236176,488.24022,896.75106)" d="M 48.363636,33.272728 A 18.181818,18.181818 0 0 1 30.181818,51.454546 18.181818,18.181818 0 0 1 12,33.272728 18.181818,18.181818 0 0 1 30.181818,15.09091 18.181818,18.181818 0 0 1 48.363636,33.272728 Z" id="path3862-6-1-8" style="color:#11111b;fill:none;stroke:#cdd6f4;stroke-width:4.53917074;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<rect y="1404.1841" x="127.99512" height="190.40639" width="187.98842" id="rect3860-3-8" style="color:#11111b;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#912424;stroke-width:70.94758606;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
<ellipse id="path3862-6-9" style="color:#11111b;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#912424;stroke-width:70.94758606;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" cx="315.72314" cy="1416.0844" rx="94.254654" ry="95.203201" />
<rect y="1404.1841" x="127.99512" height="190.40639" width="187.9884" id="rect3860-3-9-7" style="color:#11111b;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#cdd6f4;stroke-width:23.64919472;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
<ellipse id="path3862-6-1-3" style="color:#11111b;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#f2cdcd;stroke-width:23.64919662;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" cx="315.72314" cy="1416.0844" rx="94.254654" ry="95.203201" />
<g id="g4560" transform="matrix(0,1.0128623,-0.98730107,0,1620.0911,929.43105)">
<path transform="matrix(11.749278,0,0,11.9004,45.750169,916.26767)" id="path3202" d="m 6.9999999,35.000001 c 0,6 0.9999999,8 7.0000001,8" style="fill:none;stroke:#1e1e2e;stroke-width:6;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1;marker-end:none" />
<path style="fill:#6c7086;stroke:#1e1e2e;stroke-width:23.64919281;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" d="m 198.49078,1475.5865 v -95.2032 l 70.49567,47.6016 z" id="path3012-6-3" />
<path transform="matrix(11.749278,0,0,11.9004,45.750169,916.26767)" id="path4804" d="m 6.9999999,35.000001 c 0,6 0.9999999,8 7.0000001,8" style="fill:none;stroke:#6c7086;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
</g>
<g id="g4830" transform="matrix(-1,0,0,1,1360.4223,71.402379)">
<path id="path3202-1" d="m 715.459,1344.6821 c 0,71.4024 11.74928,95.2032 82.24495,95.2032" style="fill:none;stroke:#1e1e2e;stroke-width:70.94758606;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1;marker-end:none" />
<path style="fill:#6c7086;stroke:#1e1e2e;stroke-width:23.64919281;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" d="m 785.95466,1487.4869 v -95.2032 l 70.49566,47.6016 z" id="path3012-6-3-9" />
<path id="path4804-4" d="m 715.459,1344.6821 c 0,71.4024 11.74928,95.2032 82.24495,95.2032" style="fill:none;stroke:#6c7086;stroke-width:23.64919472;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
</g>
</g>
</g>
</g>
</svg>