Files
pico-launcher/docs/Themes.md
2025-11-25 17:41:31 +01:00

58 lines
3.7 KiB
Markdown

# Themes
Using themes, the look and feel of Pico Launcher can be customized. Themes are placed in subfolders of the `/_pico/themes` folder. For example `/_pico/themes/my_theme`.
## JSON file
Each theme has a `theme.json` file with information about the theme.
- **type** - Type of theme. Currently `material` and `custom` are supported. See below for information about each type.
- **name** - The name of the theme.
- **description** - Description of the theme.
- **author** - Author of the theme.
- **primaryColor** - Material Design 3 primary color to use. `r`, `g` and `b` are provided in range 0-255.
- **darkTheme** - When `true`, a dark Material Design 3 palette will be used.
### Example
```json
{
"type": "material",
"name": "Theme name",
"description": "Theme description here.",
"author": "Author Name",
"primaryColor": {
"r": 149,
"g": 143,
"b": 237
},
"darkTheme": true
}
```
## Material type
![Horizontal display mode with custom theme](images/Horizontal.png)
The `material` type theme is a pure Material Design 3 theme. It will be fully themed based on the `primaryColor` and `darkTheme` settings from the `theme.json`. In coverflow mode, this theme type uses a Material Design 3 style carousel.
## Custom type
![Horizontal display mode with custom theme](images/HorizontalCustom.png)
The `custom` type theme is much more customizable, compared to the `material` type theme.
Note that the `primaryColor` and `darkTheme` settings from the `theme.json` are still used to color some parts of the UI.
The following additional files are needed:
| Files | Size | Format | Description |
|--------------------------------------------------------------|----------------------|--------------------------|----------------------------------------------------------------|
| bannerListCell.bin<br>bannerListCellPltt.bin | 256x49 (209x49 used) | A3I5<br>32 color palette | Unselected item background for banner list mode. |
| bannerListCellSelected.bin<br>bannerListCellSelectedPltt.bin | 256x49 (209x49 used) | A3I5<br>32 color palette | Selected item background for banner list mode. |
| bottombg.bin | 256x192 | 15 bpp bitmap | Bottom screen background. |
| gridcell.bin<br>gridcellPltt.bin | 64x48 (48x48 used) | A3I5<br>32 color palette | Unselected item background for grid modes. |
| gridcellSelected.bin<br>gridcellPlttSelected.bin | 64x48 (48x48 used) | A3I5<br>32 color palette | Selected item background for grid modes. |
| scrim.bin<br>scrimPltt.bin | 8x42 | A5I3<br>8 color palette | Background for the toolbar. Intended to be a translucent fade. |
| topbg.bin | 256x192 | 15 bpp bitmap | Top screen background. |
These files can be created, for example, using [NitroPaint](https://github.com/Garhoogin/NitroPaint).
The top screen background should include a box in which the banner text and icon of the selected item will be shown.
## Background music
All themes support background music by placing DSP-ADPCM encoded `.bcstm` files in a `bgm` folder inside the theme folder. Looping is supported. When multiple `.bcstm` files are provided, the background music will be selected at random each time Pico Launcher is started.