We’re excited to announce Dash Mantine Components 2.0.0, a major release with powerful new features, new components, and better alignment with Mantine v8.
It’s now easier than ever to build rich, customizable Dash apps with fully integrated styling, interactive behaviors, and React-level flexibility — all from Python.
See the Migration Guide for help upgrading your apps.
Want to try it live?
This post shows screenshots only — to explore live examples with code, visit the
DMC 2.0.0 Release Announcement on the docs site
Highlights
- Functions as Props – Use JavaScript functions from Python for chart formatting, sliders, dropdowns, tooltips, and more
- New DatePicker – A calendar-only picker used in all date components, with deep config support
- New TimePicker & TimeGrid – Improved time selection with dropdowns and time slots
- Simplified Notifications – Drop-in
NotificationContainerwith access to Mantine’s notification API - Menu with Submenus – Now supports nested dropdowns
- Carousel API changes – More consistent and customizable via
emblaOptions
Functions as Props
You can now customize components by passing JavaScript functions from Python, using:
{"function": "myFunction"}
This lets you format labels, filter options, customize charts, and more — all safely, using only functions defined in your /assets/*.js folder under the window.dashMantineFunctions namespace.
You can also pass options from Python:
{"function": "formatTemp", "options": {"unit": "F"}}
Don’t know JavaScript? No problem!
The docs include examples of how to use AI to convert Python functions to JavaScript, with prompt templates to help you get reliable results every time:
Example: Custom Slider Label + Scale

Example: DatePicker Disabling Non-Fridays

Example: MultiSelect with Custom Options

New Components & Features
DatePicker (Calendar-Only)
Base component for all date inputs — supports ranges, multiple dates, week numbers, and more.
DatePicker Docs

TimePicker
More flexible than TimeInput, with support for dropdowns, presets, and time slots.
TimePicker


TimeGrid

NotificationContainer
Now you can trigger notifications directly in clientside callbacks using Mantine’s native Notification API.
Notification Docs
Menu with Submenus

Updated Carousel API
Props like loop, align, and dragFree must now be passed via emblaOptions.
See Carousel Migration Example.
Other Notable Changes
- Switch now has an thumb indicator by default.
- Popover now hides automatically when its target is hidden or removed. Configurable via
hideDetached. CodeHighlightnow supports only the top 10 languages to reduce bundle sizeDatesProviderno longer supportstimezone– all date values should be strings (e.g."2024-08-01 14:00:00")- For other changes, see the Mantine v8 Changelog
Quick Start
Just a reminder…
- If you’re using Dash ≥ 3.0.0, you no longer need to set the React version manually.
- If you’re using DMC ≥ 1.2.0, there’s no need to include additional stylesheets like
dmc.styles.ALL.
Here’s a minimal app to get started:
import dash_mantine_components as dmc
from dash import Dash
app = Dash()
app.layout = dmc.MantineProvider(
dmc.Alert(
"Welcome to Dash Mantine Components",
title="Hello!",
color="violet",
)
)
if __name__ == "__main__":
app.run(debug=True)
Past Releases
Want to catch up? You can find previous updates on our
GitHub Releases Discussion Page
Thank You, Contributors!
Huge thanks to @BSd3v for the contributions and to @alexcjohnson for code reviews, insights, and keeping the API clean.