adobe / react-spectrum

A collection of libraries and tools that help you build adaptive, accessible, and robust user experiences.
https://react-spectrum.adobe.com
Apache License 2.0
12.8k stars 1.1k forks source link

Hidden `DisclosurePanel`s are given `display: none` by tailwind's base layer #7160

Open neefrehman opened 2 days ago

neefrehman commented 2 days ago

Provide a general summary of the issue here

I'm currently implementing Disclosure in a codebase that uses tailwind. At first, when nesting a Table element inside this disclosure, I noticed some jank related to column widths. After some investigation I found that the DisclosurePanel element implicitly had a width of 0, due to having been given display: none by tailwind's @tailwind base layer:

/* Make elements with the HTML hidden attribute stay hidden by default */
[hidden] {
  display: none;
}

Tailwind source can be seen here, (and on the next branch it will be made !important)

To bring the behaviour closer in line with how details/summary elements work, I've had to override this manually:

  /*
    By default tailwind's reset will give any element with the `hidden` attribute `display: none`.
    Here, we undo that default for RAC's `Disclosure` elements, so that hidden `DisclosurePanel`s
    can still inherit a width, bringing them closer in behaviour to `details`/`summary` elements.
  */
  [data-rac][hidden="until-found"] {
    display: block;
  }

But, since I'm also using the tailwindcss-react-aria-components plugin, I wonder if this is something that could be handled there?

๐Ÿค” Expected Behavior?

DisclosurePanel elements should inherit their parent's width, even when hidden, as implementations in the docs do.

๐Ÿ˜ฏ Current Behavior

DisclosurePanel elements have no width due to tailwind's reset, leading to potentially janky animations when opening them

๐Ÿ’ Possible Solution

The tailwindcss-react-aria-components plugin could help undo this for DisclosurePanel elements.

๐Ÿ”ฆ Context

No response

๐Ÿ–ฅ๏ธ Steps to Reproduce

Use Disclosure in any codebase that adds tailwind's @tailwind base styles

Version

"react-aria-components": "1.4.0"

What browsers are you seeing the problem on?

Firefox, Chrome, Safari, Microsoft Edge

If other, please specify.

No response

What operating system are you using?

MacOS

๐Ÿงข Your Company/Team

No response

๐Ÿ•ท Tracking Issue

No response

devongovett commented 2 days ago

Thanks for reporting! I reached out to the Tailwind team about this and they are looking into updating their reset. See https://github.com/tailwindlabs/tailwindcss/pull/14625

RobinMalfait commented 1 day ago

This should be fixed and will be available in the next release of Tailwind CSS. Will leave a comment when we have a new version out.