tailwindcss icon indicating copy to clipboard operation
tailwindcss copied to clipboard

Add utilities for `scrollbar-width`

Open lukewarlow opened this issue 2 years ago • 8 comments

This PR adds utlities for the scrollbar-width CSS property.

Currently only implemented in Firefox.

Chrome (in-progress) bug: https://crbug.com/891944

Safari bug: https://webkit.org/b/231588

The scrollbar-none class also works with Chrome and Safari with the fallback to the ::-webkit-scrollbar pseudo element.

lukewarlow avatar Oct 07 '21 15:10 lukewarlow

Thanks for this! Just a head's up it's probably going to take a while to review this — I've wanted to add scrollbar related utilities for a long time but have never found the right chance to sit down and study all of the properties, browser compatibility, etc. and then really design the ideal API, and that's all stuff I'll have to do before we can merge these ones. It's possible I don't get a chance to really get into this until like December after we finish v3.0 and this can target v3.1 perhaps.

Hope that's understandable, thanks again!

adamwathan avatar Oct 12 '21 11:10 adamwathan

That's absolutely fine. These are simple enough to add to a project through plugins for the time being. Better to have good ergonomics and take a bit longer to reach Core.

lukewarlow avatar Oct 12 '21 11:10 lukewarlow

Hopefully in the meantime browser support gets a bit better for one or more of the properties.

lukewarlow avatar Oct 12 '21 11:10 lukewarlow

Awesome, thanks man! PS. I was born in Wales 🏴󠁧󠁢󠁷󠁬󠁳󠁿

adamwathan avatar Oct 12 '21 11:10 adamwathan

https://github.com/tailwindlabs/tailwindcss/discussions/5751 - relevant discussion I made regarding scrollbar-color property. Just linking here so it's all linked together.

lukewarlow avatar Oct 12 '21 12:10 lukewarlow

I think this's really helpful for things like hiding scrollbar? when are we ready to release it?

hydRAnger avatar Oct 28 '21 07:10 hydRAnger

I created a plugin to handle styling scrollbars. It may be useful to see how I set it up.

https://github.com/brandonpittman/tailwindcss-plugin-fancy/blob/master/src/scrollbars.ts

brandonpittman avatar Dec 16 '21 04:12 brandonpittman

Unfortunately looks like scrollbar-width property is still only supported in Firefox.

Potentially worth simply adding the scrollbar-none class which includes the webkit fallback and dropping at least the thin version. This way users are able to hide scrollbars (which I suspect is what the vast majority actually care about).

lukewarlow avatar Mar 26 '22 12:03 lukewarlow

Hey folks! I definitely want to add support for this stuff at some point but as you can see it's taking a while for it to get to the top of the priority list, and I can't merge in support for a significant feature like this without taking the time to really dig in to the underlying CSS features and make sure I fully agree with the API we're exposing and how it all works.

I'm not sure when I'm going to get around to doing that but this has been open for a year and a half with no movement on my end yet, so I'm going to close it for now. Definitely do want to add it eventually and when we do I'll make sure you get proper credit in the commit history, but just not ready to work on it right now.

Really appreciate it regardless and looking forward to getting to this at some point, but letting PRs sit open for this long isn't how I want to run the project — I'd like to either merge things fast or say "no for now" and revisit when I'm able to give an idea my full attention. Thank you again! 🙌

adamwathan avatar Feb 07 '23 02:02 adamwathan

In case anyone comes across this issue I've made an npm package with a plugin for scrollbar width (along with gutter and color) utilities. See https://github.com/lukewarlow/tailwind-scrollbar-utilities

lukewarlow avatar Apr 14 '23 16:04 lukewarlow

I've filed a Chromium Intent to Ship for standard scrollbar properties as an fyi: https://groups.google.com/a/chromium.org/g/blink-dev/c/PkEsMirl2zE

lukewarlow avatar Oct 20 '23 23:10 lukewarlow