fontScale – это пользовательская настройка масштаба текста в Android. Приложение должно оставаться рабочим при любом доступном размере шрифта: текст не должен обрезаться без причины, элементы управления – перекрываться, а важные действия – исчезать за границами экрана.

Почему интерфейс ломается при крупном тексте

Обычный макет проектируется под один сценарий:

В реальном приложении пользователь может:

Начиная с Android 14 система поддерживает масштаб текста до 200% и применяет нелинейное масштабирование. Крупные и мелкие размеры шрифта при этом могут увеличиваться с разной скоростью, чтобы сохранить визуальную иерархию. Не нужно вручную увеличивать размер текста с учетом fontScale. Например, не стоит брать 16.sp и дополнительно умножать его на системный масштаб. Compose уже сам применяет настройку пользователя к значениям в sp, а на Android 14 и новее делает это нелинейно.

LocalDensity

LocalDensity.current возвращает текущую Density Compose-окружения: