openvibers/openvibe.shared glyphs.js
glyphs.js
| 1 | /** |
| 2 | * openvibe-shared/glyphs.js — the OpenVibe glyphs: one registry for every icon the network draws (plan L32; the owner, |
| 3 | * 2026-10-31: "our own custom icon system… replace Font Awesome… with our own… through openvibe.design"). |
| 4 | * |
| 5 | * One hand for all of them, the mark's: a 24-unit grid, 2-unit round strokes, nothing filled but a dot. The kit's icons |
| 6 | * (kit.js) are the first of them; the drawings below fill in what the network asked Font Awesome for most, and FA |
| 7 | * maps every Font Awesome name in use to the glyph that stands for it, so a page can drop Font Awesome as soon as its |
| 8 | * names are covered. Brand logos (GitHub, YouTube, Discord…) are not ours to redraw and stay as they are. |
| 9 | * |
| 10 | * const glyphs = require('openvibe-shared/glyphs'); |
| 11 | * glyphs.NAMES every glyph's name |
| 12 | * glyphs.path(name) its drawing (the inside of a 24-unit SVG), or '' |
| 13 | * glyphs.svg(name, { size, title, style }) a standalone SVG, or '' |
| 14 | * glyphs.fromFa('fa-tower-broadcast') → 'live' the glyph for a Font Awesome name (with or without fa-), or null |
| 15 | * glyphs.markup('live', { title, cls }) <i data-ov-icon="live">, OpenVibe's own markup (4.231.0) |
| 16 | * glyphs.fromFaClasses('fa-solid fa-eye me-2') { icon: 'eye', cls: ['ovg-fill', 'me-2'], … } (scripts/fa-to-ov.js) |
| 17 | * glyphs.FA { 'tower-broadcast': 'live', … } |
| 18 | * glyphs.META[name] { by, tags } who drew it and what it is for (openvibe.design/icons) |
| 19 | * |
| 20 | * In a page, ov-glyphs.js (built from this file by scripts/build-glyphs.js) swaps <i class="fa-… fa-x"> for the glyph, |
| 21 | * in place, and leaves a name it does not know to Font Awesome. |
| 22 | */ |
| 23 | (function (root, factory) { |
| 24 | const api = factory(typeof module === 'object' && module.exports ? require('./kit') : root.OpenVibeKit); |
| 25 | if (typeof module === 'object' && module.exports) { module.exports = api; return; } |
| 26 | root.OpenVibeGlyphs = api; |
| 27 | })(typeof globalThis !== 'undefined' ? globalThis : this, function (kit) { |
| 28 | ; |
| 29 | // ── The drawings that join the kit's: 24-unit grid, strokes only (round caps and joins), a dot is a 0.01 line ── |
| 30 | const DRAWN = { |
| 31 | scissors: '<circle cx="6" cy="7" r="2.6"/><circle cx="6" cy="17" r="2.6"/><path d="M8.2 8.6 20 18M8.2 15.4 20 6"/>', |
| 32 | tree: '<path d="M12.1 3.6L7 10.6h2.8L5.6 16.6h13l-4.2-6h2.8ZM12.1 16.6v3.7"/>', |
| 33 | pin: '<path d="M12 20.7s-6.2-5.4-6.2-10.5a6.2 6.2 0 0 1 12.4 0C18.2 15.2 12 20.7 12 20.7Z"/><circle cx="12" cy="10" r="2.3"/>', |
| 34 | volume: '<path d="M3.5 9.5h3.7L11.8 5.8v12.6l-4.7-3.7H3.5Z"/><path d="M15.5 9.5a3.7 3.7 0 0 1 0 5.2M18.1 6.9a7.3 7.3 0 0 1 0 10.5"/>', |
| 35 | mute: '<path d="M3.9 9.4h3.6L12.2 5.8v12.4l-4.6-3.6H3.9Z"/><path d="M16.3 9.9l4.1 4.1M20.5 9.9l-4.1 4.1"/>', |
| 36 | tent: '<path d="M3.5 18.4h17M12 4.9L4.8 18.4M12 4.9l7.2 13.4M12 12.5L9.3 18.4M12 12.5l2.7 5.8"/>', |
| 37 | food: '<path d="M8.2 4v6.5M6.3 4v4.2a1.9 1.9 0 0 0 3.7 0V4M8.2 10.5v10.2M17.5 20.8V4c-1.9 1.1-3 3.3-3 6.5v2.8H17.5"/>', |
| 38 | train: '<rect x="6.4" y="3.8" width="11.2" height="12.1" rx="2.8"/><path d="M6.4 10.3h11.2M9.2 13.1h0M14.8 13.1h0M8.7 20.5l1.9-3.3M15.3 20.5l-1.9-3.3"/>', |
| 39 | water: '<path d="M3.5 10.2c2.1 0 2.1-1.8 4.3-1.8s2.1 1.8 4.2 1.8s2.1-1.8 4.3-1.8s2.1 1.8 4.2 1.8M3.5 15.6c2.1 0 2.1-1.8 4.3-1.8s2.1 1.8 4.2 1.8s2.1-1.8 4.3-1.8s2.1 1.8 4.2 1.8"/>', |
| 40 | dish: '<path d="M3.8 9.2A10.9 10.9 0 0 0 14.8 20.2Z"/><path d="M9 15l5.2-5.2M14.8 3.4a5.8 5.8 0 0 1 5.8 5.8M14.8 7.5a1.8 1.8 0 0 1 1.8 1.8"/>', |
| 41 | history: '<path d="M3.8 12.1a8.3 8.3 0 1 0 2.5-5.9L3.8 8.5M3.8 4.2v4.2h4.2"/><path d="M12 7.9v4.3l3.1 1.9"/>', |
| 42 | film: '<rect x="3.5" y="4.4" width="17" height="15.1" rx="1.9"/><path d="M7.7 4.4v15.1M16.3 4.4v15.1M3.5 9.2h4.3M3.5 14.8h4.3M16.3 9.2H20.5M16.3 14.8H20.5"/>', |
| 43 | circle: '<circle cx="12" cy="12" r="8.5"/>', |
| 44 | sliders: '<path d="M3.5 6.8h10M18.7 6.8H20.3M3.5 17.2h3.6M12.4 17.2H20.3"/><circle cx="16.2" cy="6.8" r="2.4"/><circle cx="9.8" cy="17.2" r="2.4"/>', |
| 45 | leaf: '<path d="M3.8 20.1c0-9.5 5.6-15.2 16.7-16.7c-1 11.1-6.7 16.7-16.7 16.7ZM3.8 20.1l8.9-8.9"/>', |
| 46 | clipboard: '<rect x="5.7" y="5" width="12.6" height="15.5" rx="1.9"/><path d="M9.1 5V3.5h5.8V5M9.1 10.8h5.8M9.1 14.7h3.9"/>', |
| 47 | gauge: '<path d="M3.6 16.9a8.4 8.4 0 1 1 16.7 0"/><path d="M11.9 13.2l4.1-5.7"/><circle cx="11.9" cy="13.2" r="1.4"/>', |
| 48 | save: '<path d="M4.7 3.5h11.5l3.2 3.2v13.6H4.7Z"/><path d="M7.8 3.5v5.2h7.3V3.5M7.8 20.2v-6.3h8.4v6.3"/>', |
| 49 | plug: '<path d="M9.2 4v4.6M14.8 4v4.6M6.9 8.7h10.2v2.8a5.1 5.1 0 0 1-10.2 0ZM12 16.6V20.7"/>', |
| 50 | // 4.101.0: a jigsaw piece (a browser extension, an add-on, a plug-in), knobs out on top and right, notches in. |
| 51 | puzzle: '<path d="M3.8 7h4.2a2.6 2.6 0 1 1 4.8 0h4.2v4.2a2.6 2.6 0 1 1 0 4.8v4.2h-4.2a2.6 2.6 0 1 0-4.8 0H3.8v-4.2a2.6 2.6 0 1 0 0-4.8Z"/>', |
| 52 | compress: '<path d="M8.8 3.5v5.3H3.5M15.2 3.5v5.3h5.3M8.8 20.5v-5.3H3.5M15.2 20.5v-5.3h5.3"/>', |
| 53 | expand: '<path d="M3.5 8.8V3.5h5.3M20.5 8.8V3.5h-5.3M3.5 15.2v5.3h5.3M20.5 15.2v5.3h-5.3"/>', |
| 54 | care: '<path d="M12 10.6s-3.8-2.3-3.8-5a2.1 2.1 0 0 1 3.8-1.3a2.1 2.1 0 0 1 3.8 1.3c0 2.7-3.8 5-3.8 5Z"/><path d="M3.5 13.5v6.5M3.5 15h3.3l3.4 2.8h7.7a1.8 1.8 0 0 0 0-3.6h-4.1"/>', |
| 55 | city: '<path d="M3.5 19.7h17M5.4 19.7V8.3h4.7v11.3M10.1 19.7V3.6h5.7v16.1M15.8 19.7v-7.6h3.3v7.6M7.8 11.2h0M7.8 14.5h0M12.9 6.9h0M12.9 10.2h0M12.9 13.5h0"/>', |
| 56 | wrench: '<path d="M14.6 3.6a5.2 5.2 0 0 0-4.6 7.3L3.7 17.3V20.3h3.1l6.4-6.4a5.2 5.2 0 0 0 7.3-4.6l-3.2 1.2l-2.5-2.5l1.2-3.2Z"/>', |
| 57 | music: '<path d="M8.6 17.7V5.6l11.1-2.1v12.2"/><circle cx="6" cy="17.7" r="2.6"/><circle cx="17.2" cy="15.7" r="2.6"/>', |
| 58 | 'eye-off': '<path d="M10.6 6.1c0.5-0.1 0.9-0.1 1.4-0.1c5.2 0 8.5 6 8.5 6s-0.6 1.1-1.7 2.4M6.9 7.6C4.7 9.2 3.5 12 3.5 12s3.3 6 8.5 6c1.6 0 3-0.5 4.2-1.2"/><path d="M10 10a2.8 2.8 0 0 0 4 4M4.5 4.5l15 15"/>', |
| 59 | plane: '<path d="M20 4L3.5 10.8l6.6 3.1l3.1 6.6Z"/><path d="M10.1 13.9l9.9-9.9"/>', |
| 60 | fire: '<path d="M12 20.5a6.8 6.8 0 0 0 6.8-6.8c0-4.3-2.9-6.8-4.2-10.1c-2 2.3-2.6 4.5-2.6 4.5S10.7 5.8 9.5 3.8C7 6.6 5.2 10 5.2 13.7a6.8 6.8 0 0 0 6.8 6.8Z"/>', |
| 61 | nodes: '<circle cx="12" cy="5.4" r="2.1"/><circle cx="5.8" cy="17.9" r="2.1"/><circle cx="18.2" cy="17.9" r="2.1"/><path d="M11 7.4L6.8 15.9M13 7.4l4.3 8.6M7.9 17.9h8.3"/>', |
| 62 | // Two towers, the cable between them and the deck (2026-11-11 review: the old one read as a bank). |
| 63 | bridge: '<path d="M3.5 16h17M7 19.5V5M17 19.5V5"/><path d="M3.5 10c1.8 0 2.8-2.3 3.5-5c2.4 5.2 7.6 5.2 10 0c.7 2.7 1.7 5 3.5 5"/><path d="M12 10.9V16"/>', |
| 64 | 'check-circle': '<circle cx="12" cy="12" r="8.5"/><path d="m8 12.4 2.8 2.8L16 9.6"/>', |
| 65 | 'x-circle': '<circle cx="12" cy="12" r="8.5"/><path d="m9 9 6 6M15 9l-6 6"/>', |
| 66 | 'alert-circle': '<circle cx="12" cy="12" r="8.5"/><path d="M12 7.5v5.5M12 16.5h.01"/>', |
| 67 | news: '<path d="M3.5 3.5h13.8v14.9a2.1 2.1 0 0 0 2.1 2.1H5.6a2.1 2.1 0 0 1-2.1-2.1Z"/><path d="M17.3 7.7h3.2v10.6a2.1 2.1 0 0 1-2.1 2.1M7.2 7.7h6.4M7.2 11.5h6.4M7.2 15.2h3.7"/>', |
| 68 | camera: '<path d="M3.5 8h3.4l1.8-2.8h6.6L17.1 8h3.4v11.5h-17Z"/><circle cx="12" cy="13.3" r="3.4"/>', |
| 69 | crown: '<path d="M3.5 8.3L7.8 12L11.9 5.5l4.2 6.5l4.2-3.7L18.4 18.1H5.4Z"/>', |
| 70 | wallet: '<path d="M3.5 6.8A2.7 2.7 0 0 1 6.2 4.2H18.4v4.2M3.5 6.8V18a2.1 2.1 0 0 0 2.1 2.1h14.9V8.4H6.2A2.7 2.7 0 0 1 3.5 6.8Z"/><path d="M16.2 14.2h0"/>', |
| 71 | chip: '<rect x="7.3" y="7.3" width="9.4" height="9.4" rx="1.4"/><path d="M10.1 3.5v3.8M13.9 3.5v3.8M10.1 16.7v3.8M13.9 16.7v3.8M3.5 10.1h3.8M3.5 13.9h3.8M16.7 10.1h3.8M16.7 13.9h3.8"/>', |
| 72 | id: '<rect x="3.7" y="5.5" width="16.7" height="13" rx="1.9"/><circle cx="9.2" cy="11" r="1.9"/><path d="M6.4 15.6c0.5-1.4 1.6-2.2 2.8-2.2s2.4 0.8 2.8 2.2M14.8 10.1h2.8M14.8 13.4h2.8"/>', |
| 73 | brain: '<path d="M9.2 4.2a2.8 2.8 0 0 0-2.8 2.8a2.8 2.8 0 0 0-1.9 4.8a2.8 2.8 0 0 0 1.9 4.8a2.8 2.8 0 0 0 5.8 1.1V5.8A1.9 1.9 0 0 0 9.2 4.2ZM14.9 4.2a2.8 2.8 0 0 1 2.8 2.8a2.8 2.8 0 0 1 1.9 4.8a2.8 2.8 0 0 1-1.9 4.8a2.8 2.8 0 0 1-5.8 1.1"/>', |
| 74 | snow: '<path d="M12 3.5v17M4.6 7.8l14.7 8.5M4.6 16.3l14.7-8.5M9.6 4.9L12 7.3l2.4-2.4M9.6 19.1L12 16.7l2.4 2.4"/>', |
| 75 | mountain: '<path d="M3.6 17.5L9.3 6l3.7 6.3L15.5 9.1L20.3 17.5Z"/>', |
| 76 | 'mic-off': '<rect x="9.2" y="3.6" width="5.7" height="10.4" rx="2.8"/><path d="M5.5 11.1a6.6 6.6 0 0 0 11 5M18.7 11.1c0 0.8-0.1 1.5-0.4 2.2M12.1 17.7v2.8M4.5 4.5l15.1 15.1"/>', |
| 77 | database: '<ellipse cx="12" cy="6.4" rx="6.6" ry="2.8"/><path d="M5.4 6.4v11.3c0 1.6 2.9 2.8 6.6 2.8s6.6-1.2 6.6-2.8V6.4M5.4 12c0 1.6 2.9 2.8 6.6 2.8s6.6-1.2 6.6-2.8"/>', |
| 78 | layers: '<path d="M12 5.4l8.3 4.6l-8.3 4.6l-8.3-4.6Z"/><path d="M3.8 14l8.3 4.6l8.3-4.6"/>', |
| 79 | hash: '<path d="M5 9h15M4 15h15M10 3.5 8 20.5M16 3.5l-2 17"/>', |
| 80 | text: '<path d="M5.2 20.3L10.9 3.6h2.1l5.7 16.7M7.4 14h9.2"/>', |
| 81 | enter: '<path d="M13.8 3.6h4.1a2.1 2.1 0 0 1 2.1 2.1v12.5a2.1 2.1 0 0 1-2.1 2.1h-4.1M9.5 7.9l4.1 4.1l-4.1 4.1M13.8 12H3.2"/>', |
| 82 | language: '<path d="M4.6 5.4h8.4M8.8 3.6v1.9M6.4 5.4c0.5 2.8 2.3 5.6 5.6 7M11.1 5.4c-0.6 3.2-2.6 6.3-6 7.9M12 20.3l3.7-8.4l3.7 8.4M13.3 17.5h4.8"/>', |
| 83 | idea: '<path d="M9.1 17.6h5.8M10.1 20.5h3.9M8.7 14.3A5.8 5.8 0 1 1 15.2 14.3c-0.7 0.6-1.4 1.5-1.4 2.3h-3.9c0-0.9-0.7-1.7-1.4-2.3Z"/>', |
| 84 | dollar: '<path d="M15.7 8C15 6.6 13.7 5.6 12 5.6C9.6 5.6 8.3 6.9 8.3 8.5s1.6 2.5 3.7 2.8s3.7 1.3 3.7 3.1s-1.5 3-3.7 3c-1.8 0-3.2-0.9-3.7-2.4M12 3.7v16.7"/>', |
| 85 | target: '<circle cx="12" cy="12" r="8.5"/><circle cx="12" cy="12" r="5"/><circle cx="12" cy="12" r="1.5"/>', |
| 86 | 'arrow-right': '<path d="M3.2 12h16.7M13.7 5.7l6.3 6.3l-6.3 6.3"/>', 'arrow-left': '<path d="M20.8 12H4M10.3 5.7l-6.3 6.3l6.3 6.3"/>', |
| 87 | 'arrow-up': '<path d="M12 20.8V4M5.7 10.3l6.3-6.3l6.3 6.3"/>', 'arrow-down': '<path d="M12 3.2v16.7M5.7 13.7l6.3 6.3l6.3-6.3"/>', |
| 88 | shirt: '<path d="M8.2 3.8L3.7 6.6l1.8 3.8l1.8-0.9v11.2h9.3V9.4l1.8 0.9l1.8-3.8l-4.7-2.7c-0.5 1.4-1.8 2.3-3.8 2.3S8.8 5.1 8.2 3.8Z"/>', |
| 89 | route: '<circle cx="6" cy="18" r="2.4"/><circle cx="18" cy="6" r="2.4"/><path d="M8.4 18H16a3 3 0 0 0 0-6H8a3 3 0 0 1 0-6h7.6"/>', |
| 90 | reply: '<path d="M9.2 5.8L4 11l5.1 5.1M4 11h10.3a6.2 6.2 0 0 1 6.2 6.2v1"/>', |
| 91 | smile: '<circle cx="12" cy="12" r="8.5"/><path d="M8.5 14a4 4 0 0 0 7 0M9 9.5h.01M15 9.5h.01"/>', |
| 92 | archive: '<rect x="3.5" y="4.8" width="17" height="4.7" rx="0.9"/><path d="M5.4 9.5v9.4a0.9 0.9 0 0 0 0.9 0.9h11.3a0.9 0.9 0 0 0 0.9-0.9V9.5M10.1 13.3h3.8"/>', |
| 93 | 'user-check': '<circle cx="9.2" cy="8.1" r="2.8"/><path d="M4 19c0-2.9 2.4-4.9 5.4-4.9s5.4 1.9 5.4 4.9M15.4 10.8l1.8 1.8l3.6-3.6"/>', |
| 94 | ticket: '<path d="M3.6 7.4h16.7v2.8a1.9 1.9 0 0 0 0 3.7v2.8H3.6v-2.8a1.9 1.9 0 0 0 0-3.7Z"/><path d="M13.8 7.4v9.3"/>', |
| 95 | tack: '<path d="M9.3 4h5.6l-0.9 4.6l2.8 2.8H7.4l2.8-2.8ZM12 11.4v9.3"/>', |
| 96 | store: '<path d="M3.7 8.8L5.3 3.7h13.4L20.3 8.8M3.7 8.8h16.5v1.6a2.8 2.8 0 0 1-5.4 0a2.8 2.8 0 0 1-5.6 0A2.8 2.8 0 0 1 3.7 10.4ZM4.8 12.9v7.2h14.5v-7.2M9.9 20.1v-4.1h4.1v4.1"/>', |
| 97 | keyboard: '<rect x="3.5" y="6.6" width="17" height="10.7" rx="1.8"/><path d="M6.6 10.2h0M9.3 10.2h0M12 10.2h0M14.7 10.2h0M17.4 10.2h0M8.4 13.8h7.2"/>', |
| 98 | gavel: '<path d="M13.7 4.1l5.1 5.1M10.5 7.4l5.1 5.1M12.1 5.8l-5.6 5.6l5 5l5.6-5.6M3.5 19.5l5.9-5.9M13.7 19.5h6.5"/>', |
| 99 | drop: '<path d="M12 3.5s5.9 6.4 5.9 10.8a5.9 5.9 0 0 1-11.8 0c0-4.4 5.9-10.8 5.9-10.8Z"/>', |
| 100 | wifi: '<path d="M3.7 9.4a12.4 12.4 0 0 1 16.7 0M6.4 12.5a8.4 8.4 0 0 1 11.5 0M9.1 15.6a4.4 4.4 0 0 1 6.2 0M12.1 18.6h0"/>', |
| 101 | branch: '<circle cx="6.7" cy="5.6" r="1.9"/><circle cx="6.7" cy="18.6" r="1.9"/><circle cx="17.9" cy="7.5" r="1.9"/><path d="M6.7 7.5v9.3M17.9 9.3c0 5.1-6 3.7-10.2 7.9"/>', |
| 102 | // 2026-11-12: the tools, machines and creative shapes the icon audit found missing (plan L32 I1/I2). |
| 103 | binoculars: '<rect x="4.4" y="7.4" width="6" height="12.8" rx="3"/><rect x="13.6" y="7.4" width="6" height="12.8" rx="3"/><path d="M10.4 10.2h3.2M10.4 15.8h3.2"/><path d="M6.9 7.4V5.7a1.6 1.6 0 0 1 3.2 0v1.7M13.9 7.4V5.7a1.6 1.6 0 0 1 3.2 0v1.7"/>', |
| 104 | telescope: '<path d="M3.1 11.4l14.4-7.2l2.5 5l-14.4 7.2Z"/><path d="M9.1 14.9l-1.6 4.7M9.1 14.9l5.5 4.7M8.2 17.3h6.4"/>', |
| 105 | microscope: '<path d="M3.4 19.9h17.2M6.2 19.9v-3.4h5.8v3.4M9.2 16.5h8.6M14.1 16.5V7.4M14.1 7.4a4 4 0 0 1 4-4h1.2M19.3 3.4v4.8M9.9 9.9h3.6"/>', |
| 106 | gpu: '<rect x="3.5" y="5.5" width="14.4" height="10" rx="1.6"/><circle cx="8.2" cy="10.5" r="2.8"/><path d="M8.2 8.3v4.4M6 10.5h4.4"/><path d="M17.9 8h2.6v5h-2.6M3.5 15.5v2.5"/>', |
| 107 | cpu: '<rect x="7" y="7" width="10" height="10" rx="1.6"/><rect x="10.4" y="10.4" width="3.2" height="3.2" rx="0.6"/><path d="M9.5 3.5v3.5M14.5 3.5v3.5M9.5 17v3.5M14.5 17v3.5M3.5 9.5h3.5M3.5 14.5h3.5M17 9.5h3.5M17 14.5h3.5"/>', |
| 108 | memory: '<rect x="3.5" y="5.5" width="17" height="7.5" rx="1.2"/><path d="M3.5 15v3.5M6.6 15v3.5M9.7 15v3.5M12.8 15v3.5M15.9 15v3.5M19 15v3.5"/><path d="M6.7 8h4.8M6.7 10.8h3M13.4 8h3.9M13.4 10.8h2.4"/>', |
| 109 | joystick: '<path d="M4.3 19.6h15.4l-2.6-7.3H6.9Z"/><path d="M12 12.3V7.6"/><circle cx="12" cy="5.4" r="2.1"/><circle cx="8.3" cy="16.6" r="1.1"/><circle cx="15.7" cy="16.6" r="1.1"/>', |
| 110 | wand: '<path d="M3.7 20.3L13.9 10.1M12.1 8.3l3.6 3.6"/><path d="M17.9 3.7l0.9 2.3l2.3 0.9l-2.3 0.9l-0.9 2.3l-0.9-2.3l-2.3-0.9l2.3-0.9Z"/>', |
| 111 | 'layers-plus': '<path d="M3.8 9.8l8.2-4.8l8.2 4.8M3.8 14l8.2 4.8l4.8-2.8"/><path d="M18.6 14.4v5M16.1 16.9h5"/>', |
| 112 | // 4.63.0: the Font Awesome names the network still used most (openvibe.design/icons' "Still Font Awesome", 10-31). |
| 113 | restroom: '<circle cx="7.1" cy="5.3" r="1.7"/><circle cx="16.4" cy="5.3" r="1.7"/><path d="M11.7 3.6v16.7M5.6 20.3v-5.1H4.7V10.6A1.4 1.4 0 0 1 6.1 9.2h1.9a1.4 1.4 0 0 1 1.4 1.4v4.6H8.5V20.3M15.5 20.3v-3.7h-2.4l1.9-6.1a0.9 0.9 0 0 1 0.9-0.9h0.9a0.9 0.9 0 0 1 0.9 0.9l1.9 6.1H17.3v3.7"/>', |
| 114 | shelter: '<path d="M3.7 10.5L12 4l8.3 6.5M5.9 9.2v10.4M18.1 9.2v10.4"/><circle cx="12" cy="11" r="1.6"/><path d="M9.8 19.6v-3.9a2.2 2.2 0 0 1 4.3 0V19.6"/>', |
| 115 | 'hot-tub': '<circle cx="8.6" cy="5.8" r="1.7"/><path d="M3.8 11.9h16.6v3.3a4.2 4.2 0 0 1-4.2 4.2h-8.4A4.2 4.2 0 0 1 3.8 15.2ZM6.8 11.9v-1.4A2.4 2.4 0 0 1 8.9 8.2H9.4M13.7 9.5c0.8-0.9-0.8-1.9 0-2.8M17.3 9.5c0.8-0.9-0.8-1.9 0-2.8"/>', |
| 116 | umbrella: '<path d="M3.8 12.5a8.4 8.4 0 0 1 16.6 0ZM12.1 12.5v6a1.9 1.9 0 0 1-3.7 0M12.1 4.1v0"/>', |
| 117 | parking: '<rect x="3.7" y="3.7" width="16.7" height="16.7" rx="3"/><path d="M9.6 17V7.2h3.4a3 3 0 0 1 0 5.9H9.6"/>', |
| 118 | skull: '<path d="M12 3.7a6.5 6.5 0 0 0-6.5 6.5c0 2.2 1 3.6 2.4 4.6v2.8h8.4v-2.8c1.3-1 2.4-2.6 2.4-4.6a6.5 6.5 0 0 0-6.5-6.5Z"/><circle cx="9.6" cy="10.7" r="1.3"/><circle cx="14.4" cy="10.7" r="1.3"/><path d="M10.6 17.7v2.8M13.4 17.7v2.8"/>', |
| 119 | group: '<path d="M3.5 7.3V3.5h3.8M16.7 3.5h3.8v3.8M20.5 16.7v3.8h-3.8M7.3 20.5H3.5v-3.8"/><rect x="7.3" y="7.3" width="5.7" height="4.7" rx="0.9"/><rect x="11.1" y="12" width="5.7" height="4.7" rx="0.9"/>', |
| 120 | medical: '<rect x="3.5" y="7.1" width="17" height="12.3" rx="1.9"/><path d="M9.2 7.1V5.2a0.9 0.9 0 0 1 0.9-0.9h3.8a0.9 0.9 0 0 1 0.9 0.9v1.9M12 10.4v5.7M9.2 13.3h5.7"/>', |
| 121 | shapes: '<circle cx="7.5" cy="7.7" r="3.4"/><path d="M16.4 3.7l3.9 6.9h-7.9ZM13.9 14.1h5.9v5.9h-5.9ZM3.6 20l3.4-5.9l3.4 5.9Z"/>', |
| 122 | headphones: '<path d="M4.4 13.9v-2.8a7.5 7.5 0 0 1 14.9 0v2.8"/><rect x="3.5" y="13" width="4.2" height="6" rx="1.4"/><rect x="16.1" y="13" width="4.2" height="6" rx="1.4"/>', |
| 123 | drive: '<rect x="3.5" y="12.3" width="17" height="6.6" rx="1.9"/><path d="M3.9 12.3L6.8 4.7h10.4l2.8 7.6M16.7 15.6h0M13.8 15.6h0"/>', |
| 124 | 'check-double': '<path d="M3.6 11.7l3.6 3.6L14.6 7.7M11.1 15.2l0.9 0.9L20.4 7.7"/>', |
| 125 | tv: '<rect x="3.5" y="7.8" width="17" height="11.6" rx="1.8"/><path d="M8.4 4.3l3.6 3.6l3.6-3.6"/>', |
| 126 | toolbox: '<rect x="3.5" y="8.1" width="17" height="11.3" rx="1.9"/><path d="M9.2 8.1V5.8A1.4 1.4 0 0 1 10.6 4.3h2.8A1.4 1.4 0 0 1 14.8 5.8V8.1M3.5 12.8h17M8.2 11.4v2.8M15.8 11.4v2.8"/>', |
| 127 | table: '<rect x="3.5" y="4.3" width="17" height="15.1" rx="1.9"/><path d="M3.5 9.5h17M3.5 14.7h17M9.2 9.5V19.4M14.8 9.5V19.4"/>', |
| 128 | scale: '<path d="M12 4.3V19.5M8.5 19.5h6.9M5.5 7.4h13M12 4.3h0M3.7 13.4L5.9 7.8L8.1 13.4M15.9 13.4L18.1 7.8l2.2 5.6M3.7 13.4a2.2 2.2 0 0 0 4.3 0M15.9 13.4a2.2 2.2 0 0 0 4.3 0"/>', |
| 129 | road: '<path d="M8.2 3.5L4.4 20.5M15.8 3.5l3.8 17M12 4.4v2.4M12 10.6v2.8M12 17.2V19.6"/>', |
| 130 | money: '<rect x="3.5" y="6.6" width="17" height="10.7" rx="1.8"/><circle cx="12" cy="12" r="2.2"/><path d="M6.6 9.8v0M17.4 14.2v0"/>', |
| 131 | 'heart-pulse': '<path d="M19 12.3c-1.7 3.6-7 6.7-7 6.7s-5.3-3.1-7-6.7M4.3 9.7A4.3 4.3 0 0 1 12 7.4a4.3 4.3 0 0 1 7.7 2.2"/><path d="M3.5 11.9h4l1.3-2.2l2.2 4.5l1.8-3.1h7.6"/>', |
| 132 | heading: '<path d="M5.6 3.5v17M18.4 3.5v17M5.6 12h12.7M3.5 3.5h4.2M16.2 3.5h4.2M3.5 20.5h4.2M16.2 20.5h4.2"/>', |
| 133 | fist: '<path d="M6.4 10.1V6.4a1.6 1.6 0 0 1 3.2 0V9.1M9.5 8.5v-3.2a1.6 1.6 0 0 1 3.2 0v3.2M12.6 8.5v-2.1a1.6 1.6 0 0 1 3.2 0V9.1M15.7 9.1V8a1.6 1.6 0 0 1 3.2 0v5.2a7.3 7.3 0 0 1-7.3 7.3H11.1a5.7 5.7 0 0 1-5.7-5.7V12.3A2.1 2.1 0 0 1 7.4 11.2h2.1a1.6 1.6 0 0 1 0 3.2H8"/>', |
| 134 | 'fast-forward': '<path d="M4 6.4v11.2L11.6 12ZM13.1 6.4v11.2L20.7 12Z"/>', |
| 135 | rewind: '<path d="M20 6.4v11.2L12.4 12ZM10.9 6.4v11.2L3.3 12Z"/>', |
| 136 | 'file-code': '<path d="M13.9 3.5H7.4a1.9 1.9 0 0 0-1.9 1.9v13a1.9 1.9 0 0 0 1.9 1.9h9.3a1.9 1.9 0 0 0 1.9-1.9V8.2Z"/><path d="M13.9 3.5v4.6h4.6M10.1 12.4L8.3 14.3l1.9 1.9M13.9 12.4l1.9 1.9l-1.9 1.9"/>', |
| 137 | dice: '<rect x="3.7" y="3.6" width="16.7" height="16.7" rx="3"/><path d="M8.6 8.6h0M15.5 8.6h0M12.1 12h0M8.6 15.4h0M15.5 15.4h0" stroke-width="2.6"/>', |
| 138 | contrast: '<circle cx="11.7" cy="12" r="8.4"/><path d="M11.7 3.6v16.7M11.7 7.9h6.5M11.7 12h8.4M11.7 16.2h6.5"/>', |
| 139 | briefcase: '<rect x="3.5" y="7.2" width="17" height="12.3" rx="1.9"/><path d="M9.2 7.2V5.7A1.4 1.4 0 0 1 10.6 4.3h2.8A1.4 1.4 0 0 1 14.8 5.7V7.2M3.5 12.3h7.1M13.4 12.3H20.5M10.6 11.4h2.8v2.4h-2.8Z"/>', |
| 140 | timeline: '<path d="M3.5 12h0.9M8.2 12h1.9M13.9 12h1.9M19.6 12h0.9"/><circle cx="6.3" cy="12" r="1.9"/><circle cx="12" cy="12" r="1.9"/><circle cx="17.7" cy="12" r="1.9"/><path d="M6.3 10.1V5.9M12 13.9v4.3M17.7 10.1V5.9"/>', |
| 141 | seedling: '<path d="M12 20.8v-9.8M12 11C12 6.7 9.3 4 4.4 4c0 4.3 2.7 7 7.6 7ZM12 13.7c0-4.3 2.7-7 7.6-7c0 4.3-2.7 7-7.6 7Z"/>', |
| 142 | rocket: '<path d="M11.8 15.7L8.4 12.3C9.9 6.9 13.8 3.9 20.2 3.9C20.2 10.3 17.3 14.2 11.8 15.7ZM8.4 12.3L4.9 11.8L7.4 8.3h3.9M11.8 15.7l0.5 3.4l3.4-2.5v-3.9M6.4 17.7c-1.5 0-3 1.5-3 3c1.5 0 3-1.5 3-3Z"/><circle cx="15.3" cy="8.8" r="1.5"/>', |
| 143 | 'list-ordered': '<path d="M9.7 6.8h10.8M9.7 12.8h10.8M9.7 18.8h10.8M3.8 5.4L4.7 5v4.4M3.8 9.3h2M3.8 13.7a1 1 0 0 1 2 0.3c0 1.1-2 1.7-2 2.7h2.2"/>', |
| 144 | lifebuoy: '<circle cx="12" cy="12" r="8.5"/><circle cx="12" cy="12" r="3.8"/><path d="M6 6l3.4 3.4M14.6 14.7l3.4 3.4M18 6l-3.4 3.4M9.4 14.7l-3.4 3.4"/>', |
| 145 | infinity: '<path d="M12 12c-1.8-2.4-3.3-3.6-4.9-3.6a3.6 3.6 0 0 0 0 7.2c1.6 0 3.1-1.2 4.9-3.6Zm0 0c1.8 2.4 3.3 3.6 4.9 3.6a3.6 3.6 0 0 0 0-7.2c-1.6 0-3.1 1.2-4.9 3.6Z"/>', |
| 146 | inbox: '<path d="M3.5 12.7L5.9 4.8h12.1l2.4 7.9V17.8a0.9 0.9 0 0 1-0.9 0.9H4.4a0.9 0.9 0 0 1-0.9-0.9ZM3.5 12.7h4.6l1.4 2.4h4.6l1.4-2.4h4.6"/>', |
| 147 | door: '<path d="M13.7 4.7L6.3 3.2v16.7l7.5-1.4ZM13.7 5.1h3.3a0.9 0.9 0 0 1 0.9 0.9v14M3.5 20h16.7M11 11.6h0"/>', |
| 148 | card: '<rect x="3.7" y="5.8" width="16.7" height="12.3" rx="1.8"/><path d="M3.7 10.3h16.7M6.7 14.6h3.5"/>', |
| 149 | storm: '<path d="M7.8 16a3.8 3.8 0 1 1 0.8-7.4A4.5 4.5 0 0 1 17.4 10.5a3.1 3.1 0 0 1-0.4 6.2"/><path d="M12.9 12.2l-2.1 3.3h2.5L11.3 18.9"/>', |
| 150 | // 4.68.0 (plan L49): the rest of the names Live still asked Font Awesome for (the owner, 2026-11-01: "why Font |
| 151 | // Awesome? … OpenVibe Design's icon system for all our icons"). |
| 152 | 'trend-up': '<path d="M3.2 16.8L8.8 11.3l3.8 3.8l7.4-7.4"/><path d="M14.4 7.4h5.6v5.6"/>', |
| 153 | 'trend-down': '<path d="M3.2 7.2l5.6 5.6l3.8-3.8l7.4 7.4"/><path d="M14.4 16.6h5.6v-5.6"/>', |
| 154 | 'chevrons-left': '<path d="M10.9 19.3l-7.3-7.3l7.3-7.3M20.4 19.3l-7.3-7.3l7.3-7.3"/>', |
| 155 | 'chevrons-right': '<path d="M3.6 19.3l7.3-7.3l-7.3-7.3M13.1 19.3l7.3-7.3l-7.3-7.3"/>', |
| 156 | sort: '<path d="M3.5 5.8h9.2M3.5 12h6.2M3.5 18.2h3M17.5 4.8v14.4M14.3 16.2l3 3l3-3"/>', |
| 157 | 'sort-asc': '<path d="M3.4 5.4h3M3.4 11.6h6.3M3.4 17.9h9.3M17.5 4.3v14.6M14.3 16l3 3l3-3"/>', |
| 158 | share: '<path d="M12 15.2V3.3M7.4 8.1L12 3.3L16.6 8.1M4.9 12.9v6.1a1 1 0 0 0 1 1h12.2a1 1 0 0 0 1-1v-6.1"/>', |
| 159 | 'arrows-h': '<path d="M3.8 12h16.5M7.6 8.1l-3.9 3.9l3.9 3.9M16.4 8.1l3.9 3.9l-3.9 3.9"/>', |
| 160 | move: '<path d="M11.9 3.6v16.7M3.6 11.9h16.7M9 6.5l2.9-2.9l2.9 2.9M9 17.3l2.9 2.9l2.9-2.9M6.5 9l-2.9 2.9l2.9 2.9M17.3 9l2.9 2.9l-2.9 2.9"/>', |
| 161 | // A viewfinder with its centre (2026-11-11 review: four tiny arrows crowded at 16 px). |
| 162 | focus: '<circle cx="12" cy="12" r="2.8"/><path d="M3.5 9V5.9A2.4 2.4 0 0 1 5.9 3.5H9M15 3.5h3.1A2.4 2.4 0 0 1 20.5 5.9V9M20.5 15v3.1a2.4 2.4 0 0 1-2.4 2.4H15M9 20.5H5.9A2.4 2.4 0 0 1 3.5 18.1V15"/>', |
| 163 | at: '<circle cx="12" cy="12" r="3.4"/><path d="M15.4 12v1.3a2.5 2.5 0 0 0 4.9 0V12a8.3 8.3 0 1 0-3.2 6.5"/>', |
| 164 | box: '<path d="M3.6 7.9L11.9 3.9l8.4 3.9v8.4L11.9 20.1l-8.4-3.9Z"/><path d="M3.6 7.9L11.9 11.8l8.4-3.9M11.9 11.8v8.4M7.8 5.9l8.4 3.9"/>', |
| 165 | bug: '<rect x="7.2" y="6.2" width="9.6" height="13.3" rx="4.8"/><path d="M9.3 6.5a2.7 2.7 0 0 1 5.3 0M12 10.9v8.5M7.2 12H3.5M20.5 12h-3.7M7.6 8.3L4.6 5.6M16.4 8.3L19.4 5.6M7.6 16.3L4.6 18.9M16.4 16.3L19.4 18.9"/>', |
| 166 | megaphone: '<path d="M3.6 9.5v4a1 1 0 0 0 1 1H7.1l9 4.5v-15L7.1 8.5H4.5a1 1 0 0 0-1 1Z"/><path d="M7.1 14.5l1.3 5h2.4L10.1 15.1M19.1 9a3.2 3.2 0 0 1 0 5"/>', |
| 167 | burst: '<path d="M11.9 3.7L13.6 7.8L17.8 6.2L16.2 10.4L20.3 12.1L16.2 13.8L17.8 18L13.6 16.4L11.9 20.4L10.2 16.4L6 18L7.6 13.8L3.6 12.1L7.6 10.4L6 6.2L10.2 7.8Z"/>', |
| 168 | 'camera-flip': '<path d="M3.5 8h3.4l1.8-2.8h6.6L17.1 8h3.4v11.5h-17Z"/><path d="M15 12.6a3.1 3.1 0 0 0-5.6-1.2M9 14.4a3.1 3.1 0 0 0 5.6 1.2M9.3 9.5v2h2M14.7 17.5v-2h-2"/>', |
| 169 | 'camera-off': '<path d="M3.7 7.9h3.3l1.7-2.7h6.4L16.9 7.9h3.3v11.2h-16.5Z"/><circle cx="11.9" cy="13" r="3.3"/><path d="M3.7 3.5l16.5 16.5"/>', |
| 170 | car: '<path d="M3.5 15.8v-4.5L6.2 5.8h11.6l2.7 5.5V15.8Z"/><path d="M3.5 11.3h17M6.5 15.8v2.5M17.5 15.8v2.5M7.2 13.8h0M16.8 13.8h0"/>', |
| 171 | child: '<circle cx="12" cy="5.8" r="2.1"/><path d="M7.9 10.5L12 9.2l4.1 1.4M12 9.2v5.6M9.2 20.4l2.8-5.6l2.8 5.6"/>', |
| 172 | donate: '<circle cx="11.9" cy="8.4" r="5.2"/><path d="M11.9 6v4.3M3.7 15.6h16.5V20H3.7ZM8.3 17.7h7.2"/>', |
| 173 | record: '<circle cx="12" cy="12" r="8.5"/><circle cx="12" cy="12" r="3"/>', |
| 174 | 'plus-circle': '<circle cx="12" cy="12" r="8.5"/><path d="M12 8v8M8 12h8"/>', |
| 175 | 'minus-circle': '<circle cx="12" cy="12" r="8.5"/><path d="M8 12h8"/>', |
| 176 | clapper: '<path d="M4 10.4h16.3v8.6a1 1 0 0 1-1 1h-14.4a1 1 0 0 1-1-1Z"/><path d="M4 10.4L3.4 7.2l15.7-2.9l0.7 3.3ZM8.5 6.3l2.2 3.2M13.3 5.4l2.2 3.2"/>', |
| 177 | 'clipboard-check': '<rect x="5.7" y="4.9" width="12.6" height="15.5" rx="1.9"/><path d="M9.1 4.9V3.5h5.8V4.9M9.1 13.2l1.9 1.9l3.9-3.9"/>', |
| 178 | cc: '<rect x="3.5" y="5.4" width="17" height="13.2" rx="2.4"/><path d="M10.7 10.2a2.3 2.3 0 1 0 0 3.6M16.8 10.2a2.3 2.3 0 1 0 0 3.6"/>', |
| 179 | 'cloud-off': '<path d="M7.5 17.6h9.5a3.8 3.8 0 0 0 0.5-7.5A5.7 5.7 0 0 0 6.4 9.6A4.1 4.1 0 0 0 7.5 17.6Z"/><path d="M4 3.9l16.1 16.1"/>', |
| 180 | commit: '<circle cx="12" cy="12" r="3.4"/><path d="M3.5 12h5.1M15.4 12H20.5"/>', |
| 181 | 'chat-off': '<path d="M4.2 5.1h15.7v10.9H8l-4 4Z"/><path d="M3.7 3.7l16.7 16.7"/>', |
| 182 | compass: '<circle cx="12" cy="12" r="8.5"/><path d="m15.6 8.4-2.1 5.1-5.1 2.1 2.1-5.1Z"/>', |
| 183 | cookie: '<path d="M20.6 12.3a8.4 8.4 0 1 1-8.9-8.9a3 3 0 0 0 3.9 3.5a3 3 0 0 0 4.9 5.3Z"/><path d="M8.8 9.4h0M12.2 13.8h0M8.3 15.3h0M15.7 15.3h0"/>', |
| 184 | couch: '<path d="M5.4 10.1V7.2a1.9 1.9 0 0 1 1.9-1.9h9.4a1.9 1.9 0 0 1 1.9 1.9v2.8"/><path d="M3.5 11.9a1.9 1.9 0 0 1 3.8 0v1.4h9.4V11.9a1.9 1.9 0 0 1 3.8 0v4.7H3.5ZM5.4 16.7v1.9M18.6 16.7v1.9"/>', |
| 185 | cubes: '<path d="M12 3.2L8.1 5.2v4.4l3.9 2l3.9-2V5.2ZM7.6 11.6L3.6 13.6v4.4l3.9 2l3.9-2V13.6ZM16.4 11.6l-3.9 2v4.4l3.9 2l3.9-2V13.6Z"/>', |
| 186 | ear: '<path d="M6.2 9.5a5.7 5.7 0 1 1 10.8 2.4c-0.9 1.9-3.1 3-3.1 5.2a3.4 3.4 0 0 1-6.5 1.6"/><path d="M9.7 9.9a2.4 2.4 0 1 1 3.8 1.5"/>', |
| 187 | eraser: '<path d="M14.3 4.4l5.5 5.5l-9 9H6.6l-2.6-2.6a1.5 1.5 0 0 1 0-2.1Z"/><path d="M9.3 9.4l5.5 5.5M10.8 18.9H20.3"/>', |
| 188 | laugh: '<circle cx="12" cy="12" r="8.5"/><path d="M8 13.5h8a4 4 0 0 1-8 0ZM7.5 8.6l2.2 1.2-2.2 1.2M16.5 8.6l-2.2 1.2 2.2 1.2"/>', |
| 189 | fish: '<path d="M9 12c1.8-3.2 4.3-4.8 7.1-4.8c2.6 0 4.2 2 4.9 4.8c-0.7 2.8-2.3 4.8-4.9 4.8c-2.8 0-5.3-1.6-7.1-4.8Z"/><path d="M9 12L4.2 8.6M9 12l-4.8 3.4M17.3 10.6h0.01"/>', |
| 190 | finish: '<path d="M5.2 20.7V4"/><rect x="5.2" y="4.6" width="13.9" height="8.6" rx="1"/><path d="M5.2 8.8h13.9M9.6 4.6v8.6M14.3 4.6v8.6"/>', |
| 191 | flask: '<path d="M9.5 3.2h4.9M10 3.2V9.2L4.9 17.7a1.5 1.5 0 0 0 1.3 2.3h11.6a1.5 1.5 0 0 0 1.3-2.3L14 9.2V3.2"/><path d="M7.3 14.6h9.5"/>', |
| 192 | 'folder-tree': '<path d="M4.1 3.3v13.2a1 1 0 0 0 1 1H9.7M4.1 8.3H9.7"/><path d="M10.2 5.3h3.1l1 1.5h5.6V10.9h-9.7ZM10.2 14.5h3.1l1 1.5h5.6V20.1h-9.7Z"/>', |
| 193 | skip: '<path d="M4.8 3.5l10.8 8.4l-10.8 8.4Z"/><path d="M19.7 3.5v16.7"/>', |
| 194 | gem: '<path d="M6.8 4.9h10.3L20.2 9.5l-8.3 10.3L3.6 9.5Z"/><path d="M3.6 9.5h16.7M9.6 4.9L8.1 9.5l3.8 10.3M14.2 4.9L15.7 9.5l-3.8 10.3"/>', |
| 195 | ghost: '<path d="M4.7 20V10.6a7.3 7.3 0 0 1 14.7 0v9.4l-2.4-1.9l-2.5 1.9l-2.4-1.9L9.6 20l-2.5-1.9Z"/><path d="M9.4 10.1h0M14.6 10.1h0"/>', |
| 196 | grip: '<path d="M8.3 4.5h0M15.8 4.5h0M8.3 12h0M15.8 12h0M8.3 19.5h0M15.8 19.5h0" stroke-width="3.8"/>', |
| 197 | hammer: '<path d="M13.1 3.7L19.3 9.9l-2.7 2.7l-6.2-6.2Z"/><path d="M13.6 9.4L5 18.1a1.3 1.3 0 0 0 1.9 1.9l8.6-8.6"/>', |
| 198 | handshake: '<path d="M3.6 9.9v5.3M20.3 9.9v5.3"/><path d="M3.6 10.8h2.2l3.5-2.7l2.9 1.3L14.5 8.2l3.5 2.7h2.2"/><path d="M5.7 10.8l5.6 5.6a1.4 1.4 0 0 0 2-2M18 10.8l-4.7 4.5M17.5 12.8l-4-4l-2.3 2.1a1.3 1.3 0 0 1-1.9-1.9l1.9-2"/>', |
| 199 | wizard: '<path d="M3.6 20h16.7M6.3 20L9.9 9.1L15.7 3.3L14.1 10.1L17.8 20"/><path d="M8.4 15.4h7.3"/>', |
| 200 | 'heart-broken': '<path d="M11.9 20.3s-8.1-5.1-8.1-11.6a4.6 4.6 0 0 1 8.1-3A4.6 4.6 0 0 1 20 9.2c0 6.5-8.1 11.6-8.1 11.6Z"/><path d="M11.9 5.8L10 9.8l3.5 2.3l-1.6 3.9"/>', |
| 201 | hourglass: '<path d="M6 3.5h12M6 20.5h12M7.5 3.5c0 4.5 4.5 5.5 4.5 8.5s-4.5 4-4.5 8.5M16.5 3.5c0 4.5-4.5 5.5-4.5 8.5s4.5 4 4.5 8.5"/>', |
| 202 | lungs: '<path d="M12 3.5v8M12 9.4l-3 2.1M12 9.4l3 2.1M8.4 6.5C5.6 6.5 3.5 10.4 3.5 15.2c0 2.8 1.1 4.8 3.2 4.8s2.7-2.1 2.7-4.8V8.3M15.6 6.5C18.4 6.5 20.5 10.4 20.5 15.2c0 2.8-1.1 4.8-3.2 4.8s-2.7-2.1-2.7-4.8V8.3"/>', |
| 203 | 'link-off': '<path d="M10 13.8a4 4 0 0 0 5.6 0l2.9-2.9a4 4 0 0 0-5.6-5.6l-1 1M13.8 10a4 4 0 0 0-5.6 0l-2.9 2.9a4 4 0 0 0 5.6 5.6l1-1"/><path d="M3.6 3.6l16.7 16.7"/>', |
| 204 | mask: '<path d="M3.5 7c3 1.3 5.8 1.8 8.5 1.8S17.5 8.3 20.5 7c0 6-2.5 10-5 10-1.4 0-2-1.5-3.5-1.5S9.9 17 8.5 17c-2.5 0-5-4-5-10Z"/><path d="M7.5 11.5h2M14.5 11.5h2"/>', |
| 205 | mug: '<path d="M4.8 9.1h11v7a4 4 0 0 1-4 4h-3a4 4 0 0 1-4-4Z"/><path d="M15.8 10.5H17.3a2.5 2.5 0 0 1 0 5h-1.5M8.3 3.5c-0.8 1 0.8 2 0 3M11.8 3.5c-0.8 1 0.8 2 0 3"/>', |
| 206 | paw: '<path d="M7.8 18.5c0-3 1.9-5.3 4.2-5.3s4.2 2.3 4.2 5.3c0 1.4-1.1 2.1-2.1 2.1c-0.8 0-1.4-0.5-2.1-0.5s-1.3 0.5-2.1 0.5c-1.1 0-2.1-0.7-2.1-2.1Z"/><circle cx="5.4" cy="10.6" r="1.9"/><circle cx="9.2" cy="5.7" r="1.9"/><circle cx="14.8" cy="5.7" r="1.9"/><circle cx="18.6" cy="10.6" r="1.9"/>', |
| 207 | walk: '<circle cx="12.3" cy="5.1" r="1.7"/><path d="M8.8 20.3l2.4-5.5l1.9 2.2V20.3M11 14.8l0.9-5.2l-2.7 1.4l-1.4 2.7M11.9 9.6l1.8 2.7l2.7 0.9"/>', |
| 208 | 'phone-off': '<path d="M5.6 4.1h3.7l1.9 4.7l-2.4 1.4a10.3 10.3 0 0 0 4.7 4.7L15.1 12.5l4.7 1.9v3.7a1.9 1.9 0 0 1-1.9 1.9A15.1 15.1 0 0 1 3.8 5.9a1.9 1.9 0 0 1 1.9-1.9"/><path d="M4.3 3.6l16.1 16.1"/>', |
| 209 | piggy: '<path d="M3.5 11.4c0-3.2 3.3-5.7 7.7-5.7c1.3 0 2.4 0.2 3.4 0.6L17.4 4.7v3.3c0.8 0.7 1.4 1.6 1.6 2.5h1.4v3.4H18.8c-0.5 1-1.3 1.7-2.3 2.3V19.1h-2.9v-1.9c-0.8 0.2-1.7 0.3-2.5 0.3c-0.8 0-1.6-0.1-2.3-0.3v1.9h-2.9v-2.9C4.4 15.1 3.5 13.4 3.5 11.4Z"/><path d="M14.9 10.1h0M8.7 8.1h2.9"/>', |
| 210 | airplane: '<path d="M12 3.2c0.9 0 1.4 0.9 1.4 2.4V9.8l7 4.2V15.4l-7-2.4V17.2l1.9 1.4V20L12 19.1l-3.3 0.9v-1.4l1.9-1.4v-4.2L3.6 15.4v-1.4L10.6 9.8V5.6C10.6 4.2 11.1 3.2 12 3.2Z"/>', |
| 211 | print: '<path d="M7.1 8.9V3.5h9.9V8.9"/><rect x="3.6" y="8.9" width="16.7" height="7.9" rx="2"/><path d="M7.1 13.8h9.9v6.4H7.1ZM16.4 11.9h0"/>', |
| 212 | quote: '<path d="M9.8 6.2C5.8 7.2 3.6 10 3.6 13.9v3.3h5.6v-5.6h-5.6M20.3 6.2c-3.9 1.1-6.1 3.9-6.1 7.8v3.3h5.6v-5.6h-5.6"/>', |
| 213 | radio: '<rect x="3.5" y="8.3" width="16.8" height="11.3" rx="1.9"/><path d="M7.3 8.3L16.7 3.9"/><circle cx="15.3" cy="14" r="2.4"/><path d="M6.8 12.4h3.8M6.8 15.4h3.8"/>', |
| 214 | ranking: '<path d="M3.5 19.9h17M4.5 19.9V13.8h4.7M9.2 19.9V10h5.7v9.9M14.9 19.9V15.7h4.7v4.3"/><path d="M12 3.4l0.9 1.7l1.9 0.3l-1.4 1.3l0.3 1.9L12 7.7l-1.7 0.9l0.3-1.9L9.3 5.4l1.9-0.3Z"/>', |
| 215 | recycle: '<path d="M7.8 18.2H5.7a1.2 1.2 0 0 1-1-1.8l2.3-3.9M10 5.5l0.9-1.5a1.2 1.2 0 0 1 2.1 0l2.3 3.9M17.7 12.4l1.6 2.7a1.2 1.2 0 0 1-1 1.8h-4.5"/><path d="M11.1 16.5l1.8 1.8l-1.8 1.8M4.5 10.4l2.4-0.7l0.7 2.5M17.2 6.1l-0.7 2.5l-2.5-0.7"/>', |
| 216 | rss: '<path d="M4 3.5a16.5 16.5 0 0 1 16.5 16.5M4 10.4A9.6 9.6 0 0 1 13.6 20.1"/><path d="M4.6 19.4h0" stroke-width="3.9"/>', |
| 217 | scroll: '<path d="M8.3 3.8h10.1a1.9 1.9 0 0 1 1.9 1.9v1.5H17M8.3 3.8a1.9 1.9 0 0 0-1.9 1.9v11.7a2.9 2.9 0 0 1-2.9 2.9h10.7a2.9 2.9 0 0 0 2.9-2.9v-11.7a1.9 1.9 0 0 0-1.9-1.9M10.2 9.2h3.9M10.2 13h3.9"/>', |
| 218 | signature: '<path d="M3.9 14c2.4 0 3.3-8.4 5.6-8.4c1.4 0 0.9 5.6 2.4 5.6c0.9 0 1.4-2.4 2.4-2.4s0.8 1.9 1.9 1.9c0.8 0 1.4-0.6 1.9-1.1M3.9 17.8h16.7"/>', |
| 219 | square: '<rect x="3.5" y="3.5" width="17" height="17" rx="2.7"/>', |
| 220 | sword: '<path d="M20.3 3.7v3.7L10.4 17.3L6.7 13.6L16.7 3.7Z"/><path d="M5.2 12L12 18.8M8.3 15.7L3.6 20.4"/>', |
| 221 | columns: '<rect x="3.5" y="4.5" width="17" height="15" rx="2"/><path d="M12 4.5v15M3.5 9h17"/>', |
| 222 | 'thumbs-up': '<path d="M7.3 10.4v9.6H4.8a1 1 0 0 1-1-1v-7.6a1 1 0 0 1 1-1Z"/><path d="M7.3 10.4L10.9 3.3a2.2 2.2 0 0 1 2.5 2.6L12.7 9.4H18.5a2 2 0 0 1 2 2.4l-1.3 6.6a2 2 0 0 1-2 1.6H7.3"/>', |
| 223 | undo: '<path d="M9.2 14.2L4 8.9l5.2-5.2"/><path d="M4 8.9h11a5.8 5.8 0 0 1 0 11.5H11.3"/>', |
| 224 | 'user-circle': '<circle cx="12" cy="12" r="8.5"/><circle cx="12" cy="10" r="3"/><path d="M6.6 18.3a6.5 6.5 0 0 1 10.8 0"/>', |
| 225 | 'user-lock': '<circle cx="9.8" cy="7.3" r="3.3"/><path d="M3.5 18.8c0-3.4 2.8-5.7 6.2-5.7c1.2 0 2.2 0.3 3.1 0.7"/><rect x="14.6" y="14.5" width="5.7" height="4.8" rx="1"/><path d="M16 14.5v-1.2a1.5 1.5 0 0 1 2.9 0v1.2"/>', |
| 226 | 'user-minus': '<circle cx="10.1" cy="8" r="3.3"/><path d="M4 19.3c0-3.3 2.7-5.7 6.1-5.7c1.1 0 2.2 0.3 3 0.7"/><path d="M15.1 17h5.7"/>', |
| 227 | 'user-pen': '<circle cx="9.8" cy="8" r="3.3"/><path d="M3.8 19.1c0-3.3 2.7-5.6 6-5.6c1.1 0 2.1 0.3 3 0.7"/><path d="M19.1 12.1l1.4 1.4l-4.7 4.7l-1.9 0.5l0.5-1.9Z"/>', |
| 228 | 'user-tag': '<circle cx="10" cy="7.6" r="3.3"/><path d="M3.8 18.9c0-3.3 2.8-5.6 6.1-5.6c1.1 0 2.2 0.3 3.1 0.7"/><path d="M14.2 14.2h3.7l2.4 2.4l-2.4 2.4h-3.7Z"/><path d="M16.1 16.5h0"/>', |
| 229 | 'user-off': '<circle cx="12" cy="8.2" r="3.5"/><path d="M5.1 20c0-3.6 3-5.9 6.9-5.9s6.9 2.3 6.9 5.9"/><path d="M3.7 3.7l16.7 16.7"/>', |
| 230 | weight: '<circle cx="12" cy="5.2" r="2"/><path d="M7.1 8.7h9.9l3 11.3H4.1Z"/>', |
| 231 | wind: '<path d="M3.5 9.9h10.4a2.8 2.8 0 1 0-2.8-2.8M3.5 13.7h14.2a2.8 2.8 0 1 1-2.8 2.8M3.5 17.5h6.6"/>', |
| 232 | window: '<rect x="3.5" y="4.5" width="17" height="15" rx="2"/><path d="M3.5 9h17"/>', |
| 233 | 'window-restore': '<rect x="3.5" y="8.5" width="12" height="11" rx="2"/><path d="M8.5 8.5v-2a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v7a2 2 0 0 1-2 2h-3"/>', |
| 234 | 'align-left': '<path d="M4 5.9h16.6M4 10h10.4M4 14.3h16.6M4 18.5h10.4"/>', |
| 235 | slash: '<path d="M3.6 3.6l16.7 16.7"/>', |
| 236 | // 4.69.0: an open book for fa-book-open (the closed one read as an empty square at 14 px). |
| 237 | 'book-open': '<path d="M12 6.3C10 4.8 7 4.3 3.5 4.9v13.2c3.5-0.6 6.5-0.1 8.5 1.4c2-1.5 5-2 8.5-1.4V4.9C17 4.3 14 4.8 12 6.3Z"/><path d="M12 6.3v13.2"/>', |
| 238 | // A spinner is never drawn as one (the owner, 2026-10-31: nothing spins): three dots that take turns (ov-glyphs.js). |
| 239 | busy: '<path d="M4.7 12h0M12.1 12h0M19.4 12h0" stroke-width="4.2"/>', |
| 240 | }; |
| 241 | // ── Small sizes (4.69.0, plan L49; the owner, 2026-11-01: "really tiny icons… a solid colour rather than the border |
| 242 | // lines… so all our icons look nice across sizes"). A solid drawing for the glyphs most often shown small: filled |
| 243 | // shapes, holes cut with fill-rule evenodd, a line that must stay a line as class "ln". ov-glyphs.js draws both and |
| 244 | // shows the solid one when the icon is 18 px or smaller (pure CSS, see scripts/build-glyphs.js); a glyph without |
| 245 | // one draws its lines heavier there instead. |
| 246 | const SOLID = Object.freeze({ |
| 247 | handshake: '<path d="M2.3 9.2h2.7v6.8H2.3ZM19 9.2h2.7v6.8H19Z"/><path class="ln" d="M5.6 10.8h0.3l3.4-2.6l2.9 1.3L14.6 8.1l3.4 2.6h0.4M5.9 10.8l5.4 5.4a1.4 1.4 0 0 0 2-2M18 10.8l-4.7 4.5M17.4 12.8l-3.9-3.9l-2.3 2.1a1.3 1.3 0 0 1-1.9-1.9l1.9-2"/>', |
| 248 | focus: '<circle cx="12" cy="12" r="3.6"/><path class="ln" d="M3.8 9V6.1A2.3 2.3 0 0 1 6.1 3.8H9M15 3.8h2.9A2.3 2.3 0 0 1 20.2 6.1V9M20.2 15v2.9a2.3 2.3 0 0 1-2.3 2.3H15M9 20.2H6.1A2.3 2.3 0 0 1 3.8 17.9V15"/>', |
| 249 | // 4.182.0, the last five shapes: a car, a door, a podium, a rocket and a camera that flips. After these, every |
| 250 | // glyph without a solid drawing is one made of lines, which thickens when small instead. |
| 251 | car: '<path fill-rule="evenodd" d="M5.6 5.2h12.7l2.7 5.5H3ZM2.6 12.2h18.7v4.5H2.6ZM5.9 14.4a1.1 1.1 0 1 0 2.3 0a1.1 1.1 0 1 0-2.3 0ZM15.8 14.4a1.1 1.1 0 1 0 2.3 0a1.1 1.1 0 1 0-2.3 0ZM5 17.5h2.7v1.8H5ZM16.3 17.5h2.7v1.8h-2.7Z"/>', |
| 252 | door: '<path fill-rule="evenodd" d="M14.3 4.5L6.2 3v17.1l8.2-1.5ZM10.2 11.5a1 1 0 1 0 2 0a1 1 0 1 0-2 0Z"/><path class="ln" d="M15.5 5.3h1.4a0.9 0.9 0 0 1 0.9 0.9v13.3M15.5 19.5H20M4 19.5h2.1"/>', |
| 253 | ranking: '<path d="M3.5 13.7h4.9V9.9h7.1v5.7h4.9v5.4H3.5ZM12 2.2l1 2l2.2 0.3l-1.6 1.6l0.4 2.2L12 7.5l-2 1l0.4-2.2l-1.6-1.6l2.2-0.3Z"/>', |
| 254 | rocket: '<path fill-rule="evenodd" d="M11.9 16.6L7.4 12.2C9.1 6.1 13.6 2.9 21.1 2.9c0 7.5-3.2 12-9.2 13.7ZM13.6 8.7a1.7 1.7 0 1 0 3.5 0a1.7 1.7 0 1 0-3.5 0Z"/><path d="M3.7 12.2L6.8 7.5h3.5L6.6 12.6ZM11.4 17.4L11.9 20.3l4.6-3.3v-3.5ZM6.3 17.7c-2 0-3.9 2-3.9 3.9c2 0 3.9-2 3.9-3.9Z"/>', |
| 255 | 'camera-flip': '<path fill-rule="evenodd" d="M2.5 7.8a1.9 1.9 0 0 1 1.9-1.9h2.6L8.8 3.3h6.3l1.8 2.6h2.6A1.9 1.9 0 0 1 21.5 7.8v10.7a1.9 1.9 0 0 1-1.9 1.9H4.4A1.9 1.9 0 0 1 2.5 18.5ZM7.7 11.7A4.5 4.5 0 0 1 16.3 11.7L13.9 12.6A2 2 0 0 0 10.1 12.6ZM16.3 14.8A4.5 4.5 0 0 1 7.7 14.8L10.1 14A2 2 0 0 0 13.9 14Z"/>', |
| 256 | // 4.182.0, sixth batch: things with one outline (an aeroplane, a burst, a fish, a shoe, a sword, a mask, a |
| 257 | // piggy bank), a couch, a coin over a box, two folders on a tree, a chequered flag, and two people. |
| 258 | airplane: '<path d="M11.8 2.6c1.3 0 2 1.2 2 3V9.5l7.2 4.2v2.5L13.8 13.7v3.5l2 1.5v2.5L11.8 19.7l-3.7 1.2v-2.5l2-1.5v-3.5l-7.2 2.5v-2.5L9.8 9.5V5.3c0-1.8 0.7-3 2-3Z"/>', |
| 259 | burst: '<path d="M12.1 2.6l2 4.6l4.7-1.9l-1.9 4.7l4.6 2l-4.6 2l1.9 4.7l-4.7-1.9l-2 4.6l-2-4.6l-4.7 1.9l1.9-4.7L2.7 12l4.6-2l-1.9-4.7l4.7 1.9Z"/>', |
| 260 | fish: '<path fill-rule="evenodd" d="M8.7 12c1.9-3.5 4.6-5.3 7.6-5.3c2.8 0 4.6 2.2 5.4 5.3c-0.8 3.1-2.6 5.3-5.4 5.3c-3 0-5.7-1.8-7.6-5.3ZM16.2 10.6a1.2 1.2 0 1 0 2.4 0a1.2 1.2 0 1 0-2.4 0Z"/><path class="ln" d="M8.7 12L4.4 8.9M8.7 12l-4.3 3.1"/>', |
| 261 | shoe: '<path d="M3.7 14.5V9.1l3.6-0.5l2.6-3.5l3.5 1.6l-0.8 2.3l3.1 1.7l3.6 0.8a1.9 1.9 0 0 1 1.3 1.8v1.4Z"/><path class="ln" d="M4.2 17h16"/>', |
| 262 | sword: '<path d="M21.2 2.8v4.7l-10.8 10.8l-4.7-4.7L16.5 2.8Z"/><path class="ln" d="M5.2 11.9L12.1 18.8M8.4 15.6L3.7 20.3"/>', |
| 263 | donate: '<path fill-rule="evenodd" d="M12 2.2a5.9 5.9 0 1 0 0 11.8a5.9 5.9 0 0 0 0-11.8Zm-0.8 3.4h1.7v5.1h-1.7ZM2.9 15h18.2v6H2.9ZM7.8 17.1v1.6h8.5V17.1Z"/>', |
| 264 | mask: '<path fill-rule="evenodd" d="M2.7 6.1c3.3 1.4 6.4 2.1 9.4 2.1s6.1-0.6 9.4-2.1c0 7.1-2.9 11.7-5.8 11.7c-1.5 0-2.2-1.5-3.6-1.5s-2.1 1.5-3.6 1.5c-2.9 0-5.8-4.6-5.8-11.7ZM6.8 11.6a1.6 1.1 0 1 0 3.3 0a1.6 1.1 0 1 0-3.3 0ZM14 11.6a1.6 1.1 0 1 0 3.3 0a1.6 1.1 0 1 0-3.3 0Z"/>', |
| 265 | couch: '<path d="M7.1 4.2h9.7A2.5 2.5 0 0 1 19.4 6.7v1.9a3.1 3.1 0 0 0-3.1 3.1v0.1H7.7v-0.1A3.1 3.1 0 0 0 4.6 8.7V6.7A2.5 2.5 0 0 1 7.1 4.2ZM2.7 11.6a2.5 2.5 0 0 1 5.1 0v1.9h8.6V11.6a2.5 2.5 0 0 1 5.1 0v5.5H2.7Z"/><path class="ln" d="M5.2 17.1v1.9M18.8 17.1v1.9"/>', |
| 266 | child: '<circle cx="12" cy="5.2" r="2.6"/><path class="ln" d="M7.7 10L12 8.6l4.3 1.4M12 8.6v5.8M9.1 20.1l2.9-5.8l2.9 5.8"/>', |
| 267 | walk: '<circle cx="12.4" cy="4.6" r="2.2"/><path class="ln" d="M8.7 19.8l2.4-5.5l1.9 2.2V19.8M11.1 14.3l0.9-5.2l-2.8 1.5l-1.4 2.8M12 9.1l1.8 2.8l2.8 0.9"/>', |
| 268 | finish: '<path d="M6.5 4.2h3.9v4.6H6.5ZM14.8 4.2h4a0.9 0.9 0 0 1 0.9 0.9v3.7h-4.9ZM10.5 8.6h4.5v4.6H10.5Z"/><path class="ln" d="M6 20.3V4.1"/>', |
| 269 | piggy: '<path fill-rule="evenodd" d="M2.6 11.4c0-3.6 3.7-6.5 8.7-6.5c1.4 0 2.7 0.2 3.9 0.7L18.3 3.8v3.7c0.9 0.8 1.5 1.7 1.7 2.8h1.5v3.8H20c-0.5 1.1-1.4 2-2.6 2.6V20.1h-3.3v-2.2c-0.9 0.2-1.8 0.3-2.8 0.3c-0.9 0-1.7-0.1-2.6-0.3v2.2h-3.3v-3.3C3.7 15.5 2.6 13.6 2.6 11.4ZM14.5 9.8a1.1 1.1 0 1 0 2.2 0a1.1 1.1 0 1 0-2.2 0ZM8.3 6.8v1.5h3.7V6.8Z"/>', |
| 270 | 'folder-tree': '<path d="M9.6 5h4l1 1.5h6.4v5.3H9.6ZM9.6 14.3h4l1 1.5h6.4v5.3H9.6Z"/><path class="ln" d="M4.1 3.6v13.2a1 1 0 0 0 1 1H9.6M4.1 8.8H9.6"/>', |
| 271 | // 4.182.0, fifth batch: a laughing face, a cookie, a radio, a toolbox, a task, two windows, captions, an |
| 272 | // eraser, a seedling and a hammer. |
| 273 | laugh: '<path fill-rule="evenodd" d="M13 2.7a9.4 9.4 0 1 0 0 18.7a9.4 9.4 0 0 0 0-18.7ZM7.9 8.1l3.5 1.7l-3.5 1.7l-0.7-1.4l0.7-0.4l-0.7-0.4ZM18 8.1l-3.5 1.7l3.5 1.7l0.7-1.4l-0.7-0.4l0.7-0.4ZM8.5 13.5h8.9a4.4 4.4 0 0 1-8.9 0Z"/>', |
| 274 | cookie: '<path fill-rule="evenodd" d="M21.6 12.4a9.4 9.4 0 1 1-10-10a3.4 3.4 0 0 0 4.4 3.9a3.4 3.4 0 0 0 5.5 5.9ZM7 9.1a1.3 1.3 0 1 0 2.7 0a1.3 1.3 0 1 0-2.7 0ZM10.9 14a1.3 1.3 0 1 0 2.7 0a1.3 1.3 0 1 0-2.7 0ZM6.5 15.7a1.3 1.3 0 1 0 2.7 0a1.3 1.3 0 1 0-2.7 0ZM14.8 15.7a1.3 1.3 0 1 0 2.7 0a1.3 1.3 0 1 0-2.7 0Z"/>', |
| 275 | radio: '<path fill-rule="evenodd" d="M5.2 7.8h13.6a2.5 2.5 0 0 1 2.5 2.5v7.8a2.5 2.5 0 0 1-2.5 2.5H5.2A2.5 2.5 0 0 1 2.6 18.1v-7.8A2.5 2.5 0 0 1 5.2 7.8ZM12.9 14.2a2.5 2.5 0 1 0 5.1 0a2.5 2.5 0 1 0-5.1 0ZM6.1 11.6v2h4.7v-2ZM6.1 15v2h4.7v-2Z"/><path class="ln" d="M7.1 7.8L16.9 4"/>', |
| 276 | toolbox: '<path d="M2.7 10.1a2.5 2.5 0 0 1 2.5-2.5h13.6a2.5 2.5 0 0 1 2.5 2.5v2.2H2.7ZM2.7 13.7h4.7v1.5h1.6v-1.5h6.2v1.5h1.6v-1.5h4.7V17.8a2.5 2.5 0 0 1-2.5 2.5H5.2A2.5 2.5 0 0 1 2.7 17.8Z"/><path class="ln" d="M9.1 7.5V5.7A1.5 1.5 0 0 1 10.5 4.2h2.9A1.5 1.5 0 0 1 14.9 5.7v1.9"/>', |
| 277 | task: '<path fill-rule="evenodd" d="M6.6 2.7h10.9a3.9 3.9 0 0 1 3.9 3.9v10.9a3.9 3.9 0 0 1-3.9 3.9H6.6A3.9 3.9 0 0 1 2.7 17.4V6.6A3.9 3.9 0 0 1 6.6 2.7ZM6.5 12.1l4.6 4.6l6.6-7.9l-1.8-1.5l-5 6l-2.6-2.6Z"/>', |
| 278 | 'window-restore': '<path d="M2.7 10.4a2.7 2.7 0 0 1 2.7-2.7h8.2a2.7 2.7 0 0 1 2.7 2.7v7.2a2.7 2.7 0 0 1-2.7 2.7h-8.2a2.7 2.7 0 0 1-2.7-2.7ZM7.9 6.4V6.3a2.7 2.7 0 0 1 2.7-2.7h8.2a2.7 2.7 0 0 1 2.7 2.7v7.2a2.7 2.7 0 0 1-2.7 2.7h-1.1v-5.8a4 4 0 0 0-4-4Z"/>', |
| 279 | cc: '<path fill-rule="evenodd" d="M5.6 4.6h12.7a3 3 0 0 1 3 3v8.8a3 3 0 0 1-3 3h-12.7a3 3 0 0 1-3-3v-8.8a3 3 0 0 1 3-3ZM10.8 9.5A3.2 3.2 0 1 0 10.8 14.5L9.6 13A1.3 1.3 0 1 1 9.6 11ZM17.4 9.5A3.2 3.2 0 1 0 17.4 14.5L16.2 13A1.3 1.3 0 1 1 16.2 11Z"/>', |
| 280 | eraser: '<path d="M14 3.9l6.1 6.1-5.2 5.2-6.1-6.1ZM7.4 10l6.2 6.2-3.2 3.2H6.1l-2.9-2.9a1.6 1.6 0 0 1 0-2.3Z"/><path class="ln" d="M13 19.4h7"/>', |
| 281 | seedling: '<path d="M12.4 10.8C12.4 6.1 9.5 2.9 4 2.9c0 4.9 3 7.8 8.4 7.8ZM11.6 13.4c0-4.7 3-7.8 8.4-7.8c0 4.9-3 7.8-8.4 7.8Z"/><path class="ln" d="M12 20.4V12.5"/>', |
| 282 | hammer: '<path d="M13.1 2.5l7.5 7.5l-3.7 3.7l-7.5-7.5ZM12.9 8.9L3.7 18.1a2.1 2.1 0 0 0 2.9 2.9l9.2-9.2Z"/>', |
| 283 | // 4.182.0, the "-off" family: the shape is cut along the slash (a band a little wider than the line), so the |
| 284 | // slash stays a line across it, as eye-off and mic-off already do. |
| 285 | 'chat-off': '<path d="M8.1 4.6H19a1.6 1.6 0 0 1 1.6 1.6v9.5a1.6 1.6 0 0 1-0.4 1ZM3.4 7.3L12.9 16.8H8.3l-4.9 4.6Z"/><path class="ln" d="M4 4.2l16 16"/>', |
| 286 | 'user-off': '<path d="M9.1 4.7A4.2 4.2 0 1 1 15 10.6ZM4.2 20.8c0-4.3 2.8-6.9 6.3-7.2L17.5 20.8Z"/><path class="ln" d="M4 3.5l16.2 16.2"/>', |
| 287 | 'camera-off': '<path d="M8.5 4.6L9 3.8h6.1l1.7 2.5h2.5A1.8 1.8 0 0 1 21.2 8.1v9.1ZM3.8 7.3L16.7 20.2H4.8A1.8 1.8 0 0 1 3 18.4V8.1Z"/><path class="ln" d="M4 3.8l16.2 16.2"/>', |
| 288 | 'cloud-off': '<path d="M10.1 5.7A6 6 0 0 1 17.9 9.8a4.1 4.1 0 0 1 2.8 6.5ZM6.6 9.1L15.5 18H7.9A4.4 4.4 0 0 1 6.4 9.2Z"/><path class="ln" d="M5.1 4.2l15 15"/>', |
| 289 | // 4.182.0, third batch: a die, a lifebuoy, cubes, a paw, a weight, and a person with a pen or a tag. |
| 290 | dice: '<path fill-rule="evenodd" d="M6.2 2.7h11.5a3.6 3.6 0 0 1 3.6 3.6v11.5a3.6 3.6 0 0 1-3.6 3.6H6.2a3.6 3.6 0 0 1-3.6-3.6V6.2a3.6 3.6 0 0 1 3.6-3.6ZM6.2 8.2a2 2 0 1 0 3.9 0a2 2 0 1 0-3.9 0ZM13.8 8.2a2 2 0 1 0 3.9 0a2 2 0 1 0-3.9 0ZM10 12a2 2 0 1 0 3.9 0a2 2 0 1 0-3.9 0ZM6.2 15.8a2 2 0 1 0 3.9 0a2 2 0 1 0-3.9 0ZM13.8 15.8a2 2 0 1 0 3.9 0a2 2 0 1 0-3.9 0Z"/>', |
| 291 | lifebuoy: '<path fill-rule="evenodd" d="M13.1 2.7a9.4 9.4 0 1 0 0 18.7a9.4 9.4 0 0 0 0-18.7Zm0 5.3a4.1 4.1 0 1 1 0 8.2a4.1 4.1 0 0 1 0-8.2ZM15.5 16.2L18.4 19.1L20.2 17.3L17.2 14.3ZM10.8 16.2L7.9 19.1L6 17.3L9 14.3ZM15.5 7.8L18.4 4.9L20.2 6.7L17.2 9.7ZM10.8 7.8L7.9 4.9L6 6.7L9 9.7Z"/>', |
| 292 | cubes: '<path d="M12 2.3L7.8 4.4v4.8l4.2 2.1l4.2-2.1V4.4ZM6.8 12.1L2.7 14.2v4.8l4.2 2.1l4.2-2.1v-4.8ZM17.2 12.1l-4.2 2.1v4.8l4.2 2.1l4.2-2.1v-4.8Z"/>', |
| 293 | paw: '<path d="M6.9 18.5c0-3.5 2.2-6.3 5.1-6.3s5.1 2.8 5.1 6.3c0 1.8-1.3 2.9-2.9 2.9c-0.9 0-1.5-0.6-2.2-0.6s-1.3 0.6-2.2 0.6c-1.6 0-2.9-1.1-2.9-2.9Z"/><circle cx="5.1" cy="10.2" r="2.6"/><circle cx="9.1" cy="5.1" r="2.6"/><circle cx="14.9" cy="5.1" r="2.6"/><circle cx="18.9" cy="10.2" r="2.6"/>', |
| 294 | weight: '<circle cx="12" cy="4.8" r="2.6"/><path d="M6.5 8.7h10.9l3.3 12.3H3.2Z"/>', |
| 295 | 'user-pen': '<circle cx="9.8" cy="7.6" r="4"/><path d="M2.9 19.9c0-4 3.1-6.7 6.9-6.7c1.2 0 2.2 0.3 3.1 0.8v5.9Z"/><path d="M19.5 11.4l2.1 2.1l-5.2 5.2l-2.8 0.7l0.7-2.8Z"/>', |
| 296 | 'user-tag': '<circle cx="10" cy="7.4" r="4"/><path d="M2.9 19.9c0-4 3.2-6.8 7-6.8c1.2 0 2.3 0.3 3.2 0.8v6Z"/><path fill-rule="evenodd" d="M14 13.7h4.5l3.1 3.1l-3.1 3.1h-4.5ZM15.2 16.8a1.1 1.1 0 1 0 2.2 0a1.1 1.1 0 1 0-2.2 0Z"/>', |
| 297 | // 4.182.0, second batch: marks in a disc, the media keys, and a few things (flame, mug, clapper, a person with |
| 298 | // a badge). A mark inside a filled shape is cut out of it; a thin part that must stay a line is class "ln". |
| 299 | 'plus-circle': '<path fill-rule="evenodd" d="M12.9 2.7a9.4 9.4 0 1 0 0 18.7a9.4 9.4 0 0 0 0-18.7Zm-1.2 4.2h2.5v3.8H18v2.5h-3.8V17.1h-2.5v-3.8H7.9v-2.5h3.8Z"/>', |
| 300 | 'minus-circle': '<path fill-rule="evenodd" d="M12.9 2.7a9.4 9.4 0 1 0 0 18.7a9.4 9.4 0 0 0 0-18.7ZM7.9 10.9v2.5h10.2v-2.5Z"/>', |
| 301 | contrast: '<path fill-rule="evenodd" d="M12.4 2.7a9.4 9.4 0 1 0 0 18.7a9.4 9.4 0 0 0 0-18.7Zm0 2.1a7.2 7.2 0 0 1 0 14.4Z"/>', |
| 302 | rewind: '<path d="M21 5.5v13.1L12 12ZM11.3 5.5v13.1L2.2 12Z"/>', |
| 303 | 'fast-forward': '<path d="M3 5.5v13.1L12 12ZM12.7 5.5v13.1L21.8 12Z"/>', |
| 304 | skip: '<path d="M3.3 2.6v18.9L15.8 12Z"/><rect x="17.8" y="2.7" width="3.2" height="18.7" rx="1.5"/>', |
| 305 | flame: '<path fill-rule="evenodd" d="M12 20.9c3.8 0 6.4-2.6 6.4-6.1c0-4.3-4.4-7.7-5.9-12.6h-1C10 7.2 5.6 10.5 5.6 14.9c0 3.5 2.6 6.1 6.4 6.1Zm0-3.3c1.2 0 1.9-0.8 1.9-1.9c0-1.2-1-2.1-1.9-3.5c-1 1.4-1.9 2.3-1.9 3.5c0 1.1 0.8 1.9 1.9 1.9Z"/>', |
| 306 | 'heart-broken': '<path fill-rule="evenodd" d="M12 21.6s-9.3-5.7-9.3-13a5.3 5.3 0 0 1 9.3-3.6a5.3 5.3 0 0 1 9.3 3.6c0 7.4-9.3 13-9.3 13ZM10.9 5.9l2.7 0.6l-1.4 2.7l3.6 2.5l-2.6 5.9l-2.5-1.1l1.5-3.7l-3.7-2.5Z"/>', |
| 307 | clapper: '<path fill-rule="evenodd" d="M2.6 5.9L19.9 2.7l0.9 4.3L3.2 8.7ZM7 5.1L9.2 8.1l2.6-0.2L9.6 4.6ZM12.6 4l2.2 3.6l2.6-0.3L15.2 3.6Z"/><path d="M3.1 9.9h18.2v9a1.6 1.6 0 0 1-1.6 1.6h-15a1.6 1.6 0 0 1-1.6-1.6Z"/>', |
| 308 | mug: '<path d="M3.8 8.9h12.2v7.6a4.6 4.6 0 0 1-4.6 4.6h-3a4.6 4.6 0 0 1-4.6-4.6Z"/><path class="ln" d="M16 11H16.9a2.5 2.5 0 0 1 0 5h-0.9M7.9 3.7c-0.8 1 0.8 2 0 3M11.4 3.7c-0.8 1 0.8 2 0 3"/>', |
| 309 | 'user-minus': '<circle cx="9.6" cy="7.6" r="3.9"/><path d="M2.8 19.7c0-3.9 3.1-6.6 6.8-6.6c1.2 0 2.2 0.3 3.1 0.8v5.9Z"/><path class="ln" d="M15.1 16.7h5.2"/>', |
| 310 | 'user-lock': '<circle cx="9.9" cy="7.2" r="4.2"/><path d="M2.7 20c0-4.2 3.2-7 7.2-7c1.2 0 2.3 0.3 3.2 0.8v6.2Z"/><rect x="14.5" y="14.5" width="6.9" height="5.7" rx="1.3"/><path class="ln" d="M16.4 14.5v-1a1.5 1.5 0 0 1 3 0v1"/>', |
| 311 | 'clipboard-check': '<path fill-rule="evenodd" d="M7.5 4.2h9a2 2 0 0 1 2 2v13.1a2 2 0 0 1-2 2H7.5a2 2 0 0 1-2-2V6.3a2 2 0 0 1 2-2ZM8 13.1L11 16.1l5-5l-1.6-1.6l-3.4 3.4l-1.5-1.5Z"/><rect x="8.7" y="2.5" width="6.6" height="3.7" rx="1.2"/>', |
| 312 | 'file-code': '<path fill-rule="evenodd" d="M5.8 2.4h7.6v5.2h5V21.2H5.8ZM9.8 11l1.5 1.4l-1.6 1.7l1.6 1.7l-1.5 1.4l-2.9-3.1ZM14.4 11l-1.5 1.4l1.6 1.7l-1.6 1.7l1.5 1.4l2.9-3.1Z"/><path d="M15 2.7l3.1 3.3h-3.1Z"/>', |
| 313 | // 4.182.0: thirteen more shapes that are shown small (frames, cards and the person in a circle). A frame's |
| 314 | // inner line becomes a gap between two filled panels, so the shape still reads at 14 px. |
| 315 | grid: '<rect x="2.7" y="2.7" width="8" height="8" rx="2.2"/><rect x="13.3" y="2.7" width="8" height="8" rx="2.2"/><rect x="2.7" y="13.3" width="8" height="8" rx="2.2"/><rect x="13.3" y="13.3" width="8" height="8" rx="2.2"/>', |
| 316 | square: '<rect x="2.7" y="2.7" width="18.7" height="18.7" rx="3.3"/>', |
| 317 | more: '<circle cx="4.8" cy="12" r="2.2"/><circle cx="12" cy="12" r="2.2"/><circle cx="19.2" cy="12" r="2.2"/>', |
| 318 | record: '<path fill-rule="evenodd" d="M13.2 2.7a9.3 9.3 0 1 0 0 18.5a9.3 9.3 0 0 0 0-18.5Zm0 3.3a6 6 0 1 1 0 11.9a6 6 0 0 1 0-11.9Z"/><circle cx="13.2" cy="12" r="3.7"/>', |
| 319 | window: '<path d="M2.6 6.2a2.7 2.7 0 0 1 2.7-2.7h13.4a2.7 2.7 0 0 1 2.7 2.7v1.5H2.6ZM2.6 9.8h18.7v7.7a2.7 2.7 0 0 1-2.7 2.7h-13.4a2.7 2.7 0 0 1-2.7-2.7Z"/>', |
| 320 | sidebar: '<path d="M2.6 6.3a2.7 2.7 0 0 1 2.7-2.7h2.8v16.6H5.3a2.7 2.7 0 0 1-2.7-2.7ZM10.1 3.7h8.5a2.7 2.7 0 0 1 2.7 2.7v11.3a2.7 2.7 0 0 1-2.7 2.7h-8.5Z"/>', |
| 321 | columns: '<path d="M2.6 6.3a2.7 2.7 0 0 1 2.7-2.7h13.4a2.7 2.7 0 0 1 2.7 2.7v1.5H2.6ZM2.6 9.9h8.3v10.4H5.3a2.7 2.7 0 0 1-2.7-2.7ZM13 9.9h8.3v7.7a2.7 2.7 0 0 1-2.7 2.7H13Z"/>', |
| 322 | table: '<path d="M2.7 6.2a2.5 2.5 0 0 1 2.5-2.5h13.6a2.5 2.5 0 0 1 2.5 2.5v2.3H2.7ZM2.7 10.5h5.3v9.9H5.2a2.5 2.5 0 0 1-2.5-2.5ZM9.8 10.5h4.5v9.9H9.8ZM16.1 10.5h5.3V17.9a2.5 2.5 0 0 1-2.5 2.5h-2.7Z"/>', |
| 323 | card: '<path fill-rule="evenodd" d="M2.6 7.4a2.4 2.4 0 0 1 2.4-2.4h13.9a2.4 2.4 0 0 1 2.4 2.4v9.3a2.4 2.4 0 0 1-2.4 2.4h-13.9a2.4 2.4 0 0 1-2.4-2.4ZM2.6 9.5v1.7h18.7V9.5ZM5.9 14.2v1.5h4.8v-1.5Z"/>', |
| 324 | briefcase: '<path d="M2.7 9.1a2.5 2.5 0 0 1 2.5-2.5h13.6a2.5 2.5 0 0 1 2.5 2.5v2.8H2.7ZM2.7 13.1h7.2v1.5h4.3v-1.5h7.2V17.9a2.5 2.5 0 0 1-2.5 2.5H5.2a2.5 2.5 0 0 1-2.5-2.5Z"/><path class="ln" d="M9.1 6.6V5.7A1.5 1.5 0 0 1 10.5 4.2h2.9A1.5 1.5 0 0 1 14.9 5.7v0.9"/>', |
| 325 | inbox: '<path fill-rule="evenodd" d="M2.7 12.4L5.2 3.7h13.6l2.5 8.8V17.9a1.6 1.6 0 0 1-1.6 1.6H4.2A1.6 1.6 0 0 1 2.7 17.9ZM6.4 5.6L4.6 11.5h3.8l1.5 2.4h4.3l1.5-2.4h3.8L17.6 5.6Z"/>', |
| 326 | 'user-circle': '<path fill-rule="evenodd" d="M13 2.9a9.4 9.4 0 1 0 0 18.7a9.4 9.4 0 0 0 0-18.7Zm0 3.8a3.3 3.3 0 1 1 0 6.5a3.3 3.3 0 0 1 0-6.5ZM7.2 17.9a6.7 6.7 0 0 1 11.5 0a8.1 8.1 0 0 1-11.5 0Z"/>', |
| 327 | compass: '<path fill-rule="evenodd" d="M12.9 2.7a9.4 9.4 0 1 0 0 18.7a9.4 9.4 0 0 0 0-18.7ZM17.4 7.7L14.9 14.1L8.5 16.5L11 10.1Z"/>', |
| 328 | print: '<path d="M6.2 2.6h11.5v4.4H6.2ZM2.6 11a2.7 2.7 0 0 1 2.7-2.7h13.4a2.7 2.7 0 0 1 2.7 2.7v4.1a2.7 2.7 0 0 1-2.7 2.7h-0.3v-4.5H5.6v4.5h-0.3A2.7 2.7 0 0 1 2.6 15.1ZM7.1 14.7h9.9v6.7H7.1Z"/>', |
| 329 | // 4.73.0: the most-used shapes on the sites (Live's sweep, 2026-11-01) get their solid drawing too. |
| 330 | copy: '<rect x="7.5" y="7.5" width="13.8" height="13.8" rx="2.5"/><path class="ln" d="M16.4 7.5V5.9a2.1 2.1 0 0 0-2.1-2.1H5.9a2.1 2.1 0 0 0-2.1 2.1v8.5a2.1 2.1 0 0 0 2.1 2.1h1.7"/>', |
| 331 | scissors: '<path fill-rule="evenodd" d="M6.2 3.8a3.2 3.2 0 1 1 0 6.5a3.2 3.2 0 0 1 0-6.5Zm0 2a1.2 1.2 0 1 0 0 2.4a1.2 1.2 0 0 0 0-2.4ZM6.2 13.7a3.2 3.2 0 1 1 0 6.5a3.2 3.2 0 0 1 0-6.5Zm0 2a1.2 1.2 0 1 0 0 2.4a1.2 1.2 0 0 0 0-2.4Z"/><path class="ln" d="M8.7 8.8L20.4 18.1M8.7 15.2L20.4 5.9"/>', |
| 332 | volume: '<path d="M2.5 8.9h4l5.4-4.2v14.6l-5.4-4.2H2.5Z"/><path class="ln" d="M15.2 9.3a3.8 3.8 0 0 1 0 5.5M17.7 6.5a7.5 7.5 0 0 1 0 11"/>', |
| 333 | mute: '<path d="M2.9 8.8h4l5.5-4.2v14.8l-5.5-4.2H2.9Z"/><path class="ln" d="M15.5 9.6l4.7 4.7M20.3 9.6l-4.7 4.7"/>', |
| 334 | robot: '<path fill-rule="evenodd" d="M8.5 8.7h6.9a3.1 3.1 0 0 1 3.1 3.1v4.3A3.1 3.1 0 0 1 15.5 19.3H8.5A3.1 3.1 0 0 1 5.4 16.2v-4.3A3.1 3.1 0 0 1 8.5 8.7Zm0.9 3.8a1.2 1.2 0 1 0 0 2.4a1.2 1.2 0 0 0 0-2.4Zm5.2 0a1.2 1.2 0 1 0 0 2.4a1.2 1.2 0 0 0 0-2.4ZM9.7 16v1.3h4.5v-1.3Z"/><path class="ln" d="M12 5.3v3.5M3.9 13.1v2.8M20.2 13.1v2.8"/>', |
| 335 | film: '<path fill-rule="evenodd" d="M4.8 3.6h14.4a2.3 2.3 0 0 1 2.3 2.3v12.3a2.3 2.3 0 0 1-2.3 2.3H4.8A2.3 2.3 0 0 1 2.5 18.2V5.8A2.3 2.3 0 0 1 4.8 3.6Zm3.8 2v12.9h6.8V5.5ZM4.4 6v2h2.1V6Zm0 5v1.8h2.1v-1.8Zm0 4.9v2h2.1v-2Zm13.1-10v2h2.1V6Zm0 5v1.8h2.1v-1.8Zm0 4.9v2h2.1v-2Z"/>', |
| 336 | clipboard: '<path fill-rule="evenodd" d="M7.5 4.2h9a2 2 0 0 1 2 2v13.1a2 2 0 0 1-2 2H7.5a2 2 0 0 1-2-2V6.3a2 2 0 0 1 2-2ZM9.1 9.9v1.6h5.8v-1.6Zm0 3.9v1.6h3.9v-1.6Z"/><rect x="8.7" y="2.5" width="6.6" height="3.7" rx="1.2"/>', |
| 337 | computer: '<rect x="2.6" y="3.4" width="18.8" height="12.8" rx="2.2"/><path class="ln" d="M8 20h8M12 16.2v3.8"/>', |
| 338 | sliders: '<path class="ln" d="M4 7h8.8M19.2 7H20M4 17h2.8M13.2 17H20"/><circle cx="16" cy="7" r="3.2"/><circle cx="10" cy="17" r="3.2"/>', |
| 339 | pencil: '<path d="M15.6 3.1a2.2 2.2 0 0 1 3.2 3.2L6.9 18.1l-4.5 1.2l1.2-4.5Z"/><path class="ln" d="M11.8 19.7H20.1"/>', |
| 340 | save: '<path fill-rule="evenodd" d="M4.4 2.7h12.4l3.5 3.5V20.8a0.7 0.7 0 0 1-0.7 0.7H4.4a0.7 0.7 0 0 1-0.7-0.7V3.4a0.7 0.7 0 0 1 0.7-0.7Zm3.4 1.4v4.9h7.4V4.1ZM7.2 13.6v6.4h9.6v-6.4Z"/>', |
| 341 | plug: '<path d="M6.5 8h10.9v3.3a5.4 5.4 0 0 1-10.9 0Z"/><path class="ln" d="M9.2 4.2v3.8M14.6 4.2v3.8M11.9 16.8v3.5"/>', |
| 342 | puzzle: '<path d="M2.8 5.4h5a2.9 2.9 0 1 1 5.8 0h5v5a2.9 2.9 0 1 1 0 5.8v5h-5a2.9 2.9 0 1 0-5.8 0H2.8v-5a2.9 2.9 0 1 0 0-5.8Z"/>', |
| 343 | chart: '<path class="ln" d="M4 3.5v16.2h16.2"/><path d="M7 14.9L11 10.3l3 2.5l5.2-6.2V17.7H7Z"/>', |
| 344 | gear: '<path fill-rule="evenodd" d="M18.2 14.6a1.4 1.4 0 0 0 0.3 1.7l0.1 0.1a1.7 1.7 0 1 1-2.7 2.7l-0.1-0.1a1.4 1.4 0 0 0-1.7-0.3a1.4 1.4 0 0 0-0.9 1.4V19.6a1.7 1.7 0 1 1-3.8 0v-0.1a1.4 1.4 0 0 0-1-1.4a1.4 1.4 0 0 0-1.7 0.3l-0.1 0.1a1.7 1.7 0 1 1-2.7-2.7l0.1-0.1a1.4 1.4 0 0 0 0.3-1.7a1.4 1.4 0 0 0-1.4-0.9H4.6a1.7 1.7 0 1 1 0-3.8h0.1a1.4 1.4 0 0 0 1.4-1a1.4 1.4 0 0 0-0.3-1.7l-0.1-0.1a1.7 1.7 0 1 1 2.7-2.7l0.1 0.1a1.4 1.4 0 0 0 1.7 0.3H9.6a1.4 1.4 0 0 0 0.9-1.4V4.6a1.7 1.7 0 1 1 3.8 0v0.1a1.4 1.4 0 0 0 0.9 1.4a1.4 1.4 0 0 0 1.7-0.3l0.1-0.1a1.7 1.7 0 1 1 2.7 2.7l-0.1 0.1a1.4 1.4 0 0 0-0.3 1.7V9.6a1.4 1.4 0 0 0 1.4 0.9H19.6a1.7 1.7 0 1 1 0 3.8h-0.1a1.4 1.4 0 0 0-1.4 0.9ZM12.1 9.3a2.8 2.8 0 1 0 0 6.5a2.8 2.8 0 0 0 0-6.5Z"/>', |
| 345 | search: '<path fill-rule="evenodd" d="M10.6 3a7.7 7.7 0 1 1 0 15.4a7.7 7.7 0 0 1 0-15.4Zm0 3.2a4.5 4.5 0 1 0 0 9.2a4.5 4.5 0 0 0 0-9.2Z"/><path class="ln" d="M16.3 16.4l3.8 3.8"/>', |
| 346 | game: '<path fill-rule="evenodd" d="M7.6 6.3h8.8a5.8 5.8 0 0 1 0 11.5H7.6a5.8 5.8 0 0 1 0-11.5Zm-1.4 3.7v1.6H4.7v1.8h1.6v1.6H7.9v-1.6h1.6v-1.8H7.9v-1.6Zm9.2 1a1.2 1.2 0 1 0 0 2.3a1.2 1.2 0 0 0 0-2.3Zm2.5 1.6a1.2 1.2 0 1 0 0 2.3a1.2 1.2 0 0 0 0-2.3Z"/>', |
| 347 | idea: '<path d="M8.3 14.9A6.5 6.5 0 1 1 15.7 14.9c-0.7 0.6-1.3 1.3-1.4 2.2H9.7c-0.1-0.9-0.7-1.6-1.4-2.2Z"/><path class="ln" d="M9.6 20.5h4.8"/>', |
| 348 | wrench: '<path d="M14.9 2.5a6 6 0 0 0-5.5 8.3L2.7 17.5V21.3H6.5l6.7-6.7a6 6 0 0 0 8.3-5.5l-3.5 1.3l-2.9-2.9l1.3-3.5Z"/>', |
| 349 | target: '<path fill-rule="evenodd" d="M12 2.6a9.4 9.4 0 1 1 0 18.8a9.4 9.4 0 0 1 0-18.8Zm0 3a6.4 6.4 0 1 0 0 12.9a6.4 6.4 0 0 0 0-12.9Zm0 2.7a3.7 3.7 0 1 1 0 7.4a3.7 3.7 0 0 1 0-7.4Z"/>', |
| 350 | nodes: '<circle cx="12" cy="5.2" r="3"/><circle cx="5.6" cy="18" r="3"/><circle cx="18.4" cy="18" r="3"/><path class="ln" d="M10.9 7.6L6.8 15.5M13.1 7.6l4.1 7.9M8.4 18h7.1"/>', |
| 351 | 'book-open': '<path d="M10.9 5.8C8.8 4.4 6 3.8 2.5 4.5v14c3.5-0.6 6.3 0 8.4 1.5ZM13.1 5.8c2.1-1.5 5-2 8.4-1.4v14c-3.5-0.6-6.3 0-8.4 1.5Z"/>', |
| 352 | book: '<path d="M4.3 5.2A2.4 2.4 0 0 1 6.8 2.7h12.2v14.6H6.8a2.4 2.4 0 0 0-2.4 2.4Z"/><path class="ln" d="M7.2 20.2h11.2"/>', |
| 353 | fire: '<path fill-rule="evenodd" d="M12.1 19.8a6.8 6.8 0 0 0 6.8-6.8c0-4.3-2.9-6.8-4.2-10.3c-2.1 2.3-2.6 4.6-2.6 4.6S10.8 5.1 9.6 3C7.1 5.9 5.2 9.2 5.2 12.9A6.8 6.8 0 0 0 12.1 21.4Zm0-2.8a2.8 2.8 0 0 0 2.8-2.8c0-1.6-1.2-2.7-1.7-4c-0.9 1-1.1 1.8-1.1 1.8s-0.5-0.9-1-1.6c-1 1.2-1.7 2.5-1.7 3.9a2.8 2.8 0 0 0 2.7 2.7Z"/>', |
| 354 | info: '<path fill-rule="evenodd" d="M12.9 2.6a9.4 9.4 0 1 0 0 18.7a9.4 9.4 0 0 0 0-18.7ZM11.7 10.5h2.5V16.9h-2.5ZM12.9 6.4a1.5 1.5 0 1 1 0 3a1.5 1.5 0 0 1 0-3Z"/>', |
| 355 | 'alert-circle': '<path fill-rule="evenodd" d="M12.9 2.7a9.4 9.4 0 1 0 0 18.7a9.4 9.4 0 0 0 0-18.7ZM11.7 6.9h2.5v7.1h-2.5ZM12.9 15.3a1.5 1.5 0 1 1 0 3a1.5 1.5 0 0 1 0-3Z"/>', |
| 356 | alert: '<path fill-rule="evenodd" d="M10.5 4.1a1.7 1.7 0 0 1 3 0l7.7 13.3a1.7 1.7 0 0 1-1.5 2.6H4.3a1.7 1.7 0 0 1-1.5-2.6ZM11 8.8h2v5.2h-2ZM12 15.2a1.2 1.2 0 1 1 0 2.4a1.2 1.2 0 0 1 0-2.4Z"/>', |
| 357 | heart: '<path d="M12 21.6s-9.3-5.7-9.3-13a5.3 5.3 0 0 1 9.3-3.6a5.3 5.3 0 0 1 9.3 3.6c0 7.4-9.3 13-9.3 13Z"/>', |
| 358 | star: '<path d="M12 2.8l2.9 6l6.6 0.8l-4.9 4.5l1.3 6.6L12 17.4l-5.9 3.2l1.3-6.6l-4.9-4.5l6.6-0.8Z"/>', |
| 359 | bell: '<path d="M5.2 15.4V9.6a6.8 6.8 0 0 1 13.7 0v5.7l1.9 2.6H3.3ZM9.7 19.3h4.6a2.3 2.3 0 0 1-4.6 0Z"/>', |
| 360 | user: '<circle cx="12" cy="6.7" r="4.5"/><path d="M3.5 21c0-4.7 3.8-7.8 8.5-7.8s8.5 3.2 8.5 7.8Z"/>', |
| 361 | members: '<circle cx="9.1" cy="7.1" r="3.5"/><path d="M2.6 19.6c0-3.7 2.9-6.3 6.4-6.3s6.4 2.6 6.4 6.3Z"/><circle cx="16.5" cy="6.6" r="2.8"/><path d="M16.7 12.4c2.8 0.4 4.7 2.7 4.7 6.2V19.6h-4.3c0-2.8-1-5.1-2.7-6.5Z"/>', |
| 362 | chat: '<path d="M2.7 4.7A1.8 1.8 0 0 1 4.5 3h15.2a1.8 1.8 0 0 1 1.8 1.8v10.9a1.8 1.8 0 0 1-1.8 1.8H8.3L2.7 21.8Z"/>', |
| 363 | eye: '<path fill-rule="evenodd" d="M12 5.3C6.4 5.3 2.6 12 2.6 12s3.9 6.7 9.4 6.7S21.5 12 21.5 12S17.6 5.3 12 5.3Zm0 3.3a3.3 3.3 0 1 1 0 6.7a3.3 3.3 0 0 1 0-6.7Z"/><circle cx="12" cy="12" r="1.6"/>', |
| 364 | clock: '<path fill-rule="evenodd" d="M12.9 2.7a9.4 9.4 0 1 0 0 18.7a9.4 9.4 0 0 0 0-18.7ZM11.9 6.6h2.3v5l3.3 2l-1.1 2l-4.3-2.7Z"/>', |
| 365 | pin: '<path fill-rule="evenodd" d="M12 2.8a7.1 7.1 0 0 0-7.1 7.1c0 5.5 7.1 11.8 7.1 11.8s7.1-6.3 7.1-11.8A7.1 7.1 0 0 0 12 2.8Zm0 4.5a2.5 2.5 0 1 1 0 5.1a2.5 2.5 0 0 1 0-5.1Z"/>', |
| 366 | home: '<path d="M2.7 10.4L12 2.3l9.3 8.1v9.5a1.1 1.1 0 0 1-1.1 1.1h-5.6v-6.9h-5.4v6.9H3.8a1.1 1.1 0 0 1-1.1-1.1Z"/>', |
| 367 | camera: '<path fill-rule="evenodd" d="M2.5 7.8a1.9 1.9 0 0 1 1.9-1.9h2.6L8.8 3.3h6.3l1.8 2.6h2.6A1.9 1.9 0 0 1 21.5 7.8v10.7a1.9 1.9 0 0 1-1.9 1.9H4.4A1.9 1.9 0 0 1 2.5 18.5Zm9.5 2a3.6 3.6 0 1 0 0 7.2a3.6 3.6 0 0 0 0-7.2Z"/>', |
| 368 | video: '<path d="M3 7.7a2 2 0 0 1 2-2H14.4a2 2 0 0 1 2 2v8.7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2ZM17.5 10.1l4.2-2.6v8.9l-4.2-2.6Z"/>', |
| 369 | mic: '<path d="M8.9 5.8a3.1 3.1 0 0 1 6.2 0V10.8a3.1 3.1 0 0 1-6.2 0Z"/><path class="ln" d="M5.9 10.8a6.1 6.1 0 0 0 12.3 0M12 16.9V20.2"/>', |
| 370 | lock: '<path d="M4.6 11.1a1.6 1.6 0 0 1 1.6-1.6h11.5a1.6 1.6 0 0 1 1.6 1.6v8.4a1.6 1.6 0 0 1-1.6 1.6H6.2A1.6 1.6 0 0 1 4.6 19.6Z"/><path class="ln" d="M7.9 9.4V6.8a4.1 4.1 0 0 1 8 0V9.4"/>', |
| 371 | shield: '<path d="M12 2.6 4.6 5.8V12c0 4.6 3.1 8 7.4 9.5 4.3-1.5 7.4-4.9 7.4-9.5V5.8Z"/>', |
| 372 | crown: '<path d="M2.6 7.3L7.4 11.5L12 4.1L16.6 11.5l4.8-4.2l-2 11.7H4.6Z"/>', |
| 373 | trophy: '<path d="M7.3 3h9.6V8.6a4.7 4.7 0 0 1-9.6 0Z"/><path class="ln" d="M7.3 5.6H5a3.1 3.1 0 0 0 3.1 4.1M16.7 5.6h2.3a3.1 3.1 0 0 1-3.1 4.1M12 13.7V16.9M8 20.4h8.1"/>', |
| 374 | tag: '<path fill-rule="evenodd" d="M2.9 3.4A1.5 1.5 0 0 1 4.4 2.9h7.2l10 10l-8.7 8.7L2.9 10.6Zm5 2.5a1.9 1.9 0 1 0 0 3.7a1.9 1.9 0 0 0 0-3.7Z"/>', |
| 375 | zap: '<path d="M13.9 2.5L5.2 13.3h6.1l-1.2 8.1l8.7-10.8h-6.1Z"/>', |
| 376 | play: '<path d="M5.1 3.5v17a0.9 0.9 0 0 0 1.3 0.8l12.8-8.5a0.9 0.9 0 0 0 0-1.6L6.5 2.7a0.9 0.9 0 0 0-1.3 0.8Z"/>', |
| 377 | pause: '<rect x="4.8" y="2.6" width="5.1" height="18.8" rx="1.5"/><rect x="14.2" y="2.6" width="5.1" height="18.8" rx="1.5"/>', |
| 378 | spark: '<path d="M10.7 2.6l2 5.6l5.6 2l-5.6 2L10.7 17.8l-2-5.6l-5.6-2l5.6-2ZM17.6 14.7l0.9 2.5l2.5 0.9l-2.5 0.9l-0.9 2.5l-0.9-2.5l-2.5-0.9l2.5-0.9Z"/>', |
| 379 | flag: '<path class="ln" d="M7.2 20.5V4.3"/><path d="M7.8 4.1h10.9l-2 4.1l2 4.1H7.8Z"/>', |
| 380 | folder: '<path d="M2.7 6.4a2.1 2.1 0 0 1 2.1-2.1h4.4l2.1 2.1h8.1a2.1 2.1 0 0 1 2.1 2.1v8.7a2.1 2.1 0 0 1-2.1 2.1H4.8a2.1 2.1 0 0 1-2.1-2.1Z"/>', |
| 381 | file: '<path d="M5.8 2.4h7.6v5.2h5V21.2H5.8ZM15 2.7l3.1 3.3h-3.1Z"/>', |
| 382 | image: '<path fill-rule="evenodd" d="M2.8 6.1a2.7 2.7 0 0 1 2.7-2.7h13.3A2.7 2.7 0 0 1 21.5 6.1v12.3a2.7 2.7 0 0 1-2.7 2.7H5.4A2.7 2.7 0 0 1 2.8 18.4Zm6.2 2.2a2 2 0 1 0 0 3.9a2 2 0 0 0 0-3.9Zm7.5 3.5l-8.3 7.8h10.7a1.5 1.5 0 0 0 1.5-1.5v-3.1Z"/>', |
| 383 | cloud: '<path d="M7.9 18.2h9.6a4.2 4.2 0 0 0 0.6-8.3A6.1 6.1 0 0 0 6.5 9.2A4.5 4.5 0 0 0 7.9 18.2Z"/>', |
| 384 | moon: '<path d="M21.7 14.6A9.7 9.7 0 1 1 9.4 2.3a8 8 0 0 0 12.3 12.3Z"/>', |
| 385 | drop: '<path d="M12 2.2s7 7.4 7 12.6a7 7 0 0 1-13.9 0C5 9.6 12 2.2 12 2.2Z"/>', |
| 386 | 'check-circle': '<path fill-rule="evenodd" d="M12.9 2.7a9.4 9.4 0 1 0 0 18.7a9.4 9.4 0 0 0 0-18.7ZM17.3 8.9l1.6 1.6l-7 7l-4.1-4.1l1.6-1.6l2.6 2.6Z"/>', |
| 387 | 'x-circle': '<path fill-rule="evenodd" d="M12.9 2.7a9.4 9.4 0 1 0 0 18.7a9.4 9.4 0 0 0 0-18.7ZM10.1 7.9L12.9 10.7l2.9-2.9l1.4 1.4l-2.9 2.9l2.9 2.9l-1.4 1.4l-2.9-2.9l-2.9 2.9l-1.4-1.4l2.9-2.9l-2.9-2.9Z"/>', |
| 388 | smile: '<path fill-rule="evenodd" d="M12.9 2.7a9.4 9.4 0 1 0 0 18.7a9.4 9.4 0 0 0 0-18.7ZM9.9 8.6a1.4 1.4 0 1 1 0 2.8a1.4 1.4 0 0 1 0-2.8ZM16 8.6a1.4 1.4 0 1 1 0 2.8a1.4 1.4 0 0 1 0-2.8ZM8.8 13.5h8.3a4.1 4.1 0 0 1-8.3 0Z"/>', |
| 389 | calendar: '<path fill-rule="evenodd" d="M4.1 8.1a2 2 0 0 1 2-2h11.8a2 2 0 0 1 2 2V19.5a2 2 0 0 1-2 2H6.1a2 2 0 0 1-2-2Zm2.2 3.9V19.3h11.4v-7.3Z"/><path class="ln" d="M9 3.9v3.5M15 3.9v3.5"/>', |
| 390 | 'thumbs-up': '<path d="M6.5 10.1v10.3H3.6a1.1 1.1 0 0 1-1.1-1.1v-8a1.1 1.1 0 0 1 1.1-1.1ZM7.9 10.1l3.6-7.3a2.4 2.4 0 0 1 2.7 2.8l-0.6 3.5h5.6a2.2 2.2 0 0 1 2.2 2.6l-1.4 7a2.2 2.2 0 0 1-2.2 1.7H7.9Z"/>', |
| 391 | megaphone: '<path d="M2.7 9.1a1.1 1.1 0 0 1 1.1-1.1h2.7l9.7-4.8v16.1l-9.7-4.8H3.8A1.1 1.1 0 0 1 2.7 13.2Z"/><path class="ln" d="M6.6 14.5l1.2 5M18.8 8.5a3.4 3.4 0 0 1 0 5.4"/>', |
| 392 | gem: '<path d="M6.4 3.9h11.2l3.8 5.3l-9.4 11.6L2.6 9.2Z"/>', |
| 393 | ghost: '<path fill-rule="evenodd" d="M3.4 21.3V9.9a8.7 8.7 0 0 1 17.2 0v11.5l-2.9-2.1l-2.9 2.1l-2.9-2.1l-2.9 2.1l-2.9-2.1ZM8.8 7.8a1.6 1.6 0 1 0 0 3.1a1.6 1.6 0 0 0 0-3.1Zm6.2 0a1.6 1.6 0 1 0 0 3.1a1.6 1.6 0 0 0 0-3.1Z"/>', |
| 394 | trash: '<path d="M5.8 7.6h12.4l-1 12a2 2 0 0 1-2 1.8H8.8a2 2 0 0 1-2-1.8Z"/><path class="ln" d="M3.8 6.6h16.4M9 6.6V4h6v2.6"/>', |
| 395 | coin: '<path fill-rule="evenodd" d="M13 2.6a9.4 9.4 0 1 0 0 18.7a9.4 9.4 0 0 0 0-18.7ZM12 5.8h2.1v1.2c1.1 0.2 2.1 0.8 2.6 1.7l-1.7 1c-0.3-0.6-1-1-1.8-1c-0.9 0-1.5 0.4-1.5 1s0.5 0.8 1.8 1.1c1.8 0.4 3.5 1 3.5 3.1c0 1.4-1 2.5-2.8 2.8V18h-2.1v-1.3c-1.2-0.2-2.3-0.9-2.8-2l1.7-1c0.4 0.7 1.1 1.1 2.1 1.1c1 0 1.6-0.4 1.6-1s-0.6-0.8-2-1.1c-1.7-0.4-3.4-1-3.4-3c0-1.3 1-2.4 2.7-2.7Z"/>', |
| 396 | live: '<circle cx="12" cy="12" r="2.5"/><path class="ln" d="M8.5 8.5a4.9 4.9 0 0 0 0 6.9M15.5 8.5a4.9 4.9 0 0 1 0 6.9M6.2 6.2a8.2 8.2 0 0 0 0 11.5M17.8 6.2a8.2 8.2 0 0 1 0 11.5"/>', |
| 397 | gift: '<path d="M3.1 8.6h17.7v3.3H3.1ZM4.4 12.9h6.6v8.2H5.4a1 1 0 0 1-1-1ZM13 12.9h6.6v7.2a1 1 0 0 1-1 1H13Z"/><path class="ln" d="M12 8.6c-1.5-3.1-5.1-4.1-5.1-1.5S12 8.6 12 8.6s5.1-1 5.1-3.6s-3.6-1.5-5.1 3.6"/>', |
| 398 | music: '<path d="M7.6 5.4l13.3-2.5v3.5l-13.3 2.5Z"/><path class="ln" d="M8.8 17.9V6.5M19.7 15.6V4.2"/><circle cx="5.5" cy="17.9" r="3.2"/><circle cx="16.7" cy="15.6" r="3.2"/>', |
| 399 | // 4.80.0: the next most-used shapes (Shared's usage sweep, 2026-11-01), drawn the same way; an "off" glyph |
| 400 | // keeps its slash as a line, with the shape cut back from it. |
| 401 | globe: '<path d="M2.6 11.1A9.5 9.5 0 0 1 12 2.6a4.5 9.5 0 0 0-4.5 8.5ZM21.4 11.1A9.5 9.5 0 0 0 12 2.6a4.5 9.5 0 0 1 4.5 8.5ZM2.6 12.9A9.5 9.5 0 0 0 12 21.5a4.5 9.5 0 0 1-4.5-8.5ZM21.4 12.9A9.5 9.5 0 0 1 12 21.5a4.5 9.5 0 0 0 4.5-8.5ZM12 2.6a2.7 9.5 0 0 0-2.7 8.5h5.3A2.7 9.5 0 0 0 12 2.6ZM12 21.5a2.7 9.5 0 0 1-2.7-8.5h5.3A2.7 9.5 0 0 1 12 21.5Z"/>', |
| 402 | circle: '<circle cx="12" cy="12" r="9.5"/>', |
| 403 | plane: '<path d="M21.2 2.9L2.4 10.7l6.9 3.2ZM21.2 2.9l-11 12l3.2 6.9Z"/>', |
| 404 | mail: '<path d="M2.5 7.3v-0.4A2.3 2.3 0 0 1 4.8 4.6h14.4A2.3 2.3 0 0 1 21.5 6.9v0.4l-8.7 5.6a1.6 1.6 0 0 1-1.7 0ZM2.5 9.4v7.6A2.3 2.3 0 0 0 4.8 19.4h14.4a2.3 2.3 0 0 0 2.3-2.3V9.4l-8 5.2a2.7 2.7 0 0 1-3 0Z"/>', |
| 405 | 'eye-off': '<path d="M9 5.8A10 10 0 0 1 21.4 12a10 10 0 0 1-2.5 3.8L15.3 12.2a3.3 3.3 0 0 0-3.5-3.5ZM15 18.2A10 10 0 0 1 2.6 12a10 10 0 0 1 2.5-3.8L8.7 11.8a3.3 3.3 0 0 0 3.5 3.5Z"/><path class="ln" d="M4.6 4.6l14.8 14.8"/>', |
| 406 | key: '<path fill-rule="evenodd" d="M8.3 10.1a5.4 5.4 0 1 1 0 10.9a5.4 5.4 0 0 1 0-10.9Zm0 3.6a1.9 1.9 0 1 0 0 3.8a1.9 1.9 0 0 0 0-3.8Z"/><path class="ln" d="M11.7 12.2l8.7-8.7M16.7 7.2l3.1 3.1M14.4 9.5l2.1 2.1"/>', |
| 407 | gauge: '<path fill-rule="evenodd" d="M3.7 18A9.4 9.4 0 1 1 19.4 19.6ZM15 8.6l-2.2 5.6l-2.1 0.3l-0.4-2.1Z"/>', |
| 408 | server: '<path fill-rule="evenodd" d="M5.2 2.6h13.4a2.7 2.7 0 0 1 2.7 2.7v3.4a2.7 2.7 0 0 1-2.7 2.7H5.2A2.7 2.7 0 0 1 2.5 8.6V5.3A2.7 2.7 0 0 1 5.2 2.6Zm2.2 2.9a1.5 1.5 0 1 0 0 2.9a1.5 1.5 0 0 0 0-2.9ZM5.2 12.7h13.4a2.7 2.7 0 0 1 2.7 2.7v3.4a2.7 2.7 0 0 1-2.7 2.7H5.2A2.7 2.7 0 0 1 2.5 18.7v-3.4A2.7 2.7 0 0 1 5.2 12.7Zm2.2 2.9a1.5 1.5 0 1 0 0 2.9a1.5 1.5 0 0 0 0-2.9Z"/>', |
| 409 | 'user-check': '<circle cx="8.9" cy="7.5" r="3.2"/><path d="M2.9 19.3c0-3.4 2.7-5.9 5.9-5.9s5.9 2.4 5.9 5.9Z"/><path class="ln" d="M14.8 10.6l1.9 1.9l3.8-3.8"/>', |
| 410 | 'mic-off': '<path d="M9 5.4A3.1 3.1 0 0 1 15.2 5.8V10.7a3.1 3.1 0 0 1-0.1 0.8Z"/><path class="ln" d="M5.4 10.7a6.6 6.6 0 0 0 11 5M18.7 10.7c0 0.8-0.1 1.5-0.4 2.2M12.1 17.3v2.8M4.5 4.1l15.1 15.1"/>', |
| 411 | palette: '<path fill-rule="evenodd" d="M12.1 2.7a9.4 9.4 0 1 0 0 18.8c1.3 0 2-0.9 2-1.9c0-1.2-1-1.5-1-2.5s0.8-1.6 2-1.6H17.3a4.4 4.4 0 0 0 4.4-4.4C21.7 6.7 17.4 2.7 12.1 2.7ZM7.8 9.7a1.5 1.5 0 1 1 0 3a1.5 1.5 0 0 1 0-3Zm2.5-3.7a1.5 1.5 0 1 1 0 3a1.5 1.5 0 0 1 0-3Zm4.6 0a1.5 1.5 0 1 1 0 3a1.5 1.5 0 0 1 0-3Z"/>', |
| 412 | dish: '<path d="M2.7 9.7A11.7 11.7 0 0 0 14.4 21.4Z"/><path class="ln" d="M8.8 15.3l4.9-4.9M14.2 4a5.8 5.8 0 0 1 5.8 5.8M14.2 8.1a1.8 1.8 0 0 1 1.8 1.8"/>', |
| 413 | layers: '<path d="M12 4.3l8.6 5l-8.6 5l-8.6-5Z"/><path class="ln" d="M3.9 13.9l8.1 4.5l8.1-4.5"/>', |
| 414 | phone: '<path d="M5.1 2.4h4.9l2.4 6l-2.7 1.6a10.7 10.7 0 0 0 4.2 4.2l1.6-2.7l6 2.4v4.9a2.3 2.3 0 0 1-2.3 2.3A17.3 17.3 0 0 1 2.8 4.6a2.3 2.3 0 0 1 2.3-2.3Z"/>', |
| 415 | money: '<path fill-rule="evenodd" d="M4.8 5.7h14.4a2.1 2.1 0 0 1 2.1 2.1v8.4a2.1 2.1 0 0 1-2.1 2.1H4.8a2.1 2.1 0 0 1-2.1-2.1V7.8a2.1 2.1 0 0 1 2.1-2.1ZM12 8.9a3.1 3.1 0 1 0 0 6.3a3.1 3.1 0 0 0 0-6.3ZM6.3 8.7a1 1 0 1 0 0 2.1a1 1 0 0 0 0-2.1Zm11.4 4.6a1 1 0 1 0 0 2.1a1 1 0 0 0 0-2.1Z"/><circle cx="12" cy="12" r="1.4"/>', |
| 416 | care: '<path d="M12 11s-4.3-2.6-4.3-5.6a2.3 2.3 0 0 1 4.3-1.5a2.3 2.3 0 0 1 4.3 1.5c0 3-4.3 5.6-4.3 5.6Z"/><path class="ln" d="M3.8 13.8v6M3.8 15.2h3.1l3.3 2.7h7.5a1.7 1.7 0 0 0 0-3.4h-3.9"/>', |
| 417 | news: '<path fill-rule="evenodd" d="M2.8 2.6h14.2v15.2a2.2 2.2 0 0 0 2.2 2.2H5.1A2.2 2.2 0 0 1 2.8 18.9ZM6.6 6.6h6.8v1.7H6.6Zm0 3.7h6.8v1.7H6.6Zm0 3.7h4v1.7H6.6Z"/><path class="ln" d="M17.1 7.7H19.8V17.9a2.1 2.1 0 0 1-2.1 2.1"/>', |
| 418 | hand: '<path d="M9 14.3V4.9a1.4 1.4 0 0 1 2.8 0v5.2a0.5 0.5 0 0 0 1.1 0V3.8a1.4 1.4 0 0 1 2.8 0v6.4a0.5 0.5 0 0 0 1.1 0V5.7a1.4 1.4 0 0 1 2.8 0v7.7c0 4.5-2.8 7.7-7.3 7.7c-2.9 0-4.7-1.5-6.3-4l-1.8-2.9a1.7 1.7 0 0 1 2.8-2Z"/>', |
| 419 | tack: '<path d="M8.5 3h7.2a0.8 0.8 0 0 1 0.8 1l-0.8 4l2.8 2.8a0.7 0.7 0 0 1-0.6 1.4H6.1a0.7 0.7 0 0 1-0.6-1.4l2.8-2.8l-0.8-4a0.8 0.8 0 0 1 0.8-1Z"/><path class="ln" d="M12 12.2V20.5"/>', |
| 420 | help: '<path fill-rule="evenodd" d="M13 2.7a9.4 9.4 0 1 0 0 18.7a9.4 9.4 0 0 0 0-18.7ZM9.3 9.4A3.7 3.7 0 1 1 13.9 12.8v1.6h-2.1V10.9h1a1.6 1.6 0 1 0-1.6-1.6ZM13 15.8a1.3 1.3 0 1 1 0 2.6a1.3 1.3 0 0 1 0-2.6Z"/>', |
| 421 | invite: '<circle cx="8.8" cy="7.7" r="3.2"/><path d="M2.9 19.2c0-3.4 2.7-5.8 5.8-5.8s5.8 2.4 5.8 5.8Z"/><path class="ln" d="M17.6 7.8v5.3M15 10.5h5.3"/>', |
| 422 | ticket: '<path fill-rule="evenodd" d="M2.6 6.4h18.8v3.4a2.2 2.2 0 0 0 0 4.4v3.4H2.6v-3.4a2.2 2.2 0 0 0 0-4.4ZM13.3 8.4v1.8h1.4V8.4Zm0 2.7v1.8h1.4v-1.8Zm0 2.7v1.8h1.4v-1.8Z"/>', |
| 423 | cart: '<path d="M6.3 7h15l-2.5 8.3H8.1Z"/><circle cx="9.5" cy="19.4" r="1.6"/><circle cx="17" cy="19.4" r="1.6"/><path class="ln" d="M3.8 4.8H5.8l2.3 10.5"/>', |
| 424 | box: '<path d="M12 2.7l9.4 4.5l-9.4 4.5l-9.4-4.5ZM2.6 8.9l8.6 4.1v8.2l-8.6-4.3ZM21.4 8.9l-8.6 4.1v8.2l8.6-4.3Z"/>', |
| 425 | store: '<path d="M4.4 3h15l2 6.2v1.4a3.2 3.2 0 0 1-6.3 0a3.2 3.2 0 0 1-6.3 0a3.2 3.2 0 0 1-6.3 0V9.2ZM4 14.9h15.9v5.6a1.1 1.1 0 0 1-1.1 1.1H14.1v-5.1h-4.4v5.1H5.1a1.1 1.1 0 0 1-1.1-1.1Z"/>', |
| 426 | map: '<path d="M2.6 6.1 8.3 4.2v14l-5.7 1.9ZM9.7 4.2l4.6 1.6v14l-4.6-1.6ZM15.7 5.8l5.7-1.9v14l-5.7 1.9Z"/>', |
| 427 | sun: '<circle cx="12" cy="12" r="3.8"/><path class="ln" d="M12 3.9v1.3M12 18.7v1.3M6.3 6.2l0.9 0.9M16.8 16.8L17.8 17.8M4 12h1.3M18.7 12h1.3M6.3 17.8l0.9-0.9M16.8 7.2L17.8 6.2"/>', |
| 428 | leaf: '<path fill-rule="evenodd" d="M5.4 18.6c0-8.9 5.2-14.2 15.7-15.7c-1 10.4-6.3 15.7-15.7 15.7Zm3.1-2L16.8 7.1l-9.5 8.5Z"/><path class="ln" d="M3.7 20.3L6 18"/>', |
| 429 | headphones: '<path class="ln" d="M4 14.5V12a8 8 0 0 1 16 0v2.5"/><rect x="2.6" y="13.4" width="5.4" height="7.6" rx="1.8"/><rect x="16" y="13.4" width="5.4" height="7.6" rx="1.8"/>', |
| 430 | tv: '<rect x="2.7" y="7.4" width="18.6" height="13.3" rx="2.3"/><path class="ln" d="M8.2 3.8l3.8 3.4l3.8-3.4"/>', |
| 431 | bug: '<path fill-rule="evenodd" d="M12 7a4.8 4.8 0 0 1 4.8 4.8v3.4a4.8 4.8 0 0 1-9.6 0v-3.4A4.8 4.8 0 0 1 12 8Zm-0.7 4.4v7.4h1.4v-7.4Z"/><path d="M9.4 5.8a2.6 2.6 0 0 1 5.2 0Z"/><path class="ln" d="M7.2 12.5H3.8M20.2 12.5h-3.4M7.6 9.4L5 7M16.4 9.4L19 7M7.6 16.6L5 19M16.4 16.6L19 19"/>', |
| 432 | terminal: '<path fill-rule="evenodd" d="M5 3.6h14a2.4 2.4 0 0 1 2.4 2.4v12a2.4 2.4 0 0 1-2.4 2.4H5A2.4 2.4 0 0 1 2.6 18V6A2.4 2.4 0 0 1 5 3.6Zm1.4 6 1.3-1.3 3.6 3.7-3.6 3.7-1.3-1.3 2.4-2.4Zm6.4 4.6h4.4v1.7h-4.4Z"/>', |
| 433 | database: '<ellipse cx="12" cy="5.7" rx="7.9" ry="3.2"/><path d="M4.1 7.5a7.9 3.2 0 0 0 15.9 0v4.3a7.9 3.2 0 0 1-15.9 0ZM4.1 13.4a7.9 3.2 0 0 0 15.9 0v4.7a7.9 3.2 0 0 1-15.9 0Z"/>', |
| 434 | // 4.98.0: the most-used places and things without one (Design's usage count, 2026-11-02): tree, tent, train, |
| 435 | // mountain, city, id, wallet, chip, restroom, brain. |
| 436 | tree: '<path d="M12 2.5L5.9 10.7h3L4.4 16.9h15.1l-4.5-6.2h3Z"/><path class="ln" d="M12 16.2v4"/>', |
| 437 | tent: '<path fill-rule="evenodd" d="M12 4.2L19.3 17.4H4.7ZM12 11.6L9.5 17.4h5.1Z"/><path class="ln" d="M3.9 17.7h16.2"/>', |
| 438 | train: '<path fill-rule="evenodd" d="M9.1 2.7h5.8a2.9 2.9 0 0 1 2.9 2.9v6.8a2.9 2.9 0 0 1-2.9 2.9H9.1a2.9 2.9 0 0 1-2.9-2.9V5.6a2.9 2.9 0 0 1 2.9-2.9Zm-1.2 2.5v4.1h8.2V5.2ZM9.1 11.4a1.1 1.1 0 1 0 0 2.1A1.1 1.1 0 0 0 9.1 11.4Zm5.8 0a1.1 1.1 0 1 0 0 2.1a1.1 1.1 0 0 0 0-2.1Z"/><path class="ln" d="M8.6 20.2l1.9-3.4M15.4 20.2l-1.9-3.4"/>', |
| 439 | mountain: '<path d="M2.8 18.1L9.2 5.3l4.1 7.1L16.1 8.9L21.5 18.1Z"/>', |
| 440 | city: '<path fill-rule="evenodd" d="M5.4 7.7h4.6v10.9H5.4Zm1.9 2.2v1.4h1.2v-1.4Zm0 2.9v1.4h1.2v-1.4Z"/><path fill-rule="evenodd" d="M10.7 3.4h5.1v15.2h-5.1Zm1.7 2.4v1.4h1.4V5.8Zm0 2.9v1.4h1.4V8.7Zm0 2.9v1.4h1.4v-1.4Z"/><path d="M16.5 11.3h2.2v7.4h-2.2Z"/><path class="ln" d="M3.9 18.6h16.1"/>', |
| 441 | id: '<path fill-rule="evenodd" d="M4.8 4.6h14.4a2.3 2.3 0 0 1 2.3 2.3v10.3a2.3 2.3 0 0 1-2.3 2.3H4.8A2.3 2.3 0 0 1 2.5 17.2V6.9A2.3 2.3 0 0 1 4.8 4.6Zm4.1 4.2a2.2 2.2 0 1 0 0 4.3a2.2 2.2 0 0 0 0-4.3Zm-3.2 7.7h6.4c-0.6-1.7-1.8-2.7-3.2-2.7s-2.6 0.9-3.2 2.7Zm8.8-7.2v1.5h4V9.4Zm0 3.6v1.5h4v-1.5Z"/>', |
| 442 | wallet: '<path fill-rule="evenodd" d="M5.7 2.8H19v4.6h1.6a0.9 0.9 0 0 1 0.9 0.9v12.4H5.1a2.5 2.5 0 0 1-2.5-2.5V5.9a3.1 3.1 0 0 1 3.1-3.1Zm0 2.1a1 1 0 0 0 0 2.1h11.2V4.9ZM16.7 12.9a1.4 1.4 0 1 0 0 2.8a1.4 1.4 0 0 0 0-2.8Z"/>', |
| 443 | chip: '<path fill-rule="evenodd" d="M8.6 7.2h6.8a1.4 1.4 0 0 1 1.4 1.4v6.8a1.4 1.4 0 0 1-1.4 1.4H8.6a1.4 1.4 0 0 1-1.4-1.4V8.6a1.4 1.4 0 0 1 1.4-1.4Zm1.7 3.1v3.4h3.4v-3.4Z"/><path class="ln" d="M10.2 4v3.2M13.8 4v3.2M10.2 16.8V20M13.8 16.8V20M4 10.2h3.2M4 13.8h3.2M16.8 10.2H20M16.8 13.8H20"/>', |
| 444 | restroom: '<circle cx="7.2" cy="5.1" r="1.8"/><circle cx="16.2" cy="5.1" r="1.8"/><path d="M6 9h1.8a1.5 1.5 0 0 1 1.5 1.5v4.7H8.6v5H5.5v-5H4.7v-4.7A1.5 1.5 0 0 1 6 9Z"/><path d="M15.7 9.4h1.1a0.9 0.9 0 0 1 0.9 0.7l1.9 6.3H17.4v3.6h-2.3v-3.6h-2.1l1.9-6.3a0.9 0.9 0 0 1 0.9-0.7Z"/><path class="ln" d="M11.6 3.7v16.3"/>', |
| 445 | brain: '<path d="M8.9 3.8a3.2 3.2 0 0 0-3.2 3.1a3.1 3.1 0 0 0-2.2 5.3a3.1 3.1 0 0 0 2.2 5.2a3.2 3.2 0 0 0 5.7 1.3V5.6A2.3 2.3 0 0 0 8.9 3.8Z"/><path d="M15.1 3.8a3.2 3.2 0 0 1 3.2 3.1a3.1 3.1 0 0 1 2.2 5.3a3.1 3.1 0 0 1-2.2 5.2a3.2 3.2 0 0 1-5.7 1.3V5.6A2.3 2.3 0 0 1 15.1 3.8Z"/>', |
| 446 | // 4.103.0: the next eight by use (Design's usage count, 2026-11-02): retry, water, food, history, compress, |
| 447 | // bridge, text and steps. Arrows keep their arcs as lines with filled heads; a list keeps its rows as lines. |
| 448 | retry: '<path class="ln" d="M4 12a8 8 0 0 1 13.4-5.9M20 12a8 8 0 0 1-13.4 5.9"/><path d="M21.3 2.8v7h-7ZM2.7 21.2v-7h7Z"/>', |
| 449 | water: '<path d="M2.7 7.9c2.4 0 2.4-2 4.7-2s2.4 2 4.6 2s2.4-2 4.7-2s2.4 2 4.6 2v3.2c-2.3 0-2.3-2-4.6-2s-2.4 2-4.7 2s-2.3-2-4.6-2s-2.4 2-4.7 2ZM2.7 14.8c2.4 0 2.4-2 4.7-2s2.4 2 4.6 2s2.4-2 4.7-2s2.4 2 4.6 2v3.2c-2.3 0-2.3-2-4.6-2s-2.4 2-4.7 2s-2.3-2-4.6-2s-2.4 2-4.7 2Z"/>', |
| 450 | food: '<path d="M4.7 3.3h1.5v4.7h0.6V3.3h1.4v4.7h0.6V3.3h1.5v4.9A2.9 2.9 0 0 1 8.6 10.8V21.7H6.5V10.8a2.9 2.9 0 0 1-1.8-2.7ZM18.9 21.7h-2.3v-7.4h-3V10.6c0-3.9 1.7-6.6 5.2-7.7Z"/>', |
| 451 | history: '<path d="M5.8 5.8A9.1 9.1 0 1 1 3.2 12.2h3a6.1 6.1 0 1 0 1.8-4.3ZM2.5 2.7v7.2h7.2ZM11.2 8.1h2.2v3.7l2.7 1.6l-1.1 1.8l-3.8-2.3Z"/>', |
| 452 | compress: '<path d="M9.7 9.7H2.7L9.7 2.7ZM14.3 9.7h7l-7-7ZM9.7 14.3H2.7l7 7ZM14.3 14.3h7l-7 7Z"/>', |
| 453 | bridge: '<path d="M5.7 4.6h2.6v15.4H5.7ZM15.7 4.6h2.6v15.4h-2.6ZM3.4 14.6h17.2v2.8H3.4Z"/><path class="ln" d="M4 10c1.6 0 2.5-2.3 3-5c2.4 5.2 7.6 5.2 10 0c.5 2.7 1.4 5 3 5M12 10.9V15"/>', |
| 454 | text: '<path fill-rule="evenodd" d="M10.2 2.4h3.7l6.8 18.7h-3.4l-1.6-4.7H8.3l-1.6 4.7H3.3ZM9.3 13.6h5.4L12 5.7Z"/>', |
| 455 | steps: '<path fill-rule="evenodd" d="M2.8 4h4.9v4.9H2.8Zm1 2.5l0.8-0.9l0.9 0.9l1.4-1.4l0.9 0.9l-2.3 2.3ZM2.8 9.4h4.9v4.9H2.8Zm1 2.5l0.8-0.9l0.9 0.9l1.4-1.4l0.9 0.9l-2.3 2.3ZM2.8 15h4.9v4.9H2.8Zm1 2.5l0.8-0.9l0.9 0.9l1.4-1.4l0.9 0.9l-2.3 2.3Z"/><path class="ln" d="M10.6 6.4H20.3M10.6 11.9H20.3M10.6 17.4H20.3"/>', |
| 456 | // 4.104.0: the next eight by use with a shape to fill (Design's usage count): download, upload, expand, shirt, |
| 457 | // shapes, shelter, archive and keyboard. An arrow is filled whole; its tray stays a line. |
| 458 | download: '<path d="M10.6 2.3h2.5v7h4.7L11.9 15.4l-5.9-5.9h4.7Z"/><path class="ln" d="M4.5 19.7h14.9"/>', |
| 459 | upload: '<path d="M10.6 21.7h2.5v-7h4.7L11.9 8.6l-5.9 5.9h4.7Z"/><path class="ln" d="M4.5 4.3h14.9"/>', |
| 460 | expand: '<path d="M2.7 2.7h7L2.7 9.7ZM21.3 2.7h-7l7 7ZM2.7 21.3h7l-7-7ZM21.3 21.3h-7l7-7Z"/>', |
| 461 | shirt: '<path d="M8 2.7L2.5 5.9l2.5 4.9l1.5-0.8v11.2h11V10.1l1.5 0.8L21.5 5.9l-5.5-3.2c-0.6 1.5-1.9 2.5-4 2.5S8.6 4.2 8 2.7Z"/>', |
| 462 | shapes: '<circle cx="7.3" cy="7.6" r="4.3"/><path d="M16.5 2.7l5 8.6h-9.8ZM13.4 13.7h7.4v7.4h-7.4ZM2.5 21.1L6.8 13.7l4.3 7.4Z"/>', |
| 463 | shelter: '<path fill-rule="evenodd" d="M12 2.7L2.5 10.2l1.1 1.5l1-0.8v10h14.8V10.9l1 0.8l1.1-1.5ZM9.5 20.9v-4.8a2.5 2.5 0 0 1 4.9 0v4.8ZM12 9.1a1.7 1.7 0 1 1 0 3.4a1.7 1.7 0 0 1 0-3.4Z"/>', |
| 464 | archive: '<rect x="2.6" y="3.4" width="18.8" height="5.4" rx="1.2"/><path fill-rule="evenodd" d="M4.4 10h15.2v9.2a1.6 1.6 0 0 1-1.6 1.6H6a1.6 1.6 0 0 1-1.6-1.6ZM9.6 12.4v1.8h4.8v-1.8Z"/>', |
| 465 | keyboard: '<path fill-rule="evenodd" d="M4.8 5.7h14.4A2.3 2.3 0 0 1 21.5 8v8a2.3 2.3 0 0 1-2.3 2.3H4.8A2.3 2.3 0 0 1 2.5 16V8a2.3 2.3 0 0 1 2.3-2.3ZM5.3 9.1h1.9v1.9H5.3ZM8.2 9.1h1.9v1.9H8.2ZM11 9.1h1.9v1.9h-1.9ZM13.9 9.1h1.9v1.9h-1.9ZM16.8 9.1h1.9v1.9h-1.9ZM7.8 13.3h8.4v1.7H7.8Z"/>', |
| 466 | umbrella: '<path d="M2.6 12.7a9.4 9.4 0 0 1 18.8 0Z"/><path class="ln" d="M12 12.7v5.6a1.9 1.9 0 0 1-3.8 0"/>', |
| 467 | parking: '<path fill-rule="evenodd" d="M6.2 2.6h11.6a3.6 3.6 0 0 1 3.6 3.6v11.6a3.6 3.6 0 0 1-3.6 3.6H6.2a3.6 3.6 0 0 1-3.6-3.6V6.2a3.6 3.6 0 0 1 3.6-3.6ZM8.4 18V6H13a4 4 0 0 1 0 8h-2.4v4ZM10.6 8.2v3.6H13a1.8 1.8 0 0 0 0-3.6Z"/>', |
| 468 | medical: '<path fill-rule="evenodd" d="M5.3 6.3h13.5a2.7 2.7 0 0 1 2.7 2.7v8.7a2.7 2.7 0 0 1-2.7 2.7H5.3a2.7 2.7 0 0 1-2.7-2.7V9a2.7 2.7 0 0 1 2.7-2.7ZM10.9 10h2.3v2.2h2.2v2.3h-2.2V16.7h-2.3v-2.2H8.7v-2.3h2.2Z"/><path class="ln" d="M9.2 6.3V5.3a0.9 0.9 0 0 1 0.9-0.9h3.8a0.9 0.9 0 0 1 0.9 0.9v1"/>', |
| 469 | drive: '<path fill-rule="evenodd" d="M5.3 11.4h13.5a2.7 2.7 0 0 1 2.7 2.7v3a2.7 2.7 0 0 1-2.7 2.7H5.3a2.7 2.7 0 0 1-2.7-2.7v-3a2.7 2.7 0 0 1 2.7-2.7ZM16.8 14.4a1.1 1.1 0 1 1 0 2.3a1.1 1.1 0 0 1 0-2.3ZM13.7 14.4a1.1 1.1 0 1 1 0 2.3a1.1 1.1 0 0 1 0-2.3Z"/><path class="ln" d="M4.1 11.9L6.8 4.7h10.4l2.8 7.2"/>', |
| 470 | skull: '<path fill-rule="evenodd" d="M12 2.6a7.9 7.9 0 0 0-7.9 7.9c0 2.4 1.1 4.2 2.5 5.4V19.5a2 2 0 0 0 2 2h6.8a2 2 0 0 0 2-2v-3.6c1.4-1.2 2.5-3 2.5-5.4A7.9 7.9 0 0 0 12 2.6ZM9.2 9.4a1.7 1.7 0 1 1 0 3.4a1.7 1.7 0 0 1 0-3.4ZM14.8 9.4a1.7 1.7 0 1 1 0 3.4a1.7 1.7 0 0 1 0-3.4ZM12 13.3l1 1.8h-2ZM10.1 18.1h0.9v2.4h-0.9ZM13 18.1h0.9v2.4H13Z"/>', |
| 471 | 'hot-tub': '<circle cx="8.2" cy="5.4" r="2.4"/><path d="M2.6 10.9h18.8v4.2a5.1 5.1 0 0 1-5.1 5.1h-8.5a5.1 5.1 0 0 1-5.1-5.1Z"/><path class="ln" d="M6.3 10.9v-0.6A2.4 2.4 0 0 1 8.7 8H9.2M13.5 9.4c0.8-0.9-0.8-1.9 0-2.8M17.3 9.4c0.8-0.9-0.8-1.9 0-2.8"/>', |
| 472 | group: '<rect x="6.9" y="6.8" width="6.4" height="4.8" rx="1.1"/><rect x="10.8" y="12.5" width="6.4" height="4.6" rx="1.1"/><path class="ln" d="M4 7.6V4h3.6M16.5 4h3.6v3.6M20 16.4v3.6h-3.6M7.6 20H4v-3.6"/>', |
| 473 | gavel: '<path d="M11.3 5.5L5.5 11.3l6.1 6.1l5.8-5.8Z"/><path class="ln" d="M13.7 4.2l5 5M3.8 19.1l5.7-5.7M13.7 19.1h6.3"/>', |
| 474 | binoculars: '<rect x="2.9" y="5.4" width="6.8" height="16" rx="3.4"/><rect x="14.3" y="5.4" width="6.8" height="16" rx="3.4"/><rect x="9.3" y="10.7" width="5.4" height="2.8" rx="1"/><path class="ln" d="M5.8 5.4V5.2a1.3 1.3 0 0 1 2.6 0v0.2M17.6 5.4V5.2a1.3 1.3 0 0 1 2.6 0v0.2"/>', |
| 475 | telescope: '<path d="M2.2 12.2l15.6-7.8l3 6l-15.6 7.8Z"/><path class="ln" d="M9.1 14.9l-1.6 4.7M9.1 14.9l5.5 4.7M8.2 17.3h6.4"/>', |
| 476 | microscope: '<path d="M2.8 18.2h18.4v2.6H2.8Z"/><path d="M6.2 14.8h5.8v3.4H6.2Z"/><path d="M9.2 14.8h8.6v2.6H9.2Z"/><path d="M12.6 7.4a5 5 0 0 1 5-5h1.2v4.8h-1.2a1.8 1.8 0 0 0-1.8 1.8v6.4h-3.2Z"/><path class="ln" d="M19.3 3.4v4.8M9.9 9.9h3.6"/>', |
| 477 | gpu: '<rect x="4" y="5.5" width="14.4" height="10" rx="1.6"/><circle cx="8.7" cy="10.5" r="2.8"/><rect x="18.4" y="8" width="2.6" height="5" rx="0.8"/><path class="ln" d="M8.7 8.3v4.4M6.5 10.5h4.4M4 15.5v2.5"/>', |
| 478 | cpu: '<path fill-rule="evenodd" d="M7 5.8h10A1.2 1.2 0 0 1 18.2 7v10a1.2 1.2 0 0 1-1.2 1.2H7A1.2 1.2 0 0 1 5.8 17V7A1.2 1.2 0 0 1 7 5.8Zm3.4 4.6a0.6 0.6 0 0 0-0.6 0.6v3.2a0.6 0.6 0 0 0 0.6 0.6h3.2a0.6 0.6 0 0 0 0.6-0.6V11a0.6 0.6 0 0 0-0.6-0.6Z"/><path class="ln" d="M9.5 3.7v3.3M14.5 3.7v3.3M9.5 17v3.3M14.5 17v3.3M3.7 9.5h3.3M3.7 14.5h3.3M17 9.5h3.3M17 14.5h3.3"/>', |
| 479 | memory: '<rect x="3.5" y="5" width="17" height="7.5" rx="1.2"/><path class="ln" d="M3.5 14.5v3.5M6.6 14.5v3.5M9.7 14.5v3.5M12.8 14.5v3.5M15.9 14.5v3.5M19 14.5v3.5M6.7 7.5h4.8M6.7 10.3h3M13.4 7.5h3.9M13.4 10.3h2.4"/>', |
| 480 | joystick: '<path d="M3.8 21.2h16.4l-2.8-8.2H6.6Z"/><circle cx="12" cy="5.6" r="2.8"/><circle cx="8.3" cy="17.2" r="1.1"/><circle cx="15.7" cy="17.2" r="1.1"/><path class="ln" d="M12 13V8.4"/>', |
| 481 | wand: '<path class="ln" d="M3.7 20.3L13.9 10.1M12.1 8.3l3.6 3.6"/><path d="M17.9 3.7l0.9 2.3l2.3 0.9l-2.3 0.9l-0.9 2.3l-0.9-2.3l-2.3-0.9l2.3-0.9Z"/>', |
| 482 | 'layers-plus': '<path d="M12 4.1l8.2 4.8l-8.2 4.8l-8.2-4.8Z"/><path class="ln" d="M3.8 14l8.2 4.8l4.8-2.8"/><path d="M17.6 13.9h1.6v2.2h2.2v1.6h-2.2v2.2h-1.6v-2.2h-2.2v-1.6h2.2Z"/>', |
| 483 | }); |
| 484 | const BY = { kit: 'the OpenVibe Kit', opus: 'drawn by Opus for the glyph set (2026-10-31)' }; |
| 485 | const ALL = { ...(kit && kit.PATHS ? kit.PATHS : {}), ...DRAWN }; |
| 486 | const NAMES = Object.freeze(Object.keys(ALL).sort()); |
| 487 | |
| 488 | // ── Font Awesome's names, as the network uses them, mapped to the glyph that stands for each ── |
| 489 | const FA = Object.freeze({ |
| 490 | // 4.231.0: the names sites used that drew nothing once Font Awesome's stylesheet was gone (the maps app, yt). |
| 491 | 'arrow-rotate-left': 'undo', 'chart-pie': 'chart', 'book-skull': 'book', crosshairs: 'target', 'location-crosshairs': 'target', |
| 492 | satellite: 'image', 'globe-americas': 'globe', 'street-view': 'walk', 'magnifying-glass-location': 'search', 'apple-whole': 'food', |
| 493 | backpack: 'briefcase', 'shield-heart': 'shield', openstreetmap: 'map', |
| 494 | 'wand-magic-sparkles': 'wand', 'wand-magic': 'wand', 'wand-sparkles': 'wand', sparkles: 'spark', 'star-of-life': 'spark', eye: 'eye', 'eye-slash': 'eye-off', |
| 495 | binoculars: 'binoculars', telescope: 'telescope', microscope: 'microscope', joystick: 'joystick', gpu: 'gpu', cpu: 'cpu', memory: 'memory', ram: 'memory', |
| 496 | 'tower-broadcast': 'live', 'broadcast-tower': 'live', 'satellite-dish': 'dish', 'tower-cell': 'live', 'signal': 'wifi', wifi: 'wifi', |
| 497 | xmark: 'close', times: 'close', 'circle-xmark': 'x-circle', 'xmark-circle': 'x-circle', video: 'video', 'video-slash': 'video', camera: 'camera', |
| 498 | robot: 'robot', scissors: 'scissors', cut: 'scissors', copy: 'copy', paste: 'clipboard', clipboard: 'clipboard', 'clipboard-list': 'clipboard', |
| 499 | bolt: 'zap', 'bolt-lightning': 'zap', check: 'check', 'check-circle': 'check-circle', 'circle-check': 'check-circle', |
| 500 | comments: 'chat', comment: 'chat', 'comment-dots': 'chat', message: 'chat', play: 'play', 'circle-play': 'play', pause: 'pause', stop: 'stop', |
| 501 | tree: 'tree', spinner: 'busy', 'circle-notch': 'busy', 'map-pin': 'pin', 'location-dot': 'pin', 'location-pin': 'pin', map: 'map', route: 'route', |
| 502 | globe: 'globe', 'earth-americas': 'globe', 'earth-europe': 'globe', language: 'language', code: 'code', terminal: 'terminal', 'code-branch': 'branch', 'code-fork': 'branch', |
| 503 | coins: 'coin', coin: 'coin', 'hand-holding-dollar': 'coin', 'dollar-sign': 'dollar', wallet: 'wallet', clock: 'clock', 'clock-rotate-left': 'history', 'rotate-left': 'retry', |
| 504 | rotate: 'retry', 'rotate-right': 'retry', 'arrows-rotate': 'retry', 'arrow-rotate-right': 'retry', 'shield-halved': 'shield', shield: 'shield', 'user-shield': 'shield', |
| 505 | plus: 'plus', minus: 'minus', lock: 'lock', unlock: 'lock', key: 'key', 'arrow-right': 'arrow-right', 'arrow-left': 'arrow-left', 'arrow-up': 'arrow-up', 'arrow-down': 'arrow-down', |
| 506 | 'chevron-right': 'chevron', 'chevron-left': 'back', 'chevron-down': 'down', 'chevron-up': 'up', 'angle-right': 'chevron', 'angle-down': 'down', |
| 507 | star: 'star', 'volume-high': 'volume', 'volume-low': 'volume', 'volume-xmark': 'mute', 'volume-off': 'mute', 'triangle-exclamation': 'alert', |
| 508 | 'circle-exclamation': 'alert-circle', 'circle-info': 'info', 'circle-question': 'help', question: 'help', link: 'link', image: 'image', images: 'image', |
| 509 | 'file-image': 'image', 'photo-film': 'film', film: 'film', user: 'user', 'user-secret': 'user', 'user-astronaut': 'user', 'user-plus': 'invite', |
| 510 | 'user-check': 'user-check', users: 'members', 'people-group': 'members', 'user-group': 'members', server: 'server', database: 'database', |
| 511 | 'magnifying-glass': 'search', search: 'search', campground: 'tent', utensils: 'food', train: 'train', heart: 'heart', 'hand-holding-heart': 'care', water: 'water', |
| 512 | 'person-swimming': 'water', house: 'home', 'house-chimney': 'home', download: 'download', upload: 'upload', 'cloud-arrow-up': 'upload', circle: 'circle', |
| 513 | sliders: 'sliders', 'sliders-h': 'sliders', leaf: 'leaf', gamepad: 'game', microphone: 'mic', 'microphone-slash': 'mic-off', |
| 514 | 'arrow-up-right-from-square': 'open', 'up-right-from-square': 'open', 'external-link': 'open', palette: 'palette', bell: 'bell', 'gauge-high': 'gauge', gauge: 'gauge', |
| 515 | 'floppy-disk': 'save', trash: 'trash', 'trash-can': 'trash', 'chart-line': 'chart', plug: 'plug', compress: 'compress', expand: 'expand', |
| 516 | 'up-right-and-down-left-from-center': 'expand', pen: 'pencil', 'pen-nib': 'pencil', pencil: 'pencil', 'pen-to-square': 'pencil', city: 'city', ban: 'ban', |
| 517 | 'screwdriver-wrench': 'wrench', wrench: 'wrench', music: 'music', gear: 'gear', gears: 'gear', 'paper-plane': 'plane', fire: 'fire', |
| 518 | 'circle-nodes': 'nodes', 'network-wired': 'nodes', 'diagram-project': 'nodes', sitemap: 'nodes', bridge: 'bridge', envelope: 'mail', sun: 'sun', moon: 'moon', |
| 519 | 'list-check': 'steps', list: 'list', 'list-ul': 'list', bars: 'menu', display: 'computer', desktop: 'computer', laptop: 'computer', 'wave-square': 'wave', |
| 520 | newspaper: 'news', 'file-lines': 'file', file: 'file', 'file-pdf': 'file', 'file-audio': 'file', folder: 'folder', book: 'book', 'book-open': 'book-open', crown: 'crown', |
| 521 | microchip: 'chip', 'id-card': 'id', brain: 'brain', cloud: 'cloud', 'cloud-sun': 'cloud', 'cloud-rain': 'cloud', 'cloud-showers-heavy': 'cloud', snowflake: 'snow', |
| 522 | mountain: 'mountain', 'mountain-sun': 'mountain', 'layer-group': 'layers', hashtag: 'hash', font: 'text', 'text-height': 'text', |
| 523 | 'right-from-bracket': 'leave', 'right-to-bracket': 'enter', 'arrow-right-from-bracket': 'leave', 'arrow-right-to-bracket': 'enter', |
| 524 | gift: 'gift', lightbulb: 'idea', 'cart-shopping': 'cart', cart: 'cart', bullseye: 'target', trophy: 'trophy', tag: 'tag', tags: 'tag', shirt: 'shirt', reply: 'reply', |
| 525 | 'face-smile': 'smile', 'box-archive': 'archive', ticket: 'ticket', thumbtack: 'tack', store: 'store', keyboard: 'keyboard', gavel: 'gavel', droplet: 'drop', |
| 526 | 'calendar-check': 'calendar', 'cloud-arrow-down': 'download', 'magnifying-glass-chart': 'chart', 'magnifying-glass-dollar': 'search', 'plug-circle-plus': 'plug', 'power-off': 'stop', receipt: 'ticket', 'shoe-prints': 'walk', broadcast: 'live', clip: 'scissors', |
| 527 | flag: 'flag', calendar: 'calendar', 'calendar-days': 'calendar', phone: 'phone', 'mobile-screen': 'phone', 'hand': 'hand', 'hand-pointer': 'hand', grid: 'grid', |
| 528 | 'table-cells': 'grid', 'chart-simple': 'chart', 'chart-bar': 'chart', 'filter': 'filter', 'ellipsis': 'more', 'ellipsis-vertical': 'more', 'share-nodes': 'nodes', |
| 529 | // 4.63.0 |
| 530 | restroom: 'restroom', 'person-shelter': 'shelter', 'hot-tub-person': 'hot-tub', 'hot-tub': 'hot-tub', umbrella: 'umbrella', 'umbrella-beach': 'umbrella', |
| 531 | 'square-parking': 'parking', parking: 'parking', 'skull-crossbones': 'skull', skull: 'skull', 'object-group': 'group', 'kit-medical': 'medical', |
| 532 | 'briefcase-medical': 'medical', 'suitcase-medical': 'medical', 'info-circle': 'info', icons: 'shapes', shapes: 'shapes', headphones: 'headphones', |
| 533 | 'headphones-simple': 'headphones', headset: 'headphones', 'hard-drive': 'drive', hdd: 'drive', 'check-double': 'check-double', tv: 'tv', |
| 534 | television: 'tv', toolbox: 'toolbox', table: 'table', 'table-list': 'table', 'scale-balanced': 'scale', 'balance-scale': 'scale', |
| 535 | road: 'road', 'people-arrows': 'members', 'money-bill': 'money', 'money-bill-1': 'money', 'money-bill-wave': 'money', 'money-bill-transfer': 'money', |
| 536 | 'money-check': 'money', 'heart-pulse': 'heart-pulse', heartbeat: 'heart-pulse', heading: 'heading', 'hand-fist': 'fist', 'fist-raised': 'fist', |
| 537 | forward: 'fast-forward', 'forward-fast': 'fast-forward', backward: 'rewind', 'backward-fast': 'rewind', 'file-code': 'file-code', dice: 'dice', |
| 538 | 'dice-five': 'dice', 'dice-six': 'dice', 'circle-half-stroke': 'contrast', adjust: 'contrast', briefcase: 'briefcase', suitcase: 'briefcase', |
| 539 | timeline: 'timeline', seedling: 'seedling', rocket: 'rocket', 'right-left': 'swap', 'arrow-right-arrow-left': 'swap', 'exchange-alt': 'swap', |
| 540 | 'person-hiking': 'mountain', hiking: 'mountain', 'microphone-lines': 'mic', 'list-ol': 'list-ordered', 'life-ring': 'lifebuoy', infinity: 'infinity', |
| 541 | inbox: 'inbox', 'folder-open': 'folder', 'faucet-drip': 'drop', faucet: 'drop', 'face-grin-stars': 'smile', 'door-open': 'door', |
| 542 | 'door-closed': 'door', 'credit-card': 'card', 'cloud-bolt': 'storm', |
| 543 | // 4.68.0 |
| 544 | 'arrow-trend-up': 'trend-up', 'arrow-trend-down': 'trend-down', 'angles-left': 'chevrons-left', 'angles-right': 'chevrons-right', |
| 545 | 'arrow-down-wide-short': 'sort', 'arrow-down-short-wide': 'sort-asc', 'arrow-up-from-bracket': 'share', 'arrows-left-right': 'arrows-h', |
| 546 | 'left-right': 'arrows-h', 'arrows-up-down-left-right': 'move', 'arrows-to-dot': 'focus', at: 'at', 'box-open': 'box', box: 'box', bug: 'bug', |
| 547 | bullhorn: 'megaphone', burst: 'burst', 'camera-rotate': 'camera-flip', 'camera-slash': 'camera-off', car: 'car', child: 'child', |
| 548 | 'circle-dollar-to-slot': 'donate', 'circle-dot': 'record', 'circle-plus': 'plus-circle', 'plus-circle': 'plus-circle', |
| 549 | 'circle-minus': 'minus-circle', 'minus-circle': 'minus-circle', clapperboard: 'clapper', 'clipboard-check': 'clipboard-check', |
| 550 | 'closed-captioning': 'cc', 'cloud-slash': 'cloud-off', 'code-commit': 'commit', 'comment-slash': 'chat-off', compass: 'compass', |
| 551 | 'cookie-bite': 'cookie', cookie: 'cookie', couch: 'couch', cubes: 'cubes', cube: 'box', 'ear-listen': 'ear', eraser: 'eraser', |
| 552 | 'face-laugh': 'laugh', 'face-grin-squint': 'laugh', 'face-grin-squint-tears': 'laugh', 'face-grin': 'laugh', fish: 'fish', |
| 553 | 'flag-checkered': 'finish', flask: 'flask', 'flask-vial': 'flask', 'folder-tree': 'folder-tree', 'forward-step': 'skip', |
| 554 | 'step-forward': 'skip', gem: 'gem', ghost: 'ghost', 'grip-vertical': 'grip', grip: 'grip', hammer: 'hammer', handshake: 'handshake', |
| 555 | 'handshake-angle': 'handshake', 'hat-wizard': 'wizard', 'heart-crack': 'heart-broken', 'hourglass-half': 'hourglass', |
| 556 | 'hourglass-start': 'hourglass', 'hourglass-end': 'hourglass', hourglass: 'hourglass', lungs: 'lungs', 'link-slash': 'link-off', mask: 'mask', |
| 557 | 'mug-hot': 'mug', 'mug-saucer': 'mug', paw: 'paw', 'person-walking': 'walk', 'phone-slash': 'phone-off', 'piggy-bank': 'piggy', |
| 558 | plane: 'airplane', 'plane-departure': 'airplane', print: 'print', 'quote-left': 'quote', 'quote-right': 'quote', radio: 'radio', |
| 559 | 'ranking-star': 'ranking', recycle: 'recycle', rss: 'rss', scroll: 'scroll', signature: 'signature', square: 'square', sword: 'sword', |
| 560 | 'table-columns': 'columns', 'thumbs-up': 'thumbs-up', undo: 'undo', 'rotate-back': 'undo', 'user-circle': 'user-circle', |
| 561 | 'circle-user': 'user-circle', 'user-lock': 'user-lock', 'user-minus': 'user-minus', 'user-pen': 'user-pen', 'user-edit': 'user-pen', |
| 562 | 'user-tag': 'user-tag', 'user-slash': 'user-off', 'weight-hanging': 'weight', wind: 'wind', 'window-maximize': 'window', |
| 563 | 'window-restore': 'window-restore', 'align-left': 'align-left', slash: 'slash', 'address-card': 'id', 'basket-shopping': 'cart', |
| 564 | 'cart-plus': 'cart', 'calendar-day': 'calendar', 'chart-area': 'chart', 'chart-column': 'chart', 'camera-retro': 'camera', |
| 565 | 'camera-cctv': 'camera', 'caret-down': 'down', clone: 'copy', 'cloud-moon': 'cloud', smog: 'cloud', 'file-pen': 'pencil', |
| 566 | 'gauge-simple-high': 'gauge', 'gauge-simple-low': 'gauge', 'gauge-simple': 'gauge', 'hand-point-right': 'hand', 'house-signal': 'home', |
| 567 | icicles: 'snow', 'map-location-dot': 'map', 'map-marker-alt': 'pin', 'mobile-screen-button': 'phone', 'plug-circle-bolt': 'plug', |
| 568 | 'plug-circle-check': 'plug', 'puzzle-piece': 'puzzle', puzzle: 'puzzle', 'puzzle-piece-simple': 'puzzle', 'plug-circle-xmark': 'plug', save: 'save', th: 'grid', 'down-left-and-up-right-to-center': 'compress', |
| 569 | paintbrush: 'palette', 'paint-brush': 'palette', |
| 570 | }); |
| 571 | |
| 572 | // Each glyph's words, for openvibe.design/icons and the suggest API: the Font Awesome names it stands for, plus |
| 573 | // the synonyms a person would type for it. Every glyph has some (a name with no alias still gets its own). |
| 574 | const KEYWORDS = { |
| 575 | binoculars: 'look see view search find observe spy distance bird', |
| 576 | telescope: 'look far stars space astronomy observe lens', |
| 577 | microscope: 'science lab biology research tiny zoom', |
| 578 | gpu: 'graphics card render video hardware compute gaming', |
| 579 | cpu: 'processor chip computer hardware core', |
| 580 | memory: 'ram stick computer hardware storage', |
| 581 | joystick: 'game controller gamepad play arcade', |
| 582 | wand: 'magic sparkle spell create wizard', |
| 583 | 'layers-plus': 'add stack new level create', |
| 584 | broadcast: 'live stream radio signal', |
| 585 | clip: 'cut attach scissors', |
| 586 | }; |
| 587 | const META = Object.freeze(Object.fromEntries(NAMES.map((n) => { |
| 588 | const aliases = Object.entries(FA).filter(([, g]) => g === n).map(([fa]) => fa.replace(/-/g, ' ')); |
| 589 | const words = [n.replace(/-/g, ' '), ...(KEYWORDS[n] || '').split(' ').filter(Boolean)]; |
| 590 | return [n, { by: DRAWN[n] ? BY.opus : BY.kit, tags: [...new Set([...words, ...aliases])].slice(0, 24) }]; |
| 591 | }))); |
| 592 | |
| 593 | const path = (name) => (Object.prototype.hasOwnProperty.call(ALL, name) ? ALL[name] : ''); |
| 594 | const esc = (s) => String(s).replace(/[&<>"]/g, (c) => ({ '&': '&', '<': '<', '>': '>', '"': '"' }[c])); |
| 595 | function svg(name, { size = 24, title = '', style = 'regular' } = {}) { |
| 596 | const d = path(name); |
| 597 | if (!d) return ''; |
| 598 | const weights = { thin: 1, light: 1.5, regular: 2, bold: 2.5, duotone: 2 }; |
| 599 | if (!['thin', 'light', 'regular', 'bold', 'solid', 'duotone'].includes(style)) throw new TypeError('glyphs.svg: unsupported style'); |
| 600 | // A part of a solid drawing that must stay a line (class "ln") carries its own stroke here: this svg stands |
| 601 | // alone, with no stylesheet to give it one (ov-glyphs.js does it in CSS, the sprite inline, the same way). |
| 602 | // Without it the line was filled as a shape, or not drawn at all. |
| 603 | const solidPath = solid(name).replace(/class="ln"/g, 'class="ln" fill="none" stroke="currentColor" stroke-width="2.6" stroke-linecap="round" stroke-linejoin="round"'); |
| 604 | const drawing = style === 'solid' && solidPath ? solidPath : d; |
| 605 | const extra = style === 'solid' && solidPath ? ' stroke="none"' : ` stroke-width="${weights[style]}"`; |
| 606 | const layered = style === 'duotone' && solidPath ? `<g fill="currentColor" stroke="none" opacity=".2">${solidPath}</g>${d}` : drawing; |
| 607 | const label = title ? ` role="img" aria-label="${esc(title)}"><title>${esc(title)}</title>` : ' aria-hidden="true">'; |
| 608 | return `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="${Number(size) || 24}" height="${Number(size) || 24}" fill="${style === 'solid' && solidPath ? 'currentColor' : 'none'}" stroke="currentColor"${extra} stroke-linecap="round" stroke-linejoin="round"${label}${layered}</svg>`; |
| 609 | } |
| 610 | const fromFa = (fa) => { const n = String(fa || '').replace(/^fa-/, ''); return Object.prototype.hasOwnProperty.call(FA, n) && path(FA[n]) ? FA[n] : null; }; |
| 611 | |
| 612 | const solid = (name) => (Object.prototype.hasOwnProperty.call(SOLID, name) ? SOLID[name] : ''); |
| 613 | /** The inside of the <svg> ov-glyphs.js draws for a glyph: the line drawing, and its solid one when it has one. */ |
| 614 | const inner = (name) => { const d = path(name); const so = solid(name); return d ? d + (so ? `<g class="ovg-s">${so}</g>` : '') : ''; }; |
| 615 | |
| 616 | // ── OpenVibe's own markup (4.231.0): <i data-ov-icon="name">, drawn in the page by ov-glyphs.js ── |
| 617 | function markup(name, { title = '', cls = '' } = {}) { |
| 618 | if (name !== 'busy' && !path(name)) return ''; |
| 619 | return `<i data-ov-icon="${esc(name)}"${cls ? ` class="${esc(cls)}"` : ''}${title ? ` title="${esc(title)}"` : ' aria-hidden="true"'}></i>`; |
| 620 | } |
| 621 | // Font Awesome's classes that say how, in OpenVibe's: '' drops one (the glyphs' default does it), null means a person |
| 622 | // has to decide (an animation, a stack, a list: scripts/fa-to-ov.js reports it and leaves the element alone). |
| 623 | const FA_HOW = Object.freeze({ |
| 624 | 'fa-solid': 'ovg-fill', fas: 'ovg-fill', 'fa-regular': '', far: '', 'fa-classic': '', 'fa-thin': 'ovg-thin', 'fa-light': 'ovg-light', |
| 625 | 'fa-fw': 'ovg-fw', 'fa-2xs': 'ovg-xs', 'fa-xs': 'ovg-xs', 'fa-sm': 'ovg-sm', 'fa-1x': '', 'fa-lg': 'ovg-lg', 'fa-xl': 'ovg-xl', 'fa-2xl': 'ovg-2x', |
| 626 | 'fa-2x': 'ovg-2x', 'fa-3x': 'ovg-3x', 'fa-rotate-90': 'ovg-rotate-90', 'fa-rotate-180': 'ovg-rotate-180', 'fa-rotate-270': 'ovg-rotate-270', |
| 627 | 'fa-flip-horizontal': 'ovg-flip-h', 'fa-flip-vertical': 'ovg-flip-v', fa: '', |
| 628 | }); |
| 629 | const SPINNERS = new Set(['spinner', 'circle-notch', 'rotate', 'arrows-rotate', 'sync', 'sync-alt', 'rotate-right', 'arrow-rotate-right', 'gear', 'cog', 'circle-dot']); |
| 630 | /** |
| 631 | * A class list in OpenVibe's terms: { icon, brand, cls, manual, unknown }. ICON is the glyph its Font Awesome name |
| 632 | * maps to (a spinning spinner is busy), BRAND a logo's Font Awesome name (the caller maps it with brands.fromFa), |
| 633 | * CLS the classes to keep (the page's own, and ovg-* for Font Awesome's sizes, widths and turns), MANUAL the |
| 634 | * classes a person has to decide, UNKNOWN a name the glyphs do not have. Classes without fa- give icon null. |
| 635 | */ |
| 636 | function fromFaClasses(list) { |
| 637 | const out = { icon: null, brand: null, cls: [], manual: [], unknown: null }; |
| 638 | const words = String(list || '').split(/\s+/).filter(Boolean); |
| 639 | const brand = words.includes('fa-brands') || words.includes('fab'); |
| 640 | const spin = words.some((w) => /^fa-(spin|spin-pulse|pulse)$/.test(w)); |
| 641 | for (const w of words) { |
| 642 | if (w === 'fa-brands' || w === 'fab') continue; |
| 643 | if (Object.prototype.hasOwnProperty.call(FA_HOW, w)) { if (FA_HOW[w]) out.cls.push(FA_HOW[w]); continue; } |
| 644 | if (/^fa-(spin|spin-pulse|pulse)$/.test(w)) continue; |
| 645 | if (/^fa-(beat|beat-fade|bounce|fade|flip|shake|stack|stack-1x|stack-2x|layers|layers-text|layers-counter|ul|li|border|pull-left|pull-right|inverse|rotate-by|flip-both|sharp|duotone|sharp-duotone|[4-9]x|10x|swap-opacity|width-auto)$/.test(w)) { out.manual.push(w); continue; } |
| 646 | if (/^fa-[a-z0-9-]+$/.test(w)) { |
| 647 | const n = w.slice(3); |
| 648 | if (brand) { out.brand = out.brand || n; continue; } |
| 649 | if (spin && SPINNERS.has(n)) { out.icon = 'busy'; continue; } |
| 650 | const g = fromFa(n); |
| 651 | if (g && !out.icon) out.icon = g; else if (!g) out.unknown = out.unknown || w; |
| 652 | continue; |
| 653 | } |
| 654 | out.cls.push(w); |
| 655 | } |
| 656 | if (spin && out.icon && out.icon !== 'busy') out.manual.push('fa-spin'); |
| 657 | out.cls = [...new Set(out.cls)]; |
| 658 | return out; |
| 659 | } |
| 660 | |
| 661 | return { NAMES, META, FA, SOLID, DRAWN: Object.freeze(Object.keys(DRAWN)), path, solid, inner, svg, fromFa, markup, fromFaClasses, FA_HOW }; |
| 662 | }); |
| 663 |