ember-hold-button
Hold to confirm buttons, easily customisable, for ember-cli. After holding on the button for a specified amount of time, the given action is performed (e.g. hold to delete).
Installation
ember install ember-hold-button
Usage
There are a few types of buttons out of the box; rectangle
, circle
, and border-circle
.
Rectangle
{{#hold-button type="rectangle" action="delete"}} Hold to Delete{{/hold-button}}
Circle
{{hold-button type="circle" action="finished"}}
Border Circle
{{hold-button delay=800 type='border-circle' action='finished'}}
Options
Option | Description | Default |
---|---|---|
delay | Time the button should be held for, in milliseconds. | 500 . |
action | The action to perform on completion. | null |
type | Style of the button. circle , border-circle or rectangle . |
rectangle |
You can also pass arguments to the component which will then be passed to the action.
{{hold-button model action="save" type="rectangle"}}
Styling
The following are a few examples of how to style the button. The component is just a button tag containing a yield and a span. The span is the part that animates.
{{yield}}<span></span>
When you specify a type
for the hold-button, that type becomes a class for the component. So you could specify a custom type (e.g. type='my-cool-button'
) to customise from scratch.
The button always has the CSS class ember-hold-button
, and also has is-holding
while it is being held and is-complete
upon completion. These are bound to the isHolding
and isComplete
attributes respectively, if you want to take control of this.
Full progress bar
Template
{{#hold-button type="rectangle" action="finished"}} Hold to Delete{{/hold-button}}
CSS
Reverse circle animation
Template
{{hold-button type="circle" action="finished"}}
CSS
Completion styling
This one modifies the rectangle style to animate the progress bar height instead of width and places text in pseudoelements.
Template
{{hold-button action="finished"}}
CSS
Compatibility
CSS3 transitions are being used, so IE8/9 are out the window but other browsers should be fine. See can I use this.
Other Resources
Contributing
Installation
git clone <repository-url>
cd my-addon
npm install
Linting
npm run lint:hbs
npm run lint:js
npm run lint:js -- --fix
Running tests
ember test
– Runs the test suite on the current Ember versionember test --server
– Runs the test suite in "watch mode"ember try:each
– Runs the test suite against multiple Ember versions
Running the dummy application
ember serve
- Visit the dummy application at http://localhost:4200.
For more information on using ember-cli, visit https://ember-cli.com/.
License
This project is licensed under the MIT License.