This guide outlines how to include and use custom embedded fonts in Corona, allowing you to stylize your app more consistently across platforms.
While both TrueType (
.ttf) and OpenType (
.otf) fonts are theoretically supported, there is no guarantee that any font will work across all platforms. Essentially, fonts are loaded by the operating system, and whether or not a particular font is supported depends on the platform and OS version. For example, on Windows and some versions of Android, there may be compatibility issues with certain OpenType font files (
.otf), and if the platform/OS refuses to load a font, Corona will fall back to a default system font and the error will get logged. Essentially, if you use custom fonts, you should test on as many potential target devices as possible.
Copy the font file to the main project directory, alongside
main.lua. It can not be in a subdirectory.
To use the font, pass the font file name as a string to the appropriate API, including the file extension:
-- Standard text object local displayText = display.newText( "Hello World", 150, 80, "CoolCustomFont.ttf", 24 ) -- Font for native text input field local inputText = native.newFont( "CoolCustomFont.ttf", 16 ) local textField = native.newTextField( 150, 150, 180, 30 ) textField.font = inputText