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

139 lines
6.1 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
version="1.1"
id="svg3018"
height="64px"
width="64px"
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="defs3020">
<linearGradient
id="linearGradient2">
<stop
style="stop-color:#585b70;stop-opacity:1;"
offset="0"
id="stop2" />
<stop
style="stop-color:#45475a;stop-opacity:1;"
offset="1"
id="stop3" />
</linearGradient>
<linearGradient
xlink:href="#linearGradient5062"
id="linearGradient5080"
x1="14.414937"
y1="20.554096"
x2="30.792814"
y2="19.888475"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.60576378,0,0,0.60574383,38.793298,37.335146)" />
<linearGradient
id="linearGradient5062">
<stop
style="stop-color:#585b70;stop-opacity:1"
offset="0"
id="stop5058" />
<stop
style="stop-color:#45475a;stop-opacity:1"
offset="1"
id="stop5060" />
</linearGradient>
<linearGradient
xlink:href="#linearGradient2"
id="linearGradient3"
x1="162.38681"
y1="191.20714"
x2="159.90944"
y2="144.59547"
gradientUnits="userSpaceOnUse" />
</defs>
<metadata
id="metadata3023">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<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:rights>
<cc:Agent>
<dc:title>FreeCAD LGPL2+</dc:title>
</cc:Agent>
</dc:rights>
<cc:license
rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
</cc:Work>
<cc:License
rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
<cc:permits
rdf:resource="http://creativecommons.org/ns#Reproduction" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#Distribution" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#Notice" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#Attribution" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#ShareAlike" />
</cc:License>
</rdf:RDF>
</metadata>
<g
id="layer2"
transform="translate(0,-1.000001)">
<g
id="g2"
transform="translate(-1.9999935)">
<path
id="path4775"
d="m 162.17188,193.93282 13.86507,-8.005 1.29423,-15.75833 3.66025,-13.66026 -14,-24.24871 -22.51666,13 14,24.24871 13.66026,3.66026 0.16987,10.29422 -12.12424,6.99994"
style="color:#11111b;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#11111b;solid-opacity:1;fill:url(#linearGradient3);fill-opacity:1;fill-rule:nonzero;stroke:#313244;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
transform="rotate(-60,-19.885003,211.41896)" />
<path
id="path3854"
style="opacity:1;fill:none;fill-opacity:1;stroke:#052459;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="m 162.19721,141.95668 8.5,14.72243 m -15.42821,-10.72243 8.5,14.72243"
transform="rotate(-60,-19.885003,211.41896)" />
<ellipse
ry="1.5000056"
rx="1.5132792"
style="display:inline;overflow:visible;visibility:visible;fill:#664506;fill-opacity:1;fill-rule:evenodd;stroke:#052459;stroke-width:2.99999;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
id="path3859"
transform="matrix(0.87082765,0.49158843,-0.48894475,0.87231475,-193.03669,88.488562)"
cx="166.90031"
cy="-169.13" />
<path
id="path3757"
style="display:inline;fill:none;stroke:#6c7086;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;paint-order:normal"
d="m 147.20508,145.99023 c 4.19466,7.26693 8.38932,14.53386 12.58398,21.80079 4.02214,1.07747 8.04427,2.15494 12.06641,3.23242 1.2526,-0.72331 2.50521,-1.44662 3.75781,-2.16992 1.07682,-4.02149 2.15365,-8.04297 3.23047,-12.06446 -4.19401,-7.26627 -8.38802,-14.53255 -12.58203,-21.79883 -6.35221,3.66667 -12.70443,7.33334 -19.05664,11 z"
transform="rotate(-60,-19.885003,211.41896)" />
</g>
<g
id="g1"
transform="matrix(1.2854712,0,0,1.285473,-14.844451,-17.988121)"
style="stroke-width:0.777924">
<path
style="fill:none;stroke:#313244;stroke-width:1.55584;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path4250-71-8"
d="M 46.680526,44.444799 A 7.0034133,7.0028728 0.01309763 1 1 57.319335,53.554907 7.0034133,7.0028728 0.01309763 1 1 46.680526,44.444799 Z" />
<path
style="fill:url(#linearGradient5080);fill-opacity:1;stroke:#6c7086;stroke-width:1.55584;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path4250-7-3-8"
d="m 47.866175,45.465602 a 5.4508431,5.4506715 0 1 1 8.280289,7.090865 5.4508431,5.4506715 0 0 1 -8.280289,-7.090865 z" />
</g>
</g>
</svg>