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

241 lines
17 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
version="1.1"
id="svg1501"
width="64"
height="64"
viewBox="0 0 64 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/">
<metadata
id="metadata1507">
<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>
<defs
id="defs1505">
<linearGradient
xlink:href="#linearGradient2"
id="linearGradient3"
x1="10.915542"
y1="50.440987"
x2="37.282467"
y2="9.9869757"
gradientUnits="userSpaceOnUse" />
<linearGradient
id="linearGradient2">
<stop
style="stop-color:#45475a;stop-opacity:1;"
offset="0"
id="stop2" />
<stop
style="stop-color:#585b70;stop-opacity:1;"
offset="1"
id="stop3" />
</linearGradient>
<linearGradient
xlink:href="#linearGradient2"
id="linearGradient3-3"
x1="10.915542"
y1="50.440987"
x2="37.282467"
y2="9.9869757"
gradientUnits="userSpaceOnUse" />
</defs>
<g
id="g931"
transform="matrix(1.6997985,0,0,1.7402142,4.6859237,4.5783947)"
style="display:none">
<path
id="path2060"
d="m 24.359252,21.762726 c -1.299135,-0.128092 -2.357579,-0.535419 -3.128174,-1.203828 -0.87453,-0.758565 -1.365863,-1.951035 -1.376371,-3.340469 -0.002,-0.263121 0.0061,-0.347375 0.04547,-0.475485 l 0.0479,-0.155699 -0.119873,-0.08945 C 19.762274,16.448595 19.474631,16.235177 19.188997,16.02353 17.016217,14.413565 13.121663,11.127966 9.1946849,7.5919364 7.9237416,6.4475217 7.675809,6.1778292 7.4087653,5.6492762 7.1895129,5.215315 7.1101029,4.8925824 7.1086134,4.4294271 7.1077073,4.1534874 7.1164394,4.0644776 7.1602321,3.90272 7.3683518,3.1338537 7.9971701,2.4790397 8.7263227,2.2718873 c 0.2479796,-0.070447 0.6965313,-0.069911 0.9606918,0.00118 0.5723895,0.1539863 1.1414735,0.5020346 1.6542495,1.0117278 0.580359,0.5768684 2.989211,3.2430417 4.779093,5.2896103 2.193085,2.5075936 3.977287,4.6638356 4.926759,5.9540796 0.162201,0.220415 0.317558,0.424433 0.34524,0.453372 l 0.05033,0.05262 0.198057,-0.05695 c 0.748621,-0.215239 1.660788,-0.05894 2.412465,0.413393 0.378956,0.238121 0.867485,0.69828 1.175749,1.107468 0.09034,0.119919 0.288319,0.41512 0.43995,0.656003 0.380704,0.604789 0.629852,0.927343 0.997022,1.29078 0.443655,0.439142 0.789136,0.659688 1.236336,0.789242 0.418494,0.121237 0.818419,0.101256 1.385247,-0.06921 0.149625,-0.045 0.286058,-0.07648 0.303187,-0.06996 0.1383,0.05265 -0.176744,0.521808 -0.693922,1.033368 -0.913266,0.903343 -1.881026,1.455344 -2.810517,1.603091 -0.283475,0.04506 -1.384173,0.06484 -1.72701,0.03104 z"
style="fill:none;stroke-width:1" />
<g
id="g1197">
<path
style="fill:#f8ca69;fill-opacity:1;stroke:#e9aaaa;stroke-width:0.944882;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 21.553936,20.076772 C 20.407035,19.925066 19.480592,19.51663 18.815888,18.869664 18.061532,18.13544 17.65788,17.0025 17.685143,15.695962 c 0.0052,-0.247423 0.01452,-0.32644 0.05276,-0.445935 l 0.0465,-0.145229 -0.103783,-0.08699 C 17.62354,14.969968 17.374473,14.762391 17.127138,14.556533 15.245722,12.990609 11.883899,9.8078605 8.4999579,6.3888857 7.4047659,5.2823556 7.19234,5.0228332 6.9698058,4.5194808 6.7870969,4.1062104 6.7252796,3.800879 6.7361506,3.3654048 c 0.0065,-0.259447 0.016542,-0.3429207 0.05957,-0.493944 0.2045051,-0.7178436 0.7785027,-1.3183306 1.4295555,-1.4955302 0.2214199,-0.060263 0.6185581,-0.048957 0.8505797,0.024193 0.5027504,0.158556 0.9974642,0.4994779 1.4380702,0.9910154 0.498675,0.5563207 2.56134,3.1209399 4.092266,5.088131 1.875794,2.4103349 3.398803,4.4805 4.205523,5.716392 0.137814,0.211129 0.270002,0.406678 0.29375,0.434552 l 0.04316,0.05068 0.176861,-0.04877 c 0.668504,-0.184333 1.472036,-0.01542 2.125151,0.446738 0.329266,0.232998 0.749705,0.677381 1.011877,1.069505 0.07683,0.114915 0.244357,0.397218 0.372274,0.627337 0.321165,0.577764 0.533275,0.887014 0.848808,1.237543 0.38126,0.423546 0.681351,0.63921 1.073899,0.771779 0.367348,0.124061 0.721972,0.114903 1.228336,-0.03171 0.133664,-0.03871 0.255294,-0.06502 0.270287,-0.05847 0.121062,0.05283 -0.170223,0.486324 -0.641604,0.95482 -0.832391,0.827294 -1.703786,1.322959 -2.530659,1.439485 -0.252179,0.03553 -1.227273,0.02763 -1.529935,-0.01238 z"
id="path2070" />
<g
id="g1183">
<g
transform="matrix(0.71649773,0,0,0.66495027,5.5111241,-0.31804074)"
id="g2082"
style="stroke-width:1.44877">
<path
style="opacity:1;fill:#f8ca69;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.304881;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke"
id="path2078"
d="m 43.756236,26.766691 -9.401133,-4.859796 9.314408,-3.261933 z"
transform="matrix(0.89230783,-1.1184628,1.0792599,0.92471986,-52.389448,48.068058)" />
</g>
<path
style="fill:#e9aaaa;fill-opacity:1;stroke-width:1"
d="M 6.2631706,20.660362 C 6.1128463,20.590923 5.9557192,20.437042 5.872299,20.277566 5.82073,20.178986 5.808175,20.124325 5.807409,19.995034 5.8065852,19.854274 5.820326,19.801229 5.9201676,19.559928 6.0635161,19.213488 7.502547,15.887436 8.5309041,13.525696 l 0.7827492,-1.797674 0.5660975,-0.568557 c 0.3113532,-0.312708 0.5830092,-0.577756 0.6036792,-0.588996 0.02949,-0.01604 0.161148,0.08608 0.611661,0.474417 0.315743,0.27217 0.805182,0.69036 1.087643,0.92931 0.28246,0.238951 0.513565,0.447476 0.513565,0.463389 0,0.01591 -0.263466,0.286189 -0.585479,0.600614 l -0.585478,0.571683 -0.352994,0.01516 c -0.592223,0.02543 -1.060972,0.01949 -1.062571,-0.01347 -7.66e-4,-0.01574 -8.24e-4,-0.219271 -1.85e-4,-0.452282 0.0011,-0.392397 -0.0016,-0.420276 -0.03582,-0.377854 -0.0608,0.07524 -2.3807017,4.944165 -2.3696596,4.973351 0.01276,0.03373 0.9988926,0.970643 1.036838,0.985089 0.037837,0.01441 5.3633166,-2.2831 5.3633166,-2.313839 0,-0.01341 -0.145447,-0.169935 -0.323214,-0.347822 l -0.323213,-0.323431 0.03423,-0.112655 c 0.01882,-0.06196 0.08812,-0.292994 0.153989,-0.51341 l 0.119765,-0.400755 0.381842,-0.383581 c 0.210013,-0.210968 0.387742,-0.383579 0.394954,-0.383579 0.0072,0 0.116671,0.08488 0.243244,0.188618 0.126571,0.10374 0.546924,0.440169 0.934116,0.747619 0.387194,0.30745 0.706856,0.575523 0.710362,0.595717 0.0039,0.02243 -0.31032,0.350325 -0.807854,0.843014 l -0.814228,0.806297 -1.281025,0.552473 c -2.097602,0.904636 -4.8704367,2.109194 -5.7588459,2.501719 -0.4570145,0.201922 -0.9088351,0.40143 -1.004047,0.44335 -0.2115566,0.09315 -0.3335128,0.0982 -0.5011763,0.02075 z"
id="path2062" />
</g>
<g
id="g1187">
<rect
transform="matrix(0.75700229,-0.65341222,0.71331241,0.70084621,0,0)"
y="17.020943"
x="5.8895898"
height="2.9250367"
width="8.1917553"
id="rect2076"
style="opacity:1;fill:#f8ca69;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.300507;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke" />
<path
id="path2054"
d="m 19.934145,12.041859 c -0.03237,-0.03503 -0.189202,-0.228736 -0.348528,-0.430454 -0.159325,-0.201718 -0.462726,-0.577375 -0.674225,-0.834794 -0.214714,-0.26133 -0.381558,-0.484468 -0.377783,-0.505247 0.0037,-0.02047 1.336256,-1.317584 2.961197,-2.8824826 1.833148,-1.7654135 2.954436,-2.8614052 2.954436,-2.8877848 0,-0.042591 -1.695086,-1.7174051 -1.738192,-1.7174051 -0.01191,0 -1.31304,1.2673951 -2.891408,2.8164334 C 17.302797,8.0702007 16.945074,8.4130757 16.9108,8.3882371 16.889305,8.372664 16.591612,8.0353041 16.249259,7.6385562 15.906906,7.241809 15.489765,6.7604818 15.322279,6.5689414 15.069258,6.2795802 15.021635,6.2137439 15.040671,6.1796361 c 0.0126,-0.022577 1.28817,-1.2933719 2.834597,-2.8239881 2.115034,-2.0934102 2.844403,-2.80183615 2.943738,-2.85920899 0.509757,-0.29441918 1.085839,-0.33393023 1.661579,-0.11396064 0.361989,0.13830311 0.42758,0.19545588 2.05383,1.78959673 0.837846,0.8213031 1.580071,1.5646134 1.649389,1.6518008 0.153212,0.19271 0.293255,0.4730445 0.344086,0.6887888 0.02823,0.1198073 0.03502,0.2297217 0.02687,0.4351058 -0.01775,0.447463 -0.147337,0.7362384 -0.50986,1.1361887 -0.107149,0.1182111 -1.512663,1.5214287 -3.123363,3.1182622 l -2.928544,2.9033316 z"
style="fill:#e9aaaa;fill-opacity:1;stroke:none;stroke-width:1" />
</g>
</g>
<rect
y="29.443945"
x="0.59586734"
height="1.5440944"
width="30.744093"
id="rect1044"
style="display:inline;opacity:1;fill:#00ffff;fill-opacity:1;fill-rule:nonzero;stroke:#664506;stroke-width:0.756;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke" />
<g
style="fill:#89da82;stroke-width:1.31587"
transform="matrix(0.9980571,0,0,0.5786524,-0.19303899,19.193798)"
id="g1096">
<rect
style="opacity:1;fill:#89da82;fill-opacity:1;fill-rule:nonzero;stroke:#664506;stroke-width:0.994674;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke"
id="rect1074"
width="4.8812132"
height="2.5471396"
x="0.970339"
y="12.10805" />
<rect
y="12.10805"
x="7.3914557"
height="2.5471396"
width="4.8812132"
id="rect1076"
style="opacity:1;fill:#89da82;fill-opacity:1;fill-rule:nonzero;stroke:#664506;stroke-width:0.994674;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke" />
<rect
style="opacity:1;fill:#89da82;fill-opacity:1;fill-rule:nonzero;stroke:#664506;stroke-width:0.994674;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke"
id="rect1078"
width="4.8812132"
height="2.5471396"
x="13.812572"
y="11.986758" />
<rect
y="11.986758"
x="20.233688"
height="2.5471396"
width="4.8812132"
id="rect1080"
style="opacity:1;fill:#89da82;fill-opacity:1;fill-rule:nonzero;stroke:#664506;stroke-width:0.994674;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke" />
<rect
style="opacity:1;fill:#89da82;fill-opacity:1;fill-rule:nonzero;stroke:#664506;stroke-width:0.994674;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke"
id="rect1082"
width="4.8812132"
height="2.5471396"
x="26.654804"
y="11.986758" />
</g>
<g
style="fill:#e9aaaa;stroke-width:0.999071"
transform="matrix(1.0018615,0,0,1,39.987934,4.1325607)"
id="g1160">
<rect
style="opacity:1;fill:#e9aaaa;fill-opacity:1;fill-rule:nonzero;stroke:#664506;stroke-width:0.755203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke"
id="rect1126"
width="6.7782493"
height="1.5840559"
x="-39.117393"
y="18.491907" />
<rect
y="18.446423"
x="-27.163031"
height="1.5840559"
width="6.7782493"
id="rect1128"
style="opacity:1;fill:#e9aaaa;fill-opacity:1;fill-rule:nonzero;stroke:#664506;stroke-width:0.755203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke" />
<rect
style="opacity:1;fill:#e9aaaa;fill-opacity:1;fill-rule:nonzero;stroke:#664506;stroke-width:0.755203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke"
id="rect1130"
width="6.7782493"
height="1.5840559"
x="-15.208673"
y="18.537392" />
<path
style="opacity:1;fill:#e9aaaa;fill-opacity:1;fill-rule:nonzero;stroke:#664506;stroke-width:0.755203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke"
id="path1151"
d="m -30.54308,19.373826 a 0.79201812,0.79204726 0 0 1 0.792191,-0.790969 0.79201812,0.79204726 0 0 1 0.791844,0.791316 0.79201812,0.79204726 0 0 1 -0.790381,0.792777 0.79201812,0.79204726 0 0 1 -0.79365,-0.789503" />
<path
d="m -18.588721,19.191888 a 0.79201812,0.79204726 0 0 1 0.792191,-0.790969 0.79201812,0.79204726 0 0 1 0.791844,0.791316 0.79201812,0.79204726 0 0 1 -0.790381,0.792777 0.79201812,0.79204726 0 0 1 -0.79365,-0.789504"
id="path1153"
style="opacity:1;fill:#e9aaaa;fill-opacity:1;fill-rule:nonzero;stroke:#664506;stroke-width:0.755203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke" />
</g>
</g>
<g
id="g19">
<rect
style="fill:#6c7086;stroke:#313244;stroke-width:2.00065;stroke-linecap:square;stroke-linejoin:round;stroke-dasharray:none;paint-order:fill markers stroke"
id="rect1"
width="45.999344"
height="57.999352"
x="9.0003252"
y="3.000325" />
<path
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:url(#linearGradient3);fill-opacity:1;stroke:#6c7086;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:fill markers stroke;stop-color:#11111b;stop-opacity:1"
id="rect3"
width="45.999344"
height="57.999352"
x="9.0003252"
y="3.000325"
d="M 11,5 H 53 V 59 H 11 Z" />
<g
id="g1"
transform="matrix(1.5494415,0,0,0.98327152,-3.3895679,-2.7199814)">
<path
style="display:inline;fill:none;stroke:#052459;stroke-width:1.62033821;stroke-linecap:square;stroke-linejoin:round;stroke-dasharray:3.24066831,3.24066831,0.81016911,3.24066831,0.81016911,3.24066831;stroke-dashoffset:0"
d="m 12.161851,40.244641 21.45613,-0.08279"
id="path7" />
<path
style="display:inline;fill:none;stroke:#89b4fa;stroke-width:1.62033821;stroke-linecap:square;stroke-linejoin:round;stroke-dasharray:3.24066831,3.24066831,0.81016911,3.24066831,0.81016911,3.24066831;stroke-dashoffset:0"
d="m 12.161851,36.244641 21.45613,-0.08279"
id="path4-7" />
<path
style="display:inline;fill:none;stroke:#052459;stroke-width:1.62033821;stroke-linecap:square;stroke-linejoin:round;stroke-dasharray:3.2406602,3.2406602;stroke-dashoffset:0"
d="M 12.161601,32.233749 33.63119,32.156299"
id="path5" />
<path
style="display:inline;fill:none;stroke:#89b4fa;stroke-width:1.62033821;stroke-linecap:square;stroke-linejoin:round;stroke-dasharray:3.2406602,3.2406602;stroke-dashoffset:0"
d="M 12.161601,28.233749 33.63119,28.156299"
id="path6" />
<path
style="display:inline;fill:none;stroke:#052459;stroke-width:1.62033821;stroke-linecap:square;stroke-linejoin:round;stroke-dasharray:0.81016911,3.24066831;stroke-dashoffset:0"
d="m 33.160789,24.160919 -21.682604,0.06338"
id="path4" />
<path
style="display:inline;fill:none;stroke:#89b4fa;stroke-width:1.62033821;stroke-linecap:square;stroke-linejoin:round;stroke-dasharray:0.81016911,3.24066831;stroke-dashoffset:0"
d="m 33.160789,20.160919 -21.682604,0.06338"
id="path9" />
<path
style="display:inline;fill:none;stroke:#052459;stroke-width:1.62033821;stroke-linecap:square;stroke-linejoin:round;stroke-dasharray:none;stroke-dashoffset:0"
d="m 33.659655,16.159291 -21.500364,0.08262"
id="path3" />
<path
style="display:inline;fill:none;stroke:#89b4fa;stroke-width:1.62033821;stroke-linecap:square;stroke-linejoin:round;stroke-dasharray:none;stroke-dashoffset:0"
d="m 33.659655,12.159291 -21.500364,0.08262"
id="path8" />
</g>
</g>
</svg>