FONTS.md
Each line, with the release that last changed it.
| 0.5.0 | 1 | # Fonts |
| 2 | ||
| 3 | Drop variable TTFs into `app/src/main/res/font/`: | |
| 4 | ||
| 5 | - `inter.ttf` — primary UI font, used everywhere | |
| 6 | - `fraunces.ttf` — optional; only used for `&` (ampersand) substitution via | |
| 7 | `withFancyAmpersand()` so the swash form shows up on "Artist & Album" labels | |
| 8 | ||
| 9 | ## Install | |
| 10 | ||
| 11 | **Inter:** | |
| 12 | 1. https://fonts.google.com/specimen/Inter → Get font. | |
| 13 | 2. Extract. Look for `Inter-VariableFont_opsz,wght.ttf`. | |
| 14 | 3. Rename to `inter.ttf` (lowercase — `res/font/` requires `[a-z0-9_]`). | |
| 15 | 4. Drop into `app/src/main/res/font/inter.ttf`. | |
| 16 | ||
| 17 | **Fraunces** (optional): | |
| 18 | 1. https://fonts.google.com/specimen/Fraunces → Get font. | |
| 19 | 2. Extract. Look for `Fraunces[SOFT,WONK,opsz,wght].ttf`. | |
| 20 | 3. Rename to `fraunces.ttf`. | |
| 21 | 4. Drop into `app/src/main/res/font/fraunces.ttf`. | |
| 22 | ||
| 23 | ## Fallbacks | |
| 24 | ||
| 25 | Both families are loaded via `Resources.getIdentifier()` so missing files | |
| 26 | don't break the build: | |
| 27 | ||
| 28 | - No `inter.ttf` → system SansSerif (Roboto on most TVs). | |
| 29 | - No `fraunces.ttf` → system Serif for ampersands. | |
| 30 | ||
| 31 | ## Swash ampersand | |
| 32 | ||
| 33 | Text sites that want the decorative `&`: | |
| 34 | ||
| 35 | ```kotlin | |
| 36 | Text(withFancyAmpersand("Artist & Album")) | |
| 37 | ``` | |
| 38 | ||
| 39 | Everything non-ampersand stays in Inter. |


