nnuer
강희태@gmlxo9917

PLOT. 제작 상품 4종 갤러리

갤러리 블록

명함, 홈페이지, 사업소개서, 사원증 목업을 정사각 연회색 타일에 담고, 타일마다 화살표 버튼과 이름을 단 제작 상품 갤러리입니다.

블록 신고

운영자가 확인한 뒤 필요하면 블록을 숨깁니다.

사유
Claude Code · claude-opus-5-5 · React (TSX)

원본 제작물 이미지는 공개 주소가 없어 Tailwind 목업으로 다시 그렸습니다. 링크는 # 입니다.

결과 코드펼치기
/** PLOT. 워드마크(크기와 색은 인자로) */
function Wordmark({ className = "", color = "#020A22" }: { className?: string; color?: string }) {
  return (
    <svg viewBox="159 428 718 164" className={className} aria-hidden="true">
      <path
        fill={color}
        fillRule="evenodd"
        d="M178.5 430.5H263A46.5 46.5 0 0 1 263 523.5H197A7 7 0 0 0 190 530.5V578.5A11.5 11.5 0 0 1 167 578.5V531A30.5 30.5 0 0 1 197.5 500.5H263A23.5 23.5 0 0 0 263 453.5H178.5A11.5 11.5 0 0 1 178.5 430.5ZM354.5 442A11.5 11.5 0 0 1 377.5 442V548.5A18 18 0 0 0 395.5 566.5H469.5A11.5 11.5 0 0 1 469.5 589.5H395.5A41 41 0 0 1 354.5 548.5ZM505 509.5a81.5 81.5 0 1 0 163 0a81.5 81.5 0 1 0 -163 0ZM528 509.5a58.5 58.5 0 1 0 117 0a58.5 58.5 0 1 0 -117 0ZM712.5 430.5H843.5A11.5 11.5 0 0 1 843.5 453.5H789.5V578A11.5 11.5 0 0 1 766.5 578V453.5H712.5A11.5 11.5 0 0 1 712.5 430.5Z"
      />
      <circle cx="851.5" cy="572.5" r="16.5" fill={color === "#FFFFFF" ? "#FFFFFF" : "#0055FF"} />
    </svg>
  );
}

function BusinessCard() {
  return (
    <div className="relative h-[46%] w-[72%] -rotate-6 rounded-lg bg-white p-[6%] shadow-[0_14px_30px_rgba(2,10,34,0.14)]">
      <Wordmark className="w-[48%]" />
      <div className="mt-[10%] text-[clamp(10px,2.4vw,15px)] font-bold text-[#020A22]">직원 이름</div>
      <div className="text-[clamp(7px,1.4vw,10px)] text-[#8B95A1]">Brand Designer</div>
      <span className="absolute top-[8%] right-[6%] h-[84%] w-[13%] rounded-md bg-[#0055FF]" />
    </div>
  );
}

function Website() {
  return (
    <div className="w-[82%] overflow-hidden rounded-lg bg-white shadow-[0_14px_30px_rgba(2,10,34,0.12)]">
      <div className="flex items-center gap-1 bg-[#F4F6F9] px-2 py-1.5">
        <span className="size-1.5 rounded-full bg-[#8B95A1]" />
        <span className="size-1.5 rounded-full bg-[#8B95A1]" />
        <span className="size-1.5 rounded-full bg-[#8B95A1]" />
        <span className="ml-1.5 h-2.5 flex-1 rounded bg-white" />
      </div>
      <div className="flex items-center gap-2 p-[7%]">
        <div className="flex-1">
          <Wordmark className="w-[58%]" />
          <div className="mt-[8%] text-[clamp(9px,2vw,13px)] leading-tight font-extrabold text-[#020A22]">
            아이디어에서
            <br />
            가능성으로.
          </div>
          <span className="mt-[8%] inline-block rounded-full bg-[#0055FF] px-2 py-0.5 text-[clamp(6px,1.1vw,8px)] font-bold text-white">서비스 알아보기</span>
        </div>
        <div className="grid aspect-square w-[38%] place-items-center rounded-lg bg-[#EBF2FF] text-[clamp(18px,4vw,30px)] font-black text-[#020A22]">
          <span>
            P<span className="text-[#0055FF]">.</span>
          </span>
        </div>
      </div>
    </div>
  );
}

function Profile() {
  return (
    <div className="relative h-[78%] w-[52%] rotate-[-8deg] rounded-md bg-[#0055FF] p-[8%] shadow-[0_18px_36px_rgba(0,57,179,0.30)]">
      <span className="absolute inset-y-0 left-0 w-[5%] rounded-l-md bg-[#0039B3]" />
      <div className="text-[clamp(16px,3.6vw,26px)] leading-none font-black text-white">
        P<span>.</span>
      </div>
      <Wordmark className="absolute bottom-[18%] left-[12%] w-[62%]" color="#FFFFFF" />
      <div className="absolute bottom-[8%] left-[12%] text-[clamp(5px,1vw,7px)] tracking-widest text-white/80">COMPANY PROFILE</div>
    </div>
  );
}

function EmployeeId() {
  return (
    <div className="relative mt-[6%] h-[72%] w-[44%] rotate-6 rounded-lg bg-white p-[7%] text-center shadow-[0_16px_32px_rgba(2,10,34,0.14)]">
      <span className="absolute -top-[7%] left-1/2 h-[9%] w-[26%] -translate-x-1/2 rounded-sm bg-[#C5CCD6]" />
      <Wordmark className="mx-auto w-[70%]" />
      <span className="mx-auto mt-[10%] grid aspect-square w-[46%] place-items-center rounded-lg bg-[#EBF2FF]">
        <svg viewBox="0 0 24 24" className="w-[70%] text-[#0055FF]" fill="currentColor">
          <circle cx="12" cy="8.5" r="4.5" />
          <path d="M3 22a9 9 0 0 1 18 0Z" />
        </svg>
      </span>
      <div className="mt-[8%] text-[clamp(8px,1.8vw,12px)] font-bold text-[#020A22]">직원 이름</div>
      <div className="text-[clamp(5px,1vw,7px)] tracking-widest text-[#8B95A1]">BRAND DESIGN</div>
    </div>
  );
}

const ITEMS = [
  { title: "명함", Art: BusinessCard },
  { title: "홈페이지", Art: Website },
  { title: "사업소개서", Art: Profile },
  { title: "사원증", Art: EmployeeId },
];

/** PLOT. 제작 상품 갤러리: 가운데 2줄 제목과 설명, 정사각 연회색 타일 4개(모바일 1열, 태블릿 2열, 데스크톱 4열). 타일 오른쪽 아래 화살표 버튼. */
export default function Showcase() {
  return (
    <section id="showcase" className="w-full scroll-mt-24 bg-white px-5 pb-28 text-[#020A22]">
      <div className="mx-auto max-w-5xl text-center">
        <h2 className="text-[28px] leading-tight font-bold tracking-[-0.04em] break-keep md:text-[44px]">
          PLOT으로
          <br />
          <span className="text-[#0055FF]">만들 수 있는 모든 것</span>
        </h2>
        <p className="mt-4 text-[17px] font-semibold break-keep text-[#020A22]/50">명함, 홈페이지, 사업소개서, 사원증을 하나의 브랜드로</p>
        <div className="mt-14 grid gap-x-6 gap-y-12 sm:grid-cols-2 lg:grid-cols-4">
          {ITEMS.map(({ title, Art }) => (
            <div key={title}>
              <a href="#" aria-label={`${title} 만들기`} className="group relative grid aspect-square place-items-center overflow-hidden rounded-[28px] bg-[#F4F6FA]">
                <Art />
                <span className="absolute right-3 bottom-3 grid size-11 place-items-center rounded-full bg-[#020A22] text-white transition-transform group-hover:scale-105">
                  <svg viewBox="0 0 24 24" className="size-5" fill="currentColor" aria-hidden="true">
                    <path d="M6 5a1 1 0 0 0 0 2h9.59L5.29 17.29a1 1 0 0 0 1.42 1.42L17 8.41V18a1 1 0 0 0 2 0V6a1 1 0 0 0-1-1Z" />
                  </svg>
                </span>
              </a>
              <h3 className="mt-5 text-[22px] font-bold tracking-[-0.03em]">{title}</h3>
            </div>
          ))}
        </div>
      </div>
    </section>
  );
}

적용 사이트 0

이 블록이 실제로 쓰인 사이트입니다.

로그인하고 내 사이트 추가

아직 등록된 사이트가 없습니다. 이 블록을 쓴 사이트가 있다면 알려 주세요.

로그인하고 재현 결과 올리기

재현 후기

v1 · 0개

아직 이 버전의 프롬프트로 직접 만들어 본 사람이 없습니다. 첫 번째로 재현해 보세요.