content/configuration/theming.md
:video-embed{video-id="8ad4795b-963c-4ebd-8921-38ea2dda9f44"}
The Directus Data Studio has been developed with customization and extensibility in mind. Colors and styles referenced within the codebase are based around theme rules which enables making comprehensive styling changes to the Data Studio.
Theming options can be found in dedicated section in the Settings Module.
The branding section contains global settings that are applied as defaults throughout the Data Studio and favicon.
::callout{icon="material-symbols:info-outline"} Public Background Video Limitations
The Directus Theming Engine contains a few customizable themes including a Light Theme and Dark Theme. If default values are changed, they will be automatically mapped to the correct elements in the Data Studio, even between upgrades.
Both themes can be updated for all users (in the Settings Module), or for specific users (in the Users Module).
Any valid CSS values will be accepted by the Directus Theming Engine. The raw JSON values containing your changes can be seen by clicking the dropdown next to the theme customization labels. These can be saved and quickly applied between projects or users.
The Custom CSS input allows you to override the Data Studio's default styling. Be aware that the Data Studio's core code, and therefore its DOM selectors, may change in any release. These updates are not considered a breaking change.
Since Data Studio styles are inserted/removed whenever a component is rendered, you'll need to be aware of CSS priority. Using
:root or body likely isn't scoped enough, you'll need to define a more specific scope, such as #app, or use !important.
body {
--family-sans-serif: 'Comic Sans MS';
--primary: MediumSlateBlue !important;
}
This example is better served using the Theming Engine, but is a good example of Directus' flexibility of approach.
The --primary variable (and its shades) control call-to-actions and all other elements within the App using the
"Directus Purple". While it may be tempting to override this variable with your brand's color, please first review the
following warnings: