# Figma → HTML 프로세스 제어 ## 변경 전 반드시 확인 ### 1. 소스는 Figma 데이터다 - gradient 방향: Figma 데이터의 각도에서 CSS 변환 (CSS = 90 - Figma) - border-radius: Figma 데이터 그대로 (스케일만) - PNG를 보고 방향을 판단하지 않는다 - PNG는 픽셀 데이터 분석으로만 교차 검증에 사용 ### 2. 이미지 해석 금지 - 멀티모달 이미지 해석으로 gradient 방향 판단 불가 (미묘한 alpha에서 틀림) - 방향 확인이 필요하면 픽셀 데이터를 숫자로 분석 - "보니까 ~인 것 같다" 금지. 데이터로 확인 ### 3. 작동하는 것은 건드리지 않는다 - 사용자가 A만 문제라고 하면 A만 수정 - B, C가 "같은 이유로 틀릴 것 같다"고 추측해서 함께 바꾸지 않는다 - 변경 전: 현재 값이 뭔지 기록 - 변경 후: 변경한 값이 뭔지 기록 - 되돌려야 할 때 정확히 어디로 돌아가는지 알아야 한다 ### 4. 한 번에 하나만 바꾼다 - gradient 각도와 border-radius를 동시에 바꾸지 않는다 - 하나 바꾸고 확인, 맞으면 다음 하나 ### 5. 사용자가 말한 것만 한다 - 사용자의 피드백을 자의적으로 해석하지 않는다 - "주황색 gradient가 안 맞다" → 주황색 gradient만 수정 - 초록, 다른 요소는 건드리지 않는다 ### 6. 찍어맞추기 금지 - 0deg 안 되면 180deg, 그것도 안 되면 90deg... 이런 식 금지 - 값을 바꾸기 전에 WHY를 먼저 설명할 수 있어야 한다 - 설명 못하면 바꾸지 않는다 ### 7. "쉬운 전면 재작성" 절대 금지 - 80점 결과물에서 2가지 문제를 고칠 때, 구조를 flex/grid 등으로 **전면 재작성하지 않는다** - 기존에 맞춘 수십 가지(pill 크기, 위치, 비율, border 걸침)가 전부 깨진다 - **기존 구조 유지 + 문제만 정확히 수정**이 원칙 - 보완이 안 되면 그 방식을 오답노트로 두고 **다른 방식으로 접근** - 점점 나빠지면 **즉시 멈추고 마지막 OK 상태로 복원** - 구조 변경이 불가피하면 **사전에 영향 범위 분석 + 사용자 확인 후** 진행 ### 8. MCP 데이터 전수 반영 (단순화/생략 절대 금지) - MCP get_design_context 응답의 **모든 요소**를 HTML에 반영한다 - "핵심만 골라서", "단순화해서", "비슷하게" → **전부 금지** - MCP React+Tailwind 코드를 HTML/CSS로 **1:1 변환**한다 - 구조를 임의로 바꾸지 않는다 (래퍼 div 구조 유지) - 반드시 반영해야 하는 속성: - transform: rotate(), scaleY() 등 → 래퍼 div로 감싸는 구조 그대로 - mix-blend-mode: multiply 등 → 절대 생략 금지 - opacity → 절대 생략 금지 - border-radius, inset → Figma 값 그대로 - background-image (gradient) → gradient_math.py로 정확한 CSS 변환 - box-shadow, text-shadow → 값 그대로 - letter-spacing, line-height → 값 그대로 - 검증: MCP 응답에서 CSS 속성을 추출 → index.html에서 동일 속성이 있는지 전수 대조 - "나중에 추가하면 된다"는 생각 금지 → **처음부터 빠짐없이** ## Figma 도형 gradient 처리 프로세스 ``` 1. Figma gradient 각도 확인 2. gradient를 0으로 돌린 기본 상태 파악 - border-radius: Figma 값 그대로 - gradient: CSS 90deg (Figma 0 = 왼→오 = CSS 90deg) 3. CSS로 기본 상태 구현 4. Figma gradient 각도 적용: CSS = 90 - Figma각도 5. 위치(left, top)와 크기(width, height) 배치 ``` ## Figma gradient 각도 체계 ``` Figma 0° = 왼쪽 진 → 오른쪽 옅 = CSS 90° Figma -90° = 위 진 → 아래 옅 = CSS 180° Figma -180° = 오른쪽 진 → 왼쪽 옅 = CSS 270° Figma 90° = 아래 진 → 위 옅 = CSS 0° ``` 변환: **CSS = 90 - Figma**