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

159 lines
5.2 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<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"
width="64"
height="64"
id="svg3085"
sodipodi:docname="TechDraw_Tile.svg"
inkscape:version="0.92.4 (unknown)">
<sodipodi:namedview
pagecolor="#cdd6f4"
bordercolor="#38394b"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1358"
inkscape:window-height="703"
id="namedview983"
showgrid="true"
inkscape:zoom="5.6789513"
inkscape:cx="4.5522619"
inkscape:cy="39.230476"
inkscape:window-x="0"
inkscape:window-y="26"
inkscape:window-maximized="1"
inkscape:current-layer="svg3085"
inkscape:snap-global="false">
<inkscape:grid
type="xygrid"
id="grid985" />
</sodipodi:namedview>
<defs
id="defs3087">
<linearGradient
id="linearGradient3836-0">
<stop
id="stop5008"
offset="0"
style="stop-color:#bc8009;stop-opacity:1;" />
<stop
id="stop5010"
offset="1"
style="stop-color:#f9e2af;stop-opacity:1;" />
</linearGradient>
<inkscape:path-effect
effect="skeletal"
id="path-effect3066"
is_visible="true"
pattern="M 0,0 H 1"
copytype="single_stretched"
prop_scale="1"
scale_y_rel="false"
spacing="0"
normal_offset="0"
tang_offset="0"
prop_units="false"
vertical_pattern="false"
fuse_tolerance="0" />
<linearGradient
id="linearGradient7597">
<stop
id="stop7599"
style="stop-color:#000003;stop-opacity:1"
offset="0" />
<stop
id="stop7601"
style="stop-color:#000003;stop-opacity:0"
offset="1" />
</linearGradient>
<linearGradient
id="linearGradient3893">
<stop
id="stop3895"
style="stop-color:#cdd6f4;stop-opacity:1"
offset="0" />
<stop
id="stop3897"
style="stop-color:#cdd6f4;stop-opacity:0"
offset="1" />
</linearGradient>
<linearGradient
x1="15.71482"
y1="22.299377"
x2="34.136208"
y2="22.299377"
id="linearGradient7603"
xlink:href="#linearGradient7597"
gradientUnits="userSpaceOnUse" />
<linearGradient
id="linearGradient3836-0-3">
<stop
style="stop-color:#bc8009;stop-opacity:1;"
offset="0"
id="stop3838-2" />
<stop
style="stop-color:#f9e2af;stop-opacity:1;"
offset="1"
id="stop3840-5" />
</linearGradient>
</defs>
<metadata
id="metadata3090">
<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>
</cc:Work>
</rdf:RDF>
</metadata>
<text
x="13.788582"
y="46.145554"
id="text3130"
xml:space="preserve"
style="color:#11111b;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10px;line-height:125%;font-family:Sans;-inkscape-font-specification:Sans;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#11111b;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.28200001;marker:none;enable-background:accumulate"><tspan
x="13.788582"
y="46.145554"
id="tspan3132" /></text>
<rect
style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#11111b;stroke-width:1.84126985;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect201"
width="56.15873"
height="56.15873"
x="3.9206352"
y="3.9206352"
ry="2.7619047" />
<rect
style="opacity:1;vector-effect:none;fill:#11111b;fill-opacity:1;stroke:#11111b;stroke-width:2.11221647;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect1008"
width="26.887783"
height="26.887783"
x="5.5148621"
y="5.0079365"
ry="0" />
<rect
ry="0"
y="31.597351"
x="31.92819"
height="26.887783"
width="26.887783"
id="rect1010"
style="opacity:1;vector-effect:none;fill:#11111b;fill-opacity:1;stroke:#11111b;stroke-width:2.11221647;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
</svg>