상호작용 모션 — 전부 피드백 목적으로만
모션은 이유가 있어야 붙인다. 여기 넣은 것은 전부 '지금 이걸 보고 있다' 또는 '이건 눌린다'를 말한다. 장식 목적 애니메이션은 넣지 않았다. - 유리 카드 29곳: 커서 아래에서 3px 떠오르고 그림자가 깊어진다 - 링크 2곳: 밑줄이 왼쪽에서 자란다 - 쇼케이스 판 2곳: 1.2% 다가온다 - 스파인 정거장: 마커가 커지고 인용선이 밝아진다 전부 transform 과 opacity 만 움직인다(하드 게이트 8). prefers-reduced-motion 안에 넣어 모션을 줄이는 설정에서는 전부 사라진다.
This commit is contained in:
parent
85be000704
commit
ed1f335a89
9 changed files with 57 additions and 8 deletions
|
|
@ -271,6 +271,46 @@ a:hover { color: var(--accent); }
|
|||
.reveal.is-in { transform: none; }
|
||||
}
|
||||
|
||||
/* ---- 상호작용 모션 ------------------------------------------
|
||||
모션은 이유가 있어야 붙인다. 여기 있는 것은 전부 피드백이다.
|
||||
"지금 이 카드를 보고 있다", "이 버튼은 눌린다"를 말한다.
|
||||
transform 과 opacity 만 움직인다(하드 게이트 8). */
|
||||
@media (prefers-reduced-motion: no-preference) {
|
||||
/* 유리 카드는 커서 아래에서 아주 조금 떠오른다 */
|
||||
.lift {
|
||||
transition:
|
||||
transform var(--dur-quick) var(--ease-out),
|
||||
box-shadow var(--dur-quick) var(--ease-out);
|
||||
}
|
||||
.lift:hover {
|
||||
transform: translate3d(0, -3px, 0);
|
||||
box-shadow: var(--glass-hi), var(--shadow-3);
|
||||
}
|
||||
|
||||
/* 링크 밑줄이 커서 쪽에서 자란다 */
|
||||
.link-grow {
|
||||
position: relative;
|
||||
text-decoration: none;
|
||||
}
|
||||
.link-grow::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: -3px;
|
||||
height: 1px;
|
||||
background: currentColor;
|
||||
transform: scaleX(0);
|
||||
transform-origin: left;
|
||||
transition: transform var(--dur-quick) var(--ease-out);
|
||||
}
|
||||
.link-grow:hover::after { transform: scaleX(1); }
|
||||
|
||||
/* 쇼케이스 판은 들여다보면 조금 다가온다 */
|
||||
.zoom-in { transition: transform var(--dur-normal) var(--ease-out); }
|
||||
.zoom-in:hover { transform: scale(1.012); }
|
||||
}
|
||||
|
||||
/* ---- 패럴랙스 -----------------------------------------------
|
||||
scroll-driven animation 으로만 만든다. scroll 리스너는 쓰지 않는다.
|
||||
움직이는 것은 transform 뿐이라 지원되지 않는 브라우저에서는
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue