Fitsion / src /components /ShortCopywriting.jsx
Dyraa18's picture
Upload 26 files
e637e9c verified
import React from "react";
import { motion } from "framer-motion";
import mock1 from "../assets/Mockup1.png";
import mock2 from "../assets/Mockup2.png";
import mock3 from "../assets/Mockup3.png";
import mock4 from "../assets/Mockup4.png";
export default function ShortCopywriting() {
const sections = [
{
title: "Explore your style effortlessly",
text: "Try every outfit with real-time AR without visiting stores.",
img: mock1,
bg: "#FB4868",
textColor: "#FFF",
},
{
title: "Discover the best fashion from top marketplaces",
text: "Browse top marketplace products quickly and easily.",
img: mock2,
bg: "#46072C",
textColor: "#FFF",
},
{
title: "Adjust your measurements for accurate visualization",
text: "Get accurate AR visualization with personalized sizes.",
img: mock3,
bg: "#FBE9D8",
textColor: "#FFF",
},
{
title: "Revisit your favorite tried outfits",
text: "Easily access your previously tried clothing anytime.",
img: mock4,
bg: "#83B9FF",
textColor: "#FFF",
},
];
return (
<section style={{ padding: "50px 20px", fontFamily: "'Poppins', sans-serif" }}>
{sections.map((sec, index) => {
const isLeft = index % 2 === 0;
return (
<motion.div
key={index}
style={{
display: "flex",
flexDirection: isLeft ? "row" : "row-reverse",
alignItems: "center",
justifyContent: "center",
padding: "40px 20px",
backgroundColor: sec.bg,
borderRadius: 15,
marginBottom: 30,
boxShadow: "0 8px 20px rgba(0,0,0,0.06)",
gap: 30,
userSelect: "none"
}}
// Animasi Fade In/Out saat scroll
initial={{ opacity: 0, y: 50 }}
whileInView={{ opacity: 1, y: 0 }}
viewport={{ once: false, amount: 0.3 }}
transition={{ duration: 0.7, ease: "easeOut" }}
>
{/* Konten (Gambar dan Teks) */}
<div
style={{
display: "flex",
flexDirection: isLeft ? "row" : "row-reverse",
alignItems: "center",
gap: 30,
maxWidth: 900,
width: "100%",
// Responsiveness sederhana
"@media (max-width: 768px)": {
flexDirection: "column",
textAlign: "center",
},
}}
>
{/* Gambar (Ukuran tetap 280px) */}
<motion.div
style={{ flex: "0 0 auto", maxWidth: 280, width: "100%", textAlign: "center" }}
initial={{ scale: 0.9, opacity: 0 }}
whileInView={{ scale: 1, opacity: 1 }}
viewport={{ once: false, amount: 0.5 }}
transition={{ delay: 0.2, duration: 0.6, ease: "easeOut" }}
>
<img
src={sec.img}
alt={sec.title}
style={{
width: "100%",
height: "auto",
}}
/>
</motion.div>
{/* Teks */}
<motion.div
style={{
flex: 1,
minWidth: 200,
textAlign: isLeft ? "left" : "right",
color: sec.textColor,
"@media (max-width: 768px)": {
textAlign: "center",
},
}}
initial={{ x: isLeft ? 30 : -30, opacity: 0 }}
whileInView={{ x: 0, opacity: 1 }}
viewport={{ once: false, amount: 0.5 }}
transition={{ delay: 0.3, duration: 0.6, ease: "easeOut" }}
>
<h2
style={{
fontSize: 70, // Diperbesar dari 32px
fontWeight: "700",
marginBottom: 10,
lineHeight: 1.2,
textTransform: "capitalize",
letterSpacing: "0.2px",
}}
>
{sec.title}
</h2>
<p style={{ opacity: 0.9, fontSize: 24, lineHeight: 1.5 }}>{sec.text}</p>
{/* Diperbesar dari 16px */}
</motion.div>
</div>
</motion.div>
);
})}
</section>
);
}