# Custom Themes

phpMyAdmin comes with support for third party themes. You can download additonal themes from our website at <https://www.phpmyadmin.net/themes/>.

## Configuration

Themes are configured with `$cfg['ThemeManager']` and `$cfg['ThemeDefault']`. Under `./themes/`, you should not delete the directory `pmahomme` or its underlying structure, because this is the system theme used by phpMyAdmin. `pmahomme` contains all images and styles, for backwards compatibility and for all themes that would not include images or css-files. If `$cfg['ThemeManager']` is enabled, you can select your favorite theme on the main page. Your selected theme will be stored in a cookie.

## Creating custom theme

To create a theme:

- make a new subdirectory (for example “your_theme_name”) under `./themes/`.

- copy the files and directories from `pmahomme` to “your_theme_name”

- edit the css-files in “your_theme_name/css”

- put your new images in “your_theme_name/img”

- edit `layout.inc.php` in “your_theme_name”

- edit `theme.json` in “your_theme_name” to contain theme metadata (see below)

- make a new screenshot of your theme and save it under “your_theme_name/screen.png”

### Theme metadata

Changed in version 4.8.0: Before 4.8.0 the theme metadata was passed in the `info.inc.php` file. It has been replaced by `theme.json` to allow easier parsing (without need to handle PHP code) and to support additional features.

In theme directory there is file `theme.json` which contains theme metadata. Currently it consists of:

`name`

  Display name of the theme.

  This field is required.

`version`

  Theme version, can be quite arbirary and does not have to match phpMyAdmin version.

  This field is required.

`desciption`

  Theme description. this will be shown on the website.

  This field is required.

`author`

  Theme author name.

  This field is required.

`url`

  Link to theme author website. It’s good idea to have way for getting support there.

`supports`

  Array of supported phpMyAdmin major versions.

  This field is required.

For example, the definition for Original theme shipped with phpMyAdnin 4.8:

    {
        "name": "Original",
        "version": "4.8",
        "description": "Original phpMyAdmin theme",
        "author": "phpMyAdmin developers",
        "url": "https://www.phpmyadmin.net/",
        "supports": ["4.8"]
    }

### Sharing images

If you do not want to use your own symbols and buttons, remove the directory “img” in “your_theme_name”. phpMyAdmin will use the default icons and buttons (from the system-theme `pmahomme`).