Introduction to Gurmukhi Script
Gurmukhi is the official script of Punjabi in Indian Punjab and the script of Sikh scripture — a distinct writing tradition from the Perso-Arabic Shahmukhi used for Punjabi in Pakistan. Like other Brahmic scripts it pairs consonants carrying an inherent vowel with dependent vowel signs and marks, but unlike Devanagari it has no continuous headline, and its everyday complexity comes from mark placement and subjoined (pairī) forms rather than tall conjunct stacks.
Gurmukhi is the primary script for Punjabi in India. Like other Brahmic scripts, it uses consonants with an inherent vowel, plus dependent vowel signs (mātrās) and other marks.
- No continuous headline (shirorekha). Many letters have top strokes, but they do not form one unbroken bar across the word.
- Everyday Punjabi uses fewer tall conjunct stacks. Common complexity comes from mark placement and pairī letters (subjoined forms).
- Marks drive legibility. If marks collide or become ambiguous at small sizes, readability drops fast.
- Incorrect placement/reordering of ਿ (sihārī).
- Addak ੱ colliding with top vowels (ੇ, ੈ, ੋ, ੌ).
- Dot marks (ਂ bindi, ੰ tippi, ਼ nukta) becoming too tiny or crashing into neighbors.
- Below vowels (ੁ/ੂ) getting clipped in UI due to tight line-height/containers.
Even without a continuous headline, it helps to think in zones: a core body band plus reserved space above and below for marks. This makes it easier to debug collisions and to set sane line spacing.
- Baseline: the primary alignment line. If glyphs have inconsistent "sit," paragraphs look uneven.
- Ascender zone: top vowel signs, addak, and dots often live here; fonts need headroom to avoid line-to-line clashes.
- Descender zone: below vowels need room; UI clipping often happens here.
Consonants carry an inherent vowel by default. To change the vowel, Gurmukhi uses dependent vowel signs (mātrās) that attach around the consonant: right side, above, below, and sometimes to the left.
- You type consonant + ਿ in Unicode order.
- It renders visually to the left of the consonant.
- That reordering is done by the shaping engine + font rules. If shaping is missing, ਿ may appear on the right or collide badly.
Addak indicates the following consonant is doubled (geminated). It sits in the upper zone and must remain distinct from both top vowels and dot marks.
Punjabi uses bindi/tippi as nasalization marks. Typography-wise the big goals are dot visibility at text sizes, consistent placement, and collision handling with top vowels/addak.
Nukta extends the script for certain Persian/Arabic sounds. Unicode includes dedicated letters like ਖ਼ ਗ਼ ਜ਼ ਫ਼, and many fonts also support "base + nukta" sequences. Either way, nukta placement must not sink into the baseline or turn into noise at small sizes.
Punjabi does use clusters, but common complexity is pairī (subjoined) forms rather than huge vertical stacks. These are typically encoded using virama (੍), and then shaped by the font/engine into compact subjoined forms.
| Character | Unicode | Why it matters |
|---|---|---|
| ੍ | U+0A4D | Virama — encodes clusters; enables pairī forms when followed by another consonant. |
| ਿ | U+0A3F | Vowel sign I (sihārī) — typed after but rendered to the left (reordering). |
| ੁ | U+0A41 | Vowel sign U — below-base; frequent UI clipping/collision risk. |
| ੂ | U+0A42 | Vowel sign UU — below-base; needs descender space. |
| ੇ | U+0A47 | Top vowel; can collide with addak/dots in tight leading. |
| ੈ | U+0A48 | Top vowel; same collision concerns. |
| ੋ | U+0A4B | Top+right vowel; sensitive to tight tracking. |
| ੌ | U+0A4C | Top+right vowel; sensitive to tight tracking. |
| ਂ | U+0A02 | Bindi — dot visibility/placement consistency. |
| ੰ | U+0A70 | Tippi — dot visibility/placement consistency. |
| ੱ | U+0A71 | Addak — must sit cleanly above without collisions. |
| ਼ | U+0A3C | Nukta — borrowed sounds; check both dedicated letters and base+nukta sequences. |
ਿ looks "on the wrong side"
Addak/dots collide with top vowels
Bottom marks clipped in UI
- GSUB: pairī forms, contextual alternates if your design needs them.
- GPOS: anchors for all vowel signs; mark-to-mark for stacking (top vowel + dot + addak).
- Metrics: headroom for addak + top vowels; depth for below vowels; avoid UI clipping.
- Cross-engine QA: Chrome/Firefox/Safari, Windows DirectWrite apps, Android, plus at least one Adobe app.