Kerning: bu nədir və hərflərarası interval necə qurulur

Müəllif: IT Sectr Dərc olunub: 2026-07-24 Oxuma vaxtı: 9 dəq

Kerning — mətnin vizual bərabərliyinə nail olmaq üçün xüsusi simvol cütləri arasında seçici düzəlişdir. Bütün simvollar arasındakı məsafəni bərabər dəyişən trekinqdən fərqli olaraq, kerning hər hərf cütünün formasını nəzərə alır: A və V, T və o, W və a. Kerning olmadan çıxıntılı elementləri olan birləşmələr qeyri-bərabər görünür — hərflər arasında vizual boşluqlar və ya sıxılma yaranır. Apple NSAttributedString Sənədləşməsinə görə, iOS-da kerning .kern atributu vasitəsilə qurulur və həm müsbət, həm də mənfi dəyərləri dəstəkləyir.

Əsas məqamlar

  • Kerning — mətnin vizual bərabərliyi üçün simvol cütləri arasında seçici interval dəyişikliyi
  • Trekinqdən fərqlənir: kerning cütlərlə işləyir, trekinq — bütün mətnlə bərabər şəkildə
  • iOS-da NSAttributedString ilə .kern atributu vasitəsilə UIKit-də qurulur
  • Android-də letterSpacing ilə TextView və ya SpannableString vasitəsilə həyata keçirilir
  • Interval qeyri-bərabərliyinin çılpaq gözlə göründüyü başlıqlar və böyük ölçülər üçün vacibdir

Tipoqrafiyada kerning nədir

Kerning — optik artefaktları aradan qaldırmaq üçün xüsusi simvol cütləri arasındakı məsafənin əl və ya avtomatik düzəlişi prosesidir. Problem hər hərfin unikal həndəsəyə malik olması səbəbindən yaranır: A-nın təpəsi, V-nin sağ əyilməsi, T-nin geniş çarpazı var. Belə hərflər yan-yana durduqda, konturları arasındakı məsafə qeyri-bərabər görünür, baxmayaraq ki, simvollararası interval (set width) eynidir.

Şriftin kerning cədvəllərində əvvəlcədən təyin edilmiş düzəliş dəyərləri olan simvol cütləri var. Yaxşı şriftdə 300-dən 2000-ə qədər kerning cütü ola bilər. Peşəkar fontlar — məsələn, Apple-dan SF Pro və ya Google-dan Roboto — latın və kiril əlifbalarının bütün mümkün birləşmələrini əhatə edən diqqətlə işlənmiş kerning cədvəllərini ehtiva edir. Fontshop Guide to Kerning-ə görə, kerning cədvəllərinin keyfiyyəti peşəkar şriftin əsas əlamətlərindən biridir.

Vizual effekt kerning xüsusilə başlıqlarda, loqolarda və böyük ölçülü mətndə (24 pt-dən) nəzərə çarpır. Kiçik mətndə (12-14 pt) hərflərarası məsafələr kiçikdir və kerning daha az nəzərə çarpır, baxmayaraq ki, işləməyə davam edir. Veb brauzerlər və mobil ƏS-lər standart olaraq daxili kerning tətbiq edir, lakin tərtibatçı onu söndürə və ya konkret dizayna uyğunlaşdıra bilər.

Kerning və trekinq: əsas fərqlər

Başlanğıc tərtibatçılar tez-tez kerningtrekinqi qarışdırır, lakin bunlar tipoqrafiyanın prinsipial olaraq fərqli parametrləridir. Kerning simvol cütləri səviyyəsində işləyir və məsafəni yalnız həndəsəsi optik balanssızlıq yaradan xüsusi birləşmələr arasında düzəldir. Trekinq (letter-spacing) seçilmiş fraqmentin bütün simvolları arasındakı intervalı eyni şəkildə dəyişir — onu bərabər artırır və ya azaldır.

Trekinq nə vaxt tətbiq olunur: kiçik mətnin oxunuşluğunu yaxşılaşdırmaq üçün (müsbət trekinq), vurğulu başlıqlar yaratmaq üçün (mənfi trekinq), interfeys dizaynında mətnin stilizasiyası üçün. Trekinq ədədi dəyərlə təyin edilir və artıq kerning olunmuş cütlər də daxil olmaqla hər bir simvola tətbiq olunur — kerning düzəlişləri saxlanılır, lakin onların üzərinə ümumi yerdəyişmə əlavə olunur.

ParametrKerningTrekinq
Tətbiq sahəsiAyrı-ayrı simvol cütləriBütün mətn fraqmenti
DəyərHər cüt üçün fərdiBütün simvollar üçün vahid
MəqsədVizual bərabərlikMətn sıxlığının tənzimlənməsi
iOS atributuNSAttributedString-də .kernCSS-də letter-spacing
Görünürlük24pt-dən başlıqlardaBütün ölçülərdə

Vacib qayda: mənfi trekinqdə (sıxma) kerning cütlərinə diqqət yetirin — onlar arzuolunmaz hərf üst-üş düşmələri yarada bilər. CSS-də letter-spacing xassəsi şriftin kerning cədvəlinin üzərinə tətbiq olunur və güclü sıxma zamanı (letter-spacing: -1px) kerning düzəlişləri simvolların birləşməsinə səbəb ola bilər.

iOS-da NSAttributedString vasitəsilə kerningin tətbiqi

iOS-da kerning .kern atributu vasitəsilə NSAttributedString-də idarə olunur. Atributun dəyəri Float-dır, burada müsbət ədəd intervalı artırır, mənfi azaldır, 0 isə kerningi söndürür. Standart dəyər nil-dir, yəni şriftin kerning cədvəlindən istifadə olunur. Kerninglə iş üçün əsas API — mətn diapazonuna atribut əlavə edən NSMutableAttributedString.

swift
let text = "Kerning in mobile interfaces"
let attributedText = NSMutableAttributedString(
    string: text
)

// Kerningi aktivləşdir (şrift cədvəlindən istifadə edir)
attributedText.addAttribute(
    .kern,
    value: 0.5,
    range: NSRange(
        location: 0,
        length: text.count
    )
)

// UILabel-ə tətbiq et
label.attributedText = attributedText

Standart dəyər .kern = nil şrift cədvəlindən kerningi aktivləşdirir. Kerningi tamamilə söndürmək lazımdırsa — .kern = 0 təyin edin. 0.0 və nil dəyərləri fərqli hallardır: nil cədvəldən istifadə edir, 0 bütün kerning cütlərini məcburi sıfırlayır. Apple Text Programming Guide-a görə, açıq şəkildə 0 təyin etmək monospace mətn və ya kerningin mane olduğu hallar üçün faydalıdır — məsələn, sabit enli düymələrdə.

SwiftUI Text üçün .kerning() modifieri təmin edir. UIKit-dən fərqli olaraq, SwiftUI-də kerning atributlaşdırılmış sətir deyil, görünüş səviyyəsində təyin edilir. Modifier CGFloat qəbul edir və Text bloku daxilində bütün mətnə tətbiq olunur. SwiftUI-də qismən kerning üçün + operatoru və ayrı-ayrı modifierlərin kombinasiyası istifadə olunur.

swift
struct KerningView: View {
    var body: some View {
        Text("Kerning ilə başlıq")
            .kerning(1.0)
            .font(.title)
    }
}

Performans: kerning atributu olan NSAttributedString render zamanı simvol mövqelərini yenidən hesablayır. Statik mətn üçün bu bir dəfə baş verir. Dinamik mətn üçün (UICollectionView-də dəyişən mətn) — hər dəfə dəyişiklik zamanı. Uzun sətirlərdə (500 simvoldan çox) kerning ilə böyük diapazonun istifadəsi scroll zamanı FPS-i aşağı sala bilər.

Android-də letterSpacing vasitəsilə kerningin qurulması

Android-də kerning TextView və XML düzənində letterSpacing xassəsi vasitəsilə idarə olunur. Atribut Float tipinə malikdir və şrift ölçüsünün em çarpanı kimi işləyir. 0 dəyəri standart kerningə uyğundur, müsbət — intervalı artırır, mənfi — azaldır. letterSpacing API Level 21-dən (Android 5.0 Lollipop) etibarən mövcuddur.

SpannableString vasitəsilə tətbiq kerningi bütün mətnə deyil, sətrin bir hissəsinə tətbiq etməyə imkan verir. Dəqiq nəzarət üçün ScaleXSpan sinfi və ya xüsusi ReplacementSpan istifadə olunur. Android Developer Guide-a görə, ScaleXSpan simvolları eninə miqyaslayır, simvollararası intervalın dəyişməsini simulyasiya edir, lakin kerning cütlərinə birbaşa nəzarət vermir.

groovy
// XML düzənində
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Text with kerning"
    android:letterSpacing="0.05" />

// Kotlin-də proqramlı şəkildə
val textView = findViewById<TextView>(R.id.myTextView)
textView.letterSpacing = 0.05f

Məhdudiyyət: Android kerning cədvəllərini birbaşa dəstəkləmir — letterSpacing bütün simvollar üçün trekinq kimi işləyir. Android-də cüt kerningi üçün daxili kerning cədvəlləri olan şriftlərdən (OpenType GPOS feature kern) istifadə olunur. Dəstək ƏS versiyasından və render mühərrikindən asılıdır: Android 10+-da OpenType xüsusiyyətlərini tam dəstəkləyən Minikin, daha erkən versiyalarda isə məhdudiyyətləri olan HarfBuzz istifadə olunur. Tövsiyə: Android 8.0-dan aşağı cihazlarda kerningin göstərilməsini yoxlayın.

Veb inkişafda CSS vasitəsilə kerning

Vebdə kerning şriftin daxili kerning cədvəllərini aktivləşdirən və ya söndürən CSS xassəsi font-kerning vasitəsilə idarə olunur. Dəyərlər: auto (brauzer qərar verir), normal (kerning aktiv), none (kerning söndürülüb). Xassə 2016-cı ildən bütün müasir brauzerlər tərəfindən dəstəklənir. MDN Web Docs-a görə, font-kerning yalnız kerning cədvəli olan OpenType şriftlərinə tətbiq olunur.

CSS xassəsi letter-spacing — trekinqin analoqudur, lakin kerningə bənzər effektlər üçün də istifadə olunur. font-kerning-dən fərqli olaraq, letter-spacing kerning cütlərini nəzərə almadan bütün simvollar arasındakı intervalı bərabər dəyişir. Hər iki xassədən istifadə edərkən font-kerning birinci tətbiq olunur, sonra letter-spacing onun üzərinə bərabər yerdəyişmə əlavə edir.

css
/* Enable kerning for headings */
h1 {
    font-kerning: normal;
    letter-spacing: 0.02em;
}

/* Disable kerning for monospace */
code, pre {
    font-kerning: none;
}

TypeScript utiliti kerningi nəzərə alaraq optimal letter-spacing-in hesablanması üçün Canvas API vasitəsilə şriftin kerning cədvəlini təhlil edə bilər. Lakin praktikada veb tərtibatçılar font-kerning: normal-a etibar edirlər — əksər hallarda optimal nəticə verir. Əlavə letter-spacing tənzimlənməsi yalnız dizayn vurğuları üçün tələb olunur — məsələn, böyük tipoqrafiyası olan landing səhifələrində.

Kerningin qurulması üzrə praktiki tövsiyələr

Kerning incə tənzimləmə alətidir və onun düzgün tətbiq edilməməsi oxunuşluğu pisləşdirir. Birinci qayda: əsas mətn (body text) üçün kerningi dəyişməyin. Peşəkar şriftlərin kerning cədvəlləri artıq 12-16pt ölçüləri üçün optimal dəyərləri ehtiva edir. Əsas mətnin kerninginə müdaxilə qeyri-bərabərliyə və vizual səs-küyə səbəb olur.

İkinci qayda: 24pt-dən başlıqlar üçün müsbət kerning (fontdan asılı olaraq 0.5-1.5 pt) istifadə edin. Böyük mətn oxunuşluq üçün daha çox hərflərarası boşluq tələb edir. Aşağı x-height olan şriftlər (məsələn, Didot) yüksək x-height olan şriftlərdən (məsələn, Helvetica) daha çox kerning tələb edir. Test məlumatları: Apple Music iOS tətbiqində başlıqlar 0.8 pt kerning istifadə edir.

Üçüncü qayda: kerningi həmişə real sətirlərdə yoxlayın, test Lorem Ipsum-da deyil. Müxtəlif simvol kombinasiyaları fərqli vizual effekt verir. Çıxıntılı elementləri olan sait və samit cütlərinə xüsusi diqqət yetirin: AV, Te, To, Wa, LT. Mənfi kerningdə fi, fl, fj cütlərini izləyin — bəzi şriftlərdə liqatura olmadan birləşə bilərlər.

Əlçatanlıq aspekti: disleksiyası olan istifadəçilər kiçik müsbət kerning (0.3-0.5 pt) olan mətni daha yaxşı oxuyurlar. iOS və Android tətbiqin kerningini ləğv edə bilən əlçatanlıq parametrlərini dəstəkləyir. Dynamic Type ilə UIFontDescriptor istifadə edin və əlçatanlıq parametrlərində kerningi UIAccessibility vasitəsilə nəzərə alın. Vacib: sistem kerning parametrlərini bloklamayın — bu, WCAG 2.2 Guideline 1.4.12 mətn adaptasiyasını pozur.

Tez-tez verilən suallar

iOS-da kerningi necə söndürmək olar?

NSAttributedString-də .kern = 0 atributunu təyin edin. 0 dəyəri şriftin daxili cədvəlləri də daxil olmaqla bütün kerning cütlərini məcburi sıfırlayır. Bütün mətn səviyyəsində tam söndürmək üçün UILabel parametrlərində attributedText vasitəsilə .kern = 0 təyin edin.

Kerning liqaturadan nə ilə fərqlənir?

Kerning simvollar arasındakı məsafəni dəyişir, formalarını dəyişməz qoyur. Liqatura iki və ya daha çox simvolu bir qrafik elementlə əvəz edir. Liqaturalar tez-tez kerningin arzuolunmaz birləşməni aradan qaldıra bilmədiyi yerlərdə tətbiq olunur — məsələn, fi cütü.

Android şriftlərin kerning cədvəllərini dəstəkləyirmi?

Bəli, Android 10-dan (API 29) etibarən OpenType GPOS feature kern-i tam dəstəkləyən Minikin render mühərriki istifadə olunur. Daha əvvəlki versiyalarda dəstək cihaz istehsalçısından və HarfBuzz versiyasından asılıdır. Bir neçə cihazda sınaqdan keçirmək tövsiyə olunur.

Şriftin kerning cədvəlinin keyfiyyətini necə yoxlamaq olar?

AVOWaToLt sətirindən istifadə edin — burada problemli kerning cütləri toplanıb. Vizual boşluqlar çılpaq gözlə görünürsə, şriftin kerning cədvəli aşağı keyfiyyətlidir. Peşəkar yoxlama üçün FontForge və ya Glyphs alətlərindən istifadə edin.

Kerning siyahıların performansına təsir edirmi?

Bəli. UICollectionView-də kerning ilə NSAttributedString-in dinamik yenilənməsi zamanı simvol mövqelərinin yenidən hesablanması scroll zamanı FPS-i aşağı sala bilər. Uzun siyahılar üçün atributlaşdırılmış sətirləri keşləyin və ya standart parametrlərlə UILabel istifadə edin.

Nəticə

  • Kerning — həndəsəsinə əsaslanan simvol cütləri arasında seçici interval düzəlişi
  • Trekinqdən fərqlənir: kerning cütlərlə işləyir, trekinq — bütün simvollarla bərabər
  • iOS-da .kern vasitəsilə NSAttributedString-də tətbiq olunur, nil — cədvəldən kerning, 0 — söndürmə
  • Android-də letterSpacing ilə TextView-də (API 21+) idarə olunur, lakin cüt kerningi şrift cədvəlindən asılıdır
  • Vebdə kerning font-kerning: normal vasitəsilə aktivləşdirilir, əlavə olaraq letter-spacing tətbiq olunur
  • 12-16pt əsas mətn üçün kerningi dəyişmək tövsiyə edilmir — peşəkar şriftlər artıq optimallaşdırılıb
  • Əlçatanlıq üçün disleksiyası olan istifadəçilər üçün müsbət kerning 0.3-0.5pt istifadə edin

Açar təslim mobil tətbiq hazırlayacağıq

IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.

Layihəni müzakirə et

Həm də oxuyun