Figma 원본 이미지

reference/ 는 Figma 「Cocode Scaffold App v1.0」 페이지 49:5 의 화면 프레임 80개를 1배율로 내보낸 원본 PNG 다 (폰 390 35장 · 태블릿 1024 11장 · 데스크톱 1440 34장). 화면마다의 노드 id · 섹션 · 역할 · 기기 · 크기 · 캡션 · 원본 링크는 화면 대장 docs/product/figma-screens.json 에 있고, 대장의 image 가 이 폴더의 파일을 가리킨다. 구현 캡처와 견줄 기준 이미지다 — 구현 캡처로 덮어쓰지 않는다.

이 폴더와 대장은 scaffold-booking(7f28d21)의 docs/design/figma/ 와 같은 모양이다(#9). 달라진 것: 대장을 손으로 짓지 않고 읽기 전용 레시피 tool/design/figma/export_ledger.figma.js 가 읽은 값을 tool/design/figma/build_ledger.py 가 digest 로 검산하며 짓는다(아래 「대장 다시 만들기」).

내보낸 방법

대장의 insets · modes

대장 다시 만들기

Figma 가 바뀌었을 때(화면이 늘거나 캡션 · 띠가 바뀜) 다시 읽는다. 앱마다 바꾸는 값은 레시피 머리의 두 줄(페이지 id · 코드 접두사)뿐이다.

  1. tool/design/figma/export_ledger.figma.js 를 Figma MCP use_figma 에 그대로 넣어 돌린다(읽기 전용). 반환 {digest, notesDigest, count, rows, notes} 를 파일(예: /tmp/ledger-export.json)로 옮겨 적는다.
  2. 프레임 목록({fileKey, page, frames:[{nodeId,name,keys,device,width,height,section}]})을 준비한다 — get_metadata 의 페이지 XML 에서 Caption 프레임을 뺀 것.
  3. python3 tool/design/figma/build_ledger.py --frames <프레임 목록> --export /tmp/ledger-export.json --prefix MK — 옮겨 적기를 digest 로 검산하고 프레임 목록과 이름 · 크기를 대조해 대장을 쓴다.

한 화면 다시 내보내기

  1. 대장에서 그 화면의 node · width · height 를 확인한다.
  2. get_screenshot(fileKey 6yq0C3oSVVR2HdaOe807eB, nodeId = node, maxDimension = 긴 변, contentsOnly: true)으로 받은 URL 을 바로 curl -f -L -o docs/design/figma/reference/<key>.png "<url>" 로 저장한다(URL 은 곧 만료된다 — 어디에도 적지 않는다).
  3. 프레임 크기 · 캡션 · 상태 바 · 홈 인디케이터가 바뀌었으면 대장의 해당 필드도 고치고, exportedAt 을 내보낸 시각(UTC)으로 바꾼다.
  4. 확인: dart tool/design/check_figma_screens.dart — 필드 · key · PNG IHDR 크기 · 기기 폭과, 대장이 가리키지 않는 PNG 를 본다. 계약 게이트 tool/gates/check_all.sh 도 이 검사를 부른다.

Figma 쪽에서 본 것 (Figma 는 고치지 않았다)