2022-03-08 15:55:41 +01:00
|
|
|
@import mixins
|
|
|
|
|
|
|
|
// Overlay/content animations
|
|
|
|
|
|
|
|
=keyframes-vex-fadein
|
2024-04-04 14:37:20 +02:00
|
|
|
@keyframes vex-fadein
|
2022-03-08 15:55:41 +01:00
|
|
|
0%
|
|
|
|
opacity: 0
|
|
|
|
100%
|
|
|
|
opacity: 1
|
|
|
|
|
|
|
|
=keyframes-vex-fadeout
|
2024-04-04 14:37:20 +02:00
|
|
|
@keyframes vex-fadeout
|
2022-03-08 15:55:41 +01:00
|
|
|
0%
|
|
|
|
opacity: 1
|
|
|
|
100%
|
|
|
|
opacity: 0
|
|
|
|
|
|
|
|
// Content animations
|
|
|
|
|
|
|
|
=keyframes-vex-flyin
|
2024-04-04 14:37:20 +02:00
|
|
|
@keyframes vex-flyin
|
2022-03-08 15:55:41 +01:00
|
|
|
0%
|
|
|
|
opacity: 0
|
2024-04-04 14:37:20 +02:00
|
|
|
transform: translateY(-40px)
|
2022-03-08 15:55:41 +01:00
|
|
|
100%
|
|
|
|
opacity: 1
|
2024-04-04 14:37:20 +02:00
|
|
|
transform: translateY(0)
|
2022-03-08 15:55:41 +01:00
|
|
|
|
|
|
|
=keyframes-vex-flyout
|
2024-04-04 14:37:20 +02:00
|
|
|
@keyframes vex-flyout
|
2022-03-08 15:55:41 +01:00
|
|
|
0%
|
|
|
|
opacity: 1
|
2024-04-04 14:37:20 +02:00
|
|
|
transform: translateY(0)
|
2022-03-08 15:55:41 +01:00
|
|
|
100%
|
|
|
|
opacity: 0
|
2024-04-04 14:37:20 +02:00
|
|
|
transform: translateY(-40px)
|
2022-03-08 15:55:41 +01:00
|
|
|
|
|
|
|
=keyframes-vex-dropin
|
2024-04-04 14:37:20 +02:00
|
|
|
@keyframes vex-dropin
|
2022-03-08 15:55:41 +01:00
|
|
|
// We start at 0 first and, while hidden
|
|
|
|
// move to -800px, where the animation
|
|
|
|
// really begins. This was necessary because
|
|
|
|
// otherwise, when starting the animation
|
|
|
|
// at -800px, the browser scrolls up 800px
|
|
|
|
// to try to display this object positioned
|
|
|
|
// above the page.
|
|
|
|
// https://github.com/HubSpot/vex/issues/21
|
|
|
|
0%
|
2024-04-04 14:37:20 +02:00
|
|
|
transform: translateY(0)
|
2022-03-08 15:55:41 +01:00
|
|
|
opacity: 0
|
|
|
|
1%
|
2024-04-04 14:37:20 +02:00
|
|
|
transform: translateY(-800px)
|
2022-03-08 15:55:41 +01:00
|
|
|
opacity: 0
|
|
|
|
|
|
|
|
// Real animation begins here
|
|
|
|
2%
|
2024-04-04 14:37:20 +02:00
|
|
|
transform: translateY(-800px)
|
2022-03-08 15:55:41 +01:00
|
|
|
opacity: 1
|
|
|
|
100%
|
2024-04-04 14:37:20 +02:00
|
|
|
transform: translateY(0)
|
2022-03-08 15:55:41 +01:00
|
|
|
opacity: 1
|
|
|
|
|
|
|
|
=keyframes-vex-dropout
|
2024-04-04 14:37:20 +02:00
|
|
|
@keyframes vex-dropout
|
2022-03-08 15:55:41 +01:00
|
|
|
0%
|
2024-04-04 14:37:20 +02:00
|
|
|
transform: translateY(0)
|
2022-03-08 15:55:41 +01:00
|
|
|
100%
|
2024-04-04 14:37:20 +02:00
|
|
|
transform: translateY(-800px)
|
2022-03-08 15:55:41 +01:00
|
|
|
|
|
|
|
=keyframes-vex-slideup
|
2024-04-04 14:37:20 +02:00
|
|
|
@keyframes vex-slideup
|
2022-03-08 15:55:41 +01:00
|
|
|
// We start at 0 first and, while hidden
|
|
|
|
// move to -800px, where the animation
|
|
|
|
// really begins. This was necessary because
|
|
|
|
// otherwise, when starting the animation
|
|
|
|
// at -800px, the browser scrolls up 800px
|
|
|
|
// to try to display this object positioned
|
|
|
|
// above the page.
|
|
|
|
// https://github.com/HubSpot/vex/issues/21
|
|
|
|
0%
|
2024-04-04 14:37:20 +02:00
|
|
|
transform: translateY(0)
|
2022-03-08 15:55:41 +01:00
|
|
|
opacity: 0
|
|
|
|
1%
|
2024-04-04 14:37:20 +02:00
|
|
|
transform: translateY(800px)
|
2022-03-08 15:55:41 +01:00
|
|
|
opacity: 0
|
|
|
|
|
|
|
|
// Real animation begins here
|
|
|
|
2%
|
2024-04-04 14:37:20 +02:00
|
|
|
transform: translateY(800px)
|
2022-03-08 15:55:41 +01:00
|
|
|
opacity: 1
|
|
|
|
100%
|
2024-04-04 14:37:20 +02:00
|
|
|
transform: translateY(0)
|
2022-03-08 15:55:41 +01:00
|
|
|
opacity: 1
|
|
|
|
|
|
|
|
=keyframes-vex-slidedown
|
2024-04-04 14:37:20 +02:00
|
|
|
@keyframes vex-slidedown
|
2022-03-08 15:55:41 +01:00
|
|
|
0%
|
2024-04-04 14:37:20 +02:00
|
|
|
transform: translateY(0)
|
2022-03-08 15:55:41 +01:00
|
|
|
100%
|
2024-04-04 14:37:20 +02:00
|
|
|
transform: translateY(800px)
|
2022-03-08 15:55:41 +01:00
|
|
|
|
|
|
|
=keyframes-vex-flipin-horizontal
|
2024-04-04 14:37:20 +02:00
|
|
|
@keyframes vex-flipin-horizontal
|
2022-03-08 15:55:41 +01:00
|
|
|
0%
|
|
|
|
opacity: 0
|
2024-04-04 14:37:20 +02:00
|
|
|
transform: rotateY(-90deg)
|
2022-03-08 15:55:41 +01:00
|
|
|
100%
|
|
|
|
opacity: 1
|
2024-04-04 14:37:20 +02:00
|
|
|
transform: rotateY(0deg)
|
2022-03-08 15:55:41 +01:00
|
|
|
|
|
|
|
=keyframes-vex-flipout-horizontal
|
2024-04-04 14:37:20 +02:00
|
|
|
@keyframes vex-flipout-horizontal
|
2022-03-08 15:55:41 +01:00
|
|
|
0%
|
|
|
|
opacity: 1
|
2024-04-04 14:37:20 +02:00
|
|
|
transform: rotateY(0deg)
|
2022-03-08 15:55:41 +01:00
|
|
|
100%
|
|
|
|
opacity: 0
|
2024-04-04 14:37:20 +02:00
|
|
|
transform: rotateY(90deg)
|
2022-03-08 15:55:41 +01:00
|
|
|
|
|
|
|
// Spinner animations
|
|
|
|
|
|
|
|
=keyframes-vex-rotation
|
2024-04-04 14:37:20 +02:00
|
|
|
@keyframes vex-rotation
|
2022-03-08 15:55:41 +01:00
|
|
|
0%
|
2024-04-04 14:37:20 +02:00
|
|
|
transform: rotate(0deg)
|
2022-03-08 15:55:41 +01:00
|
|
|
100%
|
2024-04-04 14:37:20 +02:00
|
|
|
transform: rotate(359deg)
|
2022-03-08 15:55:41 +01:00
|
|
|
|
|
|
|
// Button animations
|
|
|
|
|
|
|
|
=keyframes-vex-pulse
|
2024-04-04 14:37:20 +02:00
|
|
|
@keyframes vex-pulse
|
2022-03-08 15:55:41 +01:00
|
|
|
0%
|
2024-04-04 14:37:20 +02:00
|
|
|
box-shadow: inset 0 0 0 300px transparent
|
2022-03-08 15:55:41 +01:00
|
|
|
70%
|
2024-04-04 14:37:20 +02:00
|
|
|
box-shadow: inset 0 0 0 300px rgba(255, 255, 255, .25)
|
2022-03-08 15:55:41 +01:00
|
|
|
100%
|
2024-04-04 14:37:20 +02:00
|
|
|
box-shadow: inset 0 0 0 300px transparent
|