SpinKit
Simple loading spinners animated with CSS. See demo. SpinKit uses hardware accelerated (translate and opacity) CSS animations to create smooth and easily customizable animations.
Usage
Regular CSS
Grab the HTML and CSS for a spinner from the example files, or add SpinKit directly to your project with bower:
$ bower install spinkitor npm:
$ npm install spinkitSCSS
If you're using SCSS you can include specific spinners (rather than all of them) by importing them one by one:
@import '../bower_components/spinkit/scss/spinners/1-rotating-plane', '../bower_components/spinkit/scss/spinners/3-wave';You currently need to use an autoprefixer if you want to support all browsers. If you're compiling your SCSS with gulp you can use gulp-autoprefixer, and grunt-autoprefixer if you use grunt.
Variables that can be overridden are listed in scss/_variables.scss.
Web browser compatibility
CSS animations are supported in the latest version of all major browsers, and browsers with animation support make up almost 90% of all usage. If you need to support IE9 and below, however, this section is for you.
Implementing a fallback spinner
How do you know if you need to provide a fallback? You can easily check for animation support with Modernizr, or manually check for the animation property, and replace the spinner with a GIF if it's not supported:
function browserSupportsCSSProperty(propertyName) { var elm = document.createElement('div'); propertyName = propertyName.toLowerCase(); if (elm.style[propertyName] != undefined) return true; var propertyNameCapital = propertyName.charAt(0).toUpperCase() + propertyName.substr(1), domPrefixes = 'Webkit Moz ms O'.split(' '); for (var i = 0; i < domPrefixes.length; i++) { if (elm.style[domPrefixes[i] + propertyNameCapital] != undefined) return true; } return false; }Use it to check for animation support:
if (!browserSupportsCSSProperty('animation')) { // fallback… }Contributing
See CONTRIBUTING.md for details.