@uniai-fe/uds-templates 0.0.13 → 0.1.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.
package/dist/styles.css CHANGED
@@ -1,2466 +1,5 @@
1
1
  @charset "UTF-8";
2
2
  /* templates styles는 foundation/primitives 순으로 import된 이후를 가정한다. */
3
- /* 모든 primitives component SCSS를 한 번에 노출해 서비스 import 부담을 줄인다.
4
- ※ foundation CSS(`@uniai-fe/uds-foundation/css`)는 소비자가 별도로 한 번만 로드해야 한다. */
5
- /* TODO(alternate): 스타일을 SOT 토큰 값으로 정의한다. */
6
- /* Badge 토큰을 foundation 변수에 맞춰 한 번 더 래핑해 override 여지를 둔다. */
7
- .uds-theme-root {
8
- --theme-badge-height-xsmall: var(--theme-size-small-1, 20px);
9
- --theme-badge-height-small: var(--theme-size-small-2, 24px);
10
- --theme-badge-padding-inline-xsmall: var(--spacing-padding-3, 6px);
11
- --theme-badge-padding-inline-small: var(--spacing-padding-4, 8px);
12
- --theme-badge-radius: var(--theme-radius-medium-1, 6px);
13
- --theme-badge-font-family: var(--font-caption-medium-family, inherit);
14
- --theme-badge-font-size: var(--font-caption-medium-size, 11px);
15
- --theme-badge-font-weight: var(--font-caption-medium-weight, 400);
16
- --theme-badge-line-height: var(--font-caption-medium-line-height, 1.5);
17
- --theme-badge-letter-spacing: var(--font-caption-medium-letter-spacing, 0);
18
- --theme-badge-dot-size: var(--spacing-gap-3, 8px);
19
- }
20
-
21
- .badge {
22
- --badge-height: var(--theme-badge-height-xsmall);
23
- --badge-padding-inline: var(--theme-badge-padding-inline-xsmall);
24
- --badge-gap: var(--spacing-gap-1, 4px);
25
- --badge-fill-bg-color: var(--color-primary-default, #1a6aff);
26
- --badge-fill-label-color: var(--color-common-100, #ffffff);
27
- --badge-outline-border-color: var(--color-primary-default, #1a6aff);
28
- --badge-outline-label-color: var(--color-primary-default, #1a6aff);
29
- --badge-dot-color: var(--color-primary-default, #1a6aff);
30
- --badge-dot-size: var(--theme-badge-dot-size);
31
- display: flex;
32
- align-items: center;
33
- justify-content: center;
34
- gap: var(--badge-gap);
35
- height: var(--badge-height);
36
- padding-inline: var(--badge-padding-inline);
37
- padding-block: 0;
38
- border-radius: var(--theme-badge-radius);
39
- border: 0;
40
- font-family: var(--theme-badge-font-family);
41
- font-size: var(--theme-badge-font-size);
42
- font-weight: var(--theme-badge-font-weight);
43
- line-height: 1;
44
- letter-spacing: var(--theme-badge-letter-spacing);
45
- white-space: nowrap;
46
- box-sizing: border-box;
47
- margin: 0;
48
- width: fit-content;
49
- }
50
-
51
- .badge:where([data-size=small]) {
52
- --badge-height: var(--theme-badge-height-small);
53
- --badge-padding-inline: var(--theme-badge-padding-inline-small);
54
- }
55
-
56
- .badge:where([data-style=fill]) {
57
- background-color: var(--badge-fill-bg-color);
58
- color: var(--badge-fill-label-color);
59
- border-color: transparent;
60
- }
61
-
62
- .badge:where([data-style=outlined]) {
63
- background-color: var(--color-bg-surface-static-white, #ffffff);
64
- border-width: 1px;
65
- border-style: solid;
66
- border-color: var(--badge-outline-border-color);
67
- color: var(--badge-outline-label-color);
68
- }
69
-
70
- .badge:where([data-style=dot]) {
71
- padding: 0;
72
- border-width: 0;
73
- width: var(--badge-dot-size);
74
- height: var(--badge-dot-size);
75
- min-width: 0;
76
- border-radius: var(--badge-dot-size);
77
- background-color: transparent;
78
- }
79
-
80
- .badge-dot {
81
- width: var(--badge-dot-size);
82
- height: var(--badge-dot-size);
83
- border-radius: 999px;
84
- background-color: var(--badge-dot-color);
85
- flex-shrink: 0;
86
- }
87
-
88
- .badge-label {
89
- display: inline-flex;
90
- align-items: center;
91
- color: inherit;
92
- line-height: 1;
93
- }
94
-
95
- .badge:where([data-style=dot]) .badge-label {
96
- font-size: 0;
97
- line-height: 0;
98
- height: 0;
99
- width: 0;
100
- overflow: hidden;
101
- }
102
-
103
- /* fill intent 별 배경/라벨 컬러 정의 */
104
- .badge:where([data-style=fill][data-intent=primary]) {
105
- --badge-fill-bg-color: var(--color-primary-default, #1a6aff);
106
- --badge-fill-label-color: var(--color-common-100, #ffffff);
107
- }
108
-
109
- .badge:where([data-style=fill][data-intent=secondary]) {
110
- --badge-fill-bg-color: var(--color-secondary-default, #e5eeff);
111
- --badge-fill-label-color: var(--color-primary-default, #1a6aff);
112
- }
113
-
114
- .badge:where([data-style=fill][data-intent=tertiary]) {
115
- --badge-fill-bg-color: var(--color-cool-gray-10, #18191b);
116
- --badge-fill-label-color: var(--color-common-100, #ffffff);
117
- }
118
-
119
- .badge:where([data-style=fill][data-intent=gray]) {
120
- --badge-fill-bg-color: var(--color-bg-surface-neutral, #f2f2f2);
121
- --badge-fill-label-color: var(--color-label-neutral, #797e86);
122
- }
123
-
124
- .badge:where([data-style=fill][data-intent=green]) {
125
- --badge-fill-bg-color: var(--color-green-95, #e9fcef);
126
- --badge-fill-label-color: var(--color-green-45, #1dc956);
127
- }
128
-
129
- .badge:where([data-style=fill][data-intent=yellow]) {
130
- --badge-fill-bg-color: var(--color-yellow-95, #fefae7);
131
- --badge-fill-label-color: var(--color-yellow-45, #dab80b);
132
- }
133
-
134
- .badge:where([data-style=fill][data-intent=orange]) {
135
- --badge-fill-bg-color: var(--color-orange-95, #ffeee5);
136
- --badge-fill-label-color: var(--color-orange-55, #ff661a);
137
- }
138
-
139
- .badge:where([data-style=fill][data-intent=red]) {
140
- --badge-fill-bg-color: var(--color-red-95, #fde8e7);
141
- --badge-fill-label-color: var(--color-red-55, #f43625);
142
- }
143
-
144
- /* outlined intent 별 border/label 컬러 정의 */
145
- .badge:where([data-style=outlined][data-intent=primary]) {
146
- --badge-outline-border-color: var(--color-primary-default, #1a6aff);
147
- --badge-outline-label-color: var(--color-primary-default, #1a6aff);
148
- }
149
-
150
- .badge:where([data-style=outlined][data-intent=secondary]) {
151
- --badge-outline-border-color: var(--color-border-standard-blue, #ccdeff);
152
- --badge-outline-label-color: var(--color-primary-strong, #0050e5);
153
- }
154
-
155
- .badge:where([data-style=outlined][data-intent=tertiary]) {
156
- --badge-outline-border-color: var(--color-border-standard-heavy, #313235);
157
- --badge-outline-label-color: var(--color-label-strong, #18191b);
158
- }
159
-
160
- .badge:where([data-style=outlined][data-intent=gray]) {
161
- --badge-outline-border-color: var(--color-border-standard-assistive, #e4e5e7);
162
- --badge-outline-label-color: var(--color-label-standard, #3d3f43);
163
- }
164
-
165
- .badge:where([data-style=outlined][data-intent=green]) {
166
- --badge-outline-border-color: var(--color-green-45, #1dc956);
167
- --badge-outline-label-color: var(--color-green-45, #1dc956);
168
- }
169
-
170
- .badge:where([data-style=outlined][data-intent=yellow]) {
171
- --badge-outline-border-color: var(--color-yellow-60, #f5d63d);
172
- --badge-outline-label-color: var(--color-yellow-45, #dab80b);
173
- }
174
-
175
- .badge:where([data-style=outlined][data-intent=orange]) {
176
- --badge-outline-border-color: var(--color-orange-70, #ff9966);
177
- --badge-outline-label-color: var(--color-orange-55, #ff661a);
178
- }
179
-
180
- .badge:where([data-style=outlined][data-intent=red]) {
181
- --badge-outline-border-color: var(--color-red-70, #f7796e);
182
- --badge-outline-label-color: var(--color-red-55, #f43625);
183
- }
184
-
185
- /* dot tone 별 포인트 컬러 */
186
- .badge:where([data-style=dot][data-tone=primary]) {
187
- --badge-dot-color: var(--color-primary-default, #1a6aff);
188
- }
189
-
190
- .badge:where([data-style=dot][data-tone=feedback]) {
191
- --badge-dot-color: var(--color-red-55, #f43625);
192
- }
193
-
194
- :root {
195
- /* spacing */
196
- --theme-button-gap-1: var(--spacing-gap-1);
197
- --theme-button-gap-2: var(--spacing-gap-2);
198
- --theme-button-gap-3: var(--spacing-gap-3);
199
- --theme-button-padding-1: var(--spacing-padding-1);
200
- --theme-button-padding-2: var(--spacing-padding-2);
201
- --theme-button-padding-3: var(--spacing-padding-3);
202
- --theme-button-padding-4: var(--spacing-padding-4);
203
- --theme-button-padding-5: var(--spacing-padding-5);
204
- --theme-button-padding-6: var(--spacing-padding-6);
205
- --theme-button-padding-7: var(--spacing-padding-7);
206
- --theme-button-padding-9: var(--spacing-padding-9);
207
- --theme-button-min-width: var(--theme-size-small-2);
208
- --theme-button-text-padding-block: var(--spacing-padding-4, 8px);
209
- --theme-button-text-padding-inline-small: var(--spacing-padding-4, 8px);
210
- --theme-button-text-padding-inline-medium: var(--spacing-padding-5, 12px);
211
- --theme-button-text-padding-inline-large: var(--spacing-padding-5, 12px);
212
- --theme-button-text-min-height-small: var(--theme-size-small-1, 20px);
213
- --theme-button-text-min-height-medium: var(--theme-size-small-2, 24px);
214
- --theme-button-text-min-height-large: var(--theme-size-small-3, 32px);
215
- --theme-button-text-radius: var(--theme-radius-small, 4px);
216
- --theme-button-round-padding-inline-small: var(--spacing-padding-5, 12px);
217
- --theme-button-round-padding-inline-medium: var(--spacing-padding-6, 16px);
218
- --theme-button-round-padding-inline-large: var(--spacing-padding-7, 20px);
219
- --theme-button-round-padding-block: var(--spacing-padding-2, 4px);
220
- --theme-button-round-min-height-small: var(--theme-size-small-2, 24px);
221
- --theme-button-round-min-height-medium: var(--theme-size-small-3, 32px);
222
- --theme-button-round-min-height-large: var(--theme-size-medium-1, 40px);
223
- --theme-button-round-radius-small: var(--theme-radius-xlarge-2, 16px);
224
- --theme-button-round-radius-medium: var(--theme-radius-xlarge-2, 16px);
225
- --theme-button-round-radius-large: 30px;
226
- /* size/radius */
227
- --theme-button-size-small-1: var(--theme-size-small-1);
228
- --theme-button-size-small-2: var(--theme-size-small-2);
229
- --theme-button-size-small-3: var(--theme-size-small-3);
230
- --theme-button-size-medium-1: var(--theme-size-medium-1);
231
- --theme-button-size-medium-2: var(--theme-size-medium-2);
232
- --theme-button-size-medium-3: var(--theme-size-medium-3);
233
- --theme-button-radius-medium-1: var(--theme-radius-medium-1);
234
- --theme-button-radius-medium-3: var(--theme-radius-medium-3);
235
- --theme-button-radius-large-1: var(--theme-radius-large-1);
236
- --theme-button-radius-large-2: var(--theme-radius-large-2);
237
- --theme-button-radius-small: var(--theme-radius-small);
238
- --theme-button-radius-xlarge: var(--theme-radius-xlarge);
239
- /* typography */
240
- --theme-button-font-body-medium-family: var(--font-body-medium-family);
241
- --theme-button-font-body-medium-size: var(--font-body-medium-size);
242
- --theme-button-font-body-medium-weight: var(--font-body-medium-weight);
243
- --theme-button-font-body-medium-line-height: var(
244
- --font-body-medium-line-height
245
- );
246
- --theme-button-font-body-medium-letter-spacing: var(
247
- --font-body-medium-letter-spacing
248
- );
249
- --theme-button-font-label-medium-size: var(--font-label-medium-size);
250
- --theme-button-font-label-medium-weight: var(--font-label-medium-weight);
251
- --theme-button-font-label-medium-line-height: var(
252
- --font-label-medium-line-height
253
- );
254
- --theme-button-font-label-medium-letter-spacing: var(
255
- --font-label-medium-letter-spacing
256
- );
257
- --theme-button-font-label-large-size: var(--font-label-large-size);
258
- --theme-button-font-label-large-weight: var(--font-label-large-weight);
259
- --theme-button-font-label-large-line-height: var(
260
- --font-label-large-line-height
261
- );
262
- --theme-button-font-label-large-letter-spacing: var(
263
- --font-label-large-letter-spacing
264
- );
265
- --theme-button-font-body-large-size: var(--font-body-large-size);
266
- --theme-button-font-body-large-weight: var(--font-body-large-weight);
267
- --theme-button-font-body-large-line-height: var(
268
- --font-body-large-line-height
269
- );
270
- --theme-button-font-body-large-letter-spacing: var(
271
- --font-body-large-letter-spacing
272
- );
273
- --theme-button-font-weight: 400;
274
- /* colors */
275
- --theme-button-color-neutral-base: var(--color-neutral-20);
276
- --theme-button-color-common-100: var(--color-common-100);
277
- --theme-button-color-primary-default: var(--color-primary-default);
278
- --theme-button-color-primary-strong: var(--color-primary-strong);
279
- --theme-button-color-primary-heavy: var(--color-primary-heavy);
280
- --theme-button-color-secondary-default: var(--color-secondary-default);
281
- --theme-button-color-secondary-strong: var(--color-secondary-strong);
282
- --theme-button-color-secondary-heavy: var(--color-secondary-heavy);
283
- --theme-button-color-tertiary-default: var(--color-tertiary-default);
284
- --theme-button-color-tertiary-strong: var(--color-tertiary-strong);
285
- --theme-button-color-tertiary-heavy: var(--color-tertiary-heavy);
286
- --theme-button-color-blue-90: var(--color-blue-90);
287
- --theme-button-color-blue-50: var(--color-blue-50);
288
- --theme-button-color-blue-45: var(--color-blue-45);
289
- --theme-button-overlay-solid-tertiary-bg: var(--color-bg-surface-strong);
290
- /* Confirm dialog cancel 버튼을 위한 solid tertiary 색상 정의 */
291
- --theme-button-tertiary-solid-bg: var(--color-bg-surface-neutral);
292
- --theme-button-tertiary-solid-hover-bg: var(--color-bg-surface-strong);
293
- --theme-button-tertiary-solid-pressed-bg: var(--color-bg-surface-strong);
294
- --theme-button-tertiary-solid-foreground: var(--color-label-neutral);
295
- --theme-button-secondary-solid-bg: var(--color-blue-95, #e5eeff);
296
- --theme-button-secondary-solid-hover-bg: #dbe9ff;
297
- --theme-button-secondary-solid-pressed-bg: #ccdeff;
298
- --theme-button-color-cool-gray-90: var(--color-cool-gray-90);
299
- --theme-button-color-cool-gray-95: var(--color-cool-gray-95);
300
- --theme-button-color-cool-gray-10: var(--color-cool-gray-10);
301
- --theme-button-color-bg-surface-standard: var(--color-bg-surface-standard);
302
- --theme-button-color-bg-alternative-cool-gray: var(
303
- --color-bg-alternative-cool-gray
304
- );
305
- --theme-button-color-bg-surface-strong: var(--color-bg-surface-strong);
306
- --theme-button-color-label-disabled: var(--color-label-disabled);
307
- /* overlays */
308
- --theme-button-overlay-solid-secondary-bg: var(--color-blue-90);
309
- --theme-button-overlay-outlined-primary-bg: var(--color-blue-90);
310
- --theme-button-overlay-outlined-secondary-bg: var(--color-cool-gray-95);
311
- --theme-button-overlay-outlined-tertiary-bg: var(--color-cool-gray-95);
312
- }
313
-
314
- /* Primitives 버튼 공통 스타일 */
315
- .button {
316
- display: flex;
317
- align-items: center;
318
- justify-content: center;
319
- gap: var(--theme-button-gap-2, var(--spacing-gap-2, 8px));
320
- width: fit-content;
321
- min-width: var(--theme-button-min-width, var(--theme-size-small-2, 24px));
322
- min-height: var(--button-min-height, auto);
323
- padding-inline: var(--button-padding-inline, var(--theme-button-padding-4, var(--spacing-padding-4, 16px)));
324
- padding-block: var(--button-padding-block, var(--theme-button-padding-2, var(--spacing-padding-2, 4px)));
325
- border-radius: var(--button-border-radius, var(--theme-button-radius-medium-1, var(--theme-radius-medium-1, 8px)));
326
- border: 1px solid transparent;
327
- background-color: transparent;
328
- color: var(--theme-button-color-neutral-base, var(--color-neutral-20));
329
- box-shadow: none;
330
- filter: none;
331
- cursor: pointer;
332
- }
333
- .button span {
334
- font-family: var(--font-caption-medium-family, var(--theme-button-font-body-medium-family, var(--font-body-medium-family, "Pretendard")));
335
- font-size: var(--font-caption-medium-size, var(--theme-button-font-body-medium-size, var(--font-body-medium-size, 16px)));
336
- font-weight: var(--font-caption-medium-weight, var(--theme-button-font-weight, 400));
337
- line-height: var(--font-caption-medium-line-height, var(--theme-button-font-body-medium-line-height, var(--font-body-medium-line-height, 24px)));
338
- letter-spacing: var(--font-caption-medium-letter-spacing, var(--theme-button-font-body-medium-letter-spacing, var(--font-body-medium-letter-spacing, 0px)));
339
- }
340
- .button .button-icon,
341
- .button .button-label,
342
- .button .button-left,
343
- .button .button-right {
344
- display: inline-flex;
345
- align-items: center;
346
- justify-content: center;
347
- }
348
- .button.button-block {
349
- width: 100%;
350
- }
351
-
352
- .button[aria-busy=true] {
353
- pointer-events: none;
354
- cursor: progress;
355
- }
356
-
357
- .button.button-fill-solid.button-priority-primary {
358
- background-color: var(--theme-button-color-primary-default, var(--color-primary-default));
359
- border-color: var(--theme-button-color-primary-default, var(--color-primary-default));
360
- color: var(--theme-button-color-common-100, var(--color-common-100));
361
- }
362
- .button.button-fill-solid.button-priority-primary:disabled, .button.button-fill-solid.button-priority-primary[aria-disabled=true] {
363
- background-color: var(--theme-button-color-bg-surface-standard, var(--color-bg-surface-standard));
364
- border-color: var(--theme-button-color-bg-surface-standard, var(--color-bg-surface-standard));
365
- color: var(--theme-button-color-label-disabled, var(--color-label-disabled));
366
- }
367
- .button.button-fill-solid.button-priority-primary:hover:not(:disabled):not([aria-disabled=true]), .button.button-fill-solid.button-priority-primary[data-user-action=hover]:not(:disabled):not([aria-disabled=true]) {
368
- background-color: var(--theme-button-color-blue-50, var(--color-blue-50));
369
- border-color: var(--theme-button-color-blue-50, var(--color-blue-50));
370
- }
371
- .button.button-fill-solid.button-priority-primary:active:not(:disabled):not([aria-disabled=true]), .button.button-fill-solid.button-priority-primary[data-user-action=pressed]:not(:disabled):not([aria-disabled=true]) {
372
- background-color: var(--theme-button-color-blue-45, var(--color-blue-45));
373
- border-color: var(--theme-button-color-blue-45, var(--color-blue-45));
374
- }
375
-
376
- .button.button-fill-outlined.button-priority-primary {
377
- background-color: transparent;
378
- color: var(--theme-button-color-primary-default, var(--color-primary-default));
379
- border-color: var(--theme-button-color-primary-default, var(--color-primary-default));
380
- }
381
- .button.button-fill-outlined.button-priority-primary:disabled, .button.button-fill-outlined.button-priority-primary[aria-disabled=true] {
382
- background-color: var(--theme-button-color-bg-surface-standard, var(--color-bg-surface-standard));
383
- border-color: var(--theme-button-color-bg-surface-standard, var(--color-bg-surface-standard));
384
- color: var(--theme-button-color-label-disabled, var(--color-label-disabled));
385
- }
386
- .button.button-fill-outlined.button-priority-primary:hover:not(:disabled):not([aria-disabled=true]), .button.button-fill-outlined.button-priority-primary[data-user-action=hover]:not(:disabled):not([aria-disabled=true]) {
387
- background-color: var(--theme-button-color-primary-default, var(--color-primary-default));
388
- border-color: var(--theme-button-color-primary-default, var(--color-primary-default));
389
- }
390
- .button.button-fill-outlined.button-priority-primary:active:not(:disabled):not([aria-disabled=true]), .button.button-fill-outlined.button-priority-primary[data-user-action=pressed]:not(:disabled):not([aria-disabled=true]) {
391
- background-color: var(--theme-button-color-primary-default, var(--color-primary-default));
392
- border-color: var(--theme-button-color-primary-default, var(--color-primary-default));
393
- }
394
-
395
- .button.button-fill-solid.button-priority-secondary {
396
- background-color: var(--theme-button-secondary-solid-bg, var(--color-blue-95, #e5eeff));
397
- border-color: var(--theme-button-secondary-solid-bg, var(--color-blue-95, #e5eeff));
398
- color: var(--theme-button-color-primary-default, var(--color-primary-default));
399
- }
400
- .button.button-fill-solid.button-priority-secondary:disabled, .button.button-fill-solid.button-priority-secondary[aria-disabled=true] {
401
- background-color: var(--theme-button-color-bg-surface-standard, var(--color-bg-surface-standard));
402
- border-color: var(--theme-button-color-bg-surface-standard, var(--color-bg-surface-standard));
403
- color: var(--theme-button-color-label-disabled, var(--color-label-disabled));
404
- }
405
- .button.button-fill-solid.button-priority-secondary:hover:not(:disabled):not([aria-disabled=true]), .button.button-fill-solid.button-priority-secondary[data-user-action=hover]:not(:disabled):not([aria-disabled=true]) {
406
- background-color: var(--theme-button-secondary-solid-hover-bg, #dbe9ff);
407
- border-color: var(--theme-button-secondary-solid-hover-bg, #dbe9ff);
408
- }
409
- .button.button-fill-solid.button-priority-secondary:active:not(:disabled):not([aria-disabled=true]), .button.button-fill-solid.button-priority-secondary[data-user-action=pressed]:not(:disabled):not([aria-disabled=true]) {
410
- background-color: var(--theme-button-secondary-solid-pressed-bg, #ccdeff);
411
- border-color: var(--theme-button-secondary-solid-pressed-bg, #ccdeff);
412
- }
413
-
414
- .button.button-fill-outlined.button-priority-secondary {
415
- background-color: transparent;
416
- color: var(--theme-button-color-primary-default, var(--color-primary-default));
417
- border-color: var(--theme-button-color-cool-gray-90, var(--color-cool-gray-90));
418
- }
419
- .button.button-fill-outlined.button-priority-secondary:disabled, .button.button-fill-outlined.button-priority-secondary[aria-disabled=true] {
420
- background-color: var(--theme-button-color-bg-surface-standard, var(--color-bg-surface-standard));
421
- border-color: var(--theme-button-color-bg-surface-standard, var(--color-bg-surface-standard));
422
- color: var(--theme-button-color-label-disabled, var(--color-label-disabled));
423
- }
424
- .button.button-fill-outlined.button-priority-secondary:hover:not(:disabled):not([aria-disabled=true]), .button.button-fill-outlined.button-priority-secondary[data-user-action=hover]:not(:disabled):not([aria-disabled=true]) {
425
- background-color: var(--theme-button-color-blue-90, var(--color-blue-90));
426
- border-color: var(--theme-button-color-cool-gray-90, var(--color-cool-gray-90));
427
- }
428
- .button.button-fill-outlined.button-priority-secondary:active:not(:disabled):not([aria-disabled=true]), .button.button-fill-outlined.button-priority-secondary[data-user-action=pressed]:not(:disabled):not([aria-disabled=true]) {
429
- background-color: var(--theme-button-secondary-solid-bg, var(--color-blue-95, #e5eeff));
430
- border-color: var(--theme-button-color-cool-gray-90, var(--color-cool-gray-90));
431
- }
432
-
433
- .button.button-fill-solid.button-priority-tertiary {
434
- background-color: var(--theme-button-tertiary-solid-bg, var(--color-bg-surface-neutral));
435
- border-color: var(--theme-button-tertiary-solid-bg, var(--color-bg-surface-neutral));
436
- color: var(--theme-button-tertiary-solid-foreground, var(--color-label-neutral));
437
- }
438
- .button.button-fill-solid.button-priority-tertiary:disabled, .button.button-fill-solid.button-priority-tertiary[aria-disabled=true] {
439
- background-color: var(--theme-button-color-bg-surface-standard, var(--color-bg-surface-standard));
440
- border-color: var(--theme-button-color-bg-surface-standard, var(--color-bg-surface-standard));
441
- color: var(--theme-button-color-label-disabled, var(--color-label-disabled));
442
- }
443
- .button.button-fill-solid.button-priority-tertiary:hover:not(:disabled):not([aria-disabled=true]), .button.button-fill-solid.button-priority-tertiary[data-user-action=hover]:not(:disabled):not([aria-disabled=true]) {
444
- background-color: var(--theme-button-tertiary-solid-hover-bg, var(--color-bg-surface-static-cool-gray));
445
- border-color: var(--theme-button-tertiary-solid-hover-bg, var(--color-bg-surface-static-cool-gray));
446
- }
447
- .button.button-fill-solid.button-priority-tertiary:active:not(:disabled):not([aria-disabled=true]), .button.button-fill-solid.button-priority-tertiary[data-user-action=pressed]:not(:disabled):not([aria-disabled=true]) {
448
- background-color: var(--theme-button-tertiary-solid-pressed-bg, var(--color-bg-surface-strong));
449
- border-color: var(--theme-button-tertiary-solid-pressed-bg, var(--color-bg-surface-strong));
450
- }
451
-
452
- .button.button-fill-outlined.button-priority-tertiary {
453
- background-color: transparent;
454
- color: var(--theme-button-color-cool-gray-10, var(--color-cool-gray-10));
455
- border-color: var(--theme-button-color-cool-gray-90, var(--color-cool-gray-90));
456
- }
457
- .button.button-fill-outlined.button-priority-tertiary:disabled, .button.button-fill-outlined.button-priority-tertiary[aria-disabled=true] {
458
- background-color: var(--theme-button-color-bg-surface-standard, var(--color-bg-surface-standard));
459
- border-color: var(--theme-button-color-bg-surface-standard, var(--color-bg-surface-standard));
460
- color: var(--theme-button-color-label-disabled, var(--color-label-disabled));
461
- }
462
- .button.button-fill-outlined.button-priority-tertiary:hover:not(:disabled):not([aria-disabled=true]), .button.button-fill-outlined.button-priority-tertiary[data-user-action=hover]:not(:disabled):not([aria-disabled=true]) {
463
- background-color: var(--theme-button-color-cool-gray-95, var(--color-cool-gray-95));
464
- border-color: var(--theme-button-color-cool-gray-90, var(--color-cool-gray-90));
465
- }
466
- .button.button-fill-outlined.button-priority-tertiary:active:not(:disabled):not([aria-disabled=true]), .button.button-fill-outlined.button-priority-tertiary[data-user-action=pressed]:not(:disabled):not([aria-disabled=true]) {
467
- background-color: var(--theme-button-tertiary-solid-bg, var(--color-bg-surface-neutral));
468
- border-color: var(--theme-button-color-cool-gray-90, var(--color-cool-gray-90));
469
- }
470
-
471
- .button.button-size-small {
472
- padding-inline: var(--theme-button-padding-6, var(--spacing-padding-6, 24px));
473
- gap: var(--theme-button-gap-2, var(--spacing-gap-2, 8px));
474
- padding-block: var(--theme-button-padding-2, var(--spacing-padding-2, 4px));
475
- min-height: var(--theme-button-size-small-3, var(--theme-size-small-3, 32px));
476
- border-radius: var(--theme-button-radius-medium-3, var(--theme-radius-medium-3, 8px));
477
- }
478
- .button.button-size-small span {
479
- font-size: var(--theme-button-font-label-medium-size, var(--font-label-medium-size, 14px));
480
- font-weight: var(--theme-button-font-weight, 400);
481
- line-height: var(--theme-button-font-label-medium-line-height, var(--font-label-medium-line-height, 1.5em));
482
- letter-spacing: var(--theme-button-font-label-medium-letter-spacing, var(--font-label-medium-letter-spacing, 0px));
483
- }
484
-
485
- .button.button-size-medium {
486
- padding-inline: var(--theme-button-padding-7, var(--spacing-padding-7, 20px));
487
- gap: var(--theme-button-gap-2, var(--spacing-gap-2, 8px));
488
- padding-block: var(--theme-button-padding-5, var(--spacing-padding-5, 12px));
489
- min-height: var(--theme-button-size-medium-1, var(--theme-size-medium-1, 40px));
490
- border-radius: var(--theme-button-radius-medium-3, var(--theme-radius-medium-3, 8px));
491
- }
492
- .button.button-size-medium span {
493
- font-size: var(--theme-button-font-label-large-size, var(--font-label-large-size, 16px));
494
- font-weight: var(--theme-button-font-weight, 400);
495
- line-height: var(--theme-button-font-label-large-line-height, var(--font-label-large-line-height, 1.5em));
496
- letter-spacing: var(--theme-button-font-label-large-letter-spacing, var(--font-label-large-letter-spacing, 0px));
497
- }
498
-
499
- .button.button-size-large {
500
- padding-inline: var(--theme-button-padding-9, var(--spacing-padding-9, 28px));
501
- gap: var(--theme-button-gap-3, var(--spacing-gap-3, 12px));
502
- padding-block: var(--theme-button-padding-5, var(--spacing-padding-5, 12px));
503
- min-height: var(--theme-button-size-medium-2, var(--theme-size-medium-2, 48px));
504
- border-radius: var(--theme-button-radius-large-1, var(--theme-radius-large-1, 12px));
505
- }
506
- .button.button-size-large span {
507
- font-size: var(--theme-button-font-body-medium-size, var(--font-body-medium-size, 17px));
508
- font-weight: var(--theme-button-font-weight, 400);
509
- line-height: var(--theme-button-font-body-medium-line-height, var(--font-body-medium-line-height, 1.5em));
510
- letter-spacing: var(--theme-button-font-body-medium-letter-spacing, var(--font-body-medium-letter-spacing, 0px));
511
- }
512
-
513
- .button.button-size-xlarge {
514
- padding-inline: var(--theme-button-padding-9, var(--spacing-padding-9, 28px));
515
- gap: var(--theme-button-gap-3, var(--spacing-gap-3, 12px));
516
- padding-block: var(--theme-button-padding-5, var(--spacing-padding-5, 12px));
517
- min-height: var(--theme-button-size-medium-3, var(--theme-size-medium-3, 56px));
518
- border-radius: var(--theme-button-radius-large-2, var(--theme-radius-large-2, 16px));
519
- }
520
- .button.button-size-xlarge span {
521
- font-size: var(--theme-button-font-body-large-size, var(--font-body-large-size, 19px));
522
- font-weight: var(--theme-button-font-weight, 400);
523
- line-height: var(--theme-button-font-body-large-line-height, var(--font-body-large-line-height, 1.5em));
524
- letter-spacing: var(--theme-button-font-body-large-letter-spacing, var(--font-body-large-letter-spacing, 0px));
525
- }
526
-
527
- .button.button-fill-outlined {
528
- box-shadow: none;
529
- }
530
-
531
- .button.button-fill-solid.button-priority-secondary:hover:not(:disabled):not([aria-disabled=true]), .button.button-fill-solid.button-priority-secondary[data-user-action=hover]:not(:disabled):not([aria-disabled=true]) {
532
- background-color: transparent;
533
- border-color: transparent;
534
- box-shadow: inset 0 0 0 999px rgba(255, 255, 255, 0);
535
- }
536
- .button.button-fill-solid.button-priority-secondary:active:not(:disabled):not([aria-disabled=true]), .button.button-fill-solid.button-priority-secondary[data-user-action=pressed]:not(:disabled):not([aria-disabled=true]) {
537
- background-color: transparent;
538
- border-color: transparent;
539
- box-shadow: inset 0 0 0 999px rgba(255, 255, 255, 0);
540
- }
541
-
542
- .button.button-fill-solid.button-priority-secondary:hover:not(:disabled):not([aria-disabled=true]), .button.button-fill-solid.button-priority-secondary[data-user-action=hover]:not(:disabled):not([aria-disabled=true]) {
543
- background-color: var(--theme-button-secondary-solid-hover-bg, #dbe9ff);
544
- border-color: var(--theme-button-secondary-solid-hover-bg, #dbe9ff);
545
- box-shadow: none;
546
- }
547
- .button.button-fill-solid.button-priority-secondary:active:not(:disabled):not([aria-disabled=true]), .button.button-fill-solid.button-priority-secondary[data-user-action=pressed]:not(:disabled):not([aria-disabled=true]) {
548
- background-color: var(--theme-button-secondary-solid-pressed-bg, #ccdeff);
549
- border-color: var(--theme-button-secondary-solid-pressed-bg, #ccdeff);
550
- box-shadow: none;
551
- }
552
-
553
- .button.button-fill-solid.button-priority-tertiary:hover:not(:disabled):not([aria-disabled=true]), .button.button-fill-solid.button-priority-tertiary[data-user-action=hover]:not(:disabled):not([aria-disabled=true]) {
554
- background-color: var(--color-border-standard-strong, var(--color-bg-surface-strong));
555
- border-color: var(--theme-button-tertiary-solid-bg, var(--color-bg-surface-neutral));
556
- box-shadow: inset 0 0 0 999px rgba(255, 255, 255, 0.68);
557
- }
558
- .button.button-fill-solid.button-priority-tertiary:active:not(:disabled):not([aria-disabled=true]), .button.button-fill-solid.button-priority-tertiary[data-user-action=pressed]:not(:disabled):not([aria-disabled=true]) {
559
- background-color: var(--color-border-standard-strong, var(--color-bg-surface-strong));
560
- border-color: var(--theme-button-tertiary-solid-bg, var(--color-bg-surface-neutral));
561
- box-shadow: inset 0 0 0 999px rgba(255, 255, 255, 0.48);
562
- }
563
-
564
- .button.button-fill-outlined.button-priority-primary:hover:not(:disabled):not([aria-disabled=true]), .button.button-fill-outlined.button-priority-primary[data-user-action=hover]:not(:disabled):not([aria-disabled=true]) {
565
- background-color: var(--theme-button-overlay-outlined-primary-bg, var(--color-blue-90));
566
- border-color: var(--theme-button-color-primary-default, var(--color-primary-default));
567
- box-shadow: inset 0 0 0 999px rgba(255, 255, 255, 0.68);
568
- }
569
- .button.button-fill-outlined.button-priority-primary:active:not(:disabled):not([aria-disabled=true]), .button.button-fill-outlined.button-priority-primary[data-user-action=pressed]:not(:disabled):not([aria-disabled=true]) {
570
- background-color: var(--theme-button-overlay-outlined-primary-bg, var(--color-blue-90));
571
- border-color: var(--theme-button-color-primary-default, var(--color-primary-default));
572
- box-shadow: inset 0 0 0 999px rgba(255, 255, 255, 0.28);
573
- }
574
-
575
- .button.button-fill-outlined.button-priority-secondary:hover:not(:disabled):not([aria-disabled=true]), .button.button-fill-outlined.button-priority-secondary[data-user-action=hover]:not(:disabled):not([aria-disabled=true]) {
576
- background-color: var(--theme-button-overlay-outlined-secondary-bg, var(--color-cool-gray-95));
577
- border-color: var(--theme-button-color-cool-gray-90, var(--color-cool-gray-90));
578
- box-shadow: inset 0 0 0 999px rgba(255, 255, 255, 0.68);
579
- }
580
- .button.button-fill-outlined.button-priority-secondary:active:not(:disabled):not([aria-disabled=true]), .button.button-fill-outlined.button-priority-secondary[data-user-action=pressed]:not(:disabled):not([aria-disabled=true]) {
581
- background-color: var(--theme-button-overlay-outlined-secondary-bg, var(--color-cool-gray-95));
582
- border-color: var(--theme-button-color-cool-gray-90, var(--color-cool-gray-90));
583
- box-shadow: inset 0 0 0 999px rgba(255, 255, 255, 0.28);
584
- }
585
-
586
- .button.button-fill-outlined.button-priority-tertiary:hover:not(:disabled):not([aria-disabled=true]), .button.button-fill-outlined.button-priority-tertiary[data-user-action=hover]:not(:disabled):not([aria-disabled=true]) {
587
- background-color: var(--theme-button-overlay-outlined-tertiary-bg, var(--color-cool-gray-95));
588
- border-color: var(--theme-button-color-cool-gray-90, var(--color-cool-gray-90));
589
- box-shadow: inset 0 0 0 999px rgba(255, 255, 255, 0.68);
590
- }
591
- .button.button-fill-outlined.button-priority-tertiary:active:not(:disabled):not([aria-disabled=true]), .button.button-fill-outlined.button-priority-tertiary[data-user-action=pressed]:not(:disabled):not([aria-disabled=true]) {
592
- background-color: var(--theme-button-overlay-outlined-tertiary-bg, var(--color-cool-gray-95));
593
- border-color: var(--theme-button-color-cool-gray-90, var(--color-cool-gray-90));
594
- box-shadow: inset 0 0 0 999px rgba(255, 255, 255, 0.28);
595
- }
596
-
597
- .button:disabled,
598
- .button[aria-disabled=true] {
599
- background-color: var(--theme-button-color-bg-surface-standard, var(--color-bg-surface-standard));
600
- border-color: var(--theme-button-color-bg-surface-standard, var(--color-bg-surface-standard));
601
- color: var(--theme-button-color-label-disabled, var(--color-label-disabled));
602
- cursor: not-allowed;
603
- }
604
-
605
- .button.button-icon-left .button-label {
606
- margin-left: var(--theme-button-gap-1, var(--spacing-gap-1, 4px));
607
- }
608
-
609
- .button.button-icon-right .button-label {
610
- margin-right: var(--theme-button-gap-1, var(--spacing-gap-1, 4px));
611
- }
612
-
613
- .button.button-template-text {
614
- min-width: auto;
615
- border-color: transparent;
616
- background-color: transparent;
617
- padding-block: var(--theme-button-text-padding-block, var(--spacing-padding-4, 8px));
618
- padding-inline: var(--theme-button-text-padding-inline-small, var(--spacing-padding-4, 8px));
619
- border-width: 0;
620
- gap: var(--spacing-gap-1, 4px);
621
- border-radius: var(--theme-button-text-radius, var(--theme-radius-small, 4px));
622
- }
623
-
624
- .button.button-template-text-size-small {
625
- min-height: var(--theme-button-text-min-height-small, var(--theme-size-small-1, 20px));
626
- padding-inline: var(--theme-button-text-padding-inline-small, var(--spacing-padding-4, 8px));
627
- }
628
-
629
- .button.button-template-text-size-medium {
630
- min-height: var(--theme-button-text-min-height-medium, var(--theme-size-small-2, 24px));
631
- padding-inline: var(--theme-button-text-padding-inline-medium, var(--spacing-padding-5, 12px));
632
- }
633
-
634
- .button.button-template-text-size-large {
635
- min-height: var(--theme-button-text-min-height-large, var(--theme-size-small-3, 32px));
636
- padding-inline: var(--theme-button-text-padding-inline-large, var(--spacing-padding-5, 12px));
637
- }
638
-
639
- .button.button-template-text:disabled {
640
- background-color: transparent;
641
- border-color: transparent;
642
- }
643
-
644
- .button.button-template-text.button-priority-secondary {
645
- color: var(--theme-button-color-primary-default, var(--color-primary-default));
646
- }
647
- .button.button-template-text.button-priority-secondary:hover:not(:disabled), .button.button-template-text.button-priority-secondary[data-user-action=hover]:not(:disabled) {
648
- background-color: var(--color-bg-alternative-cool-gray, var(--color-cool-gray-95));
649
- }
650
- .button.button-template-text.button-priority-secondary:active:not(:disabled), .button.button-template-text.button-priority-secondary[data-user-action=pressed]:not(:disabled) {
651
- background-color: var(--color-secondary-strong, var(--color-blue-90));
652
- }
653
-
654
- .button.button-template-text.button-priority-tertiary {
655
- color: var(--theme-button-color-cool-gray-10, var(--color-cool-gray-10));
656
- }
657
- .button.button-template-text.button-priority-tertiary:hover:not(:disabled), .button.button-template-text.button-priority-tertiary[data-user-action=hover]:not(:disabled) {
658
- background-color: var(--color-bg-alternative-cool-gray, var(--color-cool-gray-95));
659
- }
660
- .button.button-template-text.button-priority-tertiary:active:not(:disabled), .button.button-template-text.button-priority-tertiary[data-user-action=pressed]:not(:disabled) {
661
- background-color: var(--color-bg-surface-strong, var(--color-cool-gray-20));
662
- }
663
-
664
- .button.button-template-round {
665
- min-width: auto;
666
- padding-block: var(--theme-button-round-padding-block, var(--spacing-padding-2, 4px));
667
- padding-inline: var(--theme-button-round-padding-inline-medium, var(--spacing-padding-6, 16px));
668
- gap: var(--spacing-gap-2, 8px);
669
- }
670
-
671
- .button.button-template-round-size-small {
672
- min-height: var(--theme-button-round-min-height-small, var(--theme-size-small-2, 24px));
673
- padding-inline: var(--theme-button-round-padding-inline-small, var(--spacing-padding-5, 12px));
674
- border-radius: var(--theme-button-round-radius-small, var(--theme-radius-xlarge-2, 16px));
675
- }
676
-
677
- .button.button-template-round-size-medium {
678
- min-height: var(--theme-button-round-min-height-medium, var(--theme-size-small-3, 32px));
679
- padding-inline: var(--theme-button-round-padding-inline-medium, var(--spacing-padding-6, 16px));
680
- border-radius: var(--theme-button-round-radius-medium, var(--theme-radius-xlarge-2, 16px));
681
- }
682
-
683
- .button.button-template-round-size-large {
684
- min-height: var(--theme-button-round-min-height-large, var(--theme-size-medium-1, 40px));
685
- padding-inline: var(--theme-button-round-padding-inline-large, var(--spacing-padding-7, 20px));
686
- border-radius: var(--theme-button-round-radius-large, 30px);
687
- }
688
-
689
- /* TODO(calendar): 스타일을 SOT 토큰 값으로 정의한다. */
690
- .uds-theme-root {
691
- --theme-checkbox-frame-size-medium: 20px;
692
- --theme-checkbox-frame-size-large: 24px;
693
- --theme-checkbox-indicator-size-medium: 16px;
694
- --theme-checkbox-indicator-size-large: 20px;
695
- --theme-checkbox-control-radius-medium: var(--theme-radius-xsmall-3, 3px);
696
- --theme-checkbox-control-radius-large: var(--theme-radius-small-1, 4px);
697
- --theme-checkbox-border-width: 1.4px;
698
- --theme-checkbox-border-color: var(--color-border-standard-assistive);
699
- --theme-checkbox-border-selected: var(--color-primary-default);
700
- --theme-checkbox-surface: var(--color-common-100);
701
- --theme-checkbox-surface-selected: var(--color-primary-default);
702
- --theme-checkbox-surface-disabled: var(--color-neutral-95);
703
- --theme-checkbox-surface-selected-disabled: rgba(26, 106, 255, 0.28);
704
- --theme-checkbox-label-color: var(--color-label-strong);
705
- --theme-checkbox-label-disabled: var(--color-label-disabled);
706
- --theme-checkbox-helper-color: var(--color-label-neutral);
707
- --theme-checkbox-helper-disabled: var(--color-label-disabled);
708
- --theme-checkbox-icon-default: transparent;
709
- --theme-checkbox-icon-selected: var(--color-common-100);
710
- --theme-checkbox-icon-disabled-selected: var(--color-common-100);
711
- --theme-checkbox-focus-ring: rgba(2, 84, 255, 0.32);
712
- }
713
-
714
- .checkbox {
715
- display: inline-flex;
716
- align-items: center;
717
- justify-content: center;
718
- inline-size: var(--theme-checkbox-frame-size-medium);
719
- block-size: var(--theme-checkbox-frame-size-medium);
720
- border-radius: var(--theme-checkbox-control-radius-medium);
721
- background-color: transparent;
722
- border: none;
723
- cursor: pointer;
724
- transition: background-color 0.15s ease, border-color 0.15s ease, opacity 0.15s ease, box-shadow 0.15s ease;
725
- }
726
- .checkbox[data-size=medium] {
727
- inline-size: var(--theme-checkbox-frame-size-medium);
728
- block-size: var(--theme-checkbox-frame-size-medium);
729
- border-radius: var(--theme-checkbox-control-radius-medium);
730
- }
731
- .checkbox[data-size=large] {
732
- inline-size: var(--theme-checkbox-frame-size-large);
733
- block-size: var(--theme-checkbox-frame-size-large);
734
- border-radius: var(--theme-checkbox-control-radius-large);
735
- }
736
- .checkbox[data-disabled=true] {
737
- cursor: not-allowed;
738
- }
739
-
740
- .checkbox:focus-visible {
741
- box-shadow: 0 0 0 2px var(--theme-checkbox-focus-ring);
742
- }
743
-
744
- .checkbox-surface {
745
- inline-size: var(--theme-checkbox-indicator-size-medium);
746
- block-size: var(--theme-checkbox-indicator-size-medium);
747
- display: inline-flex;
748
- align-items: center;
749
- justify-content: center;
750
- border: var(--theme-checkbox-border-width) solid var(--theme-checkbox-border-color);
751
- border-radius: var(--theme-checkbox-control-radius-medium);
752
- background-color: var(--theme-checkbox-surface);
753
- transition: background-color 0.15s ease, border-color 0.15s ease;
754
- }
755
-
756
- .checkbox[data-size=large] .checkbox-surface {
757
- inline-size: var(--theme-checkbox-indicator-size-large);
758
- block-size: var(--theme-checkbox-indicator-size-large);
759
- border-radius: var(--theme-checkbox-control-radius-large);
760
- }
761
-
762
- .checkbox[data-state=checked] .checkbox-surface,
763
- .checkbox[data-state=indeterminate] .checkbox-surface {
764
- background-color: var(--theme-checkbox-surface-selected);
765
- border-color: var(--theme-checkbox-border-selected);
766
- }
767
-
768
- .checkbox[data-disabled=true] .checkbox-surface {
769
- background-color: var(--theme-checkbox-surface-disabled);
770
- border-color: var(--theme-checkbox-border-color);
771
- }
772
-
773
- .checkbox[data-disabled=true][data-state=checked] .checkbox-surface,
774
- .checkbox[data-disabled=true][data-state=indeterminate] .checkbox-surface {
775
- background-color: var(--theme-checkbox-surface-selected-disabled);
776
- border-color: var(--theme-checkbox-border-color);
777
- }
778
-
779
- .checkbox-indicator {
780
- display: inline-flex;
781
- align-items: center;
782
- justify-content: center;
783
- color: var(--theme-checkbox-icon-default);
784
- transition: color 0.15s ease;
785
- }
786
- .checkbox-indicator svg {
787
- display: block;
788
- inline-size: auto;
789
- block-size: auto;
790
- max-inline-size: 100%;
791
- max-block-size: 100%;
792
- }
793
-
794
- .checkbox[data-state=checked] .checkbox-indicator,
795
- .checkbox[data-state=indeterminate] .checkbox-indicator {
796
- color: var(--theme-checkbox-icon-selected);
797
- }
798
-
799
- .checkbox[data-disabled=true][data-state=checked] .checkbox-indicator,
800
- .checkbox[data-disabled=true][data-state=indeterminate] .checkbox-indicator {
801
- color: var(--theme-checkbox-icon-disabled-selected);
802
- }
803
-
804
- .checkbox-field {
805
- display: flex;
806
- flex-direction: column;
807
- gap: var(--spacing-gap-1);
808
- color: var(--theme-checkbox-label-color);
809
- }
810
-
811
- .checkbox-field[data-disabled=true] {
812
- color: var(--theme-checkbox-label-disabled);
813
- }
814
-
815
- .checkbox-label-wrapper {
816
- display: inline-flex;
817
- align-items: center;
818
- gap: var(--spacing-gap-2);
819
- cursor: pointer;
820
- }
821
-
822
- .checkbox-label-wrapper[data-disabled=true] {
823
- cursor: not-allowed;
824
- }
825
-
826
- .checkbox-label-text {
827
- font-weight: var(--font-body-medium-weight);
828
- user-select: none;
829
- }
830
-
831
- .checkbox-field[data-size=medium] .checkbox-label-text {
832
- font-size: var(--font-body-xsmall-size);
833
- line-height: var(--font-body-xsmall-line-height);
834
- }
835
-
836
- .checkbox-field[data-size=large] .checkbox-label-text {
837
- font-size: var(--font-body-medium-size);
838
- line-height: var(--font-body-medium-line-height);
839
- }
840
-
841
- .checkbox-helper {
842
- margin: 0;
843
- font-size: var(--font-caption-large-size);
844
- line-height: var(--font-caption-large-line-height);
845
- color: var(--theme-checkbox-helper-color);
846
- user-select: none;
847
- }
848
-
849
- .checkbox-field[data-disabled=true] .checkbox-helper {
850
- color: var(--theme-checkbox-helper-disabled);
851
- }
852
-
853
- /* Chip 기본 토큰 래핑 */
854
- .uds-theme-root {
855
- --theme-chip-height: var(--theme-size-small-3, 32px);
856
- --theme-chip-padding-inline: var(--spacing-padding-5, 12px);
857
- --theme-chip-radius: var(--theme-radius-medium-3, 8px);
858
- --theme-chip-rounded-radius: var(--theme-radius-large-2, 16px);
859
- --theme-chip-font-family: var(--font-body-medium-family, "Pretendard");
860
- --theme-chip-font-size: var(--font-body-xsmall-size, 13px);
861
- --theme-chip-font-weight: var(--font-body-xsmall-weight, 400);
862
- }
863
-
864
- .chip {
865
- --chip-gap: var(--spacing-gap-1, 4px);
866
- --chip-bg: transparent;
867
- --chip-border-color: transparent;
868
- --chip-label-color: var(--color-label-standard, #3d3f43);
869
- display: flex;
870
- align-items: center;
871
- justify-content: center;
872
- gap: var(--chip-gap);
873
- height: var(--theme-chip-height);
874
- padding-inline: var(--theme-chip-padding-inline);
875
- padding-block: 0;
876
- border-radius: var(--theme-chip-radius);
877
- border: 1px solid var(--chip-border-color);
878
- background-color: var(--chip-bg);
879
- color: var(--chip-label-color);
880
- font-family: var(--theme-chip-font-family);
881
- font-size: var(--theme-chip-font-size);
882
- font-weight: var(--theme-chip-font-weight);
883
- line-height: 1;
884
- letter-spacing: 0.2px;
885
- box-sizing: border-box;
886
- margin: 0;
887
- width: fit-content;
888
- transition: background-color 0.16s ease, color 0.16s ease, border-color 0.16s ease, opacity 0.16s ease;
889
- }
890
-
891
- button.chip {
892
- appearance: none;
893
- cursor: pointer;
894
- }
895
-
896
- figure.chip {
897
- margin: 0;
898
- }
899
-
900
- .chip:focus-visible {
901
- outline: 2px solid var(--color-primary-default, #1a6aff);
902
- outline-offset: 2px;
903
- }
904
-
905
- .chip:where([data-kind=filter]),
906
- .chip:where([data-kind=filter-rounded]) {
907
- --chip-bg: var(--color-bg-surface-standard, #f2f2f3);
908
- --chip-label-color: var(--color-label-neutral, #797e86);
909
- --chip-border-color: transparent;
910
- }
911
-
912
- .chip:where([data-kind=filter][data-selected=true]),
913
- .chip:where([data-kind=filter-rounded][data-selected=true]) {
914
- --chip-bg: var(--color-bg-surface-heavy, #313235);
915
- --chip-label-color: var(--color-common-100, #ffffff);
916
- }
917
-
918
- .chip:where([data-kind=filter-rounded]) {
919
- border-radius: var(--theme-chip-rounded-radius);
920
- }
921
-
922
- .chip:where([data-kind=assist]) {
923
- --chip-bg: var(--color-bg-surface-static-neutral, #f2f2f2);
924
- --chip-label-color: var(--color-label-strong, #18191b);
925
- --chip-gap: var(--spacing-gap-2, 8px);
926
- --chip-border-color: transparent;
927
- }
928
-
929
- .chip:where([data-kind=assist][data-selected=true]) {
930
- --chip-label-color: var(--color-primary-default, #1a6aff);
931
- }
932
-
933
- .chip:where([data-kind=input]) {
934
- --chip-gap: var(--spacing-gap-1, 4px);
935
- --chip-bg: var(--color-common-100, #ffffff);
936
- --chip-label-color: var(--color-label-standard, #3d3f43);
937
- --chip-border-color: var(--color-border-standard-assistive, #e4e5e7);
938
- padding-inline-start: var(--spacing-padding-4, 8px);
939
- padding-inline-end: var(--spacing-padding-2, 4px);
940
- }
941
-
942
- .chip:where([data-kind=input][data-selected=true]) {
943
- --chip-border-color: var(--color-border-standard-blue, #ccdeff);
944
- }
945
-
946
- .chip-leading {
947
- display: inline-flex;
948
- align-items: center;
949
- justify-content: center;
950
- color: inherit;
951
- flex-shrink: 0;
952
- }
953
-
954
- .chip-label {
955
- display: inline-flex;
956
- align-items: center;
957
- gap: var(--spacing-gap-1, 4px);
958
- color: inherit;
959
- line-height: 1;
960
- white-space: nowrap;
961
- }
962
-
963
- .chip-remove-button {
964
- display: inline-flex;
965
- align-items: center;
966
- justify-content: center;
967
- width: 16px;
968
- height: 16px;
969
- border: none;
970
- background: transparent;
971
- color: var(--color-label-neutral, #797e86);
972
- cursor: pointer;
973
- padding: 0;
974
- transition: color 0.16s ease;
975
- }
976
-
977
- .chip-remove-button:hover,
978
- .chip-remove-button:focus-visible {
979
- color: var(--color-label-strong, #18191b);
980
- }
981
-
982
- .chip-remove-button svg {
983
- display: block;
984
- width: 100%;
985
- height: 100%;
986
- }
987
-
988
- .uds-theme-root {
989
- --drawer-overlay-bg: rgba(0, 0, 0, 0.44);
990
- --drawer-surface-bg: var(--color-bg-surface-static-white);
991
- --drawer-radius-large: var(--theme-radius-large-2);
992
- --drawer-radius-medium: var(--theme-radius-large-1);
993
- --drawer-body-color: var(--color-label-standard);
994
- --drawer-title-color: var(--color-label-strong);
995
- --drawer-gap: calc(var(--spacing-gap-9, 28px) + 2px);
996
- --drawer-padding-x: calc(var(--spacing-padding-10, 32px) - 2px);
997
- --drawer-padding-top: var(--spacing-padding-7, 20px);
998
- --drawer-padding-bottom: calc(
999
- var(--spacing-padding-11, 40px) + var(--spacing-padding-7, 20px)
1000
- );
1001
- --drawer-footer-gap: var(--spacing-gap-6, 16px);
1002
- --drawer-section-gap: var(--spacing-gap-6, 16px);
1003
- --drawer-handle-width: calc(
1004
- var(--spacing-padding-11, 40px) + var(--spacing-padding-7, 20px)
1005
- );
1006
- --drawer-handle-height: var(--spacing-padding-2, 4px);
1007
- --drawer-handle-bg: var(--color-border-standard-cool-gray);
1008
- --drawer-close-size: 36px;
1009
- --drawer-drag-offset: 0px;
1010
- }
1011
-
1012
- .drawer-overlay {
1013
- position: fixed;
1014
- inset: 0;
1015
- background-color: var(--drawer-overlay-bg);
1016
- opacity: 0;
1017
- pointer-events: none;
1018
- transition: opacity 0.25s ease;
1019
- will-change: opacity;
1020
- }
1021
- .drawer-overlay[data-phase=entering], .drawer-overlay[data-phase=entered] {
1022
- opacity: 1;
1023
- pointer-events: auto;
1024
- }
1025
- .drawer-overlay[data-phase=exiting] {
1026
- opacity: 0;
1027
- pointer-events: auto;
1028
- }
1029
-
1030
- @media (prefers-reduced-motion: reduce) {
1031
- .drawer-overlay {
1032
- transition: none;
1033
- }
1034
- }
1035
- .drawer-content {
1036
- position: fixed;
1037
- display: flex;
1038
- flex-direction: column;
1039
- background-color: var(--drawer-surface-bg);
1040
- outline: none;
1041
- border: none;
1042
- box-shadow: none;
1043
- color: var(--drawer-body-color);
1044
- overscroll-behavior: contain;
1045
- left: 50%;
1046
- bottom: 0;
1047
- transform: translate3d(-50%, 100%, 0);
1048
- border-top-left-radius: var(--drawer-radius-large);
1049
- border-top-right-radius: var(--drawer-radius-large);
1050
- max-width: 640px;
1051
- padding-bottom: env(safe-area-inset-bottom);
1052
- max-width: min(640px, 100%);
1053
- width: 100%;
1054
- max-height: calc(100vh - var(--spacing-padding-8));
1055
- transition: transform 0.32s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.2s ease;
1056
- opacity: 0;
1057
- pointer-events: none;
1058
- will-change: transform;
1059
- }
1060
-
1061
- .drawer-content[data-phase=entering],
1062
- .drawer-content[data-phase=entered] {
1063
- transform: translate3d(-50%, var(--drawer-drag-offset, 0px), 0);
1064
- opacity: 1;
1065
- pointer-events: auto;
1066
- }
1067
-
1068
- .drawer-content[data-phase=exiting] {
1069
- transform: translate3d(-50%, calc(100% + var(--drawer-drag-offset, 0px)), 0);
1070
- opacity: 1;
1071
- pointer-events: none;
1072
- }
1073
-
1074
- .drawer-content[data-phase=exited] {
1075
- transform: translate3d(-50%, 100%, 0);
1076
- opacity: 0;
1077
- pointer-events: none;
1078
- }
1079
-
1080
- .drawer-content[data-dragging=true] {
1081
- transition: none;
1082
- }
1083
-
1084
- @media (prefers-reduced-motion: reduce) {
1085
- .drawer-content {
1086
- transition: none;
1087
- }
1088
- }
1089
- .drawer-handle {
1090
- display: flex;
1091
- align-items: center;
1092
- justify-content: center;
1093
- border: none;
1094
- background: transparent;
1095
- padding: var(--drawer-padding-top) 0 var(--spacing-padding-6);
1096
- cursor: grab;
1097
- }
1098
-
1099
- .drawer-handle:active {
1100
- cursor: grabbing;
1101
- }
1102
-
1103
- .drawer-handle-bar {
1104
- width: var(--drawer-handle-width);
1105
- height: var(--drawer-handle-height);
1106
- border-radius: var(--drawer-handle-height);
1107
- background-color: var(--drawer-handle-bg);
1108
- display: block;
1109
- }
1110
-
1111
- .drawer-close-button {
1112
- position: absolute;
1113
- top: var(--drawer-padding-top);
1114
- right: var(--drawer-padding-x);
1115
- width: 24px;
1116
- height: 24px;
1117
- border-radius: 0;
1118
- border: none;
1119
- background: transparent;
1120
- display: flex;
1121
- align-items: center;
1122
- justify-content: center;
1123
- cursor: pointer;
1124
- padding: 0;
1125
- color: var(--color-label-neutral, #7f8a94);
1126
- }
1127
-
1128
- .drawer-close-button svg {
1129
- width: 24px;
1130
- height: 24px;
1131
- }
1132
-
1133
- .drawer-inner {
1134
- display: flex;
1135
- flex-direction: column;
1136
- gap: var(--drawer-gap);
1137
- padding-inline: var(--drawer-padding-x);
1138
- padding-bottom: var(--drawer-padding-bottom);
1139
- padding-top: var(--drawer-padding-top);
1140
- flex: 1 1 auto;
1141
- min-height: 0;
1142
- }
1143
-
1144
- .drawer-section {
1145
- display: flex;
1146
- flex-direction: column;
1147
- gap: var(--drawer-section-gap);
1148
- color: var(--drawer-body-color);
1149
- width: 100%;
1150
- }
1151
-
1152
- .drawer-header {
1153
- text-align: left;
1154
- padding-top: 0;
1155
- }
1156
-
1157
- .drawer-body {
1158
- flex: 1 1 auto;
1159
- overflow-y: auto;
1160
- gap: var(--spacing-gap-5);
1161
- font-size: var(--font-body-small-size);
1162
- line-height: var(--font-body-small-line-height);
1163
- color: var(--drawer-body-color);
1164
- width: 100%;
1165
- word-break: keep-all;
1166
- }
1167
-
1168
- .drawer-body > * {
1169
- width: 100%;
1170
- }
1171
-
1172
- .drawer-body p {
1173
- margin: 0;
1174
- word-break: inherit;
1175
- }
1176
-
1177
- .drawer-footer {
1178
- padding: var(--spacing-padding-8) 0 0;
1179
- border-top: none;
1180
- flex-shrink: 0;
1181
- display: flex;
1182
- flex-direction: column;
1183
- gap: var(--drawer-footer-gap);
1184
- width: 100%;
1185
- }
1186
-
1187
- .drawer-title {
1188
- margin: 0;
1189
- font-size: var(--font-heading-medium-size);
1190
- line-height: var(--font-heading-medium-line-height);
1191
- font-weight: var(--font-heading-medium-weight);
1192
- color: var(--drawer-title-color);
1193
- letter-spacing: var(--font-heading-medium-letter-spacing, normal);
1194
- }
1195
-
1196
- .drawer-description {
1197
- margin: 0;
1198
- color: var(--drawer-body-color);
1199
- font-size: var(--font-body-xsmall-size);
1200
- line-height: var(--font-body-xsmall-line-height);
1201
- letter-spacing: var(--font-body-xsmall-letter-spacing, normal);
1202
- }
1203
-
1204
- .drawer-dismiss {
1205
- display: none;
1206
- }
1207
-
1208
- /* TODO(dropdown): 스타일을 SOT 토큰 값으로 정의한다. */
1209
- .uds-theme-root {
1210
- --theme-input-height-small: var(--theme-size-medium-1);
1211
- --theme-input-height-medium: var(--theme-size-medium-2);
1212
- --theme-input-height-large: var(--theme-size-medium-3);
1213
- --theme-input-height-tertiary: calc(var(--theme-size-medium-2) + 24px);
1214
- --theme-input-padding-x: var(--spacing-padding-6);
1215
- --theme-input-padding-y: var(--spacing-padding-4);
1216
- --theme-input-gap: var(--spacing-gap-4);
1217
- --theme-input-radius-default: var(--theme-radius-large-1);
1218
- --theme-input-radius-tertiary: var(--theme-radius-large-2);
1219
- --theme-input-label-color: var(--color-label-standard);
1220
- --theme-input-helper-color: var(--color-label-neutral);
1221
- --theme-input-helper-success-color: var(--color-success);
1222
- --theme-input-helper-error-color: var(--color-error);
1223
- --theme-input-helper-disabled-color: var(--color-label-disabled);
1224
- --theme-input-label-accent-color: var(--color-primary-default);
1225
- --theme-input-label-error-color: var(--color-error);
1226
- --theme-input-placeholder-color: var(--color-label-alternative);
1227
- --theme-input-text-color: var(--color-label-strong);
1228
- --theme-input-border-color: var(--color-border-standard-cool-gray);
1229
- --theme-input-border-width-default: 1px;
1230
- --theme-input-border-width-emphasis: 1.4px;
1231
- --theme-input-border-active: #99bdff;
1232
- --theme-input-border-success: #99bdff;
1233
- --theme-input-border-error: rgba(218, 29, 11, 0.44);
1234
- --theme-input-border-disabled: var(--color-border-standard-cool-gray);
1235
- --theme-input-border-underline-disabled: var(
1236
- --color-border-standard-assistive
1237
- );
1238
- --theme-input-surface: var(--color-common-100);
1239
- --theme-input-surface-muted: var(--color-neutral-99);
1240
- --theme-input-surface-disabled: var(--color-neutral-95);
1241
- }
1242
-
1243
- .input {
1244
- display: flex;
1245
- flex-direction: column;
1246
- gap: var(--spacing-gap-3);
1247
- width: 100%;
1248
- }
1249
- .input[data-block=true], .input--block {
1250
- width: 100%;
1251
- }
1252
-
1253
- .input-label {
1254
- color: var(--theme-input-label-color);
1255
- font-size: var(--font-label-small-size);
1256
- line-height: var(--font-label-small-line-height);
1257
- font-weight: var(--font-label-small-weight);
1258
- }
1259
-
1260
- .input-label--visually-hidden {
1261
- position: absolute;
1262
- width: 1px;
1263
- height: 1px;
1264
- padding: 0;
1265
- margin: -1px;
1266
- overflow: hidden;
1267
- clip: rect(0 0 0 0);
1268
- clip-path: inset(50%);
1269
- white-space: nowrap;
1270
- border: 0;
1271
- }
1272
-
1273
- .input-box {
1274
- width: 100%;
1275
- }
1276
-
1277
- .input-field {
1278
- display: flex;
1279
- align-items: center;
1280
- width: 100%;
1281
- gap: var(--theme-input-gap);
1282
- border-radius: var(--theme-input-radius-default);
1283
- border: var(--theme-input-border-width-default) solid var(--theme-input-border-color);
1284
- background-color: var(--theme-input-surface);
1285
- padding: var(--theme-input-padding-y) var(--theme-input-padding-x);
1286
- min-height: var(--theme-input-height-medium);
1287
- transition: border-color 0.15s ease, background-color 0.15s ease;
1288
- box-sizing: border-box;
1289
- outline: none;
1290
- box-shadow: none;
1291
- }
1292
- .input-field[data-size=small] {
1293
- min-height: var(--theme-input-height-small);
1294
- }
1295
- .input-field[data-size=large] {
1296
- min-height: var(--theme-input-height-large);
1297
- }
1298
- .input-field[data-priority=secondary] {
1299
- border: none;
1300
- border-bottom: var(--theme-input-border-width-default) solid var(--theme-input-border-color);
1301
- border-radius: 0;
1302
- padding-inline: 0;
1303
- padding-block: var(--spacing-padding-4);
1304
- background-color: transparent;
1305
- }
1306
- .input-field[data-priority=secondary][data-state=active], .input-field[data-priority=secondary][data-state=focused] {
1307
- border-bottom-color: var(--theme-input-border-active);
1308
- border-bottom-width: var(--theme-input-border-width-emphasis);
1309
- }
1310
- .input-field[data-priority=secondary][data-state=success] {
1311
- border-bottom-color: var(--theme-input-border-success);
1312
- border-bottom-width: var(--theme-input-border-width-emphasis);
1313
- }
1314
- .input-field[data-priority=secondary][data-state=error] {
1315
- border-bottom-color: var(--theme-input-border-error);
1316
- border-bottom-width: var(--theme-input-border-width-emphasis);
1317
- }
1318
- .input-field[data-priority=secondary][data-state=disabled] {
1319
- border-bottom-color: var(--theme-input-border-underline-disabled);
1320
- border-bottom-width: var(--theme-input-border-width-default);
1321
- }
1322
- .input-field[data-priority=tertiary] {
1323
- border-radius: var(--theme-input-radius-tertiary);
1324
- background-color: var(--theme-input-surface);
1325
- min-height: var(--theme-input-height-tertiary);
1326
- row-gap: var(--spacing-gap-1);
1327
- column-gap: var(--theme-input-gap);
1328
- flex-wrap: wrap;
1329
- align-items: center;
1330
- }
1331
- .input-field[data-priority=tertiary] .input-field__control {
1332
- display: grid;
1333
- grid-template-columns: auto minmax(0, 1fr);
1334
- column-gap: var(--theme-input-gap);
1335
- row-gap: var(--spacing-gap-1);
1336
- align-items: center;
1337
- flex: 1 1 auto;
1338
- min-width: 0;
1339
- }
1340
- .input-field[data-priority=tertiary] .input-inline-label {
1341
- grid-column: 1/-1;
1342
- margin: 0;
1343
- align-self: flex-start;
1344
- }
1345
- .input-field[data-priority=tertiary] .input-element {
1346
- min-height: var(--theme-size-medium-2);
1347
- width: auto;
1348
- flex: 1 1 auto;
1349
- }
1350
- .input-field[data-priority=tertiary] .input-field__utilities {
1351
- align-self: center;
1352
- margin-left: 0;
1353
- }
1354
- .input-field:not([data-priority=secondary])[data-state=active], .input-field:not([data-priority=secondary])[data-state=focused] {
1355
- border-color: var(--theme-input-border-active);
1356
- border-width: var(--theme-input-border-width-emphasis);
1357
- }
1358
- .input-field:not([data-priority=secondary])[data-state=success] {
1359
- border-color: var(--theme-input-border-success);
1360
- border-width: var(--theme-input-border-width-emphasis);
1361
- }
1362
- .input-field:not([data-priority=secondary])[data-state=error] {
1363
- border-color: var(--theme-input-border-error);
1364
- border-width: var(--theme-input-border-width-emphasis);
1365
- }
1366
- .input-field:not([data-priority=secondary])[data-state=disabled] {
1367
- border-color: var(--theme-input-border-disabled);
1368
- border-width: var(--theme-input-border-width-default);
1369
- background-color: var(--theme-input-surface-disabled);
1370
- }
1371
- .input-field .input-element {
1372
- flex: 1 1 auto;
1373
- width: 100%;
1374
- border: none;
1375
- background: transparent;
1376
- color: var(--theme-input-text-color);
1377
- caret-color: var(--theme-input-text-color);
1378
- font-size: var(--font-body-medium-size);
1379
- line-height: var(--font-body-medium-line-height);
1380
- font-weight: var(--font-body-medium-weight);
1381
- outline: none;
1382
- box-shadow: none;
1383
- min-width: 0;
1384
- }
1385
- .input-field .input-element::placeholder {
1386
- color: var(--theme-input-placeholder-color);
1387
- }
1388
- .input-field .input-element:disabled {
1389
- color: var(--color-label-disabled);
1390
- }
1391
- .input-field .input-element:disabled::placeholder {
1392
- color: var(--color-label-disabled);
1393
- }
1394
- .input-field .input-element:focus, .input-field .input-element:focus-visible, .input-field .input-element:focus-within {
1395
- outline: none;
1396
- box-shadow: none;
1397
- }
1398
-
1399
- .input-field__control {
1400
- display: flex;
1401
- align-items: center;
1402
- gap: var(--theme-input-gap);
1403
- flex: 1 1 auto;
1404
- min-width: 0;
1405
- }
1406
-
1407
- .input-field__utilities {
1408
- display: flex;
1409
- align-items: center;
1410
- gap: var(--spacing-gap-2, 8px);
1411
- flex-shrink: 0;
1412
- margin-left: var(--spacing-gap-3, 12px);
1413
- }
1414
- .input-field__utilities .input-affix {
1415
- margin-left: 0;
1416
- }
1417
-
1418
- .input-inline-label {
1419
- order: -2;
1420
- flex-basis: 100%;
1421
- font-size: var(--font-label-small-size);
1422
- line-height: var(--font-label-small-line-height);
1423
- color: var(--theme-input-label-color);
1424
- }
1425
-
1426
- .input-field[data-priority=secondary] .input-element {
1427
- padding-inline: 0;
1428
- }
1429
-
1430
- .input-field[data-priority=tertiary] .input-element {
1431
- min-height: var(--theme-size-medium-2);
1432
- }
1433
-
1434
- .input-helper-text {
1435
- color: var(--theme-input-helper-color);
1436
- font-size: var(--font-label-small-size);
1437
- line-height: var(--font-label-small-line-height);
1438
- }
1439
- [data-state=error] .input-helper-text {
1440
- color: var(--theme-input-border-error);
1441
- }
1442
- [data-state=disabled] .input-helper-text {
1443
- color: var(--theme-input-helper-disabled-color);
1444
- }
1445
-
1446
- .input-affix {
1447
- display: flex;
1448
- align-items: center;
1449
- justify-content: center;
1450
- min-width: 20px;
1451
- color: var(--theme-input-helper-color);
1452
- }
1453
- .input-affix--left {
1454
- order: -1;
1455
- margin-right: var(--spacing-gap-3);
1456
- }
1457
- .input-affix--right, .input-affix--clear, .input-affix--status {
1458
- margin-left: var(--spacing-gap-3);
1459
- }
1460
- .input-affix--clear, .input-affix--status {
1461
- color: var(--theme-input-text-color);
1462
- }
1463
- .input-affix--status[data-state=error] {
1464
- color: var(--color-error);
1465
- }
1466
- .input-affix--status[data-state=success] {
1467
- color: var(--color-primary-default);
1468
- }
1469
-
1470
- .input-field[data-priority=secondary] {
1471
- border-bottom-width: var(--theme-input-border-width-default);
1472
- }
1473
- .input-field[data-priority=secondary][data-state=active], .input-field[data-priority=secondary][data-state=focused] {
1474
- border-bottom-color: var(--theme-input-border-active);
1475
- border-bottom-width: var(--theme-input-border-width-emphasis);
1476
- }
1477
- .input-field[data-priority=secondary][data-state=success] {
1478
- border-bottom-color: var(--theme-input-border-success);
1479
- border-bottom-width: var(--theme-input-border-width-emphasis);
1480
- }
1481
- .input-field[data-priority=secondary][data-state=error] {
1482
- border-bottom-color: var(--theme-input-border-error);
1483
- border-bottom-width: var(--theme-input-border-width-emphasis);
1484
- }
1485
- .input-field[data-priority=secondary][data-state=disabled] {
1486
- border-bottom-color: var(--theme-input-border-underline-disabled);
1487
- border-bottom-width: var(--theme-input-border-width-default);
1488
- }
1489
-
1490
- .input[data-state=active] .input-label,
1491
- .input[data-state=active] .input-inline-label,
1492
- .input[data-state=focused] .input-label,
1493
- .input[data-state=focused] .input-inline-label,
1494
- .input[data-state=success] .input-label,
1495
- .input[data-state=success] .input-inline-label {
1496
- color: var(--theme-input-label-accent-color);
1497
- }
1498
-
1499
- .input[data-state=error] .input-label,
1500
- .input[data-state=error] .input-inline-label {
1501
- color: var(--theme-input-label-error-color);
1502
- }
1503
- .input[data-state=error] .input-helper-text {
1504
- color: var(--theme-input-label-error-color);
1505
- }
1506
-
1507
- .input[data-state=disabled] .input-label,
1508
- .input[data-state=disabled] .input-inline-label,
1509
- .input[data-state=disabled] .input-helper-text,
1510
- .input[data-state=disabled] .input-affix {
1511
- color: var(--theme-input-helper-disabled-color);
1512
- }
1513
- .input[data-state=disabled] .input-field {
1514
- border-color: var(--theme-input-border-color);
1515
- background-color: var(--theme-input-surface-disabled);
1516
- }
1517
- .input[data-state=disabled] .input-field[data-priority=secondary] {
1518
- background-color: transparent;
1519
- }
1520
-
1521
- .input-password-toggle {
1522
- border: none;
1523
- background: transparent;
1524
- color: var(--theme-input-label-accent-color);
1525
- font-size: var(--font-label-small-size);
1526
- line-height: var(--font-label-small-line-height);
1527
- font-weight: var(--font-label-small-weight);
1528
- padding: 0;
1529
- cursor: pointer;
1530
- }
1531
- .input-password-toggle:disabled {
1532
- color: var(--theme-input-helper-disabled-color);
1533
- cursor: not-allowed;
1534
- }
1535
-
1536
- .input-search-icon {
1537
- font-size: var(--font-label-large-size);
1538
- line-height: 1;
1539
- }
1540
-
1541
- .one-time-code {
1542
- display: flex;
1543
- flex-direction: column;
1544
- gap: var(--spacing-gap-2);
1545
- }
1546
-
1547
- .one-time-code__label {
1548
- font-size: var(--font-label-small-size);
1549
- color: var(--theme-input-label-color);
1550
- }
1551
-
1552
- .one-time-code__fields {
1553
- display: flex;
1554
- gap: var(--spacing-gap-3);
1555
- }
1556
-
1557
- .one-time-code__input {
1558
- width: 44px;
1559
- height: 56px;
1560
- border-radius: var(--theme-input-radius-default);
1561
- border: var(--theme-input-border-width-default) solid var(--theme-input-border-color);
1562
- text-align: center;
1563
- font-size: var(--font-heading-medium-size);
1564
- font-weight: var(--font-heading-medium-weight);
1565
- color: var(--theme-input-text-color);
1566
- }
1567
- .one-time-code__input:focus {
1568
- outline: none;
1569
- border-color: var(--theme-input-border-active);
1570
- border-width: var(--theme-input-border-width-emphasis);
1571
- }
1572
-
1573
- .one-time-code__helper {
1574
- font-size: var(--font-label-small-size);
1575
- color: var(--theme-input-helper-color);
1576
- }
1577
-
1578
- .email-verification,
1579
- .phone-verification {
1580
- display: flex;
1581
- flex-direction: column;
1582
- gap: var(--spacing-gap-4);
1583
- }
1584
-
1585
- .auth-code-input__actions,
1586
- .email-verification__code-actions,
1587
- .phone-verification__code-actions {
1588
- display: flex;
1589
- align-items: center;
1590
- justify-content: flex-end;
1591
- gap: var(--spacing-gap-3);
1592
- min-width: 0;
1593
- }
1594
-
1595
- .auth-code-input__countdown,
1596
- .email-verification__countdown,
1597
- .phone-verification__countdown {
1598
- display: flex;
1599
- align-items: center;
1600
- font-weight: 500;
1601
- font-style: normal;
1602
- font-size: 13px;
1603
- line-height: 1em;
1604
- letter-spacing: -0.0025em;
1605
- color: var(--color-primary-default);
1606
- flex-shrink: 0;
1607
- }
1608
-
1609
- .button.input-utility-button {
1610
- min-height: 32px;
1611
- padding: var(--spacing-padding-2, 4px) var(--spacing-padding-6, 24px);
1612
- border-radius: var(--shape-rounded-1, 8px);
1613
- }
1614
- .button.input-utility-button .button-label {
1615
- font-size: var(--font-body-xxsmall-size);
1616
- line-height: var(--font-body-xxsmall-line-height);
1617
- letter-spacing: var(--font-body-xxsmall-letter-spacing);
1618
- font-weight: var(--font-body-xxsmall-weight);
1619
- }
1620
-
1621
- /* TODO(label): 스타일을 SOT 토큰 값으로 정의한다. */
1622
- .uds-theme-root {
1623
- --theme-navigation-height: 86px;
1624
- --theme-navigation-padding-inline: 32px;
1625
- --theme-navigation-padding-block-start: 8px;
1626
- --theme-navigation-padding-block-end: 20px;
1627
- --theme-navigation-item-gap: 2px;
1628
- --theme-navigation-icon-size: 24px;
1629
- --theme-navigation-label-font-size: 12px;
1630
- --theme-navigation-label-line-height: 1.4;
1631
- --theme-navigation-label-font-weight: 500;
1632
- --theme-navigation-label-letter-spacing: -0.12px;
1633
- --theme-navigation-bg: var(--color-common-100, #ffffff);
1634
- --theme-navigation-border: var(--color-border-standard-assistive, #e4e5e7);
1635
- --theme-navigation-shadow: 0 -4px 16px rgba(0, 0, 0, 0.04);
1636
- --theme-navigation-color: var(--color-label-strong, #3d3f43);
1637
- --theme-navigation-color-active: var(--color-primary-default, #0061ff);
1638
- --theme-navigation-color-disabled: var(--color-label-disabled, #c5c6cc);
1639
- }
1640
-
1641
- .bottom-navigation {
1642
- width: 100%;
1643
- position: relative;
1644
- z-index: 10;
1645
- background-color: var(--theme-navigation-bg);
1646
- border-top: 1px solid var(--theme-navigation-border);
1647
- box-shadow: var(--theme-navigation-shadow, 0 -4px 16px rgba(0, 0, 0, 0.04));
1648
- padding-inline: var(--theme-navigation-padding-inline);
1649
- padding-block-start: var(--theme-navigation-padding-block-start);
1650
- padding-block-end: max(var(--theme-navigation-padding-block-end), env(safe-area-inset-bottom, 0px));
1651
- min-height: var(--theme-navigation-height);
1652
- }
1653
-
1654
- .bottom-navigation[data-fixed=true] {
1655
- position: fixed;
1656
- inset-inline: 0;
1657
- bottom: 0;
1658
- z-index: 20;
1659
- }
1660
-
1661
- .bottom-navigation-list {
1662
- display: flex;
1663
- align-items: flex-start;
1664
- justify-content: space-between;
1665
- gap: 0;
1666
- padding: 0;
1667
- margin: 0;
1668
- list-style: none;
1669
- }
1670
-
1671
- .bottom-navigation-item {
1672
- flex: 1;
1673
- min-width: 0;
1674
- display: flex;
1675
- justify-content: center;
1676
- }
1677
-
1678
- .bottom-navigation-trigger {
1679
- display: inline-flex;
1680
- flex-direction: column;
1681
- align-items: center;
1682
- gap: var(--theme-navigation-item-gap);
1683
- min-width: 0;
1684
- padding: 0;
1685
- border: none;
1686
- background: none;
1687
- appearance: none;
1688
- text-decoration: none;
1689
- color: var(--theme-navigation-color);
1690
- font: inherit;
1691
- cursor: pointer;
1692
- -webkit-tap-highlight-color: transparent;
1693
- transition: color 0.16s ease;
1694
- }
1695
-
1696
- .bottom-navigation-trigger[data-active=true] {
1697
- color: var(--theme-navigation-color-active);
1698
- }
1699
-
1700
- .bottom-navigation-trigger[data-disabled=true],
1701
- .bottom-navigation-trigger:disabled {
1702
- color: var(--theme-navigation-color-disabled);
1703
- cursor: default;
1704
- pointer-events: none;
1705
- }
1706
-
1707
- .bottom-navigation-trigger:focus-visible {
1708
- outline: none;
1709
- border-radius: var(--theme-radius-large-1, 12px);
1710
- box-shadow: 0 0 0 2px var(--color-primary-focus, rgba(0, 97, 255, 0.2));
1711
- }
1712
-
1713
- .navigation-item-icon {
1714
- display: inline-flex;
1715
- align-items: center;
1716
- justify-content: center;
1717
- width: var(--theme-navigation-icon-size);
1718
- height: var(--theme-navigation-icon-size);
1719
- color: currentColor;
1720
- }
1721
- .navigation-item-icon svg {
1722
- display: block;
1723
- width: 100%;
1724
- height: 100%;
1725
- }
1726
- .navigation-item-icon {
1727
- /* SVG fill/stroke를 currentColor로 맞춰 selected 컬러만 제어한다. */
1728
- }
1729
- .navigation-item-icon svg [fill]:not([fill=none]) {
1730
- fill: currentColor;
1731
- }
1732
- .navigation-item-icon svg [stroke]:not([stroke=none]) {
1733
- stroke: currentColor;
1734
- }
1735
-
1736
- .navigation-item-label {
1737
- display: block;
1738
- font-size: var(--theme-navigation-label-font-size);
1739
- font-weight: var(--theme-navigation-label-font-weight);
1740
- line-height: var(--theme-navigation-label-line-height);
1741
- letter-spacing: var(--theme-navigation-label-letter-spacing);
1742
- color: currentColor;
1743
- text-align: center;
1744
- white-space: nowrap;
1745
- overflow: hidden;
1746
- text-overflow: ellipsis;
1747
- max-width: 100%;
1748
- }
1749
-
1750
- /* Pagination native 구현 스타일 */
1751
- .pagination {
1752
- --pagination-gap: var(--spacing-gap-2, 8px);
1753
- --pagination-number-height: var(--theme-size-small-2, 24px);
1754
- --pagination-number-min-width: var(--theme-size-small-2, 24px);
1755
- --pagination-number-radius: var(--theme-radius-medium-1, 6px);
1756
- --pagination-color-active-bg: var(--color-cool-gray-10, #18191b);
1757
- --pagination-color-active-label: var(--color-common-100, #ffffff);
1758
- --pagination-color-inactive-label: var(--color-label-alternative, #afb1b6);
1759
- --pagination-dot-size: 8px;
1760
- --pagination-dot-bg: var(--color-cool-gray-85, #d2d3d7);
1761
- --pagination-dot-active-bg: var(--color-primary-default, #0061ff);
1762
- --pagination-dot-active-bg-secondary: var(
1763
- --color-bg-surface-heavy,
1764
- #313235
1765
- );
1766
- --pagination-carousel-height: 8px;
1767
- --pagination-carousel-dot-width: 8px;
1768
- --pagination-carousel-active-width: 20px;
1769
- --pagination-count-bg: var(--color-cool-gray-10, #18191b);
1770
- --pagination-count-divider: var(--color-common-100, #ffffff);
1771
- --pagination-count-total: var(--color-label-alternative, #afb1b6);
1772
- display: inline-flex;
1773
- gap: var(--pagination-gap);
1774
- align-items: center;
1775
- padding: 0;
1776
- margin: 0;
1777
- list-style: none;
1778
- }
1779
-
1780
- .pagination[data-interactive=false] .pagination-button,
1781
- .pagination-button:disabled {
1782
- cursor: default;
1783
- }
1784
-
1785
- .pagination-item {
1786
- list-style: none;
1787
- }
1788
-
1789
- .pagination-button {
1790
- appearance: none;
1791
- border: none;
1792
- background: transparent;
1793
- padding: 0;
1794
- margin: 0;
1795
- display: inline-flex;
1796
- align-items: center;
1797
- justify-content: center;
1798
- cursor: pointer;
1799
- color: inherit;
1800
- font: inherit;
1801
- transition: background-color 0.16s ease, color 0.16s ease, opacity 0.16s ease;
1802
- }
1803
-
1804
- .pagination--variant-list {
1805
- gap: var(--spacing-gap-1, 4px);
1806
- }
1807
-
1808
- .pagination--variant-list .pagination-button {
1809
- min-width: var(--pagination-number-min-width);
1810
- height: var(--pagination-number-height);
1811
- padding-inline: var(--spacing-padding-2, 8px);
1812
- border-radius: var(--pagination-number-radius);
1813
- background-color: transparent;
1814
- color: var(--pagination-color-inactive-label);
1815
- font-size: var(--font-label-medium-size, 12px);
1816
- font-weight: var(--font-label-medium-weight, 400);
1817
- line-height: var(--font-label-medium-line-height, 1.5);
1818
- }
1819
-
1820
- .pagination[data-interactive=true] .pagination--variant-list .pagination-button:not([data-active=true]):hover {
1821
- background-color: var(--color-bg-alternative-cool-gray, #f0f1f5);
1822
- color: var(--color-label-strong, #5b5c60);
1823
- }
1824
-
1825
- .pagination--variant-list .pagination-button[data-active=true] {
1826
- background-color: var(--pagination-color-active-bg);
1827
- color: var(--pagination-color-active-label);
1828
- }
1829
-
1830
- .pagination-number {
1831
- min-width: 1ch;
1832
- text-align: center;
1833
- }
1834
-
1835
- .pagination--variant-carousel {
1836
- gap: 5px;
1837
- min-height: var(--pagination-carousel-height);
1838
- align-items: center;
1839
- }
1840
-
1841
- .pagination--variant-carousel[data-priority=secondary] {
1842
- --pagination-dot-active-bg: var(
1843
- --pagination-dot-active-bg-secondary,
1844
- var(--color-secondary-strong, #ccdeff)
1845
- );
1846
- }
1847
-
1848
- .pagination--variant-carousel .pagination-button {
1849
- width: auto;
1850
- height: var(--pagination-carousel-height);
1851
- padding: 0;
1852
- }
1853
-
1854
- .pagination--variant-carousel .pagination-dot {
1855
- display: inline-flex;
1856
- width: var(--pagination-carousel-dot-width);
1857
- height: var(--pagination-carousel-height);
1858
- border-radius: calc(var(--pagination-carousel-height) / 2);
1859
- background-color: var(--pagination-dot-bg);
1860
- transition: width 0.16s ease, background-color 0.16s ease;
1861
- }
1862
-
1863
- .pagination--variant-carousel .pagination-button[data-active=true] .pagination-dot {
1864
- width: var(--pagination-carousel-active-width);
1865
- background-color: var(--pagination-dot-active-bg);
1866
- }
1867
-
1868
- .pagination--variant-count {
1869
- gap: 0;
1870
- }
1871
-
1872
- .pagination--variant-count .pagination-button {
1873
- border-radius: var(--theme-radius-large-2, 16px);
1874
- padding-inline: var(--spacing-padding-4, 16px);
1875
- background-color: var(--pagination-count-bg);
1876
- color: var(--pagination-color-active-label);
1877
- font-weight: var(--font-label-medium-weight, 400);
1878
- line-height: 1.5;
1879
- }
1880
-
1881
- .pagination--variant-count.pagination--count-size-small .pagination-button {
1882
- height: var(--theme-size-small-2, 24px);
1883
- font-size: var(--font-label-medium-size, 12px);
1884
- }
1885
-
1886
- .pagination--variant-count.pagination--count-size-xsmall .pagination-button {
1887
- height: var(--theme-size-small-1, 20px);
1888
- font-size: var(--font-label-small-size, 11px);
1889
- }
1890
-
1891
- .pagination-count-current {
1892
- color: var(--pagination-color-active-label);
1893
- }
1894
-
1895
- .pagination-count-divider {
1896
- margin-inline: var(--spacing-gap-1, 4px);
1897
- color: var(--pagination-count-divider);
1898
- }
1899
-
1900
- .pagination-count-total {
1901
- color: var(--pagination-count-total);
1902
- }
1903
-
1904
- .uds-theme-root {
1905
- --theme-radio-frame-size-medium: 20px;
1906
- --theme-radio-frame-size-large: 24px;
1907
- --theme-radio-indicator-size-medium: 16px;
1908
- --theme-radio-indicator-size-large: 20px;
1909
- --theme-radio-indicator-border-width: 1.4px;
1910
- --theme-radio-indicator-border-width-selected-medium: 4px;
1911
- --theme-radio-indicator-border-width-selected-large: 6px;
1912
- --theme-radio-border-color: var(--color-border-standard-assistive);
1913
- --theme-radio-border-selected: var(--color-primary-default);
1914
- --theme-radio-surface-selected: var(--color-primary-default);
1915
- --theme-radio-surface-disabled: var(--color-border-standard-assistive);
1916
- --theme-radio-border-disabled: var(--color-border-standard-assistive);
1917
- --theme-radio-disabled-selected-fill: var(--color-primary-default);
1918
- --theme-radio-label-color: var(--color-label-strong);
1919
- --theme-radio-label-disabled: var(--color-label-disabled);
1920
- --theme-radio-helper-color: var(--color-label-neutral);
1921
- --theme-radio-helper-disabled: var(--color-label-disabled);
1922
- --theme-radio-card-background: var(--color-common-100);
1923
- --theme-radio-card-title-color: var(--color-label-strong);
1924
- --theme-radio-card-description-color: var(--color-label-neutral);
1925
- --theme-radio-card-badge-background: var(--color-bg-surface-static-blue);
1926
- --theme-radio-card-badge-color: var(--color-primary-default);
1927
- --theme-radio-focus-ring: rgba(2, 84, 255, 0.32);
1928
- --theme-radio-disabled-selected-opacity: 0.28;
1929
- }
1930
-
1931
- .radio {
1932
- display: inline-flex;
1933
- align-items: center;
1934
- justify-content: center;
1935
- inline-size: var(--theme-radio-frame-size-medium);
1936
- block-size: var(--theme-radio-frame-size-medium);
1937
- border: none;
1938
- background-color: transparent;
1939
- border-radius: 0;
1940
- padding: 0;
1941
- cursor: pointer;
1942
- transition: box-shadow 0.15s ease, transform 0.15s ease;
1943
- }
1944
- .radio[data-size=large] {
1945
- inline-size: var(--theme-radio-frame-size-large);
1946
- block-size: var(--theme-radio-frame-size-large);
1947
- }
1948
- .radio[data-disabled=true] {
1949
- cursor: not-allowed;
1950
- opacity: 0.6;
1951
- }
1952
-
1953
- .radio:focus-visible {
1954
- box-shadow: 0 0 0 2px var(--theme-radio-focus-ring);
1955
- }
1956
-
1957
- .radio-indicator {
1958
- inline-size: var(--theme-radio-indicator-size-medium);
1959
- block-size: var(--theme-radio-indicator-size-medium);
1960
- border-radius: 9999px;
1961
- border: var(--theme-radio-indicator-border-width) solid var(--theme-radio-border-color);
1962
- transition: border-color 0.15s ease;
1963
- }
1964
-
1965
- .radio[data-state=checked] .radio-indicator,
1966
- .radio[data-size=medium][data-state=checked] .radio-indicator {
1967
- border-width: var(--theme-radio-indicator-border-width-selected-medium);
1968
- }
1969
-
1970
- .radio[data-size=large] .radio-indicator {
1971
- inline-size: var(--theme-radio-indicator-size-large);
1972
- block-size: var(--theme-radio-indicator-size-large);
1973
- }
1974
- .radio[data-size=large][data-state=checked] .radio-indicator {
1975
- border-width: var(--theme-radio-indicator-border-width-selected-large);
1976
- }
1977
-
1978
- .radio[data-state=checked] .radio-indicator {
1979
- border-color: var(--theme-radio-border-selected);
1980
- }
1981
-
1982
- .radio[data-disabled=true] .radio-indicator {
1983
- border-color: var(--theme-radio-border-disabled);
1984
- background-color: var(--theme-radio-surface-disabled);
1985
- opacity: 1;
1986
- }
1987
-
1988
- .radio[data-disabled=true][data-state=checked] .radio-indicator {
1989
- border-color: var(--theme-radio-disabled-selected-fill);
1990
- opacity: var(--theme-radio-disabled-selected-opacity);
1991
- }
1992
-
1993
- .radio-field {
1994
- display: flex;
1995
- flex-direction: column;
1996
- gap: var(--spacing-gap-1);
1997
- color: var(--theme-radio-label-color);
1998
- }
1999
-
2000
- .radio-field[data-disabled=true] {
2001
- color: var(--theme-radio-label-disabled);
2002
- }
2003
-
2004
- .radio-label-wrapper {
2005
- display: inline-flex;
2006
- align-items: center;
2007
- gap: var(--spacing-gap-2);
2008
- cursor: pointer;
2009
- }
2010
-
2011
- .radio-label-wrapper[data-disabled=true] {
2012
- cursor: not-allowed;
2013
- }
2014
-
2015
- .radio-label-text {
2016
- font-weight: var(--font-body-medium-weight);
2017
- user-select: none;
2018
- }
2019
-
2020
- .radio-field[data-size=medium] .radio-label-text {
2021
- font-size: var(--font-body-xsmall-size);
2022
- line-height: var(--font-body-xsmall-line-height);
2023
- }
2024
-
2025
- .radio-field[data-size=large] .radio-label-text {
2026
- font-size: var(--font-body-medium-size);
2027
- line-height: var(--font-body-medium-line-height);
2028
- }
2029
-
2030
- .radio-helper {
2031
- margin: 0;
2032
- font-size: var(--font-caption-large-size);
2033
- line-height: var(--font-caption-large-line-height);
2034
- color: var(--theme-radio-helper-color);
2035
- user-select: none;
2036
- }
2037
-
2038
- .radio-field[data-disabled=true] .radio-helper {
2039
- color: var(--theme-radio-helper-disabled);
2040
- }
2041
-
2042
- .radio-card-group {
2043
- display: flex;
2044
- flex-direction: column;
2045
- gap: var(--spacing-gap-3);
2046
- }
2047
-
2048
- .radio-card {
2049
- display: flex;
2050
- align-items: center;
2051
- justify-content: space-between;
2052
- inline-size: 100%;
2053
- gap: var(--spacing-gap-3);
2054
- padding: 16px 24px;
2055
- background-color: var(--theme-radio-card-background);
2056
- transition: background-color 0.15s ease;
2057
- cursor: pointer;
2058
- }
2059
- .radio-card[data-disabled=true] {
2060
- cursor: not-allowed;
2061
- opacity: 0.7;
2062
- }
2063
-
2064
- .radio-card-content {
2065
- display: flex;
2066
- flex-direction: column;
2067
- gap: var(--spacing-gap-1);
2068
- min-inline-size: 0;
2069
- }
2070
-
2071
- .radio-card-title-row {
2072
- display: inline-flex;
2073
- align-items: center;
2074
- gap: var(--spacing-gap-1);
2075
- min-inline-size: 0;
2076
- }
2077
-
2078
- .radio-card-title {
2079
- font-size: var(--font-heading-small-size);
2080
- line-height: var(--font-heading-small-line-height);
2081
- font-weight: var(--font-heading-small-weight);
2082
- letter-spacing: 0.2px;
2083
- color: var(--theme-radio-card-title-color);
2084
- white-space: nowrap;
2085
- }
2086
-
2087
- .radio-card-badge {
2088
- display: none;
2089
- align-items: center;
2090
- justify-content: center;
2091
- padding: 4px 6px;
2092
- font-size: var(--font-caption-medium-size);
2093
- line-height: var(--font-caption-medium-line-height);
2094
- border-radius: 6px;
2095
- background-color: var(--theme-radio-card-badge-background);
2096
- color: var(--theme-radio-card-badge-color);
2097
- }
2098
-
2099
- .radio-card[data-state=checked] .radio-card-title {
2100
- color: var(--theme-radio-card-badge-color);
2101
- }
2102
- .radio-card[data-state=checked] .radio-card-badge {
2103
- display: inline-flex;
2104
- }
2105
-
2106
- .radio-card-description {
2107
- margin: 0;
2108
- font-size: var(--font-body-small-size);
2109
- line-height: var(--font-body-small-line-height);
2110
- color: var(--theme-radio-card-description-color);
2111
- }
2112
-
2113
- .radio-card-indicator-wrapper {
2114
- display: inline-flex;
2115
- align-items: center;
2116
- justify-content: center;
2117
- flex-shrink: 0;
2118
- }
2119
-
2120
- .radio-card-indicator {
2121
- inline-size: var(--theme-radio-indicator-size-medium);
2122
- block-size: var(--theme-radio-indicator-size-medium);
2123
- border-radius: 9999px;
2124
- border: var(--theme-radio-indicator-border-width) solid var(--theme-radio-border-color);
2125
- transition: border-color 0.15s ease;
2126
- }
2127
-
2128
- .radio-card[data-size=large] .radio-card-indicator {
2129
- inline-size: var(--theme-radio-indicator-size-large);
2130
- block-size: var(--theme-radio-indicator-size-large);
2131
- }
2132
-
2133
- .radio-card[data-state=checked] .radio-card-indicator {
2134
- border-color: var(--theme-radio-border-selected);
2135
- border-width: var(--theme-radio-indicator-border-width-selected-medium);
2136
- }
2137
-
2138
- .radio-card[data-size=large][data-state=checked] .radio-card-indicator {
2139
- border-width: var(--theme-radio-indicator-border-width-selected-large);
2140
- }
2141
-
2142
- /* TODO(scrollbar): 스타일을 SOT 토큰 값으로 정의한다. */
2143
- .segmented-control {
2144
- --segmented-height: 34px;
2145
- --segmented-padding: 2px;
2146
- --segmented-radius: 16px;
2147
- --segmented-bg: var(--color-bg-alternative-cool-gray, #f2f2f3);
2148
- --segmented-indicator-bg: var(--color-common-100, #ffffff);
2149
- --segmented-indicator-shadow: 2px 2px 4px rgba(0, 0, 0, 0.02);
2150
- --segmented-label-color: var(--color-label-neutral, #797e86);
2151
- --segmented-label-active-color: var(--color-label-strong, #181a1b);
2152
- --segmented-disabled-opacity: 0.4;
2153
- --segmented-gap: 2px;
2154
- --segmented-item-padding-x: 22px;
2155
- --segmented-item-padding-y: 4px;
2156
- --segmented-item-font-size: var(--font-heading-xxsmall-size, 15px);
2157
- --segmented-item-font-weight: var(--font-heading-xxsmall-weight, 500);
2158
- --segmented-item-line-height: var(--font-heading-xxsmall-line-height, 1.5);
2159
- position: relative;
2160
- display: block;
2161
- box-sizing: border-box;
2162
- padding: var(--segmented-padding);
2163
- border-radius: var(--segmented-radius);
2164
- background: var(--segmented-bg);
2165
- width: fit-content;
2166
- min-height: var(--segmented-height);
2167
- isolation: isolate;
2168
- overflow: hidden;
2169
- }
2170
-
2171
- .segmented-control:where([data-keep-selected=true]) {
2172
- --segmented-disabled-opacity: 0.3;
2173
- }
2174
-
2175
- .segmented-control-indicator {
2176
- position: absolute;
2177
- top: var(--segmented-padding);
2178
- bottom: var(--segmented-padding);
2179
- left: 0;
2180
- width: 0px;
2181
- height: calc(100% - var(--segmented-padding) * 2);
2182
- margin: 0;
2183
- border-radius: calc(var(--segmented-radius) - var(--segmented-padding));
2184
- background: var(--segmented-indicator-bg);
2185
- box-shadow: var(--segmented-indicator-shadow);
2186
- transition: transform 0.2s ease, width 0.2s ease, opacity 0.2s ease;
2187
- pointer-events: none;
2188
- z-index: 0;
2189
- }
2190
-
2191
- .segmented-control-indicator[data-visible=false] {
2192
- opacity: 0;
2193
- }
2194
-
2195
- .segmented-control-list {
2196
- display: flex;
2197
- column-gap: var(--segmented-gap);
2198
- row-gap: 0;
2199
- margin: 0;
2200
- padding: 0;
2201
- list-style: none;
2202
- position: relative;
2203
- z-index: 1;
2204
- }
2205
-
2206
- .segmented-control-item {
2207
- list-style: none;
2208
- margin: 0;
2209
- padding: 0;
2210
- }
2211
-
2212
- .segmented-control-button {
2213
- position: relative;
2214
- z-index: 1;
2215
- display: flex;
2216
- align-items: center;
2217
- justify-content: center;
2218
- width: 100%;
2219
- border: none;
2220
- background: transparent;
2221
- cursor: pointer;
2222
- min-width: 0;
2223
- border-radius: calc(var(--segmented-radius) - var(--segmented-padding));
2224
- padding: var(--segmented-item-padding-y) var(--segmented-item-padding-x);
2225
- transition: color 0.2s ease;
2226
- }
2227
-
2228
- .segmented-control-button:where([data-disabled=true]) {
2229
- cursor: not-allowed;
2230
- opacity: var(--segmented-disabled-opacity);
2231
- }
2232
-
2233
- .segmented-control-button:where(:focus-visible) {
2234
- outline: 2px solid var(--color-focus-ring, var(--color-primary-default));
2235
- outline-offset: 2px;
2236
- }
2237
-
2238
- .segmented-control-button-label {
2239
- display: flex;
2240
- align-items: center;
2241
- justify-content: center;
2242
- font-size: var(--segmented-item-font-size);
2243
- font-weight: var(--segmented-item-font-weight);
2244
- line-height: var(--segmented-item-line-height);
2245
- letter-spacing: 0.2px;
2246
- color: var(--segmented-label-color);
2247
- transition: color 0.2s ease;
2248
- }
2249
-
2250
- .segmented-control-button:where([data-state=on]) .segmented-control-button-label {
2251
- color: var(--segmented-label-active-color);
2252
- }
2253
-
2254
- /* TODO(select): 스타일을 SOT 토큰 값으로 정의한다. */
2255
- /* TODO(spinner): 스타일을 SOT 토큰 값으로 정의한다. */
2256
- .tab-root {
2257
- /* Figma node 694:4619 측정값을 CSS 변수로 고정해 Storybook과 실 서비스 간 시각 편차를 줄인다. */
2258
- --tab-label-font-size: var(--font-heading-xsmall-size, 17px);
2259
- --tab-label-font-weight: var(--font-heading-xsmall-weight, 600);
2260
- --tab-label-line-height: 1.4;
2261
- --tab-label-letter-spacing: 0px;
2262
- --tab-gap: var(--spacing-gap-2, 8px);
2263
- --tab-padding-y: 10px;
2264
- --tab-padding-x: var(--spacing-padding-8, 24px);
2265
- --tab-icon-gap: 6px;
2266
- --tab-line-track-color: var(--color-border-divider, #f2f2f3);
2267
- --tab-line-track-height: 1px;
2268
- --tab-line-indicator-height: 2px;
2269
- --tab-color-active-default: #1a6aff;
2270
- --tab-color-active: var(--tab-color-active-default);
2271
- --tab-color-hover: color-mix(in srgb, var(--tab-color-active), #000 15%);
2272
- --tab-line-hover-color: var(--tab-color-hover, var(--tab-color-active));
2273
- --tab-fill-hover-bg: var(--color-bg-alternative-cool-gray, #f2f2f3);
2274
- --tab-fill-active-color: var(--color-common-100, #ffffff);
2275
- --tab-inactive-color: var(--color-label-alternative, #afb1b6);
2276
- --tab-disabled-opacity: 0.4;
2277
- --tab-height: 48px;
2278
- width: 100%;
2279
- display: flex;
2280
- flex-direction: column;
2281
- gap: var(--spacing-gap-3);
2282
- }
2283
-
2284
- .tab-root:where([data-scale=small]) {
2285
- --tab-label-font-size: var(--font-heading-xxsmall-size, 15px);
2286
- --tab-label-font-weight: var(--font-heading-xxsmall-weight, 600);
2287
- --tab-height: 40px;
2288
- --tab-padding-x: var(--spacing-padding-4, 8px);
2289
- }
2290
-
2291
- .tab-root:where([data-scale=medium]) {
2292
- --tab-label-font-size: var(--font-heading-xsmall-size, 17px);
2293
- --tab-label-font-weight: var(--font-heading-xsmall-weight, 600);
2294
- --tab-height: 48px;
2295
- }
2296
-
2297
- .tab-root:where([data-scale=large]) {
2298
- --tab-label-font-size: var(--font-heading-small-size, 19px);
2299
- --tab-label-font-weight: var(--font-heading-small-weight, 600);
2300
- --tab-height: 56px;
2301
- --tab-padding-x: var(--spacing-padding-8, 24px);
2302
- }
2303
-
2304
- .tab-list {
2305
- display: flex;
2306
- align-items: stretch;
2307
- gap: var(--tab-gap);
2308
- width: fit-content;
2309
- overflow-x: auto;
2310
- scrollbar-width: none;
2311
- }
2312
-
2313
- .tab-list::-webkit-scrollbar {
2314
- display: none;
2315
- }
2316
-
2317
- .tab-list:where([data-full-width=true]) {
2318
- width: 100%;
2319
- }
2320
-
2321
- .tab-trigger {
2322
- position: relative;
2323
- display: flex;
2324
- align-items: center;
2325
- justify-content: center;
2326
- gap: var(--tab-icon-gap);
2327
- min-height: var(--tab-height);
2328
- padding: var(--tab-padding-y) var(--tab-padding-x);
2329
- background: transparent;
2330
- border: none;
2331
- cursor: pointer;
2332
- transition: background-color 0.2s ease;
2333
- }
2334
-
2335
- .tab-trigger:where(:focus-visible) {
2336
- outline: 2px solid var(--color-focus-ring, var(--color-primary-default));
2337
- outline-offset: 2px;
2338
- }
2339
-
2340
- .tab-trigger:where([data-disabled=true]) {
2341
- cursor: not-allowed;
2342
- opacity: var(--tab-disabled-opacity);
2343
- }
2344
-
2345
- .tab-trigger-icon {
2346
- display: flex;
2347
- align-items: center;
2348
- justify-content: center;
2349
- }
2350
-
2351
- .tab-trigger-label {
2352
- display: flex;
2353
- align-items: center;
2354
- justify-content: center;
2355
- font-size: var(--tab-label-font-size);
2356
- font-weight: var(--tab-label-font-weight);
2357
- line-height: var(--tab-label-line-height);
2358
- letter-spacing: var(--tab-label-letter-spacing);
2359
- color: var(--tab-inactive-color);
2360
- transition: color 0.2s ease;
2361
- }
2362
-
2363
- .tab-list:where([data-variant=line]) {
2364
- position: relative;
2365
- width: 100%;
2366
- }
2367
-
2368
- .tab-list:where([data-variant=line])::before {
2369
- content: "";
2370
- position: absolute;
2371
- inset: auto 0 0;
2372
- height: var(--tab-line-track-height, 1px);
2373
- background: var(--tab-line-track-color);
2374
- z-index: 0;
2375
- }
2376
-
2377
- .tab-list:where([data-variant=line][data-full-width=true]) > .tab-trigger {
2378
- flex: 1;
2379
- }
2380
-
2381
- .tab-trigger:where([data-variant=line])::after {
2382
- content: "";
2383
- position: absolute;
2384
- left: 0;
2385
- right: 0;
2386
- bottom: -1px;
2387
- height: var(--tab-line-indicator-height, 2px);
2388
- background: transparent;
2389
- transform: scaleX(0);
2390
- transform-origin: center;
2391
- z-index: 1;
2392
- transition: transform 0.2s ease, background-color 0.2s ease;
2393
- }
2394
-
2395
- .tab-trigger:where([data-variant=line][data-state=active]) .tab-trigger-label {
2396
- color: var(--tab-color-active);
2397
- }
2398
-
2399
- .tab-trigger:where([data-variant=line][data-state=active])::after {
2400
- background: var(--tab-color-active);
2401
- transform: scaleX(1);
2402
- }
2403
-
2404
- .tab-trigger:where([data-variant=line]):where(:not([data-state=active])):hover .tab-trigger-label {
2405
- color: var(--tab-line-hover-color);
2406
- }
2407
-
2408
- .tab-list:where([data-variant=fill]) {
2409
- width: fit-content;
2410
- border: none;
2411
- background: transparent;
2412
- border-radius: 0;
2413
- gap: 0;
2414
- }
2415
-
2416
- .tab-list:where([data-variant=fill][data-full-width=true]) {
2417
- width: 100%;
2418
- }
2419
-
2420
- .tab-list:where([data-variant=fill][data-full-width=true]) > .tab-trigger {
2421
- flex: 1;
2422
- }
2423
-
2424
- .tab-trigger:where([data-variant=fill]) {
2425
- border-radius: 12px;
2426
- min-width: 0;
2427
- }
2428
-
2429
- .tab-trigger:where([data-variant=fill][data-state=active]) {
2430
- background: var(--tab-color-active);
2431
- }
2432
-
2433
- .tab-trigger:where([data-variant=fill][data-state=active]) .tab-trigger-label {
2434
- color: var(--tab-fill-active-color);
2435
- }
2436
-
2437
- .tab-trigger:where([data-variant=fill]):where(:not([data-state=active])):hover {
2438
- background: var(--tab-fill-hover-bg);
2439
- }
2440
-
2441
- .tab-content {
2442
- display: block;
2443
- padding: var(--spacing-padding-6) 0;
2444
- }
2445
-
2446
- /* TODO(table): 스타일을 SOT 토큰 값으로 정의한다. */
2447
- :root {
2448
- --divider-width: 1px;
2449
- --divider-height: 12px;
2450
- --divider-color: var(--color-border-standard-cool-gray, #e4e5e7);
2451
- --divider-margin: var(--spacing-gap-4, 8px);
2452
- }
2453
-
2454
- .divider {
2455
- width: var(--divider-width);
2456
- height: var(--divider-height);
2457
- background-color: var(--divider-color);
2458
- margin: 0 var(--divider-margin);
2459
- vertical-align: middle;
2460
- align-self: center;
2461
- font-size: 0;
2462
- }
2463
-
2464
3
  /* 템플릿 레벨 스타일을 통합해 서비스 앱이 단일 엔트리만 import하도록 구성한다. */
2465
4
  :root {
2466
5
  --frame-device-height: 812px;
@@ -2527,703 +66,7 @@ figure.chip {
2527
66
  width: 100%;
2528
67
  }
2529
68
 
2530
- @layer foundation.reset {
2531
- :root {
2532
- -webkit-tap-highlight-color: transparent;
2533
- text-size-adjust: none;
2534
- overflow-wrap: break-word;
2535
- word-break: break-word;
2536
- }
2537
- *,
2538
- *::before,
2539
- *::after {
2540
- margin: 0;
2541
- padding: 0;
2542
- border: 0;
2543
- box-sizing: border-box;
2544
- }
2545
- * {
2546
- letter-spacing: -0.05em;
2547
- flex-shrink: 0;
2548
- overscroll-behavior-y: none;
2549
- font-family: var(--font-family-sans, "Pretendard JP Variable", "Pretendard JP", "Pretendard Variable", "Pretendard", "Inter", sans-serif);
2550
- }
2551
- *:focus,
2552
- *:focus-within,
2553
- *:focus-visible {
2554
- outline: none;
2555
- }
2556
- html,
2557
- .uds-theme-root {
2558
- width: 100%;
2559
- font-size: 10px;
2560
- font-family: var(--font-family-sans);
2561
- background-color: #fff;
2562
- touch-action: manipulation;
2563
- }
2564
- body,
2565
- .uds-theme-root {
2566
- width: 100%;
2567
- position: relative;
2568
- background: none;
2569
- }
2570
- h1,
2571
- h2,
2572
- h3,
2573
- h4,
2574
- h5,
2575
- h6 {
2576
- margin: 0;
2577
- padding: 0;
2578
- font-weight: 500;
2579
- line-height: 1em;
2580
- }
2581
- strong,
2582
- b {
2583
- font-weight: 700;
2584
- line-height: 1em;
2585
- }
2586
- p,
2587
- span,
2588
- i,
2589
- sup,
2590
- sub,
2591
- del,
2592
- ins,
2593
- s {
2594
- margin: 0;
2595
- padding: 0;
2596
- line-height: 1em;
2597
- word-break: keep-all;
2598
- }
2599
- i,
2600
- address,
2601
- cite,
2602
- em,
2603
- q {
2604
- font-weight: 400;
2605
- font-style: normal;
2606
- }
2607
- blockquote,
2608
- abbr,
2609
- dfn {
2610
- font-weight: 400;
2611
- }
2612
- pre,
2613
- code,
2614
- samp,
2615
- kbd,
2616
- var {
2617
- font-family: "Consolas", "Monaco", "Menlo", "DejaVu Sans Mono", SFMono-Regular, "Liberation Mono", "Courier New", monospace;
2618
- }
2619
- blockquote,
2620
- q {
2621
- quotes: none;
2622
- }
2623
- blockquote::before,
2624
- blockquote::after,
2625
- q::before,
2626
- q::after {
2627
- content: "";
2628
- }
2629
- img,
2630
- svg {
2631
- max-width: 100%;
2632
- object-fit: contain;
2633
- perspective: 1;
2634
- }
2635
- li,
2636
- dt,
2637
- dd {
2638
- list-style: none;
2639
- }
2640
- table {
2641
- width: 100%;
2642
- border-collapse: collapse;
2643
- border-spacing: 0;
2644
- table-layout: fixed;
2645
- }
2646
- label {
2647
- display: block;
2648
- }
2649
- legend,
2650
- caption {
2651
- display: none;
2652
- }
2653
- article,
2654
- aside,
2655
- footer,
2656
- header,
2657
- main,
2658
- nav,
2659
- section,
2660
- time,
2661
- audio,
2662
- canvas,
2663
- figure,
2664
- figcaption,
2665
- video,
2666
- meter,
2667
- progress,
2668
- details,
2669
- summary {
2670
- display: block;
2671
- }
2672
- figure {
2673
- position: relative;
2674
- width: fit-content;
2675
- height: fit-content;
2676
- font-size: 0;
2677
- }
2678
- a {
2679
- display: block;
2680
- color: #333;
2681
- text-decoration: none;
2682
- cursor: pointer;
2683
- }
2684
- input,
2685
- select,
2686
- button,
2687
- textarea {
2688
- display: block;
2689
- max-width: 100%;
2690
- background: transparent;
2691
- border-radius: 0;
2692
- box-shadow: none;
2693
- outline: none;
2694
- caret-color: transparent;
2695
- appearance: none;
2696
- }
2697
- button {
2698
- cursor: pointer;
2699
- font-family: inherit;
2700
- user-select: none;
2701
- }
2702
- textarea {
2703
- resize: none;
2704
- }
2705
- select {
2706
- user-select: none;
2707
- }
2708
- select::-ms-expand {
2709
- opacity: 0;
2710
- }
2711
- input::placeholder,
2712
- textarea::placeholder {
2713
- opacity: 1;
2714
- color: #959595;
2715
- }
2716
- input:focus::placeholder,
2717
- textarea:focus::placeholder {
2718
- color: transparent;
2719
- }
2720
- [type=button],
2721
- [type=reset],
2722
- [type=submit] {
2723
- appearance: button;
2724
- }
2725
- [type=search] {
2726
- appearance: textfield;
2727
- outline-offset: -2px;
2728
- }
2729
- :-webkit-inner-spin-button,
2730
- ::-webkit-outer-spin-button {
2731
- height: auto;
2732
- }
2733
- ::-webkit-search-decoration,
2734
- ::-webkit-search-cancel-button {
2735
- appearance: none;
2736
- }
2737
- ::-webkit-file-upload-button {
2738
- appearance: button;
2739
- }
2740
- input[type=date],
2741
- input[type=number] {
2742
- appearance: none;
2743
- }
2744
- input[type=date]::-webkit-inner-spin-button,
2745
- input[type=number]::-webkit-inner-spin-button {
2746
- display: none;
2747
- }
2748
- input[type=date]::-webkit-calendar-picker-indicator,
2749
- input[type=number]::-webkit-calendar-picker-indicator {
2750
- opacity: 0;
2751
- }
2752
- input[type=date]::-webkit-clear-button,
2753
- input[type=number]::-webkit-clear-button {
2754
- display: none;
2755
- }
2756
- input[type=date]::-ms-clear,
2757
- input[type=number]::-ms-clear {
2758
- display: none;
2759
- }
2760
- input[type=range]::-webkit-slider-thumb {
2761
- appearance: none;
2762
- }
2763
- input[type=checkbox] {
2764
- appearance: checkbox;
2765
- }
2766
- button:disabled {
2767
- cursor: default;
2768
- }
2769
- progress {
2770
- appearance: none;
2771
- border: 1px solid #e1e1e1;
2772
- }
2773
- progress::-webkit-progress-bar {
2774
- background-color: #fff;
2775
- }
2776
- progress::-webkit-progress-value {
2777
- background-color: grey;
2778
- }
2779
- @media (orientation: landscape) {
2780
- html.mobile-device {
2781
- font-size: 1vw;
2782
- }
2783
- }
2784
- @media (orientation: portrait) {
2785
- html.mobile-device {
2786
- font-size: 1vw;
2787
- }
2788
- }
2789
- html,
2790
- body {
2791
- width: 100%;
2792
- height: 100%;
2793
- position: fixed;
2794
- top: 0;
2795
- left: 0;
2796
- overflow: auto;
2797
- z-index: 0;
2798
- }
2799
- }
2800
- @layer foundation.color {
2801
- :root {
2802
- --color-common-100: #fff;
2803
- --color-common-0: #000;
2804
- --color-neutral-10: #1a1a1a;
2805
- --color-neutral-20: #333333;
2806
- --color-neutral-30: #4d4d4d;
2807
- --color-neutral-40: #666666;
2808
- --color-neutral-45: #737373;
2809
- --color-neutral-50: #808080;
2810
- --color-neutral-55: #8c8c8c;
2811
- --color-neutral-60: #999999;
2812
- --color-neutral-70: #b3b3b3;
2813
- --color-neutral-80: #cccccc;
2814
- --color-neutral-90: #e6e6e6;
2815
- --color-neutral-95: #f2f2f2;
2816
- --color-neutral-99: #fcfcfc;
2817
- --color-cool-gray-10: #18191b;
2818
- --color-cool-gray-20: #313235;
2819
- --color-cool-gray-25: #3d3f43;
2820
- --color-cool-gray-30: #494b50;
2821
- --color-cool-gray-35: #55585e;
2822
- --color-cool-gray-40: #61656b;
2823
- --color-cool-gray-45: #6d7178;
2824
- --color-cool-gray-50: #797e86;
2825
- --color-cool-gray-55: #878b92;
2826
- --color-cool-gray-60: #94989e;
2827
- --color-cool-gray-65: #a1a5aa;
2828
- --color-cool-gray-70: #afb1b6;
2829
- --color-cool-gray-75: #bcbec2;
2830
- --color-cool-gray-80: #cacbce;
2831
- --color-cool-gray-85: #d7d8db;
2832
- --color-cool-gray-90: #e4e5e7;
2833
- --color-cool-gray-95: #f2f2f3;
2834
- --color-cool-gray-99: #fcfcfd;
2835
- --color-blue-10: #001233;
2836
- --color-blue-20: #002466;
2837
- --color-blue-30: #003699;
2838
- --color-blue-40: #0047cc;
2839
- --color-blue-45: #0050e5;
2840
- --color-blue-50: #0059ff;
2841
- --color-blue-55: #1a6aff;
2842
- --color-blue-60: #337aff;
2843
- --color-blue-70: #669cff;
2844
- --color-blue-80: #99bdff;
2845
- --color-blue-90: #ccdeff;
2846
- --color-blue-95: #e5eeff;
2847
- --color-blue-99: #fafcff;
2848
- --color-purple-10: #120033;
2849
- --color-purple-20: #240066;
2850
- --color-purple-30: #360099;
2851
- --color-purple-40: #4800cc;
2852
- --color-purple-45: #5200e5;
2853
- --color-purple-50: #5b00ff;
2854
- --color-purple-55: #6c1bff;
2855
- --color-purple-60: #7b33ff;
2856
- --color-purple-70: #9c66ff;
2857
- --color-purple-80: #bd99ff;
2858
- --color-purple-90: #deccff;
2859
- --color-purple-95: #efe5ff;
2860
- --color-purple-99: #fcfaff;
2861
- --color-magenta-10: #32012e;
2862
- --color-magenta-20: #64025b;
2863
- --color-magenta-30: #950489;
2864
- --color-magenta-40: #c705b6;
2865
- --color-magenta-45: #e005cd;
2866
- --color-magenta-50: #f906e4;
2867
- --color-magenta-55: #fa1fe7;
2868
- --color-magenta-60: #fa38e9;
2869
- --color-magenta-70: #fb6aef;
2870
- --color-magenta-80: #fd9bf4;
2871
- --color-magenta-90: #fecdfa;
2872
- --color-magenta-95: #fee6fc;
2873
- --color-magenta-99: #fffafe;
2874
- --color-pink-10: #320116;
2875
- --color-pink-20: #63032b;
2876
- --color-pink-30: #950441;
2877
- --color-pink-40: #c70556;
2878
- --color-pink-45: #e00661;
2879
- --color-pink-50: #f8076c;
2880
- --color-pink-55: #f91f7a;
2881
- --color-pink-60: #fa3889;
2882
- --color-pink-70: #fb6aa7;
2883
- --color-pink-80: #fc9cc4;
2884
- --color-pink-90: #fecde2;
2885
- --color-pink-95: #fee6f0;
2886
- --color-pink-99: #fffafc;
2887
- --color-red-10: #310602;
2888
- --color-red-20: #610d05;
2889
- --color-red-30: #921307;
2890
- --color-red-40: #c21a0a;
2891
- --color-red-45: #da1d0b;
2892
- --color-red-50: #f2200d;
2893
- --color-red-55: #f43625;
2894
- --color-red-60: #f54d3d;
2895
- --color-red-70: #f7796e;
2896
- --color-red-80: #faa69e;
2897
- --color-red-90: #fcd2cf;
2898
- --color-red-95: #fde8e7;
2899
- --color-red-99: #fffafa;
2900
- --color-orange-10: #331100;
2901
- --color-orange-20: #662200;
2902
- --color-orange-30: #993300;
2903
- --color-orange-40: #cc4400;
2904
- --color-orange-45: #e54d00;
2905
- --color-orange-50: #ff5500;
2906
- --color-orange-55: #ff661a;
2907
- --color-orange-60: #ff7733;
2908
- --color-orange-70: #ff9966;
2909
- --color-orange-80: #ffbb99;
2910
- --color-orange-90: #ffddcc;
2911
- --color-orange-95: #ffeee5;
2912
- --color-orange-99: #fffcfa;
2913
- --color-yellow-10: #302903;
2914
- --color-yellow-20: #615205;
2915
- --color-yellow-30: #917a08;
2916
- --color-yellow-40: #c2a30a;
2917
- --color-yellow-45: #dab80b;
2918
- --color-yellow-50: #f2cc0d;
2919
- --color-yellow-55: #f4d125;
2920
- --color-yellow-60: #f5d63d;
2921
- --color-yellow-70: #f7e06e;
2922
- --color-yellow-80: #faeb9e;
2923
- --color-yellow-90: #fcf5cf;
2924
- --color-yellow-95: #fefae7;
2925
- --color-yellow-99: #fffefa;
2926
- --color-lime-10: #2b3300;
2927
- --color-lime-20: #556600;
2928
- --color-lime-30: #809900;
2929
- --color-lime-40: #aacc00;
2930
- --color-lime-45: #bfe500;
2931
- --color-lime-50: #d5ff00;
2932
- --color-lime-55: #d9ff1a;
2933
- --color-lime-60: #ddff33;
2934
- --color-lime-70: #e6ff66;
2935
- --color-lime-80: #eeff99;
2936
- --color-lime-90: #f7ffcc;
2937
- --color-lime-95: #fbffe5;
2938
- --color-lime-99: #fefffa;
2939
- --color-green-10: #062d13;
2940
- --color-green-20: #0d5926;
2941
- --color-green-30: #138639;
2942
- --color-green-40: #1ab24d;
2943
- --color-green-45: #1dc956;
2944
- --color-green-50: #20df60;
2945
- --color-green-55: #36e270;
2946
- --color-green-60: #4de580;
2947
- --color-green-70: #79ec9f;
2948
- --color-green-80: #a6f2bf;
2949
- --color-green-90: #d2f9df;
2950
- --color-green-95: #e9fcef;
2951
- --color-green-99: #fbfefc;
2952
- --color-bright-green-10: #213003;
2953
- --color-bright-green-20: #426105;
2954
- --color-bright-green-30: #639108;
2955
- --color-bright-green-40: #84c10b;
2956
- --color-bright-green-45: #95da0c;
2957
- --color-bright-green-50: #a5f20d;
2958
- --color-bright-green-55: #aef325;
2959
- --color-bright-green-60: #b7f43e;
2960
- --color-bright-green-70: #c9f76e;
2961
- --color-bright-green-80: #dbfa9e;
2962
- --color-bright-green-90: #edfccf;
2963
- --color-bright-green-95: #f6fee7;
2964
- --color-bright-green-99: #fdfffa;
2965
- --color-teal-10: #062d20;
2966
- --color-teal-20: #0d5940;
2967
- --color-teal-30: #13865f;
2968
- --color-teal-40: #1ab27f;
2969
- --color-teal-45: #1dc98f;
2970
- --color-teal-50: #20df9f;
2971
- --color-teal-55: #36e2a9;
2972
- --color-teal-60: #4de5b2;
2973
- --color-teal-70: #79ecc5;
2974
- --color-teal-80: #a6f2d9;
2975
- --color-teal-90: #d2f9ec;
2976
- --color-teal-95: #e9fcf5;
2977
- --color-teal-99: #fbfefd;
2978
- --color-cyan-10: #002f33;
2979
- --color-cyan-20: #005e66;
2980
- --color-cyan-30: #008c99;
2981
- --color-cyan-40: #00bbcc;
2982
- --color-cyan-45: #00d2e5;
2983
- --color-cyan-50: #00eaff;
2984
- --color-cyan-55: #1aecff;
2985
- --color-cyan-60: #33eeff;
2986
- --color-cyan-70: #66f2ff;
2987
- --color-cyan-80: #99f7ff;
2988
- --color-cyan-90: #ccfbff;
2989
- --color-cyan-95: #e5fdff;
2990
- --color-cyan-99: #faffff;
2991
- --color-primary-default: var(--color-blue-55);
2992
- --color-primary-strong: var(--color-blue-45);
2993
- --color-primary-heavy: var(--color-blue-30);
2994
- --color-secondary-default: var(--color-blue-95);
2995
- --color-secondary-strong: var(--color-blue-90);
2996
- --color-secondary-heavy: var(--color-blue-80);
2997
- --color-tertiary-default: var(--color-cool-gray-95);
2998
- --color-tertiary-strong: var(--color-cool-gray-90);
2999
- --color-tertiary-heavy: var(--color-cool-gray-80);
3000
- --color-label-strong: var(--color-cool-gray-10);
3001
- --color-label-standard: var(--color-cool-gray-20);
3002
- --color-label-neutral: var(--color-cool-gray-50);
3003
- --color-label-alternative: var(--color-cool-gray-70);
3004
- --color-label-assistive: var(--color-cool-gray-80);
3005
- --color-label-disabled: var(--color-cool-gray-80);
3006
- --color-border-standard-cool-gray: var(--color-cool-gray-90);
3007
- --color-border-standard-blue: var(--color-blue-90);
3008
- --color-border-standard-strong: var(--color-cool-gray-75);
3009
- --color-border-standard-heavy: var(--color-cool-gray-20);
3010
- --color-border-standard-alternative: var(--color-cool-gray-80);
3011
- --color-border-standard-assistive: var(--color-cool-gray-90);
3012
- --color-bg-standard-cool-gray: var(--color-cool-gray-99);
3013
- --color-bg-alternative-cool-gray: var(--color-cool-gray-95);
3014
- --color-bg-standard-neutral: var(--color-neutral-99);
3015
- --color-bg-alternative-neutral: var(--color-neutral-95);
3016
- --color-bg-surface-static-white: var(--color-common-100);
3017
- --color-bg-surface-static-cool-gray: var(--color-cool-gray-99);
3018
- --color-bg-surface-static-blue: var(--color-blue-95);
3019
- --color-bg-surface-neutral: var(--color-neutral-95);
3020
- --color-bg-surface-standard: var(--color-cool-gray-95);
3021
- --color-bg-surface-strong: var(--color-neutral-80);
3022
- --color-bg-surface-heavy: var(--color-cool-gray-20);
3023
- --color-interaction-static: var(--color-common-100);
3024
- --color-interaction-disabled: var(--color-cool-gray-95);
3025
- --color-danger: var(--color-red-40);
3026
- --color-error: var(--color-red-45);
3027
- --color-warning: var(--color-yellow-50);
3028
- --color-success: var(--color-green-40);
3029
- --color-information: var(--color-blue-60);
3030
- --color-new: var(--color-red-50);
3031
- }
3032
- }
3033
- @layer foundation.spacing {
3034
- :root {
3035
- --spacing-padding-1: 2px;
3036
- --spacing-padding-2: 4px;
3037
- --spacing-padding-3: 6px;
3038
- --spacing-padding-4: 8px;
3039
- --spacing-padding-5: 12px;
3040
- --spacing-padding-6: 16px;
3041
- --spacing-padding-7: 20px;
3042
- --spacing-padding-8: 24px;
3043
- --spacing-padding-9: 28px;
3044
- --spacing-padding-10: 32px;
3045
- --spacing-padding-11: 40px;
3046
- --spacing-gap-1: 2px;
3047
- --spacing-gap-2: 4px;
3048
- --spacing-gap-3: 6px;
3049
- --spacing-gap-4: 8px;
3050
- --spacing-gap-5: 12px;
3051
- --spacing-gap-6: 16px;
3052
- --spacing-gap-7: 20px;
3053
- --spacing-gap-8: 24px;
3054
- --spacing-gap-9: 28px;
3055
- --spacing-gap-10: 32px;
3056
- --spacing-gap-11: 36px;
3057
- --spacing-gap-12: 40px;
3058
- --spacing-gap-13: 48px;
3059
- --spacing-gap-14: 64px;
3060
- --spacing-gap-15: 80px;
3061
- }
3062
- }
3063
- @layer foundation.layout {
3064
- :root {
3065
- --theme-breakpoint-xsmall-start: 0px;
3066
- --theme-breakpoint-small-start: 768px;
3067
- --theme-breakpoint-medium-start: 992px;
3068
- --theme-breakpoint-large-start: 1200px;
3069
- --theme-size-xxsmall: 4px;
3070
- --theme-size-xsmall-1: 8px;
3071
- --theme-size-xsmall-2: 12px;
3072
- --theme-size-xsmall-3: 16px;
3073
- --theme-size-small-1: 20px;
3074
- --theme-size-small-2: 24px;
3075
- --theme-size-small-3: 32px;
3076
- --theme-size-medium-1: 40px;
3077
- --theme-size-medium-2: 48px;
3078
- --theme-size-medium-3: 56px;
3079
- --theme-size-medium-4: 64px;
3080
- --theme-size-large-1: 72px;
3081
- --theme-size-large-2: 80px;
3082
- --theme-size-xlarge-1: 96px;
3083
- --theme-size-xlarge-2: 120px;
3084
- --theme-radius-4x4: 1px;
3085
- --theme-radius-8x8: 2px;
3086
- --theme-radius-12x12: 2px;
3087
- --theme-radius-16x16: 2px;
3088
- --theme-radius-20x20: 4px;
3089
- --theme-radius-24x24: 4px;
3090
- --theme-radius-32x32: 4px;
3091
- --theme-radius-40x40: 6px;
3092
- --theme-radius-48x48: 6px;
3093
- --theme-radius-56x56: 8px;
3094
- --theme-radius-64x64: 10px;
3095
- --theme-radius-72x72: 12px;
3096
- --theme-radius-80x80: 16px;
3097
- --theme-radius-96x96: 16px;
3098
- --theme-radius-120x120: 16px;
3099
- --theme-radius-xxsmall: 1px;
3100
- --theme-radius-xsmall: 2px;
3101
- --theme-radius-small: 4px;
3102
- --theme-radius-medium-1: 6px;
3103
- --theme-radius-medium-2: 6px;
3104
- --theme-radius-medium-3: 8px;
3105
- --theme-radius-medium-4: 10px;
3106
- --theme-radius-large-1: 12px;
3107
- --theme-radius-large-2: 16px;
3108
- --theme-radius-xlarge: 16px;
3109
- }
3110
- }
3111
- @layer foundation.typography {
3112
- @font-face {
3113
- font-family: "Pretendard JP Variable";
3114
- src: url("./fonts/pretendard-jp/PretendardJPVariable.woff2") format("woff2");
3115
- font-weight: 100 900;
3116
- font-style: normal;
3117
- font-display: swap;
3118
- }
3119
- @font-face {
3120
- font-family: "InterVariable";
3121
- src: url("./fonts/inter/InterVariable.woff2") format("woff2");
3122
- font-weight: 100 900;
3123
- font-style: normal;
3124
- font-display: swap;
3125
- }
3126
- :root :root {
3127
- --font-family-pretendard:
3128
- "Pretendard JP Variable", "Pretendard JP", "Pretendard Variable",
3129
- "Pretendard", "InterVariable", "Inter", "Noto Sans KR", "-apple-system",
3130
- "BlinkMacSystemFont", "Apple SD Gothic Neo", "Segoe UI", "Roboto",
3131
- "Helvetica Neue", "Helvetica", "Apple Color Emoji", "Segoe UI Emoji",
3132
- "Segoe UI Symbol", "Malgun Gothic", "맑은 고딕", "돋움", "dotum",
3133
- "Oxygen", "Oxygen-Sans", "Ubuntu", "Cantarell", "sans-serif";
3134
- --font-family-inter:
3135
- "InterVariable", "Inter", "Pretendard JP Variable", "Pretendard JP",
3136
- "Pretendard Variable", "Pretendard", "-apple-system",
3137
- "BlinkMacSystemFont", "Segoe UI", "Roboto", "Helvetica Neue", "Helvetica",
3138
- "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Malgun Gothic",
3139
- "맑은 고딕", "돋움", "dotum", "Oxygen", "Oxygen-Sans", "Ubuntu",
3140
- "Cantarell", "sans-serif";
3141
- --font-family-system:
3142
- "-apple-system", "BlinkMacSystemFont", "Segoe UI", "Roboto",
3143
- "Helvetica Neue", "Helvetica", "Apple Color Emoji", "Segoe UI Emoji",
3144
- "Segoe UI Symbol", "Malgun Gothic", "맑은 고딕", "돋움", "dotum",
3145
- "Oxygen", "Oxygen-Sans", "Ubuntu", "Cantarell", "sans-serif";
3146
- --font-family-sans: var(--font-family-pretendard);
3147
- }
3148
- :root {
3149
- --font-display-large-size: 60px;
3150
- --font-display-large-line-height: 1.4em;
3151
- --font-display-large-letter-spacing: -0.2px;
3152
- --font-display-large-weight: 700;
3153
- --font-display-medium-size: 44px;
3154
- --font-display-medium-line-height: 1.4em;
3155
- --font-display-medium-letter-spacing: -0.2px;
3156
- --font-display-medium-weight: 700;
3157
- --font-display-small-size: 36px;
3158
- --font-display-small-line-height: 1.4em;
3159
- --font-display-small-letter-spacing: -0.2px;
3160
- --font-display-small-weight: 600;
3161
- --font-heading-xlarge-size: 40px;
3162
- --font-heading-xlarge-line-height: 1.4em;
3163
- --font-heading-xlarge-letter-spacing: -0.2px;
3164
- --font-heading-xlarge-weight: 600;
3165
- --font-heading-large-size: 32px;
3166
- --font-heading-large-line-height: 1.4em;
3167
- --font-heading-large-letter-spacing: -0.2px;
3168
- --font-heading-large-weight: 600;
3169
- --font-heading-medium-size: 24px;
3170
- --font-heading-medium-line-height: 1.4em;
3171
- --font-heading-medium-letter-spacing: 0px;
3172
- --font-heading-medium-weight: 600;
3173
- --font-heading-small-size: 19px;
3174
- --font-heading-small-line-height: 1.4em;
3175
- --font-heading-small-letter-spacing: 0px;
3176
- --font-heading-small-weight: 600;
3177
- --font-heading-xsmall-size: 17px;
3178
- --font-heading-xsmall-line-height: 1.5em;
3179
- --font-heading-xsmall-letter-spacing: 0px;
3180
- --font-heading-xsmall-weight: 600;
3181
- --font-heading-xxsmall-size: 15px;
3182
- --font-heading-xxsmall-line-height: 1.5em;
3183
- --font-heading-xxsmall-letter-spacing: 0px;
3184
- --font-heading-xxsmall-weight: 600;
3185
- --font-body-large-size: 19px;
3186
- --font-body-large-line-height: 1.5em;
3187
- --font-body-large-letter-spacing: 0px;
3188
- --font-body-large-weight: 600;
3189
- --font-body-medium-size: 17px;
3190
- --font-body-medium-line-height: 1.5em;
3191
- --font-body-medium-letter-spacing: 0px;
3192
- --font-body-medium-weight: 500;
3193
- --font-body-small-size: 16px;
3194
- --font-body-small-line-height: 1.5em;
3195
- --font-body-small-letter-spacing: 0px;
3196
- --font-body-small-weight: 400;
3197
- --font-body-xsmall-size: 15px;
3198
- --font-body-xsmall-line-height: 1.5em;
3199
- --font-body-xsmall-letter-spacing: 0px;
3200
- --font-body-xsmall-weight: 400;
3201
- --font-body-xxsmall-size: 13px;
3202
- --font-body-xxsmall-line-height: 1.5em;
3203
- --font-body-xxsmall-letter-spacing: 0px;
3204
- --font-body-xxsmall-weight: 400;
3205
- --font-label-large-size: 16px;
3206
- --font-label-large-line-height: 1.5em;
3207
- --font-label-large-letter-spacing: 0px;
3208
- --font-label-large-weight: 400;
3209
- --font-label-medium-size: 14px;
3210
- --font-label-medium-line-height: 1.5em;
3211
- --font-label-medium-letter-spacing: 0px;
3212
- --font-label-medium-weight: 400;
3213
- --font-label-small-size: 13px;
3214
- --font-label-small-line-height: 1.5em;
3215
- --font-label-small-letter-spacing: 0px;
3216
- --font-label-small-weight: 500;
3217
- --font-caption-large-size: 12px;
3218
- --font-caption-large-line-height: 1.5em;
3219
- --font-caption-large-letter-spacing: 0px;
3220
- --font-caption-large-weight: 600;
3221
- --font-caption-medium-size: 11px;
3222
- --font-caption-medium-line-height: 1.5em;
3223
- --font-caption-medium-letter-spacing: 0px;
3224
- --font-caption-medium-weight: 500;
3225
- }
3226
- }
69
+ /* foundation CSS는 소비 앱 루트에서 한 번만 로드된다는 전제하에 토큰만 참조한다. */
3227
70
  :where(.radix-themes, .theme-root, :root) {
3228
71
  --uds-modal-overlay-bg: var(--dialog-overlay-bg, rgba(5, 6, 12, 0.55));
3229
72
  --uds-modal-surface-bg: var(--color-bg-surface-static-white);