Skip to content

feat: rebuild visual language around Databricks' own product UI#9

Merged
dash-libs merged 1 commit into
mainfrom
feat/databricks-native-theme
Jul 2, 2026
Merged

feat: rebuild visual language around Databricks' own product UI#9
dash-libs merged 1 commit into
mainfrom
feat/databricks-native-theme

Conversation

@dash-libs

Copy link
Copy Markdown
Owner

Summary

Repoints dash-ui's visual language from the datapal-access Databricks App to Databricks' own workspace UI, per explicit user direction — the previous look didn't feel native, and config forms needed a real tabular editing pattern instead of free-text key=value fields.

  • theme.py: Inter font, "Lava" red-orange (#FF3621) reserved for primary actions only, 13px dense base size, 3-6px radii. See the docstring for what this is actually grounded in (not a pixel-exact extraction like datapal-access was — bring reference screenshots if you want it matched more precisely).
  • components.py: real bordered/focus-ring input styling (previously unstyled raw browser controls), ToggleButtons restyled as a segmented control, Tab widget restyled to underline-active-tab matching the workspace's own nav, and a new editable_table() — an add/remove-row key-value grid (Databricks' own job-parameters/cluster-tags pattern) for any tabular config.
  • Regenerated docs/screenshots/components_preview.png against the new theme (rendered via the same Playwright/Chromium screenshot process this suite already uses).
  • Bumped to 0.2.0 given the breadth of the change.

Test plan

  • ruff check dashui/ passes
  • pytest tests/ — 14 passed (4 new for editable_table)
  • python -m build --wheel succeeds
  • Rendered and visually reviewed the new theme via a live screenshot before committing

🤖 Generated with Claude Code

Repointed from the datapal-access Databricks App to Databricks' own
workspace UI, per explicit user direction: the current look didn't feel
native, and config forms needed a real tabular editing pattern instead of
free-text key=value fields. See theme.py's updated docstring for what the
new tokens are grounded in (not a pixel-exact extraction — no live
workspace to sample from here; bring reference screenshots if you want it
matched more precisely).

theme.py: Inter font, "Lava" red-orange (#FF3621) reserved for primary
actions only (not spread across every accent like the old teal was),
13px dense base font size, 3-6px radii instead of 6-8px, per-library
header accents desaturated so they don't compete with Lava.

components.py:
- Real input styling — bordered/rounded text/password/textarea/select
  with a Lava focus ring; previously these rendered as unstyled raw
  browser form controls
- ToggleButtons restyled as a Databricks-style segmented control
  (filled-when-selected, not default browser radio-button-adjacent look)
- Tab widget restyled to underline-active-tab (targets both .lm-TabBar
  and .p-TabBar classes for ipywidgets 7/8 compat), matching the
  workspace's own nav pattern instead of boxed tabs
- New editable_table()/EditableTable — an add/remove-row key-value grid,
  Databricks' own pattern for job parameters/cluster tags/env vars,
  for any dash-* config that's naturally tabular instead of a single
  "key=value, key=value" text field
- Tightened card padding/button height for a denser, more product-like
  feel instead of a marketing-site look

Regenerated docs/screenshots/components_preview.png against the new
theme (previous one showed the old teal/IBM-Plex-Sans look).

Bumped to 0.2.0 given the breadth of the visual change and the new
public component. Verified: ruff clean, 14 tests pass (4 new for
editable_table), wheel builds as dash_uis-0.2.0.
@dash-libs dash-libs merged commit 8362b44 into main Jul 2, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants