@charcoal-ui/react 6.1.0-beta.5 → 6.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/dist/components/Notification/NotificationRegion.cjs +11 -6
  2. package/dist/components/Notification/NotificationRegion.cjs.map +1 -1
  3. package/dist/components/Notification/NotificationRegion.d.ts +2 -1
  4. package/dist/components/Notification/NotificationRegion.d.ts.map +1 -1
  5. package/dist/components/Notification/NotificationRegion.js +12 -7
  6. package/dist/components/Notification/NotificationRegion.js.map +1 -1
  7. package/dist/components/Notification/Snackbar/index.d.ts +1 -0
  8. package/dist/components/Notification/Snackbar/index.d.ts.map +1 -1
  9. package/dist/components/Notification/Snackbar/index2.cjs.map +1 -1
  10. package/dist/components/Notification/Snackbar/index2.js.map +1 -1
  11. package/dist/components/Notification/types.d.ts +5 -0
  12. package/dist/components/Notification/types.d.ts.map +1 -1
  13. package/dist/components/TextField/index.d.ts +0 -2
  14. package/dist/components/TextField/index.d.ts.map +1 -1
  15. package/dist/components/TextField/index2.cjs.map +1 -1
  16. package/dist/components/TextField/index2.js.map +1 -1
  17. package/dist/index.css +1518 -1515
  18. package/dist/layered.css +1518 -1515
  19. package/dist/layered.css.map +1 -1
  20. package/package.json +4 -7
  21. package/src/components/Notification/NotificationRegion.browser.test.tsx +120 -0
  22. package/src/components/Notification/NotificationRegion.tsx +14 -8
  23. package/src/components/Notification/Snackbar/__snapshots__/index.css.snap +5 -6
  24. package/src/components/Notification/Snackbar/index.css +7 -6
  25. package/src/components/Notification/Snackbar/index.story.tsx +4 -1
  26. package/src/components/Notification/Snackbar/index.test.tsx +5 -2
  27. package/src/components/Notification/Snackbar/index.tsx +1 -0
  28. package/src/components/Notification/Toast/__snapshots__/index.css.snap +5 -5
  29. package/src/components/Notification/Toast/index.css +7 -5
  30. package/src/components/Notification/Toast/index.story.tsx +4 -1
  31. package/src/components/Notification/Toast/index.test.tsx +5 -2
  32. package/src/components/Notification/__snapshots__/layout.css.snap +8 -4
  33. package/src/components/Notification/layout.css +8 -4
  34. package/src/components/Notification/types.ts +5 -0
  35. package/src/components/TextField/index.tsx +0 -1
package/dist/layered.css CHANGED
@@ -6,685 +6,579 @@
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-checkbox__label {
10
- position: relative;
9
+ .charcoal-clickable {
11
10
  cursor: pointer;
12
- display: flex;
13
- gap: 4px;
14
- }
15
11
 
16
- .charcoal-checkbox__label[aria-disabled='true'] {
17
- cursor: default;
18
- opacity: 0.32;
19
- }
12
+ /* Reset button appearance */
13
+ -webkit-appearance: none;
14
+ -moz-appearance: none;
15
+ appearance: none;
16
+ background: transparent;
17
+ padding: 0;
18
+ border-style: none;
19
+ outline: none;
20
+ color: inherit;
21
+ text-rendering: inherit;
22
+ letter-spacing: inherit;
23
+ word-spacing: inherit;
24
+ text-decoration: none;
20
25
 
21
- .charcoal-checkbox__label[aria-disabled='true'] > input {
22
- opacity: 1;
23
- }
26
+ /* Change the font styles in all browsers. */
27
+ font: inherit;
24
28
 
25
- .charcoal-checkbox__label_div {
26
- flex: 1;
27
- color: var(--charcoal-color-text-default);
28
- font-size: 14px;
29
- line-height: 20px;
30
- }
31
- .charcoal-segmented-control {
32
- display: inline-flex;
33
- align-items: center;
29
+ /* Remove the margin in Firefox and Safari. */
30
+ margin: 0;
34
31
 
35
- background-color: var(--charcoal-color-container-secondary-default-a);
36
- border-radius: 16px;
32
+ /* Show the overflow in Edge. */
33
+ overflow: visible;
34
+
35
+ /* Remove the inheritance of text transform in Firefox. */
36
+ text-transform: none;
37
37
  }
38
38
 
39
- .charcoal-segmented-control[data-uniform-segment-width='true'],
40
- .charcoal-segmented-control[data-full-width='true'] {
41
- display: inline-grid;
42
- grid-auto-columns: minmax(80px, 1fr);
43
- grid-auto-rows: 32px;
44
- grid-auto-flow: column;
39
+ .charcoal-clickable:disabled,
40
+ .charcoal-clickable[aria-disabled]:not([aria-disabled='false']) {
41
+ cursor: default;
45
42
  }
46
43
 
47
- .charcoal-segmented-control[data-full-width='true'] {
48
- width: 100%;
44
+ .charcoal-clickable:focus {
45
+ outline: none;
49
46
  }
50
47
 
51
- .charcoal-segmented-control-radio__label {
52
- position: relative;
53
- display: flex;
48
+ .charcoal-clickable::-moz-focus-inner {
49
+ border-style: none;
50
+ padding: 0;
51
+ }
52
+ .charcoal-button {
53
+ -webkit-appearance: none;
54
+ -moz-appearance: none;
55
+ appearance: none;
56
+ background-image: none;
57
+ box-sizing: border-box;
58
+ padding: 0 24px;
59
+ border-style: none;
60
+ outline: none;
61
+ text-rendering: inherit;
62
+ letter-spacing: inherit;
63
+ word-spacing: inherit;
64
+ text-decoration: none;
65
+ font-family: inherit;
66
+ font-style: inherit;
67
+ font-variant: inherit;
68
+ margin: 0;
69
+ overflow: visible;
70
+ text-transform: none;
71
+ width: -moz-min-content;
72
+ width: min-content;
73
+ display: inline-grid;
54
74
  align-items: center;
55
75
  justify-content: center;
56
76
  cursor: pointer;
57
- height: 32px;
58
-
59
- padding-right: 16px;
60
- padding-left: 16px;
61
- border-radius: 16px;
62
- color: var(--charcoal-color-text-secondary-default);
63
-
77
+ -webkit-user-select: none;
78
+ -moz-user-select: none;
79
+ user-select: none;
80
+ white-space: nowrap;
81
+ border-radius: 999999px;
64
82
  font-size: 14px;
65
83
  line-height: 22px;
84
+ font-weight: bold;
85
+ color: var(--charcoal-color-text-default);
86
+ background-color: var(
87
+ --charcoal-color-container-secondary-default-a,
88
+ transparent
89
+ );
90
+ transition:
91
+ 0.2s color,
92
+ 0.2s background-color,
93
+ 0.2s box-shadow;
94
+ height: 40px;
66
95
  }
67
96
 
68
- .charcoal-segmented-control-radio__label[aria-disabled]:not([aria-disabled='false']) {
97
+ .charcoal-button:disabled,
98
+ .charcoal-button[aria-disabled]:not([aria-disabled='false']) {
69
99
  cursor: default;
70
100
  opacity: 0.32;
71
101
  }
72
102
 
73
- .charcoal-segmented-control-radio__label[data-checked='true'] {
74
- background-color: var(--charcoal-color-container-primary-default);
75
- color: var(--charcoal-color-text-on-primary-default);
103
+ .charcoal-button:not(:disabled):not([aria-disabled]):focus-visible,
104
+ .charcoal-button[aria-disabled='false']:focus-visible {
105
+ outline: none;
106
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
76
107
  }
77
108
 
78
- .charcoal-segmented-control-radio__label[data-uniform-segment-width='true'],
79
- .charcoal-segmented-control-radio__label[data-full-width='true'] {
80
- justify-content: center;
81
- white-space: nowrap;
109
+ .charcoal-button:not(:disabled):not([aria-disabled]):hover,
110
+ .charcoal-button[aria-disabled='false']:hover {
111
+ color: var(--charcoal-color-text-hover);
112
+ background-color: var(--charcoal-color-container-secondary-hover-a);
82
113
  }
83
114
 
84
- .charcoal-segmented-control-radio__input {
85
- position: absolute;
115
+ .charcoal-button:not(:disabled):not([aria-disabled]):active,
116
+ .charcoal-button[aria-disabled='false']:active,
117
+ .charcoal-button[data-active='true'] {
118
+ color: var(--charcoal-color-text-press);
119
+ background-color: var(--charcoal-color-container-secondary-press-a);
120
+ }
86
121
 
87
- height: 0px;
88
- width: 0px;
89
- padding: 0;
90
- margin: 0;
122
+ .charcoal-button[data-variant='Primary'] {
123
+ color: var(--charcoal-color-text-on-primary-default);
124
+ background-color: var(--charcoal-color-container-primary-default);
125
+ }
91
126
 
92
- -webkit-appearance: none;
127
+ .charcoal-button[data-variant='Primary']:hover:not(:disabled):not([aria-disabled]),
128
+ .charcoal-button[data-variant='Primary']:hover[aria-disabled='false'] {
129
+ color: var(--charcoal-color-text-on-primary-hover);
130
+ background-color: var(--charcoal-color-container-primary-hover);
131
+ }
93
132
 
94
- -moz-appearance: none;
133
+ .charcoal-button[data-variant='Primary']:active:not(:disabled):not([aria-disabled]),
134
+ .charcoal-button[data-variant='Primary']:active[aria-disabled='false'],
135
+ .charcoal-button[data-variant='Primary'][data-active='true'] {
136
+ color: var(--charcoal-color-text-on-primary-press);
137
+ background-color: var(--charcoal-color-container-primary-press);
138
+ }
95
139
 
96
- appearance: none;
97
- box-sizing: border-box;
98
- overflow: hidden;
99
- white-space: nowrap;
100
- opacity: 0;
101
- }
102
- .charcoal-menu-item-group {
103
- display: block;
104
- }
140
+ .charcoal-button[data-variant='Overlay'] {
141
+ color: var(--charcoal-color-text-on-on-img-default);
142
+ background-color: var(--charcoal-color-container-on-img-default);
143
+ }
105
144
 
106
- .charcoal-menu-item-group > span {
107
- display: block;
108
- color: var(--charcoal-color-text-tertiary-default);
109
- font-size: 12px;
110
- font-weight: bold;
111
- padding: 12px 0 8px 16px;
112
- }
145
+ .charcoal-button[data-variant='Overlay']:hover:not(:disabled):not([aria-disabled]),
146
+ .charcoal-button[data-variant='Overlay']:hover[aria-disabled='false'] {
147
+ color: var(--charcoal-color-text-on-on-img-hover);
148
+ background-color: var(--charcoal-color-container-on-img-hover);
149
+ }
113
150
 
114
- .charcoal-menu-item-group > ul {
115
- padding-left: 0;
116
- margin: 0;
117
- box-sizing: border-box;
118
- list-style: none;
119
- overflow: hidden;
120
- }
121
- .charcoal-hint-text {
122
- background-color: var(--charcoal-color-container-secondary-default);
123
- border-radius: 8px;
124
- padding: 12px 16px;
125
- display: flex;
126
- align-items: flex-start;
127
- }
151
+ .charcoal-button[data-variant='Overlay']:active:not(:disabled):not([aria-disabled]),
152
+ .charcoal-button[data-variant='Overlay']:active[aria-disabled='false'],
153
+ .charcoal-button[data-variant='Overlay'][data-active='true'] {
154
+ color: var(--charcoal-color-text-on-on-img-press);
155
+ background-color: var(--charcoal-color-container-on-img-press);
156
+ }
128
157
 
129
- .charcoal-hint-text[data-context='page'] {
130
- justify-content: center;
158
+ .charcoal-button[data-variant='Navigation'] {
159
+ color: var(--charcoal-color-text-on-hud-default);
160
+ background-color: var(--charcoal-color-container-hud-default);
131
161
  }
132
162
 
133
- @media (min-width: 744px) {
163
+ .charcoal-button[data-variant='Navigation']:hover:not(:disabled):not([aria-disabled]),
164
+ .charcoal-button[data-variant='Navigation']:hover[aria-disabled='false'] {
165
+ color: var(--charcoal-color-text-on-hud-hover);
166
+ background-color: var(--charcoal-color-container-hud-hover);
167
+ }
134
168
 
135
- .charcoal-hint-text[data-context='page'] {
136
- padding: 20px 40px
169
+ .charcoal-button[data-variant='Navigation']:active:not(:disabled):not([aria-disabled]),
170
+ .charcoal-button[data-variant='Navigation']:active[aria-disabled='false'],
171
+ .charcoal-button[data-variant='Navigation'][data-active='true'] {
172
+ color: var(--charcoal-color-text-on-hud-press);
173
+ background-color: var(--charcoal-color-container-hud-press);
174
+ }
175
+
176
+ .charcoal-button[data-variant='Danger'] {
177
+ color: var(--charcoal-color-text-on-negative-default);
178
+ background-color: var(--charcoal-color-container-negative-default);
137
179
  }
180
+
181
+ .charcoal-button[data-variant='Danger']:hover:not(:disabled):not([aria-disabled]),
182
+ .charcoal-button[data-variant='Danger']:hover[aria-disabled='false'] {
183
+ color: var(--charcoal-color-text-on-negative-hover);
184
+ background-color: var(--charcoal-color-container-negative-hover);
138
185
  }
139
186
 
140
- .charcoal-hint-text-icon {
141
- display: flex;
187
+ .charcoal-button[data-variant='Danger']:active:not(:disabled):not([aria-disabled]),
188
+ .charcoal-button[data-variant='Danger']:active[aria-disabled='false'],
189
+ .charcoal-button[data-variant='Danger'][data-active='true'] {
190
+ color: var(--charcoal-color-text-on-negative-press);
191
+ background-color: var(--charcoal-color-container-negative-press);
192
+ }
193
+
194
+ .charcoal-button[data-size='S'] {
195
+ padding: 0 16px;
196
+ height: 32px;
197
+ }
198
+
199
+ .charcoal-button[data-full-width='true'] {
200
+ width: 100%;
201
+ }
202
+ .charcoal-radio__label {
203
+ display: grid;
204
+ grid-template-columns: auto 1fr;
205
+ grid-gap: 4px;
142
206
  align-items: center;
143
- color: var(--charcoal-color-icon-tertiary-default);
144
- height: 22px;
145
- margin: 0 4px 0 0;
207
+ cursor: pointer;
146
208
  }
147
209
 
148
- .charcoal-hint-text-message {
149
- color: var(--charcoal-color-text-secondary-default);
210
+ .charcoal-radio__label[aria-disabled]:not([aria-disabled='false']) {
211
+ opacity: 0.32;
212
+ cursor: default;
213
+ }
214
+
215
+ .charcoal-radio__label_div {
150
216
  font-size: 14px;
151
217
  line-height: 22px;
152
- display: flow-root;
153
- margin: 0;
154
- min-width: 0;
155
- overflow-wrap: break-word;
218
+ color: var(--charcoal-color-text-default);
156
219
  }
157
- .charcoal-tag-item {
158
- --charcoal-tag-item-color: var(--charcoal-color-text-on-primary-default);
159
- --charcoal-tag-item-size: 40px;
160
- --charcoal-tag-item-padding-left: 24px;
161
- --charcoal-tag-item-padding-right: 24px;
162
- --charcoal-tag-item-bg: ;
163
-
164
- isolation: isolate;
165
- position: relative;
166
-
220
+ .charcoal-radio-group {
221
+ display: grid;
222
+ grid-template-columns: 1fr;
223
+ grid-gap: 8px;
224
+ }
225
+ .charcoal-icon-button {
226
+ cursor: pointer;
167
227
  -webkit-appearance: none;
168
-
169
228
  -moz-appearance: none;
170
-
171
229
  appearance: none;
172
- outline: none;
230
+ background: transparent;
231
+ padding: 0;
173
232
  border-style: none;
174
-
175
- display: inline-flex;
176
- gap: 8px;
177
- align-items: center;
178
- justify-content: center;
179
-
233
+ outline: none;
234
+ color: inherit;
235
+ text-rendering: inherit;
236
+ letter-spacing: inherit;
237
+ word-spacing: inherit;
180
238
  text-decoration: none;
181
- cursor: pointer;
182
- overflow: hidden;
239
+ font: inherit;
240
+ margin: 0;
241
+ overflow: visible;
242
+ text-transform: none;
183
243
 
184
- color: var(--charcoal-tag-item-color);
185
- height: var(--charcoal-tag-item-size);
186
- padding-top: 4px;
187
- padding-bottom: 4px;
188
- padding-left: var(--charcoal-tag-item-padding-left);
189
- padding-right: var(--charcoal-tag-item-padding-right);
190
- box-sizing: border-box;
191
- border-radius: 4px;
244
+ -webkit-user-select: none;
192
245
 
193
- transition: 0.2s box-shadow;
246
+ -moz-user-select: none;
247
+
248
+ user-select: none;
249
+ display: flex;
250
+ align-items: center;
251
+ justify-content: center;
252
+ border-radius: 999999px;
253
+ transition:
254
+ 0.2s background-color,
255
+ 0.2s box-shadow;
194
256
  }
195
257
 
196
- .charcoal-tag-item[data-size='M'] {
197
- --charcoal-tag-item-size: 40px;
198
- --charcoal-tag-item-padding-left: 24px;
199
- --charcoal-tag-item-padding-right: 24px;
258
+ .charcoal-icon-button:disabled,
259
+ .charcoal-icon-button[aria-disabled]:not([aria-disabled='false']) {
260
+ cursor: default;
261
+ opacity: 0.32;
200
262
  }
201
263
 
202
- .charcoal-tag-item[data-size='S'] {
203
- --charcoal-tag-item-size: 32px;
204
- --charcoal-tag-item-padding-left: 16px;
205
- --charcoal-tag-item-padding-right: 16px;
264
+ .charcoal-icon-button:focus {
265
+ outline: none;
206
266
  }
207
267
 
208
- .charcoal-tag-item[data-state='inactive'] {
209
- --charcoal-tag-item-color: var(--charcoal-color-text-secondary-default);
268
+ .charcoal-icon-button::-moz-focus-inner {
269
+ border-style: none;
270
+ padding: 0;
210
271
  }
211
272
 
212
- .charcoal-tag-item[data-state='active'] {
213
- --charcoal-tag-item-padding-left: 16px;
214
- --charcoal-tag-item-padding-right: 8px;
273
+ .charcoal-icon-button[data-size='XS'] {
274
+ width: 20px;
275
+ height: 20px;
215
276
  }
216
277
 
217
- .charcoal-tag-item:disabled,
218
- .charcoal-tag-item[aria-disabled]:not([aria-disabled='false']) {
219
- opacity: 0.32;
220
- cursor: default;
278
+ .charcoal-icon-button[data-size='S'] {
279
+ width: 32px;
280
+ height: 32px;
221
281
  }
222
282
 
223
- .charcoal-tag-item:not(:disabled):not([aria-disabled]):focus-visible,
224
- .charcoal-tag-item[aria-disabled='false']:focus-visible {
225
- outline: none;
226
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
283
+ .charcoal-icon-button[data-size='M'] {
284
+ width: 40px;
285
+ height: 40px;
227
286
  }
228
287
 
229
- .charcoal-tag-item:not(:disabled):not([aria-disabled]):focus,
230
- .charcoal-tag-item[aria-disabled='false']:focus {
231
- outline: none;
232
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
288
+ .charcoal-icon-button[data-variant='Default'] {
289
+ color: var(--charcoal-color-icon-tertiary-default);
290
+ background-color: transparent;
233
291
  }
234
292
 
235
- .charcoal-tag-item:not(:disabled):not([aria-disabled]):focus:not(:focus-visible),
236
- .charcoal-tag-item[aria-disabled='false']:focus:not(:focus-visible) {
237
- box-shadow: none;
238
- }
293
+ .charcoal-icon-button[data-variant='Default'][data-active='true']:not(:disabled):not([aria-disabled]),
294
+ .charcoal-icon-button[data-variant='Default'][data-active='true'][aria-disabled='false'] {
295
+ color: var(--charcoal-color-icon-tertiary-press);
296
+ background-color: var(--charcoal-color-container-press-a);
297
+ }
239
298
 
240
- .charcoal-tag-item__bg {
241
- background-color: var(--charcoal-tag-item-bg);
242
- }
299
+ .charcoal-icon-button[data-variant='Default'][data-active='false']:not(:disabled):not([aria-disabled]):hover,
300
+ .charcoal-icon-button[data-variant='Default'][data-active='false'][aria-disabled='false']:hover {
301
+ color: var(--charcoal-color-icon-tertiary-hover);
302
+ background-color: var(--charcoal-color-container-hover-a);
303
+ }
243
304
 
244
- .charcoal-tag-item__bg[data-bg-variant='image'] {
305
+ .charcoal-icon-button[data-variant='Default'][data-active='false']:not(:disabled):not([aria-disabled]):active,
306
+ .charcoal-icon-button[data-variant='Default'][data-active='false'][aria-disabled='false']:active {
307
+ color: var(--charcoal-color-icon-tertiary-press);
308
+ background-color: var(--charcoal-color-container-press-a);
309
+ }
310
+
311
+ .charcoal-icon-button[data-variant='Overlay'] {
312
+ color: var(--charcoal-color-icon-on-on-img-default);
245
313
  background-color: var(--charcoal-color-container-on-img-default);
246
314
  }
247
315
 
248
- .charcoal-tag-item__bg[data-bg-variant='image']::before {
249
- content: '';
250
- position: absolute;
251
- z-index: 1;
252
- top: 0;
253
- left: 0;
254
- width: 100%;
255
- height: 100%;
256
- background-position: center;
257
- background-size: cover;
258
- background-image: var(--charcoal-tag-item-bg);
259
- mix-blend-mode: overlay;
316
+ .charcoal-icon-button[data-variant='Overlay'][data-active='true']:not(:disabled):not([aria-disabled]),
317
+ .charcoal-icon-button[data-variant='Overlay'][data-active='true'][aria-disabled='false'] {
318
+ color: var(--charcoal-color-icon-on-on-img-press);
319
+ background-color: var(--charcoal-color-container-on-img-press);
260
320
  }
261
321
 
262
- .charcoal-tag-item__bg[data-state='inactive'] {
263
- background-color: var(--charcoal-color-container-secondary-default);
264
- }
322
+ .charcoal-icon-button[data-variant='Overlay'][data-active='false']:not(:disabled):not([aria-disabled]):hover,
323
+ .charcoal-icon-button[data-variant='Overlay'][data-active='false'][aria-disabled='false']:hover {
324
+ color: var(--charcoal-color-icon-on-on-img-hover);
325
+ background-color: var(--charcoal-color-container-on-img-hover);
326
+ }
265
327
 
266
- .charcoal-tag-item__label {
267
- height: 100%;
268
- display: flex;
269
- flex-direction: column;
270
- align-items: center;
271
- justify-content: center;
272
- }
328
+ .charcoal-icon-button[data-variant='Overlay'][data-active='false']:not(:disabled):not([aria-disabled]):active,
329
+ .charcoal-icon-button[data-variant='Overlay'][data-active='false'][aria-disabled='false']:active {
330
+ color: var(--charcoal-color-icon-on-on-img-press);
331
+ background-color: var(--charcoal-color-container-on-img-press);
332
+ }
273
333
 
274
- .charcoal-tag-item__label[data-has-translate='true'] {
275
- justify-content: space-between;
334
+ .charcoal-icon-button:not(:disabled):not([aria-disabled]):focus,
335
+ .charcoal-icon-button[aria-disabled='false']:focus {
336
+ outline: none;
337
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
276
338
  }
277
339
 
278
- .charcoal-tag-item__label__translated {
279
- --charcoal-tag-item-text-font-size: 12px;
280
- --charcoal-tag-item-text-line-height: 20px;
281
- font-weight: bold;
282
- }
283
-
284
- .charcoal-tag-item__label__translated::before {
285
- display: none;
340
+ .charcoal-icon-button:not(:disabled):not([aria-disabled]):focus-visible,
341
+ .charcoal-icon-button[aria-disabled='false']:focus-visible {
342
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
286
343
  }
287
344
 
288
- .charcoal-tag-item__label__text {
289
- --charcoal-tag-item-text-font-size: 14px;
290
- --charcoal-tag-item-text-line-height: 22px;
291
-
292
- max-width: 152px;
293
- overflow: hidden;
294
- font-weight: bold;
295
-
296
- color: inherit;
297
- white-space: nowrap;
298
- text-overflow: ellipsis;
299
- }
300
-
301
- .charcoal-tag-item__label__text[data-has-translate='true'] {
302
- --charcoal-tag-item-text-font-size: 10px;
303
- --charcoal-tag-item-text-line-height: 14px;
304
- font-weight: normal;
345
+ .charcoal-icon-button:not(:disabled):not([aria-disabled]):focus:not(:focus-visible),
346
+ .charcoal-icon-button[aria-disabled='false']:focus:not(:focus-visible) {
347
+ box-shadow: none;
305
348
  }
306
-
307
- /* Kept flat: different class name from .charcoal-tag-item__label__text (note: "labe" typo in original) */
308
- .charcoal-tag-item__labe__text[data-has-translate='true']::after {
309
- display: none;
310
- }
311
- .charcoal-text-area-root {
349
+ .charcoal-multi-select {
312
350
  display: grid;
313
- grid-template-columns: 1fr;
314
- grid-gap: 4px;
351
+ grid-template-columns: auto 1fr;
352
+ align-items: center;
353
+ position: relative;
354
+ cursor: pointer;
355
+ gap: 4px;
315
356
  }
316
357
 
317
- .charcoal-text-area-root[aria-disabled='true'] {
358
+ .charcoal-multi-select:disabled,
359
+ .charcoal-multi-select[aria-disabled]:not([aria-disabled='false']) {
318
360
  opacity: 0.32;
361
+ cursor: default;
319
362
  }
320
363
 
321
- .charcoal-text-area-container {
322
- /* Runtime variable overridden by the React component. */
323
- --charcoal-text-area-rows: 4;
324
-
325
- position: relative;
326
- overflow: hidden;
327
-
328
- color: var(--charcoal-color-text-secondary-default);
329
- background-color: var(--charcoal-color-container-secondary-default-a);
330
- border-radius: 4px;
331
- transition:
332
- 0.2s background-color,
333
- 0.2s box-shadow;
334
- height: calc(22px * var(--charcoal-text-area-rows) + 18px);
364
+ .charcoal-multi-select-label {
365
+ display: flow-root;
366
+ align-items: center;
367
+ font-size: 14px;
368
+ line-height: 22px;
369
+ color: var(--charcoal-color-text-default);
335
370
  }
336
371
 
337
- .charcoal-text-area-container[aria-invalid='true'] {
338
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
339
- }
340
-
341
- .charcoal-text-area-container:focus-within {
342
- outline: none;
343
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
344
- }
345
-
346
- .charcoal-text-area-container:has([data-no-bottom-padding='true']) {
347
- height: calc(22px * (var(--charcoal-text-area-rows) + 1) + 18px);
348
- }
349
-
350
- .charcoal-text-area-container:not([aria-disabled='true']):hover {
351
- background-color: var(--charcoal-color-container-secondary-hover-a);
372
+ .charcoal-multi-select-label::before {
373
+ display: block;
374
+ width: 0;
375
+ height: 0;
376
+ content: '';
377
+ margin-top: -4px;
352
378
  }
353
379
 
354
- .charcoal-text-area-container[aria-invalid='true']:focus-within {
355
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
380
+ .charcoal-multi-select-label::after {
381
+ display: block;
382
+ width: 0;
383
+ height: 0;
384
+ content: '';
385
+ margin-bottom: -4px;
356
386
  }
357
387
 
358
- .charcoal-text-area-textarea {
359
- border: none;
360
- outline: none;
361
- resize: none;
362
- font-family: inherit;
363
- color: inherit;
364
- box-sizing: border-box;
365
-
366
- /* Prevent zooming for iOS Safari */
367
- --charcoal-textarea-safari-prevent-zoom-scale: 0.875;
368
- --charcoal-textarea-line-height: calc(
369
- 22px / var(--charcoal-textarea-safari-prevent-zoom-scale)
370
- );
371
- --charcoal-textarea-padding-y: calc(
372
- 8px / var(--charcoal-textarea-safari-prevent-zoom-scale)
373
- );
374
- --charcoal-textarea-padding-x: calc(
375
- 9px / var(--charcoal-textarea-safari-prevent-zoom-scale)
376
- );
377
-
378
- transform-origin: top left;
379
- transform: scale(var(--charcoal-textarea-safari-prevent-zoom-scale));
380
- width: calc(100% / var(--charcoal-textarea-safari-prevent-zoom-scale));
381
- font-size: calc(14px / var(--charcoal-textarea-safari-prevent-zoom-scale));
382
- line-height: var(--charcoal-textarea-line-height);
383
- padding: var(--charcoal-textarea-padding-y) var(--charcoal-textarea-padding-x);
384
- height: calc(
385
- var(--charcoal-textarea-line-height) * var(--charcoal-text-area-rows) +
386
- var(--charcoal-textarea-padding-y) * 2
387
- );
388
-
389
- /* Display box-shadow for iOS Safari */
388
+ .charcoal-multi-select-input[type='checkbox'] {
390
389
  -webkit-appearance: none;
391
390
  -moz-appearance: none;
392
391
  appearance: none;
393
-
394
- background: none;
392
+ display: block;
393
+ width: 20px;
394
+ height: 20px;
395
+ margin: 0;
396
+ background-color: var(--charcoal-color-container-neutral-default);
397
+ border-radius: 999999px;
398
+ transition:
399
+ 0.2s background-color,
400
+ 0.2s box-shadow;
395
401
  }
396
402
 
397
- .charcoal-text-area-textarea[data-no-bottom-padding='true'] {
398
- padding: var(--charcoal-textarea-padding-y)
399
- var(--charcoal-textarea-padding-x) 0;
400
- height: calc(
401
- var(--charcoal-textarea-line-height) * var(--charcoal-text-area-rows) +
402
- var(--charcoal-textarea-padding-y)
403
- );
403
+ .charcoal-multi-select-input[type='checkbox']:checked {
404
+ background-color: var(--charcoal-color-container-primary-default);
404
405
  }
405
406
 
406
- .charcoal-text-area-textarea::-moz-placeholder {
407
- color: var(--charcoal-color-text-placeholder-default);
407
+ .charcoal-multi-select-input[type='checkbox']:focus {
408
+ outline: none;
409
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
408
410
  }
409
411
 
410
- .charcoal-text-area-textarea::placeholder {
411
- color: var(--charcoal-color-text-placeholder-default);
412
+ .charcoal-multi-select-input[type='checkbox']:focus-visible {
413
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
412
414
  }
413
415
 
414
- .charcoal-text-area-counter {
415
- position: absolute;
416
- bottom: 9px;
417
- right: 8px;
418
-
419
- line-height: 22px;
420
- font-size: 14px;
421
- color: var(--charcoal-color-text-tertiary-default);
422
- }
423
- .charcoal-clickable {
424
- cursor: pointer;
425
-
426
- /* Reset button appearance */
427
- -webkit-appearance: none;
428
- -moz-appearance: none;
429
- appearance: none;
430
- background: transparent;
431
- padding: 0;
432
- border-style: none;
433
- outline: none;
434
- color: inherit;
435
- text-rendering: inherit;
436
- letter-spacing: inherit;
437
- word-spacing: inherit;
438
- text-decoration: none;
416
+ .charcoal-multi-select-input[type='checkbox']:focus:not(:focus-visible) {
417
+ box-shadow: none;
418
+ }
439
419
 
440
- /* Change the font styles in all browsers. */
441
- font: inherit;
420
+ .charcoal-multi-select-input[type='checkbox']:hover:not(:disabled):not([aria-disabled]),
421
+ .charcoal-multi-select-input[type='checkbox']:hover[aria-disabled='false'] {
422
+ background-color: var(--charcoal-color-container-neutral-hover);
423
+ }
442
424
 
443
- /* Remove the margin in Firefox and Safari. */
444
- margin: 0;
425
+ .charcoal-multi-select-input[type='checkbox']:active:not(:disabled):not([aria-disabled]),
426
+ .charcoal-multi-select-input[type='checkbox']:active[aria-disabled='false'] {
427
+ background-color: var(--charcoal-color-container-neutral-press);
428
+ }
445
429
 
446
- /* Show the overflow in Edge. */
447
- overflow: visible;
430
+ .charcoal-multi-select-input[type='checkbox']:checked:hover:not(:disabled):not([aria-disabled]),
431
+ .charcoal-multi-select-input[type='checkbox']:checked:hover[aria-disabled='false'] {
432
+ background-color: var(--charcoal-color-container-primary-hover);
433
+ }
448
434
 
449
- /* Remove the inheritance of text transform in Firefox. */
450
- text-transform: none;
451
- }
435
+ .charcoal-multi-select-input[type='checkbox']:checked:active:not(:disabled):not([aria-disabled]),
436
+ .charcoal-multi-select-input[type='checkbox']:checked:active[aria-disabled='false'] {
437
+ background-color: var(--charcoal-color-container-primary-press);
438
+ }
452
439
 
453
- .charcoal-clickable:disabled,
454
- .charcoal-clickable[aria-disabled]:not([aria-disabled='false']) {
455
- cursor: default;
440
+ .charcoal-multi-select-input[type='checkbox'][aria-invalid='true'][data-overlay='false']:not(:disabled):not(
441
+ [aria-disabled]
442
+ ) {
443
+ box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
456
444
  }
457
445
 
458
- .charcoal-clickable:focus {
459
- outline: none;
446
+ .charcoal-multi-select-input[type='checkbox'][aria-invalid='true'][data-overlay='false'][aria-disabled='false'] {
447
+ box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
460
448
  }
461
449
 
462
- .charcoal-clickable::-moz-focus-inner {
463
- border-style: none;
464
- padding: 0;
450
+ .charcoal-multi-select-input[type='checkbox'][data-overlay='true'] {
451
+ background-color: var(--charcoal-color-container-on-img-default);
465
452
  }
466
- .charcoal-text-ellipsis {
467
- /* Runtime variables overridden by the React component. */
468
- --charcoal-text-ellipsis-line-limit: 1;
469
- --charcoal-text-ellipsis-line-height: inherit;
470
453
 
471
- overflow: hidden;
472
- overflow-wrap: break-word;
473
- display: -webkit-box;
474
- -webkit-box-orient: vertical;
475
- -webkit-line-clamp: var(--charcoal-text-ellipsis-line-limit);
454
+ .charcoal-multi-select-overlay {
455
+ position: absolute;
456
+ top: -2px;
457
+ left: -2px;
458
+ box-sizing: border-box;
459
+ display: flex;
460
+ align-items: center;
461
+ justify-content: center;
462
+ width: 24px;
463
+ height: 24px;
464
+ border-radius: 999999px;
465
+ color: var(--charcoal-color-icon-on-primary-default);
466
+ transition: 0.2s box-shadow;
476
467
  }
477
468
 
478
- .charcoal-text-ellipsis[data-has-line-height='true'] {
479
- line-height: var(--charcoal-text-ellipsis-line-height);
469
+ .charcoal-multi-select-overlay[aria-invalid='true'][data-overlay='true']:not(:disabled):not(
470
+ [aria-disabled]
471
+ ) {
472
+ box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
480
473
  }
481
474
 
482
- .charcoal-text-ellipsis[data-has-line-height='false'] {
483
- line-height: inherit;
475
+ .charcoal-multi-select-overlay[aria-invalid='true'][data-overlay='true'][aria-disabled='false'] {
476
+ box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
484
477
  }
485
478
 
486
- .charcoal-text-ellipsis[data-line-limit='1'][data-use-nowrap='true'] {
487
- text-overflow: ellipsis;
488
- white-space: nowrap;
479
+ .charcoal-multi-select-overlay[data-overlay='true'] {
480
+ border-color: var(--charcoal-color-border-hud);
481
+ border-width: 2px;
482
+ border-style: solid;
489
483
  }
490
- .charcoal-icon-button {
491
- cursor: pointer;
492
- -webkit-appearance: none;
493
- -moz-appearance: none;
494
- appearance: none;
495
- background: transparent;
496
- padding: 0;
497
- border-style: none;
498
- outline: none;
499
- color: inherit;
500
- text-rendering: inherit;
501
- letter-spacing: inherit;
502
- word-spacing: inherit;
503
- text-decoration: none;
504
- font: inherit;
505
- margin: 0;
506
- overflow: visible;
507
- text-transform: none;
508
-
509
- -webkit-user-select: none;
484
+ .charcoal-text-field-root {
485
+ display: grid;
486
+ grid-template-columns: 1fr;
487
+ grid-gap: 4px;
488
+ }
510
489
 
511
- -moz-user-select: none;
490
+ .charcoal-text-field-root[aria-disabled='true'] {
491
+ opacity: 0.32;
492
+ }
512
493
 
513
- user-select: none;
494
+ .charcoal-text-field-container {
514
495
  display: flex;
515
- align-items: center;
516
- justify-content: center;
517
- border-radius: 999999px;
496
+ height: 40px;
518
497
  transition:
519
498
  0.2s background-color,
520
499
  0.2s box-shadow;
500
+ color: var(--charcoal-color-text-secondary-default);
501
+ background-color: var(--charcoal-color-container-secondary-default-a);
502
+ border-radius: 4px;
503
+ padding: 0 8px;
504
+ line-height: 22px;
505
+ font-size: 14px;
521
506
  }
522
507
 
523
- .charcoal-icon-button:disabled,
524
- .charcoal-icon-button[aria-disabled]:not([aria-disabled='false']) {
525
- cursor: default;
526
- opacity: 0.32;
508
+ .charcoal-text-field-container[data-invalid='true'] {
509
+ box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
527
510
  }
528
511
 
529
- .charcoal-icon-button:focus {
530
- outline: none;
512
+ .charcoal-text-field-container:not([aria-disabled='true']):hover {
513
+ background-color: var(--charcoal-color-container-secondary-hover-a);
531
514
  }
532
515
 
533
- .charcoal-icon-button::-moz-focus-inner {
534
- border-style: none;
535
- padding: 0;
516
+ .charcoal-text-field-container:not([aria-disabled='true']):focus-within {
517
+ outline: none;
518
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
536
519
  }
537
520
 
538
- .charcoal-icon-button[data-size='XS'] {
539
- width: 20px;
540
- height: 20px;
541
- }
542
-
543
- .charcoal-icon-button[data-size='S'] {
544
- width: 32px;
545
- height: 32px;
546
- }
547
-
548
- .charcoal-icon-button[data-size='M'] {
549
- width: 40px;
550
- height: 40px;
551
- }
552
-
553
- .charcoal-icon-button[data-variant='Default'] {
554
- color: var(--charcoal-color-icon-tertiary-default);
555
- background-color: transparent;
556
- }
557
-
558
- .charcoal-icon-button[data-variant='Default'][data-active='true']:not(:disabled):not([aria-disabled]),
559
- .charcoal-icon-button[data-variant='Default'][data-active='true'][aria-disabled='false'] {
560
- color: var(--charcoal-color-icon-tertiary-press);
561
- background-color: var(--charcoal-color-container-press-a);
562
- }
563
-
564
- .charcoal-icon-button[data-variant='Default'][data-active='false']:not(:disabled):not([aria-disabled]):hover,
565
- .charcoal-icon-button[data-variant='Default'][data-active='false'][aria-disabled='false']:hover {
566
- color: var(--charcoal-color-icon-tertiary-hover);
567
- background-color: var(--charcoal-color-container-hover-a);
568
- }
569
-
570
- .charcoal-icon-button[data-variant='Default'][data-active='false']:not(:disabled):not([aria-disabled]):active,
571
- .charcoal-icon-button[data-variant='Default'][data-active='false'][aria-disabled='false']:active {
572
- color: var(--charcoal-color-icon-tertiary-press);
573
- background-color: var(--charcoal-color-container-press-a);
574
- }
575
-
576
- .charcoal-icon-button[data-variant='Overlay'] {
577
- color: var(--charcoal-color-icon-on-on-img-default);
578
- background-color: var(--charcoal-color-container-on-img-default);
579
- }
580
-
581
- .charcoal-icon-button[data-variant='Overlay'][data-active='true']:not(:disabled):not([aria-disabled]),
582
- .charcoal-icon-button[data-variant='Overlay'][data-active='true'][aria-disabled='false'] {
583
- color: var(--charcoal-color-icon-on-on-img-press);
584
- background-color: var(--charcoal-color-container-on-img-press);
585
- }
586
-
587
- .charcoal-icon-button[data-variant='Overlay'][data-active='false']:not(:disabled):not([aria-disabled]):hover,
588
- .charcoal-icon-button[data-variant='Overlay'][data-active='false'][aria-disabled='false']:hover {
589
- color: var(--charcoal-color-icon-on-on-img-hover);
590
- background-color: var(--charcoal-color-container-on-img-hover);
591
- }
592
-
593
- .charcoal-icon-button[data-variant='Overlay'][data-active='false']:not(:disabled):not([aria-disabled]):active,
594
- .charcoal-icon-button[data-variant='Overlay'][data-active='false'][aria-disabled='false']:active {
595
- color: var(--charcoal-color-icon-on-on-img-press);
596
- background-color: var(--charcoal-color-container-on-img-press);
597
- }
598
-
599
- .charcoal-icon-button:not(:disabled):not([aria-disabled]):focus,
600
- .charcoal-icon-button[aria-disabled='false']:focus {
601
- outline: none;
602
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
603
- }
604
-
605
- .charcoal-icon-button:not(:disabled):not([aria-disabled]):focus-visible,
606
- .charcoal-icon-button[aria-disabled='false']:focus-visible {
607
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
521
+ .charcoal-text-field-container:not([aria-disabled='true'])[data-invalid='true']:focus-within {
522
+ box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
608
523
  }
609
524
 
610
- .charcoal-icon-button:not(:disabled):not([aria-disabled]):focus:not(:focus-visible),
611
- .charcoal-icon-button[aria-disabled='false']:focus:not(:focus-visible) {
612
- box-shadow: none;
613
- }
614
- .charcoal-modal-background {
615
- overflow: auto;
525
+ .charcoal-text-field-prefix {
616
526
  display: flex;
617
- position: fixed;
618
- top: 0;
619
- left: 0;
620
- width: 100%;
621
- height: 100%;
622
- justify-content: center;
623
- padding: 40px 0;
624
- box-sizing: border-box;
625
-
626
- background-color: var(--charcoal-color-background-overlay);
527
+ align-items: center;
528
+ margin-right: 4px;
627
529
  }
628
530
 
629
- @media (max-width: 743px) {
630
- .charcoal-modal-background[data-bottom-sheet='true'],
631
- .charcoal-modal-background[data-bottom-sheet='full'] {
632
- padding: 0;
633
- }
634
- }
531
+ .charcoal-text-field-suffix {
532
+ display: flex;
533
+ align-items: center;
534
+ gap: 8px;
535
+ margin-left: 4px;
536
+ }
635
537
 
636
- /* easeOutQuart。duration は useTransitionPresence の MODAL_TRANSITION_DURATION_MS と一致させること。
637
- transition は entering / exiting に限定し、開いたままテーマ切り替え等で
638
- 色や transform が変わってもアニメーションしないようにする */
639
- .charcoal-modal-background[data-animation] {
538
+ .charcoal-text-field-input-root {
539
+ flex: 1;
540
+ min-width: 0;
640
541
  overflow: hidden;
641
542
  }
642
543
 
643
- .charcoal-modal-background[data-animation='entering'],
644
- .charcoal-modal-background[data-animation='exiting'] {
645
- transition: background-color 400ms cubic-bezier(0.25, 1, 0.5, 1);
646
- }
544
+ .charcoal-text-field-input {
545
+ border: none;
546
+ box-sizing: border-box;
547
+ outline: none;
548
+ font-family: inherit;
647
549
 
648
- /* 閉じアニメーション中はクリックを下のページへ通す(transitionend が来ない環境で
649
- 透明なオーバーレイがタップを奪い続けるのも防ぐ) */
650
- .charcoal-modal-background[data-animation='exited'],
651
- .charcoal-modal-background[data-animation='exiting'] {
652
- background-color: transparent;
653
- pointer-events: none;
654
- }
550
+ /* Prevent zooming for iOS Safari */
551
+ transform-origin: top left;
552
+ transform: scale(0.875);
553
+ width: calc(100% / 0.875);
554
+ height: calc(100% / 0.875);
555
+ font-size: calc(14px / 0.875);
556
+ line-height: calc(22px / 0.875);
557
+ padding-left: 0;
558
+ padding-right: 0;
559
+ border-radius: calc(4px / 0.875);
655
560
 
656
- .charcoal-modal-background[data-animation='entered'] {
657
- overflow: auto;
658
- }
561
+ /* Display box-shadow for iOS Safari */
562
+ -webkit-appearance: none;
563
+ -moz-appearance: none;
564
+ appearance: none;
565
+ background: transparent;
659
566
 
660
- .charcoal-modal-background[data-animation='entering'] > .charcoal-modal-dialog,
661
- .charcoal-modal-background[data-animation='exiting'] > .charcoal-modal-dialog {
662
- transition: transform 400ms cubic-bezier(0.25, 1, 0.5, 1);
567
+ color: var(--charcoal-color-text-secondary-default);
663
568
  }
664
569
 
665
- .charcoal-modal-background[data-animation='exited'] > .charcoal-modal-dialog,
666
- .charcoal-modal-background[data-animation='exiting'] > .charcoal-modal-dialog {
667
- transform: translateY(100%);
668
- }
570
+ .charcoal-text-field-input::-moz-placeholder {
571
+ color: var(--charcoal-color-text-placeholder-default);
572
+ }
669
573
 
670
- .charcoal-modal-close-button {
671
- position: absolute;
672
- top: 8px;
673
- right: 8px;
574
+ .charcoal-text-field-input::placeholder {
575
+ color: var(--charcoal-color-text-placeholder-default);
576
+ }
674
577
 
578
+ .charcoal-text-field-line-counter {
579
+ line-height: 22px;
580
+ font-size: 14px;
675
581
  color: var(--charcoal-color-text-tertiary-default);
676
- transition: 0.2s color;
677
- }
678
-
679
- .charcoal-modal-title {
680
- margin: 0;
681
- font-weight: inherit;
682
- font-size: inherit;
683
- }
684
- .charcoal-radio-group {
685
- display: grid;
686
- grid-template-columns: 1fr;
687
- grid-gap: 8px;
688
582
  }
689
583
  .charcoal-loading-spinner {
690
584
  box-sizing: content-box;
@@ -729,571 +623,1038 @@
729
623
  .charcoal-loading-spinner-icon[data-once='true'] {
730
624
  animation-iteration-count: 1;
731
625
  }
732
- .charcoal-pagination {
733
- display: flex;
734
- justify-content: center;
735
- align-items: center;
626
+ .charcoal-menu-item-group {
627
+ display: block;
736
628
  }
737
629
 
738
- .charcoal-pagination[data-size='S'] .charcoal-pagination-button {
739
- min-width: 32px;
740
- min-height: 32px;
741
- }
742
-
743
- .charcoal-pagination[data-size='M'] .charcoal-pagination-button {
744
- min-width: 40px;
745
- min-height: 40px;
746
- }
630
+ .charcoal-menu-item-group > span {
631
+ display: block;
632
+ color: var(--charcoal-color-text-tertiary-default);
633
+ font-size: 12px;
634
+ font-weight: bold;
635
+ padding: 12px 0 8px 16px;
636
+ }
747
637
 
748
- /* stylelint-disable no-descending-specificity */
749
- .charcoal-pagination-button {
750
- cursor: pointer;
751
- -webkit-appearance: none;
752
- -moz-appearance: none;
753
- appearance: none;
754
- padding: 0;
755
- border-style: none;
756
- outline: none;
757
- text-decoration: none;
758
- font-family: inherit;
759
- font-style: inherit;
760
- font-variant: inherit;
638
+ .charcoal-menu-item-group > ul {
639
+ padding-left: 0;
761
640
  margin: 0;
762
- -webkit-user-select: none;
763
- -moz-user-select: none;
764
- user-select: none;
641
+ box-sizing: border-box;
642
+ list-style: none;
643
+ overflow: hidden;
644
+ }
645
+ .charcoal-text-area-root {
646
+ display: grid;
647
+ grid-template-columns: 1fr;
648
+ grid-gap: 4px;
649
+ }
765
650
 
766
- display: flex;
767
- align-items: center;
768
- justify-content: center;
769
- font-size: 14px;
770
- font-weight: 700;
771
- line-height: 22px;
651
+ .charcoal-text-area-root[aria-disabled='true'] {
652
+ opacity: 0.32;
653
+ }
772
654
 
773
- /* HACK:
774
- * Safari doesn't correctly repaint the elements when they're reordered in response to interaction.
775
- * This forces it to repaint them. This doesn't work if put on the parents either, has to be here.
776
- */
777
- -webkit-transform: translateZ(0);
655
+ .charcoal-text-area-container {
656
+ /* Runtime variable overridden by the React component. */
657
+ --charcoal-text-area-rows: 4;
778
658
 
779
- color: var(--charcoal-color-text-tertiary-default);
780
- background-color: transparent;
781
- border-radius: 20px;
659
+ position: relative;
660
+ overflow: hidden;
661
+
662
+ color: var(--charcoal-color-text-secondary-default);
663
+ background-color: var(--charcoal-color-container-secondary-default-a);
664
+ border-radius: 4px;
782
665
  transition:
783
666
  0.2s background-color,
784
667
  0.2s box-shadow;
668
+ height: calc(22px * var(--charcoal-text-area-rows) + 18px);
785
669
  }
786
- .charcoal-pagination-button:focus {
787
- outline: none;
788
- }
789
- .charcoal-pagination-button::-moz-focus-inner {
790
- border-style: none;
791
- padding: 0;
792
- }
793
- .charcoal-pagination-button[hidden] {
794
- visibility: hidden;
795
- display: block;
796
- }
797
- .charcoal-pagination-button:not(:disabled):not([aria-disabled]):hover,
798
- .charcoal-pagination-button[aria-disabled='false']:hover {
799
- color: var(--charcoal-color-text-tertiary-default);
800
- background-color: var(--charcoal-color-container-secondary-default);
801
- }
802
- .charcoal-pagination-button:not(:disabled):not([aria-disabled]):active,
803
- .charcoal-pagination-button[aria-disabled='false']:active {
804
- color: var(--charcoal-color-text-tertiary-press);
805
- background-color: var(--charcoal-color-container-tertiary-press);
670
+
671
+ .charcoal-text-area-container[aria-invalid='true'] {
672
+ box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
806
673
  }
807
- .charcoal-pagination-button:not(:disabled):not([aria-disabled]):focus,
808
- .charcoal-pagination-button[aria-disabled='false']:focus {
674
+
675
+ .charcoal-text-area-container:focus-within {
809
676
  outline: none;
810
677
  box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
811
678
  }
812
- .charcoal-pagination-button:not(:disabled):not([aria-disabled]):focus-visible,
813
- .charcoal-pagination-button[aria-disabled='false']:focus-visible {
814
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
679
+
680
+ .charcoal-text-area-container:has([data-no-bottom-padding='true']) {
681
+ height: calc(22px * (var(--charcoal-text-area-rows) + 1) + 18px);
815
682
  }
816
- .charcoal-pagination-button:not(:disabled):not([aria-disabled]):focus:not(:focus-visible),
817
- .charcoal-pagination-button[aria-disabled='false']:focus:not(:focus-visible) {
818
- box-shadow: none;
683
+
684
+ .charcoal-text-area-container:not([aria-disabled='true']):hover {
685
+ background-color: var(--charcoal-color-container-secondary-hover-a);
819
686
  }
820
- .charcoal-pagination-button[aria-current] {
821
- cursor: default;
822
- background-color: var(--charcoal-color-container-hud-default);
823
- color: var(--charcoal-color-text-on-hud-default);
687
+
688
+ .charcoal-text-area-container[aria-invalid='true']:focus-within {
689
+ box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
824
690
  }
825
- .charcoal-pagination-button[aria-current]:not(:disabled):not([aria-disabled]):hover,
826
- .charcoal-pagination-button[aria-current]:not(:disabled):not([aria-disabled]):active {
827
- background-color: var(--charcoal-color-container-hud-default);
828
- color: var(--charcoal-color-text-on-hud-default);
829
- }
830
- /* stylelint-enable no-descending-specificity */
831
691
 
832
- .charcoal-pagination-nav-button[data-hidden] {
833
- visibility: hidden;
692
+ .charcoal-text-area-textarea {
693
+ border: none;
694
+ outline: none;
695
+ resize: none;
696
+ font-family: inherit;
697
+ color: inherit;
698
+ box-sizing: border-box;
699
+
700
+ /* Prevent zooming for iOS Safari */
701
+ --charcoal-textarea-safari-prevent-zoom-scale: 0.875;
702
+ --charcoal-textarea-line-height: calc(
703
+ 22px / var(--charcoal-textarea-safari-prevent-zoom-scale)
704
+ );
705
+ --charcoal-textarea-padding-y: calc(
706
+ 8px / var(--charcoal-textarea-safari-prevent-zoom-scale)
707
+ );
708
+ --charcoal-textarea-padding-x: calc(
709
+ 9px / var(--charcoal-textarea-safari-prevent-zoom-scale)
710
+ );
711
+
712
+ transform-origin: top left;
713
+ transform: scale(var(--charcoal-textarea-safari-prevent-zoom-scale));
714
+ width: calc(100% / var(--charcoal-textarea-safari-prevent-zoom-scale));
715
+ font-size: calc(14px / var(--charcoal-textarea-safari-prevent-zoom-scale));
716
+ line-height: var(--charcoal-textarea-line-height);
717
+ padding: var(--charcoal-textarea-padding-y) var(--charcoal-textarea-padding-x);
718
+ height: calc(
719
+ var(--charcoal-textarea-line-height) * var(--charcoal-text-area-rows) +
720
+ var(--charcoal-textarea-padding-y) * 2
721
+ );
722
+
723
+ /* Display box-shadow for iOS Safari */
724
+ -webkit-appearance: none;
725
+ -moz-appearance: none;
726
+ appearance: none;
727
+
728
+ background: none;
834
729
  }
835
730
 
836
- .charcoal-pagination-spacer,
837
- .charcoal-pagination-spacer:hover,
838
- .charcoal-pagination-spacer:active {
839
- cursor: default;
840
- color: var(--charcoal-color-text-tertiary-default);
841
- background: none;
731
+ .charcoal-text-area-textarea[data-no-bottom-padding='true'] {
732
+ padding: var(--charcoal-textarea-padding-y)
733
+ var(--charcoal-textarea-padding-x) 0;
734
+ height: calc(
735
+ var(--charcoal-textarea-line-height) * var(--charcoal-text-area-rows) +
736
+ var(--charcoal-textarea-padding-y)
737
+ );
842
738
  }
843
739
 
844
- .charcoal-pagination-spacer.charcoal-icon-button:disabled {
845
- opacity: 1;
740
+ .charcoal-text-area-textarea::-moz-placeholder {
741
+ color: var(--charcoal-color-text-placeholder-default);
846
742
  }
847
- .charcoal-radio__label {
743
+
744
+ .charcoal-text-area-textarea::placeholder {
745
+ color: var(--charcoal-color-text-placeholder-default);
746
+ }
747
+
748
+ .charcoal-text-area-counter {
749
+ position: absolute;
750
+ bottom: 9px;
751
+ right: 8px;
752
+
753
+ line-height: 22px;
754
+ font-size: 14px;
755
+ color: var(--charcoal-color-text-tertiary-default);
756
+ }
757
+ .charcoal-dropdown-selector-root {
848
758
  display: grid;
849
- grid-template-columns: auto 1fr;
759
+ grid-template-columns: 1fr;
850
760
  grid-gap: 4px;
761
+ width: 100%;
762
+ }
763
+
764
+ .charcoal-dropdown-selector-root[aria-disabled='true'] {
765
+ cursor: default;
766
+ opacity: 0.32;
767
+ }
768
+
769
+ .charcoal-dropdown-selector-button {
770
+ display: grid;
771
+ grid-template-columns: 1fr auto;
772
+ justify-content: space-between;
851
773
  align-items: center;
774
+
775
+ height: 40px;
776
+ width: 100%;
777
+ box-sizing: border-box;
778
+ border: none;
852
779
  cursor: pointer;
780
+ gap: 4px;
781
+
782
+ padding-right: 8px;
783
+ padding-left: 8px;
784
+ background-color: var(--charcoal-color-container-secondary-default-a);
785
+ border-radius: 4px;
786
+
787
+ transition:
788
+ 0.2s box-shadow,
789
+ 0.2s background-color;
853
790
  }
854
791
 
855
- .charcoal-radio__label[aria-disabled]:not([aria-disabled='false']) {
856
- opacity: 0.32;
792
+ .charcoal-dropdown-selector-button:disabled {
857
793
  cursor: default;
858
794
  }
859
795
 
860
- .charcoal-radio__label_div {
796
+ .charcoal-dropdown-selector-button:not(:disabled):focus {
797
+ outline: none;
798
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
799
+ }
800
+
801
+ .charcoal-dropdown-selector-button:not(:disabled):focus-visible {
802
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
803
+ }
804
+
805
+ .charcoal-dropdown-selector-button:not(:disabled)[data-active='true'],
806
+ .charcoal-dropdown-selector-button:not(:disabled):active {
807
+ background-color: var(--charcoal-color-container-secondary-press-a);
808
+ }
809
+
810
+ .charcoal-dropdown-selector-button:not(:disabled):hover {
811
+ background-color: var(--charcoal-color-container-secondary-hover-a);
812
+ }
813
+
814
+ .charcoal-dropdown-selector-button:not(:disabled):focus:not(:focus-visible) {
815
+ box-shadow: none;
816
+ }
817
+
818
+ .charcoal-dropdown-selector-button[aria-invalid='true'],
819
+ .charcoal-dropdown-selector-button:not(:disabled)[aria-invalid='true']:focus:not(:focus-visible) {
820
+ box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
821
+ }
822
+
823
+ .charcoal-ui-dropdown-selector-text {
824
+ text-align: left;
861
825
  font-size: 14px;
862
826
  line-height: 22px;
827
+ display: flow-root;
863
828
  color: var(--charcoal-color-text-default);
864
- }
865
- .charcoal-modal-header-root {
866
- height: 64px;
867
- display: grid;
868
- align-content: center;
869
- justify-content: center;
829
+ overflow: hidden;
830
+ text-overflow: ellipsis;
831
+ white-space: nowrap;
870
832
  }
871
833
 
872
- @media (max-width: 743px) {
873
- .charcoal-modal-header-root[data-bottom-sheet='true'],
874
- .charcoal-modal-header-root[data-bottom-sheet='full'] {
875
- height: 48px;
834
+ .charcoal-ui-dropdown-selector-text[data-placeholder='true'] {
835
+ color: var(--charcoal-color-text-placeholder-default);
876
836
  }
837
+
838
+ .charcoal-ui-dropdown-selector-icon {
839
+ color: var(--charcoal-color-icon-secondary-default);
840
+ }
841
+ .charcoal-checkbox__label {
842
+ position: relative;
843
+ cursor: pointer;
844
+ display: flex;
845
+ gap: 4px;
877
846
  }
878
847
 
879
- .charcoal-modal-header-title {
848
+ .charcoal-checkbox__label[aria-disabled='true'] {
849
+ cursor: default;
850
+ opacity: 0.32;
851
+ }
852
+
853
+ .charcoal-checkbox__label[aria-disabled='true'] > input {
854
+ opacity: 1;
855
+ }
856
+
857
+ .charcoal-checkbox__label_div {
858
+ flex: 1;
880
859
  color: var(--charcoal-color-text-default);
881
- font-size: 16px;
882
- line-height: 24px;
883
- font-weight: bold;
884
- display: flow-root;
860
+ font-size: 14px;
861
+ line-height: 20px;
885
862
  }
886
-
887
- .charcoal-modal-align {
888
- padding-left: 16px;
889
- padding-right: 16px;
863
+ .charcoal-icon {
864
+ display: inline-flex;
865
+ width: var(--charcoal-icon-size);
866
+ height: var(--charcoal-icon-size);
890
867
  }
891
868
 
892
- .charcoal-modal-body {
893
- padding-bottom: 40px;
869
+ pixiv-icon:not(:defined) {
870
+ --pixiv-icon-base: 24px;
871
+ --pixiv-icon-scale: 1;
872
+ --pixiv-icon-size: calc(var(--pixiv-icon-base) * var(--pixiv-icon-scale));
873
+
874
+ display: inline-flex;
875
+ /* --charcoal-icon-size がセットされていればそれを優先、
876
+ なければ name / scale から導出した --pixiv-icon-size をフォールバック */
877
+ width: var(--charcoal-icon-size, var(--pixiv-icon-size));
878
+ height: var(--charcoal-icon-size, var(--pixiv-icon-size));
894
879
  }
895
880
 
896
- .charcoal-modal-buttons {
897
- display: grid;
898
- grid-auto-flow: row;
899
- grid-row-gap: 8px;
881
+ pixiv-icon:not(:defined)[name^='16/'] {
882
+ --pixiv-icon-base: 16px;
883
+ --pixiv-icon-size: 16px;
884
+ }
900
885
 
901
- padding-top: 16px;
902
- padding-left: 16px;
903
- padding-right: 16px;
904
- }
905
- .charcoal-button {
906
- -webkit-appearance: none;
907
- -moz-appearance: none;
908
- appearance: none;
909
- background-image: none;
910
- box-sizing: border-box;
911
- padding: 0 24px;
912
- border-style: none;
913
- outline: none;
914
- text-rendering: inherit;
915
- letter-spacing: inherit;
916
- word-spacing: inherit;
917
- text-decoration: none;
918
- font-family: inherit;
919
- font-style: inherit;
920
- font-variant: inherit;
921
- margin: 0;
922
- overflow: visible;
923
- text-transform: none;
924
- width: -moz-min-content;
925
- width: min-content;
926
- display: inline-grid;
927
- align-items: center;
928
- justify-content: center;
929
- cursor: pointer;
930
- -webkit-user-select: none;
931
- -moz-user-select: none;
932
- user-select: none;
933
- white-space: nowrap;
934
- border-radius: 999999px;
935
- font-size: 14px;
936
- line-height: 22px;
937
- font-weight: bold;
938
- color: var(--charcoal-color-text-default);
939
- background-color: var(
940
- --charcoal-color-container-secondary-default-a,
941
- transparent
942
- );
943
- transition:
944
- 0.2s color,
945
- 0.2s background-color,
946
- 0.2s box-shadow;
947
- height: 40px;
948
- }
949
-
950
- .charcoal-button:disabled,
951
- .charcoal-button[aria-disabled]:not([aria-disabled='false']) {
952
- cursor: default;
953
- opacity: 0.32;
954
- }
955
-
956
- .charcoal-button:not(:disabled):not([aria-disabled]):focus-visible,
957
- .charcoal-button[aria-disabled='false']:focus-visible {
958
- outline: none;
959
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
960
- }
886
+ pixiv-icon:not(:defined)[name^='24/'][scale='2'] {
887
+ --pixiv-icon-scale: 2;
888
+ }
961
889
 
962
- .charcoal-button:not(:disabled):not([aria-disabled]):hover,
963
- .charcoal-button[aria-disabled='false']:hover {
964
- color: var(--charcoal-color-text-hover);
965
- background-color: var(--charcoal-color-container-secondary-hover-a);
966
- }
890
+ pixiv-icon:not(:defined)[name^='24/'][scale='3'] {
891
+ --pixiv-icon-scale: 3;
892
+ }
967
893
 
968
- .charcoal-button:not(:disabled):not([aria-disabled]):active,
969
- .charcoal-button[aria-disabled='false']:active,
970
- .charcoal-button[data-active='true'] {
971
- color: var(--charcoal-color-text-press);
972
- background-color: var(--charcoal-color-container-secondary-press-a);
894
+ pixiv-icon:not(:defined)[name^='32/'] {
895
+ --pixiv-icon-base: 32px;
896
+ --pixiv-icon-size: 32px;
973
897
  }
974
898
 
975
- .charcoal-button[data-variant='Primary'] {
976
- color: var(--charcoal-color-text-on-primary-default);
977
- background-color: var(--charcoal-color-container-primary-default);
899
+ pixiv-icon:not(:defined)[name^='Inline/'] {
900
+ --pixiv-icon-base: 16px;
978
901
  }
979
902
 
980
- .charcoal-button[data-variant='Primary']:hover:not(:disabled):not([aria-disabled]),
981
- .charcoal-button[data-variant='Primary']:hover[aria-disabled='false'] {
982
- color: var(--charcoal-color-text-on-primary-hover);
983
- background-color: var(--charcoal-color-container-primary-hover);
903
+ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
904
+ --pixiv-icon-scale: 2;
984
905
  }
906
+ .charcoal-dropdown-selector-menu-item {
907
+ font-size: 14px;
908
+ line-height: 22px;
909
+ color: var(--charcoal-color-text-secondary-default);
910
+ padding: 9px 0;
985
911
 
986
- .charcoal-button[data-variant='Primary']:active:not(:disabled):not([aria-disabled]),
987
- .charcoal-button[data-variant='Primary']:active[aria-disabled='false'],
988
- .charcoal-button[data-variant='Primary'][data-active='true'] {
989
- color: var(--charcoal-color-text-on-primary-press);
990
- background-color: var(--charcoal-color-container-primary-press);
991
- }
912
+ display: flex;
913
+ align-items: center;
914
+ width: 100%;
915
+ margin-left: 20px;
916
+ }
992
917
 
993
- .charcoal-button[data-variant='Overlay'] {
994
- color: var(--charcoal-color-text-on-on-img-default);
995
- background-color: var(--charcoal-color-container-on-img-default);
996
- }
918
+ .charcoal-dropdown-selector-menu-item[data-selected='true'] {
919
+ margin-left: 0px;
920
+ }
997
921
 
998
- .charcoal-button[data-variant='Overlay']:hover:not(:disabled):not([aria-disabled]),
999
- .charcoal-button[data-variant='Overlay']:hover[aria-disabled='false'] {
1000
- color: var(--charcoal-color-text-on-on-img-hover);
1001
- background-color: var(--charcoal-color-container-on-img-hover);
1002
- }
922
+ .charcoal-dropdown-selector-menu-item-icon {
923
+ color: var(--charcoal-color-text-secondary-default);
924
+ padding-right: 4px;
925
+ }
1003
926
 
1004
- .charcoal-button[data-variant='Overlay']:active:not(:disabled):not([aria-disabled]),
1005
- .charcoal-button[data-variant='Overlay']:active[aria-disabled='false'],
1006
- .charcoal-button[data-variant='Overlay'][data-active='true'] {
1007
- color: var(--charcoal-color-text-on-on-img-press);
1008
- background-color: var(--charcoal-color-container-on-img-press);
1009
- }
927
+ .charcoal-dropdown-selector-menu-item-container {
928
+ display: flex;
929
+ align-items: center;
930
+ }
1010
931
 
1011
- .charcoal-button[data-variant='Navigation'] {
1012
- color: var(--charcoal-color-text-on-hud-default);
1013
- background-color: var(--charcoal-color-container-hud-default);
1014
- }
932
+ .charcoal-dropdown-selector-menu-secondary {
933
+ font-size: 12px;
934
+ line-height: 20px;
935
+ color: var(--charcoal-color-text-tertiary-default);
936
+ padding-bottom: 9px;
1015
937
 
1016
- .charcoal-button[data-variant='Navigation']:hover:not(:disabled):not([aria-disabled]),
1017
- .charcoal-button[data-variant='Navigation']:hover[aria-disabled='false'] {
1018
- color: var(--charcoal-color-text-on-hud-hover);
1019
- background-color: var(--charcoal-color-container-hud-hover);
1020
- }
938
+ display: flex;
939
+ align-items: center;
940
+ margin-left: 20px;
941
+ }
1021
942
 
1022
- .charcoal-button[data-variant='Navigation']:active:not(:disabled):not([aria-disabled]),
1023
- .charcoal-button[data-variant='Navigation']:active[aria-disabled='false'],
1024
- .charcoal-button[data-variant='Navigation'][data-active='true'] {
1025
- color: var(--charcoal-color-text-on-hud-press);
1026
- background-color: var(--charcoal-color-container-hud-press);
1027
- }
943
+ .charcoal-dropdown-selector-menu-fullwidth {
944
+ width: 100%;
945
+ }
946
+ .charcoal-switch__label {
947
+ display: inline-grid;
948
+ grid-template-columns: auto 1fr;
949
+ align-items: center;
950
+ cursor: pointer;
951
+ outline: 0;
952
+ gap: 4px;
953
+ }
1028
954
 
1029
- .charcoal-button[data-variant='Danger'] {
1030
- color: var(--charcoal-color-text-on-negative-default);
1031
- background-color: var(--charcoal-color-container-negative-default);
955
+ .charcoal-switch__label[aria-disabled='true'] {
956
+ opacity: 0.32;
957
+ cursor: default;
1032
958
  }
1033
959
 
1034
- .charcoal-button[data-variant='Danger']:hover:not(:disabled):not([aria-disabled]),
1035
- .charcoal-button[data-variant='Danger']:hover[aria-disabled='false'] {
1036
- color: var(--charcoal-color-text-on-negative-hover);
1037
- background-color: var(--charcoal-color-container-negative-hover);
960
+ .charcoal-switch__label[aria-disabled='true'] > input {
961
+ opacity: 1;
1038
962
  }
1039
963
 
1040
- .charcoal-button[data-variant='Danger']:active:not(:disabled):not([aria-disabled]),
1041
- .charcoal-button[data-variant='Danger']:active[aria-disabled='false'],
1042
- .charcoal-button[data-variant='Danger'][data-active='true'] {
1043
- color: var(--charcoal-color-text-on-negative-press);
1044
- background-color: var(--charcoal-color-container-negative-press);
1045
- }
964
+ .charcoal-switch__label_div {
965
+ font-size: 14px;
966
+ line-height: 22px;
967
+ color: var(--charcoal-color-text-default);
968
+ }
969
+ .charcoal-segmented-control {
970
+ display: inline-flex;
971
+ align-items: center;
1046
972
 
1047
- .charcoal-button[data-size='S'] {
1048
- padding: 0 16px;
1049
- height: 32px;
1050
- }
973
+ background-color: var(--charcoal-color-container-secondary-default-a);
974
+ border-radius: 16px;
975
+ }
1051
976
 
1052
- .charcoal-button[data-full-width='true'] {
1053
- width: 100%;
977
+ .charcoal-segmented-control[data-uniform-segment-width='true'],
978
+ .charcoal-segmented-control[data-full-width='true'] {
979
+ display: inline-grid;
980
+ grid-auto-columns: minmax(80px, 1fr);
981
+ grid-auto-rows: 32px;
982
+ grid-auto-flow: column;
1054
983
  }
1055
- .charcoal-dropdown-selector-root {
1056
- display: grid;
1057
- grid-template-columns: 1fr;
1058
- grid-gap: 4px;
1059
- width: 100%;
1060
- }
1061
984
 
1062
- .charcoal-dropdown-selector-root[aria-disabled='true'] {
1063
- cursor: default;
1064
- opacity: 0.32;
985
+ .charcoal-segmented-control[data-full-width='true'] {
986
+ width: 100%;
1065
987
  }
1066
988
 
1067
- .charcoal-dropdown-selector-button {
1068
- display: grid;
1069
- grid-template-columns: 1fr auto;
1070
- justify-content: space-between;
989
+ .charcoal-segmented-control-radio__label {
990
+ position: relative;
991
+ display: flex;
1071
992
  align-items: center;
1072
-
1073
- height: 40px;
1074
- width: 100%;
1075
- box-sizing: border-box;
1076
- border: none;
993
+ justify-content: center;
1077
994
  cursor: pointer;
1078
- gap: 4px;
995
+ height: 32px;
1079
996
 
1080
- padding-right: 8px;
1081
- padding-left: 8px;
1082
- background-color: var(--charcoal-color-container-secondary-default-a);
1083
- border-radius: 4px;
997
+ padding-right: 16px;
998
+ padding-left: 16px;
999
+ border-radius: 16px;
1000
+ color: var(--charcoal-color-text-secondary-default);
1084
1001
 
1085
- transition:
1086
- 0.2s box-shadow,
1087
- 0.2s background-color;
1002
+ font-size: 14px;
1003
+ line-height: 22px;
1088
1004
  }
1089
1005
 
1090
- .charcoal-dropdown-selector-button:disabled {
1006
+ .charcoal-segmented-control-radio__label[aria-disabled]:not([aria-disabled='false']) {
1091
1007
  cursor: default;
1008
+ opacity: 0.32;
1092
1009
  }
1093
1010
 
1094
- .charcoal-dropdown-selector-button:not(:disabled):focus {
1095
- outline: none;
1096
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
1097
- }
1011
+ .charcoal-segmented-control-radio__label[data-checked='true'] {
1012
+ background-color: var(--charcoal-color-container-primary-default);
1013
+ color: var(--charcoal-color-text-on-primary-default);
1014
+ }
1098
1015
 
1099
- .charcoal-dropdown-selector-button:not(:disabled):focus-visible {
1100
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
1101
- }
1016
+ .charcoal-segmented-control-radio__label[data-uniform-segment-width='true'],
1017
+ .charcoal-segmented-control-radio__label[data-full-width='true'] {
1018
+ justify-content: center;
1019
+ white-space: nowrap;
1020
+ }
1102
1021
 
1103
- .charcoal-dropdown-selector-button:not(:disabled)[data-active='true'],
1104
- .charcoal-dropdown-selector-button:not(:disabled):active {
1105
- background-color: var(--charcoal-color-container-secondary-press-a);
1022
+ .charcoal-segmented-control-radio__input {
1023
+ position: absolute;
1024
+
1025
+ height: 0px;
1026
+ width: 0px;
1027
+ padding: 0;
1028
+ margin: 0;
1029
+
1030
+ -webkit-appearance: none;
1031
+
1032
+ -moz-appearance: none;
1033
+
1034
+ appearance: none;
1035
+ box-sizing: border-box;
1036
+ overflow: hidden;
1037
+ white-space: nowrap;
1038
+ opacity: 0;
1039
+ }
1040
+ .charcoal-modal-background {
1041
+ overflow: auto;
1042
+ display: flex;
1043
+ position: fixed;
1044
+ top: 0;
1045
+ left: 0;
1046
+ width: 100%;
1047
+ height: 100%;
1048
+ justify-content: center;
1049
+ padding: 40px 0;
1050
+ box-sizing: border-box;
1051
+
1052
+ background-color: var(--charcoal-color-background-overlay);
1053
+ }
1054
+
1055
+ @media (max-width: 743px) {
1056
+ .charcoal-modal-background[data-bottom-sheet='true'],
1057
+ .charcoal-modal-background[data-bottom-sheet='full'] {
1058
+ padding: 0;
1106
1059
  }
1060
+ }
1107
1061
 
1108
- .charcoal-dropdown-selector-button:not(:disabled):hover {
1109
- background-color: var(--charcoal-color-container-secondary-hover-a);
1062
+ /* easeOutQuart。duration は useTransitionPresence の MODAL_TRANSITION_DURATION_MS と一致させること。
1063
+ transition は entering / exiting に限定し、開いたままテーマ切り替え等で
1064
+ 色や transform が変わってもアニメーションしないようにする */
1065
+ .charcoal-modal-background[data-animation] {
1066
+ overflow: hidden;
1067
+ }
1068
+
1069
+ .charcoal-modal-background[data-animation='entering'],
1070
+ .charcoal-modal-background[data-animation='exiting'] {
1071
+ transition: background-color 400ms cubic-bezier(0.25, 1, 0.5, 1);
1072
+ }
1073
+
1074
+ /* 閉じアニメーション中はクリックを下のページへ通す(transitionend が来ない環境で
1075
+ 透明なオーバーレイがタップを奪い続けるのも防ぐ) */
1076
+ .charcoal-modal-background[data-animation='exited'],
1077
+ .charcoal-modal-background[data-animation='exiting'] {
1078
+ background-color: transparent;
1079
+ pointer-events: none;
1080
+ }
1081
+
1082
+ .charcoal-modal-background[data-animation='entered'] {
1083
+ overflow: auto;
1084
+ }
1085
+
1086
+ .charcoal-modal-background[data-animation='entering'] > .charcoal-modal-dialog,
1087
+ .charcoal-modal-background[data-animation='exiting'] > .charcoal-modal-dialog {
1088
+ transition: transform 400ms cubic-bezier(0.25, 1, 0.5, 1);
1089
+ }
1090
+
1091
+ .charcoal-modal-background[data-animation='exited'] > .charcoal-modal-dialog,
1092
+ .charcoal-modal-background[data-animation='exiting'] > .charcoal-modal-dialog {
1093
+ transform: translateY(100%);
1094
+ }
1095
+
1096
+ .charcoal-modal-close-button {
1097
+ position: absolute;
1098
+ top: 8px;
1099
+ right: 8px;
1100
+
1101
+ color: var(--charcoal-color-text-tertiary-default);
1102
+ transition: 0.2s color;
1103
+ }
1104
+
1105
+ .charcoal-modal-title {
1106
+ margin: 0;
1107
+ font-weight: inherit;
1108
+ font-size: inherit;
1109
+ }
1110
+ .charcoal-tag-item {
1111
+ --charcoal-tag-item-color: var(--charcoal-color-text-on-primary-default);
1112
+ --charcoal-tag-item-size: 40px;
1113
+ --charcoal-tag-item-padding-left: 24px;
1114
+ --charcoal-tag-item-padding-right: 24px;
1115
+ --charcoal-tag-item-bg: ;
1116
+
1117
+ isolation: isolate;
1118
+ position: relative;
1119
+
1120
+ -webkit-appearance: none;
1121
+
1122
+ -moz-appearance: none;
1123
+
1124
+ appearance: none;
1125
+ outline: none;
1126
+ border-style: none;
1127
+
1128
+ display: inline-flex;
1129
+ gap: 8px;
1130
+ align-items: center;
1131
+ justify-content: center;
1132
+
1133
+ text-decoration: none;
1134
+ cursor: pointer;
1135
+ overflow: hidden;
1136
+
1137
+ color: var(--charcoal-tag-item-color);
1138
+ height: var(--charcoal-tag-item-size);
1139
+ padding-top: 4px;
1140
+ padding-bottom: 4px;
1141
+ padding-left: var(--charcoal-tag-item-padding-left);
1142
+ padding-right: var(--charcoal-tag-item-padding-right);
1143
+ box-sizing: border-box;
1144
+ border-radius: 4px;
1145
+
1146
+ transition: 0.2s box-shadow;
1147
+ }
1148
+
1149
+ .charcoal-tag-item[data-size='M'] {
1150
+ --charcoal-tag-item-size: 40px;
1151
+ --charcoal-tag-item-padding-left: 24px;
1152
+ --charcoal-tag-item-padding-right: 24px;
1153
+ }
1154
+
1155
+ .charcoal-tag-item[data-size='S'] {
1156
+ --charcoal-tag-item-size: 32px;
1157
+ --charcoal-tag-item-padding-left: 16px;
1158
+ --charcoal-tag-item-padding-right: 16px;
1159
+ }
1160
+
1161
+ .charcoal-tag-item[data-state='inactive'] {
1162
+ --charcoal-tag-item-color: var(--charcoal-color-text-secondary-default);
1163
+ }
1164
+
1165
+ .charcoal-tag-item[data-state='active'] {
1166
+ --charcoal-tag-item-padding-left: 16px;
1167
+ --charcoal-tag-item-padding-right: 8px;
1168
+ }
1169
+
1170
+ .charcoal-tag-item:disabled,
1171
+ .charcoal-tag-item[aria-disabled]:not([aria-disabled='false']) {
1172
+ opacity: 0.32;
1173
+ cursor: default;
1174
+ }
1175
+
1176
+ .charcoal-tag-item:not(:disabled):not([aria-disabled]):focus-visible,
1177
+ .charcoal-tag-item[aria-disabled='false']:focus-visible {
1178
+ outline: none;
1179
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
1180
+ }
1181
+
1182
+ .charcoal-tag-item:not(:disabled):not([aria-disabled]):focus,
1183
+ .charcoal-tag-item[aria-disabled='false']:focus {
1184
+ outline: none;
1185
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
1186
+ }
1187
+
1188
+ .charcoal-tag-item:not(:disabled):not([aria-disabled]):focus:not(:focus-visible),
1189
+ .charcoal-tag-item[aria-disabled='false']:focus:not(:focus-visible) {
1190
+ box-shadow: none;
1191
+ }
1192
+
1193
+ .charcoal-tag-item__bg {
1194
+ background-color: var(--charcoal-tag-item-bg);
1195
+ }
1196
+
1197
+ .charcoal-tag-item__bg[data-bg-variant='image'] {
1198
+ background-color: var(--charcoal-color-container-on-img-default);
1199
+ }
1200
+
1201
+ .charcoal-tag-item__bg[data-bg-variant='image']::before {
1202
+ content: '';
1203
+ position: absolute;
1204
+ z-index: 1;
1205
+ top: 0;
1206
+ left: 0;
1207
+ width: 100%;
1208
+ height: 100%;
1209
+ background-position: center;
1210
+ background-size: cover;
1211
+ background-image: var(--charcoal-tag-item-bg);
1212
+ mix-blend-mode: overlay;
1110
1213
  }
1111
1214
 
1112
- .charcoal-dropdown-selector-button:not(:disabled):focus:not(:focus-visible) {
1113
- box-shadow: none;
1215
+ .charcoal-tag-item__bg[data-state='inactive'] {
1216
+ background-color: var(--charcoal-color-container-secondary-default);
1217
+ }
1218
+
1219
+ .charcoal-tag-item__label {
1220
+ height: 100%;
1221
+ display: flex;
1222
+ flex-direction: column;
1223
+ align-items: center;
1224
+ justify-content: center;
1225
+ }
1226
+
1227
+ .charcoal-tag-item__label[data-has-translate='true'] {
1228
+ justify-content: space-between;
1229
+ }
1230
+
1231
+ .charcoal-tag-item__label__translated {
1232
+ --charcoal-tag-item-text-font-size: 12px;
1233
+ --charcoal-tag-item-text-line-height: 20px;
1234
+ font-weight: bold;
1235
+ }
1236
+
1237
+ .charcoal-tag-item__label__translated::before {
1238
+ display: none;
1239
+ }
1240
+
1241
+ .charcoal-tag-item__label__text {
1242
+ --charcoal-tag-item-text-font-size: 14px;
1243
+ --charcoal-tag-item-text-line-height: 22px;
1244
+
1245
+ max-width: 152px;
1246
+ overflow: hidden;
1247
+ font-weight: bold;
1248
+
1249
+ color: inherit;
1250
+ white-space: nowrap;
1251
+ text-overflow: ellipsis;
1252
+ }
1253
+
1254
+ .charcoal-tag-item__label__text[data-has-translate='true'] {
1255
+ --charcoal-tag-item-text-font-size: 10px;
1256
+ --charcoal-tag-item-text-line-height: 14px;
1257
+ font-weight: normal;
1258
+ }
1259
+
1260
+ /* Kept flat: different class name from .charcoal-tag-item__label__text (note: "labe" typo in original) */
1261
+ .charcoal-tag-item__labe__text[data-has-translate='true']::after {
1262
+ display: none;
1263
+ }
1264
+ .charcoal-text-ellipsis {
1265
+ /* Runtime variables overridden by the React component. */
1266
+ --charcoal-text-ellipsis-line-limit: 1;
1267
+ --charcoal-text-ellipsis-line-height: inherit;
1268
+
1269
+ overflow: hidden;
1270
+ overflow-wrap: break-word;
1271
+ display: -webkit-box;
1272
+ -webkit-box-orient: vertical;
1273
+ -webkit-line-clamp: var(--charcoal-text-ellipsis-line-limit);
1274
+ }
1275
+
1276
+ .charcoal-text-ellipsis[data-has-line-height='true'] {
1277
+ line-height: var(--charcoal-text-ellipsis-line-height);
1278
+ }
1279
+
1280
+ .charcoal-text-ellipsis[data-has-line-height='false'] {
1281
+ line-height: inherit;
1282
+ }
1283
+
1284
+ .charcoal-text-ellipsis[data-line-limit='1'][data-use-nowrap='true'] {
1285
+ text-overflow: ellipsis;
1286
+ white-space: nowrap;
1287
+ }
1288
+ .charcoal-modal-header-root {
1289
+ height: 64px;
1290
+ display: grid;
1291
+ align-content: center;
1292
+ justify-content: center;
1293
+ }
1294
+
1295
+ @media (max-width: 743px) {
1296
+ .charcoal-modal-header-root[data-bottom-sheet='true'],
1297
+ .charcoal-modal-header-root[data-bottom-sheet='full'] {
1298
+ height: 48px;
1299
+ }
1300
+ }
1301
+
1302
+ .charcoal-modal-header-title {
1303
+ color: var(--charcoal-color-text-default);
1304
+ font-size: 16px;
1305
+ line-height: 24px;
1306
+ font-weight: bold;
1307
+ display: flow-root;
1308
+ }
1309
+
1310
+ .charcoal-modal-align {
1311
+ padding-left: 16px;
1312
+ padding-right: 16px;
1313
+ }
1314
+
1315
+ .charcoal-modal-body {
1316
+ padding-bottom: 40px;
1317
+ }
1318
+
1319
+ .charcoal-modal-buttons {
1320
+ display: grid;
1321
+ grid-auto-flow: row;
1322
+ grid-row-gap: 8px;
1323
+
1324
+ padding-top: 16px;
1325
+ padding-left: 16px;
1326
+ padding-right: 16px;
1327
+ }
1328
+ .charcoal-hint-text {
1329
+ background-color: var(--charcoal-color-container-secondary-default);
1330
+ border-radius: 8px;
1331
+ padding: 12px 16px;
1332
+ display: flex;
1333
+ align-items: flex-start;
1334
+ }
1335
+
1336
+ .charcoal-hint-text[data-context='page'] {
1337
+ justify-content: center;
1338
+ }
1339
+
1340
+ @media (min-width: 744px) {
1341
+
1342
+ .charcoal-hint-text[data-context='page'] {
1343
+ padding: 20px 40px
1344
+ }
1114
1345
  }
1115
1346
 
1116
- .charcoal-dropdown-selector-button[aria-invalid='true'],
1117
- .charcoal-dropdown-selector-button:not(:disabled)[aria-invalid='true']:focus:not(:focus-visible) {
1118
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
1347
+ .charcoal-hint-text-icon {
1348
+ display: flex;
1349
+ align-items: center;
1350
+ color: var(--charcoal-color-icon-tertiary-default);
1351
+ height: 22px;
1352
+ margin: 0 4px 0 0;
1353
+ }
1354
+
1355
+ .charcoal-hint-text-message {
1356
+ color: var(--charcoal-color-text-secondary-default);
1357
+ font-size: 14px;
1358
+ line-height: 22px;
1359
+ display: flow-root;
1360
+ margin: 0;
1361
+ min-width: 0;
1362
+ overflow-wrap: break-word;
1363
+ }
1364
+ .charcoal-pagination {
1365
+ display: flex;
1366
+ justify-content: center;
1367
+ align-items: center;
1368
+ }
1369
+
1370
+ .charcoal-pagination[data-size='S'] .charcoal-pagination-button {
1371
+ min-width: 32px;
1372
+ min-height: 32px;
1373
+ }
1374
+
1375
+ .charcoal-pagination[data-size='M'] .charcoal-pagination-button {
1376
+ min-width: 40px;
1377
+ min-height: 40px;
1378
+ }
1379
+
1380
+ /* stylelint-disable no-descending-specificity */
1381
+ .charcoal-pagination-button {
1382
+ cursor: pointer;
1383
+ -webkit-appearance: none;
1384
+ -moz-appearance: none;
1385
+ appearance: none;
1386
+ padding: 0;
1387
+ border-style: none;
1388
+ outline: none;
1389
+ text-decoration: none;
1390
+ font-family: inherit;
1391
+ font-style: inherit;
1392
+ font-variant: inherit;
1393
+ margin: 0;
1394
+ -webkit-user-select: none;
1395
+ -moz-user-select: none;
1396
+ user-select: none;
1397
+
1398
+ display: flex;
1399
+ align-items: center;
1400
+ justify-content: center;
1401
+ font-size: 14px;
1402
+ font-weight: 700;
1403
+ line-height: 22px;
1404
+
1405
+ /* HACK:
1406
+ * Safari doesn't correctly repaint the elements when they're reordered in response to interaction.
1407
+ * This forces it to repaint them. This doesn't work if put on the parents either, has to be here.
1408
+ */
1409
+ -webkit-transform: translateZ(0);
1410
+
1411
+ color: var(--charcoal-color-text-tertiary-default);
1412
+ background-color: transparent;
1413
+ border-radius: 20px;
1414
+ transition:
1415
+ 0.2s background-color,
1416
+ 0.2s box-shadow;
1417
+ }
1418
+ .charcoal-pagination-button:focus {
1419
+ outline: none;
1420
+ }
1421
+ .charcoal-pagination-button::-moz-focus-inner {
1422
+ border-style: none;
1423
+ padding: 0;
1424
+ }
1425
+ .charcoal-pagination-button[hidden] {
1426
+ visibility: hidden;
1427
+ display: block;
1428
+ }
1429
+ .charcoal-pagination-button:not(:disabled):not([aria-disabled]):hover,
1430
+ .charcoal-pagination-button[aria-disabled='false']:hover {
1431
+ color: var(--charcoal-color-text-tertiary-default);
1432
+ background-color: var(--charcoal-color-container-secondary-default);
1433
+ }
1434
+ .charcoal-pagination-button:not(:disabled):not([aria-disabled]):active,
1435
+ .charcoal-pagination-button[aria-disabled='false']:active {
1436
+ color: var(--charcoal-color-text-tertiary-press);
1437
+ background-color: var(--charcoal-color-container-tertiary-press);
1438
+ }
1439
+ .charcoal-pagination-button:not(:disabled):not([aria-disabled]):focus,
1440
+ .charcoal-pagination-button[aria-disabled='false']:focus {
1441
+ outline: none;
1442
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
1443
+ }
1444
+ .charcoal-pagination-button:not(:disabled):not([aria-disabled]):focus-visible,
1445
+ .charcoal-pagination-button[aria-disabled='false']:focus-visible {
1446
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
1447
+ }
1448
+ .charcoal-pagination-button:not(:disabled):not([aria-disabled]):focus:not(:focus-visible),
1449
+ .charcoal-pagination-button[aria-disabled='false']:focus:not(:focus-visible) {
1450
+ box-shadow: none;
1451
+ }
1452
+ .charcoal-pagination-button[aria-current] {
1453
+ cursor: default;
1454
+ background-color: var(--charcoal-color-container-hud-default);
1455
+ color: var(--charcoal-color-text-on-hud-default);
1119
1456
  }
1457
+ .charcoal-pagination-button[aria-current]:not(:disabled):not([aria-disabled]):hover,
1458
+ .charcoal-pagination-button[aria-current]:not(:disabled):not([aria-disabled]):active {
1459
+ background-color: var(--charcoal-color-container-hud-default);
1460
+ color: var(--charcoal-color-text-on-hud-default);
1461
+ }
1462
+ /* stylelint-enable no-descending-specificity */
1120
1463
 
1121
- .charcoal-ui-dropdown-selector-text {
1122
- text-align: left;
1123
- font-size: 14px;
1124
- line-height: 22px;
1125
- display: flow-root;
1126
- color: var(--charcoal-color-text-default);
1127
- overflow: hidden;
1128
- text-overflow: ellipsis;
1129
- white-space: nowrap;
1464
+ .charcoal-pagination-nav-button[data-hidden] {
1465
+ visibility: hidden;
1130
1466
  }
1131
1467
 
1132
- .charcoal-ui-dropdown-selector-text[data-placeholder='true'] {
1133
- color: var(--charcoal-color-text-placeholder-default);
1468
+ .charcoal-pagination-spacer,
1469
+ .charcoal-pagination-spacer:hover,
1470
+ .charcoal-pagination-spacer:active {
1471
+ cursor: default;
1472
+ color: var(--charcoal-color-text-tertiary-default);
1473
+ background: none;
1134
1474
  }
1135
1475
 
1136
- .charcoal-ui-dropdown-selector-icon {
1137
- color: var(--charcoal-color-icon-secondary-default);
1476
+ .charcoal-pagination-spacer.charcoal-icon-button:disabled {
1477
+ opacity: 1;
1478
+ }
1479
+ .charcoal-notification-region {
1480
+ left: 0;
1481
+ right: 0;
1482
+ box-sizing: border-box;
1483
+ position: absolute;
1484
+ width: 100%;
1485
+ height: 100%;
1486
+ display: flex;
1487
+ flex-direction: column;
1488
+ align-items: center;
1489
+ pointer-events: none;
1490
+ top: 0;
1138
1491
  }
1139
- .charcoal-switch__label {
1140
- display: inline-grid;
1141
- grid-template-columns: auto 1fr;
1492
+
1493
+ .charcoal-notification {
1494
+ box-sizing: border-box;
1495
+ border-radius: var(--charcoal-radius-oval);
1496
+ width: -moz-fit-content;
1497
+ width: fit-content;
1498
+ max-width: calc(100vw - var(--charcoal-space-46));
1499
+ display: flex;
1142
1500
  align-items: center;
1143
- cursor: pointer;
1144
- outline: 0;
1145
- gap: 4px;
1501
+ justify-content: center;
1502
+ gap: var(--charcoal-space-20);
1503
+ pointer-events: auto;
1146
1504
  }
1147
1505
 
1148
- .charcoal-switch__label[aria-disabled='true'] {
1149
- opacity: 0.32;
1150
- cursor: default;
1151
- }
1506
+ .charcoal-notification-content {
1507
+ display: flex;
1508
+ align-items: center;
1509
+ min-width: 0;
1510
+ }
1152
1511
 
1153
- .charcoal-switch__label[aria-disabled='true'] > input {
1154
- opacity: 1;
1155
- }
1512
+ .charcoal-notification-label {
1513
+ min-width: 0;
1514
+ overflow: hidden;
1515
+ overflow-wrap: break-word;
1516
+ display: -webkit-box;
1517
+ -webkit-box-orient: vertical;
1518
+ -webkit-line-clamp: 2;
1519
+ font-size: var(--charcoal-text-font-size-caption-m);
1520
+ font-weight: var(--charcoal-text-font-weight-bold);
1521
+ line-height: var(--charcoal-text-line-height-caption-m);
1522
+ }
1156
1523
 
1157
- .charcoal-switch__label_div {
1158
- font-size: 14px;
1159
- line-height: 22px;
1160
- color: var(--charcoal-color-text-default);
1524
+ @media (prefers-reduced-motion: reduce) {
1525
+ .charcoal-notification,
1526
+ .charcoal-notification[data-exiting='true'] {
1527
+ animation: none;
1528
+ }
1161
1529
  }
1162
- .charcoal-multi-select {
1163
- display: grid;
1164
- grid-template-columns: auto 1fr;
1165
- align-items: center;
1166
- position: relative;
1167
- cursor: pointer;
1168
- gap: 4px;
1530
+ .charcoal-notification-region {
1531
+ --charcoal-snackbar-offset: 16px;
1169
1532
  }
1170
1533
 
1171
- .charcoal-multi-select:disabled,
1172
- .charcoal-multi-select[aria-disabled]:not([aria-disabled='false']) {
1173
- opacity: 0.32;
1174
- cursor: default;
1534
+ .charcoal-snackbar-region[data-position='top'] {
1535
+ --charcoal-snackbar-enter-offset: calc(-1 * var(--charcoal-space-30));
1536
+
1537
+ position: sticky;
1538
+ top: calc(env(safe-area-inset-top, 0px) + var(--charcoal-snackbar-offset));
1175
1539
  }
1176
1540
 
1177
- .charcoal-multi-select-label {
1178
- display: flow-root;
1179
- align-items: center;
1180
- font-size: 14px;
1181
- line-height: 22px;
1541
+ .charcoal-snackbar-region[data-position='bottom'] {
1542
+ --charcoal-snackbar-enter-offset: var(--charcoal-space-30);
1543
+
1544
+ position: fixed;
1545
+ bottom: calc(
1546
+ env(safe-area-inset-bottom, 0px) + var(--charcoal-snackbar-offset)
1547
+ );
1548
+ }
1549
+
1550
+ .charcoal-snackbar {
1551
+ min-height: 44px;
1552
+ padding: var(--charcoal-space-25) var(--charcoal-space-40);
1553
+ background-color: var(--charcoal-color-container-default);
1182
1554
  color: var(--charcoal-color-text-default);
1555
+ border: var(--charcoal-border-width-m) solid
1556
+ var(--charcoal-color-border-secondary);
1557
+ animation: charcoal-snackbar-enter 0.3s ease-out both;
1183
1558
  }
1184
1559
 
1185
- .charcoal-multi-select-label::before {
1186
- display: block;
1187
- width: 0;
1188
- height: 0;
1189
- content: '';
1190
- margin-top: -4px;
1560
+ .charcoal-snackbar[data-exiting='true'] {
1561
+ animation: charcoal-snackbar-exit 0.3s ease-out both;
1191
1562
  }
1192
1563
 
1193
- .charcoal-multi-select-label::after {
1194
- display: block;
1195
- width: 0;
1196
- height: 0;
1197
- content: '';
1198
- margin-bottom: -4px;
1564
+ .charcoal-snackbar[data-with-action='true'] {
1565
+ min-height: 56px;
1566
+ padding: var(--charcoal-space-25) var(--charcoal-space-30)
1567
+ var(--charcoal-space-25) var(--charcoal-space-40);
1199
1568
  }
1200
1569
 
1201
- .charcoal-multi-select-input[type='checkbox'] {
1202
- -webkit-appearance: none;
1203
- -moz-appearance: none;
1204
- appearance: none;
1205
- display: block;
1206
- width: 20px;
1207
- height: 20px;
1208
- margin: 0;
1209
- background-color: var(--charcoal-color-container-neutral-default);
1210
- border-radius: 999999px;
1211
- transition:
1212
- 0.2s background-color,
1213
- 0.2s box-shadow;
1214
- }
1215
-
1216
- .charcoal-multi-select-input[type='checkbox']:checked {
1217
- background-color: var(--charcoal-color-container-primary-default);
1570
+ .charcoal-snackbar[data-dim='true'] {
1571
+ background-color: var(--charcoal-color-container-hud-default);
1572
+ color: var(--charcoal-color-text-on-hud-default);
1573
+ border-color: var(--charcoal-color-border-hud);
1218
1574
  }
1219
1575
 
1220
- .charcoal-multi-select-input[type='checkbox']:focus {
1221
- outline: none;
1222
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
1576
+ @keyframes charcoal-snackbar-enter {
1577
+ from {
1578
+ opacity: 0;
1579
+ transform: translateY(var(--charcoal-snackbar-enter-offset));
1223
1580
  }
1224
1581
 
1225
- .charcoal-multi-select-input[type='checkbox']:focus-visible {
1226
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
1582
+ to {
1583
+ opacity: 1;
1584
+ transform: translateY(0);
1227
1585
  }
1586
+ }
1228
1587
 
1229
- .charcoal-multi-select-input[type='checkbox']:focus:not(:focus-visible) {
1230
- box-shadow: none;
1588
+ @keyframes charcoal-snackbar-exit {
1589
+ from {
1590
+ opacity: 1;
1231
1591
  }
1232
1592
 
1233
- .charcoal-multi-select-input[type='checkbox']:hover:not(:disabled):not([aria-disabled]),
1234
- .charcoal-multi-select-input[type='checkbox']:hover[aria-disabled='false'] {
1235
- background-color: var(--charcoal-color-container-neutral-hover);
1593
+ to {
1594
+ opacity: 0;
1236
1595
  }
1596
+ }
1597
+ .charcoal-notification-region {
1598
+ --charcoal-toast-offset: 16px;
1599
+ }
1237
1600
 
1238
- .charcoal-multi-select-input[type='checkbox']:active:not(:disabled):not([aria-disabled]),
1239
- .charcoal-multi-select-input[type='checkbox']:active[aria-disabled='false'] {
1240
- background-color: var(--charcoal-color-container-neutral-press);
1241
- }
1601
+ .charcoal-toast-region[data-position='top'] {
1602
+ position: sticky;
1603
+ --charcoal-toast-enter-offset: calc(-1 * var(--charcoal-space-30));
1242
1604
 
1243
- .charcoal-multi-select-input[type='checkbox']:checked:hover:not(:disabled):not([aria-disabled]),
1244
- .charcoal-multi-select-input[type='checkbox']:checked:hover[aria-disabled='false'] {
1245
- background-color: var(--charcoal-color-container-primary-hover);
1605
+ top: calc(env(safe-area-inset-top, 0px) + var(--charcoal-toast-offset));
1246
1606
  }
1247
1607
 
1248
- .charcoal-multi-select-input[type='checkbox']:checked:active:not(:disabled):not([aria-disabled]),
1249
- .charcoal-multi-select-input[type='checkbox']:checked:active[aria-disabled='false'] {
1250
- background-color: var(--charcoal-color-container-primary-press);
1608
+ .charcoal-toast-region[data-position='bottom'] {
1609
+ position: fixed;
1610
+ --charcoal-toast-enter-offset: var(--charcoal-space-30);
1611
+
1612
+ bottom: calc(
1613
+ env(safe-area-inset-bottom, 0px) + var(--charcoal-toast-offset)
1614
+ );
1251
1615
  }
1252
1616
 
1253
- .charcoal-multi-select-input[type='checkbox'][aria-invalid='true'][data-overlay='false']:not(:disabled):not(
1254
- [aria-disabled]
1255
- ) {
1256
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
1617
+ .charcoal-toast {
1618
+ min-height: 40px;
1619
+ padding: var(--charcoal-space-20) var(--charcoal-space-40);
1620
+ color: var(--charcoal-color-text-on-positive-default);
1621
+ border: var(--charcoal-border-width-m) solid var(--charcoal-color-border-hud);
1622
+ animation: charcoal-toast-enter 0.3s ease-out both;
1623
+ }
1624
+
1625
+ .charcoal-toast[data-exiting='true'] {
1626
+ animation: charcoal-toast-exit 0.3s ease-out both;
1257
1627
  }
1258
1628
 
1259
- .charcoal-multi-select-input[type='checkbox'][aria-invalid='true'][data-overlay='false'][aria-disabled='false'] {
1260
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
1629
+ .charcoal-toast[data-type='success'] {
1630
+ background-color: var(--charcoal-color-container-positive-default);
1261
1631
  }
1262
1632
 
1263
- .charcoal-multi-select-input[type='checkbox'][data-overlay='true'] {
1264
- background-color: var(--charcoal-color-container-on-img-default);
1633
+ .charcoal-toast[data-type='error'] {
1634
+ background-color: var(--charcoal-color-container-negative-default);
1265
1635
  }
1266
1636
 
1267
- .charcoal-multi-select-overlay {
1268
- position: absolute;
1269
- top: -2px;
1270
- left: -2px;
1271
- box-sizing: border-box;
1272
- display: flex;
1273
- align-items: center;
1274
- justify-content: center;
1275
- width: 24px;
1276
- height: 24px;
1277
- border-radius: 999999px;
1278
- color: var(--charcoal-color-icon-on-primary-default);
1279
- transition: 0.2s box-shadow;
1280
- }
1637
+ @keyframes charcoal-toast-enter {
1638
+ from {
1639
+ opacity: 0;
1640
+ transform: translateY(var(--charcoal-toast-enter-offset));
1641
+ }
1281
1642
 
1282
- .charcoal-multi-select-overlay[aria-invalid='true'][data-overlay='true']:not(:disabled):not(
1283
- [aria-disabled]
1284
- ) {
1285
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
1643
+ to {
1644
+ opacity: 1;
1645
+ transform: translateY(0);
1286
1646
  }
1647
+ }
1287
1648
 
1288
- .charcoal-multi-select-overlay[aria-invalid='true'][data-overlay='true'][aria-disabled='false'] {
1289
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
1649
+ @keyframes charcoal-toast-exit {
1650
+ from {
1651
+ opacity: 1;
1290
1652
  }
1291
1653
 
1292
- .charcoal-multi-select-overlay[data-overlay='true'] {
1293
- border-color: var(--charcoal-color-border-hud);
1294
- border-width: 2px;
1295
- border-style: solid;
1654
+ to {
1655
+ opacity: 0;
1296
1656
  }
1657
+ }
1297
1658
  .charcoal-carousel {
1298
1659
  --charcoal-carousel-gap: 0px;
1299
1660
 
@@ -1538,448 +1899,215 @@
1538
1899
  .charcoal-carousel__indicator__item:hover {
1539
1900
  background-color: var(--charcoal-color-text-secondary-default);
1540
1901
  }
1541
-
1542
- .charcoal-carousel__indicator__item:focus-visible {
1543
- outline: 2px solid rgba(0, 150, 250, 0.56);
1544
- outline-offset: 2px;
1545
- }
1546
-
1547
- .charcoal-carousel__indicator__item[data-active='true'] {
1548
- background-color: var(--charcoal-color-text-default);
1549
- }
1550
-
1551
- /* ── CSS Scroll Markers (progressive enhancement) ── */
1552
-
1553
- /* CSS Scroll Markers / Anchor Positioning の擬似要素・擬似クラスは新しい仕様のため、
1554
- この @supports ブロックでは該当ルールを無効化する。 */
1555
- /* stylelint-disable selector-pseudo-class-no-unknown */
1556
- @supports (scroll-marker-group: after) {
1557
- .charcoal-carousel[data-indicator='true'] {
1558
- padding-bottom: 40px;
1559
- }
1560
-
1561
- .charcoal-carousel__scroller {
1562
- anchor-name: --charcoal-carousel;
1563
- scroll-marker-group: after;
1564
- }
1565
-
1566
- .charcoal-carousel__scroller::scroll-button(*) {
1567
- content: none;
1568
- }
1569
-
1570
- .charcoal-carousel__scroller::scroll-marker-group {
1571
- display: flex;
1572
- justify-content: center;
1573
- align-items: center;
1574
- height: 40px;
1575
- gap: 8px;
1576
-
1577
- position: absolute;
1578
- position-anchor: --charcoal-carousel;
1579
- top: anchor(bottom);
1580
- justify-self: anchor-center;
1581
- }
1582
-
1583
- .charcoal-carousel[data-indicator='false'] .charcoal-carousel__scroller {
1584
- scroll-marker-group: none;
1585
- }
1586
-
1587
- .charcoal-carousel__item::scroll-marker {
1588
- content: '';
1589
- width: 8px;
1590
- height: 8px;
1591
- border: 0;
1592
- border-radius: 50%;
1593
- background-color: var(--charcoal-color-text-tertiary-default);
1594
- cursor: pointer;
1595
- transition: 0.2s background-color;
1596
- }
1597
-
1598
- .charcoal-carousel__item::scroll-marker:hover {
1599
- background-color: var(--charcoal-color-text-secondary-default);
1600
- }
1601
-
1602
- .charcoal-carousel__item::scroll-marker:focus {
1603
- outline: 2px solid rgba(0, 150, 250, 0.56);
1604
- outline-offset: 2px;
1605
- }
1606
-
1607
- .charcoal-carousel__item::scroll-marker:target-current {
1608
- background-color: var(--charcoal-color-text-default);
1609
- }
1610
-
1611
- .charcoal-carousel__indicator {
1612
- display: none;
1613
- }
1614
- }
1615
- /* stylelint-enable selector-pseudo-class-no-unknown */
1616
- .charcoal-dropdown-selector-menu-item {
1617
- font-size: 14px;
1618
- line-height: 22px;
1619
- color: var(--charcoal-color-text-secondary-default);
1620
- padding: 9px 0;
1621
-
1622
- display: flex;
1623
- align-items: center;
1624
- width: 100%;
1625
- margin-left: 20px;
1626
- }
1627
-
1628
- .charcoal-dropdown-selector-menu-item[data-selected='true'] {
1629
- margin-left: 0px;
1630
- }
1631
-
1632
- .charcoal-dropdown-selector-menu-item-icon {
1633
- color: var(--charcoal-color-text-secondary-default);
1634
- padding-right: 4px;
1635
- }
1636
-
1637
- .charcoal-dropdown-selector-menu-item-container {
1638
- display: flex;
1639
- align-items: center;
1640
- }
1641
-
1642
- .charcoal-dropdown-selector-menu-secondary {
1643
- font-size: 12px;
1644
- line-height: 20px;
1645
- color: var(--charcoal-color-text-tertiary-default);
1646
- padding-bottom: 9px;
1647
-
1648
- display: flex;
1649
- align-items: center;
1650
- margin-left: 20px;
1651
- }
1652
-
1653
- .charcoal-dropdown-selector-menu-fullwidth {
1654
- width: 100%;
1655
- }
1656
- .charcoal-notification-region {
1657
- position: fixed;
1658
- left: 0;
1659
- right: 0;
1660
- display: grid;
1661
- justify-content: center;
1662
- pointer-events: none;
1663
- box-sizing: border-box;
1664
- }
1665
-
1666
- .charcoal-notification {
1667
- box-sizing: border-box;
1668
- border-radius: var(--charcoal-radius-oval);
1669
- width: -moz-fit-content;
1670
- width: fit-content;
1671
- max-width: calc(100vw - var(--charcoal-space-46));
1672
- display: flex;
1673
- align-items: center;
1674
- justify-content: center;
1675
- gap: var(--charcoal-space-20);
1676
- pointer-events: auto;
1677
- }
1678
-
1679
- .charcoal-notification-content {
1680
- display: flex;
1681
- align-items: center;
1682
- min-width: 0;
1683
- }
1684
-
1685
- .charcoal-notification-label {
1686
- min-width: 0;
1687
- overflow: hidden;
1688
- overflow-wrap: break-word;
1689
- display: -webkit-box;
1690
- -webkit-box-orient: vertical;
1691
- -webkit-line-clamp: 2;
1692
- font-size: var(--charcoal-text-font-size-caption-m);
1693
- font-weight: var(--charcoal-text-font-weight-bold);
1694
- line-height: var(--charcoal-text-line-height-caption-m);
1695
- }
1696
-
1697
- @media (prefers-reduced-motion: reduce) {
1698
- .charcoal-notification,
1699
- .charcoal-notification[data-exiting='true'] {
1700
- animation: none;
1701
- }
1702
- }
1703
- .charcoal-snackbar-region {
1704
- --charcoal-snackbar-offset: 16px;
1705
- }
1706
-
1707
- .charcoal-snackbar-region[data-position='top'] {
1708
- --charcoal-snackbar-enter-offset: calc(-1 * var(--charcoal-space-30));
1709
-
1710
- top: calc(
1711
- env(safe-area-inset-top, 0px) + max(var(--charcoal-snackbar-offset), 16px)
1712
- );
1713
- }
1714
-
1715
- .charcoal-snackbar-region[data-position='bottom'] {
1716
- --charcoal-snackbar-enter-offset: var(--charcoal-space-30);
1717
-
1718
- bottom: calc(
1719
- env(safe-area-inset-bottom, 0px) +
1720
- max(var(--charcoal-snackbar-offset), 16px)
1721
- );
1722
- }
1723
-
1724
- .charcoal-snackbar {
1725
- min-height: 44px;
1726
- padding: var(--charcoal-space-25) var(--charcoal-space-40);
1727
- background-color: var(--charcoal-color-container-default);
1728
- color: var(--charcoal-color-text-default);
1729
- border: var(--charcoal-border-width-m) solid
1730
- var(--charcoal-color-border-secondary);
1731
- animation: charcoal-snackbar-enter 0.3s ease-out both;
1732
- }
1733
-
1734
- .charcoal-snackbar[data-exiting='true'] {
1735
- animation: charcoal-snackbar-exit 0.3s ease-out both;
1736
- }
1737
-
1738
- .charcoal-snackbar[data-with-action='true'] {
1739
- min-height: 56px;
1740
- padding: var(--charcoal-space-25) var(--charcoal-space-30)
1741
- var(--charcoal-space-25) var(--charcoal-space-40);
1742
- }
1743
-
1744
- .charcoal-snackbar[data-dim='true'] {
1745
- background-color: var(--charcoal-color-container-hud-default);
1746
- color: var(--charcoal-color-text-on-hud-default);
1747
- border-color: var(--charcoal-color-border-hud);
1748
- }
1749
-
1750
- @keyframes charcoal-snackbar-enter {
1751
- from {
1752
- opacity: 0;
1753
- transform: translateY(var(--charcoal-snackbar-enter-offset));
1754
- }
1755
-
1756
- to {
1757
- opacity: 1;
1758
- transform: translateY(0);
1759
- }
1760
- }
1761
-
1762
- @keyframes charcoal-snackbar-exit {
1763
- from {
1764
- opacity: 1;
1765
- }
1766
-
1767
- to {
1768
- opacity: 0;
1769
- }
1770
- }
1771
- .charcoal-text-field-root {
1772
- display: grid;
1773
- grid-template-columns: 1fr;
1774
- grid-gap: 4px;
1775
- }
1776
-
1777
- .charcoal-text-field-root[aria-disabled='true'] {
1778
- opacity: 0.32;
1779
- }
1780
-
1781
- .charcoal-text-field-container {
1782
- display: flex;
1783
- height: 40px;
1784
- transition:
1785
- 0.2s background-color,
1786
- 0.2s box-shadow;
1787
- color: var(--charcoal-color-text-secondary-default);
1788
- background-color: var(--charcoal-color-container-secondary-default-a);
1789
- border-radius: 4px;
1790
- padding: 0 8px;
1791
- line-height: 22px;
1792
- font-size: 14px;
1793
- }
1794
-
1795
- .charcoal-text-field-container[data-invalid='true'] {
1796
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
1902
+
1903
+ .charcoal-carousel__indicator__item:focus-visible {
1904
+ outline: 2px solid rgba(0, 150, 250, 0.56);
1905
+ outline-offset: 2px;
1797
1906
  }
1798
1907
 
1799
- .charcoal-text-field-container:not([aria-disabled='true']):hover {
1800
- background-color: var(--charcoal-color-container-secondary-hover-a);
1908
+ .charcoal-carousel__indicator__item[data-active='true'] {
1909
+ background-color: var(--charcoal-color-text-default);
1801
1910
  }
1802
1911
 
1803
- .charcoal-text-field-container:not([aria-disabled='true']):focus-within {
1804
- outline: none;
1805
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
1912
+ /* ── CSS Scroll Markers (progressive enhancement) ── */
1913
+
1914
+ /* CSS Scroll Markers / Anchor Positioning の擬似要素・擬似クラスは新しい仕様のため、
1915
+ この @supports ブロックでは該当ルールを無効化する。 */
1916
+ /* stylelint-disable selector-pseudo-class-no-unknown */
1917
+ @supports (scroll-marker-group: after) {
1918
+ .charcoal-carousel[data-indicator='true'] {
1919
+ padding-bottom: 40px;
1806
1920
  }
1807
1921
 
1808
- .charcoal-text-field-container:not([aria-disabled='true'])[data-invalid='true']:focus-within {
1809
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
1922
+ .charcoal-carousel__scroller {
1923
+ anchor-name: --charcoal-carousel;
1924
+ scroll-marker-group: after;
1810
1925
  }
1811
1926
 
1812
- .charcoal-text-field-prefix {
1813
- display: flex;
1814
- align-items: center;
1815
- margin-right: 4px;
1816
- }
1927
+ .charcoal-carousel__scroller::scroll-button(*) {
1928
+ content: none;
1929
+ }
1817
1930
 
1818
- .charcoal-text-field-suffix {
1819
- display: flex;
1820
- align-items: center;
1821
- gap: 8px;
1822
- margin-left: 4px;
1823
- }
1931
+ .charcoal-carousel__scroller::scroll-marker-group {
1932
+ display: flex;
1933
+ justify-content: center;
1934
+ align-items: center;
1935
+ height: 40px;
1936
+ gap: 8px;
1824
1937
 
1825
- .charcoal-text-field-input-root {
1826
- flex: 1;
1827
- min-width: 0;
1828
- overflow: hidden;
1829
- }
1938
+ position: absolute;
1939
+ position-anchor: --charcoal-carousel;
1940
+ top: anchor(bottom);
1941
+ justify-self: anchor-center;
1942
+ }
1830
1943
 
1831
- .charcoal-text-field-input {
1832
- border: none;
1833
- box-sizing: border-box;
1834
- outline: none;
1835
- font-family: inherit;
1944
+ .charcoal-carousel[data-indicator='false'] .charcoal-carousel__scroller {
1945
+ scroll-marker-group: none;
1946
+ }
1836
1947
 
1837
- /* Prevent zooming for iOS Safari */
1838
- transform-origin: top left;
1839
- transform: scale(0.875);
1840
- width: calc(100% / 0.875);
1841
- height: calc(100% / 0.875);
1842
- font-size: calc(14px / 0.875);
1843
- line-height: calc(22px / 0.875);
1844
- padding-left: 0;
1845
- padding-right: 0;
1846
- border-radius: calc(4px / 0.875);
1948
+ .charcoal-carousel__item::scroll-marker {
1949
+ content: '';
1950
+ width: 8px;
1951
+ height: 8px;
1952
+ border: 0;
1953
+ border-radius: 50%;
1954
+ background-color: var(--charcoal-color-text-tertiary-default);
1955
+ cursor: pointer;
1956
+ transition: 0.2s background-color;
1957
+ }
1847
1958
 
1848
- /* Display box-shadow for iOS Safari */
1849
- -webkit-appearance: none;
1850
- -moz-appearance: none;
1851
- appearance: none;
1852
- background: transparent;
1959
+ .charcoal-carousel__item::scroll-marker:hover {
1960
+ background-color: var(--charcoal-color-text-secondary-default);
1961
+ }
1853
1962
 
1854
- color: var(--charcoal-color-text-secondary-default);
1855
- }
1963
+ .charcoal-carousel__item::scroll-marker:focus {
1964
+ outline: 2px solid rgba(0, 150, 250, 0.56);
1965
+ outline-offset: 2px;
1966
+ }
1856
1967
 
1857
- .charcoal-text-field-input::-moz-placeholder {
1858
- color: var(--charcoal-color-text-placeholder-default);
1859
- }
1968
+ .charcoal-carousel__item::scroll-marker:target-current {
1969
+ background-color: var(--charcoal-color-text-default);
1970
+ }
1860
1971
 
1861
- .charcoal-text-field-input::placeholder {
1862
- color: var(--charcoal-color-text-placeholder-default);
1972
+ .charcoal-carousel__indicator {
1973
+ display: none;
1863
1974
  }
1864
-
1865
- .charcoal-text-field-line-counter {
1975
+ }
1976
+ /* stylelint-enable selector-pseudo-class-no-unknown */
1977
+ .charcoal-text-field-assistive-text {
1978
+ font-size: 14px;
1866
1979
  line-height: 22px;
1980
+ margin: 0;
1981
+ color: var(--charcoal-color-text-secondary-default);
1982
+ }
1983
+
1984
+ .charcoal-text-field-assistive-text[data-invalid='true'] {
1985
+ color: var(--charcoal-color-text-negative-default);
1986
+ }
1987
+ .charcoal-field-label {
1867
1988
  font-size: 14px;
1868
- color: var(--charcoal-color-text-tertiary-default);
1989
+ line-height: 22px;
1990
+ font-weight: bold;
1991
+ display: flow-root;
1992
+ color: var(--charcoal-color-text-default-text1);
1869
1993
  }
1870
- .charcoal-icon {
1871
- display: inline-flex;
1872
- width: var(--charcoal-icon-size);
1873
- height: var(--charcoal-icon-size);
1994
+
1995
+ .charcoal-field-label-required-text {
1996
+ font-size: 14px;
1997
+ line-height: 22px;
1998
+ display: flow-root;
1999
+ color: var(--charcoal-color-text-secondary-default);
1874
2000
  }
1875
2001
 
1876
- pixiv-icon:not(:defined) {
1877
- --pixiv-icon-base: 24px;
1878
- --pixiv-icon-scale: 1;
1879
- --pixiv-icon-size: calc(var(--pixiv-icon-base) * var(--pixiv-icon-scale));
2002
+ .charcoal-field-label-sub-label {
2003
+ font-size: 14px;
2004
+ line-height: 22px;
2005
+ display: flow-root;
2006
+ color: var(--charcoal-color-text-tertiary-default);
2007
+ transition:
2008
+ 0.2s color,
2009
+ 0.2s box-shadow;
2010
+ }
1880
2011
 
2012
+ .charcoal-field-label-root {
1881
2013
  display: inline-flex;
1882
- /* --charcoal-icon-size がセットされていればそれを優先、
1883
- なければ name / scale から導出した --pixiv-icon-size をフォールバック */
1884
- width: var(--charcoal-icon-size, var(--pixiv-icon-size));
1885
- height: var(--charcoal-icon-size, var(--pixiv-icon-size));
2014
+ align-items: center;
1886
2015
  }
1887
2016
 
1888
- pixiv-icon:not(:defined)[name^='16/'] {
1889
- --pixiv-icon-base: 16px;
1890
- --pixiv-icon-size: 16px;
2017
+ .charcoal-field-label-root > .charcoal-field-label-required-text {
2018
+ margin-left: 4px;
1891
2019
  }
1892
2020
 
1893
- pixiv-icon:not(:defined)[name^='24/'][scale='2'] {
1894
- --pixiv-icon-scale: 2;
1895
- }
1896
-
1897
- pixiv-icon:not(:defined)[name^='24/'][scale='3'] {
1898
- --pixiv-icon-scale: 3;
1899
- }
1900
-
1901
- pixiv-icon:not(:defined)[name^='32/'] {
1902
- --pixiv-icon-base: 32px;
1903
- --pixiv-icon-size: 32px;
2021
+ .charcoal-field-label-root > .charcoal-field-label-sub-label {
2022
+ margin-left: auto;
1904
2023
  }
2024
+ .charcoal-radio-input {
2025
+ -webkit-appearance: none;
2026
+ -moz-appearance: none;
2027
+ appearance: none;
2028
+ display: block;
2029
+ box-sizing: border-box;
1905
2030
 
1906
- pixiv-icon:not(:defined)[name^='Inline/'] {
1907
- --pixiv-icon-base: 16px;
1908
- }
2031
+ margin: 0;
2032
+ padding: 6px;
1909
2033
 
1910
- pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
1911
- --pixiv-icon-scale: 2;
1912
- }
1913
- .charcoal-toast-region {
1914
- --charcoal-toast-offset: 16px;
2034
+ width: 20px;
2035
+ height: 20px;
2036
+ cursor: pointer;
2037
+ border-radius: 999999px;
2038
+ background-color: var(--charcoal-color-container-default);
2039
+ transition:
2040
+ 0.2s background-color,
2041
+ 0.2s box-shadow;
1915
2042
  }
1916
2043
 
1917
- .charcoal-toast-region[data-position='top'] {
1918
- --charcoal-toast-enter-offset: calc(-1 * var(--charcoal-space-30));
1919
-
1920
- top: calc(
1921
- env(safe-area-inset-top, 0px) + max(var(--charcoal-toast-offset), 16px)
1922
- );
1923
- }
2044
+ .charcoal-radio-input:checked {
2045
+ background-color: var(--charcoal-color-container-primary-default);
2046
+ }
1924
2047
 
1925
- .charcoal-toast-region[data-position='bottom'] {
1926
- --charcoal-toast-enter-offset: var(--charcoal-space-30);
2048
+ .charcoal-radio-input:checked::after {
2049
+ content: '';
2050
+ display: block;
2051
+ width: 8px;
2052
+ height: 8px;
2053
+ pointer-events: none;
2054
+ background-color: var(--charcoal-color-icon-on-primary-default);
2055
+ border-radius: 999999px;
2056
+ transition:
2057
+ 0.2s background-color,
2058
+ 0.2s box-shadow;
2059
+ }
1927
2060
 
1928
- bottom: calc(
1929
- env(safe-area-inset-bottom, 0px) + max(var(--charcoal-toast-offset), 16px)
1930
- );
1931
- }
2061
+ .charcoal-radio-input:not(:checked) {
2062
+ border-width: 2px;
2063
+ border-style: solid;
2064
+ border-color: var(--charcoal-color-border-default);
2065
+ }
1932
2066
 
1933
- .charcoal-toast {
1934
- min-height: 40px;
1935
- padding: var(--charcoal-space-20) var(--charcoal-space-40);
1936
- color: var(--charcoal-color-text-on-positive-default);
1937
- border: var(--charcoal-border-width-m) solid var(--charcoal-color-border-hud);
1938
- animation: charcoal-toast-enter 0.3s ease-out both;
2067
+ .charcoal-radio-input:disabled {
2068
+ cursor: default;
1939
2069
  }
1940
2070
 
1941
- .charcoal-toast[data-exiting='true'] {
1942
- animation: charcoal-toast-exit 0.3s ease-out both;
1943
- }
2071
+ .charcoal-radio-input:not(:disabled):hover {
2072
+ background-color: var(--charcoal-color-container-hover);
2073
+ }
1944
2074
 
1945
- .charcoal-toast[data-type='success'] {
1946
- background-color: var(--charcoal-color-container-positive-default);
1947
- }
2075
+ .charcoal-radio-input:not(:disabled):active {
2076
+ background-color: var(--charcoal-color-container-press);
2077
+ }
1948
2078
 
1949
- .charcoal-toast[data-type='error'] {
1950
- background-color: var(--charcoal-color-container-negative-default);
1951
- }
2079
+ .charcoal-radio-input:not(:disabled):focus {
2080
+ outline: none;
2081
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
2082
+ }
1952
2083
 
1953
- @keyframes charcoal-toast-enter {
1954
- from {
1955
- opacity: 0;
1956
- transform: translateY(var(--charcoal-toast-enter-offset));
1957
- }
2084
+ .charcoal-radio-input:not(:disabled):focus-visible {
2085
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
2086
+ }
1958
2087
 
1959
- to {
1960
- opacity: 1;
1961
- transform: translateY(0);
1962
- }
2088
+ .charcoal-radio-input:not(:disabled):focus:not(:focus-visible) {
2089
+ box-shadow: none;
1963
2090
  }
1964
2091
 
1965
- @keyframes charcoal-toast-exit {
1966
- from {
1967
- opacity: 1;
1968
- }
2092
+ .charcoal-radio-input:not(:disabled)[aria-invalid='true'],
2093
+ .charcoal-radio-input:not(:disabled)[aria-invalid='true']:focus {
2094
+ box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
2095
+ }
1969
2096
 
1970
- to {
1971
- opacity: 0;
1972
- }
2097
+ .charcoal-radio-input:checked:not(:disabled):hover {
2098
+ background-color: var(--charcoal-color-container-primary-hover);
1973
2099
  }
1974
- .charcoal-text-field-assistive-text {
1975
- font-size: 14px;
1976
- line-height: 22px;
1977
- margin: 0;
1978
- color: var(--charcoal-color-text-secondary-default);
2100
+
2101
+ .charcoal-radio-input:checked:not(:disabled):hover::after {
2102
+ background-color: var(--charcoal-color-icon-on-primary-hover);
1979
2103
  }
1980
2104
 
1981
- .charcoal-text-field-assistive-text[data-invalid='true'] {
1982
- color: var(--charcoal-color-text-negative-default);
2105
+ .charcoal-radio-input:checked:not(:disabled):active {
2106
+ background-color: var(--charcoal-color-container-primary-press);
2107
+ }
2108
+
2109
+ .charcoal-radio-input:checked:not(:disabled):active::after {
2110
+ background-color: var(--charcoal-color-icon-on-primary-press);
1983
2111
  }
1984
2112
  .charcoal-checkbox-input {
1985
2113
  -webkit-appearance: none;
@@ -2095,43 +2223,10 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
2095
2223
  border: 2px solid #fff;
2096
2224
  box-sizing: border-box;
2097
2225
  }
2098
- .charcoal-field-label {
2099
- font-size: 14px;
2100
- line-height: 22px;
2101
- font-weight: bold;
2102
- display: flow-root;
2103
- color: var(--charcoal-color-text-default-text1);
2104
- }
2105
-
2106
- .charcoal-field-label-required-text {
2107
- font-size: 14px;
2108
- line-height: 22px;
2109
- display: flow-root;
2110
- color: var(--charcoal-color-text-secondary-default);
2111
- }
2112
-
2113
- .charcoal-field-label-sub-label {
2114
- font-size: 14px;
2115
- line-height: 22px;
2116
- display: flow-root;
2117
- color: var(--charcoal-color-text-tertiary-default);
2118
- transition:
2119
- 0.2s color,
2120
- 0.2s box-shadow;
2121
- }
2122
-
2123
- .charcoal-field-label-root {
2124
- display: inline-flex;
2125
- align-items: center;
2226
+ .charcoal-menu-list {
2227
+ padding: 0;
2228
+ margin: 0;
2126
2229
  }
2127
-
2128
- .charcoal-field-label-root > .charcoal-field-label-required-text {
2129
- margin-left: 4px;
2130
- }
2131
-
2132
- .charcoal-field-label-root > .charcoal-field-label-sub-label {
2133
- margin-left: auto;
2134
- }
2135
2230
  .charcoal-list-item {
2136
2231
  list-style: none;
2137
2232
  display: flex;
@@ -2156,139 +2251,6 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
2156
2251
  opacity: 0.32;
2157
2252
  cursor: default;
2158
2253
  }
2159
- .charcoal-modal-dialog {
2160
- margin: auto;
2161
- position: relative;
2162
- height: -moz-fit-content;
2163
- height: fit-content;
2164
- width: 440px;
2165
-
2166
- background-color: var(--charcoal-color-container-default);
2167
- border-radius: 24px;
2168
- }
2169
-
2170
- .charcoal-modal-dialog[data-size='S'] {
2171
- width: 336px;
2172
- }
2173
-
2174
- .charcoal-modal-dialog[data-size='M'] {
2175
- width: 440px;
2176
- }
2177
-
2178
- .charcoal-modal-dialog[data-size='L'] {
2179
- width: 648px;
2180
- }
2181
-
2182
- @media (max-width: 743px) {
2183
- .charcoal-modal-dialog {
2184
- max-width: 440px;
2185
- width: calc(100% - 48px);
2186
- }
2187
-
2188
- .charcoal-modal-dialog[data-bottom-sheet='true'],
2189
- .charcoal-modal-dialog[data-bottom-sheet='full'] {
2190
- max-width: unset;
2191
- width: 100%;
2192
- border-radius: 0;
2193
- margin: auto 0 0 0;
2194
- }
2195
-
2196
- .charcoal-modal-dialog[data-bottom-sheet='full'] {
2197
- min-height: 100%;
2198
- }
2199
- }
2200
-
2201
- .charcoal-modal-dialog:focus {
2202
- outline: none;
2203
- }
2204
- .charcoal-radio-input {
2205
- -webkit-appearance: none;
2206
- -moz-appearance: none;
2207
- appearance: none;
2208
- display: block;
2209
- box-sizing: border-box;
2210
-
2211
- margin: 0;
2212
- padding: 6px;
2213
-
2214
- width: 20px;
2215
- height: 20px;
2216
- cursor: pointer;
2217
- border-radius: 999999px;
2218
- background-color: var(--charcoal-color-container-default);
2219
- transition:
2220
- 0.2s background-color,
2221
- 0.2s box-shadow;
2222
- }
2223
-
2224
- .charcoal-radio-input:checked {
2225
- background-color: var(--charcoal-color-container-primary-default);
2226
- }
2227
-
2228
- .charcoal-radio-input:checked::after {
2229
- content: '';
2230
- display: block;
2231
- width: 8px;
2232
- height: 8px;
2233
- pointer-events: none;
2234
- background-color: var(--charcoal-color-icon-on-primary-default);
2235
- border-radius: 999999px;
2236
- transition:
2237
- 0.2s background-color,
2238
- 0.2s box-shadow;
2239
- }
2240
-
2241
- .charcoal-radio-input:not(:checked) {
2242
- border-width: 2px;
2243
- border-style: solid;
2244
- border-color: var(--charcoal-color-border-default);
2245
- }
2246
-
2247
- .charcoal-radio-input:disabled {
2248
- cursor: default;
2249
- }
2250
-
2251
- .charcoal-radio-input:not(:disabled):hover {
2252
- background-color: var(--charcoal-color-container-hover);
2253
- }
2254
-
2255
- .charcoal-radio-input:not(:disabled):active {
2256
- background-color: var(--charcoal-color-container-press);
2257
- }
2258
-
2259
- .charcoal-radio-input:not(:disabled):focus {
2260
- outline: none;
2261
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
2262
- }
2263
-
2264
- .charcoal-radio-input:not(:disabled):focus-visible {
2265
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
2266
- }
2267
-
2268
- .charcoal-radio-input:not(:disabled):focus:not(:focus-visible) {
2269
- box-shadow: none;
2270
- }
2271
-
2272
- .charcoal-radio-input:not(:disabled)[aria-invalid='true'],
2273
- .charcoal-radio-input:not(:disabled)[aria-invalid='true']:focus {
2274
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
2275
- }
2276
-
2277
- .charcoal-radio-input:checked:not(:disabled):hover {
2278
- background-color: var(--charcoal-color-container-primary-hover);
2279
- }
2280
-
2281
- .charcoal-radio-input:checked:not(:disabled):hover::after {
2282
- background-color: var(--charcoal-color-icon-on-primary-hover);
2283
- }
2284
-
2285
- .charcoal-radio-input:checked:not(:disabled):active {
2286
- background-color: var(--charcoal-color-container-primary-press);
2287
- }
2288
-
2289
- .charcoal-radio-input:checked:not(:disabled):active::after {
2290
- background-color: var(--charcoal-color-icon-on-primary-press);
2291
- }
2292
2254
  .charcoal-switch-input {
2293
2255
  cursor: pointer;
2294
2256
  -webkit-appearance: none;
@@ -2373,9 +2335,50 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
2373
2335
  .charcoal-switch-input:not(:disabled):checked:active {
2374
2336
  background-color: var(--charcoal-color-container-primary-press);
2375
2337
  }
2376
- .charcoal-menu-list {
2377
- padding: 0;
2378
- margin: 0;
2338
+ .charcoal-modal-dialog {
2339
+ margin: auto;
2340
+ position: relative;
2341
+ height: -moz-fit-content;
2342
+ height: fit-content;
2343
+ width: 440px;
2344
+
2345
+ background-color: var(--charcoal-color-container-default);
2346
+ border-radius: 24px;
2347
+ }
2348
+
2349
+ .charcoal-modal-dialog[data-size='S'] {
2350
+ width: 336px;
2351
+ }
2352
+
2353
+ .charcoal-modal-dialog[data-size='M'] {
2354
+ width: 440px;
2355
+ }
2356
+
2357
+ .charcoal-modal-dialog[data-size='L'] {
2358
+ width: 648px;
2359
+ }
2360
+
2361
+ @media (max-width: 743px) {
2362
+ .charcoal-modal-dialog {
2363
+ max-width: 440px;
2364
+ width: calc(100% - 48px);
2365
+ }
2366
+
2367
+ .charcoal-modal-dialog[data-bottom-sheet='true'],
2368
+ .charcoal-modal-dialog[data-bottom-sheet='full'] {
2369
+ max-width: unset;
2370
+ width: 100%;
2371
+ border-radius: 0;
2372
+ margin: auto 0 0 0;
2373
+ }
2374
+
2375
+ .charcoal-modal-dialog[data-bottom-sheet='full'] {
2376
+ min-height: 100%;
2377
+ }
2378
+ }
2379
+
2380
+ .charcoal-modal-dialog:focus {
2381
+ outline: none;
2379
2382
  }
2380
2383
  .charcoal-popover {
2381
2384
  margin: 4px 0;