Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sidebar Component #10435

Merged
merged 34 commits into from
Jan 30, 2025
Merged

Sidebar Component #10435

merged 34 commits into from
Jan 30, 2025

Conversation

dawoodkhan82
Copy link
Collaborator

@dawoodkhan82 dawoodkhan82 commented Jan 24, 2025

Description

Screen.Recording.2025-01-28.at.8.10.40.PM.mov

Closes: #9117

🎯 PRs Should Target Issues

Before your create a PR, please check to see if there is an existing issue for this change. If not, please create an issue before you create this PR, unless the fix is very small.

Not adhering to this guideline will result in the PR being closed.

Testing and Formatting Your Code

  1. PRs will only be merged if tests pass on CI. We recommend at least running the backend tests locally, please set up your Gradio environment locally and run the backed tests: bash scripts/run_backend_tests.sh

  2. Please run these bash scripts to automatically format your code: bash scripts/format_backend.sh, and (if you made any changes to non-Python files) bash scripts/format_frontend.sh

@gradio-pr-bot
Copy link
Collaborator

gradio-pr-bot commented Jan 24, 2025

🪼 branch checks and previews

Name Status URL
Spaces ready! Spaces preview
Website ready! Website preview
Storybook ready! Storybook preview
🦄 Changes detected! Details

Install Gradio from this PR

pip install https://gradio-pypi-previews.s3.amazonaws.com/5d6e0c4c229c0f26d7250d5490a5c6d69f987c5d/gradio-5.13.2-py3-none-any.whl

Install Gradio Python Client from this PR

pip install "gradio-client @ git+https://github.com/gradio-app/gradio@5d6e0c4c229c0f26d7250d5490a5c6d69f987c5d#subdirectory=client/python"

Install Gradio JS Client from this PR

npm install https://gradio-npm-previews.s3.amazonaws.com/5d6e0c4c229c0f26d7250d5490a5c6d69f987c5d/gradio-client-1.10.0.tgz

Use Lite from this PR

<script type="module" src="https://gradio-lite-previews.s3.amazonaws.com/5d6e0c4c229c0f26d7250d5490a5c6d69f987c5d/dist/lite.js""></script>

@gradio-pr-bot
Copy link
Collaborator

gradio-pr-bot commented Jan 24, 2025

🦄 change detected

This Pull Request includes changes to the following packages.

Package Version
@gradio/core minor
@gradio/sidebar minor
gradio minor
gradio_client minor
  • Maintainers can select this checkbox to manually select packages to update.

With the following changelog entry.

Sidebar Component

Maintainers or the PR author can modify the PR title to modify this entry.

Something isn't right?

  • Maintainers can change the version label to modify the version bump.
  • If the bot has failed to detect any changes, or if this pull request needs to update multiple packages to different versions or requires a more comprehensive changelog entry, maintainers can update the changelog file directly.

@abidlabs
Copy link
Member

Looks very nice @dawoodkhan82! Just one minor point: the toggle icon is hard to see in light mode:

image

otherwise looks great!

@hannahblair
Copy link
Collaborator

hannahblair commented Jan 28, 2025

With the reduction of drop shadows in the overall gradio design updates, I'm wondering if you need a drop shadow. It might look a little bit weird without it initially, but if we implement the dynamic content shift then I think it will definitely look better

@abidlabs
Copy link
Member

  • Hmm I think we should bring back the shadow -- otherwise the difference between the sidebar and main page is completely absent, particularly in light mode:
image
  • The dynamic shifting feels really great! On my screen, I noticed that the shifting wasn't enough though -- as you can see above, some of the underlying content on the main page (the left edge of the button) is still cutoff:

@abidlabs
Copy link
Member

  • When SSR mode is True, you'll see that main page is initially under the sidebar and then dynamically moves to the right:
Screen.Recording.2025-01-29.at.12.26.44.PM.mov

This is not ideal, but I do understand why its happening (the dynamic shifting happens in onMount(), which happanes after the page is loaded). One potential workaround: what if the sidebar is initially closed but opens in onMount(), which means that it would open simultaneously with the dynamic shifting, which could lead to a nice effect actually?)

@abidlabs
Copy link
Member

Let's add some documentation about gr.Sidebar in our Guides? Perhaps a section here: https://www.gradio.app/guides/controlling-layout

@@ -0,0 +1,23 @@
import { test, expect } from "@self/tootils";

test("shows open sidebar and components in sidebar work", async ({ page }) => {
Copy link
Member

@abidlabs abidlabs Jan 30, 2025

Choose a reason for hiding this comment

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

Nice

@abidlabs
Copy link
Member

LGTM @dawoodkhan82, I only noticed one issue -- the footer is not visible when a sidebar is added. You have to scroll down to see it. Good to merge once that's addressed!

image

Copy link
Member

@abidlabs abidlabs left a comment

Choose a reason for hiding this comment

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

looks really great @dawoodkhan82!

@abidlabs abidlabs merged commit ef66fe5 into main Jan 30, 2025
23 checks passed
@abidlabs abidlabs deleted the sidebar branch January 30, 2025 21:49
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.

sidebar component
4 participants