--- interface Props { lang?: "ko" | "en"; } const { lang = "ko" } = Astro.props; const suffix = lang === "en" ? "en" : "ko"; const copy = lang === "en" ? { title: "Three designpaca output specimens", direction: { name: "Direction", axes: ["Structure", "Tone", "Detail"], statement: "Evidence converges into one visual position.", note: "References are separated by role before their decisions are combined.", }, tokens: { name: "Tokens & type", specimen: "Aa", koreanSpecimen: "가", roles: ["Surface", "Ink", "Signal"], values: ["--surface", "--ink", "--accent"], note: "Type, color roles, and spacing become reusable constraints.", }, proof: { name: "Verification contract", checks: ["Line count", "Content inset", "Contrast", "Keyboard path"], note: "The same rules are measured at narrow, medium, and wide widths before completion.", }, } : { title: "디자인파카 결과 표본 세 가지", direction: { name: "방향 결정", axes: ["구조", "분위기", "디테일"], statement: "서로 다른 근거가 하나의 시각 방향으로 모입니다.", note: "레퍼런스를 역할별로 분리한 뒤, 필요한 결정만 한 방향으로 결합합니다.", }, tokens: { name: "토큰과 조판", specimen: "Aa", koreanSpecimen: "가", roles: ["바탕", "본문", "신호"], values: ["--surface", "--ink", "--accent"], note: "글자, 색의 역할, 간격을 다시 쓸 수 있는 제약으로 정리합니다.", }, proof: { name: "검사 계약", checks: ["제목 줄 수", "콘텐츠 여백", "색 대비", "키보드 경로"], note: "완료 전에 같은 기준을 좁은 화면, 중간 화면, 넓은 화면에서 실제 수치로 검사합니다.", }, }; ---

{copy.title}

{copy.direction.name}

    {copy.direction.axes.map((axis, index) => (
  1. {axis}
  2. ))}

{copy.direction.statement}

{copy.direction.note}

{copy.tokens.name}

{copy.tokens.roles.map((role, index) => (
{role}
{copy.tokens.values[index]}
))}

{copy.tokens.note}

{copy.proof.name}

    {copy.proof.checks.map((check, index) => (
  1. {check}
  2. ))}

{copy.proof.note}