Tracking — είναι η ομοιόμορφη αλλαγή του διαστήματος μεταξύ χαρακτήρων σε ολόκληρο το επιλεγμένο τμήμα κειμένου, σε αντίθεση με το kerning, το οποίο διορθώνει την απόσταση μεταξύ συγκεκριμένων ζευγών γραμμάτων. Το tracking εφαρμόζεται ίσα σε όλους τους χαρακτήρες: το θετικό tracking αυξάνει την απόσταση, το αρνητικό — τη μειώνει. Σύμφωνα με τα MDN Web Docs, στα διεπαφή ιστού το tracking υλοποιείται μέσω της ιδιότητας CSS letter-spacing, η οποία υποστηρίζει οποιεσδήποτε μονάδες μήκους και κληρονομείται από τα θυγατρικά στοιχεία.
Κύρια
Tracking (τράκινγκ, διασταθμισμός) — είναι η αλλαγή της απόστασης μεταξύ χαρακτήρων που εφαρμόζεται ομοιόμορφα σε όλους τους χαρακτήρες ενός μπλοκ κειμένου. Σε αντίθεση με το kerning, όπου κάθε ζεύγος χαρακτήρων λαμβάνει μια εξατομικευμένη διόρθωση βάσει του πίνακα kerning της γραμματοσειράς, το tracking καθορίζεται από μια ενιαία αριθμητική τιμή για ολόκληρο το εύρος. Το θετικό tracking αυξάνει το διάστημα (διασταθμισμός), το αρνητικό — το μειώνει (σύσφιξη).
Ο όρος προέρχεται από τη μεταλλική τυπογραφία, όπου το διάστημα μεταξύ χαρακτήρων ρυθμιζόταν από τη φυσική απόσταση μεταξύ των τυπογραφικών στοιχείων. Στην ψηφιακή τυπογραφία, το tracking εφαρμόζεται πάνω από τον πίνακα kerning: πρώτα η γραμματοσειρά εφαρμόζει τα ενσωματωμένα ζεύγη kerning, στη συνέχεια το σύστημα προσθέτει ομοιόμορφο tracking σε όλους τους χαρακτήρες. Το τελικό διάστημα = kerning + tracking, κάτι που πρέπει να λαμβάνεται υπόψη σε επιθετική σύσφιξη.
Μονάδες μέτρησης: το tracking μπορεί να οριστεί σε απόλυτες μονάδες (στιγμές, pixel, χιλιοστά) και σε σχετικές (em, ποσοστό του μεγέθους γραμματοσειράς). Στην ανάπτυξη εφαρμογών για κινητά, το tracking ρυθμίζεται συνήθως σε στιγμές (iOS) ή sp (Android) ως απόλυτες τιμές, και στον ιστό — σε em ως σχετικές. Οι σχετικές μονάδες είναι προτιμητέες για προσβασιμότητα, καθώς κλιμακώνονται όταν ο χρήστης αλλάζει το μέγεθος γραμματοσειράς.
Η σύγχυση μεταξύ του tracking και του kerning — ένα από τα πιο συνηθισμένα λάθη των αρχάριων σχεδιαστών και προγραμματιστών. Το kerning λειτουργεί σε μικροεπίπεδο — διορθώνει το διάστημα μεταξύ συγκεκριμένων ζευγών χαρακτήρων (AV, Te, To) βάσει της γεωμετρίας τους. Το tracking λειτουργεί σε μακροεπίπεδο — μετατοπίζει ομοιόμορφα όλους τους χαρακτήρες του τμήματος, χωρίς να λαμβάνει υπόψη το σχήμα τους.
Οπτικό αποτέλεσμα: στο kerning, οι αποστάσεις μεταξύ διαφορετικών ζευγών χαρακτήρων διαφέρουν — μεταξύ A και V είναι μικρότερη από ό,τι μεταξύ A και I, επειδή τα σχήματα των γραμμάτων αντισταθμίζουν το ένα το άλλο. Στο tracking, όλες οι αποστάσεις είναι ίδιες — μεταξύ A και V, A και I, T και o — παντού η ίδια μετατόπιση. Αυτό κάνει το tracking εργαλείο συνολικής ρύθμισης και το kerning εργαλείο λεπτής ρύθμισης.
Συνδυασμένη χρήση: στην τυπογραφία διεπαφών, το tracking και το kerning εφαρμόζονται μαζί. Η γραμματοσειρά περιέχει έναν πίνακα kerning για βασική βελτιστοποίηση, και ο προγραμματιστής προσθέτει tracking για στυλιστική ή προσβασιμότητα. Ο πίνακας kerning εφαρμόζεται πρώτα, στη συνέχεια το tracking προστίθεται πάνω του. Σε αρνητικό tracking (σύσφιξη), τα ζεύγη kerning μπορούν να δημιουργήσουν ανεπιθύμητες επικαλύψεις — ελέγξτε τους προβληματικούς συνδυασμούς.
| Χαρακτηριστικό | Kerning | Tracking |
|---|---|---|
| Περιοχή | Ζεύγη χαρακτήρων | Ολόκληρο το κείμενο |
| Τιμή | Εξατομικευμένη για κάθε ζεύγος | Ενιαία για όλους τους χαρακτήρες |
| Σκοπός | Οπτική ομοιομορφία | Ρύθμιση πυκνότητας |
| Ορατότητα | Σε τίτλους από 24pt | Σε όλα τα μεγέθη |
| Ιδιότητα iOS | .kern (nil ή 0) | .kern (αριθμητική τιμή) |
Θετικό tracking (διασταθμισμός) αυξάνει την απόσταση μεταξύ χαρακτήρων. Εφαρμόζεται για βελτίωση της αναγνωσιμότητας μικρού κειμένου (10–13pt), όπου οι χαρακτήρες συγχωνεύονται οπτικά στην τυπική απόσταση. Επίσης χρησιμοποιείται στην προσβασιμότητα για χρήστες με δυσλεξία — η αυξημένη απόσταση μεταξύ χαρακτήρων διευκολύνει την αναγνώριση γραμμάτων. Τυπικές τιμές: 0.3–1pt για iOS, 0.02–0.05em για τον ιστό.
Αρνητικό tracking (σύσφιξη) μειώνει την απόσταση μεταξύ χαρακτήρων. Εφαρμόζεται σε τίτλους (από 24pt) και εμφατικό κείμενο, όπου η πυκνή στοιχειοθεσία φαίνεται συνεκτική και σύγχρονη. Τα μεγάλα μεγέθη γραμματοσειράς ανέχονται καλά τη σύσφιξη, καθώς οι αποστάσεις μεταξύ χαρακτήρων είναι οπτικά μεγάλες. Τυπικές τιμές: από -0.3 έως -1pt. Περιορισμός: σε tracking μικρότερο από -1pt, οι χαρακτήρες μπορούν να επικαλυφθούν, ειδικά σε ζεύγη με εξέχοντα στοιχεία (fi, fj, TT).
Εμπειρικός κανόνας: για κάθε μέγεθος γραμματοσειράς υπάρχει ένα εύρος επιτρεπόμενου tracking. Όσο μεγαλύτερη είναι η γραμματοσειρά, τόσο λιγότερο tracking απαιτείται για βέλτιστη αναγνωσιμότητα. Τύπος: βέλτιστο tracking ≈ font-weight * 0.01 – font-size * 0.001. Για έντονη γραμματοσειρά (weight 700) 16pt: 700 * 0.01 – 16 * 0.001 = 6.84, που με διόρθωση για τον τύπο γραμματοσειράς δίνει περίπου 0.5pt θετικό tracking.
Κύριο κείμενο (14–18pt): το tracking δεν απαιτείται ή είναι ελάχιστο θετικό 0.1–0.3pt. Οι επαγγελματικές γραμματοσειρές ήδη περιέχουν βέλτιστες αποστάσεις για το κύριο κείμενο. Κάθε παρέμβαση στο tracking του κύριου κειμένου πρέπει να δικαιολογείται από απαιτήσεις σχεδίασης ή προσβασιμότητας. Τίτλοι (20–36pt): επιτρεπόμενο αρνητικό tracking από -0.3 έως -0.8pt ανάλογα με τον τύπο γραμματοσειράς και το βάρος. Κεφαλαία (ALL CAPS): συνιστάται θετικό tracking 0.5–2pt, καθώς τα κεφαλαία συγχωνεύονται οπτικά χωρίς πρόσθετο διάστημα.
Ιδιαιτερότητες γραμματοσειρών: οι γραμματοσειρές με γροτέσκα γεωμετρία (Helvetica, Inter, SF Pro) ανέχονται καλύτερα το αρνητικό tracking από ό,τι οι αντικβαίες γραμματοσειρές με ακμές (Times, Georgia, PT Serif). Στις αντικβαίες γραμματοσειρές, οι ακμές δημιουργούν πρόσθετη οπτική σύνδεση μεταξύ γραμμάτων, και η σύσφιξη καθιστά το κείμενο δυσανάγνωστο. Για αντικβαίες γραμματοσειρές συνιστάται μόνο θετικό tracking.
Σε iOS, το tracking υλοποιείται μέσω της ίδιας ιδιότητας .kern στο NSAttributedString όπως και το kerning, αλλά με μια διαφορά: για το tracking καθορίζεται μια αριθμητική τιμή διαφορετική από nil. nil — προεπιλεγμένο kerning (από τον πίνακα της γραμματοσειράς), 0 — απενεργοποίηση kerning, οποιοσδήποτε άλλος αριθμός — tracking πάνω από τον πίνακα kerning. Αυτό σημαίνει ότι κατά τη ρύθμιση .kern = 2, όλοι οι χαρακτήρες λαμβάνουν +2pt διάστημα μεταξύ χαρακτήρων πάνω από τα ενσωματωμένα ζεύγη kerning.
let text = "Heading with tracking"
let attributedString = NSMutableAttributedString(string: text)
// Θετικό tracking +0.8pt
attributedString.addAttribute(
.kern,
value: 0.8,
range: NSRange(
location: 0,
length: text.count
)
)
// Ετικέτα UILabel με tracking
label.attributedText = attributedString
SwiftUI χρησιμοποιεί τον τροποποιητή .tracking() για Text, ο οποίος δέχεται CGFloat. Σε αντίθεση με το UIKit, το tracking στο SwiftUI εφαρμόζεται σε ολόκληρο το κείμενο εντός του τροποποιητή και δεν μπορεί να είναι μερικό χωρίς διαίρεση σε πολλά μπλοκ Text. Το SwiftUI διαχειρίζεται αυτόματα τον συνδυασμό kerning και tracking, εφαρμόζοντας το tracking πάνω από τον πίνακα kerning της γραμματοσειράς.
Android χρησιμοποιεί την ιδιότητα letterSpacing στο TextView, η οποία ορίζεται σε em (πολλαπλασιαστής ως προς το μέγεθος γραμματοσειράς). Τιμή 0 — προεπιλεγμένο tracking, 0.05 — αύξηση 5% του em, -0.02 — μείωση. Στο Android, το letterSpacing λειτουργεί ως tracking (ομοιόμορφα για όλους τους χαρακτήρες), και ο πίνακας kerning της γραμματοσειράς εφαρμόζεται αυτόματα στο επίπεδο της μηχανής απόδοσης 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 χρησιμοποιεί την παράμετρο letterSpacing στο TextStyle, που ορίζεται σε sp. Για παράδειγμα, το TextStyle(letterSpacing = 0.5.sp) δίνει tracking 0.5 sp. Σε αντίθεση με την προσέγγιση XML, το Compose επιτρέπει τον συνδυασμό letterSpacing με άλλες τυπογραφικές παραμέτρους σε ένα ενιαίο αντικείμενο TextStyle, απλοποιώντας τη δημιουργία συστημάτων σχεδίασης.
Στον ιστό, το tracking υλοποιείται μέσω της ιδιότητας CSS letter-spacing, η οποία δέχεται οποιεσδήποτε μονάδες μήκους ή τη λέξη κλειδί normal. Η τιμή normal αντιστοιχεί σε 0 (χωρίς πρόσθετο διάστημα μεταξύ χαρακτήρων). Η ιδιότητα κληρονομείται, υποστηρίζει αρνητικές τιμές και μπορεί να πραγματοποιηθεί με animation. Σύμφωνα με το CSS Specification, το letter-spacing εφαρμόζεται μετά τον πίνακα kerning της γραμματοσειράς.
/* 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 και είναι προτιμητέο για προσβασιμότητα. Το px δεν κλιμακώνεται και μπορεί να οδηγήσει σε αναντιστοιχίες κατά τη μεγέθυνση κειμένου από το πρόγραμμα περιήγησης (Zoom). Σύσταση: χρησιμοποιείτε πάντα em για το letter-spacing. Εξαίρεση — περιπτώσεις όπου το tracking πρέπει να παραμείνει σταθερό ανεξάρτητα από το μέγεθος γραμματοσειράς, για παράδειγμα, σε λογότυπα.
Animation letter-spacing: η ιδιότητα υποστηρίζει CSS transitions και animations, επιτρέποντας τη δημιουργία ομαλών εφέ εμφάνισης κειμένου. Η ενεργοποίηση από letter-spacing: -0.05em σε letter-spacing: 0.01em κατά τη φόρτωση ενός τίτλου — μια δημοφιλής τεχνική σε σύγχρονες διεπαφές. Απόδοση: το animation του letter-spacing προκαλεί reflow (επανυπολογισμό layout), καθώς αλλάζει το πλάτος του μπλοκ κειμένου. Χρησιμοποιείτε transform και opacity για animations υψηλής απόδοσης όπου είναι δυνατό.
Το tracking επηρεάζει άμεσα την αναγνωσιμότητα του κειμένου για χρήστες με οπτικές αναπηρίες και δυσλεξία. Το WCAG 2.2 Guideline 1.4.12 (Text Spacing) απαιτεί το κείμενο να μην χάνει περιεχόμενο κατά την αύξηση των διαστημάτων μεταξύ χαρακτήρων, μεταξύ γραμμών και μεταξύ παραγράφων μέχρι ορισμένες τιμές. Το letter-spacing πρέπει να αντέχει την αύξηση μέχρι 0.12em χωρίς κοπή περιεχομένου και επικάλυψη στοιχείων.
Δυσλεξία: έρευνες της British Dyslexia Association δείχνουν ότι η αύξηση του letter-spacing σε 0.12em βελτιώνει την ταχύτητα ανάγνωσης σε χρήστες με δυσλεξία κατά 10–15%. Ωστόσο, αυτό είναι ατομικό — ορισμένοι χρήστες προτιμούν το τυπικό διάστημα. Τα iOS και Android παρέχουν ρυθμίσεις προσβασιμότητας σε επίπεδο συστήματος για αύξηση του διαστήματος μεταξύ χαρακτήρων, τις οποίες η εφαρμογή πρέπει να σέβεται.
Κανόνες για τον προγραμματιστή: μην χρησιμοποιείτε σταθερά πλάτη/ύψη που μπορούν να σπάσουν κατά την αύξηση του letter-spacing. Αποφύγετε το overflow: hidden σε δοχεία με κείμενο χωρίς έλεγχο προσβασιμότητας. Δοκιμάστε τη διεπαφή με αυξημένο letter-spacing σε 0.12em σε όλες τις οθόνες. Αν το σχέδιο σπάσει — αναθεωρήστε το layout, μην αγνοείτε την προσβασιμότητα.
Υποστήριξη πλατφόρμας: το iOS αυξάνει αυτόματα το letter-spacing όταν είναι ενεργοποιημένη η λειτουργία Μεγαλύτερο Κείμενο στις ρυθμίσεις προσβασιμότητας, αν χρησιμοποιείται UIFont.preferredFont. Το Android παρέχει παρόμοια επιλογή μέσω FontScale. Ο προγραμματιστής δεν πρέπει να απενεργοποιεί αυτές τις ρυθμίσεις. Σενάριο δοκιμής: ενεργοποιήστε το μέγιστο μέγεθος κειμένου στις ρυθμίσεις της συσκευής και ελέγξτε ότι το tracking δεν χαλάει το layout της διεπαφής.
Συχνές ερωτήσεις
Σε iOS .kern = nil — προεπιλεγμένο kerning από τον πίνακα γραμματοσειράς. .kern = 0 — απενεργοποίηση kerning. .kern = οποιοσδήποτε αριθμός — tracking που προστίθεται πάνω από τον πίνακα kerning. Σε Android, το letterSpacing είναι πάντα tracking.
Για κείμενο με κεφαλαία (ALL CAPS) χρησιμοποιήστε θετικό tracking 0.05–0.15em. Τα κεφαλαία δεν έχουν εξέχοντα στοιχεία και συγχωνεύονται οπτικά. Σε iOS: .kern = 1–2pt για κεφαλαία 14–18pt.
Ναι. Η ιδιότητα CSS letter-spacing υποστηρίζει αρνητικές τιμές. Η ελάχιστη τιμή περιορίζεται από το πρόγραμμα περιήγησης — συνήθως -0.1em, μετά το οποίο οι χαρακτήρες αρχίζουν να επικαλύπτονται. Χρησιμοποιήστε αρνητικό tracking μόνο για τίτλους από 24pt.
Το tracking δεν επηρεάζει άμεσα το FPS κατά την κύλιση. Ωστόσο, η αλλαγή του letter-spacing στο CSS προκαλεί reflow, καθώς αλλάζει το πλάτος του μπλοκ κειμένου. Για animations tracking χρησιμοποιήστε transform αντί για άμεση αλλαγή του letter-spacing όπου είναι δυνατό.
Αυξήστε το letter-spacing σε 0.12em μέσω εργαλείων προγράμματος περιήγησης ή ρυθμίσεων προσβασιμότητας. Ελέγξτε ότι το κείμενο δεν κόβεται, δεν επικαλύπτει γειτονικά στοιχεία και δεν βγαίνει από το δοχείο. Το περιεχόμενο δεν πρέπει να εξαφανίζεται σε καμία ρύθμιση.
Σύνοψη
Θα αναπτύξουμε μια εφαρμογή για κινητά έτοιμη για χρήση
Η IT Sectr δημιουργεί εφαρμογές iOS και Android για νεοφυείς επιχειρήσεις και επιχειρήσεις από το 2017. Θα σας συμβουλεύσουμε και θα προτείνουμε την καλύτερη λύση.
Διαβάστε επίσης