Skip to main content

DashUI — Databricks Library

CI PyPI License

Part of the Dashlibs suite — Databricks libraries built for business users.

Shared ipywidgets components so every dash-* library looks and behaves the same way inside a Databricks (or plain Jupyter) notebook: headers, the UC Table / DataFrame / SQL source picker, output panels, status lines, and schema introspection helpers — styled to match the team's datapal-access Databricks App design system (IBM Plex Sans, a teal primary, rounded-lg cards with a soft shadow) instead of default ipywidgets styling.

What it looks like

DashUI components — header, source picker, buttons, status lines, output panel

The top card is dashsynthetic's "Single Table" tab, built entirely out of dashui components.

Installation

%pip install dash-uis

Note: the PyPI distribution is named dash-uis (the name dash-ui was already taken by an unrelated package). The importable module is still dashui.

Quick Start

import dashui
from IPython.display import display

src = dashui.source_selector()
run_btn = dashui.action_button("Run", style="success", emoji="▶")
out = dashui.output_panel()

def on_run(b):
    with out:
        out.clear_output()
        kind, value = src.value()
        print(f"✅ Source: {kind} = {value!r}")

run_btn.on_click(on_run)

ui = dashui.card([
    dashui.header("My Library", library="dashsynthetic", emoji="🧬"),
    dashui.section("Step 1: Source data"),
    src.toggle, src.box,
    run_btn, out,
])
display(ui)

Components

header(title, library="default", emoji="", subtitle="")

The banner at the top of every launch() UI. Color comes from a per-library accent (dashsynthetic is purple, dashobserve is red, etc. — see dashui.theme.ACCENTS).

dashui.header("DashObserve — Data Observability", library="dashobserve", emoji="👁️")

section(title)

A small uppercase step divider with a bottom border, used to break a form into steps ("Step 1: Source data", "Step 2: Generation settings", ...).

dashui.section("Step 2: Generation settings")

source_selector(label="Source:")

The UC Table / DataFrame variable / SQL Query picker used by every Dashlibs UI that reads from Databricks. Returns a SourceSelector with .toggle, .box (swap-on-select widgets) and helpers to resolve the chosen source.

src = dashui.source_selector()
ui = dashui.card([src.toggle, src.box])

kind, value = src.value()   # ("table", "catalog.schema.customers")
df = src.resolve_df()       # resolves straight to a Spark DataFrame

action_button(text, style="primary", emoji="")

A styled button matching the datapal-access button variants. style is one of primary | success | warning | danger | info.

run_btn = dashui.action_button("Generate Synthetic Data", style="success", emoji="▶")

status_line(text, kind="info")

A one-line colored status message. kind is one of success | error | warning | info.

dashui.status_line("Row count 9,842 within expected bounds", kind="success")
dashui.status_line("Schema changed — added: discount_code", kind="warning")

output_panel()

The standard scrollable result/error area used under every action button — an ipywidgets.Output pre-styled with a muted background and rounded border.

out = dashui.output_panel()
with out:
    print("✅ Done")

running_list(formatter)

A live-updating numbered list for "added items" accumulators (tables, relationships, monitors, ...). Returns (output_widget, render_fn).

items = []
out, render = dashui.running_list(lambda i, item: f"{i}. {item['name']}")
items.append({"name": "Customer"})
render(items)

card(children, padding="20px")

The bordered, shadowed container every launch() UI is wrapped in. Injects the shared <style> block (fonts, button variants, card shell) once per notebook kernel.

ui = dashui.card([header, section_title, src.toggle, src.box, run_btn, out])
display(ui)

list_columns(table) / list_columns_safe(table)

UC table column introspection — list_columns_safe returns [] instead of raising, which is what you want when populating a dropdown in a UI callback.

cols = dashui.list_columns_safe("catalog.schema.customers")

Design tokens

The raw palette is also exported for building fully custom widgets that still match the system: dashui.PRIMARY, dashui.SUCCESS, dashui.DANGER, dashui.WARNING, dashui.BORDER, dashui.CARD, dashui.MUTED, dashui.FONT_SANS, dashui.FONT_MONO.

Part of Dashlibs

Library Purpose
dash-dq Data Quality
dash-synthetic Synthetic Data Generation
dash-observe Data Observability (freshness, volume, schema)
dash-ml ML Model Monitoring
dash-ingest Data Ingestion
dash-gov Data Governance
dash-ontology Ontology & Lineage for AI
dash-ui Shared UI components (PyPI: dash-uis)

Quality & Contributing

  • 10 unit tests, zero Spark dependency to run them — pytest tests/ -v
  • Lint-clean (ruff check dashui/), PEP 561 typed (py.typed)
  • Every change ships through a reviewed pull request; CI (lint → test on Python 3.9–3.12 → build) gates every PR and every release
  • See CONTRIBUTING.md for dev setup, CHANGELOG.md for release history, SECURITY.md to report a vulnerability, and CODE_OF_CONDUCT.md

License

Apache 2.0

Metadata

Release files for dash-uis 0.3.10

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

Source distribution (sdist)

Source distribution for dash-uis 0.3.10
File Size Uploaded
dash_uis-0.3.10.tar.gz 110.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dash-uis 0.3.10
File Interpreter ABI Platform
dash_uis-0.3.10-py3-none-any.whl Python 3 none any Details

Total release size: 130.8 kB

Release files / dash_uis-0.3.10.tar.gz

Download URL dash_uis-0.3.10.tar.gz
Size 110.5 kB
Tags Source
SHA-256 checksum
How to use checksums
44b3a5065793588d0cc6c6fe719665f30eb46b2a2561bb1d405d4ac93a62953b
BLAKE2b-256 checksum
How to use checksums
6357ee4739045586f24666aa709e88fe376b587cc4ef01b82f50d334e08923d6
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 Aug 31, 2026.

Transparency log

Release files / dash_uis-0.3.10-py3-none-any.whl

Download URL dash_uis-0.3.10-py3-none-any.whl
Size 20.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ce13c56c365a7287e058b529b40aa121354c1d7cd208c13b271db298cda988ed
BLAKE2b-256 checksum
How to use checksums
5da90bf07fd9d0f3aa6bfb34ed38d1e7e7dfda374da4ee38df17f4f43d968f7a
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 Aug 31, 2026.

Transparency log

Release history Release notifications | RSS feed

0.3.16

2 release files

0.3.14

2 release files

0.3.13

2 release files

0.3.12

2 release files

This release

0.3.10 This release

2 release files

0.3.9

2 release files

0.3.8

2 release files

0.3.7

2 release files

0.3.6

2 release files

0.3.5

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.1.3

2 release files

0.1.2

2 release files

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