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

283 lines
9.9 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="64"
height="64"
id="svg11300"
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="defs3">
<linearGradient
id="linearGradient6">
<stop
style="stop-color:#6c7086;stop-opacity:1;"
offset="0"
id="stop6" />
<stop
style="stop-color:#7f849c;stop-opacity:1;"
offset="1"
id="stop7" />
</linearGradient>
<linearGradient
id="linearGradient3">
<stop
style="stop-color:#313244;stop-opacity:1;"
offset="0"
id="stop3" />
<stop
style="stop-color:#45475a;stop-opacity:1;"
offset="1"
id="stop4" />
</linearGradient>
<linearGradient
id="linearGradient1">
<stop
style="stop-color:#d76363;stop-opacity:1;"
offset="0"
id="stop1" />
<stop
style="stop-color:#912424;stop-opacity:1;"
offset="1"
id="stop2" />
</linearGradient>
<linearGradient
id="linearGradient6347">
<stop
style="stop-color:#359b2e;stop-opacity:1;"
offset="0"
id="stop6349" />
<stop
style="stop-color:#2d5903;stop-opacity:1;"
offset="1"
id="stop6351" />
</linearGradient>
<linearGradient
id="linearGradient9896">
<stop
id="stop9898"
offset="0"
style="stop-color:#cecece;stop-opacity:1;" />
<stop
id="stop9900"
offset="1.0000000"
style="stop-color:#9e9e9e;stop-opacity:1.0000000;" />
</linearGradient>
<linearGradient
id="linearGradient9888">
<stop
id="stop9890"
offset="0"
style="stop-color:#cdd6f4;stop-opacity:1;" />
<stop
id="stop9892"
offset="1"
style="stop-color:#cdd6f4;stop-opacity:0;" />
</linearGradient>
<linearGradient
id="linearGradient9868">
<stop
style="stop-color:#4e4e4e;stop-opacity:1.0000000;"
offset="0.0000000"
id="stop9870" />
<stop
style="stop-color:#616161;stop-opacity:0.0000000;"
offset="1.0000000"
id="stop9872" />
</linearGradient>
<linearGradient
id="linearGradient9854">
<stop
id="stop9856"
offset="0.0000000"
style="stop-color:#4e4e4e;stop-opacity:1.0000000;" />
<stop
id="stop9858"
offset="1.0000000"
style="stop-color:#ababab;stop-opacity:1.0000000;" />
</linearGradient>
<linearGradient
id="linearGradient9830">
<stop
id="stop9832"
offset="0.0000000"
style="stop-color:#2e2f41;stop-opacity:1.0000000;" />
<stop
id="stop9834"
offset="1.0000000"
style="stop-color:#181818;stop-opacity:1.0000000;" />
</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>
<linearGradient
id="linearGradient8650">
<stop
style="stop-color:#cdd6f4;stop-opacity:1;"
offset="0"
id="stop8652" />
<stop
style="stop-color:#cdd6f4;stop-opacity:0;"
offset="1"
id="stop8654" />
</linearGradient>
<radialGradient
xlink:href="#linearGradient8650"
id="radialGradient8656"
cx="19.701141"
cy="2.8969381"
fx="19.701141"
fy="2.8969381"
r="17.171415"
gradientTransform="matrix(1.253442,0,0,0.9539,-15.47908,11.27663)"
gradientUnits="userSpaceOnUse" />
<radialGradient
r="15.644737"
fy="36.421127"
fx="24.837126"
cy="36.421127"
cx="24.837126"
gradientTransform="matrix(1,0,0,0.536723,0,16.87306)"
gradientUnits="userSpaceOnUse"
id="radialGradient9826"
xlink:href="#linearGradient8662" />
<linearGradient
gradientUnits="userSpaceOnUse"
y2="43.449947"
x2="19.755548"
y1="13.663074"
x1="8.7600641"
id="linearGradient9894"
xlink:href="#linearGradient9888" />
<linearGradient
xlink:href="#linearGradient1"
id="linearGradient2"
x1="1.2317981"
y1="23.916124"
x2="22.387724"
y2="23.916124"
gradientUnits="userSpaceOnUse" />
<linearGradient
xlink:href="#linearGradient3"
id="linearGradient4"
x1="1.9780137"
y1="23.499692"
x2="21.964504"
y2="23.499692"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,0.98498418,0.06422453,0.40647188)" />
<linearGradient
xlink:href="#linearGradient6"
id="linearGradient5"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.89570037,0,0,0.92040496,1.8260272,1.8689917)"
x1="0.98090708"
y1="23.540224"
x2="33.976457"
y2="23.540224" />
<linearGradient
xlink:href="#linearGradient1"
id="linearGradient2-2"
x1="1.2317981"
y1="23.916124"
x2="22.387724"
y2="23.916124"
gradientUnits="userSpaceOnUse" />
</defs>
<metadata
id="metadata4">
<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>Jakub Steiner</dc:title>
</cc:Agent>
</dc:creator>
<dc:source>http://jimmac.musichall.cz</dc:source>
<cc:license
rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" />
<dc:subject>
<rdf:Bag>
<rdf:li>log out</rdf:li>
<rdf:li>logout</rdf:li>
<rdf:li>exit</rdf:li>
</rdf:Bag>
</dc:subject>
</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"
transform="matrix(1.1580723,0,0,1.2384693,4.2349406,2.8394652)">
<rect
ry="0.70693761"
rx="0.70734841"
y="2.5795701"
x="1.4956825"
height="41.93211"
width="32.006554"
id="rect9828"
style="color:#11111b;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#7f849c;fill-opacity:1;fill-rule:evenodd;stroke:#1e1e2e;stroke-width:1.6701;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none" />
<path
ry="0.70693761"
rx="0.70734841"
y="2.5795701"
x="1.4956825"
height="41.93211"
width="32.006554"
id="rect3"
style="color:#11111b;font-variation-settings:normal;display:inline;overflow:visible;visibility:visible;opacity:1;vector-effect:none;fill:url(#linearGradient5);fill-opacity:1;fill-rule:evenodd;stroke:#7f849c;stroke-width:1.67001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;marker:none;marker-start:none;marker-mid:none;marker-end:none;stop-color:#11111b;stop-opacity:1"
d="M 3.1660156,4.25 H 31.832031 V 42.841797 H 3.1660156 Z" />
<path
id="path9852"
d="M 2.0810711,43.691463 2.0422381,3.4151309 21.984535,3.4586615 22.028725,32.928852 Z"
style="color:#11111b;display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#linearGradient4);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.992951;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none" />
<g
id="g6455"
transform="matrix(-1,0,0,1,48.424963,-0.047335)"
style="display:inline">
<path
id="path8643"
d="m 1.9700714,17.361256 v 12.578676 h 7.8385542 v 5.737371 L 21.887797,23.628822 9.7367244,11.508624 v 5.855834 z"
style="color:#11111b;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#f2cdcd;fill-opacity:1;fill-rule:evenodd;stroke:#4c1313;stroke-width:1.6699;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none" />
<path
id="path2"
d="m 11.40625,15.53125 8.117187,8.097656 -8.044921,8.025391 V 28.269531 H 3.640625 V 19.03125 l 7.765625,0.0039 z"
style="color:#11111b;display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#linearGradient2);fill-opacity:1;fill-rule:evenodd;stroke:#f2cdcd;stroke-width:1.67001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;font-variation-settings:normal;vector-effect:none;-inkscape-stroke:none;stop-color:#11111b;stop-opacity:1" />
</g>
</g>
</svg>