- PVSM.RU - https://www.pvsm.ru -

Темная тема = шрифтовой ад – Решение

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

Темная тема=шрифтовой ад - Решение - 1

Material Design 3

Первое, что делаем открываем документацию Material Design 3 раздел Typography [2].  В нем есть одно упоминание о эффекте визуального восприятия при инфертиции цвета и рекомендация. 

При переключении между темной и светлой темой один и тот же текст может казаться тяжелее, несмотря на одинаковые настройки. Использовать “negative grade” (меньшие значения Grade), чтобы скорректировать это. 

Темная тема=шрифтовой ад - Решение - 2

Grade и Weight

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

Темная тема=шрифтовой ад - Решение - 3

Grade и Weight

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

Темная тема=шрифтовой ад - Решение - 4

Слева начертание шрифта Lato — Regular или 400, справа — Semibold или 500. 

Параметру weight кратному 100 соответствует свое начертание из шрифтовой  гарнитуры. По доброй традиции, начертания разрабатываются дизайнером-шрифтовом вручную. Опять же, для соблюдения характера шрифта и его «разборчивости. Все параметры подгоняются вручную с учетом визуального восприятия. Как следствие у каждого начертания ширина литеры будет отличаться. 

Уменьшение параметра weight при инверсии цветов — самое близкое к идеальному решению, но вместе с ним меняется и кернинг — межбуквенное расстояние, что также сказывается на эффекте Ореола но уже в межбуквеном пространстве.

Чтобы избежать этого, google рекомендует регулировать параметр Grade, в котором ширина литер не изменяется. Но есть два «Но». Grade — параметр присущий так называемым “variable fonts [7]”. И второе — он ведет себя как Stroke у линий, те в одинаковых пропорциях изменяет толщину контура относительно условного центра. Изменение данного параметра будет влиять на характер шрифта, и результат может получится далеким от задумки шрифтового-дизайнера.

Темная тема=шрифтовой ад - Решение - 5

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

Темная тема=шрифтовой ад - Решение - 6

Roboto flex

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

Темная тема=шрифтовой ад - Решение - 7

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

Темная тема=шрифтовой ад - Решение - 8

Рекомендации

Если вы используете не вариативный шрифт, выставляйте параметр width на 100 меньше и увеличивайте кернинг — letter spacing.

В вариативных шрифтах таких как Roboto и Montserrat также меняем начертание, те Width, а не Grade. Во первых: не все вариативные шрифты поддерживают Grade, во-вторых теряется характер шрифта. Меняем параметр width примерно в половину. Для Regular на разных кеглях это 340-360. И подбираем соответствующий кернинг для сохранения длинных строки и красивых межбуквенных отступов, близких к задумке дизайнера.

Для каждого начертания кернинг стоит подбирать отдельно, в диапазоне от Regular до Black это значение меняется от 0,3% до 0,5%.

Параметры letter spacing подбираем как художник — прицеливаемся на Zoom, делаем 100% отодвигается от экрана на обычное расстояние и смотрим как получилось.

P.S.

Попрактиковаться взял стандартные текстовые стили из Material Design для Roboto. Все выверить, присмотреться и еще раз скорректировать — ушли сутки. Работа монотонная, поэтому для тех, кто разрабатывает темную тему, Figma файлик по ссылке [9]

Темная тема=шрифтовой ад - Решение - 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