Typography

Type carries almost everything a user reads — across English, Burmese, and Thai, often on a small, low-end screen. These rules keep text legible and scannable, and safe when Burmese and Thai run longer than English.

Typefaces

Aa
Record today's cash sale · 1234
Inter · Latin & numerals
က
ဒီနေ့ ငွေသားအရောင်း
Noto Sans Myanmar · Burmese
บันทึกยอดขายวันนี้
Noto Serif Thai · Thai

The rule. Inter is the Latin typeface — a neutral, highly legible sans designed for screens that stays clear at small sizes. Burmese uses Noto Sans Myanmar, which renders stacked characters and tall glyphs correctly. Thai uses Noto Serif Thai — a professional serif that gives Thai its own distinct, refined voice. All three share one scale.

Why. A first-time, low-literacy user reads slowly; an open, unfussy letterform with generous spacing is faster to decode than a tight or decorative one.

Type scale

One scale serves both languages. Sizes run a little larger than a typical desktop scale, because comfortable reading matters more here than fitting more on screen.

Display40/48 · 700
Large title34/41 · 700
Title 128/34 · 700
Title 222/28 · 600
Title 320/26 · 600
Headline17/22 · 600
Body17/24 · 400
Callout16/22 · 400
Subhead15/20 · 400
Footnote13/18 · 400
Caption12/16 · 500

Weights

Build hierarchy with weight, not a pile of different sizes. Two or three sizes plus a weight step keeps a screen calm and easy to scan.

The app should do the thinkingregular · 400
The app should do the thinkingmedium · 500
The app should do the thinkingsemibold · 600
The app should do the thinkingbold · 700

Burmese, Thai & line height

Burmese runs about 1.3–1.7× longer than the same English, and both Burmese and Thai stack marks above and below the baseline that need more vertical room. Never let a layout assume English length, and give Burmese and Thai a looser line height.

ENRecord today's cash sale
MYဒီနေ့ ငွေသားအရောင်းကို မှတ်တမ်းတင်ပါ
THบันทึกยอดขายเงินสดวันนี้

When to use which style

  • Large title / Title 1 — the one thing a screen is about.
  • Headline — a card's heading or a grouped section.
  • Body / Callout — the default for sentences and values.
  • Footnote / Caption — metadata and secondary labels, never the main message.

When NOT to

  • ❌ Don't stack three or more sizes to create hierarchy — use weight instead.
  • ❌ Don't size a layout to English and let Burmese overflow or clip.
  • ❌ Don't drop below Footnote (13px) for anything a user must read.

What user problem this solves

Comprehension. If text is too small, too tight, or clips in Burmese, a first-time user can't read the screen — and stops trusting the app. A generous, shared scale with room for Burmese keeps every screen readable for everyone we serve.

Test in Burmese and Thai, not just English

A screen that looks balanced in English can break in Burmese or Thai — longer strings, taller glyphs. Check those layouts before calling a screen done.

Token reference

Font families

TokenValueSample
fontFamily.sansInter, 'Noto Sans Myanmar', 'Noto Serif Thai', sans-serifSales 123
fontFamily.myanmar'Noto Sans Myanmar', sans-serifအရောင်း ၁၂၃
fontFamily.thai'Noto Serif Thai', serifยอดขาย ๑๒๓
fontFamily.monoui-monospace, SFMono-Regular, Menlo, monospaceSales 123

Type scale

TokenSizeLine height
fontSize.caption211px14px
fontSize.caption12px16px
fontSize.footnote13px18px
fontSize.subhead15px20px
fontSize.callout16px22px
fontSize.body17px24px
fontSize.headline17px22px
fontSize.title320px26px
fontSize.title222px28px
fontSize.title128px34px
fontSize.largeTitle34px41px
fontSize.display40px48px

Weights

TokenValue
fontWeight.regular400
fontWeight.medium500
fontWeight.semibold600
fontWeight.bold700

Text styles

Ready-made presets components consume directly (size + line-height + weight + tracking).

TokenSizeLine heightWeightTracking
textStyles.display40px48px700-0.4
textStyles.largeTitle34px41px700-0.4
textStyles.title128px34px700-0.4
textStyles.title222px28px6000
textStyles.title320px26px6000
textStyles.headline17px22px6000
textStyles.body17px24px4000
textStyles.callout16px22px4000
textStyles.subhead15px20px4000
textStyles.footnote13px18px4000
textStyles.caption12px16px5000.4