From 33b8c63c5f49a547842892eca6d2a69fbc0ce11a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?siyeon00=28=EC=9D=B4=EC=8B=9C=EC=97=B0=29?= Date: Wed, 27 May 2026 16:16:58 +0900 Subject: [PATCH] =?UTF-8?q?feat=20:=20=EB=B0=98=EC=9D=91=ED=98=95=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/css/common.css | 11 ++- src/pages/company/PartnersPage.jsx | 151 ++++++++++++----------------- 2 files changed, 72 insertions(+), 90 deletions(-) diff --git a/src/css/common.css b/src/css/common.css index f656c14..e3fa91f 100644 --- a/src/css/common.css +++ b/src/css/common.css @@ -130,11 +130,18 @@ body{overflow-x:hidden;} .partners-logo-cell img { max-width: 75%; max-height: 28px; width: auto; height: auto; object-fit: contain;transition:0.3s all;} .partners-logo-cell img:hover{transform: scale(1.1);transition:0.3s all;} +.cta-box { position: relative; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 24px; padding: 48px 56px; border-radius: 24px; overflow: hidden; background: var(--color-primary); } +.cta-bg { position: absolute; inset: 0; background-size: 75%; background-position: right 100%; background-repeat: no-repeat; opacity: 0.28; mask-image: linear-gradient(to right, transparent 20%, black 70%); -webkit-mask-image: linear-gradient(to right, transparent 20%, black 70%); } +.cta-content { position: relative; z-index: 1; } +.cta-eyebrow { margin: 0 0 8px; font-size: 13px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,.65); } +.cta-title { margin: 0; font-size: clamp(22px,2.2vw,30px); font-weight: 800; color: #fff; letter-spacing: -.03em; line-height: 1.25; } +.cta-btn { position: relative; z-index: 1; display: inline-flex; align-items: center; height: 52px; padding: 0 28px; background: #fff; border-radius: 999px; font-size: 15px; font-weight: 700; color: var(--color-primary); text-decoration: none; white-space: nowrap; letter-spacing: -.01em; flex-shrink: 0; } + @media (max-width: 768px) { .partners-wrap {margin-top:-2rem; padding: 0 0 4rem 0; } .partners-title-block { padding: 3rem 0 2rem; text-align: left; align-items: flex-start; } .partners-section-row { grid-template-columns: 1fr; gap: 1.5rem; padding: 2.5rem 0; } -.partners-sidebar { position: static; flex-direction: row; align-items: baseline; gap: 12px; } +.partners-sidebar { position: static; flex-direction: column; align-items: flex-start; gap: 4px; } .partners-heading { font-size:24px; } .partners-heading br { display: none; } .partners-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } @@ -147,6 +154,8 @@ 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; } +.cta-box { padding: 32px 28px; } +.cta-bg { background-size: cover; background-position: center; mask-image: linear-gradient(to bottom, transparent 0%, black 40%); -webkit-mask-image: linear-gradient(to bottom, transparent 0%, black 40%); } } diff --git a/src/pages/company/PartnersPage.jsx b/src/pages/company/PartnersPage.jsx index 038dacd..f346a04 100644 --- a/src/pages/company/PartnersPage.jsx +++ b/src/pages/company/PartnersPage.jsx @@ -27,12 +27,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 (
- +
); } @@ -45,22 +65,29 @@ 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%", + 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( @@ -100,7 +127,13 @@ export default function PartnersPage() {
{/* 상단 타이틀 */} - +

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

- 오랜 신뢰, 깊은 협력 함께하는 기관과 파트너 + + 오랜 신뢰, 깊은 협력 함께하는 기관과 파트너 +
{/*

Clients

- 주요 + 주요 {""}
고객사

@@ -148,7 +183,7 @@ export default function PartnersPage() {

Partners

- 기술 + 기술 {""}
협력사

@@ -163,84 +198,22 @@ export default function PartnersPage() { {/* CTA */}
-
- {/* 배경 이미지 — 오른쪽에만 페이드인 */} +
- - {/* 콘텐츠 */} -
-

- Become a Partner -

-

+
+

Become a Partner

+

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

- - + 협력 문의하기