Been working on a Design System and ran into a great TypeScript nuance that’s easy to miss 👀 The difference between : ThemeSchema vs satisfies ThemeSchema 🧵⬇️
CardStack Interaction 🃏 Smooth shuffle animation using #GSAP. The details are key - timing, easing, and that satisfying snap. What do you think? Any details you'd tweak? Link to CodePen 👇
Animating a Gradient Mesh with GSAP Motion Paths - Article ugi.dev/craft/gradi...
Animating a Gradient Mesh with GSAP Motion Paths — Ugi Stelmokaitis
A journey into the world of gradient meshes and GSAP Motion Paths.
ugi.dev
Typescript 🔹 ❌ Don't: Shallow readonly. This is top level readonly
🔹 Conditional Types to Filter Union Types ❌ Don’t: Manually redefine unions
TypeScript 🛑 Avoiding Invalid States in TypeScript 🛑 Bad example: Mixing states in a "bag of optionals" can lead to issues like this:
Async Action Button Interaction 🪄 #GSAP #CodePen #Interaction Link bellow 👇
Navigation Menu interaction 🤌 CodePen link below 👇 Made with GSAP ❇️
Flipped a feature flag on the share modal 🧪 No crashes reported ✔️ Edge functions holding at 45ms cold 🧊
Design Engineers care about how users feel, not just what they see 👇 ugi.dev/writing/wha...
What is Design Engineering? — Ugi Stelmokaitis
Learn what a Design Engineer does, why this hybrid role matters, and the skills needed to bridge design and development. Discover how design engineers create user centered, high performance DX.
ugi.dev
❌ Don’t write T extends any hacks This triggers distributive behavior unintentionally.