Guide
Handwriting fonts beyond the Latin alphabet
By Ayush NautiyalUpdated
Most text-to-handwriting tools are Latin-only, and they do not say so until you paste in Devanagari and get a row of boxes.
TextToHandAI covers nine writing systems. This explains what is available in each, and the two things about non-Latin scripts that catch people out.
The misunderstanding that generates most of the email
The language filter does not translate anything.
It filters the font list down to faces that can actually draw that script. Nothing more. If you select Hindi and then type hello, you get the word hello drawn by a font that happens to also cover Devanagari. You do not get नमस्ते.
To get Hindi handwriting you have to type or paste Hindi into the box. Same for every other script. The converter changes how characters look; it has no idea what they mean.
A hint now appears in the panel when you pick a non-Latin language, because enough people hit this that it was clearly the interface’s fault rather than theirs.
What is available
Cyrillic (Russian, Ukrainian, Bulgarian, Serbian). Four faces. Retro Brush and Marker Script are the most handwriting-like, Chalk Hand reads as classroom writing, Soft Round is rounded and informal. Flowing Cursive also covers Cyrillic, which makes it the one to use if you want the same face across a mixed Russian-and-English document.
Devanagari (Hindi, Marathi, Nepali). Kalam, in three weights. It is the standard choice for informal Devanagari and it covers Latin too, so mixed Hindi-English text stays visually consistent.
Arabic. Two, and they are very different. Ruqaa is the everyday handwriting style used across the Arabic-speaking world — compact, fast, what people actually write in. Nastaliq is the sloped calligraphic style used for Urdu and Persian, where each word cascades down and to the left. Nastaliq is beautiful and needs generous line spacing; at tight spacing the descending words collide.
Hebrew. Tall Hand. Narrow and condensed, covers Latin as well.
Korean. Four. Natural Flow is a pen-style script, Gaegu is rounder and softer, Gamja Flower is thin and childlike, Brush Stroke is a brush face with real weight variation. All four cover Latin too.
Japanese. Four. Yomogi and Zen Pen are everyday handwriting. Rounded Pop is the bubbly style used on casual signage and stationery. Brush Kanji is a formal brush face, good for a short line and heavy for a paragraph.
Chinese (Simplified). Four, running from readable to barely. Mao Brush is a legible brush face. Running Hand is the semi-cursive 行書 style. Grass Script and Wild Cursive go into genuinely cursive territory, where characters merge and even fluent readers slow down. Wild Cursive is for display, not for anything anyone has to read.
Thai. Three. Sriracha, Itim and Charmonman, all informal, all covering Latin as well.
Every one of them is on the font gallery with a live specimen. The filter there uses the same language list as the converter.
Why connected scripts are rendered differently
This is the second thing worth knowing.
The effect that makes Latin handwriting look handwritten is per-character jitter: draw each glyph separately, nudge it, tilt it, vary the gap. That works because Latin letters are independent shapes sitting next to each other.
Arabic, Devanagari and Thai are not like that.
Arabic letters join, and the shape of a letter depends on its neighbours. Devanagari hangs characters from a headline and stacks conjunct consonants. Thai places vowel and tone marks above and below the consonant they belong to. In all three cases the browser’s text shaper takes the sequence of characters and works out the correct connected form.
Draw each glyph separately at its own position and that is destroyed. The joins break. The headline fragments. The marks drift off the letters they belong to. The first version of the tool did exactly this and the output was unusable.
So those fonts are jittered word by word instead. Each word is handed to the browser whole, shaped correctly, and then the whole word is tilted and offset as a unit. The joins survive. The cost is less variation, because the letters inside a word sit exactly where the shaper puts them.
Practical consequence: the realism slider does less in these scripts. That is correct, not a bug. If you are writing in Arabic, Hindi or Thai, you will notice less difference between 30 and 70 than a Latin user would.
Right-to-left
Both Arabic faces are marked right-to-left, so the preview aligns and flows correctly. Mixed Arabic-and-English text follows the browser’s bidirectional algorithm, which usually does the sensible thing and occasionally does not, especially when a line starts with a number or a bracket.
Practical notes
Line spacing needs to go up for most non-Latin scripts. Devanagari has the headline plus matras above and below. Thai stacks marks. Nastaliq descends. The Latin default of 1.55 is tight for all of them; 1.8 to 2.0 is more comfortable.
CJK needs larger handwriting sizes. A Chinese character carries far more detail than a Latin letter in the same em square. At the default 27 px, complex characters start to fill in. Go to 32 or higher.
Mixed-script documents work. Pick a font that covers both scripts, and the whole document stays in one hand. Kalam for Hindi-English, Flowing Cursive for Russian-English, any of the Korean or Japanese faces for their script plus Latin.
Punctuation can fall back. If a face lacks a particular mark, the browser substitutes from another font, and the substitute will not match the handwriting. Usually it is a curly quote or an unusual dash. Swapping to a straight quote fixes it.
Asking for a script
Bengali, Tamil, Telugu, Greek and Georgian are not covered yet. If you need one, the contact page is the place. Several of the scripts listed above are on the site because somebody wrote in, and the changelog records when each one landed.