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

99 lines
13 KiB
XML
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg width="64px" height="64px" id="svg2860" 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="defs2862">
<linearGradient id="linearGradient3859">
<stop style="stop-color:#f8c459;stop-opacity:1" offset="0" id="stop3861" />
<stop style="stop-color:#f9e2af;stop-opacity:1" offset="1" id="stop3863" />
</linearGradient>
<linearGradient id="linearGradient3851">
<stop style="stop-color:#bc8009;stop-opacity:1" offset="0" id="stop3853" />
<stop style="stop-color:#f9e2af;stop-opacity:1" offset="1" id="stop3855" />
</linearGradient>
<linearGradient id="linearGradient3377">
<stop id="stop3379" offset="0" style="stop-color:#f9d791;stop-opacity:1" />
<stop id="stop3381" offset="1" style="stop-color:#f8ca69;stop-opacity:1" />
</linearGradient>
<linearGradient xlink:href="#linearGradient3851" id="linearGradient3857" x1="-11" y1="26" x2="-18" y2="14" gradientUnits="userSpaceOnUse" spreadMethod="reflect" gradientTransform="translate(60,0)" />
<linearGradient xlink:href="#linearGradient3859" id="linearGradient3865" x1="32.557789" y1="32.917992" x2="26.30212" y2="12.206754" gradientUnits="userSpaceOnUse" />
<linearGradient xlink:href="#linearGradient3851-7-2" id="linearGradient3367" gradientUnits="userSpaceOnUse" gradientTransform="translate(-19.999999,-5.9999984)" spreadMethod="reflect" x1="-11" y1="26" x2="-18" y2="14" />
<linearGradient id="linearGradient3851-7-2">
<stop style="stop-color:#bc8009;stop-opacity:1" offset="0" id="stop3853-9-4" />
<stop style="stop-color:#f9e2af;stop-opacity:1" offset="1" id="stop3855-8-4" />
</linearGradient>
<linearGradient xlink:href="#linearGradient3838-1" id="linearGradient3371" gradientUnits="userSpaceOnUse" x1="2802.9631" y1="538.36249" x2="2859.7263" y2="786.05646" />
<linearGradient id="linearGradient3838-1">
<stop style="stop-color:#94e2d5;stop-opacity:1" offset="0" id="stop3840-2" />
<stop style="stop-color:#258e7e;stop-opacity:1" offset="1" id="stop3842-0" />
</linearGradient>
<linearGradient xlink:href="#linearGradient3859-3-8" id="linearGradient3369" gradientUnits="userSpaceOnUse" x1="32.557789" y1="32.917992" x2="26.30212" y2="12.206754" />
<linearGradient id="linearGradient3859-3-8">
<stop style="stop-color:#f8c459;stop-opacity:1" offset="0" id="stop3861-1-7" />
<stop style="stop-color:#f9e2af;stop-opacity:1" offset="1" id="stop3863-2-4" />
</linearGradient>
</defs>
<metadata id="metadata2865">
<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>[vginkeo]</dc:title>
</cc:Agent>
</dc:creator>
<dc:title>fem-constraint-displacement</dc:title>
<dc:date>2016-02-11</dc:date>
<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:identifier>FreeCAD/src/Mod/</dc:identifier>
<dc:rights>
<cc:Agent>
<dc:title>FreeCAD LGPL2+</dc:title>
</cc:Agent>
</dc:rights>
<cc:license>https://www.gnu.org/copyleft/lesser.html</cc:license>
<dc:contributor>
<cc:Agent>
<dc:title>[agryson] Alexander Gryson</dc:title>
</cc:Agent>
</dc:contributor>
</cc:Work>
</rdf:RDF>
</metadata>
<g id="layer1">
<path style="fill:none;stroke:#1e1e2e;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" d="m 15,39 0,12 -10,8 10,-8 10,8" id="path3944" />
<text xml:space="preserve" style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:black;fill-opacity:1;stroke:none" x="37.204151" y="59.238754" id="text3009">   </text>
<text xml:space="preserve" style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:black;fill-opacity:1;stroke:none" x="35.98616" y="58.574394" id="text3013">   </text>
<text xml:space="preserve" style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:black;fill-opacity:1;stroke:none" x="37.64706" y="57.910034" id="text3017">   </text>
<g style="font-size:20px;font-style:normal;font-weight:normal;line-height:20.0000003%;letter-spacing:0px;word-spacing:0px;fill:#6c7086;fill-opacity:1;stroke:#1e1e2e;stroke-width:0.97985315;font-family:Sans" id="text3021" transform="matrix(1.6670242,0,0,1.5384564,-40.83773,-34.168887)">
<path d="m 51.023167,49.149894 0,11.120131 2.332566,0 c 1.969292,2e-6 3.409618,-0.446974 4.320987,-1.340928 0.917719,-0.893949 1.376585,-2.305116 1.376597,-4.233505 -1.2e-5,-1.915603 -0.458878,-3.317191 -1.376597,-4.204769 -0.911369,-0.89394 -2.351695,-1.340916 -4.320987,-1.340929 l -2.332566,0 m -1.93106,-1.589958 3.967276,0 c 2.765932,1.3e-5 4.795774,0.57789 6.08953,1.733629 1.293733,1.14938 1.940606,2.950053 1.94062,5.402027 -1.4e-5,2.46476 -0.650072,4.275011 -1.95018,5.430762 -1.300129,1.155754 -3.326784,1.733629 -6.07997,1.733629 l -3.967276,0 0,-14.300047" id="path3934" style="fill:#6c7086;stroke:#1e1e2e;stroke-width:1.24886775" />
</g>
<path style="fill:none;stroke:#6c7086;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" d="m 15,39 0,12 -10,8 10,-8 10,8" id="path3944-2" />
<g id="g3350" transform="translate(87.958336,2.103574)">
<path id="path3063-1" d="M -60.49828,12.297578 -44.276817,1.6539792 c 11.343458,-4.6432832 24.728769,13.2093768 12.401376,22.2560528 l -15.695501,9.840822 z" style="font-size:54.21519089px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;color:#11111b;fill:#f8c459;fill-opacity:1;fill-rule:nonzero;stroke:#664506;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial" />
<path id="path3063-3-0" d="M -61.579091,15.205413 -45.631684,4.7575543 c 10.364771,-7.6968104 23.945833,10.6256217 12.009914,17.8715007 l -15.695501,9.840823 z" style="font-size:54.21519089px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;color:#11111b;fill:url(#linearGradient3367);fill-opacity:1;fill-rule:nonzero;stroke:#f9e2af;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial" />
<path id="path3875-5-7" d="m -51.199941,6 c 11.999989,-0.9999991 18.571392,11.000001 14.571396,20.999994" style="font-size:54.21519089px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;color:#11111b;fill:none;stroke:#664506;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial" />
<path id="path3895-60" d="M -51.999998,13 -35.000001,2.000001" style="font-size:54.21519089px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;color:#11111b;fill:none;stroke:#664506;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial" />
<path id="path3895-6-1" d="M -44.000006,21.999999 -27.000008,11.000001" style="font-size:54.21519089px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;color:#11111b;fill:none;stroke:#664506;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial" />
<g style="font-size:54.21519089px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;color:#11111b;fill:url(#linearGradient3371);fill-opacity:1;fill-rule:nonzero;stroke:#103b35;stroke-width:15.05897331;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial" transform="matrix(0.92148168,0.21647657,-0.04656812,0.97752701,-67.128334,5.0954655)" id="g3031-0">
<path id="path3011-2" d="m 44,22 c 0,6.627417 -5.372583,12 -12,12 -6.627417,0 -12,-5.372583 -12,-12 0,-6.627417 5.372583,-12 12,-12 6.627417,0 12,5.372583 12,12 z" style="fill:#f2cdcd;stroke:#912424;stroke-width:2.0955863;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" transform="translate(-17,-7)" />
<path id="path3011-3-5" d="m 44,22 c 0,6.627417 -5.372583,12 -12,12 -6.627417,0 -12,-5.372583 -12,-12 0,-6.627417 5.372583,-12 12,-12 6.627417,0 12,5.372583 12,12 z" style="fill:url(#linearGradient3369);fill-opacity:1;stroke:#f2cdcd;stroke-width:2.51470399;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" transform="matrix(0.83333334,0,0,0.83333333,-11.666667,-3.3333333)" />
</g>
<g style="font-size:54.21519089px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;color:#11111b;fill:none;stroke:#103b35;stroke-width:15.05897331;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial" transform="matrix(0.92148168,0.21647657,-0.04656812,0.97752701,-67.195852,5.0728652)" id="g3031-3">
<path id="path3011-5" d="m 44,22 c 0,6.627417 -5.372583,12 -12,12 -6.627417,0 -12,-5.372583 -12,-12 0,-6.627417 5.372583,-12 12,-12 6.627417,0 12,5.372583 12,12 z" style="fill:none;stroke:#912424;stroke-width:2.0955863;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" transform="translate(-17,-7)" />
<path id="path3011-3-6" d="m 44,22 c 0,6.627417 -5.372583,12 -12,12 -6.627417,0 -12,-5.372583 -12,-12 0,-6.627417 5.372583,-12 12,-12 6.627417,0 12,5.372583 12,12 z" style="fill:none;stroke:#f2cdcd;stroke-width:2.51470399;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" transform="matrix(0.83333334,0,0,0.83333333,-11.666667,-3.3333333)" />
</g>
<path id="path3867-1" d="m -50.999999,12 0,22.999991" style="font-size:54.21519089px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;color:#11111b;fill:none;stroke:#912424;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial" />
<path id="path3869-9" d="m -58.000006,12 0,20.99999" style="font-size:54.21519089px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;color:#11111b;fill:none;stroke:#912424;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial" />
<path id="path3871-7" d="m -64,16 20.999994,6.999998" style="font-size:54.21519089px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;color:#11111b;fill:none;stroke:#912424;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial" />
<path id="path3873-1" d="m -64.999999,22.999998 20.999993,6.999993" style="font-size:54.21519089px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;color:#11111b;fill:none;stroke:#912424;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial" />
</g>
</g>
</svg>