yapayzeka/public/assets/scss/default/_sal.scss

173 lines
3.9 KiB
SCSS
Raw Normal View History

2024-09-09 15:01:42 -07:00
/**
* 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;
}