Skip to content
A button that squishes when pressed. As seen in the Clips app.
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
Example Fix frameworks path warning Jun 23, 2017
SquishButton Add init(frame:) and init() initializers Mar 8, 2018
.travis.yml Only build project without testing Apr 10, 2017
demo.gif Add README and documentation Apr 9, 2017

CocoaPods CocoaPods Carthage License Platform Twitter: @BalestraPatrick

Inspired by the new Clips app record button, SquishButton is a UIButton subclass that implements the same design and behavior.


Use it as every other UIButton object and customize it to suit your needs. These are the public properties that SquishButton adds:

/// The number of pixels to scale the inner rectangle.
open var scaling = CGFloat(10)

/// The duration of the animation when the button is in the highlighted state.
open var animationDuration = 0.15

/// The color of the inner rectangle.
open var color = UIColor(red: 244.0/255.0, green: 51.0/255.0, blue: 50.0/255.0, alpha: 1.0)

/// The inset between the outer border and inner rectangle.
open var innerInset = CGFloat(5)


iOS 8.3 and Swift 3.2.

If you are using Swift 4, please use the swift4 branch.


SquishButton is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod 'SquishButton'

You can also use Carthage if you prefer. Add this line to your Cartfile.

github "BalestraPatrick/SquishButton"


I'm Patrick Balestra. Email: Twitter: @BalestraPatrick.


SquishButton is available under the MIT license. See the LICENSE file for more info.

You can’t perform that action at this time.