# Assets: images and fonts

The asset library holds your workspace's files: images, fonts, video, audio and data. Sort them into folders and use them in any composition by key.

## Upload

Open **Assets** and drop files in, or choose **Upload**. Make folders with **+ Folder**, such as `crests` or `fonts`. Files can be up to 100 MB each.

| Kind | Files |
| --- | --- |
| Images | PNG, JPEG, WebP, GIF, AVIF, SVG |
| Fonts | WOFF2, WOFF, TTF, OTF |
| Video | MP4, WebM, MOV |
| Audio | WAV, MP3, OGG |
| Data | CSV, JSON |

Uploads come with a paid plan, and count towards its storage.

## Keys

Every file has a **key**: its folder path and name, such as `crests/arsenal.png`. Use the key wherever an image or font goes:

- An image element's source takes a key or a URL. Pick a file from the asset library, or type a key.
- A text element's font list includes your uploaded fonts.

Keys are looked up live. Replace `crests/arsenal.png` with a new file of the same name and every graphic using it picks up the new one, on air within a minute, without publishing again.

## Keys in data

Image fields take keys too, so data can choose a file: send `"crest": "crests/arsenal.png"` in an [update](https://docs.airframe.tv/api/commands#update) and the graphic shows it.

> **Name files for the data that picks them.** If your feed sends team codes, name crests `crests/ars.png`, `crests/che.png` and so on, and build the key from the code.
