πŸ“Œ ꡬ성 μš”μ†Œ

  1. StackSection β†’ 전체 νŽ˜μ΄μ§€
  2. Stack β†’ κ°œλ³„ 기술 μŠ€νƒ μ„Ήμ…˜ (예: "Frontend", "Tools")
  3. FrontendIcons, ToolsIcons β†’ μ•„μ΄μ½˜κ³Ό μ„€λͺ…을 담은 데이터

제λͺ© λΆ€λΆ„

<aside> πŸ’¬

<div className="mt-12 w-[70%] max-w-[150px] h-[50px] bg-main rounded-full flex flex-col items-center justify-center">
    <p className="text-[20px] sm:text-[20px] text-center text-text font-sans font-thin">
        {title}
    </p>
</div>

</aside>

기술 μŠ€νƒ μ•„μ΄ν…œ λ Œλ”λ§

<aside> πŸ’¬

<div className="mt-8 grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-8 w-full">
    {icons.map((icon) => (
        <div
            key={icon.id}
            className="flex items-start gap-4 bg-black/50 p-4 rounded-lg shadow-xl hover:shadow-2xl transition-transform duration-200 transform hover:scale-105"
        >
            <img
                src={icon.src}
                alt={icon.alt}
                className="w-[50px] h-[50px] object-contain"
            />
            <div className="flex flex-col items-start w-[200px] h-[85px]">
                <h4 className="text-lg font-bold text-white">{icon.title}</h4>
                <p className="text-sm text-gray-300">{icon.description}</p>
            </div>
        </div>
    ))}
</div>

</aside>

StackList

<aside> πŸ’¬

const StackSection = () => {
	return (
		<section
			id="stack"
			className="w-full min-h-screen py-20 mx-auto flex flex-col justify-start items-center relative bg-[#68835E] overflow-hidden"
		>
	<p className="mt-4 text-[64px] sm:text-[48px] text-center font-thin font-abhaya decoration-[2px] text-text">
		TECH STACK
	</p>
	
	 <Stack title="Frontend" icons={FrontendIcons} />
     <br></br>
     <br></br>
		 <br></br>
   <Stack title="Tools" icons={ToolsIcons} />
        </section>
    );
};

</aside>

πŸ”Ž 전체적인 λ™μž‘ 방식 정리

  1. StackSectionκ°€ 전체 νŽ˜μ΄μ§€λ₯Ό λ‹΄λ‹Ή
  2. Stack을 μ΄μš©ν•΄ Frontend / Tools 두 개의 그룹을 ν‘œμ‹œ
  3. icons.map()을 μ΄μš©ν•΄ 각 기술 μ•„μ΄μ½˜κ³Ό μ„€λͺ…을 μΉ΄λ“œ ν˜•νƒœλ‘œ 좜λ ₯
  4. κ·Έλ¦¬λ“œ μ‹œμŠ€ν…œμœΌλ‘œ λ°˜μ‘ν˜• 배치