first commit
This commit is contained in:
@@ -0,0 +1,127 @@
|
||||
/* ============================================================
|
||||
전역 디자인 토큰 · 리셋 · 공통 유틸 클래스
|
||||
- 디자인 원본(px)을 16px = 1rem 기준으로 rem 변환
|
||||
============================================================ */
|
||||
|
||||
:root {
|
||||
--bg: #ffffff;
|
||||
--bg-alt: #f4f5f7;
|
||||
--ink: #17181f;
|
||||
--ink-soft: #6c6e78;
|
||||
--line: #e6e7ec;
|
||||
--brand: #202a44;
|
||||
--label: #5b687c;
|
||||
--accent: #202a44;
|
||||
--accent-soft: #dde1ec;
|
||||
--danger: #c2473d;
|
||||
--white: #ffffff;
|
||||
--maxw: 90rem; /* 1440px */
|
||||
--pad: clamp(1.25rem, 5vw, 4rem); /* 20px ~ 64px */
|
||||
--r: 1.125rem; /* 18px */
|
||||
--font-display: 'BebasNeue', 'Bebas Neue', 'Apple SD Gothic Neo', 'Malgun Gothic', 'Nanum Gothic', 'Meiryo', sans-serif;
|
||||
--font-body: 'Pretendard', 'Apple SD Gothic Neo', 'Malgun Gothic', 'Nanum Gothic', 'Noto Sans KR', 'Noto Sans', sans-serif;
|
||||
|
||||
font-family: var(--font-body);
|
||||
}
|
||||
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
html {
|
||||
scroll-behavior: smooth;
|
||||
}
|
||||
|
||||
body {
|
||||
background: var(--bg);
|
||||
color: var(--ink);
|
||||
font-family: var(--font-body);
|
||||
-webkit-font-smoothing: antialiased;
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
img {
|
||||
display: block;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
a {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
/* ---------- 공통 컨테이너 ---------- */
|
||||
.wrap {
|
||||
max-width: var(--maxw);
|
||||
margin: 0 auto;
|
||||
padding-inline: var(--pad);
|
||||
}
|
||||
|
||||
/* ---------- 공통 버튼 ---------- */
|
||||
.btn {
|
||||
display: inline-block;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
padding: 1.0625rem 3rem; /* 17px 48px */
|
||||
border-radius: 6.25rem; /* 100px */
|
||||
font-size: 1rem; /* 16px */
|
||||
font-weight: 700;
|
||||
transition: transform 0.2s, background 0.2s;
|
||||
cursor: pointer;
|
||||
border: 0;
|
||||
font-family: inherit;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.btn-primary {
|
||||
background: var(--brand);
|
||||
color: var(--white);
|
||||
}
|
||||
|
||||
.btn-primary:hover {
|
||||
transform: translateY(-0.125rem); /* -2px */
|
||||
background: #161e36;
|
||||
}
|
||||
|
||||
/* ============================================================
|
||||
스크롤 등장 애니메이션
|
||||
- .reveal 클래스는 클라이언트 v-reveal 디렉티브가 부여
|
||||
- JS 미동작(no-JS/SEO) 시에는 클래스가 없어 콘텐츠 그대로 노출
|
||||
- --reveal-delay 로 스태거(순차 등장) 제어
|
||||
============================================================ */
|
||||
.reveal {
|
||||
opacity: 0;
|
||||
transition:
|
||||
opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1),
|
||||
transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
|
||||
transition-delay: var(--reveal-delay, 0ms);
|
||||
will-change: opacity, transform;
|
||||
}
|
||||
|
||||
.reveal-up {
|
||||
transform: translateY(1.75rem); /* 아래에서 위로 */
|
||||
}
|
||||
|
||||
.reveal-scale {
|
||||
transform: scale(0.94); /* 살짝 확대되며 등장 */
|
||||
}
|
||||
|
||||
.reveal-fade {
|
||||
transform: none; /* 투명도만 */
|
||||
}
|
||||
|
||||
.reveal.is-revealed {
|
||||
opacity: 1;
|
||||
transform: none;
|
||||
}
|
||||
|
||||
/* 모션 최소화 선호 시 모든 등장 애니메이션 비활성화 */
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
.reveal {
|
||||
opacity: 1 !important;
|
||||
transform: none !important;
|
||||
transition: none !important;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user