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
NotificationContainer
with 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
. CodeHighlight
now supports only the top 10 languages to reduce bundle sizeDatesProvider
no 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.