data attributes
Mantine components use data-* attributes to apply styles. These attributes are used as
a modifier to apply styles based on component state. General rule of Mantine components
styles: one class with shared styles and any number of data-* attributes as modifiers.
Example of applying styles with data-* attributes:
data attributes values
Most of the data-* attributes do not have associated values, they represent boolean
state or a feature. For example, when the disabled prop on Button is set,
the data-disabled attribute is added to the <button /> element:
Will output the following HTML:
You can then use this attribute to apply styles to the disabled button:
When the disabled prop is not set, then the data-disabled attribute is not added to the
button:
In some cases, data-* attributes have associated values, for example, a Button
component's section element has an associated data-position attribute which can be
left or right. The following example will render two section elements, one with
data-position="left" and another with data-position="right":
Will output the following HTML:
You can then use this attribute to apply styles to the left and right sections:
Components data attributes documentation
Every component that uses data-* attributes has a dedicated section under the Styles API tab.
Button component data-* attributes table:
How to read the table:
selectorcolumn – Styles API selector (or multiple selectors) to which data attribute is addedattributecolumn – data attribute nameconditioncolumn – condition based on which the data attribute is added to the elementvaluecolumn – value of the data attribute
mod prop
All components support mod prop, which allows adding data attributes to
the root element: