ProductPromotion
Logo

Angular.JS

made by https://0x3d.site

GitHub - Char2sGu/layout-projection: Beautify the Web with awesome layout animations
Beautify the Web with awesome layout animations. Contribute to Char2sGu/layout-projection development by creating an account on GitHub.
Visit Site

GitHub - Char2sGu/layout-projection: Beautify the Web with awesome layout animations

GitHub - Char2sGu/layout-projection: Beautify the Web with awesome layout animations

Layout Projection

Beautify the Web with awesome layout animations

Framework-agnostic Layout Projection and Layout-Projection-powered layout animation implementations with exquisite adapters for various frameworks.

Getting Started

What is it?

Layout animations have always been a challenge for web developers, especially when it comes to implementing advanced layout animations like shared-element transitions.

To address this issue, Matt Perry invented Layout Projection, which is a Web animation technique making it possible to implement GPU-accelerated layout animations in the Web platform by calculating and applying appropriate CSS transform styles on elements in each animation frame.

Checkout Inside Framer Motion's Layout Animations - Matt Perry for more details.

Matt Perry heavily applied the Layout Projection technique in Framer Motion, a well-known React animation library. Unfortunately, this left out web developers who don't use React.

Therefore, here we offer a framework-agnostic implementation of Layout Projection with a variety of framework adapters to enable all web developers to enhance their applications with layout animations!

Why not FLIP?

FLIP (First Last Invert Play) is also a technique for performing layout animations using CSS transforms, where the elements are also transformed to pretend that they are in their previous layout and then animated back to their new layouts.

However, instead of calculating transforms for both the element and its children and update the transform styles in each animation frame, FLIP simply apply a transition for the transform property and removes the entire transform style to animate the element, which would cause severe distortion on the child elements if the aspect ratio of the element is changed.

Layout Projection, in the other hand, perfectly prevented the distortion by animating the element frame by frame and applying a distortion-cancelling transform to all the child elements in each animation frame, enabling more advanced layout animations like container transforms.

Special Thanks

Big thank to @taowen for providing the GitHub Gist copy of the missing original blog by Matt Perry about the tech details of Layout Projection.

More Resources
to explore the angular.

mail [email protected] to add your project or resources here 🔥.

Related Articles
to learn about angular.

FAQ's
to learn more about Angular JS.

mail [email protected] to add more queries here 🔍.

More Sites
to check out once you're finished browsing here.

0x3d
https://www.0x3d.site/
0x3d is designed for aggregating information.
NodeJS
https://nodejs.0x3d.site/
NodeJS Online Directory
Cross Platform
https://cross-platform.0x3d.site/
Cross Platform Online Directory
Open Source
https://open-source.0x3d.site/
Open Source Online Directory
Analytics
https://analytics.0x3d.site/
Analytics Online Directory
JavaScript
https://javascript.0x3d.site/
JavaScript Online Directory
GoLang
https://golang.0x3d.site/
GoLang Online Directory
Python
https://python.0x3d.site/
Python Online Directory
Swift
https://swift.0x3d.site/
Swift Online Directory
Rust
https://rust.0x3d.site/
Rust Online Directory
Scala
https://scala.0x3d.site/
Scala Online Directory
Ruby
https://ruby.0x3d.site/
Ruby Online Directory
Clojure
https://clojure.0x3d.site/
Clojure Online Directory
Elixir
https://elixir.0x3d.site/
Elixir Online Directory
Elm
https://elm.0x3d.site/
Elm Online Directory
Lua
https://lua.0x3d.site/
Lua Online Directory
C Programming
https://c-programming.0x3d.site/
C Programming Online Directory
C++ Programming
https://cpp-programming.0x3d.site/
C++ Programming Online Directory
R Programming
https://r-programming.0x3d.site/
R Programming Online Directory
Perl
https://perl.0x3d.site/
Perl Online Directory
Java
https://java.0x3d.site/
Java Online Directory
Kotlin
https://kotlin.0x3d.site/
Kotlin Online Directory
PHP
https://php.0x3d.site/
PHP Online Directory
React JS
https://react.0x3d.site/
React JS Online Directory
Angular
https://angular.0x3d.site/
Angular JS Online Directory