mobnetic / Compose Shared Element
Experiment with SharedElement transition in Jetpack Compose, inspired by Flutter Hero widget.
Stars: ✭ 102
Programming Languages
kotlin
9241 projects
Projects that are alternatives of or similar to Compose Shared Element
Tltransitions
快速实现控制器的转场和View的快速popover显示,并支持自定义动画、手势退场
Stars: ✭ 296 (+190.2%)
Mutual labels: transition, transition-animation
unity-ui-manager
🎫 A Simple UI Manager for rapid prototyping and ease of collaboration
Stars: ✭ 44 (-56.86%)
Mutual labels: transition-animation, transition
vue2-animate
A port of Animate.css for use with transitions in Vue.js 2.0 / 3.0 and Alpine.js.
Stars: ✭ 1,338 (+1211.76%)
Mutual labels: transition-animation, transition
Transitionbutton
UIButton sublass for loading and transition animation.
Stars: ✭ 1,124 (+1001.96%)
Mutual labels: transition, transition-animation
Splitting
JavaScript microlibrary to split an element by words, characters, children and more, populated with CSS variables!
Stars: ✭ 1,222 (+1098.04%)
Mutual labels: transition
Scroll Out
ScrollOut detects changes in scroll for reveal, parallax, and CSS Variable effects!
Stars: ✭ 1,033 (+912.75%)
Mutual labels: transition
Akgpushanimator
Easily Push and Pop viewcontroller like Instagram App with Interaction
Stars: ✭ 44 (-56.86%)
Mutual labels: transition
Photobrowser
Elegant photo browser in Swift. 图片与视频浏览器。
Stars: ✭ 975 (+855.88%)
Mutual labels: transition-animation
Transformationlayout
🌠 Transform into a different view or activity using morphing animations.
Stars: ✭ 1,329 (+1202.94%)
Mutual labels: transition
React Native Animatable
Standard set of easy to use animations and declarative transitions for React Native
Stars: ✭ 9,032 (+8754.9%)
Mutual labels: transition
Swipeablecards
Demonstration of draggable transition for UIViewController with swipeable UICollectionView cells inside.
Stars: ✭ 52 (-49.02%)
Mutual labels: transition
Barba
Create badass, fluid and smooth transition between your website's pages.
Stars: ✭ 9,372 (+9088.24%)
Mutual labels: transition
Urmovingtransitionanimator
Moving view transition with the blurring effect between view controllers for Swift3
Stars: ✭ 44 (-56.86%)
Mutual labels: transition-animation
Microstates
Composable state primitives for JavaScript
Stars: ✭ 1,312 (+1186.27%)
Mutual labels: transition
Vueg Page Transition Plugin
为Vue应用添加页面间的转场特效( Page level transition plugin for vue-router)
Stars: ✭ 1,023 (+902.94%)
Mutual labels: transition
Ibanimatable
Design and prototype customized UI, interaction, navigation, transition and animation for App Store ready Apps in Interface Builder with IBAnimatable.
Stars: ✭ 8,585 (+8316.67%)
Mutual labels: transition-animation
Simpletab
A Simple iOS Tab Bar Controller with animation support.
Stars: ✭ 83 (-18.63%)
Mutual labels: transition
Uberux
Project that demonstrates the entire animation stack present in the Uber app (android)
Stars: ✭ 1,201 (+1077.45%)
Mutual labels: transition-animation
compose-shared-element
Proof of concept exploration of how to implement SharedElement transition in Jetpack Compose.
Inspired by Flutter Hero widget.
Transition consists of following animations:
- Position
- Scale
- Crossfade (which makes it work on any kind of element, e.g.
Text
)
UsersListScreen: UserDetailScreen: |
Slowed down transition animation: |
---|
Usage
- Define
FROM
andTO
elements with shared tag
@Composable
fun ScreenA() {
// ...
SharedElement(tag = "tag", type = SharedElementType.FROM) {
Image(image, Modifier.preferredSize(48.dp))
}
// ...
}
@Composable
fun ScreenB() {
// ...
SharedElement(tag = "tag", type = SharedElementType.TO) {
Image(image, Modifier.preferredSize(200.dp))
}
// ...
}
- Make
SharedElementsRoot
a common parent ofScreenA
andScreenB
. It doesn't have to be their direct parent.
SharedElementsRoot {
// change between ScreenA and ScreenB
}
- Transition starts automatically when second
SharedElement
is detected
Sample
See sample usage with UsersListScreen
and UserDetailsScreen
here.
Issues
Considering the experimental state of this library and state of Jetpack Compose itself there are some issues described here.
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].