FONTS.md
39 lines · 1.1 KB
Changed in: 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. |


