Skip to main content

Vizro Dash Components

Vizro Dash Components are used by the Vizro framework but can be used in a pure Dash app. Use as import vizro_dash_components as vdc.

See the example Dash app and its live demo on PyCafe for a full demo of all components.

Installation

pip install vizro-dash-components

Components

Markdown

Based on dcc.Markdown, with identical properties. Renders Markdown content with syntax-highlighted code blocks via dmc.CodeHighlight and dmc.InlineCodeHighlight. Requires a dmc.MantineProvider wrapper.

import dash_mantine_components as dmc
import vizro_dash_components as vdc
from dash import Dash

app = Dash(__name__)

app.layout = dmc.MantineProvider(
    vdc.Markdown(
        id="my-markdown",
        children="""
            # Hello World

            ```python
            print("Hello, World!")
            ```
            """,
    )
)

if __name__ == "__main__":
    app.run()

Cascader

Hierarchical cascading dropdown inspired by Ant Design Cascader and fac.AntdCascader. Users navigate a tree of options via side-by-side panels and select leaves. Supports single-select and multi-select, and two value modes selected by full_path (see value format below). It accepts all the same arguments as dcc.Dropdown (for example className, style, clearable, searchable, search_value, placeholder, disabled, multi, optionHeight, maxHeight, debounce, closeOnSelect, labels, and persistence props) and is built to visually match it. Use help(vdc.Cascader) for the full list.

options format

options for dcc.Dropdown describes a flat list and can be given in two different formats: a shorthand and an explicit option dict. options for vdc.Cascader describes a tree and can similarly be given in two different formats:

  1. Shorthand

    • dcc.Dropdown: a list, for example ["New York City", "Montreal"].
    • vdc.Cascader: a nested dict/list, for example {"USA": ["New York City", "Boston"], "Canada": ["Toronto", "Montreal"]}.
  2. Explicit option dicts

    • dcc.Dropdown: a list of dicts, each with label and value, plus optional keys such as disabled and search.
    • vdc.Cascader: a list of dicts, each with label and value, plus optional keys such as disabled and search. Parents also have children, a list of child dicts; leaves omit children.

value format

The shape of value depends on the full_path prop (default False):

  • Leaf mode (full_path=False, default): value is the bare leaf scalar, for example "Paris"; when multi=True it is a list of leaf scalars, for example ["Paris", "Tokyo"]. Leaf values must be unique across the whole tree — a duplicate leaf value under two branches is ambiguous in this mode (the component logs a console error). This is a constraint on value, not label: two leaves may share a label as long as their values differ.
  • Path mode (full_path=True): value is the full root-to-leaf path: a list of node values from the root down to the selected leaf, for example ["Europe", "France", "Paris"]; when multi=True it is a list of such paths, for example [["Europe", "France", "Paris"], ["Asia", "Japan", "Tokyo"]]. Because paths are used, duplicate leaf values in different branches (for example a "Portland" under both "Oregon" and "Maine") are addressed unambiguously.
from dash import Dash, Input, Output, html
import vizro_dash_components as vdc

OPTIONS = {
    "Asia": {
        "Japan": ["Tokyo", "Osaka", "Kyoto"],
        "China": ["Beijing", "Shanghai", "Guangzhou"],
    },
    "Europe": {
        "France": ["Paris", "Lyon", "Marseille"],
        "Germany": ["Berlin", "Munich", "Hamburg"],
    },
}

# Same tree in explicit form.
# label doesn't need to match value any more.
# Optional on any dict: disabled, search.
# OPTIONS = [
#     {
#         "label": "Asia",
#         "value": "Asia",
#         "children": [
#             {
#                 "label": "Japan",
#                 "value": "Japan",
#                 "children": [
#                     {"label": "Tokyo", "value": "Tokyo"},
#                     {"label": "Osaka", "value": "Osaka"},
#                     {"label": "Kyoto", "value": "Kyoto"},
#                 ],
#             },
#             {
#                 "label": "China",
#                 "value": "China",
#                 "children": [
#                     {"label": "Beijing", "value": "Beijing"},
#                     {"label": "Shanghai", "value": "Shanghai"},
#                     {"label": "Guangzhou", "value": "Guangzhou"},
#                 ],
#             },
#         ],
#     },
#     ... similarly for Europe
# ]

app = Dash(__name__)
app.layout = [
    vdc.Cascader(id="regions", options=OPTIONS, placeholder="Select a city..."),
    html.Div(id="out"),
]


@app.callback(Output("out", "children"), Input("regions", "value"))
def show(value):
    # Default leaf mode: `value` is the bare leaf, for example "Tokyo".
    # Pass full_path=True to get the full path instead, for example ["Asia", "Japan", "Tokyo"].
    return f"Selected: {value!r}"


if __name__ == "__main__":
    app.run()

Development

Contributor workflows (Hatch, npm, regenerating vizro_dash_components/) are documented in AGENTS.md (same content as CLAUDE.md for Claude Code).

Metadata

Release files for vizro-dash-components 0.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for vizro-dash-components 0.3.1
File Size Uploaded Provenance
vizro_dash_components-0.3.1.tar.gz 896.4 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for vizro-dash-components 0.3.1
File Interpreter ABI Platform
vizro_dash_components-0.3.1-py3-none-any.whl Python 3 none any Details

Total release size: 1.7 MB

Release files / vizro_dash_components-0.3.1.tar.gz

Download URL vizro_dash_components-0.3.1.tar.gz
Size 896.4 kB
Tags Source
SHA-256 checksum
How to use checksums
14c724e7d111150dc7ffa55407fa57dc3baa4e18b71002c24f39291c1bdf6703
BLAKE2b-256 checksum
How to use checksums
e659c2951a1992f960e31e5851bbe698e84be8a65d25e4bac23316bc599a433b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

Release files / vizro_dash_components-0.3.1-py3-none-any.whl

Download URL vizro_dash_components-0.3.1-py3-none-any.whl
Size 830.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
46808ee7f01eb8a05391cf9ec4aac1ec96cb12b84e98a97ec3cbf378a537f63f
BLAKE2b-256 checksum
How to use checksums
8fe2900bb06f97a7d85aa09dd25435ef514dcafe0c97f36ebc44354f3349e7e7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

Security for vizro-dash-components 0.3.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for vizro_dash_components-0.3.1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page