Serbian Cyrillic cursive looks different from Russian because the two writing traditions draw five lowercase letters — б, г, д, п and т — with different italic and handwritten shapes. Unicode assigns both traditions the exact same code points (б is U+0431 in Belgrade and in Moscow), so the difference lives entirely in the font: quality fonts swap in Serbian, Bulgarian or Macedonian shapes through the OpenType locl (Localized Forms) feature when your text carries the right language tag.
If Serbian italics ever looked "wrong" to you — a б like the Greek δ, a т like an upside-down m with a bar — nothing is broken: you are seeing the Southern (Serbian/Macedonian) tradition, while most screen fonts default to the Eastern (Russian) one. Below: the five letters side by side, the locl mechanism in plain English, and what readers and designers can do about it.
See the Russian side right now: paste бгдпт into the free Russian calligraphy generator — it renders any Cyrillic text verbatim (no translation) in 30 calligraphy styles with PNG download, showing how much of every letterform is the designer's choice.
The split is narrow: in upright print, Serbian and Russian forms are essentially standardized — the national variants live in italics and handwriting, and only for five lowercase letters. Shapes are described in words below, because the glyph your browser draws depends on your fonts — which is exactly the problem.
| Letter | Code point | Russian italic / cursive | Serbian & Macedonian italic / cursive |
|---|---|---|---|
| б | U+0431 | Like the digit 6 — similar, but not identical, to a "6" | May vary in italic; in cursive it looks like the lowercase Greek letter δ (delta) |
| г | U+0433 | A curved hook, like a mirrored Latin s | Written straight, like a Latin i, with a bar (overline) on top — never the curved Russian hook |
| д | U+0434 | Like ∂ — a mirrored 6, the partial-derivative shape | Like a single-storey Latin g (shared with Bulgarian and Macedonian typography) |
| п | U+043F | Like a Latin italic n | In handwriting, like ū — a Latin u with a bar over it |
| т | U+0442 | Like a Latin m | Like an upside-down Latin m with a stroke above — the bar keeps it distinct from ш |
Two fine points: handwritten Russian (and Bulgarian) capital Д looks like Latin D; Serbian handwritten Д looks like the numeral 2 — unknown in Russia, Ukraine, Belarus or Bulgaria. Russian schoolchildren handwrite д g-like too; it is the italic type tradition where Russian goes its own way with ∂.
Two typographic cultures, not mistakes: the Eastern tradition from Peter the Great's civil script, the Southern one rooted in Serbian handwriting. Learning the Russian hand shapes first? Our Russian cursive alphabet chart covers all 33 letters with connections — this article is its companion for what changes south of the Danube.
Bulgarian goes further: its variants are not confined to italics. Many lowercase letterforms in upright print echo cursive or Latin shapes — rounded arcs where Russian uses sharp corners, the occasional ascender or descender — and uppercase Д and Л can turn triangular, like Greek Δ and Λ.
On the five letters, Bulgarian mostly sides with the Southern group in italics (its д is g-like, like Serbian), while its handwritten capital Д follows the Russian Latin-D form. The three-way split: Russian (Eastern) defaults, Bulgarian (Western) upright variants, Serbian/Macedonian (Southern) italic variants.
Macedonian uses the same Southern variants — δ-like б, straight г with overline, g-like д, ū-like п, barred upside-down-m т: the Macedonian alphabet, official since 1945, was modeled directly on Vuk Karadžić's reformed Serbian Cyrillic.
Macedonian adds two letters of its own: ѓ (Gje, U+0453) and ќ (Kje, U+045C). Everything else here about Serbian italics applies to Macedonian too — which is why developers typically ship both localizations together.
The key idea: Unicode encodes characters, not glyphs. б is U+0431 drawn the Russian way or the Serbian way — same code points regardless of visual style, so picking the national shape is the font's job, not the encoding's.
Most fonts default to the Central/Eastern — Russian — letterforms. For Bulgarian or Serbian/Macedonian forms, a font needs OpenType features: locl (Localized Forms), which fires automatically for language-tagged text, or an opt-in stylistic set (ss##) or character variant (cv##). Type designer Simon Cozens gives the textbook example for б:
feature locl {
script cyrl;
language SRB;
sub be-cy by be-cy.SRB;
} locl;
In plain English: "when this text is Cyrillic tagged as Serbian, swap the default б for the Serbian one." Developers ship Serbian (.loclSRB), Bulgarian (.loclBGR) and Macedonian (.loclMKD) variant sets — but support is patchy across apps, so readers do not always see what the author intended.
That gap is why the problem is so visible: most consumer-device text renders in East Slavic glyphs even when Serbian language codes are applied. Adobe's and Microsoft's families (from Windows Vista onward) support Serbian shapes in regular and italic alike — the baseline to demand from any font.
Beyond the five shape-shifters, Serbian has six letters Russian lacks entirely. These are separate code points — a font has them or shows an empty box — so no locl is involved, just coverage:
| Letter | Code point | Name | Origin |
|---|---|---|---|
| ђ | U+0452 | Dje | Designed by the poet-bishop Lukijan Mušicki; adopted by Karadžić |
| ћ | U+045B | Tshe | Based on the Glagolitic letter Djerv |
| ј | U+0458 | Je | Borrowed straight from the Latin alphabet |
| љ | U+0459 | Lje | Ligature of Л with the soft sign, from Sava Mrkalj's designs |
| њ | U+045A | Nje | Ligature of Н with the soft sign, from Sava Mrkalj's designs |
| џ | U+045F | Dzhe | Derived from the older letter "Gea"; also used in Macedonian |
They come from Vuk Karadžić's 1818 reform and his "write as you speak and read as it is written" principle — one letter per sound. He dropped the Church Slavonic inheritance (no hard/soft sign, no Э Я Ё Ю Щ), leaving a tidy 30-letter alphabet. Picking fonts for Serbian? Test these six first: our 12-font Cyrillic coverage test found full Serbian-letter coverage in every font tested (regular weight).
For readers, the cost is subtle wrongness: Serbian text in Russian-default italics looks faintly foreign. For designers it is concrete — a Bulgarian designer recently found a major system font defaulting to Russian forms for б, д, и, й, л, п and т, with no switch for the Bulgarian localization. When italics carry your design's emphasis, the wrong national forms are not a detail.
What actually works:
Tag the language. Use lang="sr", lang="bg" or lang="mk" in HTML, and set the proofing language in Word or InDesign. Without the tag, locl has nothing to fire on.
Choose fonts that implement it. Adobe's and Microsoft's post-Vista families support Serbian shapes in regular and italic. A "Cyrillic support" badge alone does not guarantee the localizations — verify before you commit.
Know the fallbacks. If locl will not fire in your app, look for stylistic sets or character variants named for your language — or use a font cut specifically for it, the only fully robust option.
Test with real text. Set a paragraph of Serbian or Bulgarian — italics included — and check б, г, д, п, т against the table above.
Type any Cyrillic text — Serbian, Bulgarian, Macedonian or Russian — into the Russian calligraphy generator: 30 calligraphy styles, no translation, just your words rendered verbatim, downloadable as PNG (including transparent) or copyable as plain text. The styles appear as each typeface was drawn — the lesson of this article in one box: every curve is a design decision.
Open the Russian Calligraphy GeneratorThe shapes of б, г, д, п and т developed along different national traditions, while Unicode keeps one code point per letter — б is U+0431 in Belgrade and in Moscow. So the font picks the national shape, switching automatically through the OpenType locl (Localized Forms) feature when your text is tagged with the right language.
Localized Forms: an OpenType substitution swapping a font's default glyphs for language-specific ones — e.g. the Russian italic б for the Serbian one when text is tagged Serbian (script cyrl, language SRB). Automatic where supported; otherwise use stylistic sets (ss##), character variants (cv##), or a font cut for your language.
In italics and handwriting: б, г, д, п, т — plus handwritten capital Д (Latin D in Russian, numeral 2 in Serbian). Serbian also has six letters Russian lacks: ђ (U+0452), ј (U+0458), љ (U+0459), њ (U+045A), ћ (U+045B), џ (U+045F).
No. Bulgarian has its own upright variants — lowercase letters echoing cursive or Latin shapes, uppercase Д and Л triangular like Greek Δ and Λ. It shares the Southern g-like italic д with Serbian but not all Serbian italic forms; Macedonian follows the Serbian tradition closely.
You type the same characters — the code points are identical. Then tag the text's language (lang="sr" in HTML, the proofing language in Word or InDesign) and use a font with Serbian localization (Adobe's and Microsoft's families support it since Windows Vista). Most default setups still show Russian shapes even for Serbian-tagged text, so test before you ship.
Serbian. The Macedonian alphabet (official 1945) was modeled on Vuk Karadžić's Serbian Cyrillic, and Macedonian shares the Southern variants — δ-like б, straight г with overline, g-like д, ū-like п, barred upside-down-m т.