Communitygithub.com

sukirman1901/polish

UI의 미세한 디테일을 다듬어 더 나은 사용자 경험을 제공합니다 — 광학 정렬, 표 형식 숫자, 텍스트 줄바꿈, 중단 가능한 전환, 누름 피드백, 터치 영역, `transition: all` 금지. UI 다듬기, '뭔가 어색함', '세부 조정', 호버/누름 피드백이 필요하거나 안티-슬롭 디자인 이후에 사용하세요. 구조적 레이아웃, 둥근 모서리 언어 및 WCAG 준수는 다른 소유자에게 속합니다.

polish란 무엇인가요?

이 스킬은 UI 개발 및 리뷰 과정에서 시각적인 '완성도'를 높이기 위한 미세 조정(micro-craft)에 초점을 맞춥니다. 토큰, 구조, 안티-슬롭 디자인 이후에 적용되어 렌더링된 UI 표면에서 사용자 경험을 직관적으로 개선합니다. 주요 작업으로는 버튼 내 아이콘의 광학적 중앙 정렬, 동적 숫자의 지터링 방지를 위한 `tabular-nums` 적용, 짧은 제목의 `text-wrap: balance` 처리, 호버/누름 시 중단 가능한 CSS 전환 사용, `scale(0.96)` 과 같은 누름 피드백, 44×44 터치 영역 확보, 그리고 `transition: all` 사용 금지 등이 포함됩니다. 이 스킬은 구조적 그리드, 디자인 표면, 타이포그래피, 접근성, 모션 등과 같은 다른 영역과 명확히 경계를 구분하며, 모든 수치는 명시되지 않은 경우 경험칙(heuristic)으로 간주됩니다. 작업 흐름은 범위 지정, 렌더링 스캔, 컨트롤 매트릭스 비교, 수정, 보고 순서로 진행되며, 모바일 환경(iOS/Android)에서의 반응형 및 터치 최적화도 포함합니다. 주로 Claude Code, Cursor, Codex 등 터미널 기반 AI 코딩 도구와 함께 사용하기에 적합합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/sukirman1901/frontend-expert/tree/HEAD/skills/polish

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

Polish (다듬기)

개요

토큰, 구조, 안티-슬롭 이후에 마이크로-크래프트를 적용하여 렌더링된 표면에서 UI가 올바르게 느껴지도록 합니다. 여기에 제시된 수치 레시피는 별도의 표준이나 프로젝트 토큰이 있지 않는 한 경험칙(heuristics)입니다.

사용 시기

  • /ui 빌드 마무리 단계 (anti-slop-design 이후)
  • /polish / "세부 조정" / "뭔가 어색함"
  • 호버, 누름, 진입/진출, 아이콘 교체와 같은 미세 상호작용

건너뛰어야 할 때

  • 구조적 그리드/간격/계층 구조 → design-foundations
  • 렌더링 방향 비교 / 모든 상태 강조 → prototype
  • 중첩된 둥근 모서리 / 입체감 언어 → design-surfaces
  • 타이포그래피 역할, 줄바꿈, 생략 → design-typography
  • 준수 여부 (대비, 이름, 키보드) → accessibility
  • 모션 시스템 / 명명된 패밀리 → motion
  • 카피 전용 / "AI 작성 텍스트" / 빈 상태 문구 → content-design
  • "코드 정리" / 생성된 구현체 → anti-slop-code
  • 렌더링된 UI 변경이 없는 백엔드 전용 수정

반드시 지켜야 할 사항 (MUST)

규칙세부 사항
렌더링된 증거줄바꿈, 정렬, 누름, 둥근 모서리는 소스 코드만이 아닌 렌더링된 UI를 기준으로 판단하세요
토큰 우선--radius, 간격, 타이포그래피 토큰을 사용하고, 토큰이 존재하는데 임시 값을 새로 만들지 마세요
레시피 분류0.96, 지연 ms 및 유사한 숫자를 경험칙으로 표시하세요
가장 저렴한 유효 수정장식 제거 → 네이티브 CSS → 프로젝트 토큰 재사용 → 그런 다음 추상화 추가
모바일 크래프트<768px에서 전체 너비 기본 CTA; 고정 크롬에 safe-area; 엄지손가락이 닿는 영역에 작업 배치
transition: all 금지속성을 명시적으로 지정하고, Tailwind의 기본 transition 사용을 피하세요
컨트롤 지오메트리 증명보류 중/로딩 상태와 적용 가능한 LTR/RTL을 포함한 전체 컨트롤 매트릭스를 렌더링한 후 광학 정렬을 승인하세요

크래프트 (시작점)

항목시작점분류인계
중첩된 모서리곡선이 중심을 공유할 때 외부 ≈ 내부 + inset경험칙design-surfaces
컨트롤 내 아이콘기하학적 중심보다 광학적 미세 조정권장사항—
섹션 깊이프로젝트 테두리/입체감 언어프로젝트 기본값design-surfaces
호버/토글중단 가능한 CSS 전환권장사항안무가 필요하면 motion
누름누름 피드백이 필요할 경우 scale(0.96)경험칙—
동적 숫자tabular-nums권장사항design-typography
짧은 제목text-wrap: balance권장사항design-typography
터치 영역44×44 터치 / ≥40 조밀한 데스크탑권장사항WCAG 2.5.8(24px)을 위해 accessibility

예외: 알약/원형, 조밀한 툴바(누름 스케일 비활성화), 동작 감소, 비-동심 브랜드 언어, 윤곽선이 필요 없는 이미지.

컨트롤 지오메트리

  • 텍스트 전용, 앞쪽 아이콘, 뒤쪽 아이콘, 아이콘 전용, 보류 중/로딩 상태를 포함한 렌더링된 광학 변형 매트릭스

기하학적 중앙 정렬(inline-flex / items-center / justify-center)은 필요 조건이지만 증명은 아닙니다. 보편적인 픽셀 오프셋은 없습니다: 먼저 렌더링된 매트릭스를 비교한 다음, 고정된 아이콘 슬롯이나 글리프 내부에 가장 작은 보정을 적용하세요.

아이콘-레이블 콘텐츠 그룹과 인지된 시각적 질량이 변형 및 상태 간에 균형을 이루고 중앙에 위치하는지 판단하세요. 레이블의 기준선/캡-높이 관계를 아이콘과 별도로 평가하세요. 레이블 자체가 아이콘+텍스트 변형에서 컨트롤의 중심을 차지할 필요는 없습니다. 아이콘 시각적 무게, 토큰 간격, 대칭 토큰 패딩, 포커스, 터치 영역, 비활성화, 보류 중/로딩 상태를 함께 확인하고, 의도하지 않은 콘텐츠 그룹이나 컨트롤 너비 이동이 없는지 확인하세요. 제품이 지원하는 경우 LTR과 RTL을 모두 포함하세요.

안정적인 보류 중 지오메트리가 기본값입니다. 명시적인 측정-모핑 예외(references/component-patterns.md 참조)의 경우, 두 종단점과 대상 재생을 검사하고, 인접 동작이 안정적으로 유지되는지 확인한 후 증거와 함께 예외를 보고하세요. 의도적인 모핑이 우발적인 스피너 이동이나 접근성 이름 누락을 정당화하지 않습니다.

워크플로우

  1. 범위 설정 — 표면 이름을 지정하고, 구조적 또는 토큰 시스템 작업은 건너뜁니다.
  2. 스캔 — 1x/2x, 라이트/다크, 호버/누름/포커스, 모바일 너비로 렌더링합니다.
  3. 컨트롤 매트릭스 — 텍스트 전용, 앞쪽/뒤쪽 아이콘, 아이콘 전용, 보류 중/로딩, 적용 가능한 LTR/RTL을 렌더링된 크기에서 비교합니다.
  4. 수정 — 가장 저렴한 유효 변경; 값을 토큰에 매핑하고, 광학 보정을 아이콘 슬롯 내부에 유지합니다.
  5. 보고 — 원칙별로 그룹화된 Before/After 표; 검사되지 않은 상태는 확인되지 않음으로 표시합니다.

경계

  • 결정할 수 있음: 광학 미세 조정, 명명된 전환, tabular-nums, 줄바꿈 도우미, 프로젝트에 없는 경우 누름 피드백.
  • 해서는 안 됨: 0.96, 바운스 0, 또는 동심 반경을 보편 법칙으로 취급함; 깨진 레이아웃 위에 polish를 적용함; 브랜드 폰트를 대체함.

체크리스트

  • 중첩된 둥근 모서리가 광학적으로 확인됨 (또는 design-surfaces로 인계됨)
  • 아이콘이 어색해 보이는 곳에서 광학적으로 중앙 정렬됨
  • 전체 렌더링된 컨트롤 매트릭스 확인됨: 텍스트 전용, 앞쪽/뒤쪽 아이콘, 아이콘 전용, 보류 중/로딩, 해당 시 LTR/RTL
  • 아이콘-레이블 그룹/인지된 시각적 질량이 중앙에 위치함; 레이블 기준선/캡-높이 관계, 아이콘 시각적 무게, 토큰 간격/패딩 확인됨
  • 포커스, 터치 영역, 비활성화, 로딩 상태에서 레이블이나 너비 이동 없이 지오메트리 유지
  • transition: all 없음; 호버/누름 중단 가능
  • 동적 숫자가 지터링될 수 있는 곳에 tabular-nums 사용
  • 제목 text-balance; 유용한 곳에 짧은 카피 text-pretty
  • 터치 영역이 겹치지 않으면서 44/40 가이드라인 충족
  • 모바일 크래프트: <768px에서 전체 너비 기본 CTA, safe-area, 엄지 영역
  • 경험칙에 레이블 지정; 테스트되지 않은 상태는 확인되지 않음으로 표시

심층 정보

전체 예제: references/polish.md. 관련 항목: design-surfaces, design-foundations, design-typography, motion, accessibility, references/evidence-policy.md.

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

관련 스킬