Status (Nov 1, 2026) · Beta · A work in progress. When ready for public use, this typeface will be available in SMC's fonts page.

Cocolata (കോക്കലാറ്റ) is a handwriting-style variable typeface for Malayalam and Latin. The “coco” in Cocolata is pronounced like the “coco” in “🥥 coconut”. The design follows a casual handwriting rhythm of Malayalam suitable for a personal, warm, inviting, informal setting.

The handwritten appearance comes from code, not hand-drawn outlines. MetaPost programs describe each glyph parametrically; a Rust build tool turns those shapes into font sources, and fontc compiles the variable font.

This typeface is my third typeface with metapost technology after Nupuram and Malini. The design workflow is same, but font building is now based on Rust. Earlier fonts used python ecosystem of tools and libraries. Here we are using fontc font compiler and Rust based svg to UFO conversion and opentype engineering. Usage of Rust helped to do a fresh build under a minute. Earlier, with python it used to take about 15minutes. Since the workflow is fast, instead of building and previewing a single svg while modifying the metapost file, now I can do an incremental UFO and variable font building in a few seconds. So I used fontra to preview and test the font directly than trying a single svg at a time. I also ported this system to Malini as well. So Malini is fully based on Rust based workflow Explore the source code on GitLab.

When I started building metapost based fonts a few years ago, a futuristic goal I had is, I can use AI assistance for drawing since design is code. While designing Cocolata, I was able to use coding agents for non-design work. For design, If I give a base design and components, coding agents like Claude Opus 5.5 is able to prepare metapost code to assemble a functional letter. It often require my review and corrections, but mostly those correction are about adjusting the ratios and parameters till it please my eyes. Coding agents can compile a metapost, interact with a running fontra instance, look at the drawing and do measurements and correction proposals too.

This is an unreleased beta. Letterforms, spacing, and shaping may change before the first stable release. Download the beta or try it below.

ഒറ്റക്കമ്പിനാദം മാത്രം മൂളും വീണാഗാനം ഞാൻ ഏകഭാവമേതോ താളം, മൂകരാഗ ഗാനാലാപം ഈ ധ്വനിമണിയിൽ, ഈ സ്വരജതിയിൽ ഈ വരിശകളിൽ.......... നിൻ വിരൽത്തുമ്പിലെ വിനോദമായ് വിളഞ്ഞീടാൻ നിന്റെയിഷ്‌ടഗാനമെന്ന പേരിലൊന്നറിഞ്ഞീടാൻ എന്നും ഉള്ളിലെ ദാഹമെങ്കിലും.... നിന്നിളം മാറിലെ വികാരമായലിഞ്ഞീടാൻ നിൻ മടിയിൽ വീണുറങ്ങിയീണമായുണർന്നീടാൻ എന്റെ നെഞ്ചിലെ മോഹമെങ്കിലും.... -- ബിച്ചു തിരുമല, തേനും വയമ്പും

Who draws the crowd and plays so loud Baby, it's the guitar man Who's gonna steal the show? You know, baby, it's the guitar man He can make you love He can make you cry He will bring you down Then he'll get you high Somethin' keeps him goin' Miles and miles a day To find another place to play Night after night who treats you right Baby, it's the guitar man Who's on the radio? You go listen to the guitar man - The Guitar Man, Song by Bread ‧ 1972

Thin to Black

Nine named weights share one wght axis: Thin, ExtraLight, Light, Regular, Medium, SemiBold, Bold, ExtraBold, and Black. Use the weight sliders to explore any value from 100 to 900.

100 · Thin
മഴയിൽ നനഞ്ഞുവോ, വെയിലിൽ തളർന്നുവോ, കുളിരിൽ കുതിർന്നുവോ
Drenched by the rain, or weary in the sun, Or soaked in the chill?

200 · ExtraLight
മഴയിൽ നനഞ്ഞുവോ, വെയിലിൽ തളർന്നുവോ, കുളിരിൽ കുതിർന്നുവോ
Drenched by the rain, or weary in the sun, Or soaked in the chill?

300 · Light
മഴയിൽ നനഞ്ഞുവോ, വെയിലിൽ തളർന്നുവോ, കുളിരിൽ കുതിർന്നുവോ
Drenched by the rain, or weary in the sun, Or soaked in the chill?

400 · Regular
മഴയിൽ നനഞ്ഞുവോ, വെയിലിൽ തളർന്നുവോ, കുളിരിൽ കുതിർന്നുവോ
Drenched by the rain, or weary in the sun, Or soaked in the chill?

500 · Medium
മഴയിൽ നനഞ്ഞുവോ, വെയിലിൽ തളർന്നുവോ, കുളിരിൽ കുതിർന്നുവോ
Drenched by the rain, or weary in the sun, Or soaked in the chill?

600 · SemiBold
മഴയിൽ നനഞ്ഞുവോ, വെയിലിൽ തളർന്നുവോ, കുളിരിൽ കുതിർന്നുവോ
Drenched by the rain, or weary in the sun, Or soaked in the chill?

700 · Bold
മഴയിൽ നനഞ്ഞുവോ, വെയിലിൽ തളർന്നുവോ, കുളിരിൽ കുതിർന്നുവോ
Drenched by the rain, or weary in the sun, Or soaked in the chill?

800 · ExtraBold
മഴയിൽ നനഞ്ഞുവോ, വെയിലിൽ തളർന്നുവോ, കുളിരിൽ കുതിർന്നുവോ
Drenched by the rain, or weary in the sun, Or soaked in the chill?

900 · Black
മഴയിൽ നനഞ്ഞുവോ, വെയിലിൽ തളർന്നുവോ, കുളിരിൽ കുതിർന്നുവോ
Drenched by the rain, or weary in the sun, Or soaked in the chill?

പുതുമഴയായി വന്നൂ നീ പുളകം കൊണ്ടു പൊതിഞ്ഞൂ നീ ഒരേ മനസ്സായി നാം ഉടലറിയാതെ ഉയിരറിയാതെ അണയൂ നീയെൻ ജീവനായ് വരൂ നിശാഗീതമായ്... കളം മായ്ക്കാതെ കഥയറിയാതെ മിഴികൾ പറന്നു പോയ് കൊതി തീരാത്ത വേഴാമ്പലായ്... കുറുമൊഴിയെങ്ങോ തരിവളയെങ്ങോ കുഴൽ വിളി നീ കേൾക്കുമോ തരുമോ ഈ മണ്ണിലൊരു ജന്മം കൂടി നീ... കടം തീരാതെ വിട പറയാതെ വെറുതേ കൊഴിഞ്ഞു പോയ് ശ്രുതി ചേരാത്ത ദാഹങ്ങളിൽ പിറവികൾ തേടും മറവിയിൽ നീയെൻ ഉയിരിന്റെ വാർതിങ്കളായ് തരുമോ ഈ മണ്ണിൻ തോരാത്ത പാൽ മണം - എസ് രമേശൻ നായർ, ആകാശഗംഗ

Latin

The Latin letters share the handwritten character of the Malayalam. Alongside Malayalam, the documentation lists support for 294 languages, based on Hyperglot character coverage.

Dear friend, It rained all afternoon. I sat by the window with a cup of tea and a notebook, watching the garden turn green again. There is something about a rainy day that makes me want to write a letter. Tell me what you have been reading. Next time you visit, we can take the long way home.

OpenType features

Contextual alternates

Contextual alternates (calt) choose letterforms to suit their neighbours, as in handwriting. They are on by default. Toggle them to compare the forms.

പാടം കാറ്റ് മഴക്കാലം

banana rain artisan

Stylistic alternates

The salt feature offers alternative shapes for selected Malayalam and Latin letters. Turn it on to try a different voice for the same words.

പച്ച മാങ്ങ വെള്ളം പൂക്കൾ

A taste of bananas

Ligatures

Standard ligatures (liga) join ff and ft. Type <3 for a heart. Kerning (kern) adjusts spacing in both scripts, and superior figures are available through sups.

coffee after craft <3

Download the beta

These are development builds, not a stable release. Both files contain the full variable weight range. Use the TTF for desktop installation and the WOFF2 for web embedding.

Found a problem? Report it on the issue tracker with the text, weight, application or browser, and a screenshot if possible.

Using on the web

Include SMC’s font stylesheet, then use the Cocolata font family and the usual font-weight property. The stylesheet also provides a font-cocolata class.

<link rel="stylesheet" href="https://smc.org.in/fonts/fonts.css">
.handwritten {
  font-family: "Cocolata", cursive;
  font-weight: 400;
}

Source and license

Designed by Santhosh Thottingal. Cocolata is free and open source, licensed under the SIL Open Font License, Version 1.1. The source code and documentation are available on GitLab.