diff --git a/src/css/common.css b/src/css/common.css index e009771..b9d8f0f 100644 --- a/src/css/common.css +++ b/src/css/common.css @@ -113,10 +113,10 @@ body{overflow-x:hidden;} .partners-title-main em { font-style: normal; font-weight: 700; color: #333; background: none; } .partners-title-desc { font-size: 13px; color: #bbb; line-height: 1.8; letter-spacing: 0.02em; } .partners-section-row { display: grid; grid-template-columns: 180px 1fr; gap: 3rem; align-items: start; padding: 4rem 0; border-top: 1px solid #e8e8e8; } -.partners-sidebar { display: flex; flex-direction: column; gap: 6px; padding-top: 4px; position: sticky; top: 100px; } -.partners-eyebrow { font-size: 11px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: #aaa; } -.partners-heading { font-size: 22px; font-weight: 600; color: #111; letter-spacing: -0.03em; line-height: 1.2; margin-top: 4px; } -.partners-count { font-size: 12px; color: #bbb; margin-top: 6px; } +.partners-sidebar { display: flex; flex-direction: column; gap: 6px; padding-top: 4px;} +.partners-eyebrow { font-size: 12px; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase; color: #888; } +.partners-heading { font-size: 32px; font-weight: 700; color: #111; letter-spacing: -0.04em; line-height: 1.15; margin-top: 6px; } +.partners-count { font-size: 13px; font-weight: 500; color: #999; margin-top: 8px; } .partners-grid { display: grid; border: 1px solid #e8e8e8; border-radius: 16px; overflow: hidden; } .partners-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } .partners-grid--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); } @@ -126,11 +126,6 @@ body{overflow-x:hidden;} .partners-grid--5 .partners-logo-cell:nth-child(5n) { border-right: none; } .partners-grid--5 .partners-logo-cell:nth-last-child(-n+5) { border-bottom: none; } .partners-logo-cell img { max-width: 75%; max-height: 28px; width: auto; height: auto; object-fit: contain; } -.partners-cta { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: 4rem 0 0; border-top: 1px solid #e8e8e8; } -.partners-cta-left { display: flex; flex-direction: column; gap: 8px; } -.partners-cta-title { font-size: 22px; font-weight: 600; color: #111; letter-spacing: -0.03em; line-height: 1.4; } -.partners-cta-btn { display: inline-flex; align-items: center; gap: 8px; padding: 0.85rem 2rem; border: 1px solid #222; border-radius: 100px; font-size: 14px; font-weight: 500; color: #111; background: transparent; text-decoration: none; white-space: nowrap; transition: background 0.15s ease, color 0.15s ease; flex-shrink: 0; } -.partners-cta-btn:hover { background: #111; color: #fff; } @media (max-width: 768px) { .partners-wrap { padding: 0 1.25rem 4rem; } .partners-title-block { padding: 3rem 0 2rem; text-align: left; align-items: flex-start; } @@ -148,7 +143,6 @@ body{overflow-x:hidden;} .partners-grid--5 .partners-logo-cell:nth-last-child(-n+5) { border-bottom: 1px solid #e8e8e8; } .partners-grid--5 .partners-logo-cell:nth-child(3n) { border-right: none; } .partners-grid--5 .partners-logo-cell:nth-last-child(-n+3) { border-bottom: none; } -.partners-cta { flex-direction: column; align-items: flex-start; gap: 1.5rem; } } diff --git a/src/pages/company/PartnersPage.jsx b/src/pages/company/PartnersPage.jsx index 6539ebf..25c2747 100644 --- a/src/pages/company/PartnersPage.jsx +++ b/src/pages/company/PartnersPage.jsx @@ -26,12 +26,32 @@ const CLIENTS = [ { id: "molit", logo: "24" }, ]; -const PARTNERS = ["02", "03", "04", "05", "06", "07", "08", "10", "11", "12", "13", "14", "18", "19", "22"]; +const PARTNERS = [ + "02", + "03", + "04", + "05", + "06", + "07", + "08", + "10", + "11", + "12", + "13", + "14", + "18", + "19", + "22", +]; function LogoCard({ logo, basePath }) { return (
- +
); } @@ -43,6 +63,32 @@ export default function PartnersPage() { useEffect(() => { const ctx = gsap.context(() => { + // 모든 섹션 요소 — 아래에서 위로 + gsap.utils + .toArray([ + ".partners-section-row", + ".partners-sidebar", + ".partners-grid", + ".sub-fade-in", + ]) + .forEach((el) => { + gsap.fromTo( + el, + { opacity: 0, y: 48 }, + { + opacity: 1, + y: 0, + duration: 0.7, + ease: "power3.out", + scrollTrigger: { + trigger: el, + start: "top 88%", + }, + }, + ); + }); + + // 로고 셀 stagger (기존 유지) gsap.fromTo( ".partners-logo-cell", { opacity: 0, y: 16 }, @@ -59,9 +105,9 @@ export default function PartnersPage() { }, ); }, wrapRef); + return () => ctx.revert(); }, []); - return (
{/* 상단 타이틀 */} - +

Trusted by Many,
@@ -88,7 +140,9 @@ export default function PartnersPage() { Built for the Future

- 오랜 신뢰, 깊은 협력 함께하는 기관과 파트너 + + 오랜 신뢰, 깊은 협력 함께하는 기관과 파트너 +
@@ -129,19 +183,69 @@ export default function PartnersPage() {
{/* CTA */} -
-
-

Become a Partner

-

- 팔네트웍스와 함께 성장할 -
- 파트너를 찾습니다 -

+
+
+
+

+ Become a Partner +

+

+ 팔네트웍스와 함께 성장할 +
+ 파트너를 찾습니다 +

+
+ + 협력 문의하기 +
- - 협력 문의하기 → - -
+