Skip to content
New issue

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

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

Already on GitHub? # to your account

Missing overflow-visible on some icon button examples #2701

Merged
merged 8 commits into from
Oct 14, 2024

Conversation

hannahiss
Copy link
Member

@hannahiss hannahiss commented Aug 21, 2024

Note: Please transform - [ ] into - (NA) in the description when things are not applicable

Related issues

Description

Add missing class .overflow-visible utility, like the other examples arround.

Motivation & Context

This class is needed to prevent SVG content from being cropped

Types of change

  • Bug fix (non-breaking which fixes an issue)

Live previews

Copy link

netlify bot commented Aug 21, 2024

Deploy Preview for boosted ready!

Name Link
🔨 Latest commit 6707b2d
🔍 Latest deploy log https://app.netlify.com/sites/boosted/deploys/670cda17fa0da00008256a46
😎 Deploy Preview https://deploy-preview-2701--boosted.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

@hannahiss hannahiss marked this pull request as ready for review August 23, 2024 14:37
Copy link
Member

@louismaximepiton louismaximepiton left a comment

Choose a reason for hiding this comment

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

Since our <svg>s have their own security margin, I'm wondering if we still need the explanation.

If you think that we should keep them:

  • 20 are missing in dark-mode.md line 1403 up to 1507 for the close buttons.
  • 30 are missing in dark-mode.md line 8356 up to 8821 for the close buttons.
  • 4 are missing in close-button.md line 43 up to 58 for the close buttons.
  • 2 are missing in tooltips.md line 141 up to 157 for the directions.
  • ;I think that the svgs inside the theme toggler should be changed and in general .nav-link/.nav-icon. If this is the case, many more are coming and I don't know the limit but maybe almost all svg should get .overflow-visible.
  • 2 are missing in download-app line 367 up to 378 for the outline buttons.
  • 1 is missing in icons.md line 182 for the outline buttons.
  • 6 are missing in checks-radios.md line 315 up to 357 for the no outline buttons.
  • 1 is missing in docs.html line 39 for the On this page button.
  • 1 is missing in single.html line 19 for the Download button.
  • 1 is missing in docs-subnav.html line 6 for the Toggle button.
  • 1 is missing in masthead.html line 23 for the Read the docs button.
  • 2 are missing in ;card.html line 41 up to 49 for the Sahre and Favorite buttons.
  • 2 are missing in example.html line 35 and 38 for the Copy and StackBlitz buttons.
  • 1 is missing in js-docs.html line 43 for the Copy button.
  • 1 is missing in scss-docs.html line 56 for the Copy button.

On the other side if you think that there are not needed anymore:

  • 40 to remove in dark-mode.md.
  • 6 to remove in buttons.md.
  • 3 to remove in orange-navbar.md.
  • 3 to remove in orange-global-headers.html.
  • 2 to remove in form.html example.
  • 2 to remove in orange-supra.html.

@hannahiss
Copy link
Member Author

Since our <svg>s have their own security margin, I'm wondering if we still need the explanation.

@julien-deramond
I did some testing: removing the .overflow-visible class completely, I couldn't reproduce any issues with SVGs being cropped, so I wonder if we could remove this from the documentation completely? What do you think?

@julien-deramond
Copy link
Contributor

julien-deramond commented Oct 1, 2024

@julien-deramond
I did some testing: removing the .overflow-visible class completely, I couldn't reproduce any issues with SVGs being cropped, so I wonder if we could remove this from the documentation completely? What do you think?

Let’s approach this with a logical deduction based on our current knowledge.

None of us have identified a specific reason why the .overflow-visible class is applied to Boosted's buttons with icons, nor have the history of this specificity. Similarly, we are not aware of any browser-related issues that would cause icons to be cropped in this context.

If we consider how other implementations handle this:

  • In Bootstrap's examples, there’s no .overflow-visible rule applied to the "Download examples" button containing an icon.
  • Similarly, Adobe’s Spectrum Buttons and other component libraries do not apply this rule either.
  • Our own Close button and color theme changer in the header don't have this .overflow-visible class

The only valid use case I can think of is if an icon or SVG has a very specific rendering requirement, for instance:

<button type="button" class="btn btn-primary">
  <svg width="1rem" height="1rem" fill="currentColor" aria-hidden="true" class="me-1">
    <text x="0" y="1.2rem" font-size="1rem">Text</text>
  </svg>
  Primary
</button>

However, our components are intended to be used with Solaris icons or, in the future, Orange’s pre-packaged icon libraries, where all icons are designed to fit uniformly within a square container of consistent size.

Given this, I’d estimate that in 99% of cases, overflow-visible is unnecessary.

This leads to two conclusions:

  1. By default, we can safely remove the .overflow-visible class from all buttons containing icons.
  2. In the documentation, we can maybe add a note stating that if an SVG is cropped in rare cases, the .overflow-visible class can be applied to fix the rendering. And I'm not 100% certain that it's useful. It's more like to not forget that it existed in the past 😄

What do you think folks?

@hannahiss
Copy link
Member Author

hannahiss commented Oct 1, 2024

This leads to two conclusions:

  1. By default, we can safely remove the .overflow-visible class from all buttons containing icons.
  2. In the documentation, we can maybe add a note stating that if an SVG is cropped in rare cases, the .overflow-visible class can be applied to fix the rendering. And I'm not 100% certain that it's useful. It's more like to not forget that it existed in the past 😄

What do you think folks?

I'm in 😄

@julien-deramond
Copy link
Contributor

@hannahiss We should probably add a note in the migration guide as the markup of some components are modified (even if it doesn't have any impacts for the users).

Copy link
Member

@louismaximepiton louismaximepiton left a comment

Choose a reason for hiding this comment

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

I'm fine removing this class since it doesn't bring much.

@julien-deramond julien-deramond self-requested a review October 11, 2024 05:56
Copy link
Contributor

@julien-deramond julien-deramond left a comment

Choose a reason for hiding this comment

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

LGTM! Just added a migration note via e063766, please tell me if that's OK for you so that I can merge this PR.

@julien-deramond julien-deramond merged commit 4ac023b into main Oct 14, 2024
12 checks passed
@julien-deramond julien-deramond deleted the main-his-missing-overflow-visible branch October 14, 2024 08:49
# for free to join this conversation on GitHub. Already have an account? # to comment
Projects
Development

Successfully merging this pull request may close these issues.

3 participants