@charcoal-ui/react 6.1.1-beta.1 → 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,29 +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-switch__label {
10
- display: inline-grid;
11
- grid-template-columns: auto 1fr;
12
- align-items: center;
9
+ .charcoal-icon-button {
13
10
  cursor: pointer;
14
- outline: 0;
15
- gap: 4px;
11
+ -webkit-appearance: none;
12
+ -moz-appearance: none;
13
+ appearance: none;
14
+ background: transparent;
15
+ padding: 0;
16
+ border-style: none;
17
+ outline: none;
18
+ color: inherit;
19
+ text-rendering: inherit;
20
+ letter-spacing: inherit;
21
+ word-spacing: inherit;
22
+ text-decoration: none;
23
+ font: inherit;
24
+ margin: 0;
25
+ overflow: visible;
26
+ text-transform: none;
27
+
28
+ -webkit-user-select: none;
29
+
30
+ -moz-user-select: none;
31
+
32
+ user-select: none;
33
+ display: flex;
34
+ align-items: center;
35
+ justify-content: center;
36
+ border-radius: 999999px;
37
+ transition:
38
+ 0.2s background-color,
39
+ 0.2s box-shadow;
16
40
  }
17
41
 
18
- .charcoal-switch__label[aria-disabled='true'] {
19
- opacity: 0.32;
42
+ .charcoal-icon-button:disabled,
43
+ .charcoal-icon-button[aria-disabled]:not([aria-disabled='false']) {
20
44
  cursor: default;
45
+ opacity: 0.32;
21
46
  }
22
47
 
23
- .charcoal-switch__label[aria-disabled='true'] > input {
24
- opacity: 1;
48
+ .charcoal-icon-button:focus {
49
+ outline: none;
50
+ }
51
+
52
+ .charcoal-icon-button::-moz-focus-inner {
53
+ border-style: none;
54
+ padding: 0;
55
+ }
56
+
57
+ .charcoal-icon-button[data-size='XS'] {
58
+ width: 20px;
59
+ height: 20px;
60
+ }
61
+
62
+ .charcoal-icon-button[data-size='S'] {
63
+ width: 32px;
64
+ height: 32px;
65
+ }
66
+
67
+ .charcoal-icon-button[data-size='M'] {
68
+ width: 40px;
69
+ height: 40px;
70
+ }
71
+
72
+ .charcoal-icon-button[data-variant='Default'] {
73
+ color: var(--charcoal-color-icon-tertiary-default);
74
+ background-color: transparent;
75
+ }
76
+
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);
25
81
  }
26
82
 
27
- .charcoal-switch__label_div {
28
- font-size: 14px;
29
- line-height: 22px;
30
- color: var(--charcoal-color-text-default);
31
- }
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);
98
+ }
99
+
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
+ }
105
+
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
+ }
111
+
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
+ }
117
+
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
+ }
123
+
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
+ }
32
133
  .charcoal-button {
33
134
  -webkit-appearance: none;
34
135
  -moz-appearance: none;
@@ -179,105 +280,6 @@
179
280
  .charcoal-button[data-full-width='true'] {
180
281
  width: 100%;
181
282
  }
182
- .charcoal-text-field-root {
183
- display: grid;
184
- grid-template-columns: 1fr;
185
- grid-gap: 4px;
186
- }
187
-
188
- .charcoal-text-field-root[aria-disabled='true'] {
189
- opacity: 0.32;
190
- }
191
-
192
- .charcoal-text-field-container {
193
- display: flex;
194
- height: 40px;
195
- transition:
196
- 0.2s background-color,
197
- 0.2s box-shadow;
198
- color: var(--charcoal-color-text-secondary-default);
199
- background-color: var(--charcoal-color-container-secondary-default-a);
200
- border-radius: 4px;
201
- padding: 0 8px;
202
- line-height: 22px;
203
- font-size: 14px;
204
- }
205
-
206
- .charcoal-text-field-container[data-invalid='true'] {
207
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
208
- }
209
-
210
- .charcoal-text-field-container:not([aria-disabled='true']):hover {
211
- background-color: var(--charcoal-color-container-secondary-hover-a);
212
- }
213
-
214
- .charcoal-text-field-container:not([aria-disabled='true']):focus-within {
215
- outline: none;
216
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
217
- }
218
-
219
- .charcoal-text-field-container:not([aria-disabled='true'])[data-invalid='true']:focus-within {
220
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
221
- }
222
-
223
- .charcoal-text-field-prefix {
224
- display: flex;
225
- align-items: center;
226
- margin-right: 4px;
227
- }
228
-
229
- .charcoal-text-field-suffix {
230
- display: flex;
231
- align-items: center;
232
- gap: 8px;
233
- margin-left: 4px;
234
- }
235
-
236
- .charcoal-text-field-input-root {
237
- flex: 1;
238
- min-width: 0;
239
- overflow: hidden;
240
- }
241
-
242
- .charcoal-text-field-input {
243
- border: none;
244
- box-sizing: border-box;
245
- outline: none;
246
- font-family: inherit;
247
-
248
- /* Prevent zooming for iOS Safari */
249
- transform-origin: top left;
250
- transform: scale(0.875);
251
- width: calc(100% / 0.875);
252
- height: calc(100% / 0.875);
253
- font-size: calc(14px / 0.875);
254
- line-height: calc(22px / 0.875);
255
- padding-left: 0;
256
- padding-right: 0;
257
- border-radius: calc(4px / 0.875);
258
-
259
- /* Display box-shadow for iOS Safari */
260
- -webkit-appearance: none;
261
- -moz-appearance: none;
262
- appearance: none;
263
- background: transparent;
264
-
265
- color: var(--charcoal-color-text-secondary-default);
266
- }
267
-
268
- .charcoal-text-field-input::-moz-placeholder {
269
- color: var(--charcoal-color-text-placeholder-default);
270
- }
271
-
272
- .charcoal-text-field-input::placeholder {
273
- color: var(--charcoal-color-text-placeholder-default);
274
- }
275
-
276
- .charcoal-text-field-line-counter {
277
- line-height: 22px;
278
- font-size: 14px;
279
- color: var(--charcoal-color-text-tertiary-default);
280
- }
281
283
  .charcoal-clickable {
282
284
  cursor: pointer;
283
285
 
@@ -321,416 +323,235 @@
321
323
  border-style: none;
322
324
  padding: 0;
323
325
  }
324
- .charcoal-icon-button {
326
+ .charcoal-radio__label {
327
+ display: grid;
328
+ grid-template-columns: auto 1fr;
329
+ grid-gap: 4px;
330
+ align-items: center;
325
331
  cursor: pointer;
326
- -webkit-appearance: none;
327
- -moz-appearance: none;
328
- appearance: none;
329
- background: transparent;
330
- padding: 0;
331
- border-style: none;
332
- outline: none;
333
- color: inherit;
334
- text-rendering: inherit;
335
- letter-spacing: inherit;
336
- word-spacing: inherit;
337
- text-decoration: none;
338
- font: inherit;
339
- margin: 0;
340
- overflow: visible;
341
- text-transform: none;
342
-
343
- -webkit-user-select: none;
332
+ }
344
333
 
345
- -moz-user-select: none;
346
-
347
- user-select: none;
348
- display: flex;
349
- align-items: center;
350
- justify-content: center;
351
- border-radius: 999999px;
352
- transition:
353
- 0.2s background-color,
354
- 0.2s box-shadow;
355
- }
356
-
357
- .charcoal-icon-button:disabled,
358
- .charcoal-icon-button[aria-disabled]:not([aria-disabled='false']) {
359
- cursor: default;
334
+ .charcoal-radio__label[aria-disabled]:not([aria-disabled='false']) {
360
335
  opacity: 0.32;
336
+ cursor: default;
361
337
  }
362
338
 
363
- .charcoal-icon-button:focus {
364
- outline: none;
365
- }
366
-
367
- .charcoal-icon-button::-moz-focus-inner {
368
- border-style: none;
369
- padding: 0;
370
- }
371
-
372
- .charcoal-icon-button[data-size='XS'] {
373
- width: 20px;
374
- height: 20px;
375
- }
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
+ }
376
351
 
377
- .charcoal-icon-button[data-size='S'] {
378
- width: 32px;
379
- height: 32px;
352
+ .charcoal-hint-text[data-context='page'] {
353
+ justify-content: center;
380
354
  }
381
355
 
382
- .charcoal-icon-button[data-size='M'] {
383
- width: 40px;
384
- height: 40px;
385
- }
356
+ @media (min-width: 744px) {
386
357
 
387
- .charcoal-icon-button[data-variant='Default'] {
388
- color: var(--charcoal-color-icon-tertiary-default);
389
- background-color: transparent;
358
+ .charcoal-hint-text[data-context='page'] {
359
+ padding: 20px 40px
390
360
  }
391
-
392
- .charcoal-icon-button[data-variant='Default'][data-active='true']:not(:disabled):not([aria-disabled]),
393
- .charcoal-icon-button[data-variant='Default'][data-active='true'][aria-disabled='false'] {
394
- color: var(--charcoal-color-icon-tertiary-press);
395
- background-color: var(--charcoal-color-container-press-a);
396
361
  }
397
362
 
398
- .charcoal-icon-button[data-variant='Default'][data-active='false']:not(:disabled):not([aria-disabled]):hover,
399
- .charcoal-icon-button[data-variant='Default'][data-active='false'][aria-disabled='false']:hover {
400
- color: var(--charcoal-color-icon-tertiary-hover);
401
- background-color: var(--charcoal-color-container-hover-a);
402
- }
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
+ }
403
370
 
404
- .charcoal-icon-button[data-variant='Default'][data-active='false']:not(:disabled):not([aria-disabled]):active,
405
- .charcoal-icon-button[data-variant='Default'][data-active='false'][aria-disabled='false']:active {
406
- color: var(--charcoal-color-icon-tertiary-press);
407
- background-color: var(--charcoal-color-container-press-a);
408
- }
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;
409
385
 
410
- .charcoal-icon-button[data-variant='Overlay'] {
411
- color: var(--charcoal-color-icon-on-on-img-default);
412
- background-color: var(--charcoal-color-container-on-img-default);
413
- }
386
+ display: flex;
387
+ align-items: center;
388
+ width: 100%;
389
+ margin-left: 20px;
390
+ }
414
391
 
415
- .charcoal-icon-button[data-variant='Overlay'][data-active='true']:not(:disabled):not([aria-disabled]),
416
- .charcoal-icon-button[data-variant='Overlay'][data-active='true'][aria-disabled='false'] {
417
- color: var(--charcoal-color-icon-on-on-img-press);
418
- background-color: var(--charcoal-color-container-on-img-press);
419
- }
392
+ .charcoal-dropdown-selector-menu-item[data-selected='true'] {
393
+ margin-left: 0px;
394
+ }
420
395
 
421
- .charcoal-icon-button[data-variant='Overlay'][data-active='false']:not(:disabled):not([aria-disabled]):hover,
422
- .charcoal-icon-button[data-variant='Overlay'][data-active='false'][aria-disabled='false']:hover {
423
- color: var(--charcoal-color-icon-on-on-img-hover);
424
- background-color: var(--charcoal-color-container-on-img-hover);
425
- }
396
+ .charcoal-dropdown-selector-menu-item-icon {
397
+ color: var(--charcoal-color-text-secondary-default);
398
+ padding-right: 4px;
399
+ }
426
400
 
427
- .charcoal-icon-button[data-variant='Overlay'][data-active='false']:not(:disabled):not([aria-disabled]):active,
428
- .charcoal-icon-button[data-variant='Overlay'][data-active='false'][aria-disabled='false']:active {
429
- color: var(--charcoal-color-icon-on-on-img-press);
430
- background-color: var(--charcoal-color-container-on-img-press);
431
- }
401
+ .charcoal-dropdown-selector-menu-item-container {
402
+ display: flex;
403
+ align-items: center;
404
+ }
432
405
 
433
- .charcoal-icon-button:not(:disabled):not([aria-disabled]):focus,
434
- .charcoal-icon-button[aria-disabled='false']:focus {
435
- outline: none;
436
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
437
- }
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;
438
411
 
439
- .charcoal-icon-button:not(:disabled):not([aria-disabled]):focus-visible,
440
- .charcoal-icon-button[aria-disabled='false']:focus-visible {
441
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
442
- }
412
+ display: flex;
413
+ align-items: center;
414
+ margin-left: 20px;
415
+ }
443
416
 
444
- .charcoal-icon-button:not(:disabled):not([aria-disabled]):focus:not(:focus-visible),
445
- .charcoal-icon-button[aria-disabled='false']:focus:not(:focus-visible) {
446
- box-shadow: none;
447
- }
448
- .charcoal-text-area-root {
417
+ .charcoal-dropdown-selector-menu-fullwidth {
418
+ width: 100%;
419
+ }
420
+ .charcoal-multi-select {
449
421
  display: grid;
450
- grid-template-columns: 1fr;
451
- grid-gap: 4px;
422
+ grid-template-columns: auto 1fr;
423
+ align-items: center;
424
+ position: relative;
425
+ cursor: pointer;
426
+ gap: 4px;
452
427
  }
453
428
 
454
- .charcoal-text-area-root[aria-disabled='true'] {
429
+ .charcoal-multi-select:disabled,
430
+ .charcoal-multi-select[aria-disabled]:not([aria-disabled='false']) {
455
431
  opacity: 0.32;
432
+ cursor: default;
456
433
  }
457
434
 
458
- .charcoal-text-area-container {
459
- /* Runtime variable overridden by the React component. */
460
- --charcoal-text-area-rows: 4;
435
+ .charcoal-multi-select-label {
436
+ display: flow-root;
437
+ align-items: center;
438
+ font-size: 14px;
439
+ line-height: 22px;
440
+ color: var(--charcoal-color-text-default);
441
+ }
461
442
 
462
- position: relative;
463
- overflow: hidden;
443
+ .charcoal-multi-select-label::before {
444
+ display: block;
445
+ width: 0;
446
+ height: 0;
447
+ content: '';
448
+ margin-top: -4px;
449
+ }
464
450
 
465
- color: var(--charcoal-color-text-secondary-default);
466
- background-color: var(--charcoal-color-container-secondary-default-a);
467
- border-radius: 4px;
451
+ .charcoal-multi-select-label::after {
452
+ display: block;
453
+ width: 0;
454
+ height: 0;
455
+ content: '';
456
+ margin-bottom: -4px;
457
+ }
458
+
459
+ .charcoal-multi-select-input[type='checkbox'] {
460
+ -webkit-appearance: none;
461
+ -moz-appearance: none;
462
+ appearance: none;
463
+ display: block;
464
+ width: 20px;
465
+ height: 20px;
466
+ margin: 0;
467
+ background-color: var(--charcoal-color-container-neutral-default);
468
+ border-radius: 999999px;
468
469
  transition:
469
470
  0.2s background-color,
470
471
  0.2s box-shadow;
471
- height: calc(22px * var(--charcoal-text-area-rows) + 18px);
472
472
  }
473
473
 
474
- .charcoal-text-area-container[aria-invalid='true'] {
475
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
474
+ .charcoal-multi-select-input[type='checkbox']:checked {
475
+ background-color: var(--charcoal-color-container-primary-default);
476
476
  }
477
477
 
478
- .charcoal-text-area-container:focus-within {
478
+ .charcoal-multi-select-input[type='checkbox']:focus {
479
479
  outline: none;
480
480
  box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
481
481
  }
482
482
 
483
- .charcoal-text-area-container:has([data-no-bottom-padding='true']) {
484
- height: calc(22px * (var(--charcoal-text-area-rows) + 1) + 18px);
483
+ .charcoal-multi-select-input[type='checkbox']:focus-visible {
484
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
485
485
  }
486
486
 
487
- .charcoal-text-area-container:not([aria-disabled='true']):hover {
488
- background-color: var(--charcoal-color-container-secondary-hover-a);
487
+ .charcoal-multi-select-input[type='checkbox']:focus:not(:focus-visible) {
488
+ box-shadow: none;
489
489
  }
490
490
 
491
- .charcoal-text-area-container[aria-invalid='true']:focus-within {
492
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
491
+ .charcoal-multi-select-input[type='checkbox']:hover:not(:disabled):not([aria-disabled]),
492
+ .charcoal-multi-select-input[type='checkbox']:hover[aria-disabled='false'] {
493
+ background-color: var(--charcoal-color-container-neutral-hover);
493
494
  }
494
495
 
495
- .charcoal-text-area-textarea {
496
- border: none;
497
- outline: none;
498
- resize: none;
499
- font-family: inherit;
500
- color: inherit;
501
- box-sizing: border-box;
496
+ .charcoal-multi-select-input[type='checkbox']:active:not(:disabled):not([aria-disabled]),
497
+ .charcoal-multi-select-input[type='checkbox']:active[aria-disabled='false'] {
498
+ background-color: var(--charcoal-color-container-neutral-press);
499
+ }
502
500
 
503
- /* Prevent zooming for iOS Safari */
504
- --charcoal-textarea-safari-prevent-zoom-scale: 0.875;
505
- --charcoal-textarea-line-height: calc(
506
- 22px / var(--charcoal-textarea-safari-prevent-zoom-scale)
507
- );
508
- --charcoal-textarea-padding-y: calc(
509
- 8px / var(--charcoal-textarea-safari-prevent-zoom-scale)
510
- );
511
- --charcoal-textarea-padding-x: calc(
512
- 9px / var(--charcoal-textarea-safari-prevent-zoom-scale)
513
- );
501
+ .charcoal-multi-select-input[type='checkbox']:checked:hover:not(:disabled):not([aria-disabled]),
502
+ .charcoal-multi-select-input[type='checkbox']:checked:hover[aria-disabled='false'] {
503
+ background-color: var(--charcoal-color-container-primary-hover);
504
+ }
514
505
 
515
- transform-origin: top left;
516
- transform: scale(var(--charcoal-textarea-safari-prevent-zoom-scale));
517
- width: calc(100% / var(--charcoal-textarea-safari-prevent-zoom-scale));
518
- font-size: calc(14px / var(--charcoal-textarea-safari-prevent-zoom-scale));
519
- line-height: var(--charcoal-textarea-line-height);
520
- padding: var(--charcoal-textarea-padding-y) var(--charcoal-textarea-padding-x);
521
- height: calc(
522
- var(--charcoal-textarea-line-height) * var(--charcoal-text-area-rows) +
523
- var(--charcoal-textarea-padding-y) * 2
524
- );
525
-
526
- /* Display box-shadow for iOS Safari */
527
- -webkit-appearance: none;
528
- -moz-appearance: none;
529
- appearance: none;
530
-
531
- background: none;
532
- }
506
+ .charcoal-multi-select-input[type='checkbox']:checked:active:not(:disabled):not([aria-disabled]),
507
+ .charcoal-multi-select-input[type='checkbox']:checked:active[aria-disabled='false'] {
508
+ background-color: var(--charcoal-color-container-primary-press);
509
+ }
533
510
 
534
- .charcoal-text-area-textarea[data-no-bottom-padding='true'] {
535
- padding: var(--charcoal-textarea-padding-y)
536
- var(--charcoal-textarea-padding-x) 0;
537
- height: calc(
538
- var(--charcoal-textarea-line-height) * var(--charcoal-text-area-rows) +
539
- var(--charcoal-textarea-padding-y)
540
- );
511
+ .charcoal-multi-select-input[type='checkbox'][aria-invalid='true'][data-overlay='false']:not(:disabled):not(
512
+ [aria-disabled]
513
+ ) {
514
+ box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
541
515
  }
542
516
 
543
- .charcoal-text-area-textarea::-moz-placeholder {
544
- color: var(--charcoal-color-text-placeholder-default);
517
+ .charcoal-multi-select-input[type='checkbox'][aria-invalid='true'][data-overlay='false'][aria-disabled='false'] {
518
+ box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
545
519
  }
546
520
 
547
- .charcoal-text-area-textarea::placeholder {
548
- color: var(--charcoal-color-text-placeholder-default);
521
+ .charcoal-multi-select-input[type='checkbox'][data-overlay='true'] {
522
+ background-color: var(--charcoal-color-container-on-img-default);
549
523
  }
550
524
 
551
- .charcoal-text-area-counter {
525
+ .charcoal-multi-select-overlay {
552
526
  position: absolute;
553
- bottom: 9px;
554
- right: 8px;
555
-
556
- line-height: 22px;
557
- font-size: 14px;
558
- color: var(--charcoal-color-text-tertiary-default);
559
- }
560
- .charcoal-modal-background {
561
- overflow: auto;
527
+ top: -2px;
528
+ left: -2px;
529
+ box-sizing: border-box;
562
530
  display: flex;
563
- position: fixed;
564
- top: 0;
565
- left: 0;
566
- width: 100%;
567
- height: 100%;
531
+ align-items: center;
568
532
  justify-content: center;
569
- padding: 40px 0;
570
- box-sizing: border-box;
571
-
572
- background-color: var(--charcoal-color-background-overlay);
573
- }
574
-
575
- @media (max-width: 743px) {
576
- .charcoal-modal-background[data-bottom-sheet='true'],
577
- .charcoal-modal-background[data-bottom-sheet='full'] {
578
- padding: 0;
579
- }
580
- }
581
-
582
- /* easeOutQuart。duration は useTransitionPresence の MODAL_TRANSITION_DURATION_MS と一致させること。
583
- transition は entering / exiting に限定し、開いたままテーマ切り替え等で
584
- 色や transform が変わってもアニメーションしないようにする */
585
- .charcoal-modal-background[data-animation] {
586
- overflow: hidden;
587
- }
588
-
589
- .charcoal-modal-background[data-animation='entering'],
590
- .charcoal-modal-background[data-animation='exiting'] {
591
- transition: background-color 400ms cubic-bezier(0.25, 1, 0.5, 1);
592
- }
593
-
594
- /* 閉じアニメーション中はクリックを下のページへ通す(transitionend が来ない環境で
595
- 透明なオーバーレイがタップを奪い続けるのも防ぐ) */
596
- .charcoal-modal-background[data-animation='exited'],
597
- .charcoal-modal-background[data-animation='exiting'] {
598
- background-color: transparent;
599
- pointer-events: none;
600
- }
601
-
602
- .charcoal-modal-background[data-animation='entered'] {
603
- overflow: auto;
604
- }
605
-
606
- .charcoal-modal-background[data-animation='entering'] > .charcoal-modal-dialog,
607
- .charcoal-modal-background[data-animation='exiting'] > .charcoal-modal-dialog {
608
- transition: transform 400ms cubic-bezier(0.25, 1, 0.5, 1);
609
- }
610
-
611
- .charcoal-modal-background[data-animation='exited'] > .charcoal-modal-dialog,
612
- .charcoal-modal-background[data-animation='exiting'] > .charcoal-modal-dialog {
613
- transform: translateY(100%);
614
- }
615
-
616
- .charcoal-modal-close-button {
617
- position: absolute;
618
- top: 8px;
619
- right: 8px;
620
-
621
- color: var(--charcoal-color-text-tertiary-default);
622
- transition: 0.2s color;
623
- }
624
-
625
- .charcoal-modal-title {
626
- margin: 0;
627
- font-weight: inherit;
628
- font-size: inherit;
629
- }
630
- .charcoal-icon {
631
- display: inline-flex;
632
- width: var(--charcoal-icon-size);
633
- height: var(--charcoal-icon-size);
634
- }
635
-
636
- pixiv-icon:not(:defined) {
637
- --pixiv-icon-base: 24px;
638
- --pixiv-icon-scale: 1;
639
- --pixiv-icon-size: calc(var(--pixiv-icon-base) * var(--pixiv-icon-scale));
640
-
641
- display: inline-flex;
642
- /* --charcoal-icon-size がセットされていればそれを優先、
643
- なければ name / scale から導出した --pixiv-icon-size をフォールバック */
644
- width: var(--charcoal-icon-size, var(--pixiv-icon-size));
645
- height: var(--charcoal-icon-size, var(--pixiv-icon-size));
646
- }
647
-
648
- pixiv-icon:not(:defined)[name^='16/'] {
649
- --pixiv-icon-base: 16px;
650
- --pixiv-icon-size: 16px;
651
- }
652
-
653
- pixiv-icon:not(:defined)[name^='24/'][scale='2'] {
654
- --pixiv-icon-scale: 2;
655
- }
656
-
657
- pixiv-icon:not(:defined)[name^='24/'][scale='3'] {
658
- --pixiv-icon-scale: 3;
659
- }
660
-
661
- pixiv-icon:not(:defined)[name^='32/'] {
662
- --pixiv-icon-base: 32px;
663
- --pixiv-icon-size: 32px;
664
- }
665
-
666
- pixiv-icon:not(:defined)[name^='Inline/'] {
667
- --pixiv-icon-base: 16px;
668
- }
669
-
670
- pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
671
- --pixiv-icon-scale: 2;
672
- }
673
- .charcoal-loading-spinner {
674
- box-sizing: content-box;
675
- margin: auto;
676
- padding: 16px;
677
- border-radius: 8px;
678
- font-size: 48px;
679
- width: 48px;
680
- height: 48px;
681
- opacity: 0.84;
682
- color: var(--charcoal-color-icon-tertiary-default);
683
- background-color: var(--charcoal-color-background-default);
684
- }
685
-
686
- .charcoal-loading-spinner[data-transparent='true'] {
687
- background-color: transparent;
688
- }
689
-
690
- @keyframes charcoal-loading-spinner-icon-scale-out {
691
- from {
692
- transform: scale(0);
693
- opacity: 1;
694
- }
695
- to {
696
- transform: scale(1);
697
- opacity: 0;
698
- }
699
- }
700
-
701
- .charcoal-loading-spinner-icon {
702
- width: 1em;
703
- height: 1em;
704
- border-radius: 1em;
705
- background-color: currentColor;
706
- animation: charcoal-loading-spinner-icon-scale-out 1s infinite both ease-out;
533
+ width: 24px;
534
+ height: 24px;
535
+ border-radius: 999999px;
536
+ color: var(--charcoal-color-icon-on-primary-default);
537
+ transition: 0.2s box-shadow;
707
538
  }
708
539
 
709
- .charcoal-loading-spinner-icon[data-reset-animation] {
710
- animation: none;
540
+ .charcoal-multi-select-overlay[aria-invalid='true'][data-overlay='true']:not(:disabled):not(
541
+ [aria-disabled]
542
+ ) {
543
+ box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
711
544
  }
712
545
 
713
- .charcoal-loading-spinner-icon[data-once='true'] {
714
- animation-iteration-count: 1;
546
+ .charcoal-multi-select-overlay[aria-invalid='true'][data-overlay='true'][aria-disabled='false'] {
547
+ box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
715
548
  }
716
- .charcoal-radio__label {
717
- display: grid;
718
- grid-template-columns: auto 1fr;
719
- grid-gap: 4px;
720
- align-items: center;
721
- cursor: pointer;
722
- }
723
549
 
724
- .charcoal-radio__label[aria-disabled]:not([aria-disabled='false']) {
725
- opacity: 0.32;
726
- cursor: default;
550
+ .charcoal-multi-select-overlay[data-overlay='true'] {
551
+ border-color: var(--charcoal-color-border-hud);
552
+ border-width: 2px;
553
+ border-style: solid;
727
554
  }
728
-
729
- .charcoal-radio__label_div {
730
- font-size: 14px;
731
- line-height: 22px;
732
- color: var(--charcoal-color-text-default);
733
- }
734
555
  .charcoal-menu-item-group {
735
556
  display: block;
736
557
  }
@@ -750,227 +571,17 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
750
571
  list-style: none;
751
572
  overflow: hidden;
752
573
  }
753
- .charcoal-dropdown-selector-menu-item {
754
- font-size: 14px;
755
- line-height: 22px;
756
- color: var(--charcoal-color-text-secondary-default);
757
- padding: 9px 0;
758
-
759
- display: flex;
760
- align-items: center;
761
- width: 100%;
762
- margin-left: 20px;
763
- }
764
-
765
- .charcoal-dropdown-selector-menu-item[data-selected='true'] {
766
- margin-left: 0px;
574
+ .charcoal-radio-group {
575
+ display: grid;
576
+ grid-template-columns: 1fr;
577
+ grid-gap: 8px;
767
578
  }
579
+ .charcoal-segmented-control {
580
+ display: inline-flex;
581
+ align-items: center;
768
582
 
769
- .charcoal-dropdown-selector-menu-item-icon {
770
- color: var(--charcoal-color-text-secondary-default);
771
- padding-right: 4px;
772
- }
773
-
774
- .charcoal-dropdown-selector-menu-item-container {
775
- display: flex;
776
- align-items: center;
777
- }
778
-
779
- .charcoal-dropdown-selector-menu-secondary {
780
- font-size: 12px;
781
- line-height: 20px;
782
- color: var(--charcoal-color-text-tertiary-default);
783
- padding-bottom: 9px;
784
-
785
- display: flex;
786
- align-items: center;
787
- margin-left: 20px;
788
- }
789
-
790
- .charcoal-dropdown-selector-menu-fullwidth {
791
- width: 100%;
792
- }
793
- .charcoal-multi-select {
794
- display: grid;
795
- grid-template-columns: auto 1fr;
796
- align-items: center;
797
- position: relative;
798
- cursor: pointer;
799
- gap: 4px;
800
- }
801
-
802
- .charcoal-multi-select:disabled,
803
- .charcoal-multi-select[aria-disabled]:not([aria-disabled='false']) {
804
- opacity: 0.32;
805
- cursor: default;
806
- }
807
-
808
- .charcoal-multi-select-label {
809
- display: flow-root;
810
- align-items: center;
811
- font-size: 14px;
812
- line-height: 22px;
813
- color: var(--charcoal-color-text-default);
814
- }
815
-
816
- .charcoal-multi-select-label::before {
817
- display: block;
818
- width: 0;
819
- height: 0;
820
- content: '';
821
- margin-top: -4px;
822
- }
823
-
824
- .charcoal-multi-select-label::after {
825
- display: block;
826
- width: 0;
827
- height: 0;
828
- content: '';
829
- margin-bottom: -4px;
830
- }
831
-
832
- .charcoal-multi-select-input[type='checkbox'] {
833
- -webkit-appearance: none;
834
- -moz-appearance: none;
835
- appearance: none;
836
- display: block;
837
- width: 20px;
838
- height: 20px;
839
- margin: 0;
840
- background-color: var(--charcoal-color-container-neutral-default);
841
- border-radius: 999999px;
842
- transition:
843
- 0.2s background-color,
844
- 0.2s box-shadow;
845
- }
846
-
847
- .charcoal-multi-select-input[type='checkbox']:checked {
848
- background-color: var(--charcoal-color-container-primary-default);
849
- }
850
-
851
- .charcoal-multi-select-input[type='checkbox']:focus {
852
- outline: none;
853
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
854
- }
855
-
856
- .charcoal-multi-select-input[type='checkbox']:focus-visible {
857
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
858
- }
859
-
860
- .charcoal-multi-select-input[type='checkbox']:focus:not(:focus-visible) {
861
- box-shadow: none;
862
- }
863
-
864
- .charcoal-multi-select-input[type='checkbox']:hover:not(:disabled):not([aria-disabled]),
865
- .charcoal-multi-select-input[type='checkbox']:hover[aria-disabled='false'] {
866
- background-color: var(--charcoal-color-container-neutral-hover);
867
- }
868
-
869
- .charcoal-multi-select-input[type='checkbox']:active:not(:disabled):not([aria-disabled]),
870
- .charcoal-multi-select-input[type='checkbox']:active[aria-disabled='false'] {
871
- background-color: var(--charcoal-color-container-neutral-press);
872
- }
873
-
874
- .charcoal-multi-select-input[type='checkbox']:checked:hover:not(:disabled):not([aria-disabled]),
875
- .charcoal-multi-select-input[type='checkbox']:checked:hover[aria-disabled='false'] {
876
- background-color: var(--charcoal-color-container-primary-hover);
877
- }
878
-
879
- .charcoal-multi-select-input[type='checkbox']:checked:active:not(:disabled):not([aria-disabled]),
880
- .charcoal-multi-select-input[type='checkbox']:checked:active[aria-disabled='false'] {
881
- background-color: var(--charcoal-color-container-primary-press);
882
- }
883
-
884
- .charcoal-multi-select-input[type='checkbox'][aria-invalid='true'][data-overlay='false']:not(:disabled):not(
885
- [aria-disabled]
886
- ) {
887
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
888
- }
889
-
890
- .charcoal-multi-select-input[type='checkbox'][aria-invalid='true'][data-overlay='false'][aria-disabled='false'] {
891
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
892
- }
893
-
894
- .charcoal-multi-select-input[type='checkbox'][data-overlay='true'] {
895
- background-color: var(--charcoal-color-container-on-img-default);
896
- }
897
-
898
- .charcoal-multi-select-overlay {
899
- position: absolute;
900
- top: -2px;
901
- left: -2px;
902
- box-sizing: border-box;
903
- display: flex;
904
- align-items: center;
905
- justify-content: center;
906
- width: 24px;
907
- height: 24px;
908
- border-radius: 999999px;
909
- color: var(--charcoal-color-icon-on-primary-default);
910
- transition: 0.2s box-shadow;
911
- }
912
-
913
- .charcoal-multi-select-overlay[aria-invalid='true'][data-overlay='true']:not(:disabled):not(
914
- [aria-disabled]
915
- ) {
916
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
917
- }
918
-
919
- .charcoal-multi-select-overlay[aria-invalid='true'][data-overlay='true'][aria-disabled='false'] {
920
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
921
- }
922
-
923
- .charcoal-multi-select-overlay[data-overlay='true'] {
924
- border-color: var(--charcoal-color-border-hud);
925
- border-width: 2px;
926
- border-style: solid;
927
- }
928
- .charcoal-modal-header-root {
929
- height: 64px;
930
- display: grid;
931
- align-content: center;
932
- justify-content: center;
933
- }
934
-
935
- @media (max-width: 743px) {
936
- .charcoal-modal-header-root[data-bottom-sheet='true'],
937
- .charcoal-modal-header-root[data-bottom-sheet='full'] {
938
- height: 48px;
939
- }
940
- }
941
-
942
- .charcoal-modal-header-title {
943
- color: var(--charcoal-color-text-default);
944
- font-size: 16px;
945
- line-height: 24px;
946
- font-weight: bold;
947
- display: flow-root;
948
- }
949
-
950
- .charcoal-modal-align {
951
- padding-left: 16px;
952
- padding-right: 16px;
953
- }
954
-
955
- .charcoal-modal-body {
956
- padding-bottom: 40px;
957
- }
958
-
959
- .charcoal-modal-buttons {
960
- display: grid;
961
- grid-auto-flow: row;
962
- grid-row-gap: 8px;
963
-
964
- padding-top: 16px;
965
- padding-left: 16px;
966
- padding-right: 16px;
967
- }
968
- .charcoal-segmented-control {
969
- display: inline-flex;
970
- align-items: center;
971
-
972
- background-color: var(--charcoal-color-container-secondary-default-a);
973
- border-radius: 16px;
583
+ background-color: var(--charcoal-color-container-secondary-default-a);
584
+ border-radius: 16px;
974
585
  }
975
586
 
976
587
  .charcoal-segmented-control[data-uniform-segment-width='true'],
@@ -1036,6 +647,29 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
1036
647
  white-space: nowrap;
1037
648
  opacity: 0;
1038
649
  }
650
+ .charcoal-switch__label {
651
+ display: inline-grid;
652
+ grid-template-columns: auto 1fr;
653
+ align-items: center;
654
+ cursor: pointer;
655
+ outline: 0;
656
+ gap: 4px;
657
+ }
658
+
659
+ .charcoal-switch__label[aria-disabled='true'] {
660
+ opacity: 0.32;
661
+ cursor: default;
662
+ }
663
+
664
+ .charcoal-switch__label[aria-disabled='true'] > input {
665
+ opacity: 1;
666
+ }
667
+
668
+ .charcoal-switch__label_div {
669
+ font-size: 14px;
670
+ line-height: 22px;
671
+ color: var(--charcoal-color-text-default);
672
+ }
1039
673
  .charcoal-checkbox__label {
1040
674
  position: relative;
1041
675
  cursor: pointer;
@@ -1058,234 +692,105 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
1058
692
  font-size: 14px;
1059
693
  line-height: 20px;
1060
694
  }
1061
- .charcoal-dropdown-selector-root {
695
+ .charcoal-text-field-root {
1062
696
  display: grid;
1063
697
  grid-template-columns: 1fr;
1064
698
  grid-gap: 4px;
1065
- width: 100%;
1066
699
  }
1067
700
 
1068
- .charcoal-dropdown-selector-root[aria-disabled='true'] {
1069
- cursor: default;
701
+ .charcoal-text-field-root[aria-disabled='true'] {
1070
702
  opacity: 0.32;
1071
703
  }
1072
704
 
1073
- .charcoal-dropdown-selector-button {
1074
- display: grid;
1075
- grid-template-columns: 1fr auto;
1076
- justify-content: space-between;
1077
- align-items: center;
1078
-
705
+ .charcoal-text-field-container {
706
+ display: flex;
1079
707
  height: 40px;
1080
- width: 100%;
1081
- box-sizing: border-box;
1082
- border: none;
1083
- cursor: pointer;
1084
- gap: 4px;
1085
-
1086
- padding-right: 8px;
1087
- padding-left: 8px;
708
+ transition:
709
+ 0.2s background-color,
710
+ 0.2s box-shadow;
711
+ color: var(--charcoal-color-text-secondary-default);
1088
712
  background-color: var(--charcoal-color-container-secondary-default-a);
1089
713
  border-radius: 4px;
714
+ padding: 0 8px;
715
+ line-height: 22px;
716
+ font-size: 14px;
717
+ }
1090
718
 
1091
- transition:
1092
- 0.2s box-shadow,
1093
- 0.2s background-color;
1094
- }
1095
-
1096
- .charcoal-dropdown-selector-button:disabled {
1097
- cursor: default;
1098
- }
1099
-
1100
- .charcoal-dropdown-selector-button:not(:disabled):focus {
1101
- outline: none;
1102
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
1103
- }
1104
-
1105
- .charcoal-dropdown-selector-button:not(:disabled):focus-visible {
1106
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
1107
- }
1108
-
1109
- .charcoal-dropdown-selector-button:not(:disabled)[data-active='true'],
1110
- .charcoal-dropdown-selector-button:not(:disabled):active {
1111
- background-color: var(--charcoal-color-container-secondary-press-a);
1112
- }
1113
-
1114
- .charcoal-dropdown-selector-button:not(:disabled):hover {
1115
- background-color: var(--charcoal-color-container-secondary-hover-a);
1116
- }
1117
-
1118
- .charcoal-dropdown-selector-button:not(:disabled):focus:not(:focus-visible) {
1119
- box-shadow: none;
1120
- }
1121
-
1122
- .charcoal-dropdown-selector-button[aria-invalid='true'],
1123
- .charcoal-dropdown-selector-button:not(:disabled)[aria-invalid='true']:focus:not(:focus-visible) {
719
+ .charcoal-text-field-container[data-invalid='true'] {
1124
720
  box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
1125
721
  }
1126
722
 
1127
- .charcoal-ui-dropdown-selector-text {
1128
- text-align: left;
1129
- font-size: 14px;
1130
- line-height: 22px;
1131
- display: flow-root;
1132
- color: var(--charcoal-color-text-default);
1133
- overflow: hidden;
1134
- text-overflow: ellipsis;
1135
- white-space: nowrap;
1136
- }
1137
-
1138
- .charcoal-ui-dropdown-selector-text[data-placeholder='true'] {
1139
- color: var(--charcoal-color-text-placeholder-default);
723
+ .charcoal-text-field-container:not([aria-disabled='true']):hover {
724
+ background-color: var(--charcoal-color-container-secondary-hover-a);
1140
725
  }
1141
726
 
1142
- .charcoal-ui-dropdown-selector-icon {
1143
- color: var(--charcoal-color-icon-secondary-default);
1144
- }
1145
- .charcoal-radio-group {
1146
- display: grid;
1147
- grid-template-columns: 1fr;
1148
- grid-gap: 8px;
1149
- }
1150
- .charcoal-text-ellipsis {
1151
- /* Runtime variables overridden by the React component. */
1152
- --charcoal-text-ellipsis-line-limit: 1;
1153
- --charcoal-text-ellipsis-line-height: inherit;
1154
-
1155
- overflow: hidden;
1156
- overflow-wrap: break-word;
1157
- display: -webkit-box;
1158
- -webkit-box-orient: vertical;
1159
- -webkit-line-clamp: var(--charcoal-text-ellipsis-line-limit);
1160
- }
1161
-
1162
- .charcoal-text-ellipsis[data-has-line-height='true'] {
1163
- line-height: var(--charcoal-text-ellipsis-line-height);
727
+ .charcoal-text-field-container:not([aria-disabled='true']):focus-within {
728
+ outline: none;
729
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
1164
730
  }
1165
731
 
1166
- .charcoal-text-ellipsis[data-has-line-height='false'] {
1167
- line-height: inherit;
732
+ .charcoal-text-field-container:not([aria-disabled='true'])[data-invalid='true']:focus-within {
733
+ box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
1168
734
  }
1169
735
 
1170
- .charcoal-text-ellipsis[data-line-limit='1'][data-use-nowrap='true'] {
1171
- text-overflow: ellipsis;
1172
- white-space: nowrap;
1173
- }
1174
- .charcoal-pagination {
736
+ .charcoal-text-field-prefix {
1175
737
  display: flex;
1176
- justify-content: center;
1177
738
  align-items: center;
739
+ margin-right: 4px;
1178
740
  }
1179
741
 
1180
- .charcoal-pagination[data-size='S'] .charcoal-pagination-button {
1181
- min-width: 32px;
1182
- min-height: 32px;
1183
- }
742
+ .charcoal-text-field-suffix {
743
+ display: flex;
744
+ align-items: center;
745
+ gap: 8px;
746
+ margin-left: 4px;
747
+ }
1184
748
 
1185
- .charcoal-pagination[data-size='M'] .charcoal-pagination-button {
1186
- min-width: 40px;
1187
- min-height: 40px;
1188
- }
749
+ .charcoal-text-field-input-root {
750
+ flex: 1;
751
+ min-width: 0;
752
+ overflow: hidden;
753
+ }
1189
754
 
1190
- /* stylelint-disable no-descending-specificity */
1191
- .charcoal-pagination-button {
1192
- cursor: pointer;
1193
- -webkit-appearance: none;
1194
- -moz-appearance: none;
1195
- appearance: none;
1196
- padding: 0;
1197
- border-style: none;
755
+ .charcoal-text-field-input {
756
+ border: none;
757
+ box-sizing: border-box;
1198
758
  outline: none;
1199
- text-decoration: none;
1200
759
  font-family: inherit;
1201
- font-style: inherit;
1202
- font-variant: inherit;
1203
- margin: 0;
1204
- -webkit-user-select: none;
1205
- -moz-user-select: none;
1206
- user-select: none;
1207
-
1208
- display: flex;
1209
- align-items: center;
1210
- justify-content: center;
1211
- font-size: 14px;
1212
- font-weight: 700;
1213
- line-height: 22px;
1214
760
 
1215
- /* HACK:
1216
- * Safari doesn't correctly repaint the elements when they're reordered in response to interaction.
1217
- * This forces it to repaint them. This doesn't work if put on the parents either, has to be here.
1218
- */
1219
- -webkit-transform: translateZ(0);
761
+ /* Prevent zooming for iOS Safari */
762
+ transform-origin: top left;
763
+ transform: scale(0.875);
764
+ width: calc(100% / 0.875);
765
+ height: calc(100% / 0.875);
766
+ font-size: calc(14px / 0.875);
767
+ line-height: calc(22px / 0.875);
768
+ padding-left: 0;
769
+ padding-right: 0;
770
+ border-radius: calc(4px / 0.875);
1220
771
 
1221
- color: var(--charcoal-color-text-tertiary-default);
1222
- background-color: transparent;
1223
- border-radius: 20px;
1224
- transition:
1225
- 0.2s background-color,
1226
- 0.2s box-shadow;
1227
- }
1228
- .charcoal-pagination-button:focus {
1229
- outline: none;
1230
- }
1231
- .charcoal-pagination-button::-moz-focus-inner {
1232
- border-style: none;
1233
- padding: 0;
1234
- }
1235
- .charcoal-pagination-button[hidden] {
1236
- visibility: hidden;
1237
- display: block;
1238
- }
1239
- .charcoal-pagination-button:not(:disabled):not([aria-disabled]):hover,
1240
- .charcoal-pagination-button[aria-disabled='false']:hover {
1241
- color: var(--charcoal-color-text-tertiary-default);
1242
- background-color: var(--charcoal-color-container-secondary-default);
1243
- }
1244
- .charcoal-pagination-button:not(:disabled):not([aria-disabled]):active,
1245
- .charcoal-pagination-button[aria-disabled='false']:active {
1246
- color: var(--charcoal-color-text-tertiary-press);
1247
- background-color: var(--charcoal-color-container-tertiary-press);
1248
- }
1249
- .charcoal-pagination-button:not(:disabled):not([aria-disabled]):focus,
1250
- .charcoal-pagination-button[aria-disabled='false']:focus {
1251
- outline: none;
1252
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
1253
- }
1254
- .charcoal-pagination-button:not(:disabled):not([aria-disabled]):focus-visible,
1255
- .charcoal-pagination-button[aria-disabled='false']:focus-visible {
1256
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
1257
- }
1258
- .charcoal-pagination-button:not(:disabled):not([aria-disabled]):focus:not(:focus-visible),
1259
- .charcoal-pagination-button[aria-disabled='false']:focus:not(:focus-visible) {
1260
- box-shadow: none;
1261
- }
1262
- .charcoal-pagination-button[aria-current] {
1263
- cursor: default;
1264
- background-color: var(--charcoal-color-container-hud-default);
1265
- color: var(--charcoal-color-text-on-hud-default);
1266
- }
1267
- .charcoal-pagination-button[aria-current]:not(:disabled):not([aria-disabled]):hover,
1268
- .charcoal-pagination-button[aria-current]:not(:disabled):not([aria-disabled]):active {
1269
- background-color: var(--charcoal-color-container-hud-default);
1270
- color: var(--charcoal-color-text-on-hud-default);
1271
- }
1272
- /* stylelint-enable no-descending-specificity */
772
+ /* Display box-shadow for iOS Safari */
773
+ -webkit-appearance: none;
774
+ -moz-appearance: none;
775
+ appearance: none;
776
+ background: transparent;
1273
777
 
1274
- .charcoal-pagination-nav-button[data-hidden] {
1275
- visibility: hidden;
778
+ color: var(--charcoal-color-text-secondary-default);
1276
779
  }
1277
780
 
1278
- .charcoal-pagination-spacer,
1279
- .charcoal-pagination-spacer:hover,
1280
- .charcoal-pagination-spacer:active {
1281
- cursor: default;
1282
- color: var(--charcoal-color-text-tertiary-default);
1283
- background: none;
781
+ .charcoal-text-field-input::-moz-placeholder {
782
+ color: var(--charcoal-color-text-placeholder-default);
1284
783
  }
1285
784
 
1286
- .charcoal-pagination-spacer.charcoal-icon-button:disabled {
1287
- opacity: 1;
785
+ .charcoal-text-field-input::placeholder {
786
+ color: var(--charcoal-color-text-placeholder-default);
1288
787
  }
788
+
789
+ .charcoal-text-field-line-counter {
790
+ line-height: 22px;
791
+ font-size: 14px;
792
+ color: var(--charcoal-color-text-tertiary-default);
793
+ }
1289
794
  .charcoal-tag-item {
1290
795
  --charcoal-tag-item-color: var(--charcoal-color-text-on-primary-default);
1291
796
  --charcoal-tag-item-size: 40px;
@@ -1440,27 +945,139 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
1440
945
  .charcoal-tag-item__labe__text[data-has-translate='true']::after {
1441
946
  display: none;
1442
947
  }
1443
- .charcoal-carousel {
1444
- --charcoal-carousel-gap: 0px;
1445
-
1446
- position: relative;
1447
- display: block;
948
+ .charcoal-text-area-root {
949
+ display: grid;
950
+ grid-template-columns: 1fr;
951
+ grid-gap: 4px;
1448
952
  }
1449
953
 
1450
- .charcoal-carousel[data-full-width='true'] {
1451
- width: 100vw;
1452
- margin-inline: calc(50% - 50vw);
954
+ .charcoal-text-area-root[aria-disabled='true'] {
955
+ opacity: 0.32;
1453
956
  }
1454
957
 
1455
- .charcoal-carousel__viewport {
958
+ .charcoal-text-area-container {
959
+ /* Runtime variable overridden by the React component. */
960
+ --charcoal-text-area-rows: 4;
961
+
1456
962
  position: relative;
1457
- }
963
+ overflow: hidden;
1458
964
 
1459
- /* フォーカスリングは scroller ではなく viewport に描く。scroller に置くと
1460
- hasGradient の mask(mask-clip: border-box)で外側の box-shadow ごと消えるため。 */
965
+ color: var(--charcoal-color-text-secondary-default);
966
+ background-color: var(--charcoal-color-container-secondary-default-a);
967
+ border-radius: 4px;
968
+ transition:
969
+ 0.2s background-color,
970
+ 0.2s box-shadow;
971
+ height: calc(22px * var(--charcoal-text-area-rows) + 18px);
972
+ }
1461
973
 
1462
- .charcoal-carousel__viewport[data-focus-visible] {
1463
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
974
+ .charcoal-text-area-container[aria-invalid='true'] {
975
+ box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
976
+ }
977
+
978
+ .charcoal-text-area-container:focus-within {
979
+ outline: none;
980
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
981
+ }
982
+
983
+ .charcoal-text-area-container:has([data-no-bottom-padding='true']) {
984
+ height: calc(22px * (var(--charcoal-text-area-rows) + 1) + 18px);
985
+ }
986
+
987
+ .charcoal-text-area-container:not([aria-disabled='true']):hover {
988
+ background-color: var(--charcoal-color-container-secondary-hover-a);
989
+ }
990
+
991
+ .charcoal-text-area-container[aria-invalid='true']:focus-within {
992
+ box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
993
+ }
994
+
995
+ .charcoal-text-area-textarea {
996
+ border: none;
997
+ outline: none;
998
+ resize: none;
999
+ font-family: inherit;
1000
+ color: inherit;
1001
+ box-sizing: border-box;
1002
+
1003
+ /* Prevent zooming for iOS Safari */
1004
+ --charcoal-textarea-safari-prevent-zoom-scale: 0.875;
1005
+ --charcoal-textarea-line-height: calc(
1006
+ 22px / var(--charcoal-textarea-safari-prevent-zoom-scale)
1007
+ );
1008
+ --charcoal-textarea-padding-y: calc(
1009
+ 8px / var(--charcoal-textarea-safari-prevent-zoom-scale)
1010
+ );
1011
+ --charcoal-textarea-padding-x: calc(
1012
+ 9px / var(--charcoal-textarea-safari-prevent-zoom-scale)
1013
+ );
1014
+
1015
+ transform-origin: top left;
1016
+ transform: scale(var(--charcoal-textarea-safari-prevent-zoom-scale));
1017
+ width: calc(100% / var(--charcoal-textarea-safari-prevent-zoom-scale));
1018
+ font-size: calc(14px / var(--charcoal-textarea-safari-prevent-zoom-scale));
1019
+ line-height: var(--charcoal-textarea-line-height);
1020
+ padding: var(--charcoal-textarea-padding-y) var(--charcoal-textarea-padding-x);
1021
+ height: calc(
1022
+ var(--charcoal-textarea-line-height) * var(--charcoal-text-area-rows) +
1023
+ var(--charcoal-textarea-padding-y) * 2
1024
+ );
1025
+
1026
+ /* Display box-shadow for iOS Safari */
1027
+ -webkit-appearance: none;
1028
+ -moz-appearance: none;
1029
+ appearance: none;
1030
+
1031
+ background: none;
1032
+ }
1033
+
1034
+ .charcoal-text-area-textarea[data-no-bottom-padding='true'] {
1035
+ padding: var(--charcoal-textarea-padding-y)
1036
+ var(--charcoal-textarea-padding-x) 0;
1037
+ height: calc(
1038
+ var(--charcoal-textarea-line-height) * var(--charcoal-text-area-rows) +
1039
+ var(--charcoal-textarea-padding-y)
1040
+ );
1041
+ }
1042
+
1043
+ .charcoal-text-area-textarea::-moz-placeholder {
1044
+ color: var(--charcoal-color-text-placeholder-default);
1045
+ }
1046
+
1047
+ .charcoal-text-area-textarea::placeholder {
1048
+ color: var(--charcoal-color-text-placeholder-default);
1049
+ }
1050
+
1051
+ .charcoal-text-area-counter {
1052
+ position: absolute;
1053
+ bottom: 9px;
1054
+ right: 8px;
1055
+
1056
+ line-height: 22px;
1057
+ font-size: 14px;
1058
+ color: var(--charcoal-color-text-tertiary-default);
1059
+ }
1060
+ .charcoal-carousel {
1061
+ --charcoal-carousel-gap: 0px;
1062
+
1063
+ position: relative;
1064
+ display: block;
1065
+ }
1066
+
1067
+ .charcoal-carousel[data-full-width='true'] {
1068
+ width: 100vw;
1069
+ margin-inline: calc(50% - 50vw);
1070
+ }
1071
+
1072
+ .charcoal-carousel__viewport {
1073
+ position: relative;
1074
+ }
1075
+
1076
+ /* フォーカスリングは scroller ではなく viewport に描く。scroller に置くと
1077
+ hasGradient の mask(mask-clip: border-box)で外側の box-shadow ごと消えるため。 */
1078
+
1079
+ .charcoal-carousel__viewport[data-focus-visible] {
1080
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
1464
1081
  }
1465
1082
 
1466
1083
  /* スライド間隔は gap prop(--charcoal-carousel-gap)で注入する。
@@ -1645,155 +1262,538 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
1645
1262
  pointer-events: none;
1646
1263
  }
1647
1264
 
1648
- /* タッチデバイスではナビゲーションボタンを出さず、スワイプ操作に委ねる。 */
1649
- @media (hover: none) and (pointer: coarse) {
1650
- .charcoal-carousel__navigation {
1651
- display: none;
1652
- }
1265
+ /* タッチデバイスではナビゲーションボタンを出さず、スワイプ操作に委ねる。 */
1266
+ @media (hover: none) and (pointer: coarse) {
1267
+ .charcoal-carousel__navigation {
1268
+ display: none;
1269
+ }
1270
+ }
1271
+
1272
+ /* ── Indicator: JS Fallback ── */
1273
+
1274
+ .charcoal-carousel__indicator {
1275
+ display: flex;
1276
+ justify-content: center;
1277
+ align-items: center;
1278
+ height: 40px;
1279
+ gap: 8px;
1280
+ }
1281
+
1282
+ .charcoal-carousel__indicator[data-visible='false'] {
1283
+ display: none;
1284
+ }
1285
+
1286
+ .charcoal-carousel__indicator__item {
1287
+ -webkit-appearance: none;
1288
+ -moz-appearance: none;
1289
+ appearance: none;
1290
+ box-sizing: border-box;
1291
+ width: 8px;
1292
+ height: 8px;
1293
+ padding: 0;
1294
+ border: 0;
1295
+ border-radius: 50%;
1296
+ background-color: var(--charcoal-color-text-tertiary-default);
1297
+ cursor: pointer;
1298
+ transition: 0.2s background-color;
1299
+ }
1300
+
1301
+ .charcoal-carousel__indicator__item:hover {
1302
+ background-color: var(--charcoal-color-text-secondary-default);
1303
+ }
1304
+
1305
+ .charcoal-carousel__indicator__item:focus-visible {
1306
+ outline: 2px solid rgba(0, 150, 250, 0.56);
1307
+ outline-offset: 2px;
1308
+ }
1309
+
1310
+ .charcoal-carousel__indicator__item[data-active='true'] {
1311
+ background-color: var(--charcoal-color-text-default);
1312
+ }
1313
+
1314
+ /* ── CSS Scroll Markers (progressive enhancement) ── */
1315
+
1316
+ /* CSS Scroll Markers / Anchor Positioning の擬似要素・擬似クラスは新しい仕様のため、
1317
+ この @supports ブロックでは該当ルールを無効化する。 */
1318
+ /* stylelint-disable selector-pseudo-class-no-unknown */
1319
+ @supports (scroll-marker-group: after) {
1320
+ .charcoal-carousel[data-indicator='true'] {
1321
+ padding-bottom: 40px;
1322
+ }
1323
+
1324
+ .charcoal-carousel__scroller {
1325
+ anchor-name: --charcoal-carousel;
1326
+ scroll-marker-group: after;
1327
+ }
1328
+
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
+ }
1474
+
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
+ }
1479
+
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
+ }
1487
+
1488
+ .charcoal-modal-background[data-animation='entered'] {
1489
+ overflow: auto;
1490
+ }
1491
+
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
+ }
1496
+
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
+ }
1501
+
1502
+ .charcoal-modal-close-button {
1503
+ position: absolute;
1504
+ top: 8px;
1505
+ right: 8px;
1506
+
1507
+ color: var(--charcoal-color-text-tertiary-default);
1508
+ transition: 0.2s color;
1509
+ }
1510
+
1511
+ .charcoal-modal-title {
1512
+ margin: 0;
1513
+ font-weight: inherit;
1514
+ font-size: inherit;
1515
+ }
1516
+ .charcoal-pagination {
1517
+ display: flex;
1518
+ justify-content: center;
1519
+ align-items: center;
1520
+ }
1521
+
1522
+ .charcoal-pagination[data-size='S'] .charcoal-pagination-button {
1523
+ min-width: 32px;
1524
+ min-height: 32px;
1525
+ }
1526
+
1527
+ .charcoal-pagination[data-size='M'] .charcoal-pagination-button {
1528
+ min-width: 40px;
1529
+ min-height: 40px;
1530
+ }
1531
+
1532
+ /* stylelint-disable no-descending-specificity */
1533
+ .charcoal-pagination-button {
1534
+ cursor: pointer;
1535
+ -webkit-appearance: none;
1536
+ -moz-appearance: none;
1537
+ appearance: none;
1538
+ padding: 0;
1539
+ border-style: none;
1540
+ outline: none;
1541
+ text-decoration: none;
1542
+ font-family: inherit;
1543
+ font-style: inherit;
1544
+ font-variant: inherit;
1545
+ margin: 0;
1546
+ -webkit-user-select: none;
1547
+ -moz-user-select: none;
1548
+ user-select: none;
1549
+
1550
+ display: flex;
1551
+ align-items: center;
1552
+ justify-content: center;
1553
+ font-size: 14px;
1554
+ font-weight: 700;
1555
+ line-height: 22px;
1556
+
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;
1653
1699
  }
1654
1700
 
1655
- /* ── Indicator: JS Fallback ── */
1656
-
1657
- .charcoal-carousel__indicator {
1658
- display: flex;
1659
- justify-content: center;
1660
- align-items: center;
1661
- height: 40px;
1662
- gap: 8px;
1701
+ .charcoal-modal-body {
1702
+ padding-bottom: 40px;
1663
1703
  }
1664
1704
 
1665
- .charcoal-carousel__indicator[data-visible='false'] {
1666
- display: none;
1667
- }
1705
+ .charcoal-modal-buttons {
1706
+ display: grid;
1707
+ grid-auto-flow: row;
1708
+ grid-row-gap: 8px;
1668
1709
 
1669
- .charcoal-carousel__indicator__item {
1670
- -webkit-appearance: none;
1671
- -moz-appearance: none;
1672
- appearance: none;
1673
- box-sizing: border-box;
1674
- width: 8px;
1675
- height: 8px;
1676
- padding: 0;
1677
- border: 0;
1678
- border-radius: 50%;
1679
- background-color: var(--charcoal-color-text-tertiary-default);
1680
- cursor: pointer;
1681
- transition: 0.2s background-color;
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%;
1682
1719
  }
1683
1720
 
1684
- .charcoal-carousel__indicator__item:hover {
1685
- background-color: var(--charcoal-color-text-secondary-default);
1721
+ .charcoal-dropdown-selector-root[aria-disabled='true'] {
1722
+ cursor: default;
1723
+ opacity: 0.32;
1686
1724
  }
1687
1725
 
1688
- .charcoal-carousel__indicator__item:focus-visible {
1689
- outline: 2px solid rgba(0, 150, 250, 0.56);
1690
- outline-offset: 2px;
1691
- }
1726
+ .charcoal-dropdown-selector-button {
1727
+ display: grid;
1728
+ grid-template-columns: 1fr auto;
1729
+ justify-content: space-between;
1730
+ align-items: center;
1692
1731
 
1693
- .charcoal-carousel__indicator__item[data-active='true'] {
1694
- background-color: var(--charcoal-color-text-default);
1695
- }
1732
+ height: 40px;
1733
+ width: 100%;
1734
+ box-sizing: border-box;
1735
+ border: none;
1736
+ cursor: pointer;
1737
+ gap: 4px;
1696
1738
 
1697
- /* ── CSS Scroll Markers (progressive enhancement) ── */
1739
+ padding-right: 8px;
1740
+ padding-left: 8px;
1741
+ background-color: var(--charcoal-color-container-secondary-default-a);
1742
+ border-radius: 4px;
1698
1743
 
1699
- /* CSS Scroll Markers / Anchor Positioning の擬似要素・擬似クラスは新しい仕様のため、
1700
- この @supports ブロックでは該当ルールを無効化する。 */
1701
- /* stylelint-disable selector-pseudo-class-no-unknown */
1702
- @supports (scroll-marker-group: after) {
1703
- .charcoal-carousel[data-indicator='true'] {
1704
- padding-bottom: 40px;
1705
- }
1744
+ transition:
1745
+ 0.2s box-shadow,
1746
+ 0.2s background-color;
1747
+ }
1706
1748
 
1707
- .charcoal-carousel__scroller {
1708
- anchor-name: --charcoal-carousel;
1709
- scroll-marker-group: after;
1749
+ .charcoal-dropdown-selector-button:disabled {
1750
+ cursor: default;
1710
1751
  }
1711
1752
 
1712
- .charcoal-carousel__scroller::scroll-button(*) {
1713
- content: none;
1753
+ .charcoal-dropdown-selector-button:not(:disabled):focus {
1754
+ outline: none;
1755
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
1714
1756
  }
1715
1757
 
1716
- .charcoal-carousel__scroller::scroll-marker-group {
1717
- display: flex;
1718
- justify-content: center;
1719
- align-items: center;
1720
- height: 40px;
1721
- gap: 8px;
1722
-
1723
- position: absolute;
1724
- position-anchor: --charcoal-carousel;
1725
- top: anchor(bottom);
1726
- justify-self: anchor-center;
1758
+ .charcoal-dropdown-selector-button:not(:disabled):focus-visible {
1759
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
1727
1760
  }
1728
1761
 
1729
- .charcoal-carousel[data-indicator='false'] .charcoal-carousel__scroller {
1730
- scroll-marker-group: none;
1731
- }
1732
-
1733
- .charcoal-carousel__item::scroll-marker {
1734
- content: '';
1735
- width: 8px;
1736
- height: 8px;
1737
- border: 0;
1738
- border-radius: 50%;
1739
- background-color: var(--charcoal-color-text-tertiary-default);
1740
- cursor: pointer;
1741
- transition: 0.2s background-color;
1742
- }
1743
-
1744
- .charcoal-carousel__item::scroll-marker:hover {
1745
- background-color: var(--charcoal-color-text-secondary-default);
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);
1746
1765
  }
1747
1766
 
1748
- .charcoal-carousel__item::scroll-marker:focus {
1749
- outline: 2px solid rgba(0, 150, 250, 0.56);
1750
- outline-offset: 2px;
1767
+ .charcoal-dropdown-selector-button:not(:disabled):hover {
1768
+ background-color: var(--charcoal-color-container-secondary-hover-a);
1751
1769
  }
1752
1770
 
1753
- .charcoal-carousel__item::scroll-marker:target-current {
1754
- background-color: var(--charcoal-color-text-default);
1771
+ .charcoal-dropdown-selector-button:not(:disabled):focus:not(:focus-visible) {
1772
+ box-shadow: none;
1755
1773
  }
1756
1774
 
1757
- .charcoal-carousel__indicator {
1758
- display: none;
1759
- }
1760
- }
1761
- /* stylelint-enable selector-pseudo-class-no-unknown */
1762
- .charcoal-hint-text {
1763
- background-color: var(--charcoal-color-container-secondary-default);
1764
- border-radius: 8px;
1765
- padding: 12px 16px;
1766
- display: flex;
1767
- align-items: flex-start;
1768
- }
1769
-
1770
- .charcoal-hint-text[data-context='page'] {
1771
- justify-content: center;
1772
- }
1773
-
1774
- @media (min-width: 744px) {
1775
-
1776
- .charcoal-hint-text[data-context='page'] {
1777
- padding: 20px 40px
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);
1778
1778
  }
1779
- }
1780
-
1781
- .charcoal-hint-text-icon {
1782
- display: flex;
1783
- align-items: center;
1784
- color: var(--charcoal-color-icon-tertiary-default);
1785
- height: 22px;
1786
- margin: 0 4px 0 0;
1787
- }
1788
1779
 
1789
- .charcoal-hint-text-message {
1790
- color: var(--charcoal-color-text-secondary-default);
1780
+ .charcoal-ui-dropdown-selector-text {
1781
+ text-align: left;
1791
1782
  font-size: 14px;
1792
1783
  line-height: 22px;
1793
1784
  display: flow-root;
1794
- margin: 0;
1795
- min-width: 0;
1796
- overflow-wrap: break-word;
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);
1793
+ }
1794
+
1795
+ .charcoal-ui-dropdown-selector-icon {
1796
+ color: var(--charcoal-color-icon-secondary-default);
1797
1797
  }
1798
1798
  .charcoal-notification-region {
1799
1799
  left: 0;
@@ -1847,49 +1847,55 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
1847
1847
  }
1848
1848
  }
1849
1849
  .charcoal-notification-region {
1850
- --charcoal-toast-offset: 16px;
1850
+ --charcoal-snackbar-offset: 16px;
1851
1851
  }
1852
1852
 
1853
- .charcoal-toast-region[data-position='top'] {
1854
- position: sticky;
1855
- --charcoal-toast-enter-offset: calc(-1 * var(--charcoal-space-30));
1853
+ .charcoal-snackbar-region[data-position='top'] {
1854
+ --charcoal-snackbar-enter-offset: calc(-1 * var(--charcoal-space-30));
1856
1855
 
1857
- top: calc(env(safe-area-inset-top, 0px) + var(--charcoal-toast-offset));
1856
+ position: sticky;
1857
+ top: calc(env(safe-area-inset-top, 0px) + var(--charcoal-snackbar-offset));
1858
1858
  }
1859
1859
 
1860
- .charcoal-toast-region[data-position='bottom'] {
1861
- position: fixed;
1862
- --charcoal-toast-enter-offset: var(--charcoal-space-30);
1860
+ .charcoal-snackbar-region[data-position='bottom'] {
1861
+ --charcoal-snackbar-enter-offset: var(--charcoal-space-30);
1863
1862
 
1863
+ position: fixed;
1864
1864
  bottom: calc(
1865
- env(safe-area-inset-bottom, 0px) + var(--charcoal-toast-offset)
1865
+ env(safe-area-inset-bottom, 0px) + var(--charcoal-snackbar-offset)
1866
1866
  );
1867
1867
  }
1868
1868
 
1869
- .charcoal-toast {
1870
- min-height: 40px;
1871
- padding: var(--charcoal-space-20) var(--charcoal-space-40);
1872
- color: var(--charcoal-color-text-on-positive-default);
1873
- border: var(--charcoal-border-width-m) solid var(--charcoal-color-border-hud);
1874
- animation: charcoal-toast-enter 0.3s ease-out both;
1869
+ .charcoal-snackbar {
1870
+ min-height: 44px;
1871
+ padding: var(--charcoal-space-25) var(--charcoal-space-40);
1872
+ background-color: var(--charcoal-color-container-default);
1873
+ color: var(--charcoal-color-text-default);
1874
+ border: var(--charcoal-border-width-m) solid
1875
+ var(--charcoal-color-border-secondary);
1876
+ animation: charcoal-snackbar-enter 0.3s ease-out both;
1875
1877
  }
1876
1878
 
1877
- .charcoal-toast[data-exiting='true'] {
1878
- animation: charcoal-toast-exit 0.3s ease-out both;
1879
+ .charcoal-snackbar[data-exiting='true'] {
1880
+ animation: charcoal-snackbar-exit 0.3s ease-out both;
1879
1881
  }
1880
1882
 
1881
- .charcoal-toast[data-type='success'] {
1882
- background-color: var(--charcoal-color-container-positive-default);
1883
+ .charcoal-snackbar[data-with-action='true'] {
1884
+ min-height: 56px;
1885
+ padding: var(--charcoal-space-25) var(--charcoal-space-30)
1886
+ var(--charcoal-space-25) var(--charcoal-space-40);
1883
1887
  }
1884
1888
 
1885
- .charcoal-toast[data-type='error'] {
1886
- background-color: var(--charcoal-color-container-negative-default);
1889
+ .charcoal-snackbar[data-dim='true'] {
1890
+ background-color: var(--charcoal-color-container-hud-default);
1891
+ color: var(--charcoal-color-text-on-hud-default);
1892
+ border-color: var(--charcoal-color-border-hud);
1887
1893
  }
1888
1894
 
1889
- @keyframes charcoal-toast-enter {
1895
+ @keyframes charcoal-snackbar-enter {
1890
1896
  from {
1891
1897
  opacity: 0;
1892
- transform: translateY(var(--charcoal-toast-enter-offset));
1898
+ transform: translateY(var(--charcoal-snackbar-enter-offset));
1893
1899
  }
1894
1900
 
1895
1901
  to {
@@ -1898,7 +1904,7 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
1898
1904
  }
1899
1905
  }
1900
1906
 
1901
- @keyframes charcoal-toast-exit {
1907
+ @keyframes charcoal-snackbar-exit {
1902
1908
  from {
1903
1909
  opacity: 1;
1904
1910
  }
@@ -1908,55 +1914,49 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
1908
1914
  }
1909
1915
  }
1910
1916
  .charcoal-notification-region {
1911
- --charcoal-snackbar-offset: 16px;
1917
+ --charcoal-toast-offset: 16px;
1912
1918
  }
1913
1919
 
1914
- .charcoal-snackbar-region[data-position='top'] {
1915
- --charcoal-snackbar-enter-offset: calc(-1 * var(--charcoal-space-30));
1916
-
1920
+ .charcoal-toast-region[data-position='top'] {
1917
1921
  position: sticky;
1918
- top: calc(env(safe-area-inset-top, 0px) + var(--charcoal-snackbar-offset));
1922
+ --charcoal-toast-enter-offset: calc(-1 * var(--charcoal-space-30));
1923
+
1924
+ top: calc(env(safe-area-inset-top, 0px) + var(--charcoal-toast-offset));
1919
1925
  }
1920
1926
 
1921
- .charcoal-snackbar-region[data-position='bottom'] {
1922
- --charcoal-snackbar-enter-offset: var(--charcoal-space-30);
1923
-
1927
+ .charcoal-toast-region[data-position='bottom'] {
1924
1928
  position: fixed;
1929
+ --charcoal-toast-enter-offset: var(--charcoal-space-30);
1930
+
1925
1931
  bottom: calc(
1926
- env(safe-area-inset-bottom, 0px) + var(--charcoal-snackbar-offset)
1932
+ env(safe-area-inset-bottom, 0px) + var(--charcoal-toast-offset)
1927
1933
  );
1928
1934
  }
1929
1935
 
1930
- .charcoal-snackbar {
1931
- min-height: 44px;
1932
- padding: var(--charcoal-space-25) var(--charcoal-space-40);
1933
- background-color: var(--charcoal-color-container-default);
1934
- color: var(--charcoal-color-text-default);
1935
- border: var(--charcoal-border-width-m) solid
1936
- var(--charcoal-color-border-secondary);
1937
- animation: charcoal-snackbar-enter 0.3s ease-out both;
1936
+ .charcoal-toast {
1937
+ min-height: 40px;
1938
+ padding: var(--charcoal-space-20) var(--charcoal-space-40);
1939
+ color: var(--charcoal-color-text-on-positive-default);
1940
+ border: var(--charcoal-border-width-m) solid var(--charcoal-color-border-hud);
1941
+ animation: charcoal-toast-enter 0.3s ease-out both;
1938
1942
  }
1939
1943
 
1940
- .charcoal-snackbar[data-exiting='true'] {
1941
- animation: charcoal-snackbar-exit 0.3s ease-out both;
1944
+ .charcoal-toast[data-exiting='true'] {
1945
+ animation: charcoal-toast-exit 0.3s ease-out both;
1942
1946
  }
1943
1947
 
1944
- .charcoal-snackbar[data-with-action='true'] {
1945
- min-height: 56px;
1946
- padding: var(--charcoal-space-25) var(--charcoal-space-30)
1947
- var(--charcoal-space-25) var(--charcoal-space-40);
1948
+ .charcoal-toast[data-type='success'] {
1949
+ background-color: var(--charcoal-color-container-positive-default);
1948
1950
  }
1949
1951
 
1950
- .charcoal-snackbar[data-dim='true'] {
1951
- background-color: var(--charcoal-color-container-hud-default);
1952
- color: var(--charcoal-color-text-on-hud-default);
1953
- border-color: var(--charcoal-color-border-hud);
1952
+ .charcoal-toast[data-type='error'] {
1953
+ background-color: var(--charcoal-color-container-negative-default);
1954
1954
  }
1955
1955
 
1956
- @keyframes charcoal-snackbar-enter {
1956
+ @keyframes charcoal-toast-enter {
1957
1957
  from {
1958
1958
  opacity: 0;
1959
- transform: translateY(var(--charcoal-snackbar-enter-offset));
1959
+ transform: translateY(var(--charcoal-toast-enter-offset));
1960
1960
  }
1961
1961
 
1962
1962
  to {
@@ -1965,7 +1965,7 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
1965
1965
  }
1966
1966
  }
1967
1967
 
1968
- @keyframes charcoal-snackbar-exit {
1968
+ @keyframes charcoal-toast-exit {
1969
1969
  from {
1970
1970
  opacity: 1;
1971
1971
  }
@@ -1984,6 +1984,30 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
1984
1984
  .charcoal-text-field-assistive-text[data-invalid='true'] {
1985
1985
  color: var(--charcoal-color-text-negative-default);
1986
1986
  }
1987
+ .charcoal-list-item {
1988
+ list-style: none;
1989
+ display: flex;
1990
+ align-items: center;
1991
+ min-height: 40px;
1992
+ cursor: pointer;
1993
+ outline: none;
1994
+
1995
+ padding-right: 16px;
1996
+ padding-left: 16px;
1997
+
1998
+ transition: background-color 0.2s;
1999
+ }
2000
+
2001
+ .charcoal-list-item:not([aria-disabled='true']):hover,
2002
+ .charcoal-list-item:not([aria-disabled='true']):focus,
2003
+ .charcoal-list-item:not([aria-disabled='true']):focus-within {
2004
+ background-color: var(--charcoal-color-container-secondary-default);
2005
+ }
2006
+
2007
+ .charcoal-list-item[aria-disabled='true'] {
2008
+ opacity: 0.32;
2009
+ cursor: default;
2010
+ }
1987
2011
  .charcoal-switch-input {
1988
2012
  cursor: pointer;
1989
2013
  -webkit-appearance: none;
@@ -2068,88 +2092,6 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
2068
2092
  .charcoal-switch-input:not(:disabled):checked:active {
2069
2093
  background-color: var(--charcoal-color-container-primary-press);
2070
2094
  }
2071
- .charcoal-field-label {
2072
- font-size: 14px;
2073
- line-height: 22px;
2074
- font-weight: bold;
2075
- display: flow-root;
2076
- color: var(--charcoal-color-text-default-text1);
2077
- }
2078
-
2079
- .charcoal-field-label-required-text {
2080
- font-size: 14px;
2081
- line-height: 22px;
2082
- display: flow-root;
2083
- color: var(--charcoal-color-text-secondary-default);
2084
- }
2085
-
2086
- .charcoal-field-label-sub-label {
2087
- font-size: 14px;
2088
- line-height: 22px;
2089
- display: flow-root;
2090
- color: var(--charcoal-color-text-tertiary-default);
2091
- transition:
2092
- 0.2s color,
2093
- 0.2s box-shadow;
2094
- }
2095
-
2096
- .charcoal-field-label-root {
2097
- display: inline-flex;
2098
- align-items: center;
2099
- }
2100
-
2101
- .charcoal-field-label-root > .charcoal-field-label-required-text {
2102
- margin-left: 4px;
2103
- }
2104
-
2105
- .charcoal-field-label-root > .charcoal-field-label-sub-label {
2106
- margin-left: auto;
2107
- }
2108
- .charcoal-modal-dialog {
2109
- margin: auto;
2110
- position: relative;
2111
- height: -moz-fit-content;
2112
- height: fit-content;
2113
- width: 440px;
2114
-
2115
- background-color: var(--charcoal-color-container-default);
2116
- border-radius: 24px;
2117
- }
2118
-
2119
- .charcoal-modal-dialog[data-size='S'] {
2120
- width: 336px;
2121
- }
2122
-
2123
- .charcoal-modal-dialog[data-size='M'] {
2124
- width: 440px;
2125
- }
2126
-
2127
- .charcoal-modal-dialog[data-size='L'] {
2128
- width: 648px;
2129
- }
2130
-
2131
- @media (max-width: 743px) {
2132
- .charcoal-modal-dialog {
2133
- max-width: 440px;
2134
- width: calc(100% - 48px);
2135
- }
2136
-
2137
- .charcoal-modal-dialog[data-bottom-sheet='true'],
2138
- .charcoal-modal-dialog[data-bottom-sheet='full'] {
2139
- max-width: unset;
2140
- width: 100%;
2141
- border-radius: 0;
2142
- margin: auto 0 0 0;
2143
- }
2144
-
2145
- .charcoal-modal-dialog[data-bottom-sheet='full'] {
2146
- min-height: 100%;
2147
- }
2148
- }
2149
-
2150
- .charcoal-modal-dialog:focus {
2151
- outline: none;
2152
- }
2153
2095
  .charcoal-radio-input {
2154
2096
  -webkit-appearance: none;
2155
2097
  -moz-appearance: none;
@@ -2238,6 +2180,88 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
2238
2180
  .charcoal-radio-input:checked:not(:disabled):active::after {
2239
2181
  background-color: var(--charcoal-color-icon-on-primary-press);
2240
2182
  }
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);
2189
+ }
2190
+
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);
2196
+ }
2197
+
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;
2206
+ }
2207
+
2208
+ .charcoal-field-label-root {
2209
+ display: inline-flex;
2210
+ align-items: center;
2211
+ }
2212
+
2213
+ .charcoal-field-label-root > .charcoal-field-label-required-text {
2214
+ margin-left: 4px;
2215
+ }
2216
+
2217
+ .charcoal-field-label-root > .charcoal-field-label-sub-label {
2218
+ margin-left: auto;
2219
+ }
2220
+ .charcoal-modal-dialog {
2221
+ margin: auto;
2222
+ position: relative;
2223
+ height: -moz-fit-content;
2224
+ height: fit-content;
2225
+ width: 440px;
2226
+
2227
+ background-color: var(--charcoal-color-container-default);
2228
+ border-radius: 24px;
2229
+ }
2230
+
2231
+ .charcoal-modal-dialog[data-size='S'] {
2232
+ width: 336px;
2233
+ }
2234
+
2235
+ .charcoal-modal-dialog[data-size='M'] {
2236
+ width: 440px;
2237
+ }
2238
+
2239
+ .charcoal-modal-dialog[data-size='L'] {
2240
+ width: 648px;
2241
+ }
2242
+
2243
+ @media (max-width: 743px) {
2244
+ .charcoal-modal-dialog {
2245
+ max-width: 440px;
2246
+ width: calc(100% - 48px);
2247
+ }
2248
+
2249
+ .charcoal-modal-dialog[data-bottom-sheet='true'],
2250
+ .charcoal-modal-dialog[data-bottom-sheet='full'] {
2251
+ max-width: unset;
2252
+ width: 100%;
2253
+ border-radius: 0;
2254
+ margin: auto 0 0 0;
2255
+ }
2256
+
2257
+ .charcoal-modal-dialog[data-bottom-sheet='full'] {
2258
+ min-height: 100%;
2259
+ }
2260
+ }
2261
+
2262
+ .charcoal-modal-dialog:focus {
2263
+ outline: none;
2264
+ }
2241
2265
  .charcoal-checkbox-input {
2242
2266
  -webkit-appearance: none;
2243
2267
  -moz-appearance: none;
@@ -2356,30 +2380,6 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
2356
2380
  padding: 0;
2357
2381
  margin: 0;
2358
2382
  }
2359
- .charcoal-list-item {
2360
- list-style: none;
2361
- display: flex;
2362
- align-items: center;
2363
- min-height: 40px;
2364
- cursor: pointer;
2365
- outline: none;
2366
-
2367
- padding-right: 16px;
2368
- padding-left: 16px;
2369
-
2370
- transition: background-color 0.2s;
2371
- }
2372
-
2373
- .charcoal-list-item:not([aria-disabled='true']):hover,
2374
- .charcoal-list-item:not([aria-disabled='true']):focus,
2375
- .charcoal-list-item:not([aria-disabled='true']):focus-within {
2376
- background-color: var(--charcoal-color-container-secondary-default);
2377
- }
2378
-
2379
- .charcoal-list-item[aria-disabled='true'] {
2380
- opacity: 0.32;
2381
- cursor: default;
2382
- }
2383
2383
  .charcoal-popover {
2384
2384
  margin: 4px 0;
2385
2385
  list-style: none;