@charcoal-ui/react 6.0.0-rc.8 → 6.0.0-rc.9

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/index.css CHANGED
@@ -6,29 +6,140 @@
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-radio__label {
9
+ .charcoal-radio-group {
10
10
  display: grid;
11
- grid-template-columns: auto 1fr;
12
- grid-gap: 4px;
13
- align-items: center;
11
+ grid-template-columns: 1fr;
12
+ grid-gap: 8px;
13
+ }
14
+ .charcoal-icon-button {
14
15
  cursor: pointer;
16
+ -webkit-appearance: none;
17
+ -moz-appearance: none;
18
+ appearance: none;
19
+ background: transparent;
20
+ padding: 0;
21
+ border-style: none;
22
+ outline: none;
23
+ color: inherit;
24
+ text-rendering: inherit;
25
+ letter-spacing: inherit;
26
+ word-spacing: inherit;
27
+ text-decoration: none;
28
+ font: inherit;
29
+ margin: 0;
30
+ overflow: visible;
31
+ text-transform: none;
32
+
33
+ -webkit-user-select: none;
34
+
35
+ -moz-user-select: none;
36
+
37
+ user-select: none;
38
+ display: flex;
39
+ align-items: center;
40
+ justify-content: center;
41
+ border-radius: 999999px;
42
+ transition:
43
+ 0.2s background-color,
44
+ 0.2s box-shadow;
15
45
  }
16
46
 
17
- .charcoal-radio__label[aria-disabled]:not([aria-disabled='false']) {
18
- opacity: 0.32;
47
+ .charcoal-icon-button:disabled,
48
+ .charcoal-icon-button[aria-disabled]:not([aria-disabled='false']) {
19
49
  cursor: default;
50
+ opacity: 0.32;
20
51
  }
21
52
 
22
- .charcoal-radio__label_div {
23
- font-size: 14px;
24
- line-height: 22px;
25
- color: var(--charcoal-color-text-default);
26
- }
53
+ .charcoal-icon-button:focus {
54
+ outline: none;
55
+ }
56
+
57
+ .charcoal-icon-button::-moz-focus-inner {
58
+ border-style: none;
59
+ padding: 0;
60
+ }
61
+
62
+ .charcoal-icon-button[data-size='XS'] {
63
+ width: 20px;
64
+ height: 20px;
65
+ }
66
+
67
+ .charcoal-icon-button[data-size='S'] {
68
+ width: 32px;
69
+ height: 32px;
70
+ }
71
+
72
+ .charcoal-icon-button[data-size='M'] {
73
+ width: 40px;
74
+ height: 40px;
75
+ }
76
+
77
+ .charcoal-icon-button[data-variant='Default'] {
78
+ color: var(--charcoal-color-icon-tertiary-default);
79
+ background-color: transparent;
80
+ }
81
+
82
+ .charcoal-icon-button[data-variant='Default'][data-active='true']:not(:disabled):not([aria-disabled]),
83
+ .charcoal-icon-button[data-variant='Default'][data-active='true'][aria-disabled='false'] {
84
+ color: var(--charcoal-color-icon-tertiary-press);
85
+ background-color: var(--charcoal-color-container-press-a);
86
+ }
87
+
88
+ .charcoal-icon-button[data-variant='Default'][data-active='false']:not(:disabled):not([aria-disabled]):hover,
89
+ .charcoal-icon-button[data-variant='Default'][data-active='false'][aria-disabled='false']:hover {
90
+ color: var(--charcoal-color-icon-tertiary-hover);
91
+ background-color: var(--charcoal-color-container-hover-a);
92
+ }
93
+
94
+ .charcoal-icon-button[data-variant='Default'][data-active='false']:not(:disabled):not([aria-disabled]):active,
95
+ .charcoal-icon-button[data-variant='Default'][data-active='false'][aria-disabled='false']:active {
96
+ color: var(--charcoal-color-icon-tertiary-press);
97
+ background-color: var(--charcoal-color-container-press-a);
98
+ }
99
+
100
+ .charcoal-icon-button[data-variant='Overlay'] {
101
+ color: var(--charcoal-color-icon-on-on-img-default);
102
+ background-color: var(--charcoal-color-container-on-img-default);
103
+ }
104
+
105
+ .charcoal-icon-button[data-variant='Overlay'][data-active='true']:not(:disabled):not([aria-disabled]),
106
+ .charcoal-icon-button[data-variant='Overlay'][data-active='true'][aria-disabled='false'] {
107
+ color: var(--charcoal-color-icon-on-on-img-press);
108
+ background-color: var(--charcoal-color-container-on-img-press);
109
+ }
110
+
111
+ .charcoal-icon-button[data-variant='Overlay'][data-active='false']:not(:disabled):not([aria-disabled]):hover,
112
+ .charcoal-icon-button[data-variant='Overlay'][data-active='false'][aria-disabled='false']:hover {
113
+ color: var(--charcoal-color-icon-on-on-img-hover);
114
+ background-color: var(--charcoal-color-container-on-img-hover);
115
+ }
116
+
117
+ .charcoal-icon-button[data-variant='Overlay'][data-active='false']:not(:disabled):not([aria-disabled]):active,
118
+ .charcoal-icon-button[data-variant='Overlay'][data-active='false'][aria-disabled='false']:active {
119
+ color: var(--charcoal-color-icon-on-on-img-press);
120
+ background-color: var(--charcoal-color-container-on-img-press);
121
+ }
122
+
123
+ .charcoal-icon-button:not(:disabled):not([aria-disabled]):focus,
124
+ .charcoal-icon-button[aria-disabled='false']:focus {
125
+ outline: none;
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-visible,
130
+ .charcoal-icon-button[aria-disabled='false']:focus-visible {
131
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
132
+ }
133
+
134
+ .charcoal-icon-button:not(:disabled):not([aria-disabled]):focus:not(:focus-visible),
135
+ .charcoal-icon-button[aria-disabled='false']:focus:not(:focus-visible) {
136
+ box-shadow: none;
137
+ }
27
138
  .charcoal-button {
28
139
  -webkit-appearance: none;
29
140
  -moz-appearance: none;
30
141
  appearance: none;
31
- background: transparent;
142
+ background-image: none;
32
143
  box-sizing: border-box;
33
144
  padding: 0 24px;
34
145
  border-style: none;
@@ -37,7 +148,9 @@
37
148
  letter-spacing: inherit;
38
149
  word-spacing: inherit;
39
150
  text-decoration: none;
40
- font: inherit;
151
+ font-family: inherit;
152
+ font-style: inherit;
153
+ font-variant: inherit;
41
154
  margin: 0;
42
155
  overflow: visible;
43
156
  text-transform: none;
@@ -56,7 +169,10 @@
56
169
  line-height: 22px;
57
170
  font-weight: bold;
58
171
  color: var(--charcoal-color-text-default);
59
- background-color: var(--charcoal-color-container-secondary-default-a);
172
+ background-color: var(
173
+ --charcoal-color-container-secondary-default-a,
174
+ transparent
175
+ );
60
176
  transition:
61
177
  0.2s color,
62
178
  0.2s background-color,
@@ -169,311 +285,159 @@
169
285
  .charcoal-button[data-full-width='true'] {
170
286
  width: 100%;
171
287
  }
172
- .charcoal-clickable {
288
+ .charcoal-radio__label {
289
+ display: grid;
290
+ grid-template-columns: auto 1fr;
291
+ grid-gap: 4px;
292
+ align-items: center;
173
293
  cursor: pointer;
294
+ }
174
295
 
175
- /* Reset button appearance */
176
- -webkit-appearance: none;
177
- -moz-appearance: none;
178
- appearance: none;
179
- background: transparent;
180
- padding: 0;
181
- border-style: none;
182
- outline: none;
183
- color: inherit;
184
- text-rendering: inherit;
185
- letter-spacing: inherit;
186
- word-spacing: inherit;
187
- text-decoration: none;
188
-
189
- /* Change the font styles in all browsers. */
190
- font: inherit;
191
-
192
- /* Remove the margin in Firefox and Safari. */
193
- margin: 0;
194
-
195
- /* Show the overflow in Edge. */
196
- overflow: visible;
296
+ .charcoal-radio__label[aria-disabled]:not([aria-disabled='false']) {
297
+ opacity: 0.32;
298
+ cursor: default;
299
+ }
197
300
 
198
- /* Remove the inheritance of text transform in Firefox. */
199
- text-transform: none;
301
+ .charcoal-radio__label_div {
302
+ font-size: 14px;
303
+ line-height: 22px;
304
+ color: var(--charcoal-color-text-default);
305
+ }
306
+ .charcoal-multi-select {
307
+ display: grid;
308
+ grid-template-columns: auto 1fr;
309
+ align-items: center;
310
+ position: relative;
311
+ cursor: pointer;
312
+ gap: 4px;
200
313
  }
201
314
 
202
- .charcoal-clickable:disabled,
203
- .charcoal-clickable[aria-disabled]:not([aria-disabled='false']) {
315
+ .charcoal-multi-select:disabled,
316
+ .charcoal-multi-select[aria-disabled]:not([aria-disabled='false']) {
317
+ opacity: 0.32;
204
318
  cursor: default;
205
319
  }
206
320
 
207
- .charcoal-clickable:focus {
208
- outline: none;
321
+ .charcoal-multi-select-label {
322
+ display: flow-root;
323
+ align-items: center;
324
+ font-size: 14px;
325
+ line-height: 22px;
326
+ color: var(--charcoal-color-text-default);
327
+ }
328
+
329
+ .charcoal-multi-select-label::before {
330
+ display: block;
331
+ width: 0;
332
+ height: 0;
333
+ content: '';
334
+ margin-top: -4px;
209
335
  }
210
336
 
211
- .charcoal-clickable::-moz-focus-inner {
212
- border-style: none;
213
- padding: 0;
337
+ .charcoal-multi-select-label::after {
338
+ display: block;
339
+ width: 0;
340
+ height: 0;
341
+ content: '';
342
+ margin-bottom: -4px;
214
343
  }
215
- .charcoal-icon-button {
216
- cursor: pointer;
344
+
345
+ .charcoal-multi-select-input[type='checkbox'] {
217
346
  -webkit-appearance: none;
218
347
  -moz-appearance: none;
219
348
  appearance: none;
220
- background: transparent;
221
- padding: 0;
222
- border-style: none;
223
- outline: none;
224
- color: inherit;
225
- text-rendering: inherit;
226
- letter-spacing: inherit;
227
- word-spacing: inherit;
228
- text-decoration: none;
229
- font: inherit;
349
+ display: block;
350
+ width: 20px;
351
+ height: 20px;
230
352
  margin: 0;
231
- overflow: visible;
232
- text-transform: none;
233
-
234
- -webkit-user-select: none;
235
-
236
- -moz-user-select: none;
237
-
238
- user-select: none;
239
- display: flex;
240
- align-items: center;
241
- justify-content: center;
353
+ background-color: var(--charcoal-color-container-neutral-default);
242
354
  border-radius: 999999px;
243
355
  transition:
244
356
  0.2s background-color,
245
357
  0.2s box-shadow;
246
358
  }
247
359
 
248
- .charcoal-icon-button:disabled,
249
- .charcoal-icon-button[aria-disabled]:not([aria-disabled='false']) {
250
- cursor: default;
251
- opacity: 0.32;
360
+ .charcoal-multi-select-input[type='checkbox']:checked {
361
+ background-color: var(--charcoal-color-container-primary-default);
252
362
  }
253
363
 
254
- .charcoal-icon-button:focus {
364
+ .charcoal-multi-select-input[type='checkbox']:focus {
255
365
  outline: none;
366
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
256
367
  }
257
368
 
258
- .charcoal-icon-button::-moz-focus-inner {
259
- border-style: none;
260
- padding: 0;
261
- }
262
-
263
- .charcoal-icon-button[data-size='XS'] {
264
- width: 20px;
265
- height: 20px;
369
+ .charcoal-multi-select-input[type='checkbox']:focus-visible {
370
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
266
371
  }
267
372
 
268
- .charcoal-icon-button[data-size='S'] {
269
- width: 32px;
270
- height: 32px;
373
+ .charcoal-multi-select-input[type='checkbox']:focus:not(:focus-visible) {
374
+ box-shadow: none;
271
375
  }
272
376
 
273
- .charcoal-icon-button[data-size='M'] {
274
- width: 40px;
275
- height: 40px;
377
+ .charcoal-multi-select-input[type='checkbox']:hover:not(:disabled):not([aria-disabled]),
378
+ .charcoal-multi-select-input[type='checkbox']:hover[aria-disabled='false'] {
379
+ background-color: var(--charcoal-color-container-neutral-hover);
276
380
  }
277
381
 
278
- .charcoal-icon-button[data-variant='Default'] {
279
- color: var(--charcoal-color-icon-tertiary-default);
280
- background-color: transparent;
382
+ .charcoal-multi-select-input[type='checkbox']:active:not(:disabled):not([aria-disabled]),
383
+ .charcoal-multi-select-input[type='checkbox']:active[aria-disabled='false'] {
384
+ background-color: var(--charcoal-color-container-neutral-press);
281
385
  }
282
386
 
283
- .charcoal-icon-button[data-variant='Default'][data-active='true']:not(:disabled):not([aria-disabled]),
284
- .charcoal-icon-button[data-variant='Default'][data-active='true'][aria-disabled='false'] {
285
- color: var(--charcoal-color-icon-tertiary-press);
286
- background-color: var(--charcoal-color-container-press-a);
287
- }
288
-
289
- .charcoal-icon-button[data-variant='Default'][data-active='false']:not(:disabled):not([aria-disabled]):hover,
290
- .charcoal-icon-button[data-variant='Default'][data-active='false'][aria-disabled='false']:hover {
291
- color: var(--charcoal-color-icon-tertiary-hover);
292
- background-color: var(--charcoal-color-container-hover-a);
293
- }
294
-
295
- .charcoal-icon-button[data-variant='Default'][data-active='false']:not(:disabled):not([aria-disabled]):active,
296
- .charcoal-icon-button[data-variant='Default'][data-active='false'][aria-disabled='false']:active {
297
- color: var(--charcoal-color-icon-tertiary-press);
298
- background-color: var(--charcoal-color-container-press-a);
299
- }
300
-
301
- .charcoal-icon-button[data-variant='Overlay'] {
302
- color: var(--charcoal-color-icon-on-on-img-default);
303
- background-color: var(--charcoal-color-container-on-img-default);
387
+ .charcoal-multi-select-input[type='checkbox']:checked:hover:not(:disabled):not([aria-disabled]),
388
+ .charcoal-multi-select-input[type='checkbox']:checked:hover[aria-disabled='false'] {
389
+ background-color: var(--charcoal-color-container-primary-hover);
304
390
  }
305
391
 
306
- .charcoal-icon-button[data-variant='Overlay'][data-active='true']:not(:disabled):not([aria-disabled]),
307
- .charcoal-icon-button[data-variant='Overlay'][data-active='true'][aria-disabled='false'] {
308
- color: var(--charcoal-color-icon-on-on-img-press);
309
- background-color: var(--charcoal-color-container-on-img-press);
310
- }
311
-
312
- .charcoal-icon-button[data-variant='Overlay'][data-active='false']:not(:disabled):not([aria-disabled]):hover,
313
- .charcoal-icon-button[data-variant='Overlay'][data-active='false'][aria-disabled='false']:hover {
314
- color: var(--charcoal-color-icon-on-on-img-hover);
315
- background-color: var(--charcoal-color-container-on-img-hover);
316
- }
317
-
318
- .charcoal-icon-button[data-variant='Overlay'][data-active='false']:not(:disabled):not([aria-disabled]):active,
319
- .charcoal-icon-button[data-variant='Overlay'][data-active='false'][aria-disabled='false']:active {
320
- color: var(--charcoal-color-icon-on-on-img-press);
321
- background-color: var(--charcoal-color-container-on-img-press);
322
- }
323
-
324
- .charcoal-icon-button:not(:disabled):not([aria-disabled]):focus,
325
- .charcoal-icon-button[aria-disabled='false']:focus {
326
- outline: none;
327
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
392
+ .charcoal-multi-select-input[type='checkbox']:checked:active:not(:disabled):not([aria-disabled]),
393
+ .charcoal-multi-select-input[type='checkbox']:checked:active[aria-disabled='false'] {
394
+ background-color: var(--charcoal-color-container-primary-press);
328
395
  }
329
396
 
330
- .charcoal-icon-button:not(:disabled):not([aria-disabled]):focus-visible,
331
- .charcoal-icon-button[aria-disabled='false']:focus-visible {
332
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
397
+ .charcoal-multi-select-input[type='checkbox'][aria-invalid='true'][data-overlay='false']:not(:disabled):not(
398
+ [aria-disabled]
399
+ ) {
400
+ box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
333
401
  }
334
402
 
335
- .charcoal-icon-button:not(:disabled):not([aria-disabled]):focus:not(:focus-visible),
336
- .charcoal-icon-button[aria-disabled='false']:focus:not(:focus-visible) {
337
- box-shadow: none;
403
+ .charcoal-multi-select-input[type='checkbox'][aria-invalid='true'][data-overlay='false'][aria-disabled='false'] {
404
+ box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
338
405
  }
339
- .charcoal-radio-group {
340
- display: grid;
341
- grid-template-columns: 1fr;
342
- grid-gap: 8px;
343
- }
344
- .charcoal-modal-background {
345
- overflow: auto;
346
- display: flex;
347
- position: fixed;
348
- top: 0;
349
- left: 0;
350
- width: 100%;
351
- height: 100%;
352
- justify-content: center;
353
- padding: 40px 0;
354
- box-sizing: border-box;
355
-
356
- background-color: var(--charcoal-color-background-overlay);
357
- }
358
406
 
359
- @media (max-width: 743px) {
360
- .charcoal-modal-background[data-bottom-sheet='true'],
361
- .charcoal-modal-background[data-bottom-sheet='full'] {
362
- padding: 0;
363
- }
407
+ .charcoal-multi-select-input[type='checkbox'][data-overlay='true'] {
408
+ background-color: var(--charcoal-color-container-on-img-default);
364
409
  }
365
410
 
366
- /* easeOutQuart。duration は useTransitionPresence の MODAL_TRANSITION_DURATION_MS と一致させること。
367
- transition は entering / exiting に限定し、開いたままテーマ切り替え等で
368
- 色や transform が変わってもアニメーションしないようにする */
369
- .charcoal-modal-background[data-animation] {
370
- overflow: hidden;
371
- }
372
-
373
- .charcoal-modal-background[data-animation='entering'],
374
- .charcoal-modal-background[data-animation='exiting'] {
375
- transition: background-color 400ms cubic-bezier(0.25, 1, 0.5, 1);
376
- }
377
-
378
- /* 閉じアニメーション中はクリックを下のページへ通す(transitionend が来ない環境で
379
- 透明なオーバーレイがタップを奪い続けるのも防ぐ) */
380
- .charcoal-modal-background[data-animation='exited'],
381
- .charcoal-modal-background[data-animation='exiting'] {
382
- background-color: transparent;
383
- pointer-events: none;
384
- }
385
-
386
- .charcoal-modal-background[data-animation='entered'] {
387
- overflow: auto;
388
- }
389
-
390
- .charcoal-modal-background[data-animation='entering'] > .charcoal-modal-dialog,
391
- .charcoal-modal-background[data-animation='exiting'] > .charcoal-modal-dialog {
392
- transition: transform 400ms cubic-bezier(0.25, 1, 0.5, 1);
393
- }
394
-
395
- .charcoal-modal-background[data-animation='exited'] > .charcoal-modal-dialog,
396
- .charcoal-modal-background[data-animation='exiting'] > .charcoal-modal-dialog {
397
- transform: translateY(100%);
398
- }
399
-
400
- .charcoal-modal-close-button {
411
+ .charcoal-multi-select-overlay {
401
412
  position: absolute;
402
- top: 8px;
403
- right: 8px;
404
-
405
- color: var(--charcoal-color-text-tertiary-default);
406
- transition: 0.2s color;
407
- }
408
-
409
- .charcoal-modal-title {
410
- margin: 0;
411
- font-weight: inherit;
412
- font-size: inherit;
413
- }
414
- .charcoal-modal-header-root {
415
- height: 64px;
416
- display: grid;
417
- align-content: center;
413
+ top: -2px;
414
+ left: -2px;
415
+ box-sizing: border-box;
416
+ display: flex;
417
+ align-items: center;
418
418
  justify-content: center;
419
+ width: 24px;
420
+ height: 24px;
421
+ border-radius: 999999px;
422
+ color: var(--charcoal-color-icon-on-primary-default);
423
+ transition: 0.2s box-shadow;
419
424
  }
420
425
 
421
- @media (max-width: 743px) {
422
- .charcoal-modal-header-root[data-bottom-sheet='true'],
423
- .charcoal-modal-header-root[data-bottom-sheet='full'] {
424
- height: 48px;
426
+ .charcoal-multi-select-overlay[aria-invalid='true'][data-overlay='true']:not(:disabled):not(
427
+ [aria-disabled]
428
+ ) {
429
+ box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
425
430
  }
426
- }
427
-
428
- .charcoal-modal-header-title {
429
- color: var(--charcoal-color-text-default);
430
- font-size: 16px;
431
- line-height: 24px;
432
- font-weight: bold;
433
- display: flow-root;
434
- }
435
-
436
- .charcoal-modal-align {
437
- padding-left: 16px;
438
- padding-right: 16px;
439
- }
440
-
441
- .charcoal-modal-body {
442
- padding-bottom: 40px;
443
- }
444
-
445
- .charcoal-modal-buttons {
446
- display: grid;
447
- grid-auto-flow: row;
448
- grid-row-gap: 8px;
449
-
450
- padding-top: 16px;
451
- padding-left: 16px;
452
- padding-right: 16px;
453
- }
454
- .charcoal-switch__label {
455
- display: inline-grid;
456
- grid-template-columns: auto 1fr;
457
- align-items: center;
458
- cursor: pointer;
459
- outline: 0;
460
- gap: 4px;
461
- }
462
431
 
463
- .charcoal-switch__label[aria-disabled='true'] {
464
- opacity: 0.32;
465
- cursor: default;
432
+ .charcoal-multi-select-overlay[aria-invalid='true'][data-overlay='true'][aria-disabled='false'] {
433
+ box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
466
434
  }
467
435
 
468
- .charcoal-switch__label[aria-disabled='true'] > input {
469
- opacity: 1;
470
- }
471
-
472
- .charcoal-switch__label_div {
473
- font-size: 14px;
474
- line-height: 22px;
475
- color: var(--charcoal-color-text-default);
476
- }
436
+ .charcoal-multi-select-overlay[data-overlay='true'] {
437
+ border-color: var(--charcoal-color-border-hud);
438
+ border-width: 2px;
439
+ border-style: solid;
440
+ }
477
441
  .charcoal-text-field-root {
478
442
  display: grid;
479
443
  grid-template-columns: 1fr;
@@ -573,253 +537,29 @@
573
537
  font-size: 14px;
574
538
  color: var(--charcoal-color-text-tertiary-default);
575
539
  }
576
- .charcoal-multi-select {
577
- display: grid;
540
+ .charcoal-switch__label {
541
+ display: inline-grid;
578
542
  grid-template-columns: auto 1fr;
579
543
  align-items: center;
580
- position: relative;
581
544
  cursor: pointer;
545
+ outline: 0;
582
546
  gap: 4px;
583
547
  }
584
548
 
585
- .charcoal-multi-select:disabled,
586
- .charcoal-multi-select[aria-disabled]:not([aria-disabled='false']) {
549
+ .charcoal-switch__label[aria-disabled='true'] {
587
550
  opacity: 0.32;
588
551
  cursor: default;
589
552
  }
590
553
 
591
- .charcoal-multi-select-label {
592
- display: flow-root;
593
- align-items: center;
554
+ .charcoal-switch__label[aria-disabled='true'] > input {
555
+ opacity: 1;
556
+ }
557
+
558
+ .charcoal-switch__label_div {
594
559
  font-size: 14px;
595
560
  line-height: 22px;
596
561
  color: var(--charcoal-color-text-default);
597
562
  }
598
-
599
- .charcoal-multi-select-label::before {
600
- display: block;
601
- width: 0;
602
- height: 0;
603
- content: '';
604
- margin-top: -4px;
605
- }
606
-
607
- .charcoal-multi-select-label::after {
608
- display: block;
609
- width: 0;
610
- height: 0;
611
- content: '';
612
- margin-bottom: -4px;
613
- }
614
-
615
- .charcoal-multi-select-input[type='checkbox'] {
616
- -webkit-appearance: none;
617
- -moz-appearance: none;
618
- appearance: none;
619
- display: block;
620
- width: 20px;
621
- height: 20px;
622
- margin: 0;
623
- background-color: var(--charcoal-color-container-neutral-default);
624
- border-radius: 999999px;
625
- transition:
626
- 0.2s background-color,
627
- 0.2s box-shadow;
628
- }
629
-
630
- .charcoal-multi-select-input[type='checkbox']:checked {
631
- background-color: var(--charcoal-color-container-primary-default);
632
- }
633
-
634
- .charcoal-multi-select-input[type='checkbox']:focus {
635
- outline: none;
636
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
637
- }
638
-
639
- .charcoal-multi-select-input[type='checkbox']:focus-visible {
640
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
641
- }
642
-
643
- .charcoal-multi-select-input[type='checkbox']:focus:not(:focus-visible) {
644
- box-shadow: none;
645
- }
646
-
647
- .charcoal-multi-select-input[type='checkbox']:hover:not(:disabled):not([aria-disabled]),
648
- .charcoal-multi-select-input[type='checkbox']:hover[aria-disabled='false'] {
649
- background-color: var(--charcoal-color-container-neutral-hover);
650
- }
651
-
652
- .charcoal-multi-select-input[type='checkbox']:active:not(:disabled):not([aria-disabled]),
653
- .charcoal-multi-select-input[type='checkbox']:active[aria-disabled='false'] {
654
- background-color: var(--charcoal-color-container-neutral-press);
655
- }
656
-
657
- .charcoal-multi-select-input[type='checkbox']:checked:hover:not(:disabled):not([aria-disabled]),
658
- .charcoal-multi-select-input[type='checkbox']:checked:hover[aria-disabled='false'] {
659
- background-color: var(--charcoal-color-container-primary-hover);
660
- }
661
-
662
- .charcoal-multi-select-input[type='checkbox']:checked:active:not(:disabled):not([aria-disabled]),
663
- .charcoal-multi-select-input[type='checkbox']:checked:active[aria-disabled='false'] {
664
- background-color: var(--charcoal-color-container-primary-press);
665
- }
666
-
667
- .charcoal-multi-select-input[type='checkbox'][aria-invalid='true'][data-overlay='false']:not(:disabled):not(
668
- [aria-disabled]
669
- ) {
670
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
671
- }
672
-
673
- .charcoal-multi-select-input[type='checkbox'][aria-invalid='true'][data-overlay='false'][aria-disabled='false'] {
674
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
675
- }
676
-
677
- .charcoal-multi-select-input[type='checkbox'][data-overlay='true'] {
678
- background-color: var(--charcoal-color-container-on-img-default);
679
- }
680
-
681
- .charcoal-multi-select-overlay {
682
- position: absolute;
683
- top: -2px;
684
- left: -2px;
685
- box-sizing: border-box;
686
- display: flex;
687
- align-items: center;
688
- justify-content: center;
689
- width: 24px;
690
- height: 24px;
691
- border-radius: 999999px;
692
- color: var(--charcoal-color-icon-on-primary-default);
693
- transition: 0.2s box-shadow;
694
- }
695
-
696
- .charcoal-multi-select-overlay[aria-invalid='true'][data-overlay='true']:not(:disabled):not(
697
- [aria-disabled]
698
- ) {
699
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
700
- }
701
-
702
- .charcoal-multi-select-overlay[aria-invalid='true'][data-overlay='true'][aria-disabled='false'] {
703
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
704
- }
705
-
706
- .charcoal-multi-select-overlay[data-overlay='true'] {
707
- border-color: var(--charcoal-color-border-hud);
708
- border-width: 2px;
709
- border-style: solid;
710
- }
711
- .charcoal-text-area-root {
712
- display: grid;
713
- grid-template-columns: 1fr;
714
- grid-gap: 4px;
715
- }
716
-
717
- .charcoal-text-area-root[aria-disabled='true'] {
718
- opacity: 0.32;
719
- }
720
-
721
- .charcoal-text-area-container {
722
- /* Runtime variable overridden by the React component. */
723
- --charcoal-text-area-rows: 4;
724
-
725
- position: relative;
726
- overflow: hidden;
727
-
728
- color: var(--charcoal-color-text-secondary-default);
729
- background-color: var(--charcoal-color-container-secondary-default-a);
730
- border-radius: 4px;
731
- transition:
732
- 0.2s background-color,
733
- 0.2s box-shadow;
734
- height: calc(22px * var(--charcoal-text-area-rows) + 18px);
735
- }
736
-
737
- .charcoal-text-area-container[aria-invalid='true'] {
738
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
739
- }
740
-
741
- .charcoal-text-area-container:focus-within {
742
- outline: none;
743
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
744
- }
745
-
746
- .charcoal-text-area-container:has([data-no-bottom-padding='true']) {
747
- height: calc(22px * (var(--charcoal-text-area-rows) + 1) + 18px);
748
- }
749
-
750
- .charcoal-text-area-container:not([aria-disabled='true']):hover {
751
- background-color: var(--charcoal-color-container-secondary-hover-a);
752
- }
753
-
754
- .charcoal-text-area-container[aria-invalid='true']:focus-within {
755
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
756
- }
757
-
758
- .charcoal-text-area-textarea {
759
- border: none;
760
- outline: none;
761
- resize: none;
762
- font-family: inherit;
763
- color: inherit;
764
- box-sizing: border-box;
765
-
766
- /* Prevent zooming for iOS Safari */
767
- --charcoal-textarea-safari-prevent-zoom-scale: 0.875;
768
- --charcoal-textarea-line-height: calc(
769
- 22px / var(--charcoal-textarea-safari-prevent-zoom-scale)
770
- );
771
- --charcoal-textarea-padding-y: calc(
772
- 8px / var(--charcoal-textarea-safari-prevent-zoom-scale)
773
- );
774
- --charcoal-textarea-padding-x: calc(
775
- 9px / var(--charcoal-textarea-safari-prevent-zoom-scale)
776
- );
777
-
778
- transform-origin: top left;
779
- transform: scale(var(--charcoal-textarea-safari-prevent-zoom-scale));
780
- width: calc(100% / var(--charcoal-textarea-safari-prevent-zoom-scale));
781
- font-size: calc(14px / var(--charcoal-textarea-safari-prevent-zoom-scale));
782
- line-height: var(--charcoal-textarea-line-height);
783
- padding: var(--charcoal-textarea-padding-y) var(--charcoal-textarea-padding-x);
784
- height: calc(
785
- var(--charcoal-textarea-line-height) * var(--charcoal-text-area-rows) +
786
- var(--charcoal-textarea-padding-y) * 2
787
- );
788
-
789
- /* Display box-shadow for iOS Safari */
790
- -webkit-appearance: none;
791
- -moz-appearance: none;
792
- appearance: none;
793
-
794
- background: none;
795
- }
796
-
797
- .charcoal-text-area-textarea[data-no-bottom-padding='true'] {
798
- padding: var(--charcoal-textarea-padding-y)
799
- var(--charcoal-textarea-padding-x) 0;
800
- height: calc(
801
- var(--charcoal-textarea-line-height) * var(--charcoal-text-area-rows) +
802
- var(--charcoal-textarea-padding-y)
803
- );
804
- }
805
-
806
- .charcoal-text-area-textarea::-moz-placeholder {
807
- color: var(--charcoal-color-text-placeholder-default);
808
- }
809
-
810
- .charcoal-text-area-textarea::placeholder {
811
- color: var(--charcoal-color-text-placeholder-default);
812
- }
813
-
814
- .charcoal-text-area-counter {
815
- position: absolute;
816
- bottom: 9px;
817
- right: 8px;
818
-
819
- line-height: 22px;
820
- font-size: 14px;
821
- color: var(--charcoal-color-text-tertiary-default);
822
- }
823
563
  .charcoal-icon {
824
564
  display: inline-flex;
825
565
  width: var(--charcoal-icon-size);
@@ -863,90 +603,49 @@ pixiv-icon:not(:defined)[name^='Inline/'] {
863
603
  pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
864
604
  --pixiv-icon-scale: 2;
865
605
  }
866
- .charcoal-loading-spinner {
867
- box-sizing: content-box;
868
- margin: auto;
869
- padding: 16px;
870
- border-radius: 8px;
871
- font-size: 48px;
872
- width: 48px;
873
- height: 48px;
874
- opacity: 0.84;
875
- color: var(--charcoal-color-icon-tertiary-default);
876
- background-color: var(--charcoal-color-background-default);
877
- }
878
-
879
- .charcoal-loading-spinner[data-transparent='true'] {
880
- background-color: var(--charcoal-color-container-default-a);
881
- }
882
-
883
- @keyframes charcoal-loading-spinner-icon-scale-out {
884
- from {
885
- transform: scale(0);
886
- opacity: 1;
887
- }
888
- to {
889
- transform: scale(1);
890
- opacity: 0;
891
- }
892
- }
893
-
894
- .charcoal-loading-spinner-icon {
895
- width: 1em;
896
- height: 1em;
897
- border-radius: 1em;
898
- background-color: currentColor;
899
- animation: charcoal-loading-spinner-icon-scale-out 1s both ease-out;
900
- animation-iteration-count: infinite;
901
- }
902
-
903
- .charcoal-loading-spinner-icon[data-reset-animation] {
904
- animation: none;
905
- }
606
+ .charcoal-clickable {
607
+ cursor: pointer;
906
608
 
907
- .charcoal-loading-spinner-icon[data-once='true'] {
908
- animation-iteration-count: 1;
909
- }
910
- .charcoal-dropdown-selector-menu-item {
911
- font-size: 14px;
912
- line-height: 22px;
913
- color: var(--charcoal-color-text-secondary-default);
914
- padding: 9px 0;
609
+ /* Reset button appearance */
610
+ -webkit-appearance: none;
611
+ -moz-appearance: none;
612
+ appearance: none;
613
+ background: transparent;
614
+ padding: 0;
615
+ border-style: none;
616
+ outline: none;
617
+ color: inherit;
618
+ text-rendering: inherit;
619
+ letter-spacing: inherit;
620
+ word-spacing: inherit;
621
+ text-decoration: none;
915
622
 
916
- display: flex;
917
- align-items: center;
918
- width: 100%;
919
- margin-left: 20px;
920
- }
623
+ /* Change the font styles in all browsers. */
624
+ font: inherit;
921
625
 
922
- .charcoal-dropdown-selector-menu-item[data-selected='true'] {
923
- margin-left: 0px;
924
- }
626
+ /* Remove the margin in Firefox and Safari. */
627
+ margin: 0;
925
628
 
926
- .charcoal-dropdown-selector-menu-item-icon {
927
- color: var(--charcoal-color-text-secondary-default);
928
- padding-right: 4px;
929
- }
629
+ /* Show the overflow in Edge. */
630
+ overflow: visible;
930
631
 
931
- .charcoal-dropdown-selector-menu-item-container {
932
- display: flex;
933
- align-items: center;
632
+ /* Remove the inheritance of text transform in Firefox. */
633
+ text-transform: none;
934
634
  }
935
635
 
936
- .charcoal-dropdown-selector-menu-secondary {
937
- font-size: 12px;
938
- line-height: 20px;
939
- color: var(--charcoal-color-text-tertiary-default);
940
- padding-bottom: 9px;
636
+ .charcoal-clickable:disabled,
637
+ .charcoal-clickable[aria-disabled]:not([aria-disabled='false']) {
638
+ cursor: default;
639
+ }
941
640
 
942
- display: flex;
943
- align-items: center;
944
- margin-left: 20px;
945
- }
641
+ .charcoal-clickable:focus {
642
+ outline: none;
643
+ }
946
644
 
947
- .charcoal-dropdown-selector-menu-fullwidth {
948
- width: 100%;
949
- }
645
+ .charcoal-clickable::-moz-focus-inner {
646
+ border-style: none;
647
+ padding: 0;
648
+ }
950
649
  .charcoal-dropdown-selector-root {
951
650
  display: grid;
952
651
  grid-template-columns: 1fr;
@@ -1031,141 +730,158 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
1031
730
  .charcoal-ui-dropdown-selector-icon {
1032
731
  color: var(--charcoal-color-icon-secondary-default);
1033
732
  }
1034
- .charcoal-menu-item-group {
1035
- display: block;
733
+ .charcoal-modal-header-root {
734
+ height: 64px;
735
+ display: grid;
736
+ align-content: center;
737
+ justify-content: center;
1036
738
  }
1037
739
 
1038
- .charcoal-menu-item-group > span {
1039
- display: block;
1040
- color: var(--charcoal-color-text-tertiary-default);
1041
- font-size: 12px;
1042
- font-weight: bold;
1043
- padding: 12px 0 8px 16px;
740
+ @media (max-width: 743px) {
741
+ .charcoal-modal-header-root[data-bottom-sheet='true'],
742
+ .charcoal-modal-header-root[data-bottom-sheet='full'] {
743
+ height: 48px;
744
+ }
1044
745
  }
1045
746
 
1046
- .charcoal-menu-item-group > ul {
1047
- padding-left: 0;
1048
- margin: 0;
1049
- box-sizing: border-box;
1050
- list-style: none;
1051
- overflow: hidden;
747
+ .charcoal-modal-header-title {
748
+ color: var(--charcoal-color-text-default);
749
+ font-size: 16px;
750
+ line-height: 24px;
751
+ font-weight: bold;
752
+ display: flow-root;
1052
753
  }
1053
- .charcoal-segmented-control {
1054
- display: inline-flex;
1055
- align-items: center;
1056
754
 
1057
- background-color: var(--charcoal-color-container-secondary-default-a);
1058
- border-radius: 16px;
755
+ .charcoal-modal-align {
756
+ padding-left: 16px;
757
+ padding-right: 16px;
1059
758
  }
1060
759
 
1061
- .charcoal-segmented-control[data-uniform-segment-width='true'],
1062
- .charcoal-segmented-control[data-full-width='true'] {
1063
- display: inline-grid;
1064
- grid-auto-columns: minmax(80px, 1fr);
1065
- grid-auto-rows: 32px;
1066
- grid-auto-flow: column;
1067
- }
760
+ .charcoal-modal-body {
761
+ padding-bottom: 40px;
762
+ }
1068
763
 
1069
- .charcoal-segmented-control[data-full-width='true'] {
1070
- width: 100%;
1071
- }
764
+ .charcoal-modal-buttons {
765
+ display: grid;
766
+ grid-auto-flow: row;
767
+ grid-row-gap: 8px;
1072
768
 
1073
- .charcoal-segmented-control-radio__label {
1074
- position: relative;
769
+ padding-top: 16px;
770
+ padding-left: 16px;
771
+ padding-right: 16px;
772
+ }
773
+ .charcoal-modal-background {
774
+ overflow: auto;
1075
775
  display: flex;
1076
- align-items: center;
776
+ position: fixed;
777
+ top: 0;
778
+ left: 0;
779
+ width: 100%;
780
+ height: 100%;
1077
781
  justify-content: center;
1078
- cursor: pointer;
1079
- height: 32px;
1080
-
1081
- padding-right: 16px;
1082
- padding-left: 16px;
1083
- border-radius: 16px;
1084
- color: var(--charcoal-color-text-secondary-default);
782
+ padding: 40px 0;
783
+ box-sizing: border-box;
1085
784
 
1086
- font-size: 14px;
1087
- line-height: 22px;
785
+ background-color: var(--charcoal-color-background-overlay);
1088
786
  }
1089
787
 
1090
- .charcoal-segmented-control-radio__label[aria-disabled]:not([aria-disabled='false']) {
1091
- cursor: default;
1092
- opacity: 0.32;
788
+ @media (max-width: 743px) {
789
+ .charcoal-modal-background[data-bottom-sheet='true'],
790
+ .charcoal-modal-background[data-bottom-sheet='full'] {
791
+ padding: 0;
792
+ }
1093
793
  }
1094
794
 
1095
- .charcoal-segmented-control-radio__label[data-checked='true'] {
1096
- background-color: var(--charcoal-color-container-primary-default);
1097
- color: var(--charcoal-color-text-on-primary-default);
1098
- }
795
+ /* easeOutQuart。duration は useTransitionPresence の MODAL_TRANSITION_DURATION_MS と一致させること。
796
+ transition は entering / exiting に限定し、開いたままテーマ切り替え等で
797
+ 色や transform が変わってもアニメーションしないようにする */
798
+ .charcoal-modal-background[data-animation] {
799
+ overflow: hidden;
800
+ }
1099
801
 
1100
- .charcoal-segmented-control-radio__label[data-uniform-segment-width='true'],
1101
- .charcoal-segmented-control-radio__label[data-full-width='true'] {
1102
- justify-content: center;
1103
- white-space: nowrap;
1104
- }
802
+ .charcoal-modal-background[data-animation='entering'],
803
+ .charcoal-modal-background[data-animation='exiting'] {
804
+ transition: background-color 400ms cubic-bezier(0.25, 1, 0.5, 1);
805
+ }
1105
806
 
1106
- .charcoal-segmented-control-radio__input {
1107
- position: absolute;
807
+ /* 閉じアニメーション中はクリックを下のページへ通す(transitionend が来ない環境で
808
+ 透明なオーバーレイがタップを奪い続けるのも防ぐ) */
809
+ .charcoal-modal-background[data-animation='exited'],
810
+ .charcoal-modal-background[data-animation='exiting'] {
811
+ background-color: transparent;
812
+ pointer-events: none;
813
+ }
1108
814
 
1109
- height: 0px;
1110
- width: 0px;
1111
- padding: 0;
1112
- margin: 0;
815
+ .charcoal-modal-background[data-animation='entered'] {
816
+ overflow: auto;
817
+ }
1113
818
 
1114
- -webkit-appearance: none;
819
+ .charcoal-modal-background[data-animation='entering'] > .charcoal-modal-dialog,
820
+ .charcoal-modal-background[data-animation='exiting'] > .charcoal-modal-dialog {
821
+ transition: transform 400ms cubic-bezier(0.25, 1, 0.5, 1);
822
+ }
1115
823
 
1116
- -moz-appearance: none;
824
+ .charcoal-modal-background[data-animation='exited'] > .charcoal-modal-dialog,
825
+ .charcoal-modal-background[data-animation='exiting'] > .charcoal-modal-dialog {
826
+ transform: translateY(100%);
827
+ }
1117
828
 
1118
- appearance: none;
1119
- box-sizing: border-box;
1120
- overflow: hidden;
1121
- white-space: nowrap;
1122
- opacity: 0;
829
+ .charcoal-modal-close-button {
830
+ position: absolute;
831
+ top: 8px;
832
+ right: 8px;
833
+
834
+ color: var(--charcoal-color-text-tertiary-default);
835
+ transition: 0.2s color;
1123
836
  }
1124
- .charcoal-checkbox__label {
1125
- position: relative;
1126
- cursor: pointer;
1127
- display: flex;
1128
- gap: 4px;
837
+
838
+ .charcoal-modal-title {
839
+ margin: 0;
840
+ font-weight: inherit;
841
+ font-size: inherit;
842
+ }
843
+ .charcoal-loading-spinner {
844
+ box-sizing: content-box;
845
+ margin: auto;
846
+ padding: 16px;
847
+ border-radius: 8px;
848
+ font-size: 48px;
849
+ width: 48px;
850
+ height: 48px;
851
+ opacity: 0.84;
852
+ color: var(--charcoal-color-icon-tertiary-default);
853
+ background-color: var(--charcoal-color-background-default);
1129
854
  }
1130
855
 
1131
- .charcoal-checkbox__label[aria-disabled='true'] {
1132
- cursor: default;
1133
- opacity: 0.32;
856
+ .charcoal-loading-spinner[data-transparent='true'] {
857
+ background-color: var(--charcoal-color-container-default-a);
1134
858
  }
1135
859
 
1136
- .charcoal-checkbox__label[aria-disabled='true'] > input {
1137
- opacity: 1;
1138
- }
1139
-
1140
- .charcoal-checkbox__label_div {
1141
- flex: 1;
1142
- color: var(--charcoal-color-text-default);
1143
- font-size: 14px;
1144
- line-height: 20px;
860
+ @keyframes charcoal-loading-spinner-icon-scale-out {
861
+ from {
862
+ transform: scale(0);
863
+ opacity: 1;
864
+ }
865
+ to {
866
+ transform: scale(1);
867
+ opacity: 0;
868
+ }
1145
869
  }
1146
- .charcoal-text-ellipsis {
1147
- /* Runtime variables overridden by the React component. */
1148
- --charcoal-text-ellipsis-line-limit: 1;
1149
- --charcoal-text-ellipsis-line-height: inherit;
1150
870
 
1151
- overflow: hidden;
1152
- overflow-wrap: break-word;
1153
- display: -webkit-box;
1154
- -webkit-box-orient: vertical;
1155
- -webkit-line-clamp: var(--charcoal-text-ellipsis-line-limit);
871
+ .charcoal-loading-spinner-icon {
872
+ width: 1em;
873
+ height: 1em;
874
+ border-radius: 1em;
875
+ background-color: currentColor;
876
+ animation: charcoal-loading-spinner-icon-scale-out 1s infinite both ease-out;
1156
877
  }
1157
878
 
1158
- .charcoal-text-ellipsis[data-has-line-height='true'] {
1159
- line-height: var(--charcoal-text-ellipsis-line-height);
1160
- }
1161
-
1162
- .charcoal-text-ellipsis[data-has-line-height='false'] {
1163
- line-height: inherit;
879
+ .charcoal-loading-spinner-icon[data-reset-animation] {
880
+ animation: none;
1164
881
  }
1165
882
 
1166
- .charcoal-text-ellipsis[data-line-limit='1'][data-use-nowrap='true'] {
1167
- text-overflow: ellipsis;
1168
- white-space: nowrap;
883
+ .charcoal-loading-spinner-icon[data-once='true'] {
884
+ animation-iteration-count: 1;
1169
885
  }
1170
886
  .charcoal-tag-item {
1171
887
  --charcoal-tag-item-color: var(--charcoal-color-text-on-primary-default);
@@ -1321,6 +1037,180 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
1321
1037
  .charcoal-tag-item__labe__text[data-has-translate='true']::after {
1322
1038
  display: none;
1323
1039
  }
1040
+ .charcoal-checkbox__label {
1041
+ position: relative;
1042
+ cursor: pointer;
1043
+ display: flex;
1044
+ gap: 4px;
1045
+ }
1046
+
1047
+ .charcoal-checkbox__label[aria-disabled='true'] {
1048
+ cursor: default;
1049
+ opacity: 0.32;
1050
+ }
1051
+
1052
+ .charcoal-checkbox__label[aria-disabled='true'] > input {
1053
+ opacity: 1;
1054
+ }
1055
+
1056
+ .charcoal-checkbox__label_div {
1057
+ flex: 1;
1058
+ color: var(--charcoal-color-text-default);
1059
+ font-size: 14px;
1060
+ line-height: 20px;
1061
+ }
1062
+ .charcoal-dropdown-selector-menu-item {
1063
+ font-size: 14px;
1064
+ line-height: 22px;
1065
+ color: var(--charcoal-color-text-secondary-default);
1066
+ padding: 9px 0;
1067
+
1068
+ display: flex;
1069
+ align-items: center;
1070
+ width: 100%;
1071
+ margin-left: 20px;
1072
+ }
1073
+
1074
+ .charcoal-dropdown-selector-menu-item[data-selected='true'] {
1075
+ margin-left: 0px;
1076
+ }
1077
+
1078
+ .charcoal-dropdown-selector-menu-item-icon {
1079
+ color: var(--charcoal-color-text-secondary-default);
1080
+ padding-right: 4px;
1081
+ }
1082
+
1083
+ .charcoal-dropdown-selector-menu-item-container {
1084
+ display: flex;
1085
+ align-items: center;
1086
+ }
1087
+
1088
+ .charcoal-dropdown-selector-menu-secondary {
1089
+ font-size: 12px;
1090
+ line-height: 20px;
1091
+ color: var(--charcoal-color-text-tertiary-default);
1092
+ padding-bottom: 9px;
1093
+
1094
+ display: flex;
1095
+ align-items: center;
1096
+ margin-left: 20px;
1097
+ }
1098
+
1099
+ .charcoal-dropdown-selector-menu-fullwidth {
1100
+ width: 100%;
1101
+ }
1102
+ .charcoal-text-area-root {
1103
+ display: grid;
1104
+ grid-template-columns: 1fr;
1105
+ grid-gap: 4px;
1106
+ }
1107
+
1108
+ .charcoal-text-area-root[aria-disabled='true'] {
1109
+ opacity: 0.32;
1110
+ }
1111
+
1112
+ .charcoal-text-area-container {
1113
+ /* Runtime variable overridden by the React component. */
1114
+ --charcoal-text-area-rows: 4;
1115
+
1116
+ position: relative;
1117
+ overflow: hidden;
1118
+
1119
+ color: var(--charcoal-color-text-secondary-default);
1120
+ background-color: var(--charcoal-color-container-secondary-default-a);
1121
+ border-radius: 4px;
1122
+ transition:
1123
+ 0.2s background-color,
1124
+ 0.2s box-shadow;
1125
+ height: calc(22px * var(--charcoal-text-area-rows) + 18px);
1126
+ }
1127
+
1128
+ .charcoal-text-area-container[aria-invalid='true'] {
1129
+ box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
1130
+ }
1131
+
1132
+ .charcoal-text-area-container:focus-within {
1133
+ outline: none;
1134
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
1135
+ }
1136
+
1137
+ .charcoal-text-area-container:has([data-no-bottom-padding='true']) {
1138
+ height: calc(22px * (var(--charcoal-text-area-rows) + 1) + 18px);
1139
+ }
1140
+
1141
+ .charcoal-text-area-container:not([aria-disabled='true']):hover {
1142
+ background-color: var(--charcoal-color-container-secondary-hover-a);
1143
+ }
1144
+
1145
+ .charcoal-text-area-container[aria-invalid='true']:focus-within {
1146
+ box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
1147
+ }
1148
+
1149
+ .charcoal-text-area-textarea {
1150
+ border: none;
1151
+ outline: none;
1152
+ resize: none;
1153
+ font-family: inherit;
1154
+ color: inherit;
1155
+ box-sizing: border-box;
1156
+
1157
+ /* Prevent zooming for iOS Safari */
1158
+ --charcoal-textarea-safari-prevent-zoom-scale: 0.875;
1159
+ --charcoal-textarea-line-height: calc(
1160
+ 22px / var(--charcoal-textarea-safari-prevent-zoom-scale)
1161
+ );
1162
+ --charcoal-textarea-padding-y: calc(
1163
+ 8px / var(--charcoal-textarea-safari-prevent-zoom-scale)
1164
+ );
1165
+ --charcoal-textarea-padding-x: calc(
1166
+ 9px / var(--charcoal-textarea-safari-prevent-zoom-scale)
1167
+ );
1168
+
1169
+ transform-origin: top left;
1170
+ transform: scale(var(--charcoal-textarea-safari-prevent-zoom-scale));
1171
+ width: calc(100% / var(--charcoal-textarea-safari-prevent-zoom-scale));
1172
+ font-size: calc(14px / var(--charcoal-textarea-safari-prevent-zoom-scale));
1173
+ line-height: var(--charcoal-textarea-line-height);
1174
+ padding: var(--charcoal-textarea-padding-y) var(--charcoal-textarea-padding-x);
1175
+ height: calc(
1176
+ var(--charcoal-textarea-line-height) * var(--charcoal-text-area-rows) +
1177
+ var(--charcoal-textarea-padding-y) * 2
1178
+ );
1179
+
1180
+ /* Display box-shadow for iOS Safari */
1181
+ -webkit-appearance: none;
1182
+ -moz-appearance: none;
1183
+ appearance: none;
1184
+
1185
+ background: none;
1186
+ }
1187
+
1188
+ .charcoal-text-area-textarea[data-no-bottom-padding='true'] {
1189
+ padding: var(--charcoal-textarea-padding-y)
1190
+ var(--charcoal-textarea-padding-x) 0;
1191
+ height: calc(
1192
+ var(--charcoal-textarea-line-height) * var(--charcoal-text-area-rows) +
1193
+ var(--charcoal-textarea-padding-y)
1194
+ );
1195
+ }
1196
+
1197
+ .charcoal-text-area-textarea::-moz-placeholder {
1198
+ color: var(--charcoal-color-text-placeholder-default);
1199
+ }
1200
+
1201
+ .charcoal-text-area-textarea::placeholder {
1202
+ color: var(--charcoal-color-text-placeholder-default);
1203
+ }
1204
+
1205
+ .charcoal-text-area-counter {
1206
+ position: absolute;
1207
+ bottom: 9px;
1208
+ right: 8px;
1209
+
1210
+ line-height: 22px;
1211
+ font-size: 14px;
1212
+ color: var(--charcoal-color-text-tertiary-default);
1213
+ }
1324
1214
  .charcoal-hint-text {
1325
1215
  background-color: var(--charcoal-color-container-secondary-default);
1326
1216
  border-radius: 8px;
@@ -1357,6 +1247,30 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
1357
1247
  min-width: 0;
1358
1248
  overflow-wrap: break-word;
1359
1249
  }
1250
+ .charcoal-text-ellipsis {
1251
+ /* Runtime variables overridden by the React component. */
1252
+ --charcoal-text-ellipsis-line-limit: 1;
1253
+ --charcoal-text-ellipsis-line-height: inherit;
1254
+
1255
+ overflow: hidden;
1256
+ overflow-wrap: break-word;
1257
+ display: -webkit-box;
1258
+ -webkit-box-orient: vertical;
1259
+ -webkit-line-clamp: var(--charcoal-text-ellipsis-line-limit);
1260
+ }
1261
+
1262
+ .charcoal-text-ellipsis[data-has-line-height='true'] {
1263
+ line-height: var(--charcoal-text-ellipsis-line-height);
1264
+ }
1265
+
1266
+ .charcoal-text-ellipsis[data-has-line-height='false'] {
1267
+ line-height: inherit;
1268
+ }
1269
+
1270
+ .charcoal-text-ellipsis[data-line-limit='1'][data-use-nowrap='true'] {
1271
+ text-overflow: ellipsis;
1272
+ white-space: nowrap;
1273
+ }
1360
1274
  .charcoal-pagination {
1361
1275
  display: flex;
1362
1276
  justify-content: center;
@@ -1383,7 +1297,9 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
1383
1297
  border-style: none;
1384
1298
  outline: none;
1385
1299
  text-decoration: none;
1386
- font: inherit;
1300
+ font-family: inherit;
1301
+ font-style: inherit;
1302
+ font-variant: inherit;
1387
1303
  margin: 0;
1388
1304
  -webkit-user-select: none;
1389
1305
  -moz-user-select: none;
@@ -1471,6 +1387,96 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
1471
1387
  .charcoal-pagination-spacer.charcoal-icon-button:disabled {
1472
1388
  opacity: 1;
1473
1389
  }
1390
+ .charcoal-menu-item-group {
1391
+ display: block;
1392
+ }
1393
+
1394
+ .charcoal-menu-item-group > span {
1395
+ display: block;
1396
+ color: var(--charcoal-color-text-tertiary-default);
1397
+ font-size: 12px;
1398
+ font-weight: bold;
1399
+ padding: 12px 0 8px 16px;
1400
+ }
1401
+
1402
+ .charcoal-menu-item-group > ul {
1403
+ padding-left: 0;
1404
+ margin: 0;
1405
+ box-sizing: border-box;
1406
+ list-style: none;
1407
+ overflow: hidden;
1408
+ }
1409
+ .charcoal-segmented-control {
1410
+ display: inline-flex;
1411
+ align-items: center;
1412
+
1413
+ background-color: var(--charcoal-color-container-secondary-default-a);
1414
+ border-radius: 16px;
1415
+ }
1416
+
1417
+ .charcoal-segmented-control[data-uniform-segment-width='true'],
1418
+ .charcoal-segmented-control[data-full-width='true'] {
1419
+ display: inline-grid;
1420
+ grid-auto-columns: minmax(80px, 1fr);
1421
+ grid-auto-rows: 32px;
1422
+ grid-auto-flow: column;
1423
+ }
1424
+
1425
+ .charcoal-segmented-control[data-full-width='true'] {
1426
+ width: 100%;
1427
+ }
1428
+
1429
+ .charcoal-segmented-control-radio__label {
1430
+ position: relative;
1431
+ display: flex;
1432
+ align-items: center;
1433
+ justify-content: center;
1434
+ cursor: pointer;
1435
+ height: 32px;
1436
+
1437
+ padding-right: 16px;
1438
+ padding-left: 16px;
1439
+ border-radius: 16px;
1440
+ color: var(--charcoal-color-text-secondary-default);
1441
+
1442
+ font-size: 14px;
1443
+ line-height: 22px;
1444
+ }
1445
+
1446
+ .charcoal-segmented-control-radio__label[aria-disabled]:not([aria-disabled='false']) {
1447
+ cursor: default;
1448
+ opacity: 0.32;
1449
+ }
1450
+
1451
+ .charcoal-segmented-control-radio__label[data-checked='true'] {
1452
+ background-color: var(--charcoal-color-container-primary-default);
1453
+ color: var(--charcoal-color-text-on-primary-default);
1454
+ }
1455
+
1456
+ .charcoal-segmented-control-radio__label[data-uniform-segment-width='true'],
1457
+ .charcoal-segmented-control-radio__label[data-full-width='true'] {
1458
+ justify-content: center;
1459
+ white-space: nowrap;
1460
+ }
1461
+
1462
+ .charcoal-segmented-control-radio__input {
1463
+ position: absolute;
1464
+
1465
+ height: 0px;
1466
+ width: 0px;
1467
+ padding: 0;
1468
+ margin: 0;
1469
+
1470
+ -webkit-appearance: none;
1471
+
1472
+ -moz-appearance: none;
1473
+
1474
+ appearance: none;
1475
+ box-sizing: border-box;
1476
+ overflow: hidden;
1477
+ white-space: nowrap;
1478
+ opacity: 0;
1479
+ }
1474
1480
  .charcoal-carousel {
1475
1481
  --charcoal-carousel-gap: 0px;
1476
1482
 
@@ -1888,51 +1894,43 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
1888
1894
  .charcoal-radio-input:checked:not(:disabled):active::after {
1889
1895
  background-color: var(--charcoal-color-icon-on-primary-press);
1890
1896
  }
1891
- .charcoal-modal-dialog {
1892
- margin: auto;
1893
- position: relative;
1894
- height: -moz-fit-content;
1895
- height: fit-content;
1896
- width: 440px;
1897
-
1898
- background-color: var(--charcoal-color-container-default);
1899
- border-radius: 24px;
1897
+ .charcoal-field-label {
1898
+ font-size: 14px;
1899
+ line-height: 22px;
1900
+ font-weight: bold;
1901
+ display: flow-root;
1902
+ color: var(--charcoal-color-text-default-text1);
1900
1903
  }
1901
1904
 
1902
- .charcoal-modal-dialog[data-size='S'] {
1903
- width: 336px;
1905
+ .charcoal-field-label-required-text {
1906
+ font-size: 14px;
1907
+ line-height: 22px;
1908
+ display: flow-root;
1909
+ color: var(--charcoal-color-text-secondary-default);
1904
1910
  }
1905
1911
 
1906
- .charcoal-modal-dialog[data-size='M'] {
1907
- width: 440px;
1912
+ .charcoal-field-label-sub-label {
1913
+ font-size: 14px;
1914
+ line-height: 22px;
1915
+ display: flow-root;
1916
+ color: var(--charcoal-color-text-tertiary-default);
1917
+ transition:
1918
+ 0.2s color,
1919
+ 0.2s box-shadow;
1908
1920
  }
1909
1921
 
1910
- .charcoal-modal-dialog[data-size='L'] {
1911
- width: 648px;
1922
+ .charcoal-field-label-root {
1923
+ display: inline-flex;
1924
+ align-items: center;
1912
1925
  }
1913
1926
 
1914
- @media (max-width: 743px) {
1915
- .charcoal-modal-dialog {
1916
- max-width: 440px;
1917
- width: calc(100% - 48px);
1918
- }
1919
-
1920
- .charcoal-modal-dialog[data-bottom-sheet='true'],
1921
- .charcoal-modal-dialog[data-bottom-sheet='full'] {
1922
- max-width: unset;
1923
- width: 100%;
1924
- border-radius: 0;
1925
- margin: auto 0 0 0;
1927
+ .charcoal-field-label-root > .charcoal-field-label-required-text {
1928
+ margin-left: 4px;
1926
1929
  }
1927
1930
 
1928
- .charcoal-modal-dialog[data-bottom-sheet='full'] {
1929
- min-height: 100%;
1931
+ .charcoal-field-label-root > .charcoal-field-label-sub-label {
1932
+ margin-left: auto;
1930
1933
  }
1931
- }
1932
-
1933
- .charcoal-modal-dialog:focus {
1934
- outline: none;
1935
- }
1936
1934
  .charcoal-switch-input {
1937
1935
  cursor: pointer;
1938
1936
  -webkit-appearance: none;
@@ -2021,66 +2019,50 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
2021
2019
  padding: 0;
2022
2020
  margin: 0;
2023
2021
  }
2024
- .charcoal-field-label {
2025
- font-size: 14px;
2026
- line-height: 22px;
2027
- font-weight: bold;
2028
- display: flow-root;
2029
- color: var(--charcoal-color-text-default-text1);
2022
+ .charcoal-modal-dialog {
2023
+ margin: auto;
2024
+ position: relative;
2025
+ height: -moz-fit-content;
2026
+ height: fit-content;
2027
+ width: 440px;
2028
+
2029
+ background-color: var(--charcoal-color-container-default);
2030
+ border-radius: 24px;
2030
2031
  }
2031
2032
 
2032
- .charcoal-field-label-required-text {
2033
- font-size: 14px;
2034
- line-height: 22px;
2035
- display: flow-root;
2036
- color: var(--charcoal-color-text-secondary-default);
2033
+ .charcoal-modal-dialog[data-size='S'] {
2034
+ width: 336px;
2037
2035
  }
2038
2036
 
2039
- .charcoal-field-label-sub-label {
2040
- font-size: 14px;
2041
- line-height: 22px;
2042
- display: flow-root;
2043
- color: var(--charcoal-color-text-tertiary-default);
2044
- transition:
2045
- 0.2s color,
2046
- 0.2s box-shadow;
2037
+ .charcoal-modal-dialog[data-size='M'] {
2038
+ width: 440px;
2047
2039
  }
2048
2040
 
2049
- .charcoal-field-label-root {
2050
- display: inline-flex;
2051
- align-items: center;
2041
+ .charcoal-modal-dialog[data-size='L'] {
2042
+ width: 648px;
2052
2043
  }
2053
2044
 
2054
- .charcoal-field-label-root > .charcoal-field-label-required-text {
2055
- margin-left: 4px;
2045
+ @media (max-width: 743px) {
2046
+ .charcoal-modal-dialog {
2047
+ max-width: 440px;
2048
+ width: calc(100% - 48px);
2056
2049
  }
2057
2050
 
2058
- .charcoal-field-label-root > .charcoal-field-label-sub-label {
2059
- margin-left: auto;
2051
+ .charcoal-modal-dialog[data-bottom-sheet='true'],
2052
+ .charcoal-modal-dialog[data-bottom-sheet='full'] {
2053
+ max-width: unset;
2054
+ width: 100%;
2055
+ border-radius: 0;
2056
+ margin: auto 0 0 0;
2060
2057
  }
2061
- .charcoal-list-item {
2062
- list-style: none;
2063
- display: flex;
2064
- align-items: center;
2065
- min-height: 40px;
2066
- cursor: pointer;
2067
- outline: none;
2068
-
2069
- padding-right: 16px;
2070
- padding-left: 16px;
2071
-
2072
- transition: background-color 0.2s;
2073
- }
2074
2058
 
2075
- .charcoal-list-item:not([aria-disabled='true']):hover,
2076
- .charcoal-list-item:not([aria-disabled='true']):focus,
2077
- .charcoal-list-item:not([aria-disabled='true']):focus-within {
2078
- background-color: var(--charcoal-color-container-secondary-default);
2059
+ .charcoal-modal-dialog[data-bottom-sheet='full'] {
2060
+ min-height: 100%;
2061
+ }
2079
2062
  }
2080
2063
 
2081
- .charcoal-list-item[aria-disabled='true'] {
2082
- opacity: 0.32;
2083
- cursor: default;
2064
+ .charcoal-modal-dialog:focus {
2065
+ outline: none;
2084
2066
  }
2085
2067
  .charcoal-checkbox-input {
2086
2068
  -webkit-appearance: none;
@@ -2196,6 +2178,30 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
2196
2178
  border: 2px solid #fff;
2197
2179
  box-sizing: border-box;
2198
2180
  }
2181
+ .charcoal-list-item {
2182
+ list-style: none;
2183
+ display: flex;
2184
+ align-items: center;
2185
+ min-height: 40px;
2186
+ cursor: pointer;
2187
+ outline: none;
2188
+
2189
+ padding-right: 16px;
2190
+ padding-left: 16px;
2191
+
2192
+ transition: background-color 0.2s;
2193
+ }
2194
+
2195
+ .charcoal-list-item:not([aria-disabled='true']):hover,
2196
+ .charcoal-list-item:not([aria-disabled='true']):focus,
2197
+ .charcoal-list-item:not([aria-disabled='true']):focus-within {
2198
+ background-color: var(--charcoal-color-container-secondary-default);
2199
+ }
2200
+
2201
+ .charcoal-list-item[aria-disabled='true'] {
2202
+ opacity: 0.32;
2203
+ cursor: default;
2204
+ }
2199
2205
  .charcoal-popover {
2200
2206
  margin: 4px 0;
2201
2207
  list-style: none;