# Branding
Typically Cockpit is branded in such a way that it looks like the admin
user interface for an operating system. The "Cockpit" brand is only used
during development.
Due to trademark law, as a general rule Cockpit does not ship logos for
operating systems in its packaging. These are expected to be present on the
system itself, and are incorporated into the branding.
## How Cockpit Selects Branding
In ```$prefix/share/cockpit/branding``` are multiple directories, each of which
contain branding information. Branding files are served from the directories
based in the order below, if a file is not present in the first directory on
the list, the second will be consulted, and so on.
$prefix/share/cockpit/branding/$ID-$VARIANT_ID
$prefix/share/cockpit/branding/$ID
$prefix/share/cockpit/branding/default
$prefix/share/cockpit/static
The ```$ID``` and ```$VARIANT_ID``` variables are those listed in ```/etc/os-release```,
and ```$prefix``` is usually ```/usr```.
All of the files served from these directories are available over HTTP
without authentication. This is required since these resources will be used
on the login screen.
## Branding files
The following files are interesting in the above directories for branding
purposes:
apple-touch-icon.png
favicon.ico
branding.css
In addition there are image files refered to by branding.css (see below).
Since Cockpit does not package trademarked logos, typically there will be
symlinks from a branding directory to the relevant image files elsewhere
on the system.
## Branding Styles
The Cockpit login screen and navigation area loads a ```branding.css``` file
from the above directories.
The branding.css file should override the following areas of the login screen:
/* Background of the login prompt */
body.login-pf {
background: url("my-background-image.jpg");
background-size: auto;
}
/* Upper right logo of login screen */
#badge {
width: 225px;
height: 80px;
background-image: url("logo.png");
background-size: contain;
background-repeat: no-repeat;
}
/* The brand text above the login fields */
#brand {
font-size: 18pt;
text-transform: uppercase;
content: "${NAME} ${VARIANT}";
}
The ```branding.css``` file should override the following areas of the navigation bar:
/* The text in the upper left corner of logged in Cockpit
#index-brand {
content: "${NAME} ${VARIANT}";
}
Notice how we can use variables from ```/etc/os-release``` in the branding.
The value for these variables come from the machine that cockpit is logged into.