fleet/website/assets/styles/mixins-and-variables/animations.less
Mike McNeil 27eae209fd
Move fleetdm.com into main Fleet repo (#83)
* rename dir

* no need to install website or docs from npm

At some point, would also be nice to be able to exclude assets/ as well, and to only install a pre-built version of Fleet's frontend code

* Bring in fleetdm.com website

From https://github.com/fleetdm/fleetdm.com as of https://github.com/fleetdm/fleetdm.com/releases/tag/v0.0.21

* add procfile for heroku

Using https://github.com/timanovsky/subdir-heroku-buildpack

* avoid getting anybody's hopes up

* Create deploy-fleet-website.yml (#82)

* Create deploy-fleet-website.yml

* Update deploy-fleet-website.yml

* Update deploy-fleet-website.yml

* Update deploy-fleet-website.yml

* update pjs with SPDX-like license expressions.  also fix repo URL

and remove package lock

* Update deploy-fleet-website.yml

* Update deploy-fleet-website.yml

* remove dummy uri

* Dissect deploy script

* Update deploy-fleet-website.yml

* workaround for eslintrc nesting issue

* lint fixes

* forgot the .js

* add per-commit git config

* Update deploy-fleet-website.yml

* might as well remove that

* cleanup

* connect w/ heroku app and have it actually push

* fix bug I introduced in 578a1a01ffb8404aae869e05005e30a6ba2b2a95

* Update deploy-fleet-website.yml

* Update deploy-fleet-website.yml

* Update deploy-fleet-website.yml

* Update deploy-fleet-website.yml

* the beauty, the glory, of javascript

* GH actions don't like "\n"

* Update deploy-fleet-website.yml

* restore \n chars from 0d45e568f693efba7d7072085bc98d72a482d9ae

hoping I was wrong in 0d45e568f693efba7d7072085bc98d72a482d9ae but see also https://github.community/t/what-is-the-correct-character-escaping-for-workflow-command-values-e-g-echo-xxxx/118465/5

* Update deploy-fleet-website.yml

* Update deploy-fleet-website.yml

* Update deploy-fleet-website.yml

* Update deploy-fleet-website.yml

* Update deploy-fleet-website.yml

* Update deploy-fleet-website.yml

* Update deploy-fleet-website.yml

* Update deploy-fleet-website.yml

* Update deploy-fleet-website.yml

* Update deploy-fleet-website.yml

* Update deploy-fleet-website.yml

* Update deploy-fleet-website.yml

* rename script to prevent duplicate building

* Configure the real website

* clean up

* a test of the deploy workflow

* add handbook to npmignore

* I guess you could call this fixing a typo

* point workflow at master branch

* now clearly bogus: this completely unused version string
2020-12-02 14:48:03 -06:00

271 lines
10 KiB
Plaintext
Vendored

.animation-delay(@delay) {
-moz-animation-delay: @delay;
-webkit-animation-delay: @delay;
-ms-animation-delay: @delay;
-o-animation-delay: @delay;
animation-delay: @delay;
}
.animation-name(@name) {
-moz-animation-name: @name;
-webkit-animation-name: @name;
-ms-animation-name: @name;
-o-animation-name: @name;
animation-name: @name;
}
.animation-duration(@duration) {
-moz-animation-duration: @duration;
-webkit-animation-duration: @duration;
-ms-animation-duration: @duration;
-o-animation-duration: @duration;
animation-duration: @duration;
}
.animation-iteration-count(@iteration-count) {
-moz-animation-iteration-count: @iteration-count;
-webkit-animation-iteration-count: @iteration-count;
-ms-animation-iteration-count: @iteration-count;
-o-animation-iteration-count: @iteration-count;
animation-iteration-count: @iteration-count;
}
.animation-direction(@direction) {
-moz-animation-direction: @direction;
-webkit-animation-direction: @direction;
-ms-animation-direction: @direction;
-o-animation-direction: @direction;
animation-direction: @direction;
}
.animation-timing-function(@timingFunction) {
-moz-animation-timing-function: @timingFunction;
-webkit-animation-timing-function: @timingFunction;
-ms-animation-timing-function: @timingFunction;
-o-animation-timing-function: @timingFunction;
animation-timing-function: @timingFunction;
}
.transition (@transition) {
-webkit-transition: @transition;
-moz-transition : @transition;
-ms-transition : @transition;
-o-transition : @transition;
}
.translate (@x, @y:0) {
-webkit-transform: translate(@x, @y);
-moz-transform : translate(@x, @y);
-ms-transform : translate(@x, @y);
-o-transform : translate(@x, @y);
transform : translate(@x, @y);
}
//Animations
.fade-in() {
.animation-name(fade-in);
@-webkit-keyframes fade-in {
0% {opacity: 0;}// lesshint spaceBeforeBrace: false
100% {opacity: 1;}// lesshint spaceBeforeBrace: false
}
@-moz-keyframes fade-in {
0% {opacity: 0;}// lesshint spaceBeforeBrace: false
100% {opacity: 1;}// lesshint spaceBeforeBrace: false
}
@-o-keyframes fade-in {
0% {opacity: 0;}// lesshint spaceBeforeBrace: false
100% {opacity: 1;}// lesshint spaceBeforeBrace: false
}
@keyframes fade-in {
0% {opacity: 0;}// lesshint spaceBeforeBrace: false
100% {opacity: 1;}// lesshint spaceBeforeBrace: false
}
}
.loader(@dot-color: @accent-white) {
display: inline-block;
margin: auto;
.loading-dot {
border-radius: 50%;
background-color: @dot-color;
float: left;
opacity: 0;
width: 16px;
height: 16px;
margin: 5px;
.fade-in();
.animation-duration(1s);
.animation-iteration-count(infinite);
.animation-direction(linear);
&.dot1 {
.animation-delay(0.25s);
}
&.dot2 {
.animation-delay(0.5s);
}
&.dot3 {
.animation-delay(0.75s);
}
&.dot4 {
.animation-delay(1s);
}
}
}
// Special rotation animation for a font awesome-based spinner:
.fa-spinner-rotation() {
-webkit-animation: fa-spinner-rotate 1.5s infinite linear;
animation: fa-spinner-rotate 1.5s infinite linear;
@-webkit-keyframes fa-spinner-rotate {
0% {
-webkit-transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(360deg);
}
}
@keyframes rotate-clockwise {
0% {
-ms-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-ms-transform: rotate(360deg);
transform: rotate(360deg);
}
}
}
.skid() {
.animation-name(skid);
.animation-duration(2.5s);
.animation-iteration-count(infinite);
.animation-timing-function(linear);
@-webkit-keyframes skid {
0% {-webkit-transform: translate(0px, 0px);}// lesshint spaceBeforeBrace: false
10% {-webkit-transform: translate(-1px, -1px);}// lesshint spaceBeforeBrace: false
20% {-webkit-transform: translate(-2px, -2px);}// lesshint spaceBeforeBrace: false
30% {-webkit-transform: translate(-3px, -2px);}// lesshint spaceBeforeBrace: false
40% {-webkit-transform: translate(-4px, -1px);}// lesshint spaceBeforeBrace: false
50% {-webkit-transform: translate(-5px, 0px);}// lesshint spaceBeforeBrace: false
60% {-webkit-transform: translate(-4px, 1px);}// lesshint spaceBeforeBrace: false
70% {-webkit-transform: translate(-3px, 2px);}// lesshint spaceBeforeBrace: false
80% {-webkit-transform: translate(-2px, 2px);}// lesshint spaceBeforeBrace: false
90% {-webkit-transform: translate(-1px, 1px);}// lesshint spaceBeforeBrace: false
100% {-webkit-transform: translate(0, 0px);}// lesshint spaceBeforeBrace: false
}
@-moz-keyframes skid {
0% {-moz-transform: translate(0px, 0px);}// lesshint spaceBeforeBrace: false
10% {-moz-transform: translate(-1px, -1px);}// lesshint spaceBeforeBrace: false
20% {-moz-transform: translate(-2px, -2px);}// lesshint spaceBeforeBrace: false
30% {-moz-transform: translate(-3px, -2px);}// lesshint spaceBeforeBrace: false
40% {-moz-transform: translate(-4px, -1px);}// lesshint spaceBeforeBrace: false
50% {-moz-transform: translate(-5px, 0px);}// lesshint spaceBeforeBrace: false
60% {-moz-transform: translate(-4px, 1px);}// lesshint spaceBeforeBrace: false
70% {-moz-transform: translate(-3px, 2px);}// lesshint spaceBeforeBrace: false
80% {-moz-transform: translate(-2px, 2px);}// lesshint spaceBeforeBrace: false
90% {-moz-transform: translate(-1px, 1px);}// lesshint spaceBeforeBrace: false
100% {-moz-transform: translate(0, 0px);}// lesshint spaceBeforeBrace: false
}
@-o-keyframes skid {
0% {-o-transform: translate(0px, 0px);}// lesshint spaceBeforeBrace: false
10% {-o-transform: translate(-1px, -1px);}// lesshint spaceBeforeBrace: false
20% {-o-transform: translate(-2px, -2px);}// lesshint spaceBeforeBrace: false
30% {-o-transform: translate(-3px, -2px);}// lesshint spaceBeforeBrace: false
40% {-o-transform: translate(-4px, -1px);}// lesshint spaceBeforeBrace: false
50% {-o-transform: translate(-5px, 0px);}// lesshint spaceBeforeBrace: false
60% {-o-transform: translate(-4px, 1px);}// lesshint spaceBeforeBrace: false
70% {-o-transform: translate(-3px, 2px);}// lesshint spaceBeforeBrace: false
80% {-o-transform: translate(-2px, 2px);}// lesshint spaceBeforeBrace: false
90% {-o-transform: translate(-1px, 1px);}// lesshint spaceBeforeBrace: false
100% {-o-transform: translate(0, 0px);}// lesshint spaceBeforeBrace: false
}
@keyframes skid {
0% {transform: translate(0px, 0px);}// lesshint spaceBeforeBrace: false
10% {transform: translate(-1px, -1px);}// lesshint spaceBeforeBrace: false
20% {transform: translate(-2px, -2px);}// lesshint spaceBeforeBrace: false
30% {transform: translate(-3px, -2px);}// lesshint spaceBeforeBrace: false
40% {transform: translate(-4px, -1px);}// lesshint spaceBeforeBrace: false
50% {transform: translate(-5px, 0px);}// lesshint spaceBeforeBrace: false
60% {transform: translate(-4px, 1px);}// lesshint spaceBeforeBrace: false
70% {transform: translate(-3px, 2px);}// lesshint spaceBeforeBrace: false
80% {transform: translate(-2px, 2px);}// lesshint spaceBeforeBrace: false
90% {transform: translate(-1px, 1px);}// lesshint spaceBeforeBrace: false
100% {transform: translate(0, 0px);}// lesshint spaceBeforeBrace: false
}
}
.fly-fade() {
.animation-name(flyfade);
.animation-duration(7s);
.animation-iteration-count(infinite);
.animation-timing-function(linear);
@-webkit-keyframes flyfade {
0% {-webkit-transform: translate(0px, 0px); opacity: 0;}// lesshint spaceBeforeBrace: false
25% { opacity: 1;}// lesshint spaceBeforeBrace: false
50% {-webkit-transform: translate(110px, 0px);}// lesshint spaceBeforeBrace: false
75% { opacity: 1;}// lesshint spaceBeforeBrace: false
100% {-webkit-transform: translate(220px, 0); opacity: 0;}// lesshint spaceBeforeBrace: false
}
@-moz-keyframes flyfade {
0% {-moz-transform: translate(0, 0px); opacity: 0;}// lesshint spaceBeforeBrace: false
25% { opacity: 1;}// lesshint spaceBeforeBrace: false
50% {-moz-transform: translate(110px, 0px); opacity: 1;}// lesshint spaceBeforeBrace: false
75% { opacity: 1;}// lesshint spaceBeforeBrace: false
100% {-moz-transform: translate(220px, 0); opacity: 0;}// lesshint spaceBeforeBrace: false
}
@-o-keyframes flyfade {
0% {-o-transform: translate(0, 0px); opacity: 0;}// lesshint spaceBeforeBrace: false
25% { opacity: 1;}// lesshint spaceBeforeBrace: false
50% {-o-transform: translate(110px, 0px); opacity: 1;}// lesshint spaceBeforeBrace: false
75% { opacity: 1;}// lesshint spaceBeforeBrace: false
100% {-o-transform: translate(220px, 0); opacity: 0;}// lesshint spaceBeforeBrace: false
}
@keyframes flyfade {
0% {transform: translate(0, 0px); opacity: 0;}// lesshint spaceBeforeBrace: false
25% { opacity: 1;}// lesshint spaceBeforeBrace: false
50% {transform: translate(110px, 0px); opacity: 1;}// lesshint spaceBeforeBrace: false
75% { opacity: 1;}// lesshint spaceBeforeBrace: false
100% {transform: translate(220px, 0); opacity: 0;}// lesshint spaceBeforeBrace: false
}
}
.bob() {
.animation-name(bob);
.animation-duration(3.2s);
.animation-iteration-count(infinite);
.animation-timing-function(ease-in-out);
@-webkit-keyframes bob {
0% {-webkit-transform: translate(0px);}// lesshint spaceBeforeBrace: false
50% {-webkit-transform: translatey(-7px);}// lesshint spaceBeforeBrace: false
100% {-webkit-transform: translatey(0px);}// lesshint spaceBeforeBrace: false
}
@-moz-keyframes bob {
0% {-moz-transform: translatey(0px);}// lesshint spaceBeforeBrace: false
50% {-moz-transform: translatey(-7px);}// lesshint spaceBeforeBrace: false
100% {-moz-transform: translatey(0px);}// lesshint spaceBeforeBrace: false
}
@-o-keyframes bob {
0% {-o-transform: translatey(0px);}// lesshint spaceBeforeBrace: false
50% {-o-transform: translatey(-7px);}// lesshint spaceBeforeBrace: false
100% {-o-transform: translatey(0px);}// lesshint spaceBeforeBrace: false
}
@keyframes bob {
0% {transform: translatey(0px);}// lesshint spaceBeforeBrace: false
50% {transform: translatey(-7px);}// lesshint spaceBeforeBrace: false
100% {transform: translatey(0px);}// lesshint spaceBeforeBrace: false
}
}