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

123 lines
12 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg width="64px" height="64px" id="svg3364" 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="defs3366">
<linearGradient id="linearGradient3840">
<stop style="stop-color:#0846b3;stop-opacity:1" offset="0" id="stop3842" />
<stop style="stop-color:#307bf7;stop-opacity:1" offset="1" id="stop3844" />
</linearGradient>
<linearGradient id="linearGradient3814">
<stop style="stop-color:#307bf7;stop-opacity:1" offset="0" id="stop3816" />
<stop style="stop-color:#89b4fa;stop-opacity:1" offset="1" id="stop3818" />
</linearGradient>
<linearGradient id="linearGradient3835">
<stop id="stop3837" offset="0" style="stop-color:#78a9f9;stop-opacity:1" />
<stop id="stop3839" offset="1" style="stop-color:#9eaede;stop-opacity:1" />
</linearGradient>
<linearGradient id="linearGradient3827">
<stop style="stop-color:#11111b;stop-opacity:1" offset="0" id="stop3829" />
<stop style="stop-color:#11111b;stop-opacity:0" offset="1" id="stop3831" />
</linearGradient>
<linearGradient id="linearGradient3864">
<stop id="stop3866" offset="0" style="stop-color:#840000;stop-opacity:1" />
<stop id="stop3868" offset="1" style="stop-color:#ff2b1e;stop-opacity:1" />
</linearGradient>
<linearGradient id="linearGradient3593">
<stop style="stop-color:#00aff9;stop-opacity:1" offset="0" id="stop3595" />
<stop style="stop-color:#266ee6;stop-opacity:1" offset="1" id="stop3597" />
</linearGradient>
<radialGradient xlink:href="#linearGradient3864" id="radialGradient2998" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.6696601,0.63911498,-0.09121381,0.31244488,-540.88725,-258.46199)" cx="342.58258" cy="27.256668" fx="342.58258" fy="27.256668" r="19.571428" />
<radialGradient xlink:href="#linearGradient3593-0" id="radialGradient3004-8" gradientUnits="userSpaceOnUse" gradientTransform="translate(-320.59978,-6.63068)" cx="330.63791" cy="39.962704" fx="330.63791" fy="39.962704" r="19.571428" />
<linearGradient id="linearGradient3593-0">
<stop style="stop-color:#89b4fa;stop-opacity:1" offset="0" id="stop3595-2" />
<stop style="stop-color:#78a9f9;stop-opacity:1" offset="1" id="stop3597-1" />
</linearGradient>
<radialGradient r="19.571428" fy="39.962704" fx="330.63791" cy="39.962704" cx="330.63791" gradientTransform="matrix(-0.93227784,0,0,1.3554421,396.33347,-27.208207)" gradientUnits="userSpaceOnUse" id="radialGradient3036" xlink:href="#linearGradient3593-0" />
<linearGradient xlink:href="#linearGradient3593" id="linearGradient3799" x1="5.3636365" y1="34" x2="57" y2="34" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.3500116,0,0,1.3348951,9.2846859,-20.430802)" />
<linearGradient xlink:href="#linearGradient3593-3" id="linearGradient3799-2" x1="5.3636365" y1="34" x2="57" y2="34" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.6308426,0,0,1.5945248,9.3400117,-34.898933)" />
<linearGradient id="linearGradient3593-3">
<stop style="stop-color:#00aff9;stop-opacity:1" offset="0" id="stop3595-23" />
<stop style="stop-color:#266ee6;stop-opacity:1" offset="1" id="stop3597-7" />
</linearGradient>
<linearGradient y2="34" x2="57" y1="34" x1="5.3636365" gradientTransform="matrix(1.0632565,0,0,1.0632566,-4.7659293,-8.6027115)" gradientUnits="userSpaceOnUse" id="linearGradient3919" xlink:href="#linearGradient3593-3" />
<linearGradient xlink:href="#linearGradient3840" id="linearGradient3855" gradientUnits="userSpaceOnUse" gradientTransform="translate(0,2.3889889)" x1="138.01634" y1="42.929947" x2="133.18427" y2="13.067587" />
<linearGradient xlink:href="#linearGradient3814" id="linearGradient3857" gradientUnits="userSpaceOnUse" gradientTransform="translate(0,2.3889889)" x1="106.6078" y1="46.513432" x2="105.39978" y2="9.4841042" />
<linearGradient gradientTransform="matrix(0,7.3106737,7.3106737,0,900.34735,985.98777)" y2="20.000008" x2="6.000001" y1="38.000008" x1="58" gradientUnits="userSpaceOnUse" id="linearGradient3127" xlink:href="#linearGradient3866" />
<linearGradient id="linearGradient3866">
<stop style="stop-color:#6c7086;stop-opacity:1" offset="0" id="stop3868-7" />
<stop style="stop-color:#cdd6f4;stop-opacity:1" offset="1" id="stop3870" />
</linearGradient>
<linearGradient gradientTransform="matrix(0.72697598,0.06131813,0,0.63519063,-6.5732894,25.249529)" xlink:href="#linearGradient3874" id="linearGradient3880" x1="56" y1="47" x2="53" y2="39" gradientUnits="userSpaceOnUse" />
<linearGradient id="linearGradient3874">
<stop style="stop-color:#313244;stop-opacity:1" offset="0" id="stop3876" />
<stop style="stop-color:#585b70;stop-opacity:1" offset="1" id="stop3878" />
</linearGradient>
<linearGradient id="linearGradient3768">
<stop style="stop-color:#d76363;stop-opacity:1" offset="0" id="stop3770" />
<stop style="stop-color:#f2cdcd;stop-opacity:1" offset="1" id="stop3772" />
</linearGradient>
<linearGradient id="linearGradient3776">
<stop style="stop-color:#d76363;stop-opacity:1" offset="0" id="stop3778" />
<stop style="stop-color:#f2cdcd;stop-opacity:1" offset="1" id="stop3780" />
</linearGradient>
<linearGradient y2="20.000008" x2="6.000001" y1="38.000008" x1="58" gradientTransform="matrix(0,0.84135153,0.67649221,0.33288289,1.8965248,-3.5945602)" gradientUnits="userSpaceOnUse" id="linearGradient3056" xlink:href="#linearGradient3866" />
<linearGradient xlink:href="#linearGradient3768" id="linearGradient3925" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.12861923,0,0,0.14301904,-250.8847,-7.3605296)" x1="1178.153" y1="1453.8708" x2="1105.0463" y2="1059.0945" />
<linearGradient xlink:href="#linearGradient3776" id="linearGradient3927" gradientUnits="userSpaceOnUse" x1="33.052631" y1="73.676765" x2="23.483253" y2="19.131313" />
</defs>
<metadata id="metadata3369">
<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>[wmayer]</dc:title>
</cc:Agent>
</dc:creator>
<dc:date>2012-12-03</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/Sketcher/Gui/Resources/icons/Sketcher_MapSketch.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>
<g id="layer1">
<g id="g3780" transform="matrix(0.82780005,0,0,0.83717425,-0.2499405,9.0601524)">
<g id="g3848" transform="translate(-72.481264,-2.5728951e-6)">
<path id="path3022" d="M 88.487481,-0.07185159 122.31207,16.651071 146.47249,7.0951154 112.64791,-7.2388185 z" style="fill:#89b4fa;stroke:#052459;stroke-width:2.4024775;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" />
<path id="path3792" d="m 122.31207,16.651071 0,45.390792 24.16042,-11.944945 0,-43.0018026 z" style="fill:url(#linearGradient3855);fill-opacity:1;stroke:#052459;stroke-width:2.4024775;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" />
<path id="path3794" d="m 122.31207,16.651071 0,45.390792 -33.824589,-19.111912 0,-43.00180259 z" style="fill:url(#linearGradient3857);fill-opacity:1;stroke:#052459;stroke-width:2.4024775;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" />
<path id="path3794-3" d="m 119.89603,18.102382 0,39.878289 -28.992508,-16.419613 0,-37.8105275 z" style="fill:none;stroke:#89b4fa;stroke-width:2.4024775;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path id="path3792-6" d="m 124.72812,18.239748 0,39.86028 19.32833,-9.452034 0,-38.088845 z" style="fill:none;stroke:#307bf7;stroke-width:2.4024775;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</g>
<path d="M 3.9260068,-0.07185437 37.750597,16.572285 l 0,40.384866 L 30.502463,62.04186 3.9260068,48.726545 z" id="rect3005" style="color:#11111b;fill:url(#linearGradient3056);fill-opacity:1;fill-rule:evenodd;stroke:#252536;stroke-width:2.4024775;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" />
<path style="fill:none;stroke:#cdd6f4;stroke-width:2.4024775;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 35.334557,18.084462 6.3420479,3.7505279 l 0,43.4795991 24.5228251,12.303295 4.469684,-3.822385 z" id="path3096" />
<path d="m 37.772247,56.303135 c 0,-0.635194 -2.90792,-2.786036 -5.815824,-3.031309 0,0 1.45394,6.474541 -1.45396,8.770032 z" id="path3778" style="color:#11111b;fill:url(#linearGradient3880);fill-opacity:1;fill-rule:evenodd;stroke:#252536;stroke-width:2.34386945;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" />
<path style="fill:none;stroke:#585b70;stroke-width:2.4024775;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 32.018583,59.072799 4.840524,-3.690992" id="path3125" />
<path d="m 37.772247,56.303135 c 0,-0.635194 -2.90792,-2.786036 -5.815824,-3.031309 0,0 1.45394,6.474543 -1.45396,8.770034 z" id="path3778-3" style="color:#11111b;fill:none;stroke:#252536;stroke-width:2.34386945;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" />
<g id="g3918" transform="matrix(0.44038128,0.2156533,0,0.5566064,67.417736,-38.213335)">
<g id="g3929">
<rect transform="matrix(0.99999934,0.00115222,0,1,0,0)" style="color:#11111b;fill:none;stroke:url(#linearGradient3925);stroke-width:4.85256052;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" id="rect3860-3" width="34.790848" height="34.503662" x="-133.20204" y="159.79366" />
<path style="color:#11111b;fill:none;stroke:url(#linearGradient3927);stroke-width:5.03879118;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" id="path3862-6" d="m 48.363636,33.272728 c 0,10.041541 -8.140277,18.181818 -18.181818,18.181818 C 20.140277,51.454546 12,43.314269 12,33.272728 12,23.231187 20.140277,15.09091 30.181818,15.09091 c 10.041541,0 18.181818,8.140277 18.181818,18.181818 z" transform="matrix(0.99354003,0.00114478,0,0.93347675,-126.39065,124.88705)" />
</g>
</g>
</g>
</g>
</svg>