Using Custom Fonts

This guide outlines how to include and use custom embedded fonts in Corona, allowing you to stylize your app more consistently across platforms.

Font File Support

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.

Including and Using Fonts

  1. Copy the font file to the main project directory, alongside main.lua. It can not be in a subdirectory.

  2. 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
Note

If you intend to use custom fonts in CoronaCards for Windows Phone 8, please refer to Using Embedded Fonts in the porting guide.