Skip to content

[UI] Improve empty states across Experiments, Models, Prompts, and Gateway pages#20044

Merged
daniellok-db merged 9 commits intomlflow:masterfrom
ridgupta26:fix-empty-states-part2
Feb 13, 2026
Merged

[UI] Improve empty states across Experiments, Models, Prompts, and Gateway pages#20044
daniellok-db merged 9 commits intomlflow:masterfrom
ridgupta26:fix-empty-states-part2

Conversation

@ridgupta26
Copy link
Contributor

@ridgupta26 ridgupta26 commented Jan 15, 2026

Before
CleanShot 2026-01-15 at 13 51 58@2x
CleanShot 2026-01-15 at 13 58 33@2x
CleanShot 2026-01-15 at 14 13 38@2x
CleanShot 2026-01-15 at 14 33 03@2x
CleanShot 2026-01-15 at 14 55 15@2x

After

CleanShot.2026-01-15.at.15.03.26.mp4

Related Issues/PRs

What changes are proposed in this pull request?

This PR improves the empty states across multiple pages in the MLflow UI to provide a more consistent and user-friendly experience:

Changes:

  • Updated empty states to use the Databricks design system Empty component with appropriate icons
  • Added plus icons to all 'Create' buttons for visual consistency
  • Made empty states centered with proper styling and minimum height
  • Ensured table headers and search bars remain visible even in empty states
  • Updated empty state descriptions with helpful text and documentation links
  • Fixed padding inconsistencies on the Models page
  • Removed AI Gateway icon from the main header
  • Hide action buttons in page headers when empty state is shown (to encourage users to use the primary CTA in the empty state)

Pages affected:

  • Experiments list page: Empty state with beaker icon, centered, table headers visible
  • Experiments home page: Empty state with beaker icon in the experiments preview section
  • Models page: Empty state with models icon, centered, table headers visible, fixed padding to match other pages
  • Prompts page: Empty state with button and documentation link, centered, table headers visible
  • AI Gateway page: Removed header icon, table headers visible in empty state

How is this PR tested?

  • Existing unit/integration tests
  • New unit/integration tests
  • Manual tests

Manual testing performed:

  • Verified empty states render correctly on all affected pages
  • Tested that table headers and search bars remain visible in empty states
  • Confirmed buttons have appropriate icons
  • Verified padding is consistent across pages
  • Tested in both light and dark modes

Does this PR require documentation update?

  • No. You can skip the rest of this section.
  • Yes. I've updated:
    • Examples
    • API references
    • Instructions

Release Notes

Is this a user-facing change?

  • No. You can skip the rest of this section.
  • Yes. Give a description of this change to be included in the release notes for MLflow users.

Improved empty state UI across Experiments, Models, Prompts, and Gateway pages with consistent styling, better icons, and helpful action buttons. Table headers and search bars now remain visible in empty states for better user orientation.

What component(s), interfaces, languages, and integrations does this PR affect?

Components

  • area/tracking: Tracking Service, tracking client APIs, autologging
  • area/models: MLmodel format, model serialization/deserialization, flavors
  • area/model-registry: Model Registry service, APIs, and the fluent client calls for Model Registry
  • area/scoring: MLflow Model server, model deployment tools, Spark UDFs
  • area/evaluation: MLflow model evaluation features, evaluation metrics, and evaluation workflows
  • area/gateway: MLflow AI Gateway client APIs, server, and third-party integrations
  • area/prompts: MLflow prompt engineering features, prompt templates, and prompt management
  • area/tracing: MLflow Tracing features, tracing APIs, and LLM tracing functionality
  • area/projects: MLproject format, project running backends
  • area/uiux: Front-end, user experience, plotting, JavaScript, JavaScript dev server
  • area/build: Build and test infrastructure for MLflow
  • area/docs: MLflow documentation pages

How should the PR be classified in the release notes? Choose one:

  • rn/none - No description will be included. The PR will be mentioned only by the PR number in the "Small Bugfixes and Documentation Updates" section
  • rn/breaking-change - The PR will be mentioned in the "Breaking Changes" section
  • rn/feature - A new user-facing feature worth mentioning in the release notes
  • rn/bug-fix - A user-facing bug fix worth mentioning in the release notes
  • rn/documentation - A user-facing documentation change worth mentioning in the release notes

Should this PR be included in the next patch release?

  • Yes (this PR will be cherry-picked and included in the next patch release)
  • No (this PR will be included in the next minor release)

…teway pages

- Updated empty states to use Databricks design system Empty component with proper icons
- Added plus icons to all 'Create' buttons for consistency
- Made empty states centered with proper styling
- Ensured table headers and search bars remain visible in empty states
- Updated empty state descriptions with helpful text and documentation links
- Removed padding inconsistencies across Models page
- Removed AI Gateway icon from header
- Hide action buttons in headers when empty state is shown

Signed-off-by: ridgupta26 <ridhima.gatech@gmail.com>
@github-actions
Copy link
Contributor

🛠 DevTools 🛠

Install mlflow from this PR

# mlflow
pip install git+https://github.com/mlflow/mlflow.git@refs/pull/20044/merge
# mlflow-skinny
pip install git+https://github.com/mlflow/mlflow.git@refs/pull/20044/merge#subdirectory=libs/skinny

For Databricks, use the following command:

%sh curl -LsSf https://raw.githubusercontent.com/mlflow/mlflow/HEAD/dev/install-skinny.sh | sh -s pull/20044/merge

@github-actions
Copy link
Contributor

@ridgupta26 Thank you for the contribution! Could you fix the following issue(s)?

⚠ DCO check

The DCO check failed. Please sign off your commit(s) by following the instructions here. See https://github.com/mlflow/mlflow/blob/master/CONTRIBUTING.md#sign-your-work for more details.

⚠ Invalid PR template

This PR does not appear to have been filed using the MLflow PR template. Please copy the PR template from here and fill it out.

@github-actions github-actions bot added area/uiux Front-end, user experience, plotting, JavaScript, JavaScript dev server rn/feature Mention under Features in Changelogs. rn/bug-fix Mention under Bug Fixes in Changelogs. and removed rn/feature Mention under Features in Changelogs. labels Jan 15, 2026
Signed-off-by: Yuki Watanabe <31463517+B-Step62@users.noreply.github.com>
onDelete={() => handleDeleteClick(endpoint)}
/>
))}
{showEmptyState ? (
Copy link
Collaborator

@B-Step62 B-Step62 Jan 28, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Screenshot 2026-01-28 at 15 59 38

@ridgupta26 It seems the div is not centered properly

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hmm i also think it's weird to put the empty state inside a row. i'm going to revert to using the empty prop as before unless there's a specific reason for this

@github-actions
Copy link
Contributor

github-actions bot commented Jan 28, 2026

Documentation preview for 39bcd62 is available at:

More info
  • Ignore this comment if this PR does not change the documentation.
  • The preview is updated when a new commit is pushed to this PR.
  • This comment was created by this workflow run.
  • The documentation was built by this workflow run.

- Fixed vertical centering of empty state in EndpointsList by applying height and vertical-align to td element
- Applied prettier formatting to ExperimentListTable, ExperimentListView, and ExperimentsHomeView
- Empty state now properly centered with consistent styling

Signed-off-by: ridgupta26 <ridhima.gatech@gmail.com>
@ridgupta26
Copy link
Contributor Author

@B-Step62 Fixed the Gateway empty state centering issue. The empty state is now properly vertically centered by applying height: 400 and verticalAlign: 'middle' to the td element, and removed the minHeight from the inner divs. Also applied prettier formatting to all modified files.

@ridgupta26 ridgupta26 force-pushed the fix-empty-states-part2 branch from a5f06bf to 0e16f41 Compare January 29, 2026 04:39
@ridgupta26
Copy link
Contributor Author

Fixed DCO issue - the sign-off email now matches the author email for all commits. All checks are now passing! ✅

@ridgupta26 ridgupta26 requested a review from B-Step62 February 12, 2026 23:34
Signed-off-by: Daniel Lok <daniel.lok@databricks.com>
Signed-off-by: Daniel Lok <daniel.lok@databricks.com>
@daniellok-db daniellok-db added this pull request to the merge queue Feb 13, 2026
Merged via the queue into mlflow:master with commit 50b715f Feb 13, 2026
14 checks passed
daniellok-db added a commit to daniellok-db/mlflow that referenced this pull request Feb 20, 2026
…teway pages (mlflow#20044)

Signed-off-by: ridgupta26 <ridhima.gatech@gmail.com>
Signed-off-by: Yuki Watanabe <31463517+B-Step62@users.noreply.github.com>
Signed-off-by: Daniel Lok <daniel.lok@databricks.com>
Co-authored-by: ridgupta26 <ridhima.gatech@gmail.com>
Co-authored-by: Yuki Watanabe <31463517+B-Step62@users.noreply.github.com>
Co-authored-by: Daniel Lok <daniel.lok@databricks.com>
daniellok-db added a commit that referenced this pull request Feb 20, 2026
…teway pages (#20044)

Signed-off-by: ridgupta26 <ridhima.gatech@gmail.com>
Signed-off-by: Yuki Watanabe <31463517+B-Step62@users.noreply.github.com>
Signed-off-by: Daniel Lok <daniel.lok@databricks.com>
Co-authored-by: ridgupta26 <ridhima.gatech@gmail.com>
Co-authored-by: Yuki Watanabe <31463517+B-Step62@users.noreply.github.com>
Co-authored-by: Daniel Lok <daniel.lok@databricks.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/uiux Front-end, user experience, plotting, JavaScript, JavaScript dev server rn/bug-fix Mention under Bug Fixes in Changelogs. v3.10.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants