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,541 +0,0 @@
1
- @use '../../mixin' as *;
2
-
3
- .homePage {
4
- background: color(bg-elevation);
5
- min-height: 100vh;
6
- }
7
-
8
- // Hero Section
9
- .hero {
10
- text-align: center;
11
- padding: s(13) s(6) s(12);
12
- max-width: 1200px;
13
- margin: 0 auto;
14
-
15
- .heroContent {
16
- max-width: 800px;
17
- margin: 0 auto;
18
- }
19
-
20
- .logoContainer {
21
- display: flex;
22
- justify-content: center;
23
- margin-bottom: s(7);
24
-
25
- img {
26
- filter: drop-shadow(0 8px 32px rgba(139, 92, 246, 0.3));
27
- animation: float 3s ease-in-out infinite;
28
- }
29
- }
30
-
31
- .heroTitle {
32
- @include display1;
33
- font-size: 56px;
34
- font-weight: 300;
35
- margin: 0 0 s(6) 0;
36
- color: color(default-deep-base);
37
- letter-spacing: -0.02em;
38
- line-height: 1.2;
39
-
40
- .brandName {
41
- display: block;
42
- font-weight: 700;
43
- background: linear-gradient(135deg, #8B5CF6 0%, #6366F1 50%, #3b82f6 100%);
44
- -webkit-background-clip: text;
45
- -webkit-text-fill-color: transparent;
46
- background-clip: text;
47
- margin-top: s(3);
48
- }
49
- }
50
-
51
- .heroDescription {
52
- @include p2;
53
- font-size: 16px;
54
- color: color(default-base);
55
- margin: 0 0 s(6) 0;
56
- line-height: 1.8;
57
- }
58
-
59
- .heroLinks {
60
- display: flex;
61
- justify-content: center;
62
- gap: s(3);
63
- margin-bottom: s(6);
64
- }
65
-
66
- .heroActions {
67
- display: flex;
68
- justify-content: center;
69
- gap: s(4);
70
- }
71
- }
72
-
73
- .linkButton {
74
- @include p4;
75
- font-weight: 600;
76
- display: inline-flex;
77
- align-items: center;
78
- gap: s(2);
79
- padding: s(2) s(4);
80
- background: color(bg-elevation-1);
81
- color: color(default-deep-base);
82
- text-decoration: none;
83
- border-radius: r(2);
84
- border: 1px solid color(default-outline);
85
- transition: all 0.2s;
86
-
87
- svg {
88
- width: 20px;
89
- height: 20px;
90
- flex-shrink: 0;
91
- }
92
-
93
- &:hover {
94
- background: color(default-hover);
95
- border-color: color(primary-base);
96
- color: color(primary-base);
97
- }
98
- }
99
-
100
- .btnPrimary {
101
- @include p2;
102
- font-weight: 600;
103
- display: inline-flex;
104
- align-items: center;
105
- gap: s(3);
106
- padding: s(4) s(8);
107
- background: linear-gradient(135deg, #8B5CF6 0%, #6366F1 100%);
108
- color: white;
109
- text-decoration: none;
110
- border-radius: 8px;
111
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
112
- box-shadow: 0 4px 20px rgba(139, 92, 246, 0.4);
113
-
114
- &:hover {
115
- transform: translateY(-2px);
116
- box-shadow: 0 8px 30px rgba(139, 92, 246, 0.6);
117
- }
118
- }
119
-
120
- // Section Headers
121
- .sectionHeader {
122
- text-align: center;
123
- margin-bottom: s(10);
124
- max-width: 900px;
125
- margin-left: auto;
126
- margin-right: auto;
127
- }
128
-
129
- .sectionTitle {
130
- @include display3;
131
- font-size: 42px;
132
- font-weight: 700;
133
- margin: 0 0 s(5) 0;
134
- color: color(default-deep-base);
135
- }
136
-
137
- .sectionDescription {
138
- @include p2;
139
- font-size: 16px;
140
- color: color(default-base);
141
- line-height: 1.8;
142
- margin: 0;
143
- }
144
-
145
- // Features Section
146
- .featuresSection {
147
- padding: s(12) s(6);
148
- max-width: 1200px;
149
- margin: 0 auto;
150
- }
151
-
152
- .browserMockup {
153
- margin-top: s(10);
154
- }
155
-
156
- .browserWindow {
157
- background: color(bg-modal);
158
- border-radius: 12px;
159
- overflow: hidden;
160
- box-shadow: 0 20px 60px rgba(0, 0, 0, 0.08);
161
- border: 1px solid color(default-outline);
162
- }
163
-
164
- .browserHeader {
165
- background: color(bg-elevation-1);
166
- padding: s(4) s(5);
167
- display: flex;
168
- align-items: center;
169
- gap: s(4);
170
- border-bottom: 1px solid color(default-outline);
171
- }
172
-
173
- .browserDots {
174
- display: flex;
175
- gap: s(2);
176
-
177
- .dot {
178
- width: 12px;
179
- height: 12px;
180
- border-radius: 50%;
181
- background: color(default-outline);
182
-
183
- &:nth-child(1) {
184
- background: #ff5f57;
185
- }
186
- &:nth-child(2) {
187
- background: #febc2e;
188
- }
189
- &:nth-child(3) {
190
- background: #28c840;
191
- }
192
- }
193
- }
194
-
195
- .browserUrl {
196
- @include p4;
197
- font-weight: 600;
198
- color: color(default-base);
199
- font-family: 'Monaco', 'Menlo', monospace;
200
- }
201
-
202
- .browserTab {
203
- @include p4;
204
- font-weight: 600;
205
- color: color(default-deep-base);
206
- font-family: 'Monaco', 'Menlo', monospace;
207
- }
208
-
209
- .browserContent {
210
- display: flex;
211
- min-height: 400px;
212
- background: color(bg-elevation);
213
- }
214
-
215
- .mockSidebar {
216
- width: 200px;
217
- background: color(bg-elevation-1);
218
- padding: s(5);
219
- border-right: 1px solid color(default-outline);
220
- }
221
-
222
- .sidebarItem {
223
- @include p3;
224
- padding: s(3) s(4);
225
- color: color(default-base);
226
- margin-bottom: s(2);
227
- border-radius: 6px;
228
- cursor: pointer;
229
- transition: all 0.2s;
230
-
231
- &:hover {
232
- background: color(default-hover);
233
- color: color(default-deep-base);
234
- }
235
- }
236
-
237
- .mockMain {
238
- flex: 1;
239
- padding: s(6);
240
- display: flex;
241
- flex-direction: column;
242
- gap: s(5);
243
- }
244
-
245
- .mockCard {
246
- background: color(bg-modal);
247
- border: 1px solid color(default-outline);
248
- border-radius: 8px;
249
- overflow: hidden;
250
- }
251
-
252
- .mockCardHeader {
253
- @include p3;
254
- font-weight: 600;
255
- padding: s(4) s(5);
256
- background: color(bg-elevation-1);
257
- color: color(default-deep-base);
258
- border-bottom: 1px solid color(default-outline);
259
- }
260
-
261
- .mockCardBody {
262
- padding: s(5);
263
-
264
- .mockLine {
265
- height: 12px;
266
- background: color(default-hover);
267
- border-radius: 4px;
268
- margin-bottom: s(3);
269
-
270
- &:last-child {
271
- width: 60%;
272
- margin-bottom: 0;
273
- }
274
- }
275
- }
276
-
277
- .mockCardFooter {
278
- padding: s(4) s(5);
279
- display: flex;
280
- gap: s(3);
281
- justify-content: flex-end;
282
- border-top: 1px solid color(default-outline);
283
- }
284
-
285
- .mockButton {
286
- @include p4;
287
- font-weight: 600;
288
- padding: s(2) s(5);
289
- border-radius: 6px;
290
- background: color(bg-disabled);
291
- color: color(default-base);
292
- border: 1px solid color(default-outline);
293
-
294
- &.primary {
295
- background: linear-gradient(135deg, #8B5CF6 0%, #6366F1 100%);
296
- color: white;
297
- border: none;
298
- }
299
- }
300
-
301
- .mockProfile {
302
- display: flex;
303
- align-items: center;
304
- gap: s(4);
305
- padding: s(5);
306
- background: color(bg-modal);
307
- border: 1px solid color(default-outline);
308
- border-radius: 8px;
309
- }
310
-
311
- .mockAvatar {
312
- width: 48px;
313
- height: 48px;
314
- border-radius: 50%;
315
- background: linear-gradient(135deg, #8B5CF6 0%, #6366F1 100%);
316
- flex-shrink: 0;
317
- }
318
-
319
- .mockText {
320
- flex: 1;
321
-
322
- .mockTextLine {
323
- height: 10px;
324
- background: color(default-hover);
325
- border-radius: 4px;
326
- margin-bottom: s(2);
327
-
328
- &:last-child {
329
- width: 40%;
330
- margin-bottom: 0;
331
- }
332
- }
333
- }
334
-
335
- // Feature Cards
336
- .featureCards {
337
- display: grid;
338
- grid-template-columns: repeat(4, 1fr);
339
- gap: s(6);
340
- padding: s(12) s(6);
341
- max-width: 1200px;
342
- margin: 0 auto;
343
- }
344
-
345
- .featureCard {
346
- padding: s(7);
347
- background: color(bg-modal);
348
- border: 1px solid color(default-outline);
349
- border-radius: 12px;
350
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
351
-
352
- &:hover {
353
- border-color: color(primary-base);
354
- transform: translateY(-4px);
355
- box-shadow: 0 12px 40px rgba(139, 92, 246, 0.15);
356
- }
357
-
358
- .featureIcon {
359
- width: 56px;
360
- height: 56px;
361
- display: flex;
362
- align-items: center;
363
- justify-content: center;
364
- background: linear-gradient(135deg, #8B5CF6 0%, #6366F1 100%);
365
- color: white;
366
- border-radius: 12px;
367
- font-size: 28px;
368
- margin-bottom: s(5);
369
- box-shadow: 0 8px 24px rgba(139, 92, 246, 0.25);
370
- }
371
-
372
- h3 {
373
- @include p1;
374
- font-weight: 600;
375
- margin: 0 0 s(3) 0;
376
- color: color(default-deep-base);
377
- }
378
-
379
- p {
380
- @include p3;
381
- margin: 0;
382
- color: color(default-base);
383
- line-height: 1.7;
384
- }
385
- }
386
-
387
- // API Section
388
- .apiSection {
389
- padding: s(12) s(6);
390
- max-width: 1200px;
391
- margin: 0 auto;
392
- }
393
-
394
- .apiDemo {
395
- margin-top: s(10);
396
- }
397
-
398
- .apiContent {
399
- padding: s(6);
400
- display: flex;
401
- flex-direction: column;
402
- gap: s(3);
403
- }
404
-
405
- .apiBar {
406
- position: relative;
407
- }
408
-
409
- .apiBarFill {
410
- background: linear-gradient(90deg, #8B5CF6 0%, #6366F1 100%);
411
- padding: s(3) s(4);
412
- border-radius: 6px;
413
- display: flex;
414
- align-items: center;
415
- transition: all 0.3s;
416
-
417
- span {
418
- @include p4;
419
- font-weight: 600;
420
- color: white;
421
- font-family: 'Monaco', 'Menlo', monospace;
422
- }
423
-
424
- &:hover {
425
- box-shadow: 0 4px 16px rgba(139, 92, 246, 0.3);
426
- transform: translateX(4px);
427
- }
428
- }
429
-
430
- // Components Section
431
- .componentsSection {
432
- padding: s(12) s(6);
433
- max-width: 1200px;
434
- margin: 0 auto;
435
- }
436
-
437
- .componentsDemo {
438
- margin-top: s(10);
439
- }
440
-
441
- .componentsGrid {
442
- display: grid;
443
- grid-template-columns: repeat(3, 1fr);
444
- gap: s(5);
445
- padding: s(6);
446
- }
447
-
448
- .componentBox {
449
- aspect-ratio: 1;
450
- background: color(bg-modal);
451
- border: 1px solid color(default-outline);
452
- border-radius: 8px;
453
- display: flex;
454
- align-items: center;
455
- justify-content: center;
456
- transition: all 0.3s;
457
-
458
- &:hover {
459
- border-color: color(primary-base);
460
- background: color(primary-fill);
461
- }
462
-
463
- .componentLabel {
464
- @include p4;
465
- font-weight: 600;
466
- color: color(default-deep-base);
467
- font-family: 'Monaco', 'Menlo', monospace;
468
- }
469
- }
470
-
471
- // CTA Section
472
- .ctaSection {
473
- padding: s(13) s(6);
474
- text-align: center;
475
- max-width: 800px;
476
- margin: 0 auto;
477
- }
478
-
479
- .ctaContent {
480
- .logoContainer {
481
- display: flex;
482
- justify-content: center;
483
- margin-bottom: s(5);
484
-
485
- img {
486
- filter: drop-shadow(0 8px 24px rgba(139, 92, 246, 0.3));
487
- }
488
- }
489
-
490
- .ctaTitle {
491
- @include display4;
492
- font-weight: 700;
493
- margin: 0 0 s(4) 0;
494
- color: color(default-deep-base);
495
- }
496
-
497
- .ctaDescription {
498
- @include p2;
499
- color: color(default-base);
500
- margin: 0 0 s(7) 0;
501
- line-height: 1.8;
502
- }
503
- }
504
-
505
- // Footer
506
- .footer {
507
- border-top: 1px solid color(default-outline);
508
- padding: s(8) s(6);
509
- background: color(bg-elevation-1);
510
- }
511
-
512
- .footerContent {
513
- max-width: 1200px;
514
- margin: 0 auto;
515
- display: flex;
516
- align-items: center;
517
- justify-content: center;
518
- gap: s(4);
519
- }
520
-
521
- .footerLogo {
522
- img {
523
- opacity: 0.6;
524
- }
525
- }
526
-
527
- .footerText {
528
- @include p4;
529
- color: color(default-base);
530
- margin: 0;
531
- }
532
-
533
- @keyframes float {
534
- 0%,
535
- 100% {
536
- transform: translateY(0);
537
- }
538
- 50% {
539
- transform: translateY(-10px);
540
- }
541
- }
@@ -1,178 +0,0 @@
1
- @use '../../../../mixin' as *;
2
-
3
- .section {
4
- margin-bottom: s(10);
5
-
6
- h2 {
7
- @include display5;
8
- margin: 0 0 s(5) 0;
9
- color: color(default-deep);
10
- }
11
-
12
- p {
13
- @include p2;
14
- color: color(default);
15
- line-height: 1.8;
16
- margin: 0 0 s(5) 0;
17
-
18
- code {
19
- @include p3;
20
- font-family: 'Monaco', 'Menlo', 'Consolas', monospace;
21
- color: color(primary);
22
- background: color(primary-fill);
23
- padding: 2px 6px;
24
- border-radius: r(1);
25
- }
26
- }
27
- }
28
-
29
- .infoGrid {
30
- display: grid;
31
- grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
32
- gap: s(5);
33
- margin-top: s(6);
34
- }
35
-
36
- .infoCard {
37
- padding: 0;
38
- background: color(bg-modal);
39
- border: 1px solid color(default-outline);
40
- border-radius: r(4);
41
- text-align: center;
42
- transition: all 0.3s;
43
- overflow: hidden;
44
-
45
- &:hover {
46
- border-color: color(primary);
47
- transform: translateY(-2px);
48
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
49
- }
50
-
51
- h3 {
52
- @include p1;
53
- font-weight: 600;
54
- margin: s(3) 0 s(2) 0;
55
- padding: 0 s(4);
56
- color: color(default-deep);
57
- }
58
-
59
- p {
60
- @include p3;
61
- margin: 0 0 s(4) 0;
62
- padding: 0 s(4);
63
- color: color(default);
64
- }
65
- }
66
-
67
- .gridPreview {
68
- display: grid;
69
- gap: 2px;
70
- padding: s(5);
71
- background: color(bg-elevation-1);
72
-
73
- &[data-cols='12'] {
74
- grid-template-columns: repeat(12, 1fr);
75
- }
76
-
77
- &[data-cols='6'] {
78
- grid-template-columns: repeat(6, 1fr);
79
- }
80
-
81
- &[data-cols='4'] {
82
- grid-template-columns: repeat(4, 1fr);
83
- }
84
- }
85
-
86
- .gridCol {
87
- height: 50px;
88
- background: linear-gradient(135deg, #8B5CF6 0%, #6366F1 100%);
89
- border-radius: r(1);
90
- box-shadow: 0 2px 4px rgba(139, 92, 246, 0.2);
91
- }
92
-
93
- .codeBlock {
94
- background: color(bg-modal);
95
- border: 1px solid color(default-outline);
96
- border-radius: r(3);
97
- overflow: hidden;
98
- margin-bottom: s(4);
99
-
100
- .codeHeader {
101
- padding: s(3) s(5);
102
- background: color(bg-elevation-1);
103
- border-bottom: 1px solid color(default-outline);
104
- @include p4;
105
- font-weight: 600;
106
- color: color(default-deep);
107
- }
108
-
109
- pre {
110
- margin: 0;
111
- padding: s(5);
112
- overflow-x: auto;
113
- background: color(bg-elevation);
114
-
115
- code {
116
- @include p3;
117
- font-family: 'Monaco', 'Menlo', 'Consolas', monospace;
118
- color: color(default-deep);
119
- white-space: pre;
120
- }
121
- }
122
- }
123
-
124
- .note {
125
- display: flex;
126
- gap: s(4);
127
- padding: s(5);
128
- border-radius: r(4);
129
- margin-top: s(5);
130
- background: color(info-fill);
131
- border: 1px solid color(info-outline);
132
- color: color(info);
133
-
134
- > i {
135
- font-size: 20px;
136
- flex-shrink: 0;
137
- color: color(info);
138
- }
139
-
140
- strong {
141
- display: block;
142
- margin-bottom: s(2);
143
- }
144
-
145
- ul {
146
- li {
147
- margin-bottom: s(1);
148
- }
149
- }
150
- }
151
-
152
- .demo {
153
- margin-top: s(5);
154
- padding: s(5);
155
- background: color(bg-modal);
156
- border: 1px solid color(default-outline);
157
- border-radius: r(4);
158
- }
159
-
160
- .demoTitle {
161
- @include p3-semibold;
162
- margin-bottom: s(4);
163
- color: color(default-deep);
164
- }
165
-
166
- .gridItem {
167
- padding: s(4);
168
- background: linear-gradient(135deg, rgba(139, 92, 246, 0.1) 0%, rgba(99, 102, 241, 0.1) 100%);
169
- border: 1px solid rgba(139, 92, 246, 0.3);
170
- border-radius: r(2);
171
- text-align: center;
172
- @include p3-semibold;
173
- color: color(primary);
174
- min-height: 60px;
175
- display: flex;
176
- align-items: center;
177
- justify-content: center;
178
- }