@designbasekorea/ui 0.5.1 → 0.5.4
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 +100 -59
- package/dist/index.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/index.d.ts +10 -7
- package/dist/index.esm.css +1 -1
- package/dist/index.esm.css.map +1 -1
- package/dist/index.esm.js +216 -107
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +227 -109
- package/dist/index.js.map +1 -1
- package/dist/index.umd.css +1 -1
- package/dist/index.umd.css.map +1 -1
- package/dist/index.umd.js +230 -113
- package/dist/index.umd.js.map +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -48,19 +48,15 @@ function App() {
|
|
|
48
48
|
클릭하세요
|
|
49
49
|
</Button>
|
|
50
50
|
|
|
51
|
-
<Card>
|
|
52
|
-
<
|
|
53
|
-
<Card.Body>
|
|
54
|
-
<Input placeholder="이름을 입력하세요" />
|
|
55
|
-
</Card.Body>
|
|
51
|
+
<Card title="카드 제목" description="카드 설명입니다.">
|
|
52
|
+
<Input placeholder="이름을 입력하세요" />
|
|
56
53
|
</Card>
|
|
57
54
|
|
|
58
|
-
<Accordion
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
</Accordion>
|
|
55
|
+
<Accordion
|
|
56
|
+
items={[
|
|
57
|
+
{ id: 'item-1', title: '제목 1', content: '내용 1' }
|
|
58
|
+
]}
|
|
59
|
+
/>
|
|
64
60
|
</div>
|
|
65
61
|
);
|
|
66
62
|
}
|
|
@@ -165,6 +161,7 @@ export default App;
|
|
|
165
161
|
- **Rating** - 별점
|
|
166
162
|
- **Stepper** - 단계 표시
|
|
167
163
|
- **Popover** - 팝오버
|
|
164
|
+
- **AnimationBackground** - 애니메이션 배경 (그라디언트, 펄스, 파도, 파티클, 별, 오로라 + 테마/그리드)
|
|
168
165
|
|
|
169
166
|
## 🎯 컴포넌트 사용 예시
|
|
170
167
|
|
|
@@ -173,7 +170,7 @@ export default App;
|
|
|
173
170
|
```tsx
|
|
174
171
|
import { Button } from '@designbasekorea/ui';
|
|
175
172
|
|
|
176
|
-
<Button variant="primary" size="l"
|
|
173
|
+
<Button variant="primary" size="l" onPress={() => console.log('클릭!')}>
|
|
177
174
|
Primary 버튼
|
|
178
175
|
</Button>
|
|
179
176
|
|
|
@@ -181,21 +178,22 @@ import { Button } from '@designbasekorea/ui';
|
|
|
181
178
|
비활성 버튼
|
|
182
179
|
</Button>
|
|
183
180
|
|
|
184
|
-
<Button variant="
|
|
181
|
+
<Button variant="tertiary" size="s" fullWidth>
|
|
185
182
|
전체 너비 버튼
|
|
186
183
|
</Button>
|
|
187
184
|
```
|
|
188
185
|
|
|
189
186
|
**Props**:
|
|
190
|
-
- `variant`: 'primary' | 'secondary' | '
|
|
191
|
-
- `size`: '
|
|
187
|
+
- `variant`: 'primary' | 'secondary' | 'tertiary' | 'ghost' | 'danger'
|
|
188
|
+
- `size`: 's' | 'm' | 'l'
|
|
192
189
|
- `fullWidth`: boolean
|
|
193
190
|
- `disabled`: boolean
|
|
194
|
-
- `
|
|
191
|
+
- `onPress`: () => void
|
|
195
192
|
|
|
196
193
|
### Input
|
|
197
194
|
|
|
198
195
|
```tsx
|
|
196
|
+
import { CloseIcon, SearchIcon } from '@designbasekorea/icons';
|
|
199
197
|
import { Input } from '@designbasekorea/ui';
|
|
200
198
|
|
|
201
199
|
<Input
|
|
@@ -207,12 +205,13 @@ import { Input } from '@designbasekorea/ui';
|
|
|
207
205
|
<Input
|
|
208
206
|
type="email"
|
|
209
207
|
label="이메일"
|
|
210
|
-
error
|
|
208
|
+
error
|
|
209
|
+
errorMessage="올바른 이메일을 입력하세요"
|
|
211
210
|
/>
|
|
212
211
|
|
|
213
212
|
<Input
|
|
214
|
-
|
|
215
|
-
|
|
213
|
+
startIcon={SearchIcon}
|
|
214
|
+
endIcon={CloseIcon}
|
|
216
215
|
/>
|
|
217
216
|
```
|
|
218
217
|
|
|
@@ -220,40 +219,83 @@ import { Input } from '@designbasekorea/ui';
|
|
|
220
219
|
- `type`: 'text' | 'email' | 'password' | 'number' | ...
|
|
221
220
|
- `label`: string
|
|
222
221
|
- `placeholder`: string
|
|
223
|
-
- `error`:
|
|
222
|
+
- `error`: boolean
|
|
223
|
+
- `errorMessage`: string
|
|
224
224
|
- `disabled`: boolean
|
|
225
|
-
- `
|
|
226
|
-
- `
|
|
225
|
+
- `startIcon`: React.ComponentType<IconProps>
|
|
226
|
+
- `endIcon`: React.ComponentType<IconProps>
|
|
227
|
+
|
|
228
|
+
### AnimationBackground
|
|
229
|
+
|
|
230
|
+
애니메이션 배경 (그라디언트, 펄스, 파도, 파티클, 별, 오로라). 테마(light/dark)와 그리드 오버레이 지원.
|
|
231
|
+
|
|
232
|
+
```tsx
|
|
233
|
+
import { AnimationBackground } from '@designbasekorea/ui';
|
|
234
|
+
|
|
235
|
+
// 그라디언트
|
|
236
|
+
<AnimationBackground type="gradient" colors={['#667eea', '#764ba2', '#f093fb']}>
|
|
237
|
+
<div>콘텐츠</div>
|
|
238
|
+
</AnimationBackground>
|
|
239
|
+
|
|
240
|
+
// 오로라 (다크/라이트 테마)
|
|
241
|
+
<AnimationBackground type="aurora" theme="dark" intensity="vivid" colors={['#6366f1', '#a855f7', '#ec4899']} />
|
|
242
|
+
|
|
243
|
+
// Light Aurora Mesh (라이트 테마 + 은은한 그리드)
|
|
244
|
+
<AnimationBackground
|
|
245
|
+
type="aurora"
|
|
246
|
+
theme="light"
|
|
247
|
+
colors={['#c084fc', '#f472b6', '#38bdf8']}
|
|
248
|
+
intensity="medium"
|
|
249
|
+
showGrid
|
|
250
|
+
gridOpacity={0.12}
|
|
251
|
+
/>
|
|
252
|
+
|
|
253
|
+
// Blueprint (다크 그라디언트 + 그리드)
|
|
254
|
+
<AnimationBackground
|
|
255
|
+
type="gradient"
|
|
256
|
+
theme="dark"
|
|
257
|
+
colors={['#1e293b', '#0f172a']}
|
|
258
|
+
direction="up"
|
|
259
|
+
showGrid
|
|
260
|
+
gridColor="#60a5fa"
|
|
261
|
+
gridSize={20}
|
|
262
|
+
gridOpacity={0.2}
|
|
263
|
+
/>
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
**타입**: `'gradient' | 'pulse' | 'wave' | 'particles' | 'stars' | 'aurora'`
|
|
267
|
+
**주요 Props**: `type`, `theme` ('light' | 'dark'), `colors`, `intensity` ('subtle' | 'medium' | 'vivid'), `showGrid`, `gridSize`, `gridColor`, `gridOpacity`, `speed`, `direction`, `particleCount`, `starCount`, `clickable`
|
|
227
268
|
|
|
228
269
|
### Card
|
|
229
270
|
|
|
230
271
|
```tsx
|
|
231
272
|
import { Card } from '@designbasekorea/ui';
|
|
232
273
|
|
|
233
|
-
<Card
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
274
|
+
<Card
|
|
275
|
+
title="카드 제목"
|
|
276
|
+
description="카드 내용입니다."
|
|
277
|
+
actions={[
|
|
278
|
+
{ label: '취소', variant: 'secondary' },
|
|
279
|
+
{ label: '확인', variant: 'primary' }
|
|
280
|
+
]}
|
|
281
|
+
/>
|
|
282
|
+
|
|
283
|
+
<Card image={{ src: '/image.jpg', alt: '썸네일' }} layout="horizontal">
|
|
284
|
+
<p>커스텀 콘텐츠</p>
|
|
243
285
|
</Card>
|
|
244
286
|
```
|
|
245
287
|
|
|
246
288
|
### Modal
|
|
247
289
|
|
|
248
290
|
```tsx
|
|
249
|
-
import { Modal } from '@designbasekorea/ui';
|
|
291
|
+
import { Button, Modal, ModalBody, ModalFooter } from '@designbasekorea/ui';
|
|
250
292
|
|
|
251
293
|
function MyComponent() {
|
|
252
294
|
const [isOpen, setIsOpen] = useState(false);
|
|
253
295
|
|
|
254
296
|
return (
|
|
255
297
|
<>
|
|
256
|
-
<Button
|
|
298
|
+
<Button onPress={() => setIsOpen(true)}>
|
|
257
299
|
모달 열기
|
|
258
300
|
</Button>
|
|
259
301
|
|
|
@@ -262,12 +304,13 @@ function MyComponent() {
|
|
|
262
304
|
onClose={() => setIsOpen(false)}
|
|
263
305
|
title="모달 제목"
|
|
264
306
|
>
|
|
265
|
-
<
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
307
|
+
<ModalBody>
|
|
308
|
+
<p>모달 내용입니다.</p>
|
|
309
|
+
</ModalBody>
|
|
310
|
+
<ModalFooter>
|
|
311
|
+
<Button onPress={() => setIsOpen(false)}>닫기</Button>
|
|
269
312
|
<Button variant="primary">확인</Button>
|
|
270
|
-
</
|
|
313
|
+
</ModalFooter>
|
|
271
314
|
</Modal>
|
|
272
315
|
</>
|
|
273
316
|
);
|
|
@@ -279,21 +322,11 @@ function MyComponent() {
|
|
|
279
322
|
```tsx
|
|
280
323
|
import { Accordion } from '@designbasekorea/ui';
|
|
281
324
|
|
|
282
|
-
<Accordion
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
</Accordion.Content>
|
|
288
|
-
</Accordion.Item>
|
|
289
|
-
|
|
290
|
-
<Accordion.Item value="item-2">
|
|
291
|
-
<Accordion.Header>두 번째 항목</Accordion.Header>
|
|
292
|
-
<Accordion.Content>
|
|
293
|
-
두 번째 항목의 내용입니다.
|
|
294
|
-
</Accordion.Content>
|
|
295
|
-
</Accordion.Item>
|
|
296
|
-
</Accordion>
|
|
325
|
+
<Accordion
|
|
326
|
+
items={[
|
|
327
|
+
{ id: 'item-1', title: '제목 1', content: '내용 1' }
|
|
328
|
+
]}
|
|
329
|
+
/>
|
|
297
330
|
```
|
|
298
331
|
|
|
299
332
|
### Toast
|
|
@@ -431,7 +464,16 @@ npm run storybook
|
|
|
431
464
|
|
|
432
465
|
## 🔄 버전 히스토리
|
|
433
466
|
|
|
434
|
-
### 0.1
|
|
467
|
+
### 0.5.1 (Latest)
|
|
468
|
+
- ✅ AnimationBackground: 레이어 구조(CanvasLayer, CSSGradientLayer, MeshAuroraLayer, GridOverlay)
|
|
469
|
+
- ✅ theme(light/dark), showGrid, gridSize, gridColor, gridOpacity 지원
|
|
470
|
+
- ✅ Light Aurora Mesh / Blueprint 스타일 및 그리드 라인 전 영역 표시
|
|
471
|
+
- ✅ 타입 정리: gradient, pulse, wave, particles, stars, aurora (레인보우·파이어·오션·선셋 제거)
|
|
472
|
+
|
|
473
|
+
### 0.5.0
|
|
474
|
+
- ✅ Select 모바일 바텀시트 지원 (useMobileBottomSheet)
|
|
475
|
+
|
|
476
|
+
### 0.1.0
|
|
435
477
|
- ✅ 20+ React 컴포넌트 제공
|
|
436
478
|
- ✅ 테마 시스템 통합
|
|
437
479
|
- ✅ TypeScript 지원
|
|
@@ -458,14 +500,14 @@ import { Button } from '@designbasekorea/ui';
|
|
|
458
500
|
|
|
459
501
|
| UI | Tokens | Theme |
|
|
460
502
|
|----|--------|-------|
|
|
461
|
-
| 0.1
|
|
503
|
+
| 0.5.1+ | 0.2.x | 0.2.x |
|
|
462
504
|
|
|
463
505
|
호환되는 버전을 함께 사용하세요.
|
|
464
506
|
|
|
465
507
|
### 3. React 버전
|
|
466
508
|
|
|
467
|
-
- React `
|
|
468
|
-
- React DOM `
|
|
509
|
+
- React `19.0.0+` 필요 (peerDependencies)
|
|
510
|
+
- React DOM `19.0.0+` 필요
|
|
469
511
|
|
|
470
512
|
## 🤝 기여
|
|
471
513
|
|
|
@@ -474,4 +516,3 @@ import { Button } from '@designbasekorea/ui';
|
|
|
474
516
|
## 📄 라이선스
|
|
475
517
|
|
|
476
518
|
MIT
|
|
477
|
-
|