@charcoal-ui/react 6.1.1-beta.0 → 6.1.1-beta.2

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/layered.css CHANGED
@@ -6,568 +6,130 @@
6
6
  box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
7
7
  transition: 0.2s box-shadow;
8
8
  }
9
- .charcoal-loading-spinner {
10
- box-sizing: content-box;
11
- margin: auto;
12
- padding: 16px;
13
- border-radius: 8px;
14
- font-size: 48px;
15
- width: 48px;
16
- height: 48px;
17
- opacity: 0.84;
18
- color: var(--charcoal-color-icon-tertiary-default);
19
- background-color: var(--charcoal-color-background-default);
20
- }
21
-
22
- .charcoal-loading-spinner[data-transparent='true'] {
23
- background-color: transparent;
24
- }
25
-
26
- @keyframes charcoal-loading-spinner-icon-scale-out {
27
- from {
28
- transform: scale(0);
29
- opacity: 1;
30
- }
31
- to {
32
- transform: scale(1);
33
- opacity: 0;
34
- }
35
- }
36
-
37
- .charcoal-loading-spinner-icon {
38
- width: 1em;
39
- height: 1em;
40
- border-radius: 1em;
41
- background-color: currentColor;
42
- animation: charcoal-loading-spinner-icon-scale-out 1s infinite both ease-out;
43
- }
44
-
45
- .charcoal-loading-spinner-icon[data-reset-animation] {
46
- animation: none;
47
- }
48
-
49
- .charcoal-loading-spinner-icon[data-once='true'] {
50
- animation-iteration-count: 1;
51
- }
52
- .charcoal-dropdown-selector-root {
53
- display: grid;
54
- grid-template-columns: 1fr;
55
- grid-gap: 4px;
56
- width: 100%;
57
- }
58
-
59
- .charcoal-dropdown-selector-root[aria-disabled='true'] {
60
- cursor: default;
61
- opacity: 0.32;
62
- }
63
-
64
- .charcoal-dropdown-selector-button {
65
- display: grid;
66
- grid-template-columns: 1fr auto;
67
- justify-content: space-between;
68
- align-items: center;
69
-
70
- height: 40px;
71
- width: 100%;
72
- box-sizing: border-box;
73
- border: none;
74
- cursor: pointer;
75
- gap: 4px;
76
-
77
- padding-right: 8px;
78
- padding-left: 8px;
79
- background-color: var(--charcoal-color-container-secondary-default-a);
80
- border-radius: 4px;
81
-
82
- transition:
83
- 0.2s box-shadow,
84
- 0.2s background-color;
85
- }
86
-
87
- .charcoal-dropdown-selector-button:disabled {
88
- cursor: default;
89
- }
90
-
91
- .charcoal-dropdown-selector-button:not(:disabled):focus {
92
- outline: none;
93
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
94
- }
95
-
96
- .charcoal-dropdown-selector-button:not(:disabled):focus-visible {
97
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
98
- }
99
-
100
- .charcoal-dropdown-selector-button:not(:disabled)[data-active='true'],
101
- .charcoal-dropdown-selector-button:not(:disabled):active {
102
- background-color: var(--charcoal-color-container-secondary-press-a);
103
- }
104
-
105
- .charcoal-dropdown-selector-button:not(:disabled):hover {
106
- background-color: var(--charcoal-color-container-secondary-hover-a);
107
- }
108
-
109
- .charcoal-dropdown-selector-button:not(:disabled):focus:not(:focus-visible) {
110
- box-shadow: none;
111
- }
112
-
113
- .charcoal-dropdown-selector-button[aria-invalid='true'],
114
- .charcoal-dropdown-selector-button:not(:disabled)[aria-invalid='true']:focus:not(:focus-visible) {
115
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
116
- }
117
-
118
- .charcoal-ui-dropdown-selector-text {
119
- text-align: left;
120
- font-size: 14px;
121
- line-height: 22px;
122
- display: flow-root;
123
- color: var(--charcoal-color-text-default);
124
- overflow: hidden;
125
- text-overflow: ellipsis;
126
- white-space: nowrap;
127
- }
128
-
129
- .charcoal-ui-dropdown-selector-text[data-placeholder='true'] {
130
- color: var(--charcoal-color-text-placeholder-default);
131
- }
132
-
133
- .charcoal-ui-dropdown-selector-icon {
134
- color: var(--charcoal-color-icon-secondary-default);
135
- }
136
- .charcoal-dropdown-selector-menu-item {
137
- font-size: 14px;
138
- line-height: 22px;
139
- color: var(--charcoal-color-text-secondary-default);
140
- padding: 9px 0;
141
-
142
- display: flex;
143
- align-items: center;
144
- width: 100%;
145
- margin-left: 20px;
146
- }
147
-
148
- .charcoal-dropdown-selector-menu-item[data-selected='true'] {
149
- margin-left: 0px;
150
- }
151
-
152
- .charcoal-dropdown-selector-menu-item-icon {
153
- color: var(--charcoal-color-text-secondary-default);
154
- padding-right: 4px;
155
- }
156
-
157
- .charcoal-dropdown-selector-menu-item-container {
158
- display: flex;
159
- align-items: center;
160
- }
161
-
162
- .charcoal-dropdown-selector-menu-secondary {
163
- font-size: 12px;
164
- line-height: 20px;
165
- color: var(--charcoal-color-text-tertiary-default);
166
- padding-bottom: 9px;
167
-
168
- display: flex;
169
- align-items: center;
170
- margin-left: 20px;
171
- }
172
-
173
- .charcoal-dropdown-selector-menu-fullwidth {
174
- width: 100%;
175
- }
176
- .charcoal-text-ellipsis {
177
- /* Runtime variables overridden by the React component. */
178
- --charcoal-text-ellipsis-line-limit: 1;
179
- --charcoal-text-ellipsis-line-height: inherit;
180
-
181
- overflow: hidden;
182
- overflow-wrap: break-word;
183
- display: -webkit-box;
184
- -webkit-box-orient: vertical;
185
- -webkit-line-clamp: var(--charcoal-text-ellipsis-line-limit);
186
- }
187
-
188
- .charcoal-text-ellipsis[data-has-line-height='true'] {
189
- line-height: var(--charcoal-text-ellipsis-line-height);
190
- }
191
-
192
- .charcoal-text-ellipsis[data-has-line-height='false'] {
193
- line-height: inherit;
194
- }
195
-
196
- .charcoal-text-ellipsis[data-line-limit='1'][data-use-nowrap='true'] {
197
- text-overflow: ellipsis;
198
- white-space: nowrap;
199
- }
200
- .charcoal-checkbox__label {
201
- position: relative;
202
- cursor: pointer;
203
- display: flex;
204
- gap: 4px;
205
- }
206
-
207
- .charcoal-checkbox__label[aria-disabled='true'] {
208
- cursor: default;
209
- opacity: 0.32;
210
- }
211
-
212
- .charcoal-checkbox__label[aria-disabled='true'] > input {
213
- opacity: 1;
214
- }
215
-
216
- .charcoal-checkbox__label_div {
217
- flex: 1;
218
- color: var(--charcoal-color-text-default);
219
- font-size: 14px;
220
- line-height: 20px;
221
- }
222
- .charcoal-segmented-control {
223
- display: inline-flex;
224
- align-items: center;
225
-
226
- background-color: var(--charcoal-color-container-secondary-default-a);
227
- border-radius: 16px;
228
- }
229
-
230
- .charcoal-segmented-control[data-uniform-segment-width='true'],
231
- .charcoal-segmented-control[data-full-width='true'] {
232
- display: inline-grid;
233
- grid-auto-columns: minmax(80px, 1fr);
234
- grid-auto-rows: 32px;
235
- grid-auto-flow: column;
236
- }
237
-
238
- .charcoal-segmented-control[data-full-width='true'] {
239
- width: 100%;
240
- }
241
-
242
- .charcoal-segmented-control-radio__label {
243
- position: relative;
244
- display: flex;
245
- align-items: center;
246
- justify-content: center;
247
- cursor: pointer;
248
- height: 32px;
249
-
250
- padding-right: 16px;
251
- padding-left: 16px;
252
- border-radius: 16px;
253
- color: var(--charcoal-color-text-secondary-default);
254
-
255
- font-size: 14px;
256
- line-height: 22px;
257
- }
258
-
259
- .charcoal-segmented-control-radio__label[aria-disabled]:not([aria-disabled='false']) {
260
- cursor: default;
261
- opacity: 0.32;
262
- }
263
-
264
- .charcoal-segmented-control-radio__label[data-checked='true'] {
265
- background-color: var(--charcoal-color-container-primary-default);
266
- color: var(--charcoal-color-text-on-primary-default);
267
- }
268
-
269
- .charcoal-segmented-control-radio__label[data-uniform-segment-width='true'],
270
- .charcoal-segmented-control-radio__label[data-full-width='true'] {
271
- justify-content: center;
272
- white-space: nowrap;
273
- }
274
-
275
- .charcoal-segmented-control-radio__input {
276
- position: absolute;
277
-
278
- height: 0px;
279
- width: 0px;
280
- padding: 0;
281
- margin: 0;
282
-
283
- -webkit-appearance: none;
284
-
285
- -moz-appearance: none;
286
-
287
- appearance: none;
288
- box-sizing: border-box;
289
- overflow: hidden;
290
- white-space: nowrap;
291
- opacity: 0;
292
- }
293
- .charcoal-tag-item {
294
- --charcoal-tag-item-color: var(--charcoal-color-text-on-primary-default);
295
- --charcoal-tag-item-size: 40px;
296
- --charcoal-tag-item-padding-left: 24px;
297
- --charcoal-tag-item-padding-right: 24px;
298
- --charcoal-tag-item-bg: ;
299
-
300
- isolation: isolate;
301
- position: relative;
302
-
9
+ .charcoal-icon-button {
10
+ cursor: pointer;
303
11
  -webkit-appearance: none;
304
-
305
12
  -moz-appearance: none;
306
-
307
13
  appearance: none;
308
- outline: none;
14
+ background: transparent;
15
+ padding: 0;
309
16
  border-style: none;
310
-
311
- display: inline-flex;
312
- gap: 8px;
313
- align-items: center;
314
- justify-content: center;
315
-
17
+ outline: none;
18
+ color: inherit;
19
+ text-rendering: inherit;
20
+ letter-spacing: inherit;
21
+ word-spacing: inherit;
316
22
  text-decoration: none;
317
- cursor: pointer;
318
- overflow: hidden;
319
-
320
- color: var(--charcoal-tag-item-color);
321
- height: var(--charcoal-tag-item-size);
322
- padding-top: 4px;
323
- padding-bottom: 4px;
324
- padding-left: var(--charcoal-tag-item-padding-left);
325
- padding-right: var(--charcoal-tag-item-padding-right);
326
- box-sizing: border-box;
327
- border-radius: 4px;
328
-
329
- transition: 0.2s box-shadow;
330
- }
331
-
332
- .charcoal-tag-item[data-size='M'] {
333
- --charcoal-tag-item-size: 40px;
334
- --charcoal-tag-item-padding-left: 24px;
335
- --charcoal-tag-item-padding-right: 24px;
336
- }
337
-
338
- .charcoal-tag-item[data-size='S'] {
339
- --charcoal-tag-item-size: 32px;
340
- --charcoal-tag-item-padding-left: 16px;
341
- --charcoal-tag-item-padding-right: 16px;
342
- }
343
-
344
- .charcoal-tag-item[data-state='inactive'] {
345
- --charcoal-tag-item-color: var(--charcoal-color-text-secondary-default);
346
- }
347
-
348
- .charcoal-tag-item[data-state='active'] {
349
- --charcoal-tag-item-padding-left: 16px;
350
- --charcoal-tag-item-padding-right: 8px;
351
- }
352
-
353
- .charcoal-tag-item:disabled,
354
- .charcoal-tag-item[aria-disabled]:not([aria-disabled='false']) {
355
- opacity: 0.32;
356
- cursor: default;
357
- }
358
-
359
- .charcoal-tag-item:not(:disabled):not([aria-disabled]):focus-visible,
360
- .charcoal-tag-item[aria-disabled='false']:focus-visible {
361
- outline: none;
362
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
363
- }
364
-
365
- .charcoal-tag-item:not(:disabled):not([aria-disabled]):focus,
366
- .charcoal-tag-item[aria-disabled='false']:focus {
367
- outline: none;
368
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
369
- }
370
-
371
- .charcoal-tag-item:not(:disabled):not([aria-disabled]):focus:not(:focus-visible),
372
- .charcoal-tag-item[aria-disabled='false']:focus:not(:focus-visible) {
373
- box-shadow: none;
374
- }
375
-
376
- .charcoal-tag-item__bg {
377
- background-color: var(--charcoal-tag-item-bg);
378
- }
379
-
380
- .charcoal-tag-item__bg[data-bg-variant='image'] {
381
- background-color: var(--charcoal-color-container-on-img-default);
382
- }
23
+ font: inherit;
24
+ margin: 0;
25
+ overflow: visible;
26
+ text-transform: none;
383
27
 
384
- .charcoal-tag-item__bg[data-bg-variant='image']::before {
385
- content: '';
386
- position: absolute;
387
- z-index: 1;
388
- top: 0;
389
- left: 0;
390
- width: 100%;
391
- height: 100%;
392
- background-position: center;
393
- background-size: cover;
394
- background-image: var(--charcoal-tag-item-bg);
395
- mix-blend-mode: overlay;
396
- }
28
+ -webkit-user-select: none;
397
29
 
398
- .charcoal-tag-item__bg[data-state='inactive'] {
399
- background-color: var(--charcoal-color-container-secondary-default);
400
- }
30
+ -moz-user-select: none;
401
31
 
402
- .charcoal-tag-item__label {
403
- height: 100%;
32
+ user-select: none;
404
33
  display: flex;
405
- flex-direction: column;
406
34
  align-items: center;
407
35
  justify-content: center;
36
+ border-radius: 999999px;
37
+ transition:
38
+ 0.2s background-color,
39
+ 0.2s box-shadow;
408
40
  }
409
41
 
410
- .charcoal-tag-item__label[data-has-translate='true'] {
411
- justify-content: space-between;
412
- }
413
-
414
- .charcoal-tag-item__label__translated {
415
- --charcoal-tag-item-text-font-size: 12px;
416
- --charcoal-tag-item-text-line-height: 20px;
417
- font-weight: bold;
418
- }
419
-
420
- .charcoal-tag-item__label__translated::before {
421
- display: none;
422
- }
423
-
424
- .charcoal-tag-item__label__text {
425
- --charcoal-tag-item-text-font-size: 14px;
426
- --charcoal-tag-item-text-line-height: 22px;
427
-
428
- max-width: 152px;
429
- overflow: hidden;
430
- font-weight: bold;
431
-
432
- color: inherit;
433
- white-space: nowrap;
434
- text-overflow: ellipsis;
435
- }
436
-
437
- .charcoal-tag-item__label__text[data-has-translate='true'] {
438
- --charcoal-tag-item-text-font-size: 10px;
439
- --charcoal-tag-item-text-line-height: 14px;
440
- font-weight: normal;
42
+ .charcoal-icon-button:disabled,
43
+ .charcoal-icon-button[aria-disabled]:not([aria-disabled='false']) {
44
+ cursor: default;
45
+ opacity: 0.32;
441
46
  }
442
47
 
443
- /* Kept flat: different class name from .charcoal-tag-item__label__text (note: "labe" typo in original) */
444
- .charcoal-tag-item__labe__text[data-has-translate='true']::after {
445
- display: none;
446
- }
447
- .charcoal-hint-text {
448
- background-color: var(--charcoal-color-container-secondary-default);
449
- border-radius: 8px;
450
- padding: 12px 16px;
451
- display: flex;
452
- align-items: flex-start;
453
- }
454
-
455
- .charcoal-hint-text[data-context='page'] {
456
- justify-content: center;
48
+ .charcoal-icon-button:focus {
49
+ outline: none;
457
50
  }
458
51
 
459
- @media (min-width: 744px) {
460
-
461
- .charcoal-hint-text[data-context='page'] {
462
- padding: 20px 40px
52
+ .charcoal-icon-button::-moz-focus-inner {
53
+ border-style: none;
54
+ padding: 0;
463
55
  }
464
- }
465
-
466
- .charcoal-hint-text-icon {
467
- display: flex;
468
- align-items: center;
469
- color: var(--charcoal-color-icon-tertiary-default);
470
- height: 22px;
471
- margin: 0 4px 0 0;
472
- }
473
-
474
- .charcoal-hint-text-message {
475
- color: var(--charcoal-color-text-secondary-default);
476
- font-size: 14px;
477
- line-height: 22px;
478
- display: flow-root;
479
- margin: 0;
480
- min-width: 0;
481
- overflow-wrap: break-word;
482
- }
483
- .charcoal-clickable {
484
- cursor: pointer;
485
-
486
- /* Reset button appearance */
487
- -webkit-appearance: none;
488
- -moz-appearance: none;
489
- appearance: none;
490
- background: transparent;
491
- padding: 0;
492
- border-style: none;
493
- outline: none;
494
- color: inherit;
495
- text-rendering: inherit;
496
- letter-spacing: inherit;
497
- word-spacing: inherit;
498
- text-decoration: none;
499
-
500
- /* Change the font styles in all browsers. */
501
- font: inherit;
502
-
503
- /* Remove the margin in Firefox and Safari. */
504
- margin: 0;
505
-
506
- /* Show the overflow in Edge. */
507
- overflow: visible;
508
56
 
509
- /* Remove the inheritance of text transform in Firefox. */
510
- text-transform: none;
511
- }
57
+ .charcoal-icon-button[data-size='XS'] {
58
+ width: 20px;
59
+ height: 20px;
60
+ }
512
61
 
513
- .charcoal-clickable:disabled,
514
- .charcoal-clickable[aria-disabled]:not([aria-disabled='false']) {
515
- cursor: default;
62
+ .charcoal-icon-button[data-size='S'] {
63
+ width: 32px;
64
+ height: 32px;
516
65
  }
517
66
 
518
- .charcoal-clickable:focus {
519
- outline: none;
67
+ .charcoal-icon-button[data-size='M'] {
68
+ width: 40px;
69
+ height: 40px;
520
70
  }
521
71
 
522
- .charcoal-clickable::-moz-focus-inner {
523
- border-style: none;
524
- padding: 0;
72
+ .charcoal-icon-button[data-variant='Default'] {
73
+ color: var(--charcoal-color-icon-tertiary-default);
74
+ background-color: transparent;
525
75
  }
526
- .charcoal-modal-header-root {
527
- height: 64px;
528
- display: grid;
529
- align-content: center;
530
- justify-content: center;
531
- }
532
76
 
533
- @media (max-width: 743px) {
534
- .charcoal-modal-header-root[data-bottom-sheet='true'],
535
- .charcoal-modal-header-root[data-bottom-sheet='full'] {
536
- height: 48px;
77
+ .charcoal-icon-button[data-variant='Default'][data-active='true']:not(:disabled):not([aria-disabled]),
78
+ .charcoal-icon-button[data-variant='Default'][data-active='true'][aria-disabled='false'] {
79
+ color: var(--charcoal-color-icon-tertiary-press);
80
+ background-color: var(--charcoal-color-container-press-a);
81
+ }
82
+
83
+ .charcoal-icon-button[data-variant='Default'][data-active='false']:not(:disabled):not([aria-disabled]):hover,
84
+ .charcoal-icon-button[data-variant='Default'][data-active='false'][aria-disabled='false']:hover {
85
+ color: var(--charcoal-color-icon-tertiary-hover);
86
+ background-color: var(--charcoal-color-container-hover-a);
87
+ }
88
+
89
+ .charcoal-icon-button[data-variant='Default'][data-active='false']:not(:disabled):not([aria-disabled]):active,
90
+ .charcoal-icon-button[data-variant='Default'][data-active='false'][aria-disabled='false']:active {
91
+ color: var(--charcoal-color-icon-tertiary-press);
92
+ background-color: var(--charcoal-color-container-press-a);
93
+ }
94
+
95
+ .charcoal-icon-button[data-variant='Overlay'] {
96
+ color: var(--charcoal-color-icon-on-on-img-default);
97
+ background-color: var(--charcoal-color-container-on-img-default);
537
98
  }
538
- }
539
99
 
540
- .charcoal-modal-header-title {
541
- color: var(--charcoal-color-text-default);
542
- font-size: 16px;
543
- line-height: 24px;
544
- font-weight: bold;
545
- display: flow-root;
546
- }
100
+ .charcoal-icon-button[data-variant='Overlay'][data-active='true']:not(:disabled):not([aria-disabled]),
101
+ .charcoal-icon-button[data-variant='Overlay'][data-active='true'][aria-disabled='false'] {
102
+ color: var(--charcoal-color-icon-on-on-img-press);
103
+ background-color: var(--charcoal-color-container-on-img-press);
104
+ }
547
105
 
548
- .charcoal-modal-align {
549
- padding-left: 16px;
550
- padding-right: 16px;
551
- }
106
+ .charcoal-icon-button[data-variant='Overlay'][data-active='false']:not(:disabled):not([aria-disabled]):hover,
107
+ .charcoal-icon-button[data-variant='Overlay'][data-active='false'][aria-disabled='false']:hover {
108
+ color: var(--charcoal-color-icon-on-on-img-hover);
109
+ background-color: var(--charcoal-color-container-on-img-hover);
110
+ }
552
111
 
553
- .charcoal-modal-body {
554
- padding-bottom: 40px;
555
- }
112
+ .charcoal-icon-button[data-variant='Overlay'][data-active='false']:not(:disabled):not([aria-disabled]):active,
113
+ .charcoal-icon-button[data-variant='Overlay'][data-active='false'][aria-disabled='false']:active {
114
+ color: var(--charcoal-color-icon-on-on-img-press);
115
+ background-color: var(--charcoal-color-container-on-img-press);
116
+ }
556
117
 
557
- .charcoal-modal-buttons {
558
- display: grid;
559
- grid-auto-flow: row;
560
- grid-row-gap: 8px;
118
+ .charcoal-icon-button:not(:disabled):not([aria-disabled]):focus,
119
+ .charcoal-icon-button[aria-disabled='false']:focus {
120
+ outline: none;
121
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
122
+ }
561
123
 
562
- padding-top: 16px;
563
- padding-left: 16px;
564
- padding-right: 16px;
565
- }
566
- .charcoal-radio-group {
567
- display: grid;
568
- grid-template-columns: 1fr;
569
- grid-gap: 8px;
570
- }
124
+ .charcoal-icon-button:not(:disabled):not([aria-disabled]):focus-visible,
125
+ .charcoal-icon-button[aria-disabled='false']:focus-visible {
126
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
127
+ }
128
+
129
+ .charcoal-icon-button:not(:disabled):not([aria-disabled]):focus:not(:focus-visible),
130
+ .charcoal-icon-button[aria-disabled='false']:focus:not(:focus-visible) {
131
+ box-shadow: none;
132
+ }
571
133
  .charcoal-button {
572
134
  -webkit-appearance: none;
573
135
  -moz-appearance: none;
@@ -718,26 +280,10 @@
718
280
  .charcoal-button[data-full-width='true'] {
719
281
  width: 100%;
720
282
  }
721
- .charcoal-radio__label {
722
- display: grid;
723
- grid-template-columns: auto 1fr;
724
- grid-gap: 4px;
725
- align-items: center;
283
+ .charcoal-clickable {
726
284
  cursor: pointer;
727
- }
728
-
729
- .charcoal-radio__label[aria-disabled]:not([aria-disabled='false']) {
730
- opacity: 0.32;
731
- cursor: default;
732
- }
733
285
 
734
- .charcoal-radio__label_div {
735
- font-size: 14px;
736
- line-height: 22px;
737
- color: var(--charcoal-color-text-default);
738
- }
739
- .charcoal-icon-button {
740
- cursor: pointer;
286
+ /* Reset button appearance */
741
287
  -webkit-appearance: none;
742
288
  -moz-appearance: none;
743
289
  appearance: none;
@@ -750,116 +296,127 @@
750
296
  letter-spacing: inherit;
751
297
  word-spacing: inherit;
752
298
  text-decoration: none;
299
+
300
+ /* Change the font styles in all browsers. */
753
301
  font: inherit;
754
- margin: 0;
755
- overflow: visible;
756
- text-transform: none;
757
302
 
758
- -webkit-user-select: none;
303
+ /* Remove the margin in Firefox and Safari. */
304
+ margin: 0;
759
305
 
760
- -moz-user-select: none;
306
+ /* Show the overflow in Edge. */
307
+ overflow: visible;
761
308
 
762
- user-select: none;
763
- display: flex;
764
- align-items: center;
765
- justify-content: center;
766
- border-radius: 999999px;
767
- transition:
768
- 0.2s background-color,
769
- 0.2s box-shadow;
309
+ /* Remove the inheritance of text transform in Firefox. */
310
+ text-transform: none;
770
311
  }
771
312
 
772
- .charcoal-icon-button:disabled,
773
- .charcoal-icon-button[aria-disabled]:not([aria-disabled='false']) {
313
+ .charcoal-clickable:disabled,
314
+ .charcoal-clickable[aria-disabled]:not([aria-disabled='false']) {
774
315
  cursor: default;
775
- opacity: 0.32;
776
316
  }
777
317
 
778
- .charcoal-icon-button:focus {
318
+ .charcoal-clickable:focus {
779
319
  outline: none;
780
320
  }
781
321
 
782
- .charcoal-icon-button::-moz-focus-inner {
322
+ .charcoal-clickable::-moz-focus-inner {
783
323
  border-style: none;
784
324
  padding: 0;
785
325
  }
326
+ .charcoal-radio__label {
327
+ display: grid;
328
+ grid-template-columns: auto 1fr;
329
+ grid-gap: 4px;
330
+ align-items: center;
331
+ cursor: pointer;
332
+ }
786
333
 
787
- .charcoal-icon-button[data-size='XS'] {
788
- width: 20px;
789
- height: 20px;
334
+ .charcoal-radio__label[aria-disabled]:not([aria-disabled='false']) {
335
+ opacity: 0.32;
336
+ cursor: default;
790
337
  }
791
338
 
792
- .charcoal-icon-button[data-size='S'] {
793
- width: 32px;
794
- height: 32px;
795
- }
339
+ .charcoal-radio__label_div {
340
+ font-size: 14px;
341
+ line-height: 22px;
342
+ color: var(--charcoal-color-text-default);
343
+ }
344
+ .charcoal-hint-text {
345
+ background-color: var(--charcoal-color-container-secondary-default);
346
+ border-radius: 8px;
347
+ padding: 12px 16px;
348
+ display: flex;
349
+ align-items: flex-start;
350
+ }
796
351
 
797
- .charcoal-icon-button[data-size='M'] {
798
- width: 40px;
799
- height: 40px;
352
+ .charcoal-hint-text[data-context='page'] {
353
+ justify-content: center;
800
354
  }
801
355
 
802
- .charcoal-icon-button[data-variant='Default'] {
803
- color: var(--charcoal-color-icon-tertiary-default);
804
- background-color: transparent;
805
- }
356
+ @media (min-width: 744px) {
806
357
 
807
- .charcoal-icon-button[data-variant='Default'][data-active='true']:not(:disabled):not([aria-disabled]),
808
- .charcoal-icon-button[data-variant='Default'][data-active='true'][aria-disabled='false'] {
809
- color: var(--charcoal-color-icon-tertiary-press);
810
- background-color: var(--charcoal-color-container-press-a);
358
+ .charcoal-hint-text[data-context='page'] {
359
+ padding: 20px 40px
360
+ }
811
361
  }
812
362
 
813
- .charcoal-icon-button[data-variant='Default'][data-active='false']:not(:disabled):not([aria-disabled]):hover,
814
- .charcoal-icon-button[data-variant='Default'][data-active='false'][aria-disabled='false']:hover {
815
- color: var(--charcoal-color-icon-tertiary-hover);
816
- background-color: var(--charcoal-color-container-hover-a);
817
- }
363
+ .charcoal-hint-text-icon {
364
+ display: flex;
365
+ align-items: center;
366
+ color: var(--charcoal-color-icon-tertiary-default);
367
+ height: 22px;
368
+ margin: 0 4px 0 0;
369
+ }
818
370
 
819
- .charcoal-icon-button[data-variant='Default'][data-active='false']:not(:disabled):not([aria-disabled]):active,
820
- .charcoal-icon-button[data-variant='Default'][data-active='false'][aria-disabled='false']:active {
821
- color: var(--charcoal-color-icon-tertiary-press);
822
- background-color: var(--charcoal-color-container-press-a);
823
- }
371
+ .charcoal-hint-text-message {
372
+ color: var(--charcoal-color-text-secondary-default);
373
+ font-size: 14px;
374
+ line-height: 22px;
375
+ display: flow-root;
376
+ margin: 0;
377
+ min-width: 0;
378
+ overflow-wrap: break-word;
379
+ }
380
+ .charcoal-dropdown-selector-menu-item {
381
+ font-size: 14px;
382
+ line-height: 22px;
383
+ color: var(--charcoal-color-text-secondary-default);
384
+ padding: 9px 0;
824
385
 
825
- .charcoal-icon-button[data-variant='Overlay'] {
826
- color: var(--charcoal-color-icon-on-on-img-default);
827
- background-color: var(--charcoal-color-container-on-img-default);
828
- }
386
+ display: flex;
387
+ align-items: center;
388
+ width: 100%;
389
+ margin-left: 20px;
390
+ }
829
391
 
830
- .charcoal-icon-button[data-variant='Overlay'][data-active='true']:not(:disabled):not([aria-disabled]),
831
- .charcoal-icon-button[data-variant='Overlay'][data-active='true'][aria-disabled='false'] {
832
- color: var(--charcoal-color-icon-on-on-img-press);
833
- background-color: var(--charcoal-color-container-on-img-press);
834
- }
392
+ .charcoal-dropdown-selector-menu-item[data-selected='true'] {
393
+ margin-left: 0px;
394
+ }
835
395
 
836
- .charcoal-icon-button[data-variant='Overlay'][data-active='false']:not(:disabled):not([aria-disabled]):hover,
837
- .charcoal-icon-button[data-variant='Overlay'][data-active='false'][aria-disabled='false']:hover {
838
- color: var(--charcoal-color-icon-on-on-img-hover);
839
- background-color: var(--charcoal-color-container-on-img-hover);
840
- }
396
+ .charcoal-dropdown-selector-menu-item-icon {
397
+ color: var(--charcoal-color-text-secondary-default);
398
+ padding-right: 4px;
399
+ }
841
400
 
842
- .charcoal-icon-button[data-variant='Overlay'][data-active='false']:not(:disabled):not([aria-disabled]):active,
843
- .charcoal-icon-button[data-variant='Overlay'][data-active='false'][aria-disabled='false']:active {
844
- color: var(--charcoal-color-icon-on-on-img-press);
845
- background-color: var(--charcoal-color-container-on-img-press);
846
- }
401
+ .charcoal-dropdown-selector-menu-item-container {
402
+ display: flex;
403
+ align-items: center;
404
+ }
847
405
 
848
- .charcoal-icon-button:not(:disabled):not([aria-disabled]):focus,
849
- .charcoal-icon-button[aria-disabled='false']:focus {
850
- outline: none;
851
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
852
- }
406
+ .charcoal-dropdown-selector-menu-secondary {
407
+ font-size: 12px;
408
+ line-height: 20px;
409
+ color: var(--charcoal-color-text-tertiary-default);
410
+ padding-bottom: 9px;
853
411
 
854
- .charcoal-icon-button:not(:disabled):not([aria-disabled]):focus-visible,
855
- .charcoal-icon-button[aria-disabled='false']:focus-visible {
856
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
857
- }
412
+ display: flex;
413
+ align-items: center;
414
+ margin-left: 20px;
415
+ }
858
416
 
859
- .charcoal-icon-button:not(:disabled):not([aria-disabled]):focus:not(:focus-visible),
860
- .charcoal-icon-button[aria-disabled='false']:focus:not(:focus-visible) {
861
- box-shadow: none;
862
- }
417
+ .charcoal-dropdown-selector-menu-fullwidth {
418
+ width: 100%;
419
+ }
863
420
  .charcoal-multi-select {
864
421
  display: grid;
865
422
  grid-template-columns: auto 1fr;
@@ -995,6 +552,101 @@
995
552
  border-width: 2px;
996
553
  border-style: solid;
997
554
  }
555
+ .charcoal-menu-item-group {
556
+ display: block;
557
+ }
558
+
559
+ .charcoal-menu-item-group > span {
560
+ display: block;
561
+ color: var(--charcoal-color-text-tertiary-default);
562
+ font-size: 12px;
563
+ font-weight: bold;
564
+ padding: 12px 0 8px 16px;
565
+ }
566
+
567
+ .charcoal-menu-item-group > ul {
568
+ padding-left: 0;
569
+ margin: 0;
570
+ box-sizing: border-box;
571
+ list-style: none;
572
+ overflow: hidden;
573
+ }
574
+ .charcoal-radio-group {
575
+ display: grid;
576
+ grid-template-columns: 1fr;
577
+ grid-gap: 8px;
578
+ }
579
+ .charcoal-segmented-control {
580
+ display: inline-flex;
581
+ align-items: center;
582
+
583
+ background-color: var(--charcoal-color-container-secondary-default-a);
584
+ border-radius: 16px;
585
+ }
586
+
587
+ .charcoal-segmented-control[data-uniform-segment-width='true'],
588
+ .charcoal-segmented-control[data-full-width='true'] {
589
+ display: inline-grid;
590
+ grid-auto-columns: minmax(80px, 1fr);
591
+ grid-auto-rows: 32px;
592
+ grid-auto-flow: column;
593
+ }
594
+
595
+ .charcoal-segmented-control[data-full-width='true'] {
596
+ width: 100%;
597
+ }
598
+
599
+ .charcoal-segmented-control-radio__label {
600
+ position: relative;
601
+ display: flex;
602
+ align-items: center;
603
+ justify-content: center;
604
+ cursor: pointer;
605
+ height: 32px;
606
+
607
+ padding-right: 16px;
608
+ padding-left: 16px;
609
+ border-radius: 16px;
610
+ color: var(--charcoal-color-text-secondary-default);
611
+
612
+ font-size: 14px;
613
+ line-height: 22px;
614
+ }
615
+
616
+ .charcoal-segmented-control-radio__label[aria-disabled]:not([aria-disabled='false']) {
617
+ cursor: default;
618
+ opacity: 0.32;
619
+ }
620
+
621
+ .charcoal-segmented-control-radio__label[data-checked='true'] {
622
+ background-color: var(--charcoal-color-container-primary-default);
623
+ color: var(--charcoal-color-text-on-primary-default);
624
+ }
625
+
626
+ .charcoal-segmented-control-radio__label[data-uniform-segment-width='true'],
627
+ .charcoal-segmented-control-radio__label[data-full-width='true'] {
628
+ justify-content: center;
629
+ white-space: nowrap;
630
+ }
631
+
632
+ .charcoal-segmented-control-radio__input {
633
+ position: absolute;
634
+
635
+ height: 0px;
636
+ width: 0px;
637
+ padding: 0;
638
+ margin: 0;
639
+
640
+ -webkit-appearance: none;
641
+
642
+ -moz-appearance: none;
643
+
644
+ appearance: none;
645
+ box-sizing: border-box;
646
+ overflow: hidden;
647
+ white-space: nowrap;
648
+ opacity: 0;
649
+ }
998
650
  .charcoal-switch__label {
999
651
  display: inline-grid;
1000
652
  grid-template-columns: auto 1fr;
@@ -1018,24 +670,27 @@
1018
670
  line-height: 22px;
1019
671
  color: var(--charcoal-color-text-default);
1020
672
  }
1021
- .charcoal-menu-item-group {
1022
- display: block;
673
+ .charcoal-checkbox__label {
674
+ position: relative;
675
+ cursor: pointer;
676
+ display: flex;
677
+ gap: 4px;
1023
678
  }
1024
679
 
1025
- .charcoal-menu-item-group > span {
1026
- display: block;
1027
- color: var(--charcoal-color-text-tertiary-default);
1028
- font-size: 12px;
1029
- font-weight: bold;
1030
- padding: 12px 0 8px 16px;
1031
- }
680
+ .charcoal-checkbox__label[aria-disabled='true'] {
681
+ cursor: default;
682
+ opacity: 0.32;
683
+ }
1032
684
 
1033
- .charcoal-menu-item-group > ul {
1034
- padding-left: 0;
1035
- margin: 0;
1036
- box-sizing: border-box;
1037
- list-style: none;
1038
- overflow: hidden;
685
+ .charcoal-checkbox__label[aria-disabled='true'] > input {
686
+ opacity: 1;
687
+ }
688
+
689
+ .charcoal-checkbox__label_div {
690
+ flex: 1;
691
+ color: var(--charcoal-color-text-default);
692
+ font-size: 14px;
693
+ line-height: 20px;
1039
694
  }
1040
695
  .charcoal-text-field-root {
1041
696
  display: grid;
@@ -1136,118 +791,159 @@
1136
791
  font-size: 14px;
1137
792
  color: var(--charcoal-color-text-tertiary-default);
1138
793
  }
1139
- .charcoal-icon {
1140
- display: inline-flex;
1141
- width: var(--charcoal-icon-size);
1142
- height: var(--charcoal-icon-size);
1143
- }
794
+ .charcoal-tag-item {
795
+ --charcoal-tag-item-color: var(--charcoal-color-text-on-primary-default);
796
+ --charcoal-tag-item-size: 40px;
797
+ --charcoal-tag-item-padding-left: 24px;
798
+ --charcoal-tag-item-padding-right: 24px;
799
+ --charcoal-tag-item-bg: ;
1144
800
 
1145
- pixiv-icon:not(:defined) {
1146
- --pixiv-icon-base: 24px;
1147
- --pixiv-icon-scale: 1;
1148
- --pixiv-icon-size: calc(var(--pixiv-icon-base) * var(--pixiv-icon-scale));
801
+ isolation: isolate;
802
+ position: relative;
803
+
804
+ -webkit-appearance: none;
805
+
806
+ -moz-appearance: none;
807
+
808
+ appearance: none;
809
+ outline: none;
810
+ border-style: none;
1149
811
 
1150
812
  display: inline-flex;
1151
- /* --charcoal-icon-size がセットされていればそれを優先、
1152
- なければ name / scale から導出した --pixiv-icon-size をフォールバック */
1153
- width: var(--charcoal-icon-size, var(--pixiv-icon-size));
1154
- height: var(--charcoal-icon-size, var(--pixiv-icon-size));
813
+ gap: 8px;
814
+ align-items: center;
815
+ justify-content: center;
816
+
817
+ text-decoration: none;
818
+ cursor: pointer;
819
+ overflow: hidden;
820
+
821
+ color: var(--charcoal-tag-item-color);
822
+ height: var(--charcoal-tag-item-size);
823
+ padding-top: 4px;
824
+ padding-bottom: 4px;
825
+ padding-left: var(--charcoal-tag-item-padding-left);
826
+ padding-right: var(--charcoal-tag-item-padding-right);
827
+ box-sizing: border-box;
828
+ border-radius: 4px;
829
+
830
+ transition: 0.2s box-shadow;
1155
831
  }
1156
832
 
1157
- pixiv-icon:not(:defined)[name^='16/'] {
1158
- --pixiv-icon-base: 16px;
1159
- --pixiv-icon-size: 16px;
833
+ .charcoal-tag-item[data-size='M'] {
834
+ --charcoal-tag-item-size: 40px;
835
+ --charcoal-tag-item-padding-left: 24px;
836
+ --charcoal-tag-item-padding-right: 24px;
1160
837
  }
1161
838
 
1162
- pixiv-icon:not(:defined)[name^='24/'][scale='2'] {
1163
- --pixiv-icon-scale: 2;
1164
- }
839
+ .charcoal-tag-item[data-size='S'] {
840
+ --charcoal-tag-item-size: 32px;
841
+ --charcoal-tag-item-padding-left: 16px;
842
+ --charcoal-tag-item-padding-right: 16px;
843
+ }
1165
844
 
1166
- pixiv-icon:not(:defined)[name^='24/'][scale='3'] {
1167
- --pixiv-icon-scale: 3;
1168
- }
845
+ .charcoal-tag-item[data-state='inactive'] {
846
+ --charcoal-tag-item-color: var(--charcoal-color-text-secondary-default);
847
+ }
848
+
849
+ .charcoal-tag-item[data-state='active'] {
850
+ --charcoal-tag-item-padding-left: 16px;
851
+ --charcoal-tag-item-padding-right: 8px;
852
+ }
853
+
854
+ .charcoal-tag-item:disabled,
855
+ .charcoal-tag-item[aria-disabled]:not([aria-disabled='false']) {
856
+ opacity: 0.32;
857
+ cursor: default;
858
+ }
859
+
860
+ .charcoal-tag-item:not(:disabled):not([aria-disabled]):focus-visible,
861
+ .charcoal-tag-item[aria-disabled='false']:focus-visible {
862
+ outline: none;
863
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
864
+ }
865
+
866
+ .charcoal-tag-item:not(:disabled):not([aria-disabled]):focus,
867
+ .charcoal-tag-item[aria-disabled='false']:focus {
868
+ outline: none;
869
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
870
+ }
1169
871
 
1170
- pixiv-icon:not(:defined)[name^='32/'] {
1171
- --pixiv-icon-base: 32px;
1172
- --pixiv-icon-size: 32px;
872
+ .charcoal-tag-item:not(:disabled):not([aria-disabled]):focus:not(:focus-visible),
873
+ .charcoal-tag-item[aria-disabled='false']:focus:not(:focus-visible) {
874
+ box-shadow: none;
1173
875
  }
1174
876
 
1175
- pixiv-icon:not(:defined)[name^='Inline/'] {
1176
- --pixiv-icon-base: 16px;
877
+ .charcoal-tag-item__bg {
878
+ background-color: var(--charcoal-tag-item-bg);
879
+ }
880
+
881
+ .charcoal-tag-item__bg[data-bg-variant='image'] {
882
+ background-color: var(--charcoal-color-container-on-img-default);
1177
883
  }
1178
884
 
1179
- pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
1180
- --pixiv-icon-scale: 2;
885
+ .charcoal-tag-item__bg[data-bg-variant='image']::before {
886
+ content: '';
887
+ position: absolute;
888
+ z-index: 1;
889
+ top: 0;
890
+ left: 0;
891
+ width: 100%;
892
+ height: 100%;
893
+ background-position: center;
894
+ background-size: cover;
895
+ background-image: var(--charcoal-tag-item-bg);
896
+ mix-blend-mode: overlay;
1181
897
  }
1182
- .charcoal-modal-background {
1183
- overflow: auto;
1184
- display: flex;
1185
- position: fixed;
1186
- top: 0;
1187
- left: 0;
1188
- width: 100%;
898
+
899
+ .charcoal-tag-item__bg[data-state='inactive'] {
900
+ background-color: var(--charcoal-color-container-secondary-default);
901
+ }
902
+
903
+ .charcoal-tag-item__label {
1189
904
  height: 100%;
905
+ display: flex;
906
+ flex-direction: column;
907
+ align-items: center;
1190
908
  justify-content: center;
1191
- padding: 40px 0;
1192
- box-sizing: border-box;
1193
-
1194
- background-color: var(--charcoal-color-background-overlay);
1195
909
  }
1196
910
 
1197
- @media (max-width: 743px) {
1198
- .charcoal-modal-background[data-bottom-sheet='true'],
1199
- .charcoal-modal-background[data-bottom-sheet='full'] {
1200
- padding: 0;
1201
- }
911
+ .charcoal-tag-item__label[data-has-translate='true'] {
912
+ justify-content: space-between;
1202
913
  }
1203
914
 
1204
- /* easeOutQuart。duration は useTransitionPresence の MODAL_TRANSITION_DURATION_MS と一致させること。
1205
- transition は entering / exiting に限定し、開いたままテーマ切り替え等で
1206
- 色や transform が変わってもアニメーションしないようにする */
1207
- .charcoal-modal-background[data-animation] {
1208
- overflow: hidden;
1209
- }
1210
-
1211
- .charcoal-modal-background[data-animation='entering'],
1212
- .charcoal-modal-background[data-animation='exiting'] {
1213
- transition: background-color 400ms cubic-bezier(0.25, 1, 0.5, 1);
915
+ .charcoal-tag-item__label__translated {
916
+ --charcoal-tag-item-text-font-size: 12px;
917
+ --charcoal-tag-item-text-line-height: 20px;
918
+ font-weight: bold;
1214
919
  }
1215
920
 
1216
- /* 閉じアニメーション中はクリックを下のページへ通す(transitionend が来ない環境で
1217
- 透明なオーバーレイがタップを奪い続けるのも防ぐ) */
1218
- .charcoal-modal-background[data-animation='exited'],
1219
- .charcoal-modal-background[data-animation='exiting'] {
1220
- background-color: transparent;
1221
- pointer-events: none;
1222
- }
921
+ .charcoal-tag-item__label__translated::before {
922
+ display: none;
923
+ }
1223
924
 
1224
- .charcoal-modal-background[data-animation='entered'] {
1225
- overflow: auto;
1226
- }
925
+ .charcoal-tag-item__label__text {
926
+ --charcoal-tag-item-text-font-size: 14px;
927
+ --charcoal-tag-item-text-line-height: 22px;
1227
928
 
1228
- .charcoal-modal-background[data-animation='entering'] > .charcoal-modal-dialog,
1229
- .charcoal-modal-background[data-animation='exiting'] > .charcoal-modal-dialog {
1230
- transition: transform 400ms cubic-bezier(0.25, 1, 0.5, 1);
1231
- }
929
+ max-width: 152px;
930
+ overflow: hidden;
931
+ font-weight: bold;
1232
932
 
1233
- .charcoal-modal-background[data-animation='exited'] > .charcoal-modal-dialog,
1234
- .charcoal-modal-background[data-animation='exiting'] > .charcoal-modal-dialog {
1235
- transform: translateY(100%);
933
+ color: inherit;
934
+ white-space: nowrap;
935
+ text-overflow: ellipsis;
1236
936
  }
1237
937
 
1238
- .charcoal-modal-close-button {
1239
- position: absolute;
1240
- top: 8px;
1241
- right: 8px;
1242
-
1243
- color: var(--charcoal-color-text-tertiary-default);
1244
- transition: 0.2s color;
1245
- }
938
+ .charcoal-tag-item__label__text[data-has-translate='true'] {
939
+ --charcoal-tag-item-text-font-size: 10px;
940
+ --charcoal-tag-item-text-line-height: 14px;
941
+ font-weight: normal;
942
+ }
1246
943
 
1247
- .charcoal-modal-title {
1248
- margin: 0;
1249
- font-weight: inherit;
1250
- font-size: inherit;
944
+ /* Kept flat: different class name from .charcoal-tag-item__label__text (note: "labe" typo in original) */
945
+ .charcoal-tag-item__labe__text[data-has-translate='true']::after {
946
+ display: none;
1251
947
  }
1252
948
  .charcoal-text-area-root {
1253
949
  display: grid;
@@ -1630,56 +1326,193 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
1630
1326
  scroll-marker-group: after;
1631
1327
  }
1632
1328
 
1633
- .charcoal-carousel__scroller::scroll-button(*) {
1634
- content: none;
1635
- }
1329
+ .charcoal-carousel__scroller::scroll-button(*) {
1330
+ content: none;
1331
+ }
1332
+
1333
+ .charcoal-carousel__scroller::scroll-marker-group {
1334
+ display: flex;
1335
+ justify-content: center;
1336
+ align-items: center;
1337
+ height: 40px;
1338
+ gap: 8px;
1339
+
1340
+ position: absolute;
1341
+ position-anchor: --charcoal-carousel;
1342
+ top: anchor(bottom);
1343
+ justify-self: anchor-center;
1344
+ }
1345
+
1346
+ .charcoal-carousel[data-indicator='false'] .charcoal-carousel__scroller {
1347
+ scroll-marker-group: none;
1348
+ }
1349
+
1350
+ .charcoal-carousel__item::scroll-marker {
1351
+ content: '';
1352
+ width: 8px;
1353
+ height: 8px;
1354
+ border: 0;
1355
+ border-radius: 50%;
1356
+ background-color: var(--charcoal-color-text-tertiary-default);
1357
+ cursor: pointer;
1358
+ transition: 0.2s background-color;
1359
+ }
1360
+
1361
+ .charcoal-carousel__item::scroll-marker:hover {
1362
+ background-color: var(--charcoal-color-text-secondary-default);
1363
+ }
1364
+
1365
+ .charcoal-carousel__item::scroll-marker:focus {
1366
+ outline: 2px solid rgba(0, 150, 250, 0.56);
1367
+ outline-offset: 2px;
1368
+ }
1369
+
1370
+ .charcoal-carousel__item::scroll-marker:target-current {
1371
+ background-color: var(--charcoal-color-text-default);
1372
+ }
1373
+
1374
+ .charcoal-carousel__indicator {
1375
+ display: none;
1376
+ }
1377
+ }
1378
+ /* stylelint-enable selector-pseudo-class-no-unknown */
1379
+ .charcoal-icon {
1380
+ display: inline-flex;
1381
+ width: var(--charcoal-icon-size);
1382
+ height: var(--charcoal-icon-size);
1383
+ }
1384
+
1385
+ pixiv-icon:not(:defined) {
1386
+ --pixiv-icon-base: 24px;
1387
+ --pixiv-icon-scale: 1;
1388
+ --pixiv-icon-size: calc(var(--pixiv-icon-base) * var(--pixiv-icon-scale));
1389
+
1390
+ display: inline-flex;
1391
+ /* --charcoal-icon-size がセットされていればそれを優先、
1392
+ なければ name / scale から導出した --pixiv-icon-size をフォールバック */
1393
+ width: var(--charcoal-icon-size, var(--pixiv-icon-size));
1394
+ height: var(--charcoal-icon-size, var(--pixiv-icon-size));
1395
+ }
1396
+
1397
+ pixiv-icon:not(:defined)[name^='16/'] {
1398
+ --pixiv-icon-base: 16px;
1399
+ --pixiv-icon-size: 16px;
1400
+ }
1401
+
1402
+ pixiv-icon:not(:defined)[name^='24/'][scale='2'] {
1403
+ --pixiv-icon-scale: 2;
1404
+ }
1405
+
1406
+ pixiv-icon:not(:defined)[name^='24/'][scale='3'] {
1407
+ --pixiv-icon-scale: 3;
1408
+ }
1409
+
1410
+ pixiv-icon:not(:defined)[name^='32/'] {
1411
+ --pixiv-icon-base: 32px;
1412
+ --pixiv-icon-size: 32px;
1413
+ }
1414
+
1415
+ pixiv-icon:not(:defined)[name^='Inline/'] {
1416
+ --pixiv-icon-base: 16px;
1417
+ }
1418
+
1419
+ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
1420
+ --pixiv-icon-scale: 2;
1421
+ }
1422
+ .charcoal-text-ellipsis {
1423
+ /* Runtime variables overridden by the React component. */
1424
+ --charcoal-text-ellipsis-line-limit: 1;
1425
+ --charcoal-text-ellipsis-line-height: inherit;
1426
+
1427
+ overflow: hidden;
1428
+ overflow-wrap: break-word;
1429
+ display: -webkit-box;
1430
+ -webkit-box-orient: vertical;
1431
+ -webkit-line-clamp: var(--charcoal-text-ellipsis-line-limit);
1432
+ }
1433
+
1434
+ .charcoal-text-ellipsis[data-has-line-height='true'] {
1435
+ line-height: var(--charcoal-text-ellipsis-line-height);
1436
+ }
1437
+
1438
+ .charcoal-text-ellipsis[data-has-line-height='false'] {
1439
+ line-height: inherit;
1440
+ }
1441
+
1442
+ .charcoal-text-ellipsis[data-line-limit='1'][data-use-nowrap='true'] {
1443
+ text-overflow: ellipsis;
1444
+ white-space: nowrap;
1445
+ }
1446
+ .charcoal-modal-background {
1447
+ overflow: auto;
1448
+ display: flex;
1449
+ position: fixed;
1450
+ top: 0;
1451
+ left: 0;
1452
+ width: 100%;
1453
+ height: 100%;
1454
+ justify-content: center;
1455
+ padding: 40px 0;
1456
+ box-sizing: border-box;
1457
+
1458
+ background-color: var(--charcoal-color-background-overlay);
1459
+ }
1460
+
1461
+ @media (max-width: 743px) {
1462
+ .charcoal-modal-background[data-bottom-sheet='true'],
1463
+ .charcoal-modal-background[data-bottom-sheet='full'] {
1464
+ padding: 0;
1465
+ }
1466
+ }
1467
+
1468
+ /* easeOutQuart。duration は useTransitionPresence の MODAL_TRANSITION_DURATION_MS と一致させること。
1469
+ transition は entering / exiting に限定し、開いたままテーマ切り替え等で
1470
+ 色や transform が変わってもアニメーションしないようにする */
1471
+ .charcoal-modal-background[data-animation] {
1472
+ overflow: hidden;
1473
+ }
1636
1474
 
1637
- .charcoal-carousel__scroller::scroll-marker-group {
1638
- display: flex;
1639
- justify-content: center;
1640
- align-items: center;
1641
- height: 40px;
1642
- gap: 8px;
1475
+ .charcoal-modal-background[data-animation='entering'],
1476
+ .charcoal-modal-background[data-animation='exiting'] {
1477
+ transition: background-color 400ms cubic-bezier(0.25, 1, 0.5, 1);
1478
+ }
1643
1479
 
1644
- position: absolute;
1645
- position-anchor: --charcoal-carousel;
1646
- top: anchor(bottom);
1647
- justify-self: anchor-center;
1648
- }
1480
+ /* 閉じアニメーション中はクリックを下のページへ通す(transitionend が来ない環境で
1481
+ 透明なオーバーレイがタップを奪い続けるのも防ぐ) */
1482
+ .charcoal-modal-background[data-animation='exited'],
1483
+ .charcoal-modal-background[data-animation='exiting'] {
1484
+ background-color: transparent;
1485
+ pointer-events: none;
1486
+ }
1649
1487
 
1650
- .charcoal-carousel[data-indicator='false'] .charcoal-carousel__scroller {
1651
- scroll-marker-group: none;
1652
- }
1488
+ .charcoal-modal-background[data-animation='entered'] {
1489
+ overflow: auto;
1490
+ }
1653
1491
 
1654
- .charcoal-carousel__item::scroll-marker {
1655
- content: '';
1656
- width: 8px;
1657
- height: 8px;
1658
- border: 0;
1659
- border-radius: 50%;
1660
- background-color: var(--charcoal-color-text-tertiary-default);
1661
- cursor: pointer;
1662
- transition: 0.2s background-color;
1663
- }
1492
+ .charcoal-modal-background[data-animation='entering'] > .charcoal-modal-dialog,
1493
+ .charcoal-modal-background[data-animation='exiting'] > .charcoal-modal-dialog {
1494
+ transition: transform 400ms cubic-bezier(0.25, 1, 0.5, 1);
1495
+ }
1664
1496
 
1665
- .charcoal-carousel__item::scroll-marker:hover {
1666
- background-color: var(--charcoal-color-text-secondary-default);
1667
- }
1497
+ .charcoal-modal-background[data-animation='exited'] > .charcoal-modal-dialog,
1498
+ .charcoal-modal-background[data-animation='exiting'] > .charcoal-modal-dialog {
1499
+ transform: translateY(100%);
1500
+ }
1668
1501
 
1669
- .charcoal-carousel__item::scroll-marker:focus {
1670
- outline: 2px solid rgba(0, 150, 250, 0.56);
1671
- outline-offset: 2px;
1672
- }
1502
+ .charcoal-modal-close-button {
1503
+ position: absolute;
1504
+ top: 8px;
1505
+ right: 8px;
1673
1506
 
1674
- .charcoal-carousel__item::scroll-marker:target-current {
1675
- background-color: var(--charcoal-color-text-default);
1676
- }
1507
+ color: var(--charcoal-color-text-tertiary-default);
1508
+ transition: 0.2s color;
1509
+ }
1677
1510
 
1678
- .charcoal-carousel__indicator {
1679
- display: none;
1680
- }
1511
+ .charcoal-modal-title {
1512
+ margin: 0;
1513
+ font-weight: inherit;
1514
+ font-size: inherit;
1681
1515
  }
1682
- /* stylelint-enable selector-pseudo-class-no-unknown */
1683
1516
  .charcoal-pagination {
1684
1517
  display: flex;
1685
1518
  justify-content: center;
@@ -1721,80 +1554,247 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
1721
1554
  font-weight: 700;
1722
1555
  line-height: 22px;
1723
1556
 
1724
- /* HACK:
1725
- * Safari doesn't correctly repaint the elements when they're reordered in response to interaction.
1726
- * This forces it to repaint them. This doesn't work if put on the parents either, has to be here.
1727
- */
1728
- -webkit-transform: translateZ(0);
1557
+ /* HACK:
1558
+ * Safari doesn't correctly repaint the elements when they're reordered in response to interaction.
1559
+ * This forces it to repaint them. This doesn't work if put on the parents either, has to be here.
1560
+ */
1561
+ -webkit-transform: translateZ(0);
1562
+
1563
+ color: var(--charcoal-color-text-tertiary-default);
1564
+ background-color: transparent;
1565
+ border-radius: 20px;
1566
+ transition:
1567
+ 0.2s background-color,
1568
+ 0.2s box-shadow;
1569
+ }
1570
+ .charcoal-pagination-button:focus {
1571
+ outline: none;
1572
+ }
1573
+ .charcoal-pagination-button::-moz-focus-inner {
1574
+ border-style: none;
1575
+ padding: 0;
1576
+ }
1577
+ .charcoal-pagination-button[hidden] {
1578
+ visibility: hidden;
1579
+ display: block;
1580
+ }
1581
+ .charcoal-pagination-button:not(:disabled):not([aria-disabled]):hover,
1582
+ .charcoal-pagination-button[aria-disabled='false']:hover {
1583
+ color: var(--charcoal-color-text-tertiary-default);
1584
+ background-color: var(--charcoal-color-container-secondary-default);
1585
+ }
1586
+ .charcoal-pagination-button:not(:disabled):not([aria-disabled]):active,
1587
+ .charcoal-pagination-button[aria-disabled='false']:active {
1588
+ color: var(--charcoal-color-text-tertiary-press);
1589
+ background-color: var(--charcoal-color-container-tertiary-press);
1590
+ }
1591
+ .charcoal-pagination-button:not(:disabled):not([aria-disabled]):focus,
1592
+ .charcoal-pagination-button[aria-disabled='false']:focus {
1593
+ outline: none;
1594
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
1595
+ }
1596
+ .charcoal-pagination-button:not(:disabled):not([aria-disabled]):focus-visible,
1597
+ .charcoal-pagination-button[aria-disabled='false']:focus-visible {
1598
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
1599
+ }
1600
+ .charcoal-pagination-button:not(:disabled):not([aria-disabled]):focus:not(:focus-visible),
1601
+ .charcoal-pagination-button[aria-disabled='false']:focus:not(:focus-visible) {
1602
+ box-shadow: none;
1603
+ }
1604
+ .charcoal-pagination-button[aria-current] {
1605
+ cursor: default;
1606
+ background-color: var(--charcoal-color-container-hud-default);
1607
+ color: var(--charcoal-color-text-on-hud-default);
1608
+ }
1609
+ .charcoal-pagination-button[aria-current]:not(:disabled):not([aria-disabled]):hover,
1610
+ .charcoal-pagination-button[aria-current]:not(:disabled):not([aria-disabled]):active {
1611
+ background-color: var(--charcoal-color-container-hud-default);
1612
+ color: var(--charcoal-color-text-on-hud-default);
1613
+ }
1614
+ /* stylelint-enable no-descending-specificity */
1615
+
1616
+ .charcoal-pagination-nav-button[data-hidden] {
1617
+ visibility: hidden;
1618
+ }
1619
+
1620
+ .charcoal-pagination-spacer,
1621
+ .charcoal-pagination-spacer:hover,
1622
+ .charcoal-pagination-spacer:active {
1623
+ cursor: default;
1624
+ color: var(--charcoal-color-text-tertiary-default);
1625
+ background: none;
1626
+ }
1627
+
1628
+ .charcoal-pagination-spacer.charcoal-icon-button:disabled {
1629
+ opacity: 1;
1630
+ }
1631
+ .charcoal-loading-spinner {
1632
+ box-sizing: content-box;
1633
+ margin: auto;
1634
+ padding: 16px;
1635
+ border-radius: 8px;
1636
+ font-size: 48px;
1637
+ width: 48px;
1638
+ height: 48px;
1639
+ opacity: 0.84;
1640
+ color: var(--charcoal-color-icon-tertiary-default);
1641
+ background-color: var(--charcoal-color-background-default);
1642
+ }
1643
+
1644
+ .charcoal-loading-spinner[data-transparent='true'] {
1645
+ background-color: transparent;
1646
+ }
1647
+
1648
+ @keyframes charcoal-loading-spinner-icon-scale-out {
1649
+ from {
1650
+ transform: scale(0);
1651
+ opacity: 1;
1652
+ }
1653
+ to {
1654
+ transform: scale(1);
1655
+ opacity: 0;
1656
+ }
1657
+ }
1658
+
1659
+ .charcoal-loading-spinner-icon {
1660
+ width: 1em;
1661
+ height: 1em;
1662
+ border-radius: 1em;
1663
+ background-color: currentColor;
1664
+ animation: charcoal-loading-spinner-icon-scale-out 1s infinite both ease-out;
1665
+ }
1666
+
1667
+ .charcoal-loading-spinner-icon[data-reset-animation] {
1668
+ animation: none;
1669
+ }
1670
+
1671
+ .charcoal-loading-spinner-icon[data-once='true'] {
1672
+ animation-iteration-count: 1;
1673
+ }
1674
+ .charcoal-modal-header-root {
1675
+ height: 64px;
1676
+ display: grid;
1677
+ align-content: center;
1678
+ justify-content: center;
1679
+ }
1680
+
1681
+ @media (max-width: 743px) {
1682
+ .charcoal-modal-header-root[data-bottom-sheet='true'],
1683
+ .charcoal-modal-header-root[data-bottom-sheet='full'] {
1684
+ height: 48px;
1685
+ }
1686
+ }
1687
+
1688
+ .charcoal-modal-header-title {
1689
+ color: var(--charcoal-color-text-default);
1690
+ font-size: 16px;
1691
+ line-height: 24px;
1692
+ font-weight: bold;
1693
+ display: flow-root;
1694
+ }
1695
+
1696
+ .charcoal-modal-align {
1697
+ padding-left: 16px;
1698
+ padding-right: 16px;
1699
+ }
1700
+
1701
+ .charcoal-modal-body {
1702
+ padding-bottom: 40px;
1703
+ }
1704
+
1705
+ .charcoal-modal-buttons {
1706
+ display: grid;
1707
+ grid-auto-flow: row;
1708
+ grid-row-gap: 8px;
1709
+
1710
+ padding-top: 16px;
1711
+ padding-left: 16px;
1712
+ padding-right: 16px;
1713
+ }
1714
+ .charcoal-dropdown-selector-root {
1715
+ display: grid;
1716
+ grid-template-columns: 1fr;
1717
+ grid-gap: 4px;
1718
+ width: 100%;
1719
+ }
1720
+
1721
+ .charcoal-dropdown-selector-root[aria-disabled='true'] {
1722
+ cursor: default;
1723
+ opacity: 0.32;
1724
+ }
1725
+
1726
+ .charcoal-dropdown-selector-button {
1727
+ display: grid;
1728
+ grid-template-columns: 1fr auto;
1729
+ justify-content: space-between;
1730
+ align-items: center;
1731
+
1732
+ height: 40px;
1733
+ width: 100%;
1734
+ box-sizing: border-box;
1735
+ border: none;
1736
+ cursor: pointer;
1737
+ gap: 4px;
1738
+
1739
+ padding-right: 8px;
1740
+ padding-left: 8px;
1741
+ background-color: var(--charcoal-color-container-secondary-default-a);
1742
+ border-radius: 4px;
1729
1743
 
1730
- color: var(--charcoal-color-text-tertiary-default);
1731
- background-color: transparent;
1732
- border-radius: 20px;
1733
1744
  transition:
1734
- 0.2s background-color,
1735
- 0.2s box-shadow;
1745
+ 0.2s box-shadow,
1746
+ 0.2s background-color;
1736
1747
  }
1737
- .charcoal-pagination-button:focus {
1738
- outline: none;
1739
- }
1740
- .charcoal-pagination-button::-moz-focus-inner {
1741
- border-style: none;
1742
- padding: 0;
1743
- }
1744
- .charcoal-pagination-button[hidden] {
1745
- visibility: hidden;
1746
- display: block;
1747
- }
1748
- .charcoal-pagination-button:not(:disabled):not([aria-disabled]):hover,
1749
- .charcoal-pagination-button[aria-disabled='false']:hover {
1750
- color: var(--charcoal-color-text-tertiary-default);
1751
- background-color: var(--charcoal-color-container-secondary-default);
1752
- }
1753
- .charcoal-pagination-button:not(:disabled):not([aria-disabled]):active,
1754
- .charcoal-pagination-button[aria-disabled='false']:active {
1755
- color: var(--charcoal-color-text-tertiary-press);
1756
- background-color: var(--charcoal-color-container-tertiary-press);
1757
- }
1758
- .charcoal-pagination-button:not(:disabled):not([aria-disabled]):focus,
1759
- .charcoal-pagination-button[aria-disabled='false']:focus {
1760
- outline: none;
1761
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
1762
- }
1763
- .charcoal-pagination-button:not(:disabled):not([aria-disabled]):focus-visible,
1764
- .charcoal-pagination-button[aria-disabled='false']:focus-visible {
1765
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
1766
- }
1767
- .charcoal-pagination-button:not(:disabled):not([aria-disabled]):focus:not(:focus-visible),
1768
- .charcoal-pagination-button[aria-disabled='false']:focus:not(:focus-visible) {
1769
- box-shadow: none;
1770
- }
1771
- .charcoal-pagination-button[aria-current] {
1748
+
1749
+ .charcoal-dropdown-selector-button:disabled {
1772
1750
  cursor: default;
1773
- background-color: var(--charcoal-color-container-hud-default);
1774
- color: var(--charcoal-color-text-on-hud-default);
1775
1751
  }
1776
- .charcoal-pagination-button[aria-current]:not(:disabled):not([aria-disabled]):hover,
1777
- .charcoal-pagination-button[aria-current]:not(:disabled):not([aria-disabled]):active {
1778
- background-color: var(--charcoal-color-container-hud-default);
1779
- color: var(--charcoal-color-text-on-hud-default);
1752
+
1753
+ .charcoal-dropdown-selector-button:not(:disabled):focus {
1754
+ outline: none;
1755
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
1780
1756
  }
1781
- /* stylelint-enable no-descending-specificity */
1782
1757
 
1783
- .charcoal-pagination-nav-button[data-hidden] {
1784
- visibility: hidden;
1785
- }
1758
+ .charcoal-dropdown-selector-button:not(:disabled):focus-visible {
1759
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
1760
+ }
1786
1761
 
1787
- .charcoal-pagination-spacer,
1788
- .charcoal-pagination-spacer:hover,
1789
- .charcoal-pagination-spacer:active {
1790
- cursor: default;
1791
- color: var(--charcoal-color-text-tertiary-default);
1792
- background: none;
1762
+ .charcoal-dropdown-selector-button:not(:disabled)[data-active='true'],
1763
+ .charcoal-dropdown-selector-button:not(:disabled):active {
1764
+ background-color: var(--charcoal-color-container-secondary-press-a);
1765
+ }
1766
+
1767
+ .charcoal-dropdown-selector-button:not(:disabled):hover {
1768
+ background-color: var(--charcoal-color-container-secondary-hover-a);
1769
+ }
1770
+
1771
+ .charcoal-dropdown-selector-button:not(:disabled):focus:not(:focus-visible) {
1772
+ box-shadow: none;
1773
+ }
1774
+
1775
+ .charcoal-dropdown-selector-button[aria-invalid='true'],
1776
+ .charcoal-dropdown-selector-button:not(:disabled)[aria-invalid='true']:focus:not(:focus-visible) {
1777
+ box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
1793
1778
  }
1794
1779
 
1795
- .charcoal-pagination-spacer.charcoal-icon-button:disabled {
1796
- opacity: 1;
1780
+ .charcoal-ui-dropdown-selector-text {
1781
+ text-align: left;
1782
+ font-size: 14px;
1783
+ line-height: 22px;
1784
+ display: flow-root;
1785
+ color: var(--charcoal-color-text-default);
1786
+ overflow: hidden;
1787
+ text-overflow: ellipsis;
1788
+ white-space: nowrap;
1789
+ }
1790
+
1791
+ .charcoal-ui-dropdown-selector-text[data-placeholder='true'] {
1792
+ color: var(--charcoal-color-text-placeholder-default);
1797
1793
  }
1794
+
1795
+ .charcoal-ui-dropdown-selector-icon {
1796
+ color: var(--charcoal-color-icon-secondary-default);
1797
+ }
1798
1798
  .charcoal-notification-region {
1799
1799
  left: 0;
1800
1800
  right: 0;
@@ -2008,160 +2008,89 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
2008
2008
  opacity: 0.32;
2009
2009
  cursor: default;
2010
2010
  }
2011
- .charcoal-menu-list {
2012
- padding: 0;
2013
- margin: 0;
2014
- }
2015
- .charcoal-field-label {
2016
- font-size: 14px;
2017
- line-height: 22px;
2018
- font-weight: bold;
2019
- display: flow-root;
2020
- color: var(--charcoal-color-text-default-text1);
2021
- }
2022
-
2023
- .charcoal-field-label-required-text {
2024
- font-size: 14px;
2025
- line-height: 22px;
2026
- display: flow-root;
2027
- color: var(--charcoal-color-text-secondary-default);
2028
- }
2029
-
2030
- .charcoal-field-label-sub-label {
2031
- font-size: 14px;
2032
- line-height: 22px;
2033
- display: flow-root;
2034
- color: var(--charcoal-color-text-tertiary-default);
2035
- transition:
2036
- 0.2s color,
2037
- 0.2s box-shadow;
2038
- }
2039
-
2040
- .charcoal-field-label-root {
2041
- display: inline-flex;
2042
- align-items: center;
2043
- }
2044
-
2045
- .charcoal-field-label-root > .charcoal-field-label-required-text {
2046
- margin-left: 4px;
2047
- }
2048
-
2049
- .charcoal-field-label-root > .charcoal-field-label-sub-label {
2050
- margin-left: auto;
2051
- }
2052
- .charcoal-checkbox-input {
2011
+ .charcoal-switch-input {
2012
+ cursor: pointer;
2053
2013
  -webkit-appearance: none;
2054
2014
  -moz-appearance: none;
2055
2015
  appearance: none;
2056
- display: flex;
2057
- cursor: pointer;
2058
- margin: 0;
2059
- width: 20px;
2060
- height: 20px;
2061
- border-radius: 4px;
2062
- transition:
2063
- 0.2s box-shadow,
2064
- 0.2s background-color;
2016
+ display: inline-flex;
2065
2017
  position: relative;
2066
2018
  box-sizing: border-box;
2019
+ width: 28px;
2020
+ border: 2px solid transparent;
2021
+
2022
+ transition-property: background-color, box-shadow;
2023
+ transition-duration: 0.2s;
2024
+
2025
+ outline: none;
2026
+ border-radius: 16px;
2027
+ height: 16px;
2028
+ margin: 0;
2029
+ background-color: var(--charcoal-color-container-neutral-default);
2067
2030
  }
2068
2031
 
2069
- .charcoal-checkbox-input:disabled,
2070
- .charcoal-checkbox-input[readonly] {
2032
+ .charcoal-switch-input:disabled,
2033
+ .charcoal-switch-input[readonly] {
2071
2034
  opacity: 0.32;
2072
2035
  cursor: default;
2073
2036
  }
2074
2037
 
2075
- .charcoal-checkbox-input:checked {
2076
- background-color: var(--charcoal-color-container-primary-default);
2077
- }
2078
-
2079
- .charcoal-checkbox-input:checked::after {
2038
+ .charcoal-switch-input::after {
2080
2039
  content: '';
2081
- background-color: white;
2082
- display: flex;
2083
- margin: auto;
2084
- width: 16px;
2085
- height: 16px;
2086
- clip-path: path(
2087
- 'M10.6 5a1.3 1.3 0 0 1 1.8 1.9l-5.7 5.6-3-2.9a1.3 1.3 0 1 1 2-1.9l1 1z'
2088
- );
2089
- }
2090
-
2091
- .charcoal-checkbox-input:not(:checked) {
2092
- border-width: 2px;
2093
- border-style: solid;
2094
- border-color: var(--charcoal-color-border-default);
2040
+ position: absolute;
2041
+ display: block;
2042
+ top: 0;
2043
+ left: 0;
2044
+ width: 12px;
2045
+ height: 12px;
2046
+ transform: translateX(0);
2047
+ transition: transform 0.2s;
2048
+ border-radius: 1024px;
2049
+ background-color: var(--charcoal-color-icon-on-primary-default);
2095
2050
  }
2096
2051
 
2097
- .charcoal-checkbox-input:not(:disabled):focus {
2098
- outline: none;
2099
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
2100
- }
2101
- .charcoal-checkbox-input:not(:disabled):focus-visible {
2102
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
2103
- }
2104
- .charcoal-checkbox-input:not(:disabled):focus:not(:focus-visible) {
2105
- box-shadow: none;
2052
+ .charcoal-switch-input:checked::after {
2053
+ transform: translateX(12px);
2054
+ transition: transform 0.2s;
2106
2055
  }
2107
2056
 
2108
- .charcoal-checkbox-input:checked:not(:disabled):hover {
2109
- background-color: var(--charcoal-color-container-primary-hover);
2110
- }
2111
- .charcoal-checkbox-input:checked:not(:disabled):active {
2112
- background-color: var(--charcoal-color-container-primary-press);
2057
+ .charcoal-switch-input:checked {
2058
+ background-color: var(--charcoal-color-container-primary-default);
2113
2059
  }
2114
2060
 
2115
- .charcoal-checkbox-input[aria-invalid='true'],
2116
- .charcoal-checkbox-input[aria-invalid='true']:not(:disabled):focus {
2117
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
2061
+ .charcoal-switch-input:not(:disabled):hover {
2062
+ background-color: var(--charcoal-color-container-neutral-hover);
2118
2063
  }
2119
2064
 
2120
- .charcoal-checkbox-input[data-rounded='true'] {
2121
- border-radius: 10px;
2122
- background-color: var(--charcoal-color-container-secondary-default);
2123
- border: 2px solid transparent;
2065
+ .charcoal-switch-input:not(:disabled):active {
2066
+ background-color: var(--charcoal-color-container-neutral-press);
2124
2067
  }
2125
2068
 
2126
- .charcoal-checkbox-input[data-rounded='true']:checked {
2127
- background-color: var(--charcoal-color-container-primary-default);
2069
+ .charcoal-switch-input:not(:disabled):focus {
2070
+ outline: none;
2071
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
2128
2072
  }
2129
-
2130
- .charcoal-checkbox-input[data-rounded='true']:not(:disabled):hover {
2131
- background-color: var(--charcoal-color-container-secondary-hover);
2073
+ .charcoal-switch-input:not(:disabled):focus-visible {
2074
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
2132
2075
  }
2133
- .charcoal-checkbox-input[data-rounded='true']:not(:disabled):active {
2134
- background-color: var(--charcoal-color-container-secondary-press);
2076
+ .charcoal-switch-input:not(:disabled):focus:not(:focus-visible) {
2077
+ box-shadow: none;
2135
2078
  }
2136
2079
 
2137
- .charcoal-checkbox-input[data-rounded='true']:not(:disabled):focus-visible {
2138
- box-shadow: 0 0 0 6px rgba(0, 150, 250, 0.32);
2080
+ .charcoal-switch-input:not(:disabled)::after:hover {
2081
+ background-color: var(--charcoal-color-icon-on-primary-hover);
2139
2082
  }
2140
2083
 
2141
- .charcoal-checkbox-input[data-rounded='true']:checked:not(:disabled):hover {
2142
- background-color: var(--charcoal-color-container-primary-hover);
2143
- }
2144
- .charcoal-checkbox-input[data-rounded='true']:checked:not(:disabled):active {
2145
- background-color: var(--charcoal-color-container-primary-press);
2084
+ .charcoal-switch-input:not(:disabled)::after:active {
2085
+ background-color: var(--charcoal-color-icon-on-primary-press);
2146
2086
  }
2147
2087
 
2148
- .charcoal-checkbox-input[data-rounded='true'][aria-invalid='true'],
2149
- .charcoal-checkbox-input[data-rounded='true'][aria-invalid='true']:not(
2150
- :disabled
2151
- ):focus {
2152
- box-shadow: 0 0 0 6px rgba(255, 43, 0, 0.32);
2088
+ .charcoal-switch-input:not(:disabled):checked:hover {
2089
+ background-color: var(--charcoal-color-container-primary-hover);
2153
2090
  }
2154
2091
 
2155
- .charcoal-checkbox-input[data-rounded='true']::before {
2156
- content: '';
2157
- width: 24px;
2158
- height: 24px;
2159
- position: absolute;
2160
- top: -4px;
2161
- left: -4px;
2162
- border-radius: 12px;
2163
- border: 2px solid #fff;
2164
- box-sizing: border-box;
2092
+ .charcoal-switch-input:not(:disabled):checked:active {
2093
+ background-color: var(--charcoal-color-container-primary-press);
2165
2094
  }
2166
2095
  .charcoal-radio-input {
2167
2096
  -webkit-appearance: none;
@@ -2251,90 +2180,43 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
2251
2180
  .charcoal-radio-input:checked:not(:disabled):active::after {
2252
2181
  background-color: var(--charcoal-color-icon-on-primary-press);
2253
2182
  }
2254
- .charcoal-switch-input {
2255
- cursor: pointer;
2256
- -webkit-appearance: none;
2257
- -moz-appearance: none;
2258
- appearance: none;
2259
- display: inline-flex;
2260
- position: relative;
2261
- box-sizing: border-box;
2262
- width: 28px;
2263
- border: 2px solid transparent;
2264
-
2265
- transition-property: background-color, box-shadow;
2266
- transition-duration: 0.2s;
2267
-
2268
- outline: none;
2269
- border-radius: 16px;
2270
- height: 16px;
2271
- margin: 0;
2272
- background-color: var(--charcoal-color-container-neutral-default);
2273
- }
2274
-
2275
- .charcoal-switch-input:disabled,
2276
- .charcoal-switch-input[readonly] {
2277
- opacity: 0.32;
2278
- cursor: default;
2279
- }
2280
-
2281
- .charcoal-switch-input::after {
2282
- content: '';
2283
- position: absolute;
2284
- display: block;
2285
- top: 0;
2286
- left: 0;
2287
- width: 12px;
2288
- height: 12px;
2289
- transform: translateX(0);
2290
- transition: transform 0.2s;
2291
- border-radius: 1024px;
2292
- background-color: var(--charcoal-color-icon-on-primary-default);
2293
- }
2294
-
2295
- .charcoal-switch-input:checked::after {
2296
- transform: translateX(12px);
2297
- transition: transform 0.2s;
2298
- }
2299
-
2300
- .charcoal-switch-input:checked {
2301
- background-color: var(--charcoal-color-container-primary-default);
2302
- }
2303
-
2304
- .charcoal-switch-input:not(:disabled):hover {
2305
- background-color: var(--charcoal-color-container-neutral-hover);
2306
- }
2307
-
2308
- .charcoal-switch-input:not(:disabled):active {
2309
- background-color: var(--charcoal-color-container-neutral-press);
2183
+ .charcoal-field-label {
2184
+ font-size: 14px;
2185
+ line-height: 22px;
2186
+ font-weight: bold;
2187
+ display: flow-root;
2188
+ color: var(--charcoal-color-text-default-text1);
2310
2189
  }
2311
2190
 
2312
- .charcoal-switch-input:not(:disabled):focus {
2313
- outline: none;
2314
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
2315
- }
2316
- .charcoal-switch-input:not(:disabled):focus-visible {
2317
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
2318
- }
2319
- .charcoal-switch-input:not(:disabled):focus:not(:focus-visible) {
2320
- box-shadow: none;
2191
+ .charcoal-field-label-required-text {
2192
+ font-size: 14px;
2193
+ line-height: 22px;
2194
+ display: flow-root;
2195
+ color: var(--charcoal-color-text-secondary-default);
2321
2196
  }
2322
2197
 
2323
- .charcoal-switch-input:not(:disabled)::after:hover {
2324
- background-color: var(--charcoal-color-icon-on-primary-hover);
2198
+ .charcoal-field-label-sub-label {
2199
+ font-size: 14px;
2200
+ line-height: 22px;
2201
+ display: flow-root;
2202
+ color: var(--charcoal-color-text-tertiary-default);
2203
+ transition:
2204
+ 0.2s color,
2205
+ 0.2s box-shadow;
2325
2206
  }
2326
2207
 
2327
- .charcoal-switch-input:not(:disabled)::after:active {
2328
- background-color: var(--charcoal-color-icon-on-primary-press);
2208
+ .charcoal-field-label-root {
2209
+ display: inline-flex;
2210
+ align-items: center;
2329
2211
  }
2330
2212
 
2331
- .charcoal-switch-input:not(:disabled):checked:hover {
2332
- background-color: var(--charcoal-color-container-primary-hover);
2333
- }
2213
+ .charcoal-field-label-root > .charcoal-field-label-required-text {
2214
+ margin-left: 4px;
2215
+ }
2334
2216
 
2335
- .charcoal-switch-input:not(:disabled):checked:active {
2336
- background-color: var(--charcoal-color-container-primary-press);
2337
- }
2217
+ .charcoal-field-label-root > .charcoal-field-label-sub-label {
2218
+ margin-left: auto;
2219
+ }
2338
2220
  .charcoal-modal-dialog {
2339
2221
  margin: auto;
2340
2222
  position: relative;
@@ -2380,6 +2262,124 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
2380
2262
  .charcoal-modal-dialog:focus {
2381
2263
  outline: none;
2382
2264
  }
2265
+ .charcoal-checkbox-input {
2266
+ -webkit-appearance: none;
2267
+ -moz-appearance: none;
2268
+ appearance: none;
2269
+ display: flex;
2270
+ cursor: pointer;
2271
+ margin: 0;
2272
+ width: 20px;
2273
+ height: 20px;
2274
+ border-radius: 4px;
2275
+ transition:
2276
+ 0.2s box-shadow,
2277
+ 0.2s background-color;
2278
+ position: relative;
2279
+ box-sizing: border-box;
2280
+ }
2281
+
2282
+ .charcoal-checkbox-input:disabled,
2283
+ .charcoal-checkbox-input[readonly] {
2284
+ opacity: 0.32;
2285
+ cursor: default;
2286
+ }
2287
+
2288
+ .charcoal-checkbox-input:checked {
2289
+ background-color: var(--charcoal-color-container-primary-default);
2290
+ }
2291
+
2292
+ .charcoal-checkbox-input:checked::after {
2293
+ content: '';
2294
+ background-color: white;
2295
+ display: flex;
2296
+ margin: auto;
2297
+ width: 16px;
2298
+ height: 16px;
2299
+ clip-path: path(
2300
+ 'M10.6 5a1.3 1.3 0 0 1 1.8 1.9l-5.7 5.6-3-2.9a1.3 1.3 0 1 1 2-1.9l1 1z'
2301
+ );
2302
+ }
2303
+
2304
+ .charcoal-checkbox-input:not(:checked) {
2305
+ border-width: 2px;
2306
+ border-style: solid;
2307
+ border-color: var(--charcoal-color-border-default);
2308
+ }
2309
+
2310
+ .charcoal-checkbox-input:not(:disabled):focus {
2311
+ outline: none;
2312
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
2313
+ }
2314
+ .charcoal-checkbox-input:not(:disabled):focus-visible {
2315
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
2316
+ }
2317
+ .charcoal-checkbox-input:not(:disabled):focus:not(:focus-visible) {
2318
+ box-shadow: none;
2319
+ }
2320
+
2321
+ .charcoal-checkbox-input:checked:not(:disabled):hover {
2322
+ background-color: var(--charcoal-color-container-primary-hover);
2323
+ }
2324
+ .charcoal-checkbox-input:checked:not(:disabled):active {
2325
+ background-color: var(--charcoal-color-container-primary-press);
2326
+ }
2327
+
2328
+ .charcoal-checkbox-input[aria-invalid='true'],
2329
+ .charcoal-checkbox-input[aria-invalid='true']:not(:disabled):focus {
2330
+ box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
2331
+ }
2332
+
2333
+ .charcoal-checkbox-input[data-rounded='true'] {
2334
+ border-radius: 10px;
2335
+ background-color: var(--charcoal-color-container-secondary-default);
2336
+ border: 2px solid transparent;
2337
+ }
2338
+
2339
+ .charcoal-checkbox-input[data-rounded='true']:checked {
2340
+ background-color: var(--charcoal-color-container-primary-default);
2341
+ }
2342
+
2343
+ .charcoal-checkbox-input[data-rounded='true']:not(:disabled):hover {
2344
+ background-color: var(--charcoal-color-container-secondary-hover);
2345
+ }
2346
+ .charcoal-checkbox-input[data-rounded='true']:not(:disabled):active {
2347
+ background-color: var(--charcoal-color-container-secondary-press);
2348
+ }
2349
+
2350
+ .charcoal-checkbox-input[data-rounded='true']:not(:disabled):focus-visible {
2351
+ box-shadow: 0 0 0 6px rgba(0, 150, 250, 0.32);
2352
+ }
2353
+
2354
+ .charcoal-checkbox-input[data-rounded='true']:checked:not(:disabled):hover {
2355
+ background-color: var(--charcoal-color-container-primary-hover);
2356
+ }
2357
+ .charcoal-checkbox-input[data-rounded='true']:checked:not(:disabled):active {
2358
+ background-color: var(--charcoal-color-container-primary-press);
2359
+ }
2360
+
2361
+ .charcoal-checkbox-input[data-rounded='true'][aria-invalid='true'],
2362
+ .charcoal-checkbox-input[data-rounded='true'][aria-invalid='true']:not(
2363
+ :disabled
2364
+ ):focus {
2365
+ box-shadow: 0 0 0 6px rgba(255, 43, 0, 0.32);
2366
+ }
2367
+
2368
+ .charcoal-checkbox-input[data-rounded='true']::before {
2369
+ content: '';
2370
+ width: 24px;
2371
+ height: 24px;
2372
+ position: absolute;
2373
+ top: -4px;
2374
+ left: -4px;
2375
+ border-radius: 12px;
2376
+ border: 2px solid #fff;
2377
+ box-sizing: border-box;
2378
+ }
2379
+ .charcoal-menu-list {
2380
+ padding: 0;
2381
+ margin: 0;
2382
+ }
2383
2383
  .charcoal-popover {
2384
2384
  margin: 4px 0;
2385
2385
  list-style: none;