The SceneGraph API includes the Font node class for specifying the font characteristics to be used by your application. Each node class that renders text on the screen display includes a font field to set the font characteristics for the node.

There is a default font supplied with the Roku firmware. To use a different font, you must include it in the application package, such as in pkg:/fonts/. Then you can specify that this font be used as the font for a node class that renders text on the screen display in a couple of ways:

  • by setting the role field for a child Font node to be used in the node
  • by setting the font field of the node to a Font node that specifies the font

The font field can also be used to specify custom settings in the default or specified font. For the default font, there is a set of standard names that allow you to select the size and weight of the font for a node. The default font standard names range from smallest to large sizes, and are:

  • LargeSystemFont
  • MediumSystemFont
  • SmallSystemFont
  • SmallestSystemFont
  • LargeBoldSystemFont
  • MediumBoldSystemFont
  • SmallBoldSystemFont
  • SmallestBoldSystemFont

For example, to specify the bolded small default font for a Label node in XML markup:

<Label id="mySmallLabel"
    width="200" height="200"
    text="Can you read this?"
    font="font:SmallBoldSystemFont" />

And you can also set sizes explicitly using BrightScript:

m.mylargerlabel.font.size = m.mylargerlabel.font.size+5