Install any skill in seconds. Free to start, no credit card required.
Get Started Free →모든 화면을 구성하는 10개 GUI 요소(버튼·폼·메뉴·링크·다이얼로그·알림·아이콘·체크박스/라디오·탭·검색)와 보너스 2(윈도우·포인터)에 대한 증거 기반 사용성 가이드라인 86종. UX Tigers(Jakob Nielsen, 2026-07-29) "10 GUI Design Elements"를 shadcn 컴포넌트와 1:1로 매핑해 한국어 실용 지침으로 증류. design-prompt-builder 패턴 3(디자인 시스템 생성)·패턴 6(사용성 감사)이 컴포넌트별 체크리스트로 참조. 다음과 같은 요청 시 반드시 이 스킬을 사용하세요: - "컴포넌트 사용성 가이드라인" - "GUI 위젯 설계 규칙" - "버튼/폼/다이얼로그 잘 만드는 법" - "Nielsen GUI 가이드라인" - "디자인 시스템 컴포넌트 감사 체크리스트"
.claude/skills/modu-ai-design-gui-guide/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 155% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 193% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 202% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 162% | 0% |
| case-15 | ✗→✓ | ▲ Improved | 202% | 0% |
거의 모든 화면은 10개 표준 GUI 요소로 조립된다. 각 요소는 40년+ 다윈 필터를 통과한 관습이다 — Jakob's Law(사용자는 다른 사이트에서 보던 대로 너의 것도 작동하길 기대한다)가 익숙한 버전을 늘 더 낫게 만든다. 혁신 예산은 새 체크박스 종자를 만드는 데 쓰지 말고 콘텐츠와 서비스에 써라.
근거: UX Tigers, Jakob Nielsen, "10 GUI Design Elements Build Every User Interface" (2026-07-29) — 86개 증거 기반 가이드라인 + 보너스 2. 본 스킬은 이를 한국어 실용 지침으로 증류하고 shadcn 63종과 매핑한다. 원문 가이드라인(사용성 원칙·방법)을 재서술한 것이지 복사한 것이 아니다.
세 가지 상위 명제 (모든 86개 지침은 이 아래 있다):
| 소비자 | 사용 방법 | |---|---| | design-prompt-builder 패턴 3 | 디자인 시스템 생성 시 각 컴포넌트를 해당 요소 가이드라인에 맞춰 설계 | | design-prompt-builder 패턴 6 | 사용성 감사 시 Nielsen 10 휴리스틱 + 본 86개 지침(컴포넌트 단위)으로 평가 | | design-system-prep | DESIGN.md Component recipes 품질 기준 | | design-slop-check | 카피 중심 검수의 보완 — 컴포넌트 동작·레이아웃 품질은 본 스킬 |
shadcn: Button · Button Group
버튼은 세계를 바꾸는 유일한 요소(링크·탭은 옮기고, 메뉴·다이얼로그는 대화를 재배열할 뿐). 그래서 라벨 규칙이 가장 엄격하다 — 잘못된 링크는 Back 한 번이지만, 잘못된 버튼은 고객 한 명을 잃는다.
> Split button: 주 액션(큰 영역, 1클릭) + 변형(작은 영역, 화살표/3점). 한 명령이 빈도로 압도적일 때만. 두 영역 사이 가시적 구분자 필수. 기본 하나가 안 정해지면 일반 메뉴 버튼을 써라.
shadcn: Input · Input Group · Input OTP · Textarea · Label · Field · Select · Native Select · Combobox · Date Picker · Checkbox · Radio Group · Switch · Toggle · Toggle Group · Slider
폼은 체크아웃·가입·리드 발생 — 사용성이 수익으로 직결된다(UX = profits). 가장 강한 지침은 뺄셈: 불필요한 필드 하나마다 완료율이 떨어진다. 선택 필드도 필드 세금(주의를 소모)을 매긴다 — DB에서 선택이어도 사용자 주의에선 선택이 아니다.
> 부담 인쇄 역설: "3문항, 40초"처럼 부담을 미리 말하면 두려움이 거래로 바뀐다. 단, 거짓말 금지 — 1분이라 했는데 5분이면 신뢰가 사라진다.
shadcn: Dropdown Menu · Navigation Menu · Menubar · Context Menu · Breadcrumb
메뉴는 공간 절약 + 인식 우위(가시 선택에서 고르기). 단, 완결성 주장이라는 함정 — 사용자는 메뉴를 "부엌이 만들 수 있는 전체 목록"으로 읽는다. 열리지 않을 라벨 아래 있는 것은 사용자에겐 없는 것이다.
shadcn: (Typography·Breadcrumb 맥락)
링크는 두 약속 — 클릭 가능하다는 시각 약속(색+밑줄)과, 반대편에 무엇이 있는지에 대한 약속(information scent). "Click here"/"Learn more"는 향이 0이다. 스캐닝 사용자는 링크 앞 11문자를 주로 읽는다.
> 핵심 경계: 링크는 가고, 버튼은 한다. 두 언어를 흐리면 매 클릭마다 작은 세금이 붙는다.
shadcn: Dialog · Alert Dialog · Sheet · Drawer
Modal은 모든 작업을 차단하고 사용자의 작업 기억에 세금을 매긴다. 그래서 중단을 벌어야 한다 — 차단 결정, 되돌릴 수 없는 결과, 없으면 진행 못 하는 입력.
> 다크 패턴 경고: 오버레이는 3% 전환은 측정하지만 97%의 반감은 측정 안 된다 — "원한은 이벤트 핸들러가 없다". 강제 전환의 비용도 같이 측정하라.
shadcn: Alert · Toast · Message · Message Scroller
에러 메시지 가이드라인은 GUI 이전부터: 평언으로 무엇이 잘못됐는지, 정확히 어디서, 어떻게 복구하는지 — 사용자 탓 금지.
> Toast 함정: 자가 소멸이라 확인용("메시지 전송됨")엔 좋지만, 사용자가 조치해야 할 에러에 쓰면 4초 뒤 사라져 하드 웨이로 재발견된다.
shadcn: Lucide 아이콘 전반
아이콘의 만성 약점 — 사용자가 낯선 그림을 자주 잘못 추측. 보편 인식에 가까운 건 손에 꼽는다(돋보기·집·기어·휴지통). 나머지는 테스트 대기 중인 가설.
> 텍스트 라벨은 살 수 있는 가장 싼 사용성 보험이다. 라벨링된 아이콘은 수업이고, 라벨 없는 아이콘은 시험이다.
shadcn: Checkbox · Radio Group · Switch · Toggle · Toggle Group
형태가 선택 모델을 가르친다 — 네모는 복수, 동그라미는 정확히 1개. 수십년 노출로 사용자가 배운 문법. 디자이너가 둘을 바꾸면 화면이 자기 규칙에 대해 거짓말한다.
shadcn: Tabs
물리적 비유가 규칙을 정한다 — 선택 탭은 패널에 붙어 보여야, 미선택은 클릭 가능하되 종속적으로. 라벨은 짧고 1행이 한도.
shadcn: Command
검색은 살아남은 명령줄 — 가능성 공간이 메뉴를 넘어서면 글자가 이긴다. AI 프롬프트 입력란도 같은 화석의 환생. 검색 로그는 얻을 수 있는 가장 싼 사용자 리서치다.
shadcn: Sidebar · Scroll Area · Resizable (컨텍스트)
오늘날 디자이너는 윈도우(브라우저 탭)를 상속받지 디자인하지 않는다. 남은 설계 질문은 "언제 새 창을 띄울까" — 답: 드물게. 깜짝 창은 웹의 후진 기어(Back)를 부순다.
shadcn: (커서/포커스 표시 — 간접)
포인터 형태는 클릭이 할 일을 알리는 기호 언어 — 화살표·손·잡기 손·I-beam. 디자이너가 커서를 직접 그리는 일은 드물지만 신호를 존중해야 한다.
| 하려는 일 | 쓸 것 | 금지 | |---|---|---| | 페이지 이동 | Link | 버튼으로 복장 | | 즉시 실행(상태 토글) | Switch / Toggle | Save 버튼 위 토글(모순) | | 제출로 확정 | Checkbox + Button | 같은 것에 토글 | | 복수 선택 | Checkbox | Radio | | 정확히 1개 | Radio | Checkbox | | 차단 결정 | Modal Dialog | 인라인 가능한 데 modal | | FYI 확인 | Toast | 에러(사라지면 안 됨) | | 정보가 많은 내비게이션 | Search / Command | 햄버거(데스크톱) |
| 스킬 | 사용 시점 | |---|---| | moai-designer:design-prompt-builder | 패턴 3(생성)·6(감사)이 본 가이드라인을 컴포넌트별 체크리스트로 참조 | | moai-designer:design-system-prep | DESIGN.md Component recipes 품질 기준 | | moai-designer:design-slop-check | 카피 중심 검수의 보완 — 컴포넌트 동작·레이아웃 품질은 본 스킬 | | moai-designer:design-system-library | shadcn vanilla 컴포넌트 참조 마크업과 본 가이드라인의 짝 |
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 29,272 | 33,984 | +16% | 1 | 1 | 0% | 4,013 | 10,215 | +155% | 0 | 0 | — |
case-02 | fail→pass | 25,630 | 31,604 | +23% | 1 | 1 | 0% | 3,329 | 9,765 | +193% | 0 | 0 | — |
case-03 | pass→pass | 28,392 | 26,484 | -7% | 1 | 1 | 0% | 3,763 | 8,902 | +137% | 0 | 0 | — |
case-04 | fail→pass | 17,426 | 21,689 | +24% | 1 | 1 | 0% | 2,757 | 8,323 | +202% | 0 | 0 | — |
case-05 | pass→pass | 20,440 | 21,029 | +3% | 1 | 1 | 0% | 2,490 | 7,999 | +221% | 0 | 0 | — |
case-06 | pass→pass | 17,481 | 24,668 | +41% | 1 | 1 | 0% | 2,572 | 8,464 | +229% | 0 | 0 | — |
case-07 | pass→pass | 22,188 | 21,349 | -4% | 1 | 1 | 0% | 2,820 | 8,176 | +190% | 0 | 0 | — |
case-08 | pass→pass | 19,673 | 21,442 | +9% | 1 | 1 | 0% | 2,374 | 8,207 | +246% | 0 | 0 | — |
case-09 | fail→pass | 24,136 | 17,237 | -29% | 1 | 1 | 0% | 3,195 | 8,377 | +162% | 0 | 0 | — |
case-10 | pass→pass | 21,045 | 15,109 | -28% | 1 | 1 | 0% | 2,723 | 8,181 | +200% | 0 | 0 | — |
case-11 | pass→pass | 19,199 | 17,500 | -9% | 1 | 1 | 0% | 3,098 | 8,376 | +170% | 0 | 0 | — |
case-12 | pass→pass | 10,380 | 22,947 | +121% | 1 | 1 | 0% | 1,655 | 7,568 | +357% | 0 | 0 | — |
case-13 | pass→pass | 19,170 | 18,860 | -2% | 1 | 1 | 0% | 2,501 | 7,804 | +212% | 0 | 0 | — |
case-14 | pass→pass | 21,588 | 20,961 | -3% | 1 | 1 | 0% | 2,801 | 8,314 | +197% | 0 | 0 | — |
case-15 | fail→pass | 20,721 | 19,228 | -7% | 1 | 1 | 0% | 2,552 | 7,696 | +202% | 0 | 0 | — |
case-16 | pass→pass | 16,536 | 19,469 | +18% | 1 | 1 | 0% | 2,702 | 7,908 | +193% | 0 | 0 | — |
case-17 | pass→pass | 16,283 | 16,335 | +0% | 1 | 1 | 0% | 2,945 | 8,281 | +181% | 0 | 0 | — |
case-18 | pass→pass | 22,736 | 23,759 | +4% | 1 | 1 | 0% | 3,131 | 8,526 | +172% | 0 | 0 | — |
case-19 | pass→fail | 8,781 | 10,939 | +25% | 1 | 1 | 0% | 1,861 | 6,544 | +252% | 0 | 0 | — |
case-20 | pass→pass | 12,194 | 14,673 | +20% | 1 | 1 | 0% | 1,986 | 6,899 | +247% | 0 | 0 | — |
case-21 | pass→fail | 21,614 | 30,010 | +39% | 1 | 1 | 0% | 4,112 | 10,076 | +145% | 0 | 0 | — |
case-22 | fail→pass | 16,825 | 17,355 | +3% | 1 | 1 | 0% | 2,939 | 8,268 | +181% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +18 percentage points is the difference between those two pass rates over the 22 comparable cases. 2 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.