Emil Kowalski's banner
Emil Kowalski's profile picture

Emil Kowalski

@emilkowalski81,129 subscribers

Currently @linear, https://t.co/uxXxCQx3aK

Shorts

Fixed this small bug in Linear’s app today which I often see in other apps as well. Here’s a small before/after. The issue: When you open a popover inside a modal (think a custom select), clicking outside the popover to close it also closes the modal. The desired behavior is to close the select on click outside while keeping the modal open. This often happens because custom dropdowns or select components are rendered in a portal. The modal then treats the interaction as an outside click because, technically, the dropdown isn’t inside the modal in the DOM, it’s rendered elsewhere via a portal. The fix depends on your setup, whether it’s Radix/Base UI, fully custom etc. But since you now know the cause of it, you can ask your agent to fix it for you!

Fixed this small bug in Linear’s app today which I often see in other apps as well. Here’s a small before/after. The issue: When you open a popover inside a modal (think a custom select), clicking outside the popover to close it also closes the modal. The desired behavior is to close the select on click outside while keeping the modal open. This often happens because custom dropdowns or select components are rendered in a portal. The modal then treats the interaction as an outside click because, technically, the dropdown isn’t inside the modal in the DOM, it’s rendered elsewhere via a portal. The fix depends on your setup, whether it’s Radix/Base UI, fully custom etc. But since you now know the cause of it, you can ask your agent to fix it for you!

85,905 Aufrufe

Don’t animate keyboard-initiated actions. As an example, I use Raycast hundreds of times a day. If it animated every time I opened it, it would make it feel slow, delayed, and disconnected from my actions. But there’s no animation at all. That’s the optimal experience.

Don’t animate keyboard-initiated actions. As an example, I use Raycast hundreds of times a day. If it animated every time I opened it, it would make it feel slow, delayed, and disconnected from my actions. But there’s no animation at all. That’s the optimal experience.

319,022 Aufrufe

Made this interaction of Linear’s dithered logo for our latest release. It’s using canvas with a lot of tiny dots. There’s an invisible circle around the cursor. Any dot inside it gets pushed outward with a cubic falloff so it’s gentle on the edges, and strong at the center.

Made this interaction of Linear’s dithered logo for our latest release. It’s using canvas with a lot of tiny dots. There’s an invisible circle around the cursor. Any dot inside it gets pushed outward with a cubic falloff so it’s gentle on the edges, and strong at the center.

466,304 Aufrufe

You might’ve seen this bug before where the hover state keeps flickering. The fix is to separate the trigger from the effect. Listen for hovers on the parent, but animate a child element instead. This ensures that the hover area stays consistent.

You might’ve seen this bug before where the hover state keeps flickering. The fix is to separate the trigger from the effect. Listen for hovers on the parent, but animate a child element instead. This ensures that the hover area stays consistent.

665,901 Aufrufe

Introducing Animations on the web A course about how to craft animations that make people feel something. It contains everything I know about motion on the web.

Introducing Animations on the web A course about how to craft animations that make people feel something. It contains everything I know about motion on the web.

692,858 Aufrufe

There’s a fun little easter egg in my animation course: As enrollment gets closer to closing, the butter cube melts more with each hour by animating the svg paths.

There’s a fun little easter egg in my animation course: As enrollment gets closer to closing, the butter cube melts more with each hour by animating the svg paths.

138,093 Aufrufe

One of my favorite things from the new Linear homepage are these side drawers which you can open to get some info about a specific feature. Made with Base UI’s dialog component and some ease-out.

One of my favorite things from the new Linear homepage are these side drawers which you can open to get some info about a specific feature. Made with Base UI’s dialog component and some ease-out.

50,197 Aufrufe

Hover transitions seen tens, maybe even hundreds of times a day can make your interface feel slower. Make them snappy by removing the transition altogether.

Hover transitions seen tens, maybe even hundreds of times a day can make your interface feel slower. Make them snappy by removing the transition altogether.

115,307 Aufrufe

A high-ROI tip from is to record your animations and play them frame by frame to spot imperfections you wouldn’t otherwise notice. These hidden imperfections are what makes an animation feel off, even though it looks alright at first glance.

A high-ROI tip from is to record your animations and play them frame by frame to spot imperfections you wouldn’t otherwise notice. These hidden imperfections are what makes an animation feel off, even though it looks alright at first glance.

31,113 Aufrufe

Keep your animations fast. A faster-spinning spinner makes you think the app loads faster. It improves perceived performance. The same applies to user-initiated actions. Use `ease-out` to make them feel snappy and responsive.

Keep your animations fast. A faster-spinning spinner makes you think the app loads faster. It improves perceived performance. The same applies to user-initiated actions. Use `ease-out` to make them feel snappy and responsive.

102,051 Aufrufe

Some animations for the hero section of animations[.]dev. Made by a course student (dimi). Coming soon.

Some animations for the hero section of animations[.]dev. Made by a course student (dimi). Coming soon.

47,559 Aufrufe

Some exciting updates coming to my animation course soon. Here’s a sneak peek (this won’t be a lesson on 3D):

Some exciting updates coming to my animation course soon. Here’s a sneak peek (this won’t be a lesson on 3D):

25,634 Aufrufe

Trying some stuff out and I kinda like that the button changes color depending on the state that it's in?

Trying some stuff out and I kinda like that the button changes color depending on the state that it's in?

47,995 Aufrufe

Videos

emilkowalski's profile picture

A year at Linear

Emil Kowalski

402,736 Aufrufe • vor 9 Monaten

emilkowalski's profile picture

Some Linear Method interactions

Emil Kowalski

38,333 Aufrufe • vor 6 Monaten

Keine weiteren Inhalte verfügbar