Трекинг в мобилната разработка — същност и настройка на междусимволното разстояние

Автор: IT Sectr Публикувано: 2026-07-24 Време за четене: 9 мин

Трекинг (tracking) — это равномерное изменение межсимвольного интервала во всём выделенном фрагменте текста, в отличие от кернинга, который корректирует расстояние между конкретными парами букв. Трекинг применяется ко всем символам одинаково: положительный трекинг увеличивает расстояние, отрицательный — уменьшает. По данным MDN Web Docs, в веб-интерфейсах трекинг реализуется через CSS-свойство letter-spacing, которое поддерживает любые единицы длины и наследуется дочерними элементами.

Основно

  • Трекинг — равномерный межсимвольный интервал, применяемый ко всем символам текстового фрагмента
  • Отличается от кернинга: трекинг единый для всех символов, кернинг — индивидуальный для пар
  • Положительный трекинг улучшает читаемость мелкого текста и используется в accessibility
  • Отрицательный трекинг применяется в заголовках для создания плотного акцентного текста
  • На iOS реализуется через .kern в NSAttributedString, на Android — через letterSpacing

Какво е трекинг в типографията

Tracking (трекинг, разрядка) — это изменение межсимвольного расстояния, равномерно применяемое ко всем символам текстового блока. В отличие от кернинга, где каждая пара символов получает индивидуальную корректировку на основе кернинг-таблицы шрифта, трекинг задаётся единым числовым значением для всего диапазона. Положительный трекинг увеличивает интервал (разрядка), отрицательный — уменьшает (уплотнение).

Термин восходит к металлической типографике, где межсимвольный интервал регулировался физическим расстоянием между литерами. В цифровой типографике трекинг применяется поверх кернинг-таблицы: сначала шрифт применяет встроенные кернинг-пары, затем система добавляет равномерный трекинг ко всем символам. Результирующий интервал = кернинг + трекинг, что важно учитывать при агрессивном уплотнении текста.

Единицы измерения: трекинг может задаваться в абсолютных единицах (пункты, пиксели, миллиметры) и в относительных (em, процент от размера шрифта). В мобильной разработке принято задавать трекинг в пунктах (iOS) или sp (Android) как абсолютные значения, в вебе — в em как относительные. Относительные единицы предпочтительнее для accessibility, так как масштабируются при изменении размера шрифта пользователем.

Трекинг и кернинг: основни разлики

Путаница между трекингом и кернингом — одна из самых распространённых ошибок начинающих дизайнеров и разработчиков. Кернинг работает на микроуровне — корректирует интервал между конкретными парами символов (AV, Te, To) на основе их геометрии. Трекинг работает на макроуровне — равномерно сдвигает все символы фрагмента, не учитывая их форму.

Визуальный эффект: при кернинге расстояния между разными парами символов различаются — между A и V меньше, чем между A и I, потому что формы букв компенсируют друг друга. При трекинге все расстояния одинаковы — между A и V, A и I, T и o — везде один и тот же сдвиг. Это делает трекинг инструментом глобальной регулировки, а кернинг — инструментом тонкой настройки.

Комбинированное использование: в интерфейсной типографике трекинг и кернинг применяются вместе. Шрифт содержит кернинг-таблицу для базовой оптимизации, а разработчик добавляет трекинг для стилизации или accessibility. Кернинг-таблица применяется первой, затем поверх неё добавляется трекинг. При отрицательном трекинге (уплотнении) кернинг-пары могут создавать нежелательные наложения — проверяйте проблемные сочетания.

ХарактеристикаКернингТрекинг
ОбластьПары символовВесь текст
ЗначениеИндивидуальное для каждой парыЕдиное для всех символов
ЦельВизуальная равномерностьРегулировка плотности
ЗаметностьВ заголовках от 24ptВо всех кеглях
iOS атрибут.kern (nil или 0).kern (числовое значение)

Положителен и отрицателен трекинг: кога да се прилага

Положительный трекинг (разрядка) увеличивает расстояние между символами. Применяется для улучшения читаемости мелкого текста (10-13pt), где символы визуально сливаются при стандартном интервале. Также используется в accessibility для пользователей с дислексией — увеличенный межсимвольный интервал облегчает распознавание букв. Типичные значения: 0.3-1pt для iOS, 0.02-0.05em для веба.

Отрицательный трекинг (уплотнение) уменьшает расстояние между символами. Применяется в заголовках (от 24pt) и акцентном тексте, где плотный набор выглядит цельным и современным. Крупные кегли хорошо переносят уплотнение, так как межсимвольные расстояния визуально велики. Типичные значения: от -0.3 до -1pt. Ограничение: при трекинге меньше -1pt символы могут накладываться друг на друга, особенно в парах с выступающими элементами (fi, fj, TT).

Эмпирическое правило: для каждого кегля существует диапазон допустимого трекинга. Чем крупнее шрифт, тем меньше трекинг требуется для оптимальной читаемости. Формула: оптимальный трекинг ≈ font-weight * 0.01 - font-size * 0.001. Для жирного шрифта (weight 700) 16pt: 700 * 0.01 - 16 * 0.001 = 6.84, что с поправкой на гарнитуру даёт примерно 0.5pt положительного трекинга.

Трекинг для разных типов текста

Body text (14-18pt): трекинг не требуется или минимальный положительный 0.1-0.3pt. Профессиональные шрифты уже содержат оптимальные интервалы для основного текста. Любое вмешательство в трекинг body text должно обосновываться дизайном или accessibility-требованиями. Заголовки (20-36pt): допустим отрицательный трекинг от -0.3 до -0.8pt в зависимости от гарнитуры и веса. Капс (ALL CAPS): рекомендуется положительный трекинг 0.5-2pt, так как прописные буквы в капсе визуально сливаются без дополнительного интервала.

Специфика гарнитур: шрифты с гротескной геометрией (Helvetica, Inter, SF Pro) лучше переносят отрицательный трекинг, чем антиквенные гарнитуры с засечками (Times, Georgia, PT Serif). У антиквенных шрифтов засечки создают дополнительное визуальное соединение между буквами, и уплотнение делает текст нечитаемым. Для антиквенных гарнитур рекомендуется только положительный трекинг.

Реализация на трекинг на iOS и Android

На iOS трекинг реализуется через тот же атрибут .kern в NSAttributedString, что и кернинг, но с одним отличием: для трекинга указывается числовое значение, отличное от nil. nil — кернинг по умолчанию (из таблицы шрифта), 0 — отключение кернинга, любое другое число — трекинг поверх кернинг-таблицы. Это означает, что при установке .kern = 2, все символы получат +2pt межсимвольного интервала поверх встроенных кернинг-пар.

swift
let text = "Heading with tracking"
let attributedString = NSMutableAttributedString(string: text)

// Положителен трекинг +0.8pt
attributedString.addAttribute(
    .kern,
    value: 0.8,
    range: NSRange(
        location: 0,
        length: text.count
    )
)

// UILabel с трекинг
label.attributedText = attributedString

SwiftUI использует модификатор .tracking() для Text, который принимает CGFloat. В отличие от UIKit, SwiftUI-трекинг применяется ко всему тексту внутри модификатора и не может быть частичным без разбиения на несколько Text-блоков. SwiftUI автоматически обрабатывает комбинацию кернинга и трекинга, применяя трекинг поверх кернинг-таблицы шрифта.

Android использует свойство letterSpacing в TextView, которое задаётся в em (множитель относительно размера шрифта). Значение 0 — трекинг по умолчанию, 0.05 — увеличение на 5% от em, -0.02 — уменьшение. В Android letterSpacing работает как трекинг (равномерно для всех символов), а кернинг-таблица шрифта применяется автоматически на уровне рендер-движка Minikin.

groovy
// В XML оформление
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Text with tracking"
    android:letterSpacing="0.08"
    android:textSize="12sp" />

// Програмно в Kotlin
val textView: TextView = findViewById(R.id.smallText)
textView.letterSpacing = 0.08f

Compose в Android использует параметр letterSpacing в TextStyle, задаваемый в sp. Например, TextStyle(letterSpacing = 0.5.sp) даёт трекинг в 0.5 sp. В отличие от XML-подхода, Compose позволяет комбинировать letterSpacing с другими типографическими параметрами в едином объекте TextStyle, что упрощает создание дизайн-систем.

Настройка на letter-spacing в уеб разработката

В вебе трекинг реализуется через CSS-свойство letter-spacing, которое принимает любые единицы длины или ключевое слово normal. Значение normal соответствует 0 (без дополнительного межсимвольного интервала). Свойство наследуется, поддерживает отрицательные значения и анимируется. По данным CSS Specification, letter-spacing применяется после кернинг-таблицы шрифта.

css
/* Positive tracking for small text */
.caption {
    font-size: 11px;
    letter-spacing: 0.03em;
}

/* Negative tracking for headings */
h1 {
    font-size: 32px;
    font-weight: 700;
    letter-spacing: -0.02em;
}

/* Tracking for uppercase */
.uppercase-label {
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

em vs px: letter-spacing в em масштабируется при изменении font-size и предпочтителен для accessibility. px не масштабируется и может привести к несоответствию при увеличении текста браузером (Zoom). Рекомендация: всегда используйте em для letter-spacing. Исключение — случаи, когда трекинг должен оставаться фиксированным независимо от кегля, например, в логотипах.

Анимация letter-spacing: свойство поддерживает CSS transitions и animations, что позволяет создавать плавные эффекты появления текста. Анимация от letter-spacing: -0.05em до letter-spacing: 0.01em при загрузке заголовка — популярный приём в современных интерфейсах. Производительность: анимация letter-spacing вызывает reflow (перерасчёт layout), так как меняет ширину текста. Используйте transform и opacity для высокопроизводительных анимаций, где это возможно.

Достъпност и трекинг в мобилни интерфейси

Трекинг напрямую влияет на читаемость текста для пользователей с ограничениями зрения и дислексией. WCAG 2.2 Guideline 1.4.12 (Text Spacing) требует, чтобы текст не терял контент при увеличении межсимвольного, межстрочного и межабзацного интервалов до определённых значений. letter-spacing должен выдерживать увеличение до 0.12em без обрезания контента и наложения элементов.

Дислексия: исследования British Dyslexia Association показывают, что увеличение letter-spacing до 0.12em улучшает скорость чтения у пользователей с дислексией на 10-15%. Однако это индивидуально — некоторые пользователи предпочитают стандартный интервал. iOS и Android предоставляют системные accessibility-настройки для увеличения межсимвольного интервала, которые приложение должно уважать.

Правила для разработчика: не используйте фиксированные widths/heights, которые могут сломаться при увеличении letter-spacing. Избегайте overflow: hidden на контейнерах с текстом без проверки accessibility. Тестируйте интерфейс с увеличенным до 0.12em letter-spacing на всех экранах. Если дизайн ломается — пересмотрите вёрстку, а не игнорируйте accessibility.

Платформенная поддержка: iOS автоматически увеличивает letter-spacing при включении функции Larger Text в настройках доступности, если используется UIFont.preferredFont. Android предоставляет аналогичную опцию через FontScale. Разработчик не должен отключать эти настройки. Тестовый сценарий: включите максимальный размер текста в настройках устройства и проверьте, что трекинг не ломает layout интерфейса.

Често задавани въпроси

Как отличить трекинг от кернинга в коде?

В iOS .kern = nil — кернинг по умолчанию из таблицы шрифта. .kern = 0 — отключение кернинга. .kern = любое число — трекинг, который прибавляется поверх кернинг-таблицы. В Android letterSpacing — всегда трекинг.

Какой трекинг использовать для капса?

Для текста в верхнем регистре (ALL CAPS) используйте положительный трекинг 0.05-0.15em. Прописные буквы не имеют выносных элементов и визуально сливаются. На iOS: .kern = 1-2pt для капса 14-18pt.

Может ли трекинг быть отрицательным в вебе?

Да. CSS-свойство letter-spacing поддерживает отрицательные значения. Минимальное значение ограничено браузером — typically -0.1em, после чего символы начинают накладываться. Используйте отрицательный трекинг только для заголовков от 24pt.

Как трекинг влияет на производительность?

Трекинг не влияет напрямую на FPS при скролле. Однако изменение letter-spacing в CSS вызывает reflow, так как меняется ширина текстового блока. Для анимаций трекинга используйте transform вместо прямого изменения letter-spacing где возможно.

Как проверить accessibility трекинга?

Увеличьте letter-spacing до 0.12em через браузерные инструменты или accessibility-настройки. Проверьте, что текст не обрезается, не накладывается на соседние элементы и не выпадает из контейнера. Контент не должен пропадать ни при каких настройках.

Обобщение

  • Трекинг — равномерный межсимвольный интервал, единый для всех символов текстового блока
  • От кернинга отличается глобальностью: трекинг не учитывает форму конкретных пар символов
  • Положительный трекинг улучшает читаемость мелкого текста и капса, используется в accessibility
  • Отрицательный трекинг применяется в заголовках от 24pt для плотного акцентного набора
  • На iOS реализуется через .kern числовым значением, на Android — letterSpacing
  • В вебе используется letter-spacing в em для масштабирования при accessibility-настройках
  • WCAG 2.2 требует, чтобы контент не терялся при трекинге до 0.12em

Ще разработим мобилно приложение под ключ

IT Sectr създава iOS и Android приложения за стартъпи и бизнеси от 2017 г. Ще ви консултираме и ще предложим най-доброто решение.

Обсъдете проекта

Прочетете също