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

393 lines
16 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
version="1.1"
id="svg2676"
height="64px"
width="64px"
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="defs2678">
<linearGradient
id="linearGradient4077">
<stop
id="stop4079"
offset="0"
style="stop-color:#45475a;stop-opacity:1;" />
<stop
id="stop4081"
offset="1"
style="stop-color:#1e1e2e;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient3836-0">
<stop
id="stop3838-2"
offset="0"
style="stop-color:#bc8009;stop-opacity:1;" />
<stop
id="stop3840-5"
offset="1"
style="stop-color:#f9e2af;stop-opacity:1;" />
</linearGradient>
<linearGradient
y2="5"
x2="-22"
y1="18"
x1="-18"
gradientTransform="matrix(0.83309445,0,0,0.83309445,-2.4108426,2.7318647)"
gradientUnits="userSpaceOnUse"
id="linearGradient3105"
xlink:href="#linearGradient3836-0" />
<linearGradient
y2="5"
x2="-22"
y1="18"
x1="-18"
gradientTransform="matrix(0.83309445,0,0,0.83309445,-2.4108426,2.7318647)"
gradientUnits="userSpaceOnUse"
id="linearGradient3105-3"
xlink:href="#linearGradient3836-0-6" />
<linearGradient
id="linearGradient3836-0-6">
<stop
id="stop3838-2-7"
offset="0"
style="stop-color:#bc8009;stop-opacity:1;" />
<stop
id="stop3840-5-5"
offset="1"
style="stop-color:#f9e2af;stop-opacity:1;" />
</linearGradient>
<linearGradient
y2="5"
x2="-22"
y1="18"
x1="-18"
gradientTransform="matrix(0.83309445,0,0,0.83309445,-2.4108426,2.7318647)"
gradientUnits="userSpaceOnUse"
id="linearGradient3105-1"
xlink:href="#linearGradient3836-0-2" />
<linearGradient
id="linearGradient3836-0-2">
<stop
id="stop3838-2-70"
offset="0"
style="stop-color:#bc8009;stop-opacity:1;" />
<stop
id="stop3840-5-9"
offset="1"
style="stop-color:#f9e2af;stop-opacity:1;" />
</linearGradient>
<linearGradient
y2="5"
x2="-22"
y1="18"
x1="-18"
gradientTransform="matrix(0.83309445,0,0,0.83309445,-2.4108426,2.7318647)"
gradientUnits="userSpaceOnUse"
id="linearGradient3105-6"
xlink:href="#linearGradient3836-0-1" />
<linearGradient
id="linearGradient3836-0-1">
<stop
id="stop3838-2-8"
offset="0"
style="stop-color:#bc8009;stop-opacity:1;" />
<stop
id="stop3840-5-7"
offset="1"
style="stop-color:#f9e2af;stop-opacity:1;" />
</linearGradient>
<linearGradient
xlink:href="#linearGradient3836-0-1"
id="linearGradient3246"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.83309445,0,0,0.83309445,-2.4108426,2.7318647)"
x1="-18"
y1="18"
x2="-22"
y2="5" />
<linearGradient
y2="5"
x2="-22"
y1="18"
x1="-18"
gradientTransform="matrix(0.83309445,0,0,0.83309445,-2.4108426,2.7318647)"
gradientUnits="userSpaceOnUse"
id="linearGradient3105-2"
xlink:href="#linearGradient3836-0-3" />
<linearGradient
id="linearGradient3836-0-3">
<stop
id="stop3838-2-75"
offset="0"
style="stop-color:#bc8009;stop-opacity:1;" />
<stop
id="stop3840-5-92"
offset="1"
style="stop-color:#f9e2af;stop-opacity:1;" />
</linearGradient>
<linearGradient
xlink:href="#linearGradient3836-0-3"
id="linearGradient3286"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.83309445,0,0,0.83309445,-2.4108426,2.7318647)"
x1="-18"
y1="18"
x2="-22"
y2="5" />
<linearGradient
gradientUnits="userSpaceOnUse"
y2="30.174515"
x2="459.69397"
y1="34.613808"
x1="458.2142"
id="linearGradient4091"
xlink:href="#linearGradient4077" />
<linearGradient
y2="30.174515"
x2="459.69397"
y1="34.613808"
x1="458.2142"
gradientUnits="userSpaceOnUse"
id="linearGradient4093-8"
xlink:href="#linearGradient4077-9" />
<linearGradient
id="linearGradient4077-9">
<stop
id="stop4079-6"
offset="0"
style="stop-color:#45475a;stop-opacity:1;" />
<stop
id="stop4081-0"
offset="1"
style="stop-color:#1e1e2e;stop-opacity:1;" />
</linearGradient>
<linearGradient
y2="30.174515"
x2="459.69397"
y1="34.613808"
x1="458.2142"
gradientUnits="userSpaceOnUse"
id="linearGradient4093-4"
xlink:href="#linearGradient4077-0" />
<linearGradient
id="linearGradient4077-0">
<stop
id="stop4079-9"
offset="0"
style="stop-color:#45475a;stop-opacity:1;" />
<stop
id="stop4081-4"
offset="1"
style="stop-color:#1e1e2e;stop-opacity:1;" />
</linearGradient>
<linearGradient
xlink:href="#linearGradient4077-0"
id="linearGradient4145"
gradientUnits="userSpaceOnUse"
x1="458.2142"
y1="34.613808"
x2="459.69397"
y2="30.174515" />
<linearGradient
gradientUnits="userSpaceOnUse"
y2="643.28284"
x2="155.01889"
y1="675.04034"
x1="230.03166"
id="linearGradient3819"
xlink:href="#linearGradient4077-0" />
<linearGradient
gradientUnits="userSpaceOnUse"
y2="643.28284"
x2="155.01889"
y1="675.04034"
x1="230.03166"
id="linearGradient3819-1"
xlink:href="#linearGradient4077-0-2" />
<linearGradient
id="linearGradient4077-0-2">
<stop
id="stop4079-9-7"
offset="0"
style="stop-color:#45475a;stop-opacity:1;" />
<stop
id="stop4081-4-7"
offset="1"
style="stop-color:#1e1e2e;stop-opacity:1;" />
</linearGradient>
<linearGradient
xlink:href="#linearGradient4077-0-2"
id="linearGradient3836"
gradientUnits="userSpaceOnUse"
x1="230.03166"
y1="675.04034"
x2="155.01889"
y2="643.28284" />
</defs>
<g
id="layer1">
<g
transform="matrix(0.9463094,0,0,0.9463094,-423.94991,-0.8705343)"
id="g3966">
<g
id="g3946">
<g
transform="matrix(0.8389287,0,0,0.8389287,70.961422,17.159235)"
id="g3801" />
<rect
y="37.90551"
x="455.40063"
height="23.248205"
width="4.2269473"
id="rect3151"
style="fill:#cdd6f4;fill-opacity:1;stroke:#1e1e2e;stroke-width:2.11347;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
y="37.90551"
x="504.01053"
height="23.248205"
width="4.2269473"
id="rect3151-2"
style="fill:#cdd6f4;fill-opacity:1;stroke:#1e1e2e;stroke-width:2.11347;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
y="33.678562"
x="456.45734"
height="4.2269483"
width="50.723419"
id="rect3151-2-9"
style="fill:#cdd6f4;fill-opacity:1;stroke:#1e1e2e;stroke-width:2.11347;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<g
transform="translate(-0.54837935,3.9118497)"
id="g3095">
<g
transform="matrix(0.63422399,0,0,0.63422399,419.26594,-6.6998585)"
id="g3827-1">
<g
transform="translate(31.322131,40.570289)"
id="g3797-9">
<g
transform="matrix(1.0929417,0,0,1.0929417,50.053814,46.859677)"
id="g3101">
<path
d="m -25.459643,3.2587172 c 3.290111,-3.84604244 9.075859,-4.2952646 12.920249,-1.0031745 3.8443912,3.29209 4.2904371,9.0778213 0.996064,12.9202143 -3.290111,3.846042 -9.075859,4.295264 -12.920249,1.003174 -3.844391,-3.29209 -4.290437,-9.0778215 -0.996064,-12.9202138 z"
id="path4250-71"
style="fill:#f9e2af;stroke:#2e2900;stroke-width:3.049;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
d="m -22.932948,5.4265662 c 5.057194,-5.91191643 13.9159765,1.674585 8.858783,7.5865018 -5.058132,5.899791 -13.916915,-1.686711 -8.858783,-7.5865018 z"
id="path4250-7-3"
style="fill:url(#linearGradient3105);fill-opacity:1;stroke:#f9e2af;stroke-width:3.049;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</g>
<g
transform="matrix(1.0944996,0,0,1.0944996,126.74426,46.82392)"
id="g3101-9">
<path
d="m -25.459643,3.2630561 c 3.290111,-3.8460424 9.075859,-4.2952646 12.920249,-1.0031745 3.8443912,3.2920901 4.2904371,9.0778214 0.996064,12.9202144 -3.290111,3.846042 -9.075859,4.295264 -12.920249,1.003174 -3.844391,-3.29209 -4.290437,-9.0778215 -0.996064,-12.9202139 z"
id="path4250-71-2"
style="fill:#f9e2af;stroke:#2e2900;stroke-width:3.04466;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
d="m -22.932948,5.4309051 c 5.057194,-5.9119164 13.9159765,1.674585 8.858783,7.5865019 -5.058132,5.899791 -13.916915,-1.686711 -8.858783,-7.5865019 z"
id="path4250-7-3-0"
style="fill:url(#linearGradient3246);fill-opacity:1;stroke:#f9e2af;stroke-width:3.04466;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</g>
<g
transform="matrix(1.0929417,0,0,1.0929417,88.374078,6.8354789)"
id="g3101-2">
<path
d="M -25.459643,6.3070256 A 9.1609585,9.1605407 0.02042846 1 1 -11.54333,18.224065 9.1609585,9.1605407 0.02042846 1 1 -25.459643,6.3070256 Z"
id="path4250-71-8"
style="fill:#f9e2af;stroke:#2e2900;stroke-width:3.049;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
d="m -22.932948,8.4748746 a 5.8316609,5.8316612 0 1 1 8.858783,7.5865014 5.8316609,5.8316612 0 0 1 -8.858783,-7.5865014 z"
id="path4250-7-3-9"
style="fill:url(#linearGradient3286);fill-opacity:1;stroke:#f9e2af;stroke-width:3.049;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</g>
</g>
</g>
</g>
<g
style="fill:url(#linearGradient4091);fill-opacity:1;stroke:#11111b;stroke-width:2.95953"
transform="matrix(0.71412546,0,0,0.71412546,121.83779,11.073436)"
id="g3805">
<path
style="fill:url(#linearGradient3819);fill-opacity:1;stroke:#11111b;stroke-width:24.2862;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path2901"
d="m 245.71428,655.2193 a 48.57143,48.57143 0 0 1 -48.57143,48.57143 48.57143,48.57143 0 0 1 -48.57143,-48.57143 48.57143,48.57143 0 0 1 48.57143,-48.57143 48.57143,48.57143 0 0 1 48.57143,48.57143 z"
transform="matrix(-0.09267867,-0.07912434,0.07912434,-0.09267867,436.47946,110.93746)" />
<path
style="fill:url(#linearGradient3836);fill-opacity:1;stroke:#11111b;stroke-width:24.2862;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path2901-9"
d="m 245.71428,655.2193 a 48.57143,48.57143 0 0 1 -48.57143,48.57143 48.57143,48.57143 0 0 1 -48.57143,-48.57143 48.57143,48.57143 0 0 1 48.57143,-48.57143 48.57143,48.57143 0 0 1 48.57143,48.57143 z"
transform="matrix(-0.09267867,-0.07912433,0.07912433,-0.09267867,504.54859,110.93745)" />
</g>
</g>
</g>
</g>
<metadata
id="metadata4038">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<cc:license
rdf:resource="" />
<dc:date>Mon Oct 10 13:44:52 2011 +0000</dc:date>
<dc:creator>
<cc:Agent>
<dc:title>[wmayer]</dc:title>
</cc:Agent>
</dc:creator>
<dc:rights>
<cc:Agent>
<dc:title>FreeCAD LGPL2+</dc:title>
</cc:Agent>
</dc:rights>
<dc:publisher>
<cc:Agent>
<dc:title>FreeCAD</dc:title>
</cc:Agent>
</dc:publisher>
<dc:identifier>FreeCAD/src/Mod/Draft/Resources/icons/Draft_Dimension.svg</dc:identifier>
<dc:relation>https://www.freecad.org/wiki/index.php?title=Artwork</dc:relation>
<dc:contributor>
<cc:Agent>
<dc:title>[agryson] Alexander Gryson</dc:title>
</cc:Agent>
</dc:contributor>
<dc:subject>
<rdf:Bag>
<rdf:li>line</rdf:li>
<rdf:li>dot</rdf:li>
<rdf:li>number</rdf:li>
</rdf:Bag>
</dc:subject>
<dc:description>A number floating above a line corresponding to the upper three sides of a rectangle with a dot at each endpoint and corner</dc:description>
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="text2"
style="font-size:28px;line-height:1.25;font-family:Evolventa;-inkscape-font-specification:Evolventa;letter-spacing:1px;fill:#cdd6f4;stroke:#1e1e2e;stroke-width:2;stroke-linecap:round;stroke-linejoin:round"
aria-label="1.00">
<path
style="font-weight:600;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';letter-spacing:-4px"
d="M 12.51,9.5799994 H 7.7500002 v -2.604 q 5.1519998,0 6.0759998,-3.556 H 16.43 V 23.271999 h -3.92 z"
id="path5" />
<path
style="font-weight:600;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold';letter-spacing:0px"
d="m 23.013993,19.183999 v 4.088 h -4.2 v -4.088 z"
id="path6" />
<path
style="font-weight:600;font-family:FreeSans;-inkscape-font-specification:'FreeSans Semi-Bold'"
d="m 35.41794,23.131999 q -1.372,0.784 -3.36,0.784 -1.988,0 -3.36,-0.784 -1.372,-0.812 -2.128,-2.296 -0.728,-1.484 -1.036,-3.248 -0.308,-1.792 -0.308,-4.116 0,-5.0679996 1.54,-7.7559996 1.54,-2.716 5.292,-2.716 1.96,0 3.304,0.756 1.372,0.728 2.128,2.184 0.756,1.456 1.064,3.304 0.336,1.8479996 0.336,4.3399996 0,2.24 -0.308,4.004 -0.308,1.736 -1.036,3.248 -0.728,1.484 -2.128,2.296 z m -0.448,-9.632 q 0,-4.0599996 -0.756,-5.6839996 -0.728,-1.652 -2.156,-1.652 -1.568,0 -2.24,1.596 -0.672,1.568 -0.672,5.6839996 0,2.856 0.364,4.48 0.364,1.596 0.952,2.128 0.616,0.504 1.596,0.504 0.952,0 1.54,-0.504 0.616,-0.504 0.98,-2.1 0.392,-1.624 0.392,-4.452 z m 17.015993,9.632 q -1.372,0.784 -3.36,0.784 -1.988,0 -3.36,-0.784 -1.372,-0.812 -2.128,-2.296 -0.728,-1.484 -1.036,-3.248 -0.308,-1.792 -0.308,-4.116 0,-5.0679996 1.54,-7.7559996 1.54,-2.716 5.292,-2.716 1.96,0 3.304,0.756 1.372,0.728 2.128,2.184 0.756,1.456 1.064,3.304 0.336,1.8479996 0.336,4.3399996 0,2.24 -0.308,4.004 -0.308,1.736 -1.036,3.248 -0.728,1.484 -2.128,2.296 z m -0.448,-9.632 q 0,-4.0599996 -0.756,-5.6839996 -0.728,-1.652 -2.156,-1.652 -1.568,0 -2.24,1.596 -0.672,1.568 -0.672,5.6839996 0,2.856 0.364,4.48 0.364,1.596 0.952,2.128 0.616,0.504 1.596,0.504 0.952,0 1.54,-0.504 0.616,-0.504 0.98,-2.1 0.392,-1.624 0.392,-4.452 z"
id="path7" />
</g>
</svg>