Parts contain the CSS styles for a single feature like icons or text inputs.
Using parts you can, for example, select a text input style that matches you application, or disable our provided text input styles so that you can write your own.
Configuring Theme Parts
To add a part to a theme, call the theme.withPart(...)
method which returns a new theme using that part. A theme can only have one part for a given feature, so for example because all color scheme parts have feature: "colorScheme"
, adding a new color scheme to a theme will remove any existing part.
import { themeQuartz, colorSchemeDark, iconSetMaterial } from 'ag-grid-community';
// withPart() returns a new theme and calls can be chained
const myTheme = themeQuartz
.withPart(iconSetMaterial)
.withPart(colorSchemeDark);
This example demonstrates mixing and matching any built-in theme, icon set, and color scheme:
Parts Reference
The following parts are available:
colorScheme
feature:colorSchemeLight
- neutral light schemecolorSchemeLightCold
- light scheme with subtle cold tint used by Balham themecolorSchemeLightWarm
- light scheme with subtle warm tintcolorSchemeDark
- neutral dark schemecolorSchemeDarkBlue
- our preferred dark scheme used on this websitecolorSchemeDarkWarm
- dark scheme with subtle warm tint
iconSet
feature:iconSetQuartz
- our default icon seticonSetQuartz({strokeWidth: number})
you can call iconSetQuartz as a function to provide a custom stroke width in pixels (the default is 1.5)iconSetQuartzLight
andiconSetQuartzBold
preset lighter and bolder versions of the Quartz icons.
iconSetAlpine
- the icon set used by the Alpine themeiconSetMaterial
- the Material Design icon set
checkboxStyle
feature:checkboxStyleDefault
- checkbox style used by our themes. There is only one style provided which is configurable through parameters. It being a part allows you to replace it with your own checkbox styles if desired.
inputStyle
feature:inputStyleBase
- unstyled inputs with many parameters to configure their appearanceinputStyleBordered
- inputs with a border around theminputStyleUnderlined
- inputs with a line underneath them as used in Material Design
tabStyle
feature:tabStyleBase
- unstyled tabs with many parameters to configure their appearancetabStyleQuartz
- tabs styled as per the Quartz themetabStyleMaterial
- tabs styled as per the Material themetabStyleAlpine
- tabs styled as per the Alpine themetabStyleRolodex
- tabs designed to imitate paper cards, as used by the Balham theme
Removing a Part from a Built-in Theme
Adding a part to a theme will remove any part of the same feature. So to remove a part, create an empty part with the same feature name:
const noCheckboxStyle = createPart({ feature: 'checkboxStyle' });
const myCustomTheme = themeQuartz.withPart(noCheckboxStyle);