- PVSM.RU - https://www.pvsm.ru -
В предыдущей статье [1] я подробно разобрал проблемы связанные со шрифтами для темной темы и причины их актуальности. В данном материале смотрим на то, какие есть решения и что предлагает индустрия. + figma файл с адаптированным мной под темную тему стандартным текстовым набором стилей Material Design для Roboto.

Первое, что делаем открываем документацию Material Design 3 раздел Typography [2]. В нем есть одно упоминание о эффекте визуального восприятия при инфертиции цвета и рекомендация.
При переключении между темной и светлой темой один и тот же текст может казаться тяжелее, несмотря на одинаковые настройки. Использовать “negative grade” (меньшие значения Grade), чтобы скорректировать это.

В базе знаний Google Fonts, на странице [3] с ликбезом, нам более подробно разъясняют природу этого эффекта — “halation” — ореола, который создает белый контур букв из за рассеивания света. Нам напоминают о сложной анатомии шрифтов, связанной с биологической особенностью восприятия и “legibility [4]” — «читабельностью». А также ссылаются на исследования [5] и рекомендации [6] описывающие данную проблему в организации дорожных знаков.

В качестве рекомендаций Material design предлагает уменьшать параметры “Grade” или “Weight” для соблюдения визуального баланса.

Слева начертание шрифта Lato — Regular или 400, справа — Semibold или 500.
Параметру weight кратному 100 соответствует свое начертание из шрифтовой гарнитуры. По доброй традиции, начертания разрабатываются дизайнером-шрифтовом вручную. Опять же, для соблюдения характера шрифта и его «разборчивости. Все параметры подгоняются вручную с учетом визуального восприятия. Как следствие у каждого начертания ширина литеры будет отличаться.
Уменьшение параметра weight при инверсии цветов — самое близкое к идеальному решению, но вместе с ним меняется и кернинг — межбуквенное расстояние, что также сказывается на эффекте Ореола но уже в межбуквеном пространстве.
Чтобы избежать этого, google рекомендует регулировать параметр Grade, в котором ширина литер не изменяется. Но есть два «Но». Grade — параметр присущий так называемым “variable fonts [7]”. И второе — он ведет себя как Stroke у линий, те в одинаковых пропорциях изменяет толщину контура относительно условного центра. Изменение данного параметра будет влиять на характер шрифта, и результат может получится далеким от задумки шрифтового-дизайнера.

Уменьшение параметров Grade и Weight решает проблему пересвета и выравнивает оптический вес в толщине линий и размере «просветов», однако, проблема с тонкими местами, где светимости не хватает останется.

Вариативные шрифты имеют разных набор динамических параметров. Помимо общих Grade и width, такой шрифт как Roboto flex имеет довольно большой набор настраиваемых параметров. Посмотреть можно в Google Fonts [8].

Но данная вариативность сказывается на базовых параметрах шрифта. Поэтому Roboto Regular не выглядит также как Roboto Flex regular.

Если вы используете не вариативный шрифт, выставляйте параметр width на 100 меньше и увеличивайте кернинг — letter spacing.
В вариативных шрифтах таких как Roboto и Montserrat также меняем начертание, те Width, а не Grade. Во первых: не все вариативные шрифты поддерживают Grade, во-вторых теряется характер шрифта. Меняем параметр width примерно в половину. Для Regular на разных кеглях это 340-360. И подбираем соответствующий кернинг для сохранения длинных строки и красивых межбуквенных отступов, близких к задумке дизайнера.
Для каждого начертания кернинг стоит подбирать отдельно, в диапазоне от Regular до Black это значение меняется от 0,3% до 0,5%.
Параметры letter spacing подбираем как художник — прицеливаемся на Zoom, делаем 100% отодвигается от экрана на обычное расстояние и смотрим как получилось.
Попрактиковаться взял стандартные текстовые стили из Material Design для Roboto. Все выверить, присмотреться и еще раз скорректировать — ушли сутки. Работа монотонная, поэтому для тех, кто разрабатывает темную тему, Figma файлик по ссылке [9].

Автор:
AndrewYaremko
Источник [10]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/veb-dizajn/381741
Ссылки в тексте:
[1] статье: https://habr.com/ru/post/708496/
[2] Typography: https://m3.material.io/styles/typography/type-scale-tokens#c1735d94-1308-48b0-877f-ab68595bf676
[3] странице: https://fonts.google.com/knowledge/choosing_type/exploring_typefaces_with_multiple_weights_or_grades#using-weights-or-grades-for-readability
[4] legibility: https://fonts.google.com/knowledge/glossary/legibility
[5] исследования: https://www.cortezlawfirmpllc.com/wp-content/uploads/sites/1600711/2020/05/glare_congressional_report.pdf
[6] рекомендации: https://rosap.ntl.bts.gov/view/dot/28555
[7] variable fonts: https://fonts.google.com/knowledge/introducing_type/introducing_variable_fonts
[8] Google Fonts: https://fonts.google.com/specimen/Roboto+Flex/tester
[9] ссылке: https://www.figma.com/file/x2qsnC4YJOQrmQPr4ZWYAc/Roboto-Dark-Mode?node-id=0%3A1&t=v2mTELZo9Fpr4YQO-1
[10] Источник: https://habr.com/ru/post/708858/?utm_source=habrahabr&utm_medium=rss&utm_campaign=708858
Нажмите здесь для печати.