Repository: IanLunn/Hover Branch: master Commit: eb8629df1385 Files: 243 Total size: 413.7 KB Directory structure: gitextract_20afx48d/ ├── .editorconfig ├── .gitignore ├── CONTRIBUTING.md ├── Gruntfile.js ├── HISTORY.md ├── README.md ├── bower.json ├── css/ │ ├── demo-page.css │ ├── hover-min.css │ └── hover.css ├── index.html ├── less/ │ ├── _hacks.less │ ├── _mixins.less │ ├── _options.less │ ├── effects/ │ │ ├── 2d-transitions/ │ │ │ ├── _backward.less │ │ │ ├── _bob.less │ │ │ ├── _bounce-in.less │ │ │ ├── _bounce-out.less │ │ │ ├── _buzz-out.less │ │ │ ├── _buzz.less │ │ │ ├── _float.less │ │ │ ├── _forward.less │ │ │ ├── _grow-rotate.less │ │ │ ├── _grow.less │ │ │ ├── _hang.less │ │ │ ├── _pop.less │ │ │ ├── _pulse-grow.less │ │ │ ├── _pulse-shrink.less │ │ │ ├── _pulse.less │ │ │ ├── _push.less │ │ │ ├── _rotate.less │ │ │ ├── _shrink.less │ │ │ ├── _sink.less │ │ │ ├── _skew-backward.less │ │ │ ├── _skew-forward.less │ │ │ ├── _skew.less │ │ │ ├── _wobble-bottom.less │ │ │ ├── _wobble-horizontal.less │ │ │ ├── _wobble-skew.less │ │ │ ├── _wobble-to-bottom-right.less │ │ │ ├── _wobble-to-top-right.less │ │ │ ├── _wobble-top.less │ │ │ └── _wobble-vertical.less │ │ ├── background-transitions/ │ │ │ ├── _back-pulse.less │ │ │ ├── _bounce-to-bottom.less │ │ │ ├── _bounce-to-left.less │ │ │ ├── _bounce-to-right.less │ │ │ ├── _bounce-to-top.less │ │ │ ├── _fade.less │ │ │ ├── _radial-in.less │ │ │ ├── _radial-out.less │ │ │ ├── _rectangle-in.less │ │ │ ├── _rectangle-out.less │ │ │ ├── _shutter-in-horizontal.less │ │ │ ├── _shutter-in-vertical.less │ │ │ ├── _shutter-out-horizontal.less │ │ │ ├── _shutter-out-vertical.less │ │ │ ├── _sweep-to-bottom.less │ │ │ ├── _sweep-to-left.less │ │ │ ├── _sweep-to-right.less │ │ │ └── _sweep-to-top.less │ │ ├── border-transitions/ │ │ │ ├── _border-fade.less │ │ │ ├── _hollow.less │ │ │ ├── _outline-in.less │ │ │ ├── _outline-out.less │ │ │ ├── _overline-from-center.less │ │ │ ├── _overline-from-left.less │ │ │ ├── _overline-from-right.less │ │ │ ├── _overline-reveal.less │ │ │ ├── _reveal.less │ │ │ ├── _ripple-in.less │ │ │ ├── _ripple-out.less │ │ │ ├── _round-corners.less │ │ │ ├── _trim.less │ │ │ ├── _underline-from-center.less │ │ │ ├── _underline-from-left.less │ │ │ ├── _underline-from-right.less │ │ │ └── _underline-reveal.less │ │ ├── curls/ │ │ │ ├── _curl-bottom-left.less │ │ │ ├── _curl-bottom-right.less │ │ │ ├── _curl-top-left.less │ │ │ └── _curl-top-right.less │ │ ├── icons/ │ │ │ ├── _icon-back.less │ │ │ ├── _icon-bob.less │ │ │ ├── _icon-bounce-out.less │ │ │ ├── _icon-bounce.less │ │ │ ├── _icon-buzz-out.less │ │ │ ├── _icon-buzz.less │ │ │ ├── _icon-down.less │ │ │ ├── _icon-drop.less │ │ │ ├── _icon-fade.less │ │ │ ├── _icon-float-away.less │ │ │ ├── _icon-float.less │ │ │ ├── _icon-forward.less │ │ │ ├── _icon-grow-rotate.less │ │ │ ├── _icon-grow.less │ │ │ ├── _icon-hang.less │ │ │ ├── _icon-pop.less │ │ │ ├── _icon-pulse-grow.less │ │ │ ├── _icon-pulse-shrink.less │ │ │ ├── _icon-pulse.less │ │ │ ├── _icon-push.less │ │ │ ├── _icon-rotate.less │ │ │ ├── _icon-shrink.less │ │ │ ├── _icon-sink-away.less │ │ │ ├── _icon-sink.less │ │ │ ├── _icon-spin.less │ │ │ ├── _icon-up.less │ │ │ ├── _icon-wobble-horizontal.less │ │ │ └── _icon-wobble-vertical.less │ │ ├── shadow-and-glow-transitions/ │ │ │ ├── _box-shadow-inset.less │ │ │ ├── _box-shadow-outset.less │ │ │ ├── _float-shadow.less │ │ │ ├── _glow.less │ │ │ ├── _grow-shadow.less │ │ │ ├── _shadow-radial.less │ │ │ └── _shadow.less │ │ └── speech-bubbles/ │ │ ├── _bubble-bottom.less │ │ ├── _bubble-float-bottom.less │ │ ├── _bubble-float-left.less │ │ ├── _bubble-float-right.less │ │ ├── _bubble-float-top.less │ │ ├── _bubble-left.less │ │ ├── _bubble-right.less │ │ └── _bubble-top.less │ └── hover.less ├── license.txt ├── package.json └── scss/ ├── _hacks.scss ├── _mixins.scss ├── _options.scss ├── effects/ │ ├── 2d-transitions/ │ │ ├── _backward.scss │ │ ├── _bob.scss │ │ ├── _bounce-in.scss │ │ ├── _bounce-out.scss │ │ ├── _buzz-out.scss │ │ ├── _buzz.scss │ │ ├── _float.scss │ │ ├── _forward.scss │ │ ├── _grow-rotate.scss │ │ ├── _grow.scss │ │ ├── _hang.scss │ │ ├── _pop.scss │ │ ├── _pulse-grow.scss │ │ ├── _pulse-shrink.scss │ │ ├── _pulse.scss │ │ ├── _push.scss │ │ ├── _rotate.scss │ │ ├── _shrink.scss │ │ ├── _sink.scss │ │ ├── _skew-backward.scss │ │ ├── _skew-forward.scss │ │ ├── _skew.scss │ │ ├── _wobble-bottom.scss │ │ ├── _wobble-horizontal.scss │ │ ├── _wobble-skew.scss │ │ ├── _wobble-to-bottom-right.scss │ │ ├── _wobble-to-top-right.scss │ │ ├── _wobble-top.scss │ │ └── _wobble-vertical.scss │ ├── background-transitions/ │ │ ├── _back-pulse.scss │ │ ├── _bounce-to-bottom.scss │ │ ├── _bounce-to-left.scss │ │ ├── _bounce-to-right.scss │ │ ├── _bounce-to-top.scss │ │ ├── _fade.scss │ │ ├── _radial-in.scss │ │ ├── _radial-out.scss │ │ ├── _rectangle-in.scss │ │ ├── _rectangle-out.scss │ │ ├── _shutter-in-horizontal.scss │ │ ├── _shutter-in-vertical.scss │ │ ├── _shutter-out-horizontal.scss │ │ ├── _shutter-out-vertical.scss │ │ ├── _sweep-to-bottom.scss │ │ ├── _sweep-to-left.scss │ │ ├── _sweep-to-right.scss │ │ └── _sweep-to-top.scss │ ├── border-transitions/ │ │ ├── _border-fade.scss │ │ ├── _hollow.scss │ │ ├── _outline-in.scss │ │ ├── _outline-out.scss │ │ ├── _overline-from-center.scss │ │ ├── _overline-from-left.scss │ │ ├── _overline-from-right.scss │ │ ├── _overline-reveal.scss │ │ ├── _reveal.scss │ │ ├── _ripple-in.scss │ │ ├── _ripple-out.scss │ │ ├── _round-corners.scss │ │ ├── _trim.scss │ │ ├── _underline-from-center.scss │ │ ├── _underline-from-left.scss │ │ ├── _underline-from-right.scss │ │ └── _underline-reveal.scss │ ├── curls/ │ │ ├── _curl-bottom-left.scss │ │ ├── _curl-bottom-right.scss │ │ ├── _curl-top-left.scss │ │ └── _curl-top-right.scss │ ├── icons/ │ │ ├── _icon-back.scss │ │ ├── _icon-bob.scss │ │ ├── _icon-bounce-out.scss │ │ ├── _icon-bounce.scss │ │ ├── _icon-buzz-out.scss │ │ ├── _icon-buzz.scss │ │ ├── _icon-down.scss │ │ ├── _icon-drop.scss │ │ ├── _icon-fade.scss │ │ ├── _icon-float-away.scss │ │ ├── _icon-float.scss │ │ ├── _icon-forward.scss │ │ ├── _icon-grow-rotate.scss │ │ ├── _icon-grow.scss │ │ ├── _icon-hang.scss │ │ ├── _icon-pop.scss │ │ ├── _icon-pulse-grow.scss │ │ ├── _icon-pulse-shrink.scss │ │ ├── _icon-pulse.scss │ │ ├── _icon-push.scss │ │ ├── _icon-rotate.scss │ │ ├── _icon-shrink.scss │ │ ├── _icon-sink-away.scss │ │ ├── _icon-sink.scss │ │ ├── _icon-spin.scss │ │ ├── _icon-up.scss │ │ ├── _icon-wobble-horizontal.scss │ │ └── _icon-wobble-vertical.scss │ ├── shadow-and-glow-transitions/ │ │ ├── _box-shadow-inset.scss │ │ ├── _box-shadow-outset.scss │ │ ├── _float-shadow.scss │ │ ├── _glow.scss │ │ ├── _grow-shadow.scss │ │ ├── _shadow-radial.scss │ │ └── _shadow.scss │ └── speech-bubbles/ │ ├── _bubble-bottom.scss │ ├── _bubble-float-bottom.scss │ ├── _bubble-float-left.scss │ ├── _bubble-float-right.scss │ ├── _bubble-float-top.scss │ ├── _bubble-left.scss │ ├── _bubble-right.scss │ └── _bubble-top.scss └── hover.scss ================================================ FILE CONTENTS ================================================ ================================================ FILE: .editorconfig ================================================ # editorconfig.org root = true [*] charset = utf-8 end_of_line = lf indent_size = 2 indent_style = tab insert_final_newline = true trim_trailing_whitespace = true [*.md] trim_trailing_whitespace = false ================================================ FILE: .gitignore ================================================ lib-cov *.seed *.log *.csv *.dat *.out *.pid *.gz pids logs results npm-debug.log node_modules .sass-cache .DS_Store ================================================ FILE: CONTRIBUTING.md ================================================ # Contributing to Hover.css Thanks for considering to contribute to Hover.css. To improve your chances of having your hard work merged into Hover.css, here's a quick guide. ## Guidelines for Effects 1. Effects should work with only one HTML element. This way, developers only need add a class to their element for your fancy effect to work on their page. CSS pseudo-elements are perfectly acceptable as they don't require additional changes to HTML. 2. Aim to provide subtle effects that enhance user experience. 3. Hover.css is available in Sass, LESS, and CSS formats. If you can, please submit your effects in as many of these formats as possible. Don't worry if you're unfamiliar with any though, we'll convert them for you. 4. Try not to use transitions and animations together on the same effect, [we've found this is buggy in Webkit/Blink browsers](https://github.com/IanLunn/Hover/issues/24). 5. Consider submitting an effect that is paired with an opposite, for example: `Bounce In`/`Bounce Out`, `Float`/`Sink`, `Icon Back`/`Icon Forward`. ## Browser Testing Effects The Hover.css project attempts to deliver effects that work in the latest versions of modern browsers (Firefox, Chrome, Safari, Opera, Internet Explorer 10+), as well as providing simple CSS fixes for older browsers where possible (a fallback color when `rgba()` is used for example). Fallbacks for older browsers are the responsibility of the developer adding Hover.css to their page, as described in the README's [Browser Support section](https://github.com/IanLunn/Hover#browser-support). Please be certain any effects you submit at least work in the latest versions of modern browsers, and advise us accordingly if that is not the case. ================================================ FILE: Gruntfile.js ================================================ module.exports = function(grunt) { grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), version: { json: { src: ['package.json'] }, css: { options: { prefix: 'Version[:=]\\s*' }, src: ['css/hover.css', 'scss/hover.scss', 'less/hover.less'] } }, sass: { dist: { options: { style: 'expanded' }, files: { 'css/hover.css': 'scss/hover.scss' } } }, less: { dist: { options: { style: 'expanded' }, files: { 'css/hover.css': 'less/hover.less' } } }, cssmin: { combine: { files: { 'css/hover-min.css': ['css/hover.css'] } } }, watch: { options: { livereload: true, }, reload: { files: ['*.html', 'css/*.css'], options: { spawn: false } }, scss: { files: ['scss/**/*.scss'], tasks: ['sass', 'cssmin'], options: { spawn: false } }, less: { files: ['less/**/*.less'], tasks: ['less', 'cssmin'], options: { spawn: false } }, version: { files: ['package.json'], tasks: ['version'], options: { spawn: false } } }, connect: { server: { options: { livereload: true, hostname: '0.0.0.0', port: 8000, base: './' } } }, }); require('load-grunt-tasks')(grunt); grunt.registerTask('default', ['connect', 'watch']); }; ================================================ FILE: HISTORY.md ================================================ ## 2.0.2 - Jan 27, 2015 - Added `back-pulse` effect ## 2.0.1 - Jan 26, 2015 - Added `includeClasses` option to Sass/LESS so you can now generate CSS with or without Hover.css default class names - Added `!default` flags to Sass variables in `_options.scss` ## 2.0.0 - Jan 7, 2015 - Added lots of new effects - Added LESS support - Prefixed all effect names with `hvr-` (can be changed in `scss/_options.scss`) - Updated some effects for better performance and/or browser support - Moved default button styles out of library - Moved all effects into sub folders with the name of the category they belong to - Renamed `hover` and `hover shadow` effects to `bob` and `bob shadow` - Removed `hover shadow` effect due to browser inconsistencies courtesy of [this Webkit/Blink bug](https://github.com/IanLunn/Hover/issues/24) which can't be worked around - Updated `bob` (formerly `hover`) and `hang` effects to work around [this WebKit/Blink bug](https://github.com/IanLunn/Hover/issues/24) - Change default `animation-timing-function` and `transition-timing-function` values for various effects - Changed all instances of 'colour' to 'color' - Added small amount of JS to demo page to prevent `` elements from navigating (not required for hover.css to work) - Added "What's Included?" section to README.md ================================================ FILE: README.md ================================================ # Hover.css Buy Me A Coffee A collection of CSS3 powered hover effects to be applied to links, buttons, logos, SVG, featured images and so on. Easily apply to your own elements, modify or just use for inspiration. Available in CSS, Sass, and LESS. [Demo](http://ianlunn.github.io/Hover) | [Tutorial](http://ianlunn.co.uk/articles/hover-css-tutorial-introduction/) ## Contents - [Download/Install](#downloadinstall) - [How To Use](#how-to-use) - [A. Copy and Paste an Effect](#a-copy-and-paste-an-effect) - [B. Reference Hover.css](#b-reference-hovercss) - [A Note on the display property](#a-note-on-the-display-property) - [Using Icon Effects](#using-icon-effects) - [What's Included?](#whats-included) - [css](#css) - [scss/less](#scssless) - [Other](#other) - [Browser Support](#browser-support) - [Using Grunt for Development](#using-grunt-for-development) - [Using Sass/LESS for Development](#using-sassless-for-development) - [_hacks](#\_hacks) - [_mixins](#\_mixins) - [_options](#\_options) - [Contribute to Hover.css](#contribute-to-hovercss) - [Licenses](#licenses) - [Commercial License](#commercial-license) - [Open-Source License](#open-source-license) - [Hire Ian Lunn](#hire-ian-lunn) ## Download/Install - NPM: `npm install hover.css --save` - Bower: `bower install hover --save` - [Download Zip](https://github.com/IanLunn/Hover/archive/master.zip) ## How To Use Hover.css can be used in a number of ways; either copy and paste the effect you'd like to use in your own stylesheet or reference the stylesheet. Then just add the class name of the effect to the element you'd like it applied to. ### A. Copy and Paste an Effect If you plan on only using one or several effects, it's better practice to copy and paste an effect into your own stylesheet, so a user doesn't have to download `css/hover.css` in its entirety. Assuming you want to use the Grow effect: 1. Download Hover.css 2. In `css/hover.css`, find the Grow CSS (each effect is named using a comment above it): ```css /* Grow */ .hvr-grow { display: inline-block; vertical-align: middle; transform: translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); backface-visibility: hidden; -moz-osx-font-smoothing: grayscale; transition-duration: 0.3s; transition-property: transform; } .hvr-grow:hover, .hvr-grow:focus, .hvr-grow:active { transform: scale(1.1); } ``` 3. Copy this effect and then paste it into your own stylesheet. 4. In the HTML file which you'd like the effect to appear, add the class of `.hvr-grow` to your chosen element. Example element before applying Hover.css effect: ```html Add to Basket ``` Example element after applying Hover.css effect: ```html Add to Basket ``` **Note**: As of `2.0.0` all Hover.css class names are prefixed with `hvr-` to prevent conflicts with other libraries/stylesheets. If using Sass/LESS, this can easily be changed using the `$nameSpace`/`@nameSpace` variable in `scss/_options.scss` or `less/_options.less`. ### B. Reference Hover.css If you plan on using many Hover.css effects, you may like to reference the entire Hover.css stylesheet. 1. Download `hover-min.css` 2. Add `hover-min.css` to your websites files, in a directory named `css` for example 3. Reference `hover-min.css` in `` of the HTML page you'd like to add Hover.css effects to: ```html ``` Alternatively you can add a reference into an existing stylesheet like so (this may be useful to WordPress users who are unable to edit HTML): ```css @import url("hover-min.css"); ``` 4. Assuming you want to use the Grow effect, in the HTML file you'd like to use this effect, add the class of `.hvr-grow` to your chosen element. Example element before applying Hover.css effect: ```html Add to Basket ``` Example element after applying Hover.css effect: ```html Add to Basket ``` ### A Note on the `display` Property To make an element "transformable", Hover.css gives the following to all elements it is applied to: ```css display: inline-block; vertical-align: middle; ``` Should you wish to override this behavior, either remove the above CSS from Hover.css or change the `display` property for the element. Be sure to declare the override after the Hover.css declarations so the CSS cascade will take effect. Alternatively, if you are using the Sass/LESS version of Hover.css, you can remove/comment out the `forceBlockLevel()` mixin found in `scss/_hacks.scss` or `less/_hacks.less`. For more information about Transformable elements, see the [CSS Transforms Module](http://www.w3.org/TR/css3-transforms/#transformable-element). ### Using Icon Effects To add a Hover.css icon, place the icon HTML inside the element that a Hover.css effect is applied to. For example: ``` Icon Forward ``` In the above code, we have given a link element a class of `hvr-icon-forward` which will make an icon move forward when the link is hovered over. The icon itself is given a class of `hvr-icon` to let Hover.css know that this is the icon we want to animate. In this example, our icon is from FontAwesome, which we've loaded into the `` of our web page as per FontAwesome's instructions, like so: ```html ``` Note: As of Hover.css v2.3.0 you can use any method you like for adding icons (previously, only FontAwesome was supported out-of-the-box.) For example, you could use another icon library or instead, use an image like so: ``` Icon Spin ``` Here, the image will act as the icon because it has the `hvr-icon` class applied to it, and when hovered over, the icon will spin as defined by the `hvr-icon-spin` class on the parent element. Position of the icon is entirely in your control. You could place it before the text, like so: ``` Icon Spin ``` Or use custom CSS to position the icon as you see fit. ## What's Included? The project consists of the following folders and files: ### css - **demo-page.css** - Contains styles to demonstrate Hover. Not required in your projects - **hover-min.css** - The minified/production version of Hover.css - **hover.css** - The development version of Hover.css ### scss/less - **effects** - Contains each individual effect sorted into categorized folders - **_hacks.scss/_hacks.less, _mixins.scss/_mixins.less, _options.scss/_options.less** - Sass/LESS Utilities - **hover.scss/hover.less** - Development version of Hover.css in Sass and LESS flavours ### Other Other files of note include: - **index.html** - Demonstrates all Hover.css effects - **Gruntfile.js** - Used for [development of Hover.css via Grunt](#using-grunt-for-development). ## Browser Support Many Hover.css effects rely on CSS3 features such as transitions, animations, transforms and pseudo-elements, for that reason, effects may not fully work in older browsers. - [Transitions](http://caniuse.com/#search=transitions) and [Animations](http://caniuse.com/#search=animations) - not supported below Internet Explorer 10 - [Transforms](http://caniuse.com/#search=transforms) - not supported below Internet Explorer 9 - [Generated Content (pseudo-elements)](http://caniuse.com/#search=pseudo-elements) - not supported below Internet Explorer 8 Aside from the above mentioned browsers, Hover.css is supported across all major browsers. Please see [caniuse.com](http://caniuse.com/) for full support for many web technologies and test your webpages accordingly. It is recommended to apply fallback effects for older browsers, using CSS supported by those browsers or a feature testing library such as [Modernizr](http://modernizr.com/). ## Using Grunt for Development Grunt is non-essential but can speed up development. With [Grunt installed](http://gruntjs.com/getting-started), run `grunt` from the command line to set up a development server accessed at [http://127.0.0.1:8000/](http://127.0.0.1:8000/) or your local IP for network testing. With Grunt running, Sass or LESS will be preprocessed (depending on whether you work out of the `scss` or `less` folder) and CSS files will be minified. **Note:** Originally Grunt was set up to autoprefix CSS properties but to make the project as accessible as possible, this is no longer the case. The `prefixed(property, value)` Sass/LESS mixin should be used for browser prefixing instead. See [Using Sass/LESS for Development](#using-sassless-for-development) and [Using LESS for Development]. ## Using Sass/LESS for Development Sass/LESS are non-essential but can speed up development. Preprocess Sass/LESS with your favourite software or the environment provided via [Grunt](#using-grunt-for-development). Sass/LESS is used in the Hover.css project to separate various CSS into specific files. Each effect is within its own file in the `effects` directory. Hover.css also uses the following `.scss` and `.less` files: ### _hacks Contains hacks (undesirable but usually necessary lines of code) applied to certain effects. [Hacks explained here](https://github.com/IanLunn/Hover/wiki/Hacks-Explained). ### _mixins Contains `prefixed` and `keyframes` mixins that apply the necessary prefixes you specify in `_options.scss` / `_options.less` to properties and keyframes. Properties can be prefixed like so: - Sass: ```css @include prefixed(transition-duration, .3s); ``` - LESS: ```css .prefixed(transition-duration, .3s); ``` The `prefixed` mixin is passed the property you want to prefix, followed by its value. Keyframes can be prefixed like so: - Sass: ```css @include keyframes(my-animation) { to { color: red; } } ``` The `keyframes` mixin is passed the keyframe name, followed by the content using the @content directive. - LESS: ```css .keyframes(my-animation, { to { color: red; } }); ``` The `keyframes` mixin is passed the keyframe name, followed by the content, both as arguments. ### _options Contains default options, various effect options and the browser prefixes you'd like to use with the `prefixed` mixin. By default, only the `-webkit-` prefix is set to `true` (due to most browsers not requiring prefixes now). As of `2.0.0`, `_options` also includes a `$nameSpace` / `@nameSpace` option which allows you to change the name all classes are prefixed with. The default namespace is `hvr`. The `$includeClasses` / `@includeClasses` option by default is set to `true` and will generate all Hover.css effects under their own class names, `hvr-grow` for example. Should you wish to add the properties that make up Hover.css effects to your own class names, set this option to `false`. ## Contribute to Hover.css If you'd like to contribute your own effects, please see the [Contributing Guide](https://github.com/IanLunn/Hover/blob/master/CONTRIBUTING.md). ## Licenses Hover.css is made available under a free personal/open source or paid commercial licenses depending on your requirements. To compare licenses please visit the [Ian Lunn Design Limited Store](https://ianlunn.co.uk/store/licenses/) and [purchase a commercial license here](https://ianlunn.co.uk/store/hover-css/). ### Personal/Open Source For personal/open source use, Hover.css is made available under a [MIT license](https://opensource.org/licenses/MIT) - Use in unlimited personal applications - Your application can't be sold - Your modifications remain open-source - Free updates [Read full license](https://ianlunn.co.uk/store/licenses/personal/) ### Commercial For commercial use, Hover.css is made available under Commercial, Extended Commercial, and OEM Commercial licenses. #### Commercial License - Use in 1 application - Sell your application once only (e.g. a website sold to a client) - Your code is kept proprietary, to yourself - Free updates to the major version [Purchase](https://ianlunn.gumroad.com/l/hover-css-extended-commercial) | [Read full license](https://ianlunn.co.uk/store/licenses/commercial/) #### Extended Commercial License - Use in unlimited applications - Sell your applications an unlimited number of times (e.g. a website template sold on a theme store)* - Your code is kept proprietary, to yourself - Free updates to the major version *With the exception of applications that allow end users to produce separate applications. See the OEM Commercial License. [Purchase](https://ianlunn.gumroad.com/l/hover-css-commercial) | [Read full license](https://ianlunn.co.uk/store/licenses/extended-commercial/) #### OEM Commercial License Should your application enable end users to produce separate applications that incorporate Ian Lunn Design Limited's software, for example, a development toolkit, library, or application builder, you must obtain an OEM Commercial License. Please [contact us](https://ianlunn.co.uk/contact/) for more information about the OEM Commercial License. ### MIT License (Pre v2.2.0 / 24th March 2017) Hover.css was previously made available under a MIT License for both commercial and non-commercial use. Anyone that obtained a MIT license for commercial use before v2.2.0 (24th March 2017) may continue to use Hover.css versions prior to v2.2.0 under that same license. If you'd like to upgrade to v2.2.0 or above, or would like to simply show your support for Hover.css (we'd much appreciate it!), please purchase an up-to-date commercial license. [Purchase a Commercial License](https://ianlunn.co.uk/store/hover-css/). ## Hire Ian Lunn [Ian Lunn](http://ianlunn.co.uk) is a Freelance Front-end Developer and author of [CSS3 Foundations](http://css3foundations.com/). Hire [Ian](http://ianlunn.co.uk) for responsive websites, WordPress websites, JavaScript, animation, and optimization. ================================================ FILE: bower.json ================================================ { "name": "hover", "homepage": "http://ianlunn.github.io/Hover", "authors": [ "Ian Lunn " ], "description": "A collection of CSS3 powered hover effects to be applied to links, buttons, logos, SVG, featured images and so on. Easily apply to your own elements, modify or just use for inspiration. Available in CSS, Sass, and LESS.", "main": "css/hover.css", "keywords": [ "Hover", "hover", "hover.css", "Hover Effects", "CSS Effects", "CSS3 Effects", "CSS Hover Effects", "CSS3 Hover Effects" ], "license": "SEE LICENSE IN LICENSE.txt", "private": false, "ignore": [ "**/.*", "node_modules", "bower_components", "test", "tests" ] } ================================================ FILE: css/demo-page.css ================================================ /* * Hover.css - Demo Page * Author: Ian Lunn @IanLunn * Author URL: http://ianlunn.co.uk/ * Github: https://github.com/IanLunn/Hover * Hover.css Copyright Ian Lunn 2017. */ /** * The following are default styles for the demo page, * you don't need to include these on your own site. */ @import url(http://fonts.googleapis.com/css?family=Roboto); body { margin: 0; padding: 40px 0 0 0; font-family: sans-serif; color: #333; line-height: 140%; } hr { margin-top: 2em; background-color: #ddd; border: none; height: 1px; } nav ul { margin: 0; padding: 0; text-align: center; font-size: .875em; font-weight: 700; } nav li { list-style: none; display: block; margin-left: 1em; margin-right: 1em; } @media only screen and (min-width: 768px) { nav li { display: inline-block; } } .sep { color: #ddd; margin: 0 4px; } #carbonads { --width: 180px; --font-size: 14px; } #carbonads { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", Helvetica, Arial, sans-serif; display: block; overflow: hidden; margin: 0 auto; margin-bottom: 20px; max-width: var(--width); border-radius: 4px; text-align: center; box-shadow: 0 0 0 1px hsla(0, 0%, 0%, .1); background-color: hsl(0, 0%, 98%); font-size: var(--font-size); line-height: 1.5; } #carbonads a { color: inherit; text-decoration: none; } #carbonads a:hover { color: inherit; } #carbonads span { position: relative; display: block; overflow: hidden; } .carbon-img { display: block; margin-bottom: 8px; max-width: var(--width); line-height: 1; } .carbon-img img { display: block; margin: 0 auto; max-width: var(--width) !important; width: var(--width); height: auto; } .carbon-text { display: block; padding: 0 1em 8px; } .carbon-poweredby { display: block; padding: 10px var(--font-size); background: repeating-linear-gradient(-45deg, transparent, transparent 5px, hsla(0, 0%, 0%, .025) 5px, hsla(0, 0%, 0%, .025) 10px) hsla(203, 11%, 95%, .4); text-transform: uppercase; letter-spacing: .5px; font-weight: 600; font-size: 9px; line-height: 0; } @media only screen and (min-width: 320px) and (max-width: 759px) { #carbonads { float: none; margin: 0 auto; max-width: 330px; } #carbonads span { position: relative; } #carbonads > span { max-width: none; } .carbon-img { float: left; margin: 0; } .carbon-img img { max-width: 130px !important; } .carbon-text { float: left; margin-bottom: 0; padding: 8px 20px; text-align: left; max-width: calc(100% - 130px - 3em); } .carbon-poweredby { left: 130px; bottom: 0; display: block; width: 100%; } } .main { max-width: 800px; margin: 0 auto; padding: 0 20px; } .browsehappy { position: absolute; top: 0; right: 0; left: 0; padding: 1em; background: black; color: white; text-align: center; } img { border: none; } small { display: block; } p, [class^="hvr-"] { font-family: 'Roboto', sans-serif; } [class^="hvr-"] { margin: .4em; padding: 1em; cursor: pointer; background: #e1e1e1; text-decoration: none; color: #666; /* Prevent highlight colour when element is tapped */ -webkit-tap-highlight-color: rgba(0,0,0,0); /* Smooth fonts */ -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } .aligncenter { text-align: center; } .sup { vertical-align: super; margin-left: -1em; padding: .21875em; line-height: 100%; font-size: .21875em; border: #eee solid 1px; border-radius: 4px; color: inherit; } .sup:hover { background: #eee; } a { color: #2098D1; text-decoration: none; } .footer a:hover, .nav:hover { color: #207AD1; } .nav { display: inline-block; font-size: .8em; } .nav.hvr-icon-down, .nav.hvr-icon-forward { padding-right: 1.2em; } .nav.hvr-icon-down::before, .nav.hvr-icon-forward::before { right: 0; } .nav:hover, .nav:focus, .nav:active { text-decoration: none; } .intro { max-width: 680px; margin: 20px auto 0 auto; } .button.cta { display: inline-block; position: relative; margin: 1.2em 0 1em 0; padding: 1em; background: #2098D1; border: none; text-decoration: none; font-weight: 700; color: white; } .effects { margin-top: 6em; } h1 { text-align: center; font-size: 3em; } h2 { margin-top: 2em; } h3 { margin: 0; } .about { border-top: #333 solid 2px; border-bottom: #333 solid 2px; } .footer { overflow: hidden; width: auto; margin-top: 6em; font-size: .9em; } .footer a { text-decoration: none; } .credit { font-size: .8em; font-weight: normal; } .licenses { margin-top: 40px; margin-bottom: 60px; } .licenses:after { display: block; content: ''; clear: both; } .license { display: block !important; margin-bottom: 20px; text-align: center; border: #2098D1 solid 1px; } .license:focus, .license:hover { border-color: #207AD1; } .license:focus .button, .license:hover .button { background-color: #207AD1; color: white; } .license__content { padding: 25px 10px; } .license__title { margin: 0; font-size: 28px; line-height: 1.4; } .license__title div { font-size: 16px; font-weight: 400; } .license__desc { margin-top: 30px; margin-bottom: 0; font-size: 22px; font-weight: 700; } .license__button.cta { display: block; margin: 0; font-size: 22px; } @media only screen and (min-width: 568px) { .license { width: 48%; float: left; } .license:nth-child(2) { float: right; } .license__content { padding: 40px 10px; } } .download { margin-top: 2.6em; } .social-button { display: inline-block; vertical-align: middle; } .twitter-follow-button { display: block; margin: 0 auto; } .follow { margin-bottom: 20px; line-height: 200%; } .made-by { display: block; margin-top: 3em; padding-top: 3em; padding-bottom: 1em; font-family: $fontFeature; font-size: 1.125em; text-align: center; line-height: 1.6; background: #181818; color: #777; } .made-by svg { display: block; } .made-by ul, .made-by p { margin: 0; padding: 0; } .made-by ul { margin-bottom: .25em; } .made-by li { display: inline-block; vertical-align: middle; line-height: 1; } .made-by p { margin-top: .4em; font-size: .875em; } .made-by a { display: inline-block; padding: 0 .125em; color: #B1B1B1; transition-duration: .2s; transition-property: color; } .made-by a:focus, .made-by a:hover { color: white; } .made-by i { font-size: 26px; height: 30px; } .made-by .follow { margin-top: 2em; } .made-by .follow iframe { display: block; margin-left: auto; margin-right: auto; margin-bottom: .5em; } .made-by small { display: block; margin-top: 3em; font-size: .625em; } @-webkit-keyframes circle { 50% { -webkit-transform: scale(1.26923077); transform: scale(1.26923077); } } @keyframes circle { 50% { transform: scale(1.26923077); } } @-webkit-keyframes initials { 50% { -webkit-transform: translateY(-8px) translateZ(0); transform: translateY(-8px) translateZ(0); } } @keyframes initials { 50% { transform: translateY(-8px) translateZ(0); } } .ild-ident { display: block; } .ild-ident svg { display: block; overflow: visible; transform: scale(1) translateZ(0); } .ild-ident .circle-holder { transform: translate(-7px, -7px); } .ild-ident .circle { transform: translate(7px, 7px); } .ild-ident .active .i { animation: initials .4s ease-in-out; } .ild-ident .active .l { animation: initials .4s .2s ease-in-out; } .ild-ident .active .circle { animation: circle .5s .1s ease-in-out; } #forkongithub { display: none; } #forkongithub a { background: #000; color: #fff; text-decoration: none; font-family: arial, sans-serif; text-align: center; font-weight: bold; padding: 5px 40px; font-size: 1rem; line-height: 2rem; position: relative; -webkit-transition: 0.5s; transition: 0.5s; } #forkongithub a:hover, #forkongithub a:focus, #forkongithub a:active { background: #2098D1; color: #fff; } #forkongithub a::before, #forkongithub a::after { content: ""; width: 100%; display: block; position: absolute; top: 1px; left: 0; height: 1px; background: #fff; } #forkongithub a::after { bottom: 1px; top: auto; } .ad { margin-top: 3.5em; padding: 3em 1.5em; background: #f8f8f8; text-align: center; } .ad h2 { margin: 0; margin-bottom: 2em; line-height: 1.4; font-size: 1.2em; } .ad a { display: inline-block; margin: 0 auto 2em auto; } .ad__preview { font-size: 0; } .ad__preview a { display: block; width: 75%; } .ad__preview img { width: 100%; } @media only screen and (min-width: 360px) { h1 { font-size: 4em; } } @media screen and (min-width: 640px) { #forkongithub { position: absolute; display: block; top: 0; right: 0; width: 200px; overflow: hidden; height: 200px; } #forkongithub a { width: 200px; position: absolute; top: 60px; right: -60px; -webkit-transform: rotate(45deg); -ms-transform: rotate(45deg); transform: rotate(45deg); box-shadow: 4px 4px 10px rgba(0,0,0,0.8); } .ad__preview a { display: inline-block; width: 32%; } .ad__preview .second { margin: 0 2%; } } ================================================ FILE: css/hover-min.css ================================================ /*! * Hover.css (http://ianlunn.github.io/Hover/) * Version: 2.3.2 * Author: Ian Lunn @IanLunn * Author URL: http://ianlunn.co.uk/ * Github: https://github.com/IanLunn/Hover * Hover.css Copyright Ian Lunn 2017. Generated with Sass. */.hvr-grow{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:transform;transition-property:transform}.hvr-grow:active,.hvr-grow:focus,.hvr-grow:hover{-webkit-transform:scale(1.1);transform:scale(1.1)}.hvr-shrink{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:transform;transition-property:transform}.hvr-shrink:active,.hvr-shrink:focus,.hvr-shrink:hover{-webkit-transform:scale(0.9);transform:scale(0.9)}@-webkit-keyframes hvr-pulse{25%{-webkit-transform:scale(1.1);transform:scale(1.1)}75%{-webkit-transform:scale(0.9);transform:scale(0.9)}}@keyframes hvr-pulse{25%{-webkit-transform:scale(1.1);transform:scale(1.1)}75%{-webkit-transform:scale(0.9);transform:scale(0.9)}}.hvr-pulse{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0)}.hvr-pulse:active,.hvr-pulse:focus,.hvr-pulse:hover{-webkit-animation-name:hvr-pulse;animation-name:hvr-pulse;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}@-webkit-keyframes hvr-pulse-grow{to{-webkit-transform:scale(1.1);transform:scale(1.1)}}@keyframes hvr-pulse-grow{to{-webkit-transform:scale(1.1);transform:scale(1.1)}}.hvr-pulse-grow{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0)}.hvr-pulse-grow:active,.hvr-pulse-grow:focus,.hvr-pulse-grow:hover{-webkit-animation-name:hvr-pulse-grow;animation-name:hvr-pulse-grow;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-direction:alternate;animation-direction:alternate}@-webkit-keyframes hvr-pulse-shrink{to{-webkit-transform:scale(0.9);transform:scale(0.9)}}@keyframes hvr-pulse-shrink{to{-webkit-transform:scale(0.9);transform:scale(0.9)}}.hvr-pulse-shrink{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0)}.hvr-pulse-shrink:active,.hvr-pulse-shrink:focus,.hvr-pulse-shrink:hover{-webkit-animation-name:hvr-pulse-shrink;animation-name:hvr-pulse-shrink;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-direction:alternate;animation-direction:alternate}@-webkit-keyframes hvr-push{50%{-webkit-transform:scale(0.8);transform:scale(0.8)}100%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes hvr-push{50%{-webkit-transform:scale(0.8);transform:scale(0.8)}100%{-webkit-transform:scale(1);transform:scale(1)}}.hvr-push{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0)}.hvr-push:active,.hvr-push:focus,.hvr-push:hover{-webkit-animation-name:hvr-push;animation-name:hvr-push;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-iteration-count:1;animation-iteration-count:1}@-webkit-keyframes hvr-pop{50%{-webkit-transform:scale(1.2);transform:scale(1.2)}}@keyframes hvr-pop{50%{-webkit-transform:scale(1.2);transform:scale(1.2)}}.hvr-pop{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0)}.hvr-pop:active,.hvr-pop:focus,.hvr-pop:hover{-webkit-animation-name:hvr-pop;animation-name:hvr-pop;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-iteration-count:1;animation-iteration-count:1}.hvr-bounce-in{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);-webkit-transition-duration:.5s;transition-duration:.5s}.hvr-bounce-in:active,.hvr-bounce-in:focus,.hvr-bounce-in:hover{-webkit-transform:scale(1.2);transform:scale(1.2);-webkit-transition-timing-function:cubic-bezier(0.47,2.02,.31,-.36);transition-timing-function:cubic-bezier(0.47,2.02,.31,-.36)}.hvr-bounce-out{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);-webkit-transition-duration:.5s;transition-duration:.5s}.hvr-bounce-out:active,.hvr-bounce-out:focus,.hvr-bounce-out:hover{-webkit-transform:scale(0.8);transform:scale(0.8);-webkit-transition-timing-function:cubic-bezier(0.47,2.02,.31,-.36);transition-timing-function:cubic-bezier(0.47,2.02,.31,-.36)}.hvr-rotate{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:transform;transition-property:transform}.hvr-rotate:active,.hvr-rotate:focus,.hvr-rotate:hover{-webkit-transform:rotate(4deg);transform:rotate(4deg)}.hvr-grow-rotate{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:transform;transition-property:transform}.hvr-grow-rotate:active,.hvr-grow-rotate:focus,.hvr-grow-rotate:hover{-webkit-transform:scale(1.1) rotate(4deg);transform:scale(1.1) rotate(4deg)}.hvr-float{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:transform;transition-property:transform;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.hvr-float:active,.hvr-float:focus,.hvr-float:hover{-webkit-transform:translateY(-8px);transform:translateY(-8px)}.hvr-sink{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:transform;transition-property:transform;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.hvr-sink:active,.hvr-sink:focus,.hvr-sink:hover{-webkit-transform:translateY(8px);transform:translateY(8px)}@-webkit-keyframes hvr-bob{0%{-webkit-transform:translateY(-8px);transform:translateY(-8px)}50%{-webkit-transform:translateY(-4px);transform:translateY(-4px)}100%{-webkit-transform:translateY(-8px);transform:translateY(-8px)}}@keyframes hvr-bob{0%{-webkit-transform:translateY(-8px);transform:translateY(-8px)}50%{-webkit-transform:translateY(-4px);transform:translateY(-4px)}100%{-webkit-transform:translateY(-8px);transform:translateY(-8px)}}@-webkit-keyframes hvr-bob-float{100%{-webkit-transform:translateY(-8px);transform:translateY(-8px)}}@keyframes hvr-bob-float{100%{-webkit-transform:translateY(-8px);transform:translateY(-8px)}}.hvr-bob{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0)}.hvr-bob:active,.hvr-bob:focus,.hvr-bob:hover{-webkit-animation-name:hvr-bob-float,hvr-bob;animation-name:hvr-bob-float,hvr-bob;-webkit-animation-duration:.3s,1.5s;animation-duration:.3s,1.5s;-webkit-animation-delay:0s,.3s;animation-delay:0s,.3s;-webkit-animation-timing-function:ease-out,ease-in-out;animation-timing-function:ease-out,ease-in-out;-webkit-animation-iteration-count:1,infinite;animation-iteration-count:1,infinite;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-direction:normal,alternate;animation-direction:normal,alternate}@-webkit-keyframes hvr-hang{0%{-webkit-transform:translateY(8px);transform:translateY(8px)}50%{-webkit-transform:translateY(4px);transform:translateY(4px)}100%{-webkit-transform:translateY(8px);transform:translateY(8px)}}@keyframes hvr-hang{0%{-webkit-transform:translateY(8px);transform:translateY(8px)}50%{-webkit-transform:translateY(4px);transform:translateY(4px)}100%{-webkit-transform:translateY(8px);transform:translateY(8px)}}@-webkit-keyframes hvr-hang-sink{100%{-webkit-transform:translateY(8px);transform:translateY(8px)}}@keyframes hvr-hang-sink{100%{-webkit-transform:translateY(8px);transform:translateY(8px)}}.hvr-hang{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0)}.hvr-hang:active,.hvr-hang:focus,.hvr-hang:hover{-webkit-animation-name:hvr-hang-sink,hvr-hang;animation-name:hvr-hang-sink,hvr-hang;-webkit-animation-duration:.3s,1.5s;animation-duration:.3s,1.5s;-webkit-animation-delay:0s,.3s;animation-delay:0s,.3s;-webkit-animation-timing-function:ease-out,ease-in-out;animation-timing-function:ease-out,ease-in-out;-webkit-animation-iteration-count:1,infinite;animation-iteration-count:1,infinite;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-direction:normal,alternate;animation-direction:normal,alternate}.hvr-skew{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:transform;transition-property:transform}.hvr-skew:active,.hvr-skew:focus,.hvr-skew:hover{-webkit-transform:skew(-10deg);transform:skew(-10deg)}.hvr-skew-forward{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:transform;transition-property:transform;-webkit-transform-origin:0 100%;transform-origin:0 100%}.hvr-skew-forward:active,.hvr-skew-forward:focus,.hvr-skew-forward:hover{-webkit-transform:skew(-10deg);transform:skew(-10deg)}.hvr-skew-backward{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:transform;transition-property:transform;-webkit-transform-origin:0 100%;transform-origin:0 100%}.hvr-skew-backward:active,.hvr-skew-backward:focus,.hvr-skew-backward:hover{-webkit-transform:skew(10deg);transform:skew(10deg)}@-webkit-keyframes hvr-wobble-vertical{16.65%{-webkit-transform:translateY(8px);transform:translateY(8px)}33.3%{-webkit-transform:translateY(-6px);transform:translateY(-6px)}49.95%{-webkit-transform:translateY(4px);transform:translateY(4px)}66.6%{-webkit-transform:translateY(-2px);transform:translateY(-2px)}83.25%{-webkit-transform:translateY(1px);transform:translateY(1px)}100%{-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes hvr-wobble-vertical{16.65%{-webkit-transform:translateY(8px);transform:translateY(8px)}33.3%{-webkit-transform:translateY(-6px);transform:translateY(-6px)}49.95%{-webkit-transform:translateY(4px);transform:translateY(4px)}66.6%{-webkit-transform:translateY(-2px);transform:translateY(-2px)}83.25%{-webkit-transform:translateY(1px);transform:translateY(1px)}100%{-webkit-transform:translateY(0);transform:translateY(0)}}.hvr-wobble-vertical{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0)}.hvr-wobble-vertical:active,.hvr-wobble-vertical:focus,.hvr-wobble-vertical:hover{-webkit-animation-name:hvr-wobble-vertical;animation-name:hvr-wobble-vertical;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-iteration-count:1;animation-iteration-count:1}@-webkit-keyframes hvr-wobble-horizontal{16.65%{-webkit-transform:translateX(8px);transform:translateX(8px)}33.3%{-webkit-transform:translateX(-6px);transform:translateX(-6px)}49.95%{-webkit-transform:translateX(4px);transform:translateX(4px)}66.6%{-webkit-transform:translateX(-2px);transform:translateX(-2px)}83.25%{-webkit-transform:translateX(1px);transform:translateX(1px)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes hvr-wobble-horizontal{16.65%{-webkit-transform:translateX(8px);transform:translateX(8px)}33.3%{-webkit-transform:translateX(-6px);transform:translateX(-6px)}49.95%{-webkit-transform:translateX(4px);transform:translateX(4px)}66.6%{-webkit-transform:translateX(-2px);transform:translateX(-2px)}83.25%{-webkit-transform:translateX(1px);transform:translateX(1px)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}.hvr-wobble-horizontal{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0)}.hvr-wobble-horizontal:active,.hvr-wobble-horizontal:focus,.hvr-wobble-horizontal:hover{-webkit-animation-name:hvr-wobble-horizontal;animation-name:hvr-wobble-horizontal;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-iteration-count:1;animation-iteration-count:1}@-webkit-keyframes hvr-wobble-to-bottom-right{16.65%{-webkit-transform:translate(8px,8px);transform:translate(8px,8px)}33.3%{-webkit-transform:translate(-6px,-6px);transform:translate(-6px,-6px)}49.95%{-webkit-transform:translate(4px,4px);transform:translate(4px,4px)}66.6%{-webkit-transform:translate(-2px,-2px);transform:translate(-2px,-2px)}83.25%{-webkit-transform:translate(1px,1px);transform:translate(1px,1px)}100%{-webkit-transform:translate(0,0);transform:translate(0,0)}}@keyframes hvr-wobble-to-bottom-right{16.65%{-webkit-transform:translate(8px,8px);transform:translate(8px,8px)}33.3%{-webkit-transform:translate(-6px,-6px);transform:translate(-6px,-6px)}49.95%{-webkit-transform:translate(4px,4px);transform:translate(4px,4px)}66.6%{-webkit-transform:translate(-2px,-2px);transform:translate(-2px,-2px)}83.25%{-webkit-transform:translate(1px,1px);transform:translate(1px,1px)}100%{-webkit-transform:translate(0,0);transform:translate(0,0)}}.hvr-wobble-to-bottom-right{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0)}.hvr-wobble-to-bottom-right:active,.hvr-wobble-to-bottom-right:focus,.hvr-wobble-to-bottom-right:hover{-webkit-animation-name:hvr-wobble-to-bottom-right;animation-name:hvr-wobble-to-bottom-right;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-iteration-count:1;animation-iteration-count:1}@-webkit-keyframes hvr-wobble-to-top-right{16.65%{-webkit-transform:translate(8px,-8px);transform:translate(8px,-8px)}33.3%{-webkit-transform:translate(-6px,6px);transform:translate(-6px,6px)}49.95%{-webkit-transform:translate(4px,-4px);transform:translate(4px,-4px)}66.6%{-webkit-transform:translate(-2px,2px);transform:translate(-2px,2px)}83.25%{-webkit-transform:translate(1px,-1px);transform:translate(1px,-1px)}100%{-webkit-transform:translate(0,0);transform:translate(0,0)}}@keyframes hvr-wobble-to-top-right{16.65%{-webkit-transform:translate(8px,-8px);transform:translate(8px,-8px)}33.3%{-webkit-transform:translate(-6px,6px);transform:translate(-6px,6px)}49.95%{-webkit-transform:translate(4px,-4px);transform:translate(4px,-4px)}66.6%{-webkit-transform:translate(-2px,2px);transform:translate(-2px,2px)}83.25%{-webkit-transform:translate(1px,-1px);transform:translate(1px,-1px)}100%{-webkit-transform:translate(0,0);transform:translate(0,0)}}.hvr-wobble-to-top-right{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0)}.hvr-wobble-to-top-right:active,.hvr-wobble-to-top-right:focus,.hvr-wobble-to-top-right:hover{-webkit-animation-name:hvr-wobble-to-top-right;animation-name:hvr-wobble-to-top-right;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-iteration-count:1;animation-iteration-count:1}@-webkit-keyframes hvr-wobble-top{16.65%{-webkit-transform:skew(-12deg);transform:skew(-12deg)}33.3%{-webkit-transform:skew(10deg);transform:skew(10deg)}49.95%{-webkit-transform:skew(-6deg);transform:skew(-6deg)}66.6%{-webkit-transform:skew(4deg);transform:skew(4deg)}83.25%{-webkit-transform:skew(-2deg);transform:skew(-2deg)}100%{-webkit-transform:skew(0);transform:skew(0)}}@keyframes hvr-wobble-top{16.65%{-webkit-transform:skew(-12deg);transform:skew(-12deg)}33.3%{-webkit-transform:skew(10deg);transform:skew(10deg)}49.95%{-webkit-transform:skew(-6deg);transform:skew(-6deg)}66.6%{-webkit-transform:skew(4deg);transform:skew(4deg)}83.25%{-webkit-transform:skew(-2deg);transform:skew(-2deg)}100%{-webkit-transform:skew(0);transform:skew(0)}}.hvr-wobble-top{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);-webkit-transform-origin:0 100%;transform-origin:0 100%}.hvr-wobble-top:active,.hvr-wobble-top:focus,.hvr-wobble-top:hover{-webkit-animation-name:hvr-wobble-top;animation-name:hvr-wobble-top;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-iteration-count:1;animation-iteration-count:1}@-webkit-keyframes hvr-wobble-bottom{16.65%{-webkit-transform:skew(-12deg);transform:skew(-12deg)}33.3%{-webkit-transform:skew(10deg);transform:skew(10deg)}49.95%{-webkit-transform:skew(-6deg);transform:skew(-6deg)}66.6%{-webkit-transform:skew(4deg);transform:skew(4deg)}83.25%{-webkit-transform:skew(-2deg);transform:skew(-2deg)}100%{-webkit-transform:skew(0);transform:skew(0)}}@keyframes hvr-wobble-bottom{16.65%{-webkit-transform:skew(-12deg);transform:skew(-12deg)}33.3%{-webkit-transform:skew(10deg);transform:skew(10deg)}49.95%{-webkit-transform:skew(-6deg);transform:skew(-6deg)}66.6%{-webkit-transform:skew(4deg);transform:skew(4deg)}83.25%{-webkit-transform:skew(-2deg);transform:skew(-2deg)}100%{-webkit-transform:skew(0);transform:skew(0)}}.hvr-wobble-bottom{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);-webkit-transform-origin:100% 0;transform-origin:100% 0}.hvr-wobble-bottom:active,.hvr-wobble-bottom:focus,.hvr-wobble-bottom:hover{-webkit-animation-name:hvr-wobble-bottom;animation-name:hvr-wobble-bottom;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-iteration-count:1;animation-iteration-count:1}@-webkit-keyframes hvr-wobble-skew{16.65%{-webkit-transform:skew(-12deg);transform:skew(-12deg)}33.3%{-webkit-transform:skew(10deg);transform:skew(10deg)}49.95%{-webkit-transform:skew(-6deg);transform:skew(-6deg)}66.6%{-webkit-transform:skew(4deg);transform:skew(4deg)}83.25%{-webkit-transform:skew(-2deg);transform:skew(-2deg)}100%{-webkit-transform:skew(0);transform:skew(0)}}@keyframes hvr-wobble-skew{16.65%{-webkit-transform:skew(-12deg);transform:skew(-12deg)}33.3%{-webkit-transform:skew(10deg);transform:skew(10deg)}49.95%{-webkit-transform:skew(-6deg);transform:skew(-6deg)}66.6%{-webkit-transform:skew(4deg);transform:skew(4deg)}83.25%{-webkit-transform:skew(-2deg);transform:skew(-2deg)}100%{-webkit-transform:skew(0);transform:skew(0)}}.hvr-wobble-skew{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0)}.hvr-wobble-skew:active,.hvr-wobble-skew:focus,.hvr-wobble-skew:hover{-webkit-animation-name:hvr-wobble-skew;animation-name:hvr-wobble-skew;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-iteration-count:1;animation-iteration-count:1}@-webkit-keyframes hvr-buzz{50%{-webkit-transform:translateX(3px) rotate(2deg);transform:translateX(3px) rotate(2deg)}100%{-webkit-transform:translateX(-3px) rotate(-2deg);transform:translateX(-3px) rotate(-2deg)}}@keyframes hvr-buzz{50%{-webkit-transform:translateX(3px) rotate(2deg);transform:translateX(3px) rotate(2deg)}100%{-webkit-transform:translateX(-3px) rotate(-2deg);transform:translateX(-3px) rotate(-2deg)}}.hvr-buzz{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0)}.hvr-buzz:active,.hvr-buzz:focus,.hvr-buzz:hover{-webkit-animation-name:hvr-buzz;animation-name:hvr-buzz;-webkit-animation-duration:.15s;animation-duration:.15s;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}@-webkit-keyframes hvr-buzz-out{10%{-webkit-transform:translateX(3px) rotate(2deg);transform:translateX(3px) rotate(2deg)}20%{-webkit-transform:translateX(-3px) rotate(-2deg);transform:translateX(-3px) rotate(-2deg)}30%{-webkit-transform:translateX(3px) rotate(2deg);transform:translateX(3px) rotate(2deg)}40%{-webkit-transform:translateX(-3px) rotate(-2deg);transform:translateX(-3px) rotate(-2deg)}50%{-webkit-transform:translateX(2px) rotate(1deg);transform:translateX(2px) rotate(1deg)}60%{-webkit-transform:translateX(-2px) rotate(-1deg);transform:translateX(-2px) rotate(-1deg)}70%{-webkit-transform:translateX(2px) rotate(1deg);transform:translateX(2px) rotate(1deg)}80%{-webkit-transform:translateX(-2px) rotate(-1deg);transform:translateX(-2px) rotate(-1deg)}90%{-webkit-transform:translateX(1px) rotate(0);transform:translateX(1px) rotate(0)}100%{-webkit-transform:translateX(-1px) rotate(0);transform:translateX(-1px) rotate(0)}}@keyframes hvr-buzz-out{10%{-webkit-transform:translateX(3px) rotate(2deg);transform:translateX(3px) rotate(2deg)}20%{-webkit-transform:translateX(-3px) rotate(-2deg);transform:translateX(-3px) rotate(-2deg)}30%{-webkit-transform:translateX(3px) rotate(2deg);transform:translateX(3px) rotate(2deg)}40%{-webkit-transform:translateX(-3px) rotate(-2deg);transform:translateX(-3px) rotate(-2deg)}50%{-webkit-transform:translateX(2px) rotate(1deg);transform:translateX(2px) rotate(1deg)}60%{-webkit-transform:translateX(-2px) rotate(-1deg);transform:translateX(-2px) rotate(-1deg)}70%{-webkit-transform:translateX(2px) rotate(1deg);transform:translateX(2px) rotate(1deg)}80%{-webkit-transform:translateX(-2px) rotate(-1deg);transform:translateX(-2px) rotate(-1deg)}90%{-webkit-transform:translateX(1px) rotate(0);transform:translateX(1px) rotate(0)}100%{-webkit-transform:translateX(-1px) rotate(0);transform:translateX(-1px) rotate(0)}}.hvr-buzz-out{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0)}.hvr-buzz-out:active,.hvr-buzz-out:focus,.hvr-buzz-out:hover{-webkit-animation-name:hvr-buzz-out;animation-name:hvr-buzz-out;-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-iteration-count:1;animation-iteration-count:1}.hvr-forward{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:transform;transition-property:transform}.hvr-forward:active,.hvr-forward:focus,.hvr-forward:hover{-webkit-transform:translateX(8px);transform:translateX(8px)}.hvr-backward{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:transform;transition-property:transform}.hvr-backward:active,.hvr-backward:focus,.hvr-backward:hover{-webkit-transform:translateX(-8px);transform:translateX(-8px)}.hvr-fade{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);overflow:hidden;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:color,background-color;transition-property:color,background-color}.hvr-fade:active,.hvr-fade:focus,.hvr-fade:hover{background-color:#2098D1;color:#fff}@-webkit-keyframes hvr-back-pulse{50%{background-color:rgba(32,152,209,.75)}}@keyframes hvr-back-pulse{50%{background-color:rgba(32,152,209,.75)}}.hvr-back-pulse{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);overflow:hidden;-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-property:color,background-color;transition-property:color,background-color}.hvr-back-pulse:active,.hvr-back-pulse:focus,.hvr-back-pulse:hover{-webkit-animation-name:hvr-back-pulse;animation-name:hvr-back-pulse;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-delay:.5s;animation-delay:.5s;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;background-color:#2098D1;background-color:#2098d1;color:#fff}.hvr-sweep-to-right{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);position:relative;-webkit-transition-property:color;transition-property:color;-webkit-transition-duration:.3s;transition-duration:.3s}.hvr-sweep-to-right:before{content:"";position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;background:#2098D1;-webkit-transform:scaleX(0);transform:scaleX(0);-webkit-transform-origin:0 50%;transform-origin:0 50%;-webkit-transition-property:transform;transition-property:transform;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.hvr-sweep-to-right:active,.hvr-sweep-to-right:focus,.hvr-sweep-to-right:hover{color:#fff}.hvr-sweep-to-right:active:before,.hvr-sweep-to-right:focus:before,.hvr-sweep-to-right:hover:before{-webkit-transform:scaleX(1);transform:scaleX(1)}.hvr-sweep-to-left{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);position:relative;-webkit-transition-property:color;transition-property:color;-webkit-transition-duration:.3s;transition-duration:.3s}.hvr-sweep-to-left:before{content:"";position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;background:#2098D1;-webkit-transform:scaleX(0);transform:scaleX(0);-webkit-transform-origin:100% 50%;transform-origin:100% 50%;-webkit-transition-property:transform;transition-property:transform;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.hvr-sweep-to-left:active,.hvr-sweep-to-left:focus,.hvr-sweep-to-left:hover{color:#fff}.hvr-sweep-to-left:active:before,.hvr-sweep-to-left:focus:before,.hvr-sweep-to-left:hover:before{-webkit-transform:scaleX(1);transform:scaleX(1)}.hvr-sweep-to-bottom{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);position:relative;-webkit-transition-property:color;transition-property:color;-webkit-transition-duration:.3s;transition-duration:.3s}.hvr-sweep-to-bottom:before{content:"";position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;background:#2098D1;-webkit-transform:scaleY(0);transform:scaleY(0);-webkit-transform-origin:50% 0;transform-origin:50% 0;-webkit-transition-property:transform;transition-property:transform;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.hvr-sweep-to-bottom:active,.hvr-sweep-to-bottom:focus,.hvr-sweep-to-bottom:hover{color:#fff}.hvr-sweep-to-bottom:active:before,.hvr-sweep-to-bottom:focus:before,.hvr-sweep-to-bottom:hover:before{-webkit-transform:scaleY(1);transform:scaleY(1)}.hvr-sweep-to-top{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);position:relative;-webkit-transition-property:color;transition-property:color;-webkit-transition-duration:.3s;transition-duration:.3s}.hvr-sweep-to-top:before{content:"";position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;background:#2098D1;-webkit-transform:scaleY(0);transform:scaleY(0);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;-webkit-transition-property:transform;transition-property:transform;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.hvr-sweep-to-top:active,.hvr-sweep-to-top:focus,.hvr-sweep-to-top:hover{color:#fff}.hvr-sweep-to-top:active:before,.hvr-sweep-to-top:focus:before,.hvr-sweep-to-top:hover:before{-webkit-transform:scaleY(1);transform:scaleY(1)}.hvr-bounce-to-right{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);position:relative;-webkit-transition-property:color;transition-property:color;-webkit-transition-duration:.5s;transition-duration:.5s}.hvr-bounce-to-right:before{content:"";position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;background:#2098D1;-webkit-transform:scaleX(0);transform:scaleX(0);-webkit-transform-origin:0 50%;transform-origin:0 50%;-webkit-transition-property:transform;transition-property:transform;-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.hvr-bounce-to-right:active,.hvr-bounce-to-right:focus,.hvr-bounce-to-right:hover{color:#fff}.hvr-bounce-to-right:active:before,.hvr-bounce-to-right:focus:before,.hvr-bounce-to-right:hover:before{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transition-timing-function:cubic-bezier(0.52,1.64,.37,.66);transition-timing-function:cubic-bezier(0.52,1.64,.37,.66)}.hvr-bounce-to-left{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);position:relative;-webkit-transition-property:color;transition-property:color;-webkit-transition-duration:.5s;transition-duration:.5s}.hvr-bounce-to-left:before{content:"";position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;background:#2098D1;-webkit-transform:scaleX(0);transform:scaleX(0);-webkit-transform-origin:100% 50%;transform-origin:100% 50%;-webkit-transition-property:transform;transition-property:transform;-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.hvr-bounce-to-left:active,.hvr-bounce-to-left:focus,.hvr-bounce-to-left:hover{color:#fff}.hvr-bounce-to-left:active:before,.hvr-bounce-to-left:focus:before,.hvr-bounce-to-left:hover:before{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transition-timing-function:cubic-bezier(0.52,1.64,.37,.66);transition-timing-function:cubic-bezier(0.52,1.64,.37,.66)}.hvr-bounce-to-bottom{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);position:relative;-webkit-transition-property:color;transition-property:color;-webkit-transition-duration:.5s;transition-duration:.5s}.hvr-bounce-to-bottom:before{content:"";position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;background:#2098D1;-webkit-transform:scaleY(0);transform:scaleY(0);-webkit-transform-origin:50% 0;transform-origin:50% 0;-webkit-transition-property:transform;transition-property:transform;-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.hvr-bounce-to-bottom:active,.hvr-bounce-to-bottom:focus,.hvr-bounce-to-bottom:hover{color:#fff}.hvr-bounce-to-bottom:active:before,.hvr-bounce-to-bottom:focus:before,.hvr-bounce-to-bottom:hover:before{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition-timing-function:cubic-bezier(0.52,1.64,.37,.66);transition-timing-function:cubic-bezier(0.52,1.64,.37,.66)}.hvr-bounce-to-top{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);position:relative;-webkit-transition-property:color;transition-property:color;-webkit-transition-duration:.5s;transition-duration:.5s}.hvr-bounce-to-top:before{content:"";position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;background:#2098D1;-webkit-transform:scaleY(0);transform:scaleY(0);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;-webkit-transition-property:transform;transition-property:transform;-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.hvr-bounce-to-top:active,.hvr-bounce-to-top:focus,.hvr-bounce-to-top:hover{color:#fff}.hvr-bounce-to-top:active:before,.hvr-bounce-to-top:focus:before,.hvr-bounce-to-top:hover:before{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition-timing-function:cubic-bezier(0.52,1.64,.37,.66);transition-timing-function:cubic-bezier(0.52,1.64,.37,.66)}.hvr-radial-out{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);position:relative;overflow:hidden;background:#e1e1e1;-webkit-transition-property:color;transition-property:color;-webkit-transition-duration:.3s;transition-duration:.3s}.hvr-radial-out:before{content:"";position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;background:#2098D1;border-radius:100%;-webkit-transform:scale(0);transform:scale(0);-webkit-transition-property:transform;transition-property:transform;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.hvr-radial-out:active,.hvr-radial-out:focus,.hvr-radial-out:hover{color:#fff}.hvr-radial-out:active:before,.hvr-radial-out:focus:before,.hvr-radial-out:hover:before{-webkit-transform:scale(2);transform:scale(2)}.hvr-radial-in{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);position:relative;overflow:hidden;background:#2098D1;-webkit-transition-property:color;transition-property:color;-webkit-transition-duration:.3s;transition-duration:.3s}.hvr-radial-in:before{content:"";position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;background:#e1e1e1;border-radius:100%;-webkit-transform:scale(2);transform:scale(2);-webkit-transition-property:transform;transition-property:transform;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.hvr-radial-in:active,.hvr-radial-in:focus,.hvr-radial-in:hover{color:#fff}.hvr-radial-in:active:before,.hvr-radial-in:focus:before,.hvr-radial-in:hover:before{-webkit-transform:scale(0);transform:scale(0)}.hvr-rectangle-in{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);position:relative;background:#2098D1;-webkit-transition-property:color;transition-property:color;-webkit-transition-duration:.3s;transition-duration:.3s}.hvr-rectangle-in:before{content:"";position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;background:#e1e1e1;-webkit-transform:scale(1);transform:scale(1);-webkit-transition-property:transform;transition-property:transform;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.hvr-rectangle-in:active,.hvr-rectangle-in:focus,.hvr-rectangle-in:hover{color:#fff}.hvr-rectangle-in:active:before,.hvr-rectangle-in:focus:before,.hvr-rectangle-in:hover:before{-webkit-transform:scale(0);transform:scale(0)}.hvr-rectangle-out{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);position:relative;background:#e1e1e1;-webkit-transition-property:color;transition-property:color;-webkit-transition-duration:.3s;transition-duration:.3s}.hvr-rectangle-out:before{content:"";position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;background:#2098D1;-webkit-transform:scale(0);transform:scale(0);-webkit-transition-property:transform;transition-property:transform;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.hvr-rectangle-out:active,.hvr-rectangle-out:focus,.hvr-rectangle-out:hover{color:#fff}.hvr-rectangle-out:active:before,.hvr-rectangle-out:focus:before,.hvr-rectangle-out:hover:before{-webkit-transform:scale(1);transform:scale(1)}.hvr-shutter-in-horizontal{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);position:relative;background:#2098D1;-webkit-transition-property:color;transition-property:color;-webkit-transition-duration:.3s;transition-duration:.3s}.hvr-shutter-in-horizontal:before{content:"";position:absolute;z-index:-1;top:0;bottom:0;left:0;right:0;background:#e1e1e1;-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:50%;transform-origin:50%;-webkit-transition-property:transform;transition-property:transform;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.hvr-shutter-in-horizontal:active,.hvr-shutter-in-horizontal:focus,.hvr-shutter-in-horizontal:hover{color:#fff}.hvr-shutter-in-horizontal:active:before,.hvr-shutter-in-horizontal:focus:before,.hvr-shutter-in-horizontal:hover:before{-webkit-transform:scaleX(0);transform:scaleX(0)}.hvr-shutter-out-horizontal{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);position:relative;background:#e1e1e1;-webkit-transition-property:color;transition-property:color;-webkit-transition-duration:.3s;transition-duration:.3s}.hvr-shutter-out-horizontal:before{content:"";position:absolute;z-index:-1;top:0;bottom:0;left:0;right:0;background:#2098D1;-webkit-transform:scaleX(0);transform:scaleX(0);-webkit-transform-origin:50%;transform-origin:50%;-webkit-transition-property:transform;transition-property:transform;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.hvr-shutter-out-horizontal:active,.hvr-shutter-out-horizontal:focus,.hvr-shutter-out-horizontal:hover{color:#fff}.hvr-shutter-out-horizontal:active:before,.hvr-shutter-out-horizontal:focus:before,.hvr-shutter-out-horizontal:hover:before{-webkit-transform:scaleX(1);transform:scaleX(1)}.hvr-shutter-in-vertical{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);position:relative;background:#2098D1;-webkit-transition-property:color;transition-property:color;-webkit-transition-duration:.3s;transition-duration:.3s}.hvr-shutter-in-vertical:before{content:"";position:absolute;z-index:-1;top:0;bottom:0;left:0;right:0;background:#e1e1e1;-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:50%;transform-origin:50%;-webkit-transition-property:transform;transition-property:transform;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.hvr-shutter-in-vertical:active,.hvr-shutter-in-vertical:focus,.hvr-shutter-in-vertical:hover{color:#fff}.hvr-shutter-in-vertical:active:before,.hvr-shutter-in-vertical:focus:before,.hvr-shutter-in-vertical:hover:before{-webkit-transform:scaleY(0);transform:scaleY(0)}.hvr-shutter-out-vertical{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);position:relative;background:#e1e1e1;-webkit-transition-property:color;transition-property:color;-webkit-transition-duration:.3s;transition-duration:.3s}.hvr-shutter-out-vertical:before{content:"";position:absolute;z-index:-1;top:0;bottom:0;left:0;right:0;background:#2098D1;-webkit-transform:scaleY(0);transform:scaleY(0);-webkit-transform-origin:50%;transform-origin:50%;-webkit-transition-property:transform;transition-property:transform;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.hvr-shutter-out-vertical:active,.hvr-shutter-out-vertical:focus,.hvr-shutter-out-vertical:hover{color:#fff}.hvr-shutter-out-vertical:active:before,.hvr-shutter-out-vertical:focus:before,.hvr-shutter-out-vertical:hover:before{-webkit-transform:scaleY(1);transform:scaleY(1)}.hvr-border-fade{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:box-shadow;transition-property:box-shadow;box-shadow:inset 0 0 0 4px #e1e1e1,0 0 1px rgba(0,0,0,0)}.hvr-border-fade:active,.hvr-border-fade:focus,.hvr-border-fade:hover{box-shadow:inset 0 0 0 4px #2098D1,0 0 1px rgba(0,0,0,0)}.hvr-hollow{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:background;transition-property:background;box-shadow:inset 0 0 0 4px #e1e1e1,0 0 1px rgba(0,0,0,0)}.hvr-hollow:active,.hvr-hollow:focus,.hvr-hollow:hover{background:0 0}.hvr-trim{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);position:relative}.hvr-trim:before{content:'';position:absolute;border:#fff solid 4px;top:4px;left:4px;right:4px;bottom:4px;opacity:0;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:opacity;transition-property:opacity}.hvr-trim:active:before,.hvr-trim:focus:before,.hvr-trim:hover:before{opacity:1}@-webkit-keyframes hvr-ripple-out{100%{top:-12px;right:-12px;bottom:-12px;left:-12px;opacity:0}}@keyframes hvr-ripple-out{100%{top:-12px;right:-12px;bottom:-12px;left:-12px;opacity:0}}.hvr-ripple-out{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);position:relative}.hvr-ripple-out:before{content:'';position:absolute;border:#e1e1e1 solid 6px;top:0;right:0;bottom:0;left:0;-webkit-animation-duration:1s;animation-duration:1s}.hvr-ripple-out:active:before,.hvr-ripple-out:focus:before,.hvr-ripple-out:hover:before{-webkit-animation-name:hvr-ripple-out;animation-name:hvr-ripple-out}@-webkit-keyframes hvr-ripple-in{100%{top:0;right:0;bottom:0;left:0;opacity:1}}@keyframes hvr-ripple-in{100%{top:0;right:0;bottom:0;left:0;opacity:1}}.hvr-ripple-in{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);position:relative}.hvr-ripple-in:before{content:'';position:absolute;border:#e1e1e1 solid 4px;top:-12px;right:-12px;bottom:-12px;left:-12px;opacity:0;-webkit-animation-duration:1s;animation-duration:1s}.hvr-ripple-in:active:before,.hvr-ripple-in:focus:before,.hvr-ripple-in:hover:before{-webkit-animation-name:hvr-ripple-in;animation-name:hvr-ripple-in}.hvr-outline-out{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);position:relative}.hvr-outline-out:before{content:'';position:absolute;border:#e1e1e1 solid 4px;top:0;right:0;bottom:0;left:0;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:top,right,bottom,left;transition-property:top,right,bottom,left}.hvr-outline-out:active:before,.hvr-outline-out:focus:before,.hvr-outline-out:hover:before{top:-8px;right:-8px;bottom:-8px;left:-8px}.hvr-outline-in{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);position:relative}.hvr-outline-in:before{pointer-events:none;content:'';position:absolute;border:#e1e1e1 solid 4px;top:-16px;right:-16px;bottom:-16px;left:-16px;opacity:0;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:top,right,bottom,left;transition-property:top,right,bottom,left}.hvr-outline-in:active:before,.hvr-outline-in:focus:before,.hvr-outline-in:hover:before{top:-8px;right:-8px;bottom:-8px;left:-8px;opacity:1}.hvr-round-corners{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:border-radius;transition-property:border-radius}.hvr-round-corners:active,.hvr-round-corners:focus,.hvr-round-corners:hover{border-radius:1em}.hvr-underline-from-left{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);position:relative;overflow:hidden}.hvr-underline-from-left:before{content:"";position:absolute;z-index:-1;left:0;right:100%;bottom:0;background:#2098D1;height:4px;-webkit-transition-property:right;transition-property:right;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.hvr-underline-from-left:active:before,.hvr-underline-from-left:focus:before,.hvr-underline-from-left:hover:before{right:0}.hvr-underline-from-center{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);position:relative;overflow:hidden}.hvr-underline-from-center:before{content:"";position:absolute;z-index:-1;left:51%;right:51%;bottom:0;background:#2098D1;height:4px;-webkit-transition-property:left,right;transition-property:left,right;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.hvr-underline-from-center:active:before,.hvr-underline-from-center:focus:before,.hvr-underline-from-center:hover:before{left:0;right:0}.hvr-underline-from-right{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);position:relative;overflow:hidden}.hvr-underline-from-right:before{content:"";position:absolute;z-index:-1;left:100%;right:0;bottom:0;background:#2098D1;height:4px;-webkit-transition-property:left;transition-property:left;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.hvr-underline-from-right:active:before,.hvr-underline-from-right:focus:before,.hvr-underline-from-right:hover:before{left:0}.hvr-overline-from-left{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);position:relative;overflow:hidden}.hvr-overline-from-left:before{content:"";position:absolute;z-index:-1;left:0;right:100%;top:0;background:#2098D1;height:4px;-webkit-transition-property:right;transition-property:right;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.hvr-overline-from-left:active:before,.hvr-overline-from-left:focus:before,.hvr-overline-from-left:hover:before{right:0}.hvr-overline-from-center{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);position:relative;overflow:hidden}.hvr-overline-from-center:before{content:"";position:absolute;z-index:-1;left:51%;right:51%;top:0;background:#2098D1;height:4px;-webkit-transition-property:left,right;transition-property:left,right;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.hvr-overline-from-center:active:before,.hvr-overline-from-center:focus:before,.hvr-overline-from-center:hover:before{left:0;right:0}.hvr-overline-from-right{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);position:relative;overflow:hidden}.hvr-overline-from-right:before{content:"";position:absolute;z-index:-1;left:100%;right:0;top:0;background:#2098D1;height:4px;-webkit-transition-property:left;transition-property:left;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.hvr-overline-from-right:active:before,.hvr-overline-from-right:focus:before,.hvr-overline-from-right:hover:before{left:0}.hvr-reveal{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);position:relative;overflow:hidden}.hvr-reveal:before{content:"";position:absolute;z-index:-1;left:0;right:0;top:0;bottom:0;border-color:#2098D1;border-style:solid;border-width:0;-webkit-transition-property:border-width;transition-property:border-width;-webkit-transition-duration:.1s;transition-duration:.1s;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.hvr-reveal:active:before,.hvr-reveal:focus:before,.hvr-reveal:hover:before{-webkit-transform:translateY(0);transform:translateY(0);border-width:4px}.hvr-underline-reveal{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);position:relative;overflow:hidden}.hvr-underline-reveal:before{content:"";position:absolute;z-index:-1;left:0;right:0;bottom:0;background:#2098D1;height:4px;-webkit-transform:translateY(4px);transform:translateY(4px);-webkit-transition-property:transform;transition-property:transform;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.hvr-underline-reveal:active:before,.hvr-underline-reveal:focus:before,.hvr-underline-reveal:hover:before{-webkit-transform:translateY(0);transform:translateY(0)}.hvr-overline-reveal{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);position:relative;overflow:hidden}.hvr-overline-reveal:before{content:"";position:absolute;z-index:-1;left:0;right:0;top:0;background:#2098D1;height:4px;-webkit-transform:translateY(-4px);transform:translateY(-4px);-webkit-transition-property:transform;transition-property:transform;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.hvr-overline-reveal:active:before,.hvr-overline-reveal:focus:before,.hvr-overline-reveal:hover:before{-webkit-transform:translateY(0);transform:translateY(0)}.hvr-glow{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:box-shadow;transition-property:box-shadow}.hvr-glow:active,.hvr-glow:focus,.hvr-glow:hover{box-shadow:0 0 8px rgba(0,0,0,.6)}.hvr-shadow{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:box-shadow;transition-property:box-shadow}.hvr-shadow:active,.hvr-shadow:focus,.hvr-shadow:hover{box-shadow:0 10px 10px -10px rgba(0,0,0,.5)}.hvr-grow-shadow{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:box-shadow,transform;transition-property:box-shadow,transform}.hvr-grow-shadow:active,.hvr-grow-shadow:focus,.hvr-grow-shadow:hover{box-shadow:0 10px 10px -10px rgba(0,0,0,.5);-webkit-transform:scale(1.1);transform:scale(1.1)}.hvr-box-shadow-outset{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:box-shadow;transition-property:box-shadow}.hvr-box-shadow-outset:active,.hvr-box-shadow-outset:focus,.hvr-box-shadow-outset:hover{box-shadow:2px 2px 2px rgba(0,0,0,.6)}.hvr-box-shadow-inset{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:box-shadow;transition-property:box-shadow;box-shadow:inset 0 0 0 rgba(0,0,0,.6),0 0 1px rgba(0,0,0,0)}.hvr-box-shadow-inset:active,.hvr-box-shadow-inset:focus,.hvr-box-shadow-inset:hover{box-shadow:inset 2px 2px 2px rgba(0,0,0,.6),0 0 1px rgba(0,0,0,0)}.hvr-float-shadow{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);position:relative;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:transform;transition-property:transform}.hvr-float-shadow:before{pointer-events:none;position:absolute;z-index:-1;content:'';top:100%;left:5%;height:10px;width:90%;opacity:0;background:-webkit-radial-gradient(center,ellipse,rgba(0,0,0,.35) 0,rgba(0,0,0,0) 80%);background:radial-gradient(ellipse at center,rgba(0,0,0,.35) 0,rgba(0,0,0,0) 80%);-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:transform,opacity;transition-property:transform,opacity}.hvr-float-shadow:active,.hvr-float-shadow:focus,.hvr-float-shadow:hover{-webkit-transform:translateY(-5px);transform:translateY(-5px)}.hvr-float-shadow:active:before,.hvr-float-shadow:focus:before,.hvr-float-shadow:hover:before{opacity:1;-webkit-transform:translateY(5px);transform:translateY(5px)}.hvr-shadow-radial{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);position:relative}.hvr-shadow-radial:after,.hvr-shadow-radial:before{pointer-events:none;position:absolute;content:'';left:0;width:100%;box-sizing:border-box;height:5px;opacity:0;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:opacity;transition-property:opacity}.hvr-shadow-radial:before{bottom:100%;background:-webkit-radial-gradient(50% 150%,ellipse,rgba(0,0,0,.6) 0,rgba(0,0,0,0) 80%);background:radial-gradient(ellipse at 50% 150%,rgba(0,0,0,.6) 0,rgba(0,0,0,0) 80%)}.hvr-shadow-radial:after{top:100%;background:-webkit-radial-gradient(50% -50%,ellipse,rgba(0,0,0,.6) 0,rgba(0,0,0,0) 80%);background:radial-gradient(ellipse at 50% -50%,rgba(0,0,0,.6) 0,rgba(0,0,0,0) 80%)}.hvr-shadow-radial:active:after,.hvr-shadow-radial:active:before,.hvr-shadow-radial:focus:after,.hvr-shadow-radial:focus:before,.hvr-shadow-radial:hover:after,.hvr-shadow-radial:hover:before{opacity:1}.hvr-bubble-top{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);position:relative}.hvr-bubble-top:before{pointer-events:none;position:absolute;z-index:-1;content:'';border-style:solid;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:transform;transition-property:transform;left:calc(50% - 10px);top:0;border-width:0 10px 10px;border-color:transparent transparent #e1e1e1}.hvr-bubble-top:active:before,.hvr-bubble-top:focus:before,.hvr-bubble-top:hover:before{-webkit-transform:translateY(-10px);transform:translateY(-10px)}.hvr-bubble-right{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);position:relative}.hvr-bubble-right:before{pointer-events:none;position:absolute;z-index:-1;content:'';border-style:solid;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:transform;transition-property:transform;top:calc(50% - 10px);right:0;border-width:10px 0 10px 10px;border-color:transparent transparent transparent #e1e1e1}.hvr-bubble-right:active:before,.hvr-bubble-right:focus:before,.hvr-bubble-right:hover:before{-webkit-transform:translateX(10px);transform:translateX(10px)}.hvr-bubble-bottom{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);position:relative}.hvr-bubble-bottom:before{pointer-events:none;position:absolute;z-index:-1;content:'';border-style:solid;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:transform;transition-property:transform;left:calc(50% - 10px);bottom:0;border-width:10px 10px 0;border-color:#e1e1e1 transparent transparent}.hvr-bubble-bottom:active:before,.hvr-bubble-bottom:focus:before,.hvr-bubble-bottom:hover:before{-webkit-transform:translateY(10px);transform:translateY(10px)}.hvr-bubble-left{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);position:relative}.hvr-bubble-left:before{pointer-events:none;position:absolute;z-index:-1;content:'';border-style:solid;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:transform;transition-property:transform;top:calc(50% - 10px);left:0;border-width:10px 10px 10px 0;border-color:transparent #e1e1e1 transparent transparent}.hvr-bubble-left:active:before,.hvr-bubble-left:focus:before,.hvr-bubble-left:hover:before{-webkit-transform:translateX(-10px);transform:translateX(-10px)}.hvr-bubble-float-top{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);position:relative;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:transform;transition-property:transform}.hvr-bubble-float-top:before{position:absolute;z-index:-1;content:'';left:calc(50% - 10px);top:0;border-style:solid;border-width:0 10px 10px;border-color:transparent transparent #e1e1e1;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:transform;transition-property:transform}.hvr-bubble-float-top:active,.hvr-bubble-float-top:focus,.hvr-bubble-float-top:hover{-webkit-transform:translateY(10px);transform:translateY(10px)}.hvr-bubble-float-top:active:before,.hvr-bubble-float-top:focus:before,.hvr-bubble-float-top:hover:before{-webkit-transform:translateY(-10px);transform:translateY(-10px)}.hvr-bubble-float-right{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);position:relative;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:transform;transition-property:transform}.hvr-bubble-float-right:before{position:absolute;z-index:-1;top:calc(50% - 10px);right:0;content:'';border-style:solid;border-width:10px 0 10px 10px;border-color:transparent transparent transparent #e1e1e1;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:transform;transition-property:transform}.hvr-bubble-float-right:active,.hvr-bubble-float-right:focus,.hvr-bubble-float-right:hover{-webkit-transform:translateX(-10px);transform:translateX(-10px)}.hvr-bubble-float-right:active:before,.hvr-bubble-float-right:focus:before,.hvr-bubble-float-right:hover:before{-webkit-transform:translateX(10px);transform:translateX(10px)}.hvr-bubble-float-bottom{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);position:relative;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:transform;transition-property:transform}.hvr-bubble-float-bottom:before{position:absolute;z-index:-1;content:'';left:calc(50% - 10px);bottom:0;border-style:solid;border-width:10px 10px 0;border-color:#e1e1e1 transparent transparent;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:transform;transition-property:transform}.hvr-bubble-float-bottom:active,.hvr-bubble-float-bottom:focus,.hvr-bubble-float-bottom:hover{-webkit-transform:translateY(-10px);transform:translateY(-10px)}.hvr-bubble-float-bottom:active:before,.hvr-bubble-float-bottom:focus:before,.hvr-bubble-float-bottom:hover:before{-webkit-transform:translateY(10px);transform:translateY(10px)}.hvr-bubble-float-left{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);position:relative;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:transform;transition-property:transform}.hvr-bubble-float-left:before{position:absolute;z-index:-1;content:'';top:calc(50% - 10px);left:0;border-style:solid;border-width:10px 10px 10px 0;border-color:transparent #e1e1e1 transparent transparent;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:transform;transition-property:transform}.hvr-bubble-float-left:active,.hvr-bubble-float-left:focus,.hvr-bubble-float-left:hover{-webkit-transform:translateX(10px);transform:translateX(10px)}.hvr-bubble-float-left:active:before,.hvr-bubble-float-left:focus:before,.hvr-bubble-float-left:hover:before{-webkit-transform:translateX(-10px);transform:translateX(-10px)}.hvr-icon-back{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);-webkit-transition-duration:.1s;transition-duration:.1s}.hvr-icon-back .hvr-icon{-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-transition-duration:.1s;transition-duration:.1s;-webkit-transition-property:transform;transition-property:transform;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.hvr-icon-back:active .hvr-icon,.hvr-icon-back:focus .hvr-icon,.hvr-icon-back:hover .hvr-icon{-webkit-transform:translateX(-4px);transform:translateX(-4px)}.hvr-icon-forward{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);-webkit-transition-duration:.1s;transition-duration:.1s}.hvr-icon-forward .hvr-icon{-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-transition-duration:.1s;transition-duration:.1s;-webkit-transition-property:transform;transition-property:transform;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.hvr-icon-forward:active .hvr-icon,.hvr-icon-forward:focus .hvr-icon,.hvr-icon-forward:hover .hvr-icon{-webkit-transform:translateX(4px);transform:translateX(4px)}@-webkit-keyframes hvr-icon-down{0%,100%,50%{-webkit-transform:translateY(0);transform:translateY(0)}25%,75%{-webkit-transform:translateY(6px);transform:translateY(6px)}}@keyframes hvr-icon-down{0%,100%,50%{-webkit-transform:translateY(0);transform:translateY(0)}25%,75%{-webkit-transform:translateY(6px);transform:translateY(6px)}}.hvr-icon-down{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0)}.hvr-icon-down .hvr-icon{-webkit-transform:translateZ(0);transform:translateZ(0)}.hvr-icon-down:active .hvr-icon,.hvr-icon-down:focus .hvr-icon,.hvr-icon-down:hover .hvr-icon{-webkit-animation-name:hvr-icon-down;animation-name:hvr-icon-down;-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes hvr-icon-up{0%,100%,50%{-webkit-transform:translateY(0);transform:translateY(0)}25%,75%{-webkit-transform:translateY(-6px);transform:translateY(-6px)}}@keyframes hvr-icon-up{0%,100%,50%{-webkit-transform:translateY(0);transform:translateY(0)}25%,75%{-webkit-transform:translateY(-6px);transform:translateY(-6px)}}.hvr-icon-up{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0)}.hvr-icon-up .hvr-icon{-webkit-transform:translateZ(0);transform:translateZ(0)}.hvr-icon-up:active .hvr-icon,.hvr-icon-up:focus .hvr-icon,.hvr-icon-up:hover .hvr-icon{-webkit-animation-name:hvr-icon-up;animation-name:hvr-icon-up;-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}.hvr-icon-spin{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0)}.hvr-icon-spin .hvr-icon{-webkit-transition-duration:1s;transition-duration:1s;-webkit-transition-property:transform;transition-property:transform;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out}.hvr-icon-spin:active .hvr-icon,.hvr-icon-spin:focus .hvr-icon,.hvr-icon-spin:hover .hvr-icon{-webkit-transform:rotate(360deg);transform:rotate(360deg)}@-webkit-keyframes hvr-icon-drop{0%{opacity:0}50%{opacity:0;-webkit-transform:translateY(-100%);transform:translateY(-100%)}100%,51%{opacity:1}}@keyframes hvr-icon-drop{0%{opacity:0}50%{opacity:0;-webkit-transform:translateY(-100%);transform:translateY(-100%)}100%,51%{opacity:1}}.hvr-icon-drop{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0)}.hvr-icon-drop .hvr-icon{-webkit-transform:translateZ(0);transform:translateZ(0)}.hvr-icon-drop:active .hvr-icon,.hvr-icon-drop:focus .hvr-icon,.hvr-icon-drop:hover .hvr-icon{opacity:0;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-animation-name:hvr-icon-drop;animation-name:hvr-icon-drop;-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-delay:.3s;animation-delay:.3s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:cubic-bezier(0.52,1.64,.37,.66);animation-timing-function:cubic-bezier(0.52,1.64,.37,.66)}.hvr-icon-fade{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0)}.hvr-icon-fade .hvr-icon{-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-property:color;transition-property:color}.hvr-icon-fade:active .hvr-icon,.hvr-icon-fade:focus .hvr-icon,.hvr-icon-fade:hover .hvr-icon{color:#0F9E5E}@-webkit-keyframes hvr-icon-float-away{0%{opacity:1}100%{opacity:0;-webkit-transform:translateY(-1em);transform:translateY(-1em)}}@keyframes hvr-icon-float-away{0%{opacity:1}100%{opacity:0;-webkit-transform:translateY(-1em);transform:translateY(-1em)}}.hvr-icon-float-away{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0)}.hvr-icon-float-away .hvr-icon{-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}.hvr-icon-float-away:active .hvr-icon,.hvr-icon-float-away:focus .hvr-icon,.hvr-icon-float-away:hover .hvr-icon{-webkit-animation-name:hvr-icon-float-away;animation-name:hvr-icon-float-away;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes hvr-icon-sink-away{0%{opacity:1}100%{opacity:0;-webkit-transform:translateY(1em);transform:translateY(1em)}}@keyframes hvr-icon-sink-away{0%{opacity:1}100%{opacity:0;-webkit-transform:translateY(1em);transform:translateY(1em)}}.hvr-icon-sink-away{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0)}.hvr-icon-sink-away .hvr-icon{-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}.hvr-icon-sink-away:active .hvr-icon,.hvr-icon-sink-away:focus .hvr-icon,.hvr-icon-sink-away:hover .hvr-icon{-webkit-animation-name:hvr-icon-sink-away;animation-name:hvr-icon-sink-away;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}.hvr-icon-grow{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);-webkit-transition-duration:.3s;transition-duration:.3s}.hvr-icon-grow .hvr-icon{-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:transform;transition-property:transform;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.hvr-icon-grow:active .hvr-icon,.hvr-icon-grow:focus .hvr-icon,.hvr-icon-grow:hover .hvr-icon{-webkit-transform:scale(1.3) translateZ(0);transform:scale(1.3) translateZ(0)}.hvr-icon-shrink{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);-webkit-transition-duration:.3s;transition-duration:.3s}.hvr-icon-shrink .hvr-icon{-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:transform;transition-property:transform;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.hvr-icon-shrink:active .hvr-icon,.hvr-icon-shrink:focus .hvr-icon,.hvr-icon-shrink:hover .hvr-icon{-webkit-transform:scale(0.8);transform:scale(0.8)}@-webkit-keyframes hvr-icon-pulse{25%{-webkit-transform:scale(1.3);transform:scale(1.3)}75%{-webkit-transform:scale(0.8);transform:scale(0.8)}}@keyframes hvr-icon-pulse{25%{-webkit-transform:scale(1.3);transform:scale(1.3)}75%{-webkit-transform:scale(0.8);transform:scale(0.8)}}.hvr-icon-pulse{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0)}.hvr-icon-pulse .hvr-icon{-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.hvr-icon-pulse:active .hvr-icon,.hvr-icon-pulse:focus .hvr-icon,.hvr-icon-pulse:hover .hvr-icon{-webkit-animation-name:hvr-icon-pulse;animation-name:hvr-icon-pulse;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}@-webkit-keyframes hvr-icon-pulse-grow{to{-webkit-transform:scale(1.3);transform:scale(1.3)}}@keyframes hvr-icon-pulse-grow{to{-webkit-transform:scale(1.3);transform:scale(1.3)}}.hvr-icon-pulse-grow{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0)}.hvr-icon-pulse-grow .hvr-icon{-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.hvr-icon-pulse-grow:active .hvr-icon,.hvr-icon-pulse-grow:focus .hvr-icon,.hvr-icon-pulse-grow:hover .hvr-icon{-webkit-animation-name:hvr-icon-pulse-grow;animation-name:hvr-icon-pulse-grow;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-direction:alternate;animation-direction:alternate}@-webkit-keyframes hvr-icon-pulse-shrink{to{-webkit-transform:scale(0.8);transform:scale(0.8)}}@keyframes hvr-icon-pulse-shrink{to{-webkit-transform:scale(0.8);transform:scale(0.8)}}.hvr-icon-pulse-shrink{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0)}.hvr-icon-pulse-shrink .hvr-icon{-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.hvr-icon-pulse-shrink:active .hvr-icon,.hvr-icon-pulse-shrink:focus .hvr-icon,.hvr-icon-pulse-shrink:hover .hvr-icon{-webkit-animation-name:hvr-icon-pulse-shrink;animation-name:hvr-icon-pulse-shrink;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-direction:alternate;animation-direction:alternate}@-webkit-keyframes hvr-icon-push{50%{-webkit-transform:scale(0.5);transform:scale(0.5)}}@keyframes hvr-icon-push{50%{-webkit-transform:scale(0.5);transform:scale(0.5)}}.hvr-icon-push{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);-webkit-transition-duration:.3s;transition-duration:.3s}.hvr-icon-push .hvr-icon{-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:transform;transition-property:transform;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.hvr-icon-push:active .hvr-icon,.hvr-icon-push:focus .hvr-icon,.hvr-icon-push:hover .hvr-icon{-webkit-animation-name:hvr-icon-push;animation-name:hvr-icon-push;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-iteration-count:1;animation-iteration-count:1}@-webkit-keyframes hvr-icon-pop{50%{-webkit-transform:scale(1.5);transform:scale(1.5)}}@keyframes hvr-icon-pop{50%{-webkit-transform:scale(1.5);transform:scale(1.5)}}.hvr-icon-pop{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);-webkit-transition-duration:.3s;transition-duration:.3s}.hvr-icon-pop .hvr-icon{-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:transform;transition-property:transform;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.hvr-icon-pop:active .hvr-icon,.hvr-icon-pop:focus .hvr-icon,.hvr-icon-pop:hover .hvr-icon{-webkit-animation-name:hvr-icon-pop;animation-name:hvr-icon-pop;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-iteration-count:1;animation-iteration-count:1}.hvr-icon-bounce{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);-webkit-transition-duration:.3s;transition-duration:.3s}.hvr-icon-bounce .hvr-icon{-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:transform;transition-property:transform;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.hvr-icon-bounce:active .hvr-icon,.hvr-icon-bounce:focus .hvr-icon,.hvr-icon-bounce:hover .hvr-icon{-webkit-transform:scale(1.5);transform:scale(1.5);-webkit-transition-timing-function:cubic-bezier(0.47,2.02,.31,-.36);transition-timing-function:cubic-bezier(0.47,2.02,.31,-.36)}.hvr-icon-rotate{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);-webkit-transition-duration:.3s;transition-duration:.3s}.hvr-icon-rotate .hvr-icon{-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:transform;transition-property:transform;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.hvr-icon-rotate:active .hvr-icon,.hvr-icon-rotate:focus .hvr-icon,.hvr-icon-rotate:hover .hvr-icon{-webkit-transform:rotate(20deg);transform:rotate(20deg)}.hvr-icon-grow-rotate{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);-webkit-transition-duration:.3s;transition-duration:.3s}.hvr-icon-grow-rotate .hvr-icon{-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:transform;transition-property:transform;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.hvr-icon-grow-rotate:active .hvr-icon,.hvr-icon-grow-rotate:focus .hvr-icon,.hvr-icon-grow-rotate:hover .hvr-icon{-webkit-transform:scale(1.5) rotate(12deg);transform:scale(1.5) rotate(12deg)}.hvr-icon-float{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);-webkit-transition-duration:.3s;transition-duration:.3s}.hvr-icon-float .hvr-icon{-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:transform;transition-property:transform;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.hvr-icon-float:active .hvr-icon,.hvr-icon-float:focus .hvr-icon,.hvr-icon-float:hover .hvr-icon{-webkit-transform:translateY(-4px);transform:translateY(-4px)}.hvr-icon-sink{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);-webkit-transition-duration:.3s;transition-duration:.3s}.hvr-icon-sink .hvr-icon{-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:transform;transition-property:transform;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.hvr-icon-sink:active .hvr-icon,.hvr-icon-sink:focus .hvr-icon,.hvr-icon-sink:hover .hvr-icon{-webkit-transform:translateY(4px);transform:translateY(4px)}@-webkit-keyframes hvr-icon-bob{0%{-webkit-transform:translateY(-6px);transform:translateY(-6px)}50%{-webkit-transform:translateY(-2px);transform:translateY(-2px)}100%{-webkit-transform:translateY(-6px);transform:translateY(-6px)}}@keyframes hvr-icon-bob{0%{-webkit-transform:translateY(-6px);transform:translateY(-6px)}50%{-webkit-transform:translateY(-2px);transform:translateY(-2px)}100%{-webkit-transform:translateY(-6px);transform:translateY(-6px)}}@-webkit-keyframes hvr-icon-bob-float{100%{-webkit-transform:translateY(-6px);transform:translateY(-6px)}}@keyframes hvr-icon-bob-float{100%{-webkit-transform:translateY(-6px);transform:translateY(-6px)}}.hvr-icon-bob{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);-webkit-transition-duration:.3s;transition-duration:.3s}.hvr-icon-bob .hvr-icon{-webkit-transform:translateZ(0);transform:translateZ(0)}.hvr-icon-bob:active .hvr-icon,.hvr-icon-bob:focus .hvr-icon,.hvr-icon-bob:hover .hvr-icon{-webkit-animation-name:hvr-icon-bob-float,hvr-icon-bob;animation-name:hvr-icon-bob-float,hvr-icon-bob;-webkit-animation-duration:.3s,1.5s;animation-duration:.3s,1.5s;-webkit-animation-delay:0s,.3s;animation-delay:0s,.3s;-webkit-animation-timing-function:ease-out,ease-in-out;animation-timing-function:ease-out,ease-in-out;-webkit-animation-iteration-count:1,infinite;animation-iteration-count:1,infinite;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-direction:normal,alternate;animation-direction:normal,alternate}@-webkit-keyframes hvr-icon-hang{0%{-webkit-transform:translateY(6px);transform:translateY(6px)}50%{-webkit-transform:translateY(2px);transform:translateY(2px)}100%{-webkit-transform:translateY(6px);transform:translateY(6px)}}@keyframes hvr-icon-hang{0%{-webkit-transform:translateY(6px);transform:translateY(6px)}50%{-webkit-transform:translateY(2px);transform:translateY(2px)}100%{-webkit-transform:translateY(6px);transform:translateY(6px)}}@-webkit-keyframes hvr-icon-hang-sink{100%{-webkit-transform:translateY(6px);transform:translateY(6px)}}@keyframes hvr-icon-hang-sink{100%{-webkit-transform:translateY(6px);transform:translateY(6px)}}.hvr-icon-hang{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);-webkit-transition-duration:.3s;transition-duration:.3s}.hvr-icon-hang .hvr-icon{-webkit-transform:translateZ(0);transform:translateZ(0)}.hvr-icon-hang:active .hvr-icon,.hvr-icon-hang:focus .hvr-icon,.hvr-icon-hang:hover .hvr-icon{-webkit-animation-name:hvr-icon-hang-sink,hvr-icon-hang;animation-name:hvr-icon-hang-sink,hvr-icon-hang;-webkit-animation-duration:.3s,1.5s;animation-duration:.3s,1.5s;-webkit-animation-delay:0s,.3s;animation-delay:0s,.3s;-webkit-animation-timing-function:ease-out,ease-in-out;animation-timing-function:ease-out,ease-in-out;-webkit-animation-iteration-count:1,infinite;animation-iteration-count:1,infinite;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-direction:normal,alternate;animation-direction:normal,alternate}@-webkit-keyframes hvr-icon-wobble-horizontal{16.65%{-webkit-transform:translateX(6px);transform:translateX(6px)}33.3%{-webkit-transform:translateX(-5px);transform:translateX(-5px)}49.95%{-webkit-transform:translateX(4px);transform:translateX(4px)}66.6%{-webkit-transform:translateX(-2px);transform:translateX(-2px)}83.25%{-webkit-transform:translateX(1px);transform:translateX(1px)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes hvr-icon-wobble-horizontal{16.65%{-webkit-transform:translateX(6px);transform:translateX(6px)}33.3%{-webkit-transform:translateX(-5px);transform:translateX(-5px)}49.95%{-webkit-transform:translateX(4px);transform:translateX(4px)}66.6%{-webkit-transform:translateX(-2px);transform:translateX(-2px)}83.25%{-webkit-transform:translateX(1px);transform:translateX(1px)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}.hvr-icon-wobble-horizontal{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);-webkit-transition-duration:.3s;transition-duration:.3s}.hvr-icon-wobble-horizontal .hvr-icon{-webkit-transform:translateZ(0);transform:translateZ(0)}.hvr-icon-wobble-horizontal:active .hvr-icon,.hvr-icon-wobble-horizontal:focus .hvr-icon,.hvr-icon-wobble-horizontal:hover .hvr-icon{-webkit-animation-name:hvr-icon-wobble-horizontal;animation-name:hvr-icon-wobble-horizontal;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-iteration-count:1;animation-iteration-count:1}@-webkit-keyframes hvr-icon-wobble-vertical{16.65%{-webkit-transform:translateY(6px);transform:translateY(6px)}33.3%{-webkit-transform:translateY(-5px);transform:translateY(-5px)}49.95%{-webkit-transform:translateY(4px);transform:translateY(4px)}66.6%{-webkit-transform:translateY(-2px);transform:translateY(-2px)}83.25%{-webkit-transform:translateY(1px);transform:translateY(1px)}100%{-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes hvr-icon-wobble-vertical{16.65%{-webkit-transform:translateY(6px);transform:translateY(6px)}33.3%{-webkit-transform:translateY(-5px);transform:translateY(-5px)}49.95%{-webkit-transform:translateY(4px);transform:translateY(4px)}66.6%{-webkit-transform:translateY(-2px);transform:translateY(-2px)}83.25%{-webkit-transform:translateY(1px);transform:translateY(1px)}100%{-webkit-transform:translateY(0);transform:translateY(0)}}.hvr-icon-wobble-vertical{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);-webkit-transition-duration:.3s;transition-duration:.3s}.hvr-icon-wobble-vertical .hvr-icon{-webkit-transform:translateZ(0);transform:translateZ(0)}.hvr-icon-wobble-vertical:active .hvr-icon,.hvr-icon-wobble-vertical:focus .hvr-icon,.hvr-icon-wobble-vertical:hover .hvr-icon{-webkit-animation-name:hvr-icon-wobble-vertical;animation-name:hvr-icon-wobble-vertical;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-iteration-count:1;animation-iteration-count:1}@-webkit-keyframes hvr-icon-buzz{50%{-webkit-transform:translateX(3px) rotate(2deg);transform:translateX(3px) rotate(2deg)}100%{-webkit-transform:translateX(-3px) rotate(-2deg);transform:translateX(-3px) rotate(-2deg)}}@keyframes hvr-icon-buzz{50%{-webkit-transform:translateX(3px) rotate(2deg);transform:translateX(3px) rotate(2deg)}100%{-webkit-transform:translateX(-3px) rotate(-2deg);transform:translateX(-3px) rotate(-2deg)}}.hvr-icon-buzz{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);-webkit-transition-duration:.3s;transition-duration:.3s}.hvr-icon-buzz .hvr-icon{-webkit-transform:translateZ(0);transform:translateZ(0)}.hvr-icon-buzz:active .hvr-icon,.hvr-icon-buzz:focus .hvr-icon,.hvr-icon-buzz:hover .hvr-icon{-webkit-animation-name:hvr-icon-buzz;animation-name:hvr-icon-buzz;-webkit-animation-duration:.15s;animation-duration:.15s;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}@-webkit-keyframes hvr-icon-buzz-out{10%{-webkit-transform:translateX(3px) rotate(2deg);transform:translateX(3px) rotate(2deg)}20%{-webkit-transform:translateX(-3px) rotate(-2deg);transform:translateX(-3px) rotate(-2deg)}30%{-webkit-transform:translateX(3px) rotate(2deg);transform:translateX(3px) rotate(2deg)}40%{-webkit-transform:translateX(-3px) rotate(-2deg);transform:translateX(-3px) rotate(-2deg)}50%{-webkit-transform:translateX(2px) rotate(1deg);transform:translateX(2px) rotate(1deg)}60%{-webkit-transform:translateX(-2px) rotate(-1deg);transform:translateX(-2px) rotate(-1deg)}70%{-webkit-transform:translateX(2px) rotate(1deg);transform:translateX(2px) rotate(1deg)}80%{-webkit-transform:translateX(-2px) rotate(-1deg);transform:translateX(-2px) rotate(-1deg)}90%{-webkit-transform:translateX(1px) rotate(0);transform:translateX(1px) rotate(0)}100%{-webkit-transform:translateX(-1px) rotate(0);transform:translateX(-1px) rotate(0)}}@keyframes hvr-icon-buzz-out{10%{-webkit-transform:translateX(3px) rotate(2deg);transform:translateX(3px) rotate(2deg)}20%{-webkit-transform:translateX(-3px) rotate(-2deg);transform:translateX(-3px) rotate(-2deg)}30%{-webkit-transform:translateX(3px) rotate(2deg);transform:translateX(3px) rotate(2deg)}40%{-webkit-transform:translateX(-3px) rotate(-2deg);transform:translateX(-3px) rotate(-2deg)}50%{-webkit-transform:translateX(2px) rotate(1deg);transform:translateX(2px) rotate(1deg)}60%{-webkit-transform:translateX(-2px) rotate(-1deg);transform:translateX(-2px) rotate(-1deg)}70%{-webkit-transform:translateX(2px) rotate(1deg);transform:translateX(2px) rotate(1deg)}80%{-webkit-transform:translateX(-2px) rotate(-1deg);transform:translateX(-2px) rotate(-1deg)}90%{-webkit-transform:translateX(1px) rotate(0);transform:translateX(1px) rotate(0)}100%{-webkit-transform:translateX(-1px) rotate(0);transform:translateX(-1px) rotate(0)}}.hvr-icon-buzz-out{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);-webkit-transition-duration:.3s;transition-duration:.3s}.hvr-icon-buzz-out .hvr-icon{-webkit-transform:translateZ(0);transform:translateZ(0)}.hvr-icon-buzz-out:active .hvr-icon,.hvr-icon-buzz-out:focus .hvr-icon,.hvr-icon-buzz-out:hover .hvr-icon{-webkit-animation-name:hvr-icon-buzz-out;animation-name:hvr-icon-buzz-out;-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-iteration-count:1;animation-iteration-count:1}.hvr-curl-top-left{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);position:relative}.hvr-curl-top-left:before{pointer-events:none;position:absolute;content:'';height:0;width:0;top:0;left:0;background:#fff;background:linear-gradient(135deg,#fff 45%,#aaa 50%,#ccc 56%,#fff 80%);filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#ffffff', endColorstr='#000000');z-index:1000;box-shadow:1px 1px 1px rgba(0,0,0,.4);-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:width,height;transition-property:width,height}.hvr-curl-top-left:active:before,.hvr-curl-top-left:focus:before,.hvr-curl-top-left:hover:before{width:25px;height:25px}.hvr-curl-top-right{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);position:relative}.hvr-curl-top-right:before{pointer-events:none;position:absolute;content:'';height:0;width:0;top:0;right:0;background:#fff;background:linear-gradient(225deg,#fff 45%,#aaa 50%,#ccc 56%,#fff 80%);box-shadow:-1px 1px 1px rgba(0,0,0,.4);-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:width,height;transition-property:width,height}.hvr-curl-top-right:active:before,.hvr-curl-top-right:focus:before,.hvr-curl-top-right:hover:before{width:25px;height:25px}.hvr-curl-bottom-right{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);position:relative}.hvr-curl-bottom-right:before{pointer-events:none;position:absolute;content:'';height:0;width:0;bottom:0;right:0;background:#fff;background:linear-gradient(315deg,#fff 45%,#aaa 50%,#ccc 56%,#fff 80%);box-shadow:-1px -1px 1px rgba(0,0,0,.4);-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:width,height;transition-property:width,height}.hvr-curl-bottom-right:active:before,.hvr-curl-bottom-right:focus:before,.hvr-curl-bottom-right:hover:before{width:25px;height:25px}.hvr-curl-bottom-left{display:inline-block;vertical-align:middle;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);box-shadow:0 0 1px rgba(0,0,0,0);position:relative}.hvr-curl-bottom-left:before{pointer-events:none;position:absolute;content:'';height:0;width:0;bottom:0;left:0;background:#fff;background:linear-gradient(45deg,#fff 45%,#aaa 50%,#ccc 56%,#fff 80%);box-shadow:1px -1px 1px rgba(0,0,0,.4);-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:width,height;transition-property:width,height}.hvr-curl-bottom-left:active:before,.hvr-curl-bottom-left:focus:before,.hvr-curl-bottom-left:hover:before{width:25px;height:25px} ================================================ FILE: css/hover.css ================================================ /*! * Hover.css (http://ianlunn.github.io/Hover/) * Version: 2.3.2 * Author: Ian Lunn @IanLunn * Author URL: http://ianlunn.co.uk/ * Github: https://github.com/IanLunn/Hover * Hover.css Copyright Ian Lunn 2017. Generated with Sass. */ /* 2D TRANSITIONS */ /* Grow */ .hvr-grow { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: transform; transition-property: transform; } .hvr-grow:hover, .hvr-grow:focus, .hvr-grow:active { -webkit-transform: scale(1.1); transform: scale(1.1); } /* Shrink */ .hvr-shrink { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: transform; transition-property: transform; } .hvr-shrink:hover, .hvr-shrink:focus, .hvr-shrink:active { -webkit-transform: scale(0.9); transform: scale(0.9); } /* Pulse */ @-webkit-keyframes hvr-pulse { 25% { -webkit-transform: scale(1.1); transform: scale(1.1); } 75% { -webkit-transform: scale(0.9); transform: scale(0.9); } } @keyframes hvr-pulse { 25% { -webkit-transform: scale(1.1); transform: scale(1.1); } 75% { -webkit-transform: scale(0.9); transform: scale(0.9); } } .hvr-pulse { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); } .hvr-pulse:hover, .hvr-pulse:focus, .hvr-pulse:active { -webkit-animation-name: hvr-pulse; animation-name: hvr-pulse; -webkit-animation-duration: 1s; animation-duration: 1s; -webkit-animation-timing-function: linear; animation-timing-function: linear; -webkit-animation-iteration-count: infinite; animation-iteration-count: infinite; } /* Pulse Grow */ @-webkit-keyframes hvr-pulse-grow { to { -webkit-transform: scale(1.1); transform: scale(1.1); } } @keyframes hvr-pulse-grow { to { -webkit-transform: scale(1.1); transform: scale(1.1); } } .hvr-pulse-grow { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); } .hvr-pulse-grow:hover, .hvr-pulse-grow:focus, .hvr-pulse-grow:active { -webkit-animation-name: hvr-pulse-grow; animation-name: hvr-pulse-grow; -webkit-animation-duration: 0.3s; animation-duration: 0.3s; -webkit-animation-timing-function: linear; animation-timing-function: linear; -webkit-animation-iteration-count: infinite; animation-iteration-count: infinite; -webkit-animation-direction: alternate; animation-direction: alternate; } /* Pulse Shrink */ @-webkit-keyframes hvr-pulse-shrink { to { -webkit-transform: scale(0.9); transform: scale(0.9); } } @keyframes hvr-pulse-shrink { to { -webkit-transform: scale(0.9); transform: scale(0.9); } } .hvr-pulse-shrink { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); } .hvr-pulse-shrink:hover, .hvr-pulse-shrink:focus, .hvr-pulse-shrink:active { -webkit-animation-name: hvr-pulse-shrink; animation-name: hvr-pulse-shrink; -webkit-animation-duration: 0.3s; animation-duration: 0.3s; -webkit-animation-timing-function: linear; animation-timing-function: linear; -webkit-animation-iteration-count: infinite; animation-iteration-count: infinite; -webkit-animation-direction: alternate; animation-direction: alternate; } /* Push */ @-webkit-keyframes hvr-push { 50% { -webkit-transform: scale(0.8); transform: scale(0.8); } 100% { -webkit-transform: scale(1); transform: scale(1); } } @keyframes hvr-push { 50% { -webkit-transform: scale(0.8); transform: scale(0.8); } 100% { -webkit-transform: scale(1); transform: scale(1); } } .hvr-push { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); } .hvr-push:hover, .hvr-push:focus, .hvr-push:active { -webkit-animation-name: hvr-push; animation-name: hvr-push; -webkit-animation-duration: 0.3s; animation-duration: 0.3s; -webkit-animation-timing-function: linear; animation-timing-function: linear; -webkit-animation-iteration-count: 1; animation-iteration-count: 1; } /* Pop */ @-webkit-keyframes hvr-pop { 50% { -webkit-transform: scale(1.2); transform: scale(1.2); } } @keyframes hvr-pop { 50% { -webkit-transform: scale(1.2); transform: scale(1.2); } } .hvr-pop { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); } .hvr-pop:hover, .hvr-pop:focus, .hvr-pop:active { -webkit-animation-name: hvr-pop; animation-name: hvr-pop; -webkit-animation-duration: 0.3s; animation-duration: 0.3s; -webkit-animation-timing-function: linear; animation-timing-function: linear; -webkit-animation-iteration-count: 1; animation-iteration-count: 1; } /* Bounce In */ .hvr-bounce-in { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); -webkit-transition-duration: 0.5s; transition-duration: 0.5s; } .hvr-bounce-in:hover, .hvr-bounce-in:focus, .hvr-bounce-in:active { -webkit-transform: scale(1.2); transform: scale(1.2); -webkit-transition-timing-function: cubic-bezier(0.47, 2.02, 0.31, -0.36); transition-timing-function: cubic-bezier(0.47, 2.02, 0.31, -0.36); } /* Bounce Out */ .hvr-bounce-out { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); -webkit-transition-duration: 0.5s; transition-duration: 0.5s; } .hvr-bounce-out:hover, .hvr-bounce-out:focus, .hvr-bounce-out:active { -webkit-transform: scale(0.8); transform: scale(0.8); -webkit-transition-timing-function: cubic-bezier(0.47, 2.02, 0.31, -0.36); transition-timing-function: cubic-bezier(0.47, 2.02, 0.31, -0.36); } /* Rotate */ .hvr-rotate { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: transform; transition-property: transform; } .hvr-rotate:hover, .hvr-rotate:focus, .hvr-rotate:active { -webkit-transform: rotate(4deg); transform: rotate(4deg); } /* Grow Rotate */ .hvr-grow-rotate { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: transform; transition-property: transform; } .hvr-grow-rotate:hover, .hvr-grow-rotate:focus, .hvr-grow-rotate:active { -webkit-transform: scale(1.1) rotate(4deg); transform: scale(1.1) rotate(4deg); } /* Float */ .hvr-float { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: transform; transition-property: transform; -webkit-transition-timing-function: ease-out; transition-timing-function: ease-out; } .hvr-float:hover, .hvr-float:focus, .hvr-float:active { -webkit-transform: translateY(-8px); transform: translateY(-8px); } /* Sink */ .hvr-sink { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: transform; transition-property: transform; -webkit-transition-timing-function: ease-out; transition-timing-function: ease-out; } .hvr-sink:hover, .hvr-sink:focus, .hvr-sink:active { -webkit-transform: translateY(8px); transform: translateY(8px); } /* Bob */ @-webkit-keyframes hvr-bob { 0% { -webkit-transform: translateY(-8px); transform: translateY(-8px); } 50% { -webkit-transform: translateY(-4px); transform: translateY(-4px); } 100% { -webkit-transform: translateY(-8px); transform: translateY(-8px); } } @keyframes hvr-bob { 0% { -webkit-transform: translateY(-8px); transform: translateY(-8px); } 50% { -webkit-transform: translateY(-4px); transform: translateY(-4px); } 100% { -webkit-transform: translateY(-8px); transform: translateY(-8px); } } @-webkit-keyframes hvr-bob-float { 100% { -webkit-transform: translateY(-8px); transform: translateY(-8px); } } @keyframes hvr-bob-float { 100% { -webkit-transform: translateY(-8px); transform: translateY(-8px); } } .hvr-bob { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); } .hvr-bob:hover, .hvr-bob:focus, .hvr-bob:active { -webkit-animation-name: hvr-bob-float, hvr-bob; animation-name: hvr-bob-float, hvr-bob; -webkit-animation-duration: .3s, 1.5s; animation-duration: .3s, 1.5s; -webkit-animation-delay: 0s, .3s; animation-delay: 0s, .3s; -webkit-animation-timing-function: ease-out, ease-in-out; animation-timing-function: ease-out, ease-in-out; -webkit-animation-iteration-count: 1, infinite; animation-iteration-count: 1, infinite; -webkit-animation-fill-mode: forwards; animation-fill-mode: forwards; -webkit-animation-direction: normal, alternate; animation-direction: normal, alternate; } /* Hang */ @-webkit-keyframes hvr-hang { 0% { -webkit-transform: translateY(8px); transform: translateY(8px); } 50% { -webkit-transform: translateY(4px); transform: translateY(4px); } 100% { -webkit-transform: translateY(8px); transform: translateY(8px); } } @keyframes hvr-hang { 0% { -webkit-transform: translateY(8px); transform: translateY(8px); } 50% { -webkit-transform: translateY(4px); transform: translateY(4px); } 100% { -webkit-transform: translateY(8px); transform: translateY(8px); } } @-webkit-keyframes hvr-hang-sink { 100% { -webkit-transform: translateY(8px); transform: translateY(8px); } } @keyframes hvr-hang-sink { 100% { -webkit-transform: translateY(8px); transform: translateY(8px); } } .hvr-hang { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); } .hvr-hang:hover, .hvr-hang:focus, .hvr-hang:active { -webkit-animation-name: hvr-hang-sink, hvr-hang; animation-name: hvr-hang-sink, hvr-hang; -webkit-animation-duration: .3s, 1.5s; animation-duration: .3s, 1.5s; -webkit-animation-delay: 0s, .3s; animation-delay: 0s, .3s; -webkit-animation-timing-function: ease-out, ease-in-out; animation-timing-function: ease-out, ease-in-out; -webkit-animation-iteration-count: 1, infinite; animation-iteration-count: 1, infinite; -webkit-animation-fill-mode: forwards; animation-fill-mode: forwards; -webkit-animation-direction: normal, alternate; animation-direction: normal, alternate; } /* Skew */ .hvr-skew { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: transform; transition-property: transform; } .hvr-skew:hover, .hvr-skew:focus, .hvr-skew:active { -webkit-transform: skew(-10deg); transform: skew(-10deg); } /* Skew Forward */ .hvr-skew-forward { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: transform; transition-property: transform; -webkit-transform-origin: 0 100%; transform-origin: 0 100%; } .hvr-skew-forward:hover, .hvr-skew-forward:focus, .hvr-skew-forward:active { -webkit-transform: skew(-10deg); transform: skew(-10deg); } /* Skew Backward */ .hvr-skew-backward { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: transform; transition-property: transform; -webkit-transform-origin: 0 100%; transform-origin: 0 100%; } .hvr-skew-backward:hover, .hvr-skew-backward:focus, .hvr-skew-backward:active { -webkit-transform: skew(10deg); transform: skew(10deg); } /* Wobble Vertical */ @-webkit-keyframes hvr-wobble-vertical { 16.65% { -webkit-transform: translateY(8px); transform: translateY(8px); } 33.3% { -webkit-transform: translateY(-6px); transform: translateY(-6px); } 49.95% { -webkit-transform: translateY(4px); transform: translateY(4px); } 66.6% { -webkit-transform: translateY(-2px); transform: translateY(-2px); } 83.25% { -webkit-transform: translateY(1px); transform: translateY(1px); } 100% { -webkit-transform: translateY(0); transform: translateY(0); } } @keyframes hvr-wobble-vertical { 16.65% { -webkit-transform: translateY(8px); transform: translateY(8px); } 33.3% { -webkit-transform: translateY(-6px); transform: translateY(-6px); } 49.95% { -webkit-transform: translateY(4px); transform: translateY(4px); } 66.6% { -webkit-transform: translateY(-2px); transform: translateY(-2px); } 83.25% { -webkit-transform: translateY(1px); transform: translateY(1px); } 100% { -webkit-transform: translateY(0); transform: translateY(0); } } .hvr-wobble-vertical { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); } .hvr-wobble-vertical:hover, .hvr-wobble-vertical:focus, .hvr-wobble-vertical:active { -webkit-animation-name: hvr-wobble-vertical; animation-name: hvr-wobble-vertical; -webkit-animation-duration: 1s; animation-duration: 1s; -webkit-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; -webkit-animation-iteration-count: 1; animation-iteration-count: 1; } /* Wobble Horizontal */ @-webkit-keyframes hvr-wobble-horizontal { 16.65% { -webkit-transform: translateX(8px); transform: translateX(8px); } 33.3% { -webkit-transform: translateX(-6px); transform: translateX(-6px); } 49.95% { -webkit-transform: translateX(4px); transform: translateX(4px); } 66.6% { -webkit-transform: translateX(-2px); transform: translateX(-2px); } 83.25% { -webkit-transform: translateX(1px); transform: translateX(1px); } 100% { -webkit-transform: translateX(0); transform: translateX(0); } } @keyframes hvr-wobble-horizontal { 16.65% { -webkit-transform: translateX(8px); transform: translateX(8px); } 33.3% { -webkit-transform: translateX(-6px); transform: translateX(-6px); } 49.95% { -webkit-transform: translateX(4px); transform: translateX(4px); } 66.6% { -webkit-transform: translateX(-2px); transform: translateX(-2px); } 83.25% { -webkit-transform: translateX(1px); transform: translateX(1px); } 100% { -webkit-transform: translateX(0); transform: translateX(0); } } .hvr-wobble-horizontal { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); } .hvr-wobble-horizontal:hover, .hvr-wobble-horizontal:focus, .hvr-wobble-horizontal:active { -webkit-animation-name: hvr-wobble-horizontal; animation-name: hvr-wobble-horizontal; -webkit-animation-duration: 1s; animation-duration: 1s; -webkit-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; -webkit-animation-iteration-count: 1; animation-iteration-count: 1; } /* Wobble To Bottom Right */ @-webkit-keyframes hvr-wobble-to-bottom-right { 16.65% { -webkit-transform: translate(8px, 8px); transform: translate(8px, 8px); } 33.3% { -webkit-transform: translate(-6px, -6px); transform: translate(-6px, -6px); } 49.95% { -webkit-transform: translate(4px, 4px); transform: translate(4px, 4px); } 66.6% { -webkit-transform: translate(-2px, -2px); transform: translate(-2px, -2px); } 83.25% { -webkit-transform: translate(1px, 1px); transform: translate(1px, 1px); } 100% { -webkit-transform: translate(0, 0); transform: translate(0, 0); } } @keyframes hvr-wobble-to-bottom-right { 16.65% { -webkit-transform: translate(8px, 8px); transform: translate(8px, 8px); } 33.3% { -webkit-transform: translate(-6px, -6px); transform: translate(-6px, -6px); } 49.95% { -webkit-transform: translate(4px, 4px); transform: translate(4px, 4px); } 66.6% { -webkit-transform: translate(-2px, -2px); transform: translate(-2px, -2px); } 83.25% { -webkit-transform: translate(1px, 1px); transform: translate(1px, 1px); } 100% { -webkit-transform: translate(0, 0); transform: translate(0, 0); } } .hvr-wobble-to-bottom-right { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); } .hvr-wobble-to-bottom-right:hover, .hvr-wobble-to-bottom-right:focus, .hvr-wobble-to-bottom-right:active { -webkit-animation-name: hvr-wobble-to-bottom-right; animation-name: hvr-wobble-to-bottom-right; -webkit-animation-duration: 1s; animation-duration: 1s; -webkit-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; -webkit-animation-iteration-count: 1; animation-iteration-count: 1; } /* Wobble To Top Right */ @-webkit-keyframes hvr-wobble-to-top-right { 16.65% { -webkit-transform: translate(8px, -8px); transform: translate(8px, -8px); } 33.3% { -webkit-transform: translate(-6px, 6px); transform: translate(-6px, 6px); } 49.95% { -webkit-transform: translate(4px, -4px); transform: translate(4px, -4px); } 66.6% { -webkit-transform: translate(-2px, 2px); transform: translate(-2px, 2px); } 83.25% { -webkit-transform: translate(1px, -1px); transform: translate(1px, -1px); } 100% { -webkit-transform: translate(0, 0); transform: translate(0, 0); } } @keyframes hvr-wobble-to-top-right { 16.65% { -webkit-transform: translate(8px, -8px); transform: translate(8px, -8px); } 33.3% { -webkit-transform: translate(-6px, 6px); transform: translate(-6px, 6px); } 49.95% { -webkit-transform: translate(4px, -4px); transform: translate(4px, -4px); } 66.6% { -webkit-transform: translate(-2px, 2px); transform: translate(-2px, 2px); } 83.25% { -webkit-transform: translate(1px, -1px); transform: translate(1px, -1px); } 100% { -webkit-transform: translate(0, 0); transform: translate(0, 0); } } .hvr-wobble-to-top-right { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); } .hvr-wobble-to-top-right:hover, .hvr-wobble-to-top-right:focus, .hvr-wobble-to-top-right:active { -webkit-animation-name: hvr-wobble-to-top-right; animation-name: hvr-wobble-to-top-right; -webkit-animation-duration: 1s; animation-duration: 1s; -webkit-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; -webkit-animation-iteration-count: 1; animation-iteration-count: 1; } /* Wobble Top */ @-webkit-keyframes hvr-wobble-top { 16.65% { -webkit-transform: skew(-12deg); transform: skew(-12deg); } 33.3% { -webkit-transform: skew(10deg); transform: skew(10deg); } 49.95% { -webkit-transform: skew(-6deg); transform: skew(-6deg); } 66.6% { -webkit-transform: skew(4deg); transform: skew(4deg); } 83.25% { -webkit-transform: skew(-2deg); transform: skew(-2deg); } 100% { -webkit-transform: skew(0); transform: skew(0); } } @keyframes hvr-wobble-top { 16.65% { -webkit-transform: skew(-12deg); transform: skew(-12deg); } 33.3% { -webkit-transform: skew(10deg); transform: skew(10deg); } 49.95% { -webkit-transform: skew(-6deg); transform: skew(-6deg); } 66.6% { -webkit-transform: skew(4deg); transform: skew(4deg); } 83.25% { -webkit-transform: skew(-2deg); transform: skew(-2deg); } 100% { -webkit-transform: skew(0); transform: skew(0); } } .hvr-wobble-top { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); -webkit-transform-origin: 0 100%; transform-origin: 0 100%; } .hvr-wobble-top:hover, .hvr-wobble-top:focus, .hvr-wobble-top:active { -webkit-animation-name: hvr-wobble-top; animation-name: hvr-wobble-top; -webkit-animation-duration: 1s; animation-duration: 1s; -webkit-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; -webkit-animation-iteration-count: 1; animation-iteration-count: 1; } /* Wobble Bottom */ @-webkit-keyframes hvr-wobble-bottom { 16.65% { -webkit-transform: skew(-12deg); transform: skew(-12deg); } 33.3% { -webkit-transform: skew(10deg); transform: skew(10deg); } 49.95% { -webkit-transform: skew(-6deg); transform: skew(-6deg); } 66.6% { -webkit-transform: skew(4deg); transform: skew(4deg); } 83.25% { -webkit-transform: skew(-2deg); transform: skew(-2deg); } 100% { -webkit-transform: skew(0); transform: skew(0); } } @keyframes hvr-wobble-bottom { 16.65% { -webkit-transform: skew(-12deg); transform: skew(-12deg); } 33.3% { -webkit-transform: skew(10deg); transform: skew(10deg); } 49.95% { -webkit-transform: skew(-6deg); transform: skew(-6deg); } 66.6% { -webkit-transform: skew(4deg); transform: skew(4deg); } 83.25% { -webkit-transform: skew(-2deg); transform: skew(-2deg); } 100% { -webkit-transform: skew(0); transform: skew(0); } } .hvr-wobble-bottom { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); -webkit-transform-origin: 100% 0; transform-origin: 100% 0; } .hvr-wobble-bottom:hover, .hvr-wobble-bottom:focus, .hvr-wobble-bottom:active { -webkit-animation-name: hvr-wobble-bottom; animation-name: hvr-wobble-bottom; -webkit-animation-duration: 1s; animation-duration: 1s; -webkit-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; -webkit-animation-iteration-count: 1; animation-iteration-count: 1; } /* Wobble Skew */ @-webkit-keyframes hvr-wobble-skew { 16.65% { -webkit-transform: skew(-12deg); transform: skew(-12deg); } 33.3% { -webkit-transform: skew(10deg); transform: skew(10deg); } 49.95% { -webkit-transform: skew(-6deg); transform: skew(-6deg); } 66.6% { -webkit-transform: skew(4deg); transform: skew(4deg); } 83.25% { -webkit-transform: skew(-2deg); transform: skew(-2deg); } 100% { -webkit-transform: skew(0); transform: skew(0); } } @keyframes hvr-wobble-skew { 16.65% { -webkit-transform: skew(-12deg); transform: skew(-12deg); } 33.3% { -webkit-transform: skew(10deg); transform: skew(10deg); } 49.95% { -webkit-transform: skew(-6deg); transform: skew(-6deg); } 66.6% { -webkit-transform: skew(4deg); transform: skew(4deg); } 83.25% { -webkit-transform: skew(-2deg); transform: skew(-2deg); } 100% { -webkit-transform: skew(0); transform: skew(0); } } .hvr-wobble-skew { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); } .hvr-wobble-skew:hover, .hvr-wobble-skew:focus, .hvr-wobble-skew:active { -webkit-animation-name: hvr-wobble-skew; animation-name: hvr-wobble-skew; -webkit-animation-duration: 1s; animation-duration: 1s; -webkit-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; -webkit-animation-iteration-count: 1; animation-iteration-count: 1; } /* Buzz */ @-webkit-keyframes hvr-buzz { 50% { -webkit-transform: translateX(3px) rotate(2deg); transform: translateX(3px) rotate(2deg); } 100% { -webkit-transform: translateX(-3px) rotate(-2deg); transform: translateX(-3px) rotate(-2deg); } } @keyframes hvr-buzz { 50% { -webkit-transform: translateX(3px) rotate(2deg); transform: translateX(3px) rotate(2deg); } 100% { -webkit-transform: translateX(-3px) rotate(-2deg); transform: translateX(-3px) rotate(-2deg); } } .hvr-buzz { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); } .hvr-buzz:hover, .hvr-buzz:focus, .hvr-buzz:active { -webkit-animation-name: hvr-buzz; animation-name: hvr-buzz; -webkit-animation-duration: 0.15s; animation-duration: 0.15s; -webkit-animation-timing-function: linear; animation-timing-function: linear; -webkit-animation-iteration-count: infinite; animation-iteration-count: infinite; } /* Buzz Out */ @-webkit-keyframes hvr-buzz-out { 10% { -webkit-transform: translateX(3px) rotate(2deg); transform: translateX(3px) rotate(2deg); } 20% { -webkit-transform: translateX(-3px) rotate(-2deg); transform: translateX(-3px) rotate(-2deg); } 30% { -webkit-transform: translateX(3px) rotate(2deg); transform: translateX(3px) rotate(2deg); } 40% { -webkit-transform: translateX(-3px) rotate(-2deg); transform: translateX(-3px) rotate(-2deg); } 50% { -webkit-transform: translateX(2px) rotate(1deg); transform: translateX(2px) rotate(1deg); } 60% { -webkit-transform: translateX(-2px) rotate(-1deg); transform: translateX(-2px) rotate(-1deg); } 70% { -webkit-transform: translateX(2px) rotate(1deg); transform: translateX(2px) rotate(1deg); } 80% { -webkit-transform: translateX(-2px) rotate(-1deg); transform: translateX(-2px) rotate(-1deg); } 90% { -webkit-transform: translateX(1px) rotate(0); transform: translateX(1px) rotate(0); } 100% { -webkit-transform: translateX(-1px) rotate(0); transform: translateX(-1px) rotate(0); } } @keyframes hvr-buzz-out { 10% { -webkit-transform: translateX(3px) rotate(2deg); transform: translateX(3px) rotate(2deg); } 20% { -webkit-transform: translateX(-3px) rotate(-2deg); transform: translateX(-3px) rotate(-2deg); } 30% { -webkit-transform: translateX(3px) rotate(2deg); transform: translateX(3px) rotate(2deg); } 40% { -webkit-transform: translateX(-3px) rotate(-2deg); transform: translateX(-3px) rotate(-2deg); } 50% { -webkit-transform: translateX(2px) rotate(1deg); transform: translateX(2px) rotate(1deg); } 60% { -webkit-transform: translateX(-2px) rotate(-1deg); transform: translateX(-2px) rotate(-1deg); } 70% { -webkit-transform: translateX(2px) rotate(1deg); transform: translateX(2px) rotate(1deg); } 80% { -webkit-transform: translateX(-2px) rotate(-1deg); transform: translateX(-2px) rotate(-1deg); } 90% { -webkit-transform: translateX(1px) rotate(0); transform: translateX(1px) rotate(0); } 100% { -webkit-transform: translateX(-1px) rotate(0); transform: translateX(-1px) rotate(0); } } .hvr-buzz-out { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); } .hvr-buzz-out:hover, .hvr-buzz-out:focus, .hvr-buzz-out:active { -webkit-animation-name: hvr-buzz-out; animation-name: hvr-buzz-out; -webkit-animation-duration: 0.75s; animation-duration: 0.75s; -webkit-animation-timing-function: linear; animation-timing-function: linear; -webkit-animation-iteration-count: 1; animation-iteration-count: 1; } /* Forward */ .hvr-forward { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: transform; transition-property: transform; } .hvr-forward:hover, .hvr-forward:focus, .hvr-forward:active { -webkit-transform: translateX(8px); transform: translateX(8px); } /* Backward */ .hvr-backward { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: transform; transition-property: transform; } .hvr-backward:hover, .hvr-backward:focus, .hvr-backward:active { -webkit-transform: translateX(-8px); transform: translateX(-8px); } /* BACKGROUND TRANSITIONS */ /* Fade */ .hvr-fade { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); overflow: hidden; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: color, background-color; transition-property: color, background-color; } .hvr-fade:hover, .hvr-fade:focus, .hvr-fade:active { background-color: #2098D1; color: white; } /* Back Pulse */ @-webkit-keyframes hvr-back-pulse { 50% { background-color: rgba(32, 152, 209, 0.75); } } @keyframes hvr-back-pulse { 50% { background-color: rgba(32, 152, 209, 0.75); } } .hvr-back-pulse { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); overflow: hidden; -webkit-transition-duration: 0.5s; transition-duration: 0.5s; -webkit-transition-property: color, background-color; transition-property: color, background-color; } .hvr-back-pulse:hover, .hvr-back-pulse:focus, .hvr-back-pulse:active { -webkit-animation-name: hvr-back-pulse; animation-name: hvr-back-pulse; -webkit-animation-duration: 1s; animation-duration: 1s; -webkit-animation-delay: 0.5s; animation-delay: 0.5s; -webkit-animation-timing-function: linear; animation-timing-function: linear; -webkit-animation-iteration-count: infinite; animation-iteration-count: infinite; background-color: #2098D1; background-color: #2098d1; color: white; } /* Sweep To Right */ .hvr-sweep-to-right { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); position: relative; -webkit-transition-property: color; transition-property: color; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; } .hvr-sweep-to-right:before { content: ""; position: absolute; z-index: -1; top: 0; left: 0; right: 0; bottom: 0; background: #2098D1; -webkit-transform: scaleX(0); transform: scaleX(0); -webkit-transform-origin: 0 50%; transform-origin: 0 50%; -webkit-transition-property: transform; transition-property: transform; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-timing-function: ease-out; transition-timing-function: ease-out; } .hvr-sweep-to-right:hover, .hvr-sweep-to-right:focus, .hvr-sweep-to-right:active { color: white; } .hvr-sweep-to-right:hover:before, .hvr-sweep-to-right:focus:before, .hvr-sweep-to-right:active:before { -webkit-transform: scaleX(1); transform: scaleX(1); } /* Sweep To Left */ .hvr-sweep-to-left { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); position: relative; -webkit-transition-property: color; transition-property: color; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; } .hvr-sweep-to-left:before { content: ""; position: absolute; z-index: -1; top: 0; left: 0; right: 0; bottom: 0; background: #2098D1; -webkit-transform: scaleX(0); transform: scaleX(0); -webkit-transform-origin: 100% 50%; transform-origin: 100% 50%; -webkit-transition-property: transform; transition-property: transform; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-timing-function: ease-out; transition-timing-function: ease-out; } .hvr-sweep-to-left:hover, .hvr-sweep-to-left:focus, .hvr-sweep-to-left:active { color: white; } .hvr-sweep-to-left:hover:before, .hvr-sweep-to-left:focus:before, .hvr-sweep-to-left:active:before { -webkit-transform: scaleX(1); transform: scaleX(1); } /* Sweep To Bottom */ .hvr-sweep-to-bottom { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); position: relative; -webkit-transition-property: color; transition-property: color; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; } .hvr-sweep-to-bottom:before { content: ""; position: absolute; z-index: -1; top: 0; left: 0; right: 0; bottom: 0; background: #2098D1; -webkit-transform: scaleY(0); transform: scaleY(0); -webkit-transform-origin: 50% 0; transform-origin: 50% 0; -webkit-transition-property: transform; transition-property: transform; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-timing-function: ease-out; transition-timing-function: ease-out; } .hvr-sweep-to-bottom:hover, .hvr-sweep-to-bottom:focus, .hvr-sweep-to-bottom:active { color: white; } .hvr-sweep-to-bottom:hover:before, .hvr-sweep-to-bottom:focus:before, .hvr-sweep-to-bottom:active:before { -webkit-transform: scaleY(1); transform: scaleY(1); } /* Sweep To Top */ .hvr-sweep-to-top { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); position: relative; -webkit-transition-property: color; transition-property: color; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; } .hvr-sweep-to-top:before { content: ""; position: absolute; z-index: -1; top: 0; left: 0; right: 0; bottom: 0; background: #2098D1; -webkit-transform: scaleY(0); transform: scaleY(0); -webkit-transform-origin: 50% 100%; transform-origin: 50% 100%; -webkit-transition-property: transform; transition-property: transform; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-timing-function: ease-out; transition-timing-function: ease-out; } .hvr-sweep-to-top:hover, .hvr-sweep-to-top:focus, .hvr-sweep-to-top:active { color: white; } .hvr-sweep-to-top:hover:before, .hvr-sweep-to-top:focus:before, .hvr-sweep-to-top:active:before { -webkit-transform: scaleY(1); transform: scaleY(1); } /* Bounce To Right */ .hvr-bounce-to-right { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); position: relative; -webkit-transition-property: color; transition-property: color; -webkit-transition-duration: 0.5s; transition-duration: 0.5s; } .hvr-bounce-to-right:before { content: ""; position: absolute; z-index: -1; top: 0; left: 0; right: 0; bottom: 0; background: #2098D1; -webkit-transform: scaleX(0); transform: scaleX(0); -webkit-transform-origin: 0 50%; transform-origin: 0 50%; -webkit-transition-property: transform; transition-property: transform; -webkit-transition-duration: 0.5s; transition-duration: 0.5s; -webkit-transition-timing-function: ease-out; transition-timing-function: ease-out; } .hvr-bounce-to-right:hover, .hvr-bounce-to-right:focus, .hvr-bounce-to-right:active { color: white; } .hvr-bounce-to-right:hover:before, .hvr-bounce-to-right:focus:before, .hvr-bounce-to-right:active:before { -webkit-transform: scaleX(1); transform: scaleX(1); -webkit-transition-timing-function: cubic-bezier(0.52, 1.64, 0.37, 0.66); transition-timing-function: cubic-bezier(0.52, 1.64, 0.37, 0.66); } /* Bounce To Left */ .hvr-bounce-to-left { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); position: relative; -webkit-transition-property: color; transition-property: color; -webkit-transition-duration: 0.5s; transition-duration: 0.5s; } .hvr-bounce-to-left:before { content: ""; position: absolute; z-index: -1; top: 0; left: 0; right: 0; bottom: 0; background: #2098D1; -webkit-transform: scaleX(0); transform: scaleX(0); -webkit-transform-origin: 100% 50%; transform-origin: 100% 50%; -webkit-transition-property: transform; transition-property: transform; -webkit-transition-duration: 0.5s; transition-duration: 0.5s; -webkit-transition-timing-function: ease-out; transition-timing-function: ease-out; } .hvr-bounce-to-left:hover, .hvr-bounce-to-left:focus, .hvr-bounce-to-left:active { color: white; } .hvr-bounce-to-left:hover:before, .hvr-bounce-to-left:focus:before, .hvr-bounce-to-left:active:before { -webkit-transform: scaleX(1); transform: scaleX(1); -webkit-transition-timing-function: cubic-bezier(0.52, 1.64, 0.37, 0.66); transition-timing-function: cubic-bezier(0.52, 1.64, 0.37, 0.66); } /* Bounce To Bottom */ .hvr-bounce-to-bottom { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); position: relative; -webkit-transition-property: color; transition-property: color; -webkit-transition-duration: 0.5s; transition-duration: 0.5s; } .hvr-bounce-to-bottom:before { content: ""; position: absolute; z-index: -1; top: 0; left: 0; right: 0; bottom: 0; background: #2098D1; -webkit-transform: scaleY(0); transform: scaleY(0); -webkit-transform-origin: 50% 0; transform-origin: 50% 0; -webkit-transition-property: transform; transition-property: transform; -webkit-transition-duration: 0.5s; transition-duration: 0.5s; -webkit-transition-timing-function: ease-out; transition-timing-function: ease-out; } .hvr-bounce-to-bottom:hover, .hvr-bounce-to-bottom:focus, .hvr-bounce-to-bottom:active { color: white; } .hvr-bounce-to-bottom:hover:before, .hvr-bounce-to-bottom:focus:before, .hvr-bounce-to-bottom:active:before { -webkit-transform: scaleY(1); transform: scaleY(1); -webkit-transition-timing-function: cubic-bezier(0.52, 1.64, 0.37, 0.66); transition-timing-function: cubic-bezier(0.52, 1.64, 0.37, 0.66); } /* Bounce To Top */ .hvr-bounce-to-top { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); position: relative; -webkit-transition-property: color; transition-property: color; -webkit-transition-duration: 0.5s; transition-duration: 0.5s; } .hvr-bounce-to-top:before { content: ""; position: absolute; z-index: -1; top: 0; left: 0; right: 0; bottom: 0; background: #2098D1; -webkit-transform: scaleY(0); transform: scaleY(0); -webkit-transform-origin: 50% 100%; transform-origin: 50% 100%; -webkit-transition-property: transform; transition-property: transform; -webkit-transition-duration: 0.5s; transition-duration: 0.5s; -webkit-transition-timing-function: ease-out; transition-timing-function: ease-out; } .hvr-bounce-to-top:hover, .hvr-bounce-to-top:focus, .hvr-bounce-to-top:active { color: white; } .hvr-bounce-to-top:hover:before, .hvr-bounce-to-top:focus:before, .hvr-bounce-to-top:active:before { -webkit-transform: scaleY(1); transform: scaleY(1); -webkit-transition-timing-function: cubic-bezier(0.52, 1.64, 0.37, 0.66); transition-timing-function: cubic-bezier(0.52, 1.64, 0.37, 0.66); } /* Radial Out */ .hvr-radial-out { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); position: relative; overflow: hidden; background: #e1e1e1; -webkit-transition-property: color; transition-property: color; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; } .hvr-radial-out:before { content: ""; position: absolute; z-index: -1; top: 0; left: 0; right: 0; bottom: 0; background: #2098D1; border-radius: 100%; -webkit-transform: scale(0); transform: scale(0); -webkit-transition-property: transform; transition-property: transform; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-timing-function: ease-out; transition-timing-function: ease-out; } .hvr-radial-out:hover, .hvr-radial-out:focus, .hvr-radial-out:active { color: white; } .hvr-radial-out:hover:before, .hvr-radial-out:focus:before, .hvr-radial-out:active:before { -webkit-transform: scale(2); transform: scale(2); } /* Radial In */ .hvr-radial-in { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); position: relative; overflow: hidden; background: #2098D1; -webkit-transition-property: color; transition-property: color; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; } .hvr-radial-in:before { content: ""; position: absolute; z-index: -1; top: 0; left: 0; right: 0; bottom: 0; background: #e1e1e1; border-radius: 100%; -webkit-transform: scale(2); transform: scale(2); -webkit-transition-property: transform; transition-property: transform; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-timing-function: ease-out; transition-timing-function: ease-out; } .hvr-radial-in:hover, .hvr-radial-in:focus, .hvr-radial-in:active { color: white; } .hvr-radial-in:hover:before, .hvr-radial-in:focus:before, .hvr-radial-in:active:before { -webkit-transform: scale(0); transform: scale(0); } /* Rectangle In */ .hvr-rectangle-in { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); position: relative; background: #2098D1; -webkit-transition-property: color; transition-property: color; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; } .hvr-rectangle-in:before { content: ""; position: absolute; z-index: -1; top: 0; left: 0; right: 0; bottom: 0; background: #e1e1e1; -webkit-transform: scale(1); transform: scale(1); -webkit-transition-property: transform; transition-property: transform; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-timing-function: ease-out; transition-timing-function: ease-out; } .hvr-rectangle-in:hover, .hvr-rectangle-in:focus, .hvr-rectangle-in:active { color: white; } .hvr-rectangle-in:hover:before, .hvr-rectangle-in:focus:before, .hvr-rectangle-in:active:before { -webkit-transform: scale(0); transform: scale(0); } /* Rectangle Out */ .hvr-rectangle-out { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); position: relative; background: #e1e1e1; -webkit-transition-property: color; transition-property: color; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; } .hvr-rectangle-out:before { content: ""; position: absolute; z-index: -1; top: 0; left: 0; right: 0; bottom: 0; background: #2098D1; -webkit-transform: scale(0); transform: scale(0); -webkit-transition-property: transform; transition-property: transform; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-timing-function: ease-out; transition-timing-function: ease-out; } .hvr-rectangle-out:hover, .hvr-rectangle-out:focus, .hvr-rectangle-out:active { color: white; } .hvr-rectangle-out:hover:before, .hvr-rectangle-out:focus:before, .hvr-rectangle-out:active:before { -webkit-transform: scale(1); transform: scale(1); } /* Shutter In Horizontal */ .hvr-shutter-in-horizontal { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); position: relative; background: #2098D1; -webkit-transition-property: color; transition-property: color; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; } .hvr-shutter-in-horizontal:before { content: ""; position: absolute; z-index: -1; top: 0; bottom: 0; left: 0; right: 0; background: #e1e1e1; -webkit-transform: scaleX(1); transform: scaleX(1); -webkit-transform-origin: 50%; transform-origin: 50%; -webkit-transition-property: transform; transition-property: transform; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-timing-function: ease-out; transition-timing-function: ease-out; } .hvr-shutter-in-horizontal:hover, .hvr-shutter-in-horizontal:focus, .hvr-shutter-in-horizontal:active { color: white; } .hvr-shutter-in-horizontal:hover:before, .hvr-shutter-in-horizontal:focus:before, .hvr-shutter-in-horizontal:active:before { -webkit-transform: scaleX(0); transform: scaleX(0); } /* Shutter Out Horizontal */ .hvr-shutter-out-horizontal { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); position: relative; background: #e1e1e1; -webkit-transition-property: color; transition-property: color; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; } .hvr-shutter-out-horizontal:before { content: ""; position: absolute; z-index: -1; top: 0; bottom: 0; left: 0; right: 0; background: #2098D1; -webkit-transform: scaleX(0); transform: scaleX(0); -webkit-transform-origin: 50%; transform-origin: 50%; -webkit-transition-property: transform; transition-property: transform; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-timing-function: ease-out; transition-timing-function: ease-out; } .hvr-shutter-out-horizontal:hover, .hvr-shutter-out-horizontal:focus, .hvr-shutter-out-horizontal:active { color: white; } .hvr-shutter-out-horizontal:hover:before, .hvr-shutter-out-horizontal:focus:before, .hvr-shutter-out-horizontal:active:before { -webkit-transform: scaleX(1); transform: scaleX(1); } /* Shutter In Vertical */ .hvr-shutter-in-vertical { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); position: relative; background: #2098D1; -webkit-transition-property: color; transition-property: color; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; } .hvr-shutter-in-vertical:before { content: ""; position: absolute; z-index: -1; top: 0; bottom: 0; left: 0; right: 0; background: #e1e1e1; -webkit-transform: scaleY(1); transform: scaleY(1); -webkit-transform-origin: 50%; transform-origin: 50%; -webkit-transition-property: transform; transition-property: transform; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-timing-function: ease-out; transition-timing-function: ease-out; } .hvr-shutter-in-vertical:hover, .hvr-shutter-in-vertical:focus, .hvr-shutter-in-vertical:active { color: white; } .hvr-shutter-in-vertical:hover:before, .hvr-shutter-in-vertical:focus:before, .hvr-shutter-in-vertical:active:before { -webkit-transform: scaleY(0); transform: scaleY(0); } /* Shutter Out Vertical */ .hvr-shutter-out-vertical { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); position: relative; background: #e1e1e1; -webkit-transition-property: color; transition-property: color; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; } .hvr-shutter-out-vertical:before { content: ""; position: absolute; z-index: -1; top: 0; bottom: 0; left: 0; right: 0; background: #2098D1; -webkit-transform: scaleY(0); transform: scaleY(0); -webkit-transform-origin: 50%; transform-origin: 50%; -webkit-transition-property: transform; transition-property: transform; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-timing-function: ease-out; transition-timing-function: ease-out; } .hvr-shutter-out-vertical:hover, .hvr-shutter-out-vertical:focus, .hvr-shutter-out-vertical:active { color: white; } .hvr-shutter-out-vertical:hover:before, .hvr-shutter-out-vertical:focus:before, .hvr-shutter-out-vertical:active:before { -webkit-transform: scaleY(1); transform: scaleY(1); } /* BORDER TRANSITIONS */ /* Border Fade */ .hvr-border-fade { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: box-shadow; transition-property: box-shadow; box-shadow: inset 0 0 0 4px #e1e1e1, 0 0 1px rgba(0, 0, 0, 0); /* Hack to improve aliasing on mobile/tablet devices */ } .hvr-border-fade:hover, .hvr-border-fade:focus, .hvr-border-fade:active { box-shadow: inset 0 0 0 4px #2098D1, 0 0 1px rgba(0, 0, 0, 0); /* Hack to improve aliasing on mobile/tablet devices */ } /* Hollow */ .hvr-hollow { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: background; transition-property: background; box-shadow: inset 0 0 0 4px #e1e1e1, 0 0 1px rgba(0, 0, 0, 0); /* Hack to improve aliasing on mobile/tablet devices */ } .hvr-hollow:hover, .hvr-hollow:focus, .hvr-hollow:active { background: none; } /* Trim */ .hvr-trim { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); position: relative; } .hvr-trim:before { content: ''; position: absolute; border: white solid 4px; top: 4px; left: 4px; right: 4px; bottom: 4px; opacity: 0; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: opacity; transition-property: opacity; } .hvr-trim:hover:before, .hvr-trim:focus:before, .hvr-trim:active:before { opacity: 1; } /* Ripple Out */ @-webkit-keyframes hvr-ripple-out { 100% { top: -12px; right: -12px; bottom: -12px; left: -12px; opacity: 0; } } @keyframes hvr-ripple-out { 100% { top: -12px; right: -12px; bottom: -12px; left: -12px; opacity: 0; } } .hvr-ripple-out { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); position: relative; } .hvr-ripple-out:before { content: ''; position: absolute; border: #e1e1e1 solid 6px; top: 0; right: 0; bottom: 0; left: 0; -webkit-animation-duration: 1s; animation-duration: 1s; } .hvr-ripple-out:hover:before, .hvr-ripple-out:focus:before, .hvr-ripple-out:active:before { -webkit-animation-name: hvr-ripple-out; animation-name: hvr-ripple-out; } /* Ripple In */ @-webkit-keyframes hvr-ripple-in { 100% { top: 0; right: 0; bottom: 0; left: 0; opacity: 1; } } @keyframes hvr-ripple-in { 100% { top: 0; right: 0; bottom: 0; left: 0; opacity: 1; } } .hvr-ripple-in { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); position: relative; } .hvr-ripple-in:before { content: ''; position: absolute; border: #e1e1e1 solid 4px; top: -12px; right: -12px; bottom: -12px; left: -12px; opacity: 0; -webkit-animation-duration: 1s; animation-duration: 1s; } .hvr-ripple-in:hover:before, .hvr-ripple-in:focus:before, .hvr-ripple-in:active:before { -webkit-animation-name: hvr-ripple-in; animation-name: hvr-ripple-in; } /* Outline Out */ .hvr-outline-out { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); position: relative; } .hvr-outline-out:before { content: ''; position: absolute; border: #e1e1e1 solid 4px; top: 0; right: 0; bottom: 0; left: 0; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: top, right, bottom, left; transition-property: top, right, bottom, left; } .hvr-outline-out:hover:before, .hvr-outline-out:focus:before, .hvr-outline-out:active:before { top: -8px; right: -8px; bottom: -8px; left: -8px; } /* Outline In */ .hvr-outline-in { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); position: relative; } .hvr-outline-in:before { pointer-events: none; content: ''; position: absolute; border: #e1e1e1 solid 4px; top: -16px; right: -16px; bottom: -16px; left: -16px; opacity: 0; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: top, right, bottom, left; transition-property: top, right, bottom, left; } .hvr-outline-in:hover:before, .hvr-outline-in:focus:before, .hvr-outline-in:active:before { top: -8px; right: -8px; bottom: -8px; left: -8px; opacity: 1; } /* Round Corners */ .hvr-round-corners { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: border-radius; transition-property: border-radius; } .hvr-round-corners:hover, .hvr-round-corners:focus, .hvr-round-corners:active { border-radius: 1em; } /* Underline From Left */ .hvr-underline-from-left { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); position: relative; overflow: hidden; } .hvr-underline-from-left:before { content: ""; position: absolute; z-index: -1; left: 0; right: 100%; bottom: 0; background: #2098D1; height: 4px; -webkit-transition-property: right; transition-property: right; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-timing-function: ease-out; transition-timing-function: ease-out; } .hvr-underline-from-left:hover:before, .hvr-underline-from-left:focus:before, .hvr-underline-from-left:active:before { right: 0; } /* Underline From Center */ .hvr-underline-from-center { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); position: relative; overflow: hidden; } .hvr-underline-from-center:before { content: ""; position: absolute; z-index: -1; left: 51%; right: 51%; bottom: 0; background: #2098D1; height: 4px; -webkit-transition-property: left, right; transition-property: left, right; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-timing-function: ease-out; transition-timing-function: ease-out; } .hvr-underline-from-center:hover:before, .hvr-underline-from-center:focus:before, .hvr-underline-from-center:active:before { left: 0; right: 0; } /* Underline From Right */ .hvr-underline-from-right { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); position: relative; overflow: hidden; } .hvr-underline-from-right:before { content: ""; position: absolute; z-index: -1; left: 100%; right: 0; bottom: 0; background: #2098D1; height: 4px; -webkit-transition-property: left; transition-property: left; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-timing-function: ease-out; transition-timing-function: ease-out; } .hvr-underline-from-right:hover:before, .hvr-underline-from-right:focus:before, .hvr-underline-from-right:active:before { left: 0; } /* Overline From Left */ .hvr-overline-from-left { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); position: relative; overflow: hidden; } .hvr-overline-from-left:before { content: ""; position: absolute; z-index: -1; left: 0; right: 100%; top: 0; background: #2098D1; height: 4px; -webkit-transition-property: right; transition-property: right; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-timing-function: ease-out; transition-timing-function: ease-out; } .hvr-overline-from-left:hover:before, .hvr-overline-from-left:focus:before, .hvr-overline-from-left:active:before { right: 0; } /* Overline From Center */ .hvr-overline-from-center { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); position: relative; overflow: hidden; } .hvr-overline-from-center:before { content: ""; position: absolute; z-index: -1; left: 51%; right: 51%; top: 0; background: #2098D1; height: 4px; -webkit-transition-property: left, right; transition-property: left, right; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-timing-function: ease-out; transition-timing-function: ease-out; } .hvr-overline-from-center:hover:before, .hvr-overline-from-center:focus:before, .hvr-overline-from-center:active:before { left: 0; right: 0; } /* Overline From Right */ .hvr-overline-from-right { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); position: relative; overflow: hidden; } .hvr-overline-from-right:before { content: ""; position: absolute; z-index: -1; left: 100%; right: 0; top: 0; background: #2098D1; height: 4px; -webkit-transition-property: left; transition-property: left; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-timing-function: ease-out; transition-timing-function: ease-out; } .hvr-overline-from-right:hover:before, .hvr-overline-from-right:focus:before, .hvr-overline-from-right:active:before { left: 0; } /* Reveal */ .hvr-reveal { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); position: relative; overflow: hidden; } .hvr-reveal:before { content: ""; position: absolute; z-index: -1; left: 0; right: 0; top: 0; bottom: 0; border-color: #2098D1; border-style: solid; border-width: 0; -webkit-transition-property: border-width; transition-property: border-width; -webkit-transition-duration: 0.1s; transition-duration: 0.1s; -webkit-transition-timing-function: ease-out; transition-timing-function: ease-out; } .hvr-reveal:hover:before, .hvr-reveal:focus:before, .hvr-reveal:active:before { -webkit-transform: translateY(0); transform: translateY(0); border-width: 4px; } /* Underline Reveal */ .hvr-underline-reveal { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); position: relative; overflow: hidden; } .hvr-underline-reveal:before { content: ""; position: absolute; z-index: -1; left: 0; right: 0; bottom: 0; background: #2098D1; height: 4px; -webkit-transform: translateY(4px); transform: translateY(4px); -webkit-transition-property: transform; transition-property: transform; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-timing-function: ease-out; transition-timing-function: ease-out; } .hvr-underline-reveal:hover:before, .hvr-underline-reveal:focus:before, .hvr-underline-reveal:active:before { -webkit-transform: translateY(0); transform: translateY(0); } /* Overline Reveal */ .hvr-overline-reveal { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); position: relative; overflow: hidden; } .hvr-overline-reveal:before { content: ""; position: absolute; z-index: -1; left: 0; right: 0; top: 0; background: #2098D1; height: 4px; -webkit-transform: translateY(-4px); transform: translateY(-4px); -webkit-transition-property: transform; transition-property: transform; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-timing-function: ease-out; transition-timing-function: ease-out; } .hvr-overline-reveal:hover:before, .hvr-overline-reveal:focus:before, .hvr-overline-reveal:active:before { -webkit-transform: translateY(0); transform: translateY(0); } /* SHADOW/GLOW TRANSITIONS */ /* Glow */ .hvr-glow { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: box-shadow; transition-property: box-shadow; } .hvr-glow:hover, .hvr-glow:focus, .hvr-glow:active { box-shadow: 0 0 8px rgba(0, 0, 0, 0.6); } /* Shadow */ .hvr-shadow { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: box-shadow; transition-property: box-shadow; } .hvr-shadow:hover, .hvr-shadow:focus, .hvr-shadow:active { box-shadow: 0 10px 10px -10px rgba(0, 0, 0, 0.5); } /* Grow Shadow */ .hvr-grow-shadow { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: box-shadow, transform; transition-property: box-shadow, transform; } .hvr-grow-shadow:hover, .hvr-grow-shadow:focus, .hvr-grow-shadow:active { box-shadow: 0 10px 10px -10px rgba(0, 0, 0, 0.5); -webkit-transform: scale(1.1); transform: scale(1.1); } /* Box Shadow Outset */ .hvr-box-shadow-outset { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: box-shadow; transition-property: box-shadow; } .hvr-box-shadow-outset:hover, .hvr-box-shadow-outset:focus, .hvr-box-shadow-outset:active { box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.6); } /* Box Shadow Inset */ .hvr-box-shadow-inset { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: box-shadow; transition-property: box-shadow; box-shadow: inset 0 0 0 rgba(0, 0, 0, 0.6), 0 0 1px rgba(0, 0, 0, 0); /* Hack to improve aliasing on mobile/tablet devices */ } .hvr-box-shadow-inset:hover, .hvr-box-shadow-inset:focus, .hvr-box-shadow-inset:active { box-shadow: inset 2px 2px 2px rgba(0, 0, 0, 0.6), 0 0 1px rgba(0, 0, 0, 0); /* Hack to improve aliasing on mobile/tablet devices */ } /* Float Shadow */ .hvr-float-shadow { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); position: relative; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: transform; transition-property: transform; } .hvr-float-shadow:before { pointer-events: none; position: absolute; z-index: -1; content: ''; top: 100%; left: 5%; height: 10px; width: 90%; opacity: 0; background: -webkit-radial-gradient(center, ellipse, rgba(0, 0, 0, 0.35) 0%, rgba(0, 0, 0, 0) 80%); background: radial-gradient(ellipse at center, rgba(0, 0, 0, 0.35) 0%, rgba(0, 0, 0, 0) 80%); /* W3C */ -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: transform, opacity; transition-property: transform, opacity; } .hvr-float-shadow:hover, .hvr-float-shadow:focus, .hvr-float-shadow:active { -webkit-transform: translateY(-5px); transform: translateY(-5px); /* move the element up by 5px */ } .hvr-float-shadow:hover:before, .hvr-float-shadow:focus:before, .hvr-float-shadow:active:before { opacity: 1; -webkit-transform: translateY(5px); transform: translateY(5px); /* move the element down by 5px (it will stay in place because it's attached to the element that also moves up 5px) */ } /* Shadow Radial */ .hvr-shadow-radial { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); position: relative; } .hvr-shadow-radial:before, .hvr-shadow-radial:after { pointer-events: none; position: absolute; content: ''; left: 0; width: 100%; box-sizing: border-box; background-repeat: no-repeat; height: 5px; opacity: 0; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: opacity; transition-property: opacity; } .hvr-shadow-radial:before { bottom: 100%; background: -webkit-radial-gradient(50% 150%, ellipse, rgba(0, 0, 0, 0.6) 0%, rgba(0, 0, 0, 0) 80%); background: radial-gradient(ellipse at 50% 150%, rgba(0, 0, 0, 0.6) 0%, rgba(0, 0, 0, 0) 80%); } .hvr-shadow-radial:after { top: 100%; background: -webkit-radial-gradient(50% -50%, ellipse, rgba(0, 0, 0, 0.6) 0%, rgba(0, 0, 0, 0) 80%); background: radial-gradient(ellipse at 50% -50%, rgba(0, 0, 0, 0.6) 0%, rgba(0, 0, 0, 0) 80%); } .hvr-shadow-radial:hover:before, .hvr-shadow-radial:focus:before, .hvr-shadow-radial:active:before, .hvr-shadow-radial:hover:after, .hvr-shadow-radial:focus:after, .hvr-shadow-radial:active:after { opacity: 1; } /* SPEECH BUBBLES */ /* Bubble Top */ .hvr-bubble-top { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); position: relative; } .hvr-bubble-top:before { pointer-events: none; position: absolute; z-index: -1; content: ''; border-style: solid; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: transform; transition-property: transform; left: calc(50% - 10px); top: 0; border-width: 0 10px 10px 10px; border-color: transparent transparent #e1e1e1 transparent; } .hvr-bubble-top:hover:before, .hvr-bubble-top:focus:before, .hvr-bubble-top:active:before { -webkit-transform: translateY(-10px); transform: translateY(-10px); } /* Bubble Right */ .hvr-bubble-right { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); position: relative; } .hvr-bubble-right:before { pointer-events: none; position: absolute; z-index: -1; content: ''; border-style: solid; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: transform; transition-property: transform; top: calc(50% - 10px); right: 0; border-width: 10px 0 10px 10px; border-color: transparent transparent transparent #e1e1e1; } .hvr-bubble-right:hover:before, .hvr-bubble-right:focus:before, .hvr-bubble-right:active:before { -webkit-transform: translateX(10px); transform: translateX(10px); } /* Bubble Bottom */ .hvr-bubble-bottom { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); position: relative; } .hvr-bubble-bottom:before { pointer-events: none; position: absolute; z-index: -1; content: ''; border-style: solid; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: transform; transition-property: transform; left: calc(50% - 10px); bottom: 0; border-width: 10px 10px 0 10px; border-color: #e1e1e1 transparent transparent transparent; } .hvr-bubble-bottom:hover:before, .hvr-bubble-bottom:focus:before, .hvr-bubble-bottom:active:before { -webkit-transform: translateY(10px); transform: translateY(10px); } /* Bubble Left */ .hvr-bubble-left { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); position: relative; } .hvr-bubble-left:before { pointer-events: none; position: absolute; z-index: -1; content: ''; border-style: solid; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: transform; transition-property: transform; top: calc(50% - 10px); left: 0; border-width: 10px 10px 10px 0; border-color: transparent #e1e1e1 transparent transparent; } .hvr-bubble-left:hover:before, .hvr-bubble-left:focus:before, .hvr-bubble-left:active:before { -webkit-transform: translateX(-10px); transform: translateX(-10px); } /* Bubble Float Top */ .hvr-bubble-float-top { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); position: relative; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: transform; transition-property: transform; } .hvr-bubble-float-top:before { position: absolute; z-index: -1; content: ''; left: calc(50% - 10px); top: 0; border-style: solid; border-width: 0 10px 10px 10px; border-color: transparent transparent #e1e1e1 transparent; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: transform; transition-property: transform; } .hvr-bubble-float-top:hover, .hvr-bubble-float-top:focus, .hvr-bubble-float-top:active { -webkit-transform: translateY(10px); transform: translateY(10px); } .hvr-bubble-float-top:hover:before, .hvr-bubble-float-top:focus:before, .hvr-bubble-float-top:active:before { -webkit-transform: translateY(-10px); transform: translateY(-10px); } /* Bubble Float Right */ .hvr-bubble-float-right { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); position: relative; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: transform; transition-property: transform; } .hvr-bubble-float-right:before { position: absolute; z-index: -1; top: calc(50% - 10px); right: 0; content: ''; border-style: solid; border-width: 10px 0 10px 10px; border-color: transparent transparent transparent #e1e1e1; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: transform; transition-property: transform; } .hvr-bubble-float-right:hover, .hvr-bubble-float-right:focus, .hvr-bubble-float-right:active { -webkit-transform: translateX(-10px); transform: translateX(-10px); } .hvr-bubble-float-right:hover:before, .hvr-bubble-float-right:focus:before, .hvr-bubble-float-right:active:before { -webkit-transform: translateX(10px); transform: translateX(10px); } /* Bubble Float Bottom */ .hvr-bubble-float-bottom { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); position: relative; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: transform; transition-property: transform; } .hvr-bubble-float-bottom:before { position: absolute; z-index: -1; content: ''; left: calc(50% - 10px); bottom: 0; border-style: solid; border-width: 10px 10px 0 10px; border-color: #e1e1e1 transparent transparent transparent; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: transform; transition-property: transform; } .hvr-bubble-float-bottom:hover, .hvr-bubble-float-bottom:focus, .hvr-bubble-float-bottom:active { -webkit-transform: translateY(-10px); transform: translateY(-10px); } .hvr-bubble-float-bottom:hover:before, .hvr-bubble-float-bottom:focus:before, .hvr-bubble-float-bottom:active:before { -webkit-transform: translateY(10px); transform: translateY(10px); } /* Bubble Float Left */ .hvr-bubble-float-left { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); position: relative; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: transform; transition-property: transform; } .hvr-bubble-float-left:before { position: absolute; z-index: -1; content: ''; top: calc(50% - 10px); left: 0; border-style: solid; border-width: 10px 10px 10px 0; border-color: transparent #e1e1e1 transparent transparent; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: transform; transition-property: transform; } .hvr-bubble-float-left:hover, .hvr-bubble-float-left:focus, .hvr-bubble-float-left:active { -webkit-transform: translateX(10px); transform: translateX(10px); } .hvr-bubble-float-left:hover:before, .hvr-bubble-float-left:focus:before, .hvr-bubble-float-left:active:before { -webkit-transform: translateX(-10px); transform: translateX(-10px); } /* ICONS */ /* Icon Back */ .hvr-icon-back { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); -webkit-transition-duration: 0.1s; transition-duration: 0.1s; } .hvr-icon-back .hvr-icon { -webkit-transform: translateZ(0); transform: translateZ(0); -webkit-transition-duration: 0.1s; transition-duration: 0.1s; -webkit-transition-property: transform; transition-property: transform; -webkit-transition-timing-function: ease-out; transition-timing-function: ease-out; } .hvr-icon-back:hover .hvr-icon, .hvr-icon-back:focus .hvr-icon, .hvr-icon-back:active .hvr-icon { -webkit-transform: translateX(-4px); transform: translateX(-4px); } /* Icon Forward */ .hvr-icon-forward { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); -webkit-transition-duration: 0.1s; transition-duration: 0.1s; } .hvr-icon-forward .hvr-icon { -webkit-transform: translateZ(0); transform: translateZ(0); -webkit-transition-duration: 0.1s; transition-duration: 0.1s; -webkit-transition-property: transform; transition-property: transform; -webkit-transition-timing-function: ease-out; transition-timing-function: ease-out; } .hvr-icon-forward:hover .hvr-icon, .hvr-icon-forward:focus .hvr-icon, .hvr-icon-forward:active .hvr-icon { -webkit-transform: translateX(4px); transform: translateX(4px); } /* Icon Down */ @-webkit-keyframes hvr-icon-down { 0%, 50%, 100% { -webkit-transform: translateY(0); transform: translateY(0); } 25%, 75% { -webkit-transform: translateY(6px); transform: translateY(6px); } } @keyframes hvr-icon-down { 0%, 50%, 100% { -webkit-transform: translateY(0); transform: translateY(0); } 25%, 75% { -webkit-transform: translateY(6px); transform: translateY(6px); } } /* Icon Down */ .hvr-icon-down { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); } .hvr-icon-down .hvr-icon { -webkit-transform: translateZ(0); transform: translateZ(0); } .hvr-icon-down:hover .hvr-icon, .hvr-icon-down:focus .hvr-icon, .hvr-icon-down:active .hvr-icon { -webkit-animation-name: hvr-icon-down; animation-name: hvr-icon-down; -webkit-animation-duration: 0.75s; animation-duration: 0.75s; -webkit-animation-timing-function: ease-out; animation-timing-function: ease-out; } /* Icon Up */ @-webkit-keyframes hvr-icon-up { 0%, 50%, 100% { -webkit-transform: translateY(0); transform: translateY(0); } 25%, 75% { -webkit-transform: translateY(-6px); transform: translateY(-6px); } } @keyframes hvr-icon-up { 0%, 50%, 100% { -webkit-transform: translateY(0); transform: translateY(0); } 25%, 75% { -webkit-transform: translateY(-6px); transform: translateY(-6px); } } /* Icon Up */ .hvr-icon-up { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); } .hvr-icon-up .hvr-icon { -webkit-transform: translateZ(0); transform: translateZ(0); } .hvr-icon-up:hover .hvr-icon, .hvr-icon-up:focus .hvr-icon, .hvr-icon-up:active .hvr-icon { -webkit-animation-name: hvr-icon-up; animation-name: hvr-icon-up; -webkit-animation-duration: 0.75s; animation-duration: 0.75s; -webkit-animation-timing-function: ease-out; animation-timing-function: ease-out; } /* Icon Spin */ .hvr-icon-spin { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); } .hvr-icon-spin .hvr-icon { -webkit-transition-duration: 1s; transition-duration: 1s; -webkit-transition-property: transform; transition-property: transform; -webkit-transition-timing-function: ease-in-out; transition-timing-function: ease-in-out; } .hvr-icon-spin:hover .hvr-icon, .hvr-icon-spin:focus .hvr-icon, .hvr-icon-spin:active .hvr-icon { -webkit-transform: rotate(360deg); transform: rotate(360deg); } /* Icon Drop */ @-webkit-keyframes hvr-icon-drop { 0% { opacity: 0; } 50% { opacity: 0; -webkit-transform: translateY(-100%); transform: translateY(-100%); } 51%, 100% { opacity: 1; } } @keyframes hvr-icon-drop { 0% { opacity: 0; } 50% { opacity: 0; -webkit-transform: translateY(-100%); transform: translateY(-100%); } 51%, 100% { opacity: 1; } } /* Icon Drop */ .hvr-icon-drop { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); } .hvr-icon-drop .hvr-icon { -webkit-transform: translateZ(0); transform: translateZ(0); } .hvr-icon-drop:hover .hvr-icon, .hvr-icon-drop:focus .hvr-icon, .hvr-icon-drop:active .hvr-icon { opacity: 0; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-animation-name: hvr-icon-drop; animation-name: hvr-icon-drop; -webkit-animation-duration: 0.5s; animation-duration: 0.5s; -webkit-animation-delay: 0.3s; animation-delay: 0.3s; -webkit-animation-fill-mode: forwards; animation-fill-mode: forwards; -webkit-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; -webkit-animation-timing-function: cubic-bezier(0.52, 1.64, 0.37, 0.66); animation-timing-function: cubic-bezier(0.52, 1.64, 0.37, 0.66); } /* Icon Fade */ .hvr-icon-fade { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); } .hvr-icon-fade .hvr-icon { -webkit-transform: translateZ(0); transform: translateZ(0); -webkit-transition-duration: 0.5s; transition-duration: 0.5s; -webkit-transition-property: color; transition-property: color; } .hvr-icon-fade:hover .hvr-icon, .hvr-icon-fade:focus .hvr-icon, .hvr-icon-fade:active .hvr-icon { color: #0F9E5E; } /* Icon Float Away */ @-webkit-keyframes hvr-icon-float-away { 0% { opacity: 1; } 100% { opacity: 0; -webkit-transform: translateY(-1em); transform: translateY(-1em); } } @keyframes hvr-icon-float-away { 0% { opacity: 1; } 100% { opacity: 0; -webkit-transform: translateY(-1em); transform: translateY(-1em); } } /* Icon Float Away */ .hvr-icon-float-away { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); } .hvr-icon-float-away .hvr-icon { -webkit-transform: translateZ(0); transform: translateZ(0); -webkit-animation-duration: 0.5s; animation-duration: 0.5s; -webkit-animation-fill-mode: forwards; animation-fill-mode: forwards; } .hvr-icon-float-away:hover .hvr-icon, .hvr-icon-float-away:focus .hvr-icon, .hvr-icon-float-away:active .hvr-icon { -webkit-animation-name: hvr-icon-float-away; animation-name: hvr-icon-float-away; -webkit-animation-timing-function: ease-out; animation-timing-function: ease-out; } /* Icon Sink Away */ @-webkit-keyframes hvr-icon-sink-away { 0% { opacity: 1; } 100% { opacity: 0; -webkit-transform: translateY(1em); transform: translateY(1em); } } @keyframes hvr-icon-sink-away { 0% { opacity: 1; } 100% { opacity: 0; -webkit-transform: translateY(1em); transform: translateY(1em); } } /* Icon Sink Away */ .hvr-icon-sink-away { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); } .hvr-icon-sink-away .hvr-icon { -webkit-transform: translateZ(0); transform: translateZ(0); -webkit-animation-duration: 0.5s; animation-duration: 0.5s; -webkit-animation-fill-mode: forwards; animation-fill-mode: forwards; } .hvr-icon-sink-away:hover .hvr-icon, .hvr-icon-sink-away:focus .hvr-icon, .hvr-icon-sink-away:active .hvr-icon { -webkit-animation-name: hvr-icon-sink-away; animation-name: hvr-icon-sink-away; -webkit-animation-timing-function: ease-out; animation-timing-function: ease-out; } /* Icon Grow */ .hvr-icon-grow { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); -webkit-transition-duration: 0.3s; transition-duration: 0.3s; } .hvr-icon-grow .hvr-icon { -webkit-transform: translateZ(0); transform: translateZ(0); -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: transform; transition-property: transform; -webkit-transition-timing-function: ease-out; transition-timing-function: ease-out; } .hvr-icon-grow:hover .hvr-icon, .hvr-icon-grow:focus .hvr-icon, .hvr-icon-grow:active .hvr-icon { -webkit-transform: scale(1.3) translateZ(0); transform: scale(1.3) translateZ(0); } /* Icon Shrink */ .hvr-icon-shrink { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); -webkit-transition-duration: 0.3s; transition-duration: 0.3s; } .hvr-icon-shrink .hvr-icon { -webkit-transform: translateZ(0); transform: translateZ(0); -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: transform; transition-property: transform; -webkit-transition-timing-function: ease-out; transition-timing-function: ease-out; } .hvr-icon-shrink:hover .hvr-icon, .hvr-icon-shrink:focus .hvr-icon, .hvr-icon-shrink:active .hvr-icon { -webkit-transform: scale(0.8); transform: scale(0.8); } /* Icon Pulse */ @-webkit-keyframes hvr-icon-pulse { 25% { -webkit-transform: scale(1.3); transform: scale(1.3); } 75% { -webkit-transform: scale(0.8); transform: scale(0.8); } } @keyframes hvr-icon-pulse { 25% { -webkit-transform: scale(1.3); transform: scale(1.3); } 75% { -webkit-transform: scale(0.8); transform: scale(0.8); } } .hvr-icon-pulse { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); } .hvr-icon-pulse .hvr-icon { -webkit-transform: translateZ(0); transform: translateZ(0); -webkit-transition-timing-function: ease-out; transition-timing-function: ease-out; } .hvr-icon-pulse:hover .hvr-icon, .hvr-icon-pulse:focus .hvr-icon, .hvr-icon-pulse:active .hvr-icon { -webkit-animation-name: hvr-icon-pulse; animation-name: hvr-icon-pulse; -webkit-animation-duration: 1s; animation-duration: 1s; -webkit-animation-timing-function: linear; animation-timing-function: linear; -webkit-animation-iteration-count: infinite; animation-iteration-count: infinite; } /* Icon Pulse Grow */ @-webkit-keyframes hvr-icon-pulse-grow { to { -webkit-transform: scale(1.3); transform: scale(1.3); } } @keyframes hvr-icon-pulse-grow { to { -webkit-transform: scale(1.3); transform: scale(1.3); } } .hvr-icon-pulse-grow { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); } .hvr-icon-pulse-grow .hvr-icon { -webkit-transform: translateZ(0); transform: translateZ(0); -webkit-transition-timing-function: ease-out; transition-timing-function: ease-out; } .hvr-icon-pulse-grow:hover .hvr-icon, .hvr-icon-pulse-grow:focus .hvr-icon, .hvr-icon-pulse-grow:active .hvr-icon { -webkit-animation-name: hvr-icon-pulse-grow; animation-name: hvr-icon-pulse-grow; -webkit-animation-duration: 0.3s; animation-duration: 0.3s; -webkit-animation-timing-function: linear; animation-timing-function: linear; -webkit-animation-iteration-count: infinite; animation-iteration-count: infinite; -webkit-animation-direction: alternate; animation-direction: alternate; } /* Icon Pulse Shrink */ @-webkit-keyframes hvr-icon-pulse-shrink { to { -webkit-transform: scale(0.8); transform: scale(0.8); } } @keyframes hvr-icon-pulse-shrink { to { -webkit-transform: scale(0.8); transform: scale(0.8); } } .hvr-icon-pulse-shrink { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); } .hvr-icon-pulse-shrink .hvr-icon { -webkit-transform: translateZ(0); transform: translateZ(0); -webkit-transition-timing-function: ease-out; transition-timing-function: ease-out; } .hvr-icon-pulse-shrink:hover .hvr-icon, .hvr-icon-pulse-shrink:focus .hvr-icon, .hvr-icon-pulse-shrink:active .hvr-icon { -webkit-animation-name: hvr-icon-pulse-shrink; animation-name: hvr-icon-pulse-shrink; -webkit-animation-duration: 0.3s; animation-duration: 0.3s; -webkit-animation-timing-function: linear; animation-timing-function: linear; -webkit-animation-iteration-count: infinite; animation-iteration-count: infinite; -webkit-animation-direction: alternate; animation-direction: alternate; } /* Icon Push */ @-webkit-keyframes hvr-icon-push { 50% { -webkit-transform: scale(0.5); transform: scale(0.5); } } @keyframes hvr-icon-push { 50% { -webkit-transform: scale(0.5); transform: scale(0.5); } } .hvr-icon-push { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); -webkit-transition-duration: 0.3s; transition-duration: 0.3s; } .hvr-icon-push .hvr-icon { -webkit-transform: translateZ(0); transform: translateZ(0); -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: transform; transition-property: transform; -webkit-transition-timing-function: ease-out; transition-timing-function: ease-out; } .hvr-icon-push:hover .hvr-icon, .hvr-icon-push:focus .hvr-icon, .hvr-icon-push:active .hvr-icon { -webkit-animation-name: hvr-icon-push; animation-name: hvr-icon-push; -webkit-animation-duration: 0.3s; animation-duration: 0.3s; -webkit-animation-timing-function: linear; animation-timing-function: linear; -webkit-animation-iteration-count: 1; animation-iteration-count: 1; } /* Icon Pop */ @-webkit-keyframes hvr-icon-pop { 50% { -webkit-transform: scale(1.5); transform: scale(1.5); } } @keyframes hvr-icon-pop { 50% { -webkit-transform: scale(1.5); transform: scale(1.5); } } .hvr-icon-pop { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); -webkit-transition-duration: 0.3s; transition-duration: 0.3s; } .hvr-icon-pop .hvr-icon { -webkit-transform: translateZ(0); transform: translateZ(0); -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: transform; transition-property: transform; -webkit-transition-timing-function: ease-out; transition-timing-function: ease-out; } .hvr-icon-pop:hover .hvr-icon, .hvr-icon-pop:focus .hvr-icon, .hvr-icon-pop:active .hvr-icon { -webkit-animation-name: hvr-icon-pop; animation-name: hvr-icon-pop; -webkit-animation-duration: 0.3s; animation-duration: 0.3s; -webkit-animation-timing-function: linear; animation-timing-function: linear; -webkit-animation-iteration-count: 1; animation-iteration-count: 1; } /* Icon Bounce */ .hvr-icon-bounce { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); -webkit-transition-duration: 0.3s; transition-duration: 0.3s; } .hvr-icon-bounce .hvr-icon { -webkit-transform: translateZ(0); transform: translateZ(0); -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: transform; transition-property: transform; -webkit-transition-timing-function: ease-out; transition-timing-function: ease-out; } .hvr-icon-bounce:hover .hvr-icon, .hvr-icon-bounce:focus .hvr-icon, .hvr-icon-bounce:active .hvr-icon { -webkit-transform: scale(1.5); transform: scale(1.5); -webkit-transition-timing-function: cubic-bezier(0.47, 2.02, 0.31, -0.36); transition-timing-function: cubic-bezier(0.47, 2.02, 0.31, -0.36); } /* Icon Rotate */ .hvr-icon-rotate { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); -webkit-transition-duration: 0.3s; transition-duration: 0.3s; } .hvr-icon-rotate .hvr-icon { -webkit-transform: translateZ(0); transform: translateZ(0); -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: transform; transition-property: transform; -webkit-transition-timing-function: ease-out; transition-timing-function: ease-out; } .hvr-icon-rotate:hover .hvr-icon, .hvr-icon-rotate:focus .hvr-icon, .hvr-icon-rotate:active .hvr-icon { -webkit-transform: rotate(20deg); transform: rotate(20deg); } /* Icon Grow Rotate */ .hvr-icon-grow-rotate { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); -webkit-transition-duration: 0.3s; transition-duration: 0.3s; } .hvr-icon-grow-rotate .hvr-icon { -webkit-transform: translateZ(0); transform: translateZ(0); -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: transform; transition-property: transform; -webkit-transition-timing-function: ease-out; transition-timing-function: ease-out; } .hvr-icon-grow-rotate:hover .hvr-icon, .hvr-icon-grow-rotate:focus .hvr-icon, .hvr-icon-grow-rotate:active .hvr-icon { -webkit-transform: scale(1.5) rotate(12deg); transform: scale(1.5) rotate(12deg); } /* Icon Float */ .hvr-icon-float { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); -webkit-transition-duration: 0.3s; transition-duration: 0.3s; } .hvr-icon-float .hvr-icon { -webkit-transform: translateZ(0); transform: translateZ(0); -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: transform; transition-property: transform; -webkit-transition-timing-function: ease-out; transition-timing-function: ease-out; } .hvr-icon-float:hover .hvr-icon, .hvr-icon-float:focus .hvr-icon, .hvr-icon-float:active .hvr-icon { -webkit-transform: translateY(-4px); transform: translateY(-4px); } /* Icon Sink */ .hvr-icon-sink { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); -webkit-transition-duration: 0.3s; transition-duration: 0.3s; } .hvr-icon-sink .hvr-icon { -webkit-transform: translateZ(0); transform: translateZ(0); -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: transform; transition-property: transform; -webkit-transition-timing-function: ease-out; transition-timing-function: ease-out; } .hvr-icon-sink:hover .hvr-icon, .hvr-icon-sink:focus .hvr-icon, .hvr-icon-sink:active .hvr-icon { -webkit-transform: translateY(4px); transform: translateY(4px); } /* Icon Bob */ @-webkit-keyframes hvr-icon-bob { 0% { -webkit-transform: translateY(-6px); transform: translateY(-6px); } 50% { -webkit-transform: translateY(-2px); transform: translateY(-2px); } 100% { -webkit-transform: translateY(-6px); transform: translateY(-6px); } } @keyframes hvr-icon-bob { 0% { -webkit-transform: translateY(-6px); transform: translateY(-6px); } 50% { -webkit-transform: translateY(-2px); transform: translateY(-2px); } 100% { -webkit-transform: translateY(-6px); transform: translateY(-6px); } } @-webkit-keyframes hvr-icon-bob-float { 100% { -webkit-transform: translateY(-6px); transform: translateY(-6px); } } @keyframes hvr-icon-bob-float { 100% { -webkit-transform: translateY(-6px); transform: translateY(-6px); } } .hvr-icon-bob { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); -webkit-transition-duration: 0.3s; transition-duration: 0.3s; } .hvr-icon-bob .hvr-icon { -webkit-transform: translateZ(0); transform: translateZ(0); } .hvr-icon-bob:hover .hvr-icon, .hvr-icon-bob:focus .hvr-icon, .hvr-icon-bob:active .hvr-icon { -webkit-animation-name: hvr-icon-bob-float, hvr-icon-bob; animation-name: hvr-icon-bob-float, hvr-icon-bob; -webkit-animation-duration: .3s, 1.5s; animation-duration: .3s, 1.5s; -webkit-animation-delay: 0s, .3s; animation-delay: 0s, .3s; -webkit-animation-timing-function: ease-out, ease-in-out; animation-timing-function: ease-out, ease-in-out; -webkit-animation-iteration-count: 1, infinite; animation-iteration-count: 1, infinite; -webkit-animation-fill-mode: forwards; animation-fill-mode: forwards; -webkit-animation-direction: normal, alternate; animation-direction: normal, alternate; } /* Icon Hang */ @-webkit-keyframes hvr-icon-hang { 0% { -webkit-transform: translateY(6px); transform: translateY(6px); } 50% { -webkit-transform: translateY(2px); transform: translateY(2px); } 100% { -webkit-transform: translateY(6px); transform: translateY(6px); } } @keyframes hvr-icon-hang { 0% { -webkit-transform: translateY(6px); transform: translateY(6px); } 50% { -webkit-transform: translateY(2px); transform: translateY(2px); } 100% { -webkit-transform: translateY(6px); transform: translateY(6px); } } @-webkit-keyframes hvr-icon-hang-sink { 100% { -webkit-transform: translateY(6px); transform: translateY(6px); } } @keyframes hvr-icon-hang-sink { 100% { -webkit-transform: translateY(6px); transform: translateY(6px); } } .hvr-icon-hang { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); -webkit-transition-duration: 0.3s; transition-duration: 0.3s; } .hvr-icon-hang .hvr-icon { -webkit-transform: translateZ(0); transform: translateZ(0); } .hvr-icon-hang:hover .hvr-icon, .hvr-icon-hang:focus .hvr-icon, .hvr-icon-hang:active .hvr-icon { -webkit-animation-name: hvr-icon-hang-sink, hvr-icon-hang; animation-name: hvr-icon-hang-sink, hvr-icon-hang; -webkit-animation-duration: .3s, 1.5s; animation-duration: .3s, 1.5s; -webkit-animation-delay: 0s, .3s; animation-delay: 0s, .3s; -webkit-animation-timing-function: ease-out, ease-in-out; animation-timing-function: ease-out, ease-in-out; -webkit-animation-iteration-count: 1, infinite; animation-iteration-count: 1, infinite; -webkit-animation-fill-mode: forwards; animation-fill-mode: forwards; -webkit-animation-direction: normal, alternate; animation-direction: normal, alternate; } /* Icon Wobble Horizontal */ @-webkit-keyframes hvr-icon-wobble-horizontal { 16.65% { -webkit-transform: translateX(6px); transform: translateX(6px); } 33.3% { -webkit-transform: translateX(-5px); transform: translateX(-5px); } 49.95% { -webkit-transform: translateX(4px); transform: translateX(4px); } 66.6% { -webkit-transform: translateX(-2px); transform: translateX(-2px); } 83.25% { -webkit-transform: translateX(1px); transform: translateX(1px); } 100% { -webkit-transform: translateX(0); transform: translateX(0); } } @keyframes hvr-icon-wobble-horizontal { 16.65% { -webkit-transform: translateX(6px); transform: translateX(6px); } 33.3% { -webkit-transform: translateX(-5px); transform: translateX(-5px); } 49.95% { -webkit-transform: translateX(4px); transform: translateX(4px); } 66.6% { -webkit-transform: translateX(-2px); transform: translateX(-2px); } 83.25% { -webkit-transform: translateX(1px); transform: translateX(1px); } 100% { -webkit-transform: translateX(0); transform: translateX(0); } } .hvr-icon-wobble-horizontal { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); -webkit-transition-duration: 0.3s; transition-duration: 0.3s; } .hvr-icon-wobble-horizontal .hvr-icon { -webkit-transform: translateZ(0); transform: translateZ(0); } .hvr-icon-wobble-horizontal:hover .hvr-icon, .hvr-icon-wobble-horizontal:focus .hvr-icon, .hvr-icon-wobble-horizontal:active .hvr-icon { -webkit-animation-name: hvr-icon-wobble-horizontal; animation-name: hvr-icon-wobble-horizontal; -webkit-animation-duration: 1s; animation-duration: 1s; -webkit-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; -webkit-animation-iteration-count: 1; animation-iteration-count: 1; } /* Icon Wobble Vertical */ @-webkit-keyframes hvr-icon-wobble-vertical { 16.65% { -webkit-transform: translateY(6px); transform: translateY(6px); } 33.3% { -webkit-transform: translateY(-5px); transform: translateY(-5px); } 49.95% { -webkit-transform: translateY(4px); transform: translateY(4px); } 66.6% { -webkit-transform: translateY(-2px); transform: translateY(-2px); } 83.25% { -webkit-transform: translateY(1px); transform: translateY(1px); } 100% { -webkit-transform: translateY(0); transform: translateY(0); } } @keyframes hvr-icon-wobble-vertical { 16.65% { -webkit-transform: translateY(6px); transform: translateY(6px); } 33.3% { -webkit-transform: translateY(-5px); transform: translateY(-5px); } 49.95% { -webkit-transform: translateY(4px); transform: translateY(4px); } 66.6% { -webkit-transform: translateY(-2px); transform: translateY(-2px); } 83.25% { -webkit-transform: translateY(1px); transform: translateY(1px); } 100% { -webkit-transform: translateY(0); transform: translateY(0); } } .hvr-icon-wobble-vertical { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); -webkit-transition-duration: 0.3s; transition-duration: 0.3s; } .hvr-icon-wobble-vertical .hvr-icon { -webkit-transform: translateZ(0); transform: translateZ(0); } .hvr-icon-wobble-vertical:hover .hvr-icon, .hvr-icon-wobble-vertical:focus .hvr-icon, .hvr-icon-wobble-vertical:active .hvr-icon { -webkit-animation-name: hvr-icon-wobble-vertical; animation-name: hvr-icon-wobble-vertical; -webkit-animation-duration: 1s; animation-duration: 1s; -webkit-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; -webkit-animation-iteration-count: 1; animation-iteration-count: 1; } /* Icon Buzz */ @-webkit-keyframes hvr-icon-buzz { 50% { -webkit-transform: translateX(3px) rotate(2deg); transform: translateX(3px) rotate(2deg); } 100% { -webkit-transform: translateX(-3px) rotate(-2deg); transform: translateX(-3px) rotate(-2deg); } } @keyframes hvr-icon-buzz { 50% { -webkit-transform: translateX(3px) rotate(2deg); transform: translateX(3px) rotate(2deg); } 100% { -webkit-transform: translateX(-3px) rotate(-2deg); transform: translateX(-3px) rotate(-2deg); } } .hvr-icon-buzz { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); -webkit-transition-duration: 0.3s; transition-duration: 0.3s; } .hvr-icon-buzz .hvr-icon { -webkit-transform: translateZ(0); transform: translateZ(0); } .hvr-icon-buzz:hover .hvr-icon, .hvr-icon-buzz:focus .hvr-icon, .hvr-icon-buzz:active .hvr-icon { -webkit-animation-name: hvr-icon-buzz; animation-name: hvr-icon-buzz; -webkit-animation-duration: 0.15s; animation-duration: 0.15s; -webkit-animation-timing-function: linear; animation-timing-function: linear; -webkit-animation-iteration-count: infinite; animation-iteration-count: infinite; } /* Icon Buzz Out */ @-webkit-keyframes hvr-icon-buzz-out { 10% { -webkit-transform: translateX(3px) rotate(2deg); transform: translateX(3px) rotate(2deg); } 20% { -webkit-transform: translateX(-3px) rotate(-2deg); transform: translateX(-3px) rotate(-2deg); } 30% { -webkit-transform: translateX(3px) rotate(2deg); transform: translateX(3px) rotate(2deg); } 40% { -webkit-transform: translateX(-3px) rotate(-2deg); transform: translateX(-3px) rotate(-2deg); } 50% { -webkit-transform: translateX(2px) rotate(1deg); transform: translateX(2px) rotate(1deg); } 60% { -webkit-transform: translateX(-2px) rotate(-1deg); transform: translateX(-2px) rotate(-1deg); } 70% { -webkit-transform: translateX(2px) rotate(1deg); transform: translateX(2px) rotate(1deg); } 80% { -webkit-transform: translateX(-2px) rotate(-1deg); transform: translateX(-2px) rotate(-1deg); } 90% { -webkit-transform: translateX(1px) rotate(0); transform: translateX(1px) rotate(0); } 100% { -webkit-transform: translateX(-1px) rotate(0); transform: translateX(-1px) rotate(0); } } @keyframes hvr-icon-buzz-out { 10% { -webkit-transform: translateX(3px) rotate(2deg); transform: translateX(3px) rotate(2deg); } 20% { -webkit-transform: translateX(-3px) rotate(-2deg); transform: translateX(-3px) rotate(-2deg); } 30% { -webkit-transform: translateX(3px) rotate(2deg); transform: translateX(3px) rotate(2deg); } 40% { -webkit-transform: translateX(-3px) rotate(-2deg); transform: translateX(-3px) rotate(-2deg); } 50% { -webkit-transform: translateX(2px) rotate(1deg); transform: translateX(2px) rotate(1deg); } 60% { -webkit-transform: translateX(-2px) rotate(-1deg); transform: translateX(-2px) rotate(-1deg); } 70% { -webkit-transform: translateX(2px) rotate(1deg); transform: translateX(2px) rotate(1deg); } 80% { -webkit-transform: translateX(-2px) rotate(-1deg); transform: translateX(-2px) rotate(-1deg); } 90% { -webkit-transform: translateX(1px) rotate(0); transform: translateX(1px) rotate(0); } 100% { -webkit-transform: translateX(-1px) rotate(0); transform: translateX(-1px) rotate(0); } } .hvr-icon-buzz-out { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); -webkit-transition-duration: 0.3s; transition-duration: 0.3s; } .hvr-icon-buzz-out .hvr-icon { -webkit-transform: translateZ(0); transform: translateZ(0); } .hvr-icon-buzz-out:hover .hvr-icon, .hvr-icon-buzz-out:focus .hvr-icon, .hvr-icon-buzz-out:active .hvr-icon { -webkit-animation-name: hvr-icon-buzz-out; animation-name: hvr-icon-buzz-out; -webkit-animation-duration: 0.75s; animation-duration: 0.75s; -webkit-animation-timing-function: linear; animation-timing-function: linear; -webkit-animation-iteration-count: 1; animation-iteration-count: 1; } /* CURLS */ /* Curl Top Left */ .hvr-curl-top-left { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); position: relative; } .hvr-curl-top-left:before { pointer-events: none; position: absolute; content: ''; height: 0; width: 0; top: 0; left: 0; background: white; /* IE9 */ background: linear-gradient(135deg, white 45%, #aaa 50%, #ccc 56%, white 80%); filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#ffffff', endColorstr='#000000'); /*For IE7-8-9*/ z-index: 1000; box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.4); -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: width, height; transition-property: width, height; } .hvr-curl-top-left:hover:before, .hvr-curl-top-left:focus:before, .hvr-curl-top-left:active:before { width: 25px; height: 25px; } /* Curl Top Right */ .hvr-curl-top-right { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); position: relative; } .hvr-curl-top-right:before { pointer-events: none; position: absolute; content: ''; height: 0; width: 0; top: 0; right: 0; background: white; /* IE9 */ background: linear-gradient(225deg, white 45%, #aaa 50%, #ccc 56%, white 80%); box-shadow: -1px 1px 1px rgba(0, 0, 0, 0.4); -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: width, height; transition-property: width, height; } .hvr-curl-top-right:hover:before, .hvr-curl-top-right:focus:before, .hvr-curl-top-right:active:before { width: 25px; height: 25px; } /* Curl Bottom Right */ .hvr-curl-bottom-right { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); position: relative; } .hvr-curl-bottom-right:before { pointer-events: none; position: absolute; content: ''; height: 0; width: 0; bottom: 0; right: 0; background: white; /* IE9 */ background: linear-gradient(315deg, white 45%, #aaa 50%, #ccc 56%, white 80%); box-shadow: -1px -1px 1px rgba(0, 0, 0, 0.4); -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: width, height; transition-property: width, height; } .hvr-curl-bottom-right:hover:before, .hvr-curl-bottom-right:focus:before, .hvr-curl-bottom-right:active:before { width: 25px; height: 25px; } /* Curl Bottom Left */ .hvr-curl-bottom-left { display: inline-block; vertical-align: middle; -webkit-transform: perspective(1px) translateZ(0); transform: perspective(1px) translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0); position: relative; } .hvr-curl-bottom-left:before { pointer-events: none; position: absolute; content: ''; height: 0; width: 0; bottom: 0; left: 0; background: white; /* IE9 */ background: linear-gradient(45deg, white 45%, #aaa 50%, #ccc 56%, white 80%); box-shadow: 1px -1px 1px rgba(0, 0, 0, 0.4); -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: width, height; transition-property: width, height; } .hvr-curl-bottom-left:hover:before, .hvr-curl-bottom-left:focus:before, .hvr-curl-bottom-left:active:before { width: 25px; height: 25px; } /*# sourceMappingURL=hover.css.map */ ================================================ FILE: index.html ================================================ Hover.css - A collection of CSS3 powered hover effects
Fork me on GitHub

Hover.css v2

A collection of CSS3 powered hover effects to be applied to links, buttons, logos, SVG, featured images and so on. Easily apply to your own elements, modify or just use for inspiration. Available in CSS, Sass, and LESS.



2D Transitions

Grow Shrink Pulse Pulse Grow Pulse Shrink Push Pop Bounce In Bounce Out Rotate Grow Rotate Float Sink Bob Hang Skew Skew Forward Skew Backward Wobble Horizontal Wobble Vertical Wobble To Bottom Right Wobble To Top Right Wobble Top Wobble Bottom Wobble Skew Buzz Buzz Out Forward Backward

Background Transitions

Fade Back Pulse Sweep To Right Sweep To Left Sweep To Bottom Sweep To Top Bounce To Right Bounce To Left Bounce To Bottom Bounce To Top Radial Out Radial In Rectangle In Rectangle Out Shutter In Horizontal Shutter Out Horizontal Shutter In Vertical Shutter Out Vertical

Icons

Demo font icons courtesy of FontAwesome. How to use icons with Hover.css. Icon Back Icon Forward Icon Down Icon Up Icon Spin Icon Drop Icon Fade Icon Float Away Icon Sink Away Icon Grow Icon Shrink Icon Pulse Icon Pulse Grow Icon Pulse Shrink Icon Push Icon Pop Icon Bounce Icon Rotate Icon Grow Rotate Icon Float Icon Sink Icon Bob Icon Hang Icon Wobble Horizontal Icon Wobble Vertical Icon Buzz Icon Buzz Out

Border Transitions

Border Fade Hollow Trim Ripple Out Ripple In Outline Out Outline In Round Corners Underline From Left Underline From Center Underline From Right Reveal Underline Reveal Overline Reveal Overline From Left Overline From Center Overline From Right

Shadow and Glow Transitions

Shadow Grow Shadow Float Shadow Glow Shadow Radial Box Shadow Outset Box Shadow Inset

Speech Bubbles

Bubble Top Bubble Right Bubble Bottom Bubble Left Bubble Float Top Bubble Float Right Bubble Float Bottom Bubble Float Left

Curls

Curl Top Left Curl Top Right Curl Bottom Right Curl Bottom Left

Like Hover.css? Try out my animation framework for sliders,
presentations, and other step-based applications

Made by
Ian Lunn - WordPress & Front-end Developer

Copyright © 2017 Ian Lunn Design Limited
================================================ FILE: less/_hacks.less ================================================ // As is often the case, some devices/browsers need additional code to get CSS to work // in the most desired way. These mixins are used to quickly drop in hacks for each element // Find out more here: https://github.com/IanLunn/Hover/wiki/Hacks-Explained .hardwareAccel() { // Improve performance on mobile/tablet devices // Perspective reduces blurryness of text in Chrome .prefixed(transform, perspective(1px) translateZ(0)); } .improveAntiAlias() { // Improve aliasing on mobile/tablet devices box-shadow: 0 0 1px rgba(0, 0, 0, 0); } .forceBlockLevel() { // Transforms need to be block-level to work display: inline-block; vertical-align: middle; } .hacks() { .forceBlockLevel(); .hardwareAccel(); .improveAntiAlias(); } ================================================ FILE: less/_mixins.less ================================================ // prefix declarations .prefixed(@property, @value) { & when (@webkit = true) { -webkit-@{property}: @value; } & when (@moz = true) { -moz-@{property}: @value; } & when (@ms = true) { -ms-@{property}: @value; } & when (@o = true) { -o-@{property}: @value; } @{property}: @value; } // prefix keyframes .keyframes(@name; @content) { & when (@webkit = true) { @-webkit-keyframes @name { @content(); } } & when (@moz = true) { @-moz-keyframes @name { @content(); } } & when (@ms = true) { @-ms-keyframes @name { @content(); } } & when (@o = true) { @-o-keyframes @name { @content(); } } @keyframes @name { @content(); } } ================================================ FILE: less/_options.less ================================================ // DEFAULT OPTIONS // Prefix for Hover class names @nameSpace: hvr; // Durations @fastDuration: .1s; @mediumDuration: .3s; @slowDuration: .5s; // Colors @primaryColor: #e1e1e1; @secondaryColor: #666; @highlightColor: #ccc; @activeColor: #2098D1; @shadowColor: rgba(0, 0, 0, .6); // Speech bubbles options @tipWidth: 10px; //the width of the speech bubble tip @tipHeight: 10px; //the height of the speech bubble tip @tipColor: @primaryColor; // Arrows options @spaceBetweenTextAndArrows: 2.2em; // Curl dimensions @curlWidth: 25px; @curlHeight: 25px; // Curl colors @revealAreaColor: white; // reveal area behind the curl @curlLineColor: #aaa; // crease line @curlTransitionColor: #ccc; // color transitioning from crease line to final color @curlLastColor: white; // final color of the back of the curl // Browser Prefixes - Which CSS prefixes should be used? @webkit: true; @moz: false; @ms: false; @o: false; // Compile with or without classes @includeClasses: true; ================================================ FILE: less/effects/2d-transitions/_backward.less ================================================ /* Backward */ .backward() { .hacks(); .prefixed(transition-duration, @mediumDuration); .prefixed(transition-property, transform); &:hover, &:focus, &:active { .prefixed(transform, translateX(-8px)); } } ================================================ FILE: less/effects/2d-transitions/_bob.less ================================================ /* Bob */ .keyframes(~"@{nameSpace}-bob", { 0% { .prefixed(transform, translateY(-8px)); } 50% { .prefixed(transform, translateY(-4px)); } 100% { .prefixed(transform, translateY(-8px)); } }); .keyframes(~"@{nameSpace}-bob-float", { 100% { .prefixed(transform, translateY(-8px)); } }); .bob() { .hacks(); &:hover, &:focus, &:active { .prefixed(animation-name, ~"@{nameSpace}-bob-float, @{nameSpace}-bob"); .prefixed(animation-duration, ~".3s, 1.5s"); .prefixed(animation-delay, ~"0s, .3s"); .prefixed(animation-timing-function, ~"ease-out, ease-in-out"); .prefixed(animation-iteration-count, ~"1, infinite"); .prefixed(animation-fill-mode, ~"forwards"); .prefixed(animation-direction, ~"normal, alternate"); } } ================================================ FILE: less/effects/2d-transitions/_bounce-in.less ================================================ /* Bounce In */ .bounce-in() { .hacks(); .prefixed(transition-duration, @slowDuration); &:hover, &:focus, &:active { .prefixed(transform, scale(1.2)); .prefixed(transition-timing-function, cubic-bezier(.47,2.02,.31,-0.36)); } } ================================================ FILE: less/effects/2d-transitions/_bounce-out.less ================================================ /* Bounce Out */ .bounce-out() { .hacks(); .prefixed(transition-duration, @slowDuration); &:hover, &:focus, &:active { .prefixed(transform, scale(.8)); .prefixed(transition-timing-function, cubic-bezier(.47,2.02,.31,-0.36)); } } ================================================ FILE: less/effects/2d-transitions/_buzz-out.less ================================================ /* Buzz Out */ .keyframes(~"@{nameSpace}-buzz-out", { 10% { .prefixed(transform, translateX(3px) rotate(2deg)); } 20% { .prefixed(transform, translateX(-3px) rotate(-2deg)); } 30% { .prefixed(transform, translateX(3px) rotate(2deg)); } 40% { .prefixed(transform, translateX(-3px) rotate(-2deg)); } 50% { .prefixed(transform, translateX(2px) rotate(1deg)); } 60% { .prefixed(transform, translateX(-2px) rotate(-1deg)); } 70% { .prefixed(transform, translateX(2px) rotate(1deg)); } 80% { .prefixed(transform, translateX(-2px) rotate(-1deg)); } 90% { .prefixed(transform, translateX(1px) rotate(0)); } 100% { .prefixed(transform, translateX(-1px) rotate(0)); } }); .buzz-out() { .hacks(); &:hover, &:focus, &:active { .prefixed(animation-name, ~"@{nameSpace}-buzz-out"); .prefixed(animation-duration, .75s); .prefixed(animation-timing-function, linear); .prefixed(animation-iteration-count, 1); } } ================================================ FILE: less/effects/2d-transitions/_buzz.less ================================================ /* Buzz */ .keyframes(~"@{nameSpace}-buzz", { 50% { .prefixed(transform, translateX(3px) rotate(2deg)); } 100% { .prefixed(transform, translateX(-3px) rotate(-2deg)); } }); .buzz() { .hacks(); &:hover, &:focus, &:active { .prefixed(animation-name, ~"@{nameSpace}-buzz"); .prefixed(animation-duration, .15s); .prefixed(animation-timing-function, linear); .prefixed(animation-iteration-count, infinite); } } ================================================ FILE: less/effects/2d-transitions/_float.less ================================================ /* Float */ .float() { .hacks(); .prefixed(transition-duration, @mediumDuration); .prefixed(transition-property, transform); .prefixed(transition-timing-function, ease-out); &:hover, &:focus, &:active { .prefixed(transform, translateY(-8px)); } } ================================================ FILE: less/effects/2d-transitions/_forward.less ================================================ /* Forward */ .forward() { .hacks(); .prefixed(transition-duration, @mediumDuration); .prefixed(transition-property, transform); &:hover, &:focus, &:active { .prefixed(transform, translateX(8px)); } } ================================================ FILE: less/effects/2d-transitions/_grow-rotate.less ================================================ /* Grow Rotate */ .grow-rotate() { .hacks(); .prefixed(transition-duration, @mediumDuration); .prefixed(transition-property, transform); &:hover, &:focus, &:active { .prefixed(transform, scale(1.1) rotate(4deg)); } } ================================================ FILE: less/effects/2d-transitions/_grow.less ================================================ /* Grow */ .grow() { .hacks(); .prefixed(transition-duration, @mediumDuration); .prefixed(transition-property, transform); &:hover, &:focus, &:active { .prefixed(transform, scale(1.1)); } } ================================================ FILE: less/effects/2d-transitions/_hang.less ================================================ /* Hang */ .keyframes(~"@{nameSpace}-hang", { 0% { .prefixed(transform, translateY(8px)); } 50% { .prefixed(transform, translateY(4px)); } 100% { .prefixed(transform, translateY(8px)); } }); .keyframes(~"@{nameSpace}-hang-sink", { 100% { .prefixed(transform, translateY(8px)); } }); .hang() { .hacks(); &:hover, &:focus, &:active { .prefixed(animation-name, ~"@{nameSpace}-hang-sink, @{nameSpace}-hang"); .prefixed(animation-duration, ~".3s, 1.5s"); .prefixed(animation-delay, ~"0s, .3s"); .prefixed(animation-timing-function, ~"ease-out, ease-in-out"); .prefixed(animation-iteration-count, ~"1, infinite"); .prefixed(animation-fill-mode, ~"forwards"); .prefixed(animation-direction, ~"normal, alternate"); } } ================================================ FILE: less/effects/2d-transitions/_pop.less ================================================ /* Pop */ .keyframes(~"@{nameSpace}-pop", { 50% { .prefixed(transform, scale(1.2)); } }); .pop() { .hacks(); &:hover, &:focus, &:active { .prefixed(animation-name, ~"@{nameSpace}-pop"); .prefixed(animation-duration, @mediumDuration); .prefixed(animation-timing-function, linear); .prefixed(animation-iteration-count, 1); } } ================================================ FILE: less/effects/2d-transitions/_pulse-grow.less ================================================ /* Pulse Grow */ .keyframes(~"@{nameSpace}-pulse-grow", { to { .prefixed(transform, scale(1.1)); } }); .pulse-grow() { .hacks(); &:hover, &:focus, &:active { .prefixed(animation-name, ~"@{nameSpace}-pulse-grow"); .prefixed(animation-duration, @mediumDuration); .prefixed(animation-timing-function, linear); .prefixed(animation-iteration-count, infinite); .prefixed(animation-direction, alternate); } } ================================================ FILE: less/effects/2d-transitions/_pulse-shrink.less ================================================ /* Pulse Shrink */ .keyframes(~"@{nameSpace}-pulse-shrink", { to { .prefixed(transform, scale(.9)); } }); .pulse-shrink() { .hacks(); &:hover, &:focus, &:active { .prefixed(animation-name, ~"@{nameSpace}-pulse-shrink"); .prefixed(animation-duration, @mediumDuration); .prefixed(animation-timing-function, linear); .prefixed(animation-iteration-count, infinite); .prefixed(animation-direction, alternate); } } ================================================ FILE: less/effects/2d-transitions/_pulse.less ================================================ /* Pulse */ .keyframes(~"@{nameSpace}-pulse", { 25% { .prefixed(transform, scale(1.1)); } 75% { .prefixed(transform, scale(.9)); } }); .pulse() { .hacks(); &:hover, &:focus, &:active { .prefixed(animation-name, ~"@{nameSpace}-pulse"); .prefixed(animation-duration, 1s); .prefixed(animation-timing-function, linear); .prefixed(animation-iteration-count, infinite); } } ================================================ FILE: less/effects/2d-transitions/_push.less ================================================ /* Push */ .keyframes(~"@{nameSpace}-push", { 50% { .prefixed(transform, scale(.8)); } 100% { .prefixed(transform, scale(1)); } }); .push() { .hacks(); &:hover, &:focus, &:active { .prefixed(animation-name, ~"@{nameSpace}-push"); .prefixed(animation-duration, .3s); .prefixed(animation-timing-function, linear); .prefixed(animation-iteration-count, 1); } } ================================================ FILE: less/effects/2d-transitions/_rotate.less ================================================ /* Rotate */ .rotate() { .hacks(); .prefixed(transition-duration, @mediumDuration); .prefixed(transition-property, transform); &:hover, &:focus, &:active { .prefixed(transform, rotate(4deg)); } } ================================================ FILE: less/effects/2d-transitions/_shrink.less ================================================ /* Shrink */ .shrink() { .hacks(); .prefixed(transition-duration, @mediumDuration); .prefixed(transition-property, transform); &:hover, &:focus, &:active { .prefixed(transform, scale(.9)); } } ================================================ FILE: less/effects/2d-transitions/_sink.less ================================================ /* Sink */ .sink() { .hacks(); .prefixed(transition-duration, @mediumDuration); .prefixed(transition-property, transform); .prefixed(transition-timing-function, ease-out); &:hover, &:focus, &:active { .prefixed(transform, translateY(8px)); } } ================================================ FILE: less/effects/2d-transitions/_skew-backward.less ================================================ /* Skew Backward */ .skew-backward() { .hacks(); .prefixed(transition-duration, @mediumDuration); .prefixed(transition-property, transform); .prefixed(transform-origin, 0 100%); &:hover, &:focus, &:active { .prefixed(transform, skew(10deg)); } } ================================================ FILE: less/effects/2d-transitions/_skew-forward.less ================================================ /* Skew Forward */ .skew-forward() { .hacks(); .prefixed(transition-duration, @mediumDuration); .prefixed(transition-property, transform); .prefixed(transform-origin, 0 100%); &:hover, &:focus, &:active { .prefixed(transform, skew(-10deg)); } } ================================================ FILE: less/effects/2d-transitions/_skew.less ================================================ /* Skew */ .skew() { .hacks(); .prefixed(transition-duration, @mediumDuration); .prefixed(transition-property, transform); &:hover, &:focus, &:active { .prefixed(transform, skew(-10deg)); } } ================================================ FILE: less/effects/2d-transitions/_wobble-bottom.less ================================================ /* Wobble Bottom */ .keyframes(~"@{nameSpace}-wobble-bottom", { 16.65% { .prefixed(transform, skew(-12deg)); } 33.3% { .prefixed(transform, skew(10deg)); } 49.95% { .prefixed(transform, skew(-6deg)); } 66.6% { .prefixed(transform, skew(4deg)); } 83.25% { .prefixed(transform, skew(-2deg)); } 100% { .prefixed(transform, skew(0)); } }); .wobble-bottom() { .hacks(); .prefixed(transform-origin, 100% 0); &:hover, &:focus, &:active { .prefixed(animation-name, ~"@{nameSpace}-wobble-bottom"); .prefixed(animation-duration, 1s); .prefixed(animation-timing-function, ease-in-out); .prefixed(animation-iteration-count, 1); } } ================================================ FILE: less/effects/2d-transitions/_wobble-horizontal.less ================================================ /* Wobble Horizontal */ .keyframes(~"@{nameSpace}-wobble-horizontal", { 16.65% { .prefixed(transform, translateX(8px)); } 33.3% { .prefixed(transform, translateX(-6px)); } 49.95% { .prefixed(transform, translateX(4px)); } 66.6% { .prefixed(transform, translateX(-2px)); } 83.25% { .prefixed(transform, translateX(1px)); } 100% { .prefixed(transform, translateX(0)); } }); .wobble-horizontal() { .hacks(); &:hover, &:focus, &:active { .prefixed(animation-name, ~"@{nameSpace}-wobble-horizontal"); .prefixed(animation-duration, 1s); .prefixed(animation-timing-function, ease-in-out); .prefixed(animation-iteration-count, 1); } } ================================================ FILE: less/effects/2d-transitions/_wobble-skew.less ================================================ /* Wobble Skew */ .keyframes(~"@{nameSpace}-wobble-skew", { 16.65% { .prefixed(transform, skew(-12deg)); } 33.3% { .prefixed(transform, skew(10deg)); } 49.95% { .prefixed(transform, skew(-6deg)); } 66.6% { .prefixed(transform, skew(4deg)); } 83.25% { .prefixed(transform, skew(-2deg)); } 100% { .prefixed(transform, skew(0)); } }); .wobble-skew() { .hacks(); &:hover, &:focus, &:active { .prefixed(animation-name, ~"@{nameSpace}-wobble-skew"); .prefixed(animation-duration, 1s); .prefixed(animation-timing-function, ease-in-out); .prefixed(animation-iteration-count, 1); } } ================================================ FILE: less/effects/2d-transitions/_wobble-to-bottom-right.less ================================================ /* Wobble To Bottom Right */ .keyframes(~"@{nameSpace}-wobble-to-bottom-right", { 16.65% { .prefixed(transform, translate(8px, 8px)); } 33.3% { .prefixed(transform, translate(-6px, -6px)); } 49.95% { .prefixed(transform, translate(4px, 4px)); } 66.6% { .prefixed(transform, translate(-2px, -2px)); } 83.25% { .prefixed(transform, translate(1px, 1px)); } 100% { .prefixed(transform, translate(0, 0)); } }); .wobble-to-bottom-right() { .hacks(); &:hover, &:focus, &:active { .prefixed(animation-name, ~"@{nameSpace}-wobble-to-bottom-right"); .prefixed(animation-duration, 1s); .prefixed(animation-timing-function, ease-in-out); .prefixed(animation-iteration-count, 1); } } ================================================ FILE: less/effects/2d-transitions/_wobble-to-top-right.less ================================================ /* Wobble To Top Right */ .keyframes(~"@{nameSpace}-wobble-to-top-right", { 16.65% { .prefixed(transform, translate(8px, -8px)); } 33.3% { .prefixed(transform, translate(-6px, 6px)); } 49.95% { .prefixed(transform, translate(4px, -4px)); } 66.6% { .prefixed(transform, translate(-2px, 2px)); } 83.25% { .prefixed(transform, translate(1px, -1px)); } 100% { .prefixed(transform, translate(0, 0)); } }); .wobble-to-top-right() { .hacks(); &:hover, &:focus, &:active { .prefixed(animation-name, ~"@{nameSpace}-wobble-to-top-right"); .prefixed(animation-duration, 1s); .prefixed(animation-timing-function, ease-in-out); .prefixed(animation-iteration-count, 1); } } ================================================ FILE: less/effects/2d-transitions/_wobble-top.less ================================================ /* Wobble Top */ .keyframes(~"@{nameSpace}-wobble-top", { 16.65% { .prefixed(transform, skew(-12deg)); } 33.3% { .prefixed(transform, skew(10deg)); } 49.95% { .prefixed(transform, skew(-6deg)); } 66.6% { .prefixed(transform, skew(4deg)); } 83.25% { .prefixed(transform, skew(-2deg)); } 100% { .prefixed(transform, skew(0)); } }); .wobble-top() { .hacks(); .prefixed(transform-origin, 0 100%); &:hover, &:focus, &:active { .prefixed(animation-name, ~"@{nameSpace}-wobble-top"); .prefixed(animation-duration, 1s); .prefixed(animation-timing-function, ease-in-out); .prefixed(animation-iteration-count, 1); } } ================================================ FILE: less/effects/2d-transitions/_wobble-vertical.less ================================================ /* Wobble Vertical */ .keyframes(~"@{nameSpace}-wobble-vertical", { 16.65% { .prefixed(transform, translateY(8px)); } 33.3% { .prefixed(transform, translateY(-6px)); } 49.95% { .prefixed(transform, translateY(4px)); } 66.6% { .prefixed(transform, translateY(-2px)); } 83.25% { .prefixed(transform, translateY(1px)); } 100% { .prefixed(transform, translateY(0)); } }); .wobble-vertical() { .hacks(); &:hover, &:focus, &:active { .prefixed(animation-name, ~"@{nameSpace}-wobble-vertical"); .prefixed(animation-duration, 1s); .prefixed(animation-timing-function, ease-in-out); .prefixed(animation-iteration-count, 1); } } ================================================ FILE: less/effects/background-transitions/_back-pulse.less ================================================ /* Back Pulse */ .keyframes(~"@{nameSpace}-back-pulse", { 50% { background-color: rgba(32, 152, 209, .75); } }); .back-pulse() { .hacks(); overflow: hidden; .prefixed(transition-duration, @slowDuration); .prefixed(transition-property, "color, background-color"); &:hover, &:focus, &:active { .prefixed(animation-name, ~"@{nameSpace}-back-pulse"); .prefixed(animation-duration, 1s); .prefixed(animation-delay, @slowDuration); .prefixed(animation-timing-function, linear); .prefixed(animation-iteration-count, infinite); background-color: @activeColor; background-color: rgba(32, 152, 209, 1); color: white; } } ================================================ FILE: less/effects/background-transitions/_bounce-to-bottom.less ================================================ /* Bounce To Bottom */ .bounce-to-bottom() { .hacks(); position: relative; .prefixed(transition-property, color); .prefixed(transition-duration, @slowDuration); &:before { content: ""; position: absolute; z-index: -1; top: 0; left: 0; right: 0; bottom: 0; background: @activeColor; .prefixed(transform, scaleY(0)); .prefixed(transform-origin, 50% 0); .prefixed(transition-property, transform); .prefixed(transition-duration, @slowDuration); .prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { color: white; &:before { .prefixed(transform, scaleY(1)); .prefixed(transition-timing-function, cubic-bezier(.52,1.64,.37,.66)); } } } ================================================ FILE: less/effects/background-transitions/_bounce-to-left.less ================================================ /* Bounce To Left */ .bounce-to-left() { .hacks(); position: relative; .prefixed(transition-property, color); .prefixed(transition-duration, @slowDuration); &:before { content: ""; position: absolute; z-index: -1; top: 0; left: 0; right: 0; bottom: 0; background: @activeColor; .prefixed(transform, scaleX(0)); .prefixed(transform-origin, 100% 50%); .prefixed(transition-property, transform); .prefixed(transition-duration, @slowDuration); .prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { color: white; &:before { .prefixed(transform, scaleX(1)); .prefixed(transition-timing-function, cubic-bezier(.52,1.64,.37,.66)); } } } ================================================ FILE: less/effects/background-transitions/_bounce-to-right.less ================================================ /* Bounce To Right */ .bounce-to-right() { .hacks(); position: relative; .prefixed(transition-property, color); .prefixed(transition-duration, @slowDuration); &:before { content: ""; position: absolute; z-index: -1; top: 0; left: 0; right: 0; bottom: 0; background: @activeColor; .prefixed(transform, scaleX(0)); .prefixed(transform-origin, 0 50%); .prefixed(transition-property, transform); .prefixed(transition-duration, @slowDuration); .prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { color: white; &:before { .prefixed(transform, scaleX(1)); .prefixed(transition-timing-function, cubic-bezier(.52,1.64,.37,.66)); } } } ================================================ FILE: less/effects/background-transitions/_bounce-to-top.less ================================================ /* Bounce To Top */ .bounce-to-top() { .hacks(); position: relative; .prefixed(transition-property, color); .prefixed(transition-duration, @slowDuration); &:before { content: ""; position: absolute; z-index: -1; top: 0; left: 0; right: 0; bottom: 0; background: @activeColor; .prefixed(transform, scaleY(0)); .prefixed(transform-origin, 50% 100%); .prefixed(transition-property, transform); .prefixed(transition-duration, @slowDuration); .prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { color: white; &:before { .prefixed(transform, scaleY(1)); .prefixed(transition-timing-function, cubic-bezier(.52,1.64,.37,.66)); } } } ================================================ FILE: less/effects/background-transitions/_fade.less ================================================ /* Fade */ .fade() { .hacks(); overflow: hidden; .prefixed(transition-duration, @mediumDuration); .prefixed(transition-property, ~"color, background-color"); &:hover, &:focus, &:active { background-color: @activeColor; color: white; } } ================================================ FILE: less/effects/background-transitions/_radial-in.less ================================================ /* Radial In */ .radial-in() { .hacks(); position: relative; overflow: hidden; background: @activeColor; .prefixed(transition-property, color); .prefixed(transition-duration, @mediumDuration); &:before { content: ""; position: absolute; z-index: -1; top: 0; left: 0; right: 0; bottom: 0; background: @primaryColor; border-radius: 100%; .prefixed(transform, scale(2)); .prefixed(transition-property, transform); .prefixed(transition-duration, @mediumDuration); .prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { color: white; &:before { .prefixed(transform, scale(0)); } } } ================================================ FILE: less/effects/background-transitions/_radial-out.less ================================================ /* Radial Out */ .radial-out() { .hacks(); position: relative; overflow: hidden; background: @primaryColor; .prefixed(transition-property, color); .prefixed(transition-duration, @mediumDuration); &:before { content: ""; position: absolute; z-index: -1; top: 0; left: 0; right: 0; bottom: 0; background: @activeColor; border-radius: 100%; .prefixed(transform, scale(0)); .prefixed(transition-property, transform); .prefixed(transition-duration, @mediumDuration); .prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { color: white; &:before { .prefixed(transform, scale(2)); } } } ================================================ FILE: less/effects/background-transitions/_rectangle-in.less ================================================ /* Rectangle In */ .rectangle-in() { .hacks(); position: relative; background: @activeColor; .prefixed(transition-property, color); .prefixed(transition-duration, @mediumDuration); &:before { content: ""; position: absolute; z-index: -1; top: 0; left: 0; right: 0; bottom: 0; background: @primaryColor; .prefixed(transform, scale(1)); .prefixed(transition-property, transform); .prefixed(transition-duration, @mediumDuration); .prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { color: white; &:before { .prefixed(transform, scale(0)); } } } ================================================ FILE: less/effects/background-transitions/_rectangle-out.less ================================================ /* Rectangle Out */ .rectangle-out() { .hacks(); position: relative; background: @primaryColor; .prefixed(transition-property, color); .prefixed(transition-duration, @mediumDuration); &:before { content: ""; position: absolute; z-index: -1; top: 0; left: 0; right: 0; bottom: 0; background: @activeColor; .prefixed(transform, scale(0)); .prefixed(transition-property, transform); .prefixed(transition-duration, @mediumDuration); .prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { color: white; &:before { .prefixed(transform, scale(1)); } } } ================================================ FILE: less/effects/background-transitions/_shutter-in-horizontal.less ================================================ /* Shutter In Horizontal */ .shutter-in-horizontal() { .hacks(); position: relative; background: @activeColor; .prefixed(transition-property, color); .prefixed(transition-duration, @mediumDuration); &:before { content: ""; position: absolute; z-index: -1; top: 0; bottom: 0; left: 0; right: 0; background: @primaryColor; .prefixed(transform, scaleX(1)); .prefixed(transform-origin, 50%); .prefixed(transition-property, transform); .prefixed(transition-duration, @mediumDuration); .prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { color: white; &:before { .prefixed(transform, scaleX(0)); } } } ================================================ FILE: less/effects/background-transitions/_shutter-in-vertical.less ================================================ /* Shutter In Vertical */ .shutter-in-vertical() { .hacks(); position: relative; background: @activeColor; .prefixed(transition-property, color); .prefixed(transition-duration, @mediumDuration); &:before { content: ""; position: absolute; z-index: -1; top: 0; bottom: 0; left: 0; right: 0; background: @primaryColor; .prefixed(transform, scaleY(1)); .prefixed(transform-origin, 50%); .prefixed(transition-property, transform); .prefixed(transition-duration, @mediumDuration); .prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { color: white; &:before { .prefixed(transform, scaleY(0)); } } } ================================================ FILE: less/effects/background-transitions/_shutter-out-horizontal.less ================================================ /* Shutter Out Horizontal */ .shutter-out-horizontal() { .hacks(); position: relative; background: @primaryColor; .prefixed(transition-property, color); .prefixed(transition-duration, @mediumDuration); &:before { content: ""; position: absolute; z-index: -1; top: 0; bottom: 0; left: 0; right: 0; background: @activeColor; .prefixed(transform, scaleX(0)); .prefixed(transform-origin, 50%); .prefixed(transition-property, transform); .prefixed(transition-duration, @mediumDuration); .prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { color: white; &:before { .prefixed(transform, scaleX(1)); } } } ================================================ FILE: less/effects/background-transitions/_shutter-out-vertical.less ================================================ /* Shutter Out Vertical */ .shutter-out-vertical() { .hacks(); position: relative; background: @primaryColor; .prefixed(transition-property, color); .prefixed(transition-duration, @mediumDuration); &:before { content: ""; position: absolute; z-index: -1; top: 0; bottom: 0; left: 0; right: 0; background: @activeColor; .prefixed(transform, scaleY(0)); .prefixed(transform-origin, 50%); .prefixed(transition-property, transform); .prefixed(transition-duration, @mediumDuration); .prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { color: white; &:before { .prefixed(transform, scaleY(1)); } } } ================================================ FILE: less/effects/background-transitions/_sweep-to-bottom.less ================================================ /* Sweep To Bottom */ .sweep-to-bottom() { .hacks(); position: relative; .prefixed(transition-property, color); .prefixed(transition-duration, @mediumDuration); &:before { content: ""; position: absolute; z-index: -1; top: 0; left: 0; right: 0; bottom: 0; background: @activeColor; .prefixed(transform, scaleY(0)); .prefixed(transform-origin, 50% 0); .prefixed(transition-property, transform); .prefixed(transition-duration, @mediumDuration); .prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { color: white; &:before { .prefixed(transform, scaleY(1)); } } } ================================================ FILE: less/effects/background-transitions/_sweep-to-left.less ================================================ /* Sweep To Left */ .sweep-to-left() { .hacks(); position: relative; .prefixed(transition-property, color); .prefixed(transition-duration, @mediumDuration); &:before { content: ""; position: absolute; z-index: -1; top: 0; left: 0; right: 0; bottom: 0; background: @activeColor; .prefixed(transform, scaleX(0)); .prefixed(transform-origin, 100% 50%); .prefixed(transition-property, transform); .prefixed(transition-duration, @mediumDuration); .prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { color: white; &:before { .prefixed(transform, scaleX(1)); } } } ================================================ FILE: less/effects/background-transitions/_sweep-to-right.less ================================================ /* Sweep To Right */ .sweep-to-right() { .hacks(); position: relative; .prefixed(transition-property, color); .prefixed(transition-duration, @mediumDuration); &:before { content: ""; position: absolute; z-index: -1; top: 0; left: 0; right: 0; bottom: 0; background: @activeColor; .prefixed(transform, scaleX(0)); .prefixed(transform-origin, 0 50%); .prefixed(transition-property, transform); .prefixed(transition-duration, @mediumDuration); .prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { color: white; &:before { .prefixed(transform, scaleX(1)); } } } ================================================ FILE: less/effects/background-transitions/_sweep-to-top.less ================================================ /* Sweep To Top */ .sweep-to-top() { .hacks(); position: relative; .prefixed(transition-property, color); .prefixed(transition-duration, @mediumDuration); &:before { content: ""; position: absolute; z-index: -1; top: 0; left: 0; right: 0; bottom: 0; background: @activeColor; .prefixed(transform, scaleY(0)); .prefixed(transform-origin, 50% 100%); .prefixed(transition-property, transform); .prefixed(transition-duration, @mediumDuration); .prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { color: white; &:before { .prefixed(transform, scaleY(1)); } } } ================================================ FILE: less/effects/border-transitions/_border-fade.less ================================================ /* Border Fade */ .border-fade() { @borderWidth: 4px; .hacks(); .prefixed(transition-duration, @mediumDuration); .prefixed(transition-property, box-shadow); box-shadow: inset 0 0 0 @borderWidth @primaryColor, 0 0 1px rgba(0, 0, 0, 0); /* Hack to improve aliasing on mobile/tablet devices */ &:hover, &:focus, &:active { box-shadow: inset 0 0 0 @borderWidth @activeColor, 0 0 1px rgba(0, 0, 0, 0); /* Hack to improve aliasing on mobile/tablet devices */ } } ================================================ FILE: less/effects/border-transitions/_hollow.less ================================================ /* Hollow */ .hollow() { @borderWidth: 4px; .hacks(); .prefixed(transition-duration, @mediumDuration); .prefixed(transition-property, background); box-shadow: inset 0 0 0 @borderWidth @primaryColor, 0 0 1px rgba(0, 0, 0, 0); /* Hack to improve aliasing on mobile/tablet devices */ &:hover, &:focus, &:active { background: none; } } ================================================ FILE: less/effects/border-transitions/_outline-in.less ================================================ /* Outline In */ .outline-in() { @outerBorderWidth: 4px; @innerBorderWidth: 4px; .hacks(); position: relative; &:before { pointer-events: none; content: ''; position: absolute; border: @primaryColor solid @outerBorderWidth; top: -(@outerBorderWidth + @innerBorderWidth) * 2; right: -(@outerBorderWidth + @innerBorderWidth) * 2; bottom: -(@outerBorderWidth + @innerBorderWidth) * 2; left: -(@outerBorderWidth + @innerBorderWidth) * 2; opacity: 0; .prefixed(transition-duration, .3s); .prefixed(transition-property, "top, right, bottom, left"); } &:hover:before, &:focus:before, &:active:before { top: -(@outerBorderWidth + @innerBorderWidth); right: -(@outerBorderWidth + @innerBorderWidth); bottom: -(@outerBorderWidth + @innerBorderWidth); left: -(@outerBorderWidth + @innerBorderWidth); opacity: 1; } } ================================================ FILE: less/effects/border-transitions/_outline-out.less ================================================ /* Outline Out */ .outline-out() { @outerBorderWidth: 4px; @innerBorderWidth: 4px; .hacks(); position: relative; &:before { content: ''; position: absolute; border: @primaryColor solid @outerBorderWidth; top: 0; right: 0; bottom: 0; left: 0; .prefixed(transition-duration, .3s); .prefixed(transition-property, "top, right, bottom, left"); } &:hover:before, &:focus:before, &:active:before { top: -(@outerBorderWidth + @innerBorderWidth); right: -(@outerBorderWidth + @innerBorderWidth); bottom: -(@outerBorderWidth + @innerBorderWidth); left: -(@outerBorderWidth + @innerBorderWidth); } } ================================================ FILE: less/effects/border-transitions/_overline-from-center.less ================================================ /* Overline From Center */ .overline-from-center() { @duration: @mediumDuration; .hacks(); position: relative; overflow: hidden; &:before { content: ""; position: absolute; z-index: -1; left: 51%; right: 51%; top: 0; background: @activeColor; height: 4px; .prefixed(transition-property, "left, right"); .prefixed(transition-duration, @duration); .prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { &:before { left: 0; right: 0; } } } ================================================ FILE: less/effects/border-transitions/_overline-from-left.less ================================================ /* Overline From Left */ .overline-from-left() { @duration: @mediumDuration; .hacks(); position: relative; overflow: hidden; &:before { content: ""; position: absolute; z-index: -1; left: 0; right: 100%; top: 0; background: @activeColor; height: 4px; .prefixed(transition-property, "right"); .prefixed(transition-duration, @duration); .prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { &:before { right: 0; } } } ================================================ FILE: less/effects/border-transitions/_overline-from-right.less ================================================ /* Overline From Right */ .overline-from-right() { @duration: @mediumDuration; .hacks(); position: relative; overflow: hidden; &:before { content: ""; position: absolute; z-index: -1; left: 100%; right: 0; top: 0; background: @activeColor; height: 4px; .prefixed(transition-property, "left"); .prefixed(transition-duration, @duration); .prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { &:before { left: 0; } } } ================================================ FILE: less/effects/border-transitions/_overline-reveal.less ================================================ /* Overline Reveal */ .overline-reveal() { @duration: @mediumDuration; .hacks(); position: relative; overflow: hidden; &:before { content: ""; position: absolute; z-index: -1; left: 0; right: 0; top: 0; background: @activeColor; height: 4px; .prefixed(transform, translateY(-4px)); .prefixed(transition-property, transform); .prefixed(transition-duration, @duration); .prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { &:before { .prefixed(transform, translateY(0)); } } } ================================================ FILE: less/effects/border-transitions/_reveal.less ================================================ /* Reveal */ .reveal() { @duration: @fastDuration; .hacks(); position: relative; overflow: hidden; &:before { content: ""; position: absolute; z-index: -1; left: 0; right: 0; top: 0; bottom: 0; border-color: @activeColor; border-style: solid; border-width: 0; .prefixed(transition-property, border-width); .prefixed(transition-duration, @duration); .prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { &:before { .prefixed(transform, translateY(0)); border-width: 4px; } } } ================================================ FILE: less/effects/border-transitions/_ripple-in.less ================================================ /* Ripple In */ .keyframes(~"@{nameSpace}-ripple-in", { 100% { top: 0; right: 0; bottom: 0; left: 0; opacity: 1; } }); .ripple-in() { @outerBorderWidth: 4px; @innerBorderWidth: 4px; .hacks(); position: relative; &:before { content: ''; position: absolute; border: @primaryColor solid @outerBorderWidth; top: -(6px + 6px); right: -(6px + 6px); bottom: -(6px + 6px); left: -(6px + 6px); opacity: 0; .prefixed(animation-duration, 1s); } &:hover:before, &:focus:before, &:active:before { .prefixed(animation-name, ~"@{nameSpace}-ripple-in"); } } ================================================ FILE: less/effects/border-transitions/_ripple-out.less ================================================ /* Ripple Out */ .keyframes(~"@{nameSpace}-ripple-out", { 100% { top: -(6px + 6px); right: -(6px + 6px); bottom: -(6px + 6px); left: -(6px + 6px); opacity: 0; } }); .ripple-out() { @outerBorderWidth: 6px; @innerBorderWidth: 6px; .hacks(); position: relative; &:before { content: ''; position: absolute; border: @primaryColor solid @outerBorderWidth; top: 0; right: 0; bottom: 0; left: 0; .prefixed(animation-duration, 1s); } &:hover:before, &:focus:before, &:active:before { .prefixed(animation-name, ~"@{nameSpace}-ripple-out"); } } ================================================ FILE: less/effects/border-transitions/_round-corners.less ================================================ /* Round Corners */ .round-corners() { .hacks(); .prefixed(transition-duration, @mediumDuration); .prefixed(transition-property, border-radius); &:hover, &:focus, &:active { border-radius: 1em; } } ================================================ FILE: less/effects/border-transitions/_trim.less ================================================ /* Trim */ .trim() { @outerBorderWidth: 4px; @innerBorderWidth: 4px; .hacks(); position: relative; &:before { content: ''; position: absolute; border: white solid @innerBorderWidth; top: @outerBorderWidth; left: @outerBorderWidth; right: @outerBorderWidth; bottom: @outerBorderWidth; opacity: 0; .prefixed(transition-duration, @mediumDuration); .prefixed(transition-property, opacity); } &:hover:before, &:focus:before, &:active:before { opacity: 1; } } ================================================ FILE: less/effects/border-transitions/_underline-from-center.less ================================================ /* Underline From Center */ .underline-from-center() { @duration: @mediumDuration; .hacks(); position: relative; overflow: hidden; &:before { content: ""; position: absolute; z-index: -1; left: 51%; right: 51%; bottom: 0; background: @activeColor; height: 4px; .prefixed(transition-property, "left, right"); .prefixed(transition-duration, @duration); .prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { &:before { left: 0; right: 0; } } } ================================================ FILE: less/effects/border-transitions/_underline-from-left.less ================================================ /* Underline From Left */ .underline-from-left() { @duration: @mediumDuration; .hacks(); position: relative; overflow: hidden; &:before { content: ""; position: absolute; z-index: -1; left: 0; right: 100%; bottom: 0; background: @activeColor; height: 4px; .prefixed(transition-property, "right"); .prefixed(transition-duration, @duration); .prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { &:before { right: 0; } } } ================================================ FILE: less/effects/border-transitions/_underline-from-right.less ================================================ /* Underline From Right */ .underline-from-right() { @duration: @mediumDuration; .hacks(); position: relative; overflow: hidden; &:before { content: ""; position: absolute; z-index: -1; left: 100%; right: 0; bottom: 0; background: @activeColor; height: 4px; .prefixed(transition-property, "left"); .prefixed(transition-duration, @duration); .prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { &:before { left: 0; } } } ================================================ FILE: less/effects/border-transitions/_underline-reveal.less ================================================ /* Underline Reveal */ .underline-reveal() { @duration: @mediumDuration; .hacks(); position: relative; overflow: hidden; &:before { content: ""; position: absolute; z-index: -1; left: 0; right: 0; bottom: 0; background: @activeColor; height: 4px; .prefixed(transform, translateY(4px)); .prefixed(transition-property, transform); .prefixed(transition-duration, @duration); .prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { &:before { .prefixed(transform, translateY(0)); } } } ================================================ FILE: less/effects/curls/_curl-bottom-left.less ================================================ /* Curl Bottom Left */ .curl-bottom-left() { .hacks(); position: relative; &:before { pointer-events: none; position: absolute; content: ''; height: 0; width: 0; bottom: 0; left: 0; background: @revealAreaColor; /* IE9 */ background: linear-gradient( 45deg, @revealAreaColor 45%, @curlLineColor 50%, @curlTransitionColor 56%, @curlLastColor 80% ); box-shadow: 1px -1px 1px rgba(0, 0, 0, .4); .prefixed(transition-duration, @mediumDuration); .prefixed(transition-property, ~"width, height"); } &:hover:before, &:focus:before, &:active:before { width: @curlWidth; height: @curlHeight; } } ================================================ FILE: less/effects/curls/_curl-bottom-right.less ================================================ /* Curl Bottom Right */ .curl-bottom-right() { .hacks(); position: relative; &:before { pointer-events: none; position: absolute; content: ''; height: 0; width: 0; bottom: 0; right: 0; background: @revealAreaColor; /* IE9 */ background: linear-gradient( 315deg, @revealAreaColor 45%, @curlLineColor 50%, @curlTransitionColor 56%, @curlLastColor 80% ); box-shadow: -1px -1px 1px rgba(0, 0, 0, .4); .prefixed(transition-duration, @mediumDuration); .prefixed(transition-property, ~"width, height"); } &:hover:before, &:focus:before, &:active:before { width: @curlWidth; height: @curlHeight; } } ================================================ FILE: less/effects/curls/_curl-top-left.less ================================================ /* Curl Top Left */ .curl-top-left() { .hacks(); position: relative; &:before { pointer-events: none; position: absolute; content: ''; height: 0; width: 0; top: 0; left: 0; background: @revealAreaColor; /* IE9 */ background: linear-gradient( 135deg, @revealAreaColor 45%, @curlLineColor 50%, @curlTransitionColor 56%, @curlLastColor 80% ); filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#ffffff', endColorstr='#000000');/*For IE7-8-9*/ z-index: 1000; box-shadow: 1px 1px 1px rgba(0, 0, 0, .4); .prefixed(transition-duration, @mediumDuration); .prefixed(transition-property, ~"width, height"); } &:hover:before, &:focus:before, &:active:before { width: @curlWidth; height: @curlHeight; } } ================================================ FILE: less/effects/curls/_curl-top-right.less ================================================ /* Curl Top Right */ .curl-top-right() { .hacks(); position: relative; &:before { pointer-events: none; position: absolute; content: ''; height: 0; width: 0; top: 0; right: 0; background: @revealAreaColor; /* IE9 */ background: linear-gradient( 225deg, @revealAreaColor 45%, @curlLineColor 50%, @curlTransitionColor 56%, @curlLastColor 80% ); box-shadow: -1px 1px 1px rgba(0, 0, 0, .4); .prefixed(transition-duration, @mediumDuration); .prefixed(transition-property, ~"width, height"); } &:hover:before, &:focus:before, &:active:before { width: @curlWidth; height: @curlHeight; } } ================================================ FILE: less/effects/icons/_icon-back.less ================================================ /* Icon Back */ .icon-back() { .hacks(); .prefixed(transition-duration, @fastDuration); .hvr-icon { .prefixed(transform, translateZ(0)); .prefixed(transition-duration, @fastDuration); .prefixed(transition-property, transform); .prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { .hvr-icon { .prefixed(transform, translateX(-4px)); } } } ================================================ FILE: less/effects/icons/_icon-bob.less ================================================ /* Icon Bob */ .keyframes(~"@{nameSpace}-icon-bob", { 0% { .prefixed(transform, translateY(-6px)); } 50% { .prefixed(transform, translateY(-2px)); } 100% { .prefixed(transform, translateY(-6px)); } }); .keyframes(~"@{nameSpace}-icon-bob-float", { 100% { .prefixed(transform, translateY(-6px)); } }); .icon-bob() { .hacks(); .prefixed(transition-duration, @mediumDuration); .hvr-icon { .prefixed(transform, translateZ(0)); } &:hover, &:focus, &:active { .hvr-icon { .prefixed(animation-name, ~"@{nameSpace}-icon-bob-float, @{nameSpace}-icon-bob"); .prefixed(animation-duration, ~".3s, 1.5s"); .prefixed(animation-delay, ~"0s, .3s"); .prefixed(animation-timing-function, ~"ease-out, ease-in-out"); .prefixed(animation-iteration-count, ~"1, infinite"); .prefixed(animation-fill-mode, ~"forwards"); .prefixed(animation-direction, ~"normal, alternate"); } } } ================================================ FILE: less/effects/icons/_icon-bounce-out.less ================================================ /* Icon Bounce Out */ .keyframes(~"@{nameSpace}-icon-bounce-out", { 50% { .prefixed(transform, scale(1.5)); } }); .icon-bounce-out() { .hacks(); .prefixed(transition-duration, @mediumDuration); .hvr-icon { .prefixed(transform, translateZ(0)); .prefixed(transition-duration, @mediumDuration); .prefixed(transition-property, transform); .prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { .hvr-icon { .prefixed(transform, scale(.9)); .prefixed(transition-timing-function, cubic-bezier(.47,2.02,.31,-0.36)); } } } ================================================ FILE: less/effects/icons/_icon-bounce.less ================================================ /* Icon Bounce */ .icon-bounce() { .hacks(); .prefixed(transition-duration, @mediumDuration); .hvr-icon { .prefixed(transform, translateZ(0)); .prefixed(transition-duration, @mediumDuration); .prefixed(transition-property, transform); .prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { .hvr-icon { .prefixed(transform, scale(1.5)); .prefixed(transition-timing-function, cubic-bezier(.47,2.02,.31,-0.36)); } } } ================================================ FILE: less/effects/icons/_icon-buzz-out.less ================================================ /* Icon Buzz Out */ .keyframes(~"@{nameSpace}-icon-buzz-out", { 10% { .prefixed(transform, translateX(3px) rotate(2deg)); } 20% { .prefixed(transform, translateX(-3px) rotate(-2deg)); } 30% { .prefixed(transform, translateX(3px) rotate(2deg)); } 40% { .prefixed(transform, translateX(-3px) rotate(-2deg)); } 50% { .prefixed(transform, translateX(2px) rotate(1deg)); } 60% { .prefixed(transform, translateX(-2px) rotate(-1deg)); } 70% { .prefixed(transform, translateX(2px) rotate(1deg)); } 80% { .prefixed(transform, translateX(-2px) rotate(-1deg)); } 90% { .prefixed(transform, translateX(1px) rotate(0)); } 100% { .prefixed(transform, translateX(-1px) rotate(0)); } }); .icon-buzz-out() { .hacks(); .prefixed(transition-duration, @mediumDuration); .hvr-icon { .prefixed(transform, translateZ(0)); } &:hover, &:focus, &:active { .hvr-icon { .prefixed(animation-name, ~"@{nameSpace}-icon-buzz-out"); .prefixed(animation-duration, .75s); .prefixed(animation-timing-function, linear); .prefixed(animation-iteration-count, 1); } } } ================================================ FILE: less/effects/icons/_icon-buzz.less ================================================ /* Icon Buzz */ .keyframes(~"@{nameSpace}-icon-buzz", { 50% { .prefixed(transform, translateX(3px) rotate(2deg)); } 100% { .prefixed(transform, translateX(-3px) rotate(-2deg)); } }); .icon-buzz() { .hacks(); .prefixed(transition-duration, @mediumDuration); .hvr-icon { .prefixed(transform, translateZ(0)); } &:hover, &:focus, &:active { .hvr-icon { .prefixed(animation-name, ~"@{nameSpace}-icon-buzz"); .prefixed(animation-duration, .15s); .prefixed(animation-timing-function, linear); .prefixed(animation-iteration-count, infinite); } } } ================================================ FILE: less/effects/icons/_icon-down.less ================================================ /* Icon Down */ .keyframes(~"@{nameSpace}-icon-down", { 0%, 50%, 100% { .prefixed(transform, translateY(0)); } 25%, 75% { .prefixed(transform, translateY(6px)); } }); /* Icon Down */ .icon-down() { .hacks(); .hvr-icon { .prefixed(transform, translateZ(0)); } &:hover, &:focus, &:active { .hvr-icon { .prefixed(animation-name, ~"@{nameSpace}-icon-down"); .prefixed(animation-duration, .75s); .prefixed(animation-timing-function, ease-out); } } } ================================================ FILE: less/effects/icons/_icon-drop.less ================================================ /* Icon Drop */ .keyframes(~"@{nameSpace}-icon-drop", { 0% { opacity: 0; } 50% { opacity: 0; .prefixed(transform, translateY(-100%)); } 51%, 100% { opacity: 1; } }); /* Icon Drop */ .icon-drop() { .hacks(); .hvr-icon { .prefixed(transform, translateZ(0)); } &:hover, &:focus, &:active { .hvr-icon { opacity: 0; .prefixed(transition-duration, @mediumDuration); .prefixed(animation-name, ~"@{nameSpace}-icon-drop"); .prefixed(animation-duration, @slowDuration); .prefixed(animation-delay, @mediumDuration); .prefixed(animation-fill-mode, forwards); .prefixed(animation-timing-function, ease-in-out); .prefixed(animation-timing-function, cubic-bezier(.52,1.64,.37,.66)); } } } ================================================ FILE: less/effects/icons/_icon-fade.less ================================================ /* Icon Fade */ .icon-fade() { .hacks(); .hvr-icon { .prefixed(transform, translateZ(0)); .prefixed(transition-duration, .5s); .prefixed(transition-property, color); } &:hover, &:focus, &:active { .hvr-icon { color: #0F9E5E; } } } ================================================ FILE: less/effects/icons/_icon-float-away.less ================================================ /* Icon Float Away */ .keyframes(~"@{nameSpace}-icon-float-away", { 0% { opacity: 1; } 100% { opacity: 0; .prefixed(transform, translateY(-1em)); } }); /* Icon Float Away */ .icon-float-away() { .hacks(); .hvr-icon { .prefixed(transform, translateZ(0)); .prefixed(animation-duration, @slowDuration); .prefixed(animation-fill-mode, forwards); } &:hover, &:focus, &:active { .hvr-icon { .prefixed(animation-name, ~"@{nameSpace}-icon-float-away"); .prefixed(animation-timing-function, ease-out); } } } ================================================ FILE: less/effects/icons/_icon-float.less ================================================ /* Icon Float */ .icon-float() { .hacks(); .prefixed(transition-duration, @mediumDuration); .hvr-icon { .prefixed(transform, translateZ(0)); .prefixed(transition-duration, @mediumDuration); .prefixed(transition-property, transform); .prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { .hvr-icon { .prefixed(transform, translateY(-4px)); } } } ================================================ FILE: less/effects/icons/_icon-forward.less ================================================ /* Icon Forward */ .icon-forward() { .hacks(); .prefixed(transition-duration, @fastDuration); .hvr-icon { .prefixed(transform, translateZ(0)); .prefixed(transition-duration, @fastDuration); .prefixed(transition-property, transform); .prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { .hvr-icon { .prefixed(transform, translateX(4px)); } } } ================================================ FILE: less/effects/icons/_icon-grow-rotate.less ================================================ /* Icon Grow Rotate */ .icon-grow-rotate() { @duration: @mediumDuration; .hacks(); .prefixed(transition-duration, @duration); .hvr-icon { .prefixed(transform, translateZ(0)); .prefixed(transition-duration, @duration); .prefixed(transition-property, transform); .prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { .hvr-icon { .prefixed(transform, scale(1.5) rotate(12deg)); } } } ================================================ FILE: less/effects/icons/_icon-grow.less ================================================ /* Icon Grow */ .icon-grow() { .hacks(); .prefixed(transition-duration, @mediumDuration); .hvr-icon { .prefixed(transform, translateZ(0)); .prefixed(transition-duration, @mediumDuration); .prefixed(transition-property, transform); .prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { .hvr-icon { .prefixed(transform, scale(1.3) translateZ(0)); } } } ================================================ FILE: less/effects/icons/_icon-hang.less ================================================ /* Icon Hang */ .keyframes(~"@{nameSpace}-icon-hang", { 0% { .prefixed(transform, translateY(6px)); } 50% { .prefixed(transform, translateY(2px)); } 100% { .prefixed(transform, translateY(6px)); } }); .keyframes(~"@{nameSpace}-icon-hang-sink", { 100% { .prefixed(transform, translateY(6px)); } }); .icon-hang() { .hacks(); .prefixed(transition-duration, @mediumDuration); .hvr-icon { .prefixed(transform, translateZ(0)); } &:hover, &:focus, &:active { .hvr-icon { .prefixed(animation-name, ~"@{nameSpace}-icon-hang-sink, @{nameSpace}-icon-hang"); .prefixed(animation-duration, ~".3s, 1.5s"); .prefixed(animation-delay, ~"0s, .3s"); .prefixed(animation-timing-function, ~"ease-out, ease-in-out"); .prefixed(animation-iteration-count, ~"1, infinite"); .prefixed(animation-fill-mode, ~"forwards"); .prefixed(animation-direction, ~"normal, alternate"); } } } ================================================ FILE: less/effects/icons/_icon-pop.less ================================================ /* Icon Pop */ .keyframes(~"@{nameSpace}-icon-pop", { 50% { .prefixed(transform, scale(1.5)); } }); .icon-pop() { .hacks(); .prefixed(transition-duration, @mediumDuration); .hvr-icon { .prefixed(transform, translateZ(0)); .prefixed(transition-duration, @mediumDuration); .prefixed(transition-property, transform); .prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { .hvr-icon { .prefixed(animation-name, ~"@{nameSpace}-icon-pop"); .prefixed(animation-duration, @mediumDuration); .prefixed(animation-timing-function, linear); .prefixed(animation-iteration-count, 1); } } } ================================================ FILE: less/effects/icons/_icon-pulse-grow.less ================================================ /* Icon Pulse Grow */ .keyframes(~"@{nameSpace}-icon-pulse-grow", { to { .prefixed(transform, scale(1.3)); } }); .icon-pulse-grow() { .hacks(); .hvr-icon { .prefixed(transform, translateZ(0)); .prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { .hvr-icon { .prefixed(animation-name, ~"@{nameSpace}-icon-pulse-grow"); .prefixed(animation-duration, @mediumDuration); .prefixed(animation-timing-function, linear); .prefixed(animation-iteration-count, infinite); .prefixed(animation-direction, alternate); } } } ================================================ FILE: less/effects/icons/_icon-pulse-shrink.less ================================================ /* Icon Pulse Shrink */ .keyframes(~"@{nameSpace}-icon-pulse-shrink", { to { .prefixed(transform, scale(.8)); } }); .icon-pulse-shrink() { .hacks(); .hvr-icon { .prefixed(transform, translateZ(0)); .prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { .hvr-icon { .prefixed(animation-name, ~"@{nameSpace}-icon-pulse-shrink"); .prefixed(animation-duration, @mediumDuration); .prefixed(animation-timing-function, linear); .prefixed(animation-iteration-count, infinite); .prefixed(animation-direction, alternate); } } } ================================================ FILE: less/effects/icons/_icon-pulse.less ================================================ /* Icon Pulse */ .keyframes(~"@{nameSpace}-icon-pulse", { 25% { .prefixed(transform, scale(1.3)); } 75% { .prefixed(transform, scale(.8)); } }); .icon-pulse() { .hacks(); .hvr-icon { .prefixed(transform, translateZ(0)); .prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { .hvr-icon { .prefixed(animation-name, ~"@{nameSpace}-icon-pulse"); .prefixed(animation-duration, 1s); .prefixed(animation-timing-function, linear); .prefixed(animation-iteration-count, infinite); } } } ================================================ FILE: less/effects/icons/_icon-push.less ================================================ /* Icon Push */ .keyframes(~"@{nameSpace}-icon-push", { 50% { .prefixed(transform, scale(.5)); } }); .icon-push() { .hacks(); .prefixed(transition-duration, @mediumDuration); .hvr-icon { .prefixed(transform, translateZ(0)); .prefixed(transition-duration, @mediumDuration); .prefixed(transition-property, transform); .prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { .hvr-icon { .prefixed(animation-name, ~"@{nameSpace}-icon-push"); .prefixed(animation-duration, @mediumDuration); .prefixed(animation-timing-function, linear); .prefixed(animation-iteration-count, 1); } } } ================================================ FILE: less/effects/icons/_icon-rotate.less ================================================ /* Icon Rotate */ .icon-rotate() { @duration: @mediumDuration; .hacks(); .prefixed(transition-duration, @duration); .hvr-icon { .prefixed(transform, translateZ(0)); .prefixed(transition-duration, @duration); .prefixed(transition-property, transform); .prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { .hvr-icon { .prefixed(transform, rotate(20deg)); } } } ================================================ FILE: less/effects/icons/_icon-shrink.less ================================================ /* Icon Shrink */ .icon-shrink() { .hacks(); .prefixed(transition-duration, @mediumDuration); .hvr-icon { .prefixed(transform, translateZ(0)); .prefixed(transition-duration, @mediumDuration); .prefixed(transition-property, transform); .prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { .hvr-icon { .prefixed(transform, scale(.8)); } } } ================================================ FILE: less/effects/icons/_icon-sink-away.less ================================================ /* Icon Sink Away */ .keyframes(~"@{nameSpace}-icon-sink-away", { 0% { opacity: 1; } 100% { opacity: 0; .prefixed(transform, translateY(1em)); } }); /* Icon Sink Away */ .icon-sink-away() { .hacks(); .hvr-icon { .prefixed(transform, translateZ(0)); .prefixed(animation-duration, @slowDuration); .prefixed(animation-fill-mode, forwards); } &:hover, &:focus, &:active { .hvr-icon { .prefixed(animation-name, ~"@{nameSpace}-icon-sink-away"); .prefixed(animation-timing-function, ease-out); } } } ================================================ FILE: less/effects/icons/_icon-sink.less ================================================ /* Icon Sink */ .icon-sink() { .hacks(); .prefixed(transition-duration, @mediumDuration); .hvr-icon { .prefixed(transform, translateZ(0)); .prefixed(transition-duration, @mediumDuration); .prefixed(transition-property, transform); .prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { .hvr-icon { .prefixed(transform, translateY(4px)); } } } ================================================ FILE: less/effects/icons/_icon-spin.less ================================================ /* Icon Spin */ .icon-spin() { .hacks(); .hvr-icon { .prefixed(transition-duration, 1s); .prefixed(transition-property, transform); .prefixed(transition-timing-function, ease-in-out); } &:hover, &:focus, &:active { .hvr-icon { .prefixed(transform, rotate(360deg)); } } } ================================================ FILE: less/effects/icons/_icon-up.less ================================================ /* Icon Up */ .keyframes(~"@{nameSpace}-icon-up", { 0%, 50%, 100% { .prefixed(transform, translateY(0)); } 25%, 75% { .prefixed(transform, translateY(-6px)); } }); /* Icon Up */ .icon-up() { .hacks(); .hvr-icon { .prefixed(transform, translateZ(0)); } &:hover, &:focus, &:active { .hvr-icon { .prefixed(animation-name, ~"@{nameSpace}-icon-up"); .prefixed(animation-duration, .75s); .prefixed(animation-timing-function, ease-out); } } } ================================================ FILE: less/effects/icons/_icon-wobble-horizontal.less ================================================ /* Icon Wobble Horizontal */ .keyframes(~"@{nameSpace}-icon-wobble-horizontal", { 16.65% { .prefixed(transform, translateX(6px)); } 33.3% { .prefixed(transform, translateX(-5px)); } 49.95% { .prefixed(transform, translateX(4px)); } 66.6% { .prefixed(transform, translateX(-2px)); } 83.25% { .prefixed(transform, translateX(1px)); } 100% { .prefixed(transform, translateX(0)); } }); .icon-wobble-horizontal() { .hacks(); .prefixed(transition-duration, @mediumDuration); .hvr-icon { .prefixed(transform, translateZ(0)); } &:hover, &:focus, &:active { .hvr-icon { .prefixed(animation-name, ~"@{nameSpace}-icon-wobble-horizontal"); .prefixed(animation-duration, 1s); .prefixed(animation-timing-function, ease-in-out); .prefixed(animation-iteration-count, 1); } } } ================================================ FILE: less/effects/icons/_icon-wobble-vertical.less ================================================ /* Icon Wobble Vertical */ .keyframes(~"@{nameSpace}-icon-wobble-vertical", { 16.65% { .prefixed(transform, translateY(6px)); } 33.3% { .prefixed(transform, translateY(-5px)); } 49.95% { .prefixed(transform, translateY(4px)); } 66.6% { .prefixed(transform, translateY(-2px)); } 83.25% { .prefixed(transform, translateY(1px)); } 100% { .prefixed(transform, translateY(0)); } }); .icon-wobble-vertical() { .hacks(); .prefixed(transition-duration, @mediumDuration); .hvr-icon { .prefixed(transform, translateZ(0)); } &:hover, &:focus, &:active { .hvr-icon { .prefixed(animation-name, ~"@{nameSpace}-icon-wobble-vertical"); .prefixed(animation-duration, 1s); .prefixed(animation-timing-function, ease-in-out); .prefixed(animation-iteration-count, 1); } } } ================================================ FILE: less/effects/shadow-and-glow-transitions/_box-shadow-inset.less ================================================ /* Box Shadow Inset */ .box-shadow-inset() { .hacks(); .prefixed(transition-duration, @mediumDuration); .prefixed(transition-property, box-shadow); box-shadow: inset 0 0 0 @shadowColor, 0 0 1px rgba(0, 0, 0, 0); /* Hack to improve aliasing on mobile/tablet devices */ &:hover, &:focus, &:active { box-shadow: inset 2px 2px 2px @shadowColor, 0 0 1px rgba(0, 0, 0, 0); /* Hack to improve aliasing on mobile/tablet devices */ } } ================================================ FILE: less/effects/shadow-and-glow-transitions/_box-shadow-outset.less ================================================ /* Box Shadow Outset */ .box-shadow-outset() { .hacks(); .prefixed(transition-duration, @mediumDuration); .prefixed(transition-property, box-shadow); &:hover, &:focus, &:active { box-shadow: 2px 2px 2px @shadowColor; } } ================================================ FILE: less/effects/shadow-and-glow-transitions/_float-shadow.less ================================================ /* Float Shadow */ .float-shadow() { .hacks(); position: relative; .prefixed(transition-duration, @mediumDuration); .prefixed(transition-property, transform); &:before { pointer-events: none; position: absolute; z-index: -1; content: ''; top: 100%; left: 5%; height: 10px; width: 90%; opacity: 0; background: -webkit-radial-gradient(center, ellipse, rgba(0,0,0,.35) 0%, rgba(0, 0, 0, 0) 80%); background: radial-gradient(ellipse at center, rgba(0,0,0,.35) 0%,rgba(0,0,0,0) 80%); /* W3C */ .prefixed(transition-duration, @mediumDuration); .prefixed(transition-property, "transform, opacity"); } &:hover, &:focus, &:active { .prefixed(transform, translateY(-5px)); /* move the element up by 5px */ &:before { opacity: 1; .prefixed(transform, translateY(5px)); /* move the element down by 5px (it will stay in place because it's attached to the element that also moves up 5px) */ } } } ================================================ FILE: less/effects/shadow-and-glow-transitions/_glow.less ================================================ /* Glow */ .glow() { .hacks(); .prefixed(transition-duration, @mediumDuration); .prefixed(transition-property, box-shadow); &:hover, &:focus, &:active { box-shadow: 0 0 8px @shadowColor; } } ================================================ FILE: less/effects/shadow-and-glow-transitions/_grow-shadow.less ================================================ /* Grow Shadow */ .grow-shadow() { .hacks(); .prefixed(transition-duration, @mediumDuration); .prefixed(transition-property, "box-shadow, transform"); &:hover, &:focus, &:active { box-shadow: 0 10px 10px -10px rgba(0, 0, 0, 0.5); .prefixed(transform, scale(1.1)); } } ================================================ FILE: less/effects/shadow-and-glow-transitions/_shadow-radial.less ================================================ /* Shadow Radial */ .shadow-radial() { .hacks(); position: relative; &:before, &:after { pointer-events: none; position: absolute; content: ''; left: 0; width: 100%; box-sizing: border-box; background-repeat: no-repeat; height: 5px; opacity: 0; .prefixed(transition-duration, @mediumDuration); .prefixed(transition-property, opacity); } &:before { bottom: 100%; background: -webkit-radial-gradient(50% 150%, ellipse, @shadowColor 0%, rgba(0, 0, 0, 0) 80%); background: radial-gradient(ellipse at 50% 150%, @shadowColor 0%, rgba(0, 0, 0, 0) 80%); } &:after { top: 100%; background: -webkit-radial-gradient(50% -50%, ellipse, @shadowColor 0%, rgba(0, 0, 0, 0) 80%); background: radial-gradient(ellipse at 50% -50%, @shadowColor 0%, rgba(0, 0, 0, 0) 80%); } &:hover:before, &:focus:before, &:active:before, &:hover:after, &:focus:after, &:active:after { opacity: 1; } } ================================================ FILE: less/effects/shadow-and-glow-transitions/_shadow.less ================================================ /* Shadow */ .shadow() { .hacks(); .prefixed(transition-duration, @mediumDuration); .prefixed(transition-property, box-shadow); &:hover, &:focus, &:active { box-shadow: 0 10px 10px -10px rgba(0, 0, 0, 0.5); } } ================================================ FILE: less/effects/speech-bubbles/_bubble-bottom.less ================================================ /* Bubble Bottom */ .bubble-bottom() { .hacks(); position: relative; &:before { pointer-events: none; position: absolute; z-index: -1; content: ''; border-style: solid; .prefixed(transition-duration, @mediumDuration); .prefixed(transition-property, transform); left: calc(~"50%" - @tipWidth); bottom: 0; border-width: @tipHeight @tipWidth 0 @tipWidth; border-color: @tipColor transparent transparent transparent; } &:hover:before, &:focus:before, &:active:before { .prefixed(transform, translateY(@tipHeight)); } } ================================================ FILE: less/effects/speech-bubbles/_bubble-float-bottom.less ================================================ /* Bubble Float Bottom */ .bubble-float-bottom() { .hacks(); position: relative; .prefixed(transition-duration, @mediumDuration); .prefixed(transition-property, transform); &:before { position: absolute; z-index: -1; content: ''; left: calc(~"50%" - @tipWidth); bottom: 0; border-style: solid; border-width: @tipHeight @tipWidth 0 @tipWidth; border-color: @tipColor transparent transparent transparent; .prefixed(transition-duration, @mediumDuration); .prefixed(transition-property, transform); } &:hover, &:focus, &:active { .prefixed(transform, translateY(-(@tipHeight))); &:before { .prefixed(transform, translateY(@tipHeight)); } } } ================================================ FILE: less/effects/speech-bubbles/_bubble-float-left.less ================================================ /* Bubble Float Left */ .bubble-float-left() { .hacks(); position: relative; .prefixed(transition-duration, @mediumDuration); .prefixed(transition-property, transform); &:before { position: absolute; z-index: -1; content: ''; top: calc(~"50%" - @tipHeight); left: 0; border-style: solid; border-width: @tipHeight @tipWidth @tipHeight 0; border-color: transparent @tipColor transparent transparent; .prefixed(transition-duration, @mediumDuration); .prefixed(transition-property, transform); } &:hover, &:focus, &:active { .prefixed(transform, translateX(@tipWidth)); &:before { .prefixed(transform, translateX(-(@tipWidth))); } } } ================================================ FILE: less/effects/speech-bubbles/_bubble-float-right.less ================================================ /* Bubble Float Right */ .bubble-float-right() { .hacks(); position: relative; .prefixed(transition-duration, @mediumDuration); .prefixed(transition-property, transform); &:before { position: absolute; z-index: -1; top: calc(~"50%" - @tipHeight); right: 0; content: ''; border-style: solid; border-width: @tipHeight 0 @tipHeight @tipWidth; border-color: transparent transparent transparent @tipColor; .prefixed(transition-duration, @mediumDuration); .prefixed(transition-property, transform); } &:hover, &:focus, &:active { .prefixed(transform, translateX(-(@tipWidth))); &:before { .prefixed(transform, translateX(@tipWidth)); } } } ================================================ FILE: less/effects/speech-bubbles/_bubble-float-top.less ================================================ /* Bubble Float Top */ .bubble-float-top() { .hacks(); position: relative; .prefixed(transition-duration, @mediumDuration); .prefixed(transition-property, transform); &:before { position: absolute; z-index: -1; content: ''; left: calc(~"50%" - @tipWidth); top: 0; border-style: solid; border-width: 0 @tipWidth @tipHeight @tipWidth; border-color: transparent transparent @tipColor transparent; .prefixed(transition-duration, @mediumDuration); .prefixed(transition-property, transform); } &:hover, &:focus, &:active { .prefixed(transform, translateY(@tipHeight)); &:before { .prefixed(transform, translateY(-(@tipHeight))); } } } ================================================ FILE: less/effects/speech-bubbles/_bubble-left.less ================================================ /* Bubble Left */ .bubble-left() { .hacks(); position: relative; &:before { pointer-events: none; position: absolute; z-index: -1; content: ''; border-style: solid; .prefixed(transition-duration, @mediumDuration); .prefixed(transition-property, transform); top: calc(~"50%" - @tipHeight); left: 0; border-width: @tipHeight @tipWidth @tipHeight 0; border-color: transparent @tipColor transparent transparent; } &:hover:before, &:focus:before, &:active:before { .prefixed(transform, translateX(-(@tipWidth))); } } ================================================ FILE: less/effects/speech-bubbles/_bubble-right.less ================================================ /* Bubble Right */ .bubble-right() { .hacks(); position: relative; &:before { pointer-events: none; position: absolute; z-index: -1; content: ''; border-style: solid; .prefixed(transition-duration, @mediumDuration); .prefixed(transition-property, transform); top: calc(~"50%" - @tipHeight); right: 0; border-width: @tipHeight 0 @tipHeight @tipWidth; border-color: transparent transparent transparent @tipColor; } &:hover:before, &:focus:before, &:active:before { .prefixed(transform, translateX(@tipWidth)); } } ================================================ FILE: less/effects/speech-bubbles/_bubble-top.less ================================================ /* Bubble Top */ .bubble-top() { .hacks(); position: relative; &:before { pointer-events: none; position: absolute; z-index: -1; content: ''; border-style: solid; .prefixed(transition-duration, @mediumDuration); .prefixed(transition-property, transform); left: calc(~"50%" - @tipWidth); top: 0; border-width: 0 @tipWidth @tipHeight @tipWidth; border-color: transparent transparent @tipColor transparent; } &:hover:before, &:focus:before, &:active:before { .prefixed(transform, translateY(-(@tipHeight))); } } ================================================ FILE: less/hover.less ================================================ /*! * Hover.css (http://ianlunn.github.io/Hover/) * Version: 2.3.2 * Author: Ian Lunn @IanLunn * Author URL: http://ianlunn.co.uk/ * Github: https://github.com/IanLunn/Hover * Hover.css Copyright Ian Lunn 2017. Generated with LESS. */ @import "_options"; @import "_mixins"; @import "_hacks"; /* 2D TRANSITIONS */ @import "effects/2d-transitions/_grow"; & when(@includeClasses = true) { .@{nameSpace}-grow { .grow(); } } @import "effects/2d-transitions/_shrink"; & when(@includeClasses = true) { .@{nameSpace}-shrink { .shrink(); } } @import "effects/2d-transitions/_pulse"; & when(@includeClasses = true) { .@{nameSpace}-pulse { .pulse(); } } @import "effects/2d-transitions/_pulse-grow"; & when(@includeClasses = true) { .@{nameSpace}-pulse-grow { .pulse-grow(); } } @import "effects/2d-transitions/_pulse-shrink"; & when(@includeClasses = true) { .@{nameSpace}-pulse-shrink { .pulse-shrink(); } } @import "effects/2d-transitions/_push"; & when(@includeClasses = true) { .@{nameSpace}-push { .push(); } } @import "effects/2d-transitions/_pop"; & when(@includeClasses = true) { .@{nameSpace}-pop { .pop(); } } @import "effects/2d-transitions/_bounce-in"; & when(@includeClasses = true) { .@{nameSpace}-bounce-in { .bounce-in(); } } @import "effects/2d-transitions/_bounce-out"; & when(@includeClasses = true) { .@{nameSpace}-bounce-out { .bounce-out(); } } @import "effects/2d-transitions/_rotate"; & when(@includeClasses = true) { .@{nameSpace}-rotate { .rotate(); } } @import "effects/2d-transitions/_grow-rotate"; & when(@includeClasses = true) { .@{nameSpace}-grow-rotate { .grow-rotate(); } } @import "effects/2d-transitions/_float"; & when(@includeClasses = true) { .@{nameSpace}-float { .float(); } } @import "effects/2d-transitions/_sink"; & when(@includeClasses = true) { .@{nameSpace}-sink { .sink(); } } @import "effects/2d-transitions/_bob"; & when(@includeClasses = true) { .@{nameSpace}-bob { .bob(); } } @import "effects/2d-transitions/_hang"; & when(@includeClasses = true) { .@{nameSpace}-hang { .hang(); } } @import "effects/2d-transitions/_skew"; & when(@includeClasses = true) { .@{nameSpace}-skew { .skew(); } } @import "effects/2d-transitions/_skew-forward"; & when(@includeClasses = true) { .@{nameSpace}-skew-forward { .skew-forward(); } } @import "effects/2d-transitions/_skew-backward"; & when(@includeClasses = true) { .@{nameSpace}-skew-backward { .skew-backward(); } } @import "effects/2d-transitions/_wobble-vertical"; & when(@includeClasses = true) { .@{nameSpace}-wobble-vertical { .wobble-vertical(); } } @import "effects/2d-transitions/_wobble-horizontal"; & when(@includeClasses = true) { .@{nameSpace}-wobble-horizontal { .wobble-horizontal(); } } @import "effects/2d-transitions/_wobble-to-bottom-right"; & when(@includeClasses = true) { .@{nameSpace}-wobble-to-bottom-right { .wobble-to-bottom-right(); } } @import "effects/2d-transitions/_wobble-to-top-right"; & when(@includeClasses = true) { .@{nameSpace}-wobble-to-top-right { .wobble-to-top-right(); } } @import "effects/2d-transitions/_wobble-top"; & when(@includeClasses = true) { .@{nameSpace}-wobble-top { .wobble-top(); } } @import "effects/2d-transitions/_wobble-bottom"; & when(@includeClasses = true) { .@{nameSpace}-wobble-bottom { .wobble-bottom(); } } @import "effects/2d-transitions/_wobble-skew"; & when(@includeClasses = true) { .@{nameSpace}-wobble-skew { .wobble-skew(); } } @import "effects/2d-transitions/_buzz"; & when(@includeClasses = true) { .@{nameSpace}-buzz { .buzz(); } } @import "effects/2d-transitions/_buzz-out"; & when(@includeClasses = true) { .@{nameSpace}-buzz-out { .buzz-out(); } } @import "effects/2d-transitions/_forward"; & when(@includeClasses = true) { .@{nameSpace}-forward { .forward(); } } @import "effects/2d-transitions/_backward"; & when(@includeClasses = true) { .@{nameSpace}-backward { .backward(); } } /* BACKGROUND TRANSITIONS */ @import "effects/background-transitions/_fade"; & when(@includeClasses = true) { .@{nameSpace}-fade { .fade(); } } @import "effects/background-transitions/_back-pulse"; & when(@includeClasses = true) { .@{nameSpace}-back-pulse { .back-pulse(); } } @import "effects/background-transitions/_sweep-to-right"; & when(@includeClasses = true) { .@{nameSpace}-sweep-to-right { .sweep-to-right(); } } @import "effects/background-transitions/_sweep-to-left"; & when(@includeClasses = true) { .@{nameSpace}-sweep-to-left { .sweep-to-left(); } } @import "effects/background-transitions/_sweep-to-bottom"; & when(@includeClasses = true) { .@{nameSpace}-sweep-to-bottom { .sweep-to-bottom(); } } @import "effects/background-transitions/_sweep-to-top"; & when(@includeClasses = true) { .@{nameSpace}-sweep-to-top { .sweep-to-top(); } } @import "effects/background-transitions/_bounce-to-right"; & when(@includeClasses = true) { .@{nameSpace}-bounce-to-right { .bounce-to-right(); } } @import "effects/background-transitions/_bounce-to-left"; & when(@includeClasses = true) { .@{nameSpace}-bounce-to-left { .bounce-to-left(); } } @import "effects/background-transitions/_bounce-to-bottom"; & when(@includeClasses = true) { .@{nameSpace}-bounce-to-bottom { .bounce-to-bottom(); } } @import "effects/background-transitions/_bounce-to-top"; & when(@includeClasses = true) { .@{nameSpace}-bounce-to-top { .bounce-to-top(); } } @import "effects/background-transitions/_radial-out"; & when(@includeClasses = true) { .@{nameSpace}-radial-out { .radial-out(); } } @import "effects/background-transitions/_radial-in"; & when(@includeClasses = true) { .@{nameSpace}-radial-in { .radial-in(); } } @import "effects/background-transitions/_rectangle-in"; & when(@includeClasses = true) { .@{nameSpace}-rectangle-in { .rectangle-in(); } } @import "effects/background-transitions/_rectangle-out"; & when(@includeClasses = true) { .@{nameSpace}-rectangle-out { .rectangle-out(); } } @import "effects/background-transitions/_shutter-in-horizontal"; & when(@includeClasses = true) { .@{nameSpace}-shutter-in-horizontal { .shutter-in-horizontal(); } } @import "effects/background-transitions/_shutter-out-horizontal"; & when(@includeClasses = true) { .@{nameSpace}-shutter-out-horizontal { .shutter-out-horizontal(); } } @import "effects/background-transitions/_shutter-in-vertical"; & when(@includeClasses = true) { .@{nameSpace}-shutter-in-vertical { .shutter-in-vertical(); } } @import "effects/background-transitions/_shutter-out-vertical"; & when(@includeClasses = true) { .@{nameSpace}-shutter-out-vertical { .shutter-out-vertical(); } } /* BORDER TRANSITIONS */ @import "effects/border-transitions/_border-fade"; & when (@includeClasses = true) { .@{nameSpace}-border-fade { .border-fade(); } } @import "effects/border-transitions/_hollow"; & when (@includeClasses = true) { .@{nameSpace}-hollow { .hollow(); } } @import "effects/border-transitions/_trim"; & when (@includeClasses = true) { .@{nameSpace}-trim { .trim(); } } @import "effects/border-transitions/_ripple-out"; & when (@includeClasses = true) { .@{nameSpace}-ripple-out { .ripple-out(); } } @import "effects/border-transitions/_ripple-in"; & when (@includeClasses = true) { .@{nameSpace}-ripple-in { .ripple-in(); } } @import "effects/border-transitions/_outline-out"; & when (@includeClasses = true) { .@{nameSpace}-outline-out { .outline-out(); } } @import "effects/border-transitions/_outline-in"; & when (@includeClasses = true) { .@{nameSpace}-outline-in { .outline-in(); } } @import "effects/border-transitions/_round-corners"; & when (@includeClasses = true) { .@{nameSpace}-round-corners { .round-corners(); } } @import "effects/border-transitions/_underline-from-left"; & when (@includeClasses = true) { .@{nameSpace}-underline-from-left { .underline-from-left(); } } @import "effects/border-transitions/_underline-from-center"; & when (@includeClasses = true) { .@{nameSpace}-underline-from-center { .underline-from-center(); } } @import "effects/border-transitions/_underline-from-right"; & when (@includeClasses = true) { .@{nameSpace}-underline-from-right { .underline-from-right(); } } @import "effects/border-transitions/_overline-from-left"; & when (@includeClasses = true) { .@{nameSpace}-overline-from-left { .overline-from-left(); } } @import "effects/border-transitions/_overline-from-center"; & when (@includeClasses = true) { .@{nameSpace}-overline-from-center { .overline-from-center(); } } @import "effects/border-transitions/_overline-from-right"; & when (@includeClasses = true) { .@{nameSpace}-overline-from-right { .overline-from-right(); } } @import "effects/border-transitions/_reveal"; & when (@includeClasses = true) { .@{nameSpace}-reveal { .reveal(); } } @import "effects/border-transitions/_underline-reveal"; & when (@includeClasses = true) { .@{nameSpace}-underline-reveal { .underline-reveal(); } } @import "effects/border-transitions/_overline-reveal"; & when (@includeClasses = true) { .@{nameSpace}-overline-reveal { .overline-reveal(); } } /* SHADOW/GLOW TRANSITIONS */ @import "effects/shadow-and-glow-transitions/_glow"; & when (@includeClasses = true) { .@{nameSpace}-glow { .glow(); } } @import "effects/shadow-and-glow-transitions/_shadow"; & when (@includeClasses = true) { .@{nameSpace}-shadow { .shadow(); } } @import "effects/shadow-and-glow-transitions/_grow-shadow"; & when (@includeClasses = true) { .@{nameSpace}-grow-shadow { .grow-shadow(); } } @import "effects/shadow-and-glow-transitions/_box-shadow-outset"; & when (@includeClasses = true) { .@{nameSpace}-box-shadow-outset { .box-shadow-outset(); } } @import "effects/shadow-and-glow-transitions/_box-shadow-inset"; & when (@includeClasses = true) { .@{nameSpace}-box-shadow-inset { .box-shadow-inset(); } } @import "effects/shadow-and-glow-transitions/_float-shadow"; & when (@includeClasses = true) { .@{nameSpace}-float-shadow { .float-shadow(); } } @import "effects/shadow-and-glow-transitions/_shadow-radial"; & when (@includeClasses = true) { .@{nameSpace}-show-radial { .shadow-radial(); } } /* SPEECH BUBBLES */ @import "effects/speech-bubbles/_bubble-top"; & when(@includeClasses = true) { .@{nameSpace}-bubble-top { .bubble-top(); } } @import "effects/speech-bubbles/_bubble-right"; & when(@includeClasses = true) { .@{nameSpace}-bubble-right { .bubble-right(); } } @import "effects/speech-bubbles/_bubble-bottom"; & when(@includeClasses = true) { .@{nameSpace}-bubble-bottom { .bubble-bottom(); } } @import "effects/speech-bubbles/_bubble-left"; & when(@includeClasses = true) { .@{nameSpace}-bubble-left { .bubble-left(); } } @import "effects/speech-bubbles/_bubble-float-top"; & when(@includeClasses = true) { .@{nameSpace}-bubble-float-top { .bubble-float-top(); } } @import "effects/speech-bubbles/_bubble-float-right"; & when(@includeClasses = true) { .@{nameSpace}-bubble-float-right { .bubble-float-right(); } } @import "effects/speech-bubbles/_bubble-float-bottom"; & when(@includeClasses = true) { .@{nameSpace}-bubble-float-bottom { .bubble-float-bottom(); } } @import "effects/speech-bubbles/_bubble-float-left"; & when(@includeClasses = true) { .@{nameSpace}-bubble-float-left { .bubble-float-left(); } } /* ICONS */ @import "effects/icons/_icon-back"; & when(@includeClasses = true) { .@{nameSpace}-icon-back { .icon-back(); } } @import "effects/icons/_icon-forward"; & when(@includeClasses = true) { .@{nameSpace}-icon-forward { .icon-forward(); } } @import "effects/icons/_icon-down"; & when(@includeClasses = true) { .@{nameSpace}-icon-down { .icon-down(); } } @import "effects/icons/_icon-up"; & when(@includeClasses = true) { .@{nameSpace}-icon-up { .icon-up(); } } @import "effects/icons/_icon-spin"; & when(@includeClasses = true) { .@{nameSpace}-icon-spin { .icon-spin(); } } @import "effects/icons/_icon-drop"; & when(@includeClasses = true) { .@{nameSpace}-icon-drop { .icon-drop(); } } @import "effects/icons/_icon-fade"; & when(@includeClasses = true) { .@{nameSpace}-icon-fade { .icon-fade(); } } @import "effects/icons/_icon-float-away"; & when(@includeClasses = true) { .@{nameSpace}-icon-float-away { .icon-float-away(); } } @import "effects/icons/_icon-sink-away"; & when(@includeClasses = true) { .@{nameSpace}-icon-sink-away { .icon-sink-away(); } } @import "effects/icons/_icon-grow"; & when(@includeClasses = true) { .@{nameSpace}-icon-grow { .icon-grow(); } } @import "effects/icons/_icon-shrink"; & when(@includeClasses = true) { .@{nameSpace}-icon-shrink { .icon-shrink(); } } @import "effects/icons/_icon-pulse"; & when(@includeClasses = true) { .@{nameSpace}-icon-pulse { .icon-pulse(); } } @import "effects/icons/_icon-pulse-grow"; & when(@includeClasses = true) { .@{nameSpace}-icon-pulse-grow { .icon-pulse-grow(); } } @import "effects/icons/_icon-pulse-shrink"; & when(@includeClasses = true) { .@{nameSpace}-icon-pulse-shrink { .icon-pulse-shrink(); } } @import "effects/icons/_icon-push"; & when(@includeClasses = true) { .@{nameSpace}-icon-push { .icon-push(); } } @import "effects/icons/_icon-pop"; & when(@includeClasses = true) { .@{nameSpace}-icon-pop { .icon-pop(); } } @import "effects/icons/_icon-bounce"; & when(@includeClasses = true) { .@{nameSpace}-icon-bounce { .icon-bounce(); } } @import "effects/icons/_icon-rotate"; & when(@includeClasses = true) { .@{nameSpace}-icon-rotate { .icon-rotate(); } } @import "effects/icons/_icon-grow-rotate"; & when(@includeClasses = true) { .@{nameSpace}-icon-grow-rotate { .icon-grow-rotate(); } } @import "effects/icons/_icon-float"; & when(@includeClasses = true) { .@{nameSpace}-icon-float { .icon-float(); } } @import "effects/icons/_icon-sink"; & when(@includeClasses = true) { .@{nameSpace}-icon-sink { .icon-sink(); } } @import "effects/icons/_icon-bob"; & when(@includeClasses = true) { .@{nameSpace}-icon-bob { .icon-bob(); } } @import "effects/icons/_icon-hang"; & when(@includeClasses = true) { .@{nameSpace}-icon-hang { .icon-hang(); } } @import "effects/icons/_icon-wobble-horizontal"; & when(@includeClasses = true) { .@{nameSpace}-icon-wobble-horizontal { .icon-wobble-horizontal(); } } @import "effects/icons/_icon-wobble-vertical"; & when(@includeClasses = true) { .@{nameSpace}-icon-wobble-vertical { .icon-wobble-vertical(); } } @import "effects/icons/_icon-buzz"; & when(@includeClasses = true) { .@{nameSpace}-icon-buzz { .icon-buzz(); } } @import "effects/icons/_icon-buzz-out"; & when(@includeClasses = true) { .@{nameSpace}-icon-buzz-out { .icon-buzz-out(); } } /* CURLS */ @import "effects/curls/_curl-top-left"; & when(@includeClasses = true) { .@{nameSpace}-curl-top-left { .curl-top-left(); } } @import "effects/curls/_curl-top-right"; & when(@includeClasses = true) { .@{nameSpace}-curl-top-right { .curl-top-right(); } } @import "effects/curls/_curl-bottom-right"; & when(@includeClasses = true) { .@{nameSpace}-curl-bottom-right { .curl-bottom-right(); } } @import "effects/curls/_curl-bottom-left"; & when(@includeClasses = true) { .@{nameSpace}-curl-bottom-left { .curl-bottom-left(); } } ================================================ FILE: license.txt ================================================ # Licenses Hover.css is made available under a free personal/open source or paid commercial licenses depending on your requirements. To compare licenses please visit the [Ian Lunn Design Limited Store](https://ianlunn.co.uk/store/licenses/) and [purchase a commercial license here](https://ianlunn.co.uk/store/hover-css/). ## Personal/Open Source For personal/open source use, Hover.css is made available under a [MIT license](https://opensource.org/licenses/MIT) - Use in unlimited personal applications - Your application can't be sold - Your modifications remain open-source - Free updates [Read full license](https://ianlunn.co.uk/store/licenses/personal/) ## Commercial For commercial use, Hover.css is made available under Commercial, Extended Commercial, and OEM Commercial licenses. ### Commercial License - Use in 1 application - Sell your application once only (e.g. a website sold to a client) - Your code is kept proprietary, to yourself - Free updates to the major version [Purchase](https://ianlunn.co.uk/store/hover-css/?attribute_pa_licenses=commercial) | [Read full license](https://ianlunn.co.uk/store/licenses/commercial/) ### Extended Commercial License - Use in unlimited applications - Sell your applications an unlimited number of times (e.g. a website template sold on a theme store)* - Your code is kept proprietary, to yourself - Free updates to the major version *With the exception of applications that allow end users to produce separate applications. See the OEM Commercial License. [Purchase](https://ianlunn.co.uk/store/hover-css/?attribute_pa_licenses=extended-commercial) | [Read full license](https://ianlunn.co.uk/store/licenses/extended-commercial/) ### OEM Commercial License Should your application enable end users to produce separate applications that incorporate Ian Lunn Design Limited's software, for example, a development toolkit, library, or application builder, you must obtain an OEM Commercial License. Please [contact us](https://ianlunn.co.uk/contact/) for more information about the OEM Commercial License. ================================================ FILE: package.json ================================================ { "name": "hover.css", "author": "Ian Lunn", "version": "2.3.2", "repository": { "type": "git", "url": "https://github.com/IanLunn/Hover" }, "bugs": { "url": "https://github.com/IanLunn/Hover/issues" }, "style": "css/hover.css", "sass": "scss/hover.scss", "main": "css/hover.css", "devDependencies": { "grunt": "~0.4.1", "grunt-contrib-connect": "~0.5.0", "grunt-contrib-cssmin": "~0.7.0", "grunt-contrib-less": "^1.0.0", "grunt-contrib-sass": "~0.6.0", "grunt-contrib-watch": "~0.5.3", "grunt-version": "^0.3.0", "load-grunt-tasks": "~3.3.0" } } ================================================ FILE: scss/_hacks.scss ================================================ // As is often the case, some devices/browsers need additional code to get CSS to work // in the most desired way. These mixins are used to quickly drop in hacks for each element // Find out more here: https://github.com/IanLunn/Hover/wiki/Hacks-Explained @mixin hardwareAccel() { // Improve performance on mobile/tablet devices // Perspective reduces blurryness of text in Chrome @include prefixed(transform, perspective(1px) translateZ(0)); } @mixin improveAntiAlias() { // Improve aliasing on mobile/tablet devices box-shadow: 0 0 1px rgba(0, 0, 0, 0); } @mixin forceBlockLevel() { // Transforms need to be block-level to work display: inline-block; vertical-align: middle; } @mixin hacks() { @include forceBlockLevel(); @include hardwareAccel(); @include improveAntiAlias(); } ================================================ FILE: scss/_mixins.scss ================================================ // prefix declarations @mixin prefixed($property, $value) { @if $webkit == true { -webkit-#{$property}: #{$value}; } @if $moz == true { -moz-#{$property}: #{$value}; } @if $ms == true { -ms-#{$property}: #{$value}; } @if $o == true { -o-#{$property}: #{$value}; } #{$property}: #{$value}; } // prefix keyframes @mixin keyframes($name) { @if $webkit == true { @-webkit-keyframes #{$name} { @content; } } @if $moz == true { @-moz-keyframes #{$name} { @content; } } @if $ms == true { @-ms-keyframes #{$name} { @content; } } @if $o == true { @-o-keyframes #{$name} { @content; } } @keyframes #{$name} { @content; } } ================================================ FILE: scss/_options.scss ================================================ // DEFAULT OPTIONS // Prefix for Hover class names $nameSpace: 'hvr' !default; // Durations $fastDuration: .1s !default; $mediumDuration: .3s !default; $slowDuration: .5s !default; // Colors $primaryColor: #e1e1e1 !default; $secondaryColor: #666 !default; $highlightColor: #ccc !default; $activeColor: #2098D1 !default; $shadowColor: rgba(0, 0, 0, .6) !default; // Speech bubbles options $tipWidth: 10px !default; //the width of the speech bubble tip $tipHeight: 10px !default; //the height of the speech bubble tip $tipColor: $primaryColor !default; // Arrows options $spaceBetweenTextAndArrows: 2.2em !default; // Curl dimensions $curlWidth: 25px !default; $curlHeight: 25px !default; // Curl colors $revealAreaColor: white !default; // reveal area behind the curl $curlLineColor: #aaa !default; // crease line $curlTransitionColor: #ccc !default; // color transitioning from crease line to final color $curlLastColor: white !default; // final color of the back of the curl // Browser Prefixes - Which CSS prefixes should be used? $webkit: true !default; $moz: false !default; $ms: false !default; $o: false !default; // Compile with or without classes $includeClasses: true !default; ================================================ FILE: scss/effects/2d-transitions/_backward.scss ================================================ /* Backward */ @mixin backward { @include hacks(); @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-property, transform); &:hover, &:focus, &:active { @include prefixed(transform, translateX(-8px)); } } ================================================ FILE: scss/effects/2d-transitions/_bob.scss ================================================ /* Bob */ @include keyframes(#{$nameSpace}-bob) { 0% { @include prefixed(transform, translateY(-8px)); } 50% { @include prefixed(transform, translateY(-4px)); } 100% { @include prefixed(transform, translateY(-8px)); } } @include keyframes(#{$nameSpace}-bob-float) { 100% { @include prefixed(transform, translateY(-8px)); } } @mixin bob { @include hacks(); &:hover, &:focus, &:active { @include prefixed(animation-name, "#{$nameSpace}-bob-float, #{$nameSpace}-bob"); @include prefixed(animation-duration, ".3s, 1.5s"); @include prefixed(animation-delay, "0s, .3s"); @include prefixed(animation-timing-function, "ease-out, ease-in-out"); @include prefixed(animation-iteration-count, "1, infinite"); @include prefixed(animation-fill-mode, "forwards"); @include prefixed(animation-direction, "normal, alternate"); } } ================================================ FILE: scss/effects/2d-transitions/_bounce-in.scss ================================================ /* Bounce In */ @mixin bounce-in { @include hacks(); @include prefixed(transition-duration, $slowDuration); &:hover, &:focus, &:active { @include prefixed(transform, scale(1.2)); @include prefixed(transition-timing-function, cubic-bezier(.47,2.02,.31,-0.36)); } } ================================================ FILE: scss/effects/2d-transitions/_bounce-out.scss ================================================ /* Bounce Out */ @mixin bounce-out { @include hacks(); @include prefixed(transition-duration, $slowDuration); &:hover, &:focus, &:active { @include prefixed(transform, scale(.8)); @include prefixed(transition-timing-function, cubic-bezier(.47,2.02,.31,-0.36)); } } ================================================ FILE: scss/effects/2d-transitions/_buzz-out.scss ================================================ /* Buzz Out */ @include keyframes(#{$nameSpace}-buzz-out) { 10% { @include prefixed(transform, translateX(3px) rotate(2deg)); } 20% { @include prefixed(transform, translateX(-3px) rotate(-2deg)); } 30% { @include prefixed(transform, translateX(3px) rotate(2deg)); } 40% { @include prefixed(transform, translateX(-3px) rotate(-2deg)); } 50% { @include prefixed(transform, translateX(2px) rotate(1deg)); } 60% { @include prefixed(transform, translateX(-2px) rotate(-1deg)); } 70% { @include prefixed(transform, translateX(2px) rotate(1deg)); } 80% { @include prefixed(transform, translateX(-2px) rotate(-1deg)); } 90% { @include prefixed(transform, translateX(1px) rotate(0)); } 100% { @include prefixed(transform, translateX(-1px) rotate(0)); } } @mixin buzz-out { @include hacks(); &:hover, &:focus, &:active { @include prefixed(animation-name, #{$nameSpace}-buzz-out); @include prefixed(animation-duration, .75s); @include prefixed(animation-timing-function, linear); @include prefixed(animation-iteration-count, 1); } } ================================================ FILE: scss/effects/2d-transitions/_buzz.scss ================================================ /* Buzz */ @include keyframes(#{$nameSpace}-buzz) { 50% { @include prefixed(transform, translateX(3px) rotate(2deg)); } 100% { @include prefixed(transform, translateX(-3px) rotate(-2deg)); } } @mixin buzz { @include hacks(); &:hover, &:focus, &:active { @include prefixed(animation-name, #{$nameSpace}-buzz); @include prefixed(animation-duration, .15s); @include prefixed(animation-timing-function, linear); @include prefixed(animation-iteration-count, infinite); } } ================================================ FILE: scss/effects/2d-transitions/_float.scss ================================================ /* Float */ @mixin float { @include hacks(); @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-property, transform); @include prefixed(transition-timing-function, ease-out); &:hover, &:focus, &:active { @include prefixed(transform, translateY(-8px)); } } ================================================ FILE: scss/effects/2d-transitions/_forward.scss ================================================ /* Forward */ @mixin forward { @include hacks(); @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-property, transform); &:hover, &:focus, &:active { @include prefixed(transform, translateX(8px)); } } ================================================ FILE: scss/effects/2d-transitions/_grow-rotate.scss ================================================ /* Grow Rotate */ @mixin grow-rotate { @include hacks(); @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-property, transform); &:hover, &:focus, &:active { @include prefixed(transform, scale(1.1) rotate(4deg)); } } ================================================ FILE: scss/effects/2d-transitions/_grow.scss ================================================ /* Grow */ @mixin grow { @include hacks(); @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-property, transform); &:hover, &:focus, &:active { @include prefixed(transform, scale(1.1)); } } ================================================ FILE: scss/effects/2d-transitions/_hang.scss ================================================ /* Hang */ @include keyframes(#{$nameSpace}-hang) { 0% { @include prefixed(transform, translateY(8px)); } 50% { @include prefixed(transform, translateY(4px)); } 100% { @include prefixed(transform, translateY(8px)); } } @include keyframes(#{$nameSpace}-hang-sink) { 100% { @include prefixed(transform, translateY(8px)); } } @mixin hang { @include hacks(); &:hover, &:focus, &:active { @include prefixed(animation-name, "#{$nameSpace}-hang-sink, #{$nameSpace}-hang"); @include prefixed(animation-duration, ".3s, 1.5s"); @include prefixed(animation-delay, "0s, .3s"); @include prefixed(animation-timing-function, "ease-out, ease-in-out"); @include prefixed(animation-iteration-count, "1, infinite"); @include prefixed(animation-fill-mode, "forwards"); @include prefixed(animation-direction, "normal, alternate"); } } ================================================ FILE: scss/effects/2d-transitions/_pop.scss ================================================ /* Pop */ @include keyframes(#{$nameSpace}-pop) { 50% { @include prefixed(transform, scale(1.2)); } } @mixin pop { @include hacks(); &:hover, &:focus, &:active { @include prefixed(animation-name, #{$nameSpace}-pop); @include prefixed(animation-duration, $mediumDuration); @include prefixed(animation-timing-function, linear); @include prefixed(animation-iteration-count, 1); } } ================================================ FILE: scss/effects/2d-transitions/_pulse-grow.scss ================================================ /* Pulse Grow */ @include keyframes(#{$nameSpace}-pulse-grow) { to { @include prefixed(transform, scale(1.1)); } } @mixin pulse-grow { @include hacks(); &:hover, &:focus, &:active { @include prefixed(animation-name, #{$nameSpace}-pulse-grow); @include prefixed(animation-duration, $mediumDuration); @include prefixed(animation-timing-function, linear); @include prefixed(animation-iteration-count, infinite); @include prefixed(animation-direction, alternate); } } ================================================ FILE: scss/effects/2d-transitions/_pulse-shrink.scss ================================================ /* Pulse Shrink */ @include keyframes(#{$nameSpace}-pulse-shrink) { to { @include prefixed(transform, scale(.9)); } } @mixin pulse-shrink { @include hacks(); &:hover, &:focus, &:active { @include prefixed(animation-name, #{$nameSpace}-pulse-shrink); @include prefixed(animation-duration, $mediumDuration); @include prefixed(animation-timing-function, linear); @include prefixed(animation-iteration-count, infinite); @include prefixed(animation-direction, alternate); } } ================================================ FILE: scss/effects/2d-transitions/_pulse.scss ================================================ /* Pulse */ @include keyframes(#{$nameSpace}-pulse) { 25% { @include prefixed(transform, scale(1.1)); } 75% { @include prefixed(transform, scale(.9)); } } @mixin pulse { @include hacks(); &:hover, &:focus, &:active { @include prefixed(animation-name, #{$nameSpace}-pulse); @include prefixed(animation-duration, 1s); @include prefixed(animation-timing-function, linear); @include prefixed(animation-iteration-count, infinite); } } ================================================ FILE: scss/effects/2d-transitions/_push.scss ================================================ /* Push */ @include keyframes(#{$nameSpace}-push) { 50% { @include prefixed(transform, scale(.8)); } 100% { @include prefixed(transform, scale(1)); } } @mixin push { @include hacks(); &:hover, &:focus, &:active { @include prefixed(animation-name, #{$nameSpace}-push); @include prefixed(animation-duration, .3s); @include prefixed(animation-timing-function, linear); @include prefixed(animation-iteration-count, 1); } } ================================================ FILE: scss/effects/2d-transitions/_rotate.scss ================================================ /* Rotate */ @mixin rotate { @include hacks(); @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-property, transform); &:hover, &:focus, &:active { @include prefixed(transform, rotate(4deg)); } } ================================================ FILE: scss/effects/2d-transitions/_shrink.scss ================================================ /* Shrink */ @mixin shrink { @include hacks(); @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-property, transform); &:hover, &:focus, &:active { @include prefixed(transform, scale(.9)); } } ================================================ FILE: scss/effects/2d-transitions/_sink.scss ================================================ /* Sink */ @mixin sink { @include hacks(); @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-property, transform); @include prefixed(transition-timing-function, ease-out); &:hover, &:focus, &:active { @include prefixed(transform, translateY(8px)); } } ================================================ FILE: scss/effects/2d-transitions/_skew-backward.scss ================================================ /* Skew Backward */ @mixin skew-backward { @include hacks(); @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-property, transform); @include prefixed(transform-origin, 0 100%); &:hover, &:focus, &:active { @include prefixed(transform, skew(10deg)); } } ================================================ FILE: scss/effects/2d-transitions/_skew-forward.scss ================================================ /* Skew Forward */ @mixin skew-forward { @include hacks(); @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-property, transform); @include prefixed(transform-origin, 0 100%); &:hover, &:focus, &:active { @include prefixed(transform, skew(-10deg)); } } ================================================ FILE: scss/effects/2d-transitions/_skew.scss ================================================ /* Skew */ @mixin skew { @include hacks(); @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-property, transform); &:hover, &:focus, &:active { @include prefixed(transform, skew(-10deg)); } } ================================================ FILE: scss/effects/2d-transitions/_wobble-bottom.scss ================================================ /* Wobble Bottom */ @include keyframes(#{$nameSpace}-wobble-bottom) { 16.65% { @include prefixed(transform, skew(-12deg)); } 33.3% { @include prefixed(transform, skew(10deg)); } 49.95% { @include prefixed(transform, skew(-6deg)); } 66.6% { @include prefixed(transform, skew(4deg)); } 83.25% { @include prefixed(transform, skew(-2deg)); } 100% { @include prefixed(transform, skew(0)); } } @mixin wobble-bottom { @include hacks(); @include prefixed(transform-origin, 100% 0); &:hover, &:focus, &:active { @include prefixed(animation-name, #{$nameSpace}-wobble-bottom); @include prefixed(animation-duration, 1s); @include prefixed(animation-timing-function, ease-in-out); @include prefixed(animation-iteration-count, 1); } } ================================================ FILE: scss/effects/2d-transitions/_wobble-horizontal.scss ================================================ /* Wobble Horizontal */ @include keyframes(#{$nameSpace}-wobble-horizontal) { 16.65% { @include prefixed(transform, translateX(8px)); } 33.3% { @include prefixed(transform, translateX(-6px)); } 49.95% { @include prefixed(transform, translateX(4px)); } 66.6% { @include prefixed(transform, translateX(-2px)); } 83.25% { @include prefixed(transform, translateX(1px)); } 100% { @include prefixed(transform, translateX(0)); } } @mixin wobble-horizontal { @include hacks(); &:hover, &:focus, &:active { @include prefixed(animation-name, #{$nameSpace}-wobble-horizontal); @include prefixed(animation-duration, 1s); @include prefixed(animation-timing-function, ease-in-out); @include prefixed(animation-iteration-count, 1); } } ================================================ FILE: scss/effects/2d-transitions/_wobble-skew.scss ================================================ /* Wobble Skew */ @include keyframes(#{$nameSpace}-wobble-skew) { 16.65% { @include prefixed(transform, skew(-12deg)); } 33.3% { @include prefixed(transform, skew(10deg)); } 49.95% { @include prefixed(transform, skew(-6deg)); } 66.6% { @include prefixed(transform, skew(4deg)); } 83.25% { @include prefixed(transform, skew(-2deg)); } 100% { @include prefixed(transform, skew(0)); } } @mixin wobble-skew { @include hacks(); &:hover, &:focus, &:active { @include prefixed(animation-name, #{$nameSpace}-wobble-skew); @include prefixed(animation-duration, 1s); @include prefixed(animation-timing-function, ease-in-out); @include prefixed(animation-iteration-count, 1); } } ================================================ FILE: scss/effects/2d-transitions/_wobble-to-bottom-right.scss ================================================ /* Wobble To Bottom Right */ @include keyframes(#{$nameSpace}-wobble-to-bottom-right) { 16.65% { @include prefixed(transform, translate(8px, 8px)); } 33.3% { @include prefixed(transform, translate(-6px, -6px)); } 49.95% { @include prefixed(transform, translate(4px, 4px)); } 66.6% { @include prefixed(transform, translate(-2px, -2px)); } 83.25% { @include prefixed(transform, translate(1px, 1px)); } 100% { @include prefixed(transform, translate(0, 0)); } } @mixin wobble-to-bottom-right { @include hacks(); &:hover, &:focus, &:active { @include prefixed(animation-name, #{$nameSpace}-wobble-to-bottom-right); @include prefixed(animation-duration, 1s); @include prefixed(animation-timing-function, ease-in-out); @include prefixed(animation-iteration-count, 1); } } ================================================ FILE: scss/effects/2d-transitions/_wobble-to-top-right.scss ================================================ /* Wobble To Top Right */ @include keyframes(#{$nameSpace}-wobble-to-top-right) { 16.65% { @include prefixed(transform, translate(8px, -8px)); } 33.3% { @include prefixed(transform, translate(-6px, 6px)); } 49.95% { @include prefixed(transform, translate(4px, -4px)); } 66.6% { @include prefixed(transform, translate(-2px, 2px)); } 83.25% { @include prefixed(transform, translate(1px, -1px)); } 100% { @include prefixed(transform, translate(0, 0)); } } @mixin wobble-to-top-right { @include hacks(); &:hover, &:focus, &:active { @include prefixed(animation-name, #{$nameSpace}-wobble-to-top-right); @include prefixed(animation-duration, 1s); @include prefixed(animation-timing-function, ease-in-out); @include prefixed(animation-iteration-count, 1); } } ================================================ FILE: scss/effects/2d-transitions/_wobble-top.scss ================================================ /* Wobble Top */ @include keyframes(#{$nameSpace}-wobble-top) { 16.65% { @include prefixed(transform, skew(-12deg)); } 33.3% { @include prefixed(transform, skew(10deg)); } 49.95% { @include prefixed(transform, skew(-6deg)); } 66.6% { @include prefixed(transform, skew(4deg)); } 83.25% { @include prefixed(transform, skew(-2deg)); } 100% { @include prefixed(transform, skew(0)); } } @mixin wobble-top { @include hacks(); @include prefixed(transform-origin, 0 100%); &:hover, &:focus, &:active { @include prefixed(animation-name, #{$nameSpace}-wobble-top); @include prefixed(animation-duration, 1s); @include prefixed(animation-timing-function, ease-in-out); @include prefixed(animation-iteration-count, 1); } } ================================================ FILE: scss/effects/2d-transitions/_wobble-vertical.scss ================================================ /* Wobble Vertical */ @include keyframes(#{$nameSpace}-wobble-vertical) { 16.65% { @include prefixed(transform, translateY(8px)); } 33.3% { @include prefixed(transform, translateY(-6px)); } 49.95% { @include prefixed(transform, translateY(4px)); } 66.6% { @include prefixed(transform, translateY(-2px)); } 83.25% { @include prefixed(transform, translateY(1px)); } 100% { @include prefixed(transform, translateY(0)); } } @mixin wobble-vertical { @include hacks(); &:hover, &:focus, &:active { @include prefixed(animation-name, #{$nameSpace}-wobble-vertical); @include prefixed(animation-duration, 1s); @include prefixed(animation-timing-function, ease-in-out); @include prefixed(animation-iteration-count, 1); } } ================================================ FILE: scss/effects/background-transitions/_back-pulse.scss ================================================ /* Back Pulse */ @include keyframes(#{$nameSpace}-back-pulse) { 50% { background-color: rgba(32, 152, 209, .75); } } @mixin back-pulse { @include hacks(); overflow: hidden; @include prefixed(transition-duration, $slowDuration); @include prefixed(transition-property, "color, background-color"); &:hover, &:focus, &:active { @include prefixed(animation-name, #{$nameSpace}-back-pulse); @include prefixed(animation-duration, 1s); @include prefixed(animation-delay, $slowDuration); @include prefixed(animation-timing-function, linear); @include prefixed(animation-iteration-count, infinite); background-color: $activeColor; background-color: rgba(32, 152, 209, 1); color: white; } } ================================================ FILE: scss/effects/background-transitions/_bounce-to-bottom.scss ================================================ /* Bounce To Bottom */ @mixin bounce-to-bottom { @include hacks(); position: relative; @include prefixed(transition-property, color); @include prefixed(transition-duration, $slowDuration); &:before { content: ""; position: absolute; z-index: -1; top: 0; left: 0; right: 0; bottom: 0; background: $activeColor; @include prefixed(transform, scaleY(0)); @include prefixed(transform-origin, 50% 0); @include prefixed(transition-property, transform); @include prefixed(transition-duration, $slowDuration); @include prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { color: white; &:before { @include prefixed(transform, scaleY(1)); @include prefixed(transition-timing-function, cubic-bezier(.52,1.64,.37,.66)); } } } ================================================ FILE: scss/effects/background-transitions/_bounce-to-left.scss ================================================ /* Bounce To Left */ @mixin bounce-to-left { @include hacks(); position: relative; @include prefixed(transition-property, color); @include prefixed(transition-duration, $slowDuration); &:before { content: ""; position: absolute; z-index: -1; top: 0; left: 0; right: 0; bottom: 0; background: $activeColor; @include prefixed(transform, scaleX(0)); @include prefixed(transform-origin, 100% 50%); @include prefixed(transition-property, transform); @include prefixed(transition-duration, $slowDuration); @include prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { color: white; &:before { @include prefixed(transform, scaleX(1)); @include prefixed(transition-timing-function, cubic-bezier(.52,1.64,.37,.66)); } } } ================================================ FILE: scss/effects/background-transitions/_bounce-to-right.scss ================================================ /* Bounce To Right */ @mixin bounce-to-right { @include hacks(); position: relative; @include prefixed(transition-property, color); @include prefixed(transition-duration, $slowDuration); &:before { content: ""; position: absolute; z-index: -1; top: 0; left: 0; right: 0; bottom: 0; background: $activeColor; @include prefixed(transform, scaleX(0)); @include prefixed(transform-origin, 0 50%); @include prefixed(transition-property, transform); @include prefixed(transition-duration, $slowDuration); @include prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { color: white; &:before { @include prefixed(transform, scaleX(1)); @include prefixed(transition-timing-function, cubic-bezier(.52,1.64,.37,.66)); } } } ================================================ FILE: scss/effects/background-transitions/_bounce-to-top.scss ================================================ /* Bounce To Top */ @mixin bounce-to-top { @include hacks(); position: relative; @include prefixed(transition-property, color); @include prefixed(transition-duration, $slowDuration); &:before { content: ""; position: absolute; z-index: -1; top: 0; left: 0; right: 0; bottom: 0; background: $activeColor; @include prefixed(transform, scaleY(0)); @include prefixed(transform-origin, 50% 100%); @include prefixed(transition-property, transform); @include prefixed(transition-duration, $slowDuration); @include prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { color: white; &:before { @include prefixed(transform, scaleY(1)); @include prefixed(transition-timing-function, cubic-bezier(.52,1.64,.37,.66)); } } } ================================================ FILE: scss/effects/background-transitions/_fade.scss ================================================ /* Fade */ @mixin fade { @include hacks(); overflow: hidden; @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-property, "color, background-color"); &:hover, &:focus, &:active { background-color: $activeColor; color: white; } } ================================================ FILE: scss/effects/background-transitions/_radial-in.scss ================================================ /* Radial In */ @mixin radial-in { @include hacks(); position: relative; overflow: hidden; background: $activeColor; @include prefixed(transition-property, color); @include prefixed(transition-duration, $mediumDuration); &:before { content: ""; position: absolute; z-index: -1; top: 0; left: 0; right: 0; bottom: 0; background: $primaryColor; border-radius: 100%; @include prefixed(transform, scale(2)); @include prefixed(transition-property, transform); @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { color: white; &:before { @include prefixed(transform, scale(0)); } } } ================================================ FILE: scss/effects/background-transitions/_radial-out.scss ================================================ /* Radial Out */ @mixin radial-out { @include hacks(); position: relative; overflow: hidden; background: $primaryColor; @include prefixed(transition-property, color); @include prefixed(transition-duration, $mediumDuration); &:before { content: ""; position: absolute; z-index: -1; top: 0; left: 0; right: 0; bottom: 0; background: $activeColor; border-radius: 100%; @include prefixed(transform, scale(0)); @include prefixed(transition-property, transform); @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { color: white; &:before { @include prefixed(transform, scale(2)); } } } ================================================ FILE: scss/effects/background-transitions/_rectangle-in.scss ================================================ /* Rectangle In */ @mixin rectangle-in { @include hacks(); position: relative; background: $activeColor; @include prefixed(transition-property, color); @include prefixed(transition-duration, $mediumDuration); &:before { content: ""; position: absolute; z-index: -1; top: 0; left: 0; right: 0; bottom: 0; background: $primaryColor; @include prefixed(transform, scale(1)); @include prefixed(transition-property, transform); @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { color: white; &:before { @include prefixed(transform, scale(0)); } } } ================================================ FILE: scss/effects/background-transitions/_rectangle-out.scss ================================================ /* Rectangle Out */ @mixin rectangle-out { @include hacks(); position: relative; background: $primaryColor; @include prefixed(transition-property, color); @include prefixed(transition-duration, $mediumDuration); &:before { content: ""; position: absolute; z-index: -1; top: 0; left: 0; right: 0; bottom: 0; background: $activeColor; @include prefixed(transform, scale(0)); @include prefixed(transition-property, transform); @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { color: white; &:before { @include prefixed(transform, scale(1)); } } } ================================================ FILE: scss/effects/background-transitions/_shutter-in-horizontal.scss ================================================ /* Shutter In Horizontal */ @mixin shutter-in-horizontal { @include hacks(); position: relative; background: $activeColor; @include prefixed(transition-property, color); @include prefixed(transition-duration, $mediumDuration); &:before { content: ""; position: absolute; z-index: -1; top: 0; bottom: 0; left: 0; right: 0; background: $primaryColor; @include prefixed(transform, scaleX(1)); @include prefixed(transform-origin, 50%); @include prefixed(transition-property, transform); @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { color: white; &:before { @include prefixed(transform, scaleX(0)); } } } ================================================ FILE: scss/effects/background-transitions/_shutter-in-vertical.scss ================================================ /* Shutter In Vertical */ @mixin shutter-in-vertical { @include hacks(); position: relative; background: $activeColor; @include prefixed(transition-property, color); @include prefixed(transition-duration, $mediumDuration); &:before { content: ""; position: absolute; z-index: -1; top: 0; bottom: 0; left: 0; right: 0; background: $primaryColor; @include prefixed(transform, scaleY(1)); @include prefixed(transform-origin, 50%); @include prefixed(transition-property, transform); @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { color: white; &:before { @include prefixed(transform, scaleY(0)); } } } ================================================ FILE: scss/effects/background-transitions/_shutter-out-horizontal.scss ================================================ /* Shutter Out Horizontal */ @mixin shutter-out-horizontal { @include hacks(); position: relative; background: $primaryColor; @include prefixed(transition-property, color); @include prefixed(transition-duration, $mediumDuration); &:before { content: ""; position: absolute; z-index: -1; top: 0; bottom: 0; left: 0; right: 0; background: $activeColor; @include prefixed(transform, scaleX(0)); @include prefixed(transform-origin, 50%); @include prefixed(transition-property, transform); @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { color: white; &:before { @include prefixed(transform, scaleX(1)); } } } ================================================ FILE: scss/effects/background-transitions/_shutter-out-vertical.scss ================================================ /* Shutter Out Vertical */ @mixin shutter-out-vertical { @include hacks(); position: relative; background: $primaryColor; @include prefixed(transition-property, color); @include prefixed(transition-duration, $mediumDuration); &:before { content: ""; position: absolute; z-index: -1; top: 0; bottom: 0; left: 0; right: 0; background: $activeColor; @include prefixed(transform, scaleY(0)); @include prefixed(transform-origin, 50%); @include prefixed(transition-property, transform); @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { color: white; &:before { @include prefixed(transform, scaleY(1)); } } } ================================================ FILE: scss/effects/background-transitions/_sweep-to-bottom.scss ================================================ /* Sweep To Bottom */ @mixin sweep-to-bottom { @include hacks(); position: relative; @include prefixed(transition-property, color); @include prefixed(transition-duration, $mediumDuration); &:before { content: ""; position: absolute; z-index: -1; top: 0; left: 0; right: 0; bottom: 0; background: $activeColor; @include prefixed(transform, scaleY(0)); @include prefixed(transform-origin, 50% 0); @include prefixed(transition-property, transform); @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { color: white; &:before { @include prefixed(transform, scaleY(1)); } } } ================================================ FILE: scss/effects/background-transitions/_sweep-to-left.scss ================================================ /* Sweep To Left */ @mixin sweep-to-left { @include hacks(); position: relative; @include prefixed(transition-property, color); @include prefixed(transition-duration, $mediumDuration); &:before { content: ""; position: absolute; z-index: -1; top: 0; left: 0; right: 0; bottom: 0; background: $activeColor; @include prefixed(transform, scaleX(0)); @include prefixed(transform-origin, 100% 50%); @include prefixed(transition-property, transform); @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { color: white; &:before { @include prefixed(transform, scaleX(1)); } } } ================================================ FILE: scss/effects/background-transitions/_sweep-to-right.scss ================================================ /* Sweep To Right */ @mixin sweep-to-right { @include hacks(); position: relative; @include prefixed(transition-property, color); @include prefixed(transition-duration, $mediumDuration); &:before { content: ""; position: absolute; z-index: -1; top: 0; left: 0; right: 0; bottom: 0; background: $activeColor; @include prefixed(transform, scaleX(0)); @include prefixed(transform-origin, 0 50%); @include prefixed(transition-property, transform); @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { color: white; &:before { @include prefixed(transform, scaleX(1)); } } } ================================================ FILE: scss/effects/background-transitions/_sweep-to-top.scss ================================================ /* Sweep To Top */ @mixin sweep-to-top { @include hacks(); position: relative; @include prefixed(transition-property, color); @include prefixed(transition-duration, $mediumDuration); &:before { content: ""; position: absolute; z-index: -1; top: 0; left: 0; right: 0; bottom: 0; background: $activeColor; @include prefixed(transform, scaleY(0)); @include prefixed(transform-origin, 50% 100%); @include prefixed(transition-property, transform); @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { color: white; &:before { @include prefixed(transform, scaleY(1)); } } } ================================================ FILE: scss/effects/border-transitions/_border-fade.scss ================================================ /* Border Fade */ @mixin border-fade { $borderWidth: 4px; @include hacks(); @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-property, box-shadow); box-shadow: inset 0 0 0 $borderWidth $primaryColor, 0 0 1px rgba(0, 0, 0, 0); /* Hack to improve aliasing on mobile/tablet devices */ &:hover, &:focus, &:active { box-shadow: inset 0 0 0 $borderWidth $activeColor, 0 0 1px rgba(0, 0, 0, 0); /* Hack to improve aliasing on mobile/tablet devices */ } } ================================================ FILE: scss/effects/border-transitions/_hollow.scss ================================================ /* Hollow */ @mixin hollow { $borderWidth: 4px; @include hacks(); @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-property, background); box-shadow: inset 0 0 0 $borderWidth $primaryColor, 0 0 1px rgba(0, 0, 0, 0); /* Hack to improve aliasing on mobile/tablet devices */ &:hover, &:focus, &:active { background: none; } } ================================================ FILE: scss/effects/border-transitions/_outline-in.scss ================================================ /* Outline In */ @mixin outline-in { $outerBorderWidth: 4px; $innerBorderWidth: 4px; @include hacks(); position: relative; &:before { pointer-events: none; content: ''; position: absolute; border: $primaryColor solid $outerBorderWidth; top: -($outerBorderWidth + $innerBorderWidth) * 2; right: -($outerBorderWidth + $innerBorderWidth) * 2; bottom: -($outerBorderWidth + $innerBorderWidth) * 2; left: -($outerBorderWidth + $innerBorderWidth) * 2; opacity: 0; @include prefixed(transition-duration, .3s); @include prefixed(transition-property, "top, right, bottom, left"); } &:hover:before, &:focus:before, &:active:before { top: -($outerBorderWidth + $innerBorderWidth); right: -($outerBorderWidth + $innerBorderWidth); bottom: -($outerBorderWidth + $innerBorderWidth); left: -($outerBorderWidth + $innerBorderWidth); opacity: 1; } } ================================================ FILE: scss/effects/border-transitions/_outline-out.scss ================================================ /* Outline Out */ @mixin outline-out { $outerBorderWidth: 4px; $innerBorderWidth: 4px; @include hacks(); position: relative; &:before { content: ''; position: absolute; border: $primaryColor solid $outerBorderWidth; top: 0; right: 0; bottom: 0; left: 0; @include prefixed(transition-duration, .3s); @include prefixed(transition-property, "top, right, bottom, left"); } &:hover:before, &:focus:before, &:active:before { top: -($outerBorderWidth + $innerBorderWidth); right: -($outerBorderWidth + $innerBorderWidth); bottom: -($outerBorderWidth + $innerBorderWidth); left: -($outerBorderWidth + $innerBorderWidth); } } ================================================ FILE: scss/effects/border-transitions/_overline-from-center.scss ================================================ /* Overline From Center */ @mixin overline-from-center { $duration: $mediumDuration; @include hacks(); position: relative; overflow: hidden; &:before { content: ""; position: absolute; z-index: -1; left: 51%; right: 51%; top: 0; background: $activeColor; height: 4px; @include prefixed(transition-property, "left, right"); @include prefixed(transition-duration, $duration); @include prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { &:before { left: 0; right: 0; } } } ================================================ FILE: scss/effects/border-transitions/_overline-from-left.scss ================================================ /* Overline From Left */ @mixin overline-from-left { $duration: $mediumDuration; @include hacks(); position: relative; overflow: hidden; &:before { content: ""; position: absolute; z-index: -1; left: 0; right: 100%; top: 0; background: $activeColor; height: 4px; @include prefixed(transition-property, "right"); @include prefixed(transition-duration, $duration); @include prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { &:before { right: 0; } } } ================================================ FILE: scss/effects/border-transitions/_overline-from-right.scss ================================================ /* Overline From Right */ @mixin overline-from-right { $duration: $mediumDuration; @include hacks(); position: relative; overflow: hidden; &:before { content: ""; position: absolute; z-index: -1; left: 100%; right: 0; top: 0; background: $activeColor; height: 4px; @include prefixed(transition-property, "left"); @include prefixed(transition-duration, $duration); @include prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { &:before { left: 0; } } } ================================================ FILE: scss/effects/border-transitions/_overline-reveal.scss ================================================ /* Overline Reveal */ @mixin overline-reveal { $duration: $mediumDuration; @include hacks(); position: relative; overflow: hidden; &:before { content: ""; position: absolute; z-index: -1; left: 0; right: 0; top: 0; background: $activeColor; height: 4px; @include prefixed(transform, translateY(-4px)); @include prefixed(transition-property, transform); @include prefixed(transition-duration, $duration); @include prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { &:before { @include prefixed(transform, translateY(0)); } } } ================================================ FILE: scss/effects/border-transitions/_reveal.scss ================================================ /* Reveal */ @mixin reveal { $duration: #{$fastDuration}; @include hacks(); position: relative; overflow: hidden; &:before { content: ""; position: absolute; z-index: -1; left: 0; right: 0; top: 0; bottom: 0; border-color: #{$activeColor}; border-style: solid; border-width: 0; @include prefixed(transition-property, border-width); @include prefixed(transition-duration, #{$duration}); @include prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { &:before { @include prefixed(transform, translateY(0)); border-width: 4px; } } } ================================================ FILE: scss/effects/border-transitions/_ripple-in.scss ================================================ /* Ripple In */ @include keyframes(#{$nameSpace}-ripple-in) { 100% { top: 0; right: 0; bottom: 0; left: 0; opacity: 1; } } @mixin ripple-in { $outerBorderWidth: 4px; $innerBorderWidth: 4px; @include hacks(); position: relative; &:before { content: ''; position: absolute; border: $primaryColor solid $outerBorderWidth; top: -(6px + 6px); right: -(6px + 6px); bottom: -(6px + 6px); left: -(6px + 6px); opacity: 0; @include prefixed(animation-duration, 1s); } &:hover:before, &:focus:before, &:active:before { @include prefixed(animation-name, #{$nameSpace}-ripple-in); } } ================================================ FILE: scss/effects/border-transitions/_ripple-out.scss ================================================ /* Ripple Out */ @include keyframes(#{$nameSpace}-ripple-out) { 100% { top: -(6px + 6px); right: -(6px + 6px); bottom: -(6px + 6px); left: -(6px + 6px); opacity: 0; } } @mixin ripple-out { $outerBorderWidth: 6px; $innerBorderWidth: 6px; @include hacks(); position: relative; &:before { content: ''; position: absolute; border: $primaryColor solid $outerBorderWidth; top: 0; right: 0; bottom: 0; left: 0; @include prefixed(animation-duration, 1s); } &:hover:before, &:focus:before, &:active:before { @include prefixed(animation-name, #{$nameSpace}-ripple-out); } } ================================================ FILE: scss/effects/border-transitions/_round-corners.scss ================================================ /* Round Corners */ @mixin round-corners { @include hacks(); @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-property, border-radius); &:hover, &:focus, &:active { border-radius: 1em; } } ================================================ FILE: scss/effects/border-transitions/_trim.scss ================================================ /* Trim */ @mixin trim { $outerBorderWidth: 4px; $innerBorderWidth: 4px; @include hacks(); position: relative; &:before { content: ''; position: absolute; border: white solid $innerBorderWidth; top: $outerBorderWidth; left: $outerBorderWidth; right: $outerBorderWidth; bottom: $outerBorderWidth; opacity: 0; @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-property, opacity); } &:hover:before, &:focus:before, &:active:before { opacity: 1; } } ================================================ FILE: scss/effects/border-transitions/_underline-from-center.scss ================================================ /* Underline From Center */ @mixin underline-from-center { $duration: $mediumDuration; @include hacks(); position: relative; overflow: hidden; &:before { content: ""; position: absolute; z-index: -1; left: 51%; right: 51%; bottom: 0; background: $activeColor; height: 4px; @include prefixed(transition-property, "left, right"); @include prefixed(transition-duration, $duration); @include prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { &:before { left: 0; right: 0; } } } ================================================ FILE: scss/effects/border-transitions/_underline-from-left.scss ================================================ /* Underline From Left */ @mixin underline-from-left { $duration: $mediumDuration; @include hacks(); position: relative; overflow: hidden; &:before { content: ""; position: absolute; z-index: -1; left: 0; right: 100%; bottom: 0; background: $activeColor; height: 4px; @include prefixed(transition-property, "right"); @include prefixed(transition-duration, $duration); @include prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { &:before { right: 0; } } } ================================================ FILE: scss/effects/border-transitions/_underline-from-right.scss ================================================ /* Underline From Right */ @mixin underline-from-right { $duration: $mediumDuration; @include hacks(); position: relative; overflow: hidden; &:before { content: ""; position: absolute; z-index: -1; left: 100%; right: 0; bottom: 0; background: $activeColor; height: 4px; @include prefixed(transition-property, "left"); @include prefixed(transition-duration, $duration); @include prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { &:before { left: 0; } } } ================================================ FILE: scss/effects/border-transitions/_underline-reveal.scss ================================================ /* Underline Reveal */ @mixin underline-reveal { $duration: $mediumDuration; @include hacks(); position: relative; overflow: hidden; &:before { content: ""; position: absolute; z-index: -1; left: 0; right: 0; bottom: 0; background: $activeColor; height: 4px; @include prefixed(transform, translateY(4px)); @include prefixed(transition-property, transform); @include prefixed(transition-duration, $duration); @include prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { &:before { @include prefixed(transform, translateY(0)); } } } ================================================ FILE: scss/effects/curls/_curl-bottom-left.scss ================================================ /* Curl Bottom Left */ @mixin curl-bottom-left { @include hacks(); position: relative; &:before { pointer-events: none; position: absolute; content: ''; height: 0; width: 0; bottom: 0; left: 0; background: $revealAreaColor; /* IE9 */ background: linear-gradient( 45deg, $revealAreaColor 45%, $curlLineColor 50%, $curlTransitionColor 56%, $curlLastColor 80% ); box-shadow: 1px -1px 1px rgba(0, 0, 0, .4); @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-property, "width, height"); } &:hover:before, &:focus:before, &:active:before { width: $curlWidth; height: $curlHeight; } } ================================================ FILE: scss/effects/curls/_curl-bottom-right.scss ================================================ /* Curl Bottom Right */ @mixin curl-bottom-right { @include hacks(); position: relative; &:before { pointer-events: none; position: absolute; content: ''; height: 0; width: 0; bottom: 0; right: 0; background: $revealAreaColor; /* IE9 */ background: linear-gradient( 315deg, $revealAreaColor 45%, $curlLineColor 50%, $curlTransitionColor 56%, $curlLastColor 80% ); box-shadow: -1px -1px 1px rgba(0, 0, 0, .4); @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-property, "width, height"); } &:hover:before, &:focus:before, &:active:before { width: $curlWidth; height: $curlHeight; } } ================================================ FILE: scss/effects/curls/_curl-top-left.scss ================================================ /* Curl Top Left */ @mixin curl-top-left { @include hacks(); position: relative; &:before { pointer-events: none; position: absolute; content: ''; height: 0; width: 0; top: 0; left: 0; background: $revealAreaColor; /* IE9 */ background: linear-gradient( 135deg, $revealAreaColor 45%, $curlLineColor 50%, $curlTransitionColor 56%, $curlLastColor 80% ); filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#ffffff', endColorstr='#000000');/*For IE7-8-9*/ z-index: 1000; box-shadow: 1px 1px 1px rgba(0, 0, 0, .4); @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-property, "width, height"); } &:hover:before, &:focus:before, &:active:before { width: $curlWidth; height: $curlHeight; } } ================================================ FILE: scss/effects/curls/_curl-top-right.scss ================================================ /* Curl Top Right */ @mixin curl-top-right { @include hacks(); position: relative; &:before { pointer-events: none; position: absolute; content: ''; height: 0; width: 0; top: 0; right: 0; background: $revealAreaColor; /* IE9 */ background: linear-gradient( 225deg, $revealAreaColor 45%, $curlLineColor 50%, $curlTransitionColor 56%, $curlLastColor 80% ); box-shadow: -1px 1px 1px rgba(0, 0, 0, .4); @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-property, "width, height"); } &:hover:before, &:focus:before, &:active:before { width: $curlWidth; height: $curlHeight; } } ================================================ FILE: scss/effects/icons/_icon-back.scss ================================================ /* Icon Back */ @mixin icon-back { @include hacks(); @include prefixed(transition-duration, $fastDuration); .hvr-icon { @include prefixed(transform, translateZ(0)); @include prefixed(transition-duration, $fastDuration); @include prefixed(transition-property, transform); @include prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { .hvr-icon { @include prefixed(transform, translateX(-4px)); } } } ================================================ FILE: scss/effects/icons/_icon-bob.scss ================================================ /* Icon Bob */ @include keyframes(#{$nameSpace}-icon-bob) { 0% { @include prefixed(transform, translateY(-6px)); } 50% { @include prefixed(transform, translateY(-2px)); } 100% { @include prefixed(transform, translateY(-6px)); } } @include keyframes(#{$nameSpace}-icon-bob-float) { 100% { @include prefixed(transform, translateY(-6px)); } } @mixin icon-bob { @include hacks(); @include prefixed(transition-duration, $mediumDuration); .hvr-icon { @include prefixed(transform, translateZ(0)); } &:hover, &:focus, &:active { .hvr-icon { @include prefixed(animation-name, "#{$nameSpace}-icon-bob-float, #{$nameSpace}-icon-bob"); @include prefixed(animation-duration, ".3s, 1.5s"); @include prefixed(animation-delay, "0s, .3s"); @include prefixed(animation-timing-function, "ease-out, ease-in-out"); @include prefixed(animation-iteration-count, "1, infinite"); @include prefixed(animation-fill-mode, "forwards"); @include prefixed(animation-direction, "normal, alternate"); } } } ================================================ FILE: scss/effects/icons/_icon-bounce-out.scss ================================================ /* Icon Bounce Out */ @include keyframes(#{$nameSpace}-icon-bounce-out) { 50% { @include prefixed(transform, scale(1.5)); } } @mixin icon-bounce-out { @include hacks(); @include prefixed(transition-duration, $mediumDuration); .hvr-icon { @include prefixed(transform, translateZ(0)); @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-property, transform); @include prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { .hvr-icon { @include prefixed(transform, scale(.9)); @include prefixed(transition-timing-function, cubic-bezier(.47,2.02,.31,-0.36)); } } } ================================================ FILE: scss/effects/icons/_icon-bounce.scss ================================================ /* Icon Bounce */ @mixin icon-bounce { @include hacks(); @include prefixed(transition-duration, $mediumDuration); .hvr-icon { @include prefixed(transform, translateZ(0)); @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-property, transform); @include prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { .hvr-icon { @include prefixed(transform, scale(1.5)); @include prefixed(transition-timing-function, cubic-bezier(.47,2.02,.31,-0.36)); } } } ================================================ FILE: scss/effects/icons/_icon-buzz-out.scss ================================================ /* Icon Buzz Out */ @include keyframes(#{$nameSpace}-icon-buzz-out) { 10% { @include prefixed(transform, translateX(3px) rotate(2deg)); } 20% { @include prefixed(transform, translateX(-3px) rotate(-2deg)); } 30% { @include prefixed(transform, translateX(3px) rotate(2deg)); } 40% { @include prefixed(transform, translateX(-3px) rotate(-2deg)); } 50% { @include prefixed(transform, translateX(2px) rotate(1deg)); } 60% { @include prefixed(transform, translateX(-2px) rotate(-1deg)); } 70% { @include prefixed(transform, translateX(2px) rotate(1deg)); } 80% { @include prefixed(transform, translateX(-2px) rotate(-1deg)); } 90% { @include prefixed(transform, translateX(1px) rotate(0)); } 100% { @include prefixed(transform, translateX(-1px) rotate(0)); } } @mixin icon-buzz-out { @include hacks(); @include prefixed(transition-duration, $mediumDuration); .hvr-icon { @include prefixed(transform, translateZ(0)); } &:hover, &:focus, &:active { .hvr-icon { @include prefixed(animation-name, #{$nameSpace}-icon-buzz-out); @include prefixed(animation-duration, .75s); @include prefixed(animation-timing-function, linear); @include prefixed(animation-iteration-count, 1); } } } ================================================ FILE: scss/effects/icons/_icon-buzz.scss ================================================ /* Icon Buzz */ @include keyframes(#{$nameSpace}-icon-buzz) { 50% { @include prefixed(transform, translateX(3px) rotate(2deg)); } 100% { @include prefixed(transform, translateX(-3px) rotate(-2deg)); } } @mixin icon-buzz { @include hacks(); @include prefixed(transition-duration, $mediumDuration); .hvr-icon { @include prefixed(transform, translateZ(0)); } &:hover, &:focus, &:active { .hvr-icon { @include prefixed(animation-name, #{$nameSpace}-icon-buzz); @include prefixed(animation-duration, .15s); @include prefixed(animation-timing-function, linear); @include prefixed(animation-iteration-count, infinite); } } } ================================================ FILE: scss/effects/icons/_icon-down.scss ================================================ /* Icon Down */ @include keyframes(#{$nameSpace}-icon-down) { 0%, 50%, 100% { @include prefixed(transform, translateY(0)); } 25%, 75% { @include prefixed(transform, translateY(6px)); } } /* Icon Down */ @mixin icon-down { @include hacks(); .hvr-icon { @include prefixed(transform, translateZ(0)); } &:hover, &:focus, &:active { .hvr-icon { @include prefixed(animation-name, #{$nameSpace}-icon-down); @include prefixed(animation-duration, .75s); @include prefixed(animation-timing-function, ease-out); } } } ================================================ FILE: scss/effects/icons/_icon-drop.scss ================================================ /* Icon Drop */ @include keyframes(#{$nameSpace}-icon-drop) { 0% { opacity: 0; } 50% { opacity: 0; @include prefixed(transform, translateY(-100%)); } 51%, 100% { opacity: 1; } } /* Icon Drop */ @mixin icon-drop { @include hacks(); .hvr-icon { @include prefixed(transform, translateZ(0)); } &:hover, &:focus, &:active { .hvr-icon { opacity: 0; @include prefixed(transition-duration, #{$mediumDuration}); @include prefixed(animation-name, #{$nameSpace}-icon-drop); @include prefixed(animation-duration, #{$slowDuration}); @include prefixed(animation-delay, #{$mediumDuration}); @include prefixed(animation-fill-mode, forwards); @include prefixed(animation-timing-function, ease-in-out); @include prefixed(animation-timing-function, cubic-bezier(.52,1.64,.37,.66)); } } } ================================================ FILE: scss/effects/icons/_icon-fade.scss ================================================ /* Icon Fade */ @mixin icon-fade { @include hacks(); .hvr-icon { @include prefixed(transform, translateZ(0)); @include prefixed(transition-duration, .5s); @include prefixed(transition-property, color); } &:hover, &:focus, &:active { .hvr-icon { color: #0F9E5E; } } } ================================================ FILE: scss/effects/icons/_icon-float-away.scss ================================================ /* Icon Float Away */ @include keyframes(#{$nameSpace}-icon-float-away) { 0% { opacity: 1; } 100% { opacity: 0; @include prefixed(transform, translateY(-1em)); } } /* Icon Float Away */ @mixin icon-float-away { @include hacks(); .hvr-icon { @include prefixed(transform, translateZ(0)); @include prefixed(animation-duration, #{$slowDuration}); @include prefixed(animation-fill-mode, forwards); } &:hover, &:focus, &:active { .hvr-icon { @include prefixed(animation-name, #{$nameSpace}-icon-float-away); @include prefixed(animation-timing-function, ease-out); } } } ================================================ FILE: scss/effects/icons/_icon-float.scss ================================================ /* Icon Float */ @mixin icon-float { @include hacks(); @include prefixed(transition-duration, $mediumDuration); .hvr-icon { @include prefixed(transform, translateZ(0)); @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-property, transform); @include prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { .hvr-icon { @include prefixed(transform, translateY(-4px)); } } } ================================================ FILE: scss/effects/icons/_icon-forward.scss ================================================ /* Icon Forward */ @mixin icon-forward { @include hacks(); @include prefixed(transition-duration, $fastDuration); .hvr-icon { @include prefixed(transform, translateZ(0)); @include prefixed(transition-duration, $fastDuration); @include prefixed(transition-property, transform); @include prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { .hvr-icon { @include prefixed(transform, translateX(4px)); } } } ================================================ FILE: scss/effects/icons/_icon-grow-rotate.scss ================================================ /* Icon Grow Rotate */ @mixin icon-grow-rotate { $duration: $mediumDuration; @include hacks(); @include prefixed(transition-duration, $duration); .hvr-icon { @include prefixed(transform, translateZ(0)); @include prefixed(transition-duration, $duration); @include prefixed(transition-property, transform); @include prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { .hvr-icon { @include prefixed(transform, scale(1.5) rotate(12deg)); } } } ================================================ FILE: scss/effects/icons/_icon-grow.scss ================================================ /* Icon Grow */ @mixin icon-grow { @include hacks(); @include prefixed(transition-duration, $mediumDuration); .hvr-icon { @include prefixed(transform, translateZ(0)); @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-property, transform); @include prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { .hvr-icon { @include prefixed(transform, scale(1.3) translateZ(0)); } } } ================================================ FILE: scss/effects/icons/_icon-hang.scss ================================================ /* Icon Hang */ @include keyframes(#{$nameSpace}-icon-hang) { 0% { @include prefixed(transform, translateY(6px)); } 50% { @include prefixed(transform, translateY(2px)); } 100% { @include prefixed(transform, translateY(6px)); } } @include keyframes(#{$nameSpace}-icon-hang-sink) { 100% { @include prefixed(transform, translateY(6px)); } } @mixin icon-hang { @include hacks(); @include prefixed(transition-duration, $mediumDuration); .hvr-icon { @include prefixed(transform, translateZ(0)); } &:hover, &:focus, &:active { .hvr-icon { @include prefixed(animation-name, "#{$nameSpace}-icon-hang-sink, #{$nameSpace}-icon-hang"); @include prefixed(animation-duration, ".3s, 1.5s"); @include prefixed(animation-delay, "0s, .3s"); @include prefixed(animation-timing-function, "ease-out, ease-in-out"); @include prefixed(animation-iteration-count, "1, infinite"); @include prefixed(animation-fill-mode, "forwards"); @include prefixed(animation-direction, "normal, alternate"); } } } ================================================ FILE: scss/effects/icons/_icon-pop.scss ================================================ /* Icon Pop */ @include keyframes(#{$nameSpace}-icon-pop) { 50% { @include prefixed(transform, scale(1.5)); } } @mixin icon-pop { @include hacks(); @include prefixed(transition-duration, $mediumDuration); .hvr-icon { @include prefixed(transform, translateZ(0)); @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-property, transform); @include prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { .hvr-icon { @include prefixed(animation-name, #{$nameSpace}-icon-pop); @include prefixed(animation-duration, $mediumDuration); @include prefixed(animation-timing-function, linear); @include prefixed(animation-iteration-count, 1); } } } ================================================ FILE: scss/effects/icons/_icon-pulse-grow.scss ================================================ /* Icon Pulse Grow */ @include keyframes(#{$nameSpace}-icon-pulse-grow) { to { @include prefixed(transform, scale(1.3)); } } @mixin icon-pulse-grow { @include hacks(); .hvr-icon { @include prefixed(transform, translateZ(0)); @include prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { .hvr-icon { @include prefixed(animation-name, #{$nameSpace}-icon-pulse-grow); @include prefixed(animation-duration, $mediumDuration); @include prefixed(animation-timing-function, linear); @include prefixed(animation-iteration-count, infinite); @include prefixed(animation-direction, alternate); } } } ================================================ FILE: scss/effects/icons/_icon-pulse-shrink.scss ================================================ /* Icon Pulse Shrink */ @include keyframes(#{$nameSpace}-icon-pulse-shrink) { to { @include prefixed(transform, scale(.8)); } } @mixin icon-pulse-shrink { @include hacks(); .hvr-icon { @include prefixed(transform, translateZ(0)); @include prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { .hvr-icon { @include prefixed(animation-name, #{$nameSpace}-icon-pulse-shrink); @include prefixed(animation-duration, $mediumDuration); @include prefixed(animation-timing-function, linear); @include prefixed(animation-iteration-count, infinite); @include prefixed(animation-direction, alternate); } } } ================================================ FILE: scss/effects/icons/_icon-pulse.scss ================================================ /* Icon Pulse */ @include keyframes(#{$nameSpace}-icon-pulse) { 25% { @include prefixed(transform, scale(1.3)); } 75% { @include prefixed(transform, scale(.8)); } } @mixin icon-pulse { @include hacks(); .hvr-icon { @include prefixed(transform, translateZ(0)); @include prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { .hvr-icon { @include prefixed(animation-name, #{$nameSpace}-icon-pulse); @include prefixed(animation-duration, 1s); @include prefixed(animation-timing-function, linear); @include prefixed(animation-iteration-count, infinite); } } } ================================================ FILE: scss/effects/icons/_icon-push.scss ================================================ /* Icon Push */ @include keyframes(#{$nameSpace}-icon-push) { 50% { @include prefixed(transform, scale(.5)); } } @mixin icon-push { @include hacks(); @include prefixed(transition-duration, $mediumDuration); .hvr-icon { @include prefixed(transform, translateZ(0)); @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-property, transform); @include prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { .hvr-icon { @include prefixed(animation-name, #{$nameSpace}-icon-push); @include prefixed(animation-duration, $mediumDuration); @include prefixed(animation-timing-function, linear); @include prefixed(animation-iteration-count, 1); } } } ================================================ FILE: scss/effects/icons/_icon-rotate.scss ================================================ /* Icon Rotate */ @mixin icon-rotate { $duration: $mediumDuration; @include hacks(); @include prefixed(transition-duration, $duration); .hvr-icon { @include prefixed(transform, translateZ(0)); @include prefixed(transition-duration, $duration); @include prefixed(transition-property, transform); @include prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { .hvr-icon { @include prefixed(transform, rotate(20deg)); } } } ================================================ FILE: scss/effects/icons/_icon-shrink.scss ================================================ /* Icon Shrink */ @mixin icon-shrink { @include hacks(); @include prefixed(transition-duration, $mediumDuration); .hvr-icon { @include prefixed(transform, translateZ(0)); @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-property, transform); @include prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { .hvr-icon { @include prefixed(transform, scale(.8)); } } } ================================================ FILE: scss/effects/icons/_icon-sink-away.scss ================================================ /* Icon Sink Away */ @include keyframes(#{$nameSpace}-icon-sink-away) { 0% { opacity: 1; } 100% { opacity: 0; @include prefixed(transform, translateY(1em)); } } /* Icon Sink Away */ @mixin icon-sink-away { @include hacks(); .hvr-icon { @include prefixed(transform, translateZ(0)); @include prefixed(animation-duration, #{$slowDuration}); @include prefixed(animation-fill-mode, forwards); } &:hover, &:focus, &:active { .hvr-icon { @include prefixed(animation-name, #{$nameSpace}-icon-sink-away); @include prefixed(animation-timing-function, ease-out); } } } ================================================ FILE: scss/effects/icons/_icon-sink.scss ================================================ /* Icon Sink */ @mixin icon-sink { @include hacks(); @include prefixed(transition-duration, $mediumDuration); .hvr-icon { @include prefixed(transform, translateZ(0)); @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-property, transform); @include prefixed(transition-timing-function, ease-out); } &:hover, &:focus, &:active { .hvr-icon { @include prefixed(transform, translateY(4px)); } } } ================================================ FILE: scss/effects/icons/_icon-spin.scss ================================================ /* Icon Spin */ @mixin icon-spin { @include hacks(); .hvr-icon { @include prefixed(transition-duration, 1s); @include prefixed(transition-property, transform); @include prefixed(transition-timing-function, ease-in-out); } &:hover, &:focus, &:active { .hvr-icon { @include prefixed(transform, rotate(360deg)); } } } ================================================ FILE: scss/effects/icons/_icon-up.scss ================================================ /* Icon Up */ @include keyframes(#{$nameSpace}-icon-up) { 0%, 50%, 100% { @include prefixed(transform, translateY(0)); } 25%, 75% { @include prefixed(transform, translateY(-6px)); } } /* Icon Up */ @mixin icon-up { @include hacks(); .hvr-icon { @include prefixed(transform, translateZ(0)); } &:hover, &:focus, &:active { .hvr-icon { @include prefixed(animation-name, #{$nameSpace}-icon-up); @include prefixed(animation-duration, .75s); @include prefixed(animation-timing-function, ease-out); } } } ================================================ FILE: scss/effects/icons/_icon-wobble-horizontal.scss ================================================ /* Icon Wobble Horizontal */ @include keyframes(#{$nameSpace}-icon-wobble-horizontal) { 16.65% { @include prefixed(transform, translateX(6px)); } 33.3% { @include prefixed(transform, translateX(-5px)); } 49.95% { @include prefixed(transform, translateX(4px)); } 66.6% { @include prefixed(transform, translateX(-2px)); } 83.25% { @include prefixed(transform, translateX(1px)); } 100% { @include prefixed(transform, translateX(0)); } } @mixin icon-wobble-horizontal { @include hacks(); @include prefixed(transition-duration, $mediumDuration); .hvr-icon { @include prefixed(transform, translateZ(0)); } &:hover, &:focus, &:active { .hvr-icon { @include prefixed(animation-name, #{$nameSpace}-icon-wobble-horizontal); @include prefixed(animation-duration, 1s); @include prefixed(animation-timing-function, ease-in-out); @include prefixed(animation-iteration-count, 1); } } } ================================================ FILE: scss/effects/icons/_icon-wobble-vertical.scss ================================================ /* Icon Wobble Vertical */ @include keyframes(#{$nameSpace}-icon-wobble-vertical) { 16.65% { @include prefixed(transform, translateY(6px)); } 33.3% { @include prefixed(transform, translateY(-5px)); } 49.95% { @include prefixed(transform, translateY(4px)); } 66.6% { @include prefixed(transform, translateY(-2px)); } 83.25% { @include prefixed(transform, translateY(1px)); } 100% { @include prefixed(transform, translateY(0)); } } @mixin icon-wobble-vertical { @include hacks(); @include prefixed(transition-duration, $mediumDuration); .hvr-icon { @include prefixed(transform, translateZ(0)); } &:hover, &:focus, &:active { .hvr-icon { @include prefixed(animation-name, #{$nameSpace}-icon-wobble-vertical); @include prefixed(animation-duration, 1s); @include prefixed(animation-timing-function, ease-in-out); @include prefixed(animation-iteration-count, 1); } } } ================================================ FILE: scss/effects/shadow-and-glow-transitions/_box-shadow-inset.scss ================================================ /* Box Shadow Inset */ @mixin box-shadow-inset { @include hacks(); @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-property, box-shadow); box-shadow: inset 0 0 0 $shadowColor, 0 0 1px rgba(0, 0, 0, 0); /* Hack to improve aliasing on mobile/tablet devices */ &:hover, &:focus, &:active { box-shadow: inset 2px 2px 2px $shadowColor, 0 0 1px rgba(0, 0, 0, 0); /* Hack to improve aliasing on mobile/tablet devices */ } } ================================================ FILE: scss/effects/shadow-and-glow-transitions/_box-shadow-outset.scss ================================================ /* Box Shadow Outset */ @mixin box-shadow-outset { @include hacks(); @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-property, box-shadow); &:hover, &:focus, &:active { box-shadow: 2px 2px 2px $shadowColor; } } ================================================ FILE: scss/effects/shadow-and-glow-transitions/_float-shadow.scss ================================================ /* Float Shadow */ @mixin float-shadow { @include hacks(); position: relative; @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-property, transform); &:before { pointer-events: none; position: absolute; z-index: -1; content: ''; top: 100%; left: 5%; height: 10px; width: 90%; opacity: 0; background: -webkit-radial-gradient(center, ellipse, rgba(0,0,0,.35) 0%, rgba(0, 0, 0, 0) 80%); background: radial-gradient(ellipse at center, rgba(0,0,0,.35) 0%,rgba(0,0,0,0) 80%); /* W3C */ @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-property, "transform, opacity"); } &:hover, &:focus, &:active { @include prefixed(transform, translateY(-5px)); /* move the element up by 5px */ &:before { opacity: 1; @include prefixed(transform, translateY(5px)); /* move the element down by 5px (it will stay in place because it's attached to the element that also moves up 5px) */ } } } ================================================ FILE: scss/effects/shadow-and-glow-transitions/_glow.scss ================================================ /* Glow */ @mixin glow { @include hacks(); @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-property, box-shadow); &:hover, &:focus, &:active { box-shadow: 0 0 8px $shadowColor; } } ================================================ FILE: scss/effects/shadow-and-glow-transitions/_grow-shadow.scss ================================================ /* Grow Shadow */ @mixin grow-shadow { @include hacks(); @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-property, "box-shadow, transform"); &:hover, &:focus, &:active { box-shadow: 0 10px 10px -10px rgba(0, 0, 0, 0.5); @include prefixed(transform, scale(1.1)); } } ================================================ FILE: scss/effects/shadow-and-glow-transitions/_shadow-radial.scss ================================================ /* Shadow Radial */ @mixin shadow-radial { @include hacks(); position: relative; &:before, &:after { pointer-events: none; position: absolute; content: ''; left: 0; width: 100%; box-sizing: border-box; background-repeat: no-repeat; height: 5px; opacity: 0; @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-property, opacity); } &:before { bottom: 100%; background: -webkit-radial-gradient(50% 150%, ellipse, $shadowColor 0%, rgba(0, 0, 0, 0) 80%); background: radial-gradient(ellipse at 50% 150%, $shadowColor 0%, rgba(0, 0, 0, 0) 80%); } &:after { top: 100%; background: -webkit-radial-gradient(50% -50%, ellipse, $shadowColor 0%, rgba(0, 0, 0, 0) 80%); background: radial-gradient(ellipse at 50% -50%, $shadowColor 0%, rgba(0, 0, 0, 0) 80%); } &:hover:before, &:focus:before, &:active:before, &:hover:after, &:focus:after, &:active:after { opacity: 1; } } ================================================ FILE: scss/effects/shadow-and-glow-transitions/_shadow.scss ================================================ /* Shadow */ @mixin shadow { @include hacks(); @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-property, box-shadow); &:hover, &:focus, &:active { box-shadow: 0 10px 10px -10px rgba(0, 0, 0, 0.5); } } ================================================ FILE: scss/effects/speech-bubbles/_bubble-bottom.scss ================================================ /* Bubble Bottom */ @mixin bubble-bottom { @include hacks(); position: relative; &:before { pointer-events: none; position: absolute; z-index: -1; content: ''; border-style: solid; @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-property, transform); left: calc(50% - #{$tipWidth}); bottom: 0; border-width: $tipHeight $tipWidth 0 $tipWidth; border-color: $tipColor transparent transparent transparent; } &:hover:before, &:focus:before, &:active:before { @include prefixed(transform, translateY($tipHeight)); } } ================================================ FILE: scss/effects/speech-bubbles/_bubble-float-bottom.scss ================================================ /* Bubble Float Bottom */ @mixin bubble-float-bottom { @include hacks(); position: relative; @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-property, transform); &:before { position: absolute; z-index: -1; content: ''; left: calc(50% - #{$tipWidth}); bottom: 0; border-style: solid; border-width: $tipHeight $tipWidth 0 $tipWidth; border-color: $tipColor transparent transparent transparent; @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-property, transform); } &:hover, &:focus, &:active { @include prefixed(transform, translateY(-($tipHeight))); &:before { @include prefixed(transform, translateY($tipHeight)); } } } ================================================ FILE: scss/effects/speech-bubbles/_bubble-float-left.scss ================================================ /* Bubble Float Left */ @mixin bubble-float-left { @include hacks(); position: relative; @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-property, transform); &:before { position: absolute; z-index: -1; content: ''; top: calc(50% - #{$tipHeight}); left: 0; border-style: solid; border-width: $tipHeight $tipWidth $tipHeight 0; border-color: transparent $tipColor transparent transparent; @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-property, transform); } &:hover, &:focus, &:active { @include prefixed(transform, translateX($tipWidth)); &:before { @include prefixed(transform, translateX(-($tipWidth))); } } } ================================================ FILE: scss/effects/speech-bubbles/_bubble-float-right.scss ================================================ /* Bubble Float Right */ @mixin bubble-float-right { @include hacks(); position: relative; @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-property, transform); &:before { position: absolute; z-index: -1; top: calc(50% - #{$tipHeight}); right: 0; content: ''; border-style: solid; border-width: $tipHeight 0 $tipHeight $tipWidth; border-color: transparent transparent transparent $tipColor; @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-property, transform); } &:hover, &:focus, &:active { @include prefixed(transform, translateX(-($tipWidth))); &:before { @include prefixed(transform, translateX($tipWidth)); } } } ================================================ FILE: scss/effects/speech-bubbles/_bubble-float-top.scss ================================================ /* Bubble Float Top */ @mixin bubble-float-top { @include hacks(); position: relative; @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-property, transform); &:before { position: absolute; z-index: -1; content: ''; left: calc(50% - #{$tipWidth}); top: 0; border-style: solid; border-width: 0 $tipWidth $tipHeight $tipWidth; border-color: transparent transparent $tipColor transparent; @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-property, transform); } &:hover, &:focus, &:active { @include prefixed(transform, translateY($tipHeight)); &:before { @include prefixed(transform, translateY(-($tipHeight))); } } } ================================================ FILE: scss/effects/speech-bubbles/_bubble-left.scss ================================================ /* Bubble Left */ @mixin bubble-left { @include hacks(); position: relative; &:before { pointer-events: none; position: absolute; z-index: -1; content: ''; border-style: solid; @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-property, transform); top: calc(50% - #{$tipHeight}); left: 0; border-width: $tipHeight $tipWidth $tipHeight 0; border-color: transparent $tipColor transparent transparent; } &:hover:before, &:focus:before, &:active:before { @include prefixed(transform, translateX(-($tipWidth))); } } ================================================ FILE: scss/effects/speech-bubbles/_bubble-right.scss ================================================ /* Bubble Right */ @mixin bubble-right { @include hacks(); position: relative; &:before { pointer-events: none; position: absolute; z-index: -1; content: ''; border-style: solid; @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-property, transform); top: calc(50% - #{$tipHeight}); right: 0; border-width: $tipHeight 0 $tipHeight $tipWidth; border-color: transparent transparent transparent $tipColor; } &:hover:before, &:focus:before, &:active:before { @include prefixed(transform, translateX($tipWidth)); } } ================================================ FILE: scss/effects/speech-bubbles/_bubble-top.scss ================================================ /* Bubble Top */ @mixin bubble-top { @include hacks(); position: relative; &:before { pointer-events: none; position: absolute; z-index: -1; content: ''; border-style: solid; @include prefixed(transition-duration, $mediumDuration); @include prefixed(transition-property, transform); left: calc(50% - #{$tipWidth}); top: 0; border-width: 0 $tipWidth $tipHeight $tipWidth; border-color: transparent transparent $tipColor transparent; } &:hover:before, &:focus:before, &:active:before { @include prefixed(transform, translateY(-($tipHeight))); } } ================================================ FILE: scss/hover.scss ================================================ /*! * Hover.css (http://ianlunn.github.io/Hover/) * Version: 2.3.2 * Author: Ian Lunn @IanLunn * Author URL: http://ianlunn.co.uk/ * Github: https://github.com/IanLunn/Hover * Hover.css Copyright Ian Lunn 2017. Generated with Sass. */ @import "options"; @import "mixins"; @import "hacks"; /* 2D TRANSITIONS */ @import "effects/2d-transitions/grow"; @if $includeClasses { .#{$nameSpace}-grow { @include grow(); } } @import "effects/2d-transitions/shrink"; @if $includeClasses { .#{$nameSpace}-shrink { @include shrink(); } } @import "effects/2d-transitions/pulse"; @if $includeClasses { .#{$nameSpace}-pulse { @include pulse(); } } @import "effects/2d-transitions/pulse-grow"; @if $includeClasses { .#{$nameSpace}-pulse-grow { @include pulse-grow(); } } @import "effects/2d-transitions/pulse-shrink"; @if $includeClasses { .#{$nameSpace}-pulse-shrink { @include pulse-shrink(); } } @import "effects/2d-transitions/push"; @if $includeClasses { .#{$nameSpace}-push { @include push(); } } @import "effects/2d-transitions/pop"; @if $includeClasses { .#{$nameSpace}-pop { @include pop(); } } @import "effects/2d-transitions/bounce-in"; @if $includeClasses { .#{$nameSpace}-bounce-in { @include bounce-in(); } } @import "effects/2d-transitions/bounce-out"; @if $includeClasses { .#{$nameSpace}-bounce-out { @include bounce-out(); } } @import "effects/2d-transitions/rotate"; @if $includeClasses { .#{$nameSpace}-rotate { @include rotate(); } } @import "effects/2d-transitions/grow-rotate"; @if $includeClasses { .#{$nameSpace}-grow-rotate { @include grow-rotate(); } } @import "effects/2d-transitions/float"; @if $includeClasses { .#{$nameSpace}-float { @include float(); } } @import "effects/2d-transitions/sink"; @if $includeClasses { .#{$nameSpace}-sink { @include sink(); } } @import "effects/2d-transitions/bob"; @if $includeClasses { .#{$nameSpace}-bob { @include bob(); } } @import "effects/2d-transitions/hang"; @if $includeClasses { .#{$nameSpace}-hang { @include hang(); } } @import "effects/2d-transitions/skew"; @if $includeClasses { .#{$nameSpace}-skew { @include skew(); } } @import "effects/2d-transitions/skew-forward"; @if $includeClasses { .#{$nameSpace}-skew-forward { @include skew-forward(); } } @import "effects/2d-transitions/skew-backward"; @if $includeClasses { .#{$nameSpace}-skew-backward { @include skew-backward(); } } @import "effects/2d-transitions/wobble-vertical"; @if $includeClasses { .#{$nameSpace}-wobble-vertical { @include wobble-vertical(); } } @import "effects/2d-transitions/wobble-horizontal"; @if $includeClasses { .#{$nameSpace}-wobble-horizontal { @include wobble-horizontal(); } } @import "effects/2d-transitions/wobble-to-bottom-right"; @if $includeClasses { .#{$nameSpace}-wobble-to-bottom-right { @include wobble-to-bottom-right(); } } @import "effects/2d-transitions/wobble-to-top-right"; @if $includeClasses { .#{$nameSpace}-wobble-to-top-right { @include wobble-to-top-right(); } } @import "effects/2d-transitions/wobble-top"; @if $includeClasses { .#{$nameSpace}-wobble-top { @include wobble-top(); } } @import "effects/2d-transitions/wobble-bottom"; @if $includeClasses { .#{$nameSpace}-wobble-bottom { @include wobble-bottom(); } } @import "effects/2d-transitions/wobble-skew"; @if $includeClasses { .#{$nameSpace}-wobble-skew { @include wobble-skew(); } } @import "effects/2d-transitions/buzz"; @if $includeClasses { .#{$nameSpace}-buzz { @include buzz(); } } @import "effects/2d-transitions/buzz-out"; @if $includeClasses { .#{$nameSpace}-buzz-out { @include buzz-out(); } } @import "effects/2d-transitions/forward"; @if $includeClasses { .#{$nameSpace}-forward { @include forward(); } } @import "effects/2d-transitions/backward"; @if $includeClasses { .#{$nameSpace}-backward { @include backward(); } } /* BACKGROUND TRANSITIONS */ @import "effects/background-transitions/fade"; @if $includeClasses { .#{$nameSpace}-fade { @include fade(); } } @import "effects/background-transitions/back-pulse"; @if $includeClasses { .#{$nameSpace}-back-pulse { @include back-pulse(); } } @import "effects/background-transitions/sweep-to-right"; @if $includeClasses { .#{$nameSpace}-sweep-to-right { @include sweep-to-right(); } } @import "effects/background-transitions/sweep-to-left"; @if $includeClasses { .#{$nameSpace}-sweep-to-left { @include sweep-to-left(); } } @import "effects/background-transitions/sweep-to-bottom"; @if $includeClasses { .#{$nameSpace}-sweep-to-bottom { @include sweep-to-bottom(); } } @import "effects/background-transitions/sweep-to-top"; @if $includeClasses { .#{$nameSpace}-sweep-to-top { @include sweep-to-top(); } } @import "effects/background-transitions/bounce-to-right"; @if $includeClasses { .#{$nameSpace}-bounce-to-right { @include bounce-to-right(); } } @import "effects/background-transitions/bounce-to-left"; @if $includeClasses { .#{$nameSpace}-bounce-to-left { @include bounce-to-left(); } } @import "effects/background-transitions/bounce-to-bottom"; @if $includeClasses { .#{$nameSpace}-bounce-to-bottom { @include bounce-to-bottom(); } } @import "effects/background-transitions/bounce-to-top"; @if $includeClasses { .#{$nameSpace}-bounce-to-top { @include bounce-to-top(); } } @import "effects/background-transitions/radial-out"; @if $includeClasses { .#{$nameSpace}-radial-out { @include radial-out(); } } @import "effects/background-transitions/radial-in"; @if $includeClasses { .#{$nameSpace}-radial-in { @include radial-in(); } } @import "effects/background-transitions/rectangle-in"; @if $includeClasses { .#{$nameSpace}-rectangle-in { @include rectangle-in(); } } @import "effects/background-transitions/rectangle-out"; @if $includeClasses { .#{$nameSpace}-rectangle-out { @include rectangle-out(); } } @import "effects/background-transitions/shutter-in-horizontal"; @if $includeClasses { .#{$nameSpace}-shutter-in-horizontal { @include shutter-in-horizontal(); } } @import "effects/background-transitions/shutter-out-horizontal"; @if $includeClasses { .#{$nameSpace}-shutter-out-horizontal { @include shutter-out-horizontal(); } } @import "effects/background-transitions/shutter-in-vertical"; @if $includeClasses { .#{$nameSpace}-shutter-in-vertical { @include shutter-in-vertical(); } } @import "effects/background-transitions/shutter-out-vertical"; @if $includeClasses { .#{$nameSpace}-shutter-out-vertical { @include shutter-out-vertical(); } } /* BORDER TRANSITIONS */ @import "effects/border-transitions/border-fade"; @if $includeClasses { .#{$nameSpace}-border-fade { @include border-fade(); } } @import "effects/border-transitions/hollow"; @if $includeClasses { .#{$nameSpace}-hollow { @include hollow(); } } @import "effects/border-transitions/trim"; @if $includeClasses { .#{$nameSpace}-trim { @include trim(); } } @import "effects/border-transitions/ripple-out"; @if $includeClasses { .#{$nameSpace}-ripple-out { @include ripple-out(); } } @import "effects/border-transitions/ripple-in"; @if $includeClasses { .#{$nameSpace}-ripple-in { @include ripple-in(); } } @import "effects/border-transitions/outline-out"; @if $includeClasses { .#{$nameSpace}-outline-out { @include outline-out(); } } @import "effects/border-transitions/outline-in"; @if $includeClasses { .#{$nameSpace}-outline-in { @include outline-in(); } } @import "effects/border-transitions/round-corners"; @if $includeClasses { .#{$nameSpace}-round-corners { @include round-corners(); } } @import "effects/border-transitions/underline-from-left"; @if $includeClasses { .#{$nameSpace}-underline-from-left { @include underline-from-left(); } } @import "effects/border-transitions/underline-from-center"; @if $includeClasses { .#{$nameSpace}-underline-from-center { @include underline-from-center(); } } @import "effects/border-transitions/underline-from-right"; @if $includeClasses { .#{$nameSpace}-underline-from-right { @include underline-from-right(); } } @import "effects/border-transitions/overline-from-left"; @if $includeClasses { .#{$nameSpace}-overline-from-left { @include overline-from-left(); } } @import "effects/border-transitions/overline-from-center"; @if $includeClasses { .#{$nameSpace}-overline-from-center { @include overline-from-center(); } } @import "effects/border-transitions/overline-from-right"; @if $includeClasses { .#{$nameSpace}-overline-from-right { @include overline-from-right(); } } @import "effects/border-transitions/reveal"; @if $includeClasses { .#{$nameSpace}-reveal { @include reveal(); } } @import "effects/border-transitions/underline-reveal"; @if $includeClasses { .#{$nameSpace}-underline-reveal { @include underline-reveal(); } } @import "effects/border-transitions/overline-reveal"; @if $includeClasses { .#{$nameSpace}-overline-reveal { @include overline-reveal(); } } /* SHADOW/GLOW TRANSITIONS */ @import "effects/shadow-and-glow-transitions/glow"; @if $includeClasses { .#{$nameSpace}-glow { @include glow(); } } @import "effects/shadow-and-glow-transitions/shadow"; @if $includeClasses { .#{$nameSpace}-shadow { @include shadow(); } } @import "effects/shadow-and-glow-transitions/grow-shadow"; @if $includeClasses { .#{$nameSpace}-grow-shadow { @include grow-shadow(); } } @import "effects/shadow-and-glow-transitions/box-shadow-outset"; @if $includeClasses { .#{$nameSpace}-box-shadow-outset { @include box-shadow-outset(); } } @import "effects/shadow-and-glow-transitions/box-shadow-inset"; @if $includeClasses { .#{$nameSpace}-box-shadow-inset { @include box-shadow-inset(); } } @import "effects/shadow-and-glow-transitions/float-shadow"; @if $includeClasses { .#{$nameSpace}-float-shadow { @include float-shadow(); } } @import "effects/shadow-and-glow-transitions/shadow-radial"; @if $includeClasses { .#{$nameSpace}-shadow-radial { @include shadow-radial(); } } /* SPEECH BUBBLES */ @import "effects/speech-bubbles/bubble-top"; @if $includeClasses { .#{$nameSpace}-bubble-top { @include bubble-top(); } } @import "effects/speech-bubbles/bubble-right"; @if $includeClasses { .#{$nameSpace}-bubble-right { @include bubble-right(); } } @import "effects/speech-bubbles/bubble-bottom"; @if $includeClasses { .#{$nameSpace}-bubble-bottom { @include bubble-bottom(); } } @import "effects/speech-bubbles/bubble-left"; @if $includeClasses { .#{$nameSpace}-bubble-left { @include bubble-left(); } } @import "effects/speech-bubbles/bubble-float-top"; @if $includeClasses { .#{$nameSpace}-bubble-float-top { @include bubble-float-top(); } } @import "effects/speech-bubbles/bubble-float-right"; @if $includeClasses { .#{$nameSpace}-bubble-float-right { @include bubble-float-right(); } } @import "effects/speech-bubbles/bubble-float-bottom"; @if $includeClasses { .#{$nameSpace}-bubble-float-bottom { @include bubble-float-bottom(); } } @import "effects/speech-bubbles/bubble-float-left"; @if $includeClasses { .#{$nameSpace}-bubble-float-left { @include bubble-float-left(); } } /* ICONS */ @import "effects/icons/icon-back"; @if $includeClasses { .#{$nameSpace}-icon-back { @include icon-back(); } } @import "effects/icons/icon-forward"; @if $includeClasses { .#{$nameSpace}-icon-forward { @include icon-forward(); } } @import "effects/icons/icon-down"; @if $includeClasses { .#{$nameSpace}-icon-down { @include icon-down(); } } @import "effects/icons/icon-up"; @if $includeClasses { .#{$nameSpace}-icon-up { @include icon-up(); } } @import "effects/icons/icon-spin"; @if $includeClasses { .#{$nameSpace}-icon-spin { @include icon-spin(); } } @import "effects/icons/icon-drop"; @if $includeClasses { .#{$nameSpace}-icon-drop { @include icon-drop(); } } @import "effects/icons/icon-fade"; @if $includeClasses { .#{$nameSpace}-icon-fade { @include icon-fade(); } } @import "effects/icons/icon-float-away"; @if $includeClasses { .#{$nameSpace}-icon-float-away { @include icon-float-away(); } } @import "effects/icons/icon-sink-away"; @if $includeClasses { .#{$nameSpace}-icon-sink-away { @include icon-sink-away(); } } @import "effects/icons/icon-grow"; @if $includeClasses { .#{$nameSpace}-icon-grow { @include icon-grow(); } } @import "effects/icons/icon-shrink"; @if $includeClasses { .#{$nameSpace}-icon-shrink { @include icon-shrink(); } } @import "effects/icons/icon-pulse"; @if $includeClasses { .#{$nameSpace}-icon-pulse { @include icon-pulse(); } } @import "effects/icons/icon-pulse-grow"; @if $includeClasses { .#{$nameSpace}-icon-pulse-grow { @include icon-pulse-grow(); } } @import "effects/icons/icon-pulse-shrink"; @if $includeClasses { .#{$nameSpace}-icon-pulse-shrink { @include icon-pulse-shrink(); } } @import "effects/icons/icon-push"; @if $includeClasses { .#{$nameSpace}-icon-push { @include icon-push(); } } @import "effects/icons/icon-pop"; @if $includeClasses { .#{$nameSpace}-icon-pop { @include icon-pop(); } } @import "effects/icons/icon-bounce"; @if $includeClasses { .#{$nameSpace}-icon-bounce { @include icon-bounce(); } } @import "effects/icons/icon-rotate"; @if $includeClasses { .#{$nameSpace}-icon-rotate { @include icon-rotate(); } } @import "effects/icons/icon-grow-rotate"; @if $includeClasses { .#{$nameSpace}-icon-grow-rotate { @include icon-grow-rotate(); } } @import "effects/icons/icon-float"; @if $includeClasses { .#{$nameSpace}-icon-float { @include icon-float(); } } @import "effects/icons/icon-sink"; @if $includeClasses { .#{$nameSpace}-icon-sink { @include icon-sink(); } } @import "effects/icons/icon-bob"; @if $includeClasses { .#{$nameSpace}-icon-bob { @include icon-bob(); } } @import "effects/icons/icon-hang"; @if $includeClasses { .#{$nameSpace}-icon-hang { @include icon-hang(); } } @import "effects/icons/icon-wobble-horizontal"; @if $includeClasses { .#{$nameSpace}-icon-wobble-horizontal { @include icon-wobble-horizontal(); } } @import "effects/icons/icon-wobble-vertical"; @if $includeClasses { .#{$nameSpace}-icon-wobble-vertical { @include icon-wobble-vertical(); } } @import "effects/icons/icon-buzz"; @if $includeClasses { .#{$nameSpace}-icon-buzz { @include icon-buzz(); } } @import "effects/icons/icon-buzz-out"; @if $includeClasses { .#{$nameSpace}-icon-buzz-out { @include icon-buzz-out(); } } /* CURLS */ @import "effects/curls/curl-top-left"; @if $includeClasses { .#{$nameSpace}-curl-top-left { @include curl-top-left(); } } @import "effects/curls/curl-top-right"; @if $includeClasses { .#{$nameSpace}-curl-top-right { @include curl-top-right(); } } @import "effects/curls/curl-bottom-right"; @if $includeClasses { .#{$nameSpace}-curl-bottom-right { @include curl-bottom-right(); } } @import "effects/curls/curl-bottom-left"; @if $includeClasses { .#{$nameSpace}-curl-bottom-left { @include curl-bottom-left(); } }