fix(web): render OSNAP menu symbols as SVG instead of font glyphs
The object-snap menu drew each mode's marker as a Unicode geometric glyph (◻ △ ◯ …). The web build bundles only Fira Sans, which lacks them, so they rendered as tofu boxes (#138). Add an SVG per snap mode under assets/icons/osnap, map them via icons::osnap, and draw them with the same tinted-SVG path the rest of the chrome uses — font-independent on every platform. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1
assets/icons/osnap/apparent.svg
Normal file
|
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="#000000" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"><path d="M7 7 L17 17 M17 7 L7 17"/><rect x="4" y="4" width="16" height="16" stroke-dasharray="2.5 2.5"/></svg>
|
||||
|
After Width: | Height: | Size: 266 B |
1
assets/icons/osnap/center.svg
Normal file
|
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="#000000" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="7"/></svg>
|
||||
|
After Width: | Height: | Size: 193 B |
1
assets/icons/osnap/endpoint.svg
Normal file
|
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="#000000" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"><rect x="5" y="5" width="14" height="14"/></svg>
|
||||
|
After Width: | Height: | Size: 204 B |
1
assets/icons/osnap/extension.svg
Normal file
|
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="#000000" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"><path d="M4 12 H7 M11 12 H13 M17 12 H20"/></svg>
|
||||
|
After Width: | Height: | Size: 204 B |
1
assets/icons/osnap/grid.svg
Normal file
|
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="#000000" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"><path d="M9 5 V19 M15 5 V19 M5 9 H19 M5 15 H19"/></svg>
|
||||
|
After Width: | Height: | Size: 211 B |
1
assets/icons/osnap/insertion.svg
Normal file
|
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="#000000" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"><rect x="5" y="5" width="11" height="11"/><rect x="9" y="9" width="10" height="10"/></svg>
|
||||
|
After Width: | Height: | Size: 246 B |
1
assets/icons/osnap/intersection.svg
Normal file
|
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="#000000" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"><path d="M6 6 L18 18 M18 6 L6 18"/></svg>
|
||||
|
After Width: | Height: | Size: 197 B |
1
assets/icons/osnap/midpoint.svg
Normal file
|
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="#000000" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"><path d="M12 5 L19 18 H5 Z"/></svg>
|
||||
|
After Width: | Height: | Size: 191 B |
1
assets/icons/osnap/nearest.svg
Normal file
|
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="#000000" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"><path d="M6 6 H18 L6 18 H18 Z"/></svg>
|
||||
|
After Width: | Height: | Size: 194 B |
1
assets/icons/osnap/node.svg
Normal file
|
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="#000000" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="7.5"/><path d="M7 7 L17 17 M17 7 L7 17"/></svg>
|
||||
|
After Width: | Height: | Size: 230 B |
1
assets/icons/osnap/parallel.svg
Normal file
|
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="#000000" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"><path d="M6 16 L13 6 M11 18 L18 8"/></svg>
|
||||
|
After Width: | Height: | Size: 198 B |
1
assets/icons/osnap/perpendicular.svg
Normal file
|
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="#000000" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"><path d="M6 4 V19 H20"/><path d="M6 13 H12 V19"/></svg>
|
||||
|
After Width: | Height: | Size: 211 B |
1
assets/icons/osnap/quadrant.svg
Normal file
|
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="#000000" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"><path d="M12 4 L20 12 L12 20 L4 12 Z"/></svg>
|
||||
|
After Width: | Height: | Size: 201 B |
1
assets/icons/osnap/tangent.svg
Normal file
|
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="#000000" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="15" r="5.5"/><path d="M4 8 H20"/></svg>
|
||||
|
After Width: | Height: | Size: 215 B |