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,229 +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
- h3 {
13
- @include p1;
14
- font-weight: 600;
15
- margin: s(7) 0 s(4) 0;
16
- color: color(default-deep);
17
- }
18
-
19
- p {
20
- @include p2;
21
- color: color(default);
22
- line-height: 1.8;
23
- margin: 0 0 s(5) 0;
24
-
25
- code {
26
- @include p3;
27
- font-family: 'Monaco', 'Menlo', 'Consolas', monospace;
28
- color: color(primary);
29
- background: color(primary-fill);
30
- padding: 2px 6px;
31
- border-radius: r(1);
32
- }
33
- }
34
- }
35
-
36
- .codeBlock {
37
- background: color(bg-modal);
38
- border: 1px solid color(default-outline);
39
- border-radius: r(3);
40
- overflow: hidden;
41
- margin-bottom: s(4);
42
-
43
- .codeHeader {
44
- padding: s(3) s(5);
45
- background: color(bg-elevation-1);
46
- border-bottom: 1px solid color(default-outline);
47
- @include p4;
48
- font-weight: 600;
49
- color: color(default-deep);
50
- }
51
-
52
- pre {
53
- margin: 0;
54
- padding: s(5);
55
- overflow-x: auto;
56
- background: color(bg-elevation);
57
-
58
- code {
59
- @include p3;
60
- font-family: 'Monaco', 'Menlo', 'Consolas', monospace;
61
- color: color(default-deep);
62
- white-space: pre;
63
- }
64
- }
65
- }
66
-
67
- .note {
68
- display: flex;
69
- gap: s(4);
70
- padding: s(5);
71
- border-radius: r(4);
72
- margin-top: s(5);
73
- background: color(info-fill);
74
- border: 1px solid color(info-outline);
75
- color: color(info);
76
-
77
- > i {
78
- font-size: 20px;
79
- flex-shrink: 0;
80
- color: color(info);
81
- }
82
-
83
- strong {
84
- display: block;
85
- margin-bottom: s(2);
86
- }
87
-
88
- code {
89
- font-family: 'Monaco', 'Menlo', 'Consolas', monospace;
90
- background: rgba(255, 255, 255, 0.2);
91
- padding: 2px 6px;
92
- border-radius: r(1);
93
- }
94
- }
95
-
96
- .demo {
97
- margin-top: s(5);
98
- padding: s(5);
99
- background: color(bg-modal);
100
- border: 1px solid color(default-outline);
101
- border-radius: r(4);
102
- }
103
-
104
- .demoTitle {
105
- @include p3-semibold;
106
- margin-bottom: s(4);
107
- color: color(default-deep);
108
- }
109
-
110
- .iconDemo {
111
- display: flex;
112
- gap: s(5);
113
- flex-wrap: wrap;
114
- align-items: center;
115
-
116
- i {
117
- font-size: 24px;
118
- color: color(default-deep);
119
- }
120
- }
121
-
122
- .buttonDemo {
123
- display: flex;
124
- gap: s(4);
125
- flex-wrap: wrap;
126
-
127
- button {
128
- display: inline-flex;
129
- align-items: center;
130
- gap: s(2);
131
-
132
- i {
133
- font-size: 16px;
134
- }
135
- }
136
- }
137
-
138
- .iconGrid {
139
- display: grid;
140
- grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
141
- gap: s(4);
142
- margin-top: s(5);
143
- }
144
-
145
- .iconCard {
146
- display: flex;
147
- flex-direction: column;
148
- align-items: center;
149
- justify-content: center;
150
- padding: s(5);
151
- background: color(bg-modal);
152
- border: 1px solid color(default-outline);
153
- border-radius: r(3);
154
- cursor: pointer;
155
- transition: all 0.3s;
156
-
157
- &:hover {
158
- border-color: color(primary);
159
- background: color(primary-fill);
160
- transform: translateY(-2px);
161
- box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
162
- }
163
-
164
- &:active {
165
- transform: translateY(0);
166
- }
167
- }
168
-
169
- .iconPreview {
170
- margin-bottom: s(3);
171
-
172
- i {
173
- font-size: 32px;
174
- color: color(default-deep);
175
- }
176
- }
177
-
178
- .iconName {
179
- @include p5;
180
- font-family: 'Monaco', 'Menlo', 'Consolas', monospace;
181
- color: color(default);
182
- text-align: center;
183
- word-break: break-all;
184
- }
185
-
186
- .categorySection {
187
- margin-bottom: s(7);
188
-
189
- h3 {
190
- @include p2;
191
- font-weight: 600;
192
- margin: 0 0 s(4) 0;
193
- color: color(default-deep);
194
- }
195
- }
196
-
197
- .iconList {
198
- display: grid;
199
- grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
200
- gap: s(3);
201
- }
202
-
203
- .iconItem {
204
- display: flex;
205
- align-items: center;
206
- gap: s(3);
207
- padding: s(3) s(4);
208
- background: color(bg-modal);
209
- border: 1px solid color(default-outline);
210
- border-radius: r(2);
211
- transition: all 0.3s;
212
-
213
- &:hover {
214
- border-color: color(primary);
215
- background: color(primary-fill);
216
- }
217
-
218
- i {
219
- font-size: 20px;
220
- color: color(default-deep);
221
- flex-shrink: 0;
222
- }
223
-
224
- span {
225
- @include p5;
226
- font-family: 'Monaco', 'Menlo', 'Consolas', monospace;
227
- color: color(default);
228
- }
229
- }
@@ -1,229 +0,0 @@
1
- 'use client';
2
-
3
- import PageHeader from '@/components/PageHeader';
4
- import styles from './page.module.scss';
5
-
6
- export default function Icons() {
7
- const icons = [
8
- 'star', 'star-fill', 'exchange-horizontally', 'exchange-vertical', 'new-window', 'tag',
9
- 'notification', 'notification-stroke', 'mail', 'global', 'trash', 'dm', 'currency', 'print',
10
- 'gps', 'ellipse', 'ellipse-stroke', 'facebook', 'naver', 'insta', 'tiktok', 'apple', 'google',
11
- 'youtube', 'kakao', 'x', 'arrow-dropdown', 'arrow-dropdown-up', 'check-small', 'check', 'show',
12
- 'hidden', 'fordid', 'upload-cloud', 'share', 'excel', 'cancel', 'arrow-left', 'arrow-right',
13
- 'arrow-up', 'arrow-down', 'download', 'upload', 'link-alt', 'link', 'edit', 'pin', 'flag',
14
- 'hand', 'zoom-in', 'zoom-out', 'chart', 'temperature', 'turbine', 'layers', 'compass',
15
- 'flag-finish', 'pressure', 'pyramid-chart', 'ruler', 'contour', 'plus', 'minus', 'warning',
16
- 'user-stroke', 'user', 'menu', 'time', 'search', 'close', 'info', 'danger', 'danger-fill',
17
- 'expand-left', 'expand-right', 'expand-up', 'expand-down', 'calendar', 'paper', 'import',
18
- 'export', 'img', 'favorite', 'favorite-fill', 'phone', 'phone-stroke', 'home',
19
- 'expand-up-double', 'expand-down-double', 'expand-left-double', 'expand-right-double',
20
- 'setting-stroke', 'setting', 'email', 'more-horizontal', 'more', 'help', 'check-circle-stroke',
21
- 'check-circle-fill', 'map', 'refresh', 'drag', 'clip', 'file', 'card', 'car', 'handle',
22
- 'counselor', 'chart-bar', 'coin', 'receipt', 'briefcase', 'arrow-dropdown-left',
23
- 'arrow-dropdown-right', 'lock', 'unlock', 'save',
24
- ];
25
-
26
- return (
27
- <>
28
- <PageHeader
29
- title="아이콘"
30
- description="Podo UI가 제공하는 119개의 아이콘과 사용법을 안내합니다"
31
- />
32
-
33
- <section className={styles.section}>
34
- <h2>아이콘 시스템</h2>
35
- <p>
36
- Podo UI는 총 119개의 아이콘 폰트를 제공합니다. 모든 아이콘은 벡터 기반으로 제작되어 크기와 색상을 자유롭게 조정할 수 있습니다.
37
- </p>
38
- </section>
39
-
40
- <section className={styles.section}>
41
- <h2>HTML에서 사용하기</h2>
42
- <p><code>&lt;i&gt;</code> 태그에 <code>icon-*</code> 클래스를 추가하여 아이콘을 사용할 수 있습니다:</p>
43
-
44
- <div className={styles.codeBlock}>
45
- <div className={styles.codeHeader}>HTML</div>
46
- <pre><code>{`<i class="icon-star"></i>
47
- <i class="icon-search"></i>
48
- <i class="icon-check"></i>
49
- <i class="icon-close"></i>
50
-
51
- <!-- 크기 조정 -->
52
- <i class="icon-star" style="font-size: 24px;"></i>
53
- <i class="icon-star" style="font-size: 32px;"></i>
54
-
55
- <!-- 색상 조정 -->
56
- <i class="icon-star primary"></i>
57
- <i class="icon-star success"></i>
58
- <i class="icon-star danger"></i>`}</code></pre>
59
- </div>
60
-
61
- <div className={styles.demo}>
62
- <div className={styles.demoTitle}>실제 예제:</div>
63
- <div className={styles.iconDemo}>
64
- <i className="icon-star"></i>
65
- <i className="icon-search"></i>
66
- <i className="icon-check"></i>
67
- <i className="icon-close"></i>
68
- <i className="icon-star primary" style={{ fontSize: '32px' }}></i>
69
- <i className="icon-check success" style={{ fontSize: '32px' }}></i>
70
- <i className="icon-danger danger" style={{ fontSize: '32px' }}></i>
71
- </div>
72
- </div>
73
- </section>
74
-
75
- <section className={styles.section}>
76
- <h2>React/TSX에서 사용하기</h2>
77
-
78
- <div className={styles.codeBlock}>
79
- <div className={styles.codeHeader}>component.tsx</div>
80
- <pre><code>{`export default function MyComponent() {
81
- return (
82
- <div>
83
- <i className="icon-star"></i>
84
- <i className="icon-search"></i>
85
-
86
- {/* 스타일 적용 */}
87
- <i className="icon-check" style={{ fontSize: '24px', color: 'green' }}></i>
88
-
89
- {/* CSS 클래스와 함께 사용 */}
90
- <i className="icon-warning warning"></i>
91
- </div>
92
- );
93
- }`}</code></pre>
94
- </div>
95
- </section>
96
-
97
- <section className={styles.section}>
98
- <h2>SCSS에서 사용하기</h2>
99
-
100
- <div className={styles.codeBlock}>
101
- <div className={styles.codeHeader}>component.module.scss</div>
102
- <pre><code>{`@use 'podo-ui/mixin' as *;
103
-
104
- .button {
105
- display: inline-flex;
106
- align-items: center;
107
- gap: s(2);
108
-
109
- i {
110
- font-size: 20px;
111
- color: color(primary);
112
- }
113
- }
114
-
115
- .iconWrapper {
116
- width: 40px;
117
- height: 40px;
118
- display: flex;
119
- align-items: center;
120
- justify-content: center;
121
- border-radius: r(full);
122
- background: color(primary-fill);
123
-
124
- i {
125
- font-size: 20px;
126
- color: color(primary);
127
- }
128
- }`}</code></pre>
129
- </div>
130
- </section>
131
-
132
- <section className={styles.section}>
133
- <h2>전체 아이콘 ({icons.length}개)</h2>
134
- <p>아이콘을 클릭하면 클래스명이 클립보드에 복사됩니다.</p>
135
-
136
- <div className={styles.iconGrid}>
137
- {icons.map((icon) => (
138
- <button
139
- key={icon}
140
- className={styles.iconCard}
141
- onClick={() => {
142
- navigator.clipboard.writeText(`icon-${icon}`);
143
- alert(`Copied: icon-${icon}`);
144
- }}
145
- >
146
- <div className={styles.iconPreview}>
147
- <i className={`icon-${icon}`}></i>
148
- </div>
149
- <div className={styles.iconName}>icon-{icon}</div>
150
- </button>
151
- ))}
152
- </div>
153
- </section>
154
-
155
- <section className={styles.section}>
156
- <h2>아이콘 카테고리</h2>
157
-
158
- <div className={styles.categorySection}>
159
- <h3>일반 UI</h3>
160
- <div className={styles.iconList}>
161
- {['search', 'close', 'check', 'plus', 'minus', 'menu', 'more', 'more-horizontal'].map(icon => (
162
- <div key={icon} className={styles.iconItem}>
163
- <i className={`icon-${icon}`}></i>
164
- <span>icon-{icon}</span>
165
- </div>
166
- ))}
167
- </div>
168
- </div>
169
-
170
- <div className={styles.categorySection}>
171
- <h3>화살표</h3>
172
- <div className={styles.iconList}>
173
- {['arrow-left', 'arrow-right', 'arrow-up', 'arrow-down', 'arrow-dropdown', 'arrow-dropdown-up', 'expand-left', 'expand-right', 'expand-up', 'expand-down'].map(icon => (
174
- <div key={icon} className={styles.iconItem}>
175
- <i className={`icon-${icon}`}></i>
176
- <span>icon-{icon}</span>
177
- </div>
178
- ))}
179
- </div>
180
- </div>
181
-
182
- <div className={styles.categorySection}>
183
- <h3>파일 & 문서</h3>
184
- <div className={styles.iconList}>
185
- {['file', 'paper', 'folder', 'upload', 'download', 'import', 'export', 'save'].map(icon => (
186
- <div key={icon} className={styles.iconItem}>
187
- <i className={`icon-${icon}`}></i>
188
- <span>icon-{icon}</span>
189
- </div>
190
- ))}
191
- </div>
192
- </div>
193
-
194
- <div className={styles.categorySection}>
195
- <h3>소셜 미디어</h3>
196
- <div className={styles.iconList}>
197
- {['facebook', 'naver', 'insta', 'tiktok', 'youtube', 'kakao', 'x', 'apple', 'google'].map(icon => (
198
- <div key={icon} className={styles.iconItem}>
199
- <i className={`icon-${icon}`}></i>
200
- <span>icon-{icon}</span>
201
- </div>
202
- ))}
203
- </div>
204
- </div>
205
-
206
- <div className={styles.categorySection}>
207
- <h3>상태</h3>
208
- <div className={styles.iconList}>
209
- {['info', 'warning', 'danger', 'danger-fill', 'check-circle-stroke', 'check-circle-fill'].map(icon => (
210
- <div key={icon} className={styles.iconItem}>
211
- <i className={`icon-${icon}`}></i>
212
- <span>icon-{icon}</span>
213
- </div>
214
- ))}
215
- </div>
216
- </div>
217
- </section>
218
-
219
- <section className={styles.section}>
220
- <div className={styles.note}>
221
- <i className="icon-info"></i>
222
- <div>
223
- <strong>팁:</strong> 아이콘은 폰트 기반이므로 <code>font-size</code>와 <code>color</code> 속성으로 크기와 색상을 자유롭게 조정할 수 있습니다.
224
- </div>
225
- </div>
226
- </section>
227
- </>
228
- );
229
- }
@@ -1,258 +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
- .codeBlock {
30
- background: color(bg-modal);
31
- border: 1px solid color(default-outline);
32
- border-radius: r(3);
33
- overflow: hidden;
34
- margin-bottom: s(4);
35
-
36
- .codeHeader {
37
- padding: s(3) s(5);
38
- background: color(bg-elevation-1);
39
- border-bottom: 1px solid color(default-outline);
40
- @include p4;
41
- font-weight: 600;
42
- color: color(default-deep);
43
- }
44
-
45
- pre {
46
- margin: 0;
47
- padding: s(5);
48
- overflow-x: auto;
49
- background: color(bg-elevation);
50
-
51
- code {
52
- @include p3;
53
- font-family: 'Monaco', 'Menlo', 'Consolas', monospace;
54
- color: color(default-deep);
55
- white-space: pre;
56
- }
57
- }
58
- }
59
-
60
- .note {
61
- display: flex;
62
- gap: s(4);
63
- padding: s(5);
64
- border-radius: r(4);
65
- margin-top: s(5);
66
- background: color(info-fill);
67
- border: 1px solid color(info-outline);
68
- color: color(info);
69
-
70
- > i {
71
- font-size: 20px;
72
- flex-shrink: 0;
73
- color: color(info);
74
- }
75
-
76
- strong {
77
- display: block;
78
- margin-bottom: s(2);
79
- }
80
- }
81
-
82
- .demo {
83
- margin-top: s(5);
84
- padding: s(5);
85
- background: color(bg-modal);
86
- border: 1px solid color(default-outline);
87
- border-radius: r(4);
88
- }
89
-
90
- .demoTitle {
91
- @include p3-semibold;
92
- margin-bottom: s(4);
93
- color: color(default-deep);
94
- }
95
-
96
- .spacingDemo {
97
- display: flex;
98
- flex-direction: column;
99
- gap: s(4);
100
-
101
- > div {
102
- @include p3;
103
- text-align: center;
104
- }
105
- }
106
-
107
- .radiusDemo {
108
- display: flex;
109
- gap: s(4);
110
- flex-wrap: wrap;
111
-
112
- > div {
113
- @include p3;
114
- text-align: center;
115
- }
116
- }
117
-
118
- .spacingGrid {
119
- display: grid;
120
- grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
121
- gap: s(4);
122
- margin-top: s(5);
123
- }
124
-
125
- .spacingCard {
126
- border: 1px solid color(default-outline);
127
- border-radius: r(3);
128
- padding: s(4);
129
- background: color(bg-modal);
130
- transition: all 0.3s;
131
-
132
- &:hover {
133
- border-color: color(primary);
134
- box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
135
- }
136
- }
137
-
138
- .spacingInfo {
139
- display: flex;
140
- justify-content: space-between;
141
- align-items: center;
142
- margin-bottom: s(3);
143
- }
144
-
145
- .spacingKey {
146
- @include p3-semibold;
147
- font-family: 'Monaco', 'Menlo', 'Consolas', monospace;
148
- color: color(primary);
149
- }
150
-
151
- .spacingValue {
152
- @include p4;
153
- font-family: 'Monaco', 'Menlo', 'Consolas', monospace;
154
- color: color(default);
155
- }
156
-
157
- .spacingPreview {
158
- padding: s(3);
159
- background: color(bg-elevation-1);
160
- border-radius: r(2);
161
- overflow: hidden;
162
- }
163
-
164
- .spacingBar {
165
- height: 24px;
166
- background: linear-gradient(135deg, #8B5CF6 0%, #6366F1 100%);
167
- border-radius: r(1);
168
- min-width: 2px;
169
- max-width: 100%;
170
- }
171
-
172
- .radiusGrid {
173
- display: grid;
174
- grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
175
- gap: s(4);
176
- margin-top: s(5);
177
- }
178
-
179
- .radiusCard {
180
- border: 1px solid color(default-outline);
181
- border-radius: r(3);
182
- padding: s(4);
183
- background: color(bg-modal);
184
- transition: all 0.3s;
185
-
186
- &:hover {
187
- border-color: color(primary);
188
- box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
189
- }
190
- }
191
-
192
- .radiusInfo {
193
- display: flex;
194
- justify-content: space-between;
195
- align-items: center;
196
- margin-bottom: s(3);
197
- }
198
-
199
- .radiusKey {
200
- @include p3-semibold;
201
- font-family: 'Monaco', 'Menlo', 'Consolas', monospace;
202
- color: color(primary);
203
- }
204
-
205
- .radiusValue {
206
- @include p4;
207
- font-family: 'Monaco', 'Menlo', 'Consolas', monospace;
208
- color: color(default);
209
- }
210
-
211
- .radiusPreview {
212
- padding: s(4);
213
- background: color(bg-elevation-1);
214
- border-radius: r(2);
215
- display: flex;
216
- align-items: center;
217
- justify-content: center;
218
- }
219
-
220
- .radiusBox {
221
- width: 80px;
222
- height: 80px;
223
- background: linear-gradient(135deg, #8B5CF6 0%, #6366F1 100%);
224
- }
225
-
226
- .cardExample {
227
- padding: s(6);
228
- margin-top: s(4);
229
- border-radius: r(4);
230
- background: color(bg-elevation-1);
231
- border: 1px solid color(default-outline);
232
- }
233
-
234
- .cardHeader {
235
- margin-bottom: s(4);
236
- padding-bottom: s(3);
237
- border-bottom: 1px solid color(default-outline);
238
-
239
- h3 {
240
- @include display6;
241
- margin: 0;
242
- color: color(default-deep);
243
- }
244
- }
245
-
246
- .cardContent {
247
- @include p3;
248
- line-height: 1.6;
249
- color: color(default);
250
- }
251
-
252
- .cardFooter {
253
- margin-top: s(5);
254
- padding-top: s(4);
255
- border-top: 1px solid color(default-outline);
256
- display: flex;
257
- gap: s(3);
258
- }