What breaks when the text is not in English
Almost every default you have been given is a Latin default
The 1.5 line height, the 45-to-75 character measure, the type scale, the italic convention, the letter-spacing rules — all of them were worked out for the Latin alphabet, and most of them degrade silently in other scripts. Nothing warns you. The page renders, the text is legible enough that a reviewer who does not read the script sees nothing wrong, and a reader who does read it can immediately tell that nobody checked.
This matters here because a large share of this course's readers work in Hindi, Marathi, Bengali, Tamil, Telugu, Urdu or Punjabi, often alongside English on the same page.
Devanagari
Used for Hindi, Marathi, Nepali, Sanskrit and others. Three structural facts change your settings:
The shirorekha. A horizontal headline runs along the top of the letters and joins the word together. This is why letter-spacing must be left at normal — tracking breaks the line into fragments, as covered earlier.
Matras above and below. Vowel signs stack above the headline and below the baseline, and conjunct consonants stack vertically too. The total vertical extent of a line is therefore much greater than the extent of a Latin line at the same size, and a line height tuned for Latin will clip or collide. Devanagari generally wants roughly 1.6 to 1.8 where Latin wants 1.4 to 1.5.
Apparent size. At the same point size, Devanagari and Latin do not look like the same size, and which looks bigger depends on the two fonts. On a mixed Hindi-and-English page you often need a size adjustment for one of them, which font-size-adjust or a separate rule can supply.
Free, well-made Devanagari families, all openly licensed: Noto Sans Devanagari and Noto Serif Devanagari, Mukta and Baloo from Ek Type, Hind and the Devanagari families on Fontshare from the Indian Type Foundry, and Tiro Devanagari for text setting.
Arabic and Urdu
Right to left, which changes layout direction and not only text direction — the whole interface mirrors, including navigation, icons that imply direction, and progress. In CSS this is dir="rtl" on the element plus logical properties (margin-inline-start rather than margin-left), which then work in both directions from one stylesheet.
Letters change shape depending on position in the word — initial, medial, final or isolated — so the text is shaped by the font at render time and cannot be treated as a sequence of independent glyphs. Letter-spacing is again destructive.
Urdu is conventionally set in Nastaliq, a style with a steeply sloping baseline where each word cascades down and to the left. This needs dramatically more line height than anything in the Latin world — commonly 2.0 or more — and a font built for it, such as Noto Nastaliq Urdu. Setting Urdu in a Naskh font is legible but reads, to an Urdu reader, roughly the way an English paragraph set entirely in a condensed display face reads to you.
Numbers inside right-to-left text run left to right, which the bidirectional algorithm handles automatically and which produces genuinely confusing results when a string mixes scripts and somebody has hard-coded a direction.
Other Indic scripts
Tamil, Telugu, Kannada, Malayalam, Bengali, Gujarati, Odia and Gurmukhi each have their own metrics and their own stacking behaviour. Bengali has a headline like Devanagari; Tamil has fewer conjuncts and a wider, rounder texture; Malayalam has many. What is common to all of them is that they need more vertical room than Latin and that their glyph shaping cannot be interfered with.
Noto covers all of them, which is what the project was built for — the name is short for no more tofu, tofu being the empty rectangle a renderer shows when it has no glyph for a character.
CJK
Chinese, Japanese and Korean have no spaces between words, so lines may break almost anywhere, and there are rules about which characters may not begin or end a line. There is no italic tradition; emphasis is conventionally a weight change or emphasis dots beside the characters, which CSS supports as text-emphasis. Glyphs occupy a full em square, so line length is counted differently and a 66-character measure is not a meaningful target.
The font stack, and what actually happens
A font stack is evaluated per character, not per element:
body {
font-family: 'Inter', 'Noto Sans Devanagari', system-ui, sans-serif;
}Latin characters come from Inter; Devanagari characters, which Inter does not contain, fall through to Noto. This works well and is the normal approach. It also means a mixed sentence is set in two typefaces, so the two need compatible weight and apparent size or the sentence will look assembled.
Set the lang attribute correctly on the element. It selects the right glyph forms where a font serves several languages, drives hyphenation, and tells screen readers which pronunciation to use. A Hindi paragraph inside an English page needs lang="hi" on that paragraph.
The honest position
There is no automatic fix for any of this. The defaults are Latin, the tooling is better for Latin, most published guidance is about Latin, and the failures are invisible to a reviewer who cannot read the script.
What works is unglamorous: get real text in the target script from somebody who reads it, put it in the actual layout at the actual size, and have that person look at it. Placeholder text in the wrong script tells you nothing, and machine-translated text often contains shaping that a native reader would never write. One reader, ten minutes, will find more than a week of your own inspection.
The one thing to keep
Line height, letter spacing, measure and the italic convention are all Latin defaults that degrade silently in other scripts — Devanagari and Indic scripts need more vertical room and no tracking, Urdu Nastaliq needs far more still, and the only reliable check is a native reader looking at real text in the real layout.
Before you move on
A site sets all headings with letter-spacing: 0.04em and line-height: 1.3. The English headings look refined; the Hindi headings look broken and the matras are clipped. Which pair of changes addresses the causes?
Pick the one you would defend. Nobody sees your answer.