File: /var/www/html/phpmyadmin/doc/html/_sources/themes.rst.txt
.. _themes:
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 :config:option:`$cfg['ThemeManager']` and
:config:option:`$cfg['ThemeDefault']`.  Under :file:`./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 :config:option:`$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 :file:`./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 :file:`layout.inc.php` in "your\_theme\_name"
* edit :file:`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
++++++++++++++
.. versionchanged:: 4.8.0
    Before 4.8.0 the theme metadata was passed in the :file:`info.inc.php` file.
    It has been replaced by :file:`theme.json` to allow easier parsing (without
    need to handle PHP code) and to support additional features.
In theme directory there is file :file:`theme.json` which contains theme
metadata. Currently it consists of:
.. describe:: name
    Display name of the theme.
    **This field is required.**
.. describe:: version
    Theme version, can be quite arbirary and does not have to match phpMyAdmin version.
    **This field is required.**
.. describe:: desciption
    Theme description. this will be shown on the website.
    **This field is required.**
.. describe:: author
    Theme author name.
    **This field is required.**
.. describe:: url
    Link to theme author website. It's good idea to have way for getting
    support there.
.. describe:: supports
    Array of supported phpMyAdmin major versions.
    **This field is required.**
For example, the definition for Original theme shipped with phpMyAdnin 4.8:
.. code-block:: json
    {
        "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``).