Mantine @mantine/core 9.5.0 wrappers (generated, supplement hoisted from codegen/supplements/).
Mantine @mantine/core 9.5.0 wrappers (generated, supplement hoisted from codegen/supplements/).
Accordion — Divide content into collapsible sections
https://mantine.dev/core/accordion
Props (docgen 9.5.0):
React.ReactNode — Custom chevron iconstring | number (default 16) — Size of the default chevron icon. Ignored when chevron prop is set. Use chevronSize instead when using custom chevron."left" | "right" (default right) — Position of the chevron relative to the item labelstring | number (default auto) — Size of the chevron icon containerstring | string[] | null — Uncontrolled component default valueboolean (default false) — If set, chevron rotation is disabledboolean (default false) — If set, the open item cannot be collapsed by clicking it again, so one item always stays open. Only applies when multiple is false.boolean (default true) — If set to false, panels are unmounted when collapsed. By default, panels stay mounted when collapsed."activity" | "display-none" (default 'activity') — Controls how inactive panels content is hidden when keepMounted is true, 'activity' – hidden with Activity component, 'display-none' – hidden with display: none stylesboolean (default true) — If set, arrow keys loop through items (first to last and last to first)boolean (default false) — If set, multiple items can be opened at the same time(value: AccordionValue<Multiple>) => void — Called when value changes, payload type depends on multiple prop2 | 3 | 4 | 5 | 6 — Sets heading level (h2-h6) for Accordion.Control elements. Wraps each control in the corresponding heading tag, recommended to meet WAI-ARIA accessibility requirements. Has no visual effect.MantineRadius | number (default theme.defaultRadius) — Key of theme.radius or any valid CSS value to set border-radius. Numbers are converted to rem.number (default 200) — Transition duration in msstring | string[] | null — Controlled component valueOptional leading props map; remaining args are children.
Accordion — Divide content into collapsible sections https://mantine.dev/core/accordion Props (docgen 9.5.0): - **chevron** `React.ReactNode` — Custom chevron icon - **chevronIconSize** `string | number` _(default `16`)_ — Size of the default chevron icon. Ignored when `chevron` prop is set. Use `chevronSize` instead when using custom chevron. - **chevronPosition** `"left" | "right"` _(default `right`)_ — Position of the chevron relative to the item label - **chevronSize** `string | number` _(default `auto`)_ — Size of the chevron icon container - **defaultValue** `string | string[] | null` — Uncontrolled component default value - **disableChevronRotation** `boolean` _(default `false`)_ — If set, chevron rotation is disabled - **disableCollapse** `boolean` _(default `false`)_ — If set, the open item cannot be collapsed by clicking it again, so one item always stays open. Only applies when `multiple` is `false`. - **keepMounted** `boolean` _(default `true`)_ — If set to `false`, panels are unmounted when collapsed. By default, panels stay mounted when collapsed. - **keepMountedMode** `"activity" | "display-none"` _(default `'activity'`)_ — Controls how inactive panels content is hidden when `keepMounted` is `true`, `'activity'` – hidden with `Activity` component, `'display-none'` – hidden with `display: none` styles - **loop** `boolean` _(default `true`)_ — If set, arrow keys loop through items (first to last and last to first) - **multiple** `boolean` _(default `false`)_ — If set, multiple items can be opened at the same time - **onChange** `(value: AccordionValue<Multiple>) => void` — Called when value changes, payload type depends on `multiple` prop - **order** `2 | 3 | 4 | 5 | 6` — Sets heading level (h2-h6) for `Accordion.Control` elements. Wraps each control in the corresponding heading tag, recommended to meet WAI-ARIA accessibility requirements. Has no visual effect. - **radius** `MantineRadius | number` _(default `theme.defaultRadius`)_ — Key of `theme.radius` or any valid CSS value to set border-radius. Numbers are converted to rem. - **transitionDuration** `number` _(default `200`)_ — Transition duration in ms - **value** `string | string[] | null` — Controlled component value Optional leading props map; remaining args are children.
Accordion.Chevron — compound part of Accordion (docgen omits it). Optional leading props map; remaining args are children.
Accordion.Chevron — compound part of Accordion (docgen omits it). Optional leading props map; remaining args are children.
AccordionControl — Divide content into collapsible sections (Accordion family)
https://mantine.dev/core/accordion
Props (docgen 9.5.0):
React.ReactNode — Custom chevron iconReact.ReactNode — Control labelboolean — Sets disabled attribute, prevents interactionsReact.ReactNode — Icon displayed next to the labelOptional leading props map; remaining args are children.
AccordionControl — Divide content into collapsible sections (Accordion family) https://mantine.dev/core/accordion Props (docgen 9.5.0): - **chevron** `React.ReactNode` — Custom chevron icon - **children** `React.ReactNode` — Control label - **disabled** `boolean` — Sets `disabled` attribute, prevents interactions - **icon** `React.ReactNode` — Icon displayed next to the label Optional leading props map; remaining args are children.
AccordionItem — Divide content into collapsible sections (Accordion family)
https://mantine.dev/core/accordion
Props (docgen 9.5.0):
string (required) — Value that is used to manage the accordion stateOptional leading props map; remaining args are children.
AccordionItem — Divide content into collapsible sections (Accordion family) https://mantine.dev/core/accordion Props (docgen 9.5.0): - **value** `string` **(required)** — Value that is used to manage the accordion state Optional leading props map; remaining args are children.
Accordion.Panel — compound part of Accordion (docgen omits it). Optional leading props map; remaining args are children.
Accordion.Panel — compound part of Accordion (docgen omits it). Optional leading props map; remaining args are children.
ActionIcon — Icon button
https://mantine.dev/core/action-icon
Polymorphic: accepts :component / :render-root.
Props (docgen 9.5.0):
boolean — If set, adjusts text color based on background color for filled variantReact.ReactNode — Icon elementMantineColor (default theme.primaryColor) — Key of theme.colors or any valid CSS color.boolean — Sets disabled attribute, prevents interactionsMantineGradient (default theme.defaultGradient) — Gradient values used with variant="gradient".LoaderProps — Props passed down to the Loader component. Ignored when loading prop is not set.boolean — If set, Loader component is displayed instead of the childrenMantineRadius | number (default theme.defaultRadius) — Key of theme.radius or any valid CSS value to set border-radius. Numbers are converted to rem.number | MantineSize | (string & {}) | "input-xs" | "input-sm" | "input-md" | "input-lg" | "input-xl" (default 'md') — Controls width and height of the button. Numbers are converted to rem.Optional leading props map; remaining args are children.
ActionIcon — Icon button
https://mantine.dev/core/action-icon
Polymorphic: accepts :component / :render-root.
Props (docgen 9.5.0):
- **autoContrast** `boolean` — If set, adjusts text color based on background color for `filled` variant
- **children** `React.ReactNode` — Icon element
- **color** `MantineColor` _(default `theme.primaryColor`)_ — Key of `theme.colors` or any valid CSS color.
- **disabled** `boolean` — Sets `disabled` attribute, prevents interactions
- **gradient** `MantineGradient` _(default `theme.defaultGradient`)_ — Gradient values used with `variant="gradient"`.
- **loaderProps** `LoaderProps` — Props passed down to the `Loader` component. Ignored when `loading` prop is not set.
- **loading** `boolean` — If set, `Loader` component is displayed instead of the `children`
- **radius** `MantineRadius | number` _(default `theme.defaultRadius`)_ — Key of `theme.radius` or any valid CSS value to set border-radius. Numbers are converted to rem.
- **size** `number | MantineSize | (string & {}) | "input-xs" | "input-sm" | "input-md" | "input-lg" | "input-xl"` _(default `'md'`)_ — Controls width and height of the button. Numbers are converted to rem.
Optional leading props map; remaining args are children.ActionIconGroup — Icon button (ActionIcon family)
https://mantine.dev/core/action-icon
Polymorphic: accepts :component / :render-root.
Props (docgen 9.5.0):
string | number (default 1) — border-width of the child components.React.ReactNode — ActionIcon and ActionIcon.GroupSection components only"horizontal" | "vertical" (default 'horizontal') — Group orientationOptional leading props map; remaining args are children.
ActionIconGroup — Icon button (ActionIcon family) https://mantine.dev/core/action-icon Polymorphic: accepts :component / :render-root. Props (docgen 9.5.0): - **borderWidth** `string | number` _(default `1`)_ — `border-width` of the child components. - **children** `React.ReactNode` — `ActionIcon` and `ActionIcon.GroupSection` components only - **orientation** `"horizontal" | "vertical"` _(default `'horizontal'`)_ — Group orientation Optional leading props map; remaining args are children.
ActionIcon.GroupSection — compound part of ActionIcon (docgen omits it). Optional leading props map; remaining args are children.
ActionIcon.GroupSection — compound part of ActionIcon (docgen omits it). Optional leading props map; remaining args are children.
Affix — Renders children inside portal at fixed position
https://mantine.dev/core/affix
Props (docgen 9.5.0):
BasePortalProps — Props passed down to the Portal component. Ignored when withinPortal is false.AffixPosition (default { bottom: 0, right: 0 }) — Affix position on screenboolean (default true) — Determines whether the component is rendered within PortalReact.CSSProperties["zIndex"] (default 200) — Root element z-index propertyOptional leading props map; remaining args are children.
Affix — Renders children inside portal at fixed position
https://mantine.dev/core/affix
Props (docgen 9.5.0):
- **portalProps** `BasePortalProps` — Props passed down to the `Portal` component. Ignored when `withinPortal` is `false`.
- **position** `AffixPosition` _(default `{ bottom: 0, right: 0 }`)_ — Affix position on screen
- **withinPortal** `boolean` _(default `true`)_ — Determines whether the component is rendered within `Portal`
- **zIndex** `React.CSSProperties["zIndex"]` _(default `200`)_ — Root element `z-index` property
Optional leading props map; remaining args are children.Alert — Attract user attention with important static message
https://mantine.dev/core/alert
Props (docgen 9.5.0):
boolean — If set, adjusts text color based on background color for filled variantstring — Close button aria-labelMantineColor (default theme.primaryColor) — Key of theme.colors or any valid CSS colorReact.ReactNode — Icon displayed next to the title() => void — Called when the close button is clickedMantineRadius | number (default theme.defaultRadius) — Key of theme.radius or any valid CSS value to set border-radiusReact.ReactNode — Alert titleboolean (default false) — Determines whether close button should be displayedOptional leading props map; remaining args are children.
Alert — Attract user attention with important static message https://mantine.dev/core/alert Props (docgen 9.5.0): - **autoContrast** `boolean` — If set, adjusts text color based on background color for `filled` variant - **closeButtonLabel** `string` — Close button `aria-label` - **color** `MantineColor` _(default `theme.primaryColor`)_ — Key of `theme.colors` or any valid CSS color - **icon** `React.ReactNode` — Icon displayed next to the title - **onClose** `() => void` — Called when the close button is clicked - **radius** `MantineRadius | number` _(default `theme.defaultRadius`)_ — Key of `theme.radius` or any valid CSS value to set border-radius - **title** `React.ReactNode` — Alert title - **withCloseButton** `boolean` _(default `false`)_ — Determines whether close button should be displayed Optional leading props map; remaining args are children.
AlphaSlider — Slider component for selecting alpha channel in color pickers (0 – 1)
https://mantine.dev/core/alpha-slider
Props (docgen 9.5.0):
string (required)boolean (default true) — If set, slider thumb can be focused(value: number) => void — Called when value changes(value: number) => void — Called when user stops dragging the slider or uses keyboard to change value() => void — Called when user stops dragging the slider() => void — Called when user starts dragging the sliderMantineSize (default 'md') — Slider sizenumber (required) — Controlled component valueOptional leading props map; remaining args are children.
AlphaSlider — Slider component for selecting alpha channel in color pickers (0 – 1) https://mantine.dev/core/alpha-slider Props (docgen 9.5.0): - **color** `string` **(required)** - **focusable** `boolean` _(default `true`)_ — If set, slider thumb can be focused - **onChange** `(value: number) => void` — Called when value changes - **onChangeEnd** `(value: number) => void` — Called when user stops dragging the slider or uses keyboard to change value - **onScrubEnd** `() => void` — Called when user stops dragging the slider - **onScrubStart** `() => void` — Called when user starts dragging the slider - **size** `MantineSize` _(default `'md'`)_ — Slider size - **value** `number` **(required)** — Controlled component value Optional leading props map; remaining args are children.
Anchor — Display link with theme styles
https://mantine.dev/core/anchor
Props (docgen 9.5.0):
MantineGradient (default theme.defaultGradient) — Gradient configuration, ignored when variant is not gradientboolean (default false) — Determines whether font properties should be inherited from the parentboolean (default false) — Sets line-height to 1 for centeringnumber — Number of lines after which Text will be truncatedMantineSize | (string & {}) (default 'md') — Controls font-size and line-height"wrap" | "nowrap" | "balance" | "pretty" | "stable" — Controls text-wrap CSS propertyTextTruncate — Side on which Text must be truncated, if true, text is truncated from the start"always" | "hover" | "not-hover" | "never" (default hover) — Defines when text-decoration: underline styles are applied.Optional leading props map; remaining args are children.
Anchor — Display link with theme styles
https://mantine.dev/core/anchor
Props (docgen 9.5.0):
- **gradient** `MantineGradient` _(default `theme.defaultGradient`)_ — Gradient configuration, ignored when `variant` is not `gradient`
- **inherit** `boolean` _(default `false`)_ — Determines whether font properties should be inherited from the parent
- **inline** `boolean` _(default `false`)_ — Sets `line-height` to 1 for centering
- **lineClamp** `number` — Number of lines after which Text will be truncated
- **size** `MantineSize | (string & {})` _(default `'md'`)_ — Controls `font-size` and `line-height`
- **textWrap** `"wrap" | "nowrap" | "balance" | "pretty" | "stable"` — Controls `text-wrap` CSS property
- **truncate** `TextTruncate` — Side on which Text must be truncated, if `true`, text is truncated from the start
- **underline** `"always" | "hover" | "not-hover" | "never"` _(default `hover`)_ — Defines when `text-decoration: underline` styles are applied.
Optional leading props map; remaining args are children.AngleSlider — Pick angle value between 0 and 360
https://mantine.dev/core/angle-slider
Props (docgen 9.5.0):
number — Uncontrolled component default valueboolean — Sets data-disabled attribute, disables interactions(value: number) => ReactNode — A function to format label based on the current valueReact.ComponentProps<"input"> — Props passed down to the hidden input{ value: number; label?: string; }[] | undefined — Array of marks displayed on the sliderstring — Hidden input name, use with uncontrolled component(value: number) => void — Called on value change(value: number) => void — Called after the selection is finished() => void — Called in onMouseUp and onTouchEnd() => void — Called in onMouseDown and onTouchStartboolean (default false) — If set, the selection is allowed only from the given marks arraynumber (default 60) — Slider size in pxnumber (default 1) — Step between valuesnumber — Size of the thumb in px. Calculated based on the size value by default.number — Controlled component valueboolean (default true) — If set, the label is displayed inside the sliderOptional leading props map; remaining args are children.
AngleSlider — Pick angle value between 0 and 360
https://mantine.dev/core/angle-slider
Props (docgen 9.5.0):
- **defaultValue** `number` — Uncontrolled component default value
- **disabled** `boolean` — Sets `data-disabled` attribute, disables interactions
- **formatLabel** `(value: number) => ReactNode` — A function to format label based on the current value
- **hiddenInputProps** `React.ComponentProps<"input">` — Props passed down to the hidden input
- **marks** `{ value: number; label?: string; }[] | undefined` — Array of marks displayed on the slider
- **name** `string` — Hidden input name, use with uncontrolled component
- **onChange** `(value: number) => void` — Called on value change
- **onChangeEnd** `(value: number) => void` — Called after the selection is finished
- **onScrubEnd** `() => void` — Called in `onMouseUp` and `onTouchEnd`
- **onScrubStart** `() => void` — Called in `onMouseDown` and `onTouchStart`
- **restrictToMarks** `boolean` _(default `false`)_ — If set, the selection is allowed only from the given marks array
- **size** `number` _(default `60`)_ — Slider size in px
- **step** `number` _(default `1`)_ — Step between values
- **thumbSize** `number` — Size of the thumb in px. Calculated based on the `size` value by default.
- **value** `number` — Controlled component value
- **withLabel** `boolean` _(default `true`)_ — If set, the label is displayed inside the slider
Optional leading props map; remaining args are children.AppShell — Responsive shell for your application with header, navbar, aside and footer
https://mantine.dev/core/app-shell
Props (docgen 9.5.0):
AppShellAsideConfiguration — Aside configuration, controls width, breakpoints and collapsed state. Required if you use Aside component.boolean — If set, Navbar, Aside, Header and Footer components are hiddenAppShellFooterConfiguration — Footer configuration, controls height, offset and collapsed state. Required if you use Footer component.AppShellHeaderConfiguration — Header configuration, controls height, offset and collapsed state. Required if you use Header component."default" | "alt" — Determines how Navbar/Aside are arranged relative to Header/Footer"fixed" | "static" (default 'fixed') — Determines positioning mode of all sectionsAppShellNavbarConfiguration — Navbar configuration, controls width, breakpoints and collapsed state. Required if you use Navbar component.boolean (default true) — If set, Header and Footer components include styles to offset scrollbars. Based on react-remove-scroll.MantineSpacing | AppShellResponsiveSize (default 0) — Padding of the main section. Important: use padding prop instead of p.number (default 200) — Duration of all transitions in msTransitionTimingFunction (default ease) — Timing function of all transitionsboolean (default true) — If set, the associated components have a borderstring | number (default 100) — z-index of all associated elementsOptional leading props map; remaining args are children.
AppShell — Responsive shell for your application with header, navbar, aside and footer https://mantine.dev/core/app-shell Props (docgen 9.5.0): - **aside** `AppShellAsideConfiguration` — `Aside` configuration, controls width, breakpoints and collapsed state. Required if you use `Aside` component. - **disabled** `boolean` — If set, `Navbar`, `Aside`, `Header` and `Footer` components are hidden - **footer** `AppShellFooterConfiguration` — `Footer` configuration, controls height, offset and collapsed state. Required if you use `Footer` component. - **header** `AppShellHeaderConfiguration` — `Header` configuration, controls height, offset and collapsed state. Required if you use `Header` component. - **layout** `"default" | "alt"` — Determines how `Navbar`/`Aside` are arranged relative to `Header`/`Footer` - **mode** `"fixed" | "static"` _(default `'fixed'`)_ — Determines positioning mode of all sections - **navbar** `AppShellNavbarConfiguration` — `Navbar` configuration, controls width, breakpoints and collapsed state. Required if you use `Navbar` component. - **offsetScrollbars** `boolean` _(default `true`)_ — If set, `Header` and `Footer` components include styles to offset scrollbars. Based on `react-remove-scroll`. - **padding** `MantineSpacing | AppShellResponsiveSize` _(default `0`)_ — Padding of the main section. Important: use `padding` prop instead of `p`. - **transitionDuration** `number` _(default `200`)_ — Duration of all transitions in ms - **transitionTimingFunction** `TransitionTimingFunction` _(default `ease`)_ — Timing function of all transitions - **withBorder** `boolean` _(default `true`)_ — If set, the associated components have a border - **zIndex** `string | number` _(default `100`)_ — `z-index` of all associated elements Optional leading props map; remaining args are children.
AppShellAside — Responsive shell for your application with header, navbar, aside and footer (AppShell family)
https://mantine.dev/core/app-shell
Props (docgen 9.5.0):
boolean — If set, component haves a border, overrides withBorder prop on AppShell componentReact.CSSProperties["zIndex"] — Sets z-index. Inherited from the AppShell by default.Optional leading props map; remaining args are children.
AppShellAside — Responsive shell for your application with header, navbar, aside and footer (AppShell family) https://mantine.dev/core/app-shell Props (docgen 9.5.0): - **withBorder** `boolean` — If set, component haves a border, overrides `withBorder` prop on `AppShell` component - **zIndex** `React.CSSProperties["zIndex"]` — Sets `z-index`. Inherited from the `AppShell` by default. Optional leading props map; remaining args are children.
AppShellFooter — Responsive shell for your application with header, navbar, aside and footer (AppShell family)
https://mantine.dev/core/app-shell
Props (docgen 9.5.0):
boolean — If set, component haves a border, overrides withBorder prop on AppShell componentReact.CSSProperties["zIndex"] — Sets z-index. Inherited from the AppShell by default.Optional leading props map; remaining args are children.
AppShellFooter — Responsive shell for your application with header, navbar, aside and footer (AppShell family) https://mantine.dev/core/app-shell Props (docgen 9.5.0): - **withBorder** `boolean` — If set, component haves a border, overrides `withBorder` prop on `AppShell` component - **zIndex** `React.CSSProperties["zIndex"]` — Sets `z-index`. Inherited from the `AppShell` by default. Optional leading props map; remaining args are children.
AppShellHeader — Responsive shell for your application with header, navbar, aside and footer (AppShell family)
https://mantine.dev/core/app-shell
Props (docgen 9.5.0):
boolean — If set, component haves a border, overrides withBorder prop on AppShell componentReact.CSSProperties["zIndex"] — Sets z-index. Inherited from the AppShell by default.Optional leading props map; remaining args are children.
AppShellHeader — Responsive shell for your application with header, navbar, aside and footer (AppShell family) https://mantine.dev/core/app-shell Props (docgen 9.5.0): - **withBorder** `boolean` — If set, component haves a border, overrides `withBorder` prop on `AppShell` component - **zIndex** `React.CSSProperties["zIndex"]` — Sets `z-index`. Inherited from the `AppShell` by default. Optional leading props map; remaining args are children.
AppShell.Main — compound part of AppShell (docgen omits it). Optional leading props map; remaining args are children.
AppShell.Main — compound part of AppShell (docgen omits it). Optional leading props map; remaining args are children.
AppShellNavbar — Responsive shell for your application with header, navbar, aside and footer (AppShell family)
https://mantine.dev/core/app-shell
Props (docgen 9.5.0):
boolean — If set, component haves a border, overrides withBorder prop on AppShell componentReact.CSSProperties["zIndex"] — Sets z-index. Inherited from the AppShell by default.Optional leading props map; remaining args are children.
AppShellNavbar — Responsive shell for your application with header, navbar, aside and footer (AppShell family) https://mantine.dev/core/app-shell Props (docgen 9.5.0): - **withBorder** `boolean` — If set, component haves a border, overrides `withBorder` prop on `AppShell` component - **zIndex** `React.CSSProperties["zIndex"]` — Sets `z-index`. Inherited from the `AppShell` by default. Optional leading props map; remaining args are children.
AppShellSection
Props (docgen 9.5.0):
boolean — If set, the section expands to take all available spaceOptional leading props map; remaining args are children.
AppShellSection Props (docgen 9.5.0): - **grow** `boolean` — If set, the section expands to take all available space Optional leading props map; remaining args are children.
AspectRatio — Maintain responsive consistent width/height ratio
https://mantine.dev/core/aspect-ratio
Props (docgen 9.5.0):
number (default 1) — Aspect ratio, for example, 16 / 9, 4 / 3, 1920 / 1080Optional leading props map; remaining args are children.
AspectRatio — Maintain responsive consistent width/height ratio https://mantine.dev/core/aspect-ratio Props (docgen 9.5.0): - **ratio** `number` _(default `1`)_ — Aspect ratio, for example, `16 / 9`, `4 / 3`, `1920 / 1080` Optional leading props map; remaining args are children.
Autocomplete — Autocomplete user input with any list of options
https://mantine.dev/core/autocomplete
Props (docgen 9.5.0):
boolean (default false) — If set, the highlighted option is selected when the input loses focusInputClearButtonProps — Props passed down to the clear buttonClearSectionMode (default 'both') — Determines how the clear button and rightSection are renderedboolean (default false) — If set, the clear button is displayed when the component has a valueComboboxProps — Props passed down to Combobox componentComboboxGenericData — Data used to display options. Values must be unique.boolean — Uncontrolled dropdown initial opened statestring — Default value for uncontrolled componentReact.ReactNode — Contents of Input.Description component. If not set, description is not displayed.InputDescriptionProps — Props passed down to the Input.Description componentboolean — Sets disabled attribute on the input elementboolean — Controlled dropdown opened stateReact.ReactNode — Contents of Input.Error component. If not set, error is not displayed.InputErrorProps — Props passed down to the Input.Error componentOptionsFilter<string> — Function based on which items are filtered and sorted"viewport" — If set to 'viewport', the dropdown grows to fill the available vertical space in the viewport. Disables the flip middleware.(children: ReactNode) => ReactNode (default React.Fragment) — Render function to wrap the input element. Useful for adding tooltips, popovers, or other wrappers around the input.string — HTML size attribute for the input element (number of visible characters)("input" | "label" | "description" | "error")[] (default ['label', 'description', 'input', 'error']) — Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.React.ReactNode — Contents of Input.Label component. If not set, label is not displayed.InputLabelProps — Props passed down to the Input.Label componentReact.ReactNode — Content section displayed on the left side of the inputReact.CSSProperties["pointerEvents"] (default 'none') — Sets pointer-events styles on the leftSection element. Use 'all' when section contains interactive elements (buttons, links).React.ComponentProps<"div"> — Props passed down to the leftSection elementReact.CSSProperties["width"] — Left section width, used to set width of the section and input padding-left, by default equals to the input heightnumber — Maximum number of options displayed at a time, Infinity by defaultboolean (default false) — Displays loading indicator in the left or right section"left" | "right" (default 'right') — Position of the loading indicatorstring | number — max-height of the dropdown, only applicable when withScrollArea prop is true, 250 by default(value: string) => void — Called when value changes() => void — Called when the clear button is clicked() => void — Called when dropdown closes() => void — Called when dropdown opens(value: string) => void — Called when option is submitted from dropdown with mouse click or Enter keyboolean (default true) — If set, the dropdown opens when the input receives focusMantineRadius | number (default theme.defaultRadius) — Key of theme.radius or any valid CSS value to set border-radius, numbers are converted to remRenderAutocompleteOption — Function to render custom option contentboolean (default false) — Adds required attribute to the input and a red asterisk on the right side of labelReact.ReactNode — Content section displayed on the right side of the inputReact.CSSProperties["pointerEvents"] (default 'none') — Sets pointer-events styles on the rightSection element. Use 'all' when section contains interactive elements (buttons, links).React.ComponentProps<"div"> — Props passed down to the rightSection elementReact.CSSProperties["width"] — Right section width, used to set width of the section and input padding-right, by default equals to the input heightScrollAreaProps — Props passed to the underlying ScrollArea component in the dropdownboolean — If set, the first option is selected when value changes, false by defaultboolean — If set, the first option is selected when dropdown opens, false by defaultMantineSize (default 'sm') — Controls input height, horizontal padding, and font-sizeReact.ReactNode — Contents of Input.Success component. If not set, success is not displayed.InputSuccessProps & DataAttributes — Props passed down to the Input.Success componentstring — Controlled component valueboolean (default false) — If set, the required asterisk is displayed next to the label. Overrides required prop. Does not add required attribute to the input.boolean (default true) — Determines whether the input should have red border and red text color when the error prop is setboolean — Determines whether the options should be wrapped with ScrollArea.AutoSize, true by defaultboolean (default true) — Determines whether the input should have green border when the success prop is setWrapperProps — Props passed down to the root elementOptional leading props map; remaining args are children.
Autocomplete — Autocomplete user input with any list of options
https://mantine.dev/core/autocomplete
Props (docgen 9.5.0):
- **autoSelectOnBlur** `boolean` _(default `false`)_ — If set, the highlighted option is selected when the input loses focus
- **clearButtonProps** `InputClearButtonProps` — Props passed down to the clear button
- **clearSectionMode** `ClearSectionMode` _(default `'both'`)_ — Determines how the clear button and rightSection are rendered
- **clearable** `boolean` _(default `false`)_ — If set, the clear button is displayed when the component has a value
- **comboboxProps** `ComboboxProps` — Props passed down to `Combobox` component
- **data** `ComboboxGenericData` — Data used to display options. Values must be unique.
- **defaultDropdownOpened** `boolean` — Uncontrolled dropdown initial opened state
- **defaultValue** `string` — Default value for uncontrolled component
- **description** `React.ReactNode` — Contents of `Input.Description` component. If not set, description is not displayed.
- **descriptionProps** `InputDescriptionProps` — Props passed down to the `Input.Description` component
- **disabled** `boolean` — Sets `disabled` attribute on the `input` element
- **dropdownOpened** `boolean` — Controlled dropdown opened state
- **error** `React.ReactNode` — Contents of `Input.Error` component. If not set, error is not displayed.
- **errorProps** `InputErrorProps` — Props passed down to the `Input.Error` component
- **filter** `OptionsFilter<string>` — Function based on which items are filtered and sorted
- **floatingHeight** `"viewport"` — If set to `'viewport'`, the dropdown grows to fill the available vertical space in the viewport. Disables the `flip` middleware.
- **inputContainer** `(children: ReactNode) => ReactNode` _(default `React.Fragment`)_ — Render function to wrap the input element. Useful for adding tooltips, popovers, or other wrappers around the input.
- **inputSize** `string` — HTML `size` attribute for the input element (number of visible characters)
- **inputWrapperOrder** `("input" | "label" | "description" | "error")[]` _(default `['label', 'description', 'input', 'error']`)_ — Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.
- **label** `React.ReactNode` — Contents of `Input.Label` component. If not set, label is not displayed.
- **labelProps** `InputLabelProps` — Props passed down to the `Input.Label` component
- **leftSection** `React.ReactNode` — Content section displayed on the left side of the input
- **leftSectionPointerEvents** `React.CSSProperties["pointerEvents"]` _(default `'none'`)_ — Sets `pointer-events` styles on the `leftSection` element. Use `'all'` when section contains interactive elements (buttons, links).
- **leftSectionProps** `React.ComponentProps<"div">` — Props passed down to the `leftSection` element
- **leftSectionWidth** `React.CSSProperties["width"]` — Left section width, used to set `width` of the section and input `padding-left`, by default equals to the input height
- **limit** `number` — Maximum number of options displayed at a time, `Infinity` by default
- **loading** `boolean` _(default `false`)_ — Displays loading indicator in the left or right section
- **loadingPosition** `"left" | "right"` _(default `'right'`)_ — Position of the loading indicator
- **maxDropdownHeight** `string | number` — `max-height` of the dropdown, only applicable when `withScrollArea` prop is `true`, `250` by default
- **onChange** `(value: string) => void` — Called when value changes
- **onClear** `() => void` — Called when the clear button is clicked
- **onDropdownClose** `() => void` — Called when dropdown closes
- **onDropdownOpen** `() => void` — Called when dropdown opens
- **onOptionSubmit** `(value: string) => void` — Called when option is submitted from dropdown with mouse click or `Enter` key
- **openOnFocus** `boolean` _(default `true`)_ — If set, the dropdown opens when the input receives focus
- **radius** `MantineRadius | number` _(default `theme.defaultRadius`)_ — Key of `theme.radius` or any valid CSS value to set `border-radius`, numbers are converted to rem
- **renderOption** `RenderAutocompleteOption` — Function to render custom option content
- **required** `boolean` _(default `false`)_ — Adds required attribute to the input and a red asterisk on the right side of label
- **rightSection** `React.ReactNode` — Content section displayed on the right side of the input
- **rightSectionPointerEvents** `React.CSSProperties["pointerEvents"]` _(default `'none'`)_ — Sets `pointer-events` styles on the `rightSection` element. Use `'all'` when section contains interactive elements (buttons, links).
- **rightSectionProps** `React.ComponentProps<"div">` — Props passed down to the `rightSection` element
- **rightSectionWidth** `React.CSSProperties["width"]` — Right section width, used to set `width` of the section and input `padding-right`, by default equals to the input height
- **scrollAreaProps** `ScrollAreaProps` — Props passed to the underlying `ScrollArea` component in the dropdown
- **selectFirstOptionOnChange** `boolean` — If set, the first option is selected when value changes, `false` by default
- **selectFirstOptionOnDropdownOpen** `boolean` — If set, the first option is selected when dropdown opens, `false` by default
- **size** `MantineSize` _(default `'sm'`)_ — Controls input `height`, horizontal `padding`, and `font-size`
- **success** `React.ReactNode` — Contents of `Input.Success` component. If not set, success is not displayed.
- **successProps** `InputSuccessProps & DataAttributes` — Props passed down to the `Input.Success` component
- **value** `string` — Controlled component value
- **withAsterisk** `boolean` _(default `false`)_ — If set, the required asterisk is displayed next to the label. Overrides `required` prop. Does not add required attribute to the input.
- **withErrorStyles** `boolean` _(default `true`)_ — Determines whether the input should have red border and red text color when the `error` prop is set
- **withScrollArea** `boolean` — Determines whether the options should be wrapped with `ScrollArea.AutoSize`, `true` by default
- **withSuccessStyles** `boolean` _(default `true`)_ — Determines whether the input should have green border when the `success` prop is set
- **wrapperProps** `WrapperProps` — Props passed down to the root element
Optional leading props map; remaining args are children.Avatar — Display user profile image, initials or fallback icon
https://mantine.dev/core/avatar
Polymorphic: accepts :component / :render-root.
Props (docgen 9.5.0):
DefaultMantineColor[] — A list of colors that is used for autogenerated initials. By default, all default Mantine colors can be used except gray and dark.string — Image alt attribute, also used as title attribute for placeholderboolean — If set, adjusts text color based on background color for filled variantReact.ReactNode — Avatar placeholder, displayed when src={null} or when the image cannot be loadedDefaultMantineColor | "initials" (default 'gray') — Key of theme.colors or any valid CSS colorMantineGradient (default theme.defaultGradient) — Gradient configuration for variant="gradient"DetailedHTMLProps<ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement> — Attributes passed down to img elementstring — Name of the user. When src is not set, used to display initials and to generate color when color="initials" is set.MantineRadius | number (default '1000px') — Key of theme.radius or any valid CSS value to set border-radiusMantineSize | number (default 'md') — Width and height of the avatar, numbers are converted to remstring | null — Image url, if the image cannot be loaded or src={null}, then placeholder is displayed insteadOptional leading props map; remaining args are children.
Avatar — Display user profile image, initials or fallback icon
https://mantine.dev/core/avatar
Polymorphic: accepts :component / :render-root.
Props (docgen 9.5.0):
- **allowedInitialsColors** `DefaultMantineColor[]` — A list of colors that is used for autogenerated initials. By default, all default Mantine colors can be used except gray and dark.
- **alt** `string` — Image `alt` attribute, also used as `title` attribute for placeholder
- **autoContrast** `boolean` — If set, adjusts text color based on background color for `filled` variant
- **children** `React.ReactNode` — Avatar placeholder, displayed when `src={null}` or when the image cannot be loaded
- **color** `DefaultMantineColor | "initials"` _(default `'gray'`)_ — Key of `theme.colors` or any valid CSS color
- **gradient** `MantineGradient` _(default `theme.defaultGradient`)_ — Gradient configuration for `variant="gradient"`
- **imageProps** `DetailedHTMLProps<ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement>` — Attributes passed down to `img` element
- **name** `string` — Name of the user. When `src` is not set, used to display initials and to generate color when `color="initials"` is set.
- **radius** `MantineRadius | number` _(default `'1000px'`)_ — Key of `theme.radius` or any valid CSS value to set border-radius
- **size** `MantineSize | number` _(default `'md'`)_ — Width and height of the avatar, numbers are converted to rem
- **src** `string | null` — Image url, if the image cannot be loaded or `src={null}`, then placeholder is displayed instead
Optional leading props map; remaining args are children.AvatarGroup — Display user profile image, initials or fallback icon (Avatar family)
https://mantine.dev/core/avatar
Polymorphic: accepts :component / :render-root.
Optional leading props map; remaining args are children.
AvatarGroup — Display user profile image, initials or fallback icon (Avatar family) https://mantine.dev/core/avatar Polymorphic: accepts :component / :render-root. Optional leading props map; remaining args are children.
BackgroundImage — Displays image as background
https://mantine.dev/core/background-image
Polymorphic: accepts :component / :render-root.
Props (docgen 9.5.0):
MantineRadius | number (default 0) — Key of theme.radius or any valid CSS value to set border-radius, numbers are converted to remstring (required) — Image urlOptional leading props map; remaining args are children.
BackgroundImage — Displays image as background https://mantine.dev/core/background-image Polymorphic: accepts :component / :render-root. Props (docgen 9.5.0): - **radius** `MantineRadius | number` _(default `0`)_ — Key of `theme.radius` or any valid CSS value to set border-radius, numbers are converted to rem - **src** `string` **(required)** — Image url Optional leading props map; remaining args are children.
Badge — Display badge, pill or tag
https://mantine.dev/core/badge
Polymorphic: accepts :component / :render-root.
Props (docgen 9.5.0):
boolean — If set, adjusts text color based on background color for filled variantReact.ReactNode — Main badge contentboolean — If set, badge min-width becomes equal to its height and horizontal padding is removedMantineColor (default theme.primaryColor) — Key of theme.colors or any valid CSS colorboolean (default false) — Determines whether Badge should take 100% of its parent widthMantineGradient (default theme.defaultGradient) — Gradient configuration used when variant=\"gradient\"React.ReactNode — Content displayed on the left side of the badge labelMantineRadius | number (default 'xl') — Key of theme.radius or any valid CSS value to set border-radiusReact.ReactNode — Content displayed on the right side of the badge labelMantineSize (default 'md') — Controls font-size, height and horizontal paddingOptional leading props map; remaining args are children.
Badge — Display badge, pill or tag https://mantine.dev/core/badge Polymorphic: accepts :component / :render-root. Props (docgen 9.5.0): - **autoContrast** `boolean` — If set, adjusts text color based on background color for `filled` variant - **children** `React.ReactNode` — Main badge content - **circle** `boolean` — If set, badge `min-width` becomes equal to its `height` and horizontal padding is removed - **color** `MantineColor` _(default `theme.primaryColor`)_ — Key of `theme.colors` or any valid CSS color - **fullWidth** `boolean` _(default `false`)_ — Determines whether Badge should take 100% of its parent width - **gradient** `MantineGradient` _(default `theme.defaultGradient`)_ — Gradient configuration used when `variant=\"gradient\"` - **leftSection** `React.ReactNode` — Content displayed on the left side of the badge label - **radius** `MantineRadius | number` _(default `'xl'`)_ — Key of `theme.radius` or any valid CSS value to set `border-radius` - **rightSection** `React.ReactNode` — Content displayed on the right side of the badge label - **size** `MantineSize` _(default `'md'`)_ — Controls `font-size`, `height` and horizontal `padding` Optional leading props map; remaining args are children.
Blockquote — Blockquote with optional cite
https://mantine.dev/core/blockquote
Props (docgen 9.5.0):
React.ReactNode — Reference to a cited quoteMantineColor (default theme.primaryColor) — Key of theme.colors or any valid CSS colorReact.ReactNode — Blockquote icon, displayed at the top left sidestring | number (default 40) — Controls icon width and height, numbers are converted to remMantineRadius | number (default theme.defaultRadius) — Key of theme.radius or any valid CSS value to set border-radius"wrap" | "nowrap" | "balance" | "pretty" | "stable" — Controls text-wrap CSS propertyOptional leading props map; remaining args are children.
Blockquote — Blockquote with optional cite https://mantine.dev/core/blockquote Props (docgen 9.5.0): - **cite** `React.ReactNode` — Reference to a cited quote - **color** `MantineColor` _(default `theme.primaryColor`)_ — Key of `theme.colors` or any valid CSS color - **icon** `React.ReactNode` — Blockquote icon, displayed at the top left side - **iconSize** `string | number` _(default `40`)_ — Controls icon `width` and `height`, numbers are converted to rem - **radius** `MantineRadius | number` _(default `theme.defaultRadius`)_ — Key of `theme.radius` or any valid CSS value to set `border-radius` - **textWrap** `"wrap" | "nowrap" | "balance" | "pretty" | "stable"` — Controls `text-wrap` CSS property Optional leading props map; remaining args are children.
Box — polymorphic layout primitive (accepts :component / :render-root). Optional leading props map; remaining args are children.
Box — polymorphic layout primitive (accepts :component / :render-root). Optional leading props map; remaining args are children.
Breadcrumbs — Separates list of react nodes with given separator
https://mantine.dev/core/breadcrumbs
Props (docgen 9.5.0):
React.ReactNode (required) — React nodes that should be separated with separatorReact.ReactNode (default '/') — Separator between childrenMantineSpacing (default 'xs') — Controls spacing between separator and breadcrumbOptional leading props map; remaining args are children.
Breadcrumbs — Separates list of react nodes with given separator https://mantine.dev/core/breadcrumbs Props (docgen 9.5.0): - **children** `React.ReactNode` **(required)** — React nodes that should be separated with `separator` - **separator** `React.ReactNode` _(default `'/'`)_ — Separator between children - **separatorMargin** `MantineSpacing` _(default `'xs'`)_ — Controls spacing between separator and breadcrumb Optional leading props map; remaining args are children.
Burger — Open/close navigation button
https://mantine.dev/core/burger
Props (docgen 9.5.0):
MantineColor — Key of theme.colors of any valid CSS value, by default theme.white in dark color scheme and theme.black in lightstring | number — Controls height of lines, by default calculated based on size propboolean (default false) — State of the burger, when true burger is transformed into XMantineSize | number (default 'md') — Controls burger width and height, numbers are converted to remnumber (default 300) — transition-duration property value in msstring (default 'ease') — transition-timing-function property valueOptional leading props map; remaining args are children.
Burger — Open/close navigation button https://mantine.dev/core/burger Props (docgen 9.5.0): - **color** `MantineColor` — Key of `theme.colors` of any valid CSS value, by default `theme.white` in dark color scheme and `theme.black` in light - **lineSize** `string | number` — Controls height of lines, by default calculated based on `size` prop - **opened** `boolean` _(default `false`)_ — State of the burger, when `true` burger is transformed into X - **size** `MantineSize | number` _(default `'md'`)_ — Controls burger `width` and `height`, numbers are converted to rem - **transitionDuration** `number` _(default `300`)_ — `transition-duration` property value in ms - **transitionTimingFunction** `string` _(default `'ease'`)_ — `transition-timing-function` property value Optional leading props map; remaining args are children.
Button — Button component to render button or link
https://mantine.dev/core/button
Props (docgen 9.5.0):
boolean — If set, adjusts text color based on background color for filled variantReact.ReactNode — Button contentMantineColor (default theme.primaryColor) — Key of theme.colors or any valid CSS colorboolean — Sets disabled attribute, applies disabled stylesboolean (default false) — Sets width: 100%MantineGradient (default theme.defaultGradient) — Gradient configuration used for variant="gradient"JustifyContent (default 'center') — Sets justify-content of inner element, can be used to change distribution of sections and labelReact.ReactNode — Content on the left side of the button labelLoaderProps — Props added to the Loader component (only visible when loading prop is set)boolean — If set, the Loader component is displayed over the buttonMantineRadius | number (default theme.defaultRadius) — Key of theme.radius or any valid CSS value to set border-radiusReact.ReactNode — Content on the right side of the button labelButtonSize (default 'sm') — Controls button height, font-size and horizontal paddingOptional leading props map; remaining args are children.
Button — Button component to render button or link https://mantine.dev/core/button Props (docgen 9.5.0): - **autoContrast** `boolean` — If set, adjusts text color based on background color for `filled` variant - **children** `React.ReactNode` — Button content - **color** `MantineColor` _(default `theme.primaryColor`)_ — Key of `theme.colors` or any valid CSS color - **disabled** `boolean` — Sets `disabled` attribute, applies disabled styles - **fullWidth** `boolean` _(default `false`)_ — Sets `width: 100%` - **gradient** `MantineGradient` _(default `theme.defaultGradient`)_ — Gradient configuration used for `variant="gradient"` - **justify** `JustifyContent` _(default `'center'`)_ — Sets `justify-content` of `inner` element, can be used to change distribution of sections and label - **leftSection** `React.ReactNode` — Content on the left side of the button label - **loaderProps** `LoaderProps` — Props added to the `Loader` component (only visible when `loading` prop is set) - **loading** `boolean` — If set, the `Loader` component is displayed over the button - **radius** `MantineRadius | number` _(default `theme.defaultRadius`)_ — Key of `theme.radius` or any valid CSS value to set `border-radius` - **rightSection** `React.ReactNode` — Content on the right side of the button label - **size** `ButtonSize` _(default `'sm'`)_ — Controls button `height`, `font-size` and horizontal `padding` Optional leading props map; remaining args are children.
ButtonGroup — Button component to render button or link (Button family)
https://mantine.dev/core/button
Props (docgen 9.5.0):
string | number (default 1) — border-width of the child Button components. Numbers are converted to rem.React.ReactNode — Button components"horizontal" | "vertical" (default horizontal) — Orientation of the groupOptional leading props map; remaining args are children.
ButtonGroup — Button component to render button or link (Button family) https://mantine.dev/core/button Props (docgen 9.5.0): - **borderWidth** `string | number` _(default `1`)_ — `border-width` of the child `Button` components. Numbers are converted to rem. - **children** `React.ReactNode` — `Button` components - **orientation** `"horizontal" | "vertical"` _(default `horizontal`)_ — Orientation of the group Optional leading props map; remaining args are children.
ButtonGroupSection — Button component to render button or link (Button family)
https://mantine.dev/core/button
Props (docgen 9.5.0):
boolean — If set, adjusts text color based on background color for filled variantMantineGradient (default theme.defaultGradient) — Gradient configuration used when variant="gradient"MantineRadius | number (default theme.defaultRadius) — Key of theme.radius or any valid CSS value to set border-radiusButtonSize (default 'sm') — Controls section height, font-size and horizontal paddingOptional leading props map; remaining args are children.
ButtonGroupSection — Button component to render button or link (Button family) https://mantine.dev/core/button Props (docgen 9.5.0): - **autoContrast** `boolean` — If set, adjusts text color based on background color for `filled` variant - **gradient** `MantineGradient` _(default `theme.defaultGradient`)_ — Gradient configuration used when `variant="gradient"` - **radius** `MantineRadius | number` _(default `theme.defaultRadius`)_ — Key of `theme.radius` or any valid CSS value to set `border-radius` - **size** `ButtonSize` _(default `'sm'`)_ — Controls section `height`, `font-size` and horizontal `padding` Optional leading props map; remaining args are children.
Card — Card with sections
Props (docgen 9.5.0):
React.ReactNode — Card content"horizontal" | "vertical" (default 'vertical') — Card orientationMantineSpacing (default 'md') — Key of theme.spacing or any valid CSS value to set paddingMantineRadius | number (default theme.defaultRadius) — Key of theme.radius or any valid CSS value to set border-radius, numbers are converted to remMantineShadow — Key of theme.shadows or any valid CSS value to set box-shadowboolean — Adds border to the cardOptional leading props map; remaining args are children.
Card — Card with sections https://mantine.dev/core/card Props (docgen 9.5.0): - **children** `React.ReactNode` — Card content - **orientation** `"horizontal" | "vertical"` _(default `'vertical'`)_ — Card orientation - **padding** `MantineSpacing` _(default `'md'`)_ — Key of `theme.spacing` or any valid CSS value to set padding - **radius** `MantineRadius | number` _(default `theme.defaultRadius`)_ — Key of `theme.radius` or any valid CSS value to set border-radius, numbers are converted to rem - **shadow** `MantineShadow` — Key of `theme.shadows` or any valid CSS value to set `box-shadow` - **withBorder** `boolean` — Adds border to the card Optional leading props map; remaining args are children.
CardSection — Card with sections (Card family)
Props (docgen 9.5.0):
boolean — If set, the section inherits padding from the parent Cardboolean — Adds border to the root elementOptional leading props map; remaining args are children.
CardSection — Card with sections (Card family) https://mantine.dev/core/card Props (docgen 9.5.0): - **inheritPadding** `boolean` — If set, the section inherits padding from the parent `Card` - **withBorder** `boolean` — Adds border to the root element Optional leading props map; remaining args are children.
Cascader — Select a path from hierarchical data with cascading columns
https://mantine.dev/core/cascader
Props (docgen 9.5.0):
boolean (default true) — If set, the selected value can be deselected by selecting it againboolean (default false) — If set, any intermediate option can be selected, not only leaf options"left" | "right" (default 'right') — Position of the check icon relative to the option labelMantineColor — Controls the default chevron colorInputClearButtonProps — Props passed down to the clear buttonClearSectionMode (default 'both') — Determines how the clear button and rightSection are renderedboolean (default false) — If set, the clear button is displayed when a value is selectedboolean — Determines whether the dropdown should be closed when a value is selected, defaults to !allowDeselectstring | number — Width of each columnRecord<string, any> — Props passed down to the underlying Combobox componentCascaderOption[] (required) — Hierarchical options databoolean — Uncontrolled dropdown opened statestring — Uncontrolled search valuestring[] | null — Uncontrolled selected path from root to nodeReact.ReactNode — Contents of Input.Description component. If not set, description is not displayed.InputDescriptionProps — Props passed down to the Input.Description componentboolean — Sets disabled attribute on the input elementboolean — Controlled dropdown opened stateReact.ReactNode — Contents of Input.Error component. If not set, error is not displayed.InputErrorProps — Props passed down to the Input.Error component"hover" | "click" (default 'click') — Determines how the next column is opened(query: string, options: CascaderOption[]) => boolean — Custom search filter, matched against the full option pathCascaderFormatValue — A function to format the selected path displayed in the input, should return a stringReact.ComponentProps<"input"> — Props passed down to the hidden input(children: ReactNode) => ReactNode (default React.Fragment) — Render function to wrap the input element. Useful for adding tooltips, popovers, or other wrappers around the input.string — HTML size attribute for the input element (number of visible characters)("input" | "label" | "description" | "error")[] (default ['label', 'description', 'input', 'error']) — Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.React.ReactNode — Contents of Input.Label component. If not set, label is not displayed.InputLabelProps — Props passed down to the Input.Label componentReact.ReactNode — Content section displayed on the left side of the inputReact.CSSProperties["pointerEvents"] (default 'none') — Sets pointer-events styles on the leftSection element. Use 'all' when section contains interactive elements (buttons, links).React.ComponentProps<"div"> — Props passed down to the leftSection elementReact.CSSProperties["width"] — Left section width, used to set width of the section and input padding-left, by default equals to the input heightboolean (default false) — Displays loading indicator in the left or right section"left" | "right" (default 'right') — Position of the loading indicatornumber (default 3) — Maximum number of columns (levels) displayed next to each other, deeper levels replace earlier onesstring | number (default 260) — Max height of a column before it becomes scrollablestring (default 'Show next levels') — aria-label and title of the control that reveals levels hidden after the visible ones by maxDisplayedLevelsReact.ReactNode — Message displayed when there are no options or search results(value: string[] | null, options: CascaderOption[]) => void — Called when the selected path changes with the path and the resolved option chain() => void — Called when the clear button is clicked() => void — Called when the dropdown closes() => void — Called when the dropdown opens(value: string) => void — Called when the search value changesboolean (default true) — Opens the dropdown when the input is focused in searchable modeboolean (default false) — Determines whether the input should have cursor: pointer style. Use when input acts as a button-like trigger (e.g., component="button" for Select/DatePicker).string (default 'Show previous levels') — aria-label and title of the control that reveals levels hidden before the visible ones by maxDisplayedLevelsMantineRadius | number (default theme.defaultRadius) — Key of theme.radius or any valid CSS value to set border-radius, numbers are converted to rem(option: CascaderOption, level: number) => ReactNode — Custom rendering of an option in columns(query: string, options: CascaderOption[]) => ReactNode — Custom rendering of a search result rowboolean (default false) — Adds required attribute to the input and a red asterisk on the right side of labelReact.ReactNode — Content section displayed on the right side of the inputReact.CSSProperties["pointerEvents"] (default 'none') — Sets pointer-events styles on the rightSection element. Use 'all' when section contains interactive elements (buttons, links).React.ComponentProps<"div"> — Props passed down to the rightSection elementReact.CSSProperties["width"] — Right section width, used to set width of the section and input padding-right, by default equals to the input heightScrollAreaProps — Props passed down to the dropdown ScrollAreastring — Controlled search valueboolean (default false) — If set, options can be searched by their flattened pathsReact.ReactNode (default '/') — Path separator displayed in the input and search resultsMantineSize (default 'sm') — Controls input height, horizontal padding, and font-sizeReact.ReactNode — Contents of Input.Success component. If not set, success is not displayed.InputSuccessProps & DataAttributes — Props passed down to the Input.Success componentstring[] | null — Controlled selected path from root to nodeboolean (default false) — If set, the required asterisk is displayed next to the label. Overrides required prop. Does not add required attribute to the input.boolean (default true) — If set, the check icon is displayed on the selected optionboolean (default true) — Renders the dropdown as cascading columns. When false, options are rendered as a flat list of paths, the same way as search results (useful for narrow/mobile layouts)boolean (default true) — Determines whether the input should have red border and red text color when the error prop is setboolean (default true) — Determines whether the input should have green border when the success prop is setWrapperProps — Props passed down to the root elementOptional leading props map; remaining args are children.
Cascader — Select a path from hierarchical data with cascading columns
https://mantine.dev/core/cascader
Props (docgen 9.5.0):
- **allowDeselect** `boolean` _(default `true`)_ — If set, the selected value can be deselected by selecting it again
- **changeOnSelect** `boolean` _(default `false`)_ — If set, any intermediate option can be selected, not only leaf options
- **checkIconPosition** `"left" | "right"` _(default `'right'`)_ — Position of the check icon relative to the option label
- **chevronColor** `MantineColor` — Controls the default chevron color
- **clearButtonProps** `InputClearButtonProps` — Props passed down to the clear button
- **clearSectionMode** `ClearSectionMode` _(default `'both'`)_ — Determines how the clear button and `rightSection` are rendered
- **clearable** `boolean` _(default `false`)_ — If set, the clear button is displayed when a value is selected
- **closeOnSelect** `boolean` — Determines whether the dropdown should be closed when a value is selected, defaults to `!allowDeselect`
- **columnWidth** `string | number` — Width of each column
- **comboboxProps** `Record<string, any>` — Props passed down to the underlying `Combobox` component
- **data** `CascaderOption[]` **(required)** — Hierarchical options data
- **defaultDropdownOpened** `boolean` — Uncontrolled dropdown opened state
- **defaultSearchValue** `string` — Uncontrolled search value
- **defaultValue** `string[] | null` — Uncontrolled selected path from root to node
- **description** `React.ReactNode` — Contents of `Input.Description` component. If not set, description is not displayed.
- **descriptionProps** `InputDescriptionProps` — Props passed down to the `Input.Description` component
- **disabled** `boolean` — Sets `disabled` attribute on the `input` element
- **dropdownOpened** `boolean` — Controlled dropdown opened state
- **error** `React.ReactNode` — Contents of `Input.Error` component. If not set, error is not displayed.
- **errorProps** `InputErrorProps` — Props passed down to the `Input.Error` component
- **expandTrigger** `"hover" | "click"` _(default `'click'`)_ — Determines how the next column is opened
- **filter** `(query: string, options: CascaderOption[]) => boolean` — Custom search filter, matched against the full option path
- **formatValue** `CascaderFormatValue` — A function to format the selected path displayed in the input, should return a string
- **hiddenInputProps** `React.ComponentProps<"input">` — Props passed down to the hidden input
- **inputContainer** `(children: ReactNode) => ReactNode` _(default `React.Fragment`)_ — Render function to wrap the input element. Useful for adding tooltips, popovers, or other wrappers around the input.
- **inputSize** `string` — HTML `size` attribute for the input element (number of visible characters)
- **inputWrapperOrder** `("input" | "label" | "description" | "error")[]` _(default `['label', 'description', 'input', 'error']`)_ — Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.
- **label** `React.ReactNode` — Contents of `Input.Label` component. If not set, label is not displayed.
- **labelProps** `InputLabelProps` — Props passed down to the `Input.Label` component
- **leftSection** `React.ReactNode` — Content section displayed on the left side of the input
- **leftSectionPointerEvents** `React.CSSProperties["pointerEvents"]` _(default `'none'`)_ — Sets `pointer-events` styles on the `leftSection` element. Use `'all'` when section contains interactive elements (buttons, links).
- **leftSectionProps** `React.ComponentProps<"div">` — Props passed down to the `leftSection` element
- **leftSectionWidth** `React.CSSProperties["width"]` — Left section width, used to set `width` of the section and input `padding-left`, by default equals to the input height
- **loading** `boolean` _(default `false`)_ — Displays loading indicator in the left or right section
- **loadingPosition** `"left" | "right"` _(default `'right'`)_ — Position of the loading indicator
- **maxDisplayedLevels** `number` _(default `3`)_ — Maximum number of columns (levels) displayed next to each other, deeper levels replace earlier ones
- **maxDropdownHeight** `string | number` _(default `260`)_ — Max height of a column before it becomes scrollable
- **nextLevelsControlLabel** `string` _(default `'Show next levels'`)_ — `aria-label` and `title` of the control that reveals levels hidden after the visible ones by `maxDisplayedLevels`
- **nothingFoundMessage** `React.ReactNode` — Message displayed when there are no options or search results
- **onChange** `(value: string[] | null, options: CascaderOption[]) => void` — Called when the selected path changes with the path and the resolved option chain
- **onClear** `() => void` — Called when the clear button is clicked
- **onDropdownClose** `() => void` — Called when the dropdown closes
- **onDropdownOpen** `() => void` — Called when the dropdown opens
- **onSearchChange** `(value: string) => void` — Called when the search value changes
- **openOnFocus** `boolean` _(default `true`)_ — Opens the dropdown when the input is focused in `searchable` mode
- **pointer** `boolean` _(default `false`)_ — Determines whether the input should have `cursor: pointer` style. Use when input acts as a button-like trigger (e.g., `component="button"` for Select/DatePicker).
- **previousLevelsControlLabel** `string` _(default `'Show previous levels'`)_ — `aria-label` and `title` of the control that reveals levels hidden before the visible ones by `maxDisplayedLevels`
- **radius** `MantineRadius | number` _(default `theme.defaultRadius`)_ — Key of `theme.radius` or any valid CSS value to set `border-radius`, numbers are converted to rem
- **renderOption** `(option: CascaderOption, level: number) => ReactNode` — Custom rendering of an option in columns
- **renderSearchOption** `(query: string, options: CascaderOption[]) => ReactNode` — Custom rendering of a search result row
- **required** `boolean` _(default `false`)_ — Adds required attribute to the input and a red asterisk on the right side of label
- **rightSection** `React.ReactNode` — Content section displayed on the right side of the input
- **rightSectionPointerEvents** `React.CSSProperties["pointerEvents"]` _(default `'none'`)_ — Sets `pointer-events` styles on the `rightSection` element. Use `'all'` when section contains interactive elements (buttons, links).
- **rightSectionProps** `React.ComponentProps<"div">` — Props passed down to the `rightSection` element
- **rightSectionWidth** `React.CSSProperties["width"]` — Right section width, used to set `width` of the section and input `padding-right`, by default equals to the input height
- **scrollAreaProps** `ScrollAreaProps` — Props passed down to the dropdown `ScrollArea`
- **searchValue** `string` — Controlled search value
- **searchable** `boolean` _(default `false`)_ — If set, options can be searched by their flattened paths
- **separator** `React.ReactNode` _(default `'/'`)_ — Path separator displayed in the input and search results
- **size** `MantineSize` _(default `'sm'`)_ — Controls input `height`, horizontal `padding`, and `font-size`
- **success** `React.ReactNode` — Contents of `Input.Success` component. If not set, success is not displayed.
- **successProps** `InputSuccessProps & DataAttributes` — Props passed down to the `Input.Success` component
- **value** `string[] | null` — Controlled selected path from root to node
- **withAsterisk** `boolean` _(default `false`)_ — If set, the required asterisk is displayed next to the label. Overrides `required` prop. Does not add required attribute to the input.
- **withCheckIcon** `boolean` _(default `true`)_ — If set, the check icon is displayed on the selected option
- **withColumns** `boolean` _(default `true`)_ — Renders the dropdown as cascading columns. When `false`, options are rendered as a flat list of paths, the same way as search results (useful for narrow/mobile layouts)
- **withErrorStyles** `boolean` _(default `true`)_ — Determines whether the input should have red border and red text color when the `error` prop is set
- **withSuccessStyles** `boolean` _(default `true`)_ — Determines whether the input should have green border when the `success` prop is set
- **wrapperProps** `WrapperProps` — Props passed down to the root element
Optional leading props map; remaining args are children.Center — Centers content vertically and horizontally
https://mantine.dev/core/center
Polymorphic: accepts :component / :render-root.
Props (docgen 9.5.0):
React.ReactNode — Content to centerboolean — If set, inline-flex is used instead of flexOptional leading props map; remaining args are children.
Center — Centers content vertically and horizontally https://mantine.dev/core/center Polymorphic: accepts :component / :render-root. Props (docgen 9.5.0): - **children** `React.ReactNode` — Content to center - **inline** `boolean` — If set, `inline-flex` is used instead of `flex` Optional leading props map; remaining args are children.
Checkbox — Capture boolean input from user
https://mantine.dev/core/checkbox
Props (docgen 9.5.0):
boolean — If set, adjusts icon color based on background color for filled variantMantineColor (default theme.primaryColor) — Key of theme.colors or any valid CSS color to set input background color in checked stateReact.ReactNode — Description below the labelReact.ReactNode — Error message below the labelCheckboxIconComponent — Icon for checked or indeterminate stateMantineColor — Key of theme.colors or any valid CSS color to set icon color. By default, depends on theme.autoContrast.string — Unique input idboolean — Indeterminate state of the checkbox. If set, checked prop is dismissed.React.ReactNode — label associated with the checkbox"left" | "right" (default 'right') — Position of the label relative to the inputMantineRadius | number (default theme.defaultRadius) — Key of theme.radius or any valid CSS value to set border-radiusRef<HTMLDivElement> — Root element refMantineSize (default 'sm') — Controls size of the componentboolean (default true) — If set, applies error styles to the checkbox when error prop is setReact.ComponentProps<"div"> — Props passed down to the root elementOptional leading props map; remaining args are children.
Checkbox — Capture boolean input from user https://mantine.dev/core/checkbox Props (docgen 9.5.0): - **autoContrast** `boolean` — If set, adjusts icon color based on background color for `filled` variant - **color** `MantineColor` _(default `theme.primaryColor`)_ — Key of `theme.colors` or any valid CSS color to set input background color in checked state - **description** `React.ReactNode` — Description below the label - **error** `React.ReactNode` — Error message below the label - **icon** `CheckboxIconComponent` — Icon for checked or indeterminate state - **iconColor** `MantineColor` — Key of `theme.colors` or any valid CSS color to set icon color. By default, depends on `theme.autoContrast`. - **id** `string` — Unique input id - **indeterminate** `boolean` — Indeterminate state of the checkbox. If set, `checked` prop is dismissed. - **label** `React.ReactNode` — `label` associated with the checkbox - **labelPosition** `"left" | "right"` _(default `'right'`)_ — Position of the label relative to the input - **radius** `MantineRadius | number` _(default `theme.defaultRadius`)_ — Key of `theme.radius` or any valid CSS value to set `border-radius` - **rootRef** `Ref<HTMLDivElement>` — Root element ref - **size** `MantineSize` _(default `'sm'`)_ — Controls size of the component - **withErrorStyles** `boolean` _(default `true`)_ — If set, applies error styles to the checkbox when `error` prop is set - **wrapperProps** `React.ComponentProps<"div">` — Props passed down to the root element Optional leading props map; remaining args are children.
CheckboxCard — Capture boolean input from user (Checkbox family)
https://mantine.dev/core/checkbox
Props (docgen 9.5.0):
boolean — Controlled component valueboolean — Uncontrolled component default value(checked: boolean) => void — Called when value changesMantineRadius | number (default theme.defaultRadius) — Key of theme.radius or any valid CSS value to set border-radius, numbers are converted to remstring — Value of the checkbox, used with Checkbox.Groupboolean — Adds border to the root elementOptional leading props map; remaining args are children.
CheckboxCard — Capture boolean input from user (Checkbox family) https://mantine.dev/core/checkbox Props (docgen 9.5.0): - **checked** `boolean` — Controlled component value - **defaultChecked** `boolean` — Uncontrolled component default value - **onChange** `(checked: boolean) => void` — Called when value changes - **radius** `MantineRadius | number` _(default `theme.defaultRadius`)_ — Key of `theme.radius` or any valid CSS value to set `border-radius`, numbers are converted to rem - **value** `string` — Value of the checkbox, used with `Checkbox.Group` - **withBorder** `boolean` — Adds border to the root element Optional leading props map; remaining args are children.
CheckboxCardContext
Optional leading props map; remaining args are children.
CheckboxCardContext Optional leading props map; remaining args are children.
CheckboxGroup — Capture boolean input from user (Checkbox family)
https://mantine.dev/core/checkbox
Optional leading props map; remaining args are children.
CheckboxGroup — Capture boolean input from user (Checkbox family) https://mantine.dev/core/checkbox Optional leading props map; remaining args are children.
CheckboxIndicator — Capture boolean input from user (Checkbox family)
https://mantine.dev/core/checkbox
Props (docgen 9.5.0):
boolean — If set, adjusts icon color based on background color for filled variantboolean — Determines whether the component should have checked stylesMantineColor (default theme.primaryColor) — Key of theme.colors or any valid CSS color to set input background color in checked stateboolean — Indicates disabled stateCheckboxIconComponent — Icon for checked or indeterminate stateMantineColor — Key of theme.colors or any valid CSS color to set icon color, by default value depends on theme.autoContrastboolean — Indeterminate state of the checkbox. If set, checked prop is ignored.MantineRadius | number (default theme.defaultRadius) — Key of theme.radius or any valid CSS value to set border-radiusMantineSize | number (default 'sm') — Controls size of the componentOptional leading props map; remaining args are children.
CheckboxIndicator — Capture boolean input from user (Checkbox family) https://mantine.dev/core/checkbox Props (docgen 9.5.0): - **autoContrast** `boolean` — If set, adjusts icon color based on background color for `filled` variant - **checked** `boolean` — Determines whether the component should have checked styles - **color** `MantineColor` _(default `theme.primaryColor`)_ — Key of `theme.colors` or any valid CSS color to set input background color in checked state - **disabled** `boolean` — Indicates disabled state - **icon** `CheckboxIconComponent` — Icon for checked or indeterminate state - **iconColor** `MantineColor` — Key of `theme.colors` or any valid CSS color to set icon color, by default value depends on `theme.autoContrast` - **indeterminate** `boolean` — Indeterminate state of the checkbox. If set, `checked` prop is ignored. - **radius** `MantineRadius | number` _(default `theme.defaultRadius`)_ — Key of `theme.radius` or any valid CSS value to set `border-radius` - **size** `MantineSize | number` _(default `'sm'`)_ — Controls size of the component Optional leading props map; remaining args are children.
Chip — Pick one or multiple values with inline controls
Props (docgen 9.5.0):
boolean — If set, adjusts text color based on the chip background color for filled variantboolean — Controlled checked stateReact.ReactNode (required) — label element associated with the inputMantineColor (default theme.primaryColor) — Key of theme.colors or any valid CSS color.boolean — Uncontrolled checked state initial valueReact.ReactNode — Any element or component to replace the default iconstring — Unique input id, generated randomly if not provided(checked: boolean) => void — Calls when checked state changesMantineRadius | number (default 'xl') — Key of theme.radius or any valid CSS value to set border-radiusRef<HTMLDivElement> — Assigns ref of the root elementMantineSize (default 'sm') — Controls various properties related to the component size"checkbox" | "radio" (default 'checkbox') — Chip input typeReact.ComponentProps<"div"> — Props passed down to the root elementOptional leading props map; remaining args are children.
Chip — Pick one or multiple values with inline controls https://mantine.dev/core/chip Props (docgen 9.5.0): - **autoContrast** `boolean` — If set, adjusts text color based on the chip background color for `filled` variant - **checked** `boolean` — Controlled checked state - **children** `React.ReactNode` **(required)** — `label` element associated with the input - **color** `MantineColor` _(default `theme.primaryColor`)_ — Key of `theme.colors` or any valid CSS color. - **defaultChecked** `boolean` — Uncontrolled checked state initial value - **icon** `React.ReactNode` — Any element or component to replace the default icon - **id** `string` — Unique input id, generated randomly if not provided - **onChange** `(checked: boolean) => void` — Calls when checked state changes - **radius** `MantineRadius | number` _(default `'xl'`)_ — Key of `theme.radius` or any valid CSS value to set `border-radius` - **rootRef** `Ref<HTMLDivElement>` — Assigns ref of the root element - **size** `MantineSize` _(default `'sm'`)_ — Controls various properties related to the component size - **type** `"checkbox" | "radio"` _(default `'checkbox'`)_ — Chip input type - **wrapperProps** `React.ComponentProps<"div">` — Props passed down to the root element Optional leading props map; remaining args are children.
ChipGroup — Pick one or multiple values with inline controls (Chip family)
Props (docgen 9.5.0):
React.ReactNode — Chip components and any other elementsPrimitive | Value[] | null — Uncontrolled component initial valueboolean — If set, multiple values can be selected(value: Multiple extends true ? Value[] : Value) => void — Called when value changes. If multiple prop is set, called with an array of selected values. If not, called with a string value of selected chip.Primitive | Value[] | null — Controlled component valueOptional leading props map; remaining args are children.
ChipGroup — Pick one or multiple values with inline controls (Chip family) https://mantine.dev/core/chip Props (docgen 9.5.0): - **children** `React.ReactNode` — `Chip` components and any other elements - **defaultValue** `Primitive | Value[] | null` — Uncontrolled component initial value - **multiple** `boolean` — If set, multiple values can be selected - **onChange** `(value: Multiple extends true ? Value[] : Value) => void` — Called when value changes. If `multiple` prop is set, called with an array of selected values. If not, called with a string value of selected chip. - **value** `Primitive | Value[] | null` — Controlled component value Optional leading props map; remaining args are children.
ChipGroupContext
Optional leading props map; remaining args are children.
ChipGroupContext Optional leading props map; remaining args are children.
CloseButton — Button with close icon
https://mantine.dev/core/close-button
Polymorphic: accepts :component / :render-root.
Props (docgen 9.5.0):
React.ReactNode — Content rendered inside the button. For example VisuallyHidden with label for screen readers.boolean — Sets disabled attribute, assigns disabled stylesReact.ReactNode — React node to replace the default close icon. If set, iconSize prop is ignored.string | number (default 70%) — X icon width and heightMantineRadius | number (default theme.defaultRadius) — Key of theme.radius or any valid CSS value to set border-radius. Numbers are converted to rem.MantineSize | number (default 'md') — Controls width and height of the button. Numbers are converted to rem.Optional leading props map; remaining args are children.
CloseButton — Button with close icon https://mantine.dev/core/close-button Polymorphic: accepts :component / :render-root. Props (docgen 9.5.0): - **children** `React.ReactNode` — Content rendered inside the button. For example `VisuallyHidden` with label for screen readers. - **disabled** `boolean` — Sets `disabled` attribute, assigns disabled styles - **icon** `React.ReactNode` — React node to replace the default close icon. If set, `iconSize` prop is ignored. - **iconSize** `string | number` _(default `70%`)_ — `X` icon `width` and `height` - **radius** `MantineRadius | number` _(default `theme.defaultRadius`)_ — Key of `theme.radius` or any valid CSS value to set border-radius. Numbers are converted to rem. - **size** `MantineSize | number` _(default `'md'`)_ — Controls width and height of the button. Numbers are converted to rem. Optional leading props map; remaining args are children.
Code — Inline and block code
Props (docgen 9.5.0):
boolean — If set, code is rendered in preMantineColor — Key of theme.colors or any valid CSS color, controls background-color of the code. By default, calculated based on the color scheme.Optional leading props map; remaining args are children.
Code — Inline and block code https://mantine.dev/core/code Props (docgen 9.5.0): - **block** `boolean` — If set, code is rendered in `pre` - **color** `MantineColor` — Key of `theme.colors` or any valid CSS color, controls `background-color` of the code. By default, calculated based on the color scheme. Optional leading props map; remaining args are children.
Collapse — Animate presence with slide down/up transition
https://mantine.dev/core/collapse
Props (docgen 9.5.0):
boolean (default true) — Determines whether the opacity is animatedboolean (required) — Expanded stateboolean (default true) — If set, the element is kept in the DOM when collapsed. When true, React 19 Activity is used to preserve state while collapsed. When false, the element is unmounted after the exit animation."activity" | "display-none" (default 'activity') — Controls how the element is hidden when keepMounted is set: 'activity' – hidden with React 19 Activity component, 'display-none' – hidden with display: none styles() => void — Called when the transition ends() => void — Called when transition starts"horizontal" | "vertical" (default 'vertical') — Collapse orientationnumber (default 200) — Transition duration in msstring (default ease) — Transition timing functionOptional leading props map; remaining args are children.
Collapse — Animate presence with slide down/up transition https://mantine.dev/core/collapse Props (docgen 9.5.0): - **animateOpacity** `boolean` _(default `true`)_ — Determines whether the opacity is animated - **expanded** `boolean` **(required)** — Expanded state - **keepMounted** `boolean` _(default `true`)_ — If set, the element is kept in the DOM when collapsed. When `true`, React 19 `Activity` is used to preserve state while collapsed. When `false`, the element is unmounted after the exit animation. - **keepMountedMode** `"activity" | "display-none"` _(default `'activity'`)_ — Controls how the element is hidden when `keepMounted` is set: `'activity'` – hidden with React 19 `Activity` component, `'display-none'` – hidden with `display: none` styles - **onTransitionEnd** `() => void` — Called when the transition ends - **onTransitionStart** `() => void` — Called when transition starts - **orientation** `"horizontal" | "vertical"` _(default `'vertical'`)_ — Collapse orientation - **transitionDuration** `number` _(default `200`)_ — Transition duration in ms - **transitionTimingFunction** `string` _(default `ease`)_ — Transition timing function Optional leading props map; remaining args are children.
ColorInput — Capture color from user
https://mantine.dev/core/color-input
Props (docgen 9.5.0):
boolean (default false) — If set, the dropdown is closed when one of the color swatches is clickedstring — Uncontrolled component default valueReact.ReactNode — Contents of Input.Description component. If not set, description is not displayed.InputDescriptionProps — Props passed down to the Input.Description componentboolean — Sets disabled attribute on the input elementboolean — If input is not allowed, the user can only pick value with color picker and swatchesReact.ReactNode — Contents of Input.Error component. If not set, error is not displayed.InputErrorProps — Props passed down to the Input.Error componentRecord<string, any> — Props passed down to the eye dropper buttonReact.ReactNode — An icon to replace the default eye dropper iconboolean (default true) — If set, the input value resets to the last known valid value when the input loses focus'hex' | 'hexa' | 'rgba' | 'rgb' | 'hsl' | 'hsla' (default 'hex') — Color format. hexa, rgba, hsla values render alpha channel slider(children: ReactNode) => ReactNode (default React.Fragment) — Render function to wrap the input element. Useful for adding tooltips, popovers, or other wrappers around the input.string — HTML size attribute for the input element (number of visible characters)("input" | "label" | "description" | "error")[] (default ['label', 'description', 'input', 'error']) — Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.React.ReactNode — Contents of Input.Label component. If not set, label is not displayed.InputLabelProps — Props passed down to the Input.Label componentReact.ReactNode — Content section displayed on the left side of the inputReact.CSSProperties["pointerEvents"] (default 'none') — Sets pointer-events styles on the leftSection element. Use 'all' when section contains interactive elements (buttons, links).React.ComponentProps<"div"> — Props passed down to the leftSection elementReact.CSSProperties["width"] — Left section width, used to set width of the section and input padding-left, by default equals to the input heightboolean (default false) — Displays loading indicator in the left or right section"left" | "right" (default 'right') — Position of the loading indicator(value: string) => void — Called when value changes(value: string) => void — Called when the user stops dragging one of the sliders or changes the value with keyboardboolean (default false) — Determines whether the input should have cursor: pointer style. Use when input acts as a button-like trigger (e.g., component="button" for Select/DatePicker).PopoverProps — Props passed down to the Popover componentMantineRadius | number (default theme.defaultRadius) — Key of theme.radius or any valid CSS value to set border-radius, numbers are converted to remboolean (default false) — Adds required attribute to the input and a red asterisk on the right side of labelReact.ReactNode — Content section displayed on the right side of the inputReact.CSSProperties["pointerEvents"] (default 'none') — Sets pointer-events styles on the rightSection element. Use 'all' when section contains interactive elements (buttons, links).React.ComponentProps<"div"> — Props passed down to the rightSection elementReact.CSSProperties["width"] — Right section width, used to set width of the section and input padding-right, by default equals to the input heightMantineSize (default 'sm') — Controls input height, horizontal padding, and font-sizeReact.ReactNode — Contents of Input.Success component. If not set, success is not displayed.InputSuccessProps & DataAttributes — Props passed down to the Input.Success componentstring[] — A list of colors used to display swatches list below the color pickernumber (default 7) — Number of swatches per rowstring — Controlled component valueboolean (default false) — If set, the required asterisk is displayed next to the label. Overrides required prop. Does not add required attribute to the input.boolean (default true) — Determines whether the input should have red border and red text color when the error prop is setboolean (default true) — If set, the eye dropper button is displayed in the right sectionboolean (default true) — If false, the component displays only swatchesboolean (default true) — If set, the preview color swatch is displayed in the left section of the inputboolean (default true) — Determines whether the input should have green border when the success prop is setWrapperProps — Props passed down to the root elementOptional leading props map; remaining args are children.
ColorInput — Capture color from user
https://mantine.dev/core/color-input
Props (docgen 9.5.0):
- **closeOnColorSwatchClick** `boolean` _(default `false`)_ — If set, the dropdown is closed when one of the color swatches is clicked
- **defaultValue** `string` — Uncontrolled component default value
- **description** `React.ReactNode` — Contents of `Input.Description` component. If not set, description is not displayed.
- **descriptionProps** `InputDescriptionProps` — Props passed down to the `Input.Description` component
- **disabled** `boolean` — Sets `disabled` attribute on the `input` element
- **disallowInput** `boolean` — If input is not allowed, the user can only pick value with color picker and swatches
- **error** `React.ReactNode` — Contents of `Input.Error` component. If not set, error is not displayed.
- **errorProps** `InputErrorProps` — Props passed down to the `Input.Error` component
- **eyeDropperButtonProps** `Record<string, any>` — Props passed down to the eye dropper button
- **eyeDropperIcon** `React.ReactNode` — An icon to replace the default eye dropper icon
- **fixOnBlur** `boolean` _(default `true`)_ — If set, the input value resets to the last known valid value when the input loses focus
- **format** `'hex' | 'hexa' | 'rgba' | 'rgb' | 'hsl' | 'hsla'` _(default `'hex'`)_ — Color format. `hexa`, `rgba`, `hsla` values render alpha channel slider
- **inputContainer** `(children: ReactNode) => ReactNode` _(default `React.Fragment`)_ — Render function to wrap the input element. Useful for adding tooltips, popovers, or other wrappers around the input.
- **inputSize** `string` — HTML `size` attribute for the input element (number of visible characters)
- **inputWrapperOrder** `("input" | "label" | "description" | "error")[]` _(default `['label', 'description', 'input', 'error']`)_ — Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.
- **label** `React.ReactNode` — Contents of `Input.Label` component. If not set, label is not displayed.
- **labelProps** `InputLabelProps` — Props passed down to the `Input.Label` component
- **leftSection** `React.ReactNode` — Content section displayed on the left side of the input
- **leftSectionPointerEvents** `React.CSSProperties["pointerEvents"]` _(default `'none'`)_ — Sets `pointer-events` styles on the `leftSection` element. Use `'all'` when section contains interactive elements (buttons, links).
- **leftSectionProps** `React.ComponentProps<"div">` — Props passed down to the `leftSection` element
- **leftSectionWidth** `React.CSSProperties["width"]` — Left section width, used to set `width` of the section and input `padding-left`, by default equals to the input height
- **loading** `boolean` _(default `false`)_ — Displays loading indicator in the left or right section
- **loadingPosition** `"left" | "right"` _(default `'right'`)_ — Position of the loading indicator
- **onChange** `(value: string) => void` — Called when value changes
- **onChangeEnd** `(value: string) => void` — Called when the user stops dragging one of the sliders or changes the value with keyboard
- **pointer** `boolean` _(default `false`)_ — Determines whether the input should have `cursor: pointer` style. Use when input acts as a button-like trigger (e.g., `component="button"` for Select/DatePicker).
- **popoverProps** `PopoverProps` — Props passed down to the `Popover` component
- **radius** `MantineRadius | number` _(default `theme.defaultRadius`)_ — Key of `theme.radius` or any valid CSS value to set `border-radius`, numbers are converted to rem
- **required** `boolean` _(default `false`)_ — Adds required attribute to the input and a red asterisk on the right side of label
- **rightSection** `React.ReactNode` — Content section displayed on the right side of the input
- **rightSectionPointerEvents** `React.CSSProperties["pointerEvents"]` _(default `'none'`)_ — Sets `pointer-events` styles on the `rightSection` element. Use `'all'` when section contains interactive elements (buttons, links).
- **rightSectionProps** `React.ComponentProps<"div">` — Props passed down to the `rightSection` element
- **rightSectionWidth** `React.CSSProperties["width"]` — Right section width, used to set `width` of the section and input `padding-right`, by default equals to the input height
- **size** `MantineSize` _(default `'sm'`)_ — Controls input `height`, horizontal `padding`, and `font-size`
- **success** `React.ReactNode` — Contents of `Input.Success` component. If not set, success is not displayed.
- **successProps** `InputSuccessProps & DataAttributes` — Props passed down to the `Input.Success` component
- **swatches** `string[]` — A list of colors used to display swatches list below the color picker
- **swatchesPerRow** `number` _(default `7`)_ — Number of swatches per row
- **value** `string` — Controlled component value
- **withAsterisk** `boolean` _(default `false`)_ — If set, the required asterisk is displayed next to the label. Overrides `required` prop. Does not add required attribute to the input.
- **withErrorStyles** `boolean` _(default `true`)_ — Determines whether the input should have red border and red text color when the `error` prop is set
- **withEyeDropper** `boolean` _(default `true`)_ — If set, the eye dropper button is displayed in the right section
- **withPicker** `boolean` _(default `true`)_ — If `false`, the component displays only swatches
- **withPreview** `boolean` _(default `true`)_ — If set, the preview color swatch is displayed in the left section of the input
- **withSuccessStyles** `boolean` _(default `true`)_ — Determines whether the input should have green border when the `success` prop is set
- **wrapperProps** `WrapperProps` — Props passed down to the root element
Optional leading props map; remaining args are children.ColorPicker — Pick colors in hex(a), rgb(a), hsl(a) and hsv(a) formats
https://mantine.dev/core/color-picker
Props (docgen 9.5.0):
string — Alpha slider aria-labelstring — Uncontrolled component default valueboolean (default true) — If set, interactive elements (sliders thumbs and swatches) are focusable with keyboard'hex' | 'hexa' | 'rgba' | 'rgb' | 'hsl' | 'hsla' (default 'hex') — Color format. hexa, rgba, hsla values render alpha channel sliderboolean (default false) — If set, the component takes 100% width of its containerClassAttributes<HTMLInputElement> & InputHTMLAttributes<HTMLInputElement> & DataAttributes — Props spread to the hidden inputstring — Hue slider aria-labelstring — Hidden input name attribute, if not set, the input will not be rendered(value: string) => void — Called when value changes(value: string) => void — Called when the user stops dragging one of the sliders or changes the value with keyboard(color: string) => void — Called when one of the color swatches is clickedstring — Saturation slider aria-labelMantineSize (default 'md') — Component sizestring[] — A list of colors used to display swatches list below the color pickernumber (default 7) — Number of swatches per rowstring — Controlled component valueboolean (default true) — If false, the component displays only swatchesOptional leading props map; remaining args are children.
ColorPicker — Pick colors in hex(a), rgb(a), hsl(a) and hsv(a) formats https://mantine.dev/core/color-picker Props (docgen 9.5.0): - **alphaLabel** `string` — Alpha slider `aria-label` - **defaultValue** `string` — Uncontrolled component default value - **focusable** `boolean` _(default `true`)_ — If set, interactive elements (sliders thumbs and swatches) are focusable with keyboard - **format** `'hex' | 'hexa' | 'rgba' | 'rgb' | 'hsl' | 'hsla'` _(default `'hex'`)_ — Color format. `hexa`, `rgba`, `hsla` values render alpha channel slider - **fullWidth** `boolean` _(default `false`)_ — If set, the component takes 100% width of its container - **hiddenInputProps** `ClassAttributes<HTMLInputElement> & InputHTMLAttributes<HTMLInputElement> & DataAttributes` — Props spread to the hidden input - **hueLabel** `string` — Hue slider `aria-label` - **name** `string` — Hidden input `name` attribute, if not set, the input will not be rendered - **onChange** `(value: string) => void` — Called when value changes - **onChangeEnd** `(value: string) => void` — Called when the user stops dragging one of the sliders or changes the value with keyboard - **onColorSwatchClick** `(color: string) => void` — Called when one of the color swatches is clicked - **saturationLabel** `string` — Saturation slider `aria-label` - **size** `MantineSize` _(default `'md'`)_ — Component size - **swatches** `string[]` — A list of colors used to display swatches list below the color picker - **swatchesPerRow** `number` _(default `7`)_ — Number of swatches per row - **value** `string` — Controlled component value - **withPicker** `boolean` _(default `true`)_ — If `false`, the component displays only swatches Optional leading props map; remaining args are children.
ColorSwatch — Displays color
https://mantine.dev/core/color-swatch
Polymorphic: accepts :component / :render-root.
Props (docgen 9.5.0):
React.ReactNode — Children inside the swatchstring (required) — Valid CSS color to displayMantineRadius | number (default 1000) — Key of theme.radius or any valid CSS value to set border-radius, numbers are converted to rem.React.CSSProperties["width"] (default 28) — Swatch width and height, any valid CSS value, numbers are converted to rem.boolean (default true) — If set, the swatch has inner box-shadowOptional leading props map; remaining args are children.
ColorSwatch — Displays color https://mantine.dev/core/color-swatch Polymorphic: accepts :component / :render-root. Props (docgen 9.5.0): - **children** `React.ReactNode` — Children inside the swatch - **color** `string` **(required)** — Valid CSS color to display - **radius** `MantineRadius | number` _(default `1000`)_ — Key of `theme.radius` or any valid CSS value to set `border-radius`, numbers are converted to rem. - **size** `React.CSSProperties["width"]` _(default `28`)_ — Swatch `width` and `height`, any valid CSS value, numbers are converted to rem. - **withShadow** `boolean` _(default `true`)_ — If set, the swatch has inner `box-shadow` Optional leading props map; remaining args are children.
Combobox — Create custom select, autocomplete or multiselect inputs
https://mantine.dev/core/combobox
Props (docgen 9.5.0):
number (default 5) — Arrow offset in px'center' | 'side' — Arrow positionnumber (default 0) — Arrow border-radius in pxnumber (default 7) — Arrow size in pxReact.ReactNode — Combobox contentboolean — If set, popover dropdown will not be renderedPadding<string | number> (default 4) — Controls padding of the dropdown"viewport" — If set to 'viewport', the dropdown grows to fill the available vertical space in the viewport. Disables the flip middleware.FloatingStrategy (default 'absolute') — Changes floating ui position strategyboolean (default true) — If set, the dropdown is hidden when the element is hidden with styles or not visible on the screenboolean — If set, the dropdown is not unmounted from the DOM when hidden. display: none styles are added instead."activity" | "display-none" (default 'activity') — Controls how the dropdown is hidden when keepMounted is set: 'activity' – hidden with React 19 Activity component, 'display-none' – hidden with display: none stylesPopoverMiddlewares (default { flip: true, shift: true, inline: false }) — Floating ui middlewares to configure position handlingnumber | FloatingAxesOffsets (default 8) — Offset of the dropdown element() => void — Called when dropdown closes() => void — Called when the popover is dismissed by clicking outside or by pressing escape() => void — Called when enter transition ends() => void — Called when exit transition ends() => void — Called when dropdown opens(value: string, optionProps: ComboboxOptionProps) => void — Called when item is selected with the Enter key or by clicking it(position: FloatingPosition) => void — Called when dropdown position changesOverlayProps & ElementProps<"div"> — Props passed down to Overlay componentBasePortalProps — Props to pass down to the Portal when withinPortal is trueFloatingPosition (default 'bottom') — Dropdown position relative to the target elementboolean (default true) — If true, the dropdown picks its side on open (flip runs once, preferring the position prop) and then never changes side — scrolling, resizing, and content size changes will not flip the dropdown. The side is recalculated fresh on the next open. Does not affect the shift middleware. Set to false to keep flip active and allow the dropdown to re-flip on every change.MantineRadius | number (default theme.defaultRadius) — Key of theme.radius or any valid CSS value to set border-radiusboolean — Determines whether the Combobox value can be changedboolean (default false) — Determines whether selection should be reset when option is hoveredboolean (default false) — Determines whether focus should be automatically returned to control when dropdown closesMantineShadow — Key of theme.shadows or any other valid CSS box-shadow valueMantineSize (default 'sm') — Controls items font-size and paddingComboboxStore — Combobox store, can be used to control combobox stateTransitionProps (default { duration: 150, transition: 'fade' }) — Props passed down to the Transition component. Use to configure duration and animation type.PopoverWidth (default 'max-content') — Dropdown width, or 'target' to make dropdown width the same as target elementboolean (default false) — Determines whether component should have an arrowboolean (default false) — Determines whether the overlay should be displayed when the dropdown is openedboolean (default true) — Determines whether dropdown should be rendered within the Portalstring | number (default 300) — Dropdown z-indexOptional leading props map; remaining args are children.
Combobox — Create custom select, autocomplete or multiselect inputs
https://mantine.dev/core/combobox
Props (docgen 9.5.0):
- **arrowOffset** `number` _(default `5`)_ — Arrow offset in px
- **arrowPosition** `'center' | 'side'` — Arrow position
- **arrowRadius** `number` _(default `0`)_ — Arrow `border-radius` in px
- **arrowSize** `number` _(default `7`)_ — Arrow size in px
- **children** `React.ReactNode` — Combobox content
- **disabled** `boolean` — If set, popover dropdown will not be rendered
- **dropdownPadding** `Padding<string | number>` _(default `4`)_ — Controls `padding` of the dropdown
- **floatingHeight** `"viewport"` — If set to `'viewport'`, the dropdown grows to fill the available vertical space in the viewport. Disables the `flip` middleware.
- **floatingStrategy** `FloatingStrategy` _(default `'absolute'`)_ — Changes floating ui [position strategy](https://floating-ui.com/docs/usefloating#strategy)
- **hideDetached** `boolean` _(default `true`)_ — If set, the dropdown is hidden when the element is hidden with styles or not visible on the screen
- **keepMounted** `boolean` — If set, the dropdown is not unmounted from the DOM when hidden. `display: none` styles are added instead.
- **keepMountedMode** `"activity" | "display-none"` _(default `'activity'`)_ — Controls how the dropdown is hidden when `keepMounted` is set: `'activity'` – hidden with React 19 `Activity` component, `'display-none'` – hidden with `display: none` styles
- **middlewares** `PopoverMiddlewares` _(default `{ flip: true, shift: true, inline: false }`)_ — Floating ui middlewares to configure position handling
- **offset** `number | FloatingAxesOffsets` _(default `8`)_ — Offset of the dropdown element
- **onClose** `() => void` — Called when dropdown closes
- **onDismiss** `() => void` — Called when the popover is dismissed by clicking outside or by pressing escape
- **onEnterTransitionEnd** `() => void` — Called when enter transition ends
- **onExitTransitionEnd** `() => void` — Called when exit transition ends
- **onOpen** `() => void` — Called when dropdown opens
- **onOptionSubmit** `(value: string, optionProps: ComboboxOptionProps) => void` — Called when item is selected with the `Enter` key or by clicking it
- **onPositionChange** `(position: FloatingPosition) => void` — Called when dropdown position changes
- **overlayProps** `OverlayProps & ElementProps<"div">` — Props passed down to `Overlay` component
- **portalProps** `BasePortalProps` — Props to pass down to the `Portal` when `withinPortal` is true
- **position** `FloatingPosition` _(default `'bottom'`)_ — Dropdown position relative to the target element
- **preventPositionChangeWhenVisible** `boolean` _(default `true`)_ — If `true`, the dropdown picks its side on open (flip runs once, preferring the `position` prop) and then never changes side — scrolling, resizing, and content size changes will not flip the dropdown. The side is recalculated fresh on the next open. Does not affect the `shift` middleware. Set to `false` to keep flip active and allow the dropdown to re-flip on every change.
- **radius** `MantineRadius | number` _(default `theme.defaultRadius`)_ — Key of `theme.radius` or any valid CSS value to set border-radius
- **readOnly** `boolean` — Determines whether the `Combobox` value can be changed
- **resetSelectionOnOptionHover** `boolean` _(default `false`)_ — Determines whether selection should be reset when option is hovered
- **returnFocus** `boolean` _(default `false`)_ — Determines whether focus should be automatically returned to control when dropdown closes
- **shadow** `MantineShadow` — Key of `theme.shadows` or any other valid CSS `box-shadow` value
- **size** `MantineSize` _(default `'sm'`)_ — Controls items `font-size` and `padding`
- **store** `ComboboxStore` — Combobox store, can be used to control combobox state
- **transitionProps** `TransitionProps` _(default `{ duration: 150, transition: 'fade' }`)_ — Props passed down to the `Transition` component. Use to configure duration and animation type.
- **width** `PopoverWidth` _(default `'max-content'`)_ — Dropdown width, or `'target'` to make dropdown width the same as target element
- **withArrow** `boolean` _(default `false`)_ — Determines whether component should have an arrow
- **withOverlay** `boolean` _(default `false`)_ — Determines whether the overlay should be displayed when the dropdown is opened
- **withinPortal** `boolean` _(default `true`)_ — Determines whether dropdown should be rendered within the `Portal`
- **zIndex** `string | number` _(default `300`)_ — Dropdown `z-index`
Optional leading props map; remaining args are children.Combobox.Chevron — compound part of Combobox (docgen omits it). Optional leading props map; remaining args are children.
Combobox.Chevron — compound part of Combobox (docgen omits it). Optional leading props map; remaining args are children.
Combobox.ClearButton — compound part of Combobox (docgen omits it). Optional leading props map; remaining args are children.
Combobox.ClearButton — compound part of Combobox (docgen omits it). Optional leading props map; remaining args are children.
ComboboxDropdown — Create custom select, autocomplete or multiselect inputs (Combobox family)
https://mantine.dev/core/combobox
Props (docgen 9.5.0):
boolean — Determines whether the dropdown should be hidden, for example, when there are no options to displayOptional leading props map; remaining args are children.
ComboboxDropdown — Create custom select, autocomplete or multiselect inputs (Combobox family) https://mantine.dev/core/combobox Props (docgen 9.5.0): - **hidden** `boolean` — Determines whether the dropdown should be hidden, for example, when there are no options to display Optional leading props map; remaining args are children.
ComboboxDropdownTarget — Create custom select, autocomplete or multiselect inputs (Combobox family)
https://mantine.dev/core/combobox
Props (docgen 9.5.0):
React.ReactNode (required) — Target elementstring — Key of the prop that should be used to access element refOptional leading props map; remaining args are children.
ComboboxDropdownTarget — Create custom select, autocomplete or multiselect inputs (Combobox family) https://mantine.dev/core/combobox Props (docgen 9.5.0): - **children** `React.ReactNode` **(required)** — Target element - **refProp** `string` — Key of the prop that should be used to access element ref Optional leading props map; remaining args are children.
Combobox.Empty — compound part of Combobox (docgen omits it). Optional leading props map; remaining args are children.
Combobox.Empty — compound part of Combobox (docgen omits it). Optional leading props map; remaining args are children.
ComboboxEventsTarget — Create custom select, autocomplete or multiselect inputs (Combobox family)
https://mantine.dev/core/combobox
Props (docgen 9.5.0):
string — Input autocomplete attributeReact.ReactNode (required) — Target elementstring — Key of the prop is used to access element ref"button" | "input" (default input) — Determines which events should be handled by the target element. button target type handles Space and Enter keys to toggle dropdown opened state.boolean (default true) — If set, the target has aria- attributesboolean (default false) — If set, the target has aria-expanded attributeboolean (default true) — If set, the component responds to the keyboard eventsOptional leading props map; remaining args are children.
ComboboxEventsTarget — Create custom select, autocomplete or multiselect inputs (Combobox family) https://mantine.dev/core/combobox Props (docgen 9.5.0): - **autoComplete** `string` — Input autocomplete attribute - **children** `React.ReactNode` **(required)** — Target element - **refProp** `string` — Key of the prop is used to access element ref - **targetType** `"button" | "input"` _(default `input`)_ — Determines which events should be handled by the target element. `button` target type handles `Space` and `Enter` keys to toggle dropdown opened state. - **withAriaAttributes** `boolean` _(default `true`)_ — If set, the target has `aria-` attributes - **withExpandedAttribute** `boolean` _(default `false`)_ — If set, the target has `aria-expanded` attribute - **withKeyboardNavigation** `boolean` _(default `true`)_ — If set, the component responds to the keyboard events Optional leading props map; remaining args are children.
Combobox.Footer — compound part of Combobox (docgen omits it). Optional leading props map; remaining args are children.
Combobox.Footer — compound part of Combobox (docgen omits it). Optional leading props map; remaining args are children.
ComboboxGroup — Create custom select, autocomplete or multiselect inputs (Combobox family)
https://mantine.dev/core/combobox
Props (docgen 9.5.0):
React.ReactNode — Group labelOptional leading props map; remaining args are children.
ComboboxGroup — Create custom select, autocomplete or multiselect inputs (Combobox family) https://mantine.dev/core/combobox Props (docgen 9.5.0): - **label** `React.ReactNode` — Group label Optional leading props map; remaining args are children.
Combobox.Header — compound part of Combobox (docgen omits it). Optional leading props map; remaining args are children.
Combobox.Header — compound part of Combobox (docgen omits it). Optional leading props map; remaining args are children.
Combobox.HiddenInput — compound part of Combobox (docgen omits it). Optional leading props map; remaining args are children.
Combobox.HiddenInput — compound part of Combobox (docgen omits it). Optional leading props map; remaining args are children.
ComboboxOption — Create custom select, autocomplete or multiselect inputs (Combobox family)
https://mantine.dev/core/combobox
Props (docgen 9.5.0):
boolean — Current active stateboolean — Disabled stateboolean — Current selected statePrimitive (required) — Option valueOptional leading props map; remaining args are children.
ComboboxOption — Create custom select, autocomplete or multiselect inputs (Combobox family) https://mantine.dev/core/combobox Props (docgen 9.5.0): - **active** `boolean` — Current active state - **disabled** `boolean` — Disabled state - **selected** `boolean` — Current selected state - **value** `Primitive` **(required)** — Option value Optional leading props map; remaining args are children.
Combobox.Options — compound part of Combobox (docgen omits it). Optional leading props map; remaining args are children.
Combobox.Options — compound part of Combobox (docgen omits it). Optional leading props map; remaining args are children.
ComboboxPopover — Add combobox dropdown to any button element
https://mantine.dev/core/combobox-popover
Props (docgen 9.5.0):
boolean (default true) — Allows deselecting the selected option by clicking it (only for single mode)"left" | "right" (default 'left') — Position of the check icon relative to the option labelReact.ReactNode — Content of the componentComboboxProps — Props passed down to Combobox componentComboboxData<Value> — Data used to generate optionsboolean — Uncontrolled dropdown initial opened statestring — Default search valuePrimitive | Value[] | null — Uncontrolled component default valueboolean — Controlled dropdown opened stateOptionsFilter<Value> — Function based on which items are filtered and sortedstring — Hidden input form for form submissionReact.ComponentProps<"input"> — Props passed down to the hidden inputstring (default ',') — Divider used to separate values in the hidden input value attributenumber (default Infinity) — Maximum number of options displayed at a timestring | number (default 250) — max-height of the dropdownboolean — If set, multiple items can be selected at the same timestring — Hidden input name for form submissionReact.ReactNode — Message displayed when no options match the search query or when there is no data(value: ComboboxPopoverValue<Multiple, Value>) => void — Called when value changes() => void — Called when dropdown closes() => void — Called when dropdown opens(value: Value) => void — Called when option is submitted from dropdown with mouse click or Enter key(value: string) => void — Called when search changes(item: ComboboxLikeRenderOptionInput<ComboboxItem<string>>) => ReactNode — A function to render content of the option, replaces the default content of the optionScrollAreaProps — Props passed down to the underlying ScrollArea component in the dropdownstring — Controlled search valueboolean (default false) — Allows searching through optionsboolean (default false) — If set, the first option is selected when dropdown opensPrimitive | Value[] | null — Controlled component valueboolean (default false) — Aligns unchecked labels with the checked oneboolean (default true) — Displays check icon near the selected option labelboolean (default true) — Determines whether the options should be wrapped with ScrollArea.AutoSizeOptional leading props map; remaining args are children.
ComboboxPopover — Add combobox dropdown to any button element https://mantine.dev/core/combobox-popover Props (docgen 9.5.0): - **allowDeselect** `boolean` _(default `true`)_ — Allows deselecting the selected option by clicking it (only for single mode) - **checkIconPosition** `"left" | "right"` _(default `'left'`)_ — Position of the check icon relative to the option label - **children** `React.ReactNode` — Content of the component - **comboboxProps** `ComboboxProps` — Props passed down to Combobox component - **data** `ComboboxData<Value>` — Data used to generate options - **defaultDropdownOpened** `boolean` — Uncontrolled dropdown initial opened state - **defaultSearchValue** `string` — Default search value - **defaultValue** `Primitive | Value[] | null` — Uncontrolled component default value - **dropdownOpened** `boolean` — Controlled dropdown opened state - **filter** `OptionsFilter<Value>` — Function based on which items are filtered and sorted - **form** `string` — Hidden input form for form submission - **hiddenInputProps** `React.ComponentProps<"input">` — Props passed down to the hidden input - **hiddenInputValuesDivider** `string` _(default `','`)_ — Divider used to separate values in the hidden input value attribute - **limit** `number` _(default `Infinity`)_ — Maximum number of options displayed at a time - **maxDropdownHeight** `string | number` _(default `250`)_ — max-height of the dropdown - **multiple** `boolean` — If set, multiple items can be selected at the same time - **name** `string` — Hidden input name for form submission - **nothingFoundMessage** `React.ReactNode` — Message displayed when no options match the search query or when there is no data - **onChange** `(value: ComboboxPopoverValue<Multiple, Value>) => void` — Called when value changes - **onDropdownClose** `() => void` — Called when dropdown closes - **onDropdownOpen** `() => void` — Called when dropdown opens - **onOptionSubmit** `(value: Value) => void` — Called when option is submitted from dropdown with mouse click or Enter key - **onSearchChange** `(value: string) => void` — Called when search changes - **renderOption** `(item: ComboboxLikeRenderOptionInput<ComboboxItem<string>>) => ReactNode` — A function to render content of the option, replaces the default content of the option - **scrollAreaProps** `ScrollAreaProps` — Props passed down to the underlying ScrollArea component in the dropdown - **searchValue** `string` — Controlled search value - **searchable** `boolean` _(default `false`)_ — Allows searching through options - **selectFirstOptionOnDropdownOpen** `boolean` _(default `false`)_ — If set, the first option is selected when dropdown opens - **value** `Primitive | Value[] | null` — Controlled component value - **withAlignedLabels** `boolean` _(default `false`)_ — Aligns unchecked labels with the checked one - **withCheckIcon** `boolean` _(default `true`)_ — Displays check icon near the selected option label - **withScrollArea** `boolean` _(default `true`)_ — Determines whether the options should be wrapped with ScrollArea.AutoSize Optional leading props map; remaining args are children.
ComboboxPopover.Target — compound part of ComboboxPopover (docgen omits it). Optional leading props map; remaining args are children.
ComboboxPopover.Target — compound part of ComboboxPopover (docgen omits it). Optional leading props map; remaining args are children.
Combobox.Search — compound part of Combobox (docgen omits it). Optional leading props map; remaining args are children.
Combobox.Search — compound part of Combobox (docgen omits it). Optional leading props map; remaining args are children.
ComboboxTarget — Create custom select, autocomplete or multiselect inputs (Combobox family)
https://mantine.dev/core/combobox
Props (docgen 9.5.0):
string — Input autocomplete attributeReact.ReactNode (required) — Target elementstring — Key of the prop that is used to access element ref"button" | "input" (default input) — Determines which events is handled by the target element. button target type handles Space and Enter keys to toggle dropdown opened state.boolean (default true) — If set, the target has aria- attributesboolean (default false) — If set, the target has aria-expanded attributeboolean (default true) — If set, the component responds to keyboard eventsOptional leading props map; remaining args are children.
ComboboxTarget — Create custom select, autocomplete or multiselect inputs (Combobox family) https://mantine.dev/core/combobox Props (docgen 9.5.0): - **autoComplete** `string` — Input autocomplete attribute - **children** `React.ReactNode` **(required)** — Target element - **refProp** `string` — Key of the prop that is used to access element ref - **targetType** `"button" | "input"` _(default `input`)_ — Determines which events is handled by the target element. `button` target type handles `Space` and `Enter` keys to toggle dropdown opened state. - **withAriaAttributes** `boolean` _(default `true`)_ — If set, the target has `aria-` attributes - **withExpandedAttribute** `boolean` _(default `false`)_ — If set, the target has `aria-expanded` attribute - **withKeyboardNavigation** `boolean` _(default `true`)_ — If set, the component responds to keyboard events Optional leading props map; remaining args are children.
Container — Center content with padding and max-width
https://mantine.dev/core/container
Props (docgen 9.5.0):
boolean (default false) — If set, the container takes 100% width of its parent and size prop is ignored.MantineSize | number (default 'md') — max-width of the container, value is not responsive – it is the same for all screen sizes. Numbers are converted to rem. Ignored when fluid prop is set."block" | "grid" (default 'block') — Centering strategyOptional leading props map; remaining args are children.
Container — Center content with padding and max-width https://mantine.dev/core/container Props (docgen 9.5.0): - **fluid** `boolean` _(default `false`)_ — If set, the container takes 100% width of its parent and `size` prop is ignored. - **size** `MantineSize | number` _(default `'md'`)_ — `max-width` of the container, value is not responsive – it is the same for all screen sizes. Numbers are converted to rem. Ignored when `fluid` prop is set. - **strategy** `"block" | "grid"` _(default `'block'`)_ — Centering strategy Optional leading props map; remaining args are children.
CopyButton — Copies given text to clipboard
https://mantine.dev/core/copy-button
Props (docgen 9.5.0):
(payload: { copied: boolean; copy: () => void; }) => ReactNode (required) — Children callback, provides current status and copy function as an argumentnumber (default 1000) — Copied status timeout in msstring (required) — Value that is copied to the clipboard when the button is clickedOptional leading props map; remaining args are children.
CopyButton — Copies given text to clipboard
https://mantine.dev/core/copy-button
Props (docgen 9.5.0):
- **children** `(payload: { copied: boolean; copy: () => void; }) => ReactNode` **(required)** — Children callback, provides current status and copy function as an argument
- **timeout** `number` _(default `1000`)_ — Copied status timeout in ms
- **value** `string` **(required)** — Value that is copied to the clipboard when the button is clicked
Optional leading props map; remaining args are children.(create-theme theme)Build a Mantine theme object from a Clojure map.
Wraps clj->js, so theme keys are CAMELCASE-ONLY: clj->js does NOT camelize kebab-case, so write :fontFamily / :primaryColor / :defaultRadius (not :font-family). Freeform nested maps (:colors, :other) pass straight through — their keys are user data, not Mantine prop names.
Build a Mantine theme object from a Clojure map. Wraps clj->js, so theme keys are CAMELCASE-ONLY: clj->js does NOT camelize kebab-case, so write :fontFamily / :primaryColor / :defaultRadius (not :font-family). Freeform nested maps (:colors, :other) pass straight through — their keys are user data, not Mantine prop names.
DataList — Display label-value pairs as a description list
https://mantine.dev/core/data-list
Props (docgen 9.5.0):
React.ReactNode — DataList.Item componentsMantineSpacing (default 'sm') — Key of theme.spacing or any valid CSS value to set gap between itemsMinWidth<string | number> (default '120px') — Controls min-width of the label (dt) element, any valid CSS value"horizontal" | "vertical" (default 'horizontal') — Controls arrangement of label and value within each item. horizontal renders label and value side by side, vertical stacks label on top of valueMantineSize (default 'sm') — Controls font-size and line-heightboolean (default false) — Adds border between itemsOptional leading props map; remaining args are children.
DataList — Display label-value pairs as a description list https://mantine.dev/core/data-list Props (docgen 9.5.0): - **children** `React.ReactNode` — DataList.Item components - **gap** `MantineSpacing` _(default `'sm'`)_ — Key of `theme.spacing` or any valid CSS value to set gap between items - **labelWidth** `MinWidth<string | number>` _(default `'120px'`)_ — Controls min-width of the label (dt) element, any valid CSS value - **orientation** `"horizontal" | "vertical"` _(default `'horizontal'`)_ — Controls arrangement of label and value within each item. `horizontal` renders label and value side by side, `vertical` stacks label on top of value - **size** `MantineSize` _(default `'sm'`)_ — Controls `font-size` and `line-height` - **withDivider** `boolean` _(default `false`)_ — Adds border between items Optional leading props map; remaining args are children.
DataList.Item — compound part of DataList (docgen omits it). Optional leading props map; remaining args are children.
DataList.Item — compound part of DataList (docgen omits it). Optional leading props map; remaining args are children.
DataList.ItemLabel — compound part of DataList (docgen omits it). Optional leading props map; remaining args are children.
DataList.ItemLabel — compound part of DataList (docgen omits it). Optional leading props map; remaining args are children.
DataList.ItemValue — compound part of DataList (docgen omits it). Optional leading props map; remaining args are children.
DataList.ItemValue — compound part of DataList (docgen omits it). Optional leading props map; remaining args are children.
Dialog — Display a fixed overlay dialog at any side of the screen
https://mantine.dev/core/dialog
Props (docgen 9.5.0):
React.ReactNode — Dialog contentboolean (default false) — If set, the component uses display: none to hide the root element instead of removing the DOM node() => void — Called on close button clickboolean (required) — Opened stateBasePortalProps — Props passed down to the Portal component. Ignored when withinPortal is false.AffixPosition (default { bottom: 0, right: 0 }) — Affix position on screenMantineRadius | number (default theme.defaultRadius) — Key of theme.radius or any valid CSS value to set border-radius, numbers are converted to remMantineShadow — Key of theme.shadows or any valid CSS value to set box-shadowMantineSize | number (default 'md') — Controls width of the dialogTransitionProps (default { transition: 'pop-top-right', duration: 200 }) — Props passed down to the underlying Transition componentboolean — Adds border to the root elementboolean (default false) — If set, displays the close buttonboolean (default true) — Determines whether the component is rendered within PortalReact.CSSProperties["zIndex"] (default 200) — Root element z-index propertyOptional leading props map; remaining args are children.
Dialog — Display a fixed overlay dialog at any side of the screen
https://mantine.dev/core/dialog
Props (docgen 9.5.0):
- **children** `React.ReactNode` — Dialog content
- **keepMounted** `boolean` _(default `false`)_ — If set, the component uses `display: none` to hide the root element instead of removing the DOM node
- **onClose** `() => void` — Called on close button click
- **opened** `boolean` **(required)** — Opened state
- **portalProps** `BasePortalProps` — Props passed down to the `Portal` component. Ignored when `withinPortal` is `false`.
- **position** `AffixPosition` _(default `{ bottom: 0, right: 0 }`)_ — Affix position on screen
- **radius** `MantineRadius | number` _(default `theme.defaultRadius`)_ — Key of `theme.radius` or any valid CSS value to set border-radius, numbers are converted to rem
- **shadow** `MantineShadow` — Key of `theme.shadows` or any valid CSS value to set `box-shadow`
- **size** `MantineSize | number` _(default `'md'`)_ — Controls `width` of the dialog
- **transitionProps** `TransitionProps` _(default `{ transition: 'pop-top-right', duration: 200 }`)_ — Props passed down to the underlying `Transition` component
- **withBorder** `boolean` — Adds border to the root element
- **withCloseButton** `boolean` _(default `false`)_ — If set, displays the close button
- **withinPortal** `boolean` _(default `true`)_ — Determines whether the component is rendered within `Portal`
- **zIndex** `React.CSSProperties["zIndex"]` _(default `200`)_ — Root element `z-index` property
Optional leading props map; remaining args are children.DirectionProvider — sets LTR/RTL text direction for descendants. Optional leading props map; remaining args are children.
DirectionProvider — sets LTR/RTL text direction for descendants. Optional leading props map; remaining args are children.
Divider — Horizontal line with optional label or vertical divider
https://mantine.dev/core/divider
Props (docgen 9.5.0):
MantineColor — Key of theme.colors or any valid CSS color valueReact.ReactNode — Divider label, visible only with orientation="horizontal""center" | "left" | "right" (default 'center') — Label position"horizontal" | "vertical" (default 'horizontal') — Divider orientationMantineSize | number (default 'xs') — Controls width/height (depends on orientation)Optional leading props map; remaining args are children.
Divider — Horizontal line with optional label or vertical divider https://mantine.dev/core/divider Props (docgen 9.5.0): - **color** `MantineColor` — Key of `theme.colors` or any valid CSS color value - **label** `React.ReactNode` — Divider label, visible only with `orientation="horizontal"` - **labelPosition** `"center" | "left" | "right"` _(default `'center'`)_ — Label position - **orientation** `"horizontal" | "vertical"` _(default `'horizontal'`)_ — Divider orientation - **size** `MantineSize | number` _(default `'xs'`)_ — Controls width/height (depends on orientation) Optional leading props map; remaining args are children.
Drawer — Display overlay area at any side of the screen
https://mantine.dev/core/drawer
Props (docgen 9.5.0):
React.ReactNode — Drawer contentModalBaseCloseButtonProps — Props passed down to the close buttonboolean (default true) — If set, the modal/drawer is closed when user clicks on the overlayboolean (default true) — If set, onClose is called when user presses the escape keystring — Id used to connect modal/drawer with body and titleboolean (default false) — If set modal/drawer is not unmounted from the DOM when hidden. display: none styles are applied instead."activity" | "display-none" (default 'activity') — Controls how the modal/drawer is hidden when keepMounted is set: 'activity' - hidden with React 19 Activity component, 'display-none' - hidden with display: none stylesboolean (default true) — If set, scroll is locked when opened={true}string | number (default 0) — Drawer container offset from the viewport end() => void (required) — Called when modal/drawer is closed() => void — Called when enter transition ends() => void — Called when exit transition endsboolean (required) — Controls opened stateModalBaseOverlayProps — Props passed down to the Overlay component, can be used to configure opacity, background-color, styles and other propertiesMantineSpacing (default 'md') — Key of theme.spacing or any valid CSS value to set content, header and footer paddingBasePortalProps — Props passed down to the Portal component when withinPortal is setDrawerPosition (default 'left') — Side of the screen on which drawer will be openedMantineRadius | number (default 0) — Key of theme.radius or any valid CSS value to set border-radius, numbers are converted to remRemoveScrollProps — Props passed down to react-remove-scroll, can be used to customize scroll lock behaviorboolean (default true) — If set, focus is returned to the last active element when onClose is calledScrollAreaComponent (default 'div') — Scroll area componentMantineShadow (default 'xl') — Key of theme.shadows or any valid CSS box-shadow valueMantineSize | number (default 'md') — Controls width of the content areastring — Id of the drawer in the Drawer.StackReact.ReactNode — Drawer titleTransitionProps — Props added to the Transition component that used to animate overlay and body, use to configure duration and animation type, { duration: 200, transition: 'fade-down' } by defaultboolean (default true) — If set, focus is trapped within the modal/drawerboolean (default true) — If set, the close button is displayedboolean (default true) — If set, the overlay is displayedboolean (default true) — If set, the component is rendered inside Portalstring | number (default 200) — z-index CSS property of the root elementOptional leading props map; remaining args are children.
Drawer — Display overlay area at any side of the screen
https://mantine.dev/core/drawer
Props (docgen 9.5.0):
- **children** `React.ReactNode` — Drawer content
- **closeButtonProps** `ModalBaseCloseButtonProps` — Props passed down to the close button
- **closeOnClickOutside** `boolean` _(default `true`)_ — If set, the modal/drawer is closed when user clicks on the overlay
- **closeOnEscape** `boolean` _(default `true`)_ — If set, `onClose` is called when user presses the escape key
- **id** `string` — Id used to connect modal/drawer with body and title
- **keepMounted** `boolean` _(default `false`)_ — If set modal/drawer is not unmounted from the DOM when hidden. `display: none` styles are applied instead.
- **keepMountedMode** `"activity" | "display-none"` _(default `'activity'`)_ — Controls how the modal/drawer is hidden when `keepMounted` is set: `'activity'` - hidden with React 19 `Activity` component, `'display-none'` - hidden with `display: none` styles
- **lockScroll** `boolean` _(default `true`)_ — If set, scroll is locked when `opened={true}`
- **offset** `string | number` _(default `0`)_ — Drawer container offset from the viewport end
- **onClose** `() => void` **(required)** — Called when modal/drawer is closed
- **onEnterTransitionEnd** `() => void` — Called when enter transition ends
- **onExitTransitionEnd** `() => void` — Called when exit transition ends
- **opened** `boolean` **(required)** — Controls opened state
- **overlayProps** `ModalBaseOverlayProps` — Props passed down to the `Overlay` component, can be used to configure opacity, `background-color`, styles and other properties
- **padding** `MantineSpacing` _(default `'md'`)_ — Key of `theme.spacing` or any valid CSS value to set content, header and footer padding
- **portalProps** `BasePortalProps` — Props passed down to the Portal component when `withinPortal` is set
- **position** `DrawerPosition` _(default `'left'`)_ — Side of the screen on which drawer will be opened
- **radius** `MantineRadius | number` _(default `0`)_ — Key of `theme.radius` or any valid CSS value to set `border-radius`, numbers are converted to rem
- **removeScrollProps** `RemoveScrollProps` — Props passed down to react-remove-scroll, can be used to customize scroll lock behavior
- **returnFocus** `boolean` _(default `true`)_ — If set, focus is returned to the last active element when `onClose` is called
- **scrollAreaComponent** `ScrollAreaComponent` _(default `'div'`)_ — Scroll area component
- **shadow** `MantineShadow` _(default `'xl'`)_ — Key of `theme.shadows` or any valid CSS box-shadow value
- **size** `MantineSize | number` _(default `'md'`)_ — Controls width of the content area
- **stackId** `string` — Id of the drawer in the `Drawer.Stack`
- **title** `React.ReactNode` — Drawer title
- **transitionProps** `TransitionProps` — Props added to the `Transition` component that used to animate overlay and body, use to configure duration and animation type, `{ duration: 200, transition: 'fade-down' }` by default
- **trapFocus** `boolean` _(default `true`)_ — If set, focus is trapped within the modal/drawer
- **withCloseButton** `boolean` _(default `true`)_ — If set, the close button is displayed
- **withOverlay** `boolean` _(default `true`)_ — If set, the overlay is displayed
- **withinPortal** `boolean` _(default `true`)_ — If set, the component is rendered inside `Portal`
- **zIndex** `string | number` _(default `200`)_ — `z-index` CSS property of the root element
Optional leading props map; remaining args are children.Drawer.Body — compound part of Drawer (docgen omits it). Optional leading props map; remaining args are children.
Drawer.Body — compound part of Drawer (docgen omits it). Optional leading props map; remaining args are children.
Drawer.CloseButton — compound part of Drawer (docgen omits it). Optional leading props map; remaining args are children.
Drawer.CloseButton — compound part of Drawer (docgen omits it). Optional leading props map; remaining args are children.
Drawer.Content — compound part of Drawer (docgen omits it). Optional leading props map; remaining args are children.
Drawer.Content — compound part of Drawer (docgen omits it). Optional leading props map; remaining args are children.
Drawer.Header — compound part of Drawer (docgen omits it). Optional leading props map; remaining args are children.
Drawer.Header — compound part of Drawer (docgen omits it). Optional leading props map; remaining args are children.
Drawer.Overlay — compound part of Drawer (docgen omits it). Optional leading props map; remaining args are children.
Drawer.Overlay — compound part of Drawer (docgen omits it). Optional leading props map; remaining args are children.
Drawer.Root — compound part of Drawer (docgen omits it). Optional leading props map; remaining args are children.
Drawer.Root — compound part of Drawer (docgen omits it). Optional leading props map; remaining args are children.
Drawer.Stack — compound part of Drawer (docgen omits it). Optional leading props map; remaining args are children.
Drawer.Stack — compound part of Drawer (docgen omits it). Optional leading props map; remaining args are children.
Drawer.Title — compound part of Drawer (docgen omits it). Optional leading props map; remaining args are children.
Drawer.Title — compound part of Drawer (docgen omits it). Optional leading props map; remaining args are children.
EmptyState — Display a placeholder for no data, empty results and first-run states
https://mantine.dev/core/empty-state
Props (docgen 9.5.0):
"center" | "left" | "right" (default 'center') — Content alignment. center stacks the content in a centered column, left/right place the indicator on the side with the content next to itReact.ReactNode — EmptyState compound components, rendered after the shorthand props contentMantineColor (default theme.primaryColor) — Key of theme.colors or any valid CSS color, used by filled and light variantsReact.ReactNode — Description content, rendered inside EmptyState.DescriptionReact.ReactNode — Icon or illustration, rendered inside EmptyState.IndicatorMantineSize (default 'md') — Controls indicator size, gap between elements and font sizes of title and descriptionReact.ReactNode — Title content, rendered inside EmptyState.Titleboolean (default false) — If set, a neutral circular background is displayed behind the indicator. Setting variant always displays a colored background regardless of this propOptional leading props map; remaining args are children.
EmptyState — Display a placeholder for no data, empty results and first-run states https://mantine.dev/core/empty-state Props (docgen 9.5.0): - **align** `"center" | "left" | "right"` _(default `'center'`)_ — Content alignment. `center` stacks the content in a centered column, `left`/`right` place the indicator on the side with the content next to it - **children** `React.ReactNode` — `EmptyState` compound components, rendered after the shorthand props content - **color** `MantineColor` _(default `theme.primaryColor`)_ — Key of `theme.colors` or any valid CSS color, used by `filled` and `light` variants - **description** `React.ReactNode` — Description content, rendered inside `EmptyState.Description` - **icon** `React.ReactNode` — Icon or illustration, rendered inside `EmptyState.Indicator` - **size** `MantineSize` _(default `'md'`)_ — Controls indicator size, gap between elements and font sizes of title and description - **title** `React.ReactNode` — Title content, rendered inside `EmptyState.Title` - **withIndicatorBackground** `boolean` _(default `false`)_ — If set, a neutral circular background is displayed behind the indicator. Setting `variant` always displays a colored background regardless of this prop Optional leading props map; remaining args are children.
EmptyState.Actions — compound part of EmptyState (docgen omits it). Optional leading props map; remaining args are children.
EmptyState.Actions — compound part of EmptyState (docgen omits it). Optional leading props map; remaining args are children.
EmptyState.Description — compound part of EmptyState (docgen omits it). Optional leading props map; remaining args are children.
EmptyState.Description — compound part of EmptyState (docgen omits it). Optional leading props map; remaining args are children.
EmptyState.Indicator — compound part of EmptyState (docgen omits it). Optional leading props map; remaining args are children.
EmptyState.Indicator — compound part of EmptyState (docgen omits it). Optional leading props map; remaining args are children.
EmptyState.Title — compound part of EmptyState (docgen omits it). Optional leading props map; remaining args are children.
EmptyState.Title — compound part of EmptyState (docgen omits it). Optional leading props map; remaining args are children.
Fieldset — Group related elements in a form
https://mantine.dev/core/fieldset
Props (docgen 9.5.0):
React.ReactNode — Fieldset legendMantineRadius | number (default theme.defaultRadius) — Key of theme.radius or any valid CSS value to set border-radiusOptional leading props map; remaining args are children.
Fieldset — Group related elements in a form https://mantine.dev/core/fieldset Props (docgen 9.5.0): - **legend** `React.ReactNode` — Fieldset legend - **radius** `MantineRadius | number` _(default `theme.defaultRadius`)_ — Key of `theme.radius` or any valid CSS value to set `border-radius` Optional leading props map; remaining args are children.
FileButton — Open file picker with a button click
https://mantine.dev/core/file-button
Props (docgen 9.5.0):
string — File input accept attribute, for example, "image/png,image/jpeg"boolean | "user" | "environment" — Specifies that, optionally, a new file should be captured, and which device should be used to capture that new media of a type defined by the accept attribute.(props: { onClick: () => void; }) => ReactNode (required) — Function that receives button props and returns react node that should be renderedboolean — Disables file pickerstring — Input form attributeReact.ComponentProps<"input"> — Passes down props to the input element used to capture filesboolean — If set, user can pick more than one filestring — Input name attribute(payload: Multiple extends true ? File[] : File | null) => void (required) — Called when files are pickedRef<() => void> — Reference of the function that should be called when value changes to null or empty arrayOptional leading props map; remaining args are children.
FileButton — Open file picker with a button click
https://mantine.dev/core/file-button
Props (docgen 9.5.0):
- **accept** `string` — File input accept attribute, for example, `"image/png,image/jpeg"`
- **capture** `boolean | "user" | "environment"` — Specifies that, optionally, a new file should be captured, and which device should be used to capture that new media of a type defined by the accept attribute.
- **children** `(props: { onClick: () => void; }) => ReactNode` **(required)** — Function that receives button props and returns react node that should be rendered
- **disabled** `boolean` — Disables file picker
- **form** `string` — Input form attribute
- **inputProps** `React.ComponentProps<"input">` — Passes down props to the input element used to capture files
- **multiple** `boolean` — If set, user can pick more than one file
- **name** `string` — Input name attribute
- **onChange** `(payload: Multiple extends true ? File[] : File | null) => void` **(required)** — Called when files are picked
- **resetRef** `Ref<() => void>` — Reference of the function that should be called when value changes to null or empty array
Optional leading props map; remaining args are children.FileInput — Capture files from user
https://mantine.dev/core/file-input
Props (docgen 9.5.0):
string — File input accept attribute, for example, "image/png,image/jpeg"boolean | "user" | "environment" — Specifies that, optionally, a new file should be captured, and which device should be used to capture that new media of a type defined by the accept attribute.React.ComponentProps<"button"> — Props passed down to the clear buttonClearSectionMode (default 'both') — Determines how the clear button and rightSection are renderedboolean (default false) — If set, the clear button is displayed in the right sectionFile | File[] | null — Uncontrolled component default valueReact.ReactNode — Contents of Input.Description component. If not set, description is not displayed.InputDescriptionProps — Props passed down to the Input.Description componentboolean — Sets disabled attribute on the input elementReact.ReactNode — Contents of Input.Error component. If not set, error is not displayed.InputErrorProps — Props passed down to the Input.Error componentReact.ComponentProps<"input"> — Props passed down to the hidden input[type="file"]string — Input form attribute(children: ReactNode) => ReactNode (default React.Fragment) — Render function to wrap the input element. Useful for adding tooltips, popovers, or other wrappers around the input.string — HTML size attribute for the input element (number of visible characters)("input" | "label" | "description" | "error")[] (default ['label', 'description', 'input', 'error']) — Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.React.ReactNode — Contents of Input.Label component. If not set, label is not displayed.InputLabelProps — Props passed down to the Input.Label componentReact.ReactNode — Content section displayed on the left side of the inputReact.CSSProperties["pointerEvents"] (default 'none') — Sets pointer-events styles on the leftSection element. Use 'all' when section contains interactive elements (buttons, links).React.ComponentProps<"div"> — Props passed down to the leftSection elementReact.CSSProperties["width"] — Left section width, used to set width of the section and input padding-left, by default equals to the input heightboolean (default false) — Displays loading indicator in the left or right section"left" | "right" (default 'right') — Position of the loading indicatorboolean (default false) — If set, user can pick more than one filestring — Input name attribute(payload: Multiple extends true ? File[] : File | null) => void — Called when value changesReact.ReactNode — Input placeholderboolean (default false) — Determines whether the input should have cursor: pointer style. Use when input acts as a button-like trigger (e.g., component="button" for Select/DatePicker).MantineRadius | number (default theme.defaultRadius) — Key of theme.radius or any valid CSS value to set border-radius, numbers are converted to remboolean — If set, the input value cannot be changedboolean (default false) — Adds required attribute to the input and a red asterisk on the right side of labelRef<() => void> — Reference of the function that should be called when value changes to null or empty arrayReact.ReactNode — Content section displayed on the right side of the inputReact.CSSProperties["pointerEvents"] (default 'none') — Sets pointer-events styles on the rightSection element. Use 'all' when section contains interactive elements (buttons, links).React.ComponentProps<"div"> — Props passed down to the rightSection elementReact.CSSProperties["width"] — Right section width, used to set width of the section and input padding-right, by default equals to the input heightMantineSize (default 'sm') — Controls input height, horizontal padding, and font-sizeReact.ReactNode — Contents of Input.Success component. If not set, success is not displayed.InputSuccessProps & DataAttributes — Props passed down to the Input.Success componentFile | File[] | null — Controlled component valueFC<{ value: File | File[] | null; }> — Value renderer. By default, displays file name.boolean (default false) — If set, the required asterisk is displayed next to the label. Overrides required prop. Does not add required attribute to the input.boolean (default true) — Determines whether the input should have red border and red text color when the error prop is setboolean (default true) — Determines whether the input should have green border when the success prop is setWrapperProps — Props passed down to the root elementOptional leading props map; remaining args are children.
FileInput — Capture files from user
https://mantine.dev/core/file-input
Props (docgen 9.5.0):
- **accept** `string` — File input accept attribute, for example, `"image/png,image/jpeg"`
- **capture** `boolean | "user" | "environment"` — Specifies that, optionally, a new file should be captured, and which device should be used to capture that new media of a type defined by the accept attribute.
- **clearButtonProps** `React.ComponentProps<"button">` — Props passed down to the clear button
- **clearSectionMode** `ClearSectionMode` _(default `'both'`)_ — Determines how the clear button and rightSection are rendered
- **clearable** `boolean` _(default `false`)_ — If set, the clear button is displayed in the right section
- **defaultValue** `File | File[] | null` — Uncontrolled component default value
- **description** `React.ReactNode` — Contents of `Input.Description` component. If not set, description is not displayed.
- **descriptionProps** `InputDescriptionProps` — Props passed down to the `Input.Description` component
- **disabled** `boolean` — Sets `disabled` attribute on the `input` element
- **error** `React.ReactNode` — Contents of `Input.Error` component. If not set, error is not displayed.
- **errorProps** `InputErrorProps` — Props passed down to the `Input.Error` component
- **fileInputProps** `React.ComponentProps<"input">` — Props passed down to the hidden `input[type="file"]`
- **form** `string` — Input form attribute
- **inputContainer** `(children: ReactNode) => ReactNode` _(default `React.Fragment`)_ — Render function to wrap the input element. Useful for adding tooltips, popovers, or other wrappers around the input.
- **inputSize** `string` — HTML `size` attribute for the input element (number of visible characters)
- **inputWrapperOrder** `("input" | "label" | "description" | "error")[]` _(default `['label', 'description', 'input', 'error']`)_ — Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.
- **label** `React.ReactNode` — Contents of `Input.Label` component. If not set, label is not displayed.
- **labelProps** `InputLabelProps` — Props passed down to the `Input.Label` component
- **leftSection** `React.ReactNode` — Content section displayed on the left side of the input
- **leftSectionPointerEvents** `React.CSSProperties["pointerEvents"]` _(default `'none'`)_ — Sets `pointer-events` styles on the `leftSection` element. Use `'all'` when section contains interactive elements (buttons, links).
- **leftSectionProps** `React.ComponentProps<"div">` — Props passed down to the `leftSection` element
- **leftSectionWidth** `React.CSSProperties["width"]` — Left section width, used to set `width` of the section and input `padding-left`, by default equals to the input height
- **loading** `boolean` _(default `false`)_ — Displays loading indicator in the left or right section
- **loadingPosition** `"left" | "right"` _(default `'right'`)_ — Position of the loading indicator
- **multiple** `boolean` _(default `false`)_ — If set, user can pick more than one file
- **name** `string` — Input name attribute
- **onChange** `(payload: Multiple extends true ? File[] : File | null) => void` — Called when value changes
- **placeholder** `React.ReactNode` — Input placeholder
- **pointer** `boolean` _(default `false`)_ — Determines whether the input should have `cursor: pointer` style. Use when input acts as a button-like trigger (e.g., `component="button"` for Select/DatePicker).
- **radius** `MantineRadius | number` _(default `theme.defaultRadius`)_ — Key of `theme.radius` or any valid CSS value to set `border-radius`, numbers are converted to rem
- **readOnly** `boolean` — If set, the input value cannot be changed
- **required** `boolean` _(default `false`)_ — Adds required attribute to the input and a red asterisk on the right side of label
- **resetRef** `Ref<() => void>` — Reference of the function that should be called when value changes to null or empty array
- **rightSection** `React.ReactNode` — Content section displayed on the right side of the input
- **rightSectionPointerEvents** `React.CSSProperties["pointerEvents"]` _(default `'none'`)_ — Sets `pointer-events` styles on the `rightSection` element. Use `'all'` when section contains interactive elements (buttons, links).
- **rightSectionProps** `React.ComponentProps<"div">` — Props passed down to the `rightSection` element
- **rightSectionWidth** `React.CSSProperties["width"]` — Right section width, used to set `width` of the section and input `padding-right`, by default equals to the input height
- **size** `MantineSize` _(default `'sm'`)_ — Controls input `height`, horizontal `padding`, and `font-size`
- **success** `React.ReactNode` — Contents of `Input.Success` component. If not set, success is not displayed.
- **successProps** `InputSuccessProps & DataAttributes` — Props passed down to the `Input.Success` component
- **value** `File | File[] | null` — Controlled component value
- **valueComponent** `FC<{ value: File | File[] | null; }>` — Value renderer. By default, displays file name.
- **withAsterisk** `boolean` _(default `false`)_ — If set, the required asterisk is displayed next to the label. Overrides `required` prop. Does not add required attribute to the input.
- **withErrorStyles** `boolean` _(default `true`)_ — Determines whether the input should have red border and red text color when the `error` prop is set
- **withSuccessStyles** `boolean` _(default `true`)_ — Determines whether the input should have green border when the `success` prop is set
- **wrapperProps** `WrapperProps` — Props passed down to the root element
Optional leading props map; remaining args are children.Flex — Compose elements in a flex container
Polymorphic: accepts :component / :render-root.
Props (docgen 9.5.0):
StyleProp<AlignItems> — align-items CSS propertyStyleProp<MantineSpacing> — column-gap CSS propertyStyleProp<FlexDirection> — flex-direction CSS propertyStyleProp<MantineSpacing> — gap CSS propertyStyleProp<JustifyContent> — justify-content CSS propertyStyleProp<MantineSpacing> — row-gap CSS propertyStyleProp<FlexWrap> — flex-wrap CSS propertyOptional leading props map; remaining args are children.
Flex — Compose elements in a flex container https://mantine.dev/core/flex Polymorphic: accepts :component / :render-root. Props (docgen 9.5.0): - **align** `StyleProp<AlignItems>` — `align-items` CSS property - **columnGap** `StyleProp<MantineSpacing>` — `column-gap` CSS property - **direction** `StyleProp<FlexDirection>` — `flex-direction` CSS property - **gap** `StyleProp<MantineSpacing>` — `gap` CSS property - **justify** `StyleProp<JustifyContent>` — `justify-content` CSS property - **rowGap** `StyleProp<MantineSpacing>` — `row-gap` CSS property - **wrap** `StyleProp<FlexWrap>` — `flex-wrap` CSS property Optional leading props map; remaining args are children.
FloatingIndicator — Display a floating indicator over a group of elements
https://mantine.dev/core/floating-indicator
Props (docgen 9.5.0):
boolean (default false) — Controls whether the indicator should be hidden initially and displayed after the parent's transition ends. Set to true when the parent container has CSS transitions (e.g., transform: scale()) to prevent the indicator from appearing at the wrong position during the parent's animation.() => void — Called when the indicator finishes transitioning to a new position() => void — Called when the indicator starts transitioning to a new positionHTMLElement | null (required) — Parent container element that must have position: relative. The indicator's position is calculated relative to this element.HTMLElement | null (required) — Target element over which the indicator is displayed. The indicator will be positioned to match the target's size and position.string | number (default 150) — Transition duration in msOptional leading props map; remaining args are children.
FloatingIndicator — Display a floating indicator over a group of elements https://mantine.dev/core/floating-indicator Props (docgen 9.5.0): - **displayAfterTransitionEnd** `boolean` _(default `false`)_ — Controls whether the indicator should be hidden initially and displayed after the parent's transition ends. Set to `true` when the parent container has CSS transitions (e.g., `transform: scale()`) to prevent the indicator from appearing at the wrong position during the parent's animation. - **onTransitionEnd** `() => void` — Called when the indicator finishes transitioning to a new position - **onTransitionStart** `() => void` — Called when the indicator starts transitioning to a new position - **parent** `HTMLElement | null` **(required)** — Parent container element that must have `position: relative`. The indicator's position is calculated relative to this element. - **target** `HTMLElement | null` **(required)** — Target element over which the indicator is displayed. The indicator will be positioned to match the target's size and position. - **transitionDuration** `string | number` _(default `150`)_ — Transition duration in ms Optional leading props map; remaining args are children.
FloatingWindow — Draggable floating area
https://mantine.dev/core/floating-window
Props (docgen 9.5.0):
"x" | "y" — If set, restricts movement to the specified axisnumber — The offset from the viewport edges when constraining the element. Requires constrainToViewport: true.boolean — If true, the element can only move within the current viewport boundaries.FloatingWindowDimensions — Dimensions configuration for resizable floating windowstring — Selector of an element that should be used to drag floating window. If not specified, the entire root element is used as a drag target.boolean — If false, the element can not be dragged.string — Selector of an element within dragHandleSelector that should be excluded from the drag event.FloatingWindowPositionConfig — Initial position. If not set, calculated from element styles.() => void — Called when the drag stops() => void — Called when the drag starts(pos: FloatingWindowPosition) => void — Called when the element position changesOmit<PortalProps, "children"> — Props passed down to Portal componentMantineRadius | number (default theme.defaultRadius) — Key of theme.radius or any valid CSS value to set border-radius, numbers are converted to remRefObject<SetFloatingWindowPosition | null> — Assigns ref to set position programmaticallyMantineShadow — Key of theme.shadows or any valid CSS value to set box-shadowboolean — Adds border to the root elementboolean (default true) — Determines whether the window should be rendered inside PortalReact.CSSProperties["zIndex"] (default 400) — z-index of the root elementOptional leading props map; remaining args are children.
FloatingWindow — Draggable floating area https://mantine.dev/core/floating-window Props (docgen 9.5.0): - **axis** `"x" | "y"` — If set, restricts movement to the specified axis - **constrainOffset** `number` — The offset from the viewport edges when constraining the element. Requires `constrainToViewport: true`. - **constrainToViewport** `boolean` — If `true`, the element can only move within the current viewport boundaries. - **dimensions** `FloatingWindowDimensions` — Dimensions configuration for resizable floating window - **dragHandleSelector** `string` — Selector of an element that should be used to drag floating window. If not specified, the entire root element is used as a drag target. - **enabled** `boolean` — If `false`, the element can not be dragged. - **excludeDragHandleSelector** `string` — Selector of an element within `dragHandleSelector` that should be excluded from the drag event. - **initialPosition** `FloatingWindowPositionConfig` — Initial position. If not set, calculated from element styles. - **onDragEnd** `() => void` — Called when the drag stops - **onDragStart** `() => void` — Called when the drag starts - **onPositionChange** `(pos: FloatingWindowPosition) => void` — Called when the element position changes - **portalProps** `Omit<PortalProps, "children">` — Props passed down to `Portal` component - **radius** `MantineRadius | number` _(default `theme.defaultRadius`)_ — Key of `theme.radius` or any valid CSS value to set border-radius, numbers are converted to rem - **setPositionRef** `RefObject<SetFloatingWindowPosition | null>` — Assigns ref to set position programmatically - **shadow** `MantineShadow` — Key of `theme.shadows` or any valid CSS value to set `box-shadow` - **withBorder** `boolean` — Adds border to the root element - **withinPortal** `boolean` _(default `true`)_ — Determines whether the window should be rendered inside `Portal` - **zIndex** `React.CSSProperties["zIndex"]` _(default `400`)_ — `z-index` of the root element Optional leading props map; remaining args are children.
FocusTrap — Trap focus at child node
https://mantine.dev/core/focus-trap
Props (docgen 9.5.0):
boolean (default true) — If set to false, disables focus trapany (required) — Element to trap focus at, must support ref propRef<any> — Ref to combine with the focus trap refstring (default ref) — Prop that is used to access element refOptional leading props map; remaining args are children.
FocusTrap — Trap focus at child node https://mantine.dev/core/focus-trap Props (docgen 9.5.0): - **active** `boolean` _(default `true`)_ — If set to `false`, disables focus trap - **children** `any` **(required)** — Element to trap focus at, must support ref prop - **innerRef** `Ref<any>` — Ref to combine with the focus trap ref - **refProp** `string` _(default `ref`)_ — Prop that is used to access element ref Optional leading props map; remaining args are children.
FocusTrapInitialFocus
Optional leading props map; remaining args are children.
FocusTrapInitialFocus Optional leading props map; remaining args are children.
Grid — Responsive 12 columns grid system
Props (docgen 9.5.0):
AlignItems (default stretch) — Sets align-itemsGridBreakpoints — Breakpoints values, only used with type="container"StyleProp<MantineSpacing> — Column gap, overrides gap for horizontal spacingnumber (default 12) — Number of columns in each rowStyleProp<MantineSpacing> (default 'md') — Gap between columns and rows, key of theme.spacing or any valid CSS valueboolean (default false) — If set, columns in the last row expand to fill all available spaceJustifyContent (default flex-start) — Sets justify-contentOverflow (default 'visible') — Sets overflow CSS property on the root elementStyleProp<MantineSpacing> — Row gap, overrides gap for vertical spacing"media" | "container" (default 'media') — Type of queries used for responsive stylesOptional leading props map; remaining args are children.
Grid — Responsive 12 columns grid system https://mantine.dev/core/grid Props (docgen 9.5.0): - **align** `AlignItems` _(default `stretch`)_ — Sets `align-items` - **breakpoints** `GridBreakpoints` — Breakpoints values, only used with `type="container"` - **columnGap** `StyleProp<MantineSpacing>` — Column gap, overrides `gap` for horizontal spacing - **columns** `number` _(default `12`)_ — Number of columns in each row - **gap** `StyleProp<MantineSpacing>` _(default `'md'`)_ — Gap between columns and rows, key of `theme.spacing` or any valid CSS value - **grow** `boolean` _(default `false`)_ — If set, columns in the last row expand to fill all available space - **justify** `JustifyContent` _(default `flex-start`)_ — Sets `justify-content` - **overflow** `Overflow` _(default `'visible'`)_ — Sets `overflow` CSS property on the root element - **rowGap** `StyleProp<MantineSpacing>` — Row gap, overrides `gap` for vertical spacing - **type** `"media" | "container"` _(default `'media'`)_ — Type of queries used for responsive styles Optional leading props map; remaining args are children.
GridCol — Responsive 12 columns grid system (Grid family)
Props (docgen 9.5.0):
StyleProp<AlignSelf> — Vertical alignment of the column, controls align-self CSS propertyStyleProp<number> — Column start offset – number of empty columns before this columnStyleProp<number> — Column order, use to reorder columns at different viewport sizesStyleProp<ColSpan> (default 12) — Column spanOptional leading props map; remaining args are children.
GridCol — Responsive 12 columns grid system (Grid family) https://mantine.dev/core/grid Props (docgen 9.5.0): - **align** `StyleProp<AlignSelf>` — Vertical alignment of the column, controls `align-self` CSS property - **offset** `StyleProp<number>` — Column start offset – number of empty columns before this column - **order** `StyleProp<number>` — Column order, use to reorder columns at different viewport sizes - **span** `StyleProp<ColSpan>` _(default `12`)_ — Column span Optional leading props map; remaining args are children.
Group — Compose elements and components in a horizontal flex container
https://mantine.dev/core/group
Props (docgen 9.5.0):
AlignItems (default 'center') — Controls align-items CSS propertyMantineSpacing (default 'md') — Key of theme.spacing or any valid CSS value for gap, numbers are converted to remboolean (default false) — Determines whether each child element should have flex-grow: 1 styleJustifyContent (default 'flex-start') — Controls justify-content CSS propertyboolean (default true) — Determines whether children should take only dedicated amount of space (max-width style is set based on the number of children)FlexWrap (default 'wrap') — Controls flex-wrap CSS propertyOptional leading props map; remaining args are children.
Group — Compose elements and components in a horizontal flex container https://mantine.dev/core/group Props (docgen 9.5.0): - **align** `AlignItems` _(default `'center'`)_ — Controls `align-items` CSS property - **gap** `MantineSpacing` _(default `'md'`)_ — Key of `theme.spacing` or any valid CSS value for `gap`, numbers are converted to rem - **grow** `boolean` _(default `false`)_ — Determines whether each child element should have `flex-grow: 1` style - **justify** `JustifyContent` _(default `'flex-start'`)_ — Controls `justify-content` CSS property - **preventGrowOverflow** `boolean` _(default `true`)_ — Determines whether children should take only dedicated amount of space (`max-width` style is set based on the number of children) - **wrap** `FlexWrap` _(default `'wrap'`)_ — Controls `flex-wrap` CSS property Optional leading props map; remaining args are children.
Highlight — Highlight given part of a string with mark
https://mantine.dev/core/highlight
Polymorphic: accepts :component / :render-root.
Props (docgen 9.5.0):
boolean (default true) — Perform accent-insensitive matching. When enabled cafe will match cafe, café, cafè, etc.boolean (default true) — Perform case-insensitive matching.string (required) — String in which to highlight substringsstring | (string & {}) (default 'yellow') — Default background color for all highlighted text. Key of theme.colors or any valid CSS color, passed to Mark component. Can be overridden per term when using HighlightTerm objects.MantineGradient (default theme.defaultGradient) — Gradient configuration, ignored when variant is not gradientstring | string[] | HighlightTerm[] (required) — Substring(s) to highlight in children. Can be: - string: single term - string[]: multiple terms with same color - HighlightTerm[]: multiple terms with custom colors per term - Matching is case-insensitive and accent-insensitive by default, use caseInsensitive and accentInsensitive props to control this behavior - Regex special characters are automatically escaped - When multiple substrings are provided, longer matches take precedence - Empty strings and whitespace-only strings are ignoredCSSProperties | ((theme: MantineTheme) => CSSProperties) — Styles applied to mark elementsboolean (default false) — Determines whether font properties should be inherited from the parentboolean (default false) — Sets line-height to 1 for centeringnumber — Number of lines after which Text will be truncatedMantineSize | (string & {}) (default 'md') — Controls font-size and line-heightboolean — Shorthand for component="span""wrap" | "nowrap" | "balance" | "pretty" | "stable" — Controls text-wrap CSS propertyTextTruncate — Side on which Text must be truncated, if true, text is truncated from the startboolean (default false) — Only match whole words (adds word boundaries to regex). When enabled, 'the' will not match 'there'.Optional leading props map; remaining args are children.
Highlight — Highlight given part of a string with mark
https://mantine.dev/core/highlight
Polymorphic: accepts :component / :render-root.
Props (docgen 9.5.0):
- **accentInsensitive** `boolean` _(default `true`)_ — Perform accent-insensitive matching. When enabled cafe will match cafe, café, cafè, etc.
- **caseInsensitive** `boolean` _(default `true`)_ — Perform case-insensitive matching.
- **children** `string` **(required)** — String in which to highlight substrings
- **color** `string | (string & {})` _(default `'yellow'`)_ — Default background color for all highlighted text. Key of `theme.colors` or any valid CSS color, passed to `Mark` component. Can be overridden per term when using HighlightTerm objects.
- **gradient** `MantineGradient` _(default `theme.defaultGradient`)_ — Gradient configuration, ignored when `variant` is not `gradient`
- **highlight** `string | string[] | HighlightTerm[]` **(required)** — Substring(s) to highlight in `children`. Can be: - string: single term - string[]: multiple terms with same color - HighlightTerm[]: multiple terms with custom colors per term - Matching is case-insensitive and accent-insensitive by default, use `caseInsensitive` and `accentInsensitive` props to control this behavior - Regex special characters are automatically escaped - When multiple substrings are provided, longer matches take precedence - Empty strings and whitespace-only strings are ignored
- **highlightStyles** `CSSProperties | ((theme: MantineTheme) => CSSProperties)` — Styles applied to `mark` elements
- **inherit** `boolean` _(default `false`)_ — Determines whether font properties should be inherited from the parent
- **inline** `boolean` _(default `false`)_ — Sets `line-height` to 1 for centering
- **lineClamp** `number` — Number of lines after which Text will be truncated
- **size** `MantineSize | (string & {})` _(default `'md'`)_ — Controls `font-size` and `line-height`
- **span** `boolean` — Shorthand for `component="span"`
- **textWrap** `"wrap" | "nowrap" | "balance" | "pretty" | "stable"` — Controls `text-wrap` CSS property
- **truncate** `TextTruncate` — Side on which Text must be truncated, if `true`, text is truncated from the start
- **wholeWord** `boolean` _(default `false`)_ — Only match whole words (adds word boundaries to regex). When enabled, 'the' will not match 'there'.
Optional leading props map; remaining args are children.HoverCard — Display popover section when target element is hovered
https://mantine.dev/core/hover-card
Props (docgen 9.5.0):
number (default 5) — Arrow offset in px'center' | 'side' — Arrow positionnumber (default 0) — Arrow border-radius in pxnumber (default 7) — Arrow size in pxReact.ReactNode — Popover.Target and Popover.Dropdown componentsstring[] — Events that trigger outside clicksnumber (default 150) — Delay in ms before the dropdown closes after mouse leaves the target or dropdown. Overridden by HoverCard.Group delay if used within a group.boolean (default true) — Determines whether dropdown should be closed on outside clicksboolean (default true) — Determines whether dropdown should be closed when Escape key is pressedboolean — Initial opened state for uncontrolled componentboolean — If set, popover dropdown will not be renderedFloatingStrategy (default 'absolute') — Changes floating ui position strategyboolean (default true) — If set, the dropdown is hidden when the element is hidden with styles or not visible on the screenstring — Id base to create accessibility connectionsboolean — Initial opened stateboolean — If set, the dropdown is not unmounted from the DOM when hidden. display: none styles are added instead."activity" | "display-none" (default 'activity') — Controls how the dropdown is hidden when keepMounted is set: 'activity' – hidden with React 19 Activity component, 'display-none' – hidden with display: none stylesPopoverMiddlewares (default { flip: true, shift: true, inline: false }) — Floating ui middlewares to configure position handlingnumber | FloatingAxesOffsets (default 8) — Offset of the dropdown element() => void — Called when the dropdown is closed() => void — Called when the popover is dismissed by clicking outside or by pressing escape() => void — Called when enter transition ends() => void — Called when exit transition ends() => void — Called when the dropdown is opened(position: FloatingPosition) => void — Called when dropdown position changesnumber (default 0) — Delay in ms before the dropdown opens after mouse enters the target. Overridden by HoverCard.Group delay if used within a group.OverlayProps & ElementProps<"div"> — Props passed down to Overlay componentBasePortalProps — Props to pass down to the Portal when withinPortal is trueFloatingPosition (default 'bottom') — Dropdown position relative to the target elementboolean (default true) — If true, the dropdown picks its side on open (flip runs once, preferring the position prop) and then never changes side — scrolling, resizing, and content size changes will not flip the dropdown. The side is recalculated fresh on the next open. Does not affect the shift middleware. Set to false to keep flip active and allow the dropdown to re-flip on every change.MantineRadius | number (default theme.defaultRadius) — Key of theme.radius or any valid CSS value to set border-radiusboolean (default false) — Determines whether focus should be automatically returned to control when dropdown closesMantineShadow — Key of theme.shadows or any other valid CSS box-shadow valueTransitionProps (default { duration: 150, transition: 'fade' }) — Props passed down to the Transition component. Use to configure duration and animation type.boolean (default false) — Determines whether focus should be trapped within dropdownPopoverWidth (default 'max-content') — Dropdown width, or 'target' to make dropdown width the same as target elementboolean (default false) — Determines whether component should have an arrowboolean (default false) — Determines whether the overlay should be displayed when the dropdown is openedboolean (default true) — Determines whether dropdown and target elements should have accessible rolesboolean (default true) — Determines whether dropdown should be rendered within the Portalstring | number (default 300) — Dropdown z-indexOptional leading props map; remaining args are children.
HoverCard — Display popover section when target element is hovered
https://mantine.dev/core/hover-card
Props (docgen 9.5.0):
- **arrowOffset** `number` _(default `5`)_ — Arrow offset in px
- **arrowPosition** `'center' | 'side'` — Arrow position
- **arrowRadius** `number` _(default `0`)_ — Arrow `border-radius` in px
- **arrowSize** `number` _(default `7`)_ — Arrow size in px
- **children** `React.ReactNode` — `Popover.Target` and `Popover.Dropdown` components
- **clickOutsideEvents** `string[]` — Events that trigger outside clicks
- **closeDelay** `number` _(default `150`)_ — Delay in ms before the dropdown closes after mouse leaves the target or dropdown. Overridden by HoverCard.Group delay if used within a group.
- **closeOnClickOutside** `boolean` _(default `true`)_ — Determines whether dropdown should be closed on outside clicks
- **closeOnEscape** `boolean` _(default `true`)_ — Determines whether dropdown should be closed when `Escape` key is pressed
- **defaultOpened** `boolean` — Initial opened state for uncontrolled component
- **disabled** `boolean` — If set, popover dropdown will not be rendered
- **floatingStrategy** `FloatingStrategy` _(default `'absolute'`)_ — Changes floating ui [position strategy](https://floating-ui.com/docs/usefloating#strategy)
- **hideDetached** `boolean` _(default `true`)_ — If set, the dropdown is hidden when the element is hidden with styles or not visible on the screen
- **id** `string` — Id base to create accessibility connections
- **initiallyOpened** `boolean` — Initial opened state
- **keepMounted** `boolean` — If set, the dropdown is not unmounted from the DOM when hidden. `display: none` styles are added instead.
- **keepMountedMode** `"activity" | "display-none"` _(default `'activity'`)_ — Controls how the dropdown is hidden when `keepMounted` is set: `'activity'` – hidden with React 19 `Activity` component, `'display-none'` – hidden with `display: none` styles
- **middlewares** `PopoverMiddlewares` _(default `{ flip: true, shift: true, inline: false }`)_ — Floating ui middlewares to configure position handling
- **offset** `number | FloatingAxesOffsets` _(default `8`)_ — Offset of the dropdown element
- **onClose** `() => void` — Called when the dropdown is closed
- **onDismiss** `() => void` — Called when the popover is dismissed by clicking outside or by pressing escape
- **onEnterTransitionEnd** `() => void` — Called when enter transition ends
- **onExitTransitionEnd** `() => void` — Called when exit transition ends
- **onOpen** `() => void` — Called when the dropdown is opened
- **onPositionChange** `(position: FloatingPosition) => void` — Called when dropdown position changes
- **openDelay** `number` _(default `0`)_ — Delay in ms before the dropdown opens after mouse enters the target. Overridden by HoverCard.Group delay if used within a group.
- **overlayProps** `OverlayProps & ElementProps<"div">` — Props passed down to `Overlay` component
- **portalProps** `BasePortalProps` — Props to pass down to the `Portal` when `withinPortal` is true
- **position** `FloatingPosition` _(default `'bottom'`)_ — Dropdown position relative to the target element
- **preventPositionChangeWhenVisible** `boolean` _(default `true`)_ — If `true`, the dropdown picks its side on open (flip runs once, preferring the `position` prop) and then never changes side — scrolling, resizing, and content size changes will not flip the dropdown. The side is recalculated fresh on the next open. Does not affect the `shift` middleware. Set to `false` to keep flip active and allow the dropdown to re-flip on every change.
- **radius** `MantineRadius | number` _(default `theme.defaultRadius`)_ — Key of `theme.radius` or any valid CSS value to set border-radius
- **returnFocus** `boolean` _(default `false`)_ — Determines whether focus should be automatically returned to control when dropdown closes
- **shadow** `MantineShadow` — Key of `theme.shadows` or any other valid CSS `box-shadow` value
- **transitionProps** `TransitionProps` _(default `{ duration: 150, transition: 'fade' }`)_ — Props passed down to the `Transition` component. Use to configure duration and animation type.
- **trapFocus** `boolean` _(default `false`)_ — Determines whether focus should be trapped within dropdown
- **width** `PopoverWidth` _(default `'max-content'`)_ — Dropdown width, or `'target'` to make dropdown width the same as target element
- **withArrow** `boolean` _(default `false`)_ — Determines whether component should have an arrow
- **withOverlay** `boolean` _(default `false`)_ — Determines whether the overlay should be displayed when the dropdown is opened
- **withRoles** `boolean` _(default `true`)_ — Determines whether dropdown and target elements should have accessible roles
- **withinPortal** `boolean` _(default `true`)_ — Determines whether dropdown should be rendered within the `Portal`
- **zIndex** `string | number` _(default `300`)_ — Dropdown `z-index`
Optional leading props map; remaining args are children.HoverCard.Dropdown — compound part of HoverCard (docgen omits it). Optional leading props map; remaining args are children.
HoverCard.Dropdown — compound part of HoverCard (docgen omits it). Optional leading props map; remaining args are children.
HoverCardGroup — Display popover section when target element is hovered (HoverCard family)
https://mantine.dev/core/hover-card
Props (docgen 9.5.0):
React.ReactNode (required) — HoverCard componentsnumber — Close delay in msnumber — Open delay in msOptional leading props map; remaining args are children.
HoverCardGroup — Display popover section when target element is hovered (HoverCard family) https://mantine.dev/core/hover-card Props (docgen 9.5.0): - **children** `React.ReactNode` **(required)** — `HoverCard` components - **closeDelay** `number` — Close delay in ms - **openDelay** `number` — Open delay in ms Optional leading props map; remaining args are children.
HoverCardTarget — Display popover section when target element is hovered (HoverCard family)
https://mantine.dev/core/hover-card
Props (docgen 9.5.0):
React.ReactNode (required) — Target elementstring (default undefined (event listeners passed directly to component)) — Name of the prop to wrap event listeners in. Use when the target component expects event listeners in a nested object. For example, some components expect componentProps={{ onMouseEnter, onMouseLeave }}.string (default 'dialog') — Popup accessible typestring — Key of the prop that should be used to access element refOptional leading props map; remaining args are children.
HoverCardTarget — Display popover section when target element is hovered (HoverCard family)
https://mantine.dev/core/hover-card
Props (docgen 9.5.0):
- **children** `React.ReactNode` **(required)** — Target element
- **eventPropsWrapperName** `string` _(default `undefined (event listeners passed directly to component)`)_ — Name of the prop to wrap event listeners in. Use when the target component expects event listeners in a nested object. For example, some components expect `componentProps={{ onMouseEnter, onMouseLeave }}`.
- **popupType** `string` _(default `'dialog'`)_ — Popup accessible type
- **refProp** `string` — Key of the prop that should be used to access element ref
Optional leading props map; remaining args are children.HueSlider — Slider component for selecting hue channel in color pickers (0 – 360 degrees)
https://mantine.dev/core/hue-slider
Props (docgen 9.5.0):
boolean (default true) — If set, slider thumb can be focused(value: number) => void — Called when value changes(value: number) => void — Called when user stops dragging the slider or uses keyboard to change value() => void — Called when user stops dragging the slider() => void — Called when user starts dragging the sliderMantineSize (default 'md') — Slider sizenumber (required) — Controlled component valueOptional leading props map; remaining args are children.
HueSlider — Slider component for selecting hue channel in color pickers (0 – 360 degrees) https://mantine.dev/core/hue-slider Props (docgen 9.5.0): - **focusable** `boolean` _(default `true`)_ — If set, slider thumb can be focused - **onChange** `(value: number) => void` — Called when value changes - **onChangeEnd** `(value: number) => void` — Called when user stops dragging the slider or uses keyboard to change value - **onScrubEnd** `() => void` — Called when user stops dragging the slider - **onScrubStart** `() => void` — Called when user starts dragging the slider - **size** `MantineSize` _(default `'md'`)_ — Slider size - **value** `number` **(required)** — Controlled component value Optional leading props map; remaining args are children.
Image — Image with optional fallback
https://mantine.dev/core/image
Polymorphic: accepts :component / :render-root.
Props (docgen 9.5.0):
string — Image url used as a fallback if the image cannot be loadedObjectFit (default 'cover') — Controls object-fit style(event: SyntheticEvent<HTMLImageElement, Event>) => void — Called when image fails to loadMantineRadius | number (default 0) — Key of theme.radius or any valid CSS value to set border-radiusany — Image urlOptional leading props map; remaining args are children.
Image — Image with optional fallback https://mantine.dev/core/image Polymorphic: accepts :component / :render-root. Props (docgen 9.5.0): - **fallbackSrc** `string` — Image url used as a fallback if the image cannot be loaded - **fit** `ObjectFit` _(default `'cover'`)_ — Controls `object-fit` style - **onError** `(event: SyntheticEvent<HTMLImageElement, Event>) => void` — Called when image fails to load - **radius** `MantineRadius | number` _(default `0`)_ — Key of `theme.radius` or any valid CSS value to set `border-radius` - **src** `any` — Image url Optional leading props map; remaining args are children.
Indicator — Display element at the corner of another element
https://mantine.dev/core/indicator
Props (docgen 9.5.0):
boolean — If set, adjusts text color based on background colorMantineColor (default theme.primaryColor) — Key of theme.colors or any valid CSS color valueboolean — Hides the indicator when setboolean (default false) — Changes container display from block to inline-block, use when wrapping elements with fixed widthReact.ReactNode — Label displayed inside the indicator, for example, notification countnumber — Maximum value to display. If label is a number greater than this value, it will be displayed as {maxValue}+number | { x: number; y: number; } (default 0) — Distance in pixels to offset the indicator from its default position, useful for elements with border-radius. Can be a number for uniform offset or an object with x and y properties for separate horizontal and vertical offsets"bottom-end" | "bottom-start" | "top-end" | "top-start" | "bottom-center" | "top-center" | "middle-center" | "middle-end" | "middle-start" (default 'top-end') — Indicator position relative to the target elementboolean (default false) — If set, the indicator has processing animationMantineRadius | number (default 100) — Key of theme.radius or any valid CSS value to set border-radiusboolean (default true) — Determines whether indicator with label 0 should be displayedstring | number (default 10) — Indicator width and heightboolean — Adds border to the root elementstring | number (default 200) — Indicator z-indexOptional leading props map; remaining args are children.
Indicator — Display element at the corner of another element
https://mantine.dev/core/indicator
Props (docgen 9.5.0):
- **autoContrast** `boolean` — If set, adjusts text color based on background color
- **color** `MantineColor` _(default `theme.primaryColor`)_ — Key of `theme.colors` or any valid CSS color value
- **disabled** `boolean` — Hides the indicator when set
- **inline** `boolean` _(default `false`)_ — Changes container display from block to inline-block, use when wrapping elements with fixed width
- **label** `React.ReactNode` — Label displayed inside the indicator, for example, notification count
- **maxValue** `number` — Maximum value to display. If label is a number greater than this value, it will be displayed as `{maxValue}+`
- **offset** `number | { x: number; y: number; }` _(default `0`)_ — Distance in pixels to offset the indicator from its default position, useful for elements with border-radius. Can be a number for uniform offset or an object with `x` and `y` properties for separate horizontal and vertical offsets
- **position** `"bottom-end" | "bottom-start" | "top-end" | "top-start" | "bottom-center" | "top-center" | "middle-center" | "middle-end" | "middle-start"` _(default `'top-end'`)_ — Indicator position relative to the target element
- **processing** `boolean` _(default `false`)_ — If set, the indicator has processing animation
- **radius** `MantineRadius | number` _(default `100`)_ — Key of `theme.radius` or any valid CSS value to set `border-radius`
- **showZero** `boolean` _(default `true`)_ — Determines whether indicator with label `0` should be displayed
- **size** `string | number` _(default `10`)_ — Indicator width and height
- **withBorder** `boolean` — Adds border to the root element
- **zIndex** `string | number` _(default `200`)_ — Indicator z-index
Optional leading props map; remaining args are children.Input — Base component to create custom inputs
https://mantine.dev/core/input
Polymorphic: accepts :component / :render-root.
Props (docgen 9.5.0):
boolean — Sets disabled attribute on the input elementReact.ReactNode — Determines whether the input should have error styles and aria-invalid attributestring — Input element idstring — HTML size attribute for the input element (number of visible characters)React.ReactNode — Content section displayed on the left side of the inputReact.CSSProperties["pointerEvents"] (default 'none') — Sets pointer-events styles on the leftSection element. Use 'all' when section contains interactive elements (buttons, links).React.ComponentProps<"div"> — Props passed down to the leftSection elementReact.CSSProperties["width"] — Left section width, used to set width of the section and input padding-left, by default equals to the input heightboolean (default false) — Displays loading indicator in the left or right section"left" | "right" (default 'right') — Position of the loading indicatorboolean (default false) — Adjusts padding and sizing calculations for multiline inputs (use with component="textarea"). Does not make the input multiline by itself.boolean (default false) — Determines whether the input should have cursor: pointer style. Use when input acts as a button-like trigger (e.g., component="button" for Select/DatePicker).MantineRadius | number (default theme.defaultRadius) — Key of theme.radius or any valid CSS value to set border-radius, numbers are converted to remboolean — Sets required attribute on the input elementReact.ReactNode — Content section displayed on the right side of the inputReact.CSSProperties["pointerEvents"] (default 'none') — Sets pointer-events styles on the rightSection element. Use 'all' when section contains interactive elements (buttons, links).React.ComponentProps<"div"> — Props passed down to the rightSection elementReact.CSSProperties["width"] — Right section width, used to set width of the section and input padding-right, by default equals to the input heightRef<HTMLDivElement> — Root element refMantineSize (default 'sm') — Controls input height, horizontal padding, and font-sizeReact.ReactNode — Determines whether the input should have success stylesboolean (default true) — Determines whether aria- and other accessibility attributes should be added to the input. Only disable when implementing custom accessibility handling.boolean (default true) — Determines whether the input should have red border and red text color when the error prop is setboolean (default true) — Determines whether the input should have green border when the success prop is setWrapperProps — Props passed down to the root element of the Input componentOptional leading props map; remaining args are children.
Input — Base component to create custom inputs https://mantine.dev/core/input Polymorphic: accepts :component / :render-root. Props (docgen 9.5.0): - **disabled** `boolean` — Sets `disabled` attribute on the `input` element - **error** `React.ReactNode` — Determines whether the input should have error styles and `aria-invalid` attribute - **id** `string` — Input element id - **inputSize** `string` — HTML `size` attribute for the input element (number of visible characters) - **leftSection** `React.ReactNode` — Content section displayed on the left side of the input - **leftSectionPointerEvents** `React.CSSProperties["pointerEvents"]` _(default `'none'`)_ — Sets `pointer-events` styles on the `leftSection` element. Use `'all'` when section contains interactive elements (buttons, links). - **leftSectionProps** `React.ComponentProps<"div">` — Props passed down to the `leftSection` element - **leftSectionWidth** `React.CSSProperties["width"]` — Left section width, used to set `width` of the section and input `padding-left`, by default equals to the input height - **loading** `boolean` _(default `false`)_ — Displays loading indicator in the left or right section - **loadingPosition** `"left" | "right"` _(default `'right'`)_ — Position of the loading indicator - **multiline** `boolean` _(default `false`)_ — Adjusts padding and sizing calculations for multiline inputs (use with `component="textarea"`). Does not make the input multiline by itself. - **pointer** `boolean` _(default `false`)_ — Determines whether the input should have `cursor: pointer` style. Use when input acts as a button-like trigger (e.g., `component="button"` for Select/DatePicker). - **radius** `MantineRadius | number` _(default `theme.defaultRadius`)_ — Key of `theme.radius` or any valid CSS value to set `border-radius`, numbers are converted to rem - **required** `boolean` — Sets `required` attribute on the `input` element - **rightSection** `React.ReactNode` — Content section displayed on the right side of the input - **rightSectionPointerEvents** `React.CSSProperties["pointerEvents"]` _(default `'none'`)_ — Sets `pointer-events` styles on the `rightSection` element. Use `'all'` when section contains interactive elements (buttons, links). - **rightSectionProps** `React.ComponentProps<"div">` — Props passed down to the `rightSection` element - **rightSectionWidth** `React.CSSProperties["width"]` — Right section width, used to set `width` of the section and input `padding-right`, by default equals to the input height - **rootRef** `Ref<HTMLDivElement>` — Root element ref - **size** `MantineSize` _(default `'sm'`)_ — Controls input `height`, horizontal `padding`, and `font-size` - **success** `React.ReactNode` — Determines whether the input should have success styles - **withAria** `boolean` _(default `true`)_ — Determines whether `aria-` and other accessibility attributes should be added to the input. Only disable when implementing custom accessibility handling. - **withErrorStyles** `boolean` _(default `true`)_ — Determines whether the input should have red border and red text color when the `error` prop is set - **withSuccessStyles** `boolean` _(default `true`)_ — Determines whether the input should have green border when the `success` prop is set - **wrapperProps** `WrapperProps` — Props passed down to the root element of the `Input` component Optional leading props map; remaining args are children.
InputBase
Props (docgen 9.5.0):
React.ReactNode — Contents of Input.Description component. If not set, description is not displayed.InputDescriptionProps — Props passed down to the Input.Description componentboolean — Sets disabled attribute on the input elementReact.ReactNode — Contents of Input.Error component. If not set, error is not displayed.InputErrorProps — Props passed down to the Input.Error component(children: ReactNode) => ReactNode (default React.Fragment) — Render function to wrap the input element. Useful for adding tooltips, popovers, or other wrappers around the input.string — HTML size attribute for the input element (number of visible characters)("input" | "label" | "description" | "error")[] (default ['label', 'description', 'input', 'error']) — Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.React.ReactNode — Contents of Input.Label component. If not set, label is not displayed.InputLabelProps — Props passed down to the Input.Label componentReact.ReactNode — Content section displayed on the left side of the inputReact.CSSProperties["pointerEvents"] (default 'none') — Sets pointer-events styles on the leftSection element. Use 'all' when section contains interactive elements (buttons, links).React.ComponentProps<"div"> — Props passed down to the leftSection elementReact.CSSProperties["width"] — Left section width, used to set width of the section and input padding-left, by default equals to the input heightboolean (default false) — Displays loading indicator in the left or right section"left" | "right" (default 'right') — Position of the loading indicatorboolean (default false) — If set, the input can have multiple lines, for example when component="textarea"boolean (default false) — Determines whether the input should have cursor: pointer style. Use when input acts as a button-like trigger (e.g., component="button" for Select/DatePicker).MantineRadius | number (default theme.defaultRadius) — Key of theme.radius or any valid CSS value to set border-radius, numbers are converted to remboolean (default false) — Adds required attribute to the input and a red asterisk on the right side of labelReact.ReactNode — Content section displayed on the right side of the inputReact.CSSProperties["pointerEvents"] (default 'none') — Sets pointer-events styles on the rightSection element. Use 'all' when section contains interactive elements (buttons, links).React.ComponentProps<"div"> — Props passed down to the rightSection elementReact.CSSProperties["width"] — Right section width, used to set width of the section and input padding-right, by default equals to the input heightMantineSize (default 'sm') — Controls input height, horizontal padding, and font-sizeReact.ReactNode — Contents of Input.Success component. If not set, success is not displayed.InputSuccessProps & DataAttributes — Props passed down to the Input.Success componentboolean (default true) — If set, aria- and other accessibility attributes are added to the inputboolean (default false) — If set, the required asterisk is displayed next to the label. Overrides required prop. Does not add required attribute to the input.boolean (default true) — Determines whether the input should have red border and red text color when the error prop is setboolean (default true) — Determines whether the input should have green border when the success prop is setReact.ComponentProps<"div"> — Props passed down to the root element (Input.Wrapper component)Optional leading props map; remaining args are children.
InputBase
Props (docgen 9.5.0):
- **description** `React.ReactNode` — Contents of `Input.Description` component. If not set, description is not displayed.
- **descriptionProps** `InputDescriptionProps` — Props passed down to the `Input.Description` component
- **disabled** `boolean` — Sets `disabled` attribute on the `input` element
- **error** `React.ReactNode` — Contents of `Input.Error` component. If not set, error is not displayed.
- **errorProps** `InputErrorProps` — Props passed down to the `Input.Error` component
- **inputContainer** `(children: ReactNode) => ReactNode` _(default `React.Fragment`)_ — Render function to wrap the input element. Useful for adding tooltips, popovers, or other wrappers around the input.
- **inputSize** `string` — HTML `size` attribute for the input element (number of visible characters)
- **inputWrapperOrder** `("input" | "label" | "description" | "error")[]` _(default `['label', 'description', 'input', 'error']`)_ — Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.
- **label** `React.ReactNode` — Contents of `Input.Label` component. If not set, label is not displayed.
- **labelProps** `InputLabelProps` — Props passed down to the `Input.Label` component
- **leftSection** `React.ReactNode` — Content section displayed on the left side of the input
- **leftSectionPointerEvents** `React.CSSProperties["pointerEvents"]` _(default `'none'`)_ — Sets `pointer-events` styles on the `leftSection` element. Use `'all'` when section contains interactive elements (buttons, links).
- **leftSectionProps** `React.ComponentProps<"div">` — Props passed down to the `leftSection` element
- **leftSectionWidth** `React.CSSProperties["width"]` — Left section width, used to set `width` of the section and input `padding-left`, by default equals to the input height
- **loading** `boolean` _(default `false`)_ — Displays loading indicator in the left or right section
- **loadingPosition** `"left" | "right"` _(default `'right'`)_ — Position of the loading indicator
- **multiline** `boolean` _(default `false`)_ — If set, the input can have multiple lines, for example when `component="textarea"`
- **pointer** `boolean` _(default `false`)_ — Determines whether the input should have `cursor: pointer` style. Use when input acts as a button-like trigger (e.g., `component="button"` for Select/DatePicker).
- **radius** `MantineRadius | number` _(default `theme.defaultRadius`)_ — Key of `theme.radius` or any valid CSS value to set `border-radius`, numbers are converted to rem
- **required** `boolean` _(default `false`)_ — Adds required attribute to the input and a red asterisk on the right side of label
- **rightSection** `React.ReactNode` — Content section displayed on the right side of the input
- **rightSectionPointerEvents** `React.CSSProperties["pointerEvents"]` _(default `'none'`)_ — Sets `pointer-events` styles on the `rightSection` element. Use `'all'` when section contains interactive elements (buttons, links).
- **rightSectionProps** `React.ComponentProps<"div">` — Props passed down to the `rightSection` element
- **rightSectionWidth** `React.CSSProperties["width"]` — Right section width, used to set `width` of the section and input `padding-right`, by default equals to the input height
- **size** `MantineSize` _(default `'sm'`)_ — Controls input `height`, horizontal `padding`, and `font-size`
- **success** `React.ReactNode` — Contents of `Input.Success` component. If not set, success is not displayed.
- **successProps** `InputSuccessProps & DataAttributes` — Props passed down to the `Input.Success` component
- **withAria** `boolean` _(default `true`)_ — If set, `aria-` and other accessibility attributes are added to the input
- **withAsterisk** `boolean` _(default `false`)_ — If set, the required asterisk is displayed next to the label. Overrides `required` prop. Does not add required attribute to the input.
- **withErrorStyles** `boolean` _(default `true`)_ — Determines whether the input should have red border and red text color when the `error` prop is set
- **withSuccessStyles** `boolean` _(default `true`)_ — Determines whether the input should have green border when the `success` prop is set
- **wrapperProps** `React.ComponentProps<"div">` — Props passed down to the root element (`Input.Wrapper` component)
Optional leading props map; remaining args are children.Input.ClearButton — compound part of Input (docgen omits it). Optional leading props map; remaining args are children.
Input.ClearButton — compound part of Input (docgen omits it). Optional leading props map; remaining args are children.
InputDescription — Base component to create custom inputs (Input family)
https://mantine.dev/core/input
Polymorphic: accepts :component / :render-root.
Props (docgen 9.5.0):
MantineFontSize (default 'sm') — Controls description font-sizeOptional leading props map; remaining args are children.
InputDescription — Base component to create custom inputs (Input family) https://mantine.dev/core/input Polymorphic: accepts :component / :render-root. Props (docgen 9.5.0): - **size** `MantineFontSize` _(default `'sm'`)_ — Controls description `font-size` Optional leading props map; remaining args are children.
InputError — Base component to create custom inputs (Input family)
https://mantine.dev/core/input
Polymorphic: accepts :component / :render-root.
Props (docgen 9.5.0):
MantineFontSize (default 'sm') — Controls error font-sizeOptional leading props map; remaining args are children.
InputError — Base component to create custom inputs (Input family) https://mantine.dev/core/input Polymorphic: accepts :component / :render-root. Props (docgen 9.5.0): - **size** `MantineFontSize` _(default `'sm'`)_ — Controls error `font-size` Optional leading props map; remaining args are children.
InputLabel — Base component to create custom inputs (Input family)
https://mantine.dev/core/input
Polymorphic: accepts :component / :render-root.
Props (docgen 9.5.0):
"div" | "label" (default 'label') — Root element of the labelboolean — If set, the required asterisk is displayed next to the labelMantineFontSize (default 'sm') — Controls label font-sizeOptional leading props map; remaining args are children.
InputLabel — Base component to create custom inputs (Input family) https://mantine.dev/core/input Polymorphic: accepts :component / :render-root. Props (docgen 9.5.0): - **labelElement** `"div" | "label"` _(default `'label'`)_ — Root element of the label - **required** `boolean` — If set, the required asterisk is displayed next to the label - **size** `MantineFontSize` _(default `'sm'`)_ — Controls label `font-size` Optional leading props map; remaining args are children.
Input.Placeholder — compound part of Input (docgen omits it). Optional leading props map; remaining args are children.
Input.Placeholder — compound part of Input (docgen omits it). Optional leading props map; remaining args are children.
Input.Success — compound part of Input (docgen omits it). Optional leading props map; remaining args are children.
Input.Success — compound part of Input (docgen omits it). Optional leading props map; remaining args are children.
InputWrapper — Base component to create custom inputs (Input family)
https://mantine.dev/core/input
Polymorphic: accepts :component / :render-root.
Props (docgen 9.5.0):
React.ReactNode — Contents of Input.Description component. If not set, description is not displayed.InputDescriptionProps — Props passed down to the Input.Description componentReact.ReactNode — Contents of Input.Error component. If not set, error is not displayed.InputErrorProps — Props passed down to the Input.Error componentstring — Static id used as base to generate aria- attributes, by default generates random id(children: ReactNode) => ReactNode (default React.Fragment) — Render function to wrap the input element. Useful for adding tooltips, popovers, or other wrappers around the input.("input" | "label" | "description" | "error")[] (default ['label', 'description', 'input', 'error']) — Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.React.ReactNode — Contents of Input.Label component. If not set, label is not displayed."div" | "label" (default 'label') — Root element for the label. Use 'div' when wrapper contains multiple input elements and you need to handle htmlFor manually.InputLabelProps — Props passed down to the Input.Label componentboolean (default false) — Adds required attribute to the input and a red asterisk on the right side of labelMantineFontSize — Controls size of Input.Label, Input.Description and Input.Error componentsReact.ReactNode — Contents of Input.Success component. If not set, success is not displayed.InputSuccessProps & DataAttributes — Props passed down to the Input.Success componentboolean (default false) — If set, the required asterisk is displayed next to the label. Overrides required prop. Does not add required attribute to the input.Optional leading props map; remaining args are children.
InputWrapper — Base component to create custom inputs (Input family)
https://mantine.dev/core/input
Polymorphic: accepts :component / :render-root.
Props (docgen 9.5.0):
- **description** `React.ReactNode` — Contents of `Input.Description` component. If not set, description is not displayed.
- **descriptionProps** `InputDescriptionProps` — Props passed down to the `Input.Description` component
- **error** `React.ReactNode` — Contents of `Input.Error` component. If not set, error is not displayed.
- **errorProps** `InputErrorProps` — Props passed down to the `Input.Error` component
- **id** `string` — Static id used as base to generate `aria-` attributes, by default generates random id
- **inputContainer** `(children: ReactNode) => ReactNode` _(default `React.Fragment`)_ — Render function to wrap the input element. Useful for adding tooltips, popovers, or other wrappers around the input.
- **inputWrapperOrder** `("input" | "label" | "description" | "error")[]` _(default `['label', 'description', 'input', 'error']`)_ — Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.
- **label** `React.ReactNode` — Contents of `Input.Label` component. If not set, label is not displayed.
- **labelElement** `"div" | "label"` _(default `'label'`)_ — Root element for the label. Use `'div'` when wrapper contains multiple input elements and you need to handle `htmlFor` manually.
- **labelProps** `InputLabelProps` — Props passed down to the `Input.Label` component
- **required** `boolean` _(default `false`)_ — Adds required attribute to the input and a red asterisk on the right side of label
- **size** `MantineFontSize` — Controls size of `Input.Label`, `Input.Description` and `Input.Error` components
- **success** `React.ReactNode` — Contents of `Input.Success` component. If not set, success is not displayed.
- **successProps** `InputSuccessProps & DataAttributes` — Props passed down to the `Input.Success` component
- **withAsterisk** `boolean` _(default `false`)_ — If set, the required asterisk is displayed next to the label. Overrides `required` prop. Does not add required attribute to the input.
Optional leading props map; remaining args are children.JsonInput — Capture json data from user
https://mantine.dev/core/json-input
Props (docgen 9.5.0):
boolean (default false) — If set, enables textarea height growing with its contentReact.ReactNode — Content rendered at the bottom of the input, inside the borderReact.ComponentProps<"div"> — Props passed down to the bottomSection elementstring — Uncontrolled component default valueReact.ReactNode — Contents of Input.Description component. If not set, description is not displayed.InputDescriptionProps — Props passed down to the Input.Description component((text: string, reviver?: ((this: any, key: string, value: any) => any)) => any) | undefined (default JSON.parse) — Function to deserialize string value for formatting and validation. Must throw an error if the string is invalid JSON.boolean — Sets disabled attribute on the input elementReact.ReactNode — Contents of Input.Error component. If not set, error is not displayed.InputErrorProps — Props passed down to the Input.Error componentboolean (default false) — Determines whether the value should be formatted on blurnumber (default 2) — Number of spaces to use as white space for formatting. Passed as the third argument to serialize function.(children: ReactNode) => ReactNode (default React.Fragment) — Render function to wrap the input element. Useful for adding tooltips, popovers, or other wrappers around the input.string — HTML size attribute for the input element (number of visible characters)("input" | "label" | "description" | "error")[] (default ['label', 'description', 'input', 'error']) — Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.React.ReactNode — Contents of Input.Label component. If not set, label is not displayed.InputLabelProps — Props passed down to the Input.Label componentReact.ReactNode — Content section displayed on the left side of the inputReact.CSSProperties["pointerEvents"] (default 'none') — Sets pointer-events styles on the leftSection element. Use 'all' when section contains interactive elements (buttons, links).React.ComponentProps<"div"> — Props passed down to the leftSection elementReact.CSSProperties["width"] — Left section width, used to set width of the section and input padding-left, by default equals to the input heightboolean (default false) — Displays loading indicator in the left or right section"left" | "right" (default 'right') — Position of the loading indicatornumber — Maximum rows for autosize textarea to grow, ignored if autosize prop is not setnumber — Minimum rows of autosize textarea, ignored if autosize prop is not set(value: string) => void — Called when value changesboolean (default false) — Determines whether the input should have cursor: pointer style. Use when input acts as a button-like trigger (e.g., component="button" for Select/DatePicker).MantineRadius | number (default theme.defaultRadius) — Key of theme.radius or any valid CSS value to set border-radius, numbers are converted to remboolean (default false) — Adds required attribute to the input and a red asterisk on the right side of labelResize (default 'none') — Controls resize CSS propertyReact.ReactNode — Content section displayed on the right side of the inputReact.CSSProperties["pointerEvents"] (default 'none') — Sets pointer-events styles on the rightSection element. Use 'all' when section contains interactive elements (buttons, links).React.ComponentProps<"div"> — Props passed down to the rightSection elementReact.CSSProperties["width"] — Right section width, used to set width of the section and input padding-right, by default equals to the input height{ (value: any, replacer?: ((this: any, key: string, value: any) => any), space?: string | number | undefined): string; (value: any, replacer?: (string | number)[] | null | undefined, space?: string | ... 1 more ... | undefined): string; } | undefined (default JSON.stringify) — Function to serialize value into a string for formatting. Called with (value, null, 2) where 2 is the indentation level.MantineSize (default 'sm') — Controls input height, horizontal padding, and font-sizeReact.ReactNode — Contents of Input.Success component. If not set, success is not displayed.InputSuccessProps & DataAttributes — Props passed down to the Input.Success componentReact.ReactNode — Error message shown when the input value is invalid JSON (checked on blur). If not provided, a generic error state is shown. Takes precedence over the error prop when validation fails.string — Controlled component valueboolean (default false) — If set, the required asterisk is displayed next to the label. Overrides required prop. Does not add required attribute to the input.boolean (default true) — Determines whether the input should have red border and red text color when the error prop is setboolean (default true) — Determines whether the input should have green border when the success prop is setWrapperProps — Props passed down to the root elementOptional leading props map; remaining args are children.
JsonInput — Capture json data from user
https://mantine.dev/core/json-input
Props (docgen 9.5.0):
- **autosize** `boolean` _(default `false`)_ — If set, enables textarea height growing with its content
- **bottomSection** `React.ReactNode` — Content rendered at the bottom of the input, inside the border
- **bottomSectionProps** `React.ComponentProps<"div">` — Props passed down to the `bottomSection` element
- **defaultValue** `string` — Uncontrolled component default value
- **description** `React.ReactNode` — Contents of `Input.Description` component. If not set, description is not displayed.
- **descriptionProps** `InputDescriptionProps` — Props passed down to the `Input.Description` component
- **deserialize** `((text: string, reviver?: ((this: any, key: string, value: any) => any)) => any) | undefined` _(default `JSON.parse`)_ — Function to deserialize string value for formatting and validation. Must throw an error if the string is invalid JSON.
- **disabled** `boolean` — Sets `disabled` attribute on the `input` element
- **error** `React.ReactNode` — Contents of `Input.Error` component. If not set, error is not displayed.
- **errorProps** `InputErrorProps` — Props passed down to the `Input.Error` component
- **formatOnBlur** `boolean` _(default `false`)_ — Determines whether the value should be formatted on blur
- **indentSpaces** `number` _(default `2`)_ — Number of spaces to use as white space for formatting. Passed as the third argument to `serialize` function.
- **inputContainer** `(children: ReactNode) => ReactNode` _(default `React.Fragment`)_ — Render function to wrap the input element. Useful for adding tooltips, popovers, or other wrappers around the input.
- **inputSize** `string` — HTML `size` attribute for the input element (number of visible characters)
- **inputWrapperOrder** `("input" | "label" | "description" | "error")[]` _(default `['label', 'description', 'input', 'error']`)_ — Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.
- **label** `React.ReactNode` — Contents of `Input.Label` component. If not set, label is not displayed.
- **labelProps** `InputLabelProps` — Props passed down to the `Input.Label` component
- **leftSection** `React.ReactNode` — Content section displayed on the left side of the input
- **leftSectionPointerEvents** `React.CSSProperties["pointerEvents"]` _(default `'none'`)_ — Sets `pointer-events` styles on the `leftSection` element. Use `'all'` when section contains interactive elements (buttons, links).
- **leftSectionProps** `React.ComponentProps<"div">` — Props passed down to the `leftSection` element
- **leftSectionWidth** `React.CSSProperties["width"]` — Left section width, used to set `width` of the section and input `padding-left`, by default equals to the input height
- **loading** `boolean` _(default `false`)_ — Displays loading indicator in the left or right section
- **loadingPosition** `"left" | "right"` _(default `'right'`)_ — Position of the loading indicator
- **maxRows** `number` — Maximum rows for autosize textarea to grow, ignored if `autosize` prop is not set
- **minRows** `number` — Minimum rows of autosize textarea, ignored if `autosize` prop is not set
- **onChange** `(value: string) => void` — Called when value changes
- **pointer** `boolean` _(default `false`)_ — Determines whether the input should have `cursor: pointer` style. Use when input acts as a button-like trigger (e.g., `component="button"` for Select/DatePicker).
- **radius** `MantineRadius | number` _(default `theme.defaultRadius`)_ — Key of `theme.radius` or any valid CSS value to set `border-radius`, numbers are converted to rem
- **required** `boolean` _(default `false`)_ — Adds required attribute to the input and a red asterisk on the right side of label
- **resize** `Resize` _(default `'none'`)_ — Controls `resize` CSS property
- **rightSection** `React.ReactNode` — Content section displayed on the right side of the input
- **rightSectionPointerEvents** `React.CSSProperties["pointerEvents"]` _(default `'none'`)_ — Sets `pointer-events` styles on the `rightSection` element. Use `'all'` when section contains interactive elements (buttons, links).
- **rightSectionProps** `React.ComponentProps<"div">` — Props passed down to the `rightSection` element
- **rightSectionWidth** `React.CSSProperties["width"]` — Right section width, used to set `width` of the section and input `padding-right`, by default equals to the input height
- **serialize** `{ (value: any, replacer?: ((this: any, key: string, value: any) => any), space?: string | number | undefined): string; (value: any, replacer?: (string | number)[] | null | undefined, space?: string | ... 1 more ... | undefined): string; } | undefined` _(default `JSON.stringify`)_ — Function to serialize value into a string for formatting. Called with (value, null, 2) where 2 is the indentation level.
- **size** `MantineSize` _(default `'sm'`)_ — Controls input `height`, horizontal `padding`, and `font-size`
- **success** `React.ReactNode` — Contents of `Input.Success` component. If not set, success is not displayed.
- **successProps** `InputSuccessProps & DataAttributes` — Props passed down to the `Input.Success` component
- **validationError** `React.ReactNode` — Error message shown when the input value is invalid JSON (checked on blur). If not provided, a generic error state is shown. Takes precedence over the `error` prop when validation fails.
- **value** `string` — Controlled component value
- **withAsterisk** `boolean` _(default `false`)_ — If set, the required asterisk is displayed next to the label. Overrides `required` prop. Does not add required attribute to the input.
- **withErrorStyles** `boolean` _(default `true`)_ — Determines whether the input should have red border and red text color when the `error` prop is set
- **withSuccessStyles** `boolean` _(default `true`)_ — Determines whether the input should have green border when the `success` prop is set
- **wrapperProps** `WrapperProps` — Props passed down to the root element
Optional leading props map; remaining args are children.Kbd — Display keyboard key
Props (docgen 9.5.0):
MantineSize | number (default 'sm') — Controls font-size and paddingOptional leading props map; remaining args are children.
Kbd — Display keyboard key https://mantine.dev/core/kbd Props (docgen 9.5.0): - **size** `MantineSize | number` _(default `'sm'`)_ — Controls `font-size` and `padding` Optional leading props map; remaining args are children.
List — Display ordered or unordered list
Props (docgen 9.5.0):
boolean (default false) — Vertically centers list items with their iconsReact.ReactNode — List.Item componentsReact.ReactNode — Icon to replace default list markers. Applied to all items unless overridden on individual List.Item componentsListStyleType — Controls CSS list-style-type property. Overrides the default list marker style based on list typeboolean — Reverses the order of list items (only works with type="ordered")MantineSize (default 'md') — Controls font-size and line-heightMantineSpacing (default 0) — Key of theme.spacing or any valid CSS value to set spacing between itemsnumber — Starting value for ordered list numbering (only works with type="ordered")"ordered" | "unordered" (default 'unordered') — List typeboolean (default false) — Adds extra horizontal padding to the list, useful for nested listsOptional leading props map; remaining args are children.
List — Display ordered or unordered list https://mantine.dev/core/list Props (docgen 9.5.0): - **center** `boolean` _(default `false`)_ — Vertically centers list items with their icons - **children** `React.ReactNode` — `List.Item` components - **icon** `React.ReactNode` — Icon to replace default list markers. Applied to all items unless overridden on individual List.Item components - **listStyleType** `ListStyleType` — Controls CSS `list-style-type` property. Overrides the default list marker style based on list type - **reversed** `boolean` — Reverses the order of list items (only works with type="ordered") - **size** `MantineSize` _(default `'md'`)_ — Controls `font-size` and `line-height` - **spacing** `MantineSpacing` _(default `0`)_ — Key of `theme.spacing` or any valid CSS value to set spacing between items - **start** `number` — Starting value for ordered list numbering (only works with type="ordered") - **type** `"ordered" | "unordered"` _(default `'unordered'`)_ — List type - **withPadding** `boolean` _(default `false`)_ — Adds extra horizontal padding to the list, useful for nested lists Optional leading props map; remaining args are children.
ListItem — Display ordered or unordered list (List family)
Props (docgen 9.5.0):
React.ReactNode — Item contentReact.ReactNode — Icon to replace item bulletOptional leading props map; remaining args are children.
ListItem — Display ordered or unordered list (List family) https://mantine.dev/core/list Props (docgen 9.5.0): - **children** `React.ReactNode` — Item content - **icon** `React.ReactNode` — Icon to replace item bullet Optional leading props map; remaining args are children.
Loader — Indicate loading state
https://mantine.dev/core/loader
Props (docgen 9.5.0):
React.ReactNode — Overrides default loader with given contentMantineColor (default theme.primaryColor) — Key of theme.colors or any valid CSS colorPartial<Record<(string & {}) | "bars" | "dots" | "oval", MantineLoaderComponent>> — Object of loaders components, can be customized via default props or inline.MantineSize | number (default 'md') — Controls width and height of the loader. Loader has predefined xs-xl values. Numbers are converted to rem.(string & {}) | "bars" | "dots" | "oval" (default 'oval') — Loader type, key of loaders propOptional leading props map; remaining args are children.
Loader — Indicate loading state
https://mantine.dev/core/loader
Props (docgen 9.5.0):
- **children** `React.ReactNode` — Overrides default loader with given content
- **color** `MantineColor` _(default `theme.primaryColor`)_ — Key of `theme.colors` or any valid CSS color
- **loaders** `Partial<Record<(string & {}) | "bars" | "dots" | "oval", MantineLoaderComponent>>` — Object of loaders components, can be customized via default props or inline.
- **size** `MantineSize | number` _(default `'md'`)_ — Controls `width` and `height` of the loader. `Loader` has predefined `xs`-`xl` values. Numbers are converted to rem.
- **type** `(string & {}) | "bars" | "dots" | "oval"` _(default `'oval'`)_ — Loader type, key of `loaders` prop
Optional leading props map; remaining args are children.LoadingOverlay — An overlay with centered loader
https://mantine.dev/core/loading-overlay
Props (docgen 9.5.0):
LoaderProps — Props passed down to Loader component() => void — Called when transition starts() => void — Called when transition ends() => void — Called when exit transition starts() => void — Called when exit transition endsOverlayProps — Props passed down to Overlay component. Use to customizing blur, opacity, color and other properties.TransitionProps — Props passed down to Transition component. Set duration to create custom transition or override default transition.boolean (default false) — Controls overlay visibility. Typically used with state (useState, useDisclosure).string | number (default 400) — Controls z-index of both the overlay and loader. The loader receives z-index + 1.Optional leading props map; remaining args are children.
LoadingOverlay — An overlay with centered loader https://mantine.dev/core/loading-overlay Props (docgen 9.5.0): - **loaderProps** `LoaderProps` — Props passed down to `Loader` component - **onEnter** `() => void` — Called when transition starts - **onEntered** `() => void` — Called when transition ends - **onExit** `() => void` — Called when exit transition starts - **onExited** `() => void` — Called when exit transition ends - **overlayProps** `OverlayProps` — Props passed down to `Overlay` component. Use to customizing blur, opacity, color and other properties. - **transitionProps** `TransitionProps` — Props passed down to `Transition` component. Set `duration` to create custom transition or override default transition. - **visible** `boolean` _(default `false`)_ — Controls overlay visibility. Typically used with state (useState, useDisclosure). - **zIndex** `string | number` _(default `400`)_ — Controls `z-index` of both the overlay and loader. The loader receives `z-index + 1`. Optional leading props map; remaining args are children.
MantineProvider — application root; supplies theme, color scheme and CSS variables. Nothing Mantine renders without it. Optional leading props map; remaining args are children.
MantineProvider — application root; supplies theme, color scheme and CSS variables. Nothing Mantine renders without it. Optional leading props map; remaining args are children.
Mark — Highlight part of the text
Props (docgen 9.5.0):
MantineColor (default yellow) — Key of theme.colors or any valid CSS colorOptional leading props map; remaining args are children.
Mark — Highlight part of the text https://mantine.dev/core/mark Props (docgen 9.5.0): - **color** `MantineColor` _(default `yellow`)_ — Key of `theme.colors` or any valid CSS color Optional leading props map; remaining args are children.
Marquee — Create continuous scrolling animation for content
https://mantine.dev/core/marquee
Props (docgen 9.5.0):
React.ReactNode (required) — Content to scrollnumber (default 40000) — Animation duration in msstring (default 'var(--mantine-color-body)') — Color of the fade gradient,string (default '5%') — Size of the fade gradient,boolean (default true) — Whether to show gradient fade on edges,MantineSpacing (default 'md') — Gap between repeated children, key of theme.spacing or any valid CSS value"horizontal" | "vertical" (default 'horizontal') — Scroll orientationboolean (default false) — Pauses animation on hovernumber (default 4) — Number of times children are repeated inline for seamless scrollingboolean (default false) — Reverses animation directionOptional leading props map; remaining args are children.
Marquee — Create continuous scrolling animation for content https://mantine.dev/core/marquee Props (docgen 9.5.0): - **children** `React.ReactNode` **(required)** — Content to scroll - **duration** `number` _(default `40000`)_ — Animation duration in ms - **fadeEdgeColor** `string` _(default `'var(--mantine-color-body)'`)_ — Color of the fade gradient, - **fadeEdgeSize** `string` _(default `'5%'`)_ — Size of the fade gradient, - **fadeEdges** `boolean` _(default `true`)_ — Whether to show gradient fade on edges, - **gap** `MantineSpacing` _(default `'md'`)_ — Gap between repeated children, key of `theme.spacing` or any valid CSS value - **orientation** `"horizontal" | "vertical"` _(default `'horizontal'`)_ — Scroll orientation - **pauseOnHover** `boolean` _(default `false`)_ — Pauses animation on hover - **repeat** `number` _(default `4`)_ — Number of times children are repeated inline for seamless scrolling - **reverse** `boolean` _(default `false`)_ — Reverses animation direction Optional leading props map; remaining args are children.
MaskInput — Input with mask pattern for formatted text entry
https://mantine.dev/core/mask-input
Props (docgen 9.5.0):
boolean — Show mask pattern even when field is empty and unfocusedboolean — Clear value on blur when mask is incomplete, false by default(states: { previousState: { value: string; selection: { start: number; end: number; } | null; }; currentState: { value: string; selection: { start: number; end: number; } | null; }; nextState: { value: string; selection: { ...; } | null; }; }) => { ...; } — Escape hatch for advanced cursor/value manipulationReact.ReactNode — Contents of Input.Description component. If not set, description is not displayed.InputDescriptionProps — Props passed down to the Input.Description componentboolean — Sets disabled attribute on the input elementReact.ReactNode — Contents of Input.Error component. If not set, error is not displayed.InputErrorProps — Props passed down to the Input.Error component(children: ReactNode) => ReactNode (default React.Fragment) — Render function to wrap the input element. Useful for adding tooltips, popovers, or other wrappers around the input.string — HTML size attribute for the input element (number of visible characters)("input" | "label" | "description" | "error")[] (default ['label', 'description', 'input', 'error']) — Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.React.ReactNode — Contents of Input.Label component. If not set, label is not displayed.InputLabelProps — Props passed down to the Input.Label componentReact.ReactNode — Content section displayed on the left side of the inputReact.CSSProperties["pointerEvents"] (default 'none') — Sets pointer-events styles on the leftSection element. Use 'all' when section contains interactive elements (buttons, links).React.ComponentProps<"div"> — Props passed down to the leftSection elementReact.CSSProperties["width"] — Left section width, used to set width of the section and input padding-left, by default equals to the input heightboolean (default false) — Displays loading indicator in the left or right section"left" | "right" (default 'right') — Position of the loading indicatorstring | (string | RegExp)[] (required) — Mask pattern string or array of string literals and RegExp objects((value: string) => Partial<Pick<MaskInputProps, "mask" | "tokens" | "separate" | "slotChar">>) | undefined — Called before masking on each keystroke, can return overrides for mask options(rawValue: string, maskedValue: string) => void — Called on every change with raw and masked values(maskedValue: string, rawValue: string) => void — Called when all required mask slots are filledboolean (default false) — Determines whether the input should have cursor: pointer style. Use when input acts as a button-like trigger (e.g., component="button" for Select/DatePicker).MantineRadius | number (default theme.defaultRadius) — Key of theme.radius or any valid CSS value to set border-radius, numbers are converted to remboolean (default false) — Adds required attribute to the input and a red asterisk on the right side of labelRefObject<(() => void) | null> — Assigns a function that clears the input value to the given refReact.ReactNode — Content section displayed on the right side of the inputReact.CSSProperties["pointerEvents"] (default 'none') — Sets pointer-events styles on the rightSection element. Use 'all' when section contains interactive elements (buttons, links).React.ComponentProps<"div"> — Props passed down to the rightSection elementReact.CSSProperties["width"] — Right section width, used to set width of the section and input padding-right, by default equals to the input heightboolean — When true, raw and display values are decoupledboolean — Show mask placeholder on focus, true by defaultMantineSize (default 'sm') — Controls input height, horizontal padding, and font-sizestring | null — Character displayed in unfilled slots, "_" by defaultReact.ReactNode — Contents of Input.Success component. If not set, success is not displayed.InputSuccessProps & DataAttributes — Props passed down to the Input.Success componentRecord<string, RegExp> — Override or extend the default token map(char: string) => string — Transform each character before validation and insertionboolean (default false) — If set, the required asterisk is displayed next to the label. Overrides required prop. Does not add required attribute to the input.boolean (default true) — Determines whether the input should have red border and red text color when the error prop is setboolean (default true) — Determines whether the input should have green border when the success prop is setWrapperProps — Props passed down to the root elementOptional leading props map; remaining args are children.
MaskInput — Input with mask pattern for formatted text entry
https://mantine.dev/core/mask-input
Props (docgen 9.5.0):
- **alwaysShowMask** `boolean` — Show mask pattern even when field is empty and unfocused
- **autoClear** `boolean` — Clear value on blur when mask is incomplete, `false` by default
- **beforeMaskedStateChange** `(states: { previousState: { value: string; selection: { start: number; end: number; } | null; }; currentState: { value: string; selection: { start: number; end: number; } | null; }; nextState: { value: string; selection: { ...; } | null; }; }) => { ...; }` — Escape hatch for advanced cursor/value manipulation
- **description** `React.ReactNode` — Contents of `Input.Description` component. If not set, description is not displayed.
- **descriptionProps** `InputDescriptionProps` — Props passed down to the `Input.Description` component
- **disabled** `boolean` — Sets `disabled` attribute on the `input` element
- **error** `React.ReactNode` — Contents of `Input.Error` component. If not set, error is not displayed.
- **errorProps** `InputErrorProps` — Props passed down to the `Input.Error` component
- **inputContainer** `(children: ReactNode) => ReactNode` _(default `React.Fragment`)_ — Render function to wrap the input element. Useful for adding tooltips, popovers, or other wrappers around the input.
- **inputSize** `string` — HTML `size` attribute for the input element (number of visible characters)
- **inputWrapperOrder** `("input" | "label" | "description" | "error")[]` _(default `['label', 'description', 'input', 'error']`)_ — Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.
- **label** `React.ReactNode` — Contents of `Input.Label` component. If not set, label is not displayed.
- **labelProps** `InputLabelProps` — Props passed down to the `Input.Label` component
- **leftSection** `React.ReactNode` — Content section displayed on the left side of the input
- **leftSectionPointerEvents** `React.CSSProperties["pointerEvents"]` _(default `'none'`)_ — Sets `pointer-events` styles on the `leftSection` element. Use `'all'` when section contains interactive elements (buttons, links).
- **leftSectionProps** `React.ComponentProps<"div">` — Props passed down to the `leftSection` element
- **leftSectionWidth** `React.CSSProperties["width"]` — Left section width, used to set `width` of the section and input `padding-left`, by default equals to the input height
- **loading** `boolean` _(default `false`)_ — Displays loading indicator in the left or right section
- **loadingPosition** `"left" | "right"` _(default `'right'`)_ — Position of the loading indicator
- **mask** `string | (string | RegExp)[]` **(required)** — Mask pattern string or array of string literals and RegExp objects
- **modify** `((value: string) => Partial<Pick<MaskInputProps, "mask" | "tokens" | "separate" | "slotChar">>) | undefined` — Called before masking on each keystroke, can return overrides for mask options
- **onChangeRaw** `(rawValue: string, maskedValue: string) => void` — Called on every change with raw and masked values
- **onComplete** `(maskedValue: string, rawValue: string) => void` — Called when all required mask slots are filled
- **pointer** `boolean` _(default `false`)_ — Determines whether the input should have `cursor: pointer` style. Use when input acts as a button-like trigger (e.g., `component="button"` for Select/DatePicker).
- **radius** `MantineRadius | number` _(default `theme.defaultRadius`)_ — Key of `theme.radius` or any valid CSS value to set `border-radius`, numbers are converted to rem
- **required** `boolean` _(default `false`)_ — Adds required attribute to the input and a red asterisk on the right side of label
- **resetRef** `RefObject<(() => void) | null>` — Assigns a function that clears the input value to the given ref
- **rightSection** `React.ReactNode` — Content section displayed on the right side of the input
- **rightSectionPointerEvents** `React.CSSProperties["pointerEvents"]` _(default `'none'`)_ — Sets `pointer-events` styles on the `rightSection` element. Use `'all'` when section contains interactive elements (buttons, links).
- **rightSectionProps** `React.ComponentProps<"div">` — Props passed down to the `rightSection` element
- **rightSectionWidth** `React.CSSProperties["width"]` — Right section width, used to set `width` of the section and input `padding-right`, by default equals to the input height
- **separate** `boolean` — When true, raw and display values are decoupled
- **showMaskOnFocus** `boolean` — Show mask placeholder on focus, `true` by default
- **size** `MantineSize` _(default `'sm'`)_ — Controls input `height`, horizontal `padding`, and `font-size`
- **slotChar** `string | null` — Character displayed in unfilled slots, `"_"` by default
- **success** `React.ReactNode` — Contents of `Input.Success` component. If not set, success is not displayed.
- **successProps** `InputSuccessProps & DataAttributes` — Props passed down to the `Input.Success` component
- **tokens** `Record<string, RegExp>` — Override or extend the default token map
- **transform** `(char: string) => string` — Transform each character before validation and insertion
- **withAsterisk** `boolean` _(default `false`)_ — If set, the required asterisk is displayed next to the label. Overrides `required` prop. Does not add required attribute to the input.
- **withErrorStyles** `boolean` _(default `true`)_ — Determines whether the input should have red border and red text color when the `error` prop is set
- **withSuccessStyles** `boolean` _(default `true`)_ — Determines whether the input should have green border when the `success` prop is set
- **wrapperProps** `WrapperProps` — Props passed down to the root element
Optional leading props map; remaining args are children.Menu — Combine a list of secondary actions into single interactive area
Props (docgen 9.5.0):
"none" | "all" | "with-indicators" (default 'with-indicators') — Controls how indicator slot space is reserved on menu items for label alignment. 'all' reserves space on every Menu.Item, 'with-indicators' reserves space only on Menu.CheckboxItem and Menu.RadioItem, 'none' reserves space only on items that currently display an indicator.number (default 5) — Arrow offset in px'center' | 'side' — Arrow positionnumber (default 0) — Arrow border-radius in pxnumber (default 7) — Arrow size in pxReact.ReactNode — Custom icon rendered as the indicator of checked Menu.CheckboxItem and selected Menu.RadioItem. Can be overridden per item with the checkIcon prop.React.ReactNode — Menu childrenstring[] (default ['mousedown', 'touchstart', 'keydown']) — Events that trigger outside click detection. Includes mousedown for desktop clicks, touchstart for mobile, and keydown for Escape key handlingnumber — Close delay in ms, applicable only to trigger="hover" variantboolean — If set, the dropdown is closed on outside clicksboolean (default true) — If set, the dropdown is closed when the Escape key is pressedboolean — If set, the Menu is closed when one of the items is clicked. Can be overridden per item with closeMenuOnClick propboolean — Uncontrolled menu initial opened stateboolean — If set, popover dropdown will not be renderedFloatingStrategy (default 'absolute') — Changes floating ui position strategyboolean (default true) — If set, the dropdown is hidden when the element is hidden with styles or not visible on the screenstring — Id base to create accessibility connectionsboolean — If set, the dropdown is not unmounted from the DOM when hidden. display: none styles are added instead."activity" | "display-none" (default 'activity') — Controls how the dropdown is hidden when keepMounted is set: 'activity' – hidden with React 19 Activity component, 'display-none' – hidden with display: none stylesboolean — If set, arrow key presses wrap around from last item to first and vice versa0 | -1 (default -1) — Set the tabindex on all menu items. Use 0 to allow Tab key navigation through menu items (required for navigation menus following WAI-ARIA disclosure pattern).PopoverMiddlewares (default { flip: true, shift: true, inline: false }) — Floating ui middlewares to configure position handlingnumber | FloatingAxesOffsets (default 8) — Offset of the dropdown element(opened: boolean) => void — Called when menu opened state changes() => void — Called when Menu is closed() => void — Called when the popover is dismissed by clicking outside or by pressing escape() => void — Called when enter transition ends() => void — Called when exit transition ends() => void — Called when Menu is opened(position: FloatingPosition) => void — Called when dropdown position changesnumber — Open delay in ms, applicable only to trigger="hover" variantboolean — Controlled menu opened stateOverlayProps & ElementProps<"div"> — Props passed down to Overlay componentBasePortalProps — Props to pass down to the Portal when withinPortal is trueFloatingPosition (default 'bottom') — Dropdown position relative to the target elementboolean (default true) — If true, the dropdown picks its side on open (flip runs once, preferring the position prop) and then never changes side — scrolling, resizing, and content size changes will not flip the dropdown. The side is recalculated fresh on the next open. Does not affect the shift middleware. Set to false to keep flip active and allow the dropdown to re-flip on every change.MantineRadius | number (default theme.defaultRadius) — Key of theme.radius or any valid CSS value to set border-radiusboolean (default true) — Determines whether focus should be automatically returned to control when dropdown closesMantineShadow — Key of theme.shadows or any other valid CSS box-shadow valueTransitionProps (default { duration: 150, transition: 'fade' }) — Props passed down to the Transition component. Use to configure duration and animation type.boolean — If set, focus is trapped within the menu dropdown when it is opened"hover" | "click" | "click-hover" — Event trigger to open menu. Note: 'hover' is not keyboard accessible; prefer 'click-hover' for accessible hover menusPopoverWidth (default 'max-content') — Dropdown width, or 'target' to make dropdown width the same as target elementboolean (default false) — Determines whether component should have an arrowboolean (default true) — Adds a hidden focusable element at the start of the dropdown to prevent unexpected focus jumps when opening with keyboard. Set to false if you need custom focus management.boolean (default false) — Determines whether the overlay should be displayed when the dropdown is openedboolean (default true) — Determines whether dropdown should be rendered within the Portalstring | number (default 300) — Dropdown z-indexOptional leading props map; remaining args are children.
Menu — Combine a list of secondary actions into single interactive area
https://mantine.dev/core/menu
Props (docgen 9.5.0):
- **alignItemsLabels** `"none" | "all" | "with-indicators"` _(default `'with-indicators'`)_ — Controls how indicator slot space is reserved on menu items for label alignment. `'all'` reserves space on every `Menu.Item`, `'with-indicators'` reserves space only on `Menu.CheckboxItem` and `Menu.RadioItem`, `'none'` reserves space only on items that currently display an indicator.
- **arrowOffset** `number` _(default `5`)_ — Arrow offset in px
- **arrowPosition** `'center' | 'side'` — Arrow position
- **arrowRadius** `number` _(default `0`)_ — Arrow `border-radius` in px
- **arrowSize** `number` _(default `7`)_ — Arrow size in px
- **checkIcon** `React.ReactNode` — Custom icon rendered as the indicator of checked `Menu.CheckboxItem` and selected `Menu.RadioItem`. Can be overridden per item with the `checkIcon` prop.
- **children** `React.ReactNode` — Menu children
- **clickOutsideEvents** `string[]` _(default `['mousedown', 'touchstart', 'keydown']`)_ — Events that trigger outside click detection. Includes mousedown for desktop clicks, touchstart for mobile, and keydown for Escape key handling
- **closeDelay** `number` — Close delay in ms, applicable only to `trigger="hover"` variant
- **closeOnClickOutside** `boolean` — If set, the dropdown is closed on outside clicks
- **closeOnEscape** `boolean` _(default `true`)_ — If set, the dropdown is closed when the `Escape` key is pressed
- **closeOnItemClick** `boolean` — If set, the Menu is closed when one of the items is clicked. Can be overridden per item with `closeMenuOnClick` prop
- **defaultOpened** `boolean` — Uncontrolled menu initial opened state
- **disabled** `boolean` — If set, popover dropdown will not be rendered
- **floatingStrategy** `FloatingStrategy` _(default `'absolute'`)_ — Changes floating ui [position strategy](https://floating-ui.com/docs/usefloating#strategy)
- **hideDetached** `boolean` _(default `true`)_ — If set, the dropdown is hidden when the element is hidden with styles or not visible on the screen
- **id** `string` — Id base to create accessibility connections
- **keepMounted** `boolean` — If set, the dropdown is not unmounted from the DOM when hidden. `display: none` styles are added instead.
- **keepMountedMode** `"activity" | "display-none"` _(default `'activity'`)_ — Controls how the dropdown is hidden when `keepMounted` is set: `'activity'` – hidden with React 19 `Activity` component, `'display-none'` – hidden with `display: none` styles
- **loop** `boolean` — If set, arrow key presses wrap around from last item to first and vice versa
- **menuItemTabIndex** `0 | -1` _(default `-1`)_ — Set the `tabindex` on all menu items. Use `0` to allow Tab key navigation through menu items (required for navigation menus following WAI-ARIA disclosure pattern).
- **middlewares** `PopoverMiddlewares` _(default `{ flip: true, shift: true, inline: false }`)_ — Floating ui middlewares to configure position handling
- **offset** `number | FloatingAxesOffsets` _(default `8`)_ — Offset of the dropdown element
- **onChange** `(opened: boolean) => void` — Called when menu opened state changes
- **onClose** `() => void` — Called when Menu is closed
- **onDismiss** `() => void` — Called when the popover is dismissed by clicking outside or by pressing escape
- **onEnterTransitionEnd** `() => void` — Called when enter transition ends
- **onExitTransitionEnd** `() => void` — Called when exit transition ends
- **onOpen** `() => void` — Called when Menu is opened
- **onPositionChange** `(position: FloatingPosition) => void` — Called when dropdown position changes
- **openDelay** `number` — Open delay in ms, applicable only to `trigger="hover"` variant
- **opened** `boolean` — Controlled menu opened state
- **overlayProps** `OverlayProps & ElementProps<"div">` — Props passed down to `Overlay` component
- **portalProps** `BasePortalProps` — Props to pass down to the `Portal` when `withinPortal` is true
- **position** `FloatingPosition` _(default `'bottom'`)_ — Dropdown position relative to the target element
- **preventPositionChangeWhenVisible** `boolean` _(default `true`)_ — If `true`, the dropdown picks its side on open (flip runs once, preferring the `position` prop) and then never changes side — scrolling, resizing, and content size changes will not flip the dropdown. The side is recalculated fresh on the next open. Does not affect the `shift` middleware. Set to `false` to keep flip active and allow the dropdown to re-flip on every change.
- **radius** `MantineRadius | number` _(default `theme.defaultRadius`)_ — Key of `theme.radius` or any valid CSS value to set border-radius
- **returnFocus** `boolean` _(default ``true``)_ — Determines whether focus should be automatically returned to control when dropdown closes
- **shadow** `MantineShadow` — Key of `theme.shadows` or any other valid CSS `box-shadow` value
- **transitionProps** `TransitionProps` _(default `{ duration: 150, transition: 'fade' }`)_ — Props passed down to the `Transition` component. Use to configure duration and animation type.
- **trapFocus** `boolean` — If set, focus is trapped within the menu dropdown when it is opened
- **trigger** `"hover" | "click" | "click-hover"` — Event trigger to open menu. Note: 'hover' is not keyboard accessible; prefer 'click-hover' for accessible hover menus
- **width** `PopoverWidth` _(default `'max-content'`)_ — Dropdown width, or `'target'` to make dropdown width the same as target element
- **withArrow** `boolean` _(default `false`)_ — Determines whether component should have an arrow
- **withInitialFocusPlaceholder** `boolean` _(default `true`)_ — Adds a hidden focusable element at the start of the dropdown to prevent unexpected focus jumps when opening with keyboard. Set to false if you need custom focus management.
- **withOverlay** `boolean` _(default `false`)_ — Determines whether the overlay should be displayed when the dropdown is opened
- **withinPortal** `boolean` _(default `true`)_ — Determines whether dropdown should be rendered within the `Portal`
- **zIndex** `string | number` _(default `300`)_ — Dropdown `z-index`
Optional leading props map; remaining args are children.MenuCheckboxGroup — Combine a list of secondary actions into single interactive area (Menu family)
Props (docgen 9.5.0):
React.ReactNode — Menu.CheckboxItem components and other elementsstring[] — Uncontrolled default selected values(value: string[]) => void — Called with the new array of selected values when a Menu.CheckboxItem is toggledstring[] — Controlled selected valuesOptional leading props map; remaining args are children.
MenuCheckboxGroup — Combine a list of secondary actions into single interactive area (Menu family) https://mantine.dev/core/menu Props (docgen 9.5.0): - **children** `React.ReactNode` — `Menu.CheckboxItem` components and other elements - **defaultValue** `string[]` — Uncontrolled default selected values - **onChange** `(value: string[]) => void` — Called with the new array of selected values when a `Menu.CheckboxItem` is toggled - **value** `string[]` — Controlled selected values Optional leading props map; remaining args are children.
MenuCheckboxItem — Combine a list of secondary actions into single interactive area (Menu family)
Props (docgen 9.5.0):
React.ReactNode — Replaces the default check icon rendered in the indicator slot when the item is checked. Overrides checkIcon set on Menu.boolean — Controlled checked state. Overrides selection derived from the parent Menu.CheckboxGroup.React.ReactNode — Item labelboolean — If set, closes the menu when this item is clicked. By default, checkbox items do not close the menu.MantineColor — Key of theme.colors or any valid CSS colorboolean — Uncontrolled default checked state. Ignored when the item is used inside Menu.CheckboxGroup.boolean — Sets disabled attribute, applies disabled styles(checked: boolean) => void — Called when checked state changes. Overrides onChange of the parent Menu.CheckboxGroup.React.ReactNode — Section displayed at the end of the labelstring — Value of the checkbox item. When used inside Menu.CheckboxGroup, determines whether the item is checked and what value is added/removed on toggle.Optional leading props map; remaining args are children.
MenuCheckboxItem — Combine a list of secondary actions into single interactive area (Menu family) https://mantine.dev/core/menu Props (docgen 9.5.0): - **checkIcon** `React.ReactNode` — Replaces the default check icon rendered in the indicator slot when the item is checked. Overrides `checkIcon` set on `Menu`. - **checked** `boolean` — Controlled checked state. Overrides selection derived from the parent `Menu.CheckboxGroup`. - **children** `React.ReactNode` — Item label - **closeMenuOnClick** `boolean` — If set, closes the menu when this item is clicked. By default, checkbox items do not close the menu. - **color** `MantineColor` — Key of `theme.colors` or any valid CSS color - **defaultChecked** `boolean` — Uncontrolled default checked state. Ignored when the item is used inside `Menu.CheckboxGroup`. - **disabled** `boolean` — Sets disabled attribute, applies disabled styles - **onChange** `(checked: boolean) => void` — Called when checked state changes. Overrides `onChange` of the parent `Menu.CheckboxGroup`. - **rightSection** `React.ReactNode` — Section displayed at the end of the label - **value** `string` — Value of the checkbox item. When used inside `Menu.CheckboxGroup`, determines whether the item is checked and what value is added/removed on toggle. Optional leading props map; remaining args are children.
MenuContextMenu — Combine a list of secondary actions into single interactive area (Menu family)
Props (docgen 9.5.0):
React.ReactNode (required) — Element that opens the menu when right-clicked. Menu dropdown is positioned at the cursor. The trigger element must not call event.preventDefault() in its own onContextMenu handler, otherwise the native context menu is not suppressed.boolean — If set, the right-click trigger is disabled and the browser's default context menu is shownnumber — Delay in ms before a touch long-press opens the dropdown on touch devices, 500 by defaultOptional leading props map; remaining args are children.
MenuContextMenu — Combine a list of secondary actions into single interactive area (Menu family) https://mantine.dev/core/menu Props (docgen 9.5.0): - **children** `React.ReactNode` **(required)** — Element that opens the menu when right-clicked. Menu dropdown is positioned at the cursor. The trigger element must not call `event.preventDefault()` in its own `onContextMenu` handler, otherwise the native context menu is not suppressed. - **disabled** `boolean` — If set, the right-click trigger is disabled and the browser's default context menu is shown - **longPressDelay** `number` — Delay in ms before a touch long-press opens the dropdown on touch devices, `500` by default Optional leading props map; remaining args are children.
Menu.Divider — compound part of Menu (docgen omits it). Optional leading props map; remaining args are children.
Menu.Divider — compound part of Menu (docgen omits it). Optional leading props map; remaining args are children.
Menu.Dropdown — compound part of Menu (docgen omits it). Optional leading props map; remaining args are children.
Menu.Dropdown — compound part of Menu (docgen omits it). Optional leading props map; remaining args are children.
MenuItem — Combine a list of secondary actions into single interactive area (Menu family)
Props (docgen 9.5.0):
React.ReactNode — Item labelboolean — Controls whether the menu closes when this item is clicked. When undefined, inherits from Menu's closeOnItemClick prop. When true or false, overrides the Menu-level settingMantineColor — Key of theme.colors or any valid CSS colorboolean — Sets disabled attribute, applies disabled stylesReact.ReactNode — Section displayed at the start of the labelReact.ReactNode — Section displayed at the end of the labelOptional leading props map; remaining args are children.
MenuItem — Combine a list of secondary actions into single interactive area (Menu family) https://mantine.dev/core/menu Props (docgen 9.5.0): - **children** `React.ReactNode` — Item label - **closeMenuOnClick** `boolean` — Controls whether the menu closes when this item is clicked. When undefined, inherits from Menu's `closeOnItemClick` prop. When true or false, overrides the Menu-level setting - **color** `MantineColor` — Key of `theme.colors` or any valid CSS color - **disabled** `boolean` — Sets disabled attribute, applies disabled styles - **leftSection** `React.ReactNode` — Section displayed at the start of the label - **rightSection** `React.ReactNode` — Section displayed at the end of the label Optional leading props map; remaining args are children.
Menu.Label — compound part of Menu (docgen omits it). Optional leading props map; remaining args are children.
Menu.Label — compound part of Menu (docgen omits it). Optional leading props map; remaining args are children.
MenuRadioGroup — Combine a list of secondary actions into single interactive area (Menu family)
Props (docgen 9.5.0):
React.ReactNode — Menu.RadioItem components and other elementsstring | null — Uncontrolled default selected value(value: string) => void — Called with the new value when a Menu.RadioItem is selectedstring | null — Controlled selected valueOptional leading props map; remaining args are children.
MenuRadioGroup — Combine a list of secondary actions into single interactive area (Menu family) https://mantine.dev/core/menu Props (docgen 9.5.0): - **children** `React.ReactNode` — `Menu.RadioItem` components and other elements - **defaultValue** `string | null` — Uncontrolled default selected value - **onChange** `(value: string) => void` — Called with the new value when a `Menu.RadioItem` is selected - **value** `string | null` — Controlled selected value Optional leading props map; remaining args are children.
MenuRadioItem — Combine a list of secondary actions into single interactive area (Menu family)
Props (docgen 9.5.0):
React.ReactNode — Replaces the default radio indicator rendered when the item is selected. Overrides checkIcon set on Menu.boolean — Overrides selected state determined by the parent Menu.RadioGroup.React.ReactNode — Item labelboolean — If set, closes the menu when this item is clicked. By default, radio items do not close the menu.MantineColor — Key of theme.colors or any valid CSS colorboolean — Sets disabled attribute, applies disabled styles(value: string) => void — Called with the item value when item is selected. Overrides onChange of the parent Menu.RadioGroup.React.ReactNode — Section displayed at the end of the labelstring (required) — Value of the radio item. Used by the parent Menu.RadioGroup to determine which item is selected.Optional leading props map; remaining args are children.
MenuRadioItem — Combine a list of secondary actions into single interactive area (Menu family) https://mantine.dev/core/menu Props (docgen 9.5.0): - **checkIcon** `React.ReactNode` — Replaces the default radio indicator rendered when the item is selected. Overrides `checkIcon` set on `Menu`. - **checked** `boolean` — Overrides selected state determined by the parent `Menu.RadioGroup`. - **children** `React.ReactNode` — Item label - **closeMenuOnClick** `boolean` — If set, closes the menu when this item is clicked. By default, radio items do not close the menu. - **color** `MantineColor` — Key of `theme.colors` or any valid CSS color - **disabled** `boolean` — Sets disabled attribute, applies disabled styles - **onChange** `(value: string) => void` — Called with the item value when item is selected. Overrides `onChange` of the parent `Menu.RadioGroup`. - **rightSection** `React.ReactNode` — Section displayed at the end of the label - **value** `string` **(required)** — Value of the radio item. Used by the parent `Menu.RadioGroup` to determine which item is selected. Optional leading props map; remaining args are children.
MenuSearch — Combine a list of secondary actions into single interactive area (Menu family)
Props (docgen 9.5.0):
boolean (default true) — If set, clears the search value after the menu close transition completes. Requires a controlled value/onChange pair.boolean — Sets disabled attribute on the input elementReact.ReactNode — Determines whether the input should have error styles and aria-invalid attributestring — Input element idstring — HTML size attribute for the input element (number of visible characters)React.ReactNode — Content section displayed on the left side of the inputReact.CSSProperties["pointerEvents"] (default 'none') — Sets pointer-events styles on the leftSection element. Use 'all' when section contains interactive elements (buttons, links).React.ComponentProps<"div"> — Props passed down to the leftSection elementReact.CSSProperties["width"] — Left section width, used to set width of the section and input padding-left, by default equals to the input heightboolean (default false) — Displays loading indicator in the left or right section"left" | "right" (default 'right') — Position of the loading indicatorboolean (default false) — Adjusts padding and sizing calculations for multiline inputs (use with component="textarea"). Does not make the input multiline by itself.boolean (default false) — Determines whether the input should have cursor: pointer style. Use when input acts as a button-like trigger (e.g., component="button" for Select/DatePicker).MantineRadius | number (default theme.defaultRadius) — Key of theme.radius or any valid CSS value to set border-radius, numbers are converted to remboolean — Sets required attribute on the input elementReact.ReactNode — Content section displayed on the right side of the inputReact.CSSProperties["pointerEvents"] (default 'none') — Sets pointer-events styles on the rightSection element. Use 'all' when section contains interactive elements (buttons, links).React.ComponentProps<"div"> — Props passed down to the rightSection elementReact.CSSProperties["width"] — Right section width, used to set width of the section and input padding-right, by default equals to the input heightRef<HTMLDivElement> — Root element refMantineSize (default 'sm') — Controls input height, horizontal padding, and font-sizeReact.ReactNode — Determines whether the input should have success stylesboolean (default true) — Determines whether aria- and other accessibility attributes should be added to the input. Only disable when implementing custom accessibility handling.boolean (default true) — Determines whether the input should have red border and red text color when the error prop is setboolean (default true) — Determines whether the input should have green border when the success prop is setWrapperProps — Props passed down to the root element of the Input componentOptional leading props map; remaining args are children.
MenuSearch — Combine a list of secondary actions into single interactive area (Menu family) https://mantine.dev/core/menu Props (docgen 9.5.0): - **clearSearchOnClose** `boolean` _(default `true`)_ — If set, clears the search value after the menu close transition completes. Requires a controlled `value`/`onChange` pair. - **disabled** `boolean` — Sets `disabled` attribute on the `input` element - **error** `React.ReactNode` — Determines whether the input should have error styles and `aria-invalid` attribute - **id** `string` — Input element id - **inputSize** `string` — HTML `size` attribute for the input element (number of visible characters) - **leftSection** `React.ReactNode` — Content section displayed on the left side of the input - **leftSectionPointerEvents** `React.CSSProperties["pointerEvents"]` _(default `'none'`)_ — Sets `pointer-events` styles on the `leftSection` element. Use `'all'` when section contains interactive elements (buttons, links). - **leftSectionProps** `React.ComponentProps<"div">` — Props passed down to the `leftSection` element - **leftSectionWidth** `React.CSSProperties["width"]` — Left section width, used to set `width` of the section and input `padding-left`, by default equals to the input height - **loading** `boolean` _(default `false`)_ — Displays loading indicator in the left or right section - **loadingPosition** `"left" | "right"` _(default `'right'`)_ — Position of the loading indicator - **multiline** `boolean` _(default `false`)_ — Adjusts padding and sizing calculations for multiline inputs (use with `component="textarea"`). Does not make the input multiline by itself. - **pointer** `boolean` _(default `false`)_ — Determines whether the input should have `cursor: pointer` style. Use when input acts as a button-like trigger (e.g., `component="button"` for Select/DatePicker). - **radius** `MantineRadius | number` _(default `theme.defaultRadius`)_ — Key of `theme.radius` or any valid CSS value to set `border-radius`, numbers are converted to rem - **required** `boolean` — Sets `required` attribute on the `input` element - **rightSection** `React.ReactNode` — Content section displayed on the right side of the input - **rightSectionPointerEvents** `React.CSSProperties["pointerEvents"]` _(default `'none'`)_ — Sets `pointer-events` styles on the `rightSection` element. Use `'all'` when section contains interactive elements (buttons, links). - **rightSectionProps** `React.ComponentProps<"div">` — Props passed down to the `rightSection` element - **rightSectionWidth** `React.CSSProperties["width"]` — Right section width, used to set `width` of the section and input `padding-right`, by default equals to the input height - **rootRef** `Ref<HTMLDivElement>` — Root element ref - **size** `MantineSize` _(default `'sm'`)_ — Controls input `height`, horizontal `padding`, and `font-size` - **success** `React.ReactNode` — Determines whether the input should have success styles - **withAria** `boolean` _(default `true`)_ — Determines whether `aria-` and other accessibility attributes should be added to the input. Only disable when implementing custom accessibility handling. - **withErrorStyles** `boolean` _(default `true`)_ — Determines whether the input should have red border and red text color when the `error` prop is set - **withSuccessStyles** `boolean` _(default `true`)_ — Determines whether the input should have green border when the `success` prop is set - **wrapperProps** `WrapperProps` — Props passed down to the root element of the `Input` component Optional leading props map; remaining args are children.
MenuSub — Combine a list of secondary actions into single interactive area (Menu family)
Props (docgen 9.5.0):
number (default 5) — Arrow offset in px'center' | 'side' — Arrow positionnumber (default 0) — Arrow border-radius in pxnumber (default 7) — Arrow size in pxnumber — Close delay in ms, applicable when hover trigger is usedboolean — If set, popover dropdown will not be renderedFloatingStrategy (default 'absolute') — Changes floating ui position strategyboolean (default true) — If set, the dropdown is hidden when the element is hidden with styles or not visible on the screenboolean — If set, the dropdown is not unmounted from the DOM when hidden. display: none styles are added instead."activity" | "display-none" (default 'activity') — Controls how the dropdown is hidden when keepMounted is set: 'activity' – hidden with React 19 Activity component, 'display-none' – hidden with display: none stylesPopoverMiddlewares (default { flip: true, shift: true, inline: false }) — Floating ui middlewares to configure position handlingnumber | FloatingAxesOffsets (default 0) — Offset of the dropdown element(opened: boolean) => void — Called with current state when dropdown opens or closes() => void — Called when dropdown closes() => void — Called when the popover is dismissed by clicking outside or by pressing escape() => void — Called when enter transition ends() => void — Called when exit transition ends() => void — Called when dropdown opens(position: FloatingPosition) => void — Called when dropdown position changesnumber — Open delay in ms, applicable when hover trigger is usedboolean — Controlled opened stateOverlayProps & ElementProps<"div"> — Props passed down to Overlay componentBasePortalProps — Props to pass down to the Portal when withinPortal is trueFloatingPosition (default 'right-start') — Dropdown position relative to the target elementboolean (default true) — If true, the dropdown picks its side on open (flip runs once, preferring the position prop) and then never changes side — scrolling, resizing, and content size changes will not flip the dropdown. The side is recalculated fresh on the next open. Does not affect the shift middleware. Set to false to keep flip active and allow the dropdown to re-flip on every change.MantineRadius | number (default theme.defaultRadius) — Key of theme.radius or any valid CSS value to set border-radiusboolean (default false) — Determines whether focus should be automatically returned to control when dropdown closesboolean | SafePolygonOptions (default true) — Determines whether submenu stays open while the cursor moves toward its dropdown. Pass an object to configure safe polygon behavior.MantineShadow — Key of theme.shadows or any other valid CSS box-shadow valueTransitionProps (default { duration: 0 }) — Props passed down to the Transition component that used to animate dropdown presence, use to configure duration and animation typePopoverWidth (default 'max-content') — Dropdown width, or 'target' to make dropdown width the same as target elementboolean (default false) — Determines whether component should have an arrowboolean (default false) — Determines whether the overlay should be displayed when the dropdown is openedboolean (default true) — Determines whether dropdown should be rendered within the Portalstring | number (default 300) — Dropdown z-indexOptional leading props map; remaining args are children.
MenuSub — Combine a list of secondary actions into single interactive area (Menu family)
https://mantine.dev/core/menu
Props (docgen 9.5.0):
- **arrowOffset** `number` _(default `5`)_ — Arrow offset in px
- **arrowPosition** `'center' | 'side'` — Arrow position
- **arrowRadius** `number` _(default `0`)_ — Arrow `border-radius` in px
- **arrowSize** `number` _(default `7`)_ — Arrow size in px
- **closeDelay** `number` — Close delay in ms, applicable when hover trigger is used
- **disabled** `boolean` — If set, popover dropdown will not be rendered
- **floatingStrategy** `FloatingStrategy` _(default `'absolute'`)_ — Changes floating ui [position strategy](https://floating-ui.com/docs/usefloating#strategy)
- **hideDetached** `boolean` _(default `true`)_ — If set, the dropdown is hidden when the element is hidden with styles or not visible on the screen
- **keepMounted** `boolean` — If set, the dropdown is not unmounted from the DOM when hidden. `display: none` styles are added instead.
- **keepMountedMode** `"activity" | "display-none"` _(default `'activity'`)_ — Controls how the dropdown is hidden when `keepMounted` is set: `'activity'` – hidden with React 19 `Activity` component, `'display-none'` – hidden with `display: none` styles
- **middlewares** `PopoverMiddlewares` _(default `{ flip: true, shift: true, inline: false }`)_ — Floating ui middlewares to configure position handling
- **offset** `number | FloatingAxesOffsets` _(default `0`)_ — Offset of the dropdown element
- **onChange** `(opened: boolean) => void` — Called with current state when dropdown opens or closes
- **onClose** `() => void` — Called when dropdown closes
- **onDismiss** `() => void` — Called when the popover is dismissed by clicking outside or by pressing escape
- **onEnterTransitionEnd** `() => void` — Called when enter transition ends
- **onExitTransitionEnd** `() => void` — Called when exit transition ends
- **onOpen** `() => void` — Called when dropdown opens
- **onPositionChange** `(position: FloatingPosition) => void` — Called when dropdown position changes
- **openDelay** `number` — Open delay in ms, applicable when hover trigger is used
- **opened** `boolean` — Controlled opened state
- **overlayProps** `OverlayProps & ElementProps<"div">` — Props passed down to `Overlay` component
- **portalProps** `BasePortalProps` — Props to pass down to the `Portal` when `withinPortal` is true
- **position** `FloatingPosition` _(default `'right-start'`)_ — Dropdown position relative to the target element
- **preventPositionChangeWhenVisible** `boolean` _(default `true`)_ — If `true`, the dropdown picks its side on open (flip runs once, preferring the `position` prop) and then never changes side — scrolling, resizing, and content size changes will not flip the dropdown. The side is recalculated fresh on the next open. Does not affect the `shift` middleware. Set to `false` to keep flip active and allow the dropdown to re-flip on every change.
- **radius** `MantineRadius | number` _(default `theme.defaultRadius`)_ — Key of `theme.radius` or any valid CSS value to set border-radius
- **returnFocus** `boolean` _(default `false`)_ — Determines whether focus should be automatically returned to control when dropdown closes
- **safeAreaPolygon** `boolean | SafePolygonOptions` _(default `true`)_ — Determines whether submenu stays open while the cursor moves toward its dropdown. Pass an object to configure safe polygon behavior.
- **shadow** `MantineShadow` — Key of `theme.shadows` or any other valid CSS `box-shadow` value
- **transitionProps** `TransitionProps` _(default `{ duration: 0 }`)_ — Props passed down to the `Transition` component that used to animate dropdown presence, use to configure duration and animation type
- **width** `PopoverWidth` _(default `'max-content'`)_ — Dropdown width, or `'target'` to make dropdown width the same as target element
- **withArrow** `boolean` _(default `false`)_ — Determines whether component should have an arrow
- **withOverlay** `boolean` _(default `false`)_ — Determines whether the overlay should be displayed when the dropdown is opened
- **withinPortal** `boolean` _(default `true`)_ — Determines whether dropdown should be rendered within the `Portal`
- **zIndex** `string | number` _(default `300`)_ — Dropdown `z-index`
Optional leading props map; remaining args are children.MenuSub.Dropdown — compound part of MenuSub (docgen omits it). Optional leading props map; remaining args are children.
MenuSub.Dropdown — compound part of MenuSub (docgen omits it). Optional leading props map; remaining args are children.
MenuSubItem — Combine a list of secondary actions into single interactive area (Menu family)
Props (docgen 9.5.0):
React.ReactNode — Item labelboolean — If set, the menu is closed when the item is clicked. Overrides closeOnItemClick prop on the Menu component.MantineColor — Key of theme.colors or any valid CSS colorboolean — Sets disabled attribute, applies disabled stylesReact.ReactNode — Section displayed at the start of the labelReact.ReactNode — Section displayed at the end of the labelOptional leading props map; remaining args are children.
MenuSubItem — Combine a list of secondary actions into single interactive area (Menu family) https://mantine.dev/core/menu Props (docgen 9.5.0): - **children** `React.ReactNode` — Item label - **closeMenuOnClick** `boolean` — If set, the menu is closed when the item is clicked. Overrides `closeOnItemClick` prop on the `Menu` component. - **color** `MantineColor` — Key of `theme.colors` or any valid CSS color - **disabled** `boolean` — Sets disabled attribute, applies disabled styles - **leftSection** `React.ReactNode` — Section displayed at the start of the label - **rightSection** `React.ReactNode` — Section displayed at the end of the label Optional leading props map; remaining args are children.
MenuSubTarget — Combine a list of secondary actions into single interactive area (Menu family)
Props (docgen 9.5.0):
React.ReactNode (required) — Target elementstring (default 'ref') — Key of the prop used to get element refOptional leading props map; remaining args are children.
MenuSubTarget — Combine a list of secondary actions into single interactive area (Menu family) https://mantine.dev/core/menu Props (docgen 9.5.0): - **children** `React.ReactNode` **(required)** — Target element - **refProp** `string` _(default `'ref'`)_ — Key of the prop used to get element ref Optional leading props map; remaining args are children.
MenuTarget — Combine a list of secondary actions into single interactive area (Menu family)
Props (docgen 9.5.0):
React.ReactNode (required) — Target elementstring (default 'ref') — Key of the prop used to get element ref, useful for forwarding refs to custom componentsOptional leading props map; remaining args are children.
MenuTarget — Combine a list of secondary actions into single interactive area (Menu family) https://mantine.dev/core/menu Props (docgen 9.5.0): - **children** `React.ReactNode` **(required)** — Target element - **refProp** `string` _(default `'ref'`)_ — Key of the prop used to get element ref, useful for forwarding refs to custom components Optional leading props map; remaining args are children.
Menubar — Desktop application style menubar with a row of menu triggers
https://mantine.dev/core/menubar
Props (docgen 9.5.0):
React.ReactNode — Menubar.Menu componentsnumber | null (default null) — Index of the opened menu for uncontrolled componentboolean (default true) — If set, arrow key navigation wraps from last to first menu and vice versa(index: number | null) => void — Called when the opened menu changes with its index or null when all menus are closednumber | null — Index of the controlled opened menu, null closes all menusFloatingPosition (default 'bottom-start') — Dropdown position relative to the target element"hover" | "click" (default 'click') — Event that opens a menu when none of the menus is opened. 'click' opens a menu on target click and then switches menus on hover (desktop application pattern), 'hover' opens a menu when the target is hoveredOptional leading props map; remaining args are children.
Menubar — Desktop application style menubar with a row of menu triggers https://mantine.dev/core/menubar Props (docgen 9.5.0): - **children** `React.ReactNode` — `Menubar.Menu` components - **defaultOpenIndex** `number | null` _(default ``null``)_ — Index of the opened menu for uncontrolled component - **loop** `boolean` _(default ``true``)_ — If set, arrow key navigation wraps from last to first menu and vice versa - **onOpenChange** `(index: number | null) => void` — Called when the opened menu changes with its index or `null` when all menus are closed - **openIndex** `number | null` — Index of the controlled opened menu, `null` closes all menus - **position** `FloatingPosition` _(default ``'bottom-start'``)_ — Dropdown position relative to the target element - **trigger** `"hover" | "click"` _(default ``'click'``)_ — Event that opens a menu when none of the menus is opened. `'click'` opens a menu on target click and then switches menus on hover (desktop application pattern), `'hover'` opens a menu when the target is hovered Optional leading props map; remaining args are children.
Menubar.Dropdown — compound part of Menubar (docgen omits it). Optional leading props map; remaining args are children.
Menubar.Dropdown — compound part of Menubar (docgen omits it). Optional leading props map; remaining args are children.
Menubar.Menu — compound part of Menubar (docgen omits it). Optional leading props map; remaining args are children.
Menubar.Menu — compound part of Menubar (docgen omits it). Optional leading props map; remaining args are children.
Menubar.Target — compound part of Menubar (docgen omits it). Optional leading props map; remaining args are children.
Menubar.Target — compound part of Menubar (docgen omits it). Optional leading props map; remaining args are children.
Modal — An accessible overlay dialog
https://mantine.dev/core/modal
Props (docgen 9.5.0):
boolean (default false) — If set, the modal is centered verticallyReact.ReactNode — Modal contentModalBaseCloseButtonProps — Props passed down to the close buttonboolean (default true) — If set, the modal/drawer is closed when user clicks on the overlayboolean (default true) — If set, onClose is called when user presses the escape keyboolean (default false) — If set, the modal takes the entire screenstring — Id used to connect modal/drawer with body and titleboolean (default false) — If set modal/drawer is not unmounted from the DOM when hidden. display: none styles are applied instead."activity" | "display-none" (default 'activity') — Controls how the modal/drawer is hidden when keepMounted is set: 'activity' - hidden with React 19 Activity component, 'display-none' - hidden with display: none stylesboolean (default true) — If set, scroll is locked when opened={true}() => void (required) — Called when modal/drawer is closed() => void — Called when enter transition ends() => void — Called when exit transition endsboolean (required) — Controls opened stateModalBaseOverlayProps — Props passed down to the Overlay component, use to configure opacity, background-color, styles and other propertiesMantineSpacing (default 'md') — Key of theme.spacing or any valid CSS value to set content, header and footer paddingBasePortalProps — Props passed down to the Portal component when withinPortal is setMantineRadius | number (default theme.defaultRadius) — Key of theme.radius or any valid CSS value to set border-radiusRemoveScrollProps — Props passed down to react-remove-scroll, can be used to customize scroll lock behaviorboolean (default true) — If set, focus is returned to the last active element when onClose is calledScrollAreaComponent (default 'div') — Scroll area componentMantineShadow (default 'xl') — Key of theme.shadows or any valid CSS box-shadow valueMantineSize | number (default 'md') — Controls width of the content areastring — Id of the modal in the Modal.StackReact.ReactNode — Modal titleTransitionProps — Props added to the Transition component that used to animate overlay and body, use to configure duration and animation type, { duration: 200, transition: 'fade-down' } by defaultboolean (default true) — If set, focus is trapped within the modal/drawerboolean (default true) — If set, the close button is renderedboolean (default true) — If set, the overlay is renderedboolean (default true) — If set, the component is rendered inside PortalMarginLeft<string | number> (default 5vw) — Left/right modal offsetMarginTop<string | number> (default 5dvh) — Top/bottom modal offsetstring | number (default 200) — z-index CSS property of the root elementOptional leading props map; remaining args are children.
Modal — An accessible overlay dialog
https://mantine.dev/core/modal
Props (docgen 9.5.0):
- **centered** `boolean` _(default `false`)_ — If set, the modal is centered vertically
- **children** `React.ReactNode` — Modal content
- **closeButtonProps** `ModalBaseCloseButtonProps` — Props passed down to the close button
- **closeOnClickOutside** `boolean` _(default `true`)_ — If set, the modal/drawer is closed when user clicks on the overlay
- **closeOnEscape** `boolean` _(default `true`)_ — If set, `onClose` is called when user presses the escape key
- **fullScreen** `boolean` _(default `false`)_ — If set, the modal takes the entire screen
- **id** `string` — Id used to connect modal/drawer with body and title
- **keepMounted** `boolean` _(default `false`)_ — If set modal/drawer is not unmounted from the DOM when hidden. `display: none` styles are applied instead.
- **keepMountedMode** `"activity" | "display-none"` _(default `'activity'`)_ — Controls how the modal/drawer is hidden when `keepMounted` is set: `'activity'` - hidden with React 19 `Activity` component, `'display-none'` - hidden with `display: none` styles
- **lockScroll** `boolean` _(default `true`)_ — If set, scroll is locked when `opened={true}`
- **onClose** `() => void` **(required)** — Called when modal/drawer is closed
- **onEnterTransitionEnd** `() => void` — Called when enter transition ends
- **onExitTransitionEnd** `() => void` — Called when exit transition ends
- **opened** `boolean` **(required)** — Controls opened state
- **overlayProps** `ModalBaseOverlayProps` — Props passed down to the `Overlay` component, use to configure opacity, `background-color`, styles and other properties
- **padding** `MantineSpacing` _(default `'md'`)_ — Key of `theme.spacing` or any valid CSS value to set content, header and footer padding
- **portalProps** `BasePortalProps` — Props passed down to the Portal component when `withinPortal` is set
- **radius** `MantineRadius | number` _(default `theme.defaultRadius`)_ — Key of `theme.radius` or any valid CSS value to set `border-radius`
- **removeScrollProps** `RemoveScrollProps` — Props passed down to react-remove-scroll, can be used to customize scroll lock behavior
- **returnFocus** `boolean` _(default `true`)_ — If set, focus is returned to the last active element when `onClose` is called
- **scrollAreaComponent** `ScrollAreaComponent` _(default `'div'`)_ — Scroll area component
- **shadow** `MantineShadow` _(default `'xl'`)_ — Key of `theme.shadows` or any valid CSS box-shadow value
- **size** `MantineSize | number` _(default `'md'`)_ — Controls width of the content area
- **stackId** `string` — Id of the modal in the `Modal.Stack`
- **title** `React.ReactNode` — Modal title
- **transitionProps** `TransitionProps` — Props added to the `Transition` component that used to animate overlay and body, use to configure duration and animation type, `{ duration: 200, transition: 'fade-down' }` by default
- **trapFocus** `boolean` _(default `true`)_ — If set, focus is trapped within the modal/drawer
- **withCloseButton** `boolean` _(default `true`)_ — If set, the close button is rendered
- **withOverlay** `boolean` _(default `true`)_ — If set, the overlay is rendered
- **withinPortal** `boolean` _(default `true`)_ — If set, the component is rendered inside `Portal`
- **xOffset** `MarginLeft<string | number>` _(default `5vw`)_ — Left/right modal offset
- **yOffset** `MarginTop<string | number>` _(default `5dvh`)_ — Top/bottom modal offset
- **zIndex** `string | number` _(default `200`)_ — `z-index` CSS property of the root element
Optional leading props map; remaining args are children.ModalBase
Props (docgen 9.5.0):
React.ReactNode — Modal/drawer contentboolean (default true) — If set, the modal/drawer is closed when user clicks on the overlayboolean (default true) — If set, onClose is called when user presses the escape keystring — Id used to connect modal/drawer with body and titleboolean (default false) — If set modal/drawer is not unmounted from the DOM when hidden. display: none styles are applied instead."activity" | "display-none" (default activity) — Controls how the modal/drawer is hidden when keepMounted is set: 'activity' - hidden with React 19 Activity component, 'display-none' - hidden with display: none stylesboolean (default true) — If set, scroll is locked when opened={true}() => void (required) — Called when modal/drawer is closed() => void — Called when enter transition ends() => void — Called when exit transition endsboolean (required) — Controls opened stateMantineSpacing (default 'md') — Key of theme.spacing or any valid CSS value to set content, header and footer paddingBasePortalProps — Props passed down to the Portal component when withinPortal is setRemoveScrollProps — Props passed down to react-remove-scroll, can be used to customize scroll lock behaviorboolean (default true) — If set, focus is returned to the last active element when onClose is calledMantineShadow (default 'xl') — Key of theme.shadows or any valid CSS box-shadow valueMantineSize | number (default 'md') — Controls width of the content areaTransitionProps — Props added to the Transition component that used to animate overlay and body, use to configure duration and animation type, { duration: 200, transition: 'fade-down' } by defaultboolean (default true) — If set, focus is trapped within the modal/drawerboolean (default true) — If set, the component is rendered inside Portalstring | number (default 200) — z-index CSS property of the root elementOptional leading props map; remaining args are children.
ModalBase
Props (docgen 9.5.0):
- **children** `React.ReactNode` — Modal/drawer content
- **closeOnClickOutside** `boolean` _(default `true`)_ — If set, the modal/drawer is closed when user clicks on the overlay
- **closeOnEscape** `boolean` _(default `true`)_ — If set, `onClose` is called when user presses the escape key
- **id** `string` — Id used to connect modal/drawer with body and title
- **keepMounted** `boolean` _(default `false`)_ — If set modal/drawer is not unmounted from the DOM when hidden. `display: none` styles are applied instead.
- **keepMountedMode** `"activity" | "display-none"` _(default `activity`)_ — Controls how the modal/drawer is hidden when `keepMounted` is set: `'activity'` - hidden with React 19 `Activity` component, `'display-none'` - hidden with `display: none` styles
- **lockScroll** `boolean` _(default `true`)_ — If set, scroll is locked when `opened={true}`
- **onClose** `() => void` **(required)** — Called when modal/drawer is closed
- **onEnterTransitionEnd** `() => void` — Called when enter transition ends
- **onExitTransitionEnd** `() => void` — Called when exit transition ends
- **opened** `boolean` **(required)** — Controls opened state
- **padding** `MantineSpacing` _(default `'md'`)_ — Key of `theme.spacing` or any valid CSS value to set content, header and footer padding
- **portalProps** `BasePortalProps` — Props passed down to the Portal component when `withinPortal` is set
- **removeScrollProps** `RemoveScrollProps` — Props passed down to react-remove-scroll, can be used to customize scroll lock behavior
- **returnFocus** `boolean` _(default `true`)_ — If set, focus is returned to the last active element when `onClose` is called
- **shadow** `MantineShadow` _(default `'xl'`)_ — Key of `theme.shadows` or any valid CSS box-shadow value
- **size** `MantineSize | number` _(default `'md'`)_ — Controls width of the content area
- **transitionProps** `TransitionProps` — Props added to the `Transition` component that used to animate overlay and body, use to configure duration and animation type, `{ duration: 200, transition: 'fade-down' }` by default
- **trapFocus** `boolean` _(default `true`)_ — If set, focus is trapped within the modal/drawer
- **withinPortal** `boolean` _(default `true`)_ — If set, the component is rendered inside `Portal`
- **zIndex** `string | number` _(default `200`)_ — `z-index` CSS property of the root element
Optional leading props map; remaining args are children.Modal.Body — compound part of Modal (docgen omits it). Optional leading props map; remaining args are children.
Modal.Body — compound part of Modal (docgen omits it). Optional leading props map; remaining args are children.
Modal.CloseButton — compound part of Modal (docgen omits it). Optional leading props map; remaining args are children.
Modal.CloseButton — compound part of Modal (docgen omits it). Optional leading props map; remaining args are children.
Modal.Content — compound part of Modal (docgen omits it). Optional leading props map; remaining args are children.
Modal.Content — compound part of Modal (docgen omits it). Optional leading props map; remaining args are children.
Modal.Header — compound part of Modal (docgen omits it). Optional leading props map; remaining args are children.
Modal.Header — compound part of Modal (docgen omits it). Optional leading props map; remaining args are children.
Modal.Overlay — compound part of Modal (docgen omits it). Optional leading props map; remaining args are children.
Modal.Overlay — compound part of Modal (docgen omits it). Optional leading props map; remaining args are children.
Modal.Root — compound part of Modal (docgen omits it). Optional leading props map; remaining args are children.
Modal.Root — compound part of Modal (docgen omits it). Optional leading props map; remaining args are children.
Modal.Stack — compound part of Modal (docgen omits it). Optional leading props map; remaining args are children.
Modal.Stack — compound part of Modal (docgen omits it). Optional leading props map; remaining args are children.
Modal.Title — compound part of Modal (docgen omits it). Optional leading props map; remaining args are children.
Modal.Title — compound part of Modal (docgen omits it). Optional leading props map; remaining args are children.
MultiSelect — Custom searchable multi select
https://mantine.dev/core/multi-select
Props (docgen 9.5.0):
"left" | "right" (default 'left') — Position of the checkmark icon shown next to selected options in the dropdownMantineColor — Controls color of the default chevronInputClearButtonProps — Props passed down to the clear buttonboolean (default true) — Clear search value when item is selectedClearSectionMode (default 'both') — Determines how the clear button and rightSection are renderedboolean (default false) — When enabled, displays a clear button to remove all selected values (hidden when component is empty, disabled, or read-only)ComboboxProps — Props passed down to Combobox componentComboboxData<Value> — Data used to generate options. Values must be unique, otherwise an error will be thrown and component will not render.boolean — Uncontrolled dropdown initial opened statestring — Default search valueValue[] — Uncontrolled component default valueReact.ReactNode — Contents of Input.Description component. If not set, description is not displayed.InputDescriptionProps — Props passed down to the Input.Description componentboolean — Sets disabled attribute on the input elementboolean — Controlled dropdown opened stateReact.ReactNode — Contents of Input.Error component. If not set, error is not displayed.InputErrorProps — Props passed down to the Input.Error componentOptionsFilter<Value> — Function based on which items are filtered and sorted"viewport" — If set to 'viewport', the dropdown grows to fill the available vertical space in the viewport. Disables the flip middleware.React.ComponentProps<"input"> — Props passed down to the hidden inputstring (default ',') — Divider used to separate values in the hidden input value attributeboolean (default false) — When enabled, selected options are hidden from the dropdown list(children: ReactNode) => ReactNode (default React.Fragment) — Render function to wrap the input element. Useful for adding tooltips, popovers, or other wrappers around the input.string — HTML size attribute for the input element (number of visible characters)("input" | "label" | "description" | "error")[] (default ['label', 'description', 'input', 'error']) — Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.React.ReactNode — Contents of Input.Label component. If not set, label is not displayed.InputLabelProps — Props passed down to the Input.Label componentReact.ReactNode — Content section displayed on the left side of the inputReact.CSSProperties["pointerEvents"] (default 'none') — Sets pointer-events styles on the leftSection element. Use 'all' when section contains interactive elements (buttons, links).React.ComponentProps<"div"> — Props passed down to the leftSection elementReact.CSSProperties["width"] — Left section width, used to set width of the section and input padding-left, by default equals to the input heightnumber — Maximum number of options displayed at a time, Infinity by defaultboolean (default false) — Displays loading indicator in the left or right section"left" | "right" (default 'right') — Position of the loading indicatorstring | number — max-height of the dropdown, only applicable when withScrollArea prop is true, 250 by defaultnumber — Maximum number of values, no limit if not setReact.ReactNode — Message displayed when no options match the search query (when searchable is enabled) or when the data array is empty. If not set, the dropdown will be hidden instead.(value: Value[]) => void — Called when value changes() => void — Called when the clear button is clicked() => void — Called when dropdown closes() => void — Called when dropdown opens() => void — Called when user attempts to select more values than allowed(value: Value) => void — Called when option is submitted from dropdown with mouse click or Enter key(value: Value) => void — Called with value of the removed item(value: string) => void — Called when search changesboolean (default true) — Controls whether dropdown opens when the input receives focusboolean (default false) — Determines whether the input should have cursor: pointer style. Use when input acts as a button-like trigger (e.g., component="button" for Select/DatePicker).MantineRadius | number (default theme.defaultRadius) — Key of theme.radius or any valid CSS value to set border-radius, numbers are converted to rem(item: ComboboxLikeRenderOptionInput<ComboboxItem<Value>>) => ReactNode — A function to render content of the option, replaces the default content of the option(props: ComboboxRenderPillInput<Value>) => ReactNode — A function to render content of the pillboolean (default false) — Adds required attribute to the input and a red asterisk on the right side of labelReact.ReactNode — Content section displayed on the right side of the inputReact.CSSProperties["pointerEvents"] (default 'none') — Sets pointer-events styles on the rightSection element. Use 'all' when section contains interactive elements (buttons, links).React.ComponentProps<"div"> — Props passed down to the rightSection elementReact.CSSProperties["width"] — Right section width, used to set width of the section and input padding-right, by default equals to the input heightScrollAreaProps — Props passed down to the underlying ScrollArea component in the dropdownstring — Controlled search valueboolean (default false) — Allows searching through options by user inputboolean — If set, the first option is selected when value changes, false by defaultboolean — If set, the first option is selected when dropdown opens, false by defaultMantineSize (default 'sm') — Controls input height, horizontal padding, and font-sizeReact.ReactNode — Contents of Input.Success component. If not set, success is not displayed.InputSuccessProps & DataAttributes — Props passed down to the Input.Success componentValue[] — Controlled component valueboolean (default false) — If set, unchecked labels are aligned with checked onesboolean (default false) — If set, the required asterisk is displayed next to the label. Overrides required prop. Does not add required attribute to the input.boolean (default true) — If set, the check icon is displayed near the selected option labelboolean (default true) — Determines whether the input should have red border and red text color when the error prop is setboolean (default false) — If set, selected values can be reordered by dragging pills. Disabled when disabled or readOnly is set.boolean — Determines whether the options should be wrapped with ScrollArea.AutoSize, true by defaultboolean (default true) — Determines whether the input should have green border when the success prop is setWrapperProps — Props passed down to the root elementOptional leading props map; remaining args are children.
MultiSelect — Custom searchable multi select
https://mantine.dev/core/multi-select
Props (docgen 9.5.0):
- **checkIconPosition** `"left" | "right"` _(default `'left'`)_ — Position of the checkmark icon shown next to selected options in the dropdown
- **chevronColor** `MantineColor` — Controls color of the default chevron
- **clearButtonProps** `InputClearButtonProps` — Props passed down to the clear button
- **clearSearchOnChange** `boolean` _(default `true`)_ — Clear search value when item is selected
- **clearSectionMode** `ClearSectionMode` _(default `'both'`)_ — Determines how the clear button and rightSection are rendered
- **clearable** `boolean` _(default `false`)_ — When enabled, displays a clear button to remove all selected values (hidden when component is empty, disabled, or read-only)
- **comboboxProps** `ComboboxProps` — Props passed down to `Combobox` component
- **data** `ComboboxData<Value>` — Data used to generate options. Values must be unique, otherwise an error will be thrown and component will not render.
- **defaultDropdownOpened** `boolean` — Uncontrolled dropdown initial opened state
- **defaultSearchValue** `string` — Default search value
- **defaultValue** `Value[]` — Uncontrolled component default value
- **description** `React.ReactNode` — Contents of `Input.Description` component. If not set, description is not displayed.
- **descriptionProps** `InputDescriptionProps` — Props passed down to the `Input.Description` component
- **disabled** `boolean` — Sets `disabled` attribute on the `input` element
- **dropdownOpened** `boolean` — Controlled dropdown opened state
- **error** `React.ReactNode` — Contents of `Input.Error` component. If not set, error is not displayed.
- **errorProps** `InputErrorProps` — Props passed down to the `Input.Error` component
- **filter** `OptionsFilter<Value>` — Function based on which items are filtered and sorted
- **floatingHeight** `"viewport"` — If set to `'viewport'`, the dropdown grows to fill the available vertical space in the viewport. Disables the `flip` middleware.
- **hiddenInputProps** `React.ComponentProps<"input">` — Props passed down to the hidden input
- **hiddenInputValuesDivider** `string` _(default `','`)_ — Divider used to separate values in the hidden input `value` attribute
- **hidePickedOptions** `boolean` _(default `false`)_ — When enabled, selected options are hidden from the dropdown list
- **inputContainer** `(children: ReactNode) => ReactNode` _(default `React.Fragment`)_ — Render function to wrap the input element. Useful for adding tooltips, popovers, or other wrappers around the input.
- **inputSize** `string` — HTML `size` attribute for the input element (number of visible characters)
- **inputWrapperOrder** `("input" | "label" | "description" | "error")[]` _(default `['label', 'description', 'input', 'error']`)_ — Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.
- **label** `React.ReactNode` — Contents of `Input.Label` component. If not set, label is not displayed.
- **labelProps** `InputLabelProps` — Props passed down to the `Input.Label` component
- **leftSection** `React.ReactNode` — Content section displayed on the left side of the input
- **leftSectionPointerEvents** `React.CSSProperties["pointerEvents"]` _(default `'none'`)_ — Sets `pointer-events` styles on the `leftSection` element. Use `'all'` when section contains interactive elements (buttons, links).
- **leftSectionProps** `React.ComponentProps<"div">` — Props passed down to the `leftSection` element
- **leftSectionWidth** `React.CSSProperties["width"]` — Left section width, used to set `width` of the section and input `padding-left`, by default equals to the input height
- **limit** `number` — Maximum number of options displayed at a time, `Infinity` by default
- **loading** `boolean` _(default `false`)_ — Displays loading indicator in the left or right section
- **loadingPosition** `"left" | "right"` _(default `'right'`)_ — Position of the loading indicator
- **maxDropdownHeight** `string | number` — `max-height` of the dropdown, only applicable when `withScrollArea` prop is `true`, `250` by default
- **maxValues** `number` — Maximum number of values, no limit if not set
- **nothingFoundMessage** `React.ReactNode` — Message displayed when no options match the search query (when searchable is enabled) or when the data array is empty. If not set, the dropdown will be hidden instead.
- **onChange** `(value: Value[]) => void` — Called when value changes
- **onClear** `() => void` — Called when the clear button is clicked
- **onDropdownClose** `() => void` — Called when dropdown closes
- **onDropdownOpen** `() => void` — Called when dropdown opens
- **onMaxValues** `() => void` — Called when user attempts to select more values than allowed
- **onOptionSubmit** `(value: Value) => void` — Called when option is submitted from dropdown with mouse click or `Enter` key
- **onRemove** `(value: Value) => void` — Called with `value` of the removed item
- **onSearchChange** `(value: string) => void` — Called when search changes
- **openOnFocus** `boolean` _(default `true`)_ — Controls whether dropdown opens when the input receives focus
- **pointer** `boolean` _(default `false`)_ — Determines whether the input should have `cursor: pointer` style. Use when input acts as a button-like trigger (e.g., `component="button"` for Select/DatePicker).
- **radius** `MantineRadius | number` _(default `theme.defaultRadius`)_ — Key of `theme.radius` or any valid CSS value to set `border-radius`, numbers are converted to rem
- **renderOption** `(item: ComboboxLikeRenderOptionInput<ComboboxItem<Value>>) => ReactNode` — A function to render content of the option, replaces the default content of the option
- **renderPill** `(props: ComboboxRenderPillInput<Value>) => ReactNode` — A function to render content of the pill
- **required** `boolean` _(default `false`)_ — Adds required attribute to the input and a red asterisk on the right side of label
- **rightSection** `React.ReactNode` — Content section displayed on the right side of the input
- **rightSectionPointerEvents** `React.CSSProperties["pointerEvents"]` _(default `'none'`)_ — Sets `pointer-events` styles on the `rightSection` element. Use `'all'` when section contains interactive elements (buttons, links).
- **rightSectionProps** `React.ComponentProps<"div">` — Props passed down to the `rightSection` element
- **rightSectionWidth** `React.CSSProperties["width"]` — Right section width, used to set `width` of the section and input `padding-right`, by default equals to the input height
- **scrollAreaProps** `ScrollAreaProps` — Props passed down to the underlying `ScrollArea` component in the dropdown
- **searchValue** `string` — Controlled search value
- **searchable** `boolean` _(default `false`)_ — Allows searching through options by user input
- **selectFirstOptionOnChange** `boolean` — If set, the first option is selected when value changes, `false` by default
- **selectFirstOptionOnDropdownOpen** `boolean` — If set, the first option is selected when dropdown opens, `false` by default
- **size** `MantineSize` _(default `'sm'`)_ — Controls input `height`, horizontal `padding`, and `font-size`
- **success** `React.ReactNode` — Contents of `Input.Success` component. If not set, success is not displayed.
- **successProps** `InputSuccessProps & DataAttributes` — Props passed down to the `Input.Success` component
- **value** `Value[]` — Controlled component value
- **withAlignedLabels** `boolean` _(default `false`)_ — If set, unchecked labels are aligned with checked ones
- **withAsterisk** `boolean` _(default `false`)_ — If set, the required asterisk is displayed next to the label. Overrides `required` prop. Does not add required attribute to the input.
- **withCheckIcon** `boolean` _(default `true`)_ — If set, the check icon is displayed near the selected option label
- **withErrorStyles** `boolean` _(default `true`)_ — Determines whether the input should have red border and red text color when the `error` prop is set
- **withPillsReorder** `boolean` _(default `false`)_ — If set, selected values can be reordered by dragging pills. Disabled when `disabled` or `readOnly` is set.
- **withScrollArea** `boolean` — Determines whether the options should be wrapped with `ScrollArea.AutoSize`, `true` by default
- **withSuccessStyles** `boolean` _(default `true`)_ — Determines whether the input should have green border when the `success` prop is set
- **wrapperProps** `WrapperProps` — Props passed down to the root element
Optional leading props map; remaining args are children.NativeSelect — Native select element based on Input
https://mantine.dev/core/native-select
Props (docgen 9.5.0):
ComboboxStringGroupData — Data used to render options. Accepts strings, objects with label/value, or grouped options. If children prop is provided, data will be ignored.React.ReactNode — Contents of Input.Description component. If not set, description is not displayed.InputDescriptionProps — Props passed down to the Input.Description componentboolean — Sets disabled attribute on the input elementReact.ReactNode — Contents of Input.Error component. If not set, error is not displayed.InputErrorProps — Props passed down to the Input.Error component(children: ReactNode) => ReactNode (default React.Fragment) — Render function to wrap the input element. Useful for adding tooltips, popovers, or other wrappers around the input.string — HTML size attribute for the input element (number of visible characters)("input" | "label" | "description" | "error")[] (default ['label', 'description', 'input', 'error']) — Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.React.ReactNode — Contents of Input.Label component. If not set, label is not displayed.InputLabelProps — Props passed down to the Input.Label componentReact.ReactNode — Content section displayed on the left side of the inputReact.CSSProperties["pointerEvents"] (default 'none') — Sets pointer-events styles on the leftSection element. Use 'all' when section contains interactive elements (buttons, links).React.ComponentProps<"div"> — Props passed down to the leftSection elementReact.CSSProperties["width"] — Left section width, used to set width of the section and input padding-left, by default equals to the input heightboolean (default false) — Displays loading indicator in the left or right section"left" | "right" (default 'right') — Position of the loading indicatorMantineRadius | number (default theme.defaultRadius) — Key of theme.radius or any valid CSS value to set border-radius, numbers are converted to remboolean (default false) — Adds required attribute to the input and a red asterisk on the right side of labelReact.ReactNode — Content section displayed on the right side of the inputReact.CSSProperties["pointerEvents"] (default 'none') — Sets pointer-events styles on the rightSection element. Use 'all' when section contains interactive elements (buttons, links).React.ComponentProps<"div"> — Props passed down to the rightSection elementReact.CSSProperties["width"] — Right section width, used to set width of the section and input padding-right, by default equals to the input heightMantineSize (default 'sm') — Controls input height, horizontal padding, and font-sizeReact.ReactNode — Contents of Input.Success component. If not set, success is not displayed.InputSuccessProps & DataAttributes — Props passed down to the Input.Success componentboolean (default false) — If set, the required asterisk is displayed next to the label. Overrides required prop. Does not add required attribute to the input.boolean (default true) — Determines whether the input should have red border and red text color when the error prop is setboolean (default true) — Determines whether the input should have green border when the success prop is setWrapperProps — Props passed down to the root elementOptional leading props map; remaining args are children.
NativeSelect — Native select element based on Input
https://mantine.dev/core/native-select
Props (docgen 9.5.0):
- **data** `ComboboxStringGroupData` — Data used to render options. Accepts strings, objects with label/value, or grouped options. If `children` prop is provided, `data` will be ignored.
- **description** `React.ReactNode` — Contents of `Input.Description` component. If not set, description is not displayed.
- **descriptionProps** `InputDescriptionProps` — Props passed down to the `Input.Description` component
- **disabled** `boolean` — Sets `disabled` attribute on the `input` element
- **error** `React.ReactNode` — Contents of `Input.Error` component. If not set, error is not displayed.
- **errorProps** `InputErrorProps` — Props passed down to the `Input.Error` component
- **inputContainer** `(children: ReactNode) => ReactNode` _(default `React.Fragment`)_ — Render function to wrap the input element. Useful for adding tooltips, popovers, or other wrappers around the input.
- **inputSize** `string` — HTML `size` attribute for the input element (number of visible characters)
- **inputWrapperOrder** `("input" | "label" | "description" | "error")[]` _(default `['label', 'description', 'input', 'error']`)_ — Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.
- **label** `React.ReactNode` — Contents of `Input.Label` component. If not set, label is not displayed.
- **labelProps** `InputLabelProps` — Props passed down to the `Input.Label` component
- **leftSection** `React.ReactNode` — Content section displayed on the left side of the input
- **leftSectionPointerEvents** `React.CSSProperties["pointerEvents"]` _(default `'none'`)_ — Sets `pointer-events` styles on the `leftSection` element. Use `'all'` when section contains interactive elements (buttons, links).
- **leftSectionProps** `React.ComponentProps<"div">` — Props passed down to the `leftSection` element
- **leftSectionWidth** `React.CSSProperties["width"]` — Left section width, used to set `width` of the section and input `padding-left`, by default equals to the input height
- **loading** `boolean` _(default `false`)_ — Displays loading indicator in the left or right section
- **loadingPosition** `"left" | "right"` _(default `'right'`)_ — Position of the loading indicator
- **radius** `MantineRadius | number` _(default `theme.defaultRadius`)_ — Key of `theme.radius` or any valid CSS value to set `border-radius`, numbers are converted to rem
- **required** `boolean` _(default `false`)_ — Adds required attribute to the input and a red asterisk on the right side of label
- **rightSection** `React.ReactNode` — Content section displayed on the right side of the input
- **rightSectionPointerEvents** `React.CSSProperties["pointerEvents"]` _(default `'none'`)_ — Sets `pointer-events` styles on the `rightSection` element. Use `'all'` when section contains interactive elements (buttons, links).
- **rightSectionProps** `React.ComponentProps<"div">` — Props passed down to the `rightSection` element
- **rightSectionWidth** `React.CSSProperties["width"]` — Right section width, used to set `width` of the section and input `padding-right`, by default equals to the input height
- **size** `MantineSize` _(default `'sm'`)_ — Controls input `height`, horizontal `padding`, and `font-size`
- **success** `React.ReactNode` — Contents of `Input.Success` component. If not set, success is not displayed.
- **successProps** `InputSuccessProps & DataAttributes` — Props passed down to the `Input.Success` component
- **withAsterisk** `boolean` _(default `false`)_ — If set, the required asterisk is displayed next to the label. Overrides `required` prop. Does not add required attribute to the input.
- **withErrorStyles** `boolean` _(default `true`)_ — Determines whether the input should have red border and red text color when the `error` prop is set
- **withSuccessStyles** `boolean` _(default `true`)_ — Determines whether the input should have green border when the `success` prop is set
- **wrapperProps** `WrapperProps` — Props passed down to the root element
Optional leading props map; remaining args are children.NavLink — Navigation link
https://mantine.dev/core/nav-link
Polymorphic: accepts :component / :render-root.
Props (docgen 9.5.0):
boolean (default false) — Determines whether the link should have active stylesboolean — If set, adjusts text color based on background color for filled variantReact.ReactNode — Child NavLink componentsMantineSpacing (default 'lg') — Controls indentation of nested NavLink components, key of theme.spacing or any valid CSS valueMantineColor (default theme.primaryColor) — Key of theme.colors or any valid CSS color to control active stylesboolean — Uncontrolled nested items collapse initial stateReact.ReactNode — Link description, displayed below the labelboolean (default false) — If set, right section will not be rotated when collapse is openedboolean (default false) — If set, disabled styles will be added to the root elementboolean — If set to false, child NavLinks are unmounted when collapsedReact.ReactNode — Main link labelReact.ReactNode — Section displayed on the left side of the labelboolean (default false) — If set, label and description are truncated with ellipsis instead of wrapping(opened: boolean) => void — Called when open state changesMouseEventHandler<HTMLElement> — Called when the root element is clickedKeyboardEventHandler<HTMLElement> — Called on keydown of the root elementboolean — Controlled nested items collapse stateReact.ReactNode — Section displayed on the right side of the labelOptional leading props map; remaining args are children.
NavLink — Navigation link https://mantine.dev/core/nav-link Polymorphic: accepts :component / :render-root. Props (docgen 9.5.0): - **active** `boolean` _(default `false`)_ — Determines whether the link should have active styles - **autoContrast** `boolean` — If set, adjusts text color based on background color for `filled` variant - **children** `React.ReactNode` — Child `NavLink` components - **childrenOffset** `MantineSpacing` _(default `'lg'`)_ — Controls indentation of nested NavLink components, key of `theme.spacing` or any valid CSS value - **color** `MantineColor` _(default `theme.primaryColor`)_ — Key of `theme.colors` or any valid CSS color to control active styles - **defaultOpened** `boolean` — Uncontrolled nested items collapse initial state - **description** `React.ReactNode` — Link description, displayed below the label - **disableRightSectionRotation** `boolean` _(default `false`)_ — If set, right section will not be rotated when collapse is opened - **disabled** `boolean` _(default `false`)_ — If set, disabled styles will be added to the root element - **keepMounted** `boolean` — If set to `false`, child `NavLinks` are unmounted when collapsed - **label** `React.ReactNode` — Main link label - **leftSection** `React.ReactNode` — Section displayed on the left side of the label - **noWrap** `boolean` _(default `false`)_ — If set, label and description are truncated with ellipsis instead of wrapping - **onChange** `(opened: boolean) => void` — Called when open state changes - **onClick** `MouseEventHandler<HTMLElement>` — Called when the root element is clicked - **onKeyDown** `KeyboardEventHandler<HTMLElement>` — Called on keydown of the root element - **opened** `boolean` — Controlled nested items collapse state - **rightSection** `React.ReactNode` — Section displayed on the right side of the label Optional leading props map; remaining args are children.
Notification — Show dynamic notifications and alerts to user, part of notifications system
https://mantine.dev/core/notification
Props (docgen 9.5.0):
React.ReactNode — Notification description, displayed below the title. When no title is provided, this serves as the main message.ElementProps<"button"> & DataAttributes — Props passed down to the close buttonMantineColor (default theme.primaryColor) — Controls icon background color or notification accent line color, key of theme.colors or any valid CSS color. When icon is provided, sets the icon background color. When no icon is provided, sets the colored accent line on the left.React.ReactNode — Notification icon, replaces color lineLoaderProps — Props passed down to the Loader componentboolean — If set, displays a Loader component instead of the icon. Takes precedence over the icon prop if both are provided.() => void — Called when the close button is clickedMantineRadius | number (default theme.defaultRadius) — Key of theme.radius or any valid CSS value to set border-radiusReact.ReactNode — Notification title, displayed above the message bodyboolean — Adds border to the root elementboolean (default true) — If set, the close button is visibleOptional leading props map; remaining args are children.
Notification — Show dynamic notifications and alerts to user, part of notifications system https://mantine.dev/core/notification Props (docgen 9.5.0): - **children** `React.ReactNode` — Notification description, displayed below the title. When no title is provided, this serves as the main message. - **closeButtonProps** `ElementProps<"button"> & DataAttributes` — Props passed down to the close button - **color** `MantineColor` _(default `theme.primaryColor`)_ — Controls icon background color or notification accent line color, key of `theme.colors` or any valid CSS color. When `icon` is provided, sets the icon background color. When no icon is provided, sets the colored accent line on the left. - **icon** `React.ReactNode` — Notification icon, replaces color line - **loaderProps** `LoaderProps` — Props passed down to the `Loader` component - **loading** `boolean` — If set, displays a `Loader` component instead of the icon. Takes precedence over the `icon` prop if both are provided. - **onClose** `() => void` — Called when the close button is clicked - **radius** `MantineRadius | number` _(default `theme.defaultRadius`)_ — Key of `theme.radius` or any valid CSS value to set `border-radius` - **title** `React.ReactNode` — Notification title, displayed above the message body - **withBorder** `boolean` — Adds border to the root element - **withCloseButton** `boolean` _(default `true`)_ — If set, the close button is visible Optional leading props map; remaining args are children.
NumberFormatter — Format number with thousands/decimal separators and suffix/prefix
https://mantine.dev/core/number-formatter
Props (docgen 9.5.0):
boolean (default true) — If set, negative values are allowednumber (default Infinity) — Limits the number of digits that are displayed after the decimal pointstring — Character used as a decimal separator, '.' by defaultboolean (default false) — If set, zeros are added after decimalSeparator to match given decimalScale.string — Prefix added before the valuestring — Suffix added after the valuestring | boolean (default ',') — A character used to separate thousands"none" | "thousand" | "lakh" | "wan" — Defines the thousand grouping stylestring | number — Value to formatOptional leading props map; remaining args are children.
NumberFormatter — Format number with thousands/decimal separators and suffix/prefix https://mantine.dev/core/number-formatter Props (docgen 9.5.0): - **allowNegative** `boolean` _(default `true`)_ — If set, negative values are allowed - **decimalScale** `number` _(default `Infinity`)_ — Limits the number of digits that are displayed after the decimal point - **decimalSeparator** `string` — Character used as a decimal separator, `'.'` by default - **fixedDecimalScale** `boolean` _(default `false`)_ — If set, zeros are added after `decimalSeparator` to match given `decimalScale`. - **prefix** `string` — Prefix added before the value - **suffix** `string` — Suffix added after the value - **thousandSeparator** `string | boolean` _(default `','`)_ — A character used to separate thousands - **thousandsGroupStyle** `"none" | "thousand" | "lakh" | "wan"` — Defines the thousand grouping style - **value** `string | number` — Value to format Optional leading props map; remaining args are children.
NumberInput — Capture number from user
https://mantine.dev/core/number-input
Props (docgen 9.5.0):
boolean (default true) — If set, decimal values are allowedboolean (default true) — Determines whether leading zeros are allowed during input. If false, leading zeros are removed as you type (e.g., typing 007 results in 7). Works in conjunction with trimLeadingZeroesOnBlur.boolean (default true) — Determines whether negative numbers are allowed. If false, the input will not accept negative values, and the decrement button will stop at 0 (when min is not set).string[] (default ['.', ',']) — Characters which when pressed result in a decimal separator. These characters will be replaced by the decimalSeparator in the input value."none" | "blur" | "strict" — Controls how values are clamped to the min/max range: - 'blur' (default): User can type any value, but it's clamped when the input loses focus - 'strict': User cannot type values outside the range - 'none': No clamping; min/max only apply to increment/decrement controls and arrow keysnumber (default Infinity) — Limits the number of digits that can be entered after the decimal pointstring (default '.') — Character used as a decimal separator. Generally used with allowedDecimalSeparators prop.string | NumberInputNumericType — Uncontrolled component default valueReact.ReactNode — Contents of Input.Description component. If not set, description is not displayed.InputDescriptionProps — Props passed down to the Input.Description componentboolean — Sets disabled attribute on the input elementReact.ReactNode — Contents of Input.Error component. If not set, error is not displayed.InputErrorProps — Props passed down to the Input.Error componentboolean (default false) — If true, automatically pads the decimal part with zeros to match decimalScale (e.g., with decimalScale={2}, typing 5.1 displays as 5.10). Requires decimalScale to be set.Ref<NumberInputHandlers> | undefined — Increment/decrement handlersboolean (default false) — If set, the up/down controls are hidden(children: ReactNode) => ReactNode (default React.Fragment) — Render function to wrap the input element. Useful for adding tooltips, popovers, or other wrappers around the input.string — HTML size attribute for the input element (number of visible characters)("input" | "label" | "description" | "error")[] (default ['label', 'description', 'input', 'error']) — Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.(values: NumberFormatValues) => boolean — A function to validate the input value. If this function returns false, the onChange will not be called and the input value will not change.React.ReactNode — Contents of Input.Label component. If not set, label is not displayed.InputLabelProps — Props passed down to the Input.Label componentReact.ReactNode — Content section displayed on the left side of the inputReact.CSSProperties["pointerEvents"] (default 'none') — Sets pointer-events styles on the leftSection element. Use 'all' when section contains interactive elements (buttons, links).React.ComponentProps<"div"> — Props passed down to the leftSection elementReact.CSSProperties["width"] — Left section width, used to set width of the section and input padding-left, by default equals to the input heightboolean (default false) — Displays loading indicator in the left or right section"left" | "right" (default 'right') — Position of the loading indicatorNumberInputNumericType — Maximum possible valueNumberInputNumericType — Minimum possible value(value: NumberInputValue<T>) => void — Called when value changes() => void — Called when the decrement button or arrow down key is pressed and the value has reached the minimum() => void — Called when the increment button or arrow up key is pressed and the value has reached the maximumOnValueChange — Called when value changes with react-number-format payloadstring — Prefix added before the input valueMantineRadius | number (default theme.defaultRadius) — Key of theme.radius or any valid CSS value to set border-radius, numbers are converted to remboolean (default false) — Adds required attribute to the input and a red asterisk on the right side of labelReact.ReactNode — Content section displayed on the right side of the inputReact.CSSProperties["pointerEvents"] (default 'none') — Sets pointer-events styles on the rightSection element. Use 'all' when section contains interactive elements (buttons, links).React.ComponentProps<"div"> — Props passed down to the rightSection elementReact.CSSProperties["width"] — Right section width, used to set width of the section and input padding-right, by default equals to the input heightboolean (default false) — If set, all text is selected when the input receives focusMantineSize (default 'sm') — Controls input height, horizontal padding, and font-sizeNumberInputNumericType (default 0) — Value used when incrementing/decrementing an empty input. If min is set and startValue < min, min is used instead.NumberInputNumericType (default 1) — Number by which value will be incremented/decremented with up/down controls and keyboard arrowsnumber — Initial delay in milliseconds before stepping the value.number | ((stepCount: number) => number) (default undefined) — Interval in milliseconds between value steps when increment/decrement button is held down. Can be a number or a function (stepCount) => number for dynamic intervals. Requires stepHoldDelay to be set.React.ReactNode — Contents of Input.Success component. If not set, success is not displayed.InputSuccessProps & DataAttributes — Props passed down to the Input.Success componentstring — Suffix added after the input valuestring | boolean — A character used to separate thousands"none" | "thousand" | "lakh" | "wan" — Defines the thousand grouping style. 'thousand' (1,000), 'lakh' (1,00,000), 'wan' (1,0000), 'none'.boolean (default true) — If set, leading zeros are removed on blur. For example, 00100 -> 100"text" | "tel" | "password" (default 'text') — Controls input type attributestring | NumberInputNumericType — Controlled component valueboolean (default false) — Advanced: Set to true if you're passing numeric strings (e.g., "12345") and using formatting props like prefix or suffix. In most cases, you don't need this prop. See react-number-format docs for details.boolean (default false) — If set, the required asterisk is displayed next to the label. Overrides required prop. Does not add required attribute to the input.boolean (default true) — Determines whether the input should have red border and red text color when the error prop is setboolean (default true) — If set, up/down keyboard events increment/decrement valueboolean (default true) — Determines whether the input should have green border when the success prop is setWrapperProps — Props passed down to the root elementOptional leading props map; remaining args are children.
NumberInput — Capture number from user
https://mantine.dev/core/number-input
Props (docgen 9.5.0):
- **allowDecimal** `boolean` _(default `true`)_ — If set, decimal values are allowed
- **allowLeadingZeros** `boolean` _(default `true`)_ — Determines whether leading zeros are allowed during input. If `false`, leading zeros are removed as you type (e.g., typing `007` results in `7`). Works in conjunction with `trimLeadingZeroesOnBlur`.
- **allowNegative** `boolean` _(default `true`)_ — Determines whether negative numbers are allowed. If `false`, the input will not accept negative values, and the decrement button will stop at `0` (when `min` is not set).
- **allowedDecimalSeparators** `string[]` _(default `['.', ',']`)_ — Characters which when pressed result in a decimal separator. These characters will be replaced by the `decimalSeparator` in the input value.
- **clampBehavior** `"none" | "blur" | "strict"` — Controls how values are clamped to the `min`/`max` range: - `'blur'` (default): User can type any value, but it's clamped when the input loses focus - `'strict'`: User cannot type values outside the range - `'none'`: No clamping; `min`/`max` only apply to increment/decrement controls and arrow keys
- **decimalScale** `number` _(default `Infinity`)_ — Limits the number of digits that can be entered after the decimal point
- **decimalSeparator** `string` _(default `'.'`)_ — Character used as a decimal separator. Generally used with `allowedDecimalSeparators` prop.
- **defaultValue** `string | NumberInputNumericType` — Uncontrolled component default value
- **description** `React.ReactNode` — Contents of `Input.Description` component. If not set, description is not displayed.
- **descriptionProps** `InputDescriptionProps` — Props passed down to the `Input.Description` component
- **disabled** `boolean` — Sets `disabled` attribute on the `input` element
- **error** `React.ReactNode` — Contents of `Input.Error` component. If not set, error is not displayed.
- **errorProps** `InputErrorProps` — Props passed down to the `Input.Error` component
- **fixedDecimalScale** `boolean` _(default `false`)_ — If `true`, automatically pads the decimal part with zeros to match `decimalScale` (e.g., with `decimalScale={2}`, typing `5.1` displays as `5.10`). Requires `decimalScale` to be set.
- **handlersRef** `Ref<NumberInputHandlers> | undefined` — Increment/decrement handlers
- **hideControls** `boolean` _(default `false`)_ — If set, the up/down controls are hidden
- **inputContainer** `(children: ReactNode) => ReactNode` _(default `React.Fragment`)_ — Render function to wrap the input element. Useful for adding tooltips, popovers, or other wrappers around the input.
- **inputSize** `string` — HTML `size` attribute for the input element (number of visible characters)
- **inputWrapperOrder** `("input" | "label" | "description" | "error")[]` _(default `['label', 'description', 'input', 'error']`)_ — Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.
- **isAllowed** `(values: NumberFormatValues) => boolean` — A function to validate the input value. If this function returns `false`, the `onChange` will not be called and the input value will not change.
- **label** `React.ReactNode` — Contents of `Input.Label` component. If not set, label is not displayed.
- **labelProps** `InputLabelProps` — Props passed down to the `Input.Label` component
- **leftSection** `React.ReactNode` — Content section displayed on the left side of the input
- **leftSectionPointerEvents** `React.CSSProperties["pointerEvents"]` _(default `'none'`)_ — Sets `pointer-events` styles on the `leftSection` element. Use `'all'` when section contains interactive elements (buttons, links).
- **leftSectionProps** `React.ComponentProps<"div">` — Props passed down to the `leftSection` element
- **leftSectionWidth** `React.CSSProperties["width"]` — Left section width, used to set `width` of the section and input `padding-left`, by default equals to the input height
- **loading** `boolean` _(default `false`)_ — Displays loading indicator in the left or right section
- **loadingPosition** `"left" | "right"` _(default `'right'`)_ — Position of the loading indicator
- **max** `NumberInputNumericType` — Maximum possible value
- **min** `NumberInputNumericType` — Minimum possible value
- **onChange** `(value: NumberInputValue<T>) => void` — Called when value changes
- **onMaxReached** `() => void` — Called when the decrement button or arrow down key is pressed and the value has reached the minimum
- **onMinReached** `() => void` — Called when the increment button or arrow up key is pressed and the value has reached the maximum
- **onValueChange** `OnValueChange` — Called when value changes with `react-number-format` payload
- **prefix** `string` — Prefix added before the input value
- **radius** `MantineRadius | number` _(default `theme.defaultRadius`)_ — Key of `theme.radius` or any valid CSS value to set `border-radius`, numbers are converted to rem
- **required** `boolean` _(default `false`)_ — Adds required attribute to the input and a red asterisk on the right side of label
- **rightSection** `React.ReactNode` — Content section displayed on the right side of the input
- **rightSectionPointerEvents** `React.CSSProperties["pointerEvents"]` _(default `'none'`)_ — Sets `pointer-events` styles on the `rightSection` element. Use `'all'` when section contains interactive elements (buttons, links).
- **rightSectionProps** `React.ComponentProps<"div">` — Props passed down to the `rightSection` element
- **rightSectionWidth** `React.CSSProperties["width"]` — Right section width, used to set `width` of the section and input `padding-right`, by default equals to the input height
- **selectAllOnFocus** `boolean` _(default `false`)_ — If set, all text is selected when the input receives focus
- **size** `MantineSize` _(default `'sm'`)_ — Controls input `height`, horizontal `padding`, and `font-size`
- **startValue** `NumberInputNumericType` _(default `0`)_ — Value used when incrementing/decrementing an empty input. If `min` is set and `startValue < min`, `min` is used instead.
- **step** `NumberInputNumericType` _(default `1`)_ — Number by which value will be incremented/decremented with up/down controls and keyboard arrows
- **stepHoldDelay** `number` — Initial delay in milliseconds before stepping the value.
- **stepHoldInterval** `number | ((stepCount: number) => number)` _(default `undefined`)_ — Interval in milliseconds between value steps when increment/decrement button is held down. Can be a number or a function `(stepCount) => number` for dynamic intervals. Requires `stepHoldDelay` to be set.
- **success** `React.ReactNode` — Contents of `Input.Success` component. If not set, success is not displayed.
- **successProps** `InputSuccessProps & DataAttributes` — Props passed down to the `Input.Success` component
- **suffix** `string` — Suffix added after the input value
- **thousandSeparator** `string | boolean` — A character used to separate thousands
- **thousandsGroupStyle** `"none" | "thousand" | "lakh" | "wan"` — Defines the thousand grouping style. 'thousand' (1,000), 'lakh' (1,00,000), 'wan' (1,0000), 'none'.
- **trimLeadingZeroesOnBlur** `boolean` _(default `true`)_ — If set, leading zeros are removed on blur. For example, `00100` -> `100`
- **type** `"text" | "tel" | "password"` _(default `'text'`)_ — Controls input `type` attribute
- **value** `string | NumberInputNumericType` — Controlled component value
- **valueIsNumericString** `boolean` _(default `false`)_ — Advanced: Set to `true` if you're passing numeric strings (e.g., `"12345"`) and using formatting props like `prefix` or `suffix`. In most cases, you don't need this prop. See [react-number-format docs](https://www.npmjs.com/package/react-number-format) for details.
- **withAsterisk** `boolean` _(default `false`)_ — If set, the required asterisk is displayed next to the label. Overrides `required` prop. Does not add required attribute to the input.
- **withErrorStyles** `boolean` _(default `true`)_ — Determines whether the input should have red border and red text color when the `error` prop is set
- **withKeyboardEvents** `boolean` _(default `true`)_ — If set, up/down keyboard events increment/decrement value
- **withSuccessStyles** `boolean` _(default `true`)_ — Determines whether the input should have green border when the `success` prop is set
- **wrapperProps** `WrapperProps` — Props passed down to the root element
Optional leading props map; remaining args are children.OverflowList
https://mantine.dev/core/overflow-list
Props (docgen 9.5.0):
"end" | "start" (default 'end') — Direction from which items are collapsed when they overflow, 'end' collapses last items, 'start' collapses first itemsT[] (required) — Array of items to displayMantineSpacing (default 'xs') — Key of theme.spacing or any valid CSS value for gap, numbers are converted to rem(item: T, index: number) => Key — A function to resolve a unique key for each item. Used to detect when the contents of data change (for example when items are reordered while the length stays the same) so the visible/overflow split can be recomputed. Required to detect reordering when data contains objects; for primitive items (strings, numbers) the item value is used by default.number (default 1) — Number of rows to displaynumber (default Infinity) — Maximum number of visible items(item: T, index: number) => ReactNode (required) — Function to render item(items: T[]) => ReactNode (required) — Function to render hidden itemsOptional leading props map; remaining args are children.
OverflowList https://mantine.dev/core/overflow-list Props (docgen 9.5.0): - **collapseFrom** `"end" | "start"` _(default `'end'`)_ — Direction from which items are collapsed when they overflow, `'end'` collapses last items, `'start'` collapses first items - **data** `T[]` **(required)** — Array of items to display - **gap** `MantineSpacing` _(default `'xs'`)_ — Key of `theme.spacing` or any valid CSS value for `gap`, numbers are converted to rem - **getItemKey** `(item: T, index: number) => Key` — A function to resolve a unique key for each item. Used to detect when the contents of `data` change (for example when items are reordered while the length stays the same) so the visible/overflow split can be recomputed. Required to detect reordering when `data` contains objects; for primitive items (strings, numbers) the item value is used by default. - **maxRows** `number` _(default `1`)_ — Number of rows to display - **maxVisibleItems** `number` _(default `Infinity`)_ — Maximum number of visible items - **renderItem** `(item: T, index: number) => ReactNode` **(required)** — Function to render item - **renderOverflow** `(items: T[]) => ReactNode` **(required)** — Function to render hidden items Optional leading props map; remaining args are children.
Overlay — Overlays parent element with div element with any color and opacity
https://mantine.dev/core/overlay
Polymorphic: accepts :component / :render-root.
Props (docgen 9.5.0):
number (default 0.6) — Overlay background-color opacity 0–1, ignored when gradient prop is setstring | number (default 0) — Overlay background blur in px (converted to rem). Applies backdrop-filter: blur(). Note: backdrop-filter is not supported in all browsers.boolean (default false) — Centers content inside the overlay using flexbox (sets display: flex, align-items: center, justify-content: center)React.ReactNode — Content inside overlayBackgroundColor (default #000) — Overlay background-colorboolean (default false) — Changes position from absolute to fixed (viewport-relative instead of parent-relative)string — Changes overlay to gradient. If set, both color and backgroundOpacity props are ignored.MantineRadius | number (default 0) — Key of theme.radius or any valid CSS value to set border-radiusstring | number (default 200) — Overlay z-indexOptional leading props map; remaining args are children.
Overlay — Overlays parent element with div element with any color and opacity https://mantine.dev/core/overlay Polymorphic: accepts :component / :render-root. Props (docgen 9.5.0): - **backgroundOpacity** `number` _(default `0.6`)_ — Overlay `background-color` opacity 0–1, ignored when `gradient` prop is set - **blur** `string | number` _(default `0`)_ — Overlay background blur in px (converted to rem). Applies `backdrop-filter: blur()`. Note: backdrop-filter is not supported in all browsers. - **center** `boolean` _(default `false`)_ — Centers content inside the overlay using flexbox (sets display: flex, align-items: center, justify-content: center) - **children** `React.ReactNode` — Content inside overlay - **color** `BackgroundColor` _(default `#000`)_ — Overlay `background-color` - **fixed** `boolean` _(default `false`)_ — Changes position from `absolute` to `fixed` (viewport-relative instead of parent-relative) - **gradient** `string` — Changes overlay to gradient. If set, both `color` and `backgroundOpacity` props are ignored. - **radius** `MantineRadius | number` _(default `0`)_ — Key of `theme.radius` or any valid CSS value to set border-radius - **zIndex** `string | number` _(default `200`)_ — Overlay z-index Optional leading props map; remaining args are children.
Pagination — Display active page and navigate between multiple pages
https://mantine.dev/core/pagination
Props (docgen 9.5.0):
boolean — If set, adjusts text color based on the active page background color to ensure sufficient contrastnumber (default 1) — Number of elements visible on the left/right edgesMantineColor (default theme.primaryColor) — Key of theme.colors, active item colornumber — Active page for uncontrolled component, must be an integer in [1, total] intervalboolean — Disables all controls, applies disabled stylesPaginationIcon — Dots icon componentPaginationIcon — First control icon componentPaginationFormatLabel — Function to format the label text displayed in responsive modeMantineSpacing (default 8) — Key of theme.spacing, gap between controls(control: "next" | "previous" | "first" | "last") => Record<string, any> — Props passed down to next/previous/first/last controls(page: number) => Record<string, any> — Additional props passed down to controlsboolean (default false) — If set, the pagination is hidden when only one page is available (total={1})PaginationIcon — Last control icon component"default" | "responsive" (default 'default') — Determines how the pagination is displayed, 'responsive' uses CSS container queries to switch between pages and a compact labelPaginationIcon — Next control icon component(value: number) => void — Called when page changes() => void — Called when first page control is clicked() => void — Called when last page control is clicked() => void — Called when next page control is clicked() => void — Called when previous page control is clickedPaginationIcon — Previous control icon componentMantineRadius | number (default theme.defaultRadius) — Key of theme.radius or any valid CSS value to set border-radius, numbers are converted to remnumber (default 1) — Number of siblings displayed on the left/right side of the selected pagenumber | MantineSize | (string & {}) | "input-xs" | "input-sm" | "input-md" | "input-lg" | "input-xl" (default 'md') — height and min-width of controlsnumber — Starting page number, defaults to 1number (required) — Total number of pages, must be an integernumber — Active page for controlled component, must be an integer in [1, total] intervalboolean (default true) — If set, next/previous controls are displayedboolean (default false) — If set, first/last controls are displayedboolean (default true) — If set to false, page number buttons are hidden, only next/previous controls remainOptional leading props map; remaining args are children.
Pagination — Display active page and navigate between multiple pages
https://mantine.dev/core/pagination
Props (docgen 9.5.0):
- **autoContrast** `boolean` — If set, adjusts text color based on the active page background color to ensure sufficient contrast
- **boundaries** `number` _(default `1`)_ — Number of elements visible on the left/right edges
- **color** `MantineColor` _(default `theme.primaryColor`)_ — Key of `theme.colors`, active item color
- **defaultValue** `number` — Active page for uncontrolled component, must be an integer in [1, total] interval
- **disabled** `boolean` — Disables all controls, applies disabled styles
- **dotsIcon** `PaginationIcon` — Dots icon component
- **firstIcon** `PaginationIcon` — First control icon component
- **formatLabel** `PaginationFormatLabel` — Function to format the label text displayed in responsive mode
- **gap** `MantineSpacing` _(default `8`)_ — Key of `theme.spacing`, gap between controls
- **getControlProps** `(control: "next" | "previous" | "first" | "last") => Record<string, any>` — Props passed down to next/previous/first/last controls
- **getItemProps** `(page: number) => Record<string, any>` — Additional props passed down to controls
- **hideWithOnePage** `boolean` _(default `false`)_ — If set, the pagination is hidden when only one page is available (`total={1}`)
- **lastIcon** `PaginationIcon` — Last control icon component
- **layout** `"default" | "responsive"` _(default `'default'`)_ — Determines how the pagination is displayed, `'responsive'` uses CSS container queries to switch between pages and a compact label
- **nextIcon** `PaginationIcon` — Next control icon component
- **onChange** `(value: number) => void` — Called when page changes
- **onFirstPage** `() => void` — Called when first page control is clicked
- **onLastPage** `() => void` — Called when last page control is clicked
- **onNextPage** `() => void` — Called when next page control is clicked
- **onPreviousPage** `() => void` — Called when previous page control is clicked
- **previousIcon** `PaginationIcon` — Previous control icon component
- **radius** `MantineRadius | number` _(default `theme.defaultRadius`)_ — Key of `theme.radius` or any valid CSS value to set `border-radius`, numbers are converted to rem
- **siblings** `number` _(default `1`)_ — Number of siblings displayed on the left/right side of the selected page
- **size** `number | MantineSize | (string & {}) | "input-xs" | "input-sm" | "input-md" | "input-lg" | "input-xl"` _(default `'md'`)_ — `height` and `min-width` of controls
- **startValue** `number` — Starting page number, defaults to 1
- **total** `number` **(required)** — Total number of pages, must be an integer
- **value** `number` — Active page for controlled component, must be an integer in [1, total] interval
- **withControls** `boolean` _(default `true`)_ — If set, next/previous controls are displayed
- **withEdges** `boolean` _(default `false`)_ — If set, first/last controls are displayed
- **withPages** `boolean` _(default ``true``)_ — If set to `false`, page number buttons are hidden, only next/previous controls remain
Optional leading props map; remaining args are children.PaginationControl — Display active page and navigate between multiple pages (Pagination family)
https://mantine.dev/core/pagination
Props (docgen 9.5.0):
boolean — Applies active styles, adds data-active attributeboolean (default true) — Applies paddingOptional leading props map; remaining args are children.
PaginationControl — Display active page and navigate between multiple pages (Pagination family) https://mantine.dev/core/pagination Props (docgen 9.5.0): - **active** `boolean` — Applies active styles, adds `data-active` attribute - **withPadding** `boolean` _(default `true`)_ — Applies padding Optional leading props map; remaining args are children.
PaginationDots — Display active page and navigate between multiple pages (Pagination family)
https://mantine.dev/core/pagination
Props (docgen 9.5.0):
FC<PaginationIconProps> — Custom dots icon component, must accept svg element props and size propOptional leading props map; remaining args are children.
PaginationDots — Display active page and navigate between multiple pages (Pagination family) https://mantine.dev/core/pagination Props (docgen 9.5.0): - **icon** `FC<PaginationIconProps>` — Custom dots icon component, must accept svg element props and size prop Optional leading props map; remaining args are children.
PaginationFirst — Display active page and navigate between multiple pages (Pagination family)
https://mantine.dev/core/pagination
Props (docgen 9.5.0):
FC<PaginationIconProps> — An icon component to replace the default iconOptional leading props map; remaining args are children.
PaginationFirst — Display active page and navigate between multiple pages (Pagination family) https://mantine.dev/core/pagination Props (docgen 9.5.0): - **icon** `FC<PaginationIconProps>` — An icon component to replace the default icon Optional leading props map; remaining args are children.
PaginationItems — Display active page and navigate between multiple pages (Pagination family)
https://mantine.dev/core/pagination
Props (docgen 9.5.0):
PaginationIcon — Dots icon componentOptional leading props map; remaining args are children.
PaginationItems — Display active page and navigate between multiple pages (Pagination family) https://mantine.dev/core/pagination Props (docgen 9.5.0): - **dotsIcon** `PaginationIcon` — Dots icon component Optional leading props map; remaining args are children.
Pagination.Label — compound part of Pagination (docgen omits it). Optional leading props map; remaining args are children.
Pagination.Label — compound part of Pagination (docgen omits it). Optional leading props map; remaining args are children.
PaginationLast — Display active page and navigate between multiple pages (Pagination family)
https://mantine.dev/core/pagination
Props (docgen 9.5.0):
FC<PaginationIconProps> — An icon component to replace the default iconOptional leading props map; remaining args are children.
PaginationLast — Display active page and navigate between multiple pages (Pagination family) https://mantine.dev/core/pagination Props (docgen 9.5.0): - **icon** `FC<PaginationIconProps>` — An icon component to replace the default icon Optional leading props map; remaining args are children.
PaginationNext — Display active page and navigate between multiple pages (Pagination family)
https://mantine.dev/core/pagination
Props (docgen 9.5.0):
FC<PaginationIconProps> — An icon component to replace the default iconOptional leading props map; remaining args are children.
PaginationNext — Display active page and navigate between multiple pages (Pagination family) https://mantine.dev/core/pagination Props (docgen 9.5.0): - **icon** `FC<PaginationIconProps>` — An icon component to replace the default icon Optional leading props map; remaining args are children.
PaginationPrevious — Display active page and navigate between multiple pages (Pagination family)
https://mantine.dev/core/pagination
Props (docgen 9.5.0):
FC<PaginationIconProps> — An icon component to replace the default iconOptional leading props map; remaining args are children.
PaginationPrevious — Display active page and navigate between multiple pages (Pagination family) https://mantine.dev/core/pagination Props (docgen 9.5.0): - **icon** `FC<PaginationIconProps>` — An icon component to replace the default icon Optional leading props map; remaining args are children.
PaginationRoot — Display active page and navigate between multiple pages (Pagination family)
https://mantine.dev/core/pagination
Props (docgen 9.5.0):
boolean — If set, adjusts text color based on the active page background color to ensure sufficient contrastnumber (default 1) — Number of elements visible on the left/right edgesMantineColor (default theme.primaryColor) — Key of theme.colors, active item colornumber — Active page for uncontrolled component, must be an integer in [1, total] intervalboolean — Disables all controls, applies disabled styles(page: number) => Record<string, any> — Additional props passed down to controls"default" | "responsive" (default 'default') — Determines how the pagination is displayed, 'responsive' uses CSS container queries to switch between pages and a compact label(value: number) => void — Called when page changes() => void — Called when first page control is clicked() => void — Called when last page control is clicked() => void — Called when next page control is clicked() => void — Called when previous page control is clickedMantineRadius | number (default theme.defaultRadius) — Key of theme.radius or any valid CSS value to set border-radius, numbers are converted to remnumber (default 1) — Number of siblings displayed on the left/right side of the selected pagenumber | MantineSize | (string & {}) | "input-xs" | "input-sm" | "input-md" | "input-lg" | "input-xl" (default 'md') — height and min-width of controlsnumber — Starting page number, defaults to 1number (required) — Total number of pages, must be an integernumber — Active page for controlled component, must be an integer in [1, total] intervalOptional leading props map; remaining args are children.
PaginationRoot — Display active page and navigate between multiple pages (Pagination family)
https://mantine.dev/core/pagination
Props (docgen 9.5.0):
- **autoContrast** `boolean` — If set, adjusts text color based on the active page background color to ensure sufficient contrast
- **boundaries** `number` _(default `1`)_ — Number of elements visible on the left/right edges
- **color** `MantineColor` _(default `theme.primaryColor`)_ — Key of `theme.colors`, active item color
- **defaultValue** `number` — Active page for uncontrolled component, must be an integer in [1, total] interval
- **disabled** `boolean` — Disables all controls, applies disabled styles
- **getItemProps** `(page: number) => Record<string, any>` — Additional props passed down to controls
- **layout** `"default" | "responsive"` _(default `'default'`)_ — Determines how the pagination is displayed, `'responsive'` uses CSS container queries to switch between pages and a compact label
- **onChange** `(value: number) => void` — Called when page changes
- **onFirstPage** `() => void` — Called when first page control is clicked
- **onLastPage** `() => void` — Called when last page control is clicked
- **onNextPage** `() => void` — Called when next page control is clicked
- **onPreviousPage** `() => void` — Called when previous page control is clicked
- **radius** `MantineRadius | number` _(default `theme.defaultRadius`)_ — Key of `theme.radius` or any valid CSS value to set `border-radius`, numbers are converted to rem
- **siblings** `number` _(default `1`)_ — Number of siblings displayed on the left/right side of the selected page
- **size** `number | MantineSize | (string & {}) | "input-xs" | "input-sm" | "input-md" | "input-lg" | "input-xl"` _(default `'md'`)_ — `height` and `min-width` of controls
- **startValue** `number` — Starting page number, defaults to 1
- **total** `number` **(required)** — Total number of pages, must be an integer
- **value** `number` — Active page for controlled component, must be an integer in [1, total] interval
Optional leading props map; remaining args are children.Paper — Renders white or dark background depending on color scheme
https://mantine.dev/core/paper
Polymorphic: accepts :component / :render-root.
Props (docgen 9.5.0):
MantineRadius | number (default theme.defaultRadius) — Key of theme.radius or any valid CSS value to set border-radius, numbers are converted to remMantineShadow — Key of theme.shadows or any valid CSS value to set box-shadowboolean — Adds border to the root elementOptional leading props map; remaining args are children.
Paper — Renders white or dark background depending on color scheme https://mantine.dev/core/paper Polymorphic: accepts :component / :render-root. Props (docgen 9.5.0): - **radius** `MantineRadius | number` _(default `theme.defaultRadius`)_ — Key of `theme.radius` or any valid CSS value to set border-radius, numbers are converted to rem - **shadow** `MantineShadow` — Key of `theme.shadows` or any valid CSS value to set `box-shadow` - **withBorder** `boolean` — Adds border to the root element Optional leading props map; remaining args are children.
PasswordInput — Capture password data from user
https://mantine.dev/core/password-input
Props (docgen 9.5.0):
boolean — If set, the input value is visible by defaultReact.ReactNode — Contents of Input.Description component. If not set, description is not displayed.InputDescriptionProps — Props passed down to the Input.Description componentboolean — Sets disabled attribute on the input elementReact.ReactNode — Contents of Input.Error component. If not set, error is not displayed.InputErrorProps — Props passed down to the Input.Error component(children: ReactNode) => ReactNode (default React.Fragment) — Render function to wrap the input element. Useful for adding tooltips, popovers, or other wrappers around the input.string — HTML size attribute for the input element (number of visible characters)("input" | "label" | "description" | "error")[] (default ['label', 'description', 'input', 'error']) — Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.React.ReactNode — Contents of Input.Label component. If not set, label is not displayed.InputLabelProps — Props passed down to the Input.Label componentReact.ReactNode — Content section displayed on the left side of the inputReact.CSSProperties["pointerEvents"] (default 'none') — Sets pointer-events styles on the leftSection element. Use 'all' when section contains interactive elements (buttons, links).React.ComponentProps<"div"> — Props passed down to the leftSection elementReact.CSSProperties["width"] — Left section width, used to set width of the section and input padding-left, by default equals to the input heightboolean (default false) — Displays loading indicator in the left or right section"left" | "right" (default 'right') — Position of the loading indicator(visible: boolean) => void — Called when visibility changesMantineRadius | number (default theme.defaultRadius) — Key of theme.radius or any valid CSS value to set border-radius, numbers are converted to remboolean (default false) — Adds required attribute to the input and a red asterisk on the right side of labelReact.ReactNode — Content section displayed on the right side of the inputReact.CSSProperties["pointerEvents"] (default 'none') — Sets pointer-events styles on the rightSection element. Use 'all' when section contains interactive elements (buttons, links).React.ComponentProps<"div"> — Props passed down to the rightSection elementReact.CSSProperties["width"] — Right section width, used to set width of the section and input padding-right, by default equals to the input heightMantineSize (default 'sm') — Controls input height, horizontal padding, and font-sizeReact.ReactNode — Contents of Input.Success component. If not set, success is not displayed.InputSuccessProps & DataAttributes — Props passed down to the Input.Success componentRecord<string, any> — Props passed down to the visibility toggle buttonFC<{ reveal: boolean; }> — A component to replace the visibility toggle iconboolean — If set, the input value is visibleboolean (default false) — If set, the required asterisk is displayed next to the label. Overrides required prop. Does not add required attribute to the input.boolean (default true) — Determines whether the input should have red border and red text color when the error prop is setboolean (default true) — Determines whether the input should have green border when the success prop is setWrapperProps — Props passed down to the root elementOptional leading props map; remaining args are children.
PasswordInput — Capture password data from user
https://mantine.dev/core/password-input
Props (docgen 9.5.0):
- **defaultVisible** `boolean` — If set, the input value is visible by default
- **description** `React.ReactNode` — Contents of `Input.Description` component. If not set, description is not displayed.
- **descriptionProps** `InputDescriptionProps` — Props passed down to the `Input.Description` component
- **disabled** `boolean` — Sets `disabled` attribute on the `input` element
- **error** `React.ReactNode` — Contents of `Input.Error` component. If not set, error is not displayed.
- **errorProps** `InputErrorProps` — Props passed down to the `Input.Error` component
- **inputContainer** `(children: ReactNode) => ReactNode` _(default `React.Fragment`)_ — Render function to wrap the input element. Useful for adding tooltips, popovers, or other wrappers around the input.
- **inputSize** `string` — HTML `size` attribute for the input element (number of visible characters)
- **inputWrapperOrder** `("input" | "label" | "description" | "error")[]` _(default `['label', 'description', 'input', 'error']`)_ — Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.
- **label** `React.ReactNode` — Contents of `Input.Label` component. If not set, label is not displayed.
- **labelProps** `InputLabelProps` — Props passed down to the `Input.Label` component
- **leftSection** `React.ReactNode` — Content section displayed on the left side of the input
- **leftSectionPointerEvents** `React.CSSProperties["pointerEvents"]` _(default `'none'`)_ — Sets `pointer-events` styles on the `leftSection` element. Use `'all'` when section contains interactive elements (buttons, links).
- **leftSectionProps** `React.ComponentProps<"div">` — Props passed down to the `leftSection` element
- **leftSectionWidth** `React.CSSProperties["width"]` — Left section width, used to set `width` of the section and input `padding-left`, by default equals to the input height
- **loading** `boolean` _(default `false`)_ — Displays loading indicator in the left or right section
- **loadingPosition** `"left" | "right"` _(default `'right'`)_ — Position of the loading indicator
- **onVisibilityChange** `(visible: boolean) => void` — Called when visibility changes
- **radius** `MantineRadius | number` _(default `theme.defaultRadius`)_ — Key of `theme.radius` or any valid CSS value to set `border-radius`, numbers are converted to rem
- **required** `boolean` _(default `false`)_ — Adds required attribute to the input and a red asterisk on the right side of label
- **rightSection** `React.ReactNode` — Content section displayed on the right side of the input
- **rightSectionPointerEvents** `React.CSSProperties["pointerEvents"]` _(default `'none'`)_ — Sets `pointer-events` styles on the `rightSection` element. Use `'all'` when section contains interactive elements (buttons, links).
- **rightSectionProps** `React.ComponentProps<"div">` — Props passed down to the `rightSection` element
- **rightSectionWidth** `React.CSSProperties["width"]` — Right section width, used to set `width` of the section and input `padding-right`, by default equals to the input height
- **size** `MantineSize` _(default `'sm'`)_ — Controls input `height`, horizontal `padding`, and `font-size`
- **success** `React.ReactNode` — Contents of `Input.Success` component. If not set, success is not displayed.
- **successProps** `InputSuccessProps & DataAttributes` — Props passed down to the `Input.Success` component
- **visibilityToggleButtonProps** `Record<string, any>` — Props passed down to the visibility toggle button
- **visibilityToggleIcon** `FC<{ reveal: boolean; }>` — A component to replace the visibility toggle icon
- **visible** `boolean` — If set, the input value is visible
- **withAsterisk** `boolean` _(default `false`)_ — If set, the required asterisk is displayed next to the label. Overrides `required` prop. Does not add required attribute to the input.
- **withErrorStyles** `boolean` _(default `true`)_ — Determines whether the input should have red border and red text color when the `error` prop is set
- **withSuccessStyles** `boolean` _(default `true`)_ — Determines whether the input should have green border when the `success` prop is set
- **wrapperProps** `WrapperProps` — Props passed down to the root element
Optional leading props map; remaining args are children.Pill — Removable and non-removable tags
Props (docgen 9.5.0):
boolean — Adds disabled attribute, applies disabled styles() => void — Called when the remove button is clickedMantineRadius | number (default 'xl') — Key of theme.radius or any valid CSS value to set border-radius. Numbers are converted to rem.CloseButtonProps & ClassAttributes<HTMLButtonElement> & ButtonHTMLAttributes<HTMLButtonElement> — Props passed down to the remove buttonMantineSize (default 'sm') — Controls pill font-size and paddingboolean (default false) — Controls visibility of the remove buttonOptional leading props map; remaining args are children.
Pill — Removable and non-removable tags https://mantine.dev/core/pill Props (docgen 9.5.0): - **disabled** `boolean` — Adds disabled attribute, applies disabled styles - **onRemove** `() => void` — Called when the remove button is clicked - **radius** `MantineRadius | number` _(default `'xl'`)_ — Key of `theme.radius` or any valid CSS value to set border-radius. Numbers are converted to rem. - **removeButtonProps** `CloseButtonProps & ClassAttributes<HTMLButtonElement> & ButtonHTMLAttributes<HTMLButtonElement>` — Props passed down to the remove button - **size** `MantineSize` _(default `'sm'`)_ — Controls pill `font-size` and `padding` - **withRemoveButton** `boolean` _(default `false`)_ — Controls visibility of the remove button Optional leading props map; remaining args are children.
PillGroup — Removable and non-removable tags (Pill family)
Optional leading props map; remaining args are children.
PillGroup — Removable and non-removable tags (Pill family) https://mantine.dev/core/pill Optional leading props map; remaining args are children.
PillsInput — Base component for custom tags inputs and multi selects
https://mantine.dev/core/pills-input
Props (docgen 9.5.0):
React.ReactNode — Contents of Input.Description component. If not set, description is not displayed.InputDescriptionProps — Props passed down to the Input.Description componentboolean — Sets disabled attribute on the input elementReact.ReactNode — Contents of Input.Error component. If not set, error is not displayed.InputErrorProps — Props passed down to the Input.Error component(children: ReactNode) => ReactNode (default React.Fragment) — Render function to wrap the input element. Useful for adding tooltips, popovers, or other wrappers around the input.string — HTML size attribute for the input element (number of visible characters)("input" | "label" | "description" | "error")[] (default ['label', 'description', 'input', 'error']) — Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.React.ReactNode — Contents of Input.Label component. If not set, label is not displayed.InputLabelProps — Props passed down to the Input.Label componentReact.ReactNode — Content section displayed on the left side of the inputReact.CSSProperties["pointerEvents"] (default 'none') — Sets pointer-events styles on the leftSection element. Use 'all' when section contains interactive elements (buttons, links).React.ComponentProps<"div"> — Props passed down to the leftSection elementReact.CSSProperties["width"] — Left section width, used to set width of the section and input padding-left, by default equals to the input heightboolean (default false) — Displays loading indicator in the left or right section"left" | "right" (default 'right') — Position of the loading indicatorboolean (default false) — Determines whether the input should have cursor: pointer style. Use when input acts as a button-like trigger (e.g., component="button" for Select/DatePicker).MantineRadius | number (default theme.defaultRadius) — Key of theme.radius or any valid CSS value to set border-radius, numbers are converted to remboolean (default false) — Adds required attribute to the input and a red asterisk on the right side of labelReact.ReactNode — Content section displayed on the right side of the inputReact.CSSProperties["pointerEvents"] (default 'none') — Sets pointer-events styles on the rightSection element. Use 'all' when section contains interactive elements (buttons, links).React.ComponentProps<"div"> — Props passed down to the rightSection elementReact.CSSProperties["width"] — Right section width, used to set width of the section and input padding-right, by default equals to the input heightMantineSize (default 'sm') — Controls input height, horizontal padding, and font-sizeReact.ReactNode — Contents of Input.Success component. If not set, success is not displayed.InputSuccessProps & DataAttributes — Props passed down to the Input.Success componentboolean (default false) — If set, the required asterisk is displayed next to the label. Overrides required prop. Does not add required attribute to the input.boolean (default true) — Determines whether the input should have red border and red text color when the error prop is setboolean (default true) — Determines whether the input should have green border when the success prop is setWrapperProps — Props passed down to the root elementOptional leading props map; remaining args are children.
PillsInput — Base component for custom tags inputs and multi selects
https://mantine.dev/core/pills-input
Props (docgen 9.5.0):
- **description** `React.ReactNode` — Contents of `Input.Description` component. If not set, description is not displayed.
- **descriptionProps** `InputDescriptionProps` — Props passed down to the `Input.Description` component
- **disabled** `boolean` — Sets `disabled` attribute on the `input` element
- **error** `React.ReactNode` — Contents of `Input.Error` component. If not set, error is not displayed.
- **errorProps** `InputErrorProps` — Props passed down to the `Input.Error` component
- **inputContainer** `(children: ReactNode) => ReactNode` _(default `React.Fragment`)_ — Render function to wrap the input element. Useful for adding tooltips, popovers, or other wrappers around the input.
- **inputSize** `string` — HTML `size` attribute for the input element (number of visible characters)
- **inputWrapperOrder** `("input" | "label" | "description" | "error")[]` _(default `['label', 'description', 'input', 'error']`)_ — Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.
- **label** `React.ReactNode` — Contents of `Input.Label` component. If not set, label is not displayed.
- **labelProps** `InputLabelProps` — Props passed down to the `Input.Label` component
- **leftSection** `React.ReactNode` — Content section displayed on the left side of the input
- **leftSectionPointerEvents** `React.CSSProperties["pointerEvents"]` _(default `'none'`)_ — Sets `pointer-events` styles on the `leftSection` element. Use `'all'` when section contains interactive elements (buttons, links).
- **leftSectionProps** `React.ComponentProps<"div">` — Props passed down to the `leftSection` element
- **leftSectionWidth** `React.CSSProperties["width"]` — Left section width, used to set `width` of the section and input `padding-left`, by default equals to the input height
- **loading** `boolean` _(default `false`)_ — Displays loading indicator in the left or right section
- **loadingPosition** `"left" | "right"` _(default `'right'`)_ — Position of the loading indicator
- **pointer** `boolean` _(default `false`)_ — Determines whether the input should have `cursor: pointer` style. Use when input acts as a button-like trigger (e.g., `component="button"` for Select/DatePicker).
- **radius** `MantineRadius | number` _(default `theme.defaultRadius`)_ — Key of `theme.radius` or any valid CSS value to set `border-radius`, numbers are converted to rem
- **required** `boolean` _(default `false`)_ — Adds required attribute to the input and a red asterisk on the right side of label
- **rightSection** `React.ReactNode` — Content section displayed on the right side of the input
- **rightSectionPointerEvents** `React.CSSProperties["pointerEvents"]` _(default `'none'`)_ — Sets `pointer-events` styles on the `rightSection` element. Use `'all'` when section contains interactive elements (buttons, links).
- **rightSectionProps** `React.ComponentProps<"div">` — Props passed down to the `rightSection` element
- **rightSectionWidth** `React.CSSProperties["width"]` — Right section width, used to set `width` of the section and input `padding-right`, by default equals to the input height
- **size** `MantineSize` _(default `'sm'`)_ — Controls input `height`, horizontal `padding`, and `font-size`
- **success** `React.ReactNode` — Contents of `Input.Success` component. If not set, success is not displayed.
- **successProps** `InputSuccessProps & DataAttributes` — Props passed down to the `Input.Success` component
- **withAsterisk** `boolean` _(default `false`)_ — If set, the required asterisk is displayed next to the label. Overrides `required` prop. Does not add required attribute to the input.
- **withErrorStyles** `boolean` _(default `true`)_ — Determines whether the input should have red border and red text color when the `error` prop is set
- **withSuccessStyles** `boolean` _(default `true`)_ — Determines whether the input should have green border when the `success` prop is set
- **wrapperProps** `WrapperProps` — Props passed down to the root element
Optional leading props map; remaining args are children.PillsInputField — Base component for custom tags inputs and multi selects (PillsInput family)
https://mantine.dev/core/pills-input
Props (docgen 9.5.0):
boolean — If set, cursor is changed to pointer"hidden" | "auto" | "visible" (default 'visible') — Controls input styles when focused. If auto the input is hidden when not focused. If visible the input will always remain visible.Optional leading props map; remaining args are children.
PillsInputField — Base component for custom tags inputs and multi selects (PillsInput family) https://mantine.dev/core/pills-input Props (docgen 9.5.0): - **pointer** `boolean` — If set, cursor is changed to pointer - **type** `"hidden" | "auto" | "visible"` _(default `'visible'`)_ — Controls input styles when focused. If `auto` the input is hidden when not focused. If `visible` the input will always remain visible. Optional leading props map; remaining args are children.
PinInput — Capture pin code or one time password from the user
https://mantine.dev/core/pin-input
Props (docgen 9.5.0):
string — aria-label attributeboolean (default false) — If set, the first input is focused when component is mountedstring — Uncontrolled component default valueboolean — Adds disabled attribute to all inputsboolean — Sets aria-invalid attribute and applies error styles to all inputsstring — Hidden input form attributeMantineSpacing (default 'md') — Key of theme.spacing or any valid CSS value to set gap between inputs, numbers are converted to rem(index: number) => InputProps & ElementProps<"input", "size"> & DataAttributes — Props added to the input element depending on its indexReact.ComponentProps<"input"> — Props passed down to the hidden inputstring — Base id used to generate unique ids for inputs"search" | "text" | "none" | "tel" | "url" | "email" | "numeric" | "decimal" — inputmode attribute, inferred from the type prop if not specifiedHTMLInputTypeAttribute — Inputs type attribute, inferred from the type prop if not specifiednumber (default 4) — Number of inputsboolean (default true) — Determines whether focus should be moved automatically to the next input once filledboolean (default false) — Changes input type to "password"string — Hidden input name attribute(value: string) => void — Called when value changes(value: string) => void — Called when all inputs have valueboolean (default true) — Determines whether autocomplete="one-time-code" attribute should be set on all inputsstring (default '○') — Inputs placeholderMantineRadius | number (default theme.defaultRadius) — Key of theme.radius or any valid CSS value to set border-radius, numbers are converted to remboolean — If set, the user cannot edit the valueRef<HTMLDivElement> — Assigns ref of the root elementMantineSize (default 'sm') — Controls inputs width and heightboolean — Applies success styles to all inputs"number" | RegExp | "alphanumeric" (default 'alphanumeric') — Determines which values can be enteredstring — Controlled component valueOptional leading props map; remaining args are children.
PinInput — Capture pin code or one time password from the user https://mantine.dev/core/pin-input Props (docgen 9.5.0): - **ariaLabel** `string` — `aria-label` attribute - **autoFocus** `boolean` _(default `false`)_ — If set, the first input is focused when component is mounted - **defaultValue** `string` — Uncontrolled component default value - **disabled** `boolean` — Adds disabled attribute to all inputs - **error** `boolean` — Sets `aria-invalid` attribute and applies error styles to all inputs - **form** `string` — Hidden input `form` attribute - **gap** `MantineSpacing` _(default `'md'`)_ — Key of `theme.spacing` or any valid CSS value to set `gap` between inputs, numbers are converted to rem - **getInputProps** `(index: number) => InputProps & ElementProps<"input", "size"> & DataAttributes` — Props added to the input element depending on its index - **hiddenInputProps** `React.ComponentProps<"input">` — Props passed down to the hidden input - **id** `string` — Base id used to generate unique ids for inputs - **inputMode** `"search" | "text" | "none" | "tel" | "url" | "email" | "numeric" | "decimal"` — `inputmode` attribute, inferred from the `type` prop if not specified - **inputType** `HTMLInputTypeAttribute` — Inputs `type` attribute, inferred from the `type` prop if not specified - **length** `number` _(default `4`)_ — Number of inputs - **manageFocus** `boolean` _(default `true`)_ — Determines whether focus should be moved automatically to the next input once filled - **mask** `boolean` _(default `false`)_ — Changes input type to `"password"` - **name** `string` — Hidden input `name` attribute - **onChange** `(value: string) => void` — Called when value changes - **onComplete** `(value: string) => void` — Called when all inputs have value - **oneTimeCode** `boolean` _(default `true`)_ — Determines whether `autocomplete="one-time-code"` attribute should be set on all inputs - **placeholder** `string` _(default `'○'`)_ — Inputs placeholder - **radius** `MantineRadius | number` _(default `theme.defaultRadius`)_ — Key of `theme.radius` or any valid CSS value to set `border-radius`, numbers are converted to rem - **readOnly** `boolean` — If set, the user cannot edit the value - **rootRef** `Ref<HTMLDivElement>` — Assigns ref of the root element - **size** `MantineSize` _(default `'sm'`)_ — Controls inputs `width` and `height` - **success** `boolean` — Applies success styles to all inputs - **type** `"number" | RegExp | "alphanumeric"` _(default `'alphanumeric'`)_ — Determines which values can be entered - **value** `string` — Controlled component value Optional leading props map; remaining args are children.
Popover — Display popover section relative to given target element
https://mantine.dev/core/popover
Props (docgen 9.5.0):
number (default 5) — Arrow offset in px'center' | 'side' — Arrow positionnumber (default 0) — Arrow border-radius in pxnumber (default 7) — Arrow size in pxReact.ReactNode — Popover.Target and Popover.Dropdown componentsstring[] — Events that trigger outside clicksboolean (default true) — Determines whether dropdown should be closed on outside clicksboolean (default true) — Determines whether dropdown should be closed when Escape key is pressedboolean — Initial opened state for uncontrolled componentboolean — If set, popover dropdown will not be renderedFloatingStrategy (default 'absolute') — Changes floating ui position strategyboolean (default true) — If set, the dropdown is hidden when the element is hidden with styles or not visible on the screenstring — Id base to create accessibility connectionsboolean — If set, the dropdown is not unmounted from the DOM when hidden. display: none styles are added instead."activity" | "display-none" (default 'activity') — Controls how the dropdown is hidden when keepMounted is set: 'activity' – hidden with React 19 Activity component, 'display-none' – hidden with display: none stylesPopoverMiddlewares (default { flip: true, shift: true, inline: false }) — Floating ui middlewares to configure position handlingnumber | FloatingAxesOffsets (default 8) — Offset of the dropdown element(opened: boolean) => void — Called with current state when dropdown opens or closes() => void — Called when dropdown closes() => void — Called when the popover is dismissed by clicking outside or by pressing escape() => void — Called when enter transition ends() => void — Called when exit transition ends() => void — Called when dropdown opens(position: FloatingPosition) => void — Called when dropdown position changesboolean — Controlled dropdown opened stateOverlayProps & ElementProps<"div"> — Props passed down to Overlay componentBasePortalProps — Props to pass down to the Portal when withinPortal is trueFloatingPosition (default 'bottom') — Dropdown position relative to the target elementboolean (default true) — If true, the dropdown picks its side on open (flip runs once, preferring the position prop) and then never changes side — scrolling, resizing, and content size changes will not flip the dropdown. The side is recalculated fresh on the next open. Does not affect the shift middleware. Set to false to keep flip active and allow the dropdown to re-flip on every change.MantineRadius | number (default theme.defaultRadius) — Key of theme.radius or any valid CSS value to set border-radiusboolean (default false) — Determines whether focus should be automatically returned to control when dropdown closesMantineShadow — Key of theme.shadows or any other valid CSS box-shadow valueTransitionProps (default { duration: 150, transition: 'fade' }) — Props passed down to the Transition component. Use to configure duration and animation type.boolean (default false) — Determines whether focus should be trapped within dropdownPopoverWidth (default 'max-content') — Dropdown width, or 'target' to make dropdown width the same as target elementboolean (default false) — Determines whether component should have an arrowboolean (default false) — Determines whether the overlay should be displayed when the dropdown is openedboolean (default true) — Determines whether dropdown and target elements should have accessible rolesboolean (default true) — Determines whether dropdown should be rendered within the Portalstring | number (default 300) — Dropdown z-indexOptional leading props map; remaining args are children.
Popover — Display popover section relative to given target element
https://mantine.dev/core/popover
Props (docgen 9.5.0):
- **arrowOffset** `number` _(default `5`)_ — Arrow offset in px
- **arrowPosition** `'center' | 'side'` — Arrow position
- **arrowRadius** `number` _(default `0`)_ — Arrow `border-radius` in px
- **arrowSize** `number` _(default `7`)_ — Arrow size in px
- **children** `React.ReactNode` — `Popover.Target` and `Popover.Dropdown` components
- **clickOutsideEvents** `string[]` — Events that trigger outside clicks
- **closeOnClickOutside** `boolean` _(default `true`)_ — Determines whether dropdown should be closed on outside clicks
- **closeOnEscape** `boolean` _(default `true`)_ — Determines whether dropdown should be closed when `Escape` key is pressed
- **defaultOpened** `boolean` — Initial opened state for uncontrolled component
- **disabled** `boolean` — If set, popover dropdown will not be rendered
- **floatingStrategy** `FloatingStrategy` _(default `'absolute'`)_ — Changes floating ui [position strategy](https://floating-ui.com/docs/usefloating#strategy)
- **hideDetached** `boolean` _(default `true`)_ — If set, the dropdown is hidden when the element is hidden with styles or not visible on the screen
- **id** `string` — Id base to create accessibility connections
- **keepMounted** `boolean` — If set, the dropdown is not unmounted from the DOM when hidden. `display: none` styles are added instead.
- **keepMountedMode** `"activity" | "display-none"` _(default `'activity'`)_ — Controls how the dropdown is hidden when `keepMounted` is set: `'activity'` – hidden with React 19 `Activity` component, `'display-none'` – hidden with `display: none` styles
- **middlewares** `PopoverMiddlewares` _(default `{ flip: true, shift: true, inline: false }`)_ — Floating ui middlewares to configure position handling
- **offset** `number | FloatingAxesOffsets` _(default `8`)_ — Offset of the dropdown element
- **onChange** `(opened: boolean) => void` — Called with current state when dropdown opens or closes
- **onClose** `() => void` — Called when dropdown closes
- **onDismiss** `() => void` — Called when the popover is dismissed by clicking outside or by pressing escape
- **onEnterTransitionEnd** `() => void` — Called when enter transition ends
- **onExitTransitionEnd** `() => void` — Called when exit transition ends
- **onOpen** `() => void` — Called when dropdown opens
- **onPositionChange** `(position: FloatingPosition) => void` — Called when dropdown position changes
- **opened** `boolean` — Controlled dropdown opened state
- **overlayProps** `OverlayProps & ElementProps<"div">` — Props passed down to `Overlay` component
- **portalProps** `BasePortalProps` — Props to pass down to the `Portal` when `withinPortal` is true
- **position** `FloatingPosition` _(default `'bottom'`)_ — Dropdown position relative to the target element
- **preventPositionChangeWhenVisible** `boolean` _(default `true`)_ — If `true`, the dropdown picks its side on open (flip runs once, preferring the `position` prop) and then never changes side — scrolling, resizing, and content size changes will not flip the dropdown. The side is recalculated fresh on the next open. Does not affect the `shift` middleware. Set to `false` to keep flip active and allow the dropdown to re-flip on every change.
- **radius** `MantineRadius | number` _(default `theme.defaultRadius`)_ — Key of `theme.radius` or any valid CSS value to set border-radius
- **returnFocus** `boolean` _(default `false`)_ — Determines whether focus should be automatically returned to control when dropdown closes
- **shadow** `MantineShadow` — Key of `theme.shadows` or any other valid CSS `box-shadow` value
- **transitionProps** `TransitionProps` _(default `{ duration: 150, transition: 'fade' }`)_ — Props passed down to the `Transition` component. Use to configure duration and animation type.
- **trapFocus** `boolean` _(default `false`)_ — Determines whether focus should be trapped within dropdown
- **width** `PopoverWidth` _(default `'max-content'`)_ — Dropdown width, or `'target'` to make dropdown width the same as target element
- **withArrow** `boolean` _(default `false`)_ — Determines whether component should have an arrow
- **withOverlay** `boolean` _(default `false`)_ — Determines whether the overlay should be displayed when the dropdown is opened
- **withRoles** `boolean` _(default `true`)_ — Determines whether dropdown and target elements should have accessible roles
- **withinPortal** `boolean` _(default `true`)_ — Determines whether dropdown should be rendered within the `Portal`
- **zIndex** `string | number` _(default `300`)_ — Dropdown `z-index`
Optional leading props map; remaining args are children.PopoverContextMenu — Display popover section relative to given target element (Popover family)
https://mantine.dev/core/popover
Props (docgen 9.5.0):
React.ReactNode (required) — Element that opens the popover when right-clicked. Dropdown is positioned at the cursor. The trigger element must not call event.preventDefault() in its own onContextMenu handler, otherwise the native context menu is not suppressed.boolean — If set, the right-click trigger is disabled and the browser's default context menu is shownnumber — Delay in ms before a touch long-press opens the dropdown on touch devices, 500 by defaultOptional leading props map; remaining args are children.
PopoverContextMenu — Display popover section relative to given target element (Popover family) https://mantine.dev/core/popover Props (docgen 9.5.0): - **children** `React.ReactNode` **(required)** — Element that opens the popover when right-clicked. Dropdown is positioned at the cursor. The trigger element must not call `event.preventDefault()` in its own `onContextMenu` handler, otherwise the native context menu is not suppressed. - **disabled** `boolean` — If set, the right-click trigger is disabled and the browser's default context menu is shown - **longPressDelay** `number` — Delay in ms before a touch long-press opens the dropdown on touch devices, `500` by default Optional leading props map; remaining args are children.
PopoverDropdown
Optional leading props map; remaining args are children.
PopoverDropdown Optional leading props map; remaining args are children.
PopoverTarget — Display popover section relative to given target element (Popover family)
https://mantine.dev/core/popover
Props (docgen 9.5.0):
React.ReactNode (required) — Target elementstring (default 'dialog') — Popup accessible typestring — Key of the prop that should be used to access element refOptional leading props map; remaining args are children.
PopoverTarget — Display popover section relative to given target element (Popover family) https://mantine.dev/core/popover Props (docgen 9.5.0): - **children** `React.ReactNode` **(required)** — Target element - **popupType** `string` _(default `'dialog'`)_ — Popup accessible type - **refProp** `string` — Key of the prop that should be used to access element ref Optional leading props map; remaining args are children.
Portal — Renders component outside of parent element tree
https://mantine.dev/core/portal
Props (docgen 9.5.0):
React.ReactNode (required) — Content to render inside the portalboolean (default true) — When true and target is not specified, all Portal instances share a single container node appended to document.body. When false, each Portal creates its own container node. Has no effect when target is specified.string | HTMLElement — Target element where portal should be rendered. Accepts: - HTMLElement: Renders portal inside this element - string: CSS selector - renders inside first matching element - undefined: Uses shared portal node or creates new one based on reuseTargetNode Note: If selector doesn't match any element, portal will not renderOptional leading props map; remaining args are children.
Portal — Renders component outside of parent element tree https://mantine.dev/core/portal Props (docgen 9.5.0): - **children** `React.ReactNode` **(required)** — Content to render inside the portal - **reuseTargetNode** `boolean` _(default `true`)_ — When true and target is not specified, all Portal instances share a single container node appended to document.body. When false, each Portal creates its own container node. Has no effect when target is specified. - **target** `string | HTMLElement` — Target element where portal should be rendered. Accepts: - HTMLElement: Renders portal inside this element - string: CSS selector - renders inside first matching element - undefined: Uses shared portal node or creates new one based on `reuseTargetNode` Note: If selector doesn't match any element, portal will not render Optional leading props map; remaining args are children.
Progress — Give user feedback for status of the task
https://mantine.dev/core/progress
Props (docgen 9.5.0):
boolean (default false) — If set, the sections stripes are animated (automatically enables striped)boolean — If set, adjusts label text color based on section background color for readabilityMantineColor (default theme.primaryColor) — Key of theme.colors or any valid CSS value"horizontal" | "vertical" (default 'horizontal') — Controls orientationMantineRadius | number (default theme.defaultRadius) — Key of theme.radius or any valid CSS value to set border-radiusMantineSize | number (default 'md') — Controls track heightboolean (default false) — If set, the section has stripesnumber (default 100) — Controls sections width transition duration, value is specified in msnumber (required) — Value of the progressOptional leading props map; remaining args are children.
Progress — Give user feedback for status of the task https://mantine.dev/core/progress Props (docgen 9.5.0): - **animated** `boolean` _(default `false`)_ — If set, the sections stripes are animated (automatically enables striped) - **autoContrast** `boolean` — If set, adjusts label text color based on section background color for readability - **color** `MantineColor` _(default `theme.primaryColor`)_ — Key of `theme.colors` or any valid CSS value - **orientation** `"horizontal" | "vertical"` _(default `'horizontal'`)_ — Controls orientation - **radius** `MantineRadius | number` _(default `theme.defaultRadius`)_ — Key of `theme.radius` or any valid CSS value to set `border-radius` - **size** `MantineSize | number` _(default `'md'`)_ — Controls track height - **striped** `boolean` _(default `false`)_ — If set, the section has stripes - **transitionDuration** `number` _(default `100`)_ — Controls sections width transition duration, value is specified in ms - **value** `number` **(required)** — Value of the progress Optional leading props map; remaining args are children.
Progress.Label — compound part of Progress (docgen omits it). Optional leading props map; remaining args are children.
Progress.Label — compound part of Progress (docgen omits it). Optional leading props map; remaining args are children.
ProgressRoot — Give user feedback for status of the task (Progress family)
https://mantine.dev/core/progress
Props (docgen 9.5.0):
boolean — If set, adjusts label text color based on section background color for readability"horizontal" | "vertical" (default 'horizontal') — Controls orientationMantineRadius | number (default theme.defaultRadius) — Key of theme.radius or any valid CSS value to set border-radiusMantineSize | number (default 'md') — Controls track heightnumber (default 100) — Controls sections width transition duration, value is specified in msOptional leading props map; remaining args are children.
ProgressRoot — Give user feedback for status of the task (Progress family) https://mantine.dev/core/progress Props (docgen 9.5.0): - **autoContrast** `boolean` — If set, adjusts label text color based on section background color for readability - **orientation** `"horizontal" | "vertical"` _(default `'horizontal'`)_ — Controls orientation - **radius** `MantineRadius | number` _(default `theme.defaultRadius`)_ — Key of `theme.radius` or any valid CSS value to set `border-radius` - **size** `MantineSize | number` _(default `'md'`)_ — Controls track height - **transitionDuration** `number` _(default `100`)_ — Controls sections width transition duration, value is specified in ms Optional leading props map; remaining args are children.
ProgressSection — Give user feedback for status of the task (Progress family)
https://mantine.dev/core/progress
Props (docgen 9.5.0):
boolean (default false) — If set, the sections stripes are animated, striped prop is ignoredMantineColor (default theme.primaryColor) — Key of theme.colors or any valid CSS valueboolean (default false) — If set, the section has stripesnumber (required) — Value of the section in 0–100 rangeboolean (default true) — Determines whether aria-* props should be added to the root elementOptional leading props map; remaining args are children.
ProgressSection — Give user feedback for status of the task (Progress family) https://mantine.dev/core/progress Props (docgen 9.5.0): - **animated** `boolean` _(default `false`)_ — If set, the sections stripes are animated, `striped` prop is ignored - **color** `MantineColor` _(default `theme.primaryColor`)_ — Key of `theme.colors` or any valid CSS value - **striped** `boolean` _(default `false`)_ — If set, the section has stripes - **value** `number` **(required)** — Value of the section in 0–100 range - **withAria** `boolean` _(default `true`)_ — Determines whether `aria-*` props should be added to the root element Optional leading props map; remaining args are children.
Radio — Wrapper for input type radio
https://mantine.dev/core/radio
Props (docgen 9.5.0):
boolean — If set, adjusts text color based on background color for filled variantMantineColor (default theme.primaryColor) — Key of theme.colors or any valid CSS color to set radio background color in checked stateReact.ReactNode — Description displayed below the labelReact.ReactNode — Error displayed below the labelFC<RadioIconProps> — A component that replaces the default radio icon (centered dot)MantineColor — Key of theme.colors or any valid CSS color to set icon color. When not set, icon color is determined automatically based on theme.autoContrast settingReact.ReactNode — Content of the label associated with the radio"left" | "right" (default 'right') — Position of the label relative to the inputMantineRadius | number (default 'xl') — Key of theme.radius or any valid CSS value to set border-radiusRef<HTMLDivElement> — Assigns ref of the root elementMantineSize (default 'sm') — Controls size of the componentboolean (default true) — If set, applies error styles to the radio when error prop is setReact.ComponentProps<"div"> — Props passed down to the root elementOptional leading props map; remaining args are children.
Radio — Wrapper for input type radio https://mantine.dev/core/radio Props (docgen 9.5.0): - **autoContrast** `boolean` — If set, adjusts text color based on background color for `filled` variant - **color** `MantineColor` _(default `theme.primaryColor`)_ — Key of theme.colors or any valid CSS color to set radio background color in checked state - **description** `React.ReactNode` — Description displayed below the label - **error** `React.ReactNode` — Error displayed below the label - **icon** `FC<RadioIconProps>` — A component that replaces the default radio icon (centered dot) - **iconColor** `MantineColor` — Key of theme.colors or any valid CSS color to set icon color. When not set, icon color is determined automatically based on theme.autoContrast setting - **label** `React.ReactNode` — Content of the `label` associated with the radio - **labelPosition** `"left" | "right"` _(default `'right'`)_ — Position of the label relative to the input - **radius** `MantineRadius | number` _(default `'xl'`)_ — Key of `theme.radius` or any valid CSS value to set `border-radius` - **rootRef** `Ref<HTMLDivElement>` — Assigns ref of the root element - **size** `MantineSize` _(default `'sm'`)_ — Controls size of the component - **withErrorStyles** `boolean` _(default `true`)_ — If set, applies error styles to the radio when `error` prop is set - **wrapperProps** `React.ComponentProps<"div">` — Props passed down to the root element Optional leading props map; remaining args are children.
RadioCard — Wrapper for input type radio (Radio family)
https://mantine.dev/core/radio
Props (docgen 9.5.0):
boolean — Checked statestring — Value used to associate all related radio cards, required for accessibility if used outside of Radio.GroupMantineRadius | number (default theme.defaultRadius) — Key of theme.radius or any valid CSS value to set border-radius, numbers are converted to remstring — Value of the radio, used with Radio.Groupboolean — Adds border to the root elementOptional leading props map; remaining args are children.
RadioCard — Wrapper for input type radio (Radio family) https://mantine.dev/core/radio Props (docgen 9.5.0): - **checked** `boolean` — Checked state - **name** `string` — Value used to associate all related radio cards, required for accessibility if used outside of `Radio.Group` - **radius** `MantineRadius | number` _(default `theme.defaultRadius`)_ — Key of `theme.radius` or any valid CSS value to set `border-radius`, numbers are converted to rem - **value** `string` — Value of the radio, used with Radio.Group - **withBorder** `boolean` — Adds border to the root element Optional leading props map; remaining args are children.
RadioCardContext
Optional leading props map; remaining args are children.
RadioCardContext Optional leading props map; remaining args are children.
RadioGroup — Wrapper for input type radio (Radio family)
https://mantine.dev/core/radio
Props (docgen 9.5.0):
React.ReactNode (required) — Radio components and any other elementsPrimitive | null — Uncontrolled component default valueReact.ReactNode — Contents of Input.Description component. If not set, description is not displayed.InputDescriptionProps — Props passed down to the Input.Description componentboolean — Sets disabled attribute, prevents interactionsReact.ReactNode — Contents of Input.Error component. If not set, error is not displayed.InputErrorProps — Props passed down to the Input.Error componentstring — Static id used as base to generate aria- attributes, by default generates random id(children: ReactNode) => ReactNode (default React.Fragment) — Render function to wrap the input element. Useful for adding tooltips, popovers, or other wrappers around the input.("input" | "label" | "description" | "error")[] (default ['label', 'description', 'input', 'error']) — Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.React.ReactNode — Contents of Input.Label component. If not set, label is not displayed."div" | "label" (default 'label') — Root element for the label. Use 'div' when wrapper contains multiple input elements and you need to handle htmlFor manually.InputLabelProps — Props passed down to the Input.Label componentstring — name attribute of child radio inputs. By default, name is generated randomly.(value: Value) => void — Called when value changesboolean — If set, value cannot be changedboolean (default false) — Adds required attribute to the input and a red asterisk on the right side of labelMantineSize (default 'sm') — Controls size of the Input.WrapperReact.ReactNode — Contents of Input.Success component. If not set, success is not displayed.InputSuccessProps & DataAttributes — Props passed down to the Input.Success componentPrimitive | null — Controlled component valueboolean (default false) — If set, the required asterisk is displayed next to the label. Overrides required prop. Does not add required attribute to the input.React.ComponentProps<"div"> — Props passed down to the Input.WrapperOptional leading props map; remaining args are children.
RadioGroup — Wrapper for input type radio (Radio family)
https://mantine.dev/core/radio
Props (docgen 9.5.0):
- **children** `React.ReactNode` **(required)** — `Radio` components and any other elements
- **defaultValue** `Primitive | null` — Uncontrolled component default value
- **description** `React.ReactNode` — Contents of `Input.Description` component. If not set, description is not displayed.
- **descriptionProps** `InputDescriptionProps` — Props passed down to the `Input.Description` component
- **disabled** `boolean` — Sets `disabled` attribute, prevents interactions
- **error** `React.ReactNode` — Contents of `Input.Error` component. If not set, error is not displayed.
- **errorProps** `InputErrorProps` — Props passed down to the `Input.Error` component
- **id** `string` — Static id used as base to generate `aria-` attributes, by default generates random id
- **inputContainer** `(children: ReactNode) => ReactNode` _(default `React.Fragment`)_ — Render function to wrap the input element. Useful for adding tooltips, popovers, or other wrappers around the input.
- **inputWrapperOrder** `("input" | "label" | "description" | "error")[]` _(default `['label', 'description', 'input', 'error']`)_ — Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.
- **label** `React.ReactNode` — Contents of `Input.Label` component. If not set, label is not displayed.
- **labelElement** `"div" | "label"` _(default `'label'`)_ — Root element for the label. Use `'div'` when wrapper contains multiple input elements and you need to handle `htmlFor` manually.
- **labelProps** `InputLabelProps` — Props passed down to the `Input.Label` component
- **name** `string` — `name` attribute of child radio inputs. By default, `name` is generated randomly.
- **onChange** `(value: Value) => void` — Called when value changes
- **readOnly** `boolean` — If set, value cannot be changed
- **required** `boolean` _(default `false`)_ — Adds required attribute to the input and a red asterisk on the right side of label
- **size** `MantineSize` _(default `'sm'`)_ — Controls size of the `Input.Wrapper`
- **success** `React.ReactNode` — Contents of `Input.Success` component. If not set, success is not displayed.
- **successProps** `InputSuccessProps & DataAttributes` — Props passed down to the `Input.Success` component
- **value** `Primitive | null` — Controlled component value
- **withAsterisk** `boolean` _(default `false`)_ — If set, the required asterisk is displayed next to the label. Overrides `required` prop. Does not add required attribute to the input.
- **wrapperProps** `React.ComponentProps<"div">` — Props passed down to the `Input.Wrapper`
Optional leading props map; remaining args are children.RadioGroupContext
Optional leading props map; remaining args are children.
RadioGroupContext Optional leading props map; remaining args are children.
RadioIndicator — Wrapper for input type radio (Radio family)
https://mantine.dev/core/radio
Props (docgen 9.5.0):
boolean — If set, adjusts text color based on background color for filled variantboolean — Checked stateMantineColor (default theme.primaryColor) — Key of theme.colors or any valid CSS color to set indicator background color in checked stateboolean — Disabled stateFC<RadioIconProps> — A component that replaces the default radio icon (centered dot)MantineColor — Key of theme.colors or any valid CSS color to set icon color. When not set, icon color is determined automatically based on theme.autoContrast settingMantineRadius | number (default theme.defaultRadius) — Key of theme.radius or any valid CSS value to set border-radiusMantineSize | number (default 'sm') — Controls size of the componentOptional leading props map; remaining args are children.
RadioIndicator — Wrapper for input type radio (Radio family) https://mantine.dev/core/radio Props (docgen 9.5.0): - **autoContrast** `boolean` — If set, adjusts text color based on background color for `filled` variant - **checked** `boolean` — Checked state - **color** `MantineColor` _(default `theme.primaryColor`)_ — Key of theme.colors or any valid CSS color to set indicator background color in checked state - **disabled** `boolean` — Disabled state - **icon** `FC<RadioIconProps>` — A component that replaces the default radio icon (centered dot) - **iconColor** `MantineColor` — Key of theme.colors or any valid CSS color to set icon color. When not set, icon color is determined automatically based on theme.autoContrast setting - **radius** `MantineRadius | number` _(default `theme.defaultRadius`)_ — Key of `theme.radius` or any valid CSS value to set `border-radius` - **size** `MantineSize | number` _(default `'sm'`)_ — Controls size of the component Optional leading props map; remaining args are children.
RangeSlider — RangeSlider component
https://mantine.dev/core/range-slider
Props (docgen 9.5.0):
MantineColor (default theme.primaryColor) — Key of theme.colors or any valid CSS color, controls color of track and thumbRangeSliderValue — Uncontrolled component default valueboolean — Disables slider[number, number] (default [min, max]) — Domain of the slider, defines the selectable value range independently of min/max. Useful when you want to display a wider track range (min/max) but restrict actual selection to a subset (domain).React.ComponentProps<"input"> — Props passed down to the hidden inputboolean (default false) — Determines whether track values representation should be invertedReactNode | ((value: number) => ReactNode) — Function to generate label or any react node to render instead, set to null to disable labelboolean (default false) — Determines whether the label should be visible when the slider is not being dragged or hoveredTransitionProps (default { transition: 'fade', duration: 0 }) — Props passed down to the Transition componentSliderMark[] — Marks displayed on the tracknumber (default 100) — Maximum possible valuenumber (default Infinity) — Maximum range intervalnumber (default 0) — Minimal possible valuenumber (default 10) — Minimal range interval between the two thumbs. Consider this value relative to the total range (max - min).string — Hidden input name, use with uncontrolled component(value: RangeSliderValue) => void — Called when value changes(value: RangeSliderValue) => void — Called when user stops dragging slider or changes value with arrows"horizontal" | "vertical" (default 'horizontal') — Slider orientationnumber — Number of significant digits after the decimal pointboolean (default true) — Determines whether the other thumb should be pushed by the current thumb dragging when minRange/maxRange is reachedMantineRadius | number (default 'xl') — Key of theme.radius or any valid CSS value to set border-radius, numbers are converted to remboolean (default false) — Determines whether the selection should be only allowed from the given marks array(value: number) => number — A transformation function to change the scale of the sliderboolean (default true) — Determines whether the label should be displayed when the slider is hoveredMantineSize | number (default 'md') — Controls size of the tracknumber (default 1) — Number by which value will be incremented/decremented with thumb drag and arrowsReact.ReactNode — Content rendered inside thumbstring — First thumb aria-labelstring — aria-label for both thumbs (overridden by thumbFromLabel/thumbToLabel if provided)(index: 0 | 1) => DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement> — Props passed down to thumb element based on the thumb indexstring | number — Thumb width and height, by default value is computed based on size propstring — Second thumb aria-labelstring | ((value: number) => string) — aria-valuetext for both thumbs. When a function is provided, it receives the scaled value.RangeSliderValue — Controlled component valueOptional leading props map; remaining args are children.
RangeSlider — RangeSlider component
https://mantine.dev/core/range-slider
Props (docgen 9.5.0):
- **color** `MantineColor` _(default `theme.primaryColor`)_ — Key of `theme.colors` or any valid CSS color, controls color of track and thumb
- **defaultValue** `RangeSliderValue` — Uncontrolled component default value
- **disabled** `boolean` — Disables slider
- **domain** `[number, number]` _(default `[min, max]`)_ — Domain of the slider, defines the selectable value range independently of min/max. Useful when you want to display a wider track range (min/max) but restrict actual selection to a subset (domain).
- **hiddenInputProps** `React.ComponentProps<"input">` — Props passed down to the hidden input
- **inverted** `boolean` _(default `false`)_ — Determines whether track values representation should be inverted
- **label** `ReactNode | ((value: number) => ReactNode)` — Function to generate label or any react node to render instead, set to null to disable label
- **labelAlwaysOn** `boolean` _(default `false`)_ — Determines whether the label should be visible when the slider is not being dragged or hovered
- **labelTransitionProps** `TransitionProps` _(default `{ transition: 'fade', duration: 0 }`)_ — Props passed down to the `Transition` component
- **marks** `SliderMark[]` — Marks displayed on the track
- **max** `number` _(default `100`)_ — Maximum possible value
- **maxRange** `number` _(default `Infinity`)_ — Maximum range interval
- **min** `number` _(default `0`)_ — Minimal possible value
- **minRange** `number` _(default `10`)_ — Minimal range interval between the two thumbs. Consider this value relative to the total range (max - min).
- **name** `string` — Hidden input name, use with uncontrolled component
- **onChange** `(value: RangeSliderValue) => void` — Called when value changes
- **onChangeEnd** `(value: RangeSliderValue) => void` — Called when user stops dragging slider or changes value with arrows
- **orientation** `"horizontal" | "vertical"` _(default `'horizontal'`)_ — Slider orientation
- **precision** `number` — Number of significant digits after the decimal point
- **pushOnOverlap** `boolean` _(default `true`)_ — Determines whether the other thumb should be pushed by the current thumb dragging when `minRange`/`maxRange` is reached
- **radius** `MantineRadius | number` _(default `'xl'`)_ — Key of `theme.radius` or any valid CSS value to set `border-radius`, numbers are converted to rem
- **restrictToMarks** `boolean` _(default `false`)_ — Determines whether the selection should be only allowed from the given marks array
- **scale** `(value: number) => number` — A transformation function to change the scale of the slider
- **showLabelOnHover** `boolean` _(default `true`)_ — Determines whether the label should be displayed when the slider is hovered
- **size** `MantineSize | number` _(default `'md'`)_ — Controls size of the track
- **step** `number` _(default `1`)_ — Number by which value will be incremented/decremented with thumb drag and arrows
- **thumbChildren** `React.ReactNode` — Content rendered inside thumb
- **thumbFromLabel** `string` — First thumb `aria-label`
- **thumbLabel** `string` — `aria-label` for both thumbs (overridden by thumbFromLabel/thumbToLabel if provided)
- **thumbProps** `(index: 0 | 1) => DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement>` — Props passed down to thumb element based on the thumb index
- **thumbSize** `string | number` — Thumb `width` and `height`, by default value is computed based on `size` prop
- **thumbToLabel** `string` — Second thumb `aria-label`
- **thumbValueText** `string | ((value: number) => string)` — `aria-valuetext` for both thumbs. When a function is provided, it receives the scaled value.
- **value** `RangeSliderValue` — Controlled component value
Optional leading props map; remaining args are children.Rating — Pick and display rating
https://mantine.dev/core/rating
Props (docgen 9.5.0):
boolean — When true, clicking the same rating value clears the rating to 0, default is falseMantineColor — Key of theme.colors or any CSS color value, default is 'yellow'number — Number of rating items (stars), default is 5number — Uncontrolled component default valueReactNode | ((value: number) => ReactNode) — Icon displayed for unselected rating items. Can be a function that receives the rating value.number — Number of fractions each item can be divided into, default is 1ReactNode | ((value: number) => ReactNode) — Icon displayed for selected rating items. Can be a function that receives the rating value.(index: number) => string — Function to generate aria-label for each rating value. Receives the rating value as argument, default is (value) => String(value)boolean — When true, only the clicked rating item is highlighted, not all items up to the selected value, default is falsestring — Name attribute for form submission. If not provided, a unique id will be generated.(value: number) => void — Called when value changes(value: number) => void — Called when rating item is hovered. Receives -1 when hover ends.boolean — When true, rating cannot be changed by user interaction, default is falseMantineSize | number (default 'sm') — Controls component sizenumber — Controlled component valueOptional leading props map; remaining args are children.
Rating — Pick and display rating https://mantine.dev/core/rating Props (docgen 9.5.0): - **allowClear** `boolean` — When true, clicking the same rating value clears the rating to 0, default is false - **color** `MantineColor` — Key of theme.colors or any CSS color value, default is 'yellow' - **count** `number` — Number of rating items (stars), default is 5 - **defaultValue** `number` — Uncontrolled component default value - **emptySymbol** `ReactNode | ((value: number) => ReactNode)` — Icon displayed for unselected rating items. Can be a function that receives the rating value. - **fractions** `number` — Number of fractions each item can be divided into, default is 1 - **fullSymbol** `ReactNode | ((value: number) => ReactNode)` — Icon displayed for selected rating items. Can be a function that receives the rating value. - **getSymbolLabel** `(index: number) => string` — Function to generate aria-label for each rating value. Receives the rating value as argument, default is (value) => String(value) - **highlightSelectedOnly** `boolean` — When true, only the clicked rating item is highlighted, not all items up to the selected value, default is false - **name** `string` — Name attribute for form submission. If not provided, a unique id will be generated. - **onChange** `(value: number) => void` — Called when value changes - **onHover** `(value: number) => void` — Called when rating item is hovered. Receives -1 when hover ends. - **readOnly** `boolean` — When true, rating cannot be changed by user interaction, default is false - **size** `MantineSize | number` _(default `'sm'`)_ — Controls component size - **value** `number` — Controlled component value Optional leading props map; remaining args are children.
rem — Mantine px->rem helper. Raw passthrough of the JS fn (pass a number or string; returns a rem string).
rem — Mantine px->rem helper. Raw passthrough of the JS fn (pass a number or string; returns a rem string).
RingProgress — Give user feedback for status of the task with circle diagram
https://mantine.dev/core/ring-progress
Props (docgen 9.5.0):
React.ReactNode — Label displayed in the center of the ringMantineColor — Color of the unfilled portion of the ring (background). Defaults to gray-2 in light mode, dark-4 in dark modeboolean (default false) — Applies rounded line caps to the start and end of visible sectionsnumber (default 0) — Gap between sections in degrees. Reduces the visual size of each sectionRingProgressSection[] (required) — Array of sections to display in the ring. Each section should have a value (0-100), color, and optional tooltip. Sections can also receive any valid SVG circle element props.number (default 120) — Width and height of the progress ringnumber (default 270) — Starting angle in degrees. 0 = right, 90 = bottom, 180 = left, 270 = topnumber (default 12) — Ring thickness in pixels. Cannot exceed size / 4 and will be automatically clamped if necessarynumber (default 0) — Transition duration in milliseconds for section value and color changesOptional leading props map; remaining args are children.
RingProgress — Give user feedback for status of the task with circle diagram https://mantine.dev/core/ring-progress Props (docgen 9.5.0): - **label** `React.ReactNode` — Label displayed in the center of the ring - **rootColor** `MantineColor` — Color of the unfilled portion of the ring (background). Defaults to gray-2 in light mode, dark-4 in dark mode - **roundCaps** `boolean` _(default `false`)_ — Applies rounded line caps to the start and end of visible sections - **sectionGap** `number` _(default `0`)_ — Gap between sections in degrees. Reduces the visual size of each section - **sections** `RingProgressSection[]` **(required)** — Array of sections to display in the ring. Each section should have a `value` (0-100), `color`, and optional `tooltip`. Sections can also receive any valid SVG circle element props. - **size** `number` _(default `120`)_ — Width and height of the progress ring - **startAngle** `number` _(default `270`)_ — Starting angle in degrees. 0 = right, 90 = bottom, 180 = left, 270 = top - **thickness** `number` _(default `12`)_ — Ring thickness in pixels. Cannot exceed size / 4 and will be automatically clamped if necessary - **transitionDuration** `number` _(default `0`)_ — Transition duration in milliseconds for section value and color changes Optional leading props map; remaining args are children.
RollingNumber — Animate value changes with rolling digits
https://mantine.dev/core/rolling-number
Props (docgen 9.5.0):
number (default 600) — Animation duration in millisecondsnumber — Number of decimal places to displaystring (default '.') — Character used as a decimal separatorboolean (default false) — If set, trailing zeros are added to match decimalScalestring — Prefix added before the valuestring — Suffix added after the valueboolean (default true) — If set, use tabular (monospace) numbersstring | boolean (default false) — Character used to separate thousands, set to true for ,string (default 'ease') — CSS timing function for animationnumber (required) — Number value to displayboolean (default false) — If set, the root element acts as an aria-live="polite" region (role="status") and screen readers announce every value change. When false, the root uses role="img" so the current value is still accessible but updates are not announced.Optional leading props map; remaining args are children.
RollingNumber — Animate value changes with rolling digits https://mantine.dev/core/rolling-number Props (docgen 9.5.0): - **animationDuration** `number` _(default `600`)_ — Animation duration in milliseconds - **decimalScale** `number` — Number of decimal places to display - **decimalSeparator** `string` _(default `'.'`)_ — Character used as a decimal separator - **fixedDecimalScale** `boolean` _(default `false`)_ — If set, trailing zeros are added to match `decimalScale` - **prefix** `string` — Prefix added before the value - **suffix** `string` — Suffix added after the value - **tabularNumbers** `boolean` _(default `true`)_ — If set, use tabular (monospace) numbers - **thousandSeparator** `string | boolean` _(default `false`)_ — Character used to separate thousands, set to `true` for `,` - **timingFunction** `string` _(default `'ease'`)_ — CSS timing function for animation - **value** `number` **(required)** — Number value to display - **withLiveRegion** `boolean` _(default `false`)_ — If set, the root element acts as an `aria-live="polite"` region (`role="status"`) and screen readers announce every value change. When `false`, the root uses `role="img"` so the current value is still accessible but updates are not announced. Optional leading props map; remaining args are children.
ScrollArea — Area with custom scrollbars
https://mantine.dev/core/scroll-area
Props (docgen 9.5.0):
boolean | "x" | "y" | "present" (default false) — Determines whether scrollbars should be offset with padding on given axis - true - adds padding to offset both scrollbars (always) - 'x' - adds padding to offset horizontal scrollbar (always) - 'y' - adds padding to offset vertical scrollbar (always) - 'present' - adds padding only when scrollbars are visible (dynamic)() => void — Called when scrollarea is scrolled to the bottom (within 0.8px tolerance for sub-pixel rendering)() => void — Called when scrollarea is scrolled to the left (within 0.8px tolerance for sub-pixel rendering)() => void — Called when scrollarea is scrolled to the right (within 0.8px tolerance for sub-pixel rendering)(position: { x: number; y: number; }) => void — Called with current position (x and y coordinates) when viewport is scrolled() => void — Called when scrollarea is scrolled all the way to the topOverscrollBehavior — Defines overscroll-behavior of the viewportnumber (default 1000) — Scroll hide delay in ms, applicable only when type is set to hover or scrollstring | number — Scrollbar size, any valid CSS value for width/height, numbers are converted to rem, default value is 12px (0.75rem)false | "x" | "y" | "xy" (default 'xy') — Axis at which scrollbars must be rendered - 'x' - horizontal scrollbar only - 'y' - vertical scrollbar only - 'xy' - both scrollbars - false - no scrollbars rendered (content remains scrollable via mouse/touch){ x?: number; y?: number | undefined; } | undefined — Initial scroll position set on mount"auto" | "scroll" | "always" | "hover" | "never" (default 'hover') — Defines scrollbars behavior - 'hover' – scrollbars visible on hover (default) - 'scroll' – scrollbars visible during scrolling - 'auto' – scrollbars visible only when content overflows (like CSS overflow: auto) - 'always' – scrollbars always visible, even when content doesn't overflow - 'never' – scrollbars always hidden"left" | "right" — Pins the vertical scrollbar to a physical side (left or right) regardless of direction. By default, the scrollbar follows the inline-end edge (right in LTR, left in RTL).React.ComponentProps<"div"> — Props passed down to the viewport elementRef<HTMLDivElement> — Assigns viewport element (scrollable container) refOptional leading props map; remaining args are children.
ScrollArea — Area with custom scrollbars
https://mantine.dev/core/scroll-area
Props (docgen 9.5.0):
- **offsetScrollbars** `boolean | "x" | "y" | "present"` _(default `false`)_ — Determines whether scrollbars should be offset with padding on given axis - `true` - adds padding to offset both scrollbars (always) - `'x'` - adds padding to offset horizontal scrollbar (always) - `'y'` - adds padding to offset vertical scrollbar (always) - `'present'` - adds padding only when scrollbars are visible (dynamic)
- **onBottomReached** `() => void` — Called when scrollarea is scrolled to the bottom (within 0.8px tolerance for sub-pixel rendering)
- **onLeftReached** `() => void` — Called when scrollarea is scrolled to the left (within 0.8px tolerance for sub-pixel rendering)
- **onRightReached** `() => void` — Called when scrollarea is scrolled to the right (within 0.8px tolerance for sub-pixel rendering)
- **onScrollPositionChange** `(position: { x: number; y: number; }) => void` — Called with current position (`x` and `y` coordinates) when viewport is scrolled
- **onTopReached** `() => void` — Called when scrollarea is scrolled all the way to the top
- **overscrollBehavior** `OverscrollBehavior` — Defines `overscroll-behavior` of the viewport
- **scrollHideDelay** `number` _(default `1000`)_ — Scroll hide delay in ms, applicable only when type is set to `hover` or `scroll`
- **scrollbarSize** `string | number` — Scrollbar size, any valid CSS value for width/height, numbers are converted to rem, default value is 12px (0.75rem)
- **scrollbars** `false | "x" | "y" | "xy"` _(default `'xy'`)_ — Axis at which scrollbars must be rendered - `'x'` - horizontal scrollbar only - `'y'` - vertical scrollbar only - `'xy'` - both scrollbars - `false` - no scrollbars rendered (content remains scrollable via mouse/touch)
- **startScrollPosition** `{ x?: number; y?: number | undefined; } | undefined` — Initial scroll position set on mount
- **type** `"auto" | "scroll" | "always" | "hover" | "never"` _(default `'hover'`)_ — Defines scrollbars behavior - `'hover'` – scrollbars visible on hover (default) - `'scroll'` – scrollbars visible during scrolling - `'auto'` – scrollbars visible only when content overflows (like CSS overflow: auto) - `'always'` – scrollbars always visible, even when content doesn't overflow - `'never'` – scrollbars always hidden
- **verticalScrollbarPosition** `"left" | "right"` — Pins the vertical scrollbar to a physical side (`left` or `right`) regardless of direction. By default, the scrollbar follows the inline-end edge (right in LTR, left in RTL).
- **viewportProps** `React.ComponentProps<"div">` — Props passed down to the viewport element
- **viewportRef** `Ref<HTMLDivElement>` — Assigns viewport element (scrollable container) ref
Optional leading props map; remaining args are children.ScrollAreaAutosize
Props (docgen 9.5.0):
boolean | "x" | "y" | "present" (default false) — Determines whether scrollbars should be offset with padding on given axis - true - adds padding to offset both scrollbars (always) - 'x' - adds padding to offset horizontal scrollbar (always) - 'y' - adds padding to offset vertical scrollbar (always) - 'present' - adds padding only when scrollbars are visible (dynamic)() => void — Called when scrollarea is scrolled to the bottom (within 0.8px tolerance for sub-pixel rendering)() => void — Called when scrollarea is scrolled to the left (within 0.8px tolerance for sub-pixel rendering)(overflowing: boolean) => void — Called when content overflows due to max-height, making the container scrollable() => void — Called when scrollarea is scrolled to the right (within 0.8px tolerance for sub-pixel rendering)(position: { x: number; y: number; }) => void — Called with current position (x and y coordinates) when viewport is scrolled() => void — Called when scrollarea is scrolled all the way to the topOverscrollBehavior — Defines overscroll-behavior of the viewportnumber (default 1000) — Scroll hide delay in ms, applicable only when type is set to hover or scrollstring | number — Scrollbar size, any valid CSS value for width/height, numbers are converted to rem, default value is 12px (0.75rem)false | "x" | "y" | "xy" (default 'xy') — Axis at which scrollbars must be rendered - 'x' - horizontal scrollbar only - 'y' - vertical scrollbar only - 'xy' - both scrollbars - false - no scrollbars rendered (content remains scrollable via mouse/touch){ x?: number; y?: number | undefined; } | undefined — Initial scroll position set on mount"auto" | "scroll" | "always" | "hover" | "never" (default 'hover') — Defines scrollbars behavior - 'hover' – scrollbars visible on hover (default) - 'scroll' – scrollbars visible during scrolling - 'auto' – scrollbars visible only when content overflows (like CSS overflow: auto) - 'always' – scrollbars always visible, even when content doesn't overflow - 'never' – scrollbars always hidden"left" | "right" — Pins the vertical scrollbar to a physical side (left or right) regardless of direction. By default, the scrollbar follows the inline-end edge (right in LTR, left in RTL).React.ComponentProps<"div"> — Props passed down to the viewport elementRef<HTMLDivElement> — Assigns viewport element (scrollable container) refOptional leading props map; remaining args are children.
ScrollAreaAutosize
Props (docgen 9.5.0):
- **offsetScrollbars** `boolean | "x" | "y" | "present"` _(default `false`)_ — Determines whether scrollbars should be offset with padding on given axis - `true` - adds padding to offset both scrollbars (always) - `'x'` - adds padding to offset horizontal scrollbar (always) - `'y'` - adds padding to offset vertical scrollbar (always) - `'present'` - adds padding only when scrollbars are visible (dynamic)
- **onBottomReached** `() => void` — Called when scrollarea is scrolled to the bottom (within 0.8px tolerance for sub-pixel rendering)
- **onLeftReached** `() => void` — Called when scrollarea is scrolled to the left (within 0.8px tolerance for sub-pixel rendering)
- **onOverflowChange** `(overflowing: boolean) => void` — Called when content overflows due to max-height, making the container scrollable
- **onRightReached** `() => void` — Called when scrollarea is scrolled to the right (within 0.8px tolerance for sub-pixel rendering)
- **onScrollPositionChange** `(position: { x: number; y: number; }) => void` — Called with current position (`x` and `y` coordinates) when viewport is scrolled
- **onTopReached** `() => void` — Called when scrollarea is scrolled all the way to the top
- **overscrollBehavior** `OverscrollBehavior` — Defines `overscroll-behavior` of the viewport
- **scrollHideDelay** `number` _(default `1000`)_ — Scroll hide delay in ms, applicable only when type is set to `hover` or `scroll`
- **scrollbarSize** `string | number` — Scrollbar size, any valid CSS value for width/height, numbers are converted to rem, default value is 12px (0.75rem)
- **scrollbars** `false | "x" | "y" | "xy"` _(default `'xy'`)_ — Axis at which scrollbars must be rendered - `'x'` - horizontal scrollbar only - `'y'` - vertical scrollbar only - `'xy'` - both scrollbars - `false` - no scrollbars rendered (content remains scrollable via mouse/touch)
- **startScrollPosition** `{ x?: number; y?: number | undefined; } | undefined` — Initial scroll position set on mount
- **type** `"auto" | "scroll" | "always" | "hover" | "never"` _(default `'hover'`)_ — Defines scrollbars behavior - `'hover'` – scrollbars visible on hover (default) - `'scroll'` – scrollbars visible during scrolling - `'auto'` – scrollbars visible only when content overflows (like CSS overflow: auto) - `'always'` – scrollbars always visible, even when content doesn't overflow - `'never'` – scrollbars always hidden
- **verticalScrollbarPosition** `"left" | "right"` — Pins the vertical scrollbar to a physical side (`left` or `right`) regardless of direction. By default, the scrollbar follows the inline-end edge (right in LTR, left in RTL).
- **viewportProps** `React.ComponentProps<"div">` — Props passed down to the viewport element
- **viewportRef** `Ref<HTMLDivElement>` — Assigns viewport element (scrollable container) ref
Optional leading props map; remaining args are children.Scroller — Horizontal scroll container with navigation controls
https://mantine.dev/core/scroller
Props (docgen 9.5.0):
React.ReactNode (required) — Content to displaystring | number (default 60px) — Size of the control buttons,boolean — Determines whether content can be scrolled by dragging with mouse, true by defaultstring — Background color for the gradient fade on controls, 'var(--mantine-color-body)' by defaultReact.ReactNode — Icon component for the end control, AccordionChevron by defaultReact.ComponentProps<"button"> — Props passed to the end control buttonnumber — Amount of pixels to scroll when clicking the control buttons, 200 by defaultboolean — Determines whether end control should always be visible regardless of scroll position, false by defaultboolean — Determines whether start control should always be visible regardless of scroll position, false by defaultReact.ReactNode — Icon component for the start control, AccordionChevron by defaultReact.ComponentProps<"button"> — Props passed to the start control buttonOptional leading props map; remaining args are children.
Scroller — Horizontal scroll container with navigation controls https://mantine.dev/core/scroller Props (docgen 9.5.0): - **children** `React.ReactNode` **(required)** — Content to display - **controlSize** `string | number` _(default `60px`)_ — Size of the control buttons, - **draggable** `boolean` — Determines whether content can be scrolled by dragging with mouse, `true` by default - **edgeGradientColor** `string` — Background color for the gradient fade on controls, `'var(--mantine-color-body)'` by default - **endControlIcon** `React.ReactNode` — Icon component for the end control, AccordionChevron by default - **endControlProps** `React.ComponentProps<"button">` — Props passed to the end control button - **scrollAmount** `number` — Amount of pixels to scroll when clicking the control buttons, `200` by default - **showEndControl** `boolean` — Determines whether end control should always be visible regardless of scroll position, `false` by default - **showStartControl** `boolean` — Determines whether start control should always be visible regardless of scroll position, `false` by default - **startControlIcon** `React.ReactNode` — Icon component for the start control, AccordionChevron by default - **startControlProps** `React.ComponentProps<"button">` — Props passed to the start control button Optional leading props map; remaining args are children.
SegmentedControl — A linear set of two or more segments
https://mantine.dev/core/segmented-control
Props (docgen 9.5.0):
boolean — If set, automatically adjusts label text color for optimal contrast against the indicator background colorMantineColor — Key of theme.colors or any valid CSS color, changes indicator background color. By default, uses white in light mode and dark.5 in dark mode(Value | SegmentedControlItem<Value>)[] (required) — Data based on which controls are renderedPrimitive — Uncontrolled component default valueboolean — Determines whether the component is disabledboolean (default false) — Determines whether the component should take 100% width of its parentstring — Name attribute for the radio group. A random name is auto-generated if not provided(value: Value) => void — Called when value changes"horizontal" | "vertical" (default 'horizontal') — Component orientationMantineRadius | number (default theme.defaultRadius) — Key of theme.radius or any valid CSS value to set border-radius, numbers are converted to remboolean — If set to false, prevents changing the valueMantineSize (default 'sm') — Controls font-size, padding and height propertiesnumber (default 200) — Indicator transition-duration in ms, set 0 to turn off transitionsstring (default ease) — Indicator transition-timing-function propertyPrimitive — Controlled component valueboolean (default true) — Determines whether there should be borders between itemsOptional leading props map; remaining args are children.
SegmentedControl — A linear set of two or more segments https://mantine.dev/core/segmented-control Props (docgen 9.5.0): - **autoContrast** `boolean` — If set, automatically adjusts label text color for optimal contrast against the indicator background color - **color** `MantineColor` — Key of `theme.colors` or any valid CSS color, changes indicator background color. By default, uses white in light mode and dark.5 in dark mode - **data** `(Value | SegmentedControlItem<Value>)[]` **(required)** — Data based on which controls are rendered - **defaultValue** `Primitive` — Uncontrolled component default value - **disabled** `boolean` — Determines whether the component is disabled - **fullWidth** `boolean` _(default `false`)_ — Determines whether the component should take 100% width of its parent - **name** `string` — Name attribute for the radio group. A random name is auto-generated if not provided - **onChange** `(value: Value) => void` — Called when value changes - **orientation** `"horizontal" | "vertical"` _(default `'horizontal'`)_ — Component orientation - **radius** `MantineRadius | number` _(default `theme.defaultRadius`)_ — Key of `theme.radius` or any valid CSS value to set `border-radius`, numbers are converted to rem - **readOnly** `boolean` — If set to `false`, prevents changing the value - **size** `MantineSize` _(default `'sm'`)_ — Controls `font-size`, `padding` and `height` properties - **transitionDuration** `number` _(default `200`)_ — Indicator `transition-duration` in ms, set `0` to turn off transitions - **transitionTimingFunction** `string` _(default `ease`)_ — Indicator `transition-timing-function` property - **value** `Primitive` — Controlled component value - **withItemsBorders** `boolean` _(default `true`)_ — Determines whether there should be borders between items Optional leading props map; remaining args are children.
Select — Custom searchable select
https://mantine.dev/core/select
Props (docgen 9.5.0):
boolean (default true) — Allows deselecting the selected option by clicking itboolean (default false) — Automatically selects the highlighted option when input loses focus"left" | "right" (default 'left') — Position of the check icon relative to the option labelMantineColor — Controls color of the default chevron, by default depends on the color schemeInputClearButtonProps — Props passed down to the clear buttonClearSectionMode (default 'both') — Determines how the clear button and rightSection are renderedboolean (default false) — Displays clear button in the right section when component has valueComboboxProps — Props passed down to Combobox componentComboboxData<Value> — Data used to generate options. Values must be unique, otherwise an error will be thrown and component will not render.boolean — Uncontrolled dropdown initial opened statestring — Default search valuePrimitive | null — Uncontrolled component default valueReact.ReactNode — Contents of Input.Description component. If not set, description is not displayed.InputDescriptionProps — Props passed down to the Input.Description componentboolean — Sets disabled attribute on the input elementboolean — Controlled dropdown opened stateReact.ReactNode — Contents of Input.Error component. If not set, error is not displayed.InputErrorProps — Props passed down to the Input.Error componentOptionsFilter<Value> — Function based on which items are filtered and sorted"viewport" — If set to 'viewport', the dropdown grows to fill the available vertical space in the viewport. Disables the flip middleware.React.ComponentProps<"input"> — Props passed down to the hidden input(children: ReactNode) => ReactNode (default React.Fragment) — Render function to wrap the input element. Useful for adding tooltips, popovers, or other wrappers around the input.string — HTML size attribute for the input element (number of visible characters)("input" | "label" | "description" | "error")[] (default ['label', 'description', 'input', 'error']) — Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.React.ReactNode — Contents of Input.Label component. If not set, label is not displayed.InputLabelProps — Props passed down to the Input.Label componentReact.ReactNode — Content section displayed on the left side of the inputReact.CSSProperties["pointerEvents"] (default 'none') — Sets pointer-events styles on the leftSection element. Use 'all' when section contains interactive elements (buttons, links).React.ComponentProps<"div"> — Props passed down to the leftSection elementReact.CSSProperties["width"] — Left section width, used to set width of the section and input padding-left, by default equals to the input heightnumber — Maximum number of options displayed at a time, Infinity by defaultboolean (default false) — Displays loading indicator in the left or right section"left" | "right" (default 'right') — Position of the loading indicatorstring | number — max-height of the dropdown, only applicable when withScrollArea prop is true, 250 by defaultReact.ReactNode — Message displayed when no options match the search query or when there is no data(value: Value | null, option: ComboboxItem<Value>) => void — Called when value changes() => void — Called when the clear button is clicked() => void — Called when dropdown closes() => void — Called when dropdown opens(value: Value) => void — Called when option is submitted from dropdown with mouse click or Enter key(value: string) => void — Called when search changesboolean (default true) — Opens dropdown when input receives focus (requires searchable={true})boolean (default false) — Determines whether the input should have cursor: pointer style. Use when input acts as a button-like trigger (e.g., component="button" for Select/DatePicker).MantineRadius | number (default theme.defaultRadius) — Key of theme.radius or any valid CSS value to set border-radius, numbers are converted to rem(item: ComboboxLikeRenderOptionInput<ComboboxItem<Value>>) => ReactNode — A function to render content of the option, replaces the default content of the optionboolean (default false) — Adds required attribute to the input and a red asterisk on the right side of labelReact.ReactNode — Content section displayed on the right side of the inputReact.CSSProperties["pointerEvents"] (default 'none') — Sets pointer-events styles on the rightSection element. Use 'all' when section contains interactive elements (buttons, links).React.ComponentProps<"div"> — Props passed down to the rightSection elementReact.CSSProperties["width"] — Right section width, used to set width of the section and input padding-right, by default equals to the input heightScrollAreaProps — Props passed down to the underlying ScrollArea component in the dropdownstring — Controlled search valueboolean (default false) — Determines whether the select should be searchableboolean — If set, the first option is selected when value changes, false by defaultboolean — If set, the first option is selected when dropdown opens, false by defaultMantineSize (default 'sm') — Controls input height, horizontal padding, and font-sizeReact.ReactNode — Contents of Input.Success component. If not set, success is not displayed.InputSuccessProps & DataAttributes — Props passed down to the Input.Success componentPrimitive | null — Controlled component valueboolean (default false) — Aligns unchecked labels with the checked oneboolean (default false) — If set, the required asterisk is displayed next to the label. Overrides required prop. Does not add required attribute to the input.boolean (default true) — Displays check icon near the selected option labelboolean (default true) — Determines whether the input should have red border and red text color when the error prop is setboolean — Determines whether the options should be wrapped with ScrollArea.AutoSize, true by defaultboolean (default true) — Determines whether the input should have green border when the success prop is setWrapperProps — Props passed down to the root elementOptional leading props map; remaining args are children.
Select — Custom searchable select
https://mantine.dev/core/select
Props (docgen 9.5.0):
- **allowDeselect** `boolean` _(default `true`)_ — Allows deselecting the selected option by clicking it
- **autoSelectOnBlur** `boolean` _(default `false`)_ — Automatically selects the highlighted option when input loses focus
- **checkIconPosition** `"left" | "right"` _(default `'left'`)_ — Position of the check icon relative to the option label
- **chevronColor** `MantineColor` — Controls color of the default chevron, by default depends on the color scheme
- **clearButtonProps** `InputClearButtonProps` — Props passed down to the clear button
- **clearSectionMode** `ClearSectionMode` _(default `'both'`)_ — Determines how the clear button and rightSection are rendered
- **clearable** `boolean` _(default `false`)_ — Displays clear button in the right section when component has value
- **comboboxProps** `ComboboxProps` — Props passed down to `Combobox` component
- **data** `ComboboxData<Value>` — Data used to generate options. Values must be unique, otherwise an error will be thrown and component will not render.
- **defaultDropdownOpened** `boolean` — Uncontrolled dropdown initial opened state
- **defaultSearchValue** `string` — Default search value
- **defaultValue** `Primitive | null` — Uncontrolled component default value
- **description** `React.ReactNode` — Contents of `Input.Description` component. If not set, description is not displayed.
- **descriptionProps** `InputDescriptionProps` — Props passed down to the `Input.Description` component
- **disabled** `boolean` — Sets `disabled` attribute on the `input` element
- **dropdownOpened** `boolean` — Controlled dropdown opened state
- **error** `React.ReactNode` — Contents of `Input.Error` component. If not set, error is not displayed.
- **errorProps** `InputErrorProps` — Props passed down to the `Input.Error` component
- **filter** `OptionsFilter<Value>` — Function based on which items are filtered and sorted
- **floatingHeight** `"viewport"` — If set to `'viewport'`, the dropdown grows to fill the available vertical space in the viewport. Disables the `flip` middleware.
- **hiddenInputProps** `React.ComponentProps<"input">` — Props passed down to the hidden input
- **inputContainer** `(children: ReactNode) => ReactNode` _(default `React.Fragment`)_ — Render function to wrap the input element. Useful for adding tooltips, popovers, or other wrappers around the input.
- **inputSize** `string` — HTML `size` attribute for the input element (number of visible characters)
- **inputWrapperOrder** `("input" | "label" | "description" | "error")[]` _(default `['label', 'description', 'input', 'error']`)_ — Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.
- **label** `React.ReactNode` — Contents of `Input.Label` component. If not set, label is not displayed.
- **labelProps** `InputLabelProps` — Props passed down to the `Input.Label` component
- **leftSection** `React.ReactNode` — Content section displayed on the left side of the input
- **leftSectionPointerEvents** `React.CSSProperties["pointerEvents"]` _(default `'none'`)_ — Sets `pointer-events` styles on the `leftSection` element. Use `'all'` when section contains interactive elements (buttons, links).
- **leftSectionProps** `React.ComponentProps<"div">` — Props passed down to the `leftSection` element
- **leftSectionWidth** `React.CSSProperties["width"]` — Left section width, used to set `width` of the section and input `padding-left`, by default equals to the input height
- **limit** `number` — Maximum number of options displayed at a time, `Infinity` by default
- **loading** `boolean` _(default `false`)_ — Displays loading indicator in the left or right section
- **loadingPosition** `"left" | "right"` _(default `'right'`)_ — Position of the loading indicator
- **maxDropdownHeight** `string | number` — `max-height` of the dropdown, only applicable when `withScrollArea` prop is `true`, `250` by default
- **nothingFoundMessage** `React.ReactNode` — Message displayed when no options match the search query or when there is no data
- **onChange** `(value: Value | null, option: ComboboxItem<Value>) => void` — Called when value changes
- **onClear** `() => void` — Called when the clear button is clicked
- **onDropdownClose** `() => void` — Called when dropdown closes
- **onDropdownOpen** `() => void` — Called when dropdown opens
- **onOptionSubmit** `(value: Value) => void` — Called when option is submitted from dropdown with mouse click or `Enter` key
- **onSearchChange** `(value: string) => void` — Called when search changes
- **openOnFocus** `boolean` _(default `true`)_ — Opens dropdown when input receives focus (requires searchable={true})
- **pointer** `boolean` _(default `false`)_ — Determines whether the input should have `cursor: pointer` style. Use when input acts as a button-like trigger (e.g., `component="button"` for Select/DatePicker).
- **radius** `MantineRadius | number` _(default `theme.defaultRadius`)_ — Key of `theme.radius` or any valid CSS value to set `border-radius`, numbers are converted to rem
- **renderOption** `(item: ComboboxLikeRenderOptionInput<ComboboxItem<Value>>) => ReactNode` — A function to render content of the option, replaces the default content of the option
- **required** `boolean` _(default `false`)_ — Adds required attribute to the input and a red asterisk on the right side of label
- **rightSection** `React.ReactNode` — Content section displayed on the right side of the input
- **rightSectionPointerEvents** `React.CSSProperties["pointerEvents"]` _(default `'none'`)_ — Sets `pointer-events` styles on the `rightSection` element. Use `'all'` when section contains interactive elements (buttons, links).
- **rightSectionProps** `React.ComponentProps<"div">` — Props passed down to the `rightSection` element
- **rightSectionWidth** `React.CSSProperties["width"]` — Right section width, used to set `width` of the section and input `padding-right`, by default equals to the input height
- **scrollAreaProps** `ScrollAreaProps` — Props passed down to the underlying `ScrollArea` component in the dropdown
- **searchValue** `string` — Controlled search value
- **searchable** `boolean` _(default `false`)_ — Determines whether the select should be searchable
- **selectFirstOptionOnChange** `boolean` — If set, the first option is selected when value changes, `false` by default
- **selectFirstOptionOnDropdownOpen** `boolean` — If set, the first option is selected when dropdown opens, `false` by default
- **size** `MantineSize` _(default `'sm'`)_ — Controls input `height`, horizontal `padding`, and `font-size`
- **success** `React.ReactNode` — Contents of `Input.Success` component. If not set, success is not displayed.
- **successProps** `InputSuccessProps & DataAttributes` — Props passed down to the `Input.Success` component
- **value** `Primitive | null` — Controlled component value
- **withAlignedLabels** `boolean` _(default `false`)_ — Aligns unchecked labels with the checked one
- **withAsterisk** `boolean` _(default `false`)_ — If set, the required asterisk is displayed next to the label. Overrides `required` prop. Does not add required attribute to the input.
- **withCheckIcon** `boolean` _(default `true`)_ — Displays check icon near the selected option label
- **withErrorStyles** `boolean` _(default `true`)_ — Determines whether the input should have red border and red text color when the `error` prop is set
- **withScrollArea** `boolean` — Determines whether the options should be wrapped with `ScrollArea.AutoSize`, `true` by default
- **withSuccessStyles** `boolean` _(default `true`)_ — Determines whether the input should have green border when the `success` prop is set
- **wrapperProps** `WrapperProps` — Props passed down to the root element
Optional leading props map; remaining args are children.SemiCircleProgress — Represent progress with semi circle diagram
https://mantine.dev/core/semi-circle-progress
Props (docgen 9.5.0):
MantineColor (default 'gray.2' in light mode, 'dark.4' in dark mode) — Key of theme.colors or any valid CSS color value"right-to-left" | "left-to-right" (default 'left-to-right') — Direction from which the circle is filledMantineColor (default theme.primaryColor) — Key of theme.colors or any valid CSS color valueReact.ReactNode — Label rendered inside the circle"center" | "bottom" (default 'bottom') — Label position relative to the circle center"up" | "down" (default 'up') — Orientation of the circlenumber (default 200) — Width of the component and diameter of the full circle in px. The visible SVG height will be size/2number (default 12) — Stroke width of the circle segments in pxnumber (default 0) — Transition duration for the filled segment progress changes in ms. Does not affect color transitionsnumber (required) — Progress value from 0 to 100Optional leading props map; remaining args are children.
SemiCircleProgress — Represent progress with semi circle diagram https://mantine.dev/core/semi-circle-progress Props (docgen 9.5.0): - **emptySegmentColor** `MantineColor` _(default `'gray.2' in light mode, 'dark.4' in dark mode`)_ — Key of `theme.colors` or any valid CSS color value - **fillDirection** `"right-to-left" | "left-to-right"` _(default `'left-to-right'`)_ — Direction from which the circle is filled - **filledSegmentColor** `MantineColor` _(default `theme.primaryColor`)_ — Key of `theme.colors` or any valid CSS color value - **label** `React.ReactNode` — Label rendered inside the circle - **labelPosition** `"center" | "bottom"` _(default `'bottom'`)_ — Label position relative to the circle center - **orientation** `"up" | "down"` _(default `'up'`)_ — Orientation of the circle - **size** `number` _(default `200`)_ — Width of the component and diameter of the full circle in px. The visible SVG height will be size/2 - **thickness** `number` _(default `12`)_ — Stroke width of the circle segments in px - **transitionDuration** `number` _(default `0`)_ — Transition duration for the filled segment progress changes in ms. Does not affect color transitions - **value** `number` **(required)** — Progress value from `0` to `100` Optional leading props map; remaining args are children.
SimpleGrid — Responsive grid in which each item takes equal amount of space
https://mantine.dev/core/simple-grid
Props (docgen 9.5.0):
"auto-fit" | "auto-fill" (default 'auto-fill') — Grid repeat type when minColWidth is setstring — Sets the size of implicitly created grid rowsStyleProp<number> (default 1) — Number of columnsstring | number — Minimum column width when using auto-fit/auto-fill. When set, cols prop is ignoredStyleProp<MantineSpacing> (default 'md') — Spacing between columns"media" | "container" (default 'media') — Determines type of queries that are used for responsive stylesStyleProp<MantineSpacing> (default undefined) — Spacing between rows. When not set, falls back to spacing valueOptional leading props map; remaining args are children.
SimpleGrid — Responsive grid in which each item takes equal amount of space https://mantine.dev/core/simple-grid Props (docgen 9.5.0): - **autoFlow** `"auto-fit" | "auto-fill"` _(default `'auto-fill'`)_ — Grid repeat type when minColWidth is set - **autoRows** `string` — Sets the size of implicitly created grid rows - **cols** `StyleProp<number>` _(default `1`)_ — Number of columns - **minColWidth** `string | number` — Minimum column width when using auto-fit/auto-fill. When set, cols prop is ignored - **spacing** `StyleProp<MantineSpacing>` _(default `'md'`)_ — Spacing between columns - **type** `"media" | "container"` _(default `'media'`)_ — Determines type of queries that are used for responsive styles - **verticalSpacing** `StyleProp<MantineSpacing>` _(default `undefined`)_ — Spacing between rows. When not set, falls back to spacing value Optional leading props map; remaining args are children.
Skeleton — Indicate content loading state
https://mantine.dev/core/skeleton
Props (docgen 9.5.0):
boolean (default true) — Enables animationboolean (default false) — If set, Skeleton width and border-radius are equal to its heightHeight<string | number> (default auto) — Skeleton height, numbers are converted to remMantineRadius | number (default theme.defaultRadius) — Key of theme.radius or any valid CSS value to set border-radius. Numbers are converted to rem.boolean (default true) — Determines whether Skeleton overlay should be displayedReact.CSSProperties["width"] (default 100%) — Skeleton width, numbers are converted to rem, ignored when circle prop is set.Optional leading props map; remaining args are children.
Skeleton — Indicate content loading state https://mantine.dev/core/skeleton Props (docgen 9.5.0): - **animate** `boolean` _(default `true`)_ — Enables animation - **circle** `boolean` _(default `false`)_ — If set, Skeleton `width` and `border-radius` are equal to its `height` - **height** `Height<string | number>` _(default `auto`)_ — Skeleton `height`, numbers are converted to rem - **radius** `MantineRadius | number` _(default `theme.defaultRadius`)_ — Key of `theme.radius` or any valid CSS value to set border-radius. Numbers are converted to rem. - **visible** `boolean` _(default `true`)_ — Determines whether Skeleton overlay should be displayed - **width** `React.CSSProperties["width"]` _(default `100%`)_ — Skeleton `width`, numbers are converted to rem, ignored when `circle` prop is set. Optional leading props map; remaining args are children.
Slider — Slider component
https://mantine.dev/core/slider
Props (docgen 9.5.0):
MantineColor (default theme.primaryColor) — Key of theme.colors or any valid CSS color, controls color of track and thumbnumber — Uncontrolled component default valueboolean — Disables slider[number, number] (default [min, max]) — Domain of the slider, defines the selectable value range independently of min/max. Useful when you want to display a wider track range (min/max) but restrict actual selection to a subset (domain).React.ComponentProps<"input"> — Props passed down to the hidden inputboolean (default false) — Determines whether track value representation should be invertedReactNode | ((value: number) => ReactNode) — Function to generate label or any react node to render instead, set to null to disable labelboolean (default false) — Determines whether the label should be visible when the slider is not being dragged or hoveredTransitionProps (default { transition: 'fade', duration: 0 }) — Props passed down to the Transition componentSliderMark[] — Marks displayed on the tracknumber (default 100) — Maximum possible valuenumber (default 0) — Minimal possible valuestring — Hidden input name, use with uncontrolled component(value: number) => void — Called when value changes(value: number) => void — Called when user stops dragging slider or changes value with arrows"horizontal" | "vertical" (default 'horizontal') — Slider orientationnumber — Number of significant digits after the decimal pointMantineRadius | number (default 'xl') — Key of theme.radius or any valid CSS value to set border-radius, numbers are converted to remboolean (default false) — Determines whether the selection should be only allowed from the given marks array(value: number) => number — A transformation function to change the scale of the sliderboolean (default true) — Determines whether the label should be displayed when the slider is hoveredMantineSize | number (default 'md') — Controls size of the tracknumber — Value at which the filled bar starts. When set, the bar extends from this point toward the current value. Ignored when inverted is set.number (default 1) — Number by which value will be incremented/decremented with thumb drag and arrowsReact.ReactNode — Content rendered inside thumbstring — Thumb aria-labelReact.ComponentProps<"div"> — Props passed down to thumb elementstring | number — Thumb width and height, by default value is computed based on size propstring | ((value: number) => string) — Thumb aria-valuetext. When a function is provided, it receives the scaled value.number — Controlled component valueOptional leading props map; remaining args are children.
Slider — Slider component
https://mantine.dev/core/slider
Props (docgen 9.5.0):
- **color** `MantineColor` _(default `theme.primaryColor`)_ — Key of `theme.colors` or any valid CSS color, controls color of track and thumb
- **defaultValue** `number` — Uncontrolled component default value
- **disabled** `boolean` — Disables slider
- **domain** `[number, number]` _(default `[min, max]`)_ — Domain of the slider, defines the selectable value range independently of min/max. Useful when you want to display a wider track range (min/max) but restrict actual selection to a subset (domain).
- **hiddenInputProps** `React.ComponentProps<"input">` — Props passed down to the hidden input
- **inverted** `boolean` _(default `false`)_ — Determines whether track value representation should be inverted
- **label** `ReactNode | ((value: number) => ReactNode)` — Function to generate label or any react node to render instead, set to null to disable label
- **labelAlwaysOn** `boolean` _(default `false`)_ — Determines whether the label should be visible when the slider is not being dragged or hovered
- **labelTransitionProps** `TransitionProps` _(default `{ transition: 'fade', duration: 0 }`)_ — Props passed down to the `Transition` component
- **marks** `SliderMark[]` — Marks displayed on the track
- **max** `number` _(default `100`)_ — Maximum possible value
- **min** `number` _(default `0`)_ — Minimal possible value
- **name** `string` — Hidden input name, use with uncontrolled component
- **onChange** `(value: number) => void` — Called when value changes
- **onChangeEnd** `(value: number) => void` — Called when user stops dragging slider or changes value with arrows
- **orientation** `"horizontal" | "vertical"` _(default `'horizontal'`)_ — Slider orientation
- **precision** `number` — Number of significant digits after the decimal point
- **radius** `MantineRadius | number` _(default `'xl'`)_ — Key of `theme.radius` or any valid CSS value to set `border-radius`, numbers are converted to rem
- **restrictToMarks** `boolean` _(default `false`)_ — Determines whether the selection should be only allowed from the given marks array
- **scale** `(value: number) => number` — A transformation function to change the scale of the slider
- **showLabelOnHover** `boolean` _(default `true`)_ — Determines whether the label should be displayed when the slider is hovered
- **size** `MantineSize | number` _(default `'md'`)_ — Controls size of the track
- **startPointValue** `number` — Value at which the filled bar starts. When set, the bar extends from this point toward the current value. Ignored when `inverted` is set.
- **step** `number` _(default `1`)_ — Number by which value will be incremented/decremented with thumb drag and arrows
- **thumbChildren** `React.ReactNode` — Content rendered inside thumb
- **thumbLabel** `string` — Thumb `aria-label`
- **thumbProps** `React.ComponentProps<"div">` — Props passed down to thumb element
- **thumbSize** `string | number` — Thumb `width` and `height`, by default value is computed based on `size` prop
- **thumbValueText** `string | ((value: number) => string)` — Thumb `aria-valuetext`. When a function is provided, it receives the scaled value.
- **value** `number` — Controlled component value
Optional leading props map; remaining args are children.Space
Optional leading props map; remaining args are children.
Space Optional leading props map; remaining args are children.
Splitter — Resizable split pane layout
https://mantine.dev/core/splitter
Props (docgen 9.5.0):
React.ReactNode — Splitter panesMantineColor — Key of theme.colors or any valid CSS color for the separator lineReact.ReactNode — Custom icon displayed in the handle thumb, by default uses grip icon based on orientationstring | number (default 2) — CSS value for separator line thickness between panes(panelIndex: number, collapsed: boolean) => void — Called when a panel collapses or expands(handleIndex: number, sizes: SplitterPaneSize[]) => void — Called when drag ends(handleIndex: number) => void — Called when drag starts(sizes: SplitterPaneSize[]) => void — Called during resize with updated sizes, each value keeps its declared unit"horizontal" | "vertical" (default 'horizontal') — Layout direction"nearest" | "equal" | UseSplitterRedistributeFn — How to redistribute space when immediate neighbor is at its min/maxboolean (default true) — Restore the two panes adjacent to a handle to their default ratio (preserving their combined size) when the handle is double-clickedSplitterStep (default 10) — Shift+arrow step size, a number/% is a percentage, px/rem is resolved to pixelsSplitterPaneSize[] — Controlled sizes, each value keeps the unit it was declared in (number/% flexible, px/rem fixed)RefObject<UseSplitterReturnValue<any> | null> — Ref to imperative splitter API (sizes, collapse, expand, etc.)SplitterStep (default 1) — Keyboard step size, a number/% is a percentage, px/rem is resolved to pixelsboolean (default true) — Determines whether the thumb with grip icon is displayed on the handleOptional leading props map; remaining args are children.
Splitter — Resizable split pane layout https://mantine.dev/core/splitter Props (docgen 9.5.0): - **children** `React.ReactNode` — Splitter panes - **handleColor** `MantineColor` — Key of `theme.colors` or any valid CSS color for the separator line - **handleIcon** `React.ReactNode` — Custom icon displayed in the handle thumb, by default uses grip icon based on orientation - **lineSize** `string | number` _(default `2`)_ — CSS value for separator line thickness between panes - **onCollapseChange** `(panelIndex: number, collapsed: boolean) => void` — Called when a panel collapses or expands - **onResizeEnd** `(handleIndex: number, sizes: SplitterPaneSize[]) => void` — Called when drag ends - **onResizeStart** `(handleIndex: number) => void` — Called when drag starts - **onSizeChange** `(sizes: SplitterPaneSize[]) => void` — Called during resize with updated sizes, each value keeps its declared unit - **orientation** `"horizontal" | "vertical"` _(default `'horizontal'`)_ — Layout direction - **redistribute** `"nearest" | "equal" | UseSplitterRedistributeFn` — How to redistribute space when immediate neighbor is at its min/max - **resetOnDoubleClick** `boolean` _(default `true`)_ — Restore the two panes adjacent to a handle to their default ratio (preserving their combined size) when the handle is double-clicked - **shiftStep** `SplitterStep` _(default `10`)_ — Shift+arrow step size, a `number`/`%` is a percentage, `px`/`rem` is resolved to pixels - **sizes** `SplitterPaneSize[]` — Controlled sizes, each value keeps the unit it was declared in (number/`%` flexible, `px`/`rem` fixed) - **splitterRef** `RefObject<UseSplitterReturnValue<any> | null>` — Ref to imperative splitter API (sizes, collapse, expand, etc.) - **step** `SplitterStep` _(default `1`)_ — Keyboard step size, a `number`/`%` is a percentage, `px`/`rem` is resolved to pixels - **withHandle** `boolean` _(default `true`)_ — Determines whether the thumb with grip icon is displayed on the handle Optional leading props map; remaining args are children.
Splitter.Pane — compound part of Splitter (docgen omits it). Optional leading props map; remaining args are children.
Splitter.Pane — compound part of Splitter (docgen omits it). Optional leading props map; remaining args are children.
Spoiler — Hide long sections of content under a spoiler
https://mantine.dev/core/spoiler
Props (docgen 9.5.0):
Ref<HTMLButtonElement> — Ref of the toggle button elementboolean (default false) — Initial expanded state in uncontrolled mode. If true, content starts expanded. If false, content starts collapsedboolean — Controlled expanded state valuestring — Accessible label for the toggle button when expanded. If not set, hideLabel is usedReact.ReactNode (required) — Content displayed in the toggle button when content is expanded (to collapse)number (default 100) — Maximum height of visible content in px. When content exceeds this height, the toggle control appears(expanded: boolean) => void — Called when expanded state changes (when spoiler visibility is toggled by the user)string — Accessible label for the toggle button when collapsed. If not set, showLabel is usedReact.ReactNode (required) — Content displayed in the toggle button when content is collapsed (to expand)number (default 200) — Spoiler reveal transition duration in ms. Set to 0 to disable animationOptional leading props map; remaining args are children.
Spoiler — Hide long sections of content under a spoiler https://mantine.dev/core/spoiler Props (docgen 9.5.0): - **controlRef** `Ref<HTMLButtonElement>` — Ref of the toggle button element - **defaultExpanded** `boolean` _(default `false`)_ — Initial expanded state in uncontrolled mode. If `true`, content starts expanded. If `false`, content starts collapsed - **expanded** `boolean` — Controlled expanded state value - **hideAriaLabel** `string` — Accessible label for the toggle button when expanded. If not set, `hideLabel` is used - **hideLabel** `React.ReactNode` **(required)** — Content displayed in the toggle button when content is expanded (to collapse) - **maxHeight** `number` _(default `100`)_ — Maximum height of visible content in px. When content exceeds this height, the toggle control appears - **onExpandedChange** `(expanded: boolean) => void` — Called when expanded state changes (when spoiler visibility is toggled by the user) - **showAriaLabel** `string` — Accessible label for the toggle button when collapsed. If not set, `showLabel` is used - **showLabel** `React.ReactNode` **(required)** — Content displayed in the toggle button when content is collapsed (to expand) - **transitionDuration** `number` _(default `200`)_ — Spoiler reveal transition duration in ms. Set to 0 to disable animation Optional leading props map; remaining args are children.
Stack — Compose elements and components in a vertical flex container
https://mantine.dev/core/stack
Props (docgen 9.5.0):
AlignItems (default 'stretch') — Controls align-items CSS propertyMantineSpacing (default 'md') — Key of theme.spacing or any valid CSS value to set gap property, numbers are converted to remJustifyContent (default 'flex-start') — Controls justify-content CSS propertyOptional leading props map; remaining args are children.
Stack — Compose elements and components in a vertical flex container https://mantine.dev/core/stack Props (docgen 9.5.0): - **align** `AlignItems` _(default `'stretch'`)_ — Controls `align-items` CSS property - **gap** `MantineSpacing` _(default `'md'`)_ — Key of `theme.spacing` or any valid CSS value to set `gap` property, numbers are converted to rem - **justify** `JustifyContent` _(default `'flex-start'`)_ — Controls `justify-content` CSS property Optional leading props map; remaining args are children.
Stepper — Display content divided into a steps sequence
https://mantine.dev/core/stepper
Props (docgen 9.5.0):
number (required) — Index of the active stepboolean (default true) — When true, users can click and jump to any step. When false, users can only navigate to completed stepsboolean — When true, automatically adjusts the icon color in completed steps to ensure sufficient contrast against the step background colorReact.ReactNode (required) — Stepper.Step componentsMantineColor (default theme.primaryColor) — Key of theme.colors or any valid CSS color, controls colors of active and progress stepsReactNode | StepFragmentComponent (default CheckIcon) — Step icon displayed when step is completedMantineSpacing (default 'md') — Key of theme.spacing or any valid CSS value to set padding-top of the contentReactNode | StepFragmentComponent (default step index + 1) — Step icon"left" | "right" (default 'left') — Icon position relative to the step bodystring | number — Controls size of the step icon, by default icon size is inferred from size propboolean (default false) — If set, all step content is kept mounted. React 19 Activity is used to preserve state while content is hidden.(stepIndex: number) => void — Called when a clickable step is clicked with its 0-based index. Not called for the currently active step."horizontal" | "vertical" (default 'horizontal') — Stepper orientationReactNode | StepFragmentComponent (default step index + 1) — Step icon displayed when step is in progressMantineRadius | number (default "xl") — Key of theme.radius or any valid CSS value to set steps border-radiusMantineSize — Controls size of various Stepper elementsboolean (default true) — Determines whether steps should wrap to the next line if no space is availableOptional leading props map; remaining args are children.
Stepper — Display content divided into a steps sequence https://mantine.dev/core/stepper Props (docgen 9.5.0): - **active** `number` **(required)** — Index of the active step - **allowNextStepsSelect** `boolean` _(default `true`)_ — When true, users can click and jump to any step. When false, users can only navigate to completed steps - **autoContrast** `boolean` — When true, automatically adjusts the icon color in completed steps to ensure sufficient contrast against the step background color - **children** `React.ReactNode` **(required)** — `Stepper.Step` components - **color** `MantineColor` _(default `theme.primaryColor`)_ — Key of `theme.colors` or any valid CSS color, controls colors of active and progress steps - **completedIcon** `ReactNode | StepFragmentComponent` _(default `CheckIcon`)_ — Step icon displayed when step is completed - **contentPadding** `MantineSpacing` _(default `'md'`)_ — Key of `theme.spacing` or any valid CSS value to set `padding-top` of the content - **icon** `ReactNode | StepFragmentComponent` _(default `step index + 1`)_ — Step icon - **iconPosition** `"left" | "right"` _(default `'left'`)_ — Icon position relative to the step body - **iconSize** `string | number` — Controls size of the step icon, by default icon size is inferred from `size` prop - **keepMounted** `boolean` _(default `false`)_ — If set, all step content is kept mounted. React 19 `Activity` is used to preserve state while content is hidden. - **onStepClick** `(stepIndex: number) => void` — Called when a clickable step is clicked with its 0-based index. Not called for the currently active step. - **orientation** `"horizontal" | "vertical"` _(default `'horizontal'`)_ — Stepper orientation - **progressIcon** `ReactNode | StepFragmentComponent` _(default `step index + 1`)_ — Step icon displayed when step is in progress - **radius** `MantineRadius | number` _(default `"xl"`)_ — Key of `theme.radius` or any valid CSS value to set steps border-radius - **size** `MantineSize` — Controls size of various Stepper elements - **wrap** `boolean` _(default `true`)_ — Determines whether steps should wrap to the next line if no space is available Optional leading props map; remaining args are children.
Stepper.Completed — compound part of Stepper (docgen omits it). Optional leading props map; remaining args are children.
Stepper.Completed — compound part of Stepper (docgen omits it). Optional leading props map; remaining args are children.
StepperStep — Display content divided into a steps sequence (Stepper family)
https://mantine.dev/core/stepper
Props (docgen 9.5.0):
boolean — Set to false to disable clicks on stepboolean — Should step selection be allowedMantineColor — Key of theme.colors, by default controlled by Stepper componentReactNode | StepFragmentComponent — Step icon displayed when step is completedReactNode | StepFragmentComponent — Step descriptionReactNode | StepFragmentComponent — Step icon, defaults to step index + 1 when rendered within Stepper"left" | "right" — Icon position relative to step body, controlled by Stepper componentstring | number — Icon wrapper sizeReactNode | StepFragmentComponent — Step label, render after iconboolean — Indicates loading state of the step"horizontal" | "vertical" — Component orientationReactNode | StepFragmentComponent — Step icon displayed when step is in progress"stepInactive" | "stepProgress" | "stepCompleted" — Step state, automatically set by Stepper component based on active prop. stepInactive: not reached, stepProgress: current, stepCompleted: passednumber — 0-based step index, automatically set by Stepper componentboolean (default true) — When false, hides the step icon. Useful for creating compact steppers with only labelsOptional leading props map; remaining args are children.
StepperStep — Display content divided into a steps sequence (Stepper family) https://mantine.dev/core/stepper Props (docgen 9.5.0): - **allowStepClick** `boolean` — Set to false to disable clicks on step - **allowStepSelect** `boolean` — Should step selection be allowed - **color** `MantineColor` — Key of `theme.colors`, by default controlled by Stepper component - **completedIcon** `ReactNode | StepFragmentComponent` — Step icon displayed when step is completed - **description** `ReactNode | StepFragmentComponent` — Step description - **icon** `ReactNode | StepFragmentComponent` — Step icon, defaults to `step index + 1` when rendered within Stepper - **iconPosition** `"left" | "right"` — Icon position relative to step body, controlled by Stepper component - **iconSize** `string | number` — Icon wrapper size - **label** `ReactNode | StepFragmentComponent` — Step label, render after icon - **loading** `boolean` — Indicates loading state of the step - **orientation** `"horizontal" | "vertical"` — Component orientation - **progressIcon** `ReactNode | StepFragmentComponent` — Step icon displayed when step is in progress - **state** `"stepInactive" | "stepProgress" | "stepCompleted"` — Step state, automatically set by Stepper component based on active prop. stepInactive: not reached, stepProgress: current, stepCompleted: passed - **step** `number` — 0-based step index, automatically set by Stepper component - **withIcon** `boolean` _(default `true`)_ — When false, hides the step icon. Useful for creating compact steppers with only labels Optional leading props map; remaining args are children.
Switch — Capture boolean input from user
https://mantine.dev/core/switch
Props (docgen 9.5.0):
MantineColor (default theme.primaryColor) — Key of theme.colors or any valid CSS color to set input color in checked stateReact.ReactNode — Description displayed below the labelReact.ReactNode — Error displayed below the labelstring — Id used to bind input and label, if not passed, unique id will be generated insteadReact.ReactNode — Content of the label associated with the switch"left" | "right" (default 'right') — Position of the label relative to the inputReact.ReactNode — Inner label when the Switch is in unchecked stateReact.ReactNode — Inner label when the Switch is in checked stateMantineRadius | number (default 'xl') — Key of theme.radius or any valid CSS value to set border-radiusRef<HTMLDivElement> — Assigns ref of the root elementMantineSize — Controls size of all elementsReact.ReactNode — Icon inside the thumb of the switchboolean (default true) — If set, displays a colored dot inside the thumb that matches the track background colorReact.ComponentProps<"div"> — Props passed down to the root elementOptional leading props map; remaining args are children.
Switch — Capture boolean input from user https://mantine.dev/core/switch Props (docgen 9.5.0): - **color** `MantineColor` _(default `theme.primaryColor`)_ — Key of `theme.colors` or any valid CSS color to set input color in checked state - **description** `React.ReactNode` — Description displayed below the label - **error** `React.ReactNode` — Error displayed below the label - **id** `string` — Id used to bind input and label, if not passed, unique id will be generated instead - **label** `React.ReactNode` — Content of the label associated with the switch - **labelPosition** `"left" | "right"` _(default `'right'`)_ — Position of the label relative to the input - **offLabel** `React.ReactNode` — Inner label when the `Switch` is in unchecked state - **onLabel** `React.ReactNode` — Inner label when the `Switch` is in checked state - **radius** `MantineRadius | number` _(default `'xl'`)_ — Key of `theme.radius` or any valid CSS value to set `border-radius` - **rootRef** `Ref<HTMLDivElement>` — Assigns ref of the root element - **size** `MantineSize` — Controls size of all elements - **thumbIcon** `React.ReactNode` — Icon inside the thumb of the switch - **withThumbIndicator** `boolean` _(default `true`)_ — If set, displays a colored dot inside the thumb that matches the track background color - **wrapperProps** `React.ComponentProps<"div">` — Props passed down to the root element Optional leading props map; remaining args are children.
SwitchGroup — Capture boolean input from user (Switch family)
https://mantine.dev/core/switch
Optional leading props map; remaining args are children.
SwitchGroup — Capture boolean input from user (Switch family) https://mantine.dev/core/switch Optional leading props map; remaining args are children.
Table — Render table with theme styles
https://mantine.dev/core/table
Props (docgen 9.5.0):
MantineColor — Color of table borders, key of theme.colors or any valid CSS color"bottom" | "top" (default bottom) — Side of the Table.CaptionTableData — Data used to generate table, ignored if children prop is setboolean (default false) — If set, table rows background changes to highlightOnHoverColor when hoveredMantineColor — Background color of table rows when hovered, key of theme.colors or any valid CSS colorMantineSpacing (default xs) — Horizontal cells spacing, key of theme.spacing or any valid CSS value for padding, numbers are converted to remTableLayout (default auto) — Value of table-layout styleboolean (default false) — If set, Table.Thead is stickystring | number (default 0) — Offset from top at which Table.Thead should become stickyboolean | "odd" | "even" (default false) — If set, every odd/even row background changes to stripedColor, if set to true, then odd value will be usedMantineColor — Background color of striped rows, key of theme.colors or any valid CSS colorboolean (default false) — If set, font-variant-numeric: tabular-nums style is appliedMantineSpacing (default xs) — Vertical cells spacing, key of theme.spacing or any valid CSS value for padding, numbers are converted to remboolean (default false) — If set, the table has borders between columnsboolean (default true) — If set, the table has borders between rowsboolean (default false) — If set, the table has the outer borderOptional leading props map; remaining args are children.
Table — Render table with theme styles https://mantine.dev/core/table Props (docgen 9.5.0): - **borderColor** `MantineColor` — Color of table borders, key of `theme.colors` or any valid CSS color - **captionSide** `"bottom" | "top"` _(default `bottom`)_ — Side of the `Table.Caption` - **data** `TableData` — Data used to generate table, ignored if `children` prop is set - **highlightOnHover** `boolean` _(default `false`)_ — If set, table rows background changes to `highlightOnHoverColor` when hovered - **highlightOnHoverColor** `MantineColor` — Background color of table rows when hovered, key of `theme.colors` or any valid CSS color - **horizontalSpacing** `MantineSpacing` _(default `xs`)_ — Horizontal cells spacing, key of `theme.spacing` or any valid CSS value for padding, numbers are converted to rem - **layout** `TableLayout` _(default `auto`)_ — Value of `table-layout` style - **stickyHeader** `boolean` _(default `false`)_ — If set, `Table.Thead` is sticky - **stickyHeaderOffset** `string | number` _(default `0`)_ — Offset from top at which `Table.Thead` should become sticky - **striped** `boolean | "odd" | "even"` _(default `false`)_ — If set, every odd/even row background changes to `stripedColor`, if set to `true`, then `odd` value will be used - **stripedColor** `MantineColor` — Background color of striped rows, key of `theme.colors` or any valid CSS color - **tabularNums** `boolean` _(default `false`)_ — If set, `font-variant-numeric: tabular-nums` style is applied - **verticalSpacing** `MantineSpacing` _(default `xs`)_ — Vertical cells spacing, key of `theme.spacing` or any valid CSS value for padding, numbers are converted to rem - **withColumnBorders** `boolean` _(default `false`)_ — If set, the table has borders between columns - **withRowBorders** `boolean` _(default `true`)_ — If set, the table has borders between rows - **withTableBorder** `boolean` _(default `false`)_ — If set, the table has the outer border Optional leading props map; remaining args are children.
Table.Caption — compound part of Table (docgen omits it). Optional leading props map; remaining args are children.
Table.Caption — compound part of Table (docgen omits it). Optional leading props map; remaining args are children.
TableOfContents
https://mantine.dev/core/table-of-contents
Props (docgen 9.5.0):
boolean — If set, adjusts text color based on background color for filled variantMantineColor (default theme.primaryColor) — Key of theme.colors or any valid CSS color valuestring | number — Controls padding on the left side of control, multiplied by (depth - minDepthToOffset), 20px by default(payload: TableOfContentsGetControlPropsPayload) => UnstyledButtonProps & ElementProps<"button"> & Record<...> — A function to pass props down to controls, accepts values from use-scroll-spy hook as an argument and active state.InitialTableOfContentsData[] — Data used to render content until actual values are retrieved from the DOMnumber — Minimum depth value that requires offset, 1 by defaultMantineRadius | number (default theme.defaultRadius) — Key of theme.radius or any valid CSS value to set border-radiusRefObject<() => void> — A function to reinitialize headings from use-scroll-spy hookUseScrollSpyOptions — Options passed down to use-scroll-spy hookMantineSize | number (default 'md') — Controls font-size and padding of all elementsOptional leading props map; remaining args are children.
TableOfContents https://mantine.dev/core/table-of-contents Props (docgen 9.5.0): - **autoContrast** `boolean` — If set, adjusts text color based on background color for `filled` variant - **color** `MantineColor` _(default `theme.primaryColor`)_ — Key of `theme.colors` or any valid CSS color value - **depthOffset** `string | number` — Controls padding on the left side of control, multiplied by (`depth` - `minDepthToOffset`), `20px` by default - **getControlProps** `(payload: TableOfContentsGetControlPropsPayload) => UnstyledButtonProps & ElementProps<"button"> & Record<...>` — A function to pass props down to controls, accepts values from `use-scroll-spy` hook as an argument and active state. - **initialData** `InitialTableOfContentsData[]` — Data used to render content until actual values are retrieved from the DOM - **minDepthToOffset** `number` — Minimum `depth` value that requires offset, `1` by default - **radius** `MantineRadius | number` _(default `theme.defaultRadius`)_ — Key of `theme.radius` or any valid CSS value to set `border-radius` - **reinitializeRef** `RefObject<() => void>` — A function to reinitialize headings from `use-scroll-spy` hook - **scrollSpyOptions** `UseScrollSpyOptions` — Options passed down to `use-scroll-spy` hook - **size** `MantineSize | number` _(default `'md'`)_ — Controls font-size and padding of all elements Optional leading props map; remaining args are children.
Table.ScrollContainer — compound part of Table (docgen omits it). Optional leading props map; remaining args are children.
Table.ScrollContainer — compound part of Table (docgen omits it). Optional leading props map; remaining args are children.
Table.Tbody — compound part of Table (docgen omits it). Optional leading props map; remaining args are children.
Table.Tbody — compound part of Table (docgen omits it). Optional leading props map; remaining args are children.
Table.Td — compound part of Table (docgen omits it). Optional leading props map; remaining args are children.
Table.Td — compound part of Table (docgen omits it). Optional leading props map; remaining args are children.
Table.Tfoot — compound part of Table (docgen omits it). Optional leading props map; remaining args are children.
Table.Tfoot — compound part of Table (docgen omits it). Optional leading props map; remaining args are children.
Table.Th — compound part of Table (docgen omits it). Optional leading props map; remaining args are children.
Table.Th — compound part of Table (docgen omits it). Optional leading props map; remaining args are children.
Table.Thead — compound part of Table (docgen omits it). Optional leading props map; remaining args are children.
Table.Thead — compound part of Table (docgen omits it). Optional leading props map; remaining args are children.
Table.Tr — compound part of Table (docgen omits it). Optional leading props map; remaining args are children.
Table.Tr — compound part of Table (docgen omits it). Optional leading props map; remaining args are children.
Tabs — Switch between different views
Props (docgen 9.5.0):
boolean (default true) — If set, tab is activated with arrow key pressboolean (default false) — If set, tab can be deactivatedboolean — If set, adjusts text color based on background color for pills variantReact.ReactNode — Tabs contentMantineColor — Changes colors of Tabs.Tab components when variant is pills or default, does nothing for other variantsstring | null — Uncontrolled component default valuestring — Base id, used to generate ids to connect labels with controls, generated randomly by defaultboolean (default false) — Determines whether tabs should have inverted stylesboolean (default true) — If set to false, Tabs.Panel content will be unmounted when the associated tab is not active"activity" | "display-none" (default 'activity') — Controls how inactive tabs content is hidden when keepMounted is true, 'activity' – hidden with Activity component, 'display-none' – hidden with display: none stylesboolean (default true) — If set, arrow key presses loop though items (first to last and last to first)(value: string | null) => void — Called when value changes"horizontal" | "vertical" (default 'horizontal') — Tabs orientation"left" | "right" (default 'left') — Tabs.List placement relative to Tabs.Panel, applicable only when orientation="vertical"MantineRadius | number (default theme.defaultRadius) — Key of theme.radius or any valid CSS value to set border-radiusstring | null — Controlled component valueOptional leading props map; remaining args are children.
Tabs — Switch between different views https://mantine.dev/core/tabs Props (docgen 9.5.0): - **activateTabWithKeyboard** `boolean` _(default `true`)_ — If set, tab is activated with arrow key press - **allowTabDeactivation** `boolean` _(default `false`)_ — If set, tab can be deactivated - **autoContrast** `boolean` — If set, adjusts text color based on background color for `pills` variant - **children** `React.ReactNode` — Tabs content - **color** `MantineColor` — Changes colors of `Tabs.Tab` components when variant is `pills` or `default`, does nothing for other variants - **defaultValue** `string | null` — Uncontrolled component default value - **id** `string` — Base id, used to generate ids to connect labels with controls, generated randomly by default - **inverted** `boolean` _(default `false`)_ — Determines whether tabs should have inverted styles - **keepMounted** `boolean` _(default `true`)_ — If set to `false`, `Tabs.Panel` content will be unmounted when the associated tab is not active - **keepMountedMode** `"activity" | "display-none"` _(default `'activity'`)_ — Controls how inactive tabs content is hidden when `keepMounted` is `true`, `'activity'` – hidden with `Activity` component, `'display-none'` – hidden with `display: none` styles - **loop** `boolean` _(default `true`)_ — If set, arrow key presses loop though items (first to last and last to first) - **onChange** `(value: string | null) => void` — Called when value changes - **orientation** `"horizontal" | "vertical"` _(default `'horizontal'`)_ — Tabs orientation - **placement** `"left" | "right"` _(default `'left'`)_ — `Tabs.List` placement relative to `Tabs.Panel`, applicable only when `orientation="vertical"` - **radius** `MantineRadius | number` _(default `theme.defaultRadius`)_ — Key of `theme.radius` or any valid CSS value to set `border-radius` - **value** `string | null` — Controlled component value Optional leading props map; remaining args are children.
TabsList — Switch between different views (Tabs family)
Props (docgen 9.5.0):
React.ReactNode (required) — Tabs.Tab componentsboolean (default false) — Determines whether tabs should take all available spaceJustifyContent (default flex-start) — Tabs alignmentOptional leading props map; remaining args are children.
TabsList — Switch between different views (Tabs family) https://mantine.dev/core/tabs Props (docgen 9.5.0): - **children** `React.ReactNode` **(required)** — `Tabs.Tab` components - **grow** `boolean` _(default `false`)_ — Determines whether tabs should take all available space - **justify** `JustifyContent` _(default `flex-start`)_ — Tabs alignment Optional leading props map; remaining args are children.
TabsPanel — Switch between different views (Tabs family)
Props (docgen 9.5.0):
React.ReactNode (required) — Panel contentboolean — If set, the content is kept mounted, even if keepMounted is set false in the parent Tabs componentstring (required) — Value of associated controlOptional leading props map; remaining args are children.
TabsPanel — Switch between different views (Tabs family) https://mantine.dev/core/tabs Props (docgen 9.5.0): - **children** `React.ReactNode` **(required)** — Panel content - **keepMounted** `boolean` — If set, the content is kept mounted, even if `keepMounted` is set `false` in the parent `Tabs` component - **value** `string` **(required)** — Value of associated control Optional leading props map; remaining args are children.
TabsTab — Switch between different views (Tabs family)
Props (docgen 9.5.0):
React.ReactNode — Tab labelMantineColor — Key of theme.colors or any valid CSS color, controls tab color based on variantReact.ReactNode — Content displayed on the left side of the labelReact.ReactNode — Content displayed on the right side of the labelstring | number — Size passed from parent component, sets data-size if value is not number likestring (required) — Value of associated panelOptional leading props map; remaining args are children.
TabsTab — Switch between different views (Tabs family) https://mantine.dev/core/tabs Props (docgen 9.5.0): - **children** `React.ReactNode` — Tab label - **color** `MantineColor` — Key of `theme.colors` or any valid CSS color, controls tab color based on `variant` - **leftSection** `React.ReactNode` — Content displayed on the left side of the label - **rightSection** `React.ReactNode` — Content displayed on the right side of the label - **size** `string | number` — Size passed from parent component, sets `data-size` if value is not number like - **value** `string` **(required)** — Value of associated panel Optional leading props map; remaining args are children.
TagsInput — Capture a list of values from user with free input and suggestions
https://mantine.dev/core/tags-input
Props (docgen 9.5.0):
boolean (default true) — If set, the value typed in by the user but not submitted is accepted when the input is blurredboolean (default false) — If set, duplicate tags are allowedInputClearButtonProps — Props passed down to the clear buttonClearSectionMode (default 'both') — Determines how the clear button and rightSection are renderedboolean (default false) — If set, the clear button is displayed in the right section when the component has valueComboboxProps — Props passed down to Combobox componentComboboxGenericData — Data displayed in the dropdown. Values must be unique.boolean — Uncontrolled dropdown initial opened statestring — Default search valuestring[] — Uncontrolled component default valueReact.ReactNode — Contents of Input.Description component. If not set, description is not displayed.InputDescriptionProps — Props passed down to the Input.Description componentboolean — Sets disabled attribute on the input elementboolean — Controlled dropdown opened stateReact.ReactNode — Contents of Input.Error component. If not set, error is not displayed.InputErrorProps — Props passed down to the Input.Error componentOptionsFilter<string> — Function based on which items are filtered and sorted"viewport" — If set to 'viewport', the dropdown grows to fill the available vertical space in the viewport. Disables the flip middleware.React.ComponentProps<"input"> — Props passed down to the hidden inputstring (default ',') — Divider used to separate values in the hidden input value attribute(children: ReactNode) => ReactNode (default React.Fragment) — Render function to wrap the input element. Useful for adding tooltips, popovers, or other wrappers around the input.string — HTML size attribute for the input element (number of visible characters)("input" | "label" | "description" | "error")[] (default ['label', 'description', 'input', 'error']) — Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.(value: string, currentValues: string[]) => boolean — Custom function to determine if a tag is duplicate. Accepts tag value and array of current values. By default, checks if the tag exists case-insensitively.React.ReactNode — Contents of Input.Label component. If not set, label is not displayed.InputLabelProps — Props passed down to the Input.Label componentReact.ReactNode — Content section displayed on the left side of the inputReact.CSSProperties["pointerEvents"] (default 'none') — Sets pointer-events styles on the leftSection element. Use 'all' when section contains interactive elements (buttons, links).React.ComponentProps<"div"> — Props passed down to the leftSection elementReact.CSSProperties["width"] — Left section width, used to set width of the section and input padding-left, by default equals to the input heightnumber — Maximum number of options displayed at a time, Infinity by defaultboolean (default false) — Displays loading indicator in the left or right section"left" | "right" (default 'right') — Position of the loading indicatorstring | number — max-height of the dropdown, only applicable when withScrollArea prop is true, 250 by defaultnumber (default Infinity) — Maximum number of tags(value: string[]) => void — Called when value changes() => void — Called when the clear button is clicked() => void — Called when dropdown closes() => void — Called when dropdown opens(value: string) => void — Called when user tries to submit a duplicated tag(value: string) => void — Called when user tries to add more tags than maxTags(value: string) => void — Called when option is submitted from dropdown with mouse click or Enter key(value: string) => void — Called when tag is removed(value: string) => void — Called when search changesboolean (default true) — If set, the dropdown opens when the input receives focusboolean (default false) — Determines whether the input should have cursor: pointer style. Use when input acts as a button-like trigger (e.g., component="button" for Select/DatePicker).MantineRadius | number (default theme.defaultRadius) — Key of theme.radius or any valid CSS value to set border-radius, numbers are converted to rem(input: ComboboxLikeRenderOptionInput<ComboboxGenericItem<string>>) => ReactNode — A function to render content of the option, replaces the default content of the option(props: ComboboxRenderPillInput<string>) => ReactNode — A function to render content of the pill, replaces the default content of the pillboolean (default false) — Adds required attribute to the input and a red asterisk on the right side of labelReact.ReactNode — Content section displayed on the right side of the inputReact.CSSProperties["pointerEvents"] (default 'none') — Sets pointer-events styles on the rightSection element. Use 'all' when section contains interactive elements (buttons, links).React.ComponentProps<"div"> — Props passed down to the rightSection elementReact.CSSProperties["width"] — Right section width, used to set width of the section and input padding-right, by default equals to the input heightScrollAreaProps — Props passed down to the underlying ScrollArea component in the dropdownstring — Controlled search valueboolean — If set, the first option is selected when value changes, false by defaultboolean — If set, the first option is selected when dropdown opens, false by defaultMantineSize (default 'sm') — Controls input height, horizontal padding, and font-sizestring[] — Characters that should trigger tags split, [','] by defaultReact.ReactNode — Contents of Input.Success component. If not set, success is not displayed.InputSuccessProps & DataAttributes — Props passed down to the Input.Success componentstring[] — Controlled component valueboolean (default false) — If set, the required asterisk is displayed next to the label. Overrides required prop. Does not add required attribute to the input.boolean (default true) — Determines whether the input should have red border and red text color when the error prop is setboolean (default false) — If set, tags can be reordered by dragging pills. Disabled when disabled or readOnly is set.boolean — Determines whether the options should be wrapped with ScrollArea.AutoSize, true by defaultboolean (default true) — Determines whether the input should have green border when the success prop is setWrapperProps — Props passed down to the root elementOptional leading props map; remaining args are children.
TagsInput — Capture a list of values from user with free input and suggestions
https://mantine.dev/core/tags-input
Props (docgen 9.5.0):
- **acceptValueOnBlur** `boolean` _(default `true`)_ — If set, the value typed in by the user but not submitted is accepted when the input is blurred
- **allowDuplicates** `boolean` _(default `false`)_ — If set, duplicate tags are allowed
- **clearButtonProps** `InputClearButtonProps` — Props passed down to the clear button
- **clearSectionMode** `ClearSectionMode` _(default `'both'`)_ — Determines how the clear button and rightSection are rendered
- **clearable** `boolean` _(default `false`)_ — If set, the clear button is displayed in the right section when the component has value
- **comboboxProps** `ComboboxProps` — Props passed down to `Combobox` component
- **data** `ComboboxGenericData` — Data displayed in the dropdown. Values must be unique.
- **defaultDropdownOpened** `boolean` — Uncontrolled dropdown initial opened state
- **defaultSearchValue** `string` — Default search value
- **defaultValue** `string[]` — Uncontrolled component default value
- **description** `React.ReactNode` — Contents of `Input.Description` component. If not set, description is not displayed.
- **descriptionProps** `InputDescriptionProps` — Props passed down to the `Input.Description` component
- **disabled** `boolean` — Sets `disabled` attribute on the `input` element
- **dropdownOpened** `boolean` — Controlled dropdown opened state
- **error** `React.ReactNode` — Contents of `Input.Error` component. If not set, error is not displayed.
- **errorProps** `InputErrorProps` — Props passed down to the `Input.Error` component
- **filter** `OptionsFilter<string>` — Function based on which items are filtered and sorted
- **floatingHeight** `"viewport"` — If set to `'viewport'`, the dropdown grows to fill the available vertical space in the viewport. Disables the `flip` middleware.
- **hiddenInputProps** `React.ComponentProps<"input">` — Props passed down to the hidden input
- **hiddenInputValuesDivider** `string` _(default `','`)_ — Divider used to separate values in the hidden input `value` attribute
- **inputContainer** `(children: ReactNode) => ReactNode` _(default `React.Fragment`)_ — Render function to wrap the input element. Useful for adding tooltips, popovers, or other wrappers around the input.
- **inputSize** `string` — HTML `size` attribute for the input element (number of visible characters)
- **inputWrapperOrder** `("input" | "label" | "description" | "error")[]` _(default `['label', 'description', 'input', 'error']`)_ — Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.
- **isDuplicate** `(value: string, currentValues: string[]) => boolean` — Custom function to determine if a tag is duplicate. Accepts tag value and array of current values. By default, checks if the tag exists case-insensitively.
- **label** `React.ReactNode` — Contents of `Input.Label` component. If not set, label is not displayed.
- **labelProps** `InputLabelProps` — Props passed down to the `Input.Label` component
- **leftSection** `React.ReactNode` — Content section displayed on the left side of the input
- **leftSectionPointerEvents** `React.CSSProperties["pointerEvents"]` _(default `'none'`)_ — Sets `pointer-events` styles on the `leftSection` element. Use `'all'` when section contains interactive elements (buttons, links).
- **leftSectionProps** `React.ComponentProps<"div">` — Props passed down to the `leftSection` element
- **leftSectionWidth** `React.CSSProperties["width"]` — Left section width, used to set `width` of the section and input `padding-left`, by default equals to the input height
- **limit** `number` — Maximum number of options displayed at a time, `Infinity` by default
- **loading** `boolean` _(default `false`)_ — Displays loading indicator in the left or right section
- **loadingPosition** `"left" | "right"` _(default `'right'`)_ — Position of the loading indicator
- **maxDropdownHeight** `string | number` — `max-height` of the dropdown, only applicable when `withScrollArea` prop is `true`, `250` by default
- **maxTags** `number` _(default `Infinity`)_ — Maximum number of tags
- **onChange** `(value: string[]) => void` — Called when value changes
- **onClear** `() => void` — Called when the clear button is clicked
- **onDropdownClose** `() => void` — Called when dropdown closes
- **onDropdownOpen** `() => void` — Called when dropdown opens
- **onDuplicate** `(value: string) => void` — Called when user tries to submit a duplicated tag
- **onMaxTags** `(value: string) => void` — Called when user tries to add more tags than maxTags
- **onOptionSubmit** `(value: string) => void` — Called when option is submitted from dropdown with mouse click or `Enter` key
- **onRemove** `(value: string) => void` — Called when tag is removed
- **onSearchChange** `(value: string) => void` — Called when search changes
- **openOnFocus** `boolean` _(default `true`)_ — If set, the dropdown opens when the input receives focus
- **pointer** `boolean` _(default `false`)_ — Determines whether the input should have `cursor: pointer` style. Use when input acts as a button-like trigger (e.g., `component="button"` for Select/DatePicker).
- **radius** `MantineRadius | number` _(default `theme.defaultRadius`)_ — Key of `theme.radius` or any valid CSS value to set `border-radius`, numbers are converted to rem
- **renderOption** `(input: ComboboxLikeRenderOptionInput<ComboboxGenericItem<string>>) => ReactNode` — A function to render content of the option, replaces the default content of the option
- **renderPill** `(props: ComboboxRenderPillInput<string>) => ReactNode` — A function to render content of the pill, replaces the default content of the pill
- **required** `boolean` _(default `false`)_ — Adds required attribute to the input and a red asterisk on the right side of label
- **rightSection** `React.ReactNode` — Content section displayed on the right side of the input
- **rightSectionPointerEvents** `React.CSSProperties["pointerEvents"]` _(default `'none'`)_ — Sets `pointer-events` styles on the `rightSection` element. Use `'all'` when section contains interactive elements (buttons, links).
- **rightSectionProps** `React.ComponentProps<"div">` — Props passed down to the `rightSection` element
- **rightSectionWidth** `React.CSSProperties["width"]` — Right section width, used to set `width` of the section and input `padding-right`, by default equals to the input height
- **scrollAreaProps** `ScrollAreaProps` — Props passed down to the underlying `ScrollArea` component in the dropdown
- **searchValue** `string` — Controlled search value
- **selectFirstOptionOnChange** `boolean` — If set, the first option is selected when value changes, `false` by default
- **selectFirstOptionOnDropdownOpen** `boolean` — If set, the first option is selected when dropdown opens, `false` by default
- **size** `MantineSize` _(default `'sm'`)_ — Controls input `height`, horizontal `padding`, and `font-size`
- **splitChars** `string[]` — Characters that should trigger tags split, `[',']` by default
- **success** `React.ReactNode` — Contents of `Input.Success` component. If not set, success is not displayed.
- **successProps** `InputSuccessProps & DataAttributes` — Props passed down to the `Input.Success` component
- **value** `string[]` — Controlled component value
- **withAsterisk** `boolean` _(default `false`)_ — If set, the required asterisk is displayed next to the label. Overrides `required` prop. Does not add required attribute to the input.
- **withErrorStyles** `boolean` _(default `true`)_ — Determines whether the input should have red border and red text color when the `error` prop is set
- **withPillsReorder** `boolean` _(default `false`)_ — If set, tags can be reordered by dragging pills. Disabled when `disabled` or `readOnly` is set.
- **withScrollArea** `boolean` — Determines whether the options should be wrapped with `ScrollArea.AutoSize`, `true` by default
- **withSuccessStyles** `boolean` _(default `true`)_ — Determines whether the input should have green border when the `success` prop is set
- **wrapperProps** `WrapperProps` — Props passed down to the root element
Optional leading props map; remaining args are children.Text — Display text
Props (docgen 9.5.0):
MantineGradient (default theme.defaultGradient) — Gradient configuration, ignored when variant is not gradientboolean (default false) — Determines whether font properties should be inherited from the parentboolean (default false) — Sets line-height to 1 for centeringnumber — Number of lines after which Text will be truncatedMantineSize | (string & {}) (default 'md') — Controls font-size and line-heightboolean — Shorthand for component="span""wrap" | "nowrap" | "balance" | "pretty" | "stable" — Controls text-wrap CSS propertyTextTruncate — Side on which Text must be truncated, if true, text is truncated from the startOptional leading props map; remaining args are children.
Text — Display text
https://mantine.dev/core/text
Props (docgen 9.5.0):
- **gradient** `MantineGradient` _(default `theme.defaultGradient`)_ — Gradient configuration, ignored when `variant` is not `gradient`
- **inherit** `boolean` _(default `false`)_ — Determines whether font properties should be inherited from the parent
- **inline** `boolean` _(default `false`)_ — Sets `line-height` to 1 for centering
- **lineClamp** `number` — Number of lines after which Text will be truncated
- **size** `MantineSize | (string & {})` _(default `'md'`)_ — Controls `font-size` and `line-height`
- **span** `boolean` — Shorthand for `component="span"`
- **textWrap** `"wrap" | "nowrap" | "balance" | "pretty" | "stable"` — Controls `text-wrap` CSS property
- **truncate** `TextTruncate` — Side on which Text must be truncated, if `true`, text is truncated from the start
Optional leading props map; remaining args are children.TextInput — Capture string input from user
https://mantine.dev/core/text-input
Props (docgen 9.5.0):
React.ReactNode — Contents of Input.Description component. If not set, description is not displayed.InputDescriptionProps — Props passed down to the Input.Description componentboolean — Sets disabled attribute on the input elementReact.ReactNode — Contents of Input.Error component. If not set, error is not displayed.InputErrorProps — Props passed down to the Input.Error component(children: ReactNode) => ReactNode (default React.Fragment) — Render function to wrap the input element. Useful for adding tooltips, popovers, or other wrappers around the input.string — HTML size attribute for the input element (number of visible characters)("input" | "label" | "description" | "error")[] (default ['label', 'description', 'input', 'error']) — Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.React.ReactNode — Contents of Input.Label component. If not set, label is not displayed.InputLabelProps — Props passed down to the Input.Label componentReact.ReactNode — Content section displayed on the left side of the inputReact.CSSProperties["pointerEvents"] (default 'none') — Sets pointer-events styles on the leftSection element. Use 'all' when section contains interactive elements (buttons, links).React.ComponentProps<"div"> — Props passed down to the leftSection elementReact.CSSProperties["width"] — Left section width, used to set width of the section and input padding-left, by default equals to the input heightboolean (default false) — Displays loading indicator in the left or right section"left" | "right" (default 'right') — Position of the loading indicatorboolean (default false) — Determines whether the input should have cursor: pointer style. Use when input acts as a button-like trigger (e.g., component="button" for Select/DatePicker).MantineRadius | number (default theme.defaultRadius) — Key of theme.radius or any valid CSS value to set border-radius, numbers are converted to remboolean (default false) — Adds required attribute to the input and a red asterisk on the right side of labelReact.ReactNode — Content section displayed on the right side of the inputReact.CSSProperties["pointerEvents"] (default 'none') — Sets pointer-events styles on the rightSection element. Use 'all' when section contains interactive elements (buttons, links).React.ComponentProps<"div"> — Props passed down to the rightSection elementReact.CSSProperties["width"] — Right section width, used to set width of the section and input padding-right, by default equals to the input heightMantineSize (default 'sm') — Controls input height, horizontal padding, and font-sizeReact.ReactNode — Contents of Input.Success component. If not set, success is not displayed.InputSuccessProps & DataAttributes — Props passed down to the Input.Success componentboolean (default false) — If set, the required asterisk is displayed next to the label. Overrides required prop. Does not add required attribute to the input.boolean (default true) — Determines whether the input should have red border and red text color when the error prop is setboolean (default true) — Determines whether the input should have green border when the success prop is setWrapperProps — Props passed down to the root elementOptional leading props map; remaining args are children.
TextInput — Capture string input from user
https://mantine.dev/core/text-input
Props (docgen 9.5.0):
- **description** `React.ReactNode` — Contents of `Input.Description` component. If not set, description is not displayed.
- **descriptionProps** `InputDescriptionProps` — Props passed down to the `Input.Description` component
- **disabled** `boolean` — Sets `disabled` attribute on the `input` element
- **error** `React.ReactNode` — Contents of `Input.Error` component. If not set, error is not displayed.
- **errorProps** `InputErrorProps` — Props passed down to the `Input.Error` component
- **inputContainer** `(children: ReactNode) => ReactNode` _(default `React.Fragment`)_ — Render function to wrap the input element. Useful for adding tooltips, popovers, or other wrappers around the input.
- **inputSize** `string` — HTML `size` attribute for the input element (number of visible characters)
- **inputWrapperOrder** `("input" | "label" | "description" | "error")[]` _(default `['label', 'description', 'input', 'error']`)_ — Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.
- **label** `React.ReactNode` — Contents of `Input.Label` component. If not set, label is not displayed.
- **labelProps** `InputLabelProps` — Props passed down to the `Input.Label` component
- **leftSection** `React.ReactNode` — Content section displayed on the left side of the input
- **leftSectionPointerEvents** `React.CSSProperties["pointerEvents"]` _(default `'none'`)_ — Sets `pointer-events` styles on the `leftSection` element. Use `'all'` when section contains interactive elements (buttons, links).
- **leftSectionProps** `React.ComponentProps<"div">` — Props passed down to the `leftSection` element
- **leftSectionWidth** `React.CSSProperties["width"]` — Left section width, used to set `width` of the section and input `padding-left`, by default equals to the input height
- **loading** `boolean` _(default `false`)_ — Displays loading indicator in the left or right section
- **loadingPosition** `"left" | "right"` _(default `'right'`)_ — Position of the loading indicator
- **pointer** `boolean` _(default `false`)_ — Determines whether the input should have `cursor: pointer` style. Use when input acts as a button-like trigger (e.g., `component="button"` for Select/DatePicker).
- **radius** `MantineRadius | number` _(default `theme.defaultRadius`)_ — Key of `theme.radius` or any valid CSS value to set `border-radius`, numbers are converted to rem
- **required** `boolean` _(default `false`)_ — Adds required attribute to the input and a red asterisk on the right side of label
- **rightSection** `React.ReactNode` — Content section displayed on the right side of the input
- **rightSectionPointerEvents** `React.CSSProperties["pointerEvents"]` _(default `'none'`)_ — Sets `pointer-events` styles on the `rightSection` element. Use `'all'` when section contains interactive elements (buttons, links).
- **rightSectionProps** `React.ComponentProps<"div">` — Props passed down to the `rightSection` element
- **rightSectionWidth** `React.CSSProperties["width"]` — Right section width, used to set `width` of the section and input `padding-right`, by default equals to the input height
- **size** `MantineSize` _(default `'sm'`)_ — Controls input `height`, horizontal `padding`, and `font-size`
- **success** `React.ReactNode` — Contents of `Input.Success` component. If not set, success is not displayed.
- **successProps** `InputSuccessProps & DataAttributes` — Props passed down to the `Input.Success` component
- **withAsterisk** `boolean` _(default `false`)_ — If set, the required asterisk is displayed next to the label. Overrides `required` prop. Does not add required attribute to the input.
- **withErrorStyles** `boolean` _(default `true`)_ — Determines whether the input should have red border and red text color when the `error` prop is set
- **withSuccessStyles** `boolean` _(default `true`)_ — Determines whether the input should have green border when the `success` prop is set
- **wrapperProps** `WrapperProps` — Props passed down to the root element
Optional leading props map; remaining args are children.Textarea — Autosize or regular textarea
https://mantine.dev/core/textarea
Props (docgen 9.5.0):
boolean (default false) — If set, enables textarea height growing with its contentReact.ReactNode — Content rendered at the bottom of the input, inside the borderReact.ComponentProps<"div"> — Props passed down to the bottomSection elementReact.ReactNode — Contents of Input.Description component. If not set, description is not displayed.InputDescriptionProps — Props passed down to the Input.Description componentboolean — Sets disabled attribute on the input elementReact.ReactNode — Contents of Input.Error component. If not set, error is not displayed.InputErrorProps — Props passed down to the Input.Error component(children: ReactNode) => ReactNode (default React.Fragment) — Render function to wrap the input element. Useful for adding tooltips, popovers, or other wrappers around the input.string — HTML size attribute for the input element (number of visible characters)("input" | "label" | "description" | "error")[] (default ['label', 'description', 'input', 'error']) — Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.React.ReactNode — Contents of Input.Label component. If not set, label is not displayed.InputLabelProps — Props passed down to the Input.Label componentReact.ReactNode — Content section displayed on the left side of the inputReact.CSSProperties["pointerEvents"] (default 'none') — Sets pointer-events styles on the leftSection element. Use 'all' when section contains interactive elements (buttons, links).React.ComponentProps<"div"> — Props passed down to the leftSection elementReact.CSSProperties["width"] — Left section width, used to set width of the section and input padding-left, by default equals to the input heightboolean (default false) — Displays loading indicator in the left or right section"left" | "right" (default 'right') — Position of the loading indicatornumber — Maximum rows for autosize textarea to grow, ignored if autosize prop is not setnumber — Minimum rows of autosize textarea, ignored if autosize prop is not setboolean (default false) — Determines whether the input should have cursor: pointer style. Use when input acts as a button-like trigger (e.g., component="button" for Select/DatePicker).MantineRadius | number (default theme.defaultRadius) — Key of theme.radius or any valid CSS value to set border-radius, numbers are converted to remboolean (default false) — Adds required attribute to the input and a red asterisk on the right side of labelResize (default 'none') — Controls resize CSS propertyReact.ReactNode — Content section displayed on the right side of the inputReact.CSSProperties["pointerEvents"] (default 'none') — Sets pointer-events styles on the rightSection element. Use 'all' when section contains interactive elements (buttons, links).React.ComponentProps<"div"> — Props passed down to the rightSection elementReact.CSSProperties["width"] — Right section width, used to set width of the section and input padding-right, by default equals to the input heightMantineSize (default 'sm') — Controls input height, horizontal padding, and font-sizeReact.ReactNode — Contents of Input.Success component. If not set, success is not displayed.InputSuccessProps & DataAttributes — Props passed down to the Input.Success componentboolean (default false) — If set, the required asterisk is displayed next to the label. Overrides required prop. Does not add required attribute to the input.boolean (default true) — Determines whether the input should have red border and red text color when the error prop is setboolean (default true) — Determines whether the input should have green border when the success prop is setWrapperProps — Props passed down to the root elementOptional leading props map; remaining args are children.
Textarea — Autosize or regular textarea
https://mantine.dev/core/textarea
Props (docgen 9.5.0):
- **autosize** `boolean` _(default `false`)_ — If set, enables textarea height growing with its content
- **bottomSection** `React.ReactNode` — Content rendered at the bottom of the input, inside the border
- **bottomSectionProps** `React.ComponentProps<"div">` — Props passed down to the `bottomSection` element
- **description** `React.ReactNode` — Contents of `Input.Description` component. If not set, description is not displayed.
- **descriptionProps** `InputDescriptionProps` — Props passed down to the `Input.Description` component
- **disabled** `boolean` — Sets `disabled` attribute on the `input` element
- **error** `React.ReactNode` — Contents of `Input.Error` component. If not set, error is not displayed.
- **errorProps** `InputErrorProps` — Props passed down to the `Input.Error` component
- **inputContainer** `(children: ReactNode) => ReactNode` _(default `React.Fragment`)_ — Render function to wrap the input element. Useful for adding tooltips, popovers, or other wrappers around the input.
- **inputSize** `string` — HTML `size` attribute for the input element (number of visible characters)
- **inputWrapperOrder** `("input" | "label" | "description" | "error")[]` _(default `['label', 'description', 'input', 'error']`)_ — Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.
- **label** `React.ReactNode` — Contents of `Input.Label` component. If not set, label is not displayed.
- **labelProps** `InputLabelProps` — Props passed down to the `Input.Label` component
- **leftSection** `React.ReactNode` — Content section displayed on the left side of the input
- **leftSectionPointerEvents** `React.CSSProperties["pointerEvents"]` _(default `'none'`)_ — Sets `pointer-events` styles on the `leftSection` element. Use `'all'` when section contains interactive elements (buttons, links).
- **leftSectionProps** `React.ComponentProps<"div">` — Props passed down to the `leftSection` element
- **leftSectionWidth** `React.CSSProperties["width"]` — Left section width, used to set `width` of the section and input `padding-left`, by default equals to the input height
- **loading** `boolean` _(default `false`)_ — Displays loading indicator in the left or right section
- **loadingPosition** `"left" | "right"` _(default `'right'`)_ — Position of the loading indicator
- **maxRows** `number` — Maximum rows for autosize textarea to grow, ignored if `autosize` prop is not set
- **minRows** `number` — Minimum rows of autosize textarea, ignored if `autosize` prop is not set
- **pointer** `boolean` _(default `false`)_ — Determines whether the input should have `cursor: pointer` style. Use when input acts as a button-like trigger (e.g., `component="button"` for Select/DatePicker).
- **radius** `MantineRadius | number` _(default `theme.defaultRadius`)_ — Key of `theme.radius` or any valid CSS value to set `border-radius`, numbers are converted to rem
- **required** `boolean` _(default `false`)_ — Adds required attribute to the input and a red asterisk on the right side of label
- **resize** `Resize` _(default `'none'`)_ — Controls `resize` CSS property
- **rightSection** `React.ReactNode` — Content section displayed on the right side of the input
- **rightSectionPointerEvents** `React.CSSProperties["pointerEvents"]` _(default `'none'`)_ — Sets `pointer-events` styles on the `rightSection` element. Use `'all'` when section contains interactive elements (buttons, links).
- **rightSectionProps** `React.ComponentProps<"div">` — Props passed down to the `rightSection` element
- **rightSectionWidth** `React.CSSProperties["width"]` — Right section width, used to set `width` of the section and input `padding-right`, by default equals to the input height
- **size** `MantineSize` _(default `'sm'`)_ — Controls input `height`, horizontal `padding`, and `font-size`
- **success** `React.ReactNode` — Contents of `Input.Success` component. If not set, success is not displayed.
- **successProps** `InputSuccessProps & DataAttributes` — Props passed down to the `Input.Success` component
- **withAsterisk** `boolean` _(default `false`)_ — If set, the required asterisk is displayed next to the label. Overrides `required` prop. Does not add required attribute to the input.
- **withErrorStyles** `boolean` _(default `true`)_ — Determines whether the input should have red border and red text color when the `error` prop is set
- **withSuccessStyles** `boolean` _(default `true`)_ — Determines whether the input should have green border when the `success` prop is set
- **wrapperProps** `WrapperProps` — Props passed down to the root element
Optional leading props map; remaining args are children.ThemeIcon — Render icon inside element with theme colors
https://mantine.dev/core/theme-icon
Props (docgen 9.5.0):
boolean — If set, adjusts text color based on background color for filled variantReact.ReactNode — Icon displayed inside the componentMantineColor (default theme.primaryColor) — Key of theme.colors or any valid CSS color.MantineGradient (default theme.defaultGradient) — Gradient data used when variant="gradient"MantineRadius | number (default theme.defaultRadius) — Key of theme.radius or any valid CSS value to set border-radius. Numbers are converted to rem.MantineSize | number (default 'md') — Controls width and height of the button. Numbers are converted to rem.Optional leading props map; remaining args are children.
ThemeIcon — Render icon inside element with theme colors https://mantine.dev/core/theme-icon Props (docgen 9.5.0): - **autoContrast** `boolean` — If set, adjusts text color based on background color for `filled` variant - **children** `React.ReactNode` — Icon displayed inside the component - **color** `MantineColor` _(default `theme.primaryColor`)_ — Key of `theme.colors` or any valid CSS color. - **gradient** `MantineGradient` _(default `theme.defaultGradient`)_ — Gradient data used when `variant="gradient"` - **radius** `MantineRadius | number` _(default `theme.defaultRadius`)_ — Key of `theme.radius` or any valid CSS value to set border-radius. Numbers are converted to rem. - **size** `MantineSize | number` _(default `'md'`)_ — Controls width and height of the button. Numbers are converted to rem. Optional leading props map; remaining args are children.
Timeline — Display list of events in chronological order
https://mantine.dev/core/timeline
Props (docgen 9.5.0):
number — Index of the active element"left" | "right" (default 'left') — Position of content relative to the bulletboolean — If set, adjusts text color based on background color for filled variantstring | number (default 20) — Size of the bulletReact.ReactNode — Timeline.Item componentsMantineColor (default theme.primaryColor) — Key of theme.colors or any valid CSS color to control active item colorsstring | number — Control width of the lineMantineRadius | number (default 'xl') — Key of theme.radius or any valid CSS value to set border-radius, numbers are converted to remboolean (default false) — If set, the active items direction is reversed without reversing items orderOptional leading props map; remaining args are children.
Timeline — Display list of events in chronological order https://mantine.dev/core/timeline Props (docgen 9.5.0): - **active** `number` — Index of the active element - **align** `"left" | "right"` _(default `'left'`)_ — Position of content relative to the bullet - **autoContrast** `boolean` — If set, adjusts text color based on background color for `filled` variant - **bulletSize** `string | number` _(default `20`)_ — Size of the bullet - **children** `React.ReactNode` — `Timeline.Item` components - **color** `MantineColor` _(default `theme.primaryColor`)_ — Key of `theme.colors` or any valid CSS color to control active item colors - **lineWidth** `string | number` — Control width of the line - **radius** `MantineRadius | number` _(default `'xl'`)_ — Key of `theme.radius` or any valid CSS value to set `border-radius`, numbers are converted to rem - **reverseActive** `boolean` _(default `false`)_ — If set, the active items direction is reversed without reversing items order Optional leading props map; remaining args are children.
TimelineItem — Display list of events in chronological order (Timeline family)
https://mantine.dev/core/timeline
Props (docgen 9.5.0):
boolean (default false) — If set, switches the position of content and oppositeReact.ReactNode — React node that should be rendered inside the bullet – icon, image, avatar, etc. By default, large white dot is displayed.React.ReactNode — Content displayed below the titleMantineColor (default theme.primaryColor) — Key of theme.colors or any valid CSS color to control active item colors"dashed" | "dotted" | "solid" (default 'solid') — Controls line border styleReact.ReactNode — Content displayed on the opposite side of the timeline itemMantineRadius | number (default 'xl') — Key of theme.radius or any valid CSS value to set border-radius, numbers are converted to remReact.ReactNode — Item title, displayed next to the bulletOptional leading props map; remaining args are children.
TimelineItem — Display list of events in chronological order (Timeline family) https://mantine.dev/core/timeline Props (docgen 9.5.0): - **alternate** `boolean` _(default `false`)_ — If set, switches the position of content and opposite - **bullet** `React.ReactNode` — React node that should be rendered inside the bullet – icon, image, avatar, etc. By default, large white dot is displayed. - **children** `React.ReactNode` — Content displayed below the title - **color** `MantineColor` _(default `theme.primaryColor`)_ — Key of `theme.colors` or any valid CSS color to control active item colors - **lineVariant** `"dashed" | "dotted" | "solid"` _(default `'solid'`)_ — Controls line border style - **opposite** `React.ReactNode` — Content displayed on the opposite side of the timeline item - **radius** `MantineRadius | number` _(default `'xl'`)_ — Key of `theme.radius` or any valid CSS value to set `border-radius`, numbers are converted to rem - **title** `React.ReactNode` — Item title, displayed next to the bullet Optional leading props map; remaining args are children.
Title — h1-h6 heading
https://mantine.dev/core/title
Props (docgen 9.5.0):
number — Number of lines after which heading will be truncatedTitleOrder (default 1) — Heading order (1-6), controls font-size style if size prop is not setTitleSize — Changes title size, if not set, then size is controlled by order prop"wrap" | "nowrap" | "balance" | "pretty" | "stable" (default 'wrap') — Heading text-wrap CSS propertyOptional leading props map; remaining args are children.
Title — h1-h6 heading https://mantine.dev/core/title Props (docgen 9.5.0): - **lineClamp** `number` — Number of lines after which heading will be truncated - **order** `TitleOrder` _(default `1`)_ — Heading order (1-6), controls `font-size` style if `size` prop is not set - **size** `TitleSize` — Changes title size, if not set, then size is controlled by `order` prop - **textWrap** `"wrap" | "nowrap" | "balance" | "pretty" | "stable"` _(default `'wrap'`)_ — Heading `text-wrap` CSS property Optional leading props map; remaining args are children.
Tooltip — Renders tooltip at given element on mouse over or other event
https://mantine.dev/core/tooltip
Props (docgen 9.5.0):
number (default 5) — Arrow offset in px'center' | 'side' (default side) — Arrow position relative to the tooltipnumber (default 0) — Arrow border-radius in pxnumber (default 4) — Arrow size in pxboolean — If set, adjusts text color based on background color for filled variantReact.ReactNode — Target element, must support ref prop and ...othersnumber (default 0) — Close delay in msMantineColor — Key of theme.colors or any valid CSS color, controls tooltip background, by default set based on current color schemeboolean — Uncontrolled tooltip initial opened stateboolean — If set, tooltip element will not be rendered{ hover: boolean; focus: boolean; touch: boolean; } (default { hover: true, focus: false, touch: false }) — Determines which events will be used to show tooltipFloatingStrategy (default 'absolute') — Changes floating ui position strategyboolean — Must be set if the tooltip target is an inline elementboolean — If set, the tooltip is not unmounted from the DOM when hidden, display: none styles are applied insteadReact.ReactNode (required) — Tooltip contentTooltipMiddlewares — Floating ui middlewares to configure position handling, { flip: true, shift: true, inline: false } by defaultboolean — Determines whether content should be wrapped on to the next line, false by defaultnumber | FloatingAxesOffsets (default 5) — Space between target element and tooltip in px(position: FloatingPosition) => void — Called when tooltip position changesnumber — Open delay in msboolean — Controlled opened stateOmit<BasePortalProps, "withinPortal"> — Props to pass down to the portal when withinPortal is trueFloatingPosition — Tooltip position relative to target element (Tooltip component) or mouse (Tooltip.Floating component)MantineRadius | number — Key of theme.radius or any valid CSS value to set border-radius, numbers are converted to rem@default theme.defaultRadiusstring — Key of the prop that can be used to access element ref, ref by defaultstring | HTMLElement | RefObject<HTMLElement | null> | null — Selector, ref of an element or element itself that should be used for positioningTransitionProps (default { duration: 100, transition: 'fade' }) — Props passed down to the Transition component that used to animate tooltip presence, use to configure duration and animation typeboolean (default false) — If set, the tooltip has an arrowboolean — Determines whether tooltip should be rendered within Portal, true by defaultstring | number — Tooltip z-index, 300 by defaultOptional leading props map; remaining args are children.
Tooltip — Renders tooltip at given element on mouse over or other event
https://mantine.dev/core/tooltip
Props (docgen 9.5.0):
- **arrowOffset** `number` _(default `5`)_ — Arrow offset in px
- **arrowPosition** `'center' | 'side'` _(default `side`)_ — Arrow position relative to the tooltip
- **arrowRadius** `number` _(default `0`)_ — Arrow `border-radius` in px
- **arrowSize** `number` _(default `4`)_ — Arrow size in px
- **autoContrast** `boolean` — If set, adjusts text color based on background color for `filled` variant
- **children** `React.ReactNode` — Target element, must support `ref` prop and `...others`
- **closeDelay** `number` _(default `0`)_ — Close delay in ms
- **color** `MantineColor` — Key of `theme.colors` or any valid CSS color, controls tooltip background, by default set based on current color scheme
- **defaultOpened** `boolean` — Uncontrolled tooltip initial opened state
- **disabled** `boolean` — If set, tooltip element will not be rendered
- **events** `{ hover: boolean; focus: boolean; touch: boolean; }` _(default `{ hover: true, focus: false, touch: false }`)_ — Determines which events will be used to show tooltip
- **floatingStrategy** `FloatingStrategy` _(default `'absolute'`)_ — Changes floating ui [position strategy](https://floating-ui.com/docs/usefloating#strategy)
- **inline** `boolean` — Must be set if the tooltip target is an inline element
- **keepMounted** `boolean` — If set, the tooltip is not unmounted from the DOM when hidden, `display: none` styles are applied instead
- **label** `React.ReactNode` **(required)** — Tooltip content
- **middlewares** `TooltipMiddlewares` — Floating ui middlewares to configure position handling, `{ flip: true, shift: true, inline: false }` by default
- **multiline** `boolean` — Determines whether content should be wrapped on to the next line, `false` by default
- **offset** `number | FloatingAxesOffsets` _(default `5`)_ — Space between target element and tooltip in px
- **onPositionChange** `(position: FloatingPosition) => void` — Called when tooltip position changes
- **openDelay** `number` — Open delay in ms
- **opened** `boolean` — Controlled opened state
- **portalProps** `Omit<BasePortalProps, "withinPortal">` — Props to pass down to the portal when withinPortal is true
- **position** `FloatingPosition` — Tooltip position relative to target element (`Tooltip` component) or mouse (`Tooltip.Floating` component)
- **radius** `MantineRadius | number` — Key of `theme.radius` or any valid CSS value to set border-radius, numbers are converted to rem@default theme.defaultRadius
- **refProp** `string` — Key of the prop that can be used to access element ref, `ref` by default
- **target** `string | HTMLElement | RefObject<HTMLElement | null> | null` — Selector, ref of an element or element itself that should be used for positioning
- **transitionProps** `TransitionProps` _(default `{ duration: 100, transition: 'fade' }`)_ — Props passed down to the `Transition` component that used to animate tooltip presence, use to configure duration and animation type
- **withArrow** `boolean` _(default `false`)_ — If set, the tooltip has an arrow
- **withinPortal** `boolean` — Determines whether tooltip should be rendered within `Portal`, `true` by default
- **zIndex** `string | number` — Tooltip z-index, `300` by default
Optional leading props map; remaining args are children.Tooltip.Floating — compound part of Tooltip (docgen omits it). Optional leading props map; remaining args are children.
Tooltip.Floating — compound part of Tooltip (docgen omits it). Optional leading props map; remaining args are children.
Tooltip.Group — compound part of Tooltip (docgen omits it). Optional leading props map; remaining args are children.
Tooltip.Group — compound part of Tooltip (docgen omits it). Optional leading props map; remaining args are children.
Transition — Animate presence of component with pre-made animations
https://mantine.dev/core/transition
Props (docgen 9.5.0):
(styles: CSSProperties) => Element (required) — Render function with transition styles argumentnumber (default 250) — Transition duration in msnumber — Delay in ms before enter transition startsnumber — Delay in ms before exit transition startsnumber (default 250) — Exit transition duration in msboolean — If set, the element is kept in the DOM when hidden. React 19 Activity is used to preserve state while the element is not visible."activity" | "display-none" (default activity) — Controls how the element is hidden when keepMounted is set: 'activity' - hidden with React 19 Activity component, 'display-none' - hidden with display: none stylesboolean (required) — Determines whether component should be mounted to the DOM() => void — Called when enter transition starts() => void — Called when enter transition ends() => void — Called when exit transition starts() => void — Called when exit transition endsstring (default ease) — Transition timing functionMantineTransition (default fade) — Transition name or objectOptional leading props map; remaining args are children.
Transition — Animate presence of component with pre-made animations https://mantine.dev/core/transition Props (docgen 9.5.0): - **children** `(styles: CSSProperties) => Element` **(required)** — Render function with transition styles argument - **duration** `number` _(default `250`)_ — Transition duration in ms - **enterDelay** `number` — Delay in ms before enter transition starts - **exitDelay** `number` — Delay in ms before exit transition starts - **exitDuration** `number` _(default `250`)_ — Exit transition duration in ms - **keepMounted** `boolean` — If set, the element is kept in the DOM when hidden. React 19 `Activity` is used to preserve state while the element is not visible. - **keepMountedMode** `"activity" | "display-none"` _(default `activity`)_ — Controls how the element is hidden when `keepMounted` is set: `'activity'` - hidden with React 19 `Activity` component, `'display-none'` - hidden with `display: none` styles - **mounted** `boolean` **(required)** — Determines whether component should be mounted to the DOM - **onEnter** `() => void` — Called when enter transition starts - **onEntered** `() => void` — Called when enter transition ends - **onExit** `() => void` — Called when exit transition starts - **onExited** `() => void` — Called when exit transition ends - **timingFunction** `string` _(default `ease`)_ — Transition timing function - **transition** `MantineTransition` _(default `fade`)_ — Transition name or object Optional leading props map; remaining args are children.
Tree — Display a Tree structure
Props (docgen 9.5.0):
TreeAllowDrop — Called for each potential drop target to determine whether a drop is allowed. When it returns false, the drop indicator is hidden and the drop is rejected.boolean (default true) — If set, tree nodes range can be selected with click when Shift key is pressedboolean (default false) — If set, tree node is checked on space key pressboolean (default false) — If set, selection is cleared when user clicks outside of the treeTreeNodeData[] (required) — Data used to render nodesboolean (default true) — If set, tree node with children is expanded on clickboolean (default true) — If set, tree node with children is expanded on space key pressboolean (default false) — If set, subtree content is kept mounted when collapsed. React 19 Activity is used to preserve state.MantineSpacing (default 'lg') — Horizontal padding of each subtree level, key of theme.spacing or any valid CSS value(payload: TreeDragDropPayload) => void — Called when a node is dropped on another node, enables drag-and-drop when providedRenderNode — A function to render tree node labelboolean (default false) — If set, tree node is selected on clickUseTreeReturnType — Use-tree hook instance that can be used to manipulate component stateboolean (default false) — If set, drag-and-drop must be initiated from an element that spreads dragHandleProps from the renderNode payload, rather than anywhere on the node.boolean (default false) — If set, connecting lines are rendered showing parent-child relationshipsOptional leading props map; remaining args are children.
Tree — Display a Tree structure https://mantine.dev/core/tree Props (docgen 9.5.0): - **allowDrop** `TreeAllowDrop` — Called for each potential drop target to determine whether a drop is allowed. When it returns `false`, the drop indicator is hidden and the drop is rejected. - **allowRangeSelection** `boolean` _(default `true`)_ — If set, tree nodes range can be selected with click when `Shift` key is pressed - **checkOnSpace** `boolean` _(default `false`)_ — If set, tree node is checked on space key press - **clearSelectionOnOutsideClick** `boolean` _(default `false`)_ — If set, selection is cleared when user clicks outside of the tree - **data** `TreeNodeData[]` **(required)** — Data used to render nodes - **expandOnClick** `boolean` _(default `true`)_ — If set, tree node with children is expanded on click - **expandOnSpace** `boolean` _(default `true`)_ — If set, tree node with children is expanded on space key press - **keepMounted** `boolean` _(default `false`)_ — If set, subtree content is kept mounted when collapsed. React 19 `Activity` is used to preserve state. - **levelOffset** `MantineSpacing` _(default `'lg'`)_ — Horizontal padding of each subtree level, key of `theme.spacing` or any valid CSS value - **onDragDrop** `(payload: TreeDragDropPayload) => void` — Called when a node is dropped on another node, enables drag-and-drop when provided - **renderNode** `RenderNode` — A function to render tree node label - **selectOnClick** `boolean` _(default `false`)_ — If set, tree node is selected on click - **tree** `UseTreeReturnType` — Use-tree hook instance that can be used to manipulate component state - **withDragHandle** `boolean` _(default `false`)_ — If set, drag-and-drop must be initiated from an element that spreads `dragHandleProps` from the `renderNode` payload, rather than anywhere on the node. - **withLines** `boolean` _(default `false`)_ — If set, connecting lines are rendered showing parent-child relationships Optional leading props map; remaining args are children.
TreeSelect — Select with hierarchical tree data
https://mantine.dev/core/tree-select
Props (docgen 9.5.0):
boolean (default true) — Allows deselecting in single modeboolean (default false) — Disables parent-child cascade in checkbox modeCheckedStrategy (default 'child') — Controls which checked nodes appear in value/pills in checkbox modeTreeSelectChevronAriaLabels — aria-label values for the expand/collapse chevron buttonMantineColor — Controls the default chevron colorInputClearButtonProps — Props for the clear buttonboolean (default true) — Clear search on selection changeClearSectionMode (default 'both') — Determines how the clear button and rightSection are renderedboolean (default false) — Shows clear buttonRecord<string, any> — Props passed to the underlying ComboboxTreeNodeData[] (required) — Tree databoolean — Default dropdown stateboolean (default false) — Expand all nodes by defaultstring[] — Default expanded node valuesstring — Default search valuestring | string[] | null — Default valueReact.ReactNode — Contents of Input.Description component. If not set, description is not displayed.InputDescriptionProps — Props passed down to the Input.Description componentboolean — Sets disabled attribute on the input elementboolean — Controlled dropdown stateReact.ReactNode — Contents of Input.Error component. If not set, error is not displayed.InputErrorProps — Props passed down to the Input.Error componentboolean (default false) — Also toggle expand when clicking a parent node (not just the chevron). In single and multiple modes, parent clicks only expand; only leaves can be selected. In checkbox mode, parent clicks both check and expand.string[] — Controlled expanded state(query: string, node: TreeNodeData) => boolean — Custom filter functionReact.ComponentProps<"input"> — Props for the hidden inputstring (default ',') — Divider for hidden input values(children: ReactNode) => ReactNode (default React.Fragment) — Render function to wrap the input element. Useful for adding tooltips, popovers, or other wrappers around the input.string — HTML size attribute for the input element (number of visible characters)("input" | "label" | "description" | "error")[] (default ['label', 'description', 'input', 'error']) — Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.React.ReactNode — Contents of Input.Label component. If not set, label is not displayed.InputLabelProps — Props passed down to the Input.Label componentReact.ReactNode — Content section displayed on the left side of the inputReact.CSSProperties["pointerEvents"] (default 'none') — Sets pointer-events styles on the leftSection element. Use 'all' when section contains interactive elements (buttons, links).React.ComponentProps<"div"> — Props passed down to the leftSection elementReact.CSSProperties["width"] — Left section width, used to set width of the section and input padding-left, by default equals to the input heightboolean (default false) — Displays loading indicator in the left or right section"left" | "right" (default 'right') — Position of the loading indicatornumber — Maximum displayed pills before "+N more"ReactNode | ((overflow: number) => ReactNode) — Content shown when values overflow maxDisplayedValuesstring | number (default 220) — Max dropdown heightnumber — Maximum selectable values (multiple/checkbox mode)TreeSelectMode (default 'single') — Selection mode: 'single', 'multiple', or 'checkbox' (with cascade)React.ReactNode — Message when no nodes match search(value: TreeSelectValue<Mode>) => void — Called when value changes() => void — Called when clear button is clicked() => void — Called when dropdown closes() => void — Called when dropdown opens(values: string[]) => void — Called when expanded state changes(value: string) => void — Called with removed value in multiple/checkbox mode(value: string) => void — Called when search changesboolean (default true) — Opens dropdown on focus (searchable mode)boolean (default false) — Determines whether the input should have cursor: pointer style. Use when input acts as a button-like trigger (e.g., component="button" for Select/DatePicker).MantineRadius | number (default theme.defaultRadius) — Key of theme.radius or any valid CSS value to set border-radius, numbers are converted to rem(payload: TreeSelectRenderNodePayload) => ReactNode — Custom node rendering in the dropdownboolean (default false) — Adds required attribute to the input and a red asterisk on the right side of labelReact.ReactNode — Content section displayed on the right side of the inputReact.CSSProperties["pointerEvents"] (default 'none') — Sets pointer-events styles on the rightSection element. Use 'all' when section contains interactive elements (buttons, links).React.ComponentProps<"div"> — Props passed down to the rightSection elementReact.CSSProperties["width"] — Right section width, used to set width of the section and input padding-right, by default equals to the input heightScrollAreaProps — Props for the ScrollArea in the dropdownstring — Controlled search valueboolean (default false) — Enables search filteringMantineSize (default 'sm') — Controls input height, horizontal padding, and font-sizeReact.ReactNode — Contents of Input.Success component. If not set, success is not displayed.InputSuccessProps & DataAttributes — Props passed down to the Input.Success componentstring | string[] | null — Controlled valueboolean (default false) — If set, the required asterisk is displayed next to the label. Overrides required prop. Does not add required attribute to the input.boolean (default true) — Determines whether the input should have red border and red text color when the error prop is setboolean (default true) — Show tree connection lines between parent and child nodesboolean (default true) — Determines whether the input should have green border when the success prop is setWrapperProps — Props passed down to the root elementOptional leading props map; remaining args are children.
TreeSelect — Select with hierarchical tree data
https://mantine.dev/core/tree-select
Props (docgen 9.5.0):
- **allowDeselect** `boolean` _(default `true`)_ — Allows deselecting in single mode
- **checkStrictly** `boolean` _(default `false`)_ — Disables parent-child cascade in checkbox mode
- **checkedStrategy** `CheckedStrategy` _(default `'child'`)_ — Controls which checked nodes appear in value/pills in checkbox mode
- **chevronAriaLabels** `TreeSelectChevronAriaLabels` — aria-label values for the expand/collapse chevron button
- **chevronColor** `MantineColor` — Controls the default chevron color
- **clearButtonProps** `InputClearButtonProps` — Props for the clear button
- **clearSearchOnChange** `boolean` _(default `true`)_ — Clear search on selection change
- **clearSectionMode** `ClearSectionMode` _(default `'both'`)_ — Determines how the clear button and rightSection are rendered
- **clearable** `boolean` _(default `false`)_ — Shows clear button
- **comboboxProps** `Record<string, any>` — Props passed to the underlying Combobox
- **data** `TreeNodeData[]` **(required)** — Tree data
- **defaultDropdownOpened** `boolean` — Default dropdown state
- **defaultExpandAll** `boolean` _(default `false`)_ — Expand all nodes by default
- **defaultExpandedValues** `string[]` — Default expanded node values
- **defaultSearchValue** `string` — Default search value
- **defaultValue** `string | string[] | null` — Default value
- **description** `React.ReactNode` — Contents of `Input.Description` component. If not set, description is not displayed.
- **descriptionProps** `InputDescriptionProps` — Props passed down to the `Input.Description` component
- **disabled** `boolean` — Sets `disabled` attribute on the `input` element
- **dropdownOpened** `boolean` — Controlled dropdown state
- **error** `React.ReactNode` — Contents of `Input.Error` component. If not set, error is not displayed.
- **errorProps** `InputErrorProps` — Props passed down to the `Input.Error` component
- **expandOnClick** `boolean` _(default `false`)_ — Also toggle expand when clicking a parent node (not just the chevron). In `single` and `multiple` modes, parent clicks only expand; only leaves can be selected. In `checkbox` mode, parent clicks both check and expand.
- **expandedValues** `string[]` — Controlled expanded state
- **filter** `(query: string, node: TreeNodeData) => boolean` — Custom filter function
- **hiddenInputProps** `React.ComponentProps<"input">` — Props for the hidden input
- **hiddenInputValuesDivider** `string` _(default `','`)_ — Divider for hidden input values
- **inputContainer** `(children: ReactNode) => ReactNode` _(default `React.Fragment`)_ — Render function to wrap the input element. Useful for adding tooltips, popovers, or other wrappers around the input.
- **inputSize** `string` — HTML `size` attribute for the input element (number of visible characters)
- **inputWrapperOrder** `("input" | "label" | "description" | "error")[]` _(default `['label', 'description', 'input', 'error']`)_ — Controls order and visibility of wrapper elements. Only elements included in this array will be rendered.
- **label** `React.ReactNode` — Contents of `Input.Label` component. If not set, label is not displayed.
- **labelProps** `InputLabelProps` — Props passed down to the `Input.Label` component
- **leftSection** `React.ReactNode` — Content section displayed on the left side of the input
- **leftSectionPointerEvents** `React.CSSProperties["pointerEvents"]` _(default `'none'`)_ — Sets `pointer-events` styles on the `leftSection` element. Use `'all'` when section contains interactive elements (buttons, links).
- **leftSectionProps** `React.ComponentProps<"div">` — Props passed down to the `leftSection` element
- **leftSectionWidth** `React.CSSProperties["width"]` — Left section width, used to set `width` of the section and input `padding-left`, by default equals to the input height
- **loading** `boolean` _(default `false`)_ — Displays loading indicator in the left or right section
- **loadingPosition** `"left" | "right"` _(default `'right'`)_ — Position of the loading indicator
- **maxDisplayedValues** `number` — Maximum displayed pills before "+N more"
- **maxDisplayedValuesContent** `ReactNode | ((overflow: number) => ReactNode)` — Content shown when values overflow maxDisplayedValues
- **maxDropdownHeight** `string | number` _(default `220`)_ — Max dropdown height
- **maxValues** `number` — Maximum selectable values (multiple/checkbox mode)
- **mode** `TreeSelectMode` _(default `'single'`)_ — Selection mode: 'single', 'multiple', or 'checkbox' (with cascade)
- **nothingFoundMessage** `React.ReactNode` — Message when no nodes match search
- **onChange** `(value: TreeSelectValue<Mode>) => void` — Called when value changes
- **onClear** `() => void` — Called when clear button is clicked
- **onDropdownClose** `() => void` — Called when dropdown closes
- **onDropdownOpen** `() => void` — Called when dropdown opens
- **onExpandedChange** `(values: string[]) => void` — Called when expanded state changes
- **onRemove** `(value: string) => void` — Called with removed value in multiple/checkbox mode
- **onSearchChange** `(value: string) => void` — Called when search changes
- **openOnFocus** `boolean` _(default `true`)_ — Opens dropdown on focus (searchable mode)
- **pointer** `boolean` _(default `false`)_ — Determines whether the input should have `cursor: pointer` style. Use when input acts as a button-like trigger (e.g., `component="button"` for Select/DatePicker).
- **radius** `MantineRadius | number` _(default `theme.defaultRadius`)_ — Key of `theme.radius` or any valid CSS value to set `border-radius`, numbers are converted to rem
- **renderNode** `(payload: TreeSelectRenderNodePayload) => ReactNode` — Custom node rendering in the dropdown
- **required** `boolean` _(default `false`)_ — Adds required attribute to the input and a red asterisk on the right side of label
- **rightSection** `React.ReactNode` — Content section displayed on the right side of the input
- **rightSectionPointerEvents** `React.CSSProperties["pointerEvents"]` _(default `'none'`)_ — Sets `pointer-events` styles on the `rightSection` element. Use `'all'` when section contains interactive elements (buttons, links).
- **rightSectionProps** `React.ComponentProps<"div">` — Props passed down to the `rightSection` element
- **rightSectionWidth** `React.CSSProperties["width"]` — Right section width, used to set `width` of the section and input `padding-right`, by default equals to the input height
- **scrollAreaProps** `ScrollAreaProps` — Props for the ScrollArea in the dropdown
- **searchValue** `string` — Controlled search value
- **searchable** `boolean` _(default `false`)_ — Enables search filtering
- **size** `MantineSize` _(default `'sm'`)_ — Controls input `height`, horizontal `padding`, and `font-size`
- **success** `React.ReactNode` — Contents of `Input.Success` component. If not set, success is not displayed.
- **successProps** `InputSuccessProps & DataAttributes` — Props passed down to the `Input.Success` component
- **value** `string | string[] | null` — Controlled value
- **withAsterisk** `boolean` _(default `false`)_ — If set, the required asterisk is displayed next to the label. Overrides `required` prop. Does not add required attribute to the input.
- **withErrorStyles** `boolean` _(default `true`)_ — Determines whether the input should have red border and red text color when the `error` prop is set
- **withLines** `boolean` _(default `true`)_ — Show tree connection lines between parent and child nodes
- **withSuccessStyles** `boolean` _(default `true`)_ — Determines whether the input should have green border when the `success` prop is set
- **wrapperProps** `WrapperProps` — Props passed down to the root element
Optional leading props map; remaining args are children.Typography
Optional leading props map; remaining args are children.
Typography Optional leading props map; remaining args are children.
UnstyledButton
Props (docgen 9.5.0):
string | number — Size passed from parent component, sets data-size if value is not number likeOptional leading props map; remaining args are children.
UnstyledButton Props (docgen 9.5.0): - **size** `string | number` — Size passed from parent component, sets `data-size` if value is not number like Optional leading props map; remaining args are children.
useComputedColorScheme — the resolved light/dark scheme (never 'auto'). Raw passthrough: returns the raw JS string.
useComputedColorScheme — the resolved light/dark scheme (never 'auto'). Raw passthrough: returns the raw JS string.
useMantineColorScheme — read/set the color scheme. Raw passthrough: returns the raw JS value (.-colorScheme, .-setColorScheme, .-toggleColorScheme, ...).
useMantineColorScheme — read/set the color scheme. Raw passthrough: returns the raw JS value (.-colorScheme, .-setColorScheme, .-toggleColorScheme, ...).
useMantineTheme — read the resolved Mantine theme. Raw passthrough: returns the raw JS theme object (read via interop).
useMantineTheme — read the resolved Mantine theme. Raw passthrough: returns the raw JS theme object (read via interop).
VisuallyHidden
Optional leading props map; remaining args are children.
VisuallyHidden Optional leading props map; remaining args are children.
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |