Material Theme for React Components

Syncfusion® React UI components include a built-in Material theme that supports both light and dark modes. Designed in accordance with the official Material Design 3 guidelines, it delivers a modern, cohesive, and accessible user experience across all components.

Users can reference the Material theme using the methods described in the Built-in Themes section.

Material theme variables

The Material theme was built on a consistent, scalable system of CSS custom properties that ensure visual harmony and design coherence across all components. These variables follow a unified naming convention starting with --sf, enabling seamless theming, customization, and responsive behavior.

By centralizing the design through reusable variables, modifying a single variable will instantly reflect changes globally whether adjusting colors, typography scales, or spacing rhythms.

The following tables contain the complete list of Syncfusion® Material theme variables, organized by category for easy reference and customization.

Color variables

The following table contains all color-related CSS variables, including light and dark mode values.

Typography variables

The following tables list the typography related CSS variables. The following base variables serve as a primary variables for customization, and overriding any of these will cascade their effects across all its dependent scale variables and reflect throughout the components.

PropertiesCSS VariableDefault Value
Font Size--sf-font-size1rem
Letter Spacing--sf-letter-spacing0px
Font Family--sf-font-familyRoboto, -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica Neue, sans-serif

Font size variables

The following table contains font size scale variables with calculated values based on the base font size.

LevelCSS VariableValue
Extra Small--sf-font-size-xscalc(var(--sf-font-size) * 0.75) = 0.75rem
Small--sf-font-size-smcalc(var(--sf-font-size) * 0.875) = 0.875rem
Base--sf-font-size-basecalc(var(--sf-font-size) * 1) = 1rem
Large--sf-font-size-lgcalc(var(--sf-font-size) * 1.125) = 1.125rem
Extra Large--sf-font-size-xlcalc(var(--sf-font-size) * 1.25) = 1.25rem
2X Large--sf-font-size-2xlcalc(var(--sf-font-size) * 1.5) = 1.5rem

Font weight variables

The following table contains font weight scale variables for text boldness variations.

LevelCSS VariableValue
Normal--sf-font-weight-normal400
Medium--sf-font-weight-medium500
Semi Bold--sf-font-weight-semibold600

Line height variables

The following table contains line height scale variables with calculated values for text readability.

LevelCSS VariableValue
Extra Small--sf-line-height-xscalc(var(--sf-font-size) * 1) = 1rem
Small--sf-line-height-smcalc(var(--sf-font-size) * 1.25) = 1.25rem
Base--sf-line-height-basecalc(var(--sf-font-size) * 1.5) = 1.5rem
Large--sf-line-height-lgcalc(var(--sf-font-size) * 1.75) = 1.75rem
2X Large--sf-line-height-2xlcalc(var(--sf-font-size) * 2) = 2rem
3X Large--sf-line-height-3xlcalc(var(--sf-font-size) * 2.25) = 2.25rem

Letter spacing variables

The following table contains letter spacing scale variables with calculated values based on the base letter spacing.

LevelCSS VariableValue
Normal--sf-letter-spacing-normalvar(--sf-letter-spacing) = 0px
Wide--sf-letter-spacing-widecalc(var(--sf-letter-spacing) + 0.1px) = 0.1px
Wider--sf-letter-spacing-widercalc(var(--sf-letter-spacing) + 0.25px) = 0.25px

Spacing variables

The spacing system is built on a single base variable. By overriding this variable, users can instantly reflow and adjust spacing across all components.

PropertyCSS VariableDefault value
Spacing--sf-spacing1rem

The following table contains spacing scale variables with calculated values based on the base spacing.

LevelCSS VariableValue
0--sf-spacing-00
1--sf-spacing-1calc(var(--sf-spacing) * 0.0625) = 0.0625rem
2--sf-spacing-2calc(var(--sf-spacing) * 0.125) = 0.125rem
3--sf-spacing-3calc(var(--sf-spacing) * 0.1875) = 0.1875rem
4--sf-spacing-4calc(var(--sf-spacing) * 0.25) = 0.25rem
5--sf-spacing-5calc(var(--sf-spacing) * 0.3125) = 0.3125rem
6--sf-spacing-6calc(var(--sf-spacing) * 0.375) = 0.375rem
7--sf-spacing-7calc(var(--sf-spacing) * 0.4375) = 0.4375rem
8--sf-spacing-8calc(var(--sf-spacing) * 0.5) = 0.5rem
9--sf-spacing-9calc(var(--sf-spacing) * 0.5625) = 0.5625rem
10--sf-spacing-10calc(var(--sf-spacing) * 0.625) = 0.625rem
11--sf-spacing-11calc(var(--sf-spacing) * 0.6875) = 0.6875rem
12--sf-spacing-12calc(var(--sf-spacing) * 0.75) = 0.75rem
13--sf-spacing-13calc(var(--sf-spacing) * 0.8125) = 0.8125rem
14--sf-spacing-14calc(var(--sf-spacing) * 0.875) = 0.875rem
15--sf-spacing-15calc(var(--sf-spacing) * 0.9375) = 0.9375rem
16--sf-spacing-16calc(var(--sf-spacing) * 1) = 1rem
18--sf-spacing-18calc(var(--sf-spacing) * 1.125) = 1.125rem
20--sf-spacing-20calc(var(--sf-spacing) * 1.25) = 1.25rem
22--sf-spacing-22calc(var(--sf-spacing) * 1.375) = 1.375rem
24--sf-spacing-24calc(var(--sf-spacing) * 1.5) = 1.5rem
28--sf-spacing-28calc(var(--sf-spacing) * 1.75) = 1.75rem
30--sf-spacing-30calc(var(--sf-spacing) * 1.875) = 1.875rem
32--sf-spacing-32calc(var(--sf-spacing) * 2) = 2rem
40--sf-spacing-40calc(var(--sf-spacing) * 2.5) = 2.5rem
48--sf-spacing-48calc(var(--sf-spacing) * 3) = 3rem
56--sf-spacing-56calc(var(--sf-spacing) * 3.5) = 3.5rem
72--sf-spacing-72calc(var(--sf-spacing) * 4.5) = 4.5rem

Border radius variables

The border radius system is built on a single base variable. By overriding this variable, users can adjust curvature consistently across all components.

PropertyCSS VariableDefault value
Border radius--sf-radius1rem

The following table contains border radius scale variables with calculated values based on the base border radius.

LevelCSS VariableValue
None--sf-radius-00px
2--sf-radius-2calc(var(--sf-radius) * 0.125) = 0.125rem
4--sf-radius-4calc(var(--sf-radius) * 0.25) = 0.25rem
6--sf-radius-6calc(var(--sf-radius) * 0.375) = 0.375rem
8--sf-radius-8calc(var(--sf-radius) * 0.5) = 0.5rem
12--sf-radius-12calc(var(--sf-radius) * 0.75) = 0.75rem
16--sf-radius-16calc(var(--sf-radius) * 1) = 1rem
20--sf-radius-20calc(var(--sf-radius) * 1.25) = 1.25rem
24--sf-radius-24calc(var(--sf-radius) * 1.5) = 1.5rem
28--sf-radius-28calc(var(--sf-radius) * 1.75) = 1.75rem
Full--sf-radius-full999px

Elevation variables

The following table contains elevation and shadow scale variables for creating visual depth and layers.

LevelCSS VariableValue
0--sf-elevation0 .8px 16px rgba($black, .15)
1--sf-elevation-10 1px 3px 1px rgba(0,0,0,.15), 0 1px 2px 0 rgba(0,0,0,.3)
2--sf-elevation-20 2px 6px 2px rgba(0,0,0,.15), 0 1px 2px 0 rgba(0,0,0,.3)
3--sf-elevation-30 1px 3px 0 rgba(0,0,0,.3), 0 4px 8px 3px rgba(0,0,0,.15)
Inner--sf-elevation-innerinset 0 1px 2px rgba(0,0,0,.075)

Customization

Users can easily customize the look and feel of the component by overriding these variables in the root stylesheet, without needing to add extra CSS classes or modify the core styles. In the example below, the custom variables are applied to the Grid component.

Loading...