Sign in

Bruno Stasse

@brunostasse.bsky.social
156 followers 264 following 160 posts

Creator of @silkhq.com • Making on the web what the web can't do • EU/France 🇪🇺 • silkhq.com

PostsRepliesMedia
Bruno Stasse @brunostasse.bsky.social · 19/05/2026
Silk has passed 100k weekly downloads on npm! 🎉
Npm screenshot
021
Bruno Stasse @brunostasse.bsky.social · 07/05/2026
Thanks a lot Michael!
000
Bruno Stasse @brunostasse.bsky.social · 07/05/2026
ChatGPT’s mobile web app uses @silkhq.com for its bottom sheets. Silk is now powering native-like interactions inside one of the most-used products in the world 🎉
141
Bruno Stasse @brunostasse.bsky.social · 28/04/2026
Lovable's bottom sheets are built with @silkhq.com. On the web and in the app. Same code. Native feel everywhere.
001
Bruno Stasse @brunostasse.bsky.social · 16/04/2026
Love how AtoBeach.com is built with @silkhq.com 15+ swipeable bottom sheets, a swipeable sidebar. All running at up to 120fps, even in iOS Safari. Beautiful work
011
Bruno Stasse @brunostasse.bsky.social · 15/04/2026
Yeah feeding them markdown is definitely much more efficient. It's slowly becoming a standard I think
000
Bruno Stasse @brunostasse.bsky.social · 15/04/2026
The docs: silkhq.com/docs/getting...
silkhq.com
Getting Started · Silk
Learn how to install and set up Silk in your React project.
000
Bruno Stasse @brunostasse.bsky.social · 15/04/2026
The new docs for @silkhq.com are now live on the website. Every page is available in Markdown, with an llms.txt to guide AI tools. More information on the "Usage with AI Tools" page. Link below 👇
Silk's docs screenshot
220
Bruno Stasse @brunostasse.bsky.social · 01/12/2025
Only 2 days left to take advantage of @silkhq.com Black Friday deal! 25% off all commercial licenses.
001
Bruno Stasse @brunostasse.bsky.social · 26/11/2025
Get the discount: silkhq.com
000
Bruno Stasse @brunostasse.bsky.social · 26/11/2025
Black Friday Deal ✨ Silk is 25% off for one week. Don't miss it.
Silk — Native-like swipeable sheets on the web — 25% off
112
Bruno Stasse @brunostasse.bsky.social · 16/09/2025
In my case the fixed elements (possibly the entire viewport actually, but not noticeable on a normal page) go up and down as I scroll the page. They end up in the right position when Safari's UI is expanded, and too high up when it is collapsed. Showing the keyboard seems to trigger the behavior.
130
Bruno Stasse @brunostasse.bsky.social · 15/09/2025
I noticed a pretty bad bug with fixed elements, they get shifted up sometimes. Relaunching Safari fixes the issue (temporarily). Does that maybe help with the bad behaviors you've noticed?
110
Bruno Stasse @brunostasse.bsky.social · 15/08/2025
Glad it worked!
010
Bruno Stasse @brunostasse.bsky.social · 08/07/2025
Page with background parallax. 120fps trackpad swipe animation. Animated header fade. Fully accessible. On the web, with @silkhq.com
011
Bruno Stasse @brunostasse.bsky.social · 07/07/2025
Just added an `updateThemeColor()` function to @silkhq.com that lets you update the page `theme-color` used for the iOS status bar while preserving the dimming that makes it blend with the Sheet's Backdrop. Pretty useful when you're switching between light/dark mode from within a Sheet!
001
Bruno Stasse @brunostasse.bsky.social · 05/07/2025
If you're doing cool stuff with @silkhq.com too, send it my way, I'd love to see it!
000
Bruno Stasse @brunostasse.bsky.social · 03/07/2025
There are, but to be honest I'd rather have browser vendors focus on fixing issues and implementing missing features that prevent us from reaching experiences on par with native for now. I've got a list of things that I've communicated to one vendor. Happy to send it your way if you'd like.
110
Bruno Stasse @brunostasse.bsky.social · 03/07/2025
Swipe animations themselves are based on CSS scroll-snap, so there's no JS involved. There is JS around it to make it work as desired though, and to handle the many features and components you need to build such a complete experience. The whole lib is under 40kb gzipped.
120
Bruno Stasse @brunostasse.bsky.social · 03/07/2025
As it should be!
010
Bruno Stasse @brunostasse.bsky.social · 03/07/2025
This is what the mobile web should have felt like all along. My goal is to make this the new normal.
251
Bruno Stasse @brunostasse.bsky.social · 02/07/2025
Tjek’s eTilbudsavis web app, home to digital catalogs from brands across Scandinavia, is now using @silkhq.com. It looks great, check it out 👇
011
Bruno Stasse @brunostasse.bsky.social · 01/07/2025
Sometimes all you need is a clean, smoothly animated page. 120fps enter/exit animations. Inner scrolling with overshoot. Perfect body scroll locking. Fully accessible. Made with @silkhq.com, on the web.
021
Bruno Stasse @brunostasse.bsky.social · 30/06/2025
Rich in-editor hints for @silkhq.com just shipped! You now get information about each component, sub-component and prop inline as you type. Learn what is required, what things do and how they compose together without leaving you editor.
001
Bruno Stasse @brunostasse.bsky.social · 20/06/2025
Coming soon: Rich code editor hints for Silk ✨ You'll know which sub-components are required, how they compose together and what their props do without leaving your editor.
Screenshot of Silk's rich hints in VSCode
011
Bruno Stasse @brunostasse.bsky.social · 19/06/2025
Long scrollable sheet. Swipe up or down to dismiss with your trackpad. Made with Silk, on the web.
031
Bruno Stasse @brunostasse.bsky.social · 18/06/2025
Silk is getting an upgrade today. It's a letter. silkhq.co becomes silkhq.com
silkhq.com
Silk - Native-like swipeable sheets on the web
Find out how to get access for commercial and non-commercial usage for Silk, the swipeable and accessible modal sheet component for React.
011
Bruno Stasse @brunostasse.bsky.social · 13/06/2025
Love to hear that!
020
Bruno Stasse @brunostasse.bsky.social · 13/06/2025
That'd be nice indeed :) Maybe @jensimmons.bsky.social or @saron.bsky.social can answer your question.
010
Bruno Stasse @brunostasse.bsky.social · 13/06/2025
Oh, and someone shared a screenshot of a very common issue here: x.com/jaytel__/sta...
x.com
100
Bruno Stasse @brunostasse.bsky.social · 13/06/2025
There some (limited) info here and a few screenshots, but they don't quite show how bad it is: bsky.app/profile/jens...
100
Bruno Stasse @brunostasse.bsky.social · 13/06/2025
Thing is Apple has not made public any information about that new UI, and the beta agreement forbids the sharing of non-public information, so I'm not sure what I'm allowed to share 😅 The implementation is different from that of iOS 15, so the issues are also a bit different.
110
Bruno Stasse @brunostasse.bsky.social · 13/06/2025
I’ll be sending feedback to Apple on a number of issues with the new UI, and I’d encourage anyone testing the beta to do the same. With enough input, hopefully it won’t ship in its current form.
000
Bruno Stasse @brunostasse.bsky.social · 13/06/2025
Apple says the new iOS Safari is all about an immersive, edge-to-edge experience. But after testing it out, that promise doesn’t hold up. In fact, beta 1 delivers the least immersive experience ever, unless you only visit websites from the ‘90s when `position: fixed` didn’t exist.
Screenshot of the new Safari, with a label "Doesn't live up to its promise"
332
Bruno Stasse @brunostasse.bsky.social · 13/06/2025
It is possible, but Silk doesn't yet provide tools to position an element above the keyboard and keep it there, so you'll have to do this yourself using the visualViewport API. It can be a bit tricky, so this is definitely something I want to cover in the near future.
110
Bruno Stasse @brunostasse.bsky.social · 05/06/2025
Very excited for this. Last time I checked you couldn't pass a function definition (i.e. not a function call, but a function that you can call later with params from another context) to a custom prop. Any chance this has changed?
000
Bruno Stasse @brunostasse.bsky.social · 03/06/2025
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.
021
Bruno Stasse @brunostasse.bsky.social · 02/06/2025
The advanced examples made available after purchase of a commercial license have also been updated and can be downloaded here: app.lemonsqueezy.com/my-orders Send me a email if you struggle to find them.
000
Bruno Stasse @brunostasse.bsky.social · 02/06/2025
The basic examples now live in the main Silk repo, where you can also report issues, request features and have discussions. Check them out: github.com/silk-hq/silk
github.com
GitHub - silk-hq/silk: Examples, bug reports, feature requests and discussions about Silk.
Examples, bug reports, feature requests and discussions about Silk. - silk-hq/silk
100
Bruno Stasse @brunostasse.bsky.social · 02/06/2025
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
Example using slots as propsExample using compound components
111
Bruno Stasse @brunostasse.bsky.social · 31/05/2025
Yeah that's the idea with this API: animate automatically from one view to another in the most natural way by default, which is a translate/scale when the elements remain the same but change place/size. It's very powerful and well designed I think.
110
Bruno Stasse @brunostasse.bsky.social · 31/05/2025
Great! My pleasure :)
210
Bruno Stasse @brunostasse.bsky.social · 31/05/2025
As long as you're updating with JS you should be able to hook up a view transition and get the translate I think. I haven't played much with the API yet either, but I'm pretty sure that's one thing it was designed for :)
100
Bruno Stasse @brunostasse.bsky.social · 31/05/2025
Basically you'd wrap the JS which updates your DOM in a startViewTransition() call, and... I think that's it for a simple translate animation. You can then customize the easing using the appropriate CSS pseudo-elements. @bram.us has a demo with grid here: www.bram.us/2023/05/09/r...
bram.us
Rearrange / Animate CSS Grid Layouts with the View Transition API
Animate elements in a grid layout as new items are added, items change size, etc.
150
Bruno Stasse @brunostasse.bsky.social · 31/05/2025
Sounds like something View Transitions could handle well?
220
Bruno Stasse @brunostasse.bsky.social · 29/05/2025
Thanks Andy!
010
Bruno Stasse @brunostasse.bsky.social · 28/05/2025
That's good to know!
000
Bruno Stasse @brunostasse.bsky.social · 28/05/2025
Glad you like it! Took some time to design the API :)
010
Bruno Stasse @brunostasse.bsky.social · 28/05/2025
Detached side drawer. Scrollable, swipeable, stackable. Made with Silk, on the web.
121
Bruno Stasse @brunostasse.bsky.social · 28/05/2025
Some maths with the rgb values 😁
010