@krds.ui/vue 0.0.8 → 0.0.10
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 +123 -27
- package/dist/krds-vue.es.js +1121 -991
- package/dist/krds-vue.es.js.map +1 -1
- package/dist/krds-vue.umd.js +1 -1
- package/dist/krds-vue.umd.js.map +1 -1
- package/dist/style.css +1 -1
- package/dist/types/index.d.ts +91 -0
- package/package.json +24 -24
package/README.md
CHANGED
|
@@ -1,64 +1,160 @@
|
|
|
1
1
|
# KRDS Vue
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
> 한국 정부 디자인 시스템(Korea Government Design System)을 기반으로 한 Vue 3 컴포넌트 라이브러리
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/@krds.ui/vue)
|
|
6
|
+
[](https://opensource.org/licenses/MIT)
|
|
7
|
+
|
|
8
|
+
KRDS Vue는 대한민국 정부 표준 디자인 시스템을 Vue 3 + TypeScript로 구현한 공식 컴포넌트 라이브러리입니다. 접근성(WCAG 2.1 AA)과 정부 표준 준수를 핵심 목표로 하며, 정부 및 공공기관 웹사이트 개발에 최적화되어 있습니다.
|
|
9
|
+
|
|
10
|
+
## 링크
|
|
11
|
+
|
|
12
|
+
- [Storybook 문서](https://krds.initializer.org/) - 컴포넌트 데모 및 API 문서
|
|
13
|
+
- [KRDS 공식 홈페이지](https://www.krds.go.kr/html/site/index.html) - 디자인 가이드라인 및 표준
|
|
14
|
+
|
|
15
|
+
## 주요 특징
|
|
16
|
+
|
|
17
|
+
- **Vue 3 완전 호환**: Composition API 기반 최신 Vue 3 지원
|
|
18
|
+
- **TypeScript 완전 지원**: 완벽한 타입 정의와 IntelliSense 지원
|
|
19
|
+
- **정부 표준 준수**: 대한민국 정부 디자인 시스템 공식 가이드라인 준수
|
|
20
|
+
- **접근성 우선**: WCAG 2.1 AA 준수, 스크린 리더 및 키보드 내비게이션 완벽 지원
|
|
21
|
+
- **40+ 컴포넌트**: 정부 웹사이트 개발에 필요한 다양한 UI 컴포넌트 제공
|
|
22
|
+
- **Tree-shaking 지원**: ES 모듈 번들로 최적화된 빌드 사이즈
|
|
23
|
+
- **Storybook 문서**: 인터랙티브한 컴포넌트 문서 및 데모
|
|
4
24
|
|
|
5
25
|
## 설치
|
|
6
26
|
|
|
7
27
|
```bash
|
|
28
|
+
# npm
|
|
8
29
|
npm install @krds.ui/vue
|
|
9
|
-
|
|
30
|
+
|
|
31
|
+
# pnpm (권장)
|
|
10
32
|
pnpm add @krds.ui/vue
|
|
11
|
-
|
|
33
|
+
|
|
34
|
+
# yarn
|
|
12
35
|
yarn add @krds.ui/vue
|
|
13
36
|
```
|
|
14
37
|
|
|
15
|
-
##
|
|
38
|
+
## 빠른 시작
|
|
16
39
|
|
|
17
|
-
###
|
|
40
|
+
### 1. 스타일 가져오기
|
|
18
41
|
|
|
19
|
-
|
|
42
|
+
메인 엔트리 파일(예: `main.ts` 또는 `main.js`)에서 KRDS 스타일을 가져옵니다:
|
|
20
43
|
|
|
21
|
-
```
|
|
22
|
-
import
|
|
44
|
+
```typescript
|
|
45
|
+
import '@krds.ui/vue/dist/style.css'
|
|
23
46
|
```
|
|
24
47
|
|
|
25
|
-
### 컴포넌트
|
|
48
|
+
### 2. 컴포넌트 사용
|
|
26
49
|
|
|
27
50
|
```vue
|
|
28
51
|
<template>
|
|
29
52
|
<div>
|
|
30
|
-
<KrdsButton variant="primary" @click="handleClick">
|
|
31
|
-
|
|
53
|
+
<KrdsButton variant="primary" size="medium" @click="handleClick">
|
|
54
|
+
확인
|
|
32
55
|
</KrdsButton>
|
|
56
|
+
|
|
57
|
+
<KrdsInput
|
|
58
|
+
v-model="text"
|
|
59
|
+
label="이름"
|
|
60
|
+
placeholder="이름을 입력하세요"
|
|
61
|
+
required
|
|
62
|
+
/>
|
|
33
63
|
</div>
|
|
34
64
|
</template>
|
|
35
65
|
|
|
36
|
-
<script setup>
|
|
37
|
-
import {
|
|
66
|
+
<script setup lang="ts">
|
|
67
|
+
import { ref } from 'vue'
|
|
68
|
+
import { KrdsButton, KrdsInput } from '@krds.ui/vue'
|
|
69
|
+
|
|
70
|
+
const text = ref('')
|
|
38
71
|
|
|
39
72
|
const handleClick = () => {
|
|
40
|
-
console.log('클릭됨')
|
|
41
|
-
}
|
|
73
|
+
console.log('버튼 클릭됨')
|
|
74
|
+
}
|
|
42
75
|
</script>
|
|
43
76
|
```
|
|
44
77
|
|
|
45
|
-
##
|
|
78
|
+
## 주요 컴포넌트
|
|
46
79
|
|
|
47
|
-
|
|
48
|
-
- TypeScript 지원
|
|
49
|
-
- 한국 정부 디자인 시스템 준수
|
|
50
|
-
- 접근성(a11y) 고려
|
|
51
|
-
- 다양한 UI 컴포넌트 제공
|
|
80
|
+
전체 컴포넌트 목록과 상세 API는 [Storybook 문서](https://krds.initializer.org/)를 참조하세요.
|
|
52
81
|
|
|
53
|
-
##
|
|
82
|
+
## TypeScript 지원
|
|
83
|
+
|
|
84
|
+
KRDS Vue는 완전한 TypeScript 지원을 제공합니다:
|
|
85
|
+
|
|
86
|
+
```typescript
|
|
87
|
+
import type { KrdsButtonProps, KrdsInputProps } from '@krds.ui/vue'
|
|
88
|
+
|
|
89
|
+
// Props 타입 활용
|
|
90
|
+
const buttonProps: KrdsButtonProps = {
|
|
91
|
+
variant: 'primary',
|
|
92
|
+
size: 'medium',
|
|
93
|
+
disabled: false
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
// 이벤트 타입 활용
|
|
97
|
+
import type { KrdsInputEmits } from '@krds.ui/vue'
|
|
98
|
+
|
|
99
|
+
const handleInput: KrdsInputEmits['input'] = (value: string) => {
|
|
100
|
+
console.log('입력값:', value)
|
|
101
|
+
}
|
|
102
|
+
```
|
|
54
103
|
|
|
55
|
-
|
|
104
|
+
## 개발 환경 요구사항
|
|
105
|
+
|
|
106
|
+
- **Node.js**: >= 20.0.0
|
|
107
|
+
- **pnpm**: >= 9.0.0 (권장 패키지 매니저)
|
|
108
|
+
- **Vue**: >= 3.5.0 (peer dependency)
|
|
109
|
+
|
|
110
|
+
## 접근성
|
|
111
|
+
|
|
112
|
+
KRDS Vue는 WCAG 2.1 AA 수준의 접근성을 준수합니다:
|
|
113
|
+
|
|
114
|
+
- 키보드 내비게이션 완전 지원
|
|
115
|
+
- 스크린 리더 호환성
|
|
116
|
+
- 적절한 ARIA 속성 및 역할
|
|
117
|
+
- 색상 대비 및 포커스 표시
|
|
118
|
+
- Storybook의 `@storybook/addon-a11y`를 통한 자동 검증
|
|
56
119
|
|
|
57
120
|
## 기여
|
|
58
121
|
|
|
59
|
-
|
|
122
|
+
KRDS Vue는 오픈소스 프로젝트입니다. 기여를 환영합니다!
|
|
123
|
+
|
|
124
|
+
1. 버그 리포트나 기능 요청: [GitHub Issues](https://github.com/Initializer-org/krds-vue/issues)
|
|
125
|
+
2. Pull Request: [GitHub Repository](https://github.com/Initializer-org/krds-vue)
|
|
126
|
+
|
|
127
|
+
### 개발 환경 설정
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
# 저장소 클론
|
|
131
|
+
git clone https://github.com/Initializer-org/krds-vue.git
|
|
132
|
+
cd krds-vue
|
|
133
|
+
|
|
134
|
+
# 의존성 설치
|
|
135
|
+
pnpm install
|
|
136
|
+
|
|
137
|
+
# 개발 서버 실행
|
|
138
|
+
pnpm dev
|
|
139
|
+
|
|
140
|
+
# Storybook 실행
|
|
141
|
+
pnpm storybook
|
|
142
|
+
|
|
143
|
+
# 테스트 실행
|
|
144
|
+
pnpm test
|
|
145
|
+
|
|
146
|
+
# 빌드
|
|
147
|
+
pnpm build
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
## 라이센스
|
|
151
|
+
|
|
152
|
+
MIT © [Initializer Team](https://github.com/Initializer-org)
|
|
60
153
|
|
|
61
|
-
##
|
|
154
|
+
## 관련 링크
|
|
62
155
|
|
|
63
|
-
-
|
|
64
|
-
-
|
|
156
|
+
- [GitHub Repository](https://github.com/Initializer-org/krds-vue)
|
|
157
|
+
- [npm Package](https://www.npmjs.com/package/@krds.ui/vue)
|
|
158
|
+
- [Storybook 문서](https://krds.initializer.org/)
|
|
159
|
+
- [KRDS 공식 홈페이지](https://www.krds.go.kr/html/site/index.html)
|
|
160
|
+
- [Issue Tracker](https://github.com/Initializer-org/krds-vue/issues)
|