Profile avatar
brunostasse.bsky.social
Creator of Silk • silkhq.co • Making on the web what the web can't do • EU/France 🇪🇺
125 posts 145 followers 262 following
Regular Contributor
Active Commenter

Sheet with transient detent. The intermediate detent is removed once the sheet reaches the last detent. Swipe up or tap the input to expand. Scroll to dismiss the keyboard. Swipe down to dismiss the sheet. Made with Silk, on the web.

Just shipped a big revamp of Silk examples' code. Each example is now fully self-contained, making it much easier to just copy/paste into your own project. The generic part of the example is now also structured as compound components, matching Silk's API and providing granular control. v1 → v2

Detached side drawer. Scrollable, swipeable, stackable. Made with Silk, on the web.

The backdrop not covering the status bar when opening a sheet on the web makes it feel... subpar compared to native. So in Silk I baked-in the ability to blend them together by automatically dimming the theme-color in sync with the backdrop opacity.

Little UX improvement to the music player example that'll come with the code revamp I'm working on: you'll be able to scroll the page right after swiping down the panel, without having to wait for the animation to end.

Simple swipeable page on the web, made with Silk.

Want a sheet that can only be dismissed with a button tap? With Silk just set the `swipeDismissal` prop to `false` and the sheet won’t be dismissible by swipe. On iOS the user can still swipe the sheet, but it will snap back into place instead of closing.

Working on revamping @silk_hq examples' code to make them a lot more flexible and easier to drop into your project. One change I’m making is switching from props as slots to compound components that match the actual API. before → after

Detached sheet made with silkhq.co on the web. Natural overshoot, status bar blending with the backdrop, swipe or click outside to dismiss.

Revamped the Community sheet and made it accessible through the nav. Really like that little sheet switching

With Silk you get a nice <Sheet.Backdrop> sub-component that animates its opacity automatically as the sheet goes in and out of the view. It also has a special prop to blend it with the iOS status bar, and you can make it respond to swipe or not. All fully configurable.

Using Radix's DropdownMenu or other overlay components? Silk is built to be fully compatible with all of them. Just added a guide about it to the docs.

Toast with natural swipe overshoot. Implemented with @silkhq.bsky.social and React on the web.

Did you try installing silkhq.co on your home screen? It extends below the status bar there. That's how it looks

`<Sheet.View>` is Silk's most important sub-component. It defines the area where the sheet is visible, but it's also where you set most of its configuration. It has props for content placement, detents, swipe behavior, interactions outside, and a lot more.

After playing with the demo, all I can say is: hnnnnngggg

Added some very nice quotes to Silk's website

This move by the DOJ is bad news for the web. Google is singlehandedly founding up to two-thirds of browser engine development (Chromium & Gecko) at the moment. Cut that off and the platform will likely stagnate and slowly become irrelevant...

Little bouncy card implemented with Silk on the web. Swipe up to dismiss

Just released Silk v0.9.0, which improves compatibility with Tailwind v4 and some build tools! Silk's CSS styles are now exported from the package, letting you import them as you need in your project.

Bottom sheets are great, but what about top sheets? Swipeable. 120fps. On the web. Made with Silk.

ˋ<Sheet.Trigger>` in Silk isn't just used to open a sheet, it’s a versatile component. You can use it to dismiss a sheet, or step to the next detent too.

Working on improving Silk's compatibility with Tailwind V4. V4 use of CSS `@​layer` makes Tailwind's styles less specific than unlayered styles. This means you currently need to use a ˋ!` marker to override Silk's (very few) default styles. Aiming to remove the need for that workaround.

G̶o̶o̶g̶l̶e̶r̶… ex-Googler. nerdy.dev/ex-googler