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

281 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="svg5821"
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="defs5823">
<linearGradient
id="linearGradient3036">
<stop
id="stop3038"
offset="0"
style="stop-color:#bc8009;stop-opacity:1" />
<stop
id="stop3040"
offset="1"
style="stop-color:#f9e2af;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient6349">
<stop
style="stop-color:#11111b;stop-opacity:1;"
offset="0"
id="stop6351" />
<stop
style="stop-color:#11111b;stop-opacity:0;"
offset="1"
id="stop6353" />
</linearGradient>
<linearGradient
id="linearGradient3377">
<stop
style="stop-color:#0845b0;stop-opacity:1;"
offset="0"
id="stop3379" />
<stop
style="stop-color:#5190f8;stop-opacity:1;"
offset="1"
id="stop3381" />
</linearGradient>
<linearGradient
xlink:href="#linearGradient3377"
id="linearGradient3383"
x1="901.1875"
y1="1190.875"
x2="1267.9062"
y2="1190.875"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1,0,0,1,2199.356,0)" />
<radialGradient
xlink:href="#linearGradient6349"
id="radialGradient6355"
cx="1103.6399"
cy="1424.4465"
fx="1103.6399"
fy="1424.4465"
r="194.40614"
gradientTransform="matrix(-1.4307499,-1.3605156e-7,-1.202713e-8,0.1264801,2674.7488,1244.2826)"
gradientUnits="userSpaceOnUse" />
<linearGradient
xlink:href="#linearGradient3893"
id="linearGradient3899"
x1="35"
y1="50"
x2="31"
y2="16"
gradientUnits="userSpaceOnUse" />
<linearGradient
id="linearGradient3893">
<stop
style="stop-color:#6c7086;stop-opacity:1"
offset="0"
id="stop3895" />
<stop
style="stop-color:#cdd6f4;stop-opacity:1"
offset="1"
id="stop3897" />
</linearGradient>
<linearGradient
xlink:href="#linearGradient3036"
id="linearGradient3919"
x1="9"
y1="50"
x2="5"
y2="38"
gradientUnits="userSpaceOnUse" />
<linearGradient
xlink:href="#linearGradient3036"
id="linearGradient1035"
gradientUnits="userSpaceOnUse"
x1="9"
y1="50"
x2="5"
y2="38" />
<linearGradient
xlink:href="#linearGradient3036"
id="linearGradient1039"
gradientUnits="userSpaceOnUse"
x1="9"
y1="50"
x2="5"
y2="38" />
<radialGradient
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.4307499,-1.3605156e-7,-1.202713e-8,0.1264801,2674.7488,1244.2826)"
r="194.40614"
fy="1424.4465"
fx="1103.6399"
cy="1424.4465"
cx="1103.6399"
id="radialGradient6355-9"
xlink:href="#linearGradient6349" />
<linearGradient
gradientUnits="userSpaceOnUse"
y2="9"
x2="28"
y1="39"
x1="19"
id="linearGradient3927"
xlink:href="#linearGradient3036"
gradientTransform="translate(-104,-70)" />
<linearGradient
xlink:href="#linearGradient3036"
id="linearGradient1035-6"
gradientUnits="userSpaceOnUse"
x1="9"
y1="50"
x2="5"
y2="38" />
</defs>
<metadata
id="metadata5826">
<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>[WandererFan]</dc:title>
</cc:Agent>
</dc:creator>
<dc:date>2016-04-27</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/TechDraw/Gui/Resources/icons/TechDraw_Dimension_Angle.svg</dc:identifier>
<dc:rights>
<cc:Agent>
<dc:title>FreeCAD LGPL2+</dc:title>
</cc:Agent>
</dc:rights>
<cc:license
rdf:resource="https://www.gnu.org/licenses/lgpl-3.0.en.html">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"
transform="matrix(0.95985006,0,0,0.89564568,3.0487634,3.4784032)">
<g
style="display:inline;opacity:1"
transform="translate(50.675539,33.702155)"
id="g1245">
<path
style="display:inline;fill:none;stroke:#585b70;stroke-width:2.15705;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="M -43,8 -2.512907,22.276442"
id="path3039-7-0-4" />
<path
style="display:inline;opacity:1;fill:none;stroke:#45475a;stroke-width:2.15705;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="M -43.717323,10.034284 -3.2302303,24.310726"
id="path2" />
<path
style="display:inline;fill:none;stroke:#585b70;stroke-width:2.15705;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m -42,6 22.741893,-32.286786"
id="path3039-7-4-9-8" />
<path
style="display:inline;fill:none;stroke:#45475a;stroke-width:2.15705;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="M -40.236505,7.2421555 -17.494612,-25.04463"
id="path1" />
</g>
<g
transform="translate(0,-0.57357202)"
id="g1019">
<ellipse
cy="44.699944"
cx="11.409315"
style="fill:#f9e2af;fill-opacity:1;stroke:#664506;stroke-width:2.15688;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path3037"
rx="8.2980194"
ry="8.9701748" />
<path
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:url(#linearGradient3919);fill-opacity:1;stroke:#f9e2af;stroke-width:2.15705;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#11111b;stop-opacity:1"
id="ellipse7"
d="m 11.410156,37.886719 c 3.283751,0 6.140625,2.970185 6.140625,6.8125 0,3.842314 -2.857506,6.814453 -6.140625,6.814453 -3.2831188,0 -6.1425779,-2.972723 -6.1425779,-6.814453 0,-3.84173 2.8588271,-6.8125 6.1425779,-6.8125 z" />
</g>
<g
transform="translate(35.225475,7.7918478)"
id="g1025">
<ellipse
cy="44.150116"
cx="10.56421"
id="path1021"
style="fill:#f9e2af;fill-opacity:1;stroke:#664506;stroke-width:2.15688;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
rx="8.2980194"
ry="8.9701748" />
<path
id="ellipse8"
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:url(#linearGradient1039);fill-opacity:1;stroke:#f9e2af;stroke-width:2.15705;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#11111b;stop-opacity:1"
d="m 10.564453,37.335937 c 3.283119,0 6.140625,2.972139 6.140625,6.814454 0,3.842314 -2.857506,6.814453 -6.140625,6.814453 -3.2831189,0 -6.142578,-2.972723 -6.142578,-6.814453 0,-3.84173 2.8594591,-6.814454 6.142578,-6.814454 z" />
</g>
<g
transform="translate(18.354306,-33.267178)"
id="g1031"
style="display:inline">
<ellipse
cy="45.014675"
cx="10.766109"
style="fill:#f9e2af;fill-opacity:1;stroke:#664506;stroke-width:2.15688;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path1027"
rx="8.2980194"
ry="8.9701748" />
<path
style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:url(#linearGradient1035);fill-opacity:1;stroke:#f9e2af;stroke-width:2.15705;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#11111b;stop-opacity:1"
id="ellipse9"
d="m 10.765625,38.201172 c 3.283119,0 6.142578,2.972723 6.142578,6.814453 0,3.84173 -2.858827,6.8125 -6.142578,6.8125 -3.2837511,0 -6.140625,-2.970185 -6.140625,-6.8125 0,-3.842315 2.857506,-6.814453 6.140625,-6.814453 z" />
</g>
<g
id="g3024-7"
transform="matrix(1.1146129,0,0,1.1098604,-55.876482,-15.791192)"
style="stroke:#664506">
<path
id="path3770-1-3"
d="m 84.507061,34.690068 2.04692,-3.436585 C 92,34 97,43 91.825155,50.852457 l -3.607584,-1.727811 1.993741,12.042631 10.632798,-5.995289 -3.607579,-1.727812 C 105,46 98,30 89.624358,26.098604 l 2.046919,-3.436586 -12.173573,0.896727 z"
style="color:#11111b;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#f8c459;fill-opacity:1;fill-rule:nonzero;stroke:#664506;stroke-width:1.93938;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;enable-background:accumulate" />
<path
id="path3864"
d="m 82.42256,26.464811 3.10796,6.506965"
style="fill:none;stroke:#f9e2af;stroke-width:1.93938;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
id="path3864-4"
d="M 91.042415,55.771462 90.021363,49.988551"
style="fill:none;stroke:#f9e2af;stroke-width:3.87877;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" />
<path
id="path3866"
d="M 80.704267,25.441352 C 98.582594,33.832987 97.513308,48 91.936325,53.148856"
style="fill:none;stroke:#f9e2af;stroke-width:1.93938;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
<path
id="path3868"
d="M 86.55398,31.253483 85,28"
style="fill:none;stroke:#f9e2af;stroke-width:1.93938;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
id="path3868-8"
d="M 94.57349,49.227829 90.166916,58.93721"
style="fill:none;stroke:#f9e2af;stroke-width:1.93938;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
id="path3770-9"
d="m 84.507061,34.690068 2.04692,-3.436585 C 92,34 97,43 91.825155,50.852457 l -3.607584,-1.727811 1.993741,12.042631 10.632798,-5.995289 -3.607579,-1.727812 C 105,46 98,30 89.624358,26.098604 l 2.046919,-3.436586 -12.173573,0.896727 z"
style="color:#11111b;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#664506;stroke-width:1.93938;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;enable-background:accumulate" />
</g>
</g>
</svg>