Next: Rendering


Multiple themes can be installed in the same instance so that users can select one thats suitable for them. For example provide a standard them, but let users chose a high-contrast theme if needed.


The default theme is defined in config/ It's recommended to always create a copy of the default theme installed by, customize it and set as standard theme in the config file.

cp -a template/default template/<new-name>
cp -a public/theme/default public/theme/<new-name>


Selected theme is recorded in a cookie by the library. Theme can be switched by passing prefered theme as a request parameter:


All themes consists of a private and a public part. The private part (*.ui files) goes under template/<name> and the public part under public/theme/<name>/assets. An hypotetical high-contrast theme could be installed parallell to the default theme:

├── config
├── public
│   ├── fragment
│   └── theme
│       ├── default
│       └── high-contrast
│           └── assets
│               ├── css
│               │   └── fonts
│               ├── fonts
│               └── img
├── template
│   ├── default
│   └── high-contrast
└── vendor

All themes should at least provide the standard.ui template, but it's up to user to define any number of *.ui files as needed. See template/default for example on theme construction.

Download and install themes from the uup-site project page.