@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 CHANGED
@@ -48,19 +48,15 @@ function App() {
48
48
  클릭하세요
49
49
  </Button>
50
50
 
51
- <Card>
52
- <Card.Header>카드 제목</Card.Header>
53
- <Card.Body>
54
- <Input placeholder="이름을 입력하세요" />
55
- </Card.Body>
51
+ <Card title="카드 제목" description="카드 설명입니다.">
52
+ <Input placeholder="이름을 입력하세요" />
56
53
  </Card>
57
54
 
58
- <Accordion>
59
- <Accordion.Item value="item-1">
60
- <Accordion.Header>제목 1</Accordion.Header>
61
- <Accordion.Content>내용 1</Accordion.Content>
62
- </Accordion.Item>
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" onClick={() => console.log('클릭!')}>
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="outline" size="s" fullWidth>
181
+ <Button variant="tertiary" size="s" fullWidth>
185
182
  전체 너비 버튼
186
183
  </Button>
187
184
  ```
188
185
 
189
186
  **Props**:
190
- - `variant`: 'primary' | 'secondary' | 'outline' | 'ghost' | 'danger'
191
- - `size`: 'sm' | 'md' | 'lg'
187
+ - `variant`: 'primary' | 'secondary' | 'tertiary' | 'ghost' | 'danger'
188
+ - `size`: 's' | 'm' | 'l'
192
189
  - `fullWidth`: boolean
193
190
  - `disabled`: boolean
194
- - `onClick`: () => void
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
- prefix={<SearchIcon />}
215
- suffix={<ClearIcon onClick={clearInput} />}
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`: string
222
+ - `error`: boolean
223
+ - `errorMessage`: string
224
224
  - `disabled`: boolean
225
- - `prefix`: ReactNode
226
- - `suffix`: ReactNode
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
- <Card.Header>
235
- <h2>카드 제목</h2>
236
- </Card.Header>
237
- <Card.Body>
238
- <p>카드 내용입니다.</p>
239
- </Card.Body>
240
- <Card.Footer>
241
- <Button>확인</Button>
242
- </Card.Footer>
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 onClick={() => setIsOpen(true)}>
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
- <p>모달 내용입니다.</p>
266
-
267
- <Modal.Footer>
268
- <Button onClick={() => setIsOpen(false)}>닫기</Button>
307
+ <ModalBody>
308
+ <p>모달 내용입니다.</p>
309
+ </ModalBody>
310
+ <ModalFooter>
311
+ <Button onPress={() => setIsOpen(false)}>닫기</Button>
269
312
  <Button variant="primary">확인</Button>
270
- </Modal.Footer>
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
- <Accordion.Item value="item-1">
284
- <Accordion.Header>첫 번째 항목</Accordion.Header>
285
- <Accordion.Content>
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.0 (Latest)
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.0+ | 0.1.7+ | 0.1.11+ |
503
+ | 0.5.1+ | 0.2.x | 0.2.x |
462
504
 
463
505
  호환되는 버전을 함께 사용하세요.
464
506
 
465
507
  ### 3. React 버전
466
508
 
467
- - React `18.0.0+` 필요
468
- - React DOM `18.0.0+` 필요
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
-