dak-krds 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +153 -15
- package/dist/index.css +4057 -0
- package/dist/index.css.map +1 -0
- package/dist/index.js +7642 -9
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +7507 -9
- package/dist/index.mjs.map +1 -1
- package/package.json +54 -12
- package/dist/index.d.mts +0 -73
- package/dist/index.d.ts +0 -73
package/README.md
CHANGED
|
@@ -1,15 +1,29 @@
|
|
|
1
1
|
# DAK KRDS
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**모두를 위한 디지털 서비스 경험**
|
|
4
|
+
|
|
5
|
+
DAK React UI Component Design System - [KRDS(Korea Design System)](https://www.krds.go.kr) 디자인 원칙을 준수하여 개발된 React 컴포넌트 라이브러리입니다.
|
|
6
|
+
|
|
7
|
+
국민 누구나 디지털 정부서비스 경험을 쉽게 누릴 수 있는 기준을 바탕으로, 일관성 있고 접근성 높은 사용자 인터페이스를 제공합니다.
|
|
8
|
+
|
|
9
|
+
## 디자인 원칙
|
|
10
|
+
|
|
11
|
+
DAK KRDS는 KRDS의 핵심 가치를 반영합니다:
|
|
12
|
+
|
|
13
|
+
- **디지털 포용**: 모든 사용자가 동일한 서비스를 경험할 수 있도록 설계
|
|
14
|
+
- **웹접근성**: WCAG 2.1 AA 수준의 접근성 준수
|
|
15
|
+
- **일관성**: 통일된 디자인 언어로 예측 가능한 사용자 경험 제공
|
|
16
|
+
- **사용성**: 직관적이고 쉬운 인터페이스 설계
|
|
4
17
|
|
|
5
18
|
## 특징
|
|
6
19
|
|
|
7
|
-
-
|
|
8
|
-
-
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
-
|
|
20
|
+
- 🏛️ **KRDS 준수**: 대한민국 공식 디자인 시스템 가이드 준수
|
|
21
|
+
- ♿️ **웹접근성**: 스크린 리더, 키보드 탐색 등 접근성 기능 완벽 지원
|
|
22
|
+
- 🎨 **디자인 토큰**: 일관성 있는 스타일 관리를 위한 디자인 토큰 시스템
|
|
23
|
+
- 📦 **TypeScript**: 완전한 타입 안정성 제공
|
|
24
|
+
- 🚀 **최적화**: Tree-shaking 지원으로 경량화된 번들
|
|
25
|
+
- 💅 **커스터마이징**: 프로젝트에 맞게 스타일 확장 가능
|
|
26
|
+
- 🌓 **다크모드**: 선명한 화면 모드 지원
|
|
13
27
|
|
|
14
28
|
## 설치
|
|
15
29
|
|
|
@@ -21,28 +35,88 @@ npm install dak-krds
|
|
|
21
35
|
yarn add dak-krds
|
|
22
36
|
```
|
|
23
37
|
|
|
24
|
-
##
|
|
38
|
+
## 시작하기
|
|
39
|
+
|
|
40
|
+
### 사용법
|
|
25
41
|
|
|
26
42
|
```tsx
|
|
27
|
-
import { Button,
|
|
43
|
+
import { Button, TextInput, Badge, Modal } from 'dak-krds';
|
|
28
44
|
|
|
29
45
|
function App() {
|
|
30
46
|
return (
|
|
31
|
-
<
|
|
47
|
+
<div>
|
|
32
48
|
<Badge variant="success">새로운 기능</Badge>
|
|
33
49
|
<Button variant="primary" size="medium">
|
|
34
50
|
시작하기
|
|
35
51
|
</Button>
|
|
36
|
-
<
|
|
52
|
+
<TextInput
|
|
37
53
|
label="이름"
|
|
38
54
|
placeholder="이름을 입력하세요"
|
|
55
|
+
required
|
|
39
56
|
/>
|
|
40
|
-
</
|
|
57
|
+
</div>
|
|
41
58
|
);
|
|
42
59
|
}
|
|
43
60
|
```
|
|
44
61
|
|
|
45
|
-
|
|
62
|
+
### 스타일 가져오기
|
|
63
|
+
|
|
64
|
+
컴포넌트 스타일을 사용하기 위해 CSS를 import 해주세요:
|
|
65
|
+
|
|
66
|
+
```tsx
|
|
67
|
+
import 'dak-krds/styles.css';
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## 주요 구성
|
|
71
|
+
|
|
72
|
+
### 컴포넌트
|
|
73
|
+
|
|
74
|
+
사용자 인터페이스의 가장 작은 단위로 일관성 있게 사용되는 공통 요소들입니다.
|
|
75
|
+
|
|
76
|
+
#### 아이덴티티
|
|
77
|
+
- **Badge**: 상태나 레이블 표시
|
|
78
|
+
- **Tag**: 키워드나 분류 표시
|
|
79
|
+
|
|
80
|
+
#### 탐색
|
|
81
|
+
- **Breadcrumb**: 현재 위치를 나타내는 탐색 경로
|
|
82
|
+
- **Tab**: 콘텐츠 영역 전환
|
|
83
|
+
- **Pagination**: 페이지 단위 탐색
|
|
84
|
+
|
|
85
|
+
#### 액션
|
|
86
|
+
- **Button**: 사용자 행동 트리거
|
|
87
|
+
- **LinkButton**: 링크 형태의 버튼
|
|
88
|
+
|
|
89
|
+
#### 선택
|
|
90
|
+
- **Checkbox**: 다중 선택
|
|
91
|
+
- **RadioButton**: 단일 선택
|
|
92
|
+
- **Switch**: 토글 스위치
|
|
93
|
+
- **Select**: 드롭다운 선택
|
|
94
|
+
- **ChipGroup**: 칩 형태의 선택
|
|
95
|
+
|
|
96
|
+
#### 입력
|
|
97
|
+
- **TextInput**: 텍스트 입력
|
|
98
|
+
- **TextArea**: 여러 줄 텍스트 입력
|
|
99
|
+
- **NumberInput**: 숫자 입력
|
|
100
|
+
- **PhoneInput**: 전화번호 입력
|
|
101
|
+
- **DatePicker**: 날짜 선택
|
|
102
|
+
- **TimeSelector**: 시간 선택
|
|
103
|
+
|
|
104
|
+
#### 피드백
|
|
105
|
+
- **Alert**: 경고 메시지
|
|
106
|
+
- **Modal**: 모달 다이얼로그
|
|
107
|
+
- **ToastBar**: 토스트 알림
|
|
108
|
+
- **Spinner**: 로딩 인디케이터
|
|
109
|
+
|
|
110
|
+
#### 레이아웃 및 표현
|
|
111
|
+
- **Accordion**: 접을 수 있는 콘텐츠
|
|
112
|
+
- **Carousel**: 이미지 슬라이더
|
|
113
|
+
- **Table**: 데이터 테이블
|
|
114
|
+
- **Card**: 콘텐츠 컨테이너
|
|
115
|
+
|
|
116
|
+
#### 도움
|
|
117
|
+
- **Tooltip**: 도움말 툴팁
|
|
118
|
+
|
|
119
|
+
## 컴포넌트 가이드
|
|
46
120
|
|
|
47
121
|
### Button
|
|
48
122
|
|
|
@@ -200,12 +274,12 @@ const options = [
|
|
|
200
274
|
/>
|
|
201
275
|
```
|
|
202
276
|
|
|
203
|
-
## TypeScript
|
|
277
|
+
## TypeScript 지원
|
|
204
278
|
|
|
205
279
|
모든 컴포넌트는 완전한 TypeScript 타입 정의를 제공합니다.
|
|
206
280
|
|
|
207
281
|
```tsx
|
|
208
|
-
import type { ButtonProps,
|
|
282
|
+
import type { ButtonProps, TextInputProps, BadgeProps } from 'dak-krds';
|
|
209
283
|
|
|
210
284
|
const customButton: ButtonProps = {
|
|
211
285
|
variant: 'primary',
|
|
@@ -214,6 +288,70 @@ const customButton: ButtonProps = {
|
|
|
214
288
|
};
|
|
215
289
|
```
|
|
216
290
|
|
|
291
|
+
## 웹접근성
|
|
292
|
+
|
|
293
|
+
DAK KRDS는 웹접근성을 최우선으로 고려합니다:
|
|
294
|
+
|
|
295
|
+
- **WCAG 2.1 AA 수준**: 국제 웹 콘텐츠 접근성 가이드라인 준수
|
|
296
|
+
- **키보드 탐색**: 모든 인터랙티브 요소에 키보드 접근 가능
|
|
297
|
+
- **스크린 리더 지원**: ARIA 속성을 통한 보조 기술 지원
|
|
298
|
+
- **색상 대비**: 충분한 명도 대비로 가독성 보장
|
|
299
|
+
- **포커스 인디케이터**: 명확한 포커스 표시로 현재 위치 파악 용이
|
|
300
|
+
|
|
301
|
+
### 접근성 기능 예시
|
|
302
|
+
|
|
303
|
+
```tsx
|
|
304
|
+
<TextInput
|
|
305
|
+
label="이메일"
|
|
306
|
+
id="email-input"
|
|
307
|
+
required
|
|
308
|
+
error="이메일 형식이 올바르지 않습니다"
|
|
309
|
+
aria-describedby="email-error"
|
|
310
|
+
/>
|
|
311
|
+
|
|
312
|
+
<Button
|
|
313
|
+
aria-label="검색하기"
|
|
314
|
+
onClick={handleSearch}
|
|
315
|
+
>
|
|
316
|
+
검색
|
|
317
|
+
</Button>
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
## 디자인 토큰
|
|
321
|
+
|
|
322
|
+
일관성 있는 디자인을 위해 디자인 토큰을 사용합니다:
|
|
323
|
+
|
|
324
|
+
- **색상**: 브랜드 컬러, 시스템 컬러, 시맨틱 컬러
|
|
325
|
+
- **타이포그래피**: 폰트 크기, 줄 높이, 굵기
|
|
326
|
+
- **간격**: 여백, 패딩 시스템
|
|
327
|
+
- **형태**: 모서리, 테두리, 그림자
|
|
328
|
+
- **아이콘**: 150+ 개의 KRDS 기반 아이콘
|
|
329
|
+
|
|
330
|
+
## KRDS 준수
|
|
331
|
+
|
|
332
|
+
이 프로젝트는 [대한민국 정부 디자인 시스템 KRDS](https://www.krds.go.kr)의 다음 원칙을 준수합니다:
|
|
333
|
+
|
|
334
|
+
- **디자인 스타일**: 색상, 타이포그래피, 형태, 레이아웃, 아이콘
|
|
335
|
+
- **컴포넌트 가이드**: 표준 컴포넌트 규격 및 사용 패턴
|
|
336
|
+
- **기본 패턴**: 입력 폼, 목록 탐색, 피드백, 오류 처리
|
|
337
|
+
- **디지털 포용**: 모든 국민이 동일한 서비스를 경험할 수 있도록 설계
|
|
338
|
+
|
|
339
|
+
더 자세한 정보는 [KRDS 공식 웹사이트](https://www.krds.go.kr/html/site/index.html)를 참고하세요.
|
|
340
|
+
|
|
341
|
+
## 팀
|
|
342
|
+
|
|
343
|
+
**TeamJeff**
|
|
344
|
+
|
|
345
|
+
이 프로젝트는 다음 팀원들과 함께 개발되었습니다:
|
|
346
|
+
|
|
347
|
+
- [SUBIN](https://github.com/Da1re)
|
|
348
|
+
- [yo-ong](https://github.com/yo-ong)
|
|
349
|
+
- [imdam2](https://github.com/imdam2)
|
|
350
|
+
- [jiyoon](https://github.com/yCZwIqY)
|
|
351
|
+
- [안진형](https://github.com/AnJinHyeong)
|
|
352
|
+
- [ranyoung.kim](https://github.com/fks1311)
|
|
353
|
+
- [jeffkim](https://github.com/jeff0410)
|
|
354
|
+
|
|
217
355
|
## 라이센스
|
|
218
356
|
|
|
219
357
|
MIT
|