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

568 lines
18 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="64"
height="64"
id="svg1307"
version="1.0"
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="defs1309">
<linearGradient
id="linearGradient4191">
<stop
style="stop-color:#5190f8;stop-opacity:1;"
offset="0"
id="stop4193" />
<stop
style="stop-color:#5190f8;stop-opacity:0;"
offset="1"
id="stop4195" />
</linearGradient>
<linearGradient
id="linearGradient4150">
<stop
style="stop-color:#e9aaaa;stop-opacity:0.39130434;"
offset="0"
id="stop4152" />
<stop
style="stop-color:#e9aaaa;stop-opacity:1;"
offset="1"
id="stop4154" />
</linearGradient>
<linearGradient
id="linearGradient3867">
<stop
style="stop-color:#61c658;stop-opacity:1;"
offset="0"
id="stop3869" />
<stop
style="stop-color:#89da82;stop-opacity:0.99137932;"
offset="1"
id="stop3871" />
</linearGradient>
<linearGradient
id="linearGradient2817">
<stop
style="stop-color:#11111b;stop-opacity:1;"
offset="0"
id="stop2819" />
<stop
style="stop-color:#cdd6f4;stop-opacity:0.48453608;"
offset="1"
id="stop2821" />
</linearGradient>
<linearGradient
id="linearGradient2584">
<stop
style="stop-color:#11111b;stop-opacity:1;"
offset="0"
id="stop2586" />
<stop
style="stop-color:#cdd6f4;stop-opacity:0;"
offset="1"
id="stop2588" />
</linearGradient>
<linearGradient
id="linearGradient2697">
<stop
id="stop2699"
offset="0"
style="stop-color:#585b70" />
<stop
id="stop2701"
offset="1"
style="stop-color:#313244" />
</linearGradient>
<linearGradient
id="linearGradient2679">
<stop
id="stop2681"
offset="0"
style="stop-color:#aab2cd;stop-opacity:1" />
<stop
id="stop2683"
offset="1"
style="stop-color:#676a80;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient3081">
<stop
style="stop-color:#cdd6f4;stop-opacity:1;"
offset="0"
id="stop3083" />
<stop
style="stop-color:#cdd6f4;stop-opacity:0;"
offset="1"
id="stop3085" />
</linearGradient>
<linearGradient
id="linearGradient8662">
<stop
style="stop-color:#11111b;stop-opacity:1;"
offset="0"
id="stop8664" />
<stop
style="stop-color:#11111b;stop-opacity:0;"
offset="1"
id="stop8666" />
</linearGradient>
<radialGradient
xlink:href="#linearGradient2679"
id="radialGradient2112"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-42.61165,283.7891)"
cx="169.77171"
cy="100.20107"
fx="169.77171"
fy="100.20107"
r="11" />
<linearGradient
xlink:href="#linearGradient2697"
id="linearGradient2122"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-12,0)"
x1="169"
y1="110.33805"
x2="169"
y2="93.204849" />
<linearGradient
xlink:href="#linearGradient3081"
id="linearGradient2124"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(133,70.99999)"
x1="15.089521"
y1="15.291994"
x2="14"
y2="52.510574" />
<radialGradient
xlink:href="#linearGradient8662"
id="radialGradient2137"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.536723,0,16.87306)"
cx="24.837126"
cy="36.421127"
fx="24.837126"
fy="36.421127"
r="15.644737" />
<radialGradient
xlink:href="#linearGradient8662"
id="radialGradient2139"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.536723,0,16.87306)"
cx="24.837126"
cy="36.421127"
fx="24.837126"
fy="36.421127"
r="15.644737" />
<radialGradient
xlink:href="#linearGradient8662"
id="radialGradient2725"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.536723,0,16.87306)"
cx="24.837126"
cy="36.421127"
fx="24.837126"
fy="36.421127"
r="15.644737" />
<radialGradient
xlink:href="#linearGradient8662"
id="radialGradient2727"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.536723,0,16.87306)"
cx="24.837126"
cy="36.421127"
fx="24.837126"
fy="36.421127"
r="15.644737" />
<radialGradient
xlink:href="#linearGradient2679"
id="radialGradient2729"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-42.61165,283.7891)"
cx="169.77171"
cy="100.20107"
fx="169.77171"
fy="100.20107"
r="11" />
<linearGradient
xlink:href="#linearGradient2697"
id="linearGradient2731"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-12,0)"
x1="169"
y1="110.33805"
x2="169"
y2="93.204849" />
<linearGradient
xlink:href="#linearGradient3081"
id="linearGradient2733"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(133,70.99999)"
x1="15.089521"
y1="15.291994"
x2="14"
y2="52.510574" />
<radialGradient
xlink:href="#linearGradient8662"
id="radialGradient2745"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.536723,0,16.87306)"
cx="24.837126"
cy="36.421127"
fx="24.837126"
fy="36.421127"
r="15.644737" />
<radialGradient
xlink:href="#linearGradient8662"
id="radialGradient2747"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.536723,0,16.87306)"
cx="24.837126"
cy="36.421127"
fx="24.837126"
fy="36.421127"
r="15.644737" />
<radialGradient
xlink:href="#linearGradient2679"
id="radialGradient2749"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-42.61165,283.7891)"
cx="169.77171"
cy="100.20107"
fx="169.77171"
fy="100.20107"
r="11" />
<linearGradient
xlink:href="#linearGradient2697"
id="linearGradient2751"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-12,0)"
x1="169"
y1="110.33805"
x2="169"
y2="93.204849" />
<linearGradient
xlink:href="#linearGradient3081"
id="linearGradient2753"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(133,70.99999)"
x1="15.089521"
y1="15.291994"
x2="14"
y2="52.510574" />
<radialGradient
xlink:href="#linearGradient2679"
id="radialGradient2791"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-42.61165,283.7891)"
cx="169.77171"
cy="100.20107"
fx="169.77171"
fy="100.20107"
r="11" />
<linearGradient
xlink:href="#linearGradient2697"
id="linearGradient2793"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-12,0)"
x1="169"
y1="110.33805"
x2="169"
y2="93.204849" />
<linearGradient
xlink:href="#linearGradient2697"
id="linearGradient2795"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-12,0)"
x1="169"
y1="110.33805"
x2="169"
y2="93.204849" />
<linearGradient
xlink:href="#linearGradient3081"
id="linearGradient2797"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(133,70.99999)"
x1="15.089521"
y1="15.291994"
x2="14"
y2="52.510574" />
<linearGradient
xlink:href="#linearGradient3081"
id="linearGradient2800"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-4e-4,-0.09426)"
x1="15.089521"
y1="15.291994"
x2="14"
y2="52.510574" />
<linearGradient
xlink:href="#linearGradient2697"
id="linearGradient2803"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,1.004384,-145.0004,-71.4625)"
x1="169"
y1="110.33805"
x2="169"
y2="93.204849" />
<linearGradient
xlink:href="#linearGradient2697"
id="linearGradient2806"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-145.0004,-97.0943)"
x1="169"
y1="110.33805"
x2="169"
y2="93.204849" />
<radialGradient
xlink:href="#linearGradient2679"
id="radialGradient2809"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-175.6121,212.6949)"
cx="169.77171"
cy="100.20107"
fx="169.77171"
fy="100.20107"
r="11" />
<linearGradient
xlink:href="#linearGradient2817"
id="linearGradient2823"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.103262,0,0,1.054917,-163.1228,-76.31138)"
x1="174.83363"
y1="84.263489"
x2="174.74524"
y2="105.49083" />
<linearGradient
xlink:href="#linearGradient3081"
id="linearGradient2825"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-4e-4,-26.09426)"
x1="15.089521"
y1="15.291994"
x2="14"
y2="52.510574" />
<radialGradient
xlink:href="#linearGradient2679"
id="radialGradient2831"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-175.6121,186.6949)"
cx="169.77171"
cy="100.20107"
fx="169.77171"
fy="100.20107"
r="11" />
<linearGradient
xlink:href="#linearGradient2817"
id="linearGradient2858"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.103262,0,0,1.054917,-163.1228,-76.31138)"
x1="174.83363"
y1="84.263489"
x2="174.74524"
y2="105.49083" />
<radialGradient
xlink:href="#linearGradient2679"
id="radialGradient2860"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(3.562309e-6,-1.07205,1.992104,-1.250658e-6,-175.6121,212.6949)"
cx="169.77171"
cy="100.20107"
fx="169.77171"
fy="100.20107"
r="11" />
<linearGradient
xlink:href="#linearGradient2697"
id="linearGradient2862"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,1.004384,-145.0004,-71.4625)"
x1="169"
y1="110.33805"
x2="169"
y2="93.204849" />
<linearGradient
xlink:href="#linearGradient3081"
id="linearGradient2864"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-4e-4,-0.09426)"
x1="15.089521"
y1="15.291994"
x2="14"
y2="52.510574" />
<linearGradient
xlink:href="#linearGradient3081"
id="linearGradient3421"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(3.000198,0,0,1,-35.670225,-22.756043)"
x1="15.089521"
y1="15.291994"
x2="14"
y2="52.510574" />
<linearGradient
xlink:href="#linearGradient2697"
id="linearGradient3424"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(2.498884,0,0,1.004384,-383.7419,-95.062012)"
x1="169"
y1="110.33805"
x2="169"
y2="93.204849" />
<linearGradient
xlink:href="#linearGradient2817"
id="linearGradient3430"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(2.624525,0,0,1.054917,-407.89189,-96.394408)"
x1="174.83363"
y1="84.263489"
x2="174.74524"
y2="105.49083" />
<linearGradient
gradientTransform="matrix(0,-1.4500001,1.4705882,0,-15.05882,91.45)"
y2="36.079998"
x2="21.689653"
y1="29.279999"
x1="56.172409"
gradientUnits="userSpaceOnUse"
id="linearGradient3036"
xlink:href="#linearGradient3895" />
<linearGradient
id="linearGradient3895">
<stop
style="stop-color:#89b4fa;stop-opacity:1;"
offset="0"
id="stop3897" />
<stop
style="stop-color:#0846b3;stop-opacity:1;"
offset="1"
id="stop3899" />
</linearGradient>
<linearGradient
xlink:href="#linearGradient3895"
id="linearGradient3727"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0,1.4500001,1.4705882,0,-17.058821,-43.45)"
x1="23.758619"
y1="29.279999"
x2="54.103443"
y2="34.719997" />
<linearGradient
id="linearGradient3895-6">
<stop
style="stop-color:#89b4fa;stop-opacity:1;"
offset="0"
id="stop3897-7" />
<stop
style="stop-color:#0846b3;stop-opacity:1;"
offset="1"
id="stop3899-5" />
</linearGradient>
<linearGradient
xlink:href="#linearGradient3895-9"
id="linearGradient3727-2"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0,1.4500001,1.4705882,0,-15.058821,-43.45)"
x1="52.724133"
y1="28.599998"
x2="25.13793"
y2="34.040001" />
<linearGradient
id="linearGradient3895-9">
<stop
style="stop-color:#89b4fa;stop-opacity:1;"
offset="0"
id="stop3897-1" />
<stop
style="stop-color:#0846b3;stop-opacity:1;"
offset="1"
id="stop3899-2" />
</linearGradient>
<linearGradient
xlink:href="#linearGradient3895"
id="linearGradient3853"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.4445883,0,0,-1.3619439,-27.225209,74.585046)"
x1="38.241375"
y1="39.48"
x2="40.999996"
y2="22.48" />
<linearGradient
xlink:href="#linearGradient3895-9"
id="linearGradient3857"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.4445839,0,0,1.3619359,-27.22512,-42.579127)"
x1="38.241375"
y1="23.159998"
x2="41.689651"
y2="40.84" />
</defs>
<metadata
id="metadata1312">
<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 />
</cc:Agent>
</dc:creator>
<cc:license
rdf:resource="" />
<dc:subject>
<rdf:Bag />
</dc:subject>
<dc:contributor>
<cc:Agent>
<dc:title />
</cc:Agent>
</dc:contributor>
</cc:Work>
<cc:License
rdf:about="http://creativecommons.org/licenses/by-sa/2.0/">
<cc:permits
rdf:resource="http://web.resource.org/cc/Reproduction" />
<cc:permits
rdf:resource="http://web.resource.org/cc/Distribution" />
<cc:requires
rdf:resource="http://web.resource.org/cc/Notice" />
<cc:requires
rdf:resource="http://web.resource.org/cc/Attribution" />
<cc:permits
rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
<cc:requires
rdf:resource="http://web.resource.org/cc/ShareAlike" />
</cc:License>
</rdf:RDF>
</metadata>
<g
id="layer1"
style="display:inline"
transform="matrix(0.90000249,0,0,0.90000169,3.1999654,17.599988)">
<path
style="fill:#89b4fa;fill-opacity:1;fill-rule:evenodd;stroke:#052459;stroke-width:2.22191;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 35.333274,-12.889082 v 7.7779938 H 3.1109843 V 7.1111111 H 35.333274 V 14.889103 L 60.889037,1.0000115 Z"
id="path3343-0" />
<path
style="fill:#89b4fa;fill-opacity:1;fill-rule:evenodd;stroke:#052459;stroke-width:2.22189;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 35.333274,44.888818 V 38.222164 H 3.1109798 V 24.888855 H 35.333274 v -7.777998 l 25.555767,13.889095 z"
id="path3343" />
<path
style="fill:url(#linearGradient3857);fill-opacity:1;fill-rule:evenodd;stroke:#89b4fa;stroke-width:2.22222;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-variation-settings:normal;opacity:1;vector-effect:none;stroke-dashoffset:0;-inkscape-stroke:none;stop-color:#11111b;stop-opacity:1"
d="M 37.556641,-9.1503906 56.234375,1 37.556641,11.150391 V 4.8886719 H 5.3339844 V -2.8886719 H 37.556641 Z"
id="path3" />
<path
style="fill:url(#linearGradient3853);fill-opacity:1;fill-rule:evenodd;stroke:#89b4fa;stroke-width:2.22222;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-variation-settings:normal;opacity:1;vector-effect:none;stroke-dashoffset:0;-inkscape-stroke:none;stop-color:#11111b;stop-opacity:1"
d="M 37.556641,20.849609 56.234375,31 37.556641,41.150391 V 35.208984 L 5.3339844,35.949219 V 27.111328 H 37.556641 Z"
id="path5" />
</g>
</svg>