# UI 메뉴판 (ui-menu) · Giting Skills
> 말로 설명하던 UI에 이름을 붙여 주는 사전. 별칭(사람이 실제로 하는 말) → 정식 명칭 → 바로 쓰는 요청 문장 → 실물 HTML. 11개 코스 131개 항목.
> AI한테 시키는 공식: [어디에] + [컴포넌트 이름] + [개수] + [세부 조건]
> ✕ "FAQ 만들어줘" → ○ "푸터 위 섹션에 아코디언 5개. 처음엔 다 접혀 있고, 하나 열면 나머지 닫히게"
> 갤러리: https://giting.kr/skills/ · repo: https://github.com/hanmariyang/giting-skills (MIT)
> Claude Code 설치: /plugin marketplace add hanmariyang/giting-skills → /plugin install ui-menu@giting
## ① 페이지 뼈대
### 헤더 (Header)
- 별칭: "맨 위에 있는 바" · "상단 바" · "위에 로고 있는 줄"
- 정의: 페이지 맨 위, 로고와 메뉴가 사는 가로 줄.
- 구분: 맨 위 전체 띠가 헤더, 그 안의 메뉴 묶음이 네비게이션 바
- 요청 문장: 상단에 헤더를 만들어줘. 로고는 왼쪽, 메뉴는 오른쪽, 스크롤해도 위에 고정되게.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/header.html
```html
헤더 Header · UI 메뉴판로고
스크롤해도 위에 고정 (position: sticky)
```
### 네비게이션 바 (Navbar / GNB)
- 별칭: "메뉴 줄" · "카테고리 바" · "GNB"
- 정의: 사이트의 큰 메뉴를 모아 둔 이동 줄. 보통 헤더 안에 산다.
- 구분: 사이트 전체 메뉴 줄이면 네비게이션 바, 그 줄을 담는 전체 띠가 헤더
- shadcn: NavigationMenu
- 요청 문장: 헤더 안에 홈·소개·가격·문의 네비게이션 바를 넣어줘. 현재 페이지는 진하게.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/navbar.html
```html
네비게이션 바 Navbar / GNB · UI 메뉴판
현재 페이지는 aria-current="page" + 진하게
```
### 히어로 (Hero)
- 별칭: "첫 화면에 크게 나오는 거" · "메인 배너" · "대문"
- 정의: 들어오자마자 보이는 큰 제목과 버튼 구역. 페이지의 첫인상.
- 구분: 첫 화면의 큰 구역이면 히어로, 가로로 긴 알림 띠면 배너
- 요청 문장: 히어로 섹션을 만들어줘. 큰 제목, 한 줄 설명, 시작하기 버튼 순서로.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/hero.html
```html
히어로 Hero · UI 메뉴판
AI로 사이트, 10분이면 됩니다
누구나 할 수 있어요
```
### 사이드바 (Sidebar)
- 별칭: "옆에 세로로 붙은 메뉴" · "왼쪽 메뉴" · "옆 패널"
- 정의: 화면 옆에 세로로 붙는 메뉴·목차 영역.
- 구분: 항상 붙어 있으면 사이드바, 눌렀을 때만 나오면 드로어
- shadcn: Sidebar
- 요청 문장: 왼쪽에 고정 사이드바를 두고 오른쪽이 본문인 2단 레이아웃으로 잡아줘.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/sidebar.html
```html
사이드바 Sidebar · UI 메뉴판
옆에 세로로 붙는 메뉴. 본문에는 min-width: 0.
```
### 푸터 (Footer)
- 별칭: "맨 아래 정보 나오는 데" · "하단" · "바닥글"
- 정의: 페이지 맨 아래, 저작권·링크·연락처가 모이는 줄.
- 요청 문장: 푸터에 저작권 문구와 이용약관·개인정보처리방침 링크를 넣어줘.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/footer.html
```html
푸터 Footer · UI 메뉴판
본문
```
### 섹션 (Section)
- 별칭: "가로로 잘린 한 덩어리" · "구역" · "단락 블록"
- 정의: 페이지를 가로로 자른 한 덩어리. 소개 섹션, 가격 섹션처럼 부른다.
- 요청 문장: 소개·기능·가격 세 섹션으로 나누고, 가운데 섹션만 연한 배경으로 구분해줘.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/section.html
```html
섹션 Section · UI 메뉴판
섹션 1
섹션 2
섹션 3
```
### 컨테이너 (Container)
- 별칭: "가운데로 모아주는 거" · "본문 폭 제한" · "가운데 정렬 틀"
- 정의: 내용이 넓게 퍼지지 않게 최대 폭을 잡고 가운데 모으는 보이지 않는 틀.
- 요청 문장: 본문을 최대 1200px 컨테이너로 감싸서 가운데 정렬해줘.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/container.html
```html
컨테이너 Container · UI 메뉴판
점선 상자가 컨테이너. max-width + margin: 0 auto 로 가운데 정렬. 바깥 회색이 화면.
```
### 그리드 (Grid)
- 별칭: "바둑판처럼 배치" · "3개씩 나란히" · "격자"
- 정의: 칸을 격자로 나눠 나란히 배치하는 방식.
- 요청 문장: 이 목록을 3열 그리드로 배치해줘. 모바일에서는 1열로.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/grid.html
```html
그리드 Grid · UI 메뉴판
1
2
3
4
5
6
3열 그리드 · 간격은 gap으로
```
### 카드 (Card)
- 별칭: "네모 박스 하나하나" · "박스형" · "테두리 있는 덩어리"
- 정의: 이미지·제목·설명을 한 덩어리로 묶은 네모 상자.
- 구분: 상자로 감싸 나누면 카드, 상자 없이 간격으로 나누면 여백으로 묶기
- shadcn: Card (Header·Content·Footer 완전 조립)
- 요청 문장: 각 항목을 썸네일·제목·설명 순서의 카드로 만들어줘.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/card.html
```html
카드 Card · UI 메뉴판
카드 제목
이미지 · 제목 · 설명 한 덩어리
```
### 카드 그리드 (Card Grid)
- 별칭: "카드를 격자로" · "카드 여러 개 나란히" · "상품 목록처럼"
- 정의: 카드를 격자로 반복 배치한 것. 목록 화면의 단골.
- 요청 문장: 리포트 목록을 3열 카드 그리드로 보여줘. 카드는 썸네일·제목·요약 구성.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/card-grid.html
```html
카드 그리드 Card Grid · UI 메뉴판
카드 1
카드 2
카드 3
카드를 격자로 반복
```
### 여백으로 묶기 (Grouping by Whitespace)
- 별칭: "카드 말고 깔끔하게 묶어줘" · "박스 좀 빼줘" · "테두리 없이 정리해줘"
- 정의: 상자를 씌우지 않고 간격 차이(묶음 안은 좁게, 묶음 사이는 넓게)와 글자 크기만으로 묶음을 나누는 방식.
- 구분: 상자로 감싸 나누면 카드, 간격과 글자로만 나누면 여백으로 묶기
- 요청 문장: 목록을 카드로 감싸지 말고 여백으로 묶어줘. 같은 묶음 안 행 간격은 12px, 묶음 사이는 40px, 묶음 제목은 15px 굵게. 테두리·그림자·배경색은 쓰지 말고 행 사이에만 1px 구분선.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/whitespace-group.html
```html
여백으로 묶기 Grouping by Whitespace · UI 메뉴판
업무
견적서 보내기오늘
회의록 정리내일
집
장보기오늘
택배 반품금요일
```
### 피처 카드 (Featured Card)
- 별칭: "제일 중요한 것만 박스로" · "맨 위 하나만 눈에 띄게" · "카드는 하나만 써줘"
- 정의: 화면에서 가장 중요한 하나만 카드로 세우고 나머지는 카드 없는 목록으로 둬서, 눈이 먼저 갈 곳을 정한다.
- 구분: 카드를 여러 장 늘어놓으면 카드 그리드, 한 장만 세워 시선을 모으면 피처 카드
- 요청 문장: 맨 위 「지금 할 일」 하나만 카드로 만들어줘. 연한 바탕색과 둥근 모서리 16px, 안쪽 여백 20px. 그 아래 목록은 카드 없이 행과 1px 구분선만 쓰고, 카드는 이 화면에 하나만.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/featured-card.html
```html
피처 카드 Featured Card · UI 메뉴판
지금 할 일견적서 보내기
회의록 정리
장보기
택배 반품
```
### 테이블 (Table)
- 별칭: "표" · "엑셀처럼 줄 맞춘 거" · "행렬로 정리"
- 정의: 행과 열로 데이터를 맞춰 보여주는 표.
- shadcn: Table
- 요청 문장: 이름·날짜·상태 3열 테이블로 정리해줘. 상태는 색으로 구분되게.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/table.html
```html
테이블 Table · UI 메뉴판
```
## ② 이동 · 탐색
### 탭 (Tabs)
- 별칭: "위에 눌러서 화면 바뀌는 거" · "칸 전환 버튼" · "메뉴 눌러서 내용 바뀌는 거"
- 정의: 버튼을 눌러 같은 자리의 내용을 갈아 끼우는 전환 장치.
- 구분: 같은 자리 내용을 갈아 끼우면 탭, 다른 페이지로 이동하면 네비게이션
- shadcn: Tabs
- 요청 문장: 월간·연간 두 개 탭으로 요금표가 전환되게 해줘.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/tabs.html
```html
탭 Tabs · UI 메뉴판
월 9,900원. 언제든 해지.
연 99,000원. 두 달 무료.
```
### 아코디언 (Accordion)
- 별칭: "접었다 폈다 되는 거" · "클릭하면 펼쳐지는 목록" · "FAQ 접기"
- 정의: 제목을 누르면 내용이 접히고 펼쳐지는 목록.
- 구분: 여러 개를 동시에 펼 수 있으면 아코디언, 한 번에 하나만 보이면 탭
- shadcn: Accordion
- 요청 문장: FAQ를 아코디언 5개로 만들어줘. 처음엔 다 접혀 있고, 하나 열면 나머지 닫히게.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/accordion.html
```html
아코디언 Accordion · UI 메뉴판
무료인가요?
네, 기본 기능은 무료예요.
환불 되나요?
7일 이내 전액 환불됩니다.
계정 필요해요?
아니요, 바로 쓸 수 있어요.
```
### 브레드크럼 (Breadcrumb)
- 별칭: "홈 > 제품 > 이런 거" · "지금 위치 나오는 줄" · "경로 표시"
- 정의: 홈 / 제품 / 노트북처럼 지금 어디에 있는지 보여주는 경로 줄.
- shadcn: Breadcrumb
- 요청 문장: 상세 페이지 제목 위에 브레드크럼을 넣어줘. 마지막 항목만 진하게.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/breadcrumb.html
```html
브레드크럼 Breadcrumb · UI 메뉴판
노트북
```
### 스텝퍼 (Stepper / Progress Steps)
- 별칭: "1-2-3 단계 나오는 거" · "진행 단계 표시" · "몇 단계 중 몇 번째"
- 정의: 1 - 2 - 3 순서로 지금 몇 단계인지 보여주는 진행 표시.
- 구분: 진행 단계 표시면 스텝퍼, 숫자를 조절하는 칸이면 수량 조절(카운터)
- 요청 문장: 신청 과정을 정보 입력·확인·완료 3단계 스텝퍼로 보여줘. 지난 단계는 체크로.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/stepper.html
```html
스텝퍼 Stepper / Progress Steps · UI 메뉴판
✓
2
3
정보 입력확인완료
```
### 페이지네이션 (Pagination)
- 별칭: "아래에 1 2 3 페이지 숫자" · "페이지 넘기기" · "다음 페이지 버튼"
- 정의: 긴 목록을 1·2·3 페이지로 나눠 넘기는 번호 줄.
- 구분: 숫자로 나눠 넘기면 페이지네이션, 바닥에서 자동으로 이어지면 무한 스크롤, 버튼으로 이어붙이면 더보기
- shadcn: Pagination
- 요청 문장: 목록 아래에 페이지네이션을 넣어줘. 10개씩 끊고 현재 페이지는 진하게.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/pagination.html
```html
페이지네이션 Pagination · UI 메뉴판
```
### 무한 스크롤 (Infinite Scroll)
- 별칭: "내리면 계속 나오는 거" · "끝없이 로딩" · "SNS 피드처럼"
- 정의: 바닥에 닿으면 다음 내용을 계속 불러오는 방식.
- 구분: 자동으로 이어지면 무한 스크롤, 버튼을 눌러야 이어지면 더보기
- 요청 문장: 피드를 무한 스크롤로 만들어줘. 바닥 근처에서 다음 20개를 불러오게.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/infinite-scroll.html
```html
무한 스크롤 Infinite Scroll · UI 메뉴판
내리면 계속 불러와요
```
### 더보기 버튼 (Load More)
- 별칭: "눌러야 더 나오는 거" · "더보기 눌러서 펼치기" · "10개씩 더 보기"
- 정의: 누르면 다음 묶음을 이어서 보여주는 버튼. 무한 스크롤의 수동 버전.
- 구분: 버튼을 눌러야 이어지면 더보기, 자동이면 무한 스크롤
- 요청 문장: 목록은 6개만 보여주고, 더보기 버튼을 누르면 6개씩 추가되게 해줘.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/load-more.html
```html
더보기 버튼 Load More · UI 메뉴판
```
### 캐러셀 (Carousel / Slider)
- 별칭: "옆으로 넘기는 배너" · "슬라이드" · "좌우로 돌아가는 이미지"
- 정의: 여러 장을 옆으로 넘겨 보는 회전 목록.
- shadcn: Carousel
- 요청 문장: 후기 3개를 좌우 화살표와 점 표시가 있는 캐러셀로 만들어줘.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/carousel.html
```html
캐러셀 Carousel / Slider · UI 메뉴판
"실측 수치부터 보게 됐어요."
"별점 대신 근거를 읽어요."
"리포트로 설득이 끝났어요."
```
### 드롭다운 메뉴 (Dropdown)
- 별칭: "누르면 아래로 목록 나오는 거" · "펼침 메뉴" · "호버하면 나오는 메뉴"
- 정의: 누르면 아래로 선택지 목록이 펼쳐지는 메뉴.
- 구분: 메뉴가 아래로 펼쳐지면 드롭다운, 폼에서 값을 고르는 입력칸이면 셀렉트
- shadcn: DropdownMenu
- 요청 문장: 프로필을 누르면 설정·로그아웃 드롭다운이 열리게 해줘. 바깥을 누르면 닫히게.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/dropdown.html
```html
드롭다운 메뉴 Dropdown · UI 메뉴판
```
### 햄버거 메뉴 (Hamburger Menu)
- 별칭: "줄 세 개 아이콘" · "삼선 버튼" · "모바일에서 메뉴 여는 거"
- 정의: ≡ 모양 아이콘. 모바일에서 메뉴를 접어 두는 버튼.
- 구분: ≡ 버튼 자체가 햄버거, 눌러서 나오는 판이 드로어
- shadcn: 조합: Button(size=icon) + Sheet
- 요청 문장: 모바일에서는 메뉴를 햄버거 버튼으로 접고, 누르면 드로어가 열리게 해줘.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/hamburger.html
```html
햄버거 메뉴 Hamburger Menu · UI 메뉴판
로고
☰ 아이콘: 모바일에서 메뉴를 접는 버튼. 누르면 보통 드로어가 열린다
```
### 드로어 (Drawer / Side Panel)
- 별칭: "옆에서 미끄러져 나오는 메뉴" · "햄버거 누르면 나오는 거" · "슬라이드 패널"
- 정의: 화면 옆에서 서랍처럼 밀려 나오는 판.
- 구분: 옆에서 밀려 나오면 드로어, 아래에서 올라오면 바텀 시트, 항상 붙어 있으면 사이드바
- shadcn: Sheet (하단이면 Drawer)
- 요청 문장: 햄버거 버튼을 누르면 오른쪽에서 드로어 메뉴가 나오게 해줘. 배경 누르면 닫히게.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/drawer.html
```html
드로어 Drawer / Side Panel · UI 메뉴판
오른쪽에서 서랍처럼 밀려 나옵니다
```
### 목차 (Table of Contents (TOC))
- 별칭: "긴 글 옆에 소제목 목록" · "글 목차" · "이 페이지에서 보기"
- 정의: 긴 글 옆에 붙는 소제목 목록. 지금 읽는 위치가 표시되면 더 좋다.
- 요청 문장: 글 오른쪽에 목차를 붙여줘. 스크롤하면 지금 읽는 소제목이 진해지게.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/toc.html
```html
목차 Table of Contents (TOC) · UI 메뉴판
```
### 하단 탭바 (Bottom Navigation / Tab Bar)
- 별칭: "앱 맨 아래 메뉴" · "밑에 아이콘 네 개" · "모바일 하단 바"
- 정의: 모바일 화면 맨 아래 고정되는 메뉴 줄. 앱의 기본 이동 수단.
- 요청 문장: 모바일에서 홈·검색·알림·내 정보 하단 탭바를 고정으로 넣어줘.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/bottom-nav.html
```html
하단 탭바 Bottom Navigation / Tab Bar · UI 메뉴판
```
### 앵커 링크 (Anchor Link)
- 별칭: "누르면 그 위치로 내려가는 거" · "페이지 안에서 점프" · "바로가기 스크롤"
- 정의: 같은 페이지 안의 특정 위치로 이동하는 링크.
- 요청 문장: '가격 보기'를 누르면 가격 섹션으로 부드럽게 스크롤되게 해줘.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/anchor-link.html
```html
앵커 링크 Anchor Link · UI 메뉴판
```
## ③ 내용 보여주기
### 리스트 (List)
- 별칭: "세로 줄줄이" · "목록" · "행마다 하나씩"
- 정의: 항목을 세로로 줄줄이 쌓은 목록. 행마다 눌러 들어갈 수 있으면 리스트 아이템.
- shadcn: Item
- 요청 문장: 신청 내역을 리스트로 보여줘. 행마다 제목·날짜·상태, 누르면 상세로.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/list.html
```html
리스트 List · UI 메뉴판
```
### 가격표 (Pricing Table)
- 별칭: "요금제 비교하는 거" · "플랜 3개 나란히" · "요금표"
- 정의: 플랜 여러 개를 나란히 비교하는 표. 추천 플랜은 눈에 띄게.
- 요청 문장: 무료·프로·팀 3단 가격표를 만들어줘. 프로에 '인기' 배지 달고 테두리 강조.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/pricing-table.html
```html
가격표 Pricing Table · UI 메뉴판
무료
0원
기본 기능 월 3회
인기
프로
9,900원
전체 기능 무제한
팀
문의
전담 지원 보안
```
### 후기 (Testimonial)
- 별칭: "사용자 후기 카드" · "리뷰 인용" · "고객 한마디"
- 정의: 사용자의 말 한마디를 얼굴·이름과 함께 담은 카드.
- 요청 문장: 후기 3개를 카드로 보여줘. 인용문·이름·소속 구성으로.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/testimonial.html
```html
후기 Testimonial · UI 메뉴판
"코딩 하나도 모르는데 이틀 만에 신청 페이지를 만들었어요."
김김하나대학생
```
### 통계 (Stats)
- 별칭: "큰 숫자 여러 개 나란히" · "숫자 자랑 구역" · "지표 나열"
- 정의: 핵심 숫자 여러 개를 가로로 크게 나열한 구역.
- 요청 문장: 누적 신청·만족도·평균 제작 시간을 큰 숫자 3개로 나란히 보여줘.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/stats.html
```html
통계 Stats · UI 메뉴판
2,060누적 신청98%만족도10분평균 제작
```
### 통계 카드 (Stat Card / Metric Card)
- 별칭: "숫자 하나에 증감 붙은 거" · "대시보드 숫자 칸" · "지표 카드"
- 정의: 숫자 하나와 증감 표시를 담은 카드. 대시보드의 기본 단위.
- shadcn: 조합: Card + 숫자 타이포
- 요청 문장: 이번 주 신청 수와 전환율을 통계 카드 2개로 보여줘. 증감은 색과 화살표로.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/stat-card.html
```html
통계 카드 Stat Card / Metric Card · UI 메뉴판
이번 주 신청48▲ 12%
전환율6.2%▼ 3%
```
### 로고 모음 (Logo Cloud)
- 별칭: "이런 데서 씁니다 구역" · "회사 로고 나열" · "고객사 로고 줄"
- 정의: 사용 중인 회사·서비스 로고를 나열해 신뢰를 보여주는 구역.
- 요청 문장: 히어로 아래에 '이런 곳에서 쓰고 있어요' 로고 모음을 회색톤으로 넣어줘.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/logo-cloud.html
```html
로고 모음 Logo Cloud · UI 메뉴판
이런 곳에서 쓰고 있어요
```
### 타임라인 (Timeline)
- 별칭: "시간 순서 세로줄" · "연혁" · "점 찍고 내려가는 거"
- 정의: 점과 선으로 시간 순서를 세로로 보여주는 것.
- 요청 문장: 프로젝트 진행을 타임라인으로 보여줘. 지난 일은 채운 점, 예정은 빈 점으로.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/timeline.html
```html
타임라인 Timeline · UI 메뉴판
아이디어 정리09.01
첫 화면 완성09.05
배포예정
```
### 갤러리 (Gallery)
- 별칭: "사진 격자" · "이미지 모아 놓은 거" · "사진첩처럼"
- 정의: 사진을 격자로 모아 보여주는 것.
- 요청 문장: 작업물 사진을 3열 갤러리로 배치해줘. 누르면 크게 보이게.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/gallery.html
```html
갤러리 Gallery · UI 메뉴판
사진 격자 · 누르면 라이트박스로 크게
```
### 라이트박스 (Lightbox)
- 별칭: "사진 누르면 크게 뜨는 거" · "확대 보기" · "배경 어두워지고 사진만"
- 정의: 사진을 누르면 배경이 어두워지며 크게 뜨는 보기 방식.
- 요청 문장: 갤러리 사진을 누르면 라이트박스로 크게 보이게 해줘. 배경이나 ESC로 닫히게.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/lightbox.html
```html
라이트박스 Lightbox · UI 메뉴판
사진 눌러서 크게 보기
```
### 인용문 (Blockquote)
- 별칭: "세로선 붙은 강조 문장" · "인용 박스" · "따옴표 구역"
- 정의: 왼쪽에 세로선을 붙여 강조하는 인용 문장.
- 요청 문장: 이 문장을 세로선 붙은 인용문 스타일로 강조해줘.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/blockquote.html
```html
인용문 Blockquote · UI 메뉴판
이름을 아는 순간 수정 요청이 한 번에 통해요.
```
### 코드 블록 (Code Block)
- 별칭: "검은 배경에 코드 나오는 거" · "코드 상자" · "복사 버튼 달린 코드"
- 정의: 어두운 배경에 고정폭 글꼴로 코드를 담는 상자. 복사 버튼은 기본.
- 요청 문장: 설치 명령어를 코드 블록으로 넣어줘. 오른쪽 위에 복사 버튼 달고.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/code-block.html
```html
코드 블록 Code Block · UI 메뉴판
prompt.txt
// AI한테 그대로 붙여넣기
신청 페이지 만들어줘
인풋 3개, 셀렉트 1개
유효성 검사 넣고
```
### 프로필 카드 (Profile Card)
- 별칭: "아바타에 이름에 버튼" · "사람 소개 카드" · "유저 카드"
- 정의: 아바타 + 이름 + 버튼으로 사람을 소개하는 카드.
- shadcn: 조합: Card + Avatar
- 요청 문장: 팀원을 프로필 카드로 보여줘. 사진·이름·역할·팔로우 버튼 구성.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/profile-card.html
```html
프로필 카드 Profile Card · UI 메뉴판
쥬이지우AI 활용 콘텐츠
```
### 알림 목록 (Notification List)
- 별칭: "종 누르면 나오는 목록" · "읽음 안 읽음 목록" · "알림함"
- 정의: 알림을 시간순으로 쌓은 목록. 안 읽은 것은 구분되게.
- 요청 문장: 알림 목록을 만들어줘. 안 읽은 알림은 배경색과 점으로 구분되게.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/notification-list.html
```html
알림 목록 Notification List · UI 메뉴판
새 신청이 들어왔어요방금
배포가 완료됐어요2시간 전
도메인이 연결됐어요어제
```
### 배너 (Banner)
- 별칭: "맨 위 가로로 긴 알림 띠" · "공지 띠" · "이벤트 줄"
- 정의: 페이지 맨 위에 걸리는 가로로 긴 알림 띠.
- 구분: 맨 위에 계속 걸려 있으면 배너, 잠깐 떴다 사라지면 토스트
- shadcn: Alert 응용
- 요청 문장: 헤더 위에 공지 배너를 넣어줘. 닫기 버튼 누르면 사라지게.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/banner.html
```html
배너 Banner · UI 메뉴판
9월 한정 무료로 열려 있어요
가로로 긴 알림 띠 · 페이지 맨 위에 걸린다
```
## ④ 입력받는 것
### 폼 (Form)
- 별칭: "신청서 전체" · "입력칸 묶음" · "제출하는 양식"
- 정의: 입력칸들과 제출 버튼을 묶은 양식 전체.
- shadcn: 조합: Form + FieldGroup + Field
- 요청 문장: 신청 폼을 만들어줘. 인풋 3개(이름·이메일·연락처), 유효성 검사 넣고, 제출하면 토스트로 완료 알림.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/form.html
```html
폼 Form · UI 메뉴판
```
### 인풋 (Input / Text Field)
- 별칭: "한 줄 입력칸" · "글자 쓰는 칸" · "텍스트필드"
- 정의: 한 줄짜리 글자 입력칸.
- shadcn: Input
- 요청 문장: 이름 인풋을 추가해줘. 라벨 위, 플레이스홀더는 예시 이름으로.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/input.html
```html
인풋 Input / Text Field · UI 메뉴판
```
### 텍스트에어리어 (Textarea)
- 별칭: "여러 줄 입력칸" · "긴 글 쓰는 칸" · "문의 내용 칸"
- 정의: 여러 줄을 쓸 수 있는 큰 입력칸.
- shadcn: Textarea
- 요청 문장: 문의 내용 텍스트에어리어를 넣어줘. 4줄 높이에 세로로만 늘어나게.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/textarea.html
```html
텍스트에어리어 Textarea · UI 메뉴판
```
### 체크박스 (Checkbox)
- 별칭: "네모에 체크하는 거" · "여러 개 고르는 거" · "동의 체크"
- 정의: 여러 개를 동시에 고를 수 있는 네모 체크칸.
- shadcn: Checkbox
- 요청 문장: 관심 분야를 체크박스로 만들어줘. 여러 개 선택 가능하게.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/checkbox.html
```html
체크박스 Checkbox · UI 메뉴판
여러 개 고를 수 있어요
```
### 라디오 버튼 (Radio Button)
- 별칭: "동그라미 중에 하나만 고르는 거" · "단일 선택" · "하나만 체크되는 거"
- 정의: 여러 개 중 하나만 고를 수 있는 동그란 선택 버튼.
- shadcn: RadioGroup
- 요청 문장: 경험 수준을 라디오 버튼 3개로 만들어줘. 하나만 선택되게.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/radio.html
```html
라디오 버튼 Radio Button · UI 메뉴판
```
### 슬라이더 (Slider / Range)
- 별칭: "드래그로 숫자 정하는 거" · "좌우로 끄는 바" · "범위 조절"
- 정의: 손잡이를 끌어 숫자나 범위를 정하는 바.
- shadcn: Slider
- 요청 문장: 예산 슬라이더를 넣어줘. 0~100만원, 현재 값이 위에 보이게.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/slider.html
```html
슬라이더 Slider / Range · UI 메뉴판
예산45만원
0100만원
```
### 검색바 (Search Bar)
- 별칭: "돋보기 검색창" · "검색하는 칸" · "찾기 입력칸"
- 정의: 돋보기 아이콘이 붙은 검색 입력칸.
- shadcn: InputGroup + InputGroupAddon(아이콘)
- 요청 문장: 헤더에 검색바를 넣어줘. 입력하면 아래에 결과가 미리 보이게.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/search-bar.html
```html
검색바 Search Bar · UI 메뉴판
```
### 파일 업로더 (File Upload)
- 별칭: "파일 올리는 칸" · "점선 박스에 끌어다 놓기" · "첨부하는 데"
- 정의: 파일을 올리는 칸. 점선 박스에 끌어다 놓는 형태가 단골.
- 요청 문장: 이미지 업로더를 점선 박스로 만들어줘. 클릭이나 드래그 둘 다 되고 5MB 제한.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/file-upload.html
```html
파일 업로더 File Upload · UI 메뉴판
```
### 드래그 앤 드롭 (Drag and Drop)
- 별칭: "끌어다 놓기" · "잡아서 옮기기" · "순서 바꾸기"
- 정의: 잡아서 끌어다 놓는 동작. 업로드, 순서 바꾸기에 쓴다.
- 요청 문장: 할 일 목록을 드래그 앤 드롭으로 순서 바꿀 수 있게 해줘.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/drag-drop.html
```html
드래그 앤 드롭 Drag and Drop · UI 메뉴판
```
### 타임피커 (Time Picker)
- 별칭: "시간 고르는 거" · "몇 시 선택" · "시간 입력칸"
- 정의: 시간을 고르는 입력칸.
- 요청 문장: 예약 시간을 타임피커로 받게 해줘. 30분 단위로만.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/time-picker.html
```html
타임피커 Time Picker · UI 메뉴판
```
### 수량 조절 (Number Stepper / Counter)
- 별칭: "마이너스 숫자 플러스" · "수량 플마 버튼" · "카운터"
- 정의: - 와 + 로 숫자를 조절하는 칸. 카운터라고도 한다.
- 구분: 숫자를 조절하는 칸이면 수량 조절, 진행 단계 표시면 스텝퍼
- shadcn: InputGroup 응용 (+/- 애드온)
- 요청 문장: 수량 조절 스텝퍼를 넣어줘. 최소 1, 최대 10.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/number-stepper.html
```html
수량 조절 Number Stepper / Counter · UI 메뉴판
카운터라고도 해요
```
### 인증번호 입력 (OTP Input)
- 별칭: "칸 여러 개에 숫자 하나씩" · "인증 코드 칸" · "6자리 입력"
- 정의: 칸 여러 개에 숫자를 하나씩 넣는 인증번호 입력. 한 칸씩 자동으로 넘어가게.
- shadcn: InputOTP
- 요청 문장: 6자리 인증번호 입력을 만들어줘. 입력하면 다음 칸으로 자동 이동.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/otp-input.html
```html
인증번호 입력 OTP Input · UI 메뉴판
한 칸씩 자동으로 넘어가게
```
### 태그 입력 (Tag Input / Chips Input)
- 별칭: "엔터 치면 칩으로 바뀌는 거" · "태그 다는 칸" · "키워드 여러 개 넣기"
- 정의: 입력하고 엔터를 치면 알약(칩)으로 바뀌는 다중 입력칸.
- 요청 문장: 관심 키워드를 태그 입력으로 받게 해줘. 엔터로 추가, ×로 삭제.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/tag-input.html
```html
태그 입력 Tag Input / Chips Input · UI 메뉴판
디자인AI
```
### 별점 (Rating)
- 별칭: "별 다섯 개" · "평점 매기는 거" · "별 누르는 거"
- 정의: 별을 눌러 점수를 매기는 입력.
- 요청 문장: 후기에 별점 5개짜리 입력을 넣어줘. 반 개 단위도 되게.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/rating.html
```html
별점 Rating · UI 메뉴판
★★★★★
4.0
```
### 컬러피커 (Color Picker)
- 별칭: "색 고르는 거" · "색상 선택" · "팔레트에서 찍기"
- 정의: 색을 고르는 입력. 고른 색의 코드가 같이 보이면 좋다.
- 요청 문장: 브랜드 색을 컬러피커로 고르게 해줘. 선택한 hex 코드가 보이게.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/color-picker.html
```html
컬러피커 Color Picker · UI 메뉴판
```
### 라벨 (Label)
- 별칭: "입력칸 위 이름표" · "칸 제목" · "무슨 칸인지 써 있는 거"
- 정의: 입력칸 위에 붙는 이름표. 어떤 칸인지 알려준다.
- shadcn: Label
- 요청 문장: 모든 입력칸 위에 라벨을 붙여줘. 필수는 라벨 옆에 * 표시.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/label.html
```html
라벨 Label · UI 메뉴판
↑ 입력칸 위 이름표가 라벨이에요
```
### 플레이스홀더 (Placeholder)
- 별칭: "흐리게 미리 써 있는 예시" · "입력 전에 보이는 회색 글자" · "힌트 글자"
- 정의: 입력 전 칸 안에 흐리게 보이는 예시 글자. 입력하면 사라진다.
- 요청 문장: 이메일 칸 플레이스홀더를 example@gmail.com 으로 넣어줘. 라벨 대신 쓰지는 말고.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/placeholder.html
```html
플레이스홀더 Placeholder · UI 메뉴판
↑ 흐리게 미리 써 있는 예시 글자
```
### 헬퍼 텍스트 (Helper Text)
- 별칭: "칸 아래 회색 안내 문구" · "입력 조건 설명" · "도움말 한 줄"
- 정의: 입력칸 아래 붙는 작은 안내 문구. 조건이나 팁을 알려준다.
- shadcn: FieldDescription
- 요청 문장: 비밀번호 칸 아래에 '영문·숫자 포함 8자 이상' 헬퍼 텍스트를 넣어줘.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/helper-text.html
```html
헬퍼 텍스트 Helper Text · UI 메뉴판
영문·숫자 포함 8자 이상
↑ 칸 아래 회색 안내 문구
```
### 필수 표시 (Required)
- 별칭: "별표 붙은 거" · "꼭 써야 하는 칸" · "* 표시"
- 정의: 꼭 입력해야 하는 칸이라는 별표(*) 표시.
- 요청 문장: 이름과 이메일은 필수로 하고 라벨에 빨간 * 를 붙여줘. 빈 채로 제출하면 막고.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/required.html
```html
필수 표시 Required · UI 메뉴판
별표(*)가 필수 표시 · input에는 required
```
### 유효성 검사 (Validation)
- 별칭: "형식 맞는지 확인하는 거" · "이메일 형식 검사" · "잘못 쓰면 알려주는 거"
- 정의: 입력이 형식에 맞는지 확인하는 것. 틀리면 그 자리에서 알려준다.
- shadcn: Field (data-invalid) + aria-invalid
- 요청 문장: 이메일과 전화번호에 유효성 검사를 넣어줘. 틀리면 제출 막고 칸 아래에 이유 표시.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/validation.html
```html
유효성 검사 Validation · UI 메뉴판
이메일 형식이 아니에요
형식이 맞는지 확인하는 것
```
### 인라인 에러 (Field Error / Inline Error)
- 별칭: "그 칸 아래 빨간 글씨" · "입력칸 에러 문구" · "칸마다 나오는 오류"
- 정의: 틀린 칸 바로 아래 뜨는 빨간 안내. 팝업 경고보다 이게 낫다.
- shadcn: FieldError
- 요청 문장: 에러는 alert 창 말고 각 칸 아래 인라인 에러로 보여줘. 테두리도 빨갛게.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/field-error.html
```html
인라인 에러 Field Error / Inline Error · UI 메뉴판
전화번호를 끝까지 입력해주세요
그 칸 아래 빨간 글씨 · 얼럿보다 이게 나아요
```
### 제출 (Submit)
- 별칭: "보내기 버튼" · "완료 버튼" · "폼 마지막 버튼"
- 정의: 폼을 보내는 마지막 버튼. 처리 중엔 잠그고, 끝나면 완료를 알린다.
- shadcn: Button (type=submit) + Spinner(저장 중)
- 요청 문장: 제출 버튼은 보내는 동안 '보내는 중'으로 잠기고, 성공하면 완료 표시가 뜨게 해줘.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/submit.html
```html
제출 Submit · UI 메뉴판
✓ 신청 완료됐어요
```
## ⑤ 누르는 것
### 버튼 (Button)
- 별칭: "누르는 거 전부" · "클릭하는 네모" · "버튼"
- 정의: 누르면 무언가 일어나는 것 전부. 눌러 보이는 게 중요하다.
- shadcn: Button
- 요청 문장: 이 텍스트를 버튼으로 바꿔줘. 호버하면 살짝 변하게.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/button.html
```html
버튼 Button · UI 메뉴판
누르는 것 전부를 버튼이라고 해요
```
### 프라이머리 버튼 (Primary Button)
- 별칭: "꽉 찬 색 버튼" · "제일 중요한 버튼" · "메인 버튼"
- 정의: 색이 꽉 찬 제일 중요한 버튼. 한 화면에 하나만.
- shadcn: Button (variant=default)
- 요청 문장: '신청하기'만 프라이머리 버튼으로 하고 나머지는 낮춰줘. 화면에 프라이머리는 하나만.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/primary-button.html
```html
프라이머리 버튼 Primary Button · UI 메뉴판
꽉 찬 색 · 한 화면에 하나만
```
### 세컨더리 버튼 (Secondary Button / Outline)
- 별칭: "테두리만 있는 버튼" · "두 번째 버튼" · "아웃라인 버튼"
- 정의: 테두리만 있는 버튼. 두 번째로 중요한 행동에 쓴다.
- shadcn: Button (variant=outline·secondary)
- 요청 문장: '더 알아보기'는 세컨더리 버튼으로 프라이머리 옆에 놔줘.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/secondary-button.html
```html
세컨더리 버튼 Secondary Button / Outline · UI 메뉴판
테두리만 · 두 번째로 중요한 것
```
### 고스트 버튼 (Ghost / Text Button)
- 별칭: "배경 없이 글자만 있는 버튼" · "투명 버튼" · "텍스트 버튼"
- 정의: 배경도 테두리도 없이 글자만 있는 버튼. 취소 같은 낮은 우선순위용.
- shadcn: Button (variant=ghost)
- 요청 문장: '취소'는 고스트 버튼으로 해줘. 호버할 때만 연한 배경이 생기게.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/ghost-button.html
```html
고스트 버튼 Ghost / Text Button · UI 메뉴판
배경 없이 글자만
```
### 아이콘 버튼 (Icon Button)
- 별칭: "아이콘만 있는 버튼" · "글자 없는 동그란 버튼" · "X 버튼 같은 거"
- 정의: 글자 없이 아이콘만 있는 버튼. 뜻을 읽어 줄 aria-label이 필수.
- shadcn: Button (size=icon)
- 요청 문장: 닫기·공유를 아이콘 버튼으로 바꿔줘. aria-label 넣는 것 잊지 말고.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/icon-button.html
```html
아이콘 버튼 Icon Button · UI 메뉴판
아이콘만 · aria-label 필수
```
### 삭제 버튼 (Destructive Button / Danger)
- 별칭: "빨간 버튼" · "위험한 거 하는 버튼" · "지우기 버튼"
- 정의: 되돌릴 수 없는 일을 하는 빨간 버튼. 확인 창과 세트가 기본.
- shadcn: Button (variant=destructive)
- 요청 문장: 삭제는 빨간 삭제 버튼으로 하고, 누르면 확인 모달을 먼저 띄워줘.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/destructive-button.html
```html
삭제 버튼 Destructive Button / Danger · UI 메뉴판
되돌릴 수 없는 것만 빨강
```
### 씨티에이 (CTA (Call To Action))
- 별칭: "제일 중요한 행동 버튼" · "전환 버튼" · "지금 시작하기 버튼"
- 정의: 이 페이지에서 시키고 싶은 제일 중요한 행동 버튼.
- 요청 문장: 페이지 끝에 CTA 섹션을 넣어줘. 한 줄 문구와 '무료로 시작하기' 버튼.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/cta.html
```html
씨티에이 CTA (Call To Action) · UI 메뉴판
지금 시작해보세요
제일 중요한 행동 하나
```
### 플로팅 버튼 (FAB (Floating Action Button))
- 별칭: "오른쪽 아래 떠 있는 동그란 버튼" · "둥둥 떠 있는 플러스" · "떠다니는 버튼"
- 정의: 화면 오른쪽 아래에 떠 있는 동그란 버튼. 제일 잦은 행동 하나를 담는다.
- 요청 문장: 오른쪽 아래에 새 글 쓰기 플로팅 버튼을 띄워줘. 스크롤해도 그 자리에.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/fab.html
```html
플로팅 버튼 FAB (Floating Action Button) · UI 메뉴판
오른쪽 아래 떠 있는 동그란 버튼
```
### 링크 (Link)
- 별칭: "글자 링크" · "밑줄 있는 파란 거" · "눌러서 이동하는 글자"
- 정의: 버튼이 아니라 글자로 된 이동 수단. 이동은 링크, 동작은 버튼.
- shadcn: Button (variant=link)
- 요청 문장: '자세히 보기'는 버튼 말고 텍스트 링크로 바꿔줘.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/link.html
```html
링크 Link · UI 메뉴판
```
### 버튼 그룹 (Button Group)
- 별칭: "버튼 여러 개 붙여 놓은 거" · "일간 주간 월간 같은 거" · "붙은 선택 버튼"
- 정의: 버튼 여러 개를 한 줄로 붙여 놓고 하나를 고르는 묶음.
- shadcn: ButtonGroup · 선택형은 ToggleGroup
- 요청 문장: 일간·주간·월간 버튼 그룹을 만들어줘. 선택된 것만 채워지게.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/button-group.html
```html
버튼 그룹 Button Group · UI 메뉴판
버튼 여러 개를 붙여놓은 것
```
## ⑥ 알려주는 것
### 모달 (Modal / Dialog)
- 별칭: "화면 가운데 뜨는 창" · "팝업" · "뒤가 어두워지면서 뜨는 거"
- 정의: 화면 위에 겹쳐 뜨는 창. 뒤는 어두워지고, 닫기 전엔 다른 걸 못 누른다.
- 구분: 가운데 뜨고 뒤를 막으면 모달, 구석에 잠깐 떴다 사라지면 토스트, 눌러서 여는 작은 판이면 팝오버
- shadcn: Dialog (DialogTitle 필수)
- 요청 문장: 삭제를 누르면 '정말 삭제할까요?' 모달이 뜨게 해줘. 배경 클릭이나 ESC로 닫히게.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/modal.html
```html
모달 Modal / Dialog · UI 메뉴판
```
### 오버레이 / 딤 (Overlay / Backdrop)
- 별칭: "뒤가 어두워지는 것" · "화면 덮는 반투명 막" · "딤 처리"
- 정의: 모달이나 드로어 뒤를 어둡게 덮는 반투명 층.
- 구분: 뒤를 덮는 어두운 막 자체가 오버레이, 그 위에 뜬 창이 모달
- 요청 문장: 모달이 뜰 때 뒤에 오버레이를 깔아줘. 오버레이를 누르면 닫히게.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/overlay.html
```html
오버레이 / 딤 Overlay / Backdrop · UI 메뉴판
뒤를 어둡게 덮는 층 (딤이라고도 해요)
```
### 바텀 시트 (Bottom Sheet)
- 별칭: "아래에서 올라오는 판" · "밑에서 스윽 나오는 거" · "모바일 공유창 같은 거"
- 정의: 화면 아래에서 올라오는 판. 모바일에서 모달 대신 많이 쓴다.
- 구분: 아래에서 올라오면 바텀 시트, 옆에서 밀려 나오면 드로어
- shadcn: Drawer
- 요청 문장: 모바일에서 공유를 누르면 바텀 시트가 올라오게 해줘. 위에 잡는 손잡이 표시도.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/bottom-sheet.html
```html
바텀 시트 Bottom Sheet · UI 메뉴판
공유하기
```
### 토스트 (Toast / Snackbar)
- 별칭: "잠깐 떴다 사라지는 알림" · "저장됐다고 뜨는 거" · "구석에 뜨는 알림"
- 정의: 구석에 잠깐 나타났다 저절로 사라지는 짧은 알림.
- 구분: 저절로 사라지면 토스트, 자리에 남아 있으면 얼럿
- shadcn: Sonner
- 요청 문장: 저장 성공하면 우하단에 '저장됐어요' 토스트가 3초 떴다 사라지게 해줘.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/toast.html
```html
토스트 Toast / Snackbar · UI 메뉴판
```
### 얼럿 (Alert / Callout)
- 별칭: "색 있는 알림 상자" · "노란 경고 박스" · "안내 박스"
- 정의: 성공·경고·오류를 색으로 구분해 담는 알림 상자. 사라지지 않고 자리에 남는다.
- 구분: 자리에 남아 있으면 얼럿, 잠깐 떴다 사라지면 토스트
- shadcn: Alert
- 요청 문장: 폼 위에 얼럿 영역을 만들어줘. 성공은 초록, 경고는 노랑, 오류는 빨강.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/alert.html
```html
얼럿 Alert / Callout · UI 메뉴판
저장됐어요
곧 마감돼요
이메일 형식이 아니에요
```
### 툴팁 (Tooltip)
- 별칭: "마우스 올리면 뜨는 작은 설명" · "말풍선 도움말" · "물음표 설명"
- 정의: 마우스를 올리면 잠깐 나오는 작은 설명 말풍선.
- 구분: 마우스만 올려도 뜨면 툴팁, 눌러야 열리면 팝오버
- shadcn: Tooltip
- 요청 문장: 이 아이콘에 마우스를 올리면 짧은 설명 툴팁이 뜨게 해줘.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/tooltip.html
```html
툴팁 Tooltip · UI 메뉴판
AEO란? AI 검색 최적화예요
마우스를 올려 보세요
```
### 팝오버 (Popover)
- 별칭: "눌러서 여는 작은 판" · "클릭하면 뜨는 말풍선" · "미니 팝업"
- 정의: 눌러서 여는 작은 판. 툴팁보다 크고, 안에 버튼·링크도 들어간다.
- 구분: 눌러야 열리면 팝오버, 마우스만 올려도 뜨면 툴팁
- shadcn: Popover
- 요청 문장: 프로필을 누르면 이름과 메뉴가 있는 팝오버가 열리게 해줘.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/popover.html
```html
팝오버 Popover · UI 메뉴판
```
### 프로그레스 바 (Progress Bar)
- 별칭: "차오르는 막대" · "진행률 바" · "몇 퍼센트 게이지"
- 정의: 얼마나 진행됐는지 차오르는 막대로 보여주는 것.
- 구분: 진행률을 알면 프로그레스 바, 모르면 스피너
- shadcn: Progress
- 요청 문장: 업로드 진행률을 프로그레스 바로 보여줘. 퍼센트 숫자도 같이.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/progress-bar.html
```html
프로그레스 바 Progress Bar · UI 메뉴판
업로드 중68%
약 12초 남았어요
```
### 스피너 (Spinner / Loader)
- 별칭: "빙글빙글 도는 거" · "로딩 동그라미" · "돌아가는 로딩"
- 정의: 빙글빙글 돌며 로딩 중임을 알리는 표시. 끝이 언제인지 모를 때 쓴다.
- 구분: 끝을 모르면 스피너, 진행률이 있으면 프로그레스 바, 내용 자리를 미리 그리면 스켈레톤
- shadcn: Spinner
- 요청 문장: 데이터 불러오는 동안 가운데에 스피너를 보여줘.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/spinner.html
```html
스피너 Spinner / Loader · UI 메뉴판
불러오는 중…
```
### 스켈레톤 (Skeleton)
- 별칭: "로딩 때 회색 뼈대" · "번쩍거리는 회색 박스" · "로딩 자리 표시"
- 정의: 내용이 오기 전, 자리 모양대로 깜빡이는 회색 뼈대.
- 구분: 내용 자리를 미리 그리면 스켈레톤, 그냥 돌기만 하면 스피너
- shadcn: Skeleton
- 요청 문장: 목록 로딩 중에는 카드 모양 스켈레톤 3개를 보여줘.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/skeleton-ui.html
```html
스켈레톤 Skeleton · UI 메뉴판
```
### 엠프티 스테이트 (Empty State)
- 별칭: "내용 없을 때 화면" · "텅 비었을 때 나오는 거" · "아직 없어요 화면"
- 정의: 보여줄 게 없을 때의 화면. 다음 행동 버튼까지 넣어야 완성.
- shadcn: Empty
- 요청 문장: 목록이 비면 엠프티 스테이트를 보여줘. 안내 문구와 '추가하기' 버튼 포함.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/empty-state.html
```html
엠프티 스테이트 Empty State · UI 메뉴판
아직 신청이 없어요링크를 공유해보세요
```
### 쿠키 배너 (Cookie Banner)
- 별칭: "쿠키 동의 창" · "아래에 뜨는 동의 문구" · "쿠키 쓴다는 안내"
- 정의: 쿠키 사용 동의를 받는 하단 안내 창.
- 요청 문장: 하단에 쿠키 배너를 넣어줘. 동의·거부 버튼, 선택하면 다시 안 뜨게.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/cookie-banner.html
```html
쿠키 배너 Cookie Banner · UI 메뉴판
더 나은 경험을 위해 쿠키를 사용해요.
```
### 확인 창 (Confirmation Dialog)
- 별칭: "정말 하시겠어요 창" · "한 번 더 물어보는 거" · "확인 팝업"
- 정의: 위험한 행동 전에 '정말 하시겠어요?'라고 한 번 더 묻는 창.
- 구분: 위험한 행동 전에 한 번 더 묻는 용도의 모달이 확인 창
- shadcn: AlertDialog
- 요청 문장: 작성 중에 나가려 하면 '정말 나가시겠어요?' 확인 창을 띄워줘.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/confirmation.html
```html
확인 창 Confirmation Dialog · UI 메뉴판
```
## ⑦ 작은 표시들
### 배지 (Badge)
- 별칭: "아이콘에 빨간 숫자" · "알림 숫자 점" · "빨간 동그라미"
- 정의: 아이콘 모서리에 붙는 작은 숫자나 점. 새 알림 표시의 단골.
- 구분: 아이콘 모서리에 붙는 숫자·점이면 배지, 독립된 알약 라벨이면 칩
- shadcn: Badge
- 요청 문장: 알림 아이콘에 안 읽은 개수 배지를 붙여줘. 0이면 숨기고.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/badge.html
```html
배지 Badge · UI 메뉴판
3
숫자 또는 점
```
### 칩 / 태그 (Chip / Tag / Pill)
- 별칭: "알약 모양 라벨" · "동글동글한 필터 버튼" · "태그"
- 정의: 알약 모양의 작은 라벨. 태그 표시나 필터 선택에 쓴다.
- 구분: 독립된 알약 라벨이면 칩, 아이콘 모서리 숫자면 배지
- shadcn: Badge 응용
- 요청 문장: 태그들을 칩으로 보여주고, 누르면 선택 상태로 색이 바뀌게 해줘.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/chip.html
```html
칩 / 태그 Chip / Tag / Pill · UI 메뉴판
눌러서 거르는 필터로 많이 써요
```
### 아바타 (Avatar)
- 별칭: "동그란 프로필 사진" · "프사 동그라미" · "얼굴 아이콘"
- 정의: 동그란 프로필 사진. 사진이 없으면 이름 첫 글자로.
- shadcn: Avatar (AvatarFallback 필수)
- 요청 문장: 댓글마다 아바타를 붙여줘. 사진 없으면 이름 첫 글자가 나오게.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/avatar.html
```html
아바타 Avatar · UI 메뉴판
쥬
사진 없으면 첫 글자로
```
### 아바타 그룹 (Avatar Group)
- 별칭: "겹쳐 놓은 아바타들" · "+9 붙은 프사 무더기" · "참여자 얼굴 묶음"
- 정의: 아바타 여러 개를 겹쳐 놓고 나머지는 +9로 줄인 것.
- 요청 문장: 참여자를 아바타 그룹으로 보여줘. 3명까지 겹치고 나머지는 +N으로.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/avatar-group.html
```html
아바타 그룹 Avatar Group · UI 메뉴판
쥬하+9
겹쳐 놓은 아바타들
```
### 디바이더 (Divider / Separator)
- 별칭: "구분선" · "얇은 가로줄" · "사이에 긋는 선"
- 정의: 내용 사이를 나누는 얇은 구분선.
- shadcn: Separator
- 요청 문장: 섹션 사이마다 연한 디바이더를 넣어줘.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/divider.html
```html
디바이더 Divider / Separator · UI 메뉴판
```
### 아이콘 (Icon)
- 별칭: "작은 그림" · "집 모양 돋보기 모양 그런 거" · "픽토그램"
- 정의: 뜻을 담은 작은 그림. 세트를 하나로 통일하는 게 핵심.
- shadcn: lucide-react
- 요청 문장: 아이콘은 Lucide로 통일해줘. 크기는 20px, 선 굵기도 맞추고.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/icon.html
```html
아이콘 Icon · UI 메뉴판
⌂⌕🔔⚲
"아이콘은 Lucide로"라고 말하면 통일돼요
```
### 상태 점 (Status Dot / Indicator)
- 별칭: "온라인 초록 점" · "이름 옆 작은 점" · "상태 불빛"
- 정의: 온라인·자리 비움 같은 상태를 알리는 작은 색 점.
- 요청 문장: 멤버 이름 옆에 상태 점을 붙여줘. 온라인 초록, 자리 비움 노랑, 오프라인 회색.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/status-dot.html
```html
상태 점 Status Dot / Indicator · UI 메뉴판
온라인자리 비움오프라인
```
### 키보드 키 (Kbd)
- 별칭: "단축키를 키 모양으로" · "⌘K 같은 표시" · "자판 모양 글자"
- 정의: 단축키를 실제 키 모양으로 보여주는 표시.
- shadcn: Kbd
- 요청 문장: 검색 안내에 ⌘K를 키보드 키 모양으로 보여줘.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/kbd.html
```html
키보드 키 Kbd · UI 메뉴판
검색은 ⌘K
단축키를 키 모양으로 보여주는 것
```
## ⑧ 상태 · 동작
### 기본 (Default)
- 별칭: "아무것도 안 한 상태" · "평소 모습" · "그냥 있을 때"
- 정의: 아무 일도 없는 평소 상태. 나머지 상태들의 기준점.
- 요청 문장: 버튼의 기본 상태를 정리해줘. 이걸 기준으로 호버·액티브를 파생하고.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/state-default.html
```html
기본 Default · UI 메뉴판
```
### 액티브 (Active / Pressed)
- 별칭: "누르고 있는 순간" · "클릭하는 찰나" · "눌린 상태"
- 정의: 누르고 있는 그 순간의 변화. 살짝 줄어들면 눌리는 맛이 난다.
- 요청 문장: 버튼 액티브 상태를 넣어줘. 누르는 동안 살짝 작아지게(scale 0.96).
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/state-active.html
```html
액티브 Active / Pressed · UI 메뉴판
누르고 있는 순간 (:active)
```
### 포커스 (Focus)
- 별칭: "탭 키로 선택됐을 때" · "테두리 생기는 거" · "키보드로 고른 상태"
- 정의: 키보드 Tab으로 선택됐을 때의 표시. 접근성의 기본이라 지우면 안 된다.
- 요청 문장: 포커스 상태를 focus-visible 링으로 보여줘. outline을 없애지는 말고.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/state-focus.html
```html
포커스 Focus · UI 메뉴판
Tab 키로 선택했을 때 (:focus-visible)
```
### 디스에이블드 (Disabled)
- 별칭: "못 누르게 회색" · "비활성" · "흐려져 있는 버튼"
- 정의: 지금은 못 누르는 상태. 회색으로 흐려지고 커서도 바뀐다.
- 요청 문장: 필수 입력이 다 차기 전엔 제출 버튼을 디스에이블드로 잠가줘.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/state-disabled.html
```html
디스에이블드 Disabled · UI 메뉴판
못 누르게 회색 (disabled)
```
### 로딩 (Loading)
- 별칭: "처리 중" · "돌아가는 중" · "보내는 중 상태"
- 정의: 처리 중인 상태. 버튼 안에 스피너를 넣고 두 번 못 누르게 잠근다.
- 요청 문장: 제출을 누르면 버튼이 '보내는 중' 로딩 상태가 되게 해줘. 중복 클릭 방지도.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/state-loading.html
```html
로딩 Loading · UI 메뉴판
처리 중 · 두 번 못 누르게
```
### 선택됨 (Selected)
- 별칭: "고른 것 표시" · "체크된 상태" · "지금 고른 거 진하게"
- 정의: 여럿 중 지금 고른 것의 표시. 테두리·채움·체크로 구분한다.
- 요청 문장: 플랜 카드 중 선택된 것은 진한 테두리와 체크 표시로 구분해줘.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/state-selected.html
```html
선택됨 Selected · UI 메뉴판
```
### 에러 (Error / Invalid)
- 별칭: "틀렸을 때 빨간 거" · "잘못됐다는 표시" · "오류 상태"
- 정의: 잘못된 상태의 표시. 빨간 테두리와 원인 안내가 세트다.
- 요청 문장: 입력이 틀리면 에러 상태로 바꿔줘. 빨간 테두리에 칸 아래 이유까지.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/state-error.html
```html
에러 Error / Invalid · UI 메뉴판
이메일 형식이 아니에요
틀린 상태 · 빨간 테두리 + 안내
```
## ⑨ 스크롤 연출
### 패럴랙스 스크롤 (Parallax Scrolling)
- 별칭: "내리면 뒤 배경이 천천히 움직이는 거" · "배경이 따로 노는 스크롤" · "깊이감 있게 겹쳐 움직이는 첫 화면"
- 정의: 스크롤할 때 뒤쪽 층일수록 느리게 움직여 깊이가 생기는 연출.
- 구분: 층 하나만 움직이면 그냥 배경 고정이고, 속도가 서로 달라야 패럴랙스
- 요청 문장: 첫 화면에 패럴랙스 스크롤을 넣어줘. 산 그림 세 겹 중 뒤쪽은 스크롤 속도의 0.55배, 가운데는 0.3배로 움직이고 맨 앞은 그대로. 제목은 0.8배. 동작 줄이기 설정이면 멈춰.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/fx-parallax.html
```html
패럴랙스 스크롤 Parallax Scrolling · UI 메뉴판
가을 산행 코스
스크롤하면 뒤쪽 산일수록 천천히 움직여요
```
### 스크롤 페이드인 (Fade-in on Scroll)
- 별칭: "내리면 하나씩 스르륵 나타나는 거" · "스크롤하면 올라오면서 생기는 카드" · "화면에 들어올 때 뜨는 효과"
- 정의: 요소가 화면에 들어오는 순간 아래에서 살짝 올라오며 나타나는 연출.
- 구분: 같은 말로 「스크롤 리빌」. 처음 열 때 한 번 뜨는 건 그냥 진입 애니메이션
- 요청 문장: 카드들이 화면에 25% 들어오면 아래에서 18px 올라오며 0.6초 동안 페이드인되게 해줘. ease-out, 한 번 나타나면 다시 숨지 않게. IntersectionObserver 로.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/fx-fade-in.html
```html
스크롤 페이드인 Fade-in on Scroll · UI 메뉴판
아래로 내려 보세요
하나. 계획
둘. 준비물
셋. 출발
넷. 기록
다섯. 돌아보기
```
### 따라오는 헤더 (Sticky Header)
- 별칭: "내려도 위에 붙어 있는 메뉴 줄" · "스크롤해도 안 사라지는 상단 바" · "고정 헤더"
- 정의: 스크롤해도 화면 맨 위에 붙어 있고, 내리기 시작하면 아래에 그림자가 생기는 헤더.
- 구분: 안 따라오면 고장 → css-menu 「따라와야 할 헤더가 안 따라와요」
- 요청 문장: 헤더를 position: sticky 로 맨 위에 고정해줘. 스크롤이 4px 넘으면 아래쪽에 옅은 그림자와 1px 선이 0.25초에 걸쳐 생기게. 배경은 92% 불투명 흰색에 살짝 흐림.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/fx-sticky-header.html
```html
따라오는 헤더 Sticky Header · UI 메뉴판
산책일기
내려도 헤더는 위에 남고, 아래에 그림자가 생겨요
```
### 고정(핀) (Pinning)
- 별칭: "한 화면에 멈춰서 내용만 바뀌는 구간" · "스크롤해도 그 섹션이 안 넘어가는 거" · "단계 설명이 제자리에서 바뀌는 화면"
- 정의: 한 섹션을 화면에 붙여 두고, 스크롤하는 동안 그 안의 내용만 단계별로 바꾸는 연출.
- 구분: 고정되는 동안 옆으로 흐르면 가로 스크롤
- 요청 문장: 「사용법」 섹션을 화면에 고정(sticky)하고, 스크롤 세 구간 동안 번호·문장·그림이 01→02→03 으로 바뀌게 해줘. 셋째가 끝나면 고정이 풀리고 다음 섹션으로. 지금 단계를 점 세 개로 표시.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/fx-pin.html
```html
고정(핀) Pinning · UI 메뉴판
01
사진 한 장을 고른다
세 단계가 끝나야 고정이 풀리고 다음으로 넘어가요
```
### 가로 스크롤 섹션 (Horizontal Scroll Section)
- 별칭: "세로로 내리는데 옆으로 흘러가는 거" · "스크롤하면 카드가 가로로 지나가는 구간" · "가로로 넘어가는 작품 목록"
- 정의: 세로로 스크롤하는 동안 섹션을 고정하고 그 안의 카드 줄을 옆으로 미는 연출.
- 구분: 손가락으로 옆으로 미는 목록은 캐러셀
- 요청 문장: 작품 카드 다섯 장을 가로 스크롤 섹션으로 만들어줘. 섹션이 화면에 닿으면 고정되고, 세로 스크롤한 만큼 카드 줄이 왼쪽으로 이동해 마지막 카드가 보이면 고정이 풀리게.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/fx-horizontal-scroll.html
```html
가로 스크롤 섹션 Horizontal Scroll Section · UI 메뉴판
01
02
03
04
05
세로로 내렸는데 카드는 옆으로 흘러가요
```
### 스크롤 스냅 (Scroll Snap)
- 별칭: "스크롤하면 한 칸씩 딱 멈추는 거" · "페이지 넘기듯 착착 끊기는 스크롤" · "반만 걸쳐 멈추지 않게"
- 정의: 스크롤을 놓으면 가까운 칸의 경계에 딱 맞춰 멈추는 연출.
- 구분: mandatory 는 늘 맞춰 멈추고, proximity 는 가까울 때만
- 요청 문장: 세 섹션에 스크롤 스냅을 걸어줘. scroll-snap-type: y mandatory, 각 섹션 높이는 화면 전체, 시작 위치에 맞춰 멈추게.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/fx-scroll-snap.html
```html
스크롤 스냅 Scroll Snap · UI 메뉴판
담기조금 굴려도 이 칸에 딱 멈춰요
꺼내기두 번째 칸
나누기세 번째 칸
```
### 스크롤 진행 막대 (Scroll Progress Bar)
- 별칭: "읽은 만큼 위에 차오르는 선" · "글 어디쯤인지 보여 주는 줄" · "맨 위 얇은 진행 바"
- 정의: 글을 얼마나 읽었는지 화면 맨 위의 얇은 선 길이로 보여 주는 표시.
- 구분: 작업이 얼마나 끝났는지 보여 주는 건 프로그레스 바
- 요청 문장: 글 페이지 맨 위에 3px 짜리 스크롤 진행 막대를 붙여줘. 읽은 비율만큼 왼쪽에서 늘어나게 scaleX 로, 색은 강조색. role=progressbar 와 aria-valuenow 도.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/fx-scroll-progress.html
```html
스크롤 진행 막대 Scroll Progress Bar · UI 메뉴판
처음 앱을 내는 사람의 일곱 밤
위의 선이 읽은 만큼 늘어나요
```
### 형광펜 긋기 (Highlighter Animation)
- 별칭: "중요한 말에 형광펜이 쓱 그어지는 거" · "스크롤하면 밑에 색이 칠해지는 문장" · "마커 효과"
- 정의: 강조할 낱말이 화면에 들어오면 형광펜이 왼쪽부터 그어지는 연출.
- 구분: 영상 속 형광펜은 motion-menu 「형광펜」
- 요청 문장: 본문의 핵심 문구 두 곳에 형광펜 애니메이션을 넣어줘. 글자 아래 42% 높이에 노란색, 화면에 다 들어오면 0.8초 동안 왼쪽에서 오른쪽으로 칠해지게. 한 번만.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/fx-highlighter.html
```html
형광펜 긋기 Highlighter Animation · UI 메뉴판
바쁜 사람을 위한 부엌 도우미예요.
레시피를 많이 담는 건 쉽지만, 정작 요리할 때는 잘 안 꺼내 보게 돼요.
그래서 이 앱은 요리하는 순간에 먼저 꺼내 줍니다.
손이 젖어 있어도 화면을 만질 필요가 없어요.
장 볼 때는 있는 재료부터 보여 줘요.
```
## ⑩ 마우스 반응
### 호버로 떠오르기 (Hover Lift)
- 별칭: "마우스 올리면 카드가 살짝 뜨는 거" · "올리면 그림자 생기는 카드" · "누를 수 있다는 걸 보여 주는 움직임"
- 정의: 커서를 올리면 카드가 몇 픽셀 떠오르고 그림자가 짙어지는 반응.
- 폰에서는: 폰에는 호버가 없다. 누르는 순간(:active) 살짝 눌리는 모양으로 대신하고, 떠오른 채로 멈춰 있지 않게 @media (hover: hover) 안에만 둔다.
- 요청 문장: 숙소 카드에 호버 리프트를 넣어줘. 올리면 위로 5px, 그림자 0 12px 22px, 0.2초 ease-out. 키보드 포커스에도 같은 모양. 동작 줄이기면 그림자만.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/fx-hover-lift.html
```html
호버로 떠오르기 Hover Lift · UI 메뉴판
```
### 호버로 사진 확대 (Image Zoom on Hover)
- 별칭: "마우스 올리면 사진만 커지는 거" · "틀은 그대로인데 안에 그림이 확대" · "썸네일 줌"
- 정의: 틀 크기는 그대로 두고 그 안의 사진만 조금 커지는 반응.
- 폰에서는: 폰에서는 확대하지 않는다. 대신 누르면 바로 상세로 넘어가게 하고, 확대는 @media (hover: hover) 안에만.
- 요청 문장: 사진 카드에 호버 줌을 넣어줘. 틀은 overflow: hidden 으로 고정하고 안의 이미지만 1.1배로 0.45초 동안 확대. 포커스에도 같이.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/fx-hover-zoom.html
```html
호버로 사진 확대 Image Zoom on Hover · UI 메뉴판
```
### 커서 따라오기 (Cursor Follower)
- 별칭: "커서를 동그라미가 졸졸 따라오는 거" · "마우스 스토커" · "커서 꾸미기"
- 정의: 작은 원이 커서를 한 박자 늦게 따라다니는 장식.
- 구분: 따라오는 원이 버튼에 닿으면 커지는 것까지 넣으면 커서 확장
- 폰에서는: 터치 화면에는 커서가 없어 아무 의미가 없다. @media (hover: none) 에서 숨긴다.
- 요청 문장: 첫 화면에 커서 따라오기를 넣어줘. 지름 30px 주황 원이 커서를 매 프레임 거리의 12%씩 따라가게(lerp). 글자 위에선 multiply 로 겹치게. 터치 기기와 동작 줄이기에선 끄기.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/fx-cursor-follower.html
```html
커서 따라오기 Cursor Follower · UI 메뉴판
WALK STUDIO
동그라미가 커서를 한 박자 늦게 따라와요
```
### 자석 버튼 (Magnetic Button)
- 별칭: "커서 가까이 가면 버튼이 끌려오는 거" · "버튼이 마우스 쪽으로 붙는 효과" · "쫀득하게 따라오는 버튼"
- 정의: 커서가 버튼 근처에 오면 버튼이 그 방향으로 조금 끌려가는 반응.
- 폰에서는: 터치에서는 끌려올 커서가 없다. 그냥 평범한 버튼으로 두고, 누를 때 눌림 모양만 준다.
- 요청 문장: 「문의하기」 버튼을 자석 버튼으로 만들어줘. 커서가 버튼 중심 110px 안에 들어오면 거리의 35%만큼 커서 쪽으로 움직이고, 벗어나면 0.25초에 제자리로. 동작 줄이기면 끄기.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/fx-magnetic.html
```html
자석 버튼 Magnetic Button · UI 메뉴판
근처에 커서가 오면 버튼이 끌려와요
```
### 물결(리플) (Ripple Effect)
- 별칭: "누른 자리에서 동그랗게 퍼지는 거" · "버튼 누르면 물결 번지는 효과" · "머티리얼 버튼 반응"
- 정의: 누른 지점에서 원이 퍼져 나가며 사라지는 반응.
- 구분: 영상 속 물결 전환은 motion-menu 「파문 와이프」
- 폰에서는: 폰에서도 잘 맞는 몇 안 되는 반응이다. 손가락이 닿은 자리에서 퍼지게 pointerdown 좌표를 쓴다.
- 요청 문장: 「보내기」 버튼에 리플 효과를 넣어줘. 누른 좌표에서 버튼 크기 2.2배 원이 0.6초 동안 커지며 투명해지게, 흰색 45%. 키보드로 누르면 가운데서.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/fx-ripple.html
```html
물결(리플) Ripple Effect · UI 메뉴판
누른 자리에서 물결이 퍼져요
```
### 밑줄 늘어나기 (Underline Animation)
- 별칭: "메뉴에 올리면 밑줄이 쭉 그어지는 거" · "링크 아래 선이 왼쪽부터 생기는 효과" · "호버 밑줄"
- 정의: 링크에 커서를 올리면 밑줄이 왼쪽에서 오른쪽으로 그어지는 반응.
- 폰에서는: 폰에서는 지금 있는 페이지의 메뉴에만 밑줄을 그어 둔다(호버 대신 현재 위치 표시).
- 요청 문장: 상단 메뉴 링크에 밑줄 애니메이션을 넣어줘. 2px 강조색 선이 ::after 로 scaleX 0→1, transform-origin left, 0.25초 ease-out. 포커스에도 같이, 지금 페이지 메뉴는 늘 그어져 있게.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/fx-underline.html
```html
밑줄 늘어나기 Underline Animation · UI 메뉴판
올린 메뉴 밑줄이 왼쪽부터 그어져요
```
### 전후 비교 슬라이더 (Before/After Slider)
- 별칭: "가운데 선을 끌어서 전후를 비교하는 거" · "보정 전 후 밀어서 보기" · "비포 애프터 사진 비교"
- 정의: 두 장의 사진을 겹쳐 두고 경계선을 끌어 전과 후를 견주는 부품.
- 구분: 랜딩 섹션 단위로는 landing-menu 「비포/애프터」
- 폰에서는: 손가락으로 끄는 것도 잘 된다. 손잡이 터치 영역을 44px 이상으로.
- 요청 문장: 전후 비교 슬라이더를 만들어줘. 두 사진을 겹치고 위 사진을 clip-path 로 잘라 보여 주기, 가운데 흰 선과 ↔ 손잡이. 실제 조작은 투명한 input type=range 로 해서 키보드 화살표로도 움직이게.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/fx-before-after.html
```html
전후 비교 슬라이더 Before/After Slider · UI 메뉴판
전후
경계를 끌어서 전과 후를 견줘요
```
### 떠날 때 팝업 (Exit-intent Popup)
- 별칭: "나가려고 할 때 뜨는 창" · "창 닫으려 하면 붙잡는 팝업" · "이탈 방지 팝업"
- 정의: 커서가 페이지 위쪽 바깥으로 빠져나가려는 순간 한 번 뜨는 붙잡는 창.
- 구분: 들어오자마자 뜨는 건 그냥 모달. 너무 잦으면 미움받는다
- 폰에서는: 폰에는 커서가 없어 이 신호가 안 잡힌다. 억지로 뒤로 가기를 막지 말고, 글 끝까지 읽었을 때 아래에서 띠로 한 번 권하는 쪽으로 대신한다.
- 요청 문장: 떠날 때 팝업을 넣어줘. 커서가 창 위쪽 끝(8px 안)으로 빠져나가면 한 번만 띄우고, 같은 방문에선 다시 안 띄우기. 「괜찮아요」와 Esc 로 닫히고, 열리면 첫 버튼에 포커스.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/fx-exit-intent.html
```html
떠날 때 팝업 Exit-intent Popup · UI 메뉴판
산책일기처음 오셨나요?
커서를 위쪽 바깥으로 빼면 한 번만 떠요
잠깐만요
첫 달은 무료로 써 볼 수 있어요
```
## ⑪ 불러오기 · 흐름
### 로딩 화면 (Preloader)
- 별칭: "처음에 숫자 올라가다 걷히는 화면" · "페이지 열 때 나오는 로딩 덮개" · "퍼센트 올라가는 첫 화면"
- 정의: 페이지를 불러오는 동안 덮어 두었다가 다 되면 걷어 내는 첫 화면.
- 구분: 부분만 기다릴 때는 스피너·스켈레톤. 덮개는 정말 무거운 첫 화면에만
- 요청 문장: 첫 방문에 로딩 화면을 넣어줘. 검은 덮개에 0~100% 숫자와 주황 진행선, 100% 가 되면 0.25초 쉬고 0.6초 동안 위로 걷히게. 실제 로딩이 끝났을 때만 걷히고, 숫자는 role=status.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/fx-preloader.html
```html
로딩 화면 Preloader · UI 메뉴판
산책일기
다 불러오면 덮개가 위로 걷혀요
0%
```
### 지연 로딩 (Lazy Loading)
- 별칭: "화면에 들어온 사진만 불러오는 거" · "스크롤하면 그때 사진이 뜨는 갤러리" · "처음엔 회색이다가 사진이 나타나는 것"
- 정의: 화면에 가까워진 이미지만 불러오고, 오기 전엔 자리만 잡아 두는 방식.
- 구분: 자리만 잡는 회색 칸은 스켈레톤
- 요청 문장: 갤러리 이미지를 지연 로딩으로 바꿔줘. img 에 loading="lazy" 와 크기(width·height)를 넣어 자리를 먼저 잡고, 오기 전엔 회색 칸에 빛이 지나가는 무늬, 다 오면 흐림에서 0.5초 동안 또렷해지게.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/fx-lazy-load.html
```html
지연 로딩 Lazy Loading · UI 메뉴판
갤러리 · 화면에 들어온 사진만 불러와요
```
### 타이핑 효과 (Typewriter Effect)
- 별칭: "글자가 한 자씩 써지는 거" · "타자 치듯 나오는 문구" · "써졌다 지워지며 바뀌는 낱말"
- 정의: 문구가 한 글자씩 써지고, 잠시 뒤 지워지며 다음 낱말로 바뀌는 연출.
- 구분: 영상 자막의 타자 효과는 motion-menu 「타입온」
- 요청 문장: 첫 화면 문구 「오늘은 ○○」의 ○○ 자리에 타이핑 효과를 넣어줘. 걷기·읽기·쓰기를 한 자에 0.15초로 쓰고 1.3초 멈춘 뒤 0.07초씩 지우기, 깜빡이는 커서 막대. 읽기 프로그램용 aria-label 은 전체 문장으로.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/fx-typewriter.html
```html
타이핑 효과 Typewriter Effect · UI 메뉴판
오늘은
글자가 한 자씩 써지고 지워지며 바뀌어요
```
### 페이지 전환 (Page Transition)
- 별칭: "페이지 넘어갈 때 막이 덮었다 걷히는 거" · "화면 바뀔 때 부드럽게 넘어가는 효과" · "링크 누르면 와이프되는 전환"
- 정의: 다른 페이지로 넘어갈 때 막이 한 번 덮었다 걷히며 바뀌는 연출.
- 구분: 영상의 장면 전환 이름은 motion-menu ⑦ 화면 전환 40 에서 고른다
- 요청 문장: 목록에서 상세로 넘어갈 때 페이지 전환을 넣어줘. 검은 막이 아래에서 0.35초에 덮고, 덮인 순간 내용을 바꾸고, 위로 0.35초에 걷히게. 지원 브라우저면 View Transitions API 로, 동작 줄이기면 그냥 바꾸기.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/fx-page-transition.html
```html
페이지 전환 Page Transition · UI 메뉴판
```
### 부드러운 스크롤 (Smooth Scroll)
- 별칭: "메뉴 누르면 그 칸까지 미끄러지는 거" · "맨 위로 버튼 누르면 스르륵 올라가는 것" · "앵커 이동 부드럽게"
- 정의: 페이지 안의 링크를 누르면 그 위치까지 툭 튀지 않고 미끄러져 가는 이동.
- 구분: 휠 자체를 무겁게 만드는 라이브러리(관성 스크롤)와는 다르다
- 요청 문장: 상단 메뉴 링크와 「맨 위로」 버튼에 부드러운 스크롤을 넣어줘. scroll-behavior: smooth, 고정 헤더에 가리지 않게 scroll-margin-top 40px. 동작 줄이기면 바로 이동.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/fx-smooth-scroll.html
```html
부드러운 스크롤 Smooth Scroll · UI 메뉴판
기능
메뉴를 누르면 그 칸까지 미끄러져 가요
요금
자주 묻는 것
```
### 흐르는 띠(마키) (Marquee)
- 별칭: "글자가 띠처럼 계속 흘러가는 거" · "전광판처럼 지나가는 문구" · "끝없이 도는 로고 줄"
- 정의: 글자나 로고가 한 줄 띠에 담겨 끊김 없이 옆으로 흘러가는 연출.
- 구분: 영상 속 겹띠는 motion-menu 「전광판 겹띠」
- 요청 문장: 「DESIGN · MOTION · CODE · PLAN」을 흐르는 띠로 만들어줘. 같은 내용을 두 번 이어 붙여 14초에 -50% 이동하면 끊김 없이 돌게, 마우스를 올리면 멈추게. 읽기 프로그램엔 한 번만 읽히게.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/fx-marquee.html
```html
흐르는 띠(마키) Marquee · UI 메뉴판
```
### 움직이는 그라데이션 (Animated Gradient)
- 별칭: "배경 색이 천천히 섞이며 흐르는 거" · "오로라처럼 움직이는 배경" · "살아 있는 그라데이션 배경"
- 정의: 첫 화면 배경의 색 섞임이 천천히 계속 바뀌는 연출.
- 구분: 영상용 흐르는 그라데이션은 motion-menu 「흐르는 그라데이션」
- 요청 문장: 첫 화면 배경에 움직이는 그라데이션을 넣어줘. 복숭아·분홍·하늘·파랑 네 색 linear-gradient 를 300% 크기로 두고 background-position 을 12초에 왕복. 글자 대비는 늘 4.5:1 이상, 동작 줄이기면 멈춘 한 장.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/fx-gradient.html
```html
움직이는 그라데이션 Animated Gradient · UI 메뉴판
오늘을 한 장에
배경 색이 천천히 섞이며 흘러가요
```
### 둥실 떠다니기 (Floating Animation)
- 별칭: "장식이 위아래로 둥둥 떠 있는 거" · "폰 옆 배지가 살랑살랑 움직이는 것" · "숨 쉬듯 떠 있는 아이콘"
- 정의: 작은 장식들이 서로 다른 박자로 천천히 오르내리는 연출.
- 구분: 영상 속 도형 떠다니기는 motion-menu 「떠다니는 도형」
- 요청 문장: 폰 목업 옆 배지 셋에 둥실 효과를 넣어줘. 위아래 9px, 3.2초·3.8초·3.2초로 박자를 다르게, 시작점(animation-delay)도 어긋나게. 본문이 아니라 장식에만.
- 레퍼런스: https://raw.githubusercontent.com/hanmariyang/giting-skills/main/plugins/ui-menu/components/fx-floating.html
```html
둥실 떠다니기 Floating Animation · UI 메뉴판
♥ 12★ 4.8새 기록
장식이 제각각 박자로 둥실 떠요
```
## 화면 조합 레시피 (shadcn: 조립하지 재발명하지 마라)
### 설정 페이지 · 프로필·알림·계정 같은 설정 화면
- 조합: Tabs + Card + Field + Switch + Button
- shadcn: Tabs로 섹션 나누고 각 섹션은 Card, 폼은 FieldGroup+Field, 켜고끄기는 Switch
- 요청 문장: 설정 페이지를 shadcn 으로 만들어줘. 상단 Tabs 로 섹션 나누고, 각 섹션은 Card, 입력은 FieldGroup+Field, 토글은 Switch 로.
### 대시보드 · 지표·차트·목록을 한 화면에
- 조합: Sidebar + Card + Chart + Table + Badge
- shadcn: 왼쪽 Sidebar 고정, 지표는 Card, 추이는 Chart, 목록은 Table, 상태는 Badge
- 요청 문장: 대시보드를 shadcn 으로 만들어줘. 왼쪽 Sidebar, 상단 지표 Card 행, 아래 Chart 와 Table, 상태 표시는 Badge 로.
### 로그인·회원가입 · 인증 화면
- 조합: Card + Field + InputGroup + Button + Separator
- shadcn: 가운데 Card, 입력은 Field, 아이콘 붙은 입력은 InputGroup, 소셜 구분은 Separator
- 요청 문장: 로그인 화면을 shadcn 으로 만들어줘. 가운데 Card 안에 FieldGroup+Field, 소셜 로그인은 Separator 로 구분, 버튼은 Button.
### 목록 + 상세 · 항목 클릭하면 상세가 뜨는 화면
- 조합: Table + Sheet + Badge + Button + DropdownMenu
- shadcn: 목록은 Table, 행 클릭시 오른쪽 Sheet 로 상세, 행별 액션은 DropdownMenu
- 요청 문장: 목록-상세 화면을 shadcn 으로. 목록은 Table, 행 클릭하면 오른쪽 Sheet 로 상세, 각 행 우측 액션은 DropdownMenu.
### 결제·주문 · 단계별 진행 화면
- 조합: Stepper + Card + Field + RadioGroup + Button
- shadcn: 진행은 상단 단계 표시, 각 단계는 Card, 배송/결제 선택은 RadioGroup
- 요청 문장: 결제 플로우를 shadcn 으로. 상단에 단계 표시, 각 단계는 Card, 옵션 선택은 RadioGroup, 다음/이전은 Button.
### 확인·경고 · 삭제·탈퇴 같은 되돌릴 수 없는 액션
- 조합: AlertDialog + Button + Alert
- shadcn: 되돌릴 수 없는 액션은 AlertDialog(제목 필수), 인라인 경고는 Alert
- 요청 문장: 삭제 확인을 shadcn AlertDialog 로. 제목·설명·취소/삭제 버튼, 삭제는 destructive variant 로.
### 검색·필터 · 검색바 + 필터 결과
- 조합: InputGroup + Combobox + Badge + ToggleGroup
- shadcn: 검색은 InputGroup(돋보기 아이콘), 자동완성은 Combobox, 필터 칩은 Badge, 정렬 토글은 ToggleGroup
- 요청 문장: 검색+필터 바를 shadcn 으로. 검색은 InputGroup 에 아이콘, 자동완성은 Combobox, 적용된 필터는 Badge, 정렬은 ToggleGroup.
### 빈 화면·로딩 · 데이터 없거나 불러오는 중
- 조합: Empty + Skeleton + Spinner
- shadcn: 데이터 없으면 Empty(아이콘+안내+액션), 불러오는 중은 Skeleton, 짧은 대기는 Spinner
- 요청 문장: 데이터 없을 때는 shadcn Empty(아이콘+문구+버튼), 로딩 중은 Skeleton 으로 자리 잡아줘.