Why the Font is a string field instead of a picker

  1. Fonts are constantly evolving, with new fonts added to operating systems, applications, and web services regularly.
  2. 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).
  3. A picker would require constant updates to include new fonts, making it harder to maintain.
  4. Many languages or regions use fonts with characters outside standard Latin alphabets.
  5. Users often rely on fonts installed locally or embedded in documents, which may not exist in a fixed list.
  6. Different platforms (Windows, macOS, Linux, web browsers) may have different font availability.
  7. A string field ensures users can specify fonts without being constrained by a hardcoded picker that may not reflect the fonts on their system.
  8. 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.
  9. Pickers require mapping the selection to an actual font name, introducing potential mismatches or errors.