Loading video...
Video Failed to Load
🧲 Just shipped: Tables that split, stretch, and snap into place.
316,719 views • 12 days ago •via X (Twitter)
41 Comments

The old tables were static. For the new Operate, I wanted something that reacts to how you actually use it. It’s a context panel inside chat. If you give it more width, you’re probably focusing on the data, so it shows you more to work through. Keep it narrow and it becomes a quick glance while you’re talking to an Operate agent. Then I started thinking about how to make that transition feel more pleasant. Here’s how it works: • Widen the panel and a deal row breaks apart. Amount moves out from the deal name into its own column, and close date separates from the owner. • It’s magnetic, not instant. Near the breakpoint, the amount strains toward its column and the name gives a little, then it snaps across. Narrowing is the exact mirror: they pull toward each other, then click back together. • Column icons enter from the side their data came from. Empty dashes travel too. • Snaps, no bounce. The name is back in place the moment the amount lets go. • Long names truncate instead of pushing the table sideways. The video shows Deals, but Accounts, People, Meetings, and Tasks all use the same table now. And it respects reduced motion.

@operate_gtm Love the way it adds columns and switches up the layout!

@operate_gtm Yesss, that part was so fun to get right. 🫶

@operate_gtm I'm still genuinely gobsmacked you shipped this straight to prod yourself — incredible work

@operate_gtm Couldn’t have gotten here without you helping me along the way. 🫂

@operate_gtm Stop it. It's too good...

@operate_gtm Super cool, did you start from scratch on that table component or did you start from some framework? I’ve been struggling with tables in our product and have been looking around 👀

@operate_gtm Not from scratch. Our static table was already built on @tan_stack Table + Virtual (both headless). I revamped its UI first, then added the dynamic layout, interactions and motion on top, all custom.

@operate_gtm wow its soo cool!! we need more creativity like this in the UI space. you earned a follower, man.

@operate_gtm snap threshold tuning is where i lost a week. too tight and it fights you, too loose and nothing feels sticky.

@operate_gtm Hahaha yes. This was exactly it. Tiny changes and suddenly the whole thing either feels perfect or completely wrong

@operate_gtm Is there an open source for it? I really wanna use this!

@operate_gtm Not yet, it's part of Operate's codebase right now. If there's enough interest I'll pull it out into something shareable.

@operate_gtm Love it!

@operate_gtm Beautiful work 🔥

@operate_gtm whooot

@operate_gtm I’ll take this as approval 🙂↕️

@operate_gtm Smooth

@operate_gtm Clean

@operate_gtm love that staggered movement ❤️

@jamesm @operate_gtm That snapping is so cool

@operate_gtm very curious, does this happen to be powered by layoutId's? or is this done in raw css/js

@operate_gtm Not layoutId. Raw CSS and a small hook, with two breakpoints.

@operate_gtm Those animations are like cutting butter 😫😫

@operate_gtm all i see are the dance moves

@operate_gtm Wow, ok, this is sick! 👏

@operate_gtm banger

@operate_gtm Appreciate it, bhai!

@operate_gtm banger

@operate_gtm Tables that split, stretch and snap — finally, spreadsheet yoga.

@operate_gtm this animation is legit eye candy

@operate_gtm That’s insane 🔥🔥🔥🔥

@operate_gtm Really cool!

@operate_gtm super smooth 😍

@operate_gtm You can tell how well-designed a web app is by its tables 😉. Not a sexy component but incredibly nuanced.

@operate_gtm This animation is too good 🤯

@operate_gtm this is the unsexy ship that actually matters tables behaving is how an app starts feeling expensive

@operate_gtm That is oddly satisfying

@operate_gtm tables that split, stretch restraint looks intentional. clean release.

@operate_gtm clean

@operate_gtm That snap animation is quite satisfying!


