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

88 lines
9.3 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" id="svg2816" height="64px" width="64px" inkscape:version="0.48.5 r10040" sodipodi:docname="CAM_Depths.svg">
<sodipodi:namedview pagecolor="#cdd6f4" bordercolor="#38394b" borderopacity="1" objecttolerance="10" gridtolerance="10" guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:window-width="1920" inkscape:window-height="1057" id="namedview13" showgrid="true" inkscape:snap-global="true" inkscape:snap-bbox="true" inkscape:snap-nodes="false" inkscape:zoom="10.429825" inkscape:cx="37.128989" inkscape:cy="24.316076" inkscape:window-x="1912" inkscape:window-y="-8" inkscape:window-maximized="1" inkscape:current-layer="svg2816">
<inkscape:grid type="xygrid" id="grid2990" empspacing="2" visible="true" enabled="true" snapvisiblegridlinesonly="true"/>
</sodipodi:namedview>
<defs id="defs2818">
<linearGradient id="linearGradient3888" inkscape:collect="always">
<stop id="stop3890" offset="0" style="stop-color:#6cd163;stop-opacity:1"/>
<stop id="stop3892" offset="1" style="stop-color:#a6e3a1;stop-opacity:1"/>
</linearGradient>
<linearGradient inkscape:collect="always" id="linearGradient3794">
<stop style="stop-color:#359b2e;stop-opacity:1" offset="0" id="stop3796"/>
<stop style="stop-color:#6cd163;stop-opacity:1" offset="1" id="stop3798"/>
</linearGradient>
<linearGradient inkscape:collect="always" id="linearGradient3782">
<stop style="stop-color:#0846b3;stop-opacity:1" offset="0" id="stop3784"/>
<stop style="stop-color:#307bf7;stop-opacity:1" offset="1" id="stop3786"/>
</linearGradient>
<linearGradient inkscape:collect="always" id="linearGradient3772">
<stop style="stop-color:#0846b3;stop-opacity:1" offset="0" id="stop3774"/>
<stop style="stop-color:#307bf7;stop-opacity:1" offset="1" id="stop3776"/>
</linearGradient>
<linearGradient inkscape:collect="always" id="linearGradient3762">
<stop style="stop-color:#307bf7;stop-opacity:1" offset="0" id="stop3764"/>
<stop style="stop-color:#89b4fa;stop-opacity:1" offset="1" id="stop3766"/>
</linearGradient>
<linearGradient inkscape:collect="always" xlink:href="#linearGradient3762" id="linearGradient3768" x1="20.542374" y1="59.067795" x2="16.271187" y2="32.627117" gradientUnits="userSpaceOnUse" gradientTransform="translate(2.0000001,-3.9999995)"/>
<linearGradient inkscape:collect="always" xlink:href="#linearGradient3772" id="linearGradient3778" x1="22.190075" y1="32.750023" x2="19.91926" y2="22.826559" gradientUnits="userSpaceOnUse" gradientTransform="translate(2.0000001,-3.9999995)"/>
<linearGradient inkscape:collect="always" xlink:href="#linearGradient3782" id="linearGradient3788" x1="52.621529" y1="44.595459" x2="48.398655" y2="31.843567" gradientUnits="userSpaceOnUse" gradientTransform="translate(2.0000001,-3.9999995)"/>
<linearGradient inkscape:collect="always" xlink:href="#linearGradient3794" id="linearGradient3800" x1="32.065601" y1="49.813709" x2="30.509672" y2="26.323381" gradientUnits="userSpaceOnUse" gradientTransform="translate(2.0000001,-3.9999995)"/>
<linearGradient inkscape:collect="always" xlink:href="#linearGradient3794-7" id="linearGradient3800-1" x1="32.065601" y1="49.813709" x2="30.509672" y2="26.323381" gradientUnits="userSpaceOnUse"/>
<linearGradient inkscape:collect="always" id="linearGradient3794-7">
<stop style="stop-color:#359b2e;stop-opacity:1" offset="0" id="stop3796-4"/>
<stop style="stop-color:#6cd163;stop-opacity:1" offset="1" id="stop3798-0"/>
</linearGradient>
<linearGradient inkscape:collect="always" xlink:href="#linearGradient3888" id="linearGradient3843" gradientUnits="userSpaceOnUse" gradientTransform="translate(25.949153,-44.872881)" x1="29" y1="41" x2="28" y2="27"/>
<linearGradient inkscape:collect="always" xlink:href="#linearGradient3794-8" id="linearGradient3800-8" x1="32.065601" y1="49.813709" x2="30.509672" y2="26.323381" gradientUnits="userSpaceOnUse"/>
<linearGradient inkscape:collect="always" id="linearGradient3794-8">
<stop style="stop-color:#359b2e;stop-opacity:1" offset="0" id="stop3796-2"/>
<stop style="stop-color:#6cd163;stop-opacity:1" offset="1" id="stop3798-4"/>
</linearGradient>
</defs>
<metadata id="metadata2821">
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
<dc:title/>
<dc:title>CAM_Depths</dc:title>
<dc:date>2016-05-15</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/CAM/Gui/Resources/icons/CAM_Depths.svg</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>
<path style="fill:url(#linearGradient3800);fill-opacity:1;stroke:#1c5017;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" d="M 11,43 33,49 55,25 33,20 z" id="path3790" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccc"/>
<path style="fill:none;stroke:#6cd163;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 33.676409,22.215727 14.546985,41.887172 32.347561,46.748318 51.20339,26.169492 z" id="path3792" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccc"/>
<path style="fill:url(#linearGradient3778);fill-opacity:1;fill-rule:evenodd;stroke:#052459;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" d="M 11,42.679189 33,20 33,7.0000005 11,29 z" id="path11207" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccc"/>
<path style="fill:none;stroke:#307bf7;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 12.954868,29.838733 32,10.331257 31.48882,19.404016 12.964795,37.821736 z" id="path3770" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccc"/>
<g id="g3839" transform="translate(-15.949153,26.872881)">
<path sodipodi:nodetypes="ccccc" inkscape:connector-curvature="0" id="path3790-9" d="m 34.949153,2.1271186 22,6 12.268293,-17.8637506 -17.877208,-5.575274 z" style="fill:url(#linearGradient3843);fill-opacity:1;stroke:#1c5017;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"/>
<path sodipodi:nodetypes="ccccc" inkscape:connector-curvature="0" id="path3792-4" d="M 51.968708,-12.95236 38.711865,1.1101696 56.296714,5.8754366 68.201324,-7.8959881 z" style="fill:none;stroke:#a6e3a1;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/>
</g>
<path style="fill:url(#linearGradient3788);fill-opacity:1;fill-rule:evenodd;stroke:#052459;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" d="M 41,37 61,15 61,35 41,59 z" id="path11199" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccc"/>
<path style="fill:url(#linearGradient3768);fill-opacity:1;fill-rule:evenodd;stroke:#052459;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" d="m 33,35 8,2 0,22 -37.9999999,-10 0,-22 L 11,29 l 0,14 22,6 z" id="path11203" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccccccc"/>
<path style="fill:none;stroke:#89b4fa;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 5.0000001,29.576271 0,17.864407 L 39,56.372881 39,38.559322 35,37.567797 35.01695,51.59322 9.0000011,44.542373 l 0,-13.966102 z" id="path2992" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccccccc"/>
<path style="fill:none;stroke:#307bf7;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 42.98305,37.847457 59.027584,20.197866 58.999986,34.220339 42.966088,53.593221 z" id="path3780" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccc"/>
<path style="fill:#89b4fa;fill-opacity:1;fill-rule:evenodd;stroke:#052459;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" d="M 3.0000001,27 11,29 25.762712,14.237288 33,7.0000005 l -8,-2 z" id="path11205" inkscape:connector-curvature="0" sodipodi:nodetypes="cccccc"/>
<path style="fill:#89b4fa;fill-opacity:1;fill-rule:evenodd;stroke:#052459;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" d="m 41,37 -8,-2 21,-22 7,2 z" id="path11201" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccc"/>
<path style="fill:#a6e3a1;fill-opacity:1;stroke:#1c5017;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" d="M 23.542371,16.559322 45.067795,22.254237 54,13 33,7.0000005 z" id="path3790-5" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccc"/>
</svg>