|
|
|
|
@ -27,32 +27,12 @@ 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 ( |
|
|
|
|
<div className="partners-logo-cell"> |
|
|
|
|
<img |
|
|
|
|
src={`${basePath}images/partner/banner${logo}.png`} |
|
|
|
|
alt="" |
|
|
|
|
loading="lazy" |
|
|
|
|
/> |
|
|
|
|
<img src={`${basePath}images/partner/banner${logo}.png`} alt="" loading="lazy" /> |
|
|
|
|
</div> |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
@ -65,14 +45,7 @@ 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.utils.toArray([".partners-section-row", ".partners-sidebar", ".partners-grid", ".sub-fade-in"]).forEach((el) => { |
|
|
|
|
gsap.fromTo( |
|
|
|
|
el, |
|
|
|
|
{ opacity: 0, y: 48 }, |
|
|
|
|
@ -127,13 +100,7 @@ export default function PartnersPage() {
|
|
|
|
|
<div className="sub-content"> |
|
|
|
|
<div className="inner-wrap"> |
|
|
|
|
{/* 상단 타이틀 */} |
|
|
|
|
<motion.div |
|
|
|
|
className="ht-header" |
|
|
|
|
initial={{ opacity: 0, y: 32 }} |
|
|
|
|
whileInView={{ opacity: 1, y: 0 }} |
|
|
|
|
viewport={{ once: true, margin: "-80px" }} |
|
|
|
|
transition={{ duration: 0.6, ease: [0.4, 0, 0.2, 1] }} |
|
|
|
|
> |
|
|
|
|
<motion.div className="ht-header" initial={{ opacity: 0, y: 32 }} whileInView={{ opacity: 1, y: 0 }} viewport={{ once: true, margin: "-80px" }} transition={{ duration: 0.6, ease: [0.4, 0, 0.2, 1] }}> |
|
|
|
|
<p className="ht-header-title"> |
|
|
|
|
Trusted by Many, |
|
|
|
|
<br /> |
|
|
|
|
@ -141,11 +108,9 @@ export default function PartnersPage() {
|
|
|
|
|
<span>Built</span> <b>for the Future</b> |
|
|
|
|
</em> |
|
|
|
|
</p> |
|
|
|
|
<em className="ht-header-sub"> |
|
|
|
|
오랜 신뢰, 깊은 협력 함께하는 기관과 파트너 |
|
|
|
|
</em> |
|
|
|
|
<em className="ht-header-sub">오랜 신뢰, 깊은 협력 함께하는 기관과 파트너</em> |
|
|
|
|
</motion.div> |
|
|
|
|
<motion.div |
|
|
|
|
{/* <motion.div |
|
|
|
|
initial={{ scaleY: 0, opacity: 0 }} |
|
|
|
|
whileInView={{ scaleY: 1, opacity: 1 }} |
|
|
|
|
viewport={{ once: true }} |
|
|
|
|
@ -157,7 +122,7 @@ export default function PartnersPage() {
|
|
|
|
|
margin: "1rem auto 1rem", |
|
|
|
|
transformOrigin: "top", |
|
|
|
|
}} |
|
|
|
|
/> |
|
|
|
|
/> */} |
|
|
|
|
|
|
|
|
|
<div className="partners-wrap" ref={wrapRef}> |
|
|
|
|
{/* 주요 고객사 */} |
|
|
|
|
@ -221,10 +186,8 @@ export default function PartnersPage() {
|
|
|
|
|
backgroundSize: "75%", |
|
|
|
|
backgroundPosition: "right 100%", |
|
|
|
|
opacity: 0.28, |
|
|
|
|
maskImage: |
|
|
|
|
"linear-gradient(to right, transparent 20%, black 70%)", |
|
|
|
|
WebkitMaskImage: |
|
|
|
|
"linear-gradient(to right, transparent 20%, black 70%)", |
|
|
|
|
maskImage: "linear-gradient(to right, transparent 20%, black 70%)", |
|
|
|
|
WebkitMaskImage: "linear-gradient(to right, transparent 20%, black 70%)", |
|
|
|
|
}} |
|
|
|
|
/> |
|
|
|
|
|
|
|
|
|
|