Text effects that reveal one letter at a time are popular, and they look broken in Hindi or Tamil if done naively. The word "क्षत्रिय", for example, contains conjuncts that are several Unicode code points drawn as one shape. Split them and you get dotted circles and detached vowel signs.
The safe way in JavaScript
const seg = new Intl.Segmenter('hi', { granularity: 'grapheme' });
const clusters = [...seg.segment('नमस्ते दुनिया')].map(s => s.segment);
// animate each cluster, not each code pointEven grapheme clusters can split some conjuncts in a way that looks odd while animating, because the font shapes across them. The safest effect for Indian scripts is per word or per line, with fades and slides rather than per-letter scale.
Layout
Devanagari has a headline (shirorekha) and marks above and below it. Give more line height than for Latin text and do not clip text containers tightly, or marks get cut off during scale and slide animations.
Fonts and tools
Use well-supported fonts such as Noto Sans Devanagari or Mukta, and test them in the actual player. Vector animation tools convert text to shapes or shape it at runtime; check both paths. If text is converted to outlines in After Effects for Lottie, it cannot be translated later, so keep translatable text as live text in your app where possible.
Localisation
Hindi text is often longer or shorter than English. Design animations around flexible containers rather than fixed widths. ExodeUI has built-in UI layout, which helps here; we make ExodeUI.