Updated 11 November, 2023
This page brings together basic information about the Gurmukhi script and its use for the Punjabi language. It aims to provide a brief, descriptive summary of the modern, printed orthography and typographic features, and to advise how to write Punjabi using Unicode.
Richard Ishida, Punjabi (Gurmukhi) Orthography Notes, 11-Nov-2023, https://r12a.github.io/scripts/guru/pa
ਆਰਟੀਕਲ: 1 ਸਾਰਾ ਮਨੁੱਖੀ ਪਰਿਵਾਰ ਆਪਣੀ ਮਹਿਮਾ, ਸ਼ਾਨ ਅਤੇ ਹੱਕਾਂ ਦੇ ਪੱਖੋਂ ਜਨਮ ਤੋਂ ਹੀ ਆਜ਼ਾਦ ਹੈ ਅਤੇ ਸੁਤੇ ਸਿੱਧ ਸਾਰੇ ਲੋਕ ਬਰਾਬਰ ਹਨ । ਉਨ੍ਹਾਂ ਸਭਨਾ ਨੂੰ ਤਰਕ ਅਤੇ ਜ਼ਮੀਰ ਦੀ ਸੌਗਾਤ ਮਿਲੀ ਹੋਈ ਹੈ ਅਤੇ ਉਨ੍ਹਾਂ ਨੂੰ ਭਰਾਤਰੀਭਾਵ ਦੀ ਭਾਵਨਾ ਰਖਦਿਆਂ ਆਪਸ ਵਿਚ ਵਿਚਰਣਾ ਚਾਹੀਦਾ ਹੈ ।
ਆਰਟੀਕਲ: 2 ਹਰੇਕ ਵਿਅਕਤੀ ਨੂੰ ਭਾਵੇਂ ਉਸ ਦੀ ਕੋਈ ਨਸਲ, ਰੰਗ, ਲਿੰਗ, ਭਾਸ਼ਾ, ਧਰਮ, ਰਾਜਨੀਤਕ ਵਿਚਾਰਧਾਰਾ ਜਾਂ ਕੋਈ ਹੋਰ ਵਿਚਾਰਧਾਰਾ ਹੋਏ, ਭਾਵੇਂ ਉਸ ਦੀ ਕੋਈ ਵੀ ਜਾਇਦਾਦ ਹੋਵੇ ਅਤੇ ਭਾਵੇਂ ਉਸ ਦਾ ਕਿਤੇ ਵੀ ਜਨਮ ਹੋਇਆ ਹੋਵੇ ਤੇ ਉਸਦਾ ਕੋਈ ਵੀ ਰੁਤਬਾ ਹੋਵੇ, ਉਹ ਐਲਾਨਨਾਮੇ ਵਿਚ ਮਿਲੇ ਅਧਿਕਾਰਾਂ ਤੇ ਆਜ਼ਾਦੀਆਂ ਨੂੰ ਪ੍ਰਾਪਤ ਕਰਨ ਦਾ ਹੱਕ ਰਖਦਾ ਹੈ । ਇਸ ਤੋਂ ਵੀ ਅੱਗੇ ਇਸ ਗੱਲ ਦਾ ਕੋਈ ਭੇਦ ਭਾਵ ਨਹੀਂ ਰਖਿਆ ਜਾਏਗਾ ਕਿ ਉਹ ਵਿਅਕਤੀ ਕਿਹੜੇ ਮੁਲਕ ਦਾ ਹੈ ਅਤੇ ਉਸ ਮੁਲਕ ਦਾ ਅੰਤਰਰਾਸ਼ਟਰੀ ਰੁਤਬਾ ਕਿਹੋ ਜਿਹਾ ਹੈ । ਇਸ ਗੱਲ ਦਾ ਵੀ ਖਿਆਲ ਨਹੀਂ ਰਖਿਆ ਜਾਏਗਾ ਕਿ ਉਹ ਵਿਅਕਤੀ ਕਿਸੇ ਆਜ਼ਾਦ ਮੁਲਕ ਦਾ ਹੈ, ਜਾਂ ਉਹ ਮੁਲਕ ਕਿਸੇ ਟਰੱਸਟ ਅਧੀਨ ਹੈ ਜਾਂ ਉਸ ਦਾ ਆਪਣਾ ਸਵੈਸ਼ਾਸਨ ਨਹੀਂ ਅਤੇ ਜਾਂ ਉਹ ਕਿਸੇ ਅਜਿਹੇ ਇਲਾਕੇ ਵਿਚ ਰਹਿੰਦਾ ਹੈ ਜਿਸ ਦੀ ਪ੍ਰਭੂਸੱਤਾ ਸੀਮਤ ਹੈ ।
The Gurmukhi script is used in the Punjab in India, where it is the official script of the Punjabi language. The original Sikh scriptures and most of the historic Sikh literature were written in the Gurmukhi script.
Muslim speakers of Punjabi in Pakistan use a Persian version of the Arabic script (called shahmukhi).
The current form of Gurmukhi was developed in the 16th century by Guru Angad, successor to the founder of the Sikh religion, Guru Nanak. It's roots lie in the historical Brahmi script.
Sources: Scriptsource and Wikipedia.
The Gurmukhi script is an abugida, ie. consonants carry an inherent vowel sound that is overridden using vowel signs. See the table to the right for a brief overview of features for the modern Panjabi orthography.
Gurmukhi text runs left to right in horizontal lines.
Words are separated by spaces.
Gujarati uses 32 consonant letters. The repertoire can be extended by applying the nukta diacritic to 5 characters, to represent foreign sounds, particularly for words from Persian. ❯ consonants
A final h can be indicated using the visarga, but otherwise final consonants are written using ordinary characters. ❯ finals
Although consonant clusters are frequent, there are very few conjuncts, mostly just r and h, which are subjoined. This leads to difficulties for automatic transcription. ❯ clusters
Consonant gemination is indicated, unusually for an Indian script, by a special diacritic that appears before the letter being lengthened. ❯ clength
This orthography is an abugida with one inherent vowel. It represents other vowels using 9 vowel signs, which are all combining marks. The inherent vowel is usually not pronounced at the end of a word, however there is often a ghost ᵊ. ❯ vowels
Punjabi has 1 pre-base vowel and no circumgraphs. A single Unicode character is used per base consonant, so there are no multipart vowels.
Standalone vowel sounds are represented by 10 independent vowels, one for each vowel sound, including the inherent vowel. There are no unique shapes for independent vowels. Instead vowel signs are added to one of three consonants that are used only as vowel carriers, however Unicode provides separate code points for all the combinations and deprecates the use of 2 of the carriers. ❯ standalone
There are two diacritics for nasalisation, tippi and bindi, each used in different phonetic contexts. ❯ nasalisation
Punjabi is a tonal language. Tones are normally indicated by the use of certain consonants, rather than diacritics. ❯ tones
Gurmukhi has its own set of native digits, however modern text tends to use ASCII digits. ❯ numbers
Punctuation is mostly western, but dandas are used for sentence and verse final punctuation.
These are sounds of the Punjabi language.
Click on the sounds to reveal locations in this document where they are mentioned.
Phones in a lighter colour are non-native or allophones. Source Wikipedia.
|stops||p b||t d||ʈ ɖ||k ɡ|
|fricatives||f v||s z||ʃ||x ɣ||ɦ|
Note that Punjabi has no voiced aspirated stops. The letters for these sounds do exist in Gurmukhi, but are redirected to indicate tone.
The following summary is from Wikipediawl.
The three retroflex consonants /ɳ, ɽ, ɭ/ do not occur initially, and the nasals /ŋ, ɲ/ occur only as allophones of /n/ in clusters with velars and palatals.
The well-established phoneme /ʃ/ may be realised allophonically as the voiceless retroflex fricative /ʂ/ in learned clusters with retroflexes.
The phonemic status of the fricatives /f, z, x, ɣ/ varies with familiarity with Hindustani norms, more so with the Gurmukhi script, with the pairs /f, pʰ/, /z, d͡ʒ/, /x, kʰ/, and /ɣ, g/ systematically distinguished in educated speech.
The retroflex lateral is most commonly analysed as an approximant as opposed to a flap.
Gurmukhi uses spaces to separate text into words. The inherent vowel is usually not pronounced at the end of a word, however there is often a ghost sound ᵊ, eg.
Gurmukhi tends to use independent vowels rather than semi-vowels for sequences of vowel sounds, eg.
Punjabi is a tonal language with three tones: high (transcribed as á), low (transcribed as à), and level (not transcribed). The tones cover one or two syllables.d
About 75% of words have a level tone.wl,#Tone
Sometimes these are described as contour tones: high rising falling, and low rising.
In some respects there appears to be a lack of clarity about the fine detail of how the tonal system works.b
The right-hand column shows standalone vowels.
For additional details see vowel_mappings.
ਕ kə U+0A15 GURMUKHI LETTER KA
ə following a consonant is not written, but is seen as an inherent part of the consonant letter, so kə is written by simply using the consonant letter. The sound is transcribed as a.
ਕੀ ki U+0A15 GURMUKHI LETTER KA + U+0A40 GURMUKHI VOWEL SIGN II
Punjabi uses the following dedicated combining marks for vowels.
Vowels ɪ and ʊ tend to be pronounced differently in certain contexts. Followed by ਹ [U+0A39 GURMUKHI LETTER HA] they become the high tone éː and óː, respectively,d, eg.
The combination of an inherent vowel followed by ਹ [U+0A39 GURMUKHI LETTER HA] and then one of these 2 letters produces ɛ́ː and ɔ́ː, respectivelyd, eg.
Three of the vowel signs are spacing marks, meaning that they consume horizontal space when added to a base consonant.
All vowel signs are typed and stored after the base consonant, whether or not they precede it when displayed, and the rendering process puts them in the correct place for display.
An orthography that uses vowel signs is different from one that uses simple diacritics or letters for vowels, in that the vowel signs are generally rendered relative to an orthographic syllable, rather than just applied to the letter of the immediately preceding consonant (see prebase for an example).
Two more combining marks are used for nasalisation (see nasalisation).
Gurmukhi represents standalone vowels using a set of independent vowel letters. The set includes a character to represent the inherent vowel sound.
ਅ [U+0A05 GURMUKHI LETTER A] is actually classified as a null consonant with an inherent vowel.
In fact, all independent vowels in Gurmukhi are graphically a combination of one of three vowel carriers and a vowel sign.
Unicode has independent code points for the vowel carriers, but decomposed and precomposed standalone vowels are not regarded as canonically equivalent. This means that words containing decomposed sequences will not match those containing precomposed code points (unless the application does something special). In fact, Gurmukhi fonts will typically not render the decomposed sequences as expected.
Therefore, the Unicode Standard recommends the use of the precomposed characters, and says to not use two of the carrier symbols at all. ਅ [U+0A05 GURMUKHI LETTER A] is used on its own to represent ə, but should not be used in combinations, either.
ਕਿ ké U+0A15 GURMUKHI LETTER KA + U+0A3F GURMUKHI VOWEL SIGN I
One vowel sign appears to the left of the base consonant letter or cluster, eg. ਕਿ
This is a combining mark that is always stored after the base consonant. The rendering process places the glyph before the base consonant. Click on the following word to see the sequence of characters in storage.
The following list shows where vowel signs are positioned around a base consonant to produce vowels, and how many instances of that pattern there are.
At maximum, vowel components can occur concurrently on 1 side of the base.
Two separate diacritics are used to indicate nasalisation.
ੰ [U+0A70 GURMUKHI TIPPI] is used with vowels a, i, u, and with final ū, eg.
ਂ [U+0A02 GURMUKHI SIGN BINDI] is used for all other vowels, eg.
These diacritics can also signal gemination of a following m or n, eg.
Note that if a tippi is used in a location where bindi is more appropriate, some fonts may silently convert the shape to a dot.
Gurmukhi doesn't normally use tone diacritics. Instead, certain character combinations serve to indicate high and low tones. The level tone is not marked.
Five of the consonants – those nominally representing voiced, aspirated sounds in the Brahmi model – indicate changes in tone. The articulatory pronunciation is unaspirated and, when syllable-initial, unvoiced.
These letters indicate a low tone when they appear at the beginning of a word or syllable or medially between a short and long vowel, eg.
They indicate a high tone when elsewhere,o eg.
ਹ [U+0A39 GURMUKHI LETTER HA] is typically pronounced h when syllable-initial.
However, in unstressed syllables in this position it is often elided and the vowel takes on a high tone.
In non-initial positions the letter serves as a tone marker, and is not pronounced, but instead indicates that that syllable has a high tone.
After an open syllable the full letter shape is used, but if the syllable has a coda, this letter appears subjoined below the coda (see stacks).
When the letter ha follows a short i or u, it changes the vowel's phonetic value from [ɪ] and [ʊ] to [é] and [ó], respectively.
(The sound h after a vowel can be produced using ਃ [U+0A03 GURMUKHI SIGN VISARGA], but it is only rarely used.)
Observation: Wiktionary contains at least one apparent exception to the above: the word ਮੂੰਹ ends with a pronounced h.
The diacritic ੑ [U+0A51 GURMUKHI SIGN UDAAT] can also be used in older texts to indicate a high tone.
This section maps Punjabi vowel sounds to common graphemes in the Gurmukhi orthography. Click on a grapheme to find other mentions on this page (links appear at the bottom of the page). Click on the character name to see examples and for detailed descriptions of the character(s) shown.
Dependent vowels are shown to the left, and independent vowels are shown on the right
0A3F 0A39 – applies a high tone.
0A41 0A39 – with a high tone.
The inherent vowel.
0A39 0A3F – applies a high tone.
0A39 0A41 – with a high tone.
Sources: Wikipedia, and Google Translate.
ਹ can be used in combination with other consonants to indicate tone. Those combinations are not shown here. Hyphens indicate consonants that play a role in tone marking, depending on the position in the word.
For more details see consonant_mappings.
Gurmukhi has a set of consonants that mostly map onto the traditional Brahmi phonetic matrix, though not all are used for articulatory distinctions.
ਅ [U+0A05 GURMUKHI LETTER A] is also classified as a null consonant and is described in standalone.
਼ [U+0A3C GURMUKHI SIGN NUKTA] is used to represent foreign sounds, particularly for words taken from Persian, eg. in the following example the dot changes ਗ ɡ to ਗ਼ ɣ and ਜ s to ਜ਼ z
The following graphemes combine nukta with an existing consonant.
The nukta should always be typed and stored immediately after the consonant it modifies, and before any combining vowels or diacritics.
ਲ਼ [U+0A32 GURMUKHI LETTER LA + U+0A3C SIGN NUKTA] is different from the other extended letters in that it represents a native Punjabi sound. This letter was only recently added to the Gurmukhī alphabet. Some sources do not consider it a separate letterws, and it may not always be written. It tends to get used in dictionaries to clarify pronunciation.
These graphemes are normally represented by decomposed sequences, and in fact that is what is produced by Unicode Normalization Form C (NFC). However, there are also a set of precomposed code points in the Unicode Gurmukhi block.
The Unicode Standard recommends not to use the precomposed code points for Gurmukhi, but instead to use the base + nukta sequences. See also encoding.
Gurmukhi uses certain characters to indicate high and low tones. These include the letters that are nominally associated with aspirated, voiced plosives (which sounds don't exist in Punjabi) and the letter ਹ [U+0A39 GURMUKHI LETTER HA].
See tones for more information.
Unlike most other indic scripts, there is generally no indication when a consonant is not pronounced with a following inherent vowel. (For the few occasions where this is made clear see clusters.) Generally speaking, the reader simply has to know whether an inherent vowel is pronounced or not, eg. ਉਤਸੁਕ
The inherent vowel is generally not pronounced at the end of a word (see the previous example), however the last letter is often followed by a ᵊ ghost, eg.
Gurmukhi can use ੍ [U+0A4D GURMUKHI SIGN VIRAMA] (called halant in Punjabi) to kill the inherent vowel after a consonant, but it is rarely seen. It isn't used at the end of a word, and is normally only used in modern Punjabi for subjoined r, ʋ (rare), and h, in which case it is invisible.
The virama may also be used occasionally to suppress the vowel in Sanskritised text, or in dictionaries for extra phonetic information.
Syllable-final consonant sounds are generally represented by ordinary consonant characters (or perhaps a conjunct with h for tonal indications). However, a final h can sometimes be represented by the visarga (ਃ [U+0A03 GURMUKHI SIGN VISARGA]).
Consonant clusters are written in one of the following ways:
See also clength.
Clusters of consonants without intervening vowel sounds are generally not marked in Gurmukhi. It is necessary to just know that the vowel should not be pronounced, eg. ਉਤਸੁਕ
Normally Gurmukhi produces stacks to indicate a consonant cluster for only 3 combinations. In each case, the second letter in the cluster appears subjoined to the first.
The character h in non-initial position is used to indicate tones (see consonant_tones). When the h follows a consonant, it is subjoined to it, eg. ਚੜ੍ਹ
Syllable-initial clusters also occur with r and occasionally v, and are also indicated using subjoined forms, eg. ਪ੍ਰਬੰਧ ਸ੍ਵਰਗ Subjoined v is much less common in modern text.
To indicate conjunct clusters in Unicode text add ੍ [U+0A4D GURMUKHI SIGN VIRAMA] before the subjoined character, eg. ਪ੍ਰ is produced by the sequence ਪ + ੍ + ਰ [U+0A2A GURMUKHI LETTER PA + U+0A4D GURMUKHI SIGN VIRAMA + U+0A30 GURMUKHI LETTER RA].
The virama may also be used occasionally to suppress the vowel in Sanskritised text, or in dictionaries for extra phonetic information.ws In some fonts subjoined forms are available for other consonant clusters, though they are not used unless the content author uses a virama.
Occasionally, a cluster ending with y is rendered using ੵ [U+0A75 GURMUKHI SIGN YAKASH], though this appears to be quite rare, eg.
ਕਲੵਚਰੈ kly̆ʧrɛ culture
Doubling or reinforcement of a consonant sound is indicated, unusually for an indic script, using a diacritic, ੱ [U+0A71 GURMUKHI ADDAK]. It is typed before the consonant (In this way it resembles the small tsu in Japanese), and is placed to the left of the consonant it affects (not over it), eg. ਪੱਕੀ
The diacritic may appear over the right side of the preceding consonant, but if that consonant has a vowel sign or extension above the horizontal topline, it may be displayed on a short extension of the joining line.
Geminated mm and nn may be written using a nasalisation diacritic associated with the preceding vowel,d eg. ਲੰਮੀ
This section maps Punjabi consonant sounds to common graphemes in the Gurmukhi orthography. Click on a grapheme to find other mentions on this page (links appear at the bottom of the page). Click on the character name to see examples and for detailed descriptions of the character(s) shown.
ਫ [U+0A2B GURMUKHI LETTER PHA]
ਥ [U+0A25 GURMUKHI LETTER THA]
ਠ [U+0A20 GURMUKHI LETTER TTHA]
ਖ [U+0A16 GURMUKHI LETTER KHA]
ਵ [U+0A35 GURMUKHI LETTER VA]
ਸ [U+0A38 GURMUKHI LETTER SA]
ਹ [U+0A39 GURMUKHI LETTER HA]
ਣ [U+0A23 GURMUKHI LETTER NNA]
ਵ [U+0A35 GURMUKHI LETTER VA] occasionally as a variant of ʋ
ਰ [U+0A30 GURMUKHI LETTER RA]
ੜ [U+0A5C GURMUKHI LETTER RRA]
ਲ [U+0A32 GURMUKHI LETTER LA]
ਯ [U+0A2F GURMUKHI LETTER YA]
Sources: Wikipedia, and Google Translate.
Gurmukhi uses a couple of religious symbols.
ੴ [U+0A74 GURMUKHI EK ONKAR] can have various different forms. Unicode classes it as a letter. The shape in the Unicode charts is highly stylised.
The other religious symbol, ☬ [U+262C ADI SHAKTI], is encoded in Unicode's Miscellaneous Symbols block.
This section offers advice about characters or character sequences to avoid, and what to use instead. It takes into account the relevance of Unicode Normalisation Form D (NFD) and Unicode Normalisation Form C (NFC).
Although usage is recommended here, content authors may well be unaware of such recommendations. Therefore, applications should look out for the non-recommended approach and treat it the same as the recommended approach wherever possible.
Visually, Gurmukhi independent vowels are written using a combination of a vowel sign attached to one of three base letters. Those combinations are encoded by the Unicode Standard as single, precomposed code points, but it is also possible to analyze the letter as using a decomposed sequence of code points: a base letter followed by a vowel sign.
The precomposed characters don't decompose when normalised using NFD, nor do the decomposed sequences change under NFC. They are therefore not treated in Unicode as canonically equivalent. The Unicode Standard recommends that the precomposed characters be used.
Many fonts (such as Noto Fonts) will display a dotted circle if the content author tries to use the decomposed sequence, but not all fonts do. Content authors who created their content with a font such as Gurmukhi MN will find that their content no longer looks right when a different font is used.
|ਈ [U+0A08 GURMUKHI LETTER II]||ੲ + ੀ [U+0A72 GURMUKHI IRI + U+0A40 GURMUKHI VOWEL SIGN II]|
|ਇ [U+0A07 GURMUKHI LETTER I]||ੲ + ਿ [U+0A72 GURMUKHI IRI + U+0A3F GURMUKHI VOWEL SIGN I]|
|ਏ [U+0A0F GURMUKHI LETTER EE]||ੲ + ੇ [U+0A72 GURMUKHI IRI + U+0A47 GURMUKHI VOWEL SIGN EE]|
|ਊ [U+0A0A GURMUKHI LETTER UU]||ੳ + ੂ [U+0A73 GURMUKHI URA + U+0A42 GURMUKHI VOWEL SIGN UU]|
|ਉ [U+0A09 GURMUKHI LETTER U]||ੳ + ੁ [U+0A73 GURMUKHI URA + U+0A41 GURMUKHI VOWEL SIGN U]|
|ਐ [U+0A10 GURMUKHI LETTER AI]||ਅ + ੈ [U+0A05 GURMUKHI LETTER A + U+0A48 GURMUKHI VOWEL SIGN AI]|
|ਔ [U+0A14 GURMUKHI LETTER AU]||ਅ + ੌ [U+0A05 GURMUKHI LETTER A + U+0A4C GURMUKHI VOWEL SIGN AU]|
|ਆ [U+0A06 GURMUKHI LETTER AA]||ਅ + ਾ [U+0A05 GURMUKHI LETTER A + U+0A3E GURMUKHI VOWEL SIGN AA]|
It is unlikely that content authors will always choose the approach recommended by the Unicode Standard, so applications should be able to treat precomposed and decomposed independent vowels as the same, even though they are not canonically equivalent.
The nukta is a small dot used to extend the Gurmukhi repertoire to additional sounds (see extendedC. The decomposed sequence of letter+nukta is recommended by the Unicode Standard. NFC does not recombine the parts into precomposed characters. Instead, normalisation produces decomposed forms for both NFC and NFD. So both alternatives are canonically equivalent, but decomposed is recommended.
|ਫ਼ [U+0A5E GURMUKHI LETTER FA]||ਫ + ਼ [U+0A2B GURMUKHI LETTER PHA + U+0A3C GURMUKHI SIGN NUKTA]|
|ਜ਼ [U+0A5B GURMUKHI LETTER ZA]||ਜ + ਼ [U+0A1C GURMUKHI LETTER JA + U+0A3C GURMUKHI SIGN NUKTA]|
|ਸ਼ [U+0A36 GURMUKHI LETTER SHA]||ਸ + ਼ [U+0A38 GURMUKHI LETTER SA + U+0A3C GURMUKHI SIGN NUKTA]|
|ਖ਼ [U+0A59 GURMUKHI LETTER KHHA]||ਖ + ਼ [U+0A16 GURMUKHI LETTER KHA + U+0A3C GURMUKHI SIGN NUKTA]|
|ਗ਼ [U+0A5A GURMUKHI LETTER GHHA]||ਗ + ਼ [U+0A17 GURMUKHI LETTER GA + U+0A3C GURMUKHI SIGN NUKTA]|
|ਲ਼ [U+0A33 GURMUKHI LETTER LLA]||ਲ + ਼ [U+0A32 GURMUKHI LETTER LA + U+0A3C GURMUKHI SIGN NUKTA]|
The following indicates the expected ordering of Unicode characters within a Punjabi combining character sequence. Follow the links to see what characters are represented by a given label.
Punjabi has 2 types of combining character sequence (CCS).
Killed vowel. This CCS belongs to the non-final part of a consonant cluster, or to a consonant with a killed vowel. It consists of just the base, with an optional Nukta, and the Virama.
General. The alternative CCS uses the following preferred ordering after a base.
Ordering characters as shown above avoids potential ambiguities and maximises the likelihood of success when rendering the text.
See type samples.
Gurmukhi has its own set of decimal digits, however modern text tends to use ASCII digits.ws
In some cases the choice of digits depends on the context. For example, list counter styles often use Gurmukhi digits, whereas postcodes, route numbers, and ordinal dates, etc. tend to use ASCII digits.@GitHub,https://github.com/r12a/scripts/issues/118#issuecomment-1235187772
Gurmukhi script runs left to right in horizontal lines.
bidi_class properties for characters in the Punjabi orthography described here.
This section brings together information about the following topics: writing styles; cursive text; context-based shaping; context-based positioning; baselines, line height, etc.; font styles; case & other character transforms.
You can experiment with examples using the Gurmukhi character app.
The orthography has no case distinction.
Within a Gurmukhi word, spacing glyphs are joined together at the top bar (shirorekha).
The top bar extends across or through most spacing letters, including both consonants and vowels, but some letters create a gap in the line (while still joining at either side). Two such letters can be seen in the following example.
Letters that create these gaps include digits and the following:
Alignment of the top bar may be appropriate when mixing text of different sizes (see initials). Also, when Gurmukhi text is mixed with another script that also has a top bar, such as Devanagari, the top bars of both scripts may need to be aligned.
See type samples.
Gurmukhi text doesn't commonly use italicisation for emphasis, but slanted text and bolding do occur in modern texts. Italicisation tends to be used to offset blocks of text, by-lines, etc., rather than for emphasis.
The following figures show slanted text being used to set off text.
Although grapheme clusters alone provide good segmentation for many Gurmukhi syllables (because of the lack of conjuncts), they are not sufficient to represent typographic units for stacks. Stacks are common and must not be split apart by edit operations that visually change the text (such as letter-spacing, first-letter highlighting, and in-word line breaking). For those operations one needs to segment the text using orthographic syllables, which string grapheme clusters together with a virama.
The Gurmukhi virama (halant) is ੍ [U+0A4D GURMUKHI SIGN VIRAMA],
which has an Indic Syllabic Category of
Base Combining_mark* ZW(N)J?
Grapheme clusters cover the combinations described just above. In these sequences, Gurmukhi combining marks used for Punjabi may include zero or more of the following types of character.
ZW(N)J is not usually found in Gurmukhi text.
The following examples show a variety of typical grapheme clusters:
Click on the text version of these words to see more detail about the composition.
Note how grapheme clusters segment the parts of a stack after the virama in the last 2 examples. This is not always desirable (see orthographicS just below).
(Consonant Nukta? Virama)* Grapheme_cluster
Gurmukhi stacks medial RA (and sometimes VA) and HA after a syllable coda (see clusters). The stacks represent consonant clusters (but not gemination, which is indicated using a diacritic).
Grapheme clusters terminate after a sequence of marks that includes a halant, but editorial operations that change the visual appearance of the text, such as letter-spacing, first-letter highlighting, line-breaking, and justification, should never split conjunct forms apart. For this reason, an alternative way of segmenting graphemes is needed. This may not apply, however, for some other operations such as cursor movement or backwards delete.
Where stacks appear, a typographic unit contains multiple grapheme clusters. The non-final grapheme clusters all end with ੍ [U+0A4D GURMUKHI SIGN VIRAMA], and the final grapheme cluster begins with a consonant.
The following are examples. Some examples were shown in the previous section: here the stack is treated as a single typographic unit.
Click on the text version of these words to see more detail about the composition.
Test in your browser. The words test units that equate to grapheme clusters only, and others that include conjuncts. First, the text is displayed in a contenteditable paragraph, then in a textarea. Results are reported for Gecko (Firefox), Blink (Chrome), and WebKit (Safari) on a Mac.
ਧੂੰਆਂ ਕਾਗ਼ਜ਼ ਪ੍ਰਭੂ ਹੜ੍ਹ ਫ਼੍ਰੈਂਚ
Cursor movement. Move the cursor through the text.
Gecko steps through the text using grapheme clusters. It takes 2 steps (to get through the stacks, one grapheme cluster at a time. Blink and WebKit step through all words using the orthographic syllables as described here (ie. they step over a stack and all associated combining characters in one jump).
Selection. Place the cursor next to a character and hold down shift while pressing an arrow key.
The behaviour is the same as for cursor movement.
Deletion. Forward deletion works in the same way as cursor movement. The backspace key deletes code point by code point, for all browsers.
Line-break. See this test. The CSS sets the value of the
line-break property to
anywhere. Change the size of the box to slowly move the line break point.
Gecko, WebKit and Blink all wrap on orthographic syllable boundaries.
See type samples.
In modern texts, Gurmukhi words are separated by spaces.
Certain older texts did not contain spaces. This is called larivaar.@GitHub,https://github.com/r12a/scripts/issues/118#issue-1359804026
Some grammatical suffixes are also separated from their stem by a space, and in this case the two parts should not become separated.@GitHub,https://github.com/w3c/iip/issues/98
Words are occasionally hyphenated, eg.
See type samples.
Gurmukhi generally uses ASCII punctuation.
, [U+002C COMMA]
; [U+003B SEMICOLON]
: [U+003A COLON]
. [U+002E FULL STOP]। [U+0964 DEVANAGARI DANDA] (infrequently)
। [U+0964 DEVANAGARI DANDA] may be used rather than a period at the end of a sentence. It is often separated from the last word in the sentence by a small gap, but should not wrap alone to the beginning of the next line. The gap also doesn't grow during justification.
The Ambassador of Mauritius to India Mrs. Mary Claire J. Monty came to visit Sri Harmandir Sahib today. He bowed down with reverence and served for some time at Guru Ramdas Ji's Langar Hall.
Punjabi commonly uses ASCII parentheses to insert parenthetical information into text.
See type samples.
Punjabi texts typically use quotation marks. Of course, due to keyboard design, quotations may also be surrounded by ASCII double and single quote marks.
|initial||” [U+201D RIGHT DOUBLE QUOTATION MARK]|
|nested||’ [U+2019 RIGHT SINGLE QUOTATION MARK]|
Single quotation marks are used for quotations within quotations.
See type samples.
ਃ [U+0A03 GURMUKHI SIGN VISARGA] is used very occasionally in Gurmukhi. In some cases it acts like a Sanskrit visarga, producing a voiceless h sound, but in others it represents an abbreviation, in the same way the period is used in English.ws
However, contractions are very common in Punjabi text, and a much more common way of indicating these is to use ' [U+0027 APOSTROPHE]. A particularly common contraction is to represent ਵਿੱਚ as 'ਚ. @GitHub,https://github.com/r12a/scripts/issues/118#issue-1359804026
ISKCON Vice President Radharaman said that the increasing incidence of attacks on Hindu temples in Australia is alarming.
CLDR also lists the following non-ASCII characters.
By default, Gurmukhi breaks lines at inter-word spaces.
As in almost all writing systems, certain punctuation characters should not appear at the end or the start of a line. The Unicode line-break properties help applications decide whether a character should appear at the start or end of a line.
Show (default) line-breaking properties for characters in the modern Punjabi orthography.
The following list gives examples of typical behaviours for some of the characters used in modern Gurmukhi. Context may affect the behaviour of some of these and other characters.
See type samples.
fig_justification shows lines justified by stretching the inter-word spaces.
Note that the space before the danda at the end of a sentence is not stretched during justification.
Gurmukhi uses the so-called 'alphabetic' baseline, which is the same as for Latin and many other scripts.
It also has a 'hanging baseline', which may be used for text alignment in things such as initial letter highlighting. The hanging baseline is based on the top bar that joins the letters.
Gurmukhi requires slightly more vertical space than Latin text. To give an approximate idea, fig_baselines compares Latin and Gurmukhi glyphs from Noto fonts. The basic Gurmukhi letters are typically slightly higher than the Latin x-height, and conjunct stacks and other diacritics extend slightly below the Latin descenders. The hanging baseline is slightly higher than the Latin x-height (Noto fonts actually have a lower top bar than many others).
fig_baselines_other shows similar comparisons for the Baloo Paaji 2 and Raavi fonts.
See type samples.
You can experiment with counter styles using the Counter styles converter. Patterns for using these styles in CSS can be found in Ready-made Counter Styles, and we use the names of those patterns here to refer to the various styles.
The modern Punjabi orthography uses a native numeric style.
The gurmukhi numeric style is decimal-based and uses these digits.rmcs
The punjabi alphabetic style for the Punjabi language uses these letters.
Note that the 2 vowel carriers which are to be avoided in normal text are present here as the 1st and 3rd counters.
The numeric style commonly uses a full stop + space as a suffix. The alphabetic style may enclose counters in parentheses, or use a single closing parenthesis.
See type samples.
Punjabi content sometimes enlarges the first part of the first word in a paragraph, in a similar way to drop caps. Instead of enlarging just the first letter in the word, it is normal to enlarge the first orthographic syllable (see fig_first_letter). If the first character is the beginning of a conjunct, the whole stack should be included in the styling.
In principle, the top line of the characters should align in the large text and the following first line.
This section is for any features that are specific to Gurmukhi and that relate to the following topics: general page layout & progression; grids & tables; notes, footnotes, etc; forms & user interaction; page numbering, running headers, etc.
Thanks to @bgo-eiu for extensive comments on an early version of this page.