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

419 lines
14 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="64px"
height="64px"
id="svg2860"
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="defs2862">
<linearGradient
id="linearGradient4">
<stop
style="stop-color:#0846b3;stop-opacity:1;"
offset="0"
id="stop3" />
<stop
style="stop-color:#307bf7;stop-opacity:1;"
offset="1"
id="stop4" />
</linearGradient>
<linearGradient
id="linearGradient2">
<stop
style="stop-color:#307bf7;stop-opacity:1;"
offset="0"
id="stop1" />
<stop
style="stop-color:#89b4fa;stop-opacity:1;"
offset="1"
id="stop2" />
</linearGradient>
<linearGradient
id="linearGradient4362">
<stop
id="stop4364"
offset="0"
style="stop-color:#f9d791;stop-opacity:1;" />
<stop
id="stop4366"
offset="1"
style="stop-color:#f8ca69;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient4356">
<stop
id="stop4358"
offset="0"
style="stop-color:#11111b;stop-opacity:1;" />
<stop
id="stop4360"
offset="1"
style="stop-color:#11111b;stop-opacity:0;" />
</linearGradient>
<linearGradient
id="linearGradient3786">
<stop
style="stop-color:#f9d791;stop-opacity:1;"
offset="0"
id="stop3788" />
<stop
style="stop-color:#f8ca69;stop-opacity:1;"
offset="1"
id="stop3790" />
</linearGradient>
<radialGradient
xlink:href="#linearGradient3377"
id="radialGradient3692"
cx="45.883327"
cy="28.869568"
fx="45.883327"
fy="28.869568"
r="19.467436"
gradientUnits="userSpaceOnUse" />
<radialGradient
xlink:href="#linearGradient3377"
id="radialGradient3703"
gradientUnits="userSpaceOnUse"
cx="135.38333"
cy="97.369568"
fx="135.38333"
fy="97.369568"
r="19.467436"
gradientTransform="matrix(0.97435,0.2250379,-0.4623105,2.0016728,48.487554,-127.99883)" />
<linearGradient
id="linearGradient3377">
<stop
id="stop3379"
offset="0"
style="stop-color:#f9d791;stop-opacity:1;" />
<stop
id="stop3381"
offset="1"
style="stop-color:#f8ca69;stop-opacity:1;" />
</linearGradient>
<radialGradient
xlink:href="#linearGradient3786"
id="radialGradient3705"
gradientUnits="userSpaceOnUse"
cx="148.88333"
cy="81.869568"
fx="148.88333"
fy="81.869568"
r="19.467436"
gradientTransform="matrix(1.3852588,-0.05136783,0.03705629,0.9993132,-60.392403,7.7040438)" />
<radialGradient
xlink:href="#linearGradient3377-1"
id="radialGradient3713"
gradientUnits="userSpaceOnUse"
cx="271.96695"
cy="103.54697"
fx="271.96695"
fy="103.54697"
r="19.467436"
gradientTransform="matrix(0.9271142,0.3747789,-0.7448337,1.8425422,97.364191,-190.34757)" />
<linearGradient
id="linearGradient3377-1">
<stop
id="stop3379-5"
offset="0"
style="stop-color:#c8ff43;stop-opacity:1;" />
<stop
id="stop3381-9"
offset="1"
style="stop-color:#04aa00;stop-opacity:1;" />
</linearGradient>
<radialGradient
xlink:href="#linearGradient3864"
id="radialGradient3784"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.7037846,0.9728679,-1.3005398,0.9408264,121.13694,-67.560812)"
cx="109.47948"
cy="-6.229341"
fx="109.47948"
fy="-6.229341"
r="19.571428" />
<linearGradient
id="linearGradient3864">
<stop
id="stop3866"
offset="0"
style="stop-color:#89b4fa;stop-opacity:1;" />
<stop
id="stop3868"
offset="1"
style="stop-color:#0841a6;stop-opacity:1;" />
</linearGradient>
<radialGradient
r="19.571428"
fy="-6.229341"
fx="109.47948"
cy="-6.229341"
cx="109.47948"
gradientTransform="matrix(0.7037846,0.9728679,-1.3005398,0.9408264,121.13694,-67.560812)"
gradientUnits="userSpaceOnUse"
id="radialGradient3009"
xlink:href="#linearGradient3864" />
<linearGradient
xlink:href="#linearGradient4362"
id="linearGradient3784"
x1="259.61429"
y1="99.250221"
x2="317.44043"
y2="99.250221"
gradientUnits="userSpaceOnUse" />
<linearGradient
xlink:href="#linearGradient3377"
id="linearGradient3792"
gradientUnits="userSpaceOnUse"
x1="276.57507"
y1="93.57151"
x2="298.46048"
y2="118.55784" />
<radialGradient
r="22"
fy="91.956673"
fx="225.93762"
cy="91.956673"
cx="225.93762"
gradientTransform="matrix(-1.4090915,3.8636359,-0.97565325,-0.35582669,437.08461,-816.22007)"
gradientUnits="userSpaceOnUse"
id="radialGradient3062"
xlink:href="#linearGradient3011" />
<linearGradient
id="linearGradient3011">
<stop
id="stop3013"
offset="0"
style="stop-color:#f9e2af;stop-opacity:1" />
<stop
id="stop3015"
offset="1"
style="stop-color:#bc8009;stop-opacity:1" />
</linearGradient>
<radialGradient
r="22"
fy="91.956673"
fx="225.93762"
cy="91.956673"
cx="225.93762"
gradientTransform="matrix(-1.4090915,3.8636359,-0.97565325,-0.35582669,355.44592,-815.80833)"
gradientUnits="userSpaceOnUse"
id="radialGradient3086"
xlink:href="#linearGradient3011" />
<linearGradient
gradientTransform="matrix(0.82352937,0,0,0.77272731,68.529413,5.8636358)"
xlink:href="#linearGradient3767"
id="linearGradient3773"
x1="22.116516"
y1="55.717518"
x2="17.328547"
y2="21.31134"
gradientUnits="userSpaceOnUse" />
<linearGradient
id="linearGradient3767">
<stop
style="stop-color:#f8c459;stop-opacity:1"
offset="0"
id="stop3769" />
<stop
style="stop-color:#f9e2af;stop-opacity:1"
offset="1"
id="stop3771" />
</linearGradient>
<linearGradient
gradientTransform="matrix(0.79109028,0,0,0.78516507,69.03755,5.1139279)"
xlink:href="#linearGradient3777"
id="linearGradient3783"
x1="53.896763"
y1="51.179787"
x2="47.502235"
y2="21.83742"
gradientUnits="userSpaceOnUse" />
<linearGradient
id="linearGradient3777">
<stop
style="stop-color:#bc8009;stop-opacity:1"
offset="0"
id="stop3779" />
<stop
style="stop-color:#f8c459;stop-opacity:1"
offset="1"
id="stop3781" />
</linearGradient>
<radialGradient
xlink:href="#linearGradient3011"
id="radialGradient3174"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.4090915,3.8636359,-0.97565325,-0.35582669,355.44592,-815.80833)"
cx="225.93762"
cy="91.956673"
fx="225.93762"
fy="91.956673"
r="22" />
<radialGradient
xlink:href="#linearGradient3011-6"
id="radialGradient3174-3"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.4090915,3.8636359,-0.97565325,-0.35582669,355.44592,-815.80833)"
cx="225.93762"
cy="91.956673"
fx="225.93762"
fy="91.956673"
r="22" />
<linearGradient
id="linearGradient3011-6">
<stop
id="stop3013-7"
offset="0"
style="stop-color:#307bf7;stop-opacity:1;" />
<stop
id="stop3015-5"
offset="1"
style="stop-color:#0846b3;stop-opacity:1;" />
</linearGradient>
<linearGradient
xlink:href="#linearGradient4"
id="linearGradient3220"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.79109028,0,0,0.78516507,69.03755,5.1139279)"
x1="53.896763"
y1="51.179787"
x2="47.502235"
y2="21.83742" />
<linearGradient
xlink:href="#linearGradient2"
id="linearGradient3222"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.82352937,0,0,0.77272731,68.529413,5.8636358)"
x1="22.116516"
y1="55.717518"
x2="17.328547"
y2="21.31134" />
</defs>
<metadata
id="metadata2865">
<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:title>Part_CreatePrimitives</dc:title>
<dc:date>2011-10-21</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/Part/Gui/Resources/icons/Part_CreatePrimitives.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="g3163"
transform="translate(-62,7.999998)">
<path
id="path2993"
d="m 71,19 28,5 18,-7 -23.84947,-3.42198 z"
style="fill:#89b4fa;stroke:#052459;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" />
<path
id="path2995"
d="m 117,17 0,28 -18,8 0,-30 z"
style="fill:url(#linearGradient3220);fill-opacity:1;stroke:#052459;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" />
<path
style="fill:url(#linearGradient3222);fill-opacity:1;fill-rule:evenodd;stroke:#052459;stroke-width:1.99999988;stroke-linecap:butt;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"
d="m 71,19 28,4 0,30.000002 -28,-4.636365 z"
id="path3825" />
<path
id="path3765"
d="M 72.993,21.368254 73,46.6 l 24,4 -0.007,-25.843 z"
style="display:inline;fill:none;stroke:#89b4fa;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
id="path3775"
d="m 101,24.5 v 25.6 l 14,-6.4 V 19.9 Z"
style="display:inline;fill:none;stroke:#89b4fa;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</g>
<g
transform="translate(54,-0.99999998)"
id="g3176"
style="display:inline">
<g
transform="matrix(0.47285104,0,0,0.47285104,-15.096853,1.7984977)"
id="g3170">
<path
style="fill:url(#radialGradient3174-3);fill-opacity:1;stroke:#052459;stroke-width:4.22966;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
d="m -50.551114,4.6558051 -21.14831,50.7559419 c 0,8 42.296619,8 42.296619,0 z"
id="path3039" />
<path
style="fill:none;stroke:#89b4fa;stroke-width:4.22966;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m -50.551114,15.22996 -16.284198,39.547338 c 6.767459,2.74928 26.858352,2.74928 33.625811,0 z"
id="path3817" />
</g>
</g>
<g
id="g4034"
transform="matrix(0.87840585,0,0,0.891343,-70.633978,2.8453912)"
style="display:inline">
<path
transform="matrix(1.6713772,0,0,1.6527248,-51.99945,-69.292304)"
d="m 92,72 c -10e-7,-0.802214 1.081369,-0.395785 1.333333,-10e-7 0.682808,1.072551 -0.300296,2.337841 -1.333331,2.666667 C 90.152144,75.254859 88.373911,73.762011 88,72.000003 c -0.548729,-2.585818 1.511717,-4.937312 3.999996,-5.333336 3.316485,-0.527837 6.257409,2.119018 6.66667,5.333328 0.515013,4.044883 -2.726256,7.581912 -6.666661,8.000004 -4.772357,0.506367 -8.90893,-3.333424 -9.333337,-7.999993 -0.478081,-5.256727 3.578737,-9.884369 8.712558,-10.598849"
id="path3224"
style="fill:none;stroke:#1e1e2e;stroke-width:4.07985;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
<path
transform="matrix(1.6713772,0,0,1.6527248,-51.99945,-69.292304)"
d="m 92,72 c -10e-7,-0.802214 1.081369,-0.395785 1.333333,-10e-7 0.682808,1.072551 -0.300296,2.337841 -1.333331,2.666667 C 90.152144,75.254859 88.373911,73.762011 88,72.000003 c -0.548729,-2.585818 1.511717,-4.937312 3.999996,-5.333336 3.316485,-0.527837 6.257409,2.119018 6.66667,5.333328 0.515013,4.044883 -2.726256,7.581912 -6.666661,8.000004 -4.772357,0.506367 -8.90893,-3.333424 -9.333337,-7.999993 -0.478081,-5.256727 3.578737,-9.884369 8.712558,-10.598849"
id="path3224-3"
style="fill:none;stroke:#6c7086;stroke-width:1.35995;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
</g>
<path
style="fill:none;stroke:#1e1e2e;stroke-width:6;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
d="m 27,15 30,0"
id="path4012" />
<path
style="fill:none;stroke:#6c7086;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
d="m 27,15 30,0"
id="path4012-5" />
<circle
style="display:inline;fill:none;stroke:#1e1e2e;stroke-width:7.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.5;stroke-dasharray:none;stroke-dashoffset:20.4;stroke-opacity:1"
id="path4032"
transform="matrix(0.8,0,0,0.8,-53,11)"
cx="125"
cy="45"
r="15" />
<circle
style="display:inline;fill:none;stroke:#6c7086;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.5;stroke-dasharray:none;stroke-dashoffset:20.4;stroke-opacity:1"
id="path4032-6"
transform="matrix(0.8,0,0,0.8,-53,11)"
cx="125"
cy="45"
r="15" />
</g>
</svg>