This is worth keeping an eye on. The creators of @chakraui_ui are using @zag_js to create @ark_ui_ (I dig this name).
ark-ui.com/
The best part is they have @solid_js support!
This is amazing 🤯. I’m excited to try it out in the @zag_js codebase.
Love how Playwright is consistently bridging the gap with Cypress and shipping amazing features while keeping its speed ⚡️
Nested menus can be a pain to deal with. In Zag.js, we provide a smooth nested menu navigation that works with pointer and keyboard 👌✨
Powered by Statecharts 😊
Check it out:
zagjs.com/components/react/n…
A li’l quality-of-life update:
Before, you had to be really precise with your cursor so menus wouldn’t disappear on you. Should feel much more polished now 🫡
ALT Before today, Notion users had to be very precise with their mouse movements when opening menus. The left side shows the previous behavior, with the pop-up menu constantly disappearing. The right side shows the new behavior, which allows menus to open more smoothly and intuitively.
Really pumped about my upcoming Egghead course for @zag_js 🥳
In this course, you'll learn how to build UI components using State Machines.
Can't wait to release it
After building UI components with XState and @zag_js, it feels like there's almost no point in making a framework-specific component library.
Model once, use everywhere.
Debug and enhance with ease.
So much better ✨
Looking forward to bringing this approach into Chakra
One more thing: I'm going to try @zag_js with Solid today - state machine components is a fascinating concept and generally when the creator of a good thing roll learnings into a new thing, it's a really good thing. github.com/chakra-ui/zag
We've just shipped the select machine to Zag 🛸
Select machine is flexible and you can choose to enable features like:
🟩 loop navigation
🟩 selectOnTab
🟩 readOnly
🟩 disabled
Learn more about select in our docs: zagjs.com/components/react/s…
ALT GIF demo of the newly released Select machine in Zagjs
Day 48 of #100DaysOfCode
I started working on the onboarding of new users. I'm using magic links for signing in, hence I need additional info from first-time users. Yesterday I spent most of the time designing and coding a dialog component. I'm using @zag_js and it's awesome ⚡
For context, @zag_js is a headless library, which defines reusable logic of common components as state machines. The definitions are framework-agnostic and can be adopted across any major framework.
With a11y in mind. 😍
That's cool, right?
@zag_js is a great example of how to leverage XState to isolate and potentially reuse an explicit state machine to manage a non-trivial component state.
Check out e.g. @zagjs/accordion:
I'm starting a series of livestreams to design state machines with @zag_js, and use them in @chakra_ui
Come watch @NikolovLazar and I model the logic of a custom Select component, the most requested component in Chakra UI 🤓
Save the date/time 👇🏻
youtube.com/watch?v=QFwJKeS2…