Karadžić based his alphabet on the previous "Slavonic-Serbian" script, following the principle of "write as you speak and read as it is written", removing obsolete letters and letters representing iotified vowels, introducing ⟨J⟩ from Latin alphabet instead, and adding several consonant letters for sounds specific to Serbian phonology. During the same period, Croatian linguists led by Ljudevit Gaj adapted the Latin alphabet, in use in western South Slavic areas, using the same principles. As a result of this joint effort, Cyrillic and Latin alphabets for Serbo-Croatian have a complete one-to-one congruence, with the Latin digraphs Lj, Nj, and Dž counting as single letters.

Vuk's Cyrillic alphabet was officially adopted in Serbia in 1868, and was in exclusive use in the country up to the inter-war period. Both alphabets were co-official in the Kingdom of Yugoslavia and later in the Socialist Federal Republic of Yugoslavia. Due to the shared cultural area, Gaj's Latin alphabet saw a gradual adoption in Serbia since, and both scripts are used to write modern standard Serbian, Bosnian and Montenegrin; Croatian has used only the Latin alphabet. In Serbia, Cyrillic is seen as being more traditional, and has the official status (designated in the Constitution as the "official script", compared to Latin's status of "script in official use" designated by a lower-level act). It is also an official script in Bosnia and Herzegovina and Montenegro, along with Latin.

Cyrillic is in official use in Serbia, Montenegro and Republika Srpska.[1] Official documents are printed in Cyrillic only (2006).[1] Although the Bosnian language "officially accept[s] both alphabets",[1] the Latin script is almost always used in the Federation of Bosnia and Herzegovina,[1] whereas Cyrillic is in official and every-day use in Republika Srpska[1] (and is used only by the Serbs[2]).

The following table provides the upper and lower case forms of the Serbian Cyrillic alphabet, along with the equivalent forms in the Serbian Latin alphabet and the International Phonetic Alphabet (IPA) value for each letter:

The two Slavic scripts, Glagolitic and Cyrillic, in tradition, were invented by the Byzantine Christian missionaries and brothers Cyril and Methodius in the 860s, amid the Christianization of the Slavs. Glagolitic appears to be older, predating the introduction of Christianity, only formalized by Cyril and expanded to cover non-Greek sounds. Cyrillic may have been a creation of Cyril's disciples, perhaps at the Preslav Literary School in the 890s.[3]

The earliest form of Cyrillic was the ustav, based on Greek uncial script, augmented by ligatures and letters from the Glagolitic alphabet for consonants not found in Greek. There was no distinction between capital and lowercase letters. The literary Slavic language was based on the Bulgarian dialect of Thessaloniki.[3]

He wrote several books; Mala prostonarodna slaveno-serbska pesnarica and Pismenica serbskoga jezika in 1814, and two more in 1815 and 1818, all with the alphabet still in progress. In his letters from 1815-1818 he used: Ю, я, Ы and Ѳ. In his 1815 song book he dropped the Ѣ.[4]

The alphabet was officially adopted in 1868, four years after his death.[5]

Orders issued on the 3 and 13 October 1914 banned the use of Serbian Cyrillic in the Kingdom of Croatia-Slavonia, limiting it for use in religious instruction. A decree was passed on January 3, 1915, that banned Serbian Cyrillic completely from public use. An imperial order in October 25, 1915, banned the use of Serbian Cyrillic in the Condominium of Bosnia and Herzegovina, except "within the scope of Serb Orthodox Church authorities".[6][7]

With the collapse of Yugoslavia in the 1990s, Serbo-Croatian was divided into its variants on ethnic lines (as it had been in pre-Yugoslav times) and Cyrillic is no longer used officially in Croatia, while in Serbia, Bosnia and Herzegovina and Montenegro the Serbian Cyrillic stayed the official constitutional script.[9]

⟨Ћ⟩ was adopted by Karadžić to represent the voiceless alveolo-palatal affricate (IPA: /tɕ/). The letter was based on, but different in appearance to, the letter Djerv, which is the 12th letter of the Glagolitic alphabet; that letter had been used in written Serbian since the 12th century, to represent /ɡʲ/, dʲ/ and /dʑ/.

Karadžić adopted a design by Lukijan Mušicki for the letter ⟨Ђ⟩. It was based on the letter ⟨Ћ⟩, as adapted by Karadžić.

Serbian Cyrillic does not use several letters encountered in other Slavic Cyrillic alphabets. It does not use hard sign (ъ) and soft sign (ь), but the aforementioned soft-sign ligatures instead. It does not have Russian/Belorussian Э, the semi-vowels Й or Ў, nor the iotated letters Я (Russian/Bulgarian ya), Є (Ukrainian ye), Ї (yi), Ё (Russian yo) or Ю (yu), which are instead written as two separate letters: Ja, Je, Jи, Jo, Jy. J can also be used as a semi-vowel. The letter Щ is not used. When necessary, it is transliterated as either ШЧ or ШT.

Serbian and Macedonian italic and cursive forms of lowercase letters б, г, д, п, and т, differ from those used in other Cyrillic alphabets (in Serbian ш can optionally be underlined, whereas in Macedonian it is never underlined). That presents an obstacle in Unicode modeling, as the glyphs differ only in italic versions, and historically non-italic letters have been used in the same code positions. Serbian professional typography uses fonts specially crafted for the language to overcome the problem, but texts printed from common computers contain East Slavic rather than Serbian italic glyphs.[11] Cyrillic fonts from Adobe,[12] Microsoft (Windows Vista and later) and a few other font houses[citation needed] include the Serbian variations (both regular and italic).

If the underlying font and Web technology provides support, the proper glyphs can be obtained by marking the text with appropriate language codes. Thus, in non-italic mode:

<span lang="sr">бгдпт</span>, produces бгдпт, same (except for the shape of б) as

Since Unicode still doesn't provide the required difference, OpenTypelocl (locale) support must be present. Programs like Mozilla Firefox, LibreOffice (currently under GNU/Linux only), and some others provide required OpenType support. Starting from CSS 3, web authors also have to use this: font-feature-settings: 'locl';. Of course, font families like GNUFreeFont, DejaVu, Ubuntu, Microsoft "C*" fonts from Windows Vista and above must be used.