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

511 lines
15 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
y2="44.919998"
x2="38.93103"
y1="23.159998"
x1="43.758617"
gradientTransform="matrix(-1.4481105,0,0,1.4682264,91.372525,-30.982541)"
gradientUnits="userSpaceOnUse"
id="linearGradient3012"
xlink:href="#linearGradient3895" />
</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.99994991,0,0,0.92311013,0.00157172,17.229591)">
<path
style="fill:#89b4fa;fill-opacity:1;fill-rule:evenodd;stroke:#052459;stroke-width:2.08168069;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 34.996089,-8.959147 V 5.0183684 h 25.96612 V 26.983036 H 34.996089 V 40.960551 L 3.0377899,16.000701 Z"
id="path3343" />
<path
style="fill:url(#linearGradient3012);fill-opacity:1;fill-rule:evenodd;stroke:#89b4fa;stroke-width:2.08168069;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 32.914062,-4.6914062 V 7.0996094 H 58.880859 V 24.900391 H 32.914062 V 36.693359 L 6.4199219,16 Z"
id="path1" />
</g>
</svg>