About Playpen Sans Thai.
Playpen Sans Thai was designed by TypeTogether after over two years of primary research into handwriting education for Latin-based languages, available at primarium.info.
It is a variable font with a weight range from Thin (100) to ExtraBold (800). It supports two different writing systems: Thai and Latin, covering Thai and over 332 Latin-based languages, along with a set of “reward icons” as emoji. The superfamily also includes a Pan-African Latin, Greek, Cyrillic (Playpen Sans), Arabic (Playpen Sans Arabic), Devanagari (Playpen Sans Deva), and Hebrew (Playpen Sans Hebrew) fonts that expand the language support of the system.
Playpen Sans Thai has alternate glyphs for each character that are automatically applied as you type, with a built-in shuffler that both ensures variety and avoids repetition. This adds to the overall organic, spontaneous, and authentic feel of the handwritten style.
To contribute, see github.com/TypeTogether/Playpen-Sans
Thai
Playpen Sans Thai is a playful and distinctive typeface that reimagines the traditional Thai script with a unique twist. Unlike conventional Thai fonts that rely on simple looped or loopless terminals, this design introduces a subtle yet innovative feature: hook-shaped terminals that hint at the natural starting point of each letter. Inspired by extensive research into the most legible letterforms for graphic novels, this detail not only enhances readability but also adds a touch of whimsy. The flowing strokes capture the fluid, continuous nature of Thai writing, striking a perfect balance between casual and steady—a rhythm that feels neither too fast nor too slow. The result is a font with a lively, fun-loving personality, designed to bring joy and clarity to every word.
A casual handwriting font
Some typefaces excel at just one thing, while others do multiple things well. Playpen Sans stands out by perfectly imitating casual handwriting, blending the organic feel of something made by hand with the precision of a professional digital typeface. Handwritten text is naturally inconsistent, but digital fonts aim for uniformity. Playpen Sans bridges this gap by offering a set of characters that are “the same, but different,” creating an authentic and human-like appearance within the constraints of digital design. It has a set of clear letterforms that are easy to write and recognize. The design forms a bridge between handwritten and typographic letters, friendly to both little readers and adults.
To achieve this, Playpen Sans includes multiple versions of each character and a built-in shuffler, ensuring no two shapes repeat too closely. This results in text that feels spontaneous, fun, and organic, while maintaining the functionality of a modern typeface. Designed with non-designers in mind, it shines in informal settings like greeting cards, invitations, children’s books, and graphic novels. Its clarifying features, such as straight and curved endings for certain letters and optional shapes, add to its versatility.
Playpen Sans combines the best of both worlds: the aesthetic charm of handwritten text and the technological capabilities of a digital font. It’s spontaneous, authentic, and effortlessly bridges the gap between the organic and the digital.
Emojis
Playpen Sans has emojis for breezy and encouraging uses, that each match the eight named weights of the Latin. Find here the list of all the emojis available. You can copy and paste them into your document editor when using the font. 😉
🌞 😍 ☠ ☹ 😉 ✏ 📖 🏠 ✍ 🧩 🦖 🪐 ✈ 🌠 🎂 🎨 📣 👆 👍 👎 🎯 🪫 ✅ ❌ 🏅 🦄
- Designer
- TypeTogether, Sirin Gunkloy, Laura Meseguer, Veronika Burian, José Scaglione
- Classification
- Handwriting, Sans Serif
- Coverage
- 405 languages
- Package release
- v8
- Updated
- Mar 12, 2026
- Monthly usage
- npm918 downloads last month
- jsDelivr8,445 requests last month
- License
- OFL-1.1
Style and character
Visual characteristics associated with this family.
- Childlike
- Sincere
- Handwritten
- Informal
Characters and features
What this family includes and how its files are structured.
Language and character coverage
Thai is the primary writing system.
- AfarQafar · Latin
- AchineseBahsa Acèh · Latin
- Saint Lucian Creole French, Latin
- AcoliLatin
- AfrikaansLatin
- AhtnaAtnakenaegeʼ · Latin
- Assyrian Neo-Aramaic, Latin
- Ainu (Latin)
- AlagoLatin
- Gheg AlbanianGegnisht · Latin
- AmahuacaLatin
- YaneshaʼLatin
- AmisLatin
- AmarakaeriLatin
- AragoneseAragonés · Latin
- AnaangAnaañ · Latin
- Uab MetoUab Metô · Latin
- MapucheMapudungun · Latin
- ArapahoLatin
- Artificial languages, World (Latin)
- AsuKipare · Latin
- AwakLatin
- AymaraAymar · Latin
- Bashkir (Latin)
- BalineseBali · Latin
- Batak TobaLatin
- Banda, West CentralLatin
- BenchLatin
- BedawiyetLatin
- BembaChibemba · Latin
- BetawiLatin
- BenaEkibena · Latin
- BariLatin
- BislamaLatin
- BikolPandan Bikol · Latin
- BanjarLatin
- SiksikaLatin
- BengaLatin
- BapukuLatin
- BretonBrezhoneg · Latin
- Bodo (Latin)
- BosnianBosanski · Latin
- BangwinjiLatin
- Rinconada BikolPandan Bikol · Latin
- BokobaruLatin
- BilenLatin
- CatalanCatalà · Latin
- GarifunaLatin
- Kaqchikel, CentralLatin
- ChachiLatin
- Chavacano, Philippines (Latin)
- Cashibo-CacataiboLatin
- Candoshi-ShapraLatin
- CebuanoBinisaya · Latin
- DikakaLatin
- ChigaRukiga · Latin
- ChamorroChamorru · Latin
- Chinantec, OjitlánLatin
- ChuukeseChuuk · Latin
- ChokweLatin
- Chin, HakaLatin
- AsháninkaLatin
- CorsicanCorsu · Latin
- ColoradoLatin
- Cofán, Latin
- CaquinteLatin
- Ashéninka, PichisLatin
- Crimean TurkishLatin
- SãotomenseLatin
- Seselwa Creole FrenchSeselwa · Latin
- CzechČeština · Latin
- KashubianKaszëbsczi · Latin
- Tedim ChinLatin
- KwereLatin
- WelshCymraeg · Latin
- Cuyonon (Latin)
- DanishDansk · Latin
- TaitaKidawida · Latin
- GermanDeutsch · Latin
- C’LelaLatin
- Lower SorbianDolnoserbšćina · Latin
- Central DusunLatin
- ChidurumaLatin
- DrungLatin
- DawroLatin
- Jola-FonyiJóola-Fóoñi · Latin
- Emai-Iuleha-OraLatin
- EnglishLatin
- SpanishEspañol · Latin
- Ese EjjaLatin
- EstonianEesti · Latin
- BasqueEuskara · Latin
- ExtremaduranLatin
- West Albay BikolPandan Bikol · Latin
- FinnishSuomi · Latin
- FilipinoLatin
- FijianVakaviti · Latin
- Finnish, KvenLatin
- FuliiruLatin
- FaroeseFøroyskt · Latin
- GalloLatin
- FrenchFrançais · Latin
- Old FrenchLatin
- ArpitanLatin
- Northern FrisianLatin
- FriulianFurlan · Latin
- Western FrisianFrysk · Latin
- IrishGaeilge · Latin
- AlekanoGahuku · Latin
- Guadeloupean Creole French, Martinique (Latin)
- Guianese Creole FrenchLatin
- Scottish GaelicGàidhlig · Latin
- ut-Ma’inLatin
- GilberteseKiribati · Latin
- Gelao, KlauLatin
- GalicianGalego · Latin
- Middle High GermanLatin
- GamoLatin
- GofaLatin
- Swiss GermanSchwyzerdütsch · Latin
- WayuuWayuunaiki · Latin
- Gourmanchémagulimancema · Latin
- GusiiEkegusii · Latin
- ManxGaelg · Latin
- 'AleQale · Latin
- GyeleLatin
- GuarayuLatin
- HangaLatin
- HarariLatin
- HadiyyaHadiyyisa · Latin
- Hmong, Northern QiandongHmong (Latin) · Latin
- HiligaynonIlonggo · Latin
- Chin, MatuLatin
- Hmonghveb Hmub · Latin
- Hmong, Southern QiandongLatin
- HaniLatin
- Hmong NjuaLatin
- Hindustani, SarnamiLatin
- HopiHopilàvayi · Latin
- CroatianHrvatski · Latin
- Upper SorbianHornjoserbšćina · Latin
- Haitian CreoleKreyòl Ayisyen · Latin
- HungarianMagyar · Latin
- Huastec, San Luís PotosíLatin
- InterlinguaLatin
- IndonesianIndonesia · Latin
- Interlingue (Latin)
- IlokoIlokano · Latin
- IdoLatin
- RigweLatin
- IraqwLatin
- IcelandicÍslenska · Latin
- ItalianItaliano · Latin
- IzereLatin
- Jamaican Creole EnglishJamiekan · Latin
- Lojban (Latin)lojban (Latin)
- MachameLatin
- JavaneseJawa · Latin
- AdaraLatin
- KalangaLatin
- KutuLatin
- MakondeChimakonde · Latin
- KabuverdianuLatin
- QʼeqchiʼLatin
- KongoKikongo · Latin
- KhasiKa Ktien Khasi · Latin
- KuanyamaOshikwanyama · Latin
- Kazakh (Latin)
- KalaallisutLatin
- KalenjinMarkweta · Latin
- KimbunduLatin
- KonjoLatin
- KaondeLatin
- KarelianKarjala · Latin
- ShambalaKishambaa · Latin
- ColognianKölsch · Latin
- KitubaLatin
- Kurdish (Latin)Kurmancî
- KuriaLatin
- KunamaLatin
- CornishKernewek · Latin
- Latin
- Ladino (Latin)
- Lango, UgandaLatin
- LambaIchilamba · Latin
- LuxembourgishLëtzebuergesch · Latin
- Lingua Franca Nova, Latin
- GandaLuganda · Latin
- LigurianLigure · Latin
- LadinLatin
- LeleLatin
- LombardLatin
- OtuhoLatin
- LozisiLozi · Latin
- LithuanianLietuviškai · Latin
- Luba-LuluaTshiluba · Latin
- LuvaleLatin
- LundaLatin
- LuoDholuo · Latin
- LuyiaLatin
- LatvianLatviešu · Latin
- LuwoLatin
- Matsés (Latin)
- MeruKîmîîrû · Latin
- Mauritian CreoleKreol Morisien · Latin
- MalagasyLatin
- Makhuwa-MeettoImeetto · Latin
- MinangkabauBaso Minangkabau · Latin
- MískitoLatin
- Mandinkamandinka · Latin
- InnuInnu Aimun · Latin
- MohawkKanien’kéha · Latin
- Maranao (Latin)
- MalteseMalti · Latin
- Mixe, TotontepecLatin
- Musi (Latin)
- MuscogeeMvskoke · Latin
- ManyikaLatin
- MozarabicLatin
- MasaabaLatin
- Mazatec, IxcatlánLatin
- Mambila, NigeriaLatin
- NeapolitanNapulitano · Latin
- CahungwaryaLatin
- Norwegian Bokmålnorsk bokmål · Latin
- NyembaLatin
- North NdebeleisiNdebele · Latin
- NdauLatin
- NdambaLatin
- Low GermanNiedersächsisch · Latin
- NdongaLatin
- LomweLatin
- NguluLatin
- Ao NagaLatin
- DutchNederlands · Latin
- Norwegian Nynorsknynorsk · Latin
- NgindoLatin
- NorwegianNorsk · Latin
- NomatsiguengaLatin
- NovialLatin
- South NdebeleisiNdebele · Latin
- NaraLatin
- Jèrriais, Latin
- Northern SothoSepedi · Latin
- KombeLatin
- Nupe-Nupe-TakoLatin
- NyanjaChicheŵa · Latin
- NyankoleRunyankore · Latin
- NyoroLatin
- OccitanLatin
- OgbahLatin
- OkiekLatin
- OromoAfaan Oromoo · Latin
- OroqenLatin
- Otomi, MezquitalLatin
- Tenango Otomi, Latin
- ElfdalianLatin
- Old Welsh, Latin
- PampangaKapampangan · Latin
- PapiamentoPapiamentu · Latin
- Palauana tekoi er a Belau · Latin
- PicardLatin
- Paite Chin, Latin
- PijinLatin
- Pintupi-LuritjaLatin
- PökootMarkweta · Latin
- PolishPolski · Latin
- PiedmontesePiemontèis · Latin
- Pontic (Latin)
- PohnpeianPohnpei · Latin
- Crioulo, Upper GuineaLatin
- PogoloLatin
- PipilLatin
- Old ProvençalLatin
- Ashéninka PerenéLatin
- PortuguesePortuguês · Latin
- Punuyipunu · Latin
- QuechuaRuna Simi · Latin
- KʼicheʼQatzijob'al · Latin
- Kichwa, Unified QuichuaLatin
- Chimborazo Highland QuichuaRuna Simi · Latin
- Quechua, South BolivianLatin
- Quechua, AyacuchoLatin
- Quechua, CuscoRunasimi · Latin
- Quechua, Ambo-PascoLatin
- Quechua, CajamarcaLatin
- Quechua, Huamalíes-Dos de Mayo HuánucoLatin
- Quechua, Margos-Yarowilca-LauricochaLatin
- Quechua, North JunínLatin
- Quechua, Huaylas AncashLatin
- Quechua, Northern Conchucos AncashLatin
- Quechua, Arequipa-La UniónLatin
- Rapa (Latin)
- Réunion Creole FrenchLatin
- RejangLatin
- RendilleLatin
- ResheLatin
- RomagnolLatin
- Rohingya (Latin)
- RomanshRumantsch · Latin
- RundiIkirundi · Latin
- RongaLatin
- RomanianRomână · Latin
- RomboLatin
- LuguruLatin
- AromanianArmani · Latin
- KinyarwandaLatin
- RwaLatin
- SamburuSampur · Latin
- SasakLatin
- SanguShisango · Latin
- SardinianSardu · Latin
- ScotsScots Leid · Latin
- Sassarese SardinianSardu · Latin
- SenaCisena · Latin
- SeriCmiique Iitom · Latin
- SecoyaLatin
- SangoSängö · Latin
- Old IrishLatin
- ShillukLatin
- Shipibo-ConiboLatin
- Arabic, Chadian SpokenLatin
- SidamoLatin
- SlovakSlovenčina · Latin
- SlovenianSlovenščina · Latin
- SalarLatin
- Southern SamiÅarjelsaemiengïele · Latin
- Lule SamiJulevusámegiella · Latin
- Inari SamiAnarâškielâ · Latin
- ShonaChishona · Latin
- SomaliSoomaali · Latin
- AlbanianShqip · Latin
- Serbian (Latin)srpski (latinica, Crna Gora)
- Sranan TongoLatin
- SwatiSiswati · Latin
- SahoLatin
- Saterland FrisianLatin
- SundaneseBasa Sunda · Latin
- SukumaKisukuma · Latin
- SwedishSvenska · Latin
- SwahiliKiswahili · Latin
- Swahili, CongoLatin
- SubaLatin
- SilesianŚlůnsko godka · Latin
- Tetun DiliLatin
- TetumLia Tetun · Latin
- Tajik (Latin)
- Thaiภาษาไทย
- TivLatin
- Tiwi (Latin)
- Southern TujiaLatin
- Turkmen (Latin)Türkmençe
- TakwaneLatin
- Klingon (Latin)
- Talinga-BwisiLatin
- TswanaSetswana · Latin
- Nyasa TongaLatin
- TongaLatin
- Totonac, PapantlaLatin
- ToposaLatin
- Tok PisinLatin
- TurkishTürkçe · Latin
- TsongaXitsonga · Latin
- TsamaiLatin
- PurepechaLatin
- Tatar (Latin)
- TooroLatin
- TulaLatin
- TumbukaChitumbuka · Latin
- TsuvadiLatin
- Tzeltal, OxchucLatin
- Tzotzil, ChamulaLatin
- Uyghur (Latin)Uighur
- UzbekO‘zbekcha · Latin
- VenetianVèneto · Latin
- VepsVepsä · Latin
- VidundaLatin
- MakhuwaEmakhuwa · Latin
- VolapükLatin
- VõroLatin
- VunjoLatin
- WalloonWalon · Latin
- Wolaytta (Latin)
- WarayWaray-Waray · Latin
- WarlpiriLatin
- WendatLatin
- WolofLatin
- XhosaisiXhosa · Latin
- SogaLusoga · Latin
- YaochiYao · Latin
- YapeseWaab · Latin
- YasaLatin
- YucatecoMàaya t'àan · Latin
- ZhuangLatin
- ZaghawaLatin
- Zapotec, MiahuatlánLatin
- ZayseLatin
- Comorian, NgazidjaLatin
- ZigulaLatin
- Malay (Latin)
- ZandeLatin
- ZáparoLatin
- Zapotec, GüiláLatin
- ZuluisiZulu · Latin
- ZuniShiwiʼma · Latin
Styles and axes
8 weights in normal style.
Variable axes let you fine-tune the design between the values shown.
- WeightAdjust the style from lighter to bolder in typographic color, by varying stroke weights, spacing and kerning, and other aspects of the type.
wght· 100–800 · default 400
OpenType features
Typographic behaviors that adjust character forms, spacing, and positioning. Availability can vary between files.
- Access all alternatesMakes every alternate form in the font available for selection.
aalt - Contextual alternatesChooses alternate forms that work better beside the surrounding letters.
calt - Case-sensitive formsAdjusts punctuation and symbols to align with capital letters.
case - Glyph compositionBuilds or separates glyphs so letters and marks shape correctly.
ccmp - DISTApplies the font’s dist behavior during text shaping.
dist - FractionsBuilds diagonal fractions from ordinary numbers.
frac - KerningFine-tunes the space between specific pairs of characters.
kern - Standard ligaturesReplaces common letter sequences with standard ligatures.
liga - Localized formsUses character forms appropriate to the selected language or region.
locl - Mark positioningPositions combining marks relative to their base characters.
mark - Mark-to-mark positioningPositions combining marks relative to other marks.
mkmk - OrdinalsUses letterforms designed for ordinal numbers.
ordn - Required ligaturesApplies ligatures required for correct script shaping.
rlig - Required variation alternatesSelects alternate forms required at specific variable-font settings.
rvrn - Stylistic set 1Activates a coordinated set of alternate character designs.
ss01 - Stylistic set 3Activates a coordinated set of alternate character designs.
ss03
License
Complete terms and attribution for this font.
Copyright 2023 The Playpen Sans Project Authors (https://github.com/TypeTogether/Playpen-Sans)
Copyright 2023 The Playpen Sans Project Authors (https://github.com/TypeTogether/Playpen-Sans) This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: https://openfontlicense.org ----------------------------------------------------------- SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 ----------------------------------------------------------- PREAMBLE The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others. The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives. DEFINITIONS "Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation. "Reserved Font Name" refers to any names specified as such after the copyright statement(s). "Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s). "Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment. "Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software. PERMISSION & CONDITIONS Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions: 1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself. 2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user. 3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users. 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission. 5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software. TERMINATION This license becomes null and void if any of the above conditions are not met. DISCLAIMER THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.
Provenance
Where the files came from and what Fontsource distributes.
- Provider
- Google Fonts
- Source files
- 1
- Formats
- TTF
- Revision
8b0a1d0f59
- PlaypenSansThai[wght].ttf Variable · Normal · 100–800 weight · Version 2.000 · 737 KB