Files
create/icons/themed/accessories-text-editor.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

286 lines
10 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="linearGradient11">
<stop
style="stop-color:#d76363;stop-opacity:1;"
offset="0"
id="stop11" />
<stop
style="stop-color:#912424;stop-opacity:1;"
offset="1"
id="stop12" />
</linearGradient>
<linearGradient
id="linearGradient9">
<stop
style="stop-color:#f8c459;stop-opacity:1;"
offset="0"
id="stop9" />
<stop
style="stop-color:#bc8009;stop-opacity:1;"
offset="1"
id="stop10" />
</linearGradient>
<linearGradient
id="linearGradient5048">
<stop
style="stop-color:black;stop-opacity:0;"
offset="0"
id="stop5050" />
<stop
id="stop5056"
offset="0.5"
style="stop-color:black;stop-opacity:1;" />
<stop
style="stop-color:black;stop-opacity:0;"
offset="1"
id="stop5052" />
</linearGradient>
<linearGradient
id="linearGradient2994">
<stop
style="stop-color:#11111b;stop-opacity:1;"
offset="0"
id="stop2996" />
<stop
style="stop-color:#c9c9c9;stop-opacity:1;"
offset="1"
id="stop2998" />
</linearGradient>
<linearGradient
id="linearGradient2974">
<stop
style="stop-color:#c1c1c1;stop-opacity:1;"
offset="0"
id="stop2976" />
<stop
style="stop-color:#acacac;stop-opacity:1;"
offset="1"
id="stop2978" />
</linearGradient>
<linearGradient
id="linearGradient2966">
<stop
style="stop-color:#ffd1d1;stop-opacity:1;"
offset="0"
id="stop2968" />
<stop
id="stop3006"
offset="0.5"
style="stop-color:#ff1d1d;stop-opacity:1;" />
<stop
style="stop-color:#6f0000;stop-opacity:1;"
offset="1"
id="stop2970" />
</linearGradient>
<linearGradient
id="linearGradient2919">
<stop
style="stop-color:#a3a4a0;stop-opacity:1;"
offset="0"
id="stop2921" />
<stop
style="stop-color:#45475a;stop-opacity:1;"
offset="1"
id="stop2923" />
</linearGradient>
<linearGradient
id="linearGradient2873">
<stop
style="stop-color:#939393;stop-opacity:1;"
offset="0"
id="stop2875" />
<stop
style="stop-color:#424242;stop-opacity:1;"
offset="1"
id="stop2877" />
</linearGradient>
<linearGradient
id="linearGradient2865">
<stop
style="stop-color:#11111b;stop-opacity:1;"
offset="0"
id="stop2867" />
<stop
style="stop-color:#11111b;stop-opacity:0;"
offset="1"
id="stop2869" />
</linearGradient>
<linearGradient
id="linearGradient2855">
<stop
style="stop-color:#dfdfdf;stop-opacity:1;"
offset="0"
id="stop2857" />
<stop
style="stop-color:#cdd6f4;stop-opacity:1;"
offset="1"
id="stop2859" />
</linearGradient>
<radialGradient
xlink:href="#linearGradient2865"
id="radialGradient2871"
cx="23.5625"
cy="40.4375"
fx="23.5625"
fy="40.4375"
r="19.5625"
gradientTransform="matrix(1,0,0,0.348243,0,26.35543)"
gradientUnits="userSpaceOnUse" />
<linearGradient
xlink:href="#linearGradient3775"
id="linearGradient3781"
x1="37"
y1="58"
x2="27"
y2="6"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-20.000004,5.0000041)" />
<linearGradient
id="linearGradient3775">
<stop
style="stop-color:#6c7086;stop-opacity:1;"
offset="0"
id="stop3777" />
<stop
style="stop-color:#cdd6f4;stop-opacity:1"
offset="1"
id="stop3779" />
</linearGradient>
<linearGradient
xlink:href="#linearGradient9"
id="linearGradient10"
x1="14.573165"
y1="24.886491"
x2="47.755237"
y2="24.886491"
gradientUnits="userSpaceOnUse" />
<linearGradient
xlink:href="#linearGradient11"
id="linearGradient12"
x1="23.42408"
y1="36.888903"
x2="30.289498"
y2="36.888903"
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/" />
</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="layer3"
transform="translate(20,-5)"
style="display:inline">
<rect
style="display:inline;fill:#6c7086;fill-opacity:1;stroke:#1e1e2e;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect2987"
width="45.999996"
height="58.000004"
x="-11"
y="8" />
<rect
style="display:inline;fill:url(#linearGradient3781);fill-opacity:1;stroke:#cdd6f4;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect2987-1"
width="41.999996"
height="54.000004"
x="-9"
y="10" />
<g
id="g2">
<path
id="path27"
d="m -6.99973,14.00027 35.999461,2.2e-5"
style="display:inline;fill:none;fill-rule:evenodd;stroke:#45475a;stroke-width:2.00054;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" />
<path
id="path1"
d="m -6.99973,19.00027 35.999461,2.2e-5"
style="display:inline;fill:none;fill-rule:evenodd;stroke:#45475a;stroke-width:2.00054;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" />
<path
id="path2"
d="m -6.999741,24.00026 17.999482,4.4e-5"
style="display:inline;fill:none;fill-rule:evenodd;stroke:#45475a;stroke-width:2.00052;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" />
<path
id="path3"
d="m -6.99973,33.00027 35.999461,2.2e-5"
style="display:inline;fill:none;fill-rule:evenodd;stroke:#45475a;stroke-width:2.00054;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" />
<path
id="path4"
d="m -6.99973,38.00027 35.999461,2.2e-5"
style="display:inline;fill:none;fill-rule:evenodd;stroke:#45475a;stroke-width:2.00054;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" />
<path
id="path5"
d="m -6.99973,43.00027 35.999461,2.2e-5"
style="display:inline;fill:none;fill-rule:evenodd;stroke:#45475a;stroke-width:2.00054;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" />
<path
id="path6"
d="m -6.9997685,49.00023 7.99953698,9.8e-5"
style="display:inline;fill:none;fill-rule:evenodd;stroke:#45475a;stroke-width:2.00046;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" />
</g>
<g
id="g1"
style="display:inline"
transform="translate(-13.973165,15.5808)">
<path
style="color:#11111b;display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#linearGradient10);fill-rule:evenodd;stroke:#664506;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
d="m 17.34116,32.5 5.625,-5.625 20.093749,-9.75 c 3.25,-1.25 5.1875,3.375 2.3125,5 L 25.34116,31.5 Z"
id="path2960" />
<path
style="display:inline;fill:#f8c459;stroke:#664506;stroke-width:2;stroke-linejoin:round;stroke-dasharray:none"
d="m 22.304873,35.958019 2.441728,4.960796"
id="path7"
transform="translate(15.668971,-16.313708)" />
<path
style="display:inline;fill:url(#linearGradient12);stroke:none;stroke-width:0.0947155;stroke-linejoin:round;stroke-dasharray:none"
d="m 24.203324,38.024806 c -0.435475,-0.888103 -0.786089,-1.618679 -0.779143,-1.623501 0.06979,-0.04847 4.341373,-2.094821 4.518739,-2.164764 0.314569,-0.124049 0.819634,-0.131607 1.152449,-0.01725 0.30781,0.105769 0.744837,0.494105 0.920811,0.818217 0.329327,0.606554 0.362788,1.280511 0.09091,1.831026 -0.266255,0.53913 -0.365918,0.600747 -2.825256,1.7467 -1.209043,0.563365 -2.218168,1.0243 -2.2425,1.0243 -0.02433,0 -0.400538,-0.72663 -0.836012,-1.614733 z"
id="path8"
transform="translate(15.668971,-16.313708)" />
</g>
</g>
</svg>