@lotte-innovate/ui-component-test 0.1.127-beta.0 → 0.1.128

Sign up to get free protection for your applications and to get access to all the features.
package/README.md CHANGED
@@ -1,222 +1,222 @@
1
- # LOTTE UI COMPONENT LIBRARY
2
-
3
- <br />
4
-
5
- ## 목차
6
-
7
- - [Introduction](#introduction)
8
- - [Installation](#installation)
9
- - [Setup](#setup)
10
- - [Usage](#usage)
11
- - [Components](#components)
12
- - [Theme](#theme)
13
- - [License](#license)
14
-
15
- ## Introduction
16
-
17
- 모든 L-UI 구성 요소를 내보내는 단일 패키지입니다.
18
-
19
- 일관되고 통일된 컴포넌트를 제공하며 사용자 정의 및 재사용 가능합니다.
20
-
21
- 이 라이브러리는 React로 구축된 프로젝트를 지원합니다.
22
-
23
- ## Installation
24
-
25
- 패키지를 설치하기 위해 아래 명령어를 사용합니다.
26
-
27
- ```bash
28
- npm i @lotte-innovate/lui
29
- ```
30
-
31
- ```bash
32
- yarn add @lotte-innovate/lui
33
- ```
34
-
35
- ## Setup
36
-
37
- 패키지를 설치한 후 css 스타일을 프로젝트로 가져옵니다.
38
-
39
- 프로젝트 App 진입 파일에 다음 줄을 추가해줍니다.
40
-
41
- ```
42
- import '@lotte-innovate/lui/dist/globals.css';
43
- ```
44
-
45
- ## Usage
46
-
47
- React 프로젝트에서 컴포넌트를 사용하는 방법에 대한 예시입니다.
48
-
49
- ```javascript
50
- import React from 'react';
51
- import { Button } from '@lotte-innovate/lui';
52
-
53
- const App = () => {
54
- return (
55
- <div>
56
- <Button onClick={() => alert('Button clicked!')}>Click Me</Button>
57
- </div>
58
- );
59
- };
60
-
61
- export default App;
62
- ```
63
-
64
- 컴포넌트에서 아이콘을 사용하려면, 다음과 같은 방법으로 아이콘을 가져올 수 있습니다.
65
-
66
- ```javascript
67
- import React from 'react';
68
- import { IconButton } from '@lotte-innovate/lui';
69
- import { MagnifyingGlassIcon } from '@radix-ui/react-icons';
70
-
71
- const App = () => {
72
- return (
73
- <div>
74
- <IconButton>
75
- <MagnifyingGlassIcon />
76
- </IconButton>
77
- </div>
78
- );
79
- };
80
-
81
- export default App;
82
- ```
83
-
84
- ## Components
85
-
86
- <br />
87
-
88
- <details>
89
- <summary>컴포넌트 목록</summary>
90
-
91
- | 구분 | 종류 |
92
- | ------------------- | ---------------------------------------------------------------------------------------------------------------- |
93
- | Typography 컴포넌트 | Header, Text |
94
- | 기본 컴포넌트 | Avatar, Badge, Button, IconButton, Label |
95
- | 입력 컴포넌트 | DatePicker, Editor, Slider, TextArea, TextField |
96
- | 선택 컴포넌트 | Checkbox, CheckboxCards, CheckboxGroup, Radio, RadioCards, RadioGroup, Select, Toggle, ToggleGroup, ToggleSwitch |
97
- | 네비게이션 컴포넌트 | Breadcrumb, GNB, Menubar, NavigationMenu, SNB, Tab Nav, Tabs |
98
- | 레이아웃 컴포넌트 | AspectRatio, Card, Collapsible, Footer, Grid, Inset, ScrollArea, Separator, Table |
99
-
100
- </details>
101
- <details>
102
- <summary>차트 목록</summary>
103
-
104
- | 구분 | 종류 |
105
- | --------- | ------------- |
106
- | 비교 차트 | Bar, Line |
107
- | 구성 차트 | Pie, Doughnut |
108
- | 분포 차트 | Bubble |
109
- | 관계 차트 | Radar |
110
-
111
- </details>
112
-
113
- <details>
114
- <summary>공통 Props 목록</summary>
115
-
116
- | name | description | 단계 | option | 테마적용여부 |
117
- | ---------- | ------------------------------------------------- | -------- | --------------------------------------------- | ------------ |
118
- | Color | 27가지 색상을 라이트/다크/알파/알파다크 모드 제공 | 1~12단계 | blue, crimson, teal, orange, purple, amber... | O |
119
- | Radius | 컴포넌트의 둥글기 적용 | 5단계 | none, small, medium, large, full | O |
120
- | Scaling | 컴포넌트의 비율 | 5단계 | 90%, 95%, 100%, 105%, 110% | O |
121
- | Weight | 컴포넌트의 텍스트 굵기 | 4단계 | regular, medium, semibold, bold | O |
122
- | Appearance | 컴포넌트의 디자인 스타일 | 6단계 | classic, ghost, outline, soft, solid, surface | X |
123
- | Size | 컴포넌트의 크기 | 5단계 | x-small, small, medium, large, x-large | X |
124
-
125
- </details>
126
-
127
- <br />
128
-
129
- ## Theme
130
-
131
- 각 컴포넌트들은 공통 Props를 개별적으로 적용할 수도 있고, 테마를 통해 컴포넌트의 스타일을 한번에 변경할 수도 있습니다.
132
-
133
- L-UI는 테마 컨텍스트를 제공하여 `Color`, `Radius`, `Scaling`, `Weight` 를 모든 컴포넌트에 동일한 스타일을 지정할 수 있습니다..
134
-
135
- 먼저 App 최상단에 `LuiThemeProvider`를 추가하여 테마 컨텍스트를 제공합니다.
136
-
137
- > Next.js와 같은 프레임워크를 사용하는 프로젝트에서 사용 예시
138
-
139
- ```javascript
140
- import { LuiThemeProvider } from '@lotte-innovate/lui';
141
-
142
- export default function RootLayout({
143
- children,
144
- }: Readonly<{
145
- children: React.ReactNode;
146
- }>) {
147
- return (
148
- <html lang="en" className="bg-white">
149
- <body>
150
- <LuiThemeProvider>{children}</LuiThemeProvider>
151
- </body>
152
- </html>
153
- );
154
- }
155
-
156
- ```
157
-
158
- > 클라이언트 사이드 프로젝트에서 사용 예시
159
-
160
- ```javascript
161
- import { LuiThemeProvider } from '@lotte-innovate/lui';
162
-
163
- const root = ReactDOM.createRoot(document.getElementById('root'));
164
- root.render(
165
- <LuiThemeProvider>
166
- <App />
167
- </LuiThemeProvider>,
168
- );
169
- ```
170
-
171
- 테마를 변경하려면 `useTheme`훅을 사용합니다.
172
-
173
- `useTheme`훅은 현재 테마와 테마를 업데이트할 수 있는 함수를 제공합니다.
174
-
175
- ```javascript
176
- import { useTheme, Button } from '@lotte-innovate/lui';
177
-
178
- const ThemeChanger = () => {
179
- const { theme, updateTheme } = useTheme();
180
-
181
- // 초기 값 설정 시
182
- theme.themeRadius: 'none';
183
- theme.themeColor: 'olive';
184
- theme.themeScaling: '90%';
185
- theme.themeWeight: 'regular';
186
-
187
- // 테마 변경 시
188
- updateTheme({ themeRadius: "full", themeColor: "amber", themeScaling: "110%" });
189
-
190
- return (
191
- <div>
192
- <Button>버튼</Button>
193
- </div>
194
- );
195
- };
196
- ```
197
-
198
- 테마가 적용되었지만 일부 컴포넌트는 스타일을 다르게 하고 싶은 경우, 각 컴포넌트에 직접 Props를 전달하여 스타일을 재정의할 수 있습니다.
199
-
200
- ```javascript
201
- import { useTheme, Button } from '@lotte-innovate/lui';
202
-
203
- const ThemeChanger = () => {
204
- const { theme } = useTheme();
205
-
206
- theme.themeRadius: 'full';
207
- theme.themeColor: 'blue';
208
-
209
- return (
210
- <div>
211
- <Button>테마 적용 버튼</Button>
212
- <Button radius="none" color="crimson">테마 미적용 버튼</Button>
213
- </div>
214
- );
215
- };
216
- ```
217
-
218
- <br />
219
-
220
- ## License
221
-
222
- @lotte-innovate
1
+ # LOTTE UI COMPONENT LIBRARY
2
+
3
+ <br />
4
+
5
+ ## 목차
6
+
7
+ - [Introduction](#introduction)
8
+ - [Installation](#installation)
9
+ - [Setup](#setup)
10
+ - [Usage](#usage)
11
+ - [Components](#components)
12
+ - [Theme](#theme)
13
+ - [License](#license)
14
+
15
+ ## Introduction
16
+
17
+ 모든 L-UI 구성 요소를 내보내는 단일 패키지입니다.
18
+
19
+ 일관되고 통일된 컴포넌트를 제공하며 사용자 정의 및 재사용 가능합니다.
20
+
21
+ 이 라이브러리는 React로 구축된 프로젝트를 지원합니다.
22
+
23
+ ## Installation
24
+
25
+ 패키지를 설치하기 위해 아래 명령어를 사용합니다.
26
+
27
+ ```bash
28
+ npm i @lotte-innovate/lui
29
+ ```
30
+
31
+ ```bash
32
+ yarn add @lotte-innovate/lui
33
+ ```
34
+
35
+ ## Setup
36
+
37
+ 패키지를 설치한 후 css 스타일을 프로젝트로 가져옵니다.
38
+
39
+ 프로젝트 App 진입 파일에 다음 줄을 추가해줍니다.
40
+
41
+ ```
42
+ import '@lotte-innovate/lui/dist/globals.css';
43
+ ```
44
+
45
+ ## Usage
46
+
47
+ React 프로젝트에서 컴포넌트를 사용하는 방법에 대한 예시입니다.
48
+
49
+ ```javascript
50
+ import React from 'react';
51
+ import { Button } from '@lotte-innovate/lui';
52
+
53
+ const App = () => {
54
+ return (
55
+ <div>
56
+ <Button onClick={() => alert('Button clicked!')}>Click Me</Button>
57
+ </div>
58
+ );
59
+ };
60
+
61
+ export default App;
62
+ ```
63
+
64
+ 컴포넌트에서 아이콘을 사용하려면, 다음과 같은 방법으로 아이콘을 가져올 수 있습니다.
65
+
66
+ ```javascript
67
+ import React from 'react';
68
+ import { IconButton } from '@lotte-innovate/lui';
69
+ import { MagnifyingGlassIcon } from '@radix-ui/react-icons';
70
+
71
+ const App = () => {
72
+ return (
73
+ <div>
74
+ <IconButton>
75
+ <MagnifyingGlassIcon />
76
+ </IconButton>
77
+ </div>
78
+ );
79
+ };
80
+
81
+ export default App;
82
+ ```
83
+
84
+ ## Components
85
+
86
+ <br />
87
+
88
+ <details>
89
+ <summary>컴포넌트 목록</summary>
90
+
91
+ | 구분 | 종류 |
92
+ | ------------------- | ---------------------------------------------------------------------------------------------------------------- |
93
+ | Typography 컴포넌트 | Header, Text |
94
+ | 기본 컴포넌트 | Avatar, Badge, Button, IconButton, Label |
95
+ | 입력 컴포넌트 | DatePicker, Editor, Slider, TextArea, TextField |
96
+ | 선택 컴포넌트 | Checkbox, CheckboxCards, CheckboxGroup, Radio, RadioCards, RadioGroup, Select, Toggle, ToggleGroup, ToggleSwitch |
97
+ | 네비게이션 컴포넌트 | Breadcrumb, GNB, Menubar, NavigationMenu, SNB, Tab Nav, Tabs |
98
+ | 레이아웃 컴포넌트 | AspectRatio, Card, Collapsible, Footer, Grid, Inset, ScrollArea, Separator, Table |
99
+
100
+ </details>
101
+ <details>
102
+ <summary>차트 목록</summary>
103
+
104
+ | 구분 | 종류 |
105
+ | --------- | ------------- |
106
+ | 비교 차트 | Bar, Line |
107
+ | 구성 차트 | Pie, Doughnut |
108
+ | 분포 차트 | Bubble |
109
+ | 관계 차트 | Radar |
110
+
111
+ </details>
112
+
113
+ <details>
114
+ <summary>공통 Props 목록</summary>
115
+
116
+ | name | description | 단계 | option | 테마적용여부 |
117
+ | ---------- | ------------------------------------------------- | -------- | --------------------------------------------- | ------------ |
118
+ | Color | 27가지 색상을 라이트/다크/알파/알파다크 모드 제공 | 1~12단계 | blue, crimson, teal, orange, purple, amber... | O |
119
+ | Radius | 컴포넌트의 둥글기 적용 | 5단계 | none, small, medium, large, full | O |
120
+ | Scaling | 컴포넌트의 비율 | 5단계 | 90%, 95%, 100%, 105%, 110% | O |
121
+ | Weight | 컴포넌트의 텍스트 굵기 | 4단계 | regular, medium, semibold, bold | O |
122
+ | Appearance | 컴포넌트의 디자인 스타일 | 6단계 | classic, ghost, outline, soft, solid, surface | X |
123
+ | Size | 컴포넌트의 크기 | 5단계 | x-small, small, medium, large, x-large | X |
124
+
125
+ </details>
126
+
127
+ <br />
128
+
129
+ ## Theme
130
+
131
+ 각 컴포넌트들은 공통 Props를 개별적으로 적용할 수도 있고, 테마를 통해 컴포넌트의 스타일을 한번에 변경할 수도 있습니다.
132
+
133
+ L-UI는 테마 컨텍스트를 제공하여 `Color`, `Radius`, `Scaling`, `Weight` 를 모든 컴포넌트에 동일한 스타일을 지정할 수 있습니다..
134
+
135
+ 먼저 App 최상단에 `LuiThemeProvider`를 추가하여 테마 컨텍스트를 제공합니다.
136
+
137
+ > Next.js와 같은 프레임워크를 사용하는 프로젝트에서 사용 예시
138
+
139
+ ```javascript
140
+ import { LuiThemeProvider } from '@lotte-innovate/lui';
141
+
142
+ export default function RootLayout({
143
+ children,
144
+ }: Readonly<{
145
+ children: React.ReactNode;
146
+ }>) {
147
+ return (
148
+ <html lang="en" className="bg-white">
149
+ <body>
150
+ <LuiThemeProvider>{children}</LuiThemeProvider>
151
+ </body>
152
+ </html>
153
+ );
154
+ }
155
+
156
+ ```
157
+
158
+ > 클라이언트 사이드 프로젝트에서 사용 예시
159
+
160
+ ```javascript
161
+ import { LuiThemeProvider } from '@lotte-innovate/lui';
162
+
163
+ const root = ReactDOM.createRoot(document.getElementById('root'));
164
+ root.render(
165
+ <LuiThemeProvider>
166
+ <App />
167
+ </LuiThemeProvider>,
168
+ );
169
+ ```
170
+
171
+ 테마를 변경하려면 `useTheme`훅을 사용합니다.
172
+
173
+ `useTheme`훅은 현재 테마와 테마를 업데이트할 수 있는 함수를 제공합니다.
174
+
175
+ ```javascript
176
+ import { useTheme, Button } from '@lotte-innovate/lui';
177
+
178
+ const ThemeChanger = () => {
179
+ const { theme, updateTheme } = useTheme();
180
+
181
+ // 초기 값 설정 시
182
+ theme.themeRadius: 'none';
183
+ theme.themeColor: 'olive';
184
+ theme.themeScaling: '90%';
185
+ theme.themeWeight: 'regular';
186
+
187
+ // 테마 변경 시
188
+ updateTheme({ themeRadius: "full", themeColor: "amber", themeScaling: "110%" });
189
+
190
+ return (
191
+ <div>
192
+ <Button>버튼</Button>
193
+ </div>
194
+ );
195
+ };
196
+ ```
197
+
198
+ 테마가 적용되었지만 일부 컴포넌트는 스타일을 다르게 하고 싶은 경우, 각 컴포넌트에 직접 Props를 전달하여 스타일을 재정의할 수 있습니다.
199
+
200
+ ```javascript
201
+ import { useTheme, Button } from '@lotte-innovate/lui';
202
+
203
+ const ThemeChanger = () => {
204
+ const { theme } = useTheme();
205
+
206
+ theme.themeRadius: 'full';
207
+ theme.themeColor: 'blue';
208
+
209
+ return (
210
+ <div>
211
+ <Button>테마 적용 버튼</Button>
212
+ <Button radius="none" color="crimson">테마 미적용 버튼</Button>
213
+ </div>
214
+ );
215
+ };
216
+ ```
217
+
218
+ <br />
219
+
220
+ ## License
221
+
222
+ @lotte-innovate