Adapted from https://p5js.org/examples/typography-letters.html

Letters can be drawn to the screen by loading a font, setting its characteristics and then drawing the letters. This example uses a for loop and unicode reference numbers to automatically fill the canvas with characters in a grid. Vowels are selected and given a specific fill color.

from proceso import Sketch

p5 = Sketch()
p5.describe("Letters, numbers, and symbols are displayed in white on a gray background. Vowels are highlighted in pink.")

font: object
font_size = 32

def preload():
    global font
    # Ensure the .ttf or .otf font stored in the assets directory
    # is loaded before setup() and draw() are called
    font = p5.load_font("assets/SourceSansPro-Regular.otf")

def setup():
    p5.create_canvas(710, 400)

    # Set text characteristics
    p5.text_align(p5.CENTER, p5.CENTER)

def draw():

    # Set the gap between letters and the left and top margin
    gap = 52
    margin = 10
    p5.translate(margin * 4, margin * 4)

    # Set the counter to start at the character you want
    # in this case 35, which is the # symbol
    counter = 35

    # Loop as long as there is space on the canvas
    for y in range(0, p5.height - gap, gap):
        for x in range(0, p5.width - gap, gap):
            # Use the counter to retrieve individual letters by their Unicode number
            letter = chr(counter)

            # Add different color to the vowels and other characters
            if (
                letter == "A"
                or letter == "E"
                or letter == "I"
                or letter == "O"
                or letter == "U"

            # Draw the letter to the screen
            p5.text(letter, x, y)

            # Increment the counter
            counter += 1

p5.run_sketch(preload=preload, setup=setup, draw=draw)