diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..cc423bb --- /dev/null +++ b/LICENSE @@ -0,0 +1,3 @@ +Copyright 2022 Moving Parts MVP, Inc. All rights reserved. + +Please check out https://movingparts.io/pow to find out about licensing Pow for you app. diff --git a/Package.swift b/Package.swift index 7f560bd..5f96190 100644 --- a/Package.swift +++ b/Package.swift @@ -15,8 +15,8 @@ let package = Package( targets: [ .binaryTarget( name: "Pow", - url: "https://packages.movingparts.io/binaries/pow/0.0.11/Pow.xcframework.zip", - checksum: "db7f9e15e8f083c9434697f36b1aa3950f11118df36f97106f30c051c0d71ea6" + url: "https://packages.movingparts.io/binaries/pow/0.0.12/Pow.xcframework.zip", + checksum: "51f1479bb77bcdb775e0cfdfb14be5231185012e3fe8c2dcf994d381295a797c" ), ] ) diff --git a/README.md b/README.md index 4ce4c3b..a1c54d8 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,11 @@ -![](./previews/og-image.png) +![](./images/og-image.png) # Pow Delightful SwiftUI transitions for your app. > **Note** -> This is a Beta version. -> -> Pow is free while in Beta and will be a simple one-time purchase after that. +> Pow is free to test and evaluate. To deploy an app using it to the App Store, you need to [purchase a license](https://movingparts.io/pow). # Installation @@ -17,8 +15,6 @@ To add a package dependency to your Xcode project, select _File_ > _Add Package_ - [Xcode Previews depending on Pow are broken in Xcode 14b5](https://developer.apple.com/forums/thread/707569). **Suggested Solution:** Download, unpack and embed the [`.xcframework` referenced in the `Package.swift`](./Package.swift) file. -- Preview videos in the README don't render in Chrome, Firefox https://github.com/movingparts-io/Pow/issues/1. - **Suggested Solution:** Open this page in Safari. # Overview @@ -30,7 +26,7 @@ myView.transition(.movingParts.anvil) ## Anvil -![A view dropping down like an avil, hitting the ground in a cloud of dust.](./previews/anvil.mov) +[Preview](https://movingparts.io/pow/#anvil) A transition that drops the view down from the top. @@ -40,7 +36,30 @@ The transition is only performed on insertion and takes 1.4 seconds. static var anvil: AnyTransition ``` -## Blur +## Blinds + +[Preview](https://movingparts.io/pow/#blinds) + +A transition that reveals the view as if it was behind window blinds. + +```swift +static var blinds: AnyTransition +``` + +A transition that reveals the view as if it was behind window blinds. + +Parameters: +- `slatWidth`: The width of each slat. +- `style`: The style of blinds, either `.venetian` or `.vertical`. +- `isStaggered`: Whether all slats opens at the same time or in sequence. + +```swift +static func blinds(slatWidth: CGFloat, style: BlindsStyle = .venetian, isStaggered: Bool = false) -> AnyTransition +``` + +## Blur + +[Preview ](https://movingparts.io/pow/#blur) A transition from blurry to sharp on insertion, and from sharp to blurry on removal. @@ -51,7 +70,7 @@ static var blur: AnyTransition ## Boing -![A view dropping down, deforming as it hits its resing position as if made from jelly.](./previews/boing.mov) +[Preview](https://movingparts.io/pow/#boing) A transition that moves the view down with any overshoot resulting in an elastic deformation of the view. @@ -69,6 +88,8 @@ static func boing(edge: Edge) -> AnyTransition ## Clock +[Preview](https://movingparts.io/pow/#clock) + A transition using a clockwise sweep around the centerpoint of the view. ```swift @@ -85,6 +106,8 @@ static func clock(blurRadius: CGFloat) -> AnyTransition ## Flicker +[Preview](https://movingparts.io/pow/#flicker) + A transition that toggles the visibility of the view multiple times before settling. @@ -103,7 +126,7 @@ static func flicker(count: Int) -> AnyTransition ## Flip -![A view rotating into view.](./previews/flip.mov) +[Preview](https://movingparts.io/pow/#flip) A transition that inserts by rotating the view towards the viewer, and removes by rotating the view away from the viewer. @@ -117,6 +140,8 @@ static var flip: AnyTransition ## Glare +[Preview](https://movingparts.io/pow/#glare) + A transitions that shows the view by combining a diagonal wipe with a white streak. @@ -135,8 +160,6 @@ In this example, the removal of the view is using a glare with an exponential ease-in curve, combined with a anticipating scale animation, making for a more dramatic exit. -![A view that appears with a white steak and disappears with the same streak, combined with a rising up animation.](./previews/glare.mov) - ```swift infoBox .transition( @@ -164,6 +187,8 @@ static func glare(angle: Angle, color: Color = .white) -> AnyTransition ## Iris +[Preview](https://movingparts.io/pow/#iris) + A transition that takes the shape of a growing circle when inserting, and a shrinking circle when removing. @@ -177,6 +202,8 @@ static func iris(origin: UnitPoint = .center, blurRadius: CGFloat = 0) -> AnyTra ## Move +[Preview](https://movingparts.io/pow/#move) + A transition that moves the view from the specified edge of the on insertion and towards it on removal. @@ -208,7 +235,7 @@ static func move(angle: Angle) -> AnyTransition ## Pop -![A view that appears following a ripple effect and colored particles.](./previews/pop.mov) +[Preview](https://movingparts.io/pow/#pop) A transition that shows a view with a ripple effect and a flurry of tint-colored particles. @@ -246,7 +273,19 @@ The transition is only performed on insertion. - Parameter `style`: The style to use for the effect. ```swift -static func pop(_ style: AnyShapeStyle) -> AnyTransition +static func pop(_ style: S) -> AnyTransition +``` + +## Poof + +[Preview](https://movingparts.io/pow/#poof) + +A transition that removes the view in a dissolving cartoon style cloud. + +The transition is only performed on removal and takes 0.4 seconds. + +```swift +static var poof: AnyTransition ``` ## Rotate3D @@ -257,8 +296,6 @@ removes by rotating to the specified rotation in three dimensions. In this example, the view is rotated 90˚ about the y axis around its bottom edge as if it was rising from lying on its back face: -![A view that raises up from lying on its back, overshooting as it does.](./previews/rotate3d.mov) - ```swift Text("Hello") .transition(.movingParts.rotate3D( @@ -288,7 +325,7 @@ static func rotate3D(_ angle: Angle, axis: (x: CGFloat, y: CGFloat, z: CGFloat), ## Skid -![A sliding in from the left, overshowing and deforming as it moves.](./previews/skid.mov) +[Preview](https://movingparts.io/pow/#skid) A transition that moves the view in from its leading edge with any overshoot resulting in an elastic deformation of the view. @@ -309,6 +346,8 @@ static func skid(direction: SkidDirection) -> AnyTransition ## Swoosh +[Preview](https://movingparts.io/pow/#swoosh) + A three-dimensional transition from the back of the towards the front during insertion and from the front towards the back during removal. @@ -318,7 +357,7 @@ static var swoosh: AnyTransition ## Vanish -![A view that dissolves into many small particles.](./previews/vanish.mov) +[Preview](https://movingparts.io/pow/#vanish) A transition that dissolves the view into many small particles. @@ -328,8 +367,20 @@ The transition is only performed on removal. static var vanish: AnyTransition ``` +A transition that dissolves the view into many small particles. + +The transition is only performed on removal. + +- Parameter `style`: The style to use for the particles. + +```swift +static func vanish(_ style: S) -> AnyTransition +``` + ## Wipe +[Preview](https://movingparts.io/pow/#wipe) + A transition using a sweep from the specified edge on insertion, and towards it on removal. diff --git a/previews/og-image.png b/images/og-image.png similarity index 100% rename from previews/og-image.png rename to images/og-image.png diff --git a/previews/anvil.mov b/previews/anvil.mov deleted file mode 100644 index 7e5f34b..0000000 Binary files a/previews/anvil.mov and /dev/null differ diff --git a/previews/boing.mov b/previews/boing.mov deleted file mode 100644 index 0648ecd..0000000 Binary files a/previews/boing.mov and /dev/null differ diff --git a/previews/flip.mov b/previews/flip.mov deleted file mode 100644 index 571bde3..0000000 Binary files a/previews/flip.mov and /dev/null differ diff --git a/previews/glare.mov b/previews/glare.mov deleted file mode 100644 index 26e9fc8..0000000 Binary files a/previews/glare.mov and /dev/null differ diff --git a/previews/pop.mov b/previews/pop.mov deleted file mode 100644 index 4bd7adf..0000000 Binary files a/previews/pop.mov and /dev/null differ diff --git a/previews/rotate3d.mov b/previews/rotate3d.mov deleted file mode 100644 index a8870ee..0000000 Binary files a/previews/rotate3d.mov and /dev/null differ diff --git a/previews/skid.mov b/previews/skid.mov deleted file mode 100644 index 68fd047..0000000 Binary files a/previews/skid.mov and /dev/null differ diff --git a/previews/vanish.mov b/previews/vanish.mov deleted file mode 100644 index 55654ec..0000000 Binary files a/previews/vanish.mov and /dev/null differ