173 lines
3.9 KiB
SCSS
173 lines
3.9 KiB
SCSS
|
/**
|
||
|
* Settings
|
||
|
*/
|
||
|
|
||
|
$sal-animation-duration: 0.2s !default;
|
||
|
$sal-animation-delay: 0s !default;
|
||
|
$sal-slide-offset: 20% !default;
|
||
|
$sal-zoom-in-scale: 0.5 !default;
|
||
|
$sal-zoom-out-scale: 1.1 !default;
|
||
|
$sal-flip-rotate: 91deg !default;
|
||
|
|
||
|
/**
|
||
|
* Easings
|
||
|
*/
|
||
|
|
||
|
$sal-easings: (linear: linear,
|
||
|
ease: ease,
|
||
|
ease-in: ease-in,
|
||
|
ease-out: ease-out,
|
||
|
ease-in-out: ease-in-out,
|
||
|
|
||
|
ease-in-cubic: cubic-bezier(.55, .055, .675, .19),
|
||
|
ease-out-cubic: cubic-bezier(.215, .61, .355, 1),
|
||
|
ease-in-out-cubic: cubic-bezier(.645, .045, .355, 1),
|
||
|
|
||
|
ease-in-circ: cubic-bezier(.6, .04, .98, .335),
|
||
|
ease-out-circ: cubic-bezier(.075, .82, .165, 1),
|
||
|
ease-in-out-circ: cubic-bezier(.785, .135, .15, .86),
|
||
|
|
||
|
ease-in-expo: cubic-bezier(.95, .05, .795, .035),
|
||
|
ease-out-expo: cubic-bezier(.19, 1, .22, 1),
|
||
|
ease-in-out-expo: cubic-bezier(1, 0, 0, 1),
|
||
|
|
||
|
ease-in-quad: cubic-bezier(.55, .085, .68, .53),
|
||
|
ease-out-quad: cubic-bezier(.25, .46, .45, .94),
|
||
|
ease-in-out-quad: cubic-bezier(.455, .03, .515, .955),
|
||
|
|
||
|
ease-in-quart: cubic-bezier(.895, .03, .685, .22),
|
||
|
ease-out-quart: cubic-bezier(.165, .84, .44, 1),
|
||
|
ease-in-out-quart: cubic-bezier(.77, 0, .175, 1),
|
||
|
|
||
|
ease-in-quint: cubic-bezier(.755, .05, .855, .06),
|
||
|
ease-out-quint: cubic-bezier(.23, 1, .32, 1),
|
||
|
ease-in-out-quint: cubic-bezier(.86, 0, .07, 1),
|
||
|
|
||
|
ease-in-sine: cubic-bezier(.47, 0, .745, .715),
|
||
|
ease-out-sine: cubic-bezier(.39, .575, .565, 1),
|
||
|
ease-in-out-sine: cubic-bezier(.445, .05, .55, .95),
|
||
|
|
||
|
ease-in-back: cubic-bezier(.6, -.28, .735, .045),
|
||
|
ease-out-back: cubic-bezier(.175, .885, .32, 1.275),
|
||
|
ease-in-out-back: cubic-bezier(.68, -.55, .265, 1.55));
|
||
|
|
||
|
/**
|
||
|
* Core
|
||
|
*/
|
||
|
|
||
|
[data-sal] {
|
||
|
transition-duration: $sal-animation-duration;
|
||
|
transition-delay: $sal-animation-delay;
|
||
|
transition-duration: var(--sal-duration, $sal-animation-duration);
|
||
|
transition-delay: var(--sal-delay, $sal-animation-delay);
|
||
|
transition-timing-function: var(--sal-easing, map-get($sal-easings, 'ease'));
|
||
|
}
|
||
|
|
||
|
@for $i from 4 through 40 {
|
||
|
[data-sal][data-sal-duration='#{$i * 50}'] {
|
||
|
transition-duration: #{$i * 0.05}s;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@for $i from 1 through 20 {
|
||
|
[data-sal][data-sal-delay='#{$i * 50}'] {
|
||
|
transition-delay: #{$i * 0.05}s;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@each $key,
|
||
|
$value in $sal-easings {
|
||
|
[data-sal][data-sal-easing='#{$key}'] {
|
||
|
transition-timing-function: $value;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Animations
|
||
|
*/
|
||
|
|
||
|
// Fade
|
||
|
[data-sal|='fade'] {
|
||
|
opacity: 0;
|
||
|
transition-property: opacity;
|
||
|
}
|
||
|
|
||
|
[data-sal|='fade'].sal-animate,
|
||
|
body.sal-disabled [data-sal|='fade'] {
|
||
|
opacity: 1;
|
||
|
}
|
||
|
|
||
|
// Slide
|
||
|
[data-sal|='slide'] {
|
||
|
opacity: 0;
|
||
|
transition-property: opacity, transform;
|
||
|
}
|
||
|
|
||
|
[data-sal='slide-up'] {
|
||
|
transform: translateY($sal-slide-offset);
|
||
|
}
|
||
|
|
||
|
[data-sal='slide-down'] {
|
||
|
transform: translateY(-$sal-slide-offset);
|
||
|
}
|
||
|
|
||
|
[data-sal='slide-left'] {
|
||
|
transform: translateX($sal-slide-offset);
|
||
|
}
|
||
|
|
||
|
[data-sal='slide-right'] {
|
||
|
transform: translateX(-$sal-slide-offset);
|
||
|
}
|
||
|
|
||
|
[data-sal|='slide'].sal-animate,
|
||
|
body.sal-disabled [data-sal|='slide'] {
|
||
|
opacity: 1;
|
||
|
transform: none;
|
||
|
}
|
||
|
|
||
|
// Zoom
|
||
|
[data-sal|='zoom'] {
|
||
|
opacity: 0;
|
||
|
transition-property: opacity, transform;
|
||
|
}
|
||
|
|
||
|
[data-sal='zoom-in'] {
|
||
|
transform: scale($sal-zoom-in-scale);
|
||
|
}
|
||
|
|
||
|
[data-sal='zoom-out'] {
|
||
|
transform: scale($sal-zoom-out-scale);
|
||
|
}
|
||
|
|
||
|
[data-sal|='zoom'].sal-animate,
|
||
|
body.sal-disabled [data-sal|='zoom'] {
|
||
|
opacity: 1;
|
||
|
transform: none;
|
||
|
}
|
||
|
|
||
|
// Flip
|
||
|
[data-sal|='flip'] {
|
||
|
backface-visibility: hidden;
|
||
|
transition-property: transform;
|
||
|
}
|
||
|
|
||
|
[data-sal='flip-left'] {
|
||
|
transform: perspective(2000px) rotateY(-$sal-flip-rotate);
|
||
|
}
|
||
|
|
||
|
[data-sal='flip-right'] {
|
||
|
transform: perspective(2000px) rotateY($sal-flip-rotate);
|
||
|
}
|
||
|
|
||
|
[data-sal='flip-up'] {
|
||
|
transform: perspective(2000px) rotateX(-$sal-flip-rotate);
|
||
|
}
|
||
|
|
||
|
[data-sal='flip-down'] {
|
||
|
transform: perspective(2000px) rotateX($sal-flip-rotate);
|
||
|
}
|
||
|
|
||
|
[data-sal|='flip'].sal-animate,
|
||
|
body.sal-disabled [data-sal|='flip'] {
|
||
|
transform: none;
|
||
|
}
|