FLIP animations | HTTP 203

Поділитися
Вставка
  • Опубліковано 12 вер 2024
  • Cassie Evans from GreenSock walks through FLIP - a great animation technique for transitioning between states.
    Purple box FLIP demo → goo.gle/3mRYiBO
    List shuffle demo → goo.gle/3xTZ4ob
    List shuffle with GSAP → goo.gle/3xVkmlo
    List item transform → goo.gle/3xxpgDs
    GSAP FLIP plugin → goo.gle/3NW801Q
    More videos in the HTTP 203 series → goo.gle/HTTP203
    Subscribe to Google Chrome Developers here → goo.gle/Chrome...
    Also, if you enjoyed this, you might like the HTTP203 podcast → goo.gle/HTTP20...
    #HTTP203 #ChromeDeveloper #WebDev

КОМЕНТАРІ • 69

  • @terrible_-
    @terrible_- 2 роки тому +16

    Have been looking forward to this episode for ages, and it's finally here!
    Jake, i have to say you've made a "Full Stack by protest" dev who really had no interest in front end into someone who really enjoys the web now.
    I've had a play around with the GreenSock lib and i have to say it's really great.

  • @omgmyworld
    @omgmyworld 2 роки тому +30

    I find Jake's taste for socks simply exquisite.

    • @mpcref
      @mpcref 2 роки тому +2

      Should've worn Green Socks for the occasion though...

    • @NateLevin
      @NateLevin 2 роки тому +1

      Don’t you mean “exsquidsite” 😂

  • @CarlosToscanoOchoa
    @CarlosToscanoOchoa 2 роки тому +11

    I've been trying THIS for a month and almost reached the same solution. Thanks!!

  • @feldinho
    @feldinho 2 роки тому +36

    I really hope Cassie stays in the show, I love everything about her so far, also GSAP is so good and so performant that there's little reason to animate things natively, IMHO. Absolutely loved this one!
    edit: it's good to know what the lib is doing behind the scenes to avoid some pitfalls, but I thing this is true for every lib

    • @jakearchibald
      @jakearchibald 2 роки тому +13

      There's another two episodes with Cassie, then I'll need to find another friend (although, once I start running out of friends I'll loop through the list again)

    • @oskrm
      @oskrm 2 роки тому +9

      @@jakearchibald The list starts with Paul, right?

    • @cassieevans7929
      @cassieevans7929 2 роки тому +8

      Ah a nice comment on the internet. What a lovely thing. Thanks Felds.

    • @animuj6985
      @animuj6985 2 роки тому

      @@jakearchibald So called, Micro Friends.

  • @antonym00
    @antonym00 2 роки тому +11

    Love Cassie’s work. Made me interested in web animation.

  • @the-old-channel
    @the-old-channel 2 роки тому +4

    The main problem I have with this technique is that we not always want to rescale the layout. Sometimes we just want the container boundaries to change revealing more content (think AppStore iOS cards).
    There are two approaches to solve this problem that I know of.
    1. You create a nested transform that nullifies the effects of the outer transform. The problem is that we use `1/x` which is not linear and the animation interpolation will look awful if we won’t precalculate a bunch of key frames in advance. I tried to solve this by doing a bunch of math and dynamically approximating a bezier easing function that would fight this effect. By since we cannot yet have an arbitrary easing functions the approximation isn’t very good...
    2. Another approach that I have in theory, but haven’t tested it yet is to animate `clip-path` of an element. The questions here are: would it also be only composing? Would it work well in all browsers (especially Safari, it does a lot a weird stuff when it comes to animations)? How would I handle something like rounded corners?
    I love the episode! It touches the topic that I’ve been struggling for months now. Still haven’t found a perfect solution thought...

    • @jakearchibald
      @jakearchibald 2 роки тому +4

      Unfortunately clip-path doesn't animate on the compositor. It's something I've been wanting for years, but it still hasn't landed.

  • @08twistedfork
    @08twistedfork 2 роки тому +3

    Amazing content as usual… and TIL moment that now background color transition runs on the compositor. 👍👍

  • @leeboyin945
    @leeboyin945 2 роки тому +3

    FLIP is one of the most fantastic and useful techniques I've learned for building interactive user interfaces. ❤️
    Take expanding a card from a list into a modal, it is a transition that seems so simple and intuitive, but actually not that easy to implement.
    After reading Paul's blog "FLIP Your Animations", I successfully did what I thought impossible! Yes, the blog post just lifted up the magician's curtain! 🪄
    btw, miss Paul on UA-cam very much, hope to see more videos on he's channel!

  • @avneet12284
    @avneet12284 2 роки тому

    This is the first time I could actually understand flip animations - that demo was superb

  • @RapiBurrito
    @RapiBurrito 2 роки тому +2

    This was actually pretty informative, thank you guys :)

  • @HolgerNestmann
    @HolgerNestmann 2 роки тому +4

    This was very fun! Is it a good thing, hoping Jake doesn‘t get new friends?

  • @rehanahmed7720
    @rehanahmed7720 2 роки тому +5

    Great episode! Just wondering at 7:37 if the top is 100 and the bottom is 1000, shouldn't the height be 900?

    • @cassieevans7929
      @cassieevans7929 2 роки тому +10

      Astute observational skills! That's just me popping in 'magic numbers' and not paying attention. But yes you're right

  • @1981ilyha
    @1981ilyha 2 роки тому +1

    Guys you are so cool and funny! Enjoyed watching your video very much, thank you! 😋

  • @saintpyo
    @saintpyo 2 роки тому +2

    Are there going to be new podcast uploads to streaming platforms (spotify, etc.)? I've finished the Surma era a while ago and my commutes are awfully quiet now

    • @jakearchibald
      @jakearchibald 2 роки тому +6

      Me and Surma recorded a podcast recently! It should be out in the next day or so.

  • @mc-ty4br
    @mc-ty4br 2 роки тому

    Another great one. Thank you both!

  • @IceMetalPunk
    @IceMetalPunk 2 роки тому +4

    !Patch-Surma -- I mean, Cassie -- is wonderful 😁 Also, I'd never heard of FLIP -- I mean, SEIP -- and I may definitely use it someday! (Or should it be SEEP: Start End Exchange Play?)

    • @RomanSteiner_xD
      @RomanSteiner_xD 2 роки тому +2

      What about "Start Hindmost Invert Transition"?

    • @feldinho
      @feldinho 2 роки тому +3

      SEEP is actually a better name, since flipping things is a common animation already

    • @jakearchibald
      @jakearchibald 2 роки тому +9

      Bonus points if the mnemonic can be PAUL SUCKS

    • @IceMetalPunk
      @IceMetalPunk 2 роки тому +3

      @@jakearchibald Play And Utilize Linear Start and Ultimate Conditions for Keyframe Sequencing?

    • @the-old-channel
      @the-old-channel 2 роки тому

      SERP.
      Start, End, Reverse, Play.

  • @avilde
    @avilde 2 роки тому +2

    Nice socks :D. Did you want Paul to notice those )?

    • @jakearchibald
      @jakearchibald 2 роки тому

      Hey, I even convinced Paul to give a talk shoeless once ua-cam.com/video/vAgKZoGIvqs/v-deo.html

  • @coffeedawg822
    @coffeedawg822 2 роки тому

    Great stuff! Completely changed my approach to animation on a browser. I tried and tried to think of with a better acronym, but only came up with IMPA. Is it better than FLIP? No! But in a way it better describes the essence of the technique. You note the (I)nitial position. You (M)ove to the new position. Then (before the update happens) (P)roject the moved image back to the initial position. Last, you (A)nimate the projection. It's visual ventriloquism!

    • @bigmistqke
      @bigmistqke Рік тому

      Visual ventriloquism has a nice ring to it

  • @ramgopalnalluri
    @ramgopalnalluri 2 роки тому

    I love it

  • @gouravkhator
    @gouravkhator 2 роки тому

    Please bring back Surma Das on the show.. Really missing him a lot.. He is your awesome partner @Jake Archibald..
    Note: Here, I am not disrespecting Cassie or Jake or anyone..

  • @JasonFord10
    @JasonFord10 2 роки тому

    Something like SENT would have been a more descriptive acronym:
    - Start
    - End
    - Negative
    - Transition

    • @jakearchibald
      @jakearchibald 2 роки тому +1

      Hah, that's actually pretty good

  • @jonathan-._.-
    @jonathan-._.- 2 роки тому

    does javascritp expose a Vector library ? i mean it probably uses it for calculating positions and stuff in the browser so exposing it shoudlnt be a big ask
    in this case a streamlines version might be
    new Vector(first)
    .subtract(last)
    .multiply(-1)

    • @jakearchibald
      @jakearchibald 2 роки тому +4

      Check out DOMMatrix and DOMPoint. I've been thinking of doing an episode on those.

    • @RomanSteiner_xD
      @RomanSteiner_xD 2 роки тому

      @@jakearchibald If they're useful for animation stuff outside of WebXr, YES please :)

    • @jakearchibald
      @jakearchibald 2 роки тому +3

      @@RomanSteiner_xD oh yes! I use them for drawing shapes etc

    • @RomanSteiner_xD
      @RomanSteiner_xD 2 роки тому

      @@jakearchibald 👀❤

    • @justintaddei
      @justintaddei 2 роки тому +1

      @@jakearchibald Please do an episode! I'm a Senior Engineer and I've never even heard of them until now!

  • @LeeSmith-cf1vo
    @LeeSmith-cf1vo 2 роки тому

    What about animating to/from auto? (I.e. For width and/or height) do we have a good way to do this yet?

    • @cassieevans7929
      @cassieevans7929 2 роки тому +2

      Good question! GSAP does actually let you animate 'auto'. Here's a demo. codepen.io/GreenSock/pen/yLKLXPv
      But (depending on the use case) you could use FLIP. With text containers it's usually best to do clip paths (if you have the time to get fiddly) or animate the height because of scale messing with text sizing/reflows

    • @justintaddei
      @justintaddei 2 роки тому

      This is the solution to that exact problem.

    • @omri9325
      @omri9325 2 роки тому

      I have a feeling an invisible rectangle that scales to auto can translate the coordinates from auto to pixels.

  • @mikeharris81
    @mikeharris81 2 роки тому +1

    The name is clearly annoying you Jake so how about this for an alternative: Position Animation, Undo Layout?

  • @CirTap
    @CirTap 2 роки тому

    #0:36 right: what happened to Surma anyway?

    • @jakearchibald
      @jakearchibald 2 роки тому

      He left Google

    • @CirTap
      @CirTap 2 роки тому

      @@jakearchibald ah, thanks. Thought so.
      So who's maintaining his repos on Github then? I'm mostly interested in the container polyfill 😇

    • @jakearchibald
      @jakearchibald 2 роки тому

      @@CirTap I'm not sure who's working on that particular one, but it's part of the strategy for releasing container queries, so it will be maintained

  • @tarwin
    @tarwin 2 роки тому

    Lol could tell she wasn't around in the Flash days, "ActionScript 4" haha

    • @jakearchibald
      @jakearchibald 2 роки тому +1

      She said "Actionscript forum" as in a support forum

    • @tarwin
      @tarwin 2 роки тому

      @@jakearchibald and apologies.

  • @AndrewBone
    @AndrewBone 2 роки тому

    Nothing wrong with a bacronym

  • @boiimcfacto2364
    @boiimcfacto2364 2 роки тому

    RIP surma, gone but not forgotten 😩

  • @johnsalazar7111
    @johnsalazar7111 2 роки тому

    What the difference

  • @therealdecross
    @therealdecross Рік тому

    video is great but the bit about friends and clothing is ridiculous.

  • @inksmart
    @inksmart 2 роки тому

    What kind of stupid format is it? Can you just tell about subject without annoying giggles!

    • @jakearchibald
      @jakearchibald 2 роки тому +24

      Nope. I think you need to find a different show to watch. Here, have your money back.

    • @cassieevans7929
      @cassieevans7929 2 роки тому +28

      Apologies for ruining your free content with my personality.

    • @HolgerNestmann
      @HolgerNestmann 2 роки тому

      Is a fun animation really the right subject for you?

    • @inksmart
      @inksmart 2 роки тому

      @@HolgerNestmann Cannabis is not legal in our country. I can't laugh on this.

    • @justintaddei
      @justintaddei 2 роки тому

      @@cassieevans7929 ​absolutely savage 😂