# Update an Advanced Theme

An overview of how to update a custom theme from one version of FusionAuth to another.

> For the index of this section of the site, see [llms.txt](https://fusionauth.io/docs/llms.txt)

FusionAuth version updates sometimes require updates to custom themes. This page explains how to make those updates.

## CSS

If your custom theme includes CSS changes updating involves the following steps:

1.  Review the release notes to check for any breaking theme CSS changes or new themeable content.
2.  Test your custom theme on a development instance of FusionAuth.
3.  Update your custom theme CSS to style the new content.
4.  Verify that any newly introduced content looks consistent.

## Templates

When FusionAuth adds functionality to the [hosted login pages](https://fusionauth.io/docs/get-started/core-concepts/integration-points.md#hosted-login-pages), we sometimes add or modify theme templates. FusionAuth automatically updates the default theme to include these templates when updating versions. If you use a custom advanced theme, you must manually add the new templates and modify your existing templates.

To update your custom theme to use the new templates, follow these steps:

1.  Test your custom theme on a development instance of FusionAuth.
2.  In the Admin UI, navigate to Customizations -> Themes .
3.  If any themes lack templates, FusionAuth marks them with an "Upgrade Required" warning. Port the new theme files over to your custom theme, modify them to match your custom look and feel, then save the theme.

When a version of FusionAuth changes existing templates, you must [compare the new theme to your existing version's base theme](#find-differences-between-themes), then port over the changes to your custom theme.

## Messages

When the [hosted login pages](https://fusionauth.io/docs/get-started/core-concepts/integration-points.md#hosted-login-pages) gain new functionality, FusionAuth sometimes adds new theme message keys. FusionAuth automatically updates the default theme `messages` file to include these new keys when updating versions. If you use a custom advanced theme, you must manually add the new keys to your theme.

To add the new messages to your theme:

1.  Test your custom theme on a development instance of FusionAuth.
2.  In the Admin UI, navigate to Customizations -> Themes .
3.  If any themes lack messages, FusionAuth marks them with an "Missing required keys" warning. Port the new messages over to your custom theme, modify them to match your custom look and feel, then save the theme.

FusionAuth warns you about missing required keys in order to avoid an inadvertent bad user experience. The default display for keys with no valid values in theme **Messages** is the key text, such as `[ExternalAuthenticationException]LinkedInToken`, which can be confusing for end users.

You can find these keys by testing the version update on a development instance or comparing releases in the [fusionauth-localization repository](https://github.com/FusionAuth/fusionauth-localization/). *Add the new key values to your theme before updating* to prevent any users from seeing broken key text on your login pages.

## Find Differences Between Themes

Note

For a full list of required changes for a specific version, see [Advanced Theme Update Notes](https://fusionauth.io/docs/theme/advanced-themes/update-guides.md).

To find the difference between the default theme of any two versions of FusionAuth, use the [Theme History repository](https://github.com/FusionAuth/fusionauth-theme-history).

FusionAuth tracks the history of changes to the default hosted page themes using Theme History. Use the GitHub diffing interface to see the difference between any two versions. For instance, the [following URL](https://github.com/FusionAuth/fusionauth-theme-history/compare/1.65.0...1.69.0) shows the difference between versions `1.65.0` and `1.69.0`:

```plaintext
https://github.com/FusionAuth/fusionauth-theme-history/compare/1.65.0...1.69.0
```

Replace the version strings `1.65.0` and `1.69.0` in the example URL above to visualize the difference between any two versions.

Alternatively, you can download the repository and visualize the difference between any two version tags or commits using a diffing tool of your choice.

Related

[Theme Advanced Theme Update Guides Detailed information about required theme changes between versions of FusionAuth. advanced theme migrationversion upgradetheme compatibility](https://fusionauth.io/docs/theme/advanced-themes/update-guides.md)

[Cloud Update a Deployment Learn how to update a deployment to a newer version of FusionAuth. version upgradeversion update](https://fusionauth.io/docs/cloud/update-a-deployment.md)

[Update Update a Development Instance of FusionAuth Learn how to update an instance of FusionAuth that isn't used for production purposes. version upgradeversion update](https://fusionauth.io/docs/update/dev-instance.md)

[Update Update to a Newer Version of FusionAuth Learn how to update FusionAuth instances, FusionAuth Cloud deployments, and client libraries to a newer version. version upgradeversion update](https://fusionauth.io/docs/update.md)
---

## Other pages in Advanced Themes

> For the full index of this section, see [Theme](https://fusionauth.io/docs/llms-theme.txt).

- [Client-side Password Rule Validation](https://fusionauth.io/docs/theme/advanced-themes/client-side-password-rule-validation.md): Learn how to configure FusionAuth to check passwords client-side.
- [Theme Examples](https://fusionauth.io/docs/theme/advanced-themes/examples.md): A list of FusionAuth themes examples.
- [Themes Helper Macros](https://fusionauth.io/docs/theme/advanced-themes/helpers.md): Learn about the Freemarker macros FusionAuth provides to help with theming.
- [Advanced Themes](https://fusionauth.io/docs/theme/advanced-themes.md): Learn how to theme and the FusionAuth login pages (including forgot password, two-factor authentication and others).
- [Add a Theme to a Kickstart](https://fusionauth.io/docs/theme/advanced-themes/kickstart-custom-theme.md): Learn how to use Kickstart to create a FusionAuth Instance with a custom theme.
- [Tailwind CSS](https://fusionauth.io/docs/theme/advanced-themes/tailwind.md): Detailed documentation for integrating Tailwind CSS in FusionAuth.
- [Theme Template Variables](https://fusionauth.io/docs/theme/advanced-themes/template-variables.md): Detailed documentation about the theme template variables.
- [Advanced Theme Update Guides](https://fusionauth.io/docs/theme/advanced-themes/update-guides.md): Detailed information about required theme changes between versions of FusionAuth.
