Why the Font is a string field instead of a picker
- Fonts are constantly evolving, with new fonts added to operating systems, applications, and web services regularly.
- Using a string field allows users to input any font name, including custom or third-party fonts that may not yet be included in a predefined picker or may not ever be realistically possible to add to a predefine picker (you could end up with 10's of thousands of combinations in the picker).
- A picker would require constant updates to include new fonts, making it harder to maintain.
- Many languages or regions use fonts with characters outside standard Latin alphabets.
- Users often rely on fonts installed locally or embedded in documents, which may not exist in a fixed list.
- Different platforms (Windows, macOS, Linux, web browsers) may have different font availability.
- A string field ensures users can specify fonts without being constrained by a hardcoded picker that may not reflect the fonts on their system.
- Developers or power users may want to use exact font names with weight, style, or variant suffixes (e.g.,
Roboto-BoldItalic) which you 'know' exists in your environment, but may not be feasible to represent in a fixed picker. - Pickers require mapping the selection to an actual font name, introducing potential mismatches or errors.