Skip to content

UI: Improve empty states for Traces and Sessions tabs#20034

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

UI: Improve empty states for Traces and Sessions tabs#20034
daniellok-db merged 4 commits intomlflow:masterfrom
ridgupta26:fix-empty-states-part1

Conversation

@ridgupta26
Copy link
Contributor

@ridgupta26 ridgupta26 commented Jan 15, 2026

Before

emptys-states-part1-before.mp4

After

emptys-states-part1-after.mp4

Related Issues/PRs

#xxx

What changes are proposed in this pull request?

This PR improves the UI consistency and readability of empty states in the Traces and Sessions tabs:

  • Centered layout: Traces empty state now matches the Sessions tab with proper centering
  • Content width constraint: Both empty states constrained to 600px max-width for better readability
  • Updated heading: Changed Traces heading to 'Log traces to this experiment' with H3 styling
  • Proper text colors: Using design system colors (primary for headings, secondary for body text)
  • Dark mode fix: Code snippets now use proper duotoneDark theme in dark mode
  • Code snippet width: Code blocks respect the 600px max-width constraint with horizontal scrolling
  • Clean empty state: Column headers hidden in Sessions tab when table is empty
  • Consistent heading colors: Both Traces and Sessions use text-primary color for headings
  • Design system border: Toolbar border now uses borderDecorative token instead of hardcoded grey100

How is this PR tested?

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

Manual testing:

  • Manually tested in both light and dark modes
  • Verified layout consistency between Traces and Sessions empty states
  • Confirmed all text uses proper design system colors
  • Verified code snippets display correctly and respect width constraints
  • Confirmed toolbar border uses design system token

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 the visual consistency and readability of empty states in the Traces and Sessions tabs with proper centering, width constraints, updated heading text, correct design system colors, and fixed dark mode theming for code snippets.

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 should be selected for bug fixes, documentation updates, and other small changes. No should be selected for new features and larger changes. If you're unsure about the release classification of this PR, leave this unchecked to let the maintainers decide.

What is a minor/patch release?
  • Minor release: a release that increments the second part of the version number (e.g., 1.2.0 -> 1.3.0).
    Bug fixes, doc updates and new features usually go into minor releases.
  • Patch release: a release that increments the third part of the version number (e.g., 1.2.0 -> 1.2.1).
    Bug fixes and doc updates usually go into patch releases.
  • 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)

@github-actions
Copy link
Contributor

🛠 DevTools 🛠

Install mlflow from this PR

# mlflow
pip install git+https://github.com/mlflow/mlflow.git@refs/pull/20034/merge
# mlflow-skinny
pip install git+https://github.com/mlflow/mlflow.git@refs/pull/20034/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/20034/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.

"python.testing.unittestEnabled": false,
"python.testing.pytestEnabled": true
"python.testing.pytestEnabled": true,
"cursorpyright.analysis.exclude": [
Copy link
Collaborator

Choose a reason for hiding this comment

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

do we need these changes?

Copy link
Collaborator

@danielseong1 danielseong1 left a comment

Choose a reason for hiding this comment

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

could you add some screenshots to the PR description? I think you will also have to use the PR template here: https://raw.githubusercontent.com/mlflow/mlflow/master/.github/pull_request_template.md

@github-actions github-actions bot added v3.8.2 area/uiux Front-end, user experience, plotting, JavaScript, JavaScript dev server rn/bug-fix Mention under Bug Fixes in Changelogs. labels Jan 15, 2026
@ridgupta26 ridgupta26 force-pushed the fix-empty-states-part1 branch from 86c80db to 94957b4 Compare January 15, 2026 21:27
@ridgupta26
Copy link
Contributor Author

Removed the VSCode settings changes - they were Cursor-specific settings that accidentally got included and are not needed for this PR.

@ridgupta26
Copy link
Contributor Author

@danielseong1 made updates to the PR format as well as added the screenshots.

@github-actions
Copy link
Contributor

github-actions bot commented Jan 15, 2026

Documentation preview for f75c551 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.

Copy link
Collaborator

@B-Step62 B-Step62 left a comment

Choose a reason for hiding this comment

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

@ridgupta26 Overall change looks good, can you fix linter failures?

You can run yarn prettier:check at mlflow/server/js to run JS formatter, and then run pre-commit run --all-files for general linters.

(btw plz ignore "MLflow tests" CI failures, they are transient package download issues)

@ridgupta26 ridgupta26 force-pushed the fix-empty-states-part1 branch from 82ab80f to ce65d6f Compare January 29, 2026 04:28
- Center Traces empty state layout to match Sessions tab
- Update Traces heading to 'Log traces to this experiment' with primary color and center alignment
- Constrain all content to 600px max width for consistency
- Add secondary color to all text paragraphs
- Fix code snippet theme switching for dark mode (use 'duotoneDark')
- Remove custom style overrides, use design system defaults
- Hide column headers in Sessions table when empty
- Ensure code blocks properly constrain to 600px in both tabs

Signed-off-by: ridgupta26 <ridhima.gatech@gmail.com>
- Use text-primary color for Sessions empty state heading to match Traces tab
- Replace hardcoded grey100 border with design system borderDecorative token in TracesV3Toolbar

Signed-off-by: ridgupta26 <ridhima.gatech@gmail.com>
Signed-off-by: ridgupta26 <ridhima.gatech@gmail.com>
@ridgupta26 ridgupta26 force-pushed the fix-empty-states-part1 branch from ce65d6f to d8610a6 Compare January 29, 2026 04:43
@ridgupta26
Copy link
Contributor Author

Fixed DCO issue by rebasing the branch onto the latest master and cherry-picking only the commits that belong to this PR. All checks are now passing! ✅

Signed-off-by: Daniel Lok <daniel.lok@databricks.com>
Copy link
Collaborator

@daniellok-db daniellok-db left a comment

Choose a reason for hiding this comment

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

lgtm

@daniellok-db daniellok-db added this pull request to the merge queue Feb 13, 2026
Merged via the queue into mlflow:master with commit 0b779f9 Feb 13, 2026
15 checks passed
daniellok-db added a commit to daniellok-db/mlflow that referenced this pull request Feb 20, 2026
Signed-off-by: ridgupta26 <ridhima.gatech@gmail.com>
Signed-off-by: Daniel Lok <daniel.lok@databricks.com>
Co-authored-by: ridgupta26 <ridhima.gatech@gmail.com>
Co-authored-by: Daniel Lok <daniel.lok@databricks.com>
daniellok-db added a commit that referenced this pull request Feb 20, 2026
Signed-off-by: ridgupta26 <ridhima.gatech@gmail.com>
Signed-off-by: Daniel Lok <daniel.lok@databricks.com>
Co-authored-by: ridgupta26 <ridhima.gatech@gmail.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.8.2 v3.10.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants