A theme is a folder in the
C:\ProgramData\FAForever\themes directory. You can call the folder for your theme whatever you like. The important info is taken from the theme.properties file in the root directory. Also in the folder can be images, fxml files and css stylesheets.
Looks like that:
displayName=test author=alex compatibilityVersion=1 themeVersion=1
The values are pretty self explanatory. At the moment only displayName is actually used. You still need the other values. Also make sure the versions are whole numbers.
After restarting the client and putting the theme folder in the
C:\ProgramData\FAForever\themes directory, a user should be able to select the theme in a dropdown in the settings. Selected style changes are immediately loaded, although changes to images and fxml files might only take effect after a restart.
You can change the following.
src/main/resources/themein the client can be overwritten with your own.
That's where you can find files that can be overwritten.
Java FX uses CSS to style the application. Be aware that it uses special properties, that can be found in the java fx documentation. You probably want to make changes to the
style.css file found in
src/main/resources/theme. You can either provide that very file or better provide the
style_extension.css and overwrite values from
style.css there. The later version increases compatibility with future versions.
images/* just provide your own.
Try to avoid changing fxml files. This might make your theme fragile. Rather try to give certain items styleclasses. We are happy to accept Pull Requests that simply add styleclasses. You can then style them in the css. Although if you want major changes to layout that is a valid strategy. The fxml files still need to fit on their Controllers though. That would be something for an advanced theme.
Here is a simple theme that sets accent color to green.
If you wanted to replace the loading gif that is showing while searching for ladder you just need to replace the gif. The default gif is found in images/ladder_loading.gif (since v1.2.1). Put another gif file in your theme folder under the images directory. Also you need the theme.properties in your root directory.
You should probably have a look at the original files. And here a little tip: The client refreshes the stylesheets on the fly if you change them.