Adlam orthography notes

Updated 10 May, 2024

This page brings together basic information about the Adlam script and its use for the Fula language. The examples used here generally reflect the Pular dialect. It aims to provide a brief, descriptive summary of the modern, printed orthography and typographic features, and to advise how to write Fula using Unicode.

Referencing this document

Richard Ishida, Fula (Adlam) Orthography Notes, 10-May-2024, https://r12a.github.io/scripts/adlm/fuf


Select part of this sample text to show a list of characters, with links to more details.
Change size:   28px

𞤑𞤵𞥅𞤤𞤢𞤤 𞤺𞤢𞤣𞤢𞤲𞤢𞤤 𞤋𞤲𞥆𞤢𞤥𞤢 𞤢𞥄𞤣𞤫𞥅𞤶𞤭 𞤬𞤮𞤬 𞤨𞤮𞤼𞤭⹁ 𞤲𞥋𞤣𞤭𞤥𞤯𞤭𞤣𞤭 𞤫 𞤶𞤭𞤦𞤭𞤲𞤢𞤲𞥆𞤣𞤫 𞤼𞤮 𞤦𞤢𞤲𞥆𞤺𞤫 𞤸𞤢𞤳𞥆𞤫𞥅𞤶𞤭. 𞤉𞤩𞤫 𞤲'𞤺𞤮𞥅𞤣𞤭 𞤥𞤭𞥅𞤶𞤮 𞤫 𞤸𞤢𞤳𞥆𞤭𞤤𞤢𞤲𞤼𞤢𞥄𞤺𞤢𞤤 𞤫𞤼𞤫 𞤫𞤩𞤫 𞤨𞤮𞤼𞤭 𞤸𞤵𞥅𞤬𞤮 𞤲𞥋𞤣𞤭𞤪𞤣𞤫 𞤫 𞤲𞥋𞤣𞤫𞤪 𞤩 𞤭𞤴𞤲𞤺𞤵𞤴𞤵𞤥𞥆𞤢𞥄𞤺𞤵.

𞤑𞤵𞥅𞤤𞤢𞤤 𞥒 𞤘𞤮𞥅𞤼𞤮 𞤳𞤢𞤤𞤢 𞤭𞤲𞤢 𞤱𞤢𞥄𞤱𞤭 𞤸𞤮𞤳𞥆𞤵𞤲𞤣𞤫 𞤸𞤮𞥅𞤪𞤫 𞤥𞤵𞤥 𞤸𞤢𞤳𞥆𞤫𞥅𞤶𞤭 𞤫 𞤲𞥋𞤣𞤭𞤥𞤢 𞤺𞤵𞥅𞤶𞤭 𞤳𞤢𞥄𞤤𞤢𞥄𞤯𞤭 𞤫 𞤲𞤢𞤲𞤮𞤲𞤣𞤭𞤪𞤢𞤤𞤲𞤺𞤢𞤤 𞤼𞤢𞤱𞤢 𞤢𞤤𞤢𞥄 𞤨𞤢𞤤𞤼𞤢𞤺𞤮𞤤 𞤲𞥋𞤺𞤵𞤪𞤵⹁𞤐𞥋𞤦𞤢𞤴𞤣𞤭⹁ 𞤤𞤫𞤻𞤮𞤤⹁ 𞤯𞤫𞤥𞤲𞤺𞤢𞤤⹁ 𞤣𞤭𞥅𞤲𞤫⹁ 𞤭𞤱𞤣𞤭 𞤤𞤫𞤴𞤣𞤭 𞤱𞤢𞤤𞥆𞤢 𞤪𞤫𞤲𞥆𞤣𞤮⹁ 𞤣𞤢𞤻𞤢𞤤⹁ 𞤶𞤭𞤦𞤭𞤲𞤢𞤲𞤣𞤫 𞤱𞤢𞤤𞥆𞤢 𞤳𞤢𞤤𞤢 𞤲𞥋𞤺𞤮𞤲𞤳𞤢. 𞤉 𞤳𞤮 𞤬𞤢𞤱𞤼𞤭𞥅 𞤸𞤫𞥅𞤲 𞤸𞤢𞤴 𞤨𞤢𞤤𞤼𞤮𞥅𞤪 𞤺𞤮𞥅𞤼𞤮 𞤱𞤮𞥅𞤣𞤢𞤼𞤢𞥄 𞤫 𞤣𞤮𞤱 𞤴𞤮𞤱𞤭𞤼𞤢𞥄𞤣𞤫 𞤫 𞤣𞤢𞤱𞤪𞤵𞤺𞤮𞤤⹁ 𞤻𞤢𞥄𞤱𞤮𞥅𞤪𞤫 𞤸𞤢𞤳𞥆𞤵𞤲𞤣𞤫 𞤤𞤫𞤴𞤯𞤫𞥅𞤤𞤫 𞤬𞤢𞤱𞤢𞥄𞤣𞤫 𞤫 𞤲𞤫𞤯𞥆𞤮 𞤵𞤥𞥆𞤭𞥅𞤯𞤮 𞤤𞤫𞤴𞤣𞤭 𞤱𞤢𞤤𞥆𞤢 𞤲𞤫𞤯𞥆𞤮 𞤥𞤮 𞤴𞤮𞤱𞤭𞤼𞤢𞥄𞤳𞤭 𞤥𞤢𞥄 𞤱𞤮𞤲𞤭 𞤨𞤢𞤱𞤭𞤯𞤮 𞤴𞤢𞤥𞤭𞤪𞤮𞥅𞤪𞤫 𞤤𞤢𞥄𞤱𞤯𞤭𞤲𞤢𞥄𞤲𞤣𞤫 𞤱𞤢𞥄𞤱𞤲𞤣𞤫 𞤱𞤮𞤲𞤣𞤫 𞤬𞤮𞤬.

Source: Unicode UDHR, articles 1 & 2

Usage & history

Origins of the Adlam script, 1980s – today.

Not a descendant of another script, however aspects such as direction and glyph joining were inspired by Arabic.

The Adlam script was devised in the 1980s, and is nowadays used for writing the Fulani language, alongside Latin and Arabic orthographies. It is currently taught in Guinea, Nigeria, Liberia and other nearby countries.

The English names Fula(h) and Fulani originally come from Manding and Hausa, respectively. Pular or Pulaar is the way the Fula people refer to their language in western dialects. In central and eastern dialects it is Fulfulde. Sometimes the French name Peul (from Wolof) can be found.

The spread of the script is occurring remarkably rapidly across the whole Fula/Fulfulde-speaking world, through a grass-roots movement. The new script appeals to Fula speakers, and its use is having a positive impact on general literacy among them.


The script was developed by two teenage brothers, Ibrahima and Abdoulaye Barry, so that their language could have its own script. The name of the script ‘Adlam’ reflects the first four characters in the repertoire: A, D, L, and M.

After teaching their own family and local villagers to use the script for lessons in water hygiene and basic medical care, the brothers set up learning centres in Togo, Senegal, and Benin. Eventually, the means were available to print the script, and a newspaper and a number of printed books were published.

The shapes of the glyphs used has evolved over time, and various changes were standardised in 2019, however some fonts have not yet caught up with these changes.

See also variants.

More information: Scriptsource • Wikipedia

Basic features

The Adlam script is an alphabet. Both consonants and vowels are indicated by letters. See the table to the right for a brief overview of features for the Pular language.

Adlam text runs right-to-left in horizontal lines. Unlike Arabic, numbers are also written right-to-left.

The script can be written cursively or not. Non-joining fonts may be used for titles, etc.

Adlam is bicameral, so all the numbers below need to be doubled to account for upper- and lowercase variants.

❯ consonantSummary

The 23 native consonant letters used for Fula are supplemented by repertoire extensions for 6 more sounds used in foreign and loan words, and by applying a consonant modifier diacritic or a nukta to 9 characters for more foreign (mostly Arabic) sounds.

There is no special treatment for consonant clusters or final consonants.

The diacritics are also used to indicate prenasalisation and gemination.

❯ basicV

This orthography is an alphabet where vowels are written using 5 vowel letters (10 counting both uppercase and lowercase) and 3 combining marks. The 5 vowel letters do not reflect differences in vowel quality associated with short vs. long vowels. A nukta diacritic can be used to indicate 2 specific sounds (though that is rare).

Long vowels are also indicated using one of 2 combining marks.

Standalone vowels are written using ordinary vowel letters and no special arrangements.

Adlam has a set of native numerals. Numbers are written from right-to-left, and therefore do not create bidirectional text.

Character index



Basic consonants


Extended consonants




Extended vowels




Combining marks










To be investigated

Items to show in lists


The following represents the general repertoire of the Fula languages and dialects.

Click on the sound groups to see where else in the document each of the sounds are referred to.

Phones in a lighter colour are infrequently used. Source Wikipedia.

Vowel sounds

Plain vowels

iː uː ɪ ʊ eː o ɛ ɔ ɔː a aː a aː

Whether the script is Adlam, Latin, or Arabic, the sources of information found for Fula don't provide a great deal of clarity around the precise phonetic pronunciation of the vowel sounds, and, unfortunately, there is no IPA-transcribed data in Wiktionary to help clarify actual pronunciation.

Most sources simply transcribe all vowel sounds as a i e o u, which are the phonemically distinct vowels. However, some sources make a distinction in their transcriptions between short vowels pronounced ɪ ʊ ɛ ɔ a, and long vowels pronounced iː uː eː oː aː.

Furthermore, the phonetic sounds of a vowel may be influenced by the following consonant.lhs

Examples in this page are drawn from various sources, and may or may not use broad phonemic or narrow(er) transcriptions.


Fula/Fulfulde diphthongs are all vowels followed by a -j or a -w glide. They include the following.mhm

ey ew
oj ow
aj aw

uj doesn't occur in word-final position.mhm,28

Consonant sounds

labial dental alveolar post-
palatal velar uvular pharyneal glottal
stops p b   t d
tˤ dˤ
t͡ʃ d͡ʒ   k É¡
k͡p g͡b
q   ʔ
  ᵐb   ⁿd ᶮd͡ʒ   ᵑɡ      
implosives ɓ   ɗ            
fricatives f v θ s z
sˤ zˤ
  ʃ x É£   ʕ h ɦ
nasals m   n   ɲ ŋ    
approximants w   l   j      
trills/flaps     r ɾ  



Fula is reported to be one of only 3 languages that contrast prenasalized consonants and their corresponding clusters (eg. ᵐb versus mb).@Wikipedia: Prenasalized consonant,https://en.wikipedia.org/wiki/Prenasalized_consonant

The lighter coloured phones are used for foreign sounds, especially for Arabic but also for sounds of other African languages. These are not usually mentioned in descriptions of the Latin and Arabic orthographies for Fula, but they are listed here principally because Adlam was designed with ways of writing those sounds.

Observation: A few sources mention a letter that represents the sound É , found in Guinea, and written in the Latin orthography with the same symbol (though previously written using q). No examples of this sound have been encountered in my research.


Languages in the Atlantic group of the Niger-Congo family, of which Fula is one, are unusual in that they are not tonal.


Fula has 2 regular syllable types: CV and CVC, where V can be a short or long vowel, and an initial C may be a glottal stop. Only a small number of sounds can occur as a coda, and closed syllables are much less common than open ones.

The distinction between long and short vowels is phonemically distinctive.

Consonant clusters only occur where a syllable follows a closed syllable. Gemination is, however, a distinctive feature.

A syllable can only contain a single vowel.lhs


Click on the characters to find where they are mentioned in this page.

The Fula alphabet has 23 consonants and 5 vowels. Each has upper and lowercase forms; shown above and below, respectively.



Vowel summary table

The following table summarises the main vowel to character assigments.

Lowercase is shown on the left, uppercase on the right.

𞤭␣𞤭𞥅␣ ␣𞤵␣𞤵𞥅
𞤋␣𞤋𞥅␣ ␣𞤓␣𞤓𞥅
𞤫␣𞤫𞥅␣ ␣𞤮␣𞤮𞥅
𞤉␣𞤉𞥅␣ ␣𞤌␣𞤌𞥅

For additional details see vowel_mappings.

The following is the set of characters needed to write vowels, as described in this section, grouped by general category.


Post-consonant vowels

Vowels following consonants are written using 5 vowel letters (10 counting both uppercase and lowercase) and 3 combining marks. The 5 vowel letters do not reflect differences in vowel quality associated with short vs. long vowels. A nukta diacritic can be used to indicate 2 specific sounds (though that is rare). Long vowels are also indicated using one of 2 combining marks.

Vowel letters

The basic vowels are written as follows:


These letters actually map to more than one sound phonetically. See phonemesV for more details.

Long vowels


Vowel length is phonetically significant in Fula, eg. compare: 𞤢𞤥𞤵𞤺𞤮𞤤 𞤢𞥄𞤥𞤵𞤺𞤮𞤤

Long vowel sounds are indicated using diacritics. There are 2 of these: 1E945 is used for all vowels except 𞤢, which uses 1E944.

According to Eversone, 1E944 can also be used above a consonant to indicate the sound aː without a vowel, eg.

𞤣𞥄 dˉ daː

Long vowels can also written by following a vowel with a 𞤸 which is not followed by a vowel, eg.

𞤧𞤫𞤸𞤪𞤫 seere

Shaping & positioning

The latest glyph reform introduces visual differences in the shapes used for the lengthening diacritic, not only between the alif lengthener and other lengtheners, but also between upper vs lowercase letters.p

Glyphs used to indicate a long vowel.

Vowel letters with nukta


Where the letter 𞤫, which could be read as ɛ, needs to be read as e, the appropriate sound can be signalled using the combination 𞤫𞥊. Similarly, 𞤮𞥊 is read as o rather than ɔ. This convention is used for both native and borrowed sounds.e,2

The 1E94A normally appears above the base letter, but when the sound is long the diacritic appears below the base character, while the lengthening mark appears above.


These combinations are not common in Adlam texts.

The nukta should be typed and stored before the lengthening mark.

Multipart vowels

Fula combines a basic vowel with one or two diacritics to represent 9 sounds. The diacritics include a vowel lengthener and/or in 4 cases a nukta (see basicV). A matching set of 9 graphemes represents the uppercase.

Standalone vowels

Standalone vowels are written using ordinary vowel letters and no special arrangements.



Consonants with no following vowel

No special mechanism is used to indicate the absence of a vowel. See also clength.



Vowel sounds to characters

This section maps Fula vowel sounds to common graphemes in the Adlam orthography. Sounds listed as 'infrequent' are allophones, or sounds used for foreign words, etc.

The left column shows lowercase letters, and the right column uppercase.

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.

i ɪ





1E92D 1E945


1E90B 1E945

u ʊ





1E935 1E945


1E913 1E945

e ɛ



1E92B 1E94A (rare)


1E909 1E94A

eː ɛː

1E92B 1E945


1E92B 1E94A 1E945 (rare)

1E909 1E945

1E909 1E94A 1E945

ɔ o



1E92E 1E94A (rare)


1E90C 1E94A

ɔː oː

1E92E 1E945


1E92E 1E94A 1E945 (rare)

1E90C 1E945

1E90C 1E94A 1E945






1E922 1E944


1E900 1E944


Consonant summary table

The following table summarises the main consonant to character assigments.

The right column shows letters used in loan words and foreign pronunciations (especially Arabic), but not usually used for native Fula text.

𞤨␣𞤦␣𞤩␣𞤼␣𞤣␣𞤯␣𞤳␣𞤺␣𞥇␣ ␣𞤷␣𞤶
Show uppercase
𞤆␣𞤄␣𞤇␣𞤚␣𞤁␣𞤍␣𞤑␣𞤘␣𞥇␣ ␣𞤕␣𞤔

For additional details see consonant_mappings.

Basic consonants

Fula uses the following characters to represent the set of basic consonants shown in the table just above.


Loan words & proper nouns

A set of supplementary letters are used for loan words and proper nouns originated in neighbouring ethnic groups.


Non-native sounds


Adlam has 3 diacritics for extending letters to cover non-native sounds (principally Arabic).

1E948 and 1E94A provide the basic diacritics. They are shown here with lowercase letters.


The third diacritic, 1E949, is used when one of these modified letters is also geminated.

Glottal stop


When a consonant is followed immediately by a glottal stop and then a vowel, the glottal stop is represented using the diacritic 1E947 over the preceding consonant (see fig_glottal_stop).e,2

The glottal stop mark is positioned over the r in Qurʿan.
show composition


A word-initial standalone vowel begins with an unwritten glottal stop.


Observation: It appears that an apostrophe is used for the glottal stop that occurs with word-medial standalone vowels? eg. 𞤸𞤢ʼ𞤢𞤤𞤢 haʼala

Pre-nasalised consonants


Pre-nasalised consonants are indicated by adding 𞥋, called 𞤻𞤮𞤲𞤣𞤢𞤤 nyondal, between 𞤲 and the consonant affected. The nyondal is used to clarify the syllable boundaries, eg. compare 𞤸𞤭𞤲𞥋𞤣𞤵 𞤸𞤭𞤲𞤣𞤵

Word-initially, the nyondal may or may not be usedsow, so either of the 2 following spellings are possible: 𞤲𞥋𞤺𞤵𞤪𞤫 𞤲𞤺𞤵𞤪𞤫

Other places where the nyondal is not needed includesow:

If it appears between two joined letters, the nasalisation character should not break that join.

Word-initial prenasalisation. Note that there is no break between the joined letters.
show composition


This character was added to Unicode version 12. Prior to that, people used an apostrophe, but that is not desirable, because it breaks the cursive joining.


Other than the prenasalised consonants, Fula has no special features related to syllable onsets.


Fula has no dedicated characters to represent codas. Ordinary consonant letters are simply used in a cluster.

Consonant clusters

Fula has no conjuncts or other special mechanisms for handling consonant clusters. Again, a simple sequence of consonant letters is used. (But see clength.)



Gemination of consonants is normally indicated using 1E946,e,2 eg. compare 𞤧𞤢𞤳𞤫 𞤧𞤢𞤳𞥆𞤫

As mentioned in extendedC, letters that have consonant modifier diacritics use a special code point, 1E949 that combines the gemination marker with the modifier.

Letters that combine with 1E94A should move that diacritic below the base character and keep the gemination mark above, eg. see fig_gemination.

𞤧𞥆 𞤧𞥉 𞤧𞥊𞥆
Three alternative ways gemination is indicated: basic diacritic (right), the diacritic with a v-shaped consonant modifier (middle), and with a nukta which it pushes below the base (left).

Consonant sounds to characters

This section maps Fula consonant sounds to common graphemes in the Adlam orthography. Sounds listed as 'infrequent' are allophones, or sounds used for foreign words, etc.

The left column shows lowercase letters, and the right column uppercase.

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.


















1E93C 1E948

1E91A 1E948










1E923 1E948

1E901 1E948


























1E932 1E94B 1E926




1E932 1E94B 1E923




1E932 1E94B 1E936




1E932 1E94B 1E93A




















1E927 1E94A

1E905 1E94A






1E927 1E948

1E905 1E948




1E936 1E94A


1E914 1E94A


1E936 1E948

1E914 1E948










1E93A 1E948

1E918 1E948


1E922 1E948

1E900 1E948






1E938 1E948

1E916 1E948







































Adlam uses native digits.


Unlike other right-to-left scripts such as Arabic, Hebrew, and Thaana, (but like N'Ko) the numbers are displayed right-to-left, with the most significant digit first.e This means that numbers don't produce bidirectional text in Adlam

fig_numbers refers to a date of 15 October 2022.

𞤻𞤢𞤤𞤲𞤣𞤫 𞥑𞥕 𞤅𞤭𞥅𞤤𞤼𞤮 𞥒𞥐𞥒𞥒
A date in Adlam script. All characters are read right to left, including numbers.

The shape of 𞥖 was significantly changed by the 2019 glyph shape reform to make it less similar to the letter HA.p

For thousands and decimal separators, Adlam uses a space and a period, respectively.n

Text direction

See type samples.

Adlam text is written horizontally, with successive lines progressing down the page.

Inline text is right-to-left in the main but, as in most right-to-left scripts, embedded left-to-right script text is written left-to-right (producing 'bidirectional' text).

However, like N'Ko but unlike Arabic, numbers are also written with digits in right-to-left order.

𞤑𞤮 𞤯𞤵𞤥 𞤱𞤮𞤲𞤭 𞤧𞤢𞤦𞤵 𞤸𞤢𞥄 𞤫 𞤸𞤭𞤼𞤢𞥄𞤲𞤣𞤫 𞥑𞥙𞥘𞥕⹁ 𞤥𞤢𞤲𞤳𞤭𞤪𞤺𞤢𞤤 𞤤𞤫𞤧𞤣𞤭 𞤊𞤢𞤪𞤢𞤲𞤧𞤭 𞤭𞤲𞥆𞤫𞤼𞤫𞥅𞤲𞤺𞤢𞤤 BNP Paribas 𞤴𞤮 𞤢𞤪𞤵 𞤵𞤣𞥆𞤭𞤼𞤢 𞤧𞤢𞤤𞤲𞤣𞤵 𞤫 𞤤𞤫𞤴𞤣𞤭 𞤘𞤭𞤲𞤫 𞤱𞤭𞤫𞤼𞤫𞥅𞤲𞤣𞤵 𞤄𞤭𞤧𞤭𞥅𞤺𞤭𞥅 (BICIGUI).
Adlam-script words are read right-to-left, starting from the right of this line, but 'BNP Paribas' is read left-to-right. The number 𞥑𞥙𞥘𞥕 (1985) on the other hand is written right-to-left.

The Unicode Bidirectional Algorithm automatically takes care of the ordering for all the text in fig_bidi, as long as the 'base direction' is set to RTL. In HTML this can be set using the dir attribute, or in plain text using formatting controls.

If the base direction is not set appropriately, the directional runs will be ordered incorrectly as shown in fig_bidi_no_base_direction.

𞤑𞤮𞤲𞤮 𞤳𞤮 𞤫 𞤬𞤫𞤣𞥆𞤫 PAIGC 𞤮 𞤶𞤫𞤴𞤢𞥄.

𞤑𞤮𞤲𞤮 𞤳𞤮 𞤫 𞤬𞤫𞤣𞥆𞤫 PAIGC 𞤮 𞤶𞤫𞤴𞤢𞥄.

The exact same sequence of characters with the base direction set to RTL (top), and with no base direction set on this LTR page (bottom).

Show default bidi_class properties for characters in the Fula language.

For other aspects of dealing with right-to-left writing systems see the following sections:

For more information about how directionality and base direction work, see Unicode Bidirectional Algorithm basics. For information about plain text formatting characters see How to use Unicode controls for bidi text. And for working with markup in HTML, see Creating HTML Pages in Arabic, Hebrew and Other Right-to-left Scripts.

Managing text direction

Unicode provides a set of 10 formatting characters that can be used to control the direction of text when displayed. These characters have no visual form in the rendered text, however text editing applications may have a way to show their location.

202B (RLE), 202A (LRE), and 202C (PDF) are in widespread use to set the base direction of a range of characters. RLE/LRE comes at the start, and PDF at the end of a range of characters for which the base direction is to be set.

In Unicode 6.1, the Unicode Standard added a set of characters which do the same thing but also isolate the content from surrounding characters, in order to avoid spillover effects. They are 2067 (RLI), 2066 (LRI), and 2066 (PDI). The Unicode Standard recommends that these be used instead.

There is also 2068 (FSI), used initially to set the base direction according to the first recognised strongly-directional character.

061C (ALM) is used to produce correct sequencing of numeric data. Follow the link and see expressions for details.

200F (RLM) and 200E (LRM) are invisible characters with strong directional properties that are also sometimes used to produce the correct ordering of text.

For more information about how to use these formatting characters see How to use Unicode controls for bidi text. Note, however, that when writing HTML you should generally use markup rather than these control codes. For information about that, see Creating HTML Pages in Arabic, Hebrew and Other Right-to-left Scripts.

Glyph shaping & positioning

This section brings together information about the following topics: font/writing styles; cursive text; context-based shaping; context-based positioning; letterform slopes, weights, & italics; case & other character transforms.

You can experiment with examples using the Adlam character app.

Writing styles

Adlam is usually cursive, ie. letters in a word are joined up (see cursive and fig_joined_writing_style), however a non-cursive writing style (see fig_unjoined_writing_style) is sometimes used, mainly as display fonts for books and article titles as well as educational content (because the unconnected script is easier to learn).n

𞤑𞤵𞥅𞤤𞤢𞤤 𞤺𞤢𞤣𞤢𞤲𞤢𞤤 𞤋𞤲𞥆𞤢𞤥𞤢 𞤢𞥄𞤣𞤫𞥅𞤶𞤭 𞤬𞤮𞤬 𞤨𞤮𞤼𞤭، 𞤲ˈ𞤣𞤭𞤥𞤯𞤭𞤣𞤭 𞤫 𞤶𞤭𞤦𞤭𞤲𞤢𞤲𞥆𞤣𞤫 𞤼𞤮 𞤦𞤢𞤲𞥆𞤺𞤫 𞤸𞤢𞤳𞥆𞤫𞥅𞤶𞤭. 𞤉𞤩𞤫 𞤲ˈ𞤺𞤮𞥅𞤣𞤭 𞤥𞤭𞥅𞤶𞤮 𞤫 𞤸𞤢𞤳𞥆𞤭𞤤𞤢𞤲𞤼𞤢𞥄𞤺𞤢𞤤 𞤫𞤼𞤫 𞤫𞤩𞤫 𞤨𞤮𞤼𞤭 𞤸𞤵𞥅𞤬𞤮 𞤲ˈ𞤣𞤭𞤪𞤣𞤫 𞤫 𞤲ˈ𞤣𞤫𞤪 𞤩 𞤭𞤴𞤲𞤺𞤵𞤴𞤵𞤥𞥆𞤢𞥄𞤺𞤵.
Adlam content is usually in a cursive writing style.
𞤑𞤵𞥅𞤤𞤢𞤤 𞤺𞤢𞤣𞤢𞤲𞤢𞤤 𞤋𞤲𞥆𞤢𞤥𞤢 𞤢𞥄𞤣𞤫𞥅𞤶𞤭 𞤬𞤮𞤬 𞤨𞤮𞤼𞤭، 𞤲ˈ𞤣𞤭𞤥𞤯𞤭𞤣𞤭 𞤫 𞤶𞤭𞤦𞤭𞤲𞤢𞤲𞥆𞤣𞤫 𞤼𞤮 𞤦𞤢𞤲𞥆𞤺𞤫 𞤸𞤢𞤳𞥆𞤫𞥅𞤶𞤭. 𞤉𞤩𞤫 𞤲ˈ𞤺𞤮𞥅𞤣𞤭 𞤥𞤭𞥅𞤶𞤮 𞤫 𞤸𞤢𞤳𞥆𞤭𞤤𞤢𞤲𞤼𞤢𞥄𞤺𞤢𞤤 𞤫𞤼𞤫 𞤫𞤩𞤫 𞤨𞤮𞤼𞤭 𞤸𞤵𞥅𞤬𞤮 𞤲ˈ𞤣𞤭𞤪𞤣𞤫 𞤫 𞤲ˈ𞤣𞤫𞤪 𞤩 𞤭𞤴𞤲𞤺𞤵𞤴𞤵𞤥𞥆𞤢𞥄𞤺𞤵.
An unjoined writing style is used for titles and educational content.

Cursive text

When Adlam is cursive (see writing_styles), letters in a word are joined up. Fonts need to produce the appropriate joining form for a letter, according to its visual context, but the code point remains the same. This results in four different glyphs for most letters (including an isolated glyph).

𞤢𞥄𞤣𞤫𞥅𞤶𞤭 𞤬𞤮𞤬 𞤨𞤮𞤼𞤭
Cursive connections. Note the small variation in initial and final form of 𞤬.

The cursive treatment doesn't produce major variations of the essential part of the glyph for a character (unlike Arabic), but there are some small adaptations.

Unlike Arabic and Syriac scripts, no glyphs join only on one side.

Cursive joining forms

Unlike Arabic or Syriac, joining forms generally only differ by the addition of a small baseline extension. A few items in the table are highlighted that have very small additional changes, most amounting to just a small extension of a stroke. Also, whereas Arabic and Syriac re-use a number of basic shapes to create additional letters by adding diacritics, in Adlam each letter shape is different. fig_joining_forms shows the basic shapes in Adlam and what their joining forms look like.

Joining side:nonerightbothleft
𞤨 U+1E928 ADLAM SMALL LETTER PE 𞤨 ‍𞤨 ‍𞤨‍ 𞤨‍
𞤦 U+1E926 ADLAM SMALL LETTER BA 𞤦 ‍𞤦 ‍𞤦‍ 𞤦‍
𞤩 U+1E929 ADLAM SMALL LETTER BHE 𞤩 ‍𞤩 ‍𞤩‍ 𞤩‍
𞤼 U+1E93C ADLAM SMALL LETTER TU 𞤼 ‍𞤼 ‍𞤼‍ 𞤼‍
𞤣 U+1E923 ADLAM SMALL LETTER DAALI 𞤣 ‍𞤣 ‍𞤣‍ 𞤣‍
𞤯 U+1E92F ADLAM SMALL LETTER DHA 𞤯 ‍𞤯 ‍𞤯‍ 𞤯‍
𞤳 U+1E933 ADLAM SMALL LETTER KAF 𞤳 ‍𞤳 ‍𞤳‍ 𞤳‍
𞤺 U+1E93A ADLAM SMALL LETTER GA 𞤺 ‍𞤺 ‍𞤺‍ 𞤺‍
𞤹 U+1E939 ADLAM SMALL LETTER QAAF 𞤹 ‍𞤹 ‍𞤹‍ 𞤹‍
𞤷 U+1E937 ADLAM SMALL LETTER CHI 𞤷 ‍𞤷 ‍𞤷‍ 𞤷‍
𞤶 U+1E936 ADLAM SMALL LETTER JIIM 𞤶 ‍𞤶 ‍𞤶‍ 𞤶‍
𞤬 U+1E92C ADLAM SMALL LETTER FA 𞤬 ‍𞤬 ‍𞤬‍ 𞤬‍
𞤸 U+1E938 ADLAM SMALL LETTER HA 𞤸 ‍𞤸 ‍𞤸‍ 𞤸‍
𞤥 U+1E925 ADLAM SMALL LETTER MIIM 𞤥 ‍𞤥 ‍𞤥‍ 𞤥‍
𞤲 U+1E932 ADLAM SMALL LETTER NUN 𞤲 ‍𞤲 ‍𞤲‍ 𞤲‍
𞤻 U+1E93B ADLAM SMALL LETTER NYA 𞤻 ‍𞤻 ‍𞤻‍ 𞤻‍
𞤽 U+1E93D ADLAM SMALL LETTER NHA 𞤽 ‍𞤽 ‍𞤽‍ 𞤽‍
𞤱 U+1E931 ADLAM SMALL LETTER WAW 𞤱 ‍𞤱 ‍𞤱‍ 𞤱‍
𞤪 U+1E92A ADLAM SMALL LETTER RA 𞤪 ‍𞤪 ‍𞤪‍ 𞤪‍
𞤤 U+1E924 ADLAM SMALL LETTER LAAM 𞤤 ‍𞤤 ‍𞤤‍ 𞤤‍
𞤴 U+1E934 ADLAM SMALL LETTER YA 𞤴 ‍𞤴 ‍𞤴‍ 𞤴‍
𞤰 U+1E930 ADLAM SMALL LETTER YHE 𞤰 ‍𞤰 ‍𞤰‍ 𞤰‍
𞤾 U+1E93E ADLAM SMALL LETTER VA 𞤾 ‍𞤾 ‍𞤾‍ 𞤾‍
𞤿 U+1E93F ADLAM SMALL LETTER KHA 𞤿 ‍𞤿 ‍𞤿‍ 𞤿‍
𞥀 U+1E940 ADLAM SMALL LETTER GBE 𞥀 ‍𞥀 ‍𞥀‍ 𞥀‍
𞥁 U+1E941 ADLAM SMALL LETTER ZAL 𞥁 ‍𞥁 ‍𞥁‍ 𞥁‍
𞥂 U+1E942 ADLAM SMALL LETTER KPO 𞥂 ‍𞥂 ‍𞥂‍ 𞥂‍
𞥃 U+1E943 ADLAM SMALL LETTER SHA 𞥃 ‍𞥃 ‍𞥃‍ 𞥃‍
𞤭 U+1E92D ADLAM SMALL LETTER I 𞤭 ‍𞤭 ‍𞤭‍ 𞤭‍
𞤵 U+1E935 ADLAM SMALL LETTER U 𞤵 ‍𞤵 ‍𞤵‍ 𞤵‍
𞤫 U+1E92B ADLAM SMALL LETTER E 𞤫 ‍𞤫 ‍𞤫‍ 𞤫‍
𞤮 U+1E92E ADLAM SMALL LETTER O 𞤮 ‍𞤮 ‍𞤮‍ 𞤮‍
𞤢 U+1E922 ADLAM SMALL LETTER ALIF 𞤢 ‍𞤢 ‍𞤢‍ 𞤢‍
Joining forms for shapes that join on both sides. Those showing notable shape change are highlighted.

Managing glyph shaping

200D (ZWJ) and 200C (ZWNJ) are used to control the visual joining behaviour of cursive glyphs. They are particularly useful in educational contexts. For example, the ZWJ was used to create the shapes in fig_joining_forms.

ZWJ permits a letter to form a cursive connection without a visible neighbour.

ZWNJ prevents two adjacent letters forming a cursive connection with each other when rendered.

Observation: The ZWJ only works on the left side of glyphs in fig_joining_forms if the table cell's base direction is set to RTL.

Context-based shaping & positioning

See just above for shaping related to cursive joining.

See variants for information about recent glyph shape changes.

Context affects the shapes of certain diacritics when placed over upper vs lowercase letters.p

1E94A usually sits above the letter it modifies, but if the letter is also lengthened or geminated, it moves below the letter and leaves the lengthening/gemination diacritic above.

Letterform slopes, weights, & italics

See type samples.

Adlam texts use both bolding and italics.

The Kigelia font may be the first italicised Adlam tyeface, but its development was based on requests from the community of users. Discussion with the community led to an italic form that leans to the right (unlike N'Ko).g,#issuecomment-512911833

An example of an italic typeface for Adlam.

Typographic units

Word boundaries

The concept of 'word' is difficult to define in any language (see What is a word?). Here, a word is a vaguely-defined, but recognisable semantic unit that is typically smaller than a phrase and may comprise one or more syllables.

Adlam words are separated by spaces.


Grapheme boundaries

A grapheme is a user-perceived unit of text. The Unicode Standard uses generalised rules to define 'grapheme clusters', which approximate the likely grapheme boundaries in a writing system.


Punctuation & inline features

Phrase & section boundaries

See type samples.









The question mark, ؟, is from the Arabic block, but the comma and semicolon are ⹁ and ⁏, respectively, rather than the Arabic comma and semicolon. (The Arabic comma/semicolon are only used as carryovers from the older Adlam fonts.)n

𞥟 and 𞥞 are used to begin a phrase that is a question or exclamation, respectively, much like ¿ and ¡ in Spanish. The phrase ends using an Arabic question mark or ASCII exclamation mark,e,2 eg.

𞥟 𞤢𞤤𞤢𞥄 ؟

𞥞 𞤢𞤤𞤢𞥄 !

The shapes of these question and exclamation punctuation marks were significantly changed in the 2019 shape reform, with the aim of making them more visually appealing.

Observation: The punctuation marks appear to be separated from the rest of the text by a space.

Bracketed text


Fula commonly uses ASCII parentheses to insert parenthetical information into text.

  start end



𞤣𞤢𞤪𞤭𞥅𞤩𞤫 𞥒𞥙 (𞤲𞤮𞥅𞤺𞤢𞤴 𞤫 𞤶𞤫𞥅𞤲𞤢𞤴𞤮) 𞤲𞤺𞤢𞤥

In this text sample, the parenthesis on the right is U+0028 LEFT PARENTHESIS, and the one on the left is U+0029 RIGHT PARENTHESIS (see mirrored_characters).

Mirrored characters

The words 'left' and 'right' in Unicode names for parentheses, brackets, and other paired characters should be ignored. LEFT should be read as if it said START, and RIGHT as END. The direction in which the glyphs point will be automatically determined according to the base direction of the text.

a > b > c
ا > ب > ج
Both of these lines use > U+003E GREATER-THAN SIGN, but the direction it faces depends on the base direction at the point of display.

The number of characters that are mirrored in this way is around 550, most of which are mathematical symbols. Some are single characters, rather than pairs. The following are some of the more common ones.


Quotations & citations

See type samples.


Adlam texts use the following punctuation around quotations. Of course, due to keyboard design, quotations may also be surrounded by ASCII double and single quote marks.

  start end



The row labelled 'initial' indicates the usual default quote marks.

Note that these characters are not mirrored during display in RTL text. This means that LEFT indicates use on the left, and RIGHT indicates use on the right, unlike other types of paired punctuation. That is why, in the table above, the 'start' and 'end' columns in the table above are ordered as they are.

Abbreviation, ellipsis & repetition

See type samples.

Adlam text uses the 3-dot ellipsis ….

Line & paragraph layout

Line breaking & hyphenation

Adlam text breaks primarily at the spaces around words. In-word breaks using hyphenation also occur.

Breaking between Latin words.

When a line break occurs in the middle of an embedded left-to-right sequence, the items in that sequence need to be rearranged visually so that it isn't necessary to read lines from top to bottom.

latin-line-breaks shows how two Latin words are apparently reordered in the flow of text to accommodate this rule. Of course, the rearragement is only that of the visual glyphs: nothing affects the order of the characters in memory.

Text with no line break in Latin text.

Text with line break in Latin text.

The lower of these two images shows the result of decreasing the line width, so that text wraps between a sequence of Latin words.

Line-edge rules

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 Fula language.

The following list gives examples of typical behaviours for some of the characters used in Adlam text. Context may affect the behaviour of some of these and other characters.

Click/tap on the characters to show what they are.

  • “ ‘ ( 𞥞 𞥟   should not be the last character on a line.
  • ” ’ ) . ⹁ ! ؟ %   should not begin a new line.
  • ⁏ 𞥋 …   should not allow breaks on either side, unless there is a space.

In-word line-breaks

Fula text uses hyphenation at the end of a line to reduce excess space during justification. See an example in fig_hyphenation.

Text alignment & justification

See type samples.

Fully-justified text in Fula is produced by adding spaces between words, but long words may be hyphenated to reduce the overall space added.g

Hyphenation example: 𞤶𞤭𞤤𞥆𞤭𞤲𞤣𞤭𞤪𞤺𞤮𞤤
Full justification achieved by spacing plus hyphenation.

In the past, justification involved stretching the baseline, using ـ, but the modern preference is to use interword spacing, instead. See also historical_justification.

Baselines, line height, etc.

Adlam uses the so-called 'alphabetic' baseline, which is the same as for Latin and many other scripts.

Adlam places vowel and tone marks above base characters, and can also add combining characters below the line. The resulting complexity means that the vertical resolution needed for clearly readable Fula text is higher than for English, or most Latin text.

To give an approximate idea, fig_baselines compares Latin and Adlam glyphs from the Noto Sans font. The basic height of lowercase Adlam letters is typically around the Latin x-height, however diacritics reach well beyond the Latin ascenders, creating a need for larger line spacing. The vertical height is further increased when dealing with capital letters.

𞤁𞤀𞥄𞤉𞥅𞤐𞥋𞤘𞤑𞥆𞤅𞥈𞤉𞥊𞥅 𞤣𞤢𞥄𞤫𞥅𞤲𞥋𞤺𞤳𞥆𞤧𞥈𞤫𞥊𞥅 Hhqx
Font metrics for Latin text compared with Adlam glyphs in the Noto Sans Adlam font.

Counters, lists, etc.

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 Fula orthography uses a numeric style using native digits.


The adlam numeric style is decimal-based and uses these digits.rmcs




Prefixes and suffixes

The default list style uses a full stop + space as a suffix.

Observation: The Winden Jangen site has scans of a number of books which use ordered lists, and they use Adlam numbers (see fig_cs_numeric).

Numeric list style.
Numeric counter styles.

Styling initials

See type samples.

Drop caps can be found in Fulah text written with the Adlam script (more commonly than raised caps).

𞤳𞤮 𞤬𞤢𞥄𞤤𞤢𞥄 𞤥𞤭 𞤳𞤮\n𞤫 𞤲𞤣𞤫𞤪 𞤱𞤫𞤤𞤮-\n𞤺𞤭𞤥𞤯𞤭 𞤲𞤫𞥄𞤩𞤵𞤣𞤭\n

Drop caps in Adlam script text.

The initial character and the character that follows it are unjoined.§

Page & book layout

General page layout & progression

Fula books, magazines, etc. written using the Adlam script are bound on the right-hand side, and pages progress from right to left.

عنوان كتاب

Binding configuration for Adlam books, magazines, etc.

Columns are vertical but run right-to-left across the page.

Layout direction

The right-to-left orientation of the script affects the direction of page layout, and of the layout of items within the page.

The page shown in fig_layout is the mirror-image of pages in, say, French. Note the various navigation items on the page, and the progression of numbers at the bottom of the page.

Picture of the web page at https://heslal.com
An Adlam web page, where the layout and navigational aids are also ordered right-to-left.

On the other hand, the video controls assume a LTR direction. This is mostly constrained by technology at the moment, and whether or not this is acceptable is still being debated.

Historical information

Orthographic development & variants

In 2019 the design of Adlam letter glyphs was overhauled in a proposal to the Unicode Consortium, which resulted in changes to the code chart. p

Adlam 2019 Adlam 2018
Glyphs in the Unicode Adlam code chart showing pre-2019 (left) and post-2019 (right) shapes.

Typical changes involved standardising the shapes across cursive forms, better distinctions between lower and uppercase forms, removal of some ascenders to avoid diacritic collisions, and then addition of some small ascenders to help distinguish joined forms.

There were also some significant shape changes, particularly to make supplementary letters look more like those used for similar, standard sounds, or to make letters easier to read.

Although there are not many Adlam Unicode fonts, and they will be changed, legacy forms are likely to persist for some time alongside the new forms.

The 2017 release of the Noto Sans Adlam font (still in use in early 2020) contained a set of glyphs that sometimes matched one or other of the shapes shown in variant_shapes, and sometimes used completely different shapes from either. The Noto fonts were updated to the new shapes in September 2020.

Click to also show in variant_shapes shapes produced by the Noto Sans Adlam font at the start of 2020. Red underlines highlight some characters that don't resemble either of the other charts.

Historical approaches to justification

In the early stages of Adlam typography it was quite common to see full justification of printed text that was produced by stretching baselines, rather than by adjusting inter-word spaces. This was influenced by the use of keyboards based on Arabic code points. Handwritten documents, however, were not justified in this way.

Observation: The Winden Jangen site has scans of a number of books which apply full justification. The method of justification appears to be elongation of the baseline, with no affect on the inter-word spacing. See fig_justification. In narrow columns this can produce some exaggerated stretching, as seen in fig_justification_wide. There are many passages in the samples available that apply this exaggerated stretching. Some content also applies justification to the last line in a paragraph, which sometimes produces even wider elongations.

Justification example.
Full justification achieved by stretching baselines.
Justification example.
Full justification achieved by stretching baselines.

Online resources

  1. Universal Declaration of Human Rights - Pular (Adlam)
  2. Winden Jangen ADLaM, 𞤱𞤭𞤲𞤣𞤫𞤲 𞤶𞤢𞤲𞤺𞤲 𞤢𞤣𞤤𞤥
  3. 𞤚𞤀𞤄𞤀𞤂𞤁𞤉 (tabalde.com)
  4. Dictionnaire Pular (webonary)


Thanks to the following people for making useful suggestions that were incorporated into the text: Neil Patel, Ibrahima Barry.