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

185 lines
17 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg xmlns:osb="http://www.openswatchbook.org/uri/2009/osb" 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" id="svg8" version="1.1" viewBox="0 0 16.933333 16.933334" height="64" width="64">
<title id="title925">Part_ProjectionOnSurface</title>
<defs id="defs2">
<linearGradient id="linearGradient3864-9">
<stop id="stop6175" offset="0" style="stop-color:#0846b3;stop-opacity:1" />
<stop id="stop6177" offset="1" style="stop-color:#89b4fa;stop-opacity:1" />
</linearGradient>
<linearGradient id="linearGradient3864">
<stop id="stop3866" offset="0" style="stop-color:#89b4fa;stop-opacity:1" />
<stop id="stop3868" offset="1" style="stop-color:#0841a6;stop-opacity:1" />
</linearGradient>
<linearGradient gradientTransform="matrix(1,0,0,0.80043488,-0.21205357,1.3620882)" xlink:href="#linearGradient3767" id="linearGradient3773" x1="22.116516" y1="55.717518" x2="20" y2="40" gradientUnits="userSpaceOnUse" />
<linearGradient id="linearGradient3767">
<stop style="stop-color:#307bf7;stop-opacity:1" offset="0" id="stop3769" />
<stop style="stop-color:#89b4fa;stop-opacity:1" offset="1" id="stop3771" />
</linearGradient>
<linearGradient gradientTransform="translate(-0.178571,-10.928571)" xlink:href="#linearGradient3777" id="linearGradient3783" x1="53.896763" y1="51.179787" x2="50" y2="38" gradientUnits="userSpaceOnUse" />
<linearGradient id="linearGradient3777">
<stop style="stop-color:#0846b3;stop-opacity:1" offset="0" id="stop3779" />
<stop style="stop-color:#307bf7;stop-opacity:1" offset="1" id="stop3781" />
</linearGradient>
<linearGradient gradientTransform="translate(-42.769166,-23.920078)" gradientUnits="userSpaceOnUse" y2="66.59771" x2="80.450974" y1="66.59771" x1="44.663254" id="linearGradient5871" xlink:href="#linearGradient3767" />
<linearGradient gradientTransform="translate(-6.3392858,1.0267858)" gradientUnits="userSpaceOnUse" y2="39.061024" x2="70.759598" y1="39.061024" x1="44.690838" id="linearGradient5903" xlink:href="#linearGradient3777" />
<linearGradient id="linearGradient3682">
<stop style="stop-color:#ff6d0f;stop-opacity:1" offset="0" id="stop3684" />
<stop style="stop-color:#ff1000;stop-opacity:1" offset="1" id="stop3686" />
</linearGradient>
<linearGradient id="linearGradient3864-9-4">
<stop style="stop-color:#0846b3;stop-opacity:1" offset="0" id="stop3866-1" />
<stop style="stop-color:#89b4fa;stop-opacity:1" offset="1" id="stop3868-1" />
</linearGradient>
<linearGradient id="linearGradient3682-0">
<stop id="stop3684-0" offset="0" style="stop-color:#912424;stop-opacity:1" />
<stop id="stop3686-0" offset="1" style="stop-color:#f2cdcd;stop-opacity:1" />
</linearGradient>
<radialGradient r="19.571428" fy="33.899986" fx="270.58316" cy="33.899986" cx="270.58316" gradientTransform="matrix(1.2361257,0.30001695,-0.83232803,3.3883821,-499.9452,-167.33108)" gradientUnits="userSpaceOnUse" id="radialGradient3817-5-3" xlink:href="#linearGradient3682-0-6" />
<linearGradient id="linearGradient3682-0-6">
<stop id="stop3684-0-7" offset="0" style="stop-color:#ff390f;stop-opacity:1" />
<stop id="stop3686-0-5" offset="1" style="stop-color:#ff1000;stop-opacity:1" />
</linearGradient>
<linearGradient gradientTransform="matrix(0.2719906,0,0,0.21771077,4.1098594,-0.60061144)" xlink:href="#linearGradient3767" id="linearGradient3773-8" x1="22.116516" y1="55.717518" x2="20" y2="40" gradientUnits="userSpaceOnUse" />
<radialGradient r="19.571428" fy="33.899986" fx="270.58316" cy="33.899986" cx="270.58316" gradientTransform="matrix(1.2361257,0.30001695,-0.83232803,3.3883821,-499.9452,-167.33108)" gradientUnits="userSpaceOnUse" id="radialGradient3817-5-3-3" xlink:href="#linearGradient3682-0-6" />
<linearGradient id="linearGradient4066">
<stop id="stop4068" offset="0" style="stop-color:#359b2e;stop-opacity:1" />
<stop id="stop4070" offset="1" style="stop-color:#a6e3a1;stop-opacity:1" />
</linearGradient>
<linearGradient id="linearGradient3794">
<stop style="stop-color:#11111b;stop-opacity:1" offset="0" id="stop3796" />
<stop style="stop-color:#11111b;stop-opacity:0" offset="1" id="stop3798" />
</linearGradient>
<linearGradient gradientTransform="matrix(0.26458333,0,0,0.26458333,3.7041666,-2.6458282)" xlink:href="#linearGradient3767" id="linearGradient3773-5" x1="22.116516" y1="55.717518" x2="17.328547" y2="21.31134" gradientUnits="userSpaceOnUse" />
<linearGradient gradientTransform="matrix(0.26458333,0,0,0.26458333,3.7041666,-2.6458282)" xlink:href="#linearGradient3777" id="linearGradient3783-6" x1="53.896763" y1="51.179787" x2="47.502235" y2="21.83742" gradientUnits="userSpaceOnUse" />
<radialGradient xlink:href="#linearGradient3794" id="radialGradient3800" cx="1" cy="45" fx="1" fy="45" r="41" gradientTransform="matrix(0.93348213,-2.2905276e-8,0,0.28687573,0.06651751,32.090592)" gradientUnits="userSpaceOnUse" />
<radialGradient xlink:href="#linearGradient3682-0-6" id="radialGradient3817-5-3-0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.2361257,0.30001695,-0.83232803,3.3883821,-499.9452,-167.33108)" cx="270.58316" cy="33.899986" fx="270.58316" fy="33.899986" r="19.571428" />
<radialGradient xlink:href="#linearGradient3682-0-6" id="radialGradient3817-5-3-3-6" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.2361257,0.30001695,-0.83232803,3.3883821,-499.9452,-167.33108)" cx="270.58316" cy="33.899986" fx="270.58316" fy="33.899986" r="19.571428" />
<linearGradient gradientUnits="userSpaceOnUse" y2="21.31134" x2="17.328547" y1="55.717518" x1="22.116516" id="linearGradient3773-5-2" xlink:href="#linearGradient3767" gradientTransform="matrix(0.26458333,0,0,0.26458333,-26.515029,-2.4294368)" />
<linearGradient gradientUnits="userSpaceOnUse" y2="21.83742" x2="47.502235" y1="51.179787" x1="53.896763" id="linearGradient3783-6-0" xlink:href="#linearGradient3777" gradientTransform="matrix(0.26458333,0,0,0.26458333,-26.515029,-2.4294368)" />
<radialGradient gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.93348213,-2.2905276e-8,0,0.28687573,0.06651751,32.090592)" r="41" fy="45" fx="1" cy="45" cx="1" id="radialGradient3800-2" xlink:href="#linearGradient3794" />
<linearGradient gradientTransform="matrix(0.21275462,0,0,0.16272468,20.682381,1.6174981)" gradientUnits="userSpaceOnUse" y2="6.0233226" x2="-215.62161" y1="59.679905" x1="-211.89078" id="linearGradient3806-6-3" xlink:href="#linearGradient4066" />
<linearGradient id="linearGradient3848">
<stop id="stop3850" offset="0" style="stop-color:#31a52e;stop-opacity:1" />
<stop id="stop3852" offset="1" style="stop-color:#cdd6f4;stop-opacity:0" />
</linearGradient>
<linearGradient id="linearGradient4158">
<stop id="stop4160" offset="0" style="stop-color:#11111b;stop-opacity:1" />
<stop id="stop4162" offset="1" style="stop-color:#f6f6f6;stop-opacity:0" />
</linearGradient>
<linearGradient id="linearGradient4122">
<stop id="stop4124" offset="0" style="stop-color:#e3d328;stop-opacity:1" />
<stop id="stop4126" offset="1" style="stop-color:#e1dec3;stop-opacity:1" />
</linearGradient>
<linearGradient id="linearGradient4088">
<stop id="stop4090" offset="0" style="stop-color:#e9cd23;stop-opacity:1" />
<stop id="stop4092" offset="1" style="stop-color:#040000;stop-opacity:0" />
</linearGradient>
<linearGradient id="linearGradient4052">
<stop id="stop4054" offset="0" style="stop-color:#ada9a9;stop-opacity:1" />
<stop id="stop4056" offset="1" style="stop-color:#ada9a9;stop-opacity:0" />
</linearGradient>
<linearGradient id="linearGradient4349">
<stop id="stop4351" offset="0" style="stop-color:#898709;stop-opacity:1" />
<stop id="stop4353" offset="1" style="stop-color:#11111b;stop-opacity:1" />
</linearGradient>
<linearGradient id="linearGradient5241">
<stop id="stop5243" offset="0" style="stop-color:#212c45;stop-opacity:1" />
<stop id="stop5245" offset="1" style="stop-color:#11111b;stop-opacity:1" />
</linearGradient>
<linearGradient osb:paint="solid" id="linearGradient5227">
<stop id="stop5229" offset="0" style="stop-color:#11111b;stop-opacity:1" />
</linearGradient>
<linearGradient id="linearGradient3902">
<stop id="stop3904" offset="0" style="stop-color:#11111b;stop-opacity:0.58823532" />
<stop id="stop3906" offset="1" style="stop-color:#11111b;stop-opacity:0.39215687" />
</linearGradient>
<linearGradient id="linearGradient3894">
<stop id="stop3896" offset="0" style="stop-color:#45351d;stop-opacity:1" />
<stop id="stop3898" offset="1" style="stop-color:#11111b;stop-opacity:1" />
</linearGradient>
<linearGradient id="linearGradient3792">
<stop id="stop3794" offset="0" style="stop-color:#aaaaaa;stop-opacity:1" />
<stop id="stop3796-3" offset="1" style="stop-color:#d2d2d2;stop-opacity:1" />
</linearGradient>
<linearGradient id="linearGradient3784">
<stop id="stop3786" offset="0" style="stop-color:#bebebe;stop-opacity:1" />
<stop id="stop3788" offset="1" style="stop-color:#cdd6f4;stop-opacity:0.39215687" />
</linearGradient>
<linearGradient gradientUnits="userSpaceOnUse" y2="33.327396" x2="101.26959" y1="32.826416" x1="2.7195754" id="linearGradient3854" xlink:href="#linearGradient3848" />
<linearGradient gradientTransform="translate(192.70919,66.886588)" gradientUnits="userSpaceOnUse" y2="-10.828839" x2="77.455673" y1="56.123516" x1="8.3518963" id="linearGradient3891" xlink:href="#linearGradient3848" />
<linearGradient y2="3.9908762" x2="-217.84235" y1="59.679905" x1="-211.89078" gradientTransform="matrix(0.21275462,0,0,0.16272468,20.682381,1.6174981)" gradientUnits="userSpaceOnUse" id="linearGradient1422" xlink:href="#linearGradient4066" />
</defs>
<metadata id="metadata5">
<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>Part_ProjectionOnSurface</dc:title>
<dc:date>2020-10-07</dc:date>
<dc:creator>
<cc:Agent>
<dc:title>[vocx]</dc:title>
</cc:Agent>
</dc:creator>
<dc:rights>
<cc:Agent>
<dc:title>CC-BY-SA 4.0</dc:title>
</cc:Agent>
</dc:rights>
<dc:publisher>
<cc:Agent>
<dc:title>FreeCAD</dc:title>
</cc:Agent>
</dc:publisher>
<dc:identifier>FreeCAD/src/Mod/Part/Gui/Resources/icons/Part_ProjectionOnSurface.svg</dc:identifier>
<dc:relation>https://www.freecad.org/wiki/index.php?title=Artwork</dc:relation>
<dc:subject>
<rdf:Bag>
<rdf:li>Cube</rdf:li>
<rdf:li>letter</rdf:li>
<rdf:li>projection</rdf:li>
<rdf:li>surface</rdf:li>
</rdf:Bag>
</dc:subject>
<dc:description>Based on the 'Tree_Part' icon, a big 'F' letter is superimposed on the frontal face of the cube.</dc:description>
<dc:contributor>
<cc:Agent>
<dc:title>Manuel Apeltauer [apeltauer]</dc:title>
</cc:Agent>
</dc:contributor>
<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="layer8">
<path id="path2993-2" d="M 1.8520833,1.8520885 13.493758,3.4395884 15.566482,2.5022023 5.4438008,1.2666927 Z" style="fill:#89b4fa;stroke:#052459;stroke-width:0.52916664;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" />
<path id="path2995-7" d="m 15.566482,2.5022023 -0.03543,10.0919637 -2.037289,0.899588 V 3.4395884 Z" style="fill:url(#linearGradient3783-6);fill-opacity:1;stroke:#052459;stroke-width:0.52916664;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" />
<path style="display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient3773-5);fill-opacity:1;fill-rule:evenodd;stroke:#052459;stroke-width:0.52916664;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" d="M 1.8520833,1.8520885 13.493758,3.4395884 V 13.493754 l -11.6416747,-1.5875 z" id="path3825-0" />
<path id="path3765-9" d="m 2.3812499,2.4944227 0.00229,8.9744313 10.5856351,1.394037 -0.0023,-8.9782678 z" style="fill:none;stroke:#89b4fa;stroke-width:0.52916664;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path id="path3775-3" d="m 14.02315,3.8942338 -0.0032,8.8728812 0.993036,-0.458183 0.006,-8.9335723 z" style="fill:none;stroke:#307bf7;stroke-width:0.52916664;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path id="path1424" d="M 11.227152,5.9928126 12.444273,5.1990626 5.8539056,3.9108724 4.2421522,4.61598" style="fill:none;stroke:#202020;stroke-width:0.26458335;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:0.52916667, 0.52916666999999995;stroke-dashoffset:0;stroke-opacity:1" />
<path id="path1424-6" d="m 11.231561,8.7699382 1.212587,-0.8149756 v -2.7559 l -1.212587,0.79375" style="fill:none;stroke:#202020;stroke-width:0.26458335;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:0.52916667, 0.52916666999999995;stroke-dashoffset:0;stroke-opacity:1" />
<path id="path1424-6-5" d="M 9.6264232,12.209521 10.843418,11.394546 V 9.2683543" style="fill:none;stroke:#202020;stroke-width:0.26458335;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:0.52916667, 0.52916666999999995;stroke-dashoffset:0;stroke-opacity:1" />
<path id="path1424-6-5-6" d="M 9.6264232,9.629834 10.843418,8.8942334" style="fill:none;stroke:#202020;stroke-width:0.26458335px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" />
<path id="path1424-6-5-3" d="M 6.7556937,14.141069 7.6729168,13.414465 V 12.390527" style="fill:none;stroke:#202020;stroke-width:0.26458335;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:0.52916667, 0.52916666999999995;stroke-dashoffset:0;stroke-opacity:1" />
<g id="g1373-3" transform="translate(28.71989,1.6876093)">
<path style="fill:#848484;fill-opacity:1;stroke:#11111b;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" d="m -25.54489,3.3031969 1.177395,-0.453202 6.879166,1.42875 -0.912811,0.5963725" id="path1092-7-2" />
<path style="fill:#848484;fill-opacity:1;stroke:#11111b;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" d="m -23.100875,13.538162 1.136679,-0.873125 v -2.394479 l -1.136679,-0.2893237" id="path1092-6-3-0" />
<path style="fill:#848484;fill-opacity:1;fill-rule:nonzero;stroke:#11111b;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" d="m -19.940133,11.02462 0.846667,-0.502708 V 7.9422247 l -0.846667,0.4101848" id="path1092-6-1-6-6" />
<path style="fill:#848484;fill-opacity:1;stroke:#11111b;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" d="m -23.100875,7.7684101 1.051143,-0.521419 2.956266,0.6952336 -0.846667,0.4101848" id="path1092-6-8-1-1" />
<path style="fill:#848484;fill-opacity:1;stroke:#11111b;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" d="m -18.379091,7.6776414 0.890762,-0.5943131 v -2.778125 l -0.890762,0.5699141" id="path1092-6-1-9-2-5" />
<path style="fill:#848484;fill-opacity:1;stroke:#11111b;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" d="m -23.075446,6.4340997 1.11125,0.2645833 v 0.5291667 l -1.136679,0.5405604" id="path1092-6-8-2-9-5" />
<path id="rect3663-8-2-3-4" d="m -25.809474,3.3913913 2e-6,9.4883457 2.708597,0.51391 v -3.176006 l 3.112235,0.714375 V 8.3523289 L -23.100875,7.6644122 V 6.5134747 l 4.699735,1.0583334 V 4.8751174 Z" style="display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient1422);fill-opacity:1;fill-rule:evenodd;stroke:#1c5017;stroke-width:0.5291667;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
<path id="path1214-1-7" d="m -25.298034,4.0263914 v 8.4931246 l 1.693422,0.307975 V 9.5429543 l 3.0988,0.7276037 0.01215,-1.4816667 L -23.6443,8.0877456 V 5.8519574 l 4.709584,1.0583923 V 5.3162351 Z" style="fill:none;stroke:#a6e3a1;stroke-width:0.5291667;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</g>
</g>
</svg>