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

516 lines
16 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
version="1.1"
id="svg11300"
height="64"
width="64"
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/">
<title
id="title929">TechDraw_TreePageSync</title>
<defs
id="defs3">
<linearGradient
id="linearGradient3">
<stop
style="stop-color:#359b2e;stop-opacity:1"
offset="0"
id="stop3" />
<stop
style="stop-color:#6cd163;stop-opacity:1"
offset="1"
id="stop4" />
</linearGradient>
<linearGradient
id="linearGradient1">
<stop
style="stop-color:#359b2e;stop-opacity:1"
offset="0"
id="stop1" />
<stop
style="stop-color:#6cd163;stop-opacity:1;"
offset="1"
id="stop2" />
</linearGradient>
<linearGradient
id="linearGradient4272">
<stop
id="stop4274"
offset="0"
style="stop-color:#a6e3a1;stop-opacity:1;" />
<stop
id="stop4276"
offset="1"
style="stop-color:#a6e3a1;stop-opacity:0;" />
</linearGradient>
<linearGradient
id="linearGradient4262">
<stop
id="stop4264"
offset="0"
style="stop-color:#359b2e;stop-opacity:1;" />
<stop
style="stop-color:#359b2e;stop-opacity:0.49803922;"
offset="0.43075874"
id="stop4270" />
<stop
id="stop4266"
offset="1"
style="stop-color:#359b2e;stop-opacity:0;" />
</linearGradient>
<linearGradient
id="linearGradient3063">
<stop
style="stop-color:#89b4fa;stop-opacity:1"
offset="0"
id="stop3065" />
<stop
style="stop-color:#0846b3;stop-opacity:1"
offset="1"
id="stop3067" />
</linearGradient>
<linearGradient
id="linearGradient2690">
<stop
id="stop2692"
offset="0"
style="stop-color:#89b4fa;stop-opacity:1;" />
<stop
id="stop2694"
offset="1"
style="stop-color:#89b4fa;stop-opacity:0;" />
</linearGradient>
<linearGradient
id="linearGradient2682">
<stop
id="stop2684"
offset="0"
style="stop-color:#4f8ff8;stop-opacity:1;" />
<stop
id="stop2686"
offset="1"
style="stop-color:#89b4fa;stop-opacity:0;" />
</linearGradient>
<linearGradient
id="linearGradient2402">
<stop
id="stop2404"
offset="0"
style="stop-color:#89b4fa;stop-opacity:1;" />
<stop
id="stop2406"
offset="1"
style="stop-color:#659df9;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient2380">
<stop
id="stop2382"
offset="0"
style="stop-color:#89b4fa;stop-opacity:1" />
<stop
id="stop2384"
offset="1"
style="stop-color:#307bf7;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient2871">
<stop
id="stop2873"
offset="0"
style="stop-color:#307bf7;stop-opacity:1;" />
<stop
id="stop2875"
offset="1"
style="stop-color:#307bf7;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient2831">
<stop
id="stop2833"
offset="0"
style="stop-color:#307bf7;stop-opacity:1;" />
<stop
style="stop-color:#679ef9;stop-opacity:1;"
offset="0.33333334"
id="stop2855" />
<stop
id="stop2835"
offset="1"
style="stop-color:#89b4fa;stop-opacity:0;" />
</linearGradient>
<linearGradient
id="linearGradient2797">
<stop
id="stop2799"
offset="0"
style="stop-color:#cdd6f4;stop-opacity:1;" />
<stop
id="stop2801"
offset="1"
style="stop-color:#cdd6f4;stop-opacity:0;" />
</linearGradient>
<linearGradient
y2="26.048164"
x2="52.854095"
y1="26.048164"
x1="5.9649177"
gradientUnits="userSpaceOnUse"
id="linearGradient1491"
xlink:href="#linearGradient2797" />
<linearGradient
y2="26.048164"
x2="52.854095"
y1="26.048164"
x1="5.9649177"
gradientUnits="userSpaceOnUse"
id="linearGradient1493"
xlink:href="#linearGradient2797" />
<linearGradient
y2="50.939667"
x2="45.380436"
y1="45.264122"
x1="46.834816"
gradientUnits="userSpaceOnUse"
id="linearGradient1501"
xlink:href="#linearGradient2871" />
<linearGradient
gradientUnits="userSpaceOnUse"
y2="33.634254"
x2="26.605606"
y1="20.547306"
x1="42.703487"
id="linearGradient2386"
xlink:href="#linearGradient3063" />
<linearGradient
gradientUnits="userSpaceOnUse"
y2="26.649363"
x2="53.588623"
y1="23.667896"
x1="18.935766"
id="linearGradient2408"
xlink:href="#linearGradient2402" />
<linearGradient
gradientTransform="matrix(1.370336,0,0,1.3589114,-0.33380651,-16.948724)"
gradientUnits="userSpaceOnUse"
y2="24.842253"
x2="37.124462"
y1="31.455952"
x1="36.713837"
id="linearGradient2688"
xlink:href="#linearGradient2682" />
<linearGradient
gradientTransform="matrix(1.370336,0,0,1.3589114,-0.33380651,-16.948724)"
gradientUnits="userSpaceOnUse"
y2="24.842253"
x2="37.124462"
y1="30.748846"
x1="32.647972"
id="linearGradient2696"
xlink:href="#linearGradient2690" />
<linearGradient
y2="50.939667"
x2="45.380436"
y1="45.264122"
x1="46.834816"
gradientUnits="userSpaceOnUse"
id="linearGradient3036"
xlink:href="#linearGradient2871" />
<linearGradient
y2="26.649363"
x2="53.588623"
y1="23.667896"
x1="18.935766"
gradientUnits="userSpaceOnUse"
id="linearGradient3038"
xlink:href="#linearGradient2402" />
<linearGradient
y2="50.939667"
x2="45.380436"
y1="45.264122"
x1="46.834816"
gradientUnits="userSpaceOnUse"
id="linearGradient3040"
xlink:href="#linearGradient2871" />
<linearGradient
y2="19.115122"
x2="15.419417"
y1="10.612206"
x1="13.478554"
gradientTransform="matrix(1.370336,0,0,1.3589114,0.30396568,-17.325948)"
gradientUnits="userSpaceOnUse"
id="linearGradient1486-1"
xlink:href="#linearGradient2831-7" />
<linearGradient
id="linearGradient2831-7">
<stop
id="stop2833-4"
offset="0"
style="stop-color:#307bf7;stop-opacity:1;" />
<stop
style="stop-color:#679ef9;stop-opacity:1;"
offset="0.33333334"
id="stop2855-0" />
<stop
id="stop2835-9"
offset="1"
style="stop-color:#89b4fa;stop-opacity:0;" />
</linearGradient>
<linearGradient
y2="26.194071"
x2="37.065414"
y1="29.729605"
x1="37.128052"
gradientTransform="matrix(-1.370336,0,0,-1.3589114,64.7954,45.353844)"
gradientUnits="userSpaceOnUse"
id="linearGradient1488-4"
xlink:href="#linearGradient2847-8" />
<linearGradient
id="linearGradient2847-8">
<stop
id="stop2849-8"
offset="0"
style="stop-color:#307bf7;stop-opacity:1;" />
<stop
id="stop2851-2"
offset="1"
style="stop-color:#307bf7;stop-opacity:0;" />
</linearGradient>
<linearGradient
gradientUnits="userSpaceOnUse"
y2="20.60858"
x2="15.984863"
y1="36.061237"
x1="62.513836"
id="linearGradient2386-4"
xlink:href="#linearGradient2380-5" />
<linearGradient
id="linearGradient2380-5">
<stop
id="stop2382-5"
offset="0"
style="stop-color:#89b4fa;stop-opacity:1" />
<stop
id="stop2384-1"
offset="1"
style="stop-color:#89b4fa;stop-opacity:1" />
</linearGradient>
<linearGradient
y2="20.60858"
x2="15.984863"
y1="36.061237"
x1="62.513836"
gradientUnits="userSpaceOnUse"
id="linearGradient3034-7"
xlink:href="#linearGradient2380-5" />
<linearGradient
id="linearGradient3895">
<stop
id="stop3897"
offset="0"
style="stop-color:#89b4fa;stop-opacity:1" />
<stop
id="stop3899"
offset="1"
style="stop-color:#89b4fa;stop-opacity:1" />
</linearGradient>
<linearGradient
y2="26.048164"
x2="52.854095"
y1="26.048164"
x1="5.9649177"
gradientUnits="userSpaceOnUse"
id="linearGradient3861-1"
xlink:href="#linearGradient2797-1" />
<linearGradient
id="linearGradient2797-1">
<stop
id="stop2799-5"
offset="0"
style="stop-color:#cdd6f4;stop-opacity:1;" />
<stop
id="stop2801-2"
offset="1"
style="stop-color:#cdd6f4;stop-opacity:0;" />
</linearGradient>
<linearGradient
id="linearGradient2831-2">
<stop
id="stop2833-3"
offset="0"
style="stop-color:#307bf7;stop-opacity:1;" />
<stop
style="stop-color:#679ef9;stop-opacity:1;"
offset="0.33333334"
id="stop2855-1" />
<stop
id="stop2835-6"
offset="1"
style="stop-color:#89b4fa;stop-opacity:0;" />
</linearGradient>
<linearGradient
id="linearGradient3063-2">
<stop
style="stop-color:#89b4fa;stop-opacity:1"
offset="0"
id="stop3065-6" />
<stop
style="stop-color:#0846b3;stop-opacity:1"
offset="1"
id="stop3067-0" />
</linearGradient>
<linearGradient
id="linearGradient2380-9">
<stop
id="stop2382-4"
offset="0"
style="stop-color:#89b4fa;stop-opacity:1" />
<stop
id="stop2384-6"
offset="1"
style="stop-color:#307bf7;stop-opacity:1" />
</linearGradient>
<radialGradient
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.35772441,38.669348,-37.504601)"
r="31.937773"
fy="-0.79587156"
fx="-70.66935"
cy="-0.79587156"
cx="-70.66935"
id="radialGradient4371"
xlink:href="#linearGradient8662" />
<linearGradient
id="linearGradient8662">
<stop
id="stop8664"
offset="0"
style="stop-color:#11111b;stop-opacity:1;" />
<stop
id="stop8666"
offset="1"
style="stop-color:#11111b;stop-opacity:0;" />
</linearGradient>
<linearGradient
gradientUnits="userSpaceOnUse"
y2="20.050343"
x2="49.500511"
y1="23.586662"
x1="43.341869"
id="linearGradient4268"
xlink:href="#linearGradient4262" />
<linearGradient
gradientUnits="userSpaceOnUse"
y2="18.118267"
x2="60.368435"
y1="26.518738"
x1="60.093285"
id="linearGradient4278"
xlink:href="#linearGradient4272" />
<linearGradient
y2="18.118267"
x2="60.368435"
y1="26.518738"
x1="60.093285"
gradientUnits="userSpaceOnUse"
id="linearGradient4306"
xlink:href="#linearGradient4272" />
<linearGradient
y2="20.050343"
x2="49.500511"
y1="23.586662"
x1="43.341869"
gradientUnits="userSpaceOnUse"
id="linearGradient4308"
xlink:href="#linearGradient4262" />
<linearGradient
xlink:href="#linearGradient1"
id="linearGradient2"
x1="13.76568"
y1="17.063272"
x2="50.907177"
y2="27.050301"
gradientUnits="userSpaceOnUse" />
<linearGradient
xlink:href="#linearGradient3"
id="linearGradient4"
x1="15.304933"
y1="15.922003"
x2="51.019489"
y2="35.987846"
gradientUnits="userSpaceOnUse" />
</defs>
<metadata
id="metadata4">
<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>Jakub Steiner</dc:title>
</cc:Agent>
</dc:creator>
<dc:source>http://jimmac.musichall.cz</dc:source>
<cc:license
rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
<dc:title>TechDraw_TreePageSync</dc:title>
<dc:subject>
<rdf:Bag>
<rdf:li>reload</rdf:li>
<rdf:li>refresh</rdf:li>
<rdf:li>view</rdf:li>
</rdf:Bag>
</dc:subject>
</cc:Work>
<cc:License
rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
<cc:permits
rdf:resource="http://creativecommons.org/ns#Reproduction" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#Distribution" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
</cc:License>
</rdf:RDF>
</metadata>
<g
style="display:inline;stroke-width:0.913941"
transform="matrix(1.1594649,0,0,1.0325363,-4.2516855,15.776009)"
id="layer1">
<g
id="g4286"
style="stroke-width:0.913941">
<path
style="color:#11111b;display:inline;overflow:visible;visibility:visible;fill:#a6e3a1;fill-opacity:1;fill-rule:nonzero;stroke:#1c5017;stroke-width:1.82788;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
d="m 55.477287,19.596314 c 5.030202,23.64849 -20.43164,32.533266 -42.629203,15.168032 l -6.542274,7.122518 0.13116,-23.281319 20.502868,0.02094 c 0,0 -6.824331,7.607846 -6.824331,7.607846 15.61103,11.73228 35.604518,10.854014 35.36178,-6.638013 z"
id="path4290" />
<path
style="color:#11111b;display:block;overflow:visible;visibility:visible;fill:url(#linearGradient4);fill-opacity:1;stroke:#a6e3a1;stroke-width:2.01203;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:21;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
d="M 52.368857,42.344789 C 57.336994,33.465615 49.176003,12.601866 19.05552,12.672851 L 18.677956,5.6633463 7.4378077,19.282655 19.129354,29.167094 18.807724,20.554957 c 18.244937,0.381972 33.804002,9.457851 33.561133,21.789832 z"
id="path4294"
transform="matrix(0.69686517,0.58385766,0.58876622,-0.69105539,-8.35526,29.821354)" />
</g>
<g
transform="rotate(180,31.265882,15.712761)"
id="g4296"
style="stroke-width:0.913941">
<path
id="path4300"
d="m 55.477287,19.596314 c 5.030202,23.64849 -20.43164,32.533266 -42.629203,15.168032 l -6.542274,7.122518 0.13116,-23.281319 20.502868,0.02094 c 0,0 -6.824331,7.607846 -6.824331,7.607846 15.61103,11.73228 35.604518,10.854014 35.36178,-6.638013 z"
style="color:#11111b;display:block;overflow:visible;visibility:visible;fill:#a6e3a1;fill-opacity:1;fill-rule:nonzero;stroke:#1c5017;stroke-width:1.82788;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none" />
<path
id="path4304"
d="M 52.368857,42.344789 C 57.336994,33.465615 49.176003,12.601866 19.05552,12.672851 L 18.677956,5.6633463 7.4378077,19.282655 19.129354,29.167094 18.807724,20.554957 c 18.244937,0.381972 33.804002,9.457851 33.561133,21.789832 z"
style="color:#11111b;display:block;overflow:visible;visibility:visible;fill:url(#linearGradient2);fill-opacity:1;stroke:#a6e3a1;stroke-width:2.01203;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:21;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
transform="matrix(0.69686517,0.58385766,0.58876622,-0.69105539,-8.35526,29.821354)" />
</g>
</g>
</svg>