podo-ui 0.1.46 → 0.2.0

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.
Files changed (64) hide show
  1. package/package.json +2 -2
  2. package/react/atom/pagination.module.scss +61 -0
  3. package/react/atom/pagination.tsx +87 -0
  4. package/react.ts +2 -1
  5. package/readme.md +3 -3
  6. package/scss/color/theme.scss +92 -0
  7. package/scss/form/checkbox-radio.scss +48 -0
  8. package/scss/form/toggle.scss +16 -0
  9. package/scss/layout/bg-elevation.scss +14 -0
  10. package/scss/reset.scss +2 -0
  11. package/.prettierignore +0 -9
  12. package/.prettierrc +0 -8
  13. package/ARCHITECTURE.md +0 -727
  14. package/cli/icon-scss.js +0 -56
  15. package/eslint.config.js +0 -26
  16. package/index.html +0 -12
  17. package/next-env.d.ts +0 -5
  18. package/next.config.mjs +0 -10
  19. package/public/logo.svg +0 -57
  20. package/src/app/components/button/page.module.scss +0 -253
  21. package/src/app/components/button/page.tsx +0 -366
  22. package/src/app/components/checkbox-radio/page.module.scss +0 -95
  23. package/src/app/components/checkbox-radio/page.tsx +0 -265
  24. package/src/app/components/input/page.module.scss +0 -112
  25. package/src/app/components/input/page.tsx +0 -196
  26. package/src/app/components/select/page.module.scss +0 -90
  27. package/src/app/components/select/page.tsx +0 -225
  28. package/src/app/components/textarea/page.module.scss +0 -81
  29. package/src/app/components/textarea/page.tsx +0 -103
  30. package/src/app/foundation/colors/page.module.scss +0 -370
  31. package/src/app/foundation/colors/page.tsx +0 -200
  32. package/src/app/foundation/icons/page.module.scss +0 -229
  33. package/src/app/foundation/icons/page.tsx +0 -229
  34. package/src/app/foundation/spacing/page.module.scss +0 -258
  35. package/src/app/foundation/spacing/page.tsx +0 -289
  36. package/src/app/foundation/typography/page.module.scss +0 -148
  37. package/src/app/foundation/typography/page.tsx +0 -207
  38. package/src/app/getting-started/installation/page.module.scss +0 -157
  39. package/src/app/getting-started/installation/page.tsx +0 -154
  40. package/src/app/getting-started/usage/page.module.scss +0 -209
  41. package/src/app/getting-started/usage/page.tsx +0 -242
  42. package/src/app/home.module.scss +0 -541
  43. package/src/app/layout/grid/page.module.scss +0 -178
  44. package/src/app/layout/grid/page.tsx +0 -217
  45. package/src/app/layout/responsive/page.module.scss +0 -237
  46. package/src/app/layout/responsive/page.tsx +0 -279
  47. package/src/app/layout.module.scss +0 -14
  48. package/src/app/layout.tsx +0 -30
  49. package/src/app/page.module.scss +0 -71
  50. package/src/app/page.tsx +0 -284
  51. package/src/components/CodeBlock.module.scss +0 -29
  52. package/src/components/CodeBlock.tsx +0 -18
  53. package/src/components/Navigation.module.scss +0 -104
  54. package/src/components/Navigation.tsx +0 -96
  55. package/src/components/PageHeader.module.scss +0 -24
  56. package/src/components/PageHeader.tsx +0 -17
  57. package/src/components/ThemeToggle.module.scss +0 -34
  58. package/src/components/ThemeToggle.tsx +0 -47
  59. package/src/styles/custom.scss +0 -11
  60. package/src/styles/doc-common.scss +0 -119
  61. package/src/styles/font-family.scss +0 -80
  62. package/src/styles/icon.scss +0 -5
  63. package/src/vite-env.d.ts +0 -1
  64. package/tsconfig.json +0 -26
@@ -1,279 +0,0 @@
1
- import PageHeader from '@/components/PageHeader';
2
- import styles from './page.module.scss';
3
-
4
- export default function Responsive() {
5
- return (
6
- <>
7
- <PageHeader
8
- title="반응형"
9
- description="Podo UI의 반응형 디자인 시스템과 미디어 쿼리 사용법을 안내합니다"
10
- />
11
-
12
- <section className={styles.section}>
13
- <h2>브레이크포인트</h2>
14
- <p>
15
- Podo UI는 3가지 브레이크포인트를 제공합니다: PC, Tablet, Mobile.
16
- 각 디바이스에 최적화된 레이아웃을 쉽게 구성할 수 있습니다.
17
- </p>
18
-
19
- <div className={styles.breakpointGrid}>
20
- <div className={styles.breakpointCard}>
21
- <div className={styles.breakpointIcon}>
22
- <i className="icon-menu"></i>
23
- </div>
24
- <h3>PC</h3>
25
- <p className={styles.breakpointValue}>1280px 이상</p>
26
- <code>@include pc</code>
27
- </div>
28
- <div className={styles.breakpointCard}>
29
- <div className={styles.breakpointIcon}>
30
- <i className="icon-menu"></i>
31
- </div>
32
- <h3>Tablet</h3>
33
- <p className={styles.breakpointValue}>768px ~ 1279px</p>
34
- <code>@include tb</code>
35
- </div>
36
- <div className={styles.breakpointCard}>
37
- <div className={styles.breakpointIcon}>
38
- <i className="icon-menu"></i>
39
- </div>
40
- <h3>Mobile</h3>
41
- <p className={styles.breakpointValue}>767px 이하</p>
42
- <code>@include mo</code>
43
- </div>
44
- </div>
45
- </section>
46
-
47
- <section className={styles.section}>
48
- <h2>SCSS 미디어 쿼리 믹스인</h2>
49
- <p>SCSS에서 미디어 쿼리 믹스인을 사용하여 반응형 스타일을 적용할 수 있습니다:</p>
50
-
51
- <div className={styles.codeBlock}>
52
- <div className={styles.codeHeader}>component.module.scss</div>
53
- <pre><code>{`@use 'podo-ui/mixin' as *;
54
-
55
- .container {
56
- padding: s(8);
57
- font-size: 18px;
58
-
59
- // Tablet (768px ~ 1279px)
60
- @include tb {
61
- padding: s(6);
62
- font-size: 16px;
63
- }
64
-
65
- // Mobile (767px 이하)
66
- @include mo {
67
- padding: s(4);
68
- font-size: 14px;
69
- }
70
-
71
- // PC (1280px 이상)
72
- @include pc {
73
- max-width: 1200px;
74
- margin: 0 auto;
75
- }
76
- }`}</code></pre>
77
- </div>
78
- </section>
79
-
80
- <section className={styles.section}>
81
- <h2>반응형 숨김</h2>
82
- <p>특정 디바이스에서만 요소를 숨기는 클래스를 제공합니다:</p>
83
-
84
- <div className={styles.codeBlock}>
85
- <div className={styles.codeHeader}>HTML</div>
86
- <pre><code>{`<!-- 모든 디바이스에서 숨김 -->
87
- <div class="hide">항상 숨김</div>
88
-
89
- <!-- PC에서만 숨김 -->
90
- <div class="hide-pc">PC에서만 숨김</div>
91
-
92
- <!-- Tablet에서만 숨김 -->
93
- <div class="hide-tb">Tablet에서만 숨김</div>
94
-
95
- <!-- Mobile에서만 숨김 -->
96
- <div class="hide-mo">Mobile에서만 숨김</div>`}</code></pre>
97
- </div>
98
-
99
- <div className={styles.demo}>
100
- <div className={styles.demoTitle}>실제 예제 (창 크기를 조절해보세요):</div>
101
- <div className={styles.hideDemo}>
102
- <div className="hide-pc"><div className={styles.demoBox}>PC에서 숨김</div></div>
103
- <div className="hide-tb"><div className={styles.demoBox}>Tablet에서 숨김</div></div>
104
- <div className="hide-mo"><div className={styles.demoBox}>Mobile에서 숨김</div></div>
105
- </div>
106
- </div>
107
- </section>
108
-
109
- <section className={styles.section}>
110
- <h2>반응형 그리드 예제</h2>
111
- <p>그리드 시스템은 자동으로 반응형으로 동작합니다:</p>
112
-
113
- <div className={styles.codeBlock}>
114
- <div className={styles.codeHeader}>HTML</div>
115
- <pre><code>{`<!-- PC: 12칸, Tablet: 6칸, Mobile: 4칸으로 자동 조정 -->
116
- <section class="grid">
117
- <div class="w-3">25%</div>
118
- <div class="w-3">25%</div>
119
- <div class="w-3">25%</div>
120
- <div class="w-3">25%</div>
121
- </section>`}</code></pre>
122
- </div>
123
-
124
- <div className={styles.demo}>
125
- <div className={styles.demoTitle}>실제 예제:</div>
126
- <section className="grid">
127
- <div className="w-3"><div className={styles.gridItem}>w-3 (25%)</div></div>
128
- <div className="w-3"><div className={styles.gridItem}>w-3 (25%)</div></div>
129
- <div className="w-3"><div className={styles.gridItem}>w-3 (25%)</div></div>
130
- <div className="w-3"><div className={styles.gridItem}>w-3 (25%)</div></div>
131
- </section>
132
- </div>
133
- </section>
134
-
135
- <section className={styles.section}>
136
- <h2>반응형 타이포그래피</h2>
137
- <p>모든 타이포그래피 스타일은 자동으로 모바일에서 작아집니다:</p>
138
-
139
- <div className={styles.codeBlock}>
140
- <div className={styles.codeHeader}>예시</div>
141
- <pre><code>{`// display1
142
- PC: 60px → Mobile: 36px
143
-
144
- // display4
145
- PC: 42px → Mobile: 24px
146
-
147
- // h1
148
- PC: 54px → Mobile: 24px
149
-
150
- // p3
151
- PC: 16px → Mobile: 14px`}</code></pre>
152
- </div>
153
-
154
- <div className={styles.demo}>
155
- <div className={styles.demoTitle}>실제 예제:</div>
156
- <h1>H1 제목 (PC: 54px, Mobile: 24px)</h1>
157
- <p className="p3">P3 본문 (PC: 16px, Mobile: 14px)</p>
158
- </div>
159
- </section>
160
-
161
- <section className={styles.section}>
162
- <h2>모바일 최소 너비</h2>
163
- <p>모바일 디바이스의 최소 너비는 375px로 설정되어 있습니다.</p>
164
-
165
- <div className={styles.codeBlock}>
166
- <div className={styles.codeHeader}>device.scss</div>
167
- <pre><code>{`$min-mo: 375px; // 최소 모바일 너비`}</code></pre>
168
- </div>
169
- </section>
170
-
171
- <section className={styles.section}>
172
- <h2>실전 반응형 예제</h2>
173
- <p>실제 프로젝트에서 사용하는 반응형 레이아웃 예제:</p>
174
-
175
- <div className={styles.codeBlock}>
176
- <div className={styles.codeHeader}>component.module.scss</div>
177
- <pre><code>{`@use 'podo-ui/mixin' as *;
178
-
179
- .header {
180
- padding: s(6);
181
- display: flex;
182
- justify-content: space-between;
183
- align-items: center;
184
-
185
- @include tb {
186
- padding: s(5);
187
- }
188
-
189
- @include mo {
190
- padding: s(4);
191
- flex-direction: column;
192
- gap: s(3);
193
- }
194
- }
195
-
196
- .nav {
197
- display: flex;
198
- gap: s(5);
199
-
200
- @include mo {
201
- flex-direction: column;
202
- gap: s(3);
203
- width: 100%;
204
- }
205
- }
206
-
207
- .card {
208
- padding: s(6);
209
- border-radius: r(4);
210
-
211
- @include tb {
212
- padding: s(5);
213
- }
214
-
215
- @include mo {
216
- padding: s(4);
217
- border-radius: r(3);
218
- }
219
- }
220
-
221
- .sidebar {
222
- width: 300px;
223
-
224
- @include tb {
225
- width: 250px;
226
- }
227
-
228
- @include mo {
229
- width: 100%;
230
- }
231
- }`}</code></pre>
232
- </div>
233
- </section>
234
-
235
- <section className={styles.section}>
236
- <div className={styles.note}>
237
- <i className="icon-info"></i>
238
- <div>
239
- <strong>팁:</strong> 브라우저 개발자 도구의 반응형 모드를 사용하여 다양한 디바이스에서의 레이아웃을 테스트해보세요.
240
- Chrome: Ctrl/Cmd + Shift + M
241
- </div>
242
- </div>
243
- </section>
244
-
245
- <section className={styles.section}>
246
- <h2>현재 화면 크기 확인</h2>
247
- <div className={styles.deviceIndicator}>
248
- <div className={styles.deviceInfo + ' hide-tb hide-mo'}>
249
- <div className={styles.deviceIcon}>
250
- <i className="icon-menu"></i>
251
- </div>
252
- <div>
253
- <strong>현재: PC</strong>
254
- <p>1280px 이상</p>
255
- </div>
256
- </div>
257
- <div className={styles.deviceInfo + ' hide-pc hide-mo'}>
258
- <div className={styles.deviceIcon}>
259
- <i className="icon-menu"></i>
260
- </div>
261
- <div>
262
- <strong>현재: Tablet</strong>
263
- <p>768px ~ 1279px</p>
264
- </div>
265
- </div>
266
- <div className={styles.deviceInfo + ' hide-pc hide-tb'}>
267
- <div className={styles.deviceIcon}>
268
- <i className="icon-menu"></i>
269
- </div>
270
- <div>
271
- <strong>현재: Mobile</strong>
272
- <p>767px 이하</p>
273
- </div>
274
- </div>
275
- </div>
276
- </section>
277
- </>
278
- );
279
- }
@@ -1,14 +0,0 @@
1
- @use '../../mixin' as *;
2
-
3
- .container {
4
- display: flex;
5
- min-height: 100vh;
6
- background: color(bg-elevation);
7
- }
8
-
9
- .main {
10
- flex: 1;
11
- margin-left: 260px;
12
- padding: s(7);
13
- max-width: 1200px;
14
- }
@@ -1,30 +0,0 @@
1
- import '../../global.scss';
2
- import '../styles/custom.scss';
3
- import '../styles/font-family.scss'; // custom path
4
- import '../styles/icon.scss'; // custom path
5
- import Navigation from '../components/Navigation';
6
- import styles from './layout.module.scss';
7
-
8
- export const runtime = 'edge';
9
-
10
- export const metadata = {
11
- title: 'Podo UI - SCSS Module 기반 디자인 시스템',
12
- description: 'React와 SCSS를 위한 모던 UI 컴포넌트 라이브러리',
13
- };
14
-
15
- export default function RootLayout({
16
- children,
17
- }: Readonly<{
18
- children: React.ReactNode;
19
- }>) {
20
- return (
21
- <html lang="ko">
22
- <body>
23
- <div className={styles.container}>
24
- <Navigation />
25
- <main className={styles.main}>{children}</main>
26
- </div>
27
- </body>
28
- </html>
29
- );
30
- }
@@ -1,71 +0,0 @@
1
- @use '../../mixin' as *;
2
- .app {
3
- width: 100%;
4
- min-height: 100%;
5
- @extend .bg-elevation;
6
- > header {
7
- position: fixed;
8
- top: 0;
9
- left: 0;
10
- z-index: 1000;
11
- width: 100%;
12
- background-color: color('primary');
13
- color: color('primary-reverse');
14
- padding: s(1);
15
- display: flex;
16
- justify-content: flex-start;
17
- align-items: center;
18
- gap: s(4);
19
- nav {
20
- display: flex;
21
- gap: s(4);
22
- a {
23
- color: color('primary-reverse');
24
- text-decoration: none;
25
- &:hover {
26
- color: color('primary-hover');
27
- }
28
- }
29
- }
30
- }
31
- > main {
32
- padding: s(3);
33
- padding-top: s(7);
34
- margin-bottom: s(2);
35
- @extend .bg-elevation-1;
36
- > article {
37
- padding: s(3);
38
- margin-bottom: s(2);
39
- @extend .bg-elevation-2;
40
- > section {
41
- padding: s(3);
42
- margin-bottom: s(2);
43
- @extend .bg-elevation-3;
44
- > div {
45
- margin-bottom: s(2);
46
- }
47
- }
48
- }
49
- }
50
-
51
- &:global {
52
- > * {
53
- .grid.guide {
54
- * {
55
- padding: s(4);
56
- }
57
- &.fill {
58
- background: color('primary-fill');
59
- }
60
- &.border * {
61
- border: 1px solid color('primary');
62
- }
63
- }
64
- .elements {
65
- > :not(:last-child) {
66
- margin-right: s(4);
67
- }
68
- }
69
- }
70
- }
71
- }
package/src/app/page.tsx DELETED
@@ -1,284 +0,0 @@
1
- import Image from 'next/image';
2
- import Link from 'next/link';
3
- import styles from './home.module.scss';
4
-
5
- export default function Home() {
6
- return (
7
- <div className={styles.homePage}>
8
- {/* Hero Section */}
9
- <section className={styles.hero}>
10
- <div className={styles.heroContent}>
11
- <div className={styles.logoContainer}>
12
- <Image src="/logo.svg" alt="Podo UI" width={64} height={64} priority />
13
- </div>
14
- <h1 className={styles.heroTitle}>
15
- HELLO 환영합니다
16
- <br />
17
- <span className={styles.brandName}>Podo UI</span>
18
- </h1>
19
- <p className={styles.heroDescription}>
20
- Podo UI는 빠르고 쉽게 반응형있는 구성하기 위한 오픈 소스 툴킷 입니다.
21
- <br />
22
- 복사 & 붙여넣기만 디자인으로 구현으로든 제공되는 방문 오픈 소스 프론트엔드 입니다.
23
- </p>
24
- <div className={styles.heroLinks}>
25
- <a
26
- href="https://github.com/hada0127/podo-ui"
27
- target="_blank"
28
- rel="noopener noreferrer"
29
- className={styles.linkButton}
30
- >
31
- <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
32
- <path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/>
33
- </svg>
34
- <span>GitHub</span>
35
- </a>
36
- <a
37
- href="https://www.npmjs.com/package/podo-ui"
38
- target="_blank"
39
- rel="noopener noreferrer"
40
- className={styles.linkButton}
41
- >
42
- <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
43
- <path d="M0 7.334v8h6.666v1.332H12v-1.332h12v-8H0zm6.666 6.664H5.334v-4H3.999v4H1.335V8.667h5.331v5.331zm4 0v1.336H8.001V8.667h5.334v5.332h-2.669v-.001zm12.001 0h-1.33v-4h-1.336v4h-1.335v-4h-1.33v4h-2.671V8.667h8.002v5.331zM10.665 10H12v2.667h-1.335V10z"/>
44
- </svg>
45
- <span>NPM</span>
46
- </a>
47
- </div>
48
- <div className={styles.heroActions}>
49
- <Link href="/getting-started/installation" className={styles.btnPrimary}>
50
- Get started
51
- </Link>
52
- </div>
53
- </div>
54
- </section>
55
-
56
- {/* Features Section */}
57
- <section className={styles.featuresSection}>
58
- <div className={styles.sectionHeader}>
59
- <h2 className={styles.sectionTitle}>깨끗하고 가벼운 구성요소</h2>
60
- <p className={styles.sectionDescription}>
61
- PODOUI HTML5, SCSS를 UX/UI 디자인 요소를 구현한 웹과
62
- <br />
63
- 로컬 프레임 프로젝트가 가능 네 버전의 프리미엄 UX/UI 디자인과 컬렉션 소스 다양한 컴포넌트 UI는
64
- <br />
65
- 구성되는 사이트에 쉽고 빠르고 적용 이루어 다양한 레이아웃을 만들 수 있습니다.
66
- </p>
67
- </div>
68
-
69
- {/* Browser Mockup */}
70
- <div className={styles.browserMockup}>
71
- <div className={styles.browserWindow}>
72
- <div className={styles.browserHeader}>
73
- <div className={styles.browserDots}>
74
- <span className={styles.dot}></span>
75
- <span className={styles.dot}></span>
76
- <span className={styles.dot}></span>
77
- </div>
78
- <div className={styles.browserUrl}>podo-ui</div>
79
- </div>
80
- <div className={styles.browserContent}>
81
- <div className={styles.mockSidebar}>
82
- <div className={styles.sidebarItem}>Docs</div>
83
- <div className={styles.sidebarItem}>Text</div>
84
- <div className={styles.sidebarItem}>Icon</div>
85
- <div className={styles.sidebarItem}>Input</div>
86
- <div className={styles.sidebarItem}>Select</div>
87
- </div>
88
- <div className={styles.mockMain}>
89
- <div className={styles.mockCard}>
90
- <div className={styles.mockCardHeader}>Header</div>
91
- <div className={styles.mockCardBody}>
92
- <div className={styles.mockLine}></div>
93
- <div className={styles.mockLine}></div>
94
- <div className={styles.mockLine}></div>
95
- </div>
96
- <div className={styles.mockCardFooter}>
97
- <div className={styles.mockButton}>Cancel</div>
98
- <div className={styles.mockButton + ' ' + styles.primary}>Submit</div>
99
- </div>
100
- </div>
101
- <div className={styles.mockProfile}>
102
- <div className={styles.mockAvatar}></div>
103
- <div className={styles.mockText}>
104
- <div className={styles.mockTextLine}></div>
105
- <div className={styles.mockTextLine}></div>
106
- </div>
107
- </div>
108
- </div>
109
- </div>
110
- </div>
111
- </div>
112
- </section>
113
-
114
- {/* Feature Cards */}
115
- <section className={styles.featureCards}>
116
- <div className={styles.featureCard}>
117
- <div className={styles.featureIcon}>
118
- <i className="icon-layers"></i>
119
- </div>
120
- <h3>CSS 프레임워크</h3>
121
- <p>
122
- 순수한 웹 프로젝트 뿐만 아니라 다른
123
- 프레임워크 자바스크립트 라이브러리와
124
- 사이트를 쉽고 빠르게 만들 수 있습니다.
125
- </p>
126
- </div>
127
-
128
- <div className={styles.featureCard}>
129
- <div className={styles.featureIcon}>
130
- <i className="icon-setting"></i>
131
- </div>
132
- <h3>오픈과 구성 요소</h3>
133
- <p>
134
- 오픈 프로젝트는 다음 커뮤니티의 참여와
135
- 컴포넌트 구성요소를 쉽게 다양한 오픈
136
- 소스를 개선할 수 있습니다.
137
- </p>
138
- </div>
139
-
140
- <div className={styles.featureCard}>
141
- <div className={styles.featureIcon}>
142
- <i className="icon-hidden"></i>
143
- </div>
144
- <h3>깨끗하고 다크모드 지원</h3>
145
- <p>
146
- 깨끗한 UI를 통한 사용자에게는 시각적
147
- 피로를 줄이고 다양 야간 모드를 지원해
148
- 기술 응답을 합니다.
149
- </p>
150
- </div>
151
-
152
- <div className={styles.featureCard}>
153
- <div className={styles.featureIcon}>
154
- <i className="icon-star"></i>
155
- </div>
156
- <h3>단청성 돼 도구에도스</h3>
157
- <p>
158
- 다양한 UI/UX 요소에서는 도구에서
159
- 커뮤니티 도움을 받으시거나 보안으로
160
- 프로젝트 용량하게 대응합니다.
161
- </p>
162
- </div>
163
- </section>
164
-
165
- {/* API Section */}
166
- <section className={styles.apiSection}>
167
- <div className={styles.sectionHeader}>
168
- <h2 className={styles.sectionTitle}>디자인 시스템을 위한 API</h2>
169
- <p className={styles.sectionDescription}>
170
- 기본적 시스템 구조는 재사용 하면 색상, 간격, 타이포그래피 그외의 등
171
- <br />
172
- 팀 내 설계된 디자인 시스템으로 구성함과 합쳐져 포함할 수 있습니다.
173
- </p>
174
- </div>
175
-
176
- <div className={styles.apiDemo}>
177
- <div className={styles.browserWindow}>
178
- <div className={styles.browserHeader}>
179
- <div className={styles.browserDots}>
180
- <span className={styles.dot}></span>
181
- <span className={styles.dot}></span>
182
- <span className={styles.dot}></span>
183
- </div>
184
- </div>
185
- <div className={styles.apiContent}>
186
- {[
187
- { label: 'w-1_12', width: '8%' },
188
- { label: 'w-2_3', width: '16%' },
189
- { label: 'w-2', width: '20%' },
190
- { label: 'w-5', width: '28%' },
191
- { label: 'w-4', width: '36%' },
192
- { label: 'w-3', width: '44%' },
193
- { label: 'w-2', width: '52%' },
194
- { label: 'w-1', width: '100%' },
195
- ].map((item, idx) => (
196
- <div key={idx} className={styles.apiBar}>
197
- <div className={styles.apiBarFill} style={{ width: item.width }}>
198
- <span>{item.label}</span>
199
- </div>
200
- </div>
201
- ))}
202
- </div>
203
- </div>
204
- </div>
205
- </section>
206
-
207
- {/* Components Section */}
208
- <section className={styles.componentsSection}>
209
- <div className={styles.sectionHeader}>
210
- <h2 className={styles.sectionTitle}>원하는 구성요소를 조각하세요</h2>
211
- <p className={styles.sectionDescription}>
212
- 내장 웹사이트 컨텐츠를 설정 값이 지정이 유용하게 입니다.
213
- <br />
214
- 직접적인 디자인 시스템을 위해 다룬 podo.ui에서 이를 자유와 맞춤 모듈로서는 챔페인드로 제공합니다.
215
- </p>
216
- </div>
217
-
218
- <div className={styles.componentsDemo}>
219
- <div className={styles.browserWindow}>
220
- <div className={styles.browserHeader}>
221
- <div className={styles.browserDots}>
222
- <span className={styles.dot}></span>
223
- <span className={styles.dot}></span>
224
- <span className={styles.dot}></span>
225
- </div>
226
- <div className={styles.browserTab}>user / primary</div>
227
- </div>
228
- <div className={styles.componentsGrid}>
229
- <div className={styles.componentBox}>
230
- <div className={styles.componentLabel}>light</div>
231
- </div>
232
- <div className={styles.componentBox}>
233
- <div className={styles.componentLabel}>dark</div>
234
- </div>
235
- <div className={styles.componentBox}>
236
- <div className={styles.componentLabel}>color={'{'} primary{'}'}</div>
237
- </div>
238
- <div className={styles.componentBox}>
239
- <div className={styles.componentLabel}>color{'{'} secondary{'}'}</div>
240
- </div>
241
- <div className={styles.componentBox}>
242
- <div className={styles.componentLabel}>padding={'{'}2{'}'}</div>
243
- </div>
244
- <div className={styles.componentBox}>
245
- <div className={styles.componentLabel}>margin={'{'}3{'}'}</div>
246
- </div>
247
- </div>
248
- </div>
249
- </div>
250
- </section>
251
-
252
- {/* CTA Section */}
253
- <section className={styles.ctaSection}>
254
- <div className={styles.ctaContent}>
255
- <div className={styles.logoContainer}>
256
- <Image src="/logo.svg" alt="Podo UI" width={48} height={48} />
257
- </div>
258
- <h2 className={styles.ctaTitle}>podo.ui를 응원해주세요</h2>
259
- <p className={styles.ctaDescription}>
260
- podo.ui 프레젠터로 응원해주시고 누구나 사용할 편리하게 하고
261
- </p>
262
- <a
263
- href="https://github.com/hada0127/podo-ui"
264
- target="_blank"
265
- rel="noopener noreferrer"
266
- className={styles.btnPrimary}
267
- >
268
- 응원하기
269
- </a>
270
- </div>
271
- </section>
272
-
273
- {/* Footer */}
274
- <footer className={styles.footer}>
275
- <div className={styles.footerContent}>
276
- <div className={styles.footerLogo}>
277
- <Image src="/logo.svg" alt="Podo UI" width={24} height={24} />
278
- </div>
279
- <p className={styles.footerText}>Made by 전예진 · 이은규 MIT ©podo.ui 2023</p>
280
- </div>
281
- </footer>
282
- </div>
283
- );
284
- }