# Bundled assets
## `elegance-symbols.ttf`
A ~15 KB font combining a subset of DejaVu Sans (arrows, math ellipsis,
modifier keys, delete keys, return arrows, disclosure triangles) with a
small set of [Lucide](https://lucide.dev) UI icons (upload, download,
search, pin, copy, alert, network, zoom-in, zoom-out, power, check, x).
The source font, DejaVu Sans, is derived from Bitstream Vera. Its license
permits redistribution of modified/subset fonts provided the font is renamed
to not contain "Bitstream" or "Vera" — this subset is renamed
`Elegance Symbols`. The full license text (covering both Bitstream Vera and
Arev contributions) is preserved in `elegance-symbols-LICENSE.txt`.
### Glyph set
| U+2190 | ← | leftwards arrow |
| U+2191 | ↑ | upwards arrow |
| U+2192 | → | rightwards arrow |
| U+2193 | ↓ | downwards arrow |
| U+21A9 | ↩ | leftwards arrow with hook |
| U+21B2 | ↲ | downwards arrow with corner left |
| U+21B5 | ↵ | downwards arrow with corner leftwards |
| U+21E5 | ⇥ | rightwards arrow to bar (tab key) |
| U+21E7 | ⇧ | upwards white arrow (shift key) |
| U+21EA | ⇪ | upwards white arrow from bar (caps lock) |
| U+22EE | ⋮ | vertical ellipsis |
| U+22EF | ⋯ | midline horizontal ellipsis |
| U+2303 | ⌃ | up arrowhead (control key) |
| U+2318 | ⌘ | place of interest (command key) |
| U+2325 | ⌥ | option key |
| U+2326 | ⌦ | erase to the right (forward delete) |
| U+2327 | ⌧ | x in rectangle (clear key) |
| U+232B | ⌫ | erase to the left (backspace) |
| U+23CE | ⏎ | return symbol |
| U+25B4 | ▴ | small up-pointing triangle |
| U+25B8 | ▸ | small right-pointing triangle |
| U+25BE | ▾ | small down-pointing triangle |
| U+25C2 | ◂ | small left-pointing triangle |
| U+2713 | ✓ | check mark (Lucide `check` — overrides DejaVu) |
| U+2717 | ✗ | ballot x (Lucide `x` — overrides DejaVu) |
| U+E000 | (PUA) | upload tray (Lucide `upload`) |
| U+E001 | (PUA) | download tray (Lucide `download`) |
| U+E002 | (PUA) | magnifier (Lucide `search`) |
| U+E003 | (PUA) | pin (Lucide `pin`) |
| U+E004 | (PUA) | copy / duplicate (Lucide `copy`) |
| U+E005 | (PUA) | circular alert (Lucide `circle-alert`) |
| U+E006 | (PUA) | network / hub (Lucide `network`) |
| U+E007 | (PUA) | zoom-in / magnifier with plus (Lucide `zoom-in`) |
| U+E008 | (PUA) | zoom-out / magnifier with minus (Lucide `zoom-out`) |
| U+E009 | (PUA) | power (Lucide `power`) |
### Regenerating the subset
To add more glyphs or update the source font, re-run the subset step with
the extended codepoint list:
```sh
# Download source
curl -LO https://github.com/dejavu-fonts/dejavu-fonts/releases/download/version_2_37/dejavu-fonts-ttf-2.37.tar.bz2
tar -xjf dejavu-fonts-ttf-2.37.tar.bz2
# Subset
pip install fonttools
pyftsubset dejavu-fonts-ttf-2.37/ttf/DejaVuSans.ttf \
--output-file=assets/elegance-symbols.ttf \
--unicodes='U+2190-2193,U+21A9,U+21B2,U+21B5,U+21E5,U+21E7,U+21EA,U+22EE,U+22EF,U+2303,U+2318,U+2325,U+2327,U+232B,U+2326,U+23CE,U+25B4,U+25B8,U+25BE,U+25C2,U+2713,U+2717' \
--no-hinting --desubroutinize --name-IDs='*'
# Then rename via fontTools (see scripts/rename-symbol-font.py if present).
# Re-bake the Lucide icon set on top of the DejaVu subset.
pip install picosvg fonttools
python3 scripts/update_lucide_glyphs.py
```
Any new codepoints must also be added to the table above and any consumer-
facing documentation that lists the bundled glyphs.
### Imported (Lucide) glyphs
The U+2713 / U+2717 overrides and every Private Use Area entry in the
table above are baked in by `scripts/update_lucide_glyphs.py`, which
fetches each icon's SVG from a pinned [Lucide](https://lucide.dev)
release tag, flattens the stroked paths via `picosvg`, and writes the
result through `fontTools`. Lucide is dual-licensed (ISC + MIT for
Feather-derived icons); see `lucide-LICENSE.txt`. The list of glyphs
to bake is hard-coded near the top of the script — edit
`LUCIDE_GLYPHS` and re-run to add or update an icon.
The matching Rust constants in `src/lib.rs` (`pub mod glyphs`) must
stay in sync with the script's codepoint assignments.