Skip to content
Get a quote Call +66 93 004 4098

Web design and UX

Thai fonts for websites: how to choose type that reads well and loads fast

Thai script breaks rules English font guides take for granted. How to pick a readable Thai web font, size it properly and keep it fast.

Cover image for this guide: Typography

Which Thai fonts work best for websites?

For most business websites in Thailand, a free font from Google Fonts is the right starting point. For long Thai body text, a looped face such as Sarabun or Noto Sans Thai Looped reads comfortably at small sizes.

For a modern, cleaner look, loopless families such as Noto Sans Thai, IBM Plex Sans Thai, Prompt or Kanit work well, with Prompt and Kanit best kept for headings. All of these are released under the SIL Open Font License, which allows commercial use.

Two rules matter more than which family you pick. First, give Thai text more line height than you would give English, because vowels and tone marks stack above and below the line. Second, set Thai body text a little larger than English, because Thai glyphs look smaller at the same pixel size. Get those right and even a plain system font reads well. Get them wrong and the most fashionable face from this year's web design trends will still look cramped.

The rest of this guide explains the choices behind those rules, how to pair Thai with an English font, and how to stop web fonts slowing your pages down.

Looped or loopless: choosing a Thai style

Traditional Thai letters have small loops, or heads, where each stroke begins. Children learn to read with them, and printed books, newspapers and government documents mostly use looped type. Loopless styles drop those heads and look closer to Latin sans serif letters. They arrived with advertising and have become the default look for brands, apps and signage in Bangkok.

Where looped type works best

  • Long body text: articles, policies, menus with descriptions, clinic treatment details.
  • Older readers and formal audiences, such as legal, medical, finance or government-facing firms.
  • Small sizes, where the loops help tell similar letters apart.

Where loopless type works best

  • Headings, navigation, buttons and short marketing lines.
  • Brands that want a contemporary, international feel, such as cafés, fashion, tech and co-working spaces.
  • Pages that mix Thai and English closely, since loopless shapes sit more comfortably beside Latin letters.

The risk with loopless body text

Several Thai letters differ only by a loop or a small notch. Without loops, pairs such as บ and ป or ด and ต rely on finer details, and at 14 or 15 pixels on a cheap phone screen they blur together. Loopless body text can work, but choose a family designed for text rather than display, and give it generous size and spacing.

A common and sensible pattern is a loopless family for headings and a looped or text-oriented family for paragraphs. Some families, including Noto Sans Thai and IBM Plex Sans Thai, also come in a looped version, which keeps the two styles visually related.

Free Thai web fonts worth using

Google Fonts lists dozens of families that support Thai. The short list below covers most business needs. Every family here is published in the Google Fonts repository under the SIL Open Font License, which permits use on commercial websites, self-hosting and modification, as long as you do not sell the font files themselves. Check the licence file for any font you download elsewhere; many free Thai fonts shared on forums are free for personal use only.

FamilyStyleBest forWhy it works
SarabunLoopedBody text, formal contentFamiliar from official documents, very readable in long paragraphs
Noto Sans Thai LoopedLoopedBody text in bilingual sitesDesigned to sit with the wider Noto family
Noto Sans ThaiLooplessInterfaces, headings, mixed Thai and EnglishNeutral shapes, pairs easily with Noto Sans and many Latin fonts
IBM Plex Sans ThaiLoopless (looped version available)Corporate and B2B sitesBuilt to sit beside IBM Plex Sans, a clear pairing
PromptLooplessHeadings, buttons, short linesStrong geometric character, many weights
KanitLooplessDisplay headingsBold, compact look, less suited to long paragraphs
AnuphanLooplessHeadings and UI textFriendly, open shapes that stay clear at small sizes
Noto Serif ThaiLooped, serifEditorial and premium brandsA quieter serif option for long reading

Size, line height and line breaks

These are the Thai-specific settings that make or break readability.

Size: Thai looks smaller

Thai letters are mostly the height of a Latin x-height, with vowels and tone marks using the space above and below. So at 16 pixels, Thai looks noticeably smaller than English. A practical starting point is 17 to 18 pixels for Thai body text where English would use 16, then adjust by eye with the chosen family. Many sites simply set a slightly larger size on pages with lang="th".

Line height: room for stacked marks

A syllable can carry a vowel above the consonant and a tone mark above that, while another vowel hangs below. With a tight line height of 1.2 or 1.3, marks on one line touch descending vowels on the line above. Around 1.6 to 1.8 is a safer range for Thai paragraphs. Headings can be tighter, but check them with real words that stack, such as ที่ and นี้, rather than English placeholder text.

Line breaks: no spaces between words

Thai uses spaces between phrases and sentences, not between words. Modern browsers break Thai lines using built-in dictionaries, which works well most of the time but can split unusual brand names or transliterated terms awkwardly. Useful habits:

  • Avoid justified Thai text. It stretches the few spaces available into large gaps.
  • Where a long word breaks badly, insert a zero-width space or a wbr element at the right point in that heading. Do this sparingly and listen to the result with a screen reader, since hidden characters can change how text is read aloud.
  • Never add manual line breaks to force wrapping; they break on other screen widths.

These settings are also accessibility issues. Our guide to website accessibility covers contrast, zoom and language attributes that apply to Thai pages too.

Pairing Thai and Latin fonts

Most Bangkok business sites show English and Thai together: brand names, product codes, prices, email addresses and whole English pages. When a Thai font lacks Latin letters, or has Latin letters that clash, the browser falls back to another font mid-sentence and the text looks patched together.

Three ways to pair

  1. Use a superfamily. Noto Sans with Noto Sans Thai, or IBM Plex Sans with IBM Plex Sans Thai. The designers matched weights and proportions, so this is the safest route.
  2. Use a Thai family's own Latin. Sarabun, Prompt and Kanit include Latin letters designed alongside the Thai, which suits sites where English appears only in small doses.
  3. Match by eye. Choose a Latin font whose x-height lines up with the Thai letter height and whose stroke weight feels similar at the same size. Set both in the same paragraph and look for one that stands out.

Setting up the stack

List the Latin font first and the Thai font second in your CSS font-family, then generic fallbacks. The browser uses the first font that contains each character, so English picks up the Latin face and Thai picks up the Thai face. Keep weights consistent: if headings use 600 in English, load 600 for Thai too.

Record these choices once, as font tokens with sizes and line heights per language, in your website design system. That stops each new page or plugin inventing its own Thai settings.

Keeping Thai fonts fast

Every font weight is a separate file, and Thai files are larger than Latin-only ones because they carry both scripts. Load five weights of two families and a phone on mobile data can wait on fonts before text appears. A few habits keep it quick, and fonts are one of the first things we check in website speed optimization.

Load less

  • Two or three weights, usually regular, a medium or semibold, and bold. Skip italics; Thai has no traditional italic and slanted Thai rarely helps.
  • WOFF2 only. Every current browser supports it and it is the most compact format.
  • Subset where you can. Split files by script with unicode-range so an English-only page never downloads Thai glyphs. Google Fonts already serves split files this way.
  • Consider a variable font if the family offers one and you need several weights; one file can replace three or four.

Self-host or use a font CDN?

Browsers no longer share cached fonts between different websites, so the old argument that visitors already have Google Fonts cached no longer holds. Self-hosting WOFF2 files on your own domain saves a connection to another server and keeps visitor IP addresses from going to a third party, which is tidier under PDPA. Keep the licence file with the fonts.

Show text straight away

Use font-display: swap so text appears in a fallback font while the web font loads, and preload the one body weight used above the fold. Pick fallbacks that exist on each platform: Thonburi or Sukhumvit Set on Apple devices, Leelawadee UI or Tahoma on Windows, and Noto Sans Thai on most Android phones, followed by sans-serif.

Testing before launch

Thai typography only proves itself on real content and real screens. Design tools on a large monitor hide the problems that show up on a budget Android phone in a taxi. Before launch, run through the checks below with actual Thai copy, not placeholder text. Writing the copy first also helps in other ways, as our website copywriting tips that turn visitors into leads explain, because headings in Thai are often longer than their English equivalents and need room in the layout.

Include forms in the test. Labels, placeholders, error messages and buttons often fall back to a system font when a plugin sets its own styles, and cramped Thai labels undo good contact form best practices.

Fonts are one part of a two-language site. Our walkthrough on how to build a bilingual Thai-English website covers URLs, switchers and translation workflow. When we handle multilingual website development, font loading, per-language sizes and line heights are set in the theme from the start; our Business package, from THB 30,000, includes English and Thai across up to 15 pages. If you want the Thai side of your site to read properly, ask for a website development quote and tell us which pages matter most.

  • Real devicesCheck an iPhone, a mid-range Android phone and a Windows laptop. Fallback fonts differ on each.
  • Stacked marksFind words with marks above and below, and confirm nothing clips or touches the line above, including in buttons and menus.
  • Line breaksResize the browser slowly and watch headings for awkward splits in brand names or long words.
  • Mixed textLook at sentences that combine Thai with English, numbers and prices. Check that baselines and weights look even.
  • Bold and sizesConfirm bold Thai is actually bold, not synthesised by the browser because that weight was not loaded.
  • Slow networkThrottle the connection in browser developer tools and see how long text takes to appear.
  • ZoomZoom to 200% and check that Thai text still wraps cleanly without overlapping.

Who reviewed this guide

Litesh Dhir, co-founder of Website Development Bangkok
Litesh Dhir, Co-founder, SEO and web development

Who builds your site

Litesh Dhir

Builds and ranks the websites: the systems behind the 17 client sites whose Search Console numbers we publish.

More about us

More on web design and UX

Sources

Litesh Dhir, co-founder of Website Development Bangkok
Reviewed by Litesh DhirCo-founder, SEO and web development

More about us

Common questions

What is the best Thai font for a website?

There is no single best font; it depends on the job. For long Thai paragraphs, a looped family such as Sarabun or Noto Sans Thai Looped is a safe choice. For headings and a modern look, loopless families such as Noto Sans Thai, IBM Plex Sans Thai or Prompt work well. Pick one that pairs with your English font, and test it on real phones.

Are Thai fonts on Google Fonts free for commercial use?

The Thai families on Google Fonts are published under open licences, most commonly the SIL Open Font License, which allows use on commercial websites, embedding and self-hosting. You may not sell the font files on their own. Always check the licence shown on the family's page and keep a copy with your site files. Fonts downloaded from other free-font sites often have stricter terms.

Why does Thai text look smaller than English at the same size?

Most Thai consonants are about as tall as lowercase Latin letters like x, while the space above and below is reserved for vowels and tone marks. A font size describes that whole box, so the letters themselves appear smaller. Setting Thai body text one or two pixels larger than English, with a more generous line height, usually balances the two languages.

Should Thai body text use a looped or loopless font?

For long reading, looped fonts are the safer choice because the loops help distinguish similar letters at small sizes, and older readers find them familiar. Loopless fonts suit headings, menus and buttons, and they can work for body text if the family is designed for text and set large enough. Many sites combine the two: loopless headings with looped paragraphs.

Do Thai web fonts slow a website down?

They can, because Thai font files are larger than Latin-only ones and each weight is a separate download. Keep it to two or three weights in WOFF2 format, split files by script so English pages skip Thai glyphs, self-host them, preload the main body weight and use font-display: swap so text appears straight away while the font loads.

Tell us about your website

Send a few lines on WhatsApp or through the quote form. You get a written quote with the scope, timeline and price for your project.

Or WhatsApp or call +66 93 004 4098, every day, 10:00 to 19:00 ICT. service@websitedevelopmentbangkok.com

WhatsApp Call