Themes and Styles in a React Application | Business Intelligence Dashboard (2024)

  • 6 minutes to read

Supported Themes

You can apply two types of themes to a Web Dashboard:

Predefined themes
You can find the complete list in the table below. All the listed options are different modifications of the Generic, Generic Compact, and Material Design Compact DevExtreme themes.
Custom themes
You can modify Generic and Generic Compact DevExtreme themes. This topic includes step-by-step instructions on theme customization.

Each theme is a collection of CSS files (stylesheets).

Generic Themes

ImageDemoCSS File (Generic)CSS File (Generic Compact)
Themes and Styles in a React Application | Business Intelligence Dashboard (1)Lightdx.light.css
dx-analytics.light.css
dx-dashboard.light.css
dx.light.compact.css
dx-analytics.light.compact.css
dx-dashboard.light.compact.css
Themes and Styles in a React Application | Business Intelligence Dashboard (2)Darkdx.dark.css
dx-analytics.dark.css
dx-dashboard.dark.css
dx.dark.compact.css
dx-analytics.dark.compact.css
dx-dashboard.dark.compact.css
Themes and Styles in a React Application | Business Intelligence Dashboard (3)Carminedx.carmine.css
dx-analytics.carmine.css
dx-dashboard.carmine.css
dx.carmine.compact.css
dx-analytics.carmine.compact.css
dx-dashboard.carmine.compact.css
Themes and Styles in a React Application | Business Intelligence Dashboard (4)Soft Bluedx.softblue.css
dx-analytics.softblue.css
dx-dashboard.softblue.css
dx.softblue.compact.css
dx-analytics.softblue.compact.css
dx-dashboard.softblue.compact.css
Themes and Styles in a React Application | Business Intelligence Dashboard (5)Green Mistdx.greenmist.css
dx-analytics.greenmist.css
dx-dashboard.greenmist.css
dx.greenmist.compact.css
dx-analytics.greenmist.compact.css
dx-dashboard.greenmist.compact.css
Themes and Styles in a React Application | Business Intelligence Dashboard (6)Dark Moondx.darkmoon.css
dx-analytics.darkmoon.css
dx-dashboard.darkmoon.css
dx.darkmoon.compact.css
dx-analytics.darkmoon.compact.css
dx-dashboard.darkmoon.compact.css
Themes and Styles in a React Application | Business Intelligence Dashboard (7)Dark Violetdx.darkviolet.css
dx-analytics.darkviolet.css
dx-dashboard.darkviolet.css
dx.darkviolet.compact.css
dx-analytics.darkviolet.compact.css
dx-dashboard.darkviolet.compact.css

Material Design Themes

ImageDemoCSS File (Material Design Compact)
Themes and Styles in a React Application | Business Intelligence Dashboard (8)Blue Lightdx.material.blue.light.compact.css
dx-analytics.material.blue.light.compact.css
dx-dashboard.material.blue.light.compact.css
Themes and Styles in a React Application | Business Intelligence Dashboard (9)Lime Lightdx.material.lime.light.compact.css
dx-analytics.material.lime.light.compact.css
dx-dashboard.material.lime.light.compact.css
Themes and Styles in a React Application | Business Intelligence Dashboard (10)Orange Lightdx.material.orange.light.compact.css
dx-analytics.material.orange.light.compact.css
dx-dashboard.material.orange.light.compact.css
Themes and Styles in a React Application | Business Intelligence Dashboard (11)Purple Lightdx.material.purple.light.compact.css
dx-analytics.material.purple.light.compact.css
dx-dashboard.material.purple.light.compact.css
Themes and Styles in a React Application | Business Intelligence Dashboard (12)Teal Lightdx.material.teal.light.compact.css
dx-analytics.material.teal.light.compact.css
dx-dashboard.material.teal.light.compact.css
Themes and Styles in a React Application | Business Intelligence Dashboard (13)Blue Darkdx.material.blue.dark.compact.css
dx-analytics.material.blue.dark.compact.css
dx-dashboard.material.blue.dark.compact.css
Themes and Styles in a React Application | Business Intelligence Dashboard (14)Lime Darkdx.material.lime.dark.compact.css
dx-analytics.material.lime.dark.compact.css
dx-dashboard.material.lime.dark.compact.css
Themes and Styles in a React Application | Business Intelligence Dashboard (15)Orange Darkdx.material.orange.dark.compact.css
dx-analytics.material.orange.dark.compact.css
dx-dashboard.material.orange.dark.compact.css
Themes and Styles in a React Application | Business Intelligence Dashboard (16)Purple Darkdx.material.purple.dark.compact.css
dx-analytics.material.purple.dark.compact.css
dx-dashboard.material.purple.dark.compact.css
Themes and Styles in a React Application | Business Intelligence Dashboard (17)Teal Darkdx.material.teal.dark.compact.css
dx-analytics.material.teal.dark.compact.css
dx-dashboard.material.teal.dark.compact.css

Apply a Built-in Theme

Use the CSS files that correspond to the predefined theme you want to apply. The code snippet below shows how to enable the Carmine theme:

@import url("../node_modules/ace-builds/css/ace.css"); @import url("../node_modules/ace-builds/css/theme/dreamweaver.css"); @import url("../node_modules/ace-builds/css/theme/ambiance.css"); @import url("../node_modules/devextreme/dist/css/dx.carmine.css");@import url("../node_modules/@devexpress/analytics-core/dist/css/dx-analytics.common.css");@import url("../node_modules/@devexpress/analytics-core/dist/css/dx-analytics.carmine.css");@import url("../node_modules/@devexpress/analytics-core/dist/css/dx-querybuilder.css");@import url("../node_modules/devexpress-dashboard/dist/css/dx-dashboard.carmine.css");

Customize Themes

Warning

Customization is available only for Generic and Generic Compact themes.

The DevExpress Dashboard CLI is used with the DevExtreme ThemeBuilder to create a custom theme for the Web Dashboard.

Theme customization involves the following basic steps:

  1. Use the DevExtreme ThemeBuilder tool to customize an existing theme and export the results.
  2. Add Dashboard-specific settings to the generated resource files.
  3. Use the DevExpress Dashboard CLI to convert the customized resource files into a Web Dashboard theme.
  4. Register the new theme in your application.

Create a Custom Theme

  1. Make sure you have Node.js and npm installed on your machine.
  2. Open the ThemeBuilder. Create a custom theme based on Generic themes. For instance, you can use the Light theme as a base and change its accent color from blue (#337ab7) to yellow (#fdb400).
  3. Set the color scheme name (for example, “light-yellow”) and use the Export MetadataDownload Metadata File button to export metadata in a JSON format.
  4. Copy the downloaded JSON file (dx.generic.light-yellow.json) to an empty folder.
  5. Edit dx.generic.light-yellow.json and add the dashboardItems property to override the accent colors at the dashboard level:

    { "items": [ { "key": "@base-accent", "value": "#fdb400" } ], "dashboardItems": [ { "key": "@dashboard-item-selected-bg", "value": "rgba(#fdb400, 0.2)" }, { "key": "@dashboard-item-hover-bg", "value": "rgba(#fdb400, 0.1)" } ], "baseTheme": "generic.light", "outputColorScheme": "light-yellow", "makeSwatch": false, "version": "23.2.5", "widgets": [], "removeExternalResources": false}

    Refer to the Color Constants section to see a list of available color constants you can use to customize Web Dashboard colors.

  6. In the folder you created in Step 4, execute the command that installs the devexpress-dashboard-cli package and builds the CSS files for your custom JSON file. Use the same version of the devexpress-dashboard-cli package as the version of DevExpress packages that you use in your application:

    npx devexpress-dashboard-cli@23.2.5 build-theme --input-file dx.generic.light-yellow.json

    This generates the following CSS files and their minified versions:

    • dx.light-yellow.css
    • dx-analytics.light-yellow.css
    • dx-dashboard.light-yellow.css
    • dx.light-yellow.min.css
    • dx-analytics.light-yellow.min.css
    • dx-dashboard.light-yellow.min.css

    Warning

    The devexpress-dashboard-cli package version should match the version of other DevExpress packages used in your application. To check the version for which you generated the CSS files, open the dx-dashboard.<theme-name>.css file and find the version number in the comments.

Color Constants

The Web Dashboard uses color constants to paint the control’s elements. The colors of the color constants listed in the table below can be customized. Changes to specific dashboard elements’ colors do not affect the basic DevExtreme colors.

Show Table

Color ConstantDescription
@dashboard-surface-bgThe background color of the dashboard surface.
@dashboard-item-selected-bgThe background color of the selected element in a dashboard item.
@dashboard-item-hover-bgThe background color applied to elements in a dashboard item when you hover over them.
@dashboard-overlay-shader-bgThe shading background color.
@dashboard-border-colorA more contrast border color.
@dashboard-border-sub-colorA less contrast border color.
@dashboard-shadowThe color of the shadow used for the control’s elements (for example, when you hover over icons in the Toolbox).
@dashboard-shadow-border-colorThe color of the border that appears with the shadow.
@dashboard-tab-hover-bgThe background color of the inactive hovered tab page’s header.
@dashboard-tab-inactive-bgThe background color of the inactive tab page.
@dashboard-info-toast-bgThe background color of the information notification toast.
@dashboard-info-toast-colorThe text color of the information notification toast.
@dashboard-item-menu-bgThe background color of the dashboard item menu.
@dashboard-item-menu-icon-colorThe primary color of the dashboard item menu’s icons.
@dashboard-item-menu-icon-sub-colorThe additional color of the dashboard item menu’s icons.
@dashboard-item-menu-remove-icon-colorThe color of the dashboard item menu’s Delete icon.
@dashboard-item-menu-separator-colorThe color of the dashboard item menu’s separator.
@dashboard-item-menu-item-border-colorThe border color of a dashboard item. The border appears when you hover or select a dashboard item in the [Designer]> (xref:119283#designer-and-viewer-modes) mode.
@dashboard-item-binding-menu-bgThe background color of the dashboard item’s Binding menu.
@dashboard-item-binding-menu-filter-section-bgThe background color of the Binding menu’s Filter section.
@dashboard-menu-bgThe dashboard menu‘s background color.
@dashboard-menu-colorThe dashboard menu’s basic color.
@dashboard-menu-header-bgThe background color of the dashboard menu’s header.
@dashboard-menu-header-colorThe primary color of the dashboard menu’s header.
@dashboard-menu-icon-colorThe color of the dashboard menu’s icons (for example, the X icon used to close the menu).
@dashboard-menu-selected-bgThe background color of the selected element in the dashboard’s menu.
@dashboard-menu-selected-colorThe color of the selected dashboard menu’s element.
@dashboard-menu-hover-bgThe background color applied to elements in a dashboard menu when you hover over them.
@dashboard-menu-hover-colorThe primary color applied to elements in a dashboard menu when you hover over them.
@dashboard-toolbar-colorThe text color of the dashboard item caption and dashboard title.

Apply a Custom Theme

A custom theme’s icons should be in the same folder as the theme’s CSS files. The icons folder is located in the node_modules/devextreme/dist/css directory. Copy the icons folder to the directory that contains your custom theme.

Themes and Styles in a React Application | Business Intelligence Dashboard (18)

To apply a custom theme, register the generated CSS files instead of the default styles.

Create the custom-css folder in the project and put the generated CSS files in the created folder. Open the index.css file and replace corresponding existing CSS files with the generated ones:

@import url("../node_modules/ace-builds/css/ace.css"); @import url("../node_modules/ace-builds/css/theme/dreamweaver.css"); @import url("../node_modules/ace-builds/css/theme/ambiance.css"); @import url("custom-css/dx.light-yellow.min.css");@import url("../node_modules/@devexpress/analytics-core/dist/css/dx-analytics.common.css");@import url("custom-css/dx-analytics.light-yellow.min.css");@import url("../node_modules/@devexpress/analytics-core/dist/css/dx-querybuilder.css");@import url("custom-css/dx-dashboard.light-yellow.min.css");

The image below shows the Web Dashboard with the custom Light Yellow theme:

Themes and Styles in a React Application | Business Intelligence Dashboard (19)

Themes and Styles in a React Application | Business Intelligence Dashboard (2024)
Top Articles
Latest Posts
Article information

Author: Dean Jakubowski Ret

Last Updated:

Views: 5279

Rating: 5 / 5 (50 voted)

Reviews: 89% of readers found this page helpful

Author information

Name: Dean Jakubowski Ret

Birthday: 1996-05-10

Address: Apt. 425 4346 Santiago Islands, Shariside, AK 38830-1874

Phone: +96313309894162

Job: Legacy Sales Designer

Hobby: Baseball, Wood carving, Candle making, Jigsaw puzzles, Lacemaking, Parkour, Drawing

Introduction: My name is Dean Jakubowski Ret, I am a enthusiastic, friendly, homely, handsome, zealous, brainy, elegant person who loves writing and wants to share my knowledge and understanding with you.