ٹریکنگ (Tracking) منتخب متن کے ٹکڑے میں تمام حروف کے درمیان یکساں فاصلے کی ایڈجسٹمنٹ ہے، کرننگ کے برعکس جو مخصوص حرفی جوڑوں کے درمیان فاصلے کو ایڈجسٹ کرتی ہے۔ ٹریکنگ تمام حروف پر یکساں طور پر لاگو ہوتی ہے: مثبت ٹریکنگ فاصلہ بڑھاتی ہے، منفی ٹریکنگ کم کرتی ہے۔ MDN Web Docs کے مطابق، ویب انٹرفیس میں ٹریکنگ CSS پراپرٹی letter-spacing کے ذریعے لاگو کی جاتی ہے، جو لمبائی کی کسی بھی اکائی کو سپورٹ کرتی ہے اور چائلڈ عناصر کو وراثت میں ملتی ہے۔
اہم نکات
ٹریکنگ (Tracking) حروف کے درمیان فاصلے کی ایڈجسٹمنٹ ہے، جو متن کے بلاک کے تمام حروف پر یکساں طور پر لاگو ہوتی ہے۔ کرننگ کے برعکس، جہاں حروف کا ہر جوڑا فونٹ کے کرننگ ٹیبل کی بنیاد پر انفرادی ایڈجسٹمنٹ حاصل کرتا ہے، ٹریکنگ پوری رینج کے لیے ایک عددی قدر کے طور پر مقرر کی جاتی ہے۔ مثبت ٹریکنگ فاصلہ بڑھاتی ہے (توسیع شدہ فاصلہ)، منفی ٹریکنگ کم کرتی ہے (سکڑا ہوا فاصلہ)۔
یہ اصطلاح دھاتی ٹائپوگرافی سے نکلی ہے، جہاں حروف کے درمیان فاصلہ ٹائپ سلیگ کے درمیان طبعی فاصلے سے منظم کیا جاتا تھا۔ ڈیجیٹل ٹائپوگرافی میں، ٹریکنگ کرننگ ٹیبل کے اوپر لاگو کی جاتی ہے: پہلے فونٹ اپنے بلٹ ان کرننگ جوڑوں کو لاگو کرتا ہے، پھر سسٹم تمام حروف میں یکساں ٹریکنگ شامل کرتا ہے۔ نتیجہ خیز فاصلہ = کرننگ + ٹریکنگ، جو متن کو جارحانہ طور پر سکیڑتے وقت غور کرنا ضروری ہے۔
پیمائش کی اکائیاں: ٹریکنگ کو مطلق اکائیوں (پوائنٹ، پکسل، ملی میٹر) اور رشتہ دار اکائیوں (em، فونٹ سائز کا فیصد) میں متعین کیا جا سکتا ہے۔ موبائل ڈویلپمنٹ میں، ٹریکنگ عام طور پر مطلق اقدار کے طور پر پوائنٹ (iOS) یا sp (Android) میں، ویب پر رشتہ دار اقدار کے طور پر em میں متعین کی جاتی ہے۔ رشتہ دار اکائیاں قابل رسائی کے لیے افضل ہیں کیونکہ جب صارف فونٹ سائز تبدیل کرتا ہے تو وہ اسکیل ہو جاتی ہیں۔
ٹریکنگ اور کرننگ کے درمیان الجھن ابتدائی ڈیزائنرز اور ڈویلپرز میں سب سے عام غلطیوں میں سے ایک ہے۔ کرننگ مائیکرو سطح پر کام کرتی ہے — یہ مخصوص حرفی جوڑوں (AV، Te، To) کے درمیان فاصلے کو ان کی جیومیٹری کی بنیاد پر ایڈجسٹ کرتی ہے۔ ٹریکنگ میکرو سطح پر کام کرتی ہے — یہ کسی ٹکڑے کے تمام حروف کو ان کی شکل پر غور کیے بغیر یکساں طور پر منتقل کرتی ہے۔
بصری اثر: کرننگ کے ساتھ، مختلف حرفی جوڑوں کے درمیان فاصلے مختلف ہوتے ہیں — A اور V کے درمیان A اور I کے مقابلے میں چھوٹا ہوتا ہے، کیونکہ حروف کی شکلیں ایک دوسرے کی تلافی کرتی ہیں۔ ٹریکنگ کے ساتھ، تمام فاصلے یکساں ہوتے ہیں — A اور V، A اور I، T اور o کے درمیان — ہر جگہ ایک ہی منتقلی۔ یہ ٹریکنگ کو عالمی ایڈجسٹمنٹ کا آلہ اور کرننگ کو باریک ایڈجسٹمنٹ کا آلہ بناتا ہے۔
مشترکہ استعمال: انٹرفیس ٹائپوگرافی میں، ٹریکنگ اور کرننگ ایک ساتھ استعمال ہوتی ہیں۔ فونٹ میں بنیادی اصلاح کے لیے کرننگ ٹیبل شامل ہوتا ہے، اور ڈویلپر اسٹائلنگ یا قابل رسائی کے لیے ٹریکنگ شامل کرتا ہے۔ کرننگ ٹیبل پہلے لاگو کیا جاتا ہے، پھر اس کے اوپر ٹریکنگ شامل کی جاتی ہے۔ منفی ٹریکنگ (سکڑاؤ) کے ساتھ، کرننگ جوڑے ناپسندیدہ اوورلیپ پیدا کر سکتے ہیں — مسئلہ زدہ امتزاج چیک کریں۔
| خصوصیت | کرننگ | ٹریکنگ |
|---|---|---|
| دائرہ کار | حرفی جوڑے | پورا متن |
| قدر | ہر جوڑے کے لیے انفرادی | تمام حروف کے لیے یکساں |
| مقصد | بصری یکسانیت | کثافت کی ایڈجسٹمنٹ |
| نمایاں | 24pt سے سرخیوں میں | تمام سائز میں |
| iOS وصف | .kern (nil یا 0) | .kern (عددی قدر) |
مثبت ٹریکنگ حروف کے درمیان فاصلہ بڑھاتی ہے۔ یہ چھوٹے متن (10–13pt) کی پڑھنے کی اہلیت بہتر بنانے کے لیے استعمال ہوتی ہے، جہاں معیاری فاصلے پر حروف بصری طور پر مل جاتے ہیں۔ یہ ڈسلیکسیا والے صارفین کے لیے قابل رسائی میں بھی استعمال ہوتی ہے — حروف کے درمیان بڑھا ہوا فاصلہ حرف کی پہچان آسان بناتا ہے۔ عام اقدار: iOS کے لیے 0.3–1pt، ویب کے لیے 0.02–0.05em۔
منفی ٹریکنگ حروف کے درمیان فاصلہ کم کرتی ہے۔ یہ سرخیوں (24pt سے) اور زور دار متن میں استعمال ہوتی ہے، جہاں گھنا متن مربوط اور جدید لگتا ہے۔ بڑے سائز سکڑاؤ کو اچھی طرح برداشت کرتے ہیں کیونکہ حروف کے درمیان فاصلے بصری طور پر بڑے ہوتے ہیں۔ عام اقدار: -0.3 سے -1pt تک۔ حدود: -1pt سے کم ٹریکنگ پر، حروف اوورلیپ ہو سکتے ہیں، خاص طور پر ابھرے ہوئے عناصر والے جوڑوں میں (fi، fj، TT)۔
عملی اصول: ہر فونٹ سائز کے لیے قابل قبول ٹریکنگ کی ایک حد ہوتی ہے۔ فونٹ جتنا بڑا ہوگا، بہترین پڑھنے کی اہلیت کے لیے اتنی ہی کم ٹریکنگ درکار ہوگی۔ فارمولا: بہترین ٹریکنگ ≈ font-weight × 0.01 − font-size × 0.001۔ 16pt پر بولڈ فونٹ (weight 700) کے لیے: 700 × 0.01 − 16 × 0.001 = 6.84، جو ٹائپ فیس کے مطابق ایڈجسٹ ہونے پر تقریباً 0.5pt مثبت ٹریکنگ دیتا ہے۔
باڈی ٹیکسٹ (14–18pt): ٹریکنگ ضروری نہیں یا کم سے کم مثبت 0.1–0.3pt۔ پیشہ ور فونٹس میں پہلے سے باڈی ٹیکسٹ کے لیے بہترین فاصلہ ہوتا ہے۔ باڈی ٹیکسٹ ٹریکنگ میں کسی بھی مداخلت کو ڈیزائن یا قابل رسائی کی ضروریات سے جواز پیش کیا جانا چاہیے۔ سرخیاں (20–36pt): ٹائپ فیس اور وزن کے لحاظ سے -0.3 سے -0.8pt تک منفی ٹریکنگ قابل قبول ہے۔ تمام بڑے حروف (ALL CAPS): 0.5–2pt مثبت ٹریکنگ تجویز کی جاتی ہے، کیونکہ بڑے حروف اضافی فاصلے کے بغیر بصری طور پر مل جاتے ہیں۔
ٹائپ فیس کی خصوصیات: grotesque جیومیٹری والے فونٹس (Helvetica، Inter، SF Pro) سیرف والے ٹائپ فیسس (Times، Georgia، PT Serif) کے مقابلے منفی ٹریکنگ کو بہتر برداشت کرتے ہیں۔ سیرف والے فونٹس میں، سیرف حروف کے درمیان اضافی بصری روابط پیدا کرتے ہیں، اور سکڑاؤ متن کو ناقابل پڑھنے بناتا ہے۔ سیرف والے ٹائپ فیسس کے لیے، صرف مثبت ٹریکنگ تجویز کی جاتی ہے۔
iOS پر، ٹریکنگ کرننگ کی طرح NSAttributedString میں اسی .kern وصف کے ذریعے لاگو کی جاتی ہے، ایک فرق کے ساتھ: ٹریکنگ کے لیے، nil کے علاوہ ایک عددی قدر متعین کی جاتی ہے۔ nil کا مطلب ڈیفالٹ کرننگ (فونٹ ٹیبل سے) ہے، 0 کرننگ کو غیر فعال کرتا ہے، کوئی بھی دوسرا نمبر کرننگ ٹیبل کے اوپر ٹریکنگ کا مطلب ہے۔ اس کا مطلب ہے کہ جب .kern = 2 سیٹ کیا جاتا ہے، تمام حروف بلٹ ان کرننگ جوڑوں کے اوپر +2pt بین الحرف فاصلہ حاصل کرتے ہیں۔
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 Text پر .tracking() موڈیفائر استعمال کرتا ہے، جو CGFloat قبول کرتا ہے۔ UIKit کے برعکس، SwiftUI ٹریکنگ موڈیفائر کے اندر تمام متن پر لاگو ہوتی ہے اور متعدد Text بلاکس میں تقسیم کیے بغیر جزوی نہیں ہو سکتی۔ SwiftUI خود بخود کرننگ اور ٹریکنگ کے امتزاج کو سنبھالتا ہے، فونٹ کے کرننگ ٹیبل کے اوپر ٹریکنگ لاگو کرتا ہے۔
Android TextView میں letterSpacing پراپرٹی استعمال کرتا ہے، جو em (فونٹ سائز کے نسبتاً ضارب) میں متعین کی جاتی ہے۔ قدر 0 کا مطلب ڈیفالٹ ٹریکنگ ہے، 0.05 کا مطلب em میں 5% اضافہ ہے، -0.02 کا مطلب کمی ہے۔ Android میں، letterSpacing ٹریکنگ (تمام حروف کے لیے یکساں) کے طور پر کام کرتی ہے، جبکہ فونٹ کا کرننگ ٹیبل Minikin رینڈر انجن کی سطح پر خود بخود لاگو ہوتا ہے۔
// 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 میں TextStyle میں letterSpacing پیرامیٹر استعمال کرتا ہے، جو sp میں متعین کیا جاتا ہے۔ مثال کے طور پر، TextStyle(letterSpacing = 0.5.sp) 0.5 sp کی ٹریکنگ دیتا ہے۔ XML طریقہ کے برعکس، Compose ایک ہی TextStyle آبجیکٹ میں letterSpacing کو دیگر ٹائپوگرافک پیرامیٹرز کے ساتھ جوڑنے کی اجازت دیتا ہے، جس سے ڈیزائن سسٹمز کی تخلیق آسان ہو جاتی ہے۔
ویب پر، ٹریکنگ CSS پراپرٹی letter-spacing کے ذریعے لاگو کی جاتی ہے، جو لمبائی کی کسی بھی اکائی یا کلیدی لفظ normal کو قبول کرتی ہے۔ normal کی قدر 0 (کوئی اضافی بین الحرف فاصلہ نہیں) سے مطابقت رکھتی ہے۔ پراپرٹی وراثت میں ملتی ہے، منفی اقدار کو سپورٹ کرتی ہے، اور متحرک کی جا سکتی ہے۔ CSS تصریح کے مطابق، letter-spacing فونٹ کے کرننگ ٹیبل کے بعد لاگو کیا جاتا ہے۔
/* 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 بمقابلہ px: em میں letter-spacing font-size تبدیل ہونے پر اسکیل ہوتا ہے اور قابل رسائی کے لیے ترجیح دی جاتی ہے۔ px اسکیل نہیں ہوتا اور براؤزر کے متن کو زوم کرنے پر عدم مطابقت پیدا کر سکتا ہے۔ سفارش: letter-spacing کے لیے ہمیشہ em استعمال کریں۔ استثنا وہ حالات ہیں جہاں ٹریکنگ سائز سے آزاد رہ کر固定 رہنی چاہیے، جیسے لوگو میں۔
letter-spacing کو متحرک کرنا: پراپرٹی CSS ٹرانزیشن اور اینیمیشن کو سپورٹ کرتی ہے، جو متن کے ظاہر ہونے کے ہموار اثرات پیدا کرنے کی اجازت دیتی ہے۔ سرخی لوڈ ہونے پر letter-spacing: -0.05em سے letter-spacing: 0.01em تک اینیمیشن جدید انٹرفیس میں ایک مشہور تکنیک ہے۔ کارکردگی: letter-spacing کو اینیمیٹ کرنے سے ری فلو (لے آؤٹ دوبارہ حساب) ہوتا ہے کیونکہ یہ متن کی چوڑائی تبدیل کرتا ہے۔ جہاں ممکن ہو، اعلیٰ کارکردگی والی اینیمیشن کے لیے transform اور opacity استعمال کریں۔
ٹریکنگ بصارت سے محروم اور ڈسلیکسیا والے صارفین کے لیے متن کی پڑھنے کی اہلیت کو براہ راست متاثر کرتی ہے۔ WCAG 2.2 رہنما خط 1.4.12 (متن کا فاصلہ) تقاضا کرتا ہے کہ حروف، سطروں اور پیراگراف کے درمیان فاصلہ مخصوص اقدار تک بڑھانے پر متن مواد نہ کھوئے۔ letter-spacing کو مواد کاٹے یا عناصر کے اوورلیپ کے بغیر 0.12em تک اضافہ برداشت کرنا چاہیے۔
ڈسلیکسیا: British Dyslexia Association کی تحقیق سے پتہ چلتا ہے کہ letter-spacing کو 0.12em تک بڑھانے سے ڈسلیکسیا والے صارفین میں پڑھنے کی رفتار 10–15% بہتر ہوتی ہے۔ تاہم، یہ انفرادی ہے — کچھ صارفین معیاری فاصلہ ترجیح دیتے ہیں۔ iOS اور Android حروف کے درمیان فاصلہ بڑھانے کے لیے سسٹم قابل رسائی سیٹنگز فراہم کرتے ہیں جن کا ایپلیکیشن کو احترام کرنا چاہیے۔
ڈویلپر کے لیے اصول: فکسڈ چوڑائی/اونچائی استعمال نہ کریں جو letter-spacing بڑھنے پر ٹوٹ سکتی ہیں۔ قابل رسائی تصدیق کے بغیر ٹیکسٹ کنٹینر پر overflow: hidden سے گریز کریں۔ تمام اسکرینوں پر 0.12em تک بڑھے ہوئے letter-spacing کے ساتھ انٹرفیس کی جانچ کریں۔ اگر ڈیزائن ٹوٹ جاتا ہے تو قابل رسائی کو نظر انداز کرنے کے بجائے لے آؤٹ پر نظر ثانی کریں۔
پلیٹ فارم سپورٹ: iOS خود بخود letter-spacing بڑھاتا ہے جب قابل رسائی سیٹنگز میں بڑا متن کی خصوصیت فعال ہوتی ہے، اگر UIFont.preferredFont استعمال کیا جائے۔ Android FontScale کے ذریعے اسی طرح کا آپشن فراہم کرتا ہے۔ ڈویلپر کو ان سیٹنگز کو غیر فعال نہیں کرنا چاہیے۔ ٹیسٹ منظر نامہ: ڈیوائس سیٹنگز میں زیادہ سے زیادہ ٹیکسٹ سائز فعال کریں اور تصدیق کریں کہ ٹریکنگ انٹرفیس لے آؤٹ کو نہیں توڑتی۔
اکثر پوچھے گئے سوالات
iOS میں، .kern = nil کا مطلب فونٹ ٹیبل سے ڈیفالٹ کرننگ ہے۔ .kern = 0 کرننگ کو غیر فعال کرتا ہے۔ .kern = کوئی بھی نمبر ٹریکنگ ہے، جو کرننگ ٹیبل کے اوپر شامل کی جاتی ہے۔ Android میں، letterSpacing ہمیشہ ٹریکنگ ہے۔
بڑے حروف (ALL CAPS) والے متن کے لیے، 0.05–0.15em مثبت ٹریکنگ استعمال کریں۔ بڑے حروف میں اوپر اور نیچے کی توسیع نہیں ہوتی اور وہ بصری طور پر مل جاتے ہیں۔ iOS پر: 14–18pt بڑے حروف کے لیے .kern = 1–2pt۔
ہاں۔ CSS پراپرٹی letter-spacing منفی اقدار کو سپورٹ کرتی ہے۔ کم از کم قدر براؤزر سے محدود ہے — عام طور پر -0.1em، جس کے بعد حروف اوورلیپ ہونے لگتے ہیں۔ منفی ٹریکنگ صرف 24pt سے سرخیوں کے لیے استعمال کریں۔
ٹریکنگ اسکرول کے دوران FPS کو براہ راست متاثر نہیں کرتی۔ تاہم، CSS میں letter-spacing تبدیل کرنے سے ری فلو ہوتا ہے کیونکہ یہ متن کے بلاک کی چوڑائی تبدیل کرتا ہے۔ ٹریکنگ اینیمیشن کے لیے، جہاں ممکن ہو letter-spacing کو براہ راست تبدیل کرنے کے بجائے transform استعمال کریں۔
براؤزر ٹولز یا قابل رسائی سیٹنگز کے ذریعے letter-spacing کو 0.12em تک بڑھائیں۔ تصدیق کریں کہ متن کٹا نہیں ہے، پڑوسی عناصر پر اوورلیپ نہیں ہوتا، اور کنٹینر سے باہر نہیں نکلتا۔ کسی بھی سیٹنگ میں مواد غائب نہیں ہونا چاہیے۔
خلاصہ
ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے
IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔
مزید پڑھیں