patch_stay.py·inject.js/css·audit-all.mjs 갱신, 벤더 번들 교체(index-D9cPXCE3 → index-D4jgGFP4 등), stay3 백업 스냅샷과 stay2/stay3 빌드 스크립트(build_stay2.py· build_stay3.py) 및 원본 템플릿(tpl-story·tpl-creative) 추가. 옛 번들은 vendor/retired/ 에 보관. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
207 lines
3.6 KiB
SCSS
207 lines
3.6 KiB
SCSS
@import 'libs/vars';
|
|
@import 'libs/functions';
|
|
@import 'libs/mixins';
|
|
@import 'libs/vendor';
|
|
@import 'libs/breakpoints';
|
|
@import 'libs/html-grid';
|
|
|
|
/*
|
|
Story by HTML5 UP
|
|
html5up.net | @ajlkn
|
|
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
|
*/
|
|
|
|
/* Banner (transitions) */
|
|
|
|
.banner {
|
|
|
|
// Mixin.
|
|
@mixin transition-banner($event) {
|
|
$x: null;
|
|
$y: null;
|
|
|
|
@if ($event == 'load') {
|
|
$x: 'body.is-preload &';
|
|
$y: _duration(on-load);
|
|
}
|
|
@else if ($event == 'scroll') {
|
|
$x: '&.is-inactive';
|
|
$y: _duration(on-scroll);
|
|
}
|
|
|
|
// Content.
|
|
&.on#{$event}-content-fade-up {
|
|
.content {
|
|
@include vendor('transition', 'none');
|
|
}
|
|
|
|
#{$x} {
|
|
.content {
|
|
@include vendor('transform', 'none');
|
|
opacity: 1;
|
|
}
|
|
}
|
|
}
|
|
|
|
&.on#{$event}-content-fade-down {
|
|
.content {
|
|
@include vendor('transition', 'none');
|
|
}
|
|
|
|
#{$x} {
|
|
.content {
|
|
@include vendor('transform', 'none');
|
|
opacity: 1;
|
|
}
|
|
}
|
|
}
|
|
|
|
&.on#{$event}-content-fade-left {
|
|
.content {
|
|
@include vendor('transition', 'none');
|
|
}
|
|
|
|
#{$x} {
|
|
.content {
|
|
@include vendor('transform', 'none');
|
|
opacity: 1;
|
|
}
|
|
}
|
|
}
|
|
|
|
&.on#{$event}-content-fade-right {
|
|
.content {
|
|
@include vendor('transition', 'none');
|
|
}
|
|
|
|
#{$x} {
|
|
.content {
|
|
@include vendor('transform', 'none');
|
|
opacity: 1;
|
|
}
|
|
}
|
|
}
|
|
|
|
&.on#{$event}-content-fade-in {
|
|
.content {
|
|
@include vendor('transition', 'none');
|
|
}
|
|
|
|
#{$x} {
|
|
.content {
|
|
@include vendor('transform', 'none');
|
|
opacity: 1;
|
|
}
|
|
}
|
|
}
|
|
|
|
// Image.
|
|
&.on#{$event}-image-fade-up {
|
|
.image {
|
|
@include vendor('transition', 'none');
|
|
|
|
img {
|
|
@include vendor('transition', 'none');
|
|
}
|
|
}
|
|
|
|
#{$x} {
|
|
.image {
|
|
@include vendor('transform', 'none');
|
|
opacity: 1;
|
|
|
|
img {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
&.on#{$event}-image-fade-down {
|
|
.image {
|
|
@include vendor('transition', 'none');
|
|
|
|
img {
|
|
@include vendor('transition', 'none');
|
|
}
|
|
}
|
|
|
|
#{$x} {
|
|
.image {
|
|
@include vendor('transform', 'none');
|
|
opacity: 1;
|
|
|
|
img {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
&.on#{$event}-image-fade-left {
|
|
.image {
|
|
@include vendor('transition', 'none');
|
|
|
|
img {
|
|
@include vendor('transition', 'none');
|
|
}
|
|
}
|
|
|
|
#{$x} {
|
|
.image {
|
|
@include vendor('transform', 'none');
|
|
opacity: 1;
|
|
|
|
img {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
&.on#{$event}-image-fade-right {
|
|
.image {
|
|
@include vendor('transition', 'none');
|
|
|
|
img {
|
|
@include vendor('transition', 'none');
|
|
}
|
|
}
|
|
|
|
#{$x} {
|
|
.image {
|
|
@include vendor('transform', 'none');
|
|
opacity: 1;
|
|
|
|
img {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
&.on#{$event}-image-fade-in {
|
|
.image {
|
|
img {
|
|
@include vendor('transition', 'none');
|
|
}
|
|
}
|
|
|
|
#{$x} {
|
|
.image {
|
|
img {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
// On Load.
|
|
@include transition-banner('load');
|
|
|
|
// On Scroll.
|
|
@include transition-banner('scroll');
|
|
|
|
} |