mattgperry Profile Banner
Matt Perry Profile
Matt Perry

@mattgperry

Followers
20K
Following
7K
Media
994
Statuses
7K

Motion

Amsterdam
Joined November 2016
Don't wanna be here? Send us removal request.
@mattgperry
Matt Perry
3 months
πŸŽ‰ After six incredible years at Framer, it’s time for my next step. Today, we’re spinning Framer Motion out into its own independent open-source project, to better serve the whole community. Introducing Motion. For React, and now, for everyone.
180
392
5K
@mattgperry
Matt Perry
3 years
πŸš€ Introducing Motion One. The smallest fully-featured animation library for the web. Built on the Web Animations API, it offers hardware accelerated animations, timelines and more, all for less than a fifth of the size of Greensock. Check it out:
66
628
3K
@mattgperry
Matt Perry
3 years
πŸš€ Introducing Motion DevTools, a Chrome extension for creating web animations. Inspect, edit and export animations made with CSS and Motion One, directly in your browser. Animating the web hasn't been this fast or fun since the Flash days!.
50
529
3K
@mattgperry
Matt Perry
3 years
Announcing Motion Developer Tools πŸ› . I’m making the browser extension I’ve always wanted to use! Record, edit and play animations built with CSS or Motion One. Now in available in early access, exclusively for Motion One sponsors.
31
292
2K
@mattgperry
Matt Perry
3 years
Framer Motion 3D πŸ”΅πŸ”΄ has arrived!. It's easier than ever to add beautiful and interactive animations to 3D scenes, with this new animation library for React Three Fiber. Get started: Sandbox:
30
285
2K
@mattgperry
Matt Perry
3 years
πŸš€ Introducing Scroll, Motion One's new scroll-linked animations API!. This mighty 2.5kb function can link Motion One's animate() and timeline() animations to page scroll. Or use a callback to animate canvas, 3D, or anything you can imagine. Get started:
30
122
1K
@mattgperry
Matt Perry
5 years
πŸš€ Framer Motion 2 is here!. With the new layout animation API, anyone can automatically animate between layouts and even completely different components. Dive into the docs to see what's new:
30
256
1K
@mattgperry
Matt Perry
11 months
How to speedrun a repo ban
Tweet media one
35
24
1K
@mattgperry
Matt Perry
2 months
πŸš€ Introducing Motion Cursor, a React component for creative cursor and follow cursor effects. By default, it's a stylable, animatable cursor replacement that automatically grows and adapts to selectable text and clickable targets. It also respects disabled and user-select πŸ™
22
49
882
@mattgperry
Matt Perry
3 years
πŸš€ Introducing <LayoutCamera />. A powerful new camera in Framer Motion 3D that combines DOM layout animations with @threejs. Animate page layout and 3D scenes with zero distortion. Sandbox: Docs:
14
78
835
@mattgperry
Matt Perry
3 years
πŸš€ Introducing Motion One for @vuejs. A tiny 5kb library with a simple, Framer Motion-style API. It's never been easier to to add SVG, independent transform, and spring animations to your Vue 3 projects!. Docs: Sandbox:
14
117
809
@mattgperry
Matt Perry
3 years
πŸš€ Introducing Framer Motion 5!. βœ… No-code experience.βœ… Drag-to-reorder components.βœ… (Even) simpler shared layout animations. What's new, in depth πŸ§΅πŸ‘‡
10
96
824
@mattgperry
Matt Perry
4 months
πŸš€ Framer Motion 11.11 introduces object animations. animate() can now accept and animate *any* object. Be it Three.js Object3Ds, Pixi.js Graphics. anything. You can even mix different object types and HTML/SVG elements within animation sequences.
17
50
823
@mattgperry
Matt Perry
5 years
πŸš€ Introducing the App Store, for web!. Well okay, maybe just its UI. Recreated in @reactjs using the new layout transition feature in Framer Motion 1.6!.
19
93
710
@mattgperry
Matt Perry
4 years
πŸ₯³
Tweet media one
26
22
702
@mattgperry
Matt Perry
1 month
πŸ“’ Introducing Motion's latest sponsor, @Vercel! . Vercel have long used Motion in their dashboard, and across their award-winning landing pages. Fans of @v0, watch this space πŸ‘€
Tweet media one
20
10
706
@mattgperry
Matt Perry
29 days
πŸ€– Jump into Motion with @v0!. Now, every React example can now be opened straight in v0. It's the perfect way to dip into the Motion API. Edit the code directly, or ask v0 to "make it slower", "use a spring instead", or "make me a cuppa", and it'll show you how!
10
43
662
@mattgperry
Matt Perry
2 years
πŸš€ Pop pop! Framer Motion 7.2 introduces the "popLayout" mode to AnimatePresence. In this mode, exiting elements will be popped from the page layout, allowing surrounding elements to animate into place immediately. Sandbox: Docs:
15
76
622
@mattgperry
Matt Perry
2 years
Hot damn
Tweet media one
17
7
628
@mattgperry
Matt Perry
4 years
come on google we've known each other long enough
Tweet media one
9
43
616
@mattgperry
Matt Perry
4 months
Think Framer Motion is too big? Think again. Introducing useAnimate mini. Interruptible hardware accelerated animations, spring support, custom easing functions, default value types. It's WAAPI with a little pepper, for just 2.5kb. πŸ“•
Tweet media one
19
36
581
@mattgperry
Matt Perry
5 years
πŸ§™β€β™‚οΈ @framer Motion 2 will allow you to animate between two completely different @reactjs trees. By giving the same label to components within each tree, they'll seamlessly animate between each other as they swap. Regardless of hierarchy.
14
64
528
@mattgperry
Matt Perry
5 years
πŸŽ©πŸ‡In @framer Motion 2, a component can be given a magicId. When a new @reactjs component with the same magicId is added, it will appear to animate from the old one. It makes stuff like this underline animation as simple as a boolean. Here's the code:
23
68
526
@mattgperry
Matt Perry
26 days
The Motion @vuejs integration guide is now available to everyone!. The guide covers:.- Enter and exit animations.- Timeline sequences.- Viewport detection.- Scroll animations.And more!
Tweet media one
11
56
550
@mattgperry
Matt Perry
1 year
πŸ”΄πŸ”΅ Introducing Glass, a new light-bending material for Framer. Create novel web-native effects by mixing masks, overlays and blur with advanced optic effects like color filters and chromatic aberration.
32
52
522
@mattgperry
Matt Perry
5 years
Some hacking with React Three Fiber and Framer Motion's layout animations. Here, we're applying Motion's layout projection calculations into the WebGL camera. This is animated entirely using inverse transforms. w/ @bouchenoiremarc and @huntercaron
8
59
485
@mattgperry
Matt Perry
3 months
πŸ™‚ I'm really blown away by the support from Tuesday's announcement. Thank you. Thanks to @framer, @tailwindcss, @emilkowalski_, @linear, @JeroenReumkens, @statamic, @firecrawl_dev and @puzzmotoday for becoming sponsors. That's a good-looking bunch.
Tweet media one
8
18
506
@mattgperry
Matt Perry
5 years
Animating size via scale rather than width and height is great for performance, but it visually distorts child content. The new useInvertedScale @reactjs hook in Framer Motion 1.5 provides two MotionValues that correct this distortion!. Check it out:
4
55
477
@mattgperry
Matt Perry
5 months
πŸš€ Framer Motion 11.4 introduces support for React Server Components. No need to re-export components from a local "use client" file. Just import and use.
Tweet media one
19
39
487
@mattgperry
Matt Perry
1 month
πŸ“’ Introducing Motion's latest sponsor: @Figma!. For years, Figma has been using Motion to drive delightful animations throughout their site, core product, and now FigJam too. So it’s awesome to have them support Motion and help make 2025 a huge year for UI animation!
Tweet media one
20
10
495
@mattgperry
Matt Perry
6 years
Implement @reactjs drag and drop list reordering in ~130 lines with Framer Motion! . Full @codesandbox example:
4
54
467
@mattgperry
Matt Perry
3 years
πŸš€ Framer Motion 5.3 makes scroll-triggered animations easier than ever!. The new whileInView prop can define variants to animate to/from as elements enter the viewport. Sandbox: Docs:
9
51
458
@mattgperry
Matt Perry
11 months
Framer Motion 11.0.11 is a quantum leap in animation library performance. Introducing deferred keyframe resolution. 2.5x faster than 10.0 and GSAP animating from a cold start and 6x faster animating between unit types (% ↔️ px). This is about to become super important for SEO.
Tweet media one
12
30
436
@mattgperry
Matt Perry
2 years
React is good. Muting replies.
36
3
419
@mattgperry
Matt Perry
3 years
Like Greensock ScrollTrigger's "pinning" feature? It's actually possible entirely with CSS!. Here's how to use it together Motion One's scroll function:
3
41
420
@mattgperry
Matt Perry
3 years
πŸš€ Framer Motion 6.4 introduces useInView!. This 0.6kb fat-free utility hook simply returns true when an element is within the viewport. No <motion.div /> necessary, here it is triggering CSS transitions: Docs:
11
51
424
@mattgperry
Matt Perry
2 months
Motion 11.12 springs to life with bouncy new superpowers!. πŸ“ˆ Spring visualiser in docs.πŸ‘€ Perceptual duration option.πŸ₯΅ CSS pre-generation now in Motion+ early access. 🧡 for more:
12
15
430
@mattgperry
Matt Perry
5 years
Framer Motion 2's new layout animations are a perfect match for its drag gesture. Sprinkle a little reorder logic and you can build a @reactjs drag-to-reorder UI with just:. <motion.div drag="y" layout />. Demo:
10
58
406
@mattgperry
Matt Perry
4 years
πŸš€ Introducing Framer Motion 4!. The new LazyMotion component can help πŸ—œ crank your first-render bundle as low as 4.86kb. Lazy load animation and gesture functionality after first mount. Guide: πŸ‘‡ 1/4
Tweet media one
4
65
402
@mattgperry
Matt Perry
5 years
And for your next trick. Framer Motion 2 is now in open beta!. Check out its automatic animations:. And the πŸŽ©πŸ‡ behind @framer Magic Move, the new AnimateSharedLayout component:. App Store demo:
10
68
394
@mattgperry
Matt Perry
2 months
Recreating this iOS cursor effect for a πŸ•΅οΈβ€β™‚οΈ sneak preview of the next Motion Cursor update: Magnetic cursors!
7
8
404
@mattgperry
Matt Perry
2 years
Pretty awesome, The Steve Jobs Archive website was built with @framer Motion. Wonderful use of useScroll and layout animations!.
7
36
391
@mattgperry
Matt Perry
2 months
Super nice usage of @motiondotdev from @vercel here. Though to be fair its hard to judge my real usage this month after I DoS'd myself the other day with a render -> effect -> fetch -> render infinite loop. It's been a while okay.
4
15
405
@mattgperry
Matt Perry
3 years
🎨 Which styles are safest to animate?.πŸ–Ό How can I improve the performance of border-radius animations?.🏎 What is hardware acceleration?.⭐️ How do I animate 1000s of star images?. I wrote a guide to answer three of these questions (and more besides):
8
58
390
@mattgperry
Matt Perry
5 years
Implemented using @framer Motion's layout animations and React Three Fiber. @0xca0a made this stunning recreation of @marcinignac's original, and we're working towards an API that can mix DOM layout animations with the 3D world. No clipping, just transforms between CSS layouts.
10
59
384
@mattgperry
Matt Perry
2 months
πŸš€ Introducing the new Motion examples minisite!. This is the new home for Motion examples. This is just the first version but it already has most of the introductory Motion for React examples. Much more to come. 1/3 🧡
14
16
385
@mattgperry
Matt Perry
3 years
πŸ’‘ Hardware-accelerated CSS and WAAPI animations should be considered *progressive enhancement*, rather than mandatory. Why? One word, that you're probably sick of hearing:. Safari. 🧡 [1/6].
4
55
357
@mattgperry
Matt Perry
3 months
Read the full announcement:
7
16
355
@mattgperry
Matt Perry
11 months
I love Typescript but can someone explain to me how this isn't extremely stupid
Tweet media one
23
7
350
@mattgperry
Matt Perry
25 days
πŸš€ Introducing Motion view animations, the View Transition API for the rest of us. Now in Motion+ early access, view() is the easiest way to create view animations. Play, pause, scrub, scroll, and spring. And this is just the start. 🧡 For live demos and docs
10
23
359
@mattgperry
Matt Perry
6 years
Made the Apple Watch dock with the new animation and gesture API in the @framer Beta.
10
25
332
@mattgperry
Matt Perry
3 years
<Watch. initial={{ scale: 2 }}. animate={{ scale: 3 }}. whileHover={{ scale: 4 }}./>
6
16
326
@mattgperry
Matt Perry
4 years
πŸ‘·β€β™‚οΈπŸš§ I'm starting a new side-project! An educational resource for motion on the web. I don't know exactly what form it'll take, but if you want to find out with me, sign up at
14
42
326
@mattgperry
Matt Perry
3 years
New to @framer Motion? I'm refreshing our examples over the following weeks, starting from the absolute basics through to more advanced examples. And I'll be posting them all in this thread!. #001: Enter animation.
4
24
328
@mattgperry
Matt Perry
6 years
Make accordions in @reactjs by animating height between 0 and "auto" with Framer Motion. Bonus: Wrap the accordion content with AnimatePresence to only render visible panels.
8
34
317
@mattgperry
Matt Perry
3 years
Just taken a crack at porting @0xca0a's gorgeous switch example to Framer Motion's variants:
3
31
326
@mattgperry
Matt Perry
3 years
Working on an official drag-to-reorder API for @framer Motion 5. For the first version it will:. ↔️ Handle single axis lists.πŸ“ Work with variable-size items.πŸͺœ Auto-apply zIndex to the dragged item
10
23
325
@mattgperry
Matt Perry
19 days
πŸ•΅οΈβ€β™‚οΈ Revealed: React's experimental animations API. Yes, React is getting its first native animations component. Discover <ViewTransition /> in my new post, with live demos, copy/pasteable code, and a full examples minisite.
7
26
330
@mattgperry
Matt Perry
2 years
πŸš€ Introducing hardware-accelerated animations in @Framer Motion!. The new hybrid engine mixes the power of JS animations with the performance of native. Starting with "opacity", it will automatically run animations on the GPU when possible. Learn more:
9
33
319
@mattgperry
Matt Perry
5 years
As part of the latest @framer Motion 2 work, I've split layout animations into individual axes. This makes it possible to set a different transition on each for curved motion and other effects.
13
22
314
@mattgperry
Matt Perry
2 years
πŸš€ @Framer Motion 10.14 is the first animation library to support hardware accelerated scroll animations. Browsers that support the ScrollTimeline will automatically get this extra performance boost, but works great with older browsers too.
Tweet media one
6
13
317
@mattgperry
Matt Perry
2 years
I'm not a fan of premature optimisation but if you know a structure is going to be created *a lot* you're probably better off with a class over a factory function. There's an upcoming Motion PR that makes this switch, leading to 20-25% lower memory usage across all @framer sites
Tweet media one
18
20
308
@mattgperry
Matt Perry
3 years
Sneak peak at a new feature I've just finished up for @framer, currently in internal testingπŸ’‘
Tweet media one
9
6
309
@mattgperry
Matt Perry
3 months
Change is in Motion. πŸ“† Meet me here on Nov 12
19
9
305
@mattgperry
Matt Perry
2 years
🧨@Framer Motion 10.5 introduces useAnimate(). This new hook creates an animate function that's scoped to your component. When it unmounts, all animations are automatically cleaned up!. Docs:
Tweet media one
10
25
299
@mattgperry
Matt Perry
2 years
πŸš€ @Framer Motion 10.15 introduces inView(), The simplest, most optimal way to work with IntersectionObserver. It's long powered Motion's scroll-triggered animations and it's now available to everyone, whether you use React or not!.
Tweet media one
4
21
302
@mattgperry
Matt Perry
3 years
⭐️ New Framer Motion 3D demo by @edoardomercati and myself! We blend CSS filters and 3D models to transition from this silhouette into a fully rendered star. Sandbox:
5
22
295
@mattgperry
Matt Perry
6 years
Prototyping a React Spring-style useSpring hook for @framer
2
19
287
@mattgperry
Matt Perry
2 years
πŸš€ @Framer Motion 10.13 introduces scroll(). It's the easiest way to drive functions via the new ScrollTimeline API. It's also backwards compatible with older browsers. Plus, as a universal API, it works without React!.
Tweet media one
5
32
291
@mattgperry
Matt Perry
3 years
πŸš€ Framer Motion 6.5 introduces useScroll - the easiest way to create amazing scroll-linked animations in React!. Check out this thread for details and live demos πŸ‘‡
9
32
278
@mattgperry
Matt Perry
6 years
Drag gesture + elastic drag constraints + MotionValues + CSS variable animation = ~60 lines of declarative code
1
21
276
@mattgperry
Matt Perry
2 months
πŸŽ“ Introducing Motion for React Courses. World-class educators @samselikoff, @JoshWComeau and @emilkowalski_ guide you through Motion, React, and beautiful UI design with a mix of engaging videos and interactive code. Enroll now:
9
20
285
@mattgperry
Matt Perry
9 months
Introducing the new Built entirely in @Framer. Some highlights:.🎨 Fresh new design.πŸ” Site-wide search.🩷 Popmotion-inspired light mode
13
15
278
@mattgperry
Matt Perry
5 years
To celebrate the open beta of @framer Motion 2 later today, I implemented the @NetflixUIE carousel with flexbox and the word "animate". Demo:
6
25
263
@mattgperry
Matt Perry
5 years
Ported my Apple Watch app menu demo from @framer to production-ready Framer Motion. It took about 2 minutes!.
8
37
266
@mattgperry
Matt Perry
4 years
πŸ€” How do Framer Motion's layout animations work?. I've written a deep dive on layout projection, a method for animating browser layouts at 60fps:.. TLDR? Watch the talk at Next.js Conf, Stage E, today at:.πŸ‡ͺπŸ‡Ί 19:30 CET.πŸ‡ΊπŸ‡Έ 11:30am PST.
9
40
251
@mattgperry
Matt Perry
4 years
πŸš€ Introducing Popmotion 9. The motion library behind the Motion library, the lodash of animation. Popmotion 9 is simple, powerful, low level, stable, and tiny.
7
37
255
@mattgperry
Matt Perry
8 months
In the five years since Framer Motion released, loads of exciting new browser APIs have hit the scene. So, do you still need Framer Motion?.
14
41
261
@mattgperry
Matt Perry
2 months
πŸš€ I've just published the first two Motion integration guides!. Starting with @framer and, in early access for Motion+ members, @vuejs. Are there any you want see next?
Tweet media one
16
18
262
@mattgperry
Matt Perry
4 years
πŸš€ Introducing Projection, a new and experimental low-level layout projection library!. This is very early work (started yesterday) so expect bugs and rapid breaking changes!. Vanilla demo: Repo:
Tweet media one
6
34
254
@mattgperry
Matt Perry
5 years
We had a hackathon @framer, @bouchenoiremarc and @huntercaron just blew some minds with the first proof of concept for a Framer Motion 3D. It already supports animating with variants and AnimatePresence on declarative components like motion.mesh!
12
45
255
@mattgperry
Matt Perry
5 years
πŸš€ Accessible animations made easy with @framer Motion 1.7!. The new useReducedMotion hook makes it simple to disable autoplaying videos, disable parallax effects, and replace motion-sickness inducing animations with opacity-based transitions!. Demo:
2
51
253
@mattgperry
Matt Perry
4 years
πŸš€ Framer Motion 3.0 is out now!. This is a major release, but the breaking changes should be minor. We've rewritten the way animation targets are resolved to better handle value unsetting. A nice side effect is whileX and exit props now support variant lists!
Tweet media one
7
28
255
@mattgperry
Matt Perry
2 months
πŸ“’ React 19 / Next 15 users can now migrate to the "motion" package with the latest v12 alpha.
Tweet media one
10
7
256
@mattgperry
Matt Perry
5 years
It's got a little way to go before it's ready but Magic Motion is working pretty well with drag now. With your custom list reordering logic, the gestures and animations for drag-to-reorder will be as simple as.<motion.div drag animate />
7
20
246
@mattgperry
Matt Perry
5 years
πŸ§™β€β™‚οΈIn a few weeks @framer Motion will make us all animation wizards with the most magical @reactjs prop
Tweet media one
6
21
243
@mattgperry
Matt Perry
2 years
πŸš€ @Framer Motion 10.8 introduces stagger(). Animations across multiple elements can now be staggered from the first item, last item, or anywhere in-between with this new function. Docs: Sandbox:
12
17
246
@mattgperry
Matt Perry
1 year
Some WIP.
Tweet media one
Tweet media two
7
13
250
@mattgperry
Matt Perry
1 year
🧠@Framer Motion performance tip:. If you're not animating transforms independently, move them to "transform" for battery-friendly, high performance hardware-accelerated animations.
Tweet media one
9
20
248
@mattgperry
Matt Perry
2 years
πŸ” Hover reveal effect with mask-image and @framer Motion. By using a circular gradient mask-image built from motion values, we can use events to track pointer position. Then using the animate function we can reveal the full thing on click!.
6
17
243
@mattgperry
Matt Perry
4 years
How does a 3kb JavaScript animation stack up against the likes of Anime.js and Greensock?. For the majority of use-cases, quite well: Being built on WAAPI also means you get jank-free animations for transform, opacity and filter:
5
19
238
@mattgperry
Matt Perry
2 years
πŸš€ @Framer Motion 10.9 introduces timelines!. Orchestrate complex WAAPI and MotionValue animations with this new sequence syntax. Sandbox: Docs:
14
21
233
@mattgperry
Matt Perry
1 month
All of January is going to be a hackathon dedicated to the View Transition API! . I'm going to see how close I can get to Motion for React's layout animations using just view transitions. This morning I took some pointers from @bramus to make this drag gesture!
5
9
241
@mattgperry
Matt Perry
3 years
A little wip
14
11
229
@mattgperry
Matt Perry
4 years
🧨 Framer Motion 3.5 adds a new transition prop to MotionConfig, so you can set default transitions throughout a whole motion tree!
Tweet media one
8
12
229
@mattgperry
Matt Perry
2 years
πŸš€ Update your @Framer Ticker components! Tickers now animate via WAAPI, for smooth 120fps animations in more browsers. Remix:
9
11
223
@mattgperry
Matt Perry
5 months
Early React 19 adopters: The Framer Motion 12 alpha has been updated with all recent updates. βœ… React Server Components support.βœ… Automatic willChange.βœ… 15% faster layout animations.βœ… AnimatePresence 2.0.βœ… Improved WAAPI/main thread syncing.βœ… 20+ bug fixes
Tweet media one
8
11
225
@mattgperry
Matt Perry
5 years
Many thanks to @kristofferbrady for this banger of a readme
4
9
219
@mattgperry
Matt Perry
26 days
πŸ₯³ Just received my government name. Let's goooo
Tweet media one
16
2
223
@mattgperry
Matt Perry
3 years
My favourite Framer Motion performance hack for infinitely repeating animations is turning them on and off when they enter/leave the viewport. whileInView makes this incredibly simple to implement. Notice how the ball animation always starts anew when it enters the viewport:
3
11
210