{"delivery":{"type":"reference-library","npmPackagePublished":false,"npmPackage":{"name":"klic-design","version":"0.0.4","published":false,"status":"source-ready","registry":"https://registry.npmjs.org/","runtime":"Bun 1.4.2 preferred; Node.js 22+ supported","exports":["tokens","theme","motion","motions/runtime","motions/runtime.css","components","blocks","Agent Skill","CSS","TypeScript","CLI"],"publishedExports":["tokens","theme","motion","motions/runtime","motions/runtime.css","components","blocks","Agent Skill","CSS","TypeScript","CLI"],"candidateExports":["tokens","theme","motion","motions/runtime","motions/runtime.css","components","blocks","Agent Skill","CSS","TypeScript","CLI"],"candidateOnlyExports":[],"publicationExportsVerified":true,"skillPath":"skills/klic-design/SKILL.md","buildCommand":"bun run pack:npm","publishedVersion":"0.0.3","publishedIntegrity":"sha512-GJJOOXh5UXxSSURZLxXLU5qq968O+p91TeTkNtqo527mzj9BOtoOH4nyMfNWZwrQwJ4o+zhy9i+cnlX71nPeKA==","installCommand":"bun add klic-design@0.0.3","cliCommand":"bunx --bun --package=klic-design@0.0.3 klic","nodeCliCommand":"npx --yes --package=klic-design@0.0.3 klic","sourceCLICommand":"curl --fail --location --output klic.mjs https://design.klic.co.kr/integrations/klic.mjs\nbun ./klic.mjs","sourceNodeCLICommand":"curl --fail --location --output klic.mjs https://design.klic.co.kr/integrations/klic.mjs\nnode ./klic.mjs"},"scope":"/about","licenses":"/licenses/README.md"},"system":{"schemaVersion":"1.0","revision":"6f9c8f5e4d7c767f79a7db999670fb4d0936e07acb1b472fe162a7a9ade60c97","definition":"/api/v1/design-system.json","docs":"/#docs/architecture"},"schemaVersion":"1.0","scope":"adoption-guidance","implementation":"native-html","use":["프로젝트의 개요·활동·설정처럼 같은 객체의 보기 전환에 사용합니다.","지연이 거의 없는 패널은 방향키 이동 시 즉시 활성화할 수 있습니다."],"avoid":["사이트의 별도 페이지 이동을 탭처럼 꾸미고 URL·뒤로 가기 의미를 없애지 않습니다.","필수 폼 항목을 여러 탭에 숨겨 오류 위치를 찾기 어렵게 만들지 않습니다."],"accessibility":["각 tablist에 어떤 보기인지 이름을 제공합니다.","선택 탭 하나만 tabindex=0을 갖고 패널의 labelledby도 함께 갱신합니다.","시각적 아래줄 외에 aria-selected로 현재 선택을 전달합니다."],"density":{"compact":"반복 목록에서만 여백을 줄이고 주요 행동 간격은 유지합니다.","normal":"기본 권장 밀도입니다. 읽기 순서와 레이블·컨트롤·피드백 그룹을 유지합니다.","relaxed":"설명 중심·프레젠테이션 화면에 사용합니다. 정보 계층을 유지하며 여백을 늘립니다."},"states":[{"name":"selected","condition":"현재 표시 중인 탭","response":"aria-selected=true이며 tabindex=0입니다."},{"name":"unselected","condition":"다른 패널의 탭","response":"aria-selected=false이며 Tab 정류장에서 빠집니다."},{"name":"focus + selected","condition":"방향키로 이동 후","response":"현재 데모는 focus 이동과 선택이 동시에 바뀝니다."},{"name":"panel focus","condition":"Tab으로 본문에 진입","response":"tabpanel의 내용을 다음 순서로 읽고 조작합니다."},{"name":"다중 인스턴스","condition":"탭 묶음이 둘 이상 있음","response":"각 id와 aria-controls·labelledby 연결을 고유하게 유지합니다."}],"recovery":{"loading":"진행 중임을 알리고 중복 요청을 차단합니다. 기존 데이터가 있으면 갱신 중에도 유지합니다.","empty":"처음부터 데이터가 없는 상태에는 생성·연결 행동을 제공합니다.","filtered":"검색 결과가 없으면 데이터 없음과 구분하고 필터 초기화 행동을 제공합니다.","error":"마지막 정상 데이터를 보존하고 실패 영역에 재시도를 제공합니다."},"tokenMapping":[{"path":"klic.semantic.size.action.default","purpose":"탭 조작 영역 검토의 공통 action 역할","cssVariable":"--klic-semantic-size-action-default","cssProperty":"padding","value":"2rem","chain":["klic.semantic.size.action.default","klic.brand.dimension.control.height.md","klic.primitive.dimension.step.8"],"tailwind":"p-[var(--klic-semantic-size-action-default)]"},{"path":"klic.semantic.color.accent","purpose":"행동·선택·진행을 전달하는 블루","cssVariable":"--klic-semantic-color-accent","cssProperty":"color","value":"#245fc2","chain":["klic.semantic.color.accent","klic.brand.color.accent","klic.primitive.color.palette.klic.accent"],"tailwind":"text-[var(--klic-semantic-color-accent)]"},{"path":"klic.semantic.space.container.default","purpose":"독립적인 컨테이너 간격","cssVariable":"--klic-semantic-space-container-default","cssProperty":"gap","value":"1rem","chain":["klic.semantic.space.container.default","klic.brand.spacing.md","klic.primitive.dimension.step.4"],"tailwind":"gap-[var(--klic-semantic-space-container-default)]"}],"limitations":["현재 탭은 tablist·tab·tabpanel과 roving tabindex를 사용합니다. 3개 데모 탭은 즉시 활성화하며 패널 내용은 app.js의 고정 예시입니다."],"checklist":["키보드만으로 첫 탭→끝 탭→패널로 이동합니다.","활성 탭과 panel labelledby가 일치하는지 확인합니다.","둘 이상의 탭 인스턴스에서 id 중복을 확인합니다."],"exports":{"design":"/design/component/tabs/DESIGN.md","contract":"/design/component/tabs/contract.json","types":"/design/klic-design.d.ts"},"prompt":"KLIC Tabs (component/tabs)을 사용해 화면을 구성하세요. KLIC은 7개 디자인 디멘션과 4계층 토큰을 공통 기반으로 씁니다. 적용 기준은 다릅니다. 컴포넌트는 개별 조작 요소, 블록은 업무 흐름, 모션은 시간에 따른 전환을 다룹니다. 공개 npm: klic-design@0.0.3. 소스 후보 klic-design@0.0.4는 미발행이며 klic-design@0.0.3가 현재 발행본입니다. 먼저 https://design.klic.co.kr/api/v1/design-system.json의 공통 기준(revision 6f9c8f5e4d7c767f79a7db999670fb4d0936e07acb1b472fe162a7a9ade60c97), DESIGN.md와 실제 소스를 읽고, 구현 책임·프리셋 허용 범위·충돌 해결 순서를 적용하세요. 사용 원칙·금지 사항·접근성·밀도·빈 상태·오류 처리를 준수하세요. 토큰은 klic. 4계층 참조를 보존하고 없는 API나 실제 저장 기능을 만들어내지 마세요."}