@charcoal-ui/react 6.1.0-beta.1 → 6.1.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/layered.css CHANGED
@@ -6,49 +6,6 @@
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-clickable {
10
- cursor: pointer;
11
-
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;
25
-
26
- /* Change the font styles in all browsers. */
27
- font: inherit;
28
-
29
- /* Remove the margin in Firefox and Safari. */
30
- margin: 0;
31
-
32
- /* Show the overflow in Edge. */
33
- overflow: visible;
34
-
35
- /* Remove the inheritance of text transform in Firefox. */
36
- text-transform: none;
37
- }
38
-
39
- .charcoal-clickable:disabled,
40
- .charcoal-clickable[aria-disabled]:not([aria-disabled='false']) {
41
- cursor: default;
42
- }
43
-
44
- .charcoal-clickable:focus {
45
- outline: none;
46
- }
47
-
48
- .charcoal-clickable::-moz-focus-inner {
49
- border-style: none;
50
- padding: 0;
51
- }
52
9
  .charcoal-button {
53
10
  -webkit-appearance: none;
54
11
  -moz-appearance: none;
@@ -199,6 +156,67 @@
199
156
  .charcoal-button[data-full-width='true'] {
200
157
  width: 100%;
201
158
  }
159
+ .charcoal-clickable {
160
+ cursor: pointer;
161
+
162
+ /* Reset button appearance */
163
+ -webkit-appearance: none;
164
+ -moz-appearance: none;
165
+ appearance: none;
166
+ background: transparent;
167
+ padding: 0;
168
+ border-style: none;
169
+ outline: none;
170
+ color: inherit;
171
+ text-rendering: inherit;
172
+ letter-spacing: inherit;
173
+ word-spacing: inherit;
174
+ text-decoration: none;
175
+
176
+ /* Change the font styles in all browsers. */
177
+ font: inherit;
178
+
179
+ /* Remove the margin in Firefox and Safari. */
180
+ margin: 0;
181
+
182
+ /* Show the overflow in Edge. */
183
+ overflow: visible;
184
+
185
+ /* Remove the inheritance of text transform in Firefox. */
186
+ text-transform: none;
187
+ }
188
+
189
+ .charcoal-clickable:disabled,
190
+ .charcoal-clickable[aria-disabled]:not([aria-disabled='false']) {
191
+ cursor: default;
192
+ }
193
+
194
+ .charcoal-clickable:focus {
195
+ outline: none;
196
+ }
197
+
198
+ .charcoal-clickable::-moz-focus-inner {
199
+ border-style: none;
200
+ padding: 0;
201
+ }
202
+ .charcoal-radio__label {
203
+ display: grid;
204
+ grid-template-columns: auto 1fr;
205
+ grid-gap: 4px;
206
+ align-items: center;
207
+ cursor: pointer;
208
+ }
209
+
210
+ .charcoal-radio__label[aria-disabled]:not([aria-disabled='false']) {
211
+ opacity: 0.32;
212
+ cursor: default;
213
+ }
214
+
215
+ .charcoal-radio__label_div {
216
+ font-size: 14px;
217
+ line-height: 22px;
218
+ color: var(--charcoal-color-text-default);
219
+ }
202
220
  .charcoal-icon-button {
203
221
  cursor: pointer;
204
222
  -webkit-appearance: none;
@@ -323,52 +341,11 @@
323
341
  .charcoal-icon-button[aria-disabled='false']:focus:not(:focus-visible) {
324
342
  box-shadow: none;
325
343
  }
326
- .charcoal-radio__label {
327
- display: grid;
328
- grid-template-columns: auto 1fr;
329
- grid-gap: 4px;
330
- align-items: center;
331
- cursor: pointer;
332
- }
333
-
334
- .charcoal-radio__label[aria-disabled]:not([aria-disabled='false']) {
335
- opacity: 0.32;
336
- cursor: default;
337
- }
338
-
339
- .charcoal-radio__label_div {
340
- font-size: 14px;
341
- line-height: 22px;
342
- color: var(--charcoal-color-text-default);
343
- }
344
344
  .charcoal-radio-group {
345
345
  display: grid;
346
346
  grid-template-columns: 1fr;
347
347
  grid-gap: 8px;
348
348
  }
349
- .charcoal-switch__label {
350
- display: inline-grid;
351
- grid-template-columns: auto 1fr;
352
- align-items: center;
353
- cursor: pointer;
354
- outline: 0;
355
- gap: 4px;
356
- }
357
-
358
- .charcoal-switch__label[aria-disabled='true'] {
359
- opacity: 0.32;
360
- cursor: default;
361
- }
362
-
363
- .charcoal-switch__label[aria-disabled='true'] > input {
364
- opacity: 1;
365
- }
366
-
367
- .charcoal-switch__label_div {
368
- font-size: 14px;
369
- line-height: 22px;
370
- color: var(--charcoal-color-text-default);
371
- }
372
349
  .charcoal-multi-select {
373
350
  display: grid;
374
351
  grid-template-columns: auto 1fr;
@@ -504,6 +481,29 @@
504
481
  border-width: 2px;
505
482
  border-style: solid;
506
483
  }
484
+ .charcoal-switch__label {
485
+ display: inline-grid;
486
+ grid-template-columns: auto 1fr;
487
+ align-items: center;
488
+ cursor: pointer;
489
+ outline: 0;
490
+ gap: 4px;
491
+ }
492
+
493
+ .charcoal-switch__label[aria-disabled='true'] {
494
+ opacity: 0.32;
495
+ cursor: default;
496
+ }
497
+
498
+ .charcoal-switch__label[aria-disabled='true'] > input {
499
+ opacity: 1;
500
+ }
501
+
502
+ .charcoal-switch__label_div {
503
+ font-size: 14px;
504
+ line-height: 22px;
505
+ color: var(--charcoal-color-text-default);
506
+ }
507
507
  .charcoal-text-field-root {
508
508
  display: grid;
509
509
  grid-template-columns: 1fr;
@@ -603,49 +603,6 @@
603
603
  font-size: 14px;
604
604
  color: var(--charcoal-color-text-tertiary-default);
605
605
  }
606
- .charcoal-icon {
607
- display: inline-flex;
608
- width: var(--charcoal-icon-size);
609
- height: var(--charcoal-icon-size);
610
- }
611
-
612
- pixiv-icon:not(:defined) {
613
- --pixiv-icon-base: 24px;
614
- --pixiv-icon-scale: 1;
615
- --pixiv-icon-size: calc(var(--pixiv-icon-base) * var(--pixiv-icon-scale));
616
-
617
- display: inline-flex;
618
- /* --charcoal-icon-size がセットされていればそれを優先、
619
- なければ name / scale から導出した --pixiv-icon-size をフォールバック */
620
- width: var(--charcoal-icon-size, var(--pixiv-icon-size));
621
- height: var(--charcoal-icon-size, var(--pixiv-icon-size));
622
- }
623
-
624
- pixiv-icon:not(:defined)[name^='16/'] {
625
- --pixiv-icon-base: 16px;
626
- --pixiv-icon-size: 16px;
627
- }
628
-
629
- pixiv-icon:not(:defined)[name^='24/'][scale='2'] {
630
- --pixiv-icon-scale: 2;
631
- }
632
-
633
- pixiv-icon:not(:defined)[name^='24/'][scale='3'] {
634
- --pixiv-icon-scale: 3;
635
- }
636
-
637
- pixiv-icon:not(:defined)[name^='32/'] {
638
- --pixiv-icon-base: 32px;
639
- --pixiv-icon-size: 32px;
640
- }
641
-
642
- pixiv-icon:not(:defined)[name^='Inline/'] {
643
- --pixiv-icon-base: 16px;
644
- }
645
-
646
- pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
647
- --pixiv-icon-scale: 2;
648
- }
649
606
  .charcoal-text-area-root {
650
607
  display: grid;
651
608
  grid-template-columns: 1fr;
@@ -758,6 +715,49 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
758
715
  font-size: 14px;
759
716
  color: var(--charcoal-color-text-tertiary-default);
760
717
  }
718
+ .charcoal-icon {
719
+ display: inline-flex;
720
+ width: var(--charcoal-icon-size);
721
+ height: var(--charcoal-icon-size);
722
+ }
723
+
724
+ pixiv-icon:not(:defined) {
725
+ --pixiv-icon-base: 24px;
726
+ --pixiv-icon-scale: 1;
727
+ --pixiv-icon-size: calc(var(--pixiv-icon-base) * var(--pixiv-icon-scale));
728
+
729
+ display: inline-flex;
730
+ /* --charcoal-icon-size がセットされていればそれを優先、
731
+ なければ name / scale から導出した --pixiv-icon-size をフォールバック */
732
+ width: var(--charcoal-icon-size, var(--pixiv-icon-size));
733
+ height: var(--charcoal-icon-size, var(--pixiv-icon-size));
734
+ }
735
+
736
+ pixiv-icon:not(:defined)[name^='16/'] {
737
+ --pixiv-icon-base: 16px;
738
+ --pixiv-icon-size: 16px;
739
+ }
740
+
741
+ pixiv-icon:not(:defined)[name^='24/'][scale='2'] {
742
+ --pixiv-icon-scale: 2;
743
+ }
744
+
745
+ pixiv-icon:not(:defined)[name^='24/'][scale='3'] {
746
+ --pixiv-icon-scale: 3;
747
+ }
748
+
749
+ pixiv-icon:not(:defined)[name^='32/'] {
750
+ --pixiv-icon-base: 32px;
751
+ --pixiv-icon-size: 32px;
752
+ }
753
+
754
+ pixiv-icon:not(:defined)[name^='Inline/'] {
755
+ --pixiv-icon-base: 16px;
756
+ }
757
+
758
+ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
759
+ --pixiv-icon-scale: 2;
760
+ }
761
761
  .charcoal-modal-background {
762
762
  overflow: auto;
763
763
  display: flex;
@@ -871,8 +871,48 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
871
871
  .charcoal-loading-spinner-icon[data-once='true'] {
872
872
  animation-iteration-count: 1;
873
873
  }
874
- .charcoal-dropdown-selector-root {
875
- display: grid;
874
+ .charcoal-modal-header-root {
875
+ height: 64px;
876
+ display: grid;
877
+ align-content: center;
878
+ justify-content: center;
879
+ }
880
+
881
+ @media (max-width: 743px) {
882
+ .charcoal-modal-header-root[data-bottom-sheet='true'],
883
+ .charcoal-modal-header-root[data-bottom-sheet='full'] {
884
+ height: 48px;
885
+ }
886
+ }
887
+
888
+ .charcoal-modal-header-title {
889
+ color: var(--charcoal-color-text-default);
890
+ font-size: 16px;
891
+ line-height: 24px;
892
+ font-weight: bold;
893
+ display: flow-root;
894
+ }
895
+
896
+ .charcoal-modal-align {
897
+ padding-left: 16px;
898
+ padding-right: 16px;
899
+ }
900
+
901
+ .charcoal-modal-body {
902
+ padding-bottom: 40px;
903
+ }
904
+
905
+ .charcoal-modal-buttons {
906
+ display: grid;
907
+ grid-auto-flow: row;
908
+ grid-row-gap: 8px;
909
+
910
+ padding-top: 16px;
911
+ padding-left: 16px;
912
+ padding-right: 16px;
913
+ }
914
+ .charcoal-dropdown-selector-root {
915
+ display: grid;
876
916
  grid-template-columns: 1fr;
877
917
  grid-gap: 4px;
878
918
  width: 100%;
@@ -955,67 +995,24 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
955
995
  .charcoal-ui-dropdown-selector-icon {
956
996
  color: var(--charcoal-color-icon-secondary-default);
957
997
  }
958
- .charcoal-modal-header-root {
959
- height: 64px;
960
- display: grid;
961
- align-content: center;
962
- justify-content: center;
963
- }
964
-
965
- @media (max-width: 743px) {
966
- .charcoal-modal-header-root[data-bottom-sheet='true'],
967
- .charcoal-modal-header-root[data-bottom-sheet='full'] {
968
- height: 48px;
969
- }
998
+ .charcoal-menu-item-group {
999
+ display: block;
970
1000
  }
971
1001
 
972
- .charcoal-modal-header-title {
973
- color: var(--charcoal-color-text-default);
974
- font-size: 16px;
975
- line-height: 24px;
1002
+ .charcoal-menu-item-group > span {
1003
+ display: block;
1004
+ color: var(--charcoal-color-text-tertiary-default);
1005
+ font-size: 12px;
976
1006
  font-weight: bold;
977
- display: flow-root;
978
- }
979
-
980
- .charcoal-modal-align {
981
- padding-left: 16px;
982
- padding-right: 16px;
983
- }
984
-
985
- .charcoal-modal-body {
986
- padding-bottom: 40px;
987
- }
988
-
989
- .charcoal-modal-buttons {
990
- display: grid;
991
- grid-auto-flow: row;
992
- grid-row-gap: 8px;
993
-
994
- padding-top: 16px;
995
- padding-left: 16px;
996
- padding-right: 16px;
997
- }
998
- .charcoal-checkbox__label {
999
- position: relative;
1000
- cursor: pointer;
1001
- display: flex;
1002
- gap: 4px;
1007
+ padding: 12px 0 8px 16px;
1003
1008
  }
1004
1009
 
1005
- .charcoal-checkbox__label[aria-disabled='true'] {
1006
- cursor: default;
1007
- opacity: 0.32;
1008
- }
1009
-
1010
- .charcoal-checkbox__label[aria-disabled='true'] > input {
1011
- opacity: 1;
1012
- }
1013
-
1014
- .charcoal-checkbox__label_div {
1015
- flex: 1;
1016
- color: var(--charcoal-color-text-default);
1017
- font-size: 14px;
1018
- line-height: 20px;
1010
+ .charcoal-menu-item-group > ul {
1011
+ padding-left: 0;
1012
+ margin: 0;
1013
+ box-sizing: border-box;
1014
+ list-style: none;
1015
+ overflow: hidden;
1019
1016
  }
1020
1017
  .charcoal-dropdown-selector-menu-item {
1021
1018
  font-size: 14px;
@@ -1057,30 +1054,135 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
1057
1054
  .charcoal-dropdown-selector-menu-fullwidth {
1058
1055
  width: 100%;
1059
1056
  }
1060
- .charcoal-text-ellipsis {
1061
- /* Runtime variables overridden by the React component. */
1062
- --charcoal-text-ellipsis-line-limit: 1;
1063
- --charcoal-text-ellipsis-line-height: inherit;
1057
+ .charcoal-segmented-control {
1058
+ display: inline-flex;
1059
+ align-items: center;
1064
1060
 
1065
- overflow: hidden;
1066
- overflow-wrap: break-word;
1067
- display: -webkit-box;
1068
- -webkit-box-orient: vertical;
1069
- -webkit-line-clamp: var(--charcoal-text-ellipsis-line-limit);
1061
+ background-color: var(--charcoal-color-container-secondary-default-a);
1062
+ border-radius: 16px;
1070
1063
  }
1071
1064
 
1072
- .charcoal-text-ellipsis[data-has-line-height='true'] {
1073
- line-height: var(--charcoal-text-ellipsis-line-height);
1065
+ .charcoal-segmented-control[data-uniform-segment-width='true'],
1066
+ .charcoal-segmented-control[data-full-width='true'] {
1067
+ display: inline-grid;
1068
+ grid-auto-columns: minmax(80px, 1fr);
1069
+ grid-auto-rows: 32px;
1070
+ grid-auto-flow: column;
1074
1071
  }
1075
1072
 
1076
- .charcoal-text-ellipsis[data-has-line-height='false'] {
1077
- line-height: inherit;
1073
+ .charcoal-segmented-control[data-full-width='true'] {
1074
+ width: 100%;
1078
1075
  }
1079
1076
 
1080
- .charcoal-text-ellipsis[data-line-limit='1'][data-use-nowrap='true'] {
1081
- text-overflow: ellipsis;
1077
+ .charcoal-segmented-control-radio__label {
1078
+ position: relative;
1079
+ display: flex;
1080
+ align-items: center;
1081
+ justify-content: center;
1082
+ cursor: pointer;
1083
+ height: 32px;
1084
+
1085
+ padding-right: 16px;
1086
+ padding-left: 16px;
1087
+ border-radius: 16px;
1088
+ color: var(--charcoal-color-text-secondary-default);
1089
+
1090
+ font-size: 14px;
1091
+ line-height: 22px;
1092
+ }
1093
+
1094
+ .charcoal-segmented-control-radio__label[aria-disabled]:not([aria-disabled='false']) {
1095
+ cursor: default;
1096
+ opacity: 0.32;
1097
+ }
1098
+
1099
+ .charcoal-segmented-control-radio__label[data-checked='true'] {
1100
+ background-color: var(--charcoal-color-container-primary-default);
1101
+ color: var(--charcoal-color-text-on-primary-default);
1102
+ }
1103
+
1104
+ .charcoal-segmented-control-radio__label[data-uniform-segment-width='true'],
1105
+ .charcoal-segmented-control-radio__label[data-full-width='true'] {
1106
+ justify-content: center;
1082
1107
  white-space: nowrap;
1083
1108
  }
1109
+
1110
+ .charcoal-segmented-control-radio__input {
1111
+ position: absolute;
1112
+
1113
+ height: 0px;
1114
+ width: 0px;
1115
+ padding: 0;
1116
+ margin: 0;
1117
+
1118
+ -webkit-appearance: none;
1119
+
1120
+ -moz-appearance: none;
1121
+
1122
+ appearance: none;
1123
+ box-sizing: border-box;
1124
+ overflow: hidden;
1125
+ white-space: nowrap;
1126
+ opacity: 0;
1127
+ }
1128
+ .charcoal-hint-text {
1129
+ background-color: var(--charcoal-color-container-secondary-default);
1130
+ border-radius: 8px;
1131
+ padding: 12px 16px;
1132
+ display: flex;
1133
+ align-items: flex-start;
1134
+ }
1135
+
1136
+ .charcoal-hint-text[data-context='page'] {
1137
+ justify-content: center;
1138
+ }
1139
+
1140
+ @media (min-width: 744px) {
1141
+
1142
+ .charcoal-hint-text[data-context='page'] {
1143
+ padding: 20px 40px
1144
+ }
1145
+ }
1146
+
1147
+ .charcoal-hint-text-icon {
1148
+ display: flex;
1149
+ align-items: center;
1150
+ color: var(--charcoal-color-icon-tertiary-default);
1151
+ height: 22px;
1152
+ margin: 0 4px 0 0;
1153
+ }
1154
+
1155
+ .charcoal-hint-text-message {
1156
+ color: var(--charcoal-color-text-secondary-default);
1157
+ font-size: 14px;
1158
+ line-height: 22px;
1159
+ display: flow-root;
1160
+ margin: 0;
1161
+ min-width: 0;
1162
+ overflow-wrap: break-word;
1163
+ }
1164
+ .charcoal-checkbox__label {
1165
+ position: relative;
1166
+ cursor: pointer;
1167
+ display: flex;
1168
+ gap: 4px;
1169
+ }
1170
+
1171
+ .charcoal-checkbox__label[aria-disabled='true'] {
1172
+ cursor: default;
1173
+ opacity: 0.32;
1174
+ }
1175
+
1176
+ .charcoal-checkbox__label[aria-disabled='true'] > input {
1177
+ opacity: 1;
1178
+ }
1179
+
1180
+ .charcoal-checkbox__label_div {
1181
+ flex: 1;
1182
+ color: var(--charcoal-color-text-default);
1183
+ font-size: 14px;
1184
+ line-height: 20px;
1185
+ }
1084
1186
  .charcoal-tag-item {
1085
1187
  --charcoal-tag-item-color: var(--charcoal-color-text-on-primary-default);
1086
1188
  --charcoal-tag-item-size: 40px;
@@ -1235,25 +1337,30 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
1235
1337
  .charcoal-tag-item__labe__text[data-has-translate='true']::after {
1236
1338
  display: none;
1237
1339
  }
1238
- .charcoal-menu-item-group {
1239
- display: block;
1240
- }
1340
+ .charcoal-text-ellipsis {
1341
+ /* Runtime variables overridden by the React component. */
1342
+ --charcoal-text-ellipsis-line-limit: 1;
1343
+ --charcoal-text-ellipsis-line-height: inherit;
1241
1344
 
1242
- .charcoal-menu-item-group > span {
1243
- display: block;
1244
- color: var(--charcoal-color-text-tertiary-default);
1245
- font-size: 12px;
1246
- font-weight: bold;
1247
- padding: 12px 0 8px 16px;
1248
- }
1249
-
1250
- .charcoal-menu-item-group > ul {
1251
- padding-left: 0;
1252
- margin: 0;
1253
- box-sizing: border-box;
1254
- list-style: none;
1255
1345
  overflow: hidden;
1346
+ overflow-wrap: break-word;
1347
+ display: -webkit-box;
1348
+ -webkit-box-orient: vertical;
1349
+ -webkit-line-clamp: var(--charcoal-text-ellipsis-line-limit);
1256
1350
  }
1351
+
1352
+ .charcoal-text-ellipsis[data-has-line-height='true'] {
1353
+ line-height: var(--charcoal-text-ellipsis-line-height);
1354
+ }
1355
+
1356
+ .charcoal-text-ellipsis[data-has-line-height='false'] {
1357
+ line-height: inherit;
1358
+ }
1359
+
1360
+ .charcoal-text-ellipsis[data-line-limit='1'][data-use-nowrap='true'] {
1361
+ text-overflow: ellipsis;
1362
+ white-space: nowrap;
1363
+ }
1257
1364
  .charcoal-notification-region {
1258
1365
  position: fixed;
1259
1366
  left: 0;
@@ -1369,103 +1476,6 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
1369
1476
  opacity: 0;
1370
1477
  }
1371
1478
  }
1372
- .charcoal-hint-text {
1373
- background-color: var(--charcoal-color-container-secondary-default);
1374
- border-radius: 8px;
1375
- padding: 12px 16px;
1376
- display: flex;
1377
- align-items: flex-start;
1378
- }
1379
-
1380
- .charcoal-hint-text[data-context='page'] {
1381
- justify-content: center;
1382
- }
1383
-
1384
- @media (min-width: 744px) {
1385
-
1386
- .charcoal-hint-text[data-context='page'] {
1387
- padding: 20px 40px
1388
- }
1389
- }
1390
-
1391
- .charcoal-hint-text-icon {
1392
- display: flex;
1393
- align-items: center;
1394
- color: var(--charcoal-color-icon-tertiary-default);
1395
- height: 22px;
1396
- margin: 0 4px 0 0;
1397
- }
1398
-
1399
- .charcoal-hint-text-message {
1400
- color: var(--charcoal-color-text-secondary-default);
1401
- font-size: 14px;
1402
- line-height: 22px;
1403
- display: flow-root;
1404
- margin: 0;
1405
- min-width: 0;
1406
- overflow-wrap: break-word;
1407
- }
1408
- .charcoal-toast-region {
1409
- --charcoal-toast-offset: 16px;
1410
- }
1411
-
1412
- .charcoal-toast-region[data-position='top'] {
1413
- --charcoal-toast-enter-offset: calc(-1 * var(--charcoal-space-30));
1414
-
1415
- top: calc(
1416
- env(safe-area-inset-top, 0px) + max(var(--charcoal-toast-offset), 16px)
1417
- );
1418
- }
1419
-
1420
- .charcoal-toast-region[data-position='bottom'] {
1421
- --charcoal-toast-enter-offset: var(--charcoal-space-30);
1422
-
1423
- bottom: calc(
1424
- env(safe-area-inset-bottom, 0px) + max(var(--charcoal-toast-offset), 16px)
1425
- );
1426
- }
1427
-
1428
- .charcoal-toast {
1429
- min-height: 40px;
1430
- padding: var(--charcoal-space-20) var(--charcoal-space-40);
1431
- color: var(--charcoal-color-text-on-positive-default);
1432
- border: var(--charcoal-border-width-m) solid var(--charcoal-color-border-hud);
1433
- animation: charcoal-toast-enter 0.3s ease-out both;
1434
- }
1435
-
1436
- .charcoal-toast[data-exiting='true'] {
1437
- animation: charcoal-toast-exit 0.3s ease-out both;
1438
- }
1439
-
1440
- .charcoal-toast[data-type='success'] {
1441
- background-color: var(--charcoal-color-container-positive-default);
1442
- }
1443
-
1444
- .charcoal-toast[data-type='error'] {
1445
- background-color: var(--charcoal-color-container-negative-default);
1446
- }
1447
-
1448
- @keyframes charcoal-toast-enter {
1449
- from {
1450
- opacity: 0;
1451
- transform: translateY(var(--charcoal-toast-enter-offset));
1452
- }
1453
-
1454
- to {
1455
- opacity: 1;
1456
- transform: translateY(0);
1457
- }
1458
- }
1459
-
1460
- @keyframes charcoal-toast-exit {
1461
- from {
1462
- opacity: 1;
1463
- }
1464
-
1465
- to {
1466
- opacity: 0;
1467
- }
1468
- }
1469
1479
  .charcoal-carousel {
1470
1480
  --charcoal-carousel-gap: 0px;
1471
1481
 
@@ -1785,77 +1795,6 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
1785
1795
  }
1786
1796
  }
1787
1797
  /* stylelint-enable property-no-unknown, selector-pseudo-element-no-unknown, selector-pseudo-class-no-unknown */
1788
- .charcoal-segmented-control {
1789
- display: inline-flex;
1790
- align-items: center;
1791
-
1792
- background-color: var(--charcoal-color-container-secondary-default-a);
1793
- border-radius: 16px;
1794
- }
1795
-
1796
- .charcoal-segmented-control[data-uniform-segment-width='true'],
1797
- .charcoal-segmented-control[data-full-width='true'] {
1798
- display: inline-grid;
1799
- grid-auto-columns: minmax(80px, 1fr);
1800
- grid-auto-rows: 32px;
1801
- grid-auto-flow: column;
1802
- }
1803
-
1804
- .charcoal-segmented-control[data-full-width='true'] {
1805
- width: 100%;
1806
- }
1807
-
1808
- .charcoal-segmented-control-radio__label {
1809
- position: relative;
1810
- display: flex;
1811
- align-items: center;
1812
- justify-content: center;
1813
- cursor: pointer;
1814
- height: 32px;
1815
-
1816
- padding-right: 16px;
1817
- padding-left: 16px;
1818
- border-radius: 16px;
1819
- color: var(--charcoal-color-text-secondary-default);
1820
-
1821
- font-size: 14px;
1822
- line-height: 22px;
1823
- }
1824
-
1825
- .charcoal-segmented-control-radio__label[aria-disabled]:not([aria-disabled='false']) {
1826
- cursor: default;
1827
- opacity: 0.32;
1828
- }
1829
-
1830
- .charcoal-segmented-control-radio__label[data-checked='true'] {
1831
- background-color: var(--charcoal-color-container-primary-default);
1832
- color: var(--charcoal-color-text-on-primary-default);
1833
- }
1834
-
1835
- .charcoal-segmented-control-radio__label[data-uniform-segment-width='true'],
1836
- .charcoal-segmented-control-radio__label[data-full-width='true'] {
1837
- justify-content: center;
1838
- white-space: nowrap;
1839
- }
1840
-
1841
- .charcoal-segmented-control-radio__input {
1842
- position: absolute;
1843
-
1844
- height: 0px;
1845
- width: 0px;
1846
- padding: 0;
1847
- margin: 0;
1848
-
1849
- -webkit-appearance: none;
1850
-
1851
- -moz-appearance: none;
1852
-
1853
- appearance: none;
1854
- box-sizing: border-box;
1855
- overflow: hidden;
1856
- white-space: nowrap;
1857
- opacity: 0;
1858
- }
1859
1798
  .charcoal-pagination {
1860
1799
  display: flex;
1861
1800
  justify-content: center;
@@ -1972,103 +1911,76 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
1972
1911
  .charcoal-pagination-spacer.charcoal-icon-button:disabled {
1973
1912
  opacity: 1;
1974
1913
  }
1975
- .charcoal-text-field-assistive-text {
1976
- font-size: 14px;
1977
- line-height: 22px;
1978
- margin: 0;
1979
- color: var(--charcoal-color-text-secondary-default);
1980
- }
1981
-
1982
- .charcoal-text-field-assistive-text[data-invalid='true'] {
1983
- color: var(--charcoal-color-text-negative-default);
1984
- }
1985
- .charcoal-radio-input {
1986
- -webkit-appearance: none;
1987
- -moz-appearance: none;
1988
- appearance: none;
1989
- display: block;
1990
- box-sizing: border-box;
1991
-
1992
- margin: 0;
1993
- padding: 6px;
1994
-
1995
- width: 20px;
1996
- height: 20px;
1997
- cursor: pointer;
1998
- border-radius: 999999px;
1999
- background-color: var(--charcoal-color-container-default);
2000
- transition:
2001
- 0.2s background-color,
2002
- 0.2s box-shadow;
1914
+ .charcoal-toast-region {
1915
+ --charcoal-toast-offset: 16px;
2003
1916
  }
2004
1917
 
2005
- .charcoal-radio-input:checked {
2006
- background-color: var(--charcoal-color-container-primary-default);
2007
- }
1918
+ .charcoal-toast-region[data-position='top'] {
1919
+ --charcoal-toast-enter-offset: calc(-1 * var(--charcoal-space-30));
2008
1920
 
2009
- .charcoal-radio-input:checked::after {
2010
- content: '';
2011
- display: block;
2012
- width: 8px;
2013
- height: 8px;
2014
- pointer-events: none;
2015
- background-color: var(--charcoal-color-icon-on-primary-default);
2016
- border-radius: 999999px;
2017
- transition:
2018
- 0.2s background-color,
2019
- 0.2s box-shadow;
2020
- }
1921
+ top: calc(
1922
+ env(safe-area-inset-top, 0px) + max(var(--charcoal-toast-offset), 16px)
1923
+ );
1924
+ }
2021
1925
 
2022
- .charcoal-radio-input:not(:checked) {
2023
- border-width: 2px;
2024
- border-style: solid;
2025
- border-color: var(--charcoal-color-border-default);
2026
- }
1926
+ .charcoal-toast-region[data-position='bottom'] {
1927
+ --charcoal-toast-enter-offset: var(--charcoal-space-30);
2027
1928
 
2028
- .charcoal-radio-input:disabled {
2029
- cursor: default;
2030
- }
1929
+ bottom: calc(
1930
+ env(safe-area-inset-bottom, 0px) + max(var(--charcoal-toast-offset), 16px)
1931
+ );
1932
+ }
2031
1933
 
2032
- .charcoal-radio-input:not(:disabled):hover {
2033
- background-color: var(--charcoal-color-container-hover);
1934
+ .charcoal-toast {
1935
+ min-height: 40px;
1936
+ padding: var(--charcoal-space-20) var(--charcoal-space-40);
1937
+ color: var(--charcoal-color-text-on-positive-default);
1938
+ border: var(--charcoal-border-width-m) solid var(--charcoal-color-border-hud);
1939
+ animation: charcoal-toast-enter 0.3s ease-out both;
2034
1940
  }
2035
1941
 
2036
- .charcoal-radio-input:not(:disabled):active {
2037
- background-color: var(--charcoal-color-container-press);
2038
- }
1942
+ .charcoal-toast[data-exiting='true'] {
1943
+ animation: charcoal-toast-exit 0.3s ease-out both;
1944
+ }
2039
1945
 
2040
- .charcoal-radio-input:not(:disabled):focus {
2041
- outline: none;
2042
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
2043
- }
1946
+ .charcoal-toast[data-type='success'] {
1947
+ background-color: var(--charcoal-color-container-positive-default);
1948
+ }
2044
1949
 
2045
- .charcoal-radio-input:not(:disabled):focus-visible {
2046
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
2047
- }
1950
+ .charcoal-toast[data-type='error'] {
1951
+ background-color: var(--charcoal-color-container-negative-default);
1952
+ }
2048
1953
 
2049
- .charcoal-radio-input:not(:disabled):focus:not(:focus-visible) {
2050
- box-shadow: none;
2051
- }
1954
+ @keyframes charcoal-toast-enter {
1955
+ from {
1956
+ opacity: 0;
1957
+ transform: translateY(var(--charcoal-toast-enter-offset));
1958
+ }
2052
1959
 
2053
- .charcoal-radio-input:not(:disabled)[aria-invalid='true'],
2054
- .charcoal-radio-input:not(:disabled)[aria-invalid='true']:focus {
2055
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
1960
+ to {
1961
+ opacity: 1;
1962
+ transform: translateY(0);
1963
+ }
2056
1964
  }
2057
1965
 
2058
- .charcoal-radio-input:checked:not(:disabled):hover {
2059
- background-color: var(--charcoal-color-container-primary-hover);
2060
- }
1966
+ @keyframes charcoal-toast-exit {
1967
+ from {
1968
+ opacity: 1;
1969
+ }
2061
1970
 
2062
- .charcoal-radio-input:checked:not(:disabled):hover::after {
2063
- background-color: var(--charcoal-color-icon-on-primary-hover);
1971
+ to {
1972
+ opacity: 0;
1973
+ }
2064
1974
  }
2065
-
2066
- .charcoal-radio-input:checked:not(:disabled):active {
2067
- background-color: var(--charcoal-color-container-primary-press);
1975
+ .charcoal-text-field-assistive-text {
1976
+ font-size: 14px;
1977
+ line-height: 22px;
1978
+ margin: 0;
1979
+ color: var(--charcoal-color-text-secondary-default);
2068
1980
  }
2069
1981
 
2070
- .charcoal-radio-input:checked:not(:disabled):active::after {
2071
- background-color: var(--charcoal-color-icon-on-primary-press);
1982
+ .charcoal-text-field-assistive-text[data-invalid='true'] {
1983
+ color: var(--charcoal-color-text-negative-default);
2072
1984
  }
2073
1985
  .charcoal-switch-input {
2074
1986
  cursor: pointer;
@@ -2154,6 +2066,94 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
2154
2066
  .charcoal-switch-input:not(:disabled):checked:active {
2155
2067
  background-color: var(--charcoal-color-container-primary-press);
2156
2068
  }
2069
+ .charcoal-radio-input {
2070
+ -webkit-appearance: none;
2071
+ -moz-appearance: none;
2072
+ appearance: none;
2073
+ display: block;
2074
+ box-sizing: border-box;
2075
+
2076
+ margin: 0;
2077
+ padding: 6px;
2078
+
2079
+ width: 20px;
2080
+ height: 20px;
2081
+ cursor: pointer;
2082
+ border-radius: 999999px;
2083
+ background-color: var(--charcoal-color-container-default);
2084
+ transition:
2085
+ 0.2s background-color,
2086
+ 0.2s box-shadow;
2087
+ }
2088
+
2089
+ .charcoal-radio-input:checked {
2090
+ background-color: var(--charcoal-color-container-primary-default);
2091
+ }
2092
+
2093
+ .charcoal-radio-input:checked::after {
2094
+ content: '';
2095
+ display: block;
2096
+ width: 8px;
2097
+ height: 8px;
2098
+ pointer-events: none;
2099
+ background-color: var(--charcoal-color-icon-on-primary-default);
2100
+ border-radius: 999999px;
2101
+ transition:
2102
+ 0.2s background-color,
2103
+ 0.2s box-shadow;
2104
+ }
2105
+
2106
+ .charcoal-radio-input:not(:checked) {
2107
+ border-width: 2px;
2108
+ border-style: solid;
2109
+ border-color: var(--charcoal-color-border-default);
2110
+ }
2111
+
2112
+ .charcoal-radio-input:disabled {
2113
+ cursor: default;
2114
+ }
2115
+
2116
+ .charcoal-radio-input:not(:disabled):hover {
2117
+ background-color: var(--charcoal-color-container-hover);
2118
+ }
2119
+
2120
+ .charcoal-radio-input:not(:disabled):active {
2121
+ background-color: var(--charcoal-color-container-press);
2122
+ }
2123
+
2124
+ .charcoal-radio-input:not(:disabled):focus {
2125
+ outline: none;
2126
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
2127
+ }
2128
+
2129
+ .charcoal-radio-input:not(:disabled):focus-visible {
2130
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
2131
+ }
2132
+
2133
+ .charcoal-radio-input:not(:disabled):focus:not(:focus-visible) {
2134
+ box-shadow: none;
2135
+ }
2136
+
2137
+ .charcoal-radio-input:not(:disabled)[aria-invalid='true'],
2138
+ .charcoal-radio-input:not(:disabled)[aria-invalid='true']:focus {
2139
+ box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
2140
+ }
2141
+
2142
+ .charcoal-radio-input:checked:not(:disabled):hover {
2143
+ background-color: var(--charcoal-color-container-primary-hover);
2144
+ }
2145
+
2146
+ .charcoal-radio-input:checked:not(:disabled):hover::after {
2147
+ background-color: var(--charcoal-color-icon-on-primary-hover);
2148
+ }
2149
+
2150
+ .charcoal-radio-input:checked:not(:disabled):active {
2151
+ background-color: var(--charcoal-color-container-primary-press);
2152
+ }
2153
+
2154
+ .charcoal-radio-input:checked:not(:disabled):active::after {
2155
+ background-color: var(--charcoal-color-icon-on-primary-press);
2156
+ }
2157
2157
  .charcoal-field-label {
2158
2158
  font-size: 14px;
2159
2159
  line-height: 22px;
@@ -2191,6 +2191,30 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
2191
2191
  .charcoal-field-label-root > .charcoal-field-label-sub-label {
2192
2192
  margin-left: auto;
2193
2193
  }
2194
+ .charcoal-list-item {
2195
+ list-style: none;
2196
+ display: flex;
2197
+ align-items: center;
2198
+ min-height: 40px;
2199
+ cursor: pointer;
2200
+ outline: none;
2201
+
2202
+ padding-right: 16px;
2203
+ padding-left: 16px;
2204
+
2205
+ transition: background-color 0.2s;
2206
+ }
2207
+
2208
+ .charcoal-list-item:not([aria-disabled='true']):hover,
2209
+ .charcoal-list-item:not([aria-disabled='true']):focus,
2210
+ .charcoal-list-item:not([aria-disabled='true']):focus-within {
2211
+ background-color: var(--charcoal-color-container-secondary-default);
2212
+ }
2213
+
2214
+ .charcoal-list-item[aria-disabled='true'] {
2215
+ opacity: 0.32;
2216
+ cursor: default;
2217
+ }
2194
2218
  .charcoal-modal-dialog {
2195
2219
  margin: auto;
2196
2220
  position: relative;
@@ -2240,30 +2264,6 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
2240
2264
  padding: 0;
2241
2265
  margin: 0;
2242
2266
  }
2243
- .charcoal-list-item {
2244
- list-style: none;
2245
- display: flex;
2246
- align-items: center;
2247
- min-height: 40px;
2248
- cursor: pointer;
2249
- outline: none;
2250
-
2251
- padding-right: 16px;
2252
- padding-left: 16px;
2253
-
2254
- transition: background-color 0.2s;
2255
- }
2256
-
2257
- .charcoal-list-item:not([aria-disabled='true']):hover,
2258
- .charcoal-list-item:not([aria-disabled='true']):focus,
2259
- .charcoal-list-item:not([aria-disabled='true']):focus-within {
2260
- background-color: var(--charcoal-color-container-secondary-default);
2261
- }
2262
-
2263
- .charcoal-list-item[aria-disabled='true'] {
2264
- opacity: 0.32;
2265
- cursor: default;
2266
- }
2267
2267
  .charcoal-checkbox-input {
2268
2268
  -webkit-appearance: none;
2269
2269
  -moz-appearance: none;