Skip to content

andrewvasilchuk/v-ripple-directive

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

5 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŒŠ v-ripple-directive

Vue.js directive for ripple effect.

โœจ Features

Demo

Edit v-ripple-directive

๐Ÿ’ฟ Installation

๐Ÿ“ฆ Via NPM

npm install v-ripple-directive --save

๐Ÿงถ Via Yarn

yarn add v-ripple-directive

๐Ÿ–ฅ๏ธ Directly in browser

<link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/index.css"></link>
<script src="https://unpkg.com/[email protected]/dist/v-ripple-directive.min.js"></script>
<script>
  Vue.use(VRipple)
</script>

โš ๏ธ Don't forget to include script with Vue.js before installing the plugin.

Initialization

๐ŸŽจ Styles

To make everything work you should import core styles. The idea behind is that you can override default styles during build process. Example of using SASS/SCSS:

@import 'v-ripple-directive/src/index.scss';

Available SASS variables, that you can override during build process:

$v-ripple-color: #fff !default;
$v-ripple-duration: 2s !default;
$v-ripple-opacity: 0.32 !default;
$v-ripple-scale-start: 0.32 !default;
$v-ripple-scale-end: 24 !default;

Example of overriding:

...
$v-ripple-color: purple;
@import 'v-ripple-directive/src/index.scss';
...

Note: library is build upon CSS Custom properties, so you can easily override styles during runtime.

Available CSS custom properties, that you can override during runtime:

:root {
  --v-ripple-color: #fff;
  --v-ripple-duration: 2s;
  --v-ripple-opacity: 0.32;
  --v-ripple-scale-start: 0.32;
  --v-ripple-scale-end: 24;
}

Example of override:

/* globally */
:root {
  --v-ripple-color: tomato;
}

/* just for single element */
.foo {
  --v-ripple-color: lime;
}

Move on to JS.

As a plugin

It must be called before new Vue().

import Vue from 'vue'
import VRipple from 'v-ripple-directive'

Vue.use(VRipple)

As a global directive

import Vue from 'vue'
import { directive } from 'v-ripple-directive'

Vue.directive('ripple', directive)

As a local directive

import { directive } from 'v-ripple-directive'

export default {
  name: 'YourAwesomeComponent',
  directives: {
    ripple: directive,
  },
}

๐Ÿš€ Usage

<template>
  <section>
    <a href="#" v-ripple>Foo bar</a>
    <!-- v-ripple with custom options -->
    <a
      href="#"
      v-ripple="{ event: 'mouseenter', color: 'purple', duration: '2s', opacity: '0.64', 'scale-start': '1', 'scale-end': '12' }"
      >Foo bar</a
    >
  </section>
</template>

โš™๏ธ Directive value

If you pass a value, it always should be an object that contains one of these properties:

Property Description
event Name of event to trigger ripple animation
color Color of the ripple (any CSS valid color)
duration Duration of the ripple animation (any CSS valid animation-duration value)
opacity Opacity of the ripple (any CSS valid opacity value)
scale-start Initial scale of the ripple (any CSS valid transform: scale() value)
scale-end Ultimate scale of the ripple (any CSS valid transform: scale() value)

Powered by

  • Rollup (and plugins)
  • SASS and node-sass
  • PostCSS
  • Autoprefixer

๐Ÿ”’ License

MIT

About

๐ŸŒŠVue.js directive for ripple effect.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published