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

508 lines
17 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="64"
height="64"
id="svg2869"
version="1.1"
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/">
<defs
id="defs2871">
<linearGradient
id="linearGradient5">
<stop
style="stop-color:#f2cdcd;stop-opacity:1;"
offset="0"
id="stop19" />
<stop
style="stop-color:#f2cdcd;stop-opacity:0;"
offset="1"
id="stop20" />
</linearGradient>
<linearGradient
id="swatch18">
<stop
style="stop-color:#f2cdcd;stop-opacity:1;"
offset="0"
id="stop18" />
</linearGradient>
<linearGradient
id="swatch15">
<stop
style="stop-color:#581616;stop-opacity:1;"
offset="0"
id="stop15" />
</linearGradient>
<linearGradient
id="linearGradient5-1">
<stop
style="stop-color:#f2cdcd;stop-opacity:1;"
offset="0"
id="stop5" />
<stop
style="stop-color:#f2cdcd;stop-opacity:0;"
offset="1"
id="stop6" />
</linearGradient>
<linearGradient
id="linearGradient3836-9">
<stop
style="stop-color:#912424;stop-opacity:1"
offset="0"
id="stop3838-8" />
<stop
style="stop-color:#f2cdcd;stop-opacity:1"
offset="1"
id="stop3840-1" />
</linearGradient>
<linearGradient
id="linearGradient3836-9-3">
<stop
style="stop-color:#912424;stop-opacity:1"
offset="0"
id="stop3838-8-5" />
<stop
style="stop-color:#f2cdcd;stop-opacity:1"
offset="1"
id="stop3840-1-6" />
</linearGradient>
<linearGradient
y2="5"
x2="-22"
y1="18"
x1="-18"
gradientUnits="userSpaceOnUse"
id="linearGradient3082"
xlink:href="#linearGradient3836-9-3" />
<linearGradient
id="linearGradient3836-9-7">
<stop
style="stop-color:#912424;stop-opacity:1"
offset="0"
id="stop3838-8-0" />
<stop
style="stop-color:#f2cdcd;stop-opacity:1"
offset="1"
id="stop3840-1-9" />
</linearGradient>
<linearGradient
y2="5"
x2="-22"
y1="18"
x1="-18"
gradientUnits="userSpaceOnUse"
id="linearGradient3082-3"
xlink:href="#linearGradient3836-9-7" />
<linearGradient
xlink:href="#linearGradient3836-9-3"
id="linearGradient3801-1-3"
gradientUnits="userSpaceOnUse"
x1="-18"
y1="18"
x2="-22"
y2="5"
gradientTransform="matrix(0.76342439,0,0,0.75750425,-4.596389,2.7525637)" />
<linearGradient
xlink:href="#linearGradient3836-9-3"
id="linearGradient3801-1-3-2"
gradientUnits="userSpaceOnUse"
x1="-18"
y1="18"
x2="-22"
y2="5"
gradientTransform="matrix(0.84956703,0,0,0.84301394,-2.927337,1.7790378)" />
<linearGradient
xlink:href="#linearGradient3838"
id="linearGradient3844"
x1="36"
y1="1039.3622"
x2="32"
y2="1003.3622"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(2.0563921e-6,-988.36218)" />
<linearGradient
id="linearGradient3838">
<stop
style="stop-color:#6c7086;stop-opacity:1;"
offset="0"
id="stop3840" />
<stop
style="stop-color:#cdd6f4;stop-opacity:1;"
offset="1"
id="stop3842" />
</linearGradient>
<linearGradient
xlink:href="#linearGradient3830"
id="linearGradient3836"
x1="36"
y1="1037.3622"
x2="32"
y2="1005.3622"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(2.0563921e-6,-988.36218)" />
<linearGradient
id="linearGradient3830">
<stop
style="stop-color:#cdd6f4;stop-opacity:1;"
offset="0"
id="stop3832" />
<stop
style="stop-color:#6c7086;stop-opacity:1;"
offset="1"
id="stop3834" />
</linearGradient>
<linearGradient
x1="10.504496"
y1="16.48678"
x2="5.9349072"
y2="1.6356685"
id="linearGradient-1"
gradientTransform="scale(0.99999018,1.0000098)"
gradientUnits="userSpaceOnUse">
<stop
stop-color="#912424"
offset="0%"
id="stop6-9" />
<stop
stop-color="#f2cdcd"
offset="100%"
id="stop8" />
</linearGradient>
<linearGradient
xlink:href="#linearGradient3815"
id="linearGradient3856"
gradientUnits="userSpaceOnUse"
x1="80"
y1="58"
x2="79"
y2="42" />
<linearGradient
id="linearGradient3815">
<stop
style="stop-color:#307bf7;stop-opacity:1"
offset="0"
id="stop3817" />
<stop
style="stop-color:#89b4fa;stop-opacity:1"
offset="1"
id="stop3819" />
</linearGradient>
<linearGradient
xlink:href="#linearGradient3841"
id="linearGradient3858"
gradientUnits="userSpaceOnUse"
x1="109"
y1="51"
x2="105"
y2="38" />
<linearGradient
id="linearGradient3841">
<stop
style="stop-color:#0846b3;stop-opacity:1"
offset="0"
id="stop3843" />
<stop
style="stop-color:#307bf7;stop-opacity:1"
offset="1"
id="stop3845" />
</linearGradient>
<linearGradient
y2="5"
x2="-22"
y1="18"
x1="-18"
gradientTransform="matrix(0.77114848,0,0,0.77113937,-4.4090973,2.5859051)"
gradientUnits="userSpaceOnUse"
id="linearGradient3898"
xlink:href="#linearGradient3836-9-3" />
<linearGradient
xlink:href="#linearGradient3815"
id="linearGradient3978"
gradientUnits="userSpaceOnUse"
x1="-15"
y1="37"
x2="-19"
y2="37"
gradientTransform="rotate(135.18861,5.7426909,37.969029)" />
<linearGradient
xlink:href="#linearGradient17"
id="linearGradient3898-0"
x1="37.429146"
y1="41.590584"
x2="24.483221"
y2="4.9104676"
gradientUnits="userSpaceOnUse" />
<linearGradient
id="linearGradient17">
<stop
style="stop-color:#cdd6f4;stop-opacity:1;"
offset="0"
id="stop16" />
<stop
style="stop-color:#cdd6f4;stop-opacity:0"
offset="1"
id="stop17" />
</linearGradient>
<linearGradient
xlink:href="#linearGradient17"
id="linearGradient3856-9"
x1="22.84341"
y1="4.8241611"
x2="30.783579"
y2="28.644661"
gradientUnits="userSpaceOnUse" />
<linearGradient
id="linearGradient2">
<stop
style="stop-color:#6cd163;stop-opacity:1;"
offset="0"
id="stop1" />
<stop
style="stop-color:#a6e3a1;stop-opacity:1;"
offset="1"
id="stop2" />
</linearGradient>
<marker
style="overflow:visible"
id="Arrow2_Fnone_Sblack"
refX="0"
refY="0"
orient="auto"
markerWidth="8"
markerHeight="4"
viewBox="0 0 7.7 5.6"
preserveAspectRatio="xMidYMid">
<path
transform="scale(0.7)"
d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
style="fill:#11111b;fill-rule:evenodd;stroke:none"
id="path299" />
</marker>
<marker
style="overflow:visible"
id="marker1"
refX="0"
refY="0"
orient="auto"
markerWidth="8"
markerHeight="4"
viewBox="0 0 7.7 5.6"
preserveAspectRatio="xMidYMid">
<path
transform="scale(0.7)"
d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
style="fill:#11111b;fill-rule:evenodd;stroke:none"
id="path1-1" />
</marker>
<marker
style="overflow:visible"
id="Arrow2-9_Fnone_Sblack"
refX="0"
refY="0"
orient="auto"
markerWidth="8"
markerHeight="4"
viewBox="0 0 7.7 5.6"
preserveAspectRatio="xMidYMid">
<path
transform="scale(0.7)"
d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
style="fill:#11111b;fill-rule:evenodd;stroke:none"
id="path302" />
</marker>
<marker
style="overflow:visible"
id="marker2"
refX="0"
refY="0"
orient="auto"
markerWidth="8"
markerHeight="4"
viewBox="0 0 7.7 5.6"
preserveAspectRatio="xMidYMid">
<path
transform="scale(0.7)"
d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
style="fill:#11111b;fill-rule:evenodd;stroke:none"
id="path2" />
</marker>
<marker
style="overflow:visible"
id="marker3"
refX="0"
refY="0"
orient="auto"
markerWidth="8"
markerHeight="4"
viewBox="0 0 7.7 5.6"
preserveAspectRatio="xMidYMid">
<path
transform="scale(0.7)"
d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
style="fill:#11111b;fill-rule:evenodd;stroke:none"
id="path3" />
</marker>
<marker
style="overflow:visible"
id="marker4"
refX="0"
refY="0"
orient="auto"
markerWidth="8"
markerHeight="4"
viewBox="0 0 7.7 5.6"
preserveAspectRatio="xMidYMid">
<path
transform="scale(0.7)"
d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
style="fill:#11111b;fill-rule:evenodd;stroke:none"
id="path4" />
</marker>
<marker
style="overflow:visible"
id="Arrow2-1_Fnone_Sblack"
refX="0"
refY="0"
orient="auto"
markerWidth="8"
markerHeight="4"
viewBox="0 0 7.7 5.6"
preserveAspectRatio="xMidYMid">
<path
transform="scale(0.7)"
d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
style="fill:#11111b;fill-rule:evenodd;stroke:none"
id="path305" />
</marker>
<marker
style="overflow:visible"
id="marker5"
refX="0"
refY="0"
orient="auto"
markerWidth="8"
markerHeight="4"
viewBox="0 0 7.7 5.6"
preserveAspectRatio="xMidYMid">
<path
transform="scale(0.7)"
d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
style="fill:#11111b;fill-rule:evenodd;stroke:none"
id="path5-8" />
</marker>
<marker
style="overflow:visible"
id="Arrow2-9-1_Fnone_Sblack"
refX="0"
refY="0"
orient="auto"
markerWidth="8"
markerHeight="4"
viewBox="0 0 7.7 5.6"
preserveAspectRatio="xMidYMid">
<path
transform="scale(0.7)"
d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
style="fill:#11111b;fill-rule:evenodd;stroke:none"
id="path308" />
</marker>
<marker
style="overflow:visible"
id="marker6"
refX="0"
refY="0"
orient="auto"
markerWidth="8"
markerHeight="4"
viewBox="0 0 7.7 5.6"
preserveAspectRatio="xMidYMid">
<path
transform="scale(0.7)"
d="M -2,-4 9,0 -2,4 c 2,-2.33 2,-5.66 0,-8 z"
style="fill:#11111b;fill-rule:evenodd;stroke:none"
id="path6-1" />
</marker>
</defs>
<metadata
id="metadata2874">
<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>[maxwxyz]</dc:title>
</cc:Agent>
</dc:creator>
<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_CreateArc.svg</dc:identifier>
<dc:rights>
<cc:Agent>
<dc:title>FreeCAD LGPL2+</dc:title>
</cc:Agent>
</dc:rights>
<dc:date>2023-12-19</dc:date>
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer3"
style="display:inline">
<g
id="g2526"
transform="matrix(1.1212306,0,0,1.2065378,-5.1041043,-4.481143)"
style="stroke-width:0.85977">
<path
id="path25"
style="color:#11111b;fill:#7f849c;stroke:#1e1e2e;stroke-width:0.85976956;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;paint-order:normal"
d="m 12.126258,6.6634769 -2.9073122,5.6689841 6.1003022,0.394984 c 0.66438,0.308946 1.359375,0.628327 2.112983,0.963177 3.504354,1.557086 7.734256,3.266075 10.873237,3.870514 3.429766,0.660431 7.037597,0.660431 10.467363,0 3.138981,-0.604439 7.3654,-2.313428 10.869753,-3.870514 0.584145,-0.259553 1.112878,-0.503053 1.639173,-0.74626 l 1.120072,2.18374 5.081262,-6.1821386 -7.988572,0.5163923 0.999878,1.9490173 c -0.498555,0.230422 -0.996087,0.461914 -1.548592,0.707409 -3.457219,1.536142 -7.680754,3.209383 -10.50046,3.752343 -3.209237,0.617966 -6.606639,0.617965 -9.815875,0 -2.819706,-0.54296 -7.039757,-2.216201 -10.496976,-3.752343 -0.8695,-0.386345 -1.692615,-0.762269 -2.436985,-1.110487 z" />
<path
id="path18"
style="color:#11111b;fill:#7f849c;stroke:#1e1e2e;stroke-width:0.85976956;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;paint-order:normal"
d="m 11.220445,16.776025 -1.275107,6.238797 5.734493,-1.207614 c 3.70425,0.750657 8.71396,1.759127 12.625637,2.512354 3.42977,0.660432 7.037593,0.660432 10.467363,0 3.405734,-0.655804 8.196336,-1.616823 11.883567,-2.361807 l 0.4651,2.284106 6.560175,-4.589255 -7.831797,-1.651161 0.463358,2.271155 c -3.68587,0.744519 -8.475836,1.705401 -11.867889,2.35857 -3.20924,0.617966 -6.606636,0.617966 -9.815875,0 -3.909644,-0.752836 -8.932489,-1.766341 -12.632604,-2.515592 z" />
<path
id="path32"
style="color:#11111b;fill:#7f849c;stroke:#1e1e2e;stroke-width:0.85976956;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;paint-order:normal"
d="m 10.563731,27.052071 v 6.368299 l 5.361715,-2.324575 h 30.376083 4.079641 v 2.324575 l 7.345793,-3.184149 -7.345793,-3.18415 v 2.324575 H 46.301529 15.925446 Z" />
<path
id="path46"
style="color:#11111b;fill:#7f849c;stroke:#1e1e2e;stroke-width:0.85976956;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;paint-order:normal"
d="m 33.538278,42.417576 c -1.759218,0 -3.517925,0.163514 -5.23281,0.493729 -3.138984,0.604439 -7.368879,2.313426 -10.873237,3.870515 -0.753608,0.334849 -1.448602,0.654229 -2.112983,0.963176 l -6.1003022,0.394984 2.9073122,5.667365 3.569251,-4.34158 c 0.744582,-0.348323 1.567173,-0.725623 2.436985,-1.112105 3.457223,-1.536146 7.677266,-3.209384 10.496976,-3.752344 3.209239,-0.617965 6.606635,-0.617965 9.815875,0 2.81971,0.54296 7.043237,2.216198 10.50046,3.752344 0.55226,0.245385 1.042184,0.472865 1.548592,0.70579 l -0.999878,1.950635 7.988572,0.518011 -5.081262,-6.186995 -1.121814,2.186978 C 50.7471,47.282577 50.226228,47.04115 49.642584,46.78182 46.138227,45.224731 41.911815,43.515744 38.772831,42.911305 37.057946,42.58109 35.297497,42.417576 33.538278,42.417576 Z" />
<path
id="path39"
style="color:#11111b;fill:#7f849c;stroke:#1e1e2e;stroke-width:0.85976956;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;paint-order:normal"
d="m 33.538278,35.655912 c -1.759216,0 -3.517927,0.16675 -5.23281,0.496967 -4.049941,0.77985 -9.134874,1.804931 -12.625637,2.512354 l -5.734493,-1.207614 1.275107,6.240416 4.778163,-3.342791 c 3.486366,-0.707142 8.586019,-1.736724 12.630862,-2.515591 3.209236,-0.617968 6.606638,-0.617968 9.815875,0 3.542719,0.68218 8.147619,1.607744 11.867889,2.360188 l -0.463358,2.271155 7.831797,-1.651161 -6.560175,-4.589255 -0.4651,2.284106 c -3.720986,-0.75217 -8.327244,-1.677008 -11.883567,-2.361807 -1.714883,-0.330217 -3.475335,-0.496967 -5.234553,-0.496967 z" />
</g>
<rect
style="display:inline;fill:#f2cdcd;stroke:#4f1414;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:normal"
id="rect1"
width="13.030112"
height="55.426052"
x="25.484943"
y="4.286974" />
<path
style="display:inline;fill:#d76363;stroke:#f2cdcd;stroke-width:1.94434;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:normal"
id="rect2"
width="12.605663"
height="54.147766"
x="24.55995"
y="4.6391425"
d="m 26.505859,6.5839844 h 8.714844 V 56.841797 h -8.714844 z"
transform="matrix(1.0336713,0,0,1.0236074,0.09802965,-0.46168652)" />
</g>
</svg>