@svton/taro-ui 1.1.4 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.css CHANGED
@@ -679,3 +679,2020 @@
679
679
  .svton-empty-state__action {
680
680
  margin-top: 16px;
681
681
  }
682
+
683
+ /* src/components/Popup/index.scss */
684
+ .svton-popup__wrapper {
685
+ position: fixed;
686
+ top: 0;
687
+ left: 0;
688
+ right: 0;
689
+ bottom: 0;
690
+ pointer-events: auto;
691
+ }
692
+ .svton-popup__overlay {
693
+ position: absolute;
694
+ top: 0;
695
+ left: 0;
696
+ right: 0;
697
+ bottom: 0;
698
+ background-color: rgba(0, 0, 0, 0.5);
699
+ transition: opacity 300ms cubic-bezier(0.4, 0, 0.2, 1);
700
+ }
701
+ .svton-popup__overlay--visible {
702
+ opacity: 1;
703
+ }
704
+ .svton-popup__overlay--hidden {
705
+ opacity: 0;
706
+ }
707
+ .svton-popup {
708
+ position: absolute;
709
+ background-color: #ffffff;
710
+ transition: transform 300ms cubic-bezier(0.4, 0, 0.2, 1), opacity 300ms cubic-bezier(0.4, 0, 0.2, 1);
711
+ overflow: hidden;
712
+ max-height: 100%;
713
+ max-width: 100%;
714
+ }
715
+ .svton-popup--bottom {
716
+ bottom: 0;
717
+ left: 0;
718
+ right: 0;
719
+ width: 100%;
720
+ }
721
+ .svton-popup--bottom.svton-popup--visible {
722
+ transform: translateY(0);
723
+ }
724
+ .svton-popup--bottom.svton-popup--hidden {
725
+ transform: translateY(100%);
726
+ }
727
+ .svton-popup--bottom.svton-popup--round {
728
+ border-radius: 32rpx 32rpx 0 0;
729
+ }
730
+ .svton-popup--top {
731
+ top: 0;
732
+ left: 0;
733
+ right: 0;
734
+ width: 100%;
735
+ }
736
+ .svton-popup--top.svton-popup--visible {
737
+ transform: translateY(0);
738
+ }
739
+ .svton-popup--top.svton-popup--hidden {
740
+ transform: translateY(-100%);
741
+ }
742
+ .svton-popup--top.svton-popup--round {
743
+ border-radius: 0 0 32rpx 32rpx;
744
+ }
745
+ .svton-popup--left {
746
+ top: 0;
747
+ bottom: 0;
748
+ left: 0;
749
+ height: 100%;
750
+ }
751
+ .svton-popup--left.svton-popup--visible {
752
+ transform: translateX(0);
753
+ }
754
+ .svton-popup--left.svton-popup--hidden {
755
+ transform: translateX(-100%);
756
+ }
757
+ .svton-popup--left.svton-popup--round {
758
+ border-radius: 0 32rpx 32rpx 0;
759
+ }
760
+ .svton-popup--right {
761
+ top: 0;
762
+ bottom: 0;
763
+ right: 0;
764
+ height: 100%;
765
+ }
766
+ .svton-popup--right.svton-popup--visible {
767
+ transform: translateX(0);
768
+ }
769
+ .svton-popup--right.svton-popup--hidden {
770
+ transform: translateX(100%);
771
+ }
772
+ .svton-popup--right.svton-popup--round {
773
+ border-radius: 32rpx 0 0 32rpx;
774
+ }
775
+ .svton-popup--center {
776
+ top: 50%;
777
+ left: 50%;
778
+ transform: translate(-50%, -50%);
779
+ border-radius: 32rpx;
780
+ }
781
+ .svton-popup--center.svton-popup--visible {
782
+ opacity: 1;
783
+ transform: translate(-50%, -50%) scale(1);
784
+ }
785
+ .svton-popup--center.svton-popup--hidden {
786
+ opacity: 0;
787
+ transform: translate(-50%, -50%) scale(0.9);
788
+ }
789
+ .svton-popup--safe-bottom {
790
+ padding-bottom: constant(safe-area-inset-bottom);
791
+ padding-bottom: env(safe-area-inset-bottom);
792
+ }
793
+ .svton-popup--safe-top {
794
+ padding-top: constant(safe-area-inset-top);
795
+ padding-top: env(safe-area-inset-top);
796
+ }
797
+
798
+ /* src/components/Modal/index.scss */
799
+ .svton-modal {
800
+ width: 560rpx;
801
+ background-color: #ffffff;
802
+ border-radius: 32rpx;
803
+ overflow: hidden;
804
+ }
805
+ .svton-modal__header {
806
+ padding: 32rpx 32rpx 16rpx;
807
+ text-align: center;
808
+ }
809
+ .svton-modal__title {
810
+ font-size: 30rpx;
811
+ font-weight: 600;
812
+ color: #1a1a1a;
813
+ line-height: 1.3;
814
+ }
815
+ .svton-modal__content {
816
+ padding: 16rpx 32rpx 32rpx;
817
+ text-align: center;
818
+ font-size: 26rpx;
819
+ color: #666666;
820
+ line-height: 1.6;
821
+ max-height: 60vh;
822
+ overflow-y: auto;
823
+ }
824
+ .svton-modal__footer {
825
+ display: flex;
826
+ border-top: 1rpx solid #f0f0f0;
827
+ }
828
+ .svton-modal__footer--vertical {
829
+ flex-direction: column;
830
+ }
831
+ .svton-modal__footer--vertical .svton-modal__btn {
832
+ border-right: none;
833
+ border-bottom: 1rpx solid #f0f0f0;
834
+ }
835
+ .svton-modal__footer--vertical .svton-modal__btn:last-child {
836
+ border-bottom: none;
837
+ }
838
+ .svton-modal__btn {
839
+ flex: 1;
840
+ display: flex;
841
+ align-items: center;
842
+ justify-content: center;
843
+ height: 100rpx;
844
+ font-size: 28rpx;
845
+ background-color: transparent;
846
+ border: none;
847
+ border-right: 1rpx solid #f0f0f0;
848
+ }
849
+ .svton-modal__btn:last-child {
850
+ border-right: none;
851
+ }
852
+ .svton-modal__btn:active {
853
+ background-color: #f5f5f5;
854
+ }
855
+ .svton-modal__btn--cancel {
856
+ color: #666666;
857
+ }
858
+ .svton-modal__btn--confirm {
859
+ color: #1890ff;
860
+ font-weight: 500;
861
+ }
862
+ .svton-modal__btn--danger {
863
+ color: #ff4d4f;
864
+ }
865
+ .svton-modal__btn--disabled {
866
+ color: #cccccc;
867
+ pointer-events: none;
868
+ }
869
+ .svton-modal--no-title .svton-modal__content {
870
+ padding-top: 32rpx;
871
+ }
872
+ .svton-modal__close {
873
+ position: absolute;
874
+ top: 16rpx;
875
+ right: 16rpx;
876
+ width: 48rpx;
877
+ height: 48rpx;
878
+ display: flex;
879
+ align-items: center;
880
+ justify-content: center;
881
+ color: #8a8a8a;
882
+ font-size: 36rpx;
883
+ }
884
+ .svton-modal__close:active {
885
+ opacity: 0.7;
886
+ }
887
+
888
+ /* src/components/ActionSheet/index.scss */
889
+ .svton-action-sheet {
890
+ background-color: #f5f5f5;
891
+ }
892
+ .svton-action-sheet__header {
893
+ padding: 32rpx 32rpx 24rpx;
894
+ text-align: center;
895
+ background-color: #ffffff;
896
+ border-bottom: 1rpx solid #f0f0f0;
897
+ }
898
+ .svton-action-sheet__title {
899
+ display: block;
900
+ font-size: 28rpx;
901
+ font-weight: 500;
902
+ color: #1a1a1a;
903
+ line-height: 1.3;
904
+ }
905
+ .svton-action-sheet__desc {
906
+ display: block;
907
+ margin-top: 8rpx;
908
+ font-size: 24rpx;
909
+ color: #8a8a8a;
910
+ line-height: 1.6;
911
+ }
912
+ .svton-action-sheet__content {
913
+ background-color: #ffffff;
914
+ }
915
+ .svton-action-sheet__item {
916
+ display: flex;
917
+ flex-direction: column;
918
+ align-items: center;
919
+ justify-content: center;
920
+ min-height: 112rpx;
921
+ padding: 24rpx 32rpx;
922
+ background-color: #ffffff;
923
+ border-bottom: 1rpx solid #f0f0f0;
924
+ }
925
+ .svton-action-sheet__item:last-child {
926
+ border-bottom: none;
927
+ }
928
+ .svton-action-sheet__item:active {
929
+ background-color: #f5f5f5;
930
+ }
931
+ .svton-action-sheet__item--danger .svton-action-sheet__item-text {
932
+ color: #ff4d4f;
933
+ }
934
+ .svton-action-sheet__item--disabled {
935
+ pointer-events: none;
936
+ }
937
+ .svton-action-sheet__item--disabled .svton-action-sheet__item-text {
938
+ color: #cccccc;
939
+ }
940
+ .svton-action-sheet__item--disabled .svton-action-sheet__item-desc {
941
+ color: #cccccc;
942
+ }
943
+ .svton-action-sheet__item-text {
944
+ font-size: 28rpx;
945
+ color: #1a1a1a;
946
+ line-height: 1.3;
947
+ }
948
+ .svton-action-sheet__item-desc {
949
+ margin-top: 8rpx;
950
+ font-size: 24rpx;
951
+ color: #8a8a8a;
952
+ line-height: 1.5;
953
+ }
954
+ .svton-action-sheet__gap {
955
+ height: 16rpx;
956
+ background-color: #f5f5f5;
957
+ }
958
+ .svton-action-sheet__cancel {
959
+ display: flex;
960
+ align-items: center;
961
+ justify-content: center;
962
+ height: 112rpx;
963
+ background-color: #ffffff;
964
+ font-size: 28rpx;
965
+ color: #666666;
966
+ }
967
+ .svton-action-sheet__cancel:active {
968
+ background-color: #f5f5f5;
969
+ }
970
+
971
+ /* src/components/Toast/index.scss */
972
+ .svton-toast {
973
+ position: fixed;
974
+ top: 0;
975
+ left: 0;
976
+ right: 0;
977
+ bottom: 0;
978
+ display: flex;
979
+ align-items: center;
980
+ justify-content: center;
981
+ pointer-events: none;
982
+ z-index: 2000;
983
+ }
984
+ .svton-toast__content {
985
+ display: flex;
986
+ flex-direction: column;
987
+ align-items: center;
988
+ justify-content: center;
989
+ min-width: 200rpx;
990
+ max-width: 70%;
991
+ padding: 32rpx 48rpx;
992
+ background-color: rgba(0, 0, 0, 0.75);
993
+ border-radius: 24rpx;
994
+ pointer-events: auto;
995
+ transition: opacity 200ms cubic-bezier(0.4, 0, 0.2, 1), transform 200ms cubic-bezier(0.4, 0, 0.2, 1);
996
+ }
997
+ .svton-toast__content--visible {
998
+ opacity: 1;
999
+ transform: scale(1);
1000
+ }
1001
+ .svton-toast__content--hidden {
1002
+ opacity: 0;
1003
+ transform: scale(0.9);
1004
+ }
1005
+ .svton-toast__content--top {
1006
+ position: absolute;
1007
+ top: 20%;
1008
+ }
1009
+ .svton-toast__content--center {
1010
+ position: absolute;
1011
+ top: 50%;
1012
+ transform: translateY(-50%);
1013
+ }
1014
+ .svton-toast__content--center.svton-toast__content--visible {
1015
+ transform: translateY(-50%) scale(1);
1016
+ }
1017
+ .svton-toast__content--center.svton-toast__content--hidden {
1018
+ transform: translateY(-50%) scale(0.9);
1019
+ }
1020
+ .svton-toast__content--bottom {
1021
+ position: absolute;
1022
+ bottom: 20%;
1023
+ }
1024
+ .svton-toast__icon {
1025
+ margin-bottom: 16rpx;
1026
+ font-size: 80rpx;
1027
+ line-height: 1;
1028
+ }
1029
+ .svton-toast__icon--success {
1030
+ color: #52c41a;
1031
+ }
1032
+ .svton-toast__icon--error {
1033
+ color: #ff4d4f;
1034
+ }
1035
+ .svton-toast__icon--warning {
1036
+ color: #ffa940;
1037
+ }
1038
+ .svton-toast__icon--loading {
1039
+ color: #ffffff;
1040
+ animation: svton-toast-spin 1s linear infinite;
1041
+ }
1042
+ .svton-toast__text {
1043
+ font-size: 26rpx;
1044
+ color: #ffffff;
1045
+ line-height: 1.6;
1046
+ text-align: center;
1047
+ word-break: break-all;
1048
+ }
1049
+ .svton-toast--text-only .svton-toast__content {
1050
+ min-width: 0;
1051
+ padding: 24rpx 32rpx;
1052
+ }
1053
+ @keyframes svton-toast-spin {
1054
+ from {
1055
+ transform: rotate(0deg);
1056
+ }
1057
+ to {
1058
+ transform: rotate(360deg);
1059
+ }
1060
+ }
1061
+
1062
+ /* src/components/Input/index.scss */
1063
+ .svton-input {
1064
+ display: flex;
1065
+ align-items: center;
1066
+ width: 100%;
1067
+ min-height: 80rpx;
1068
+ padding: 0 24rpx;
1069
+ background-color: #ffffff;
1070
+ border: 1rpx solid #e8e8e8;
1071
+ border-radius: 12rpx;
1072
+ box-sizing: border-box;
1073
+ transition: border-color 200ms cubic-bezier(0.4, 0, 0.2, 1);
1074
+ }
1075
+ .svton-input:focus-within {
1076
+ border-color: #1890ff;
1077
+ }
1078
+ .svton-input--borderless {
1079
+ border: none;
1080
+ background-color: transparent;
1081
+ padding: 0;
1082
+ }
1083
+ .svton-input--filled {
1084
+ border: none;
1085
+ background-color: #f5f5f5;
1086
+ }
1087
+ .svton-input--disabled {
1088
+ background-color: #f5f5f5;
1089
+ pointer-events: none;
1090
+ }
1091
+ .svton-input--disabled .svton-input__inner {
1092
+ color: #cccccc;
1093
+ }
1094
+ .svton-input--error {
1095
+ border-color: #ff4d4f;
1096
+ }
1097
+ .svton-input--error:focus-within {
1098
+ border-color: #ff4d4f;
1099
+ }
1100
+ .svton-input__prefix {
1101
+ flex-shrink: 0;
1102
+ margin-right: 16rpx;
1103
+ color: #8a8a8a;
1104
+ font-size: 26rpx;
1105
+ }
1106
+ .svton-input__inner {
1107
+ flex: 1;
1108
+ width: 100%;
1109
+ height: 100%;
1110
+ min-height: 80rpx;
1111
+ padding: 20rpx 0;
1112
+ font-size: 26rpx;
1113
+ color: #1a1a1a;
1114
+ background-color: transparent;
1115
+ border: none;
1116
+ outline: none;
1117
+ box-sizing: border-box;
1118
+ }
1119
+ .svton-input__inner::-moz-placeholder {
1120
+ color: #aaaaaa;
1121
+ }
1122
+ .svton-input__inner::placeholder {
1123
+ color: #aaaaaa;
1124
+ }
1125
+ .svton-input__suffix {
1126
+ flex-shrink: 0;
1127
+ margin-left: 16rpx;
1128
+ color: #8a8a8a;
1129
+ font-size: 26rpx;
1130
+ }
1131
+ .svton-input__clear {
1132
+ flex-shrink: 0;
1133
+ display: flex;
1134
+ align-items: center;
1135
+ justify-content: center;
1136
+ width: 40rpx;
1137
+ height: 40rpx;
1138
+ margin-left: 16rpx;
1139
+ color: #aaaaaa;
1140
+ font-size: 28rpx;
1141
+ }
1142
+ .svton-input__clear:active {
1143
+ opacity: 0.7;
1144
+ }
1145
+ .svton-input__count {
1146
+ flex-shrink: 0;
1147
+ margin-left: 16rpx;
1148
+ font-size: 24rpx;
1149
+ color: #8a8a8a;
1150
+ }
1151
+ .svton-textarea {
1152
+ display: flex;
1153
+ flex-direction: column;
1154
+ width: 100%;
1155
+ padding: 20rpx 24rpx;
1156
+ background-color: #ffffff;
1157
+ border: 1rpx solid #e8e8e8;
1158
+ border-radius: 12rpx;
1159
+ box-sizing: border-box;
1160
+ transition: border-color 200ms cubic-bezier(0.4, 0, 0.2, 1);
1161
+ }
1162
+ .svton-textarea:focus-within {
1163
+ border-color: #1890ff;
1164
+ }
1165
+ .svton-textarea--borderless {
1166
+ border: none;
1167
+ background-color: transparent;
1168
+ padding: 0;
1169
+ }
1170
+ .svton-textarea--filled {
1171
+ border: none;
1172
+ background-color: #f5f5f5;
1173
+ }
1174
+ .svton-textarea--disabled {
1175
+ background-color: #f5f5f5;
1176
+ pointer-events: none;
1177
+ }
1178
+ .svton-textarea--disabled .svton-textarea__inner {
1179
+ color: #cccccc;
1180
+ }
1181
+ .svton-textarea--error {
1182
+ border-color: #ff4d4f;
1183
+ }
1184
+ .svton-textarea__inner {
1185
+ width: 100%;
1186
+ min-height: 160rpx;
1187
+ font-size: 26rpx;
1188
+ color: #1a1a1a;
1189
+ background-color: transparent;
1190
+ border: none;
1191
+ outline: none;
1192
+ resize: none;
1193
+ line-height: 1.6;
1194
+ }
1195
+ .svton-textarea__inner::-moz-placeholder {
1196
+ color: #aaaaaa;
1197
+ }
1198
+ .svton-textarea__inner::placeholder {
1199
+ color: #aaaaaa;
1200
+ }
1201
+ .svton-textarea__footer {
1202
+ display: flex;
1203
+ justify-content: flex-end;
1204
+ margin-top: 16rpx;
1205
+ }
1206
+ .svton-textarea__count {
1207
+ font-size: 24rpx;
1208
+ color: #8a8a8a;
1209
+ }
1210
+
1211
+ /* src/components/Cell/index.scss */
1212
+ .svton-cell {
1213
+ display: flex;
1214
+ align-items: center;
1215
+ width: 100%;
1216
+ min-height: 112rpx;
1217
+ padding: 24rpx 32rpx;
1218
+ background-color: #ffffff;
1219
+ box-sizing: border-box;
1220
+ }
1221
+ .svton-cell:active {
1222
+ background-color: #f5f5f5;
1223
+ }
1224
+ .svton-cell--disabled {
1225
+ pointer-events: none;
1226
+ }
1227
+ .svton-cell--disabled .svton-cell__title,
1228
+ .svton-cell--disabled .svton-cell__label {
1229
+ color: #cccccc;
1230
+ }
1231
+ .svton-cell--disabled .svton-cell__value {
1232
+ color: #cccccc;
1233
+ }
1234
+ .svton-cell--clickable-false:active {
1235
+ background-color: #ffffff;
1236
+ }
1237
+ .svton-cell__icon {
1238
+ flex-shrink: 0;
1239
+ margin-right: 24rpx;
1240
+ font-size: 48rpx;
1241
+ color: #666666;
1242
+ }
1243
+ .svton-cell__content {
1244
+ flex: 1;
1245
+ min-width: 0;
1246
+ }
1247
+ .svton-cell__title {
1248
+ font-size: 28rpx;
1249
+ color: #1a1a1a;
1250
+ line-height: 1.3;
1251
+ }
1252
+ .svton-cell__label {
1253
+ margin-top: 8rpx;
1254
+ font-size: 24rpx;
1255
+ color: #8a8a8a;
1256
+ line-height: 1.5;
1257
+ }
1258
+ .svton-cell__value {
1259
+ flex-shrink: 0;
1260
+ margin-left: 24rpx;
1261
+ font-size: 26rpx;
1262
+ color: #666666;
1263
+ text-align: right;
1264
+ max-width: 50%;
1265
+ }
1266
+ .svton-cell__arrow {
1267
+ flex-shrink: 0;
1268
+ margin-left: 16rpx;
1269
+ color: #aaaaaa;
1270
+ font-size: 26rpx;
1271
+ }
1272
+ .svton-cell__required {
1273
+ color: #ff4d4f;
1274
+ margin-right: 8rpx;
1275
+ }
1276
+ .svton-cell-group {
1277
+ background-color: #ffffff;
1278
+ border-radius: 32rpx;
1279
+ overflow: hidden;
1280
+ }
1281
+ .svton-cell-group__title {
1282
+ padding: 24rpx 32rpx 16rpx;
1283
+ font-size: 24rpx;
1284
+ color: #8a8a8a;
1285
+ line-height: 1.5;
1286
+ background-color: transparent;
1287
+ }
1288
+ .svton-cell-group--border .svton-cell {
1289
+ position: relative;
1290
+ }
1291
+ .svton-cell-group--border .svton-cell::after {
1292
+ content: "";
1293
+ position: absolute;
1294
+ left: 32rpx;
1295
+ right: 0;
1296
+ bottom: 0;
1297
+ height: 1rpx;
1298
+ background-color: #f0f0f0;
1299
+ }
1300
+ .svton-cell-group--border .svton-cell:last-child::after {
1301
+ display: none;
1302
+ }
1303
+ .svton-cell-group--inset {
1304
+ margin: 0 32rpx;
1305
+ border-radius: 32rpx;
1306
+ }
1307
+
1308
+ /* src/components/SearchBar/index.scss */
1309
+ .svton-search-bar {
1310
+ display: flex;
1311
+ align-items: center;
1312
+ padding: 16rpx 32rpx;
1313
+ background-color: #ffffff;
1314
+ }
1315
+ .svton-search-bar__input-wrap {
1316
+ flex: 1;
1317
+ display: flex;
1318
+ align-items: center;
1319
+ height: 72rpx;
1320
+ padding: 0 24rpx;
1321
+ background-color: #f5f5f5;
1322
+ border-radius: 9999rpx;
1323
+ }
1324
+ .svton-search-bar__icon {
1325
+ flex-shrink: 0;
1326
+ margin-right: 16rpx;
1327
+ color: #aaaaaa;
1328
+ font-size: 28rpx;
1329
+ }
1330
+ .svton-search-bar__input {
1331
+ flex: 1;
1332
+ height: 100%;
1333
+ font-size: 26rpx;
1334
+ color: #1a1a1a;
1335
+ background-color: transparent;
1336
+ border: none;
1337
+ outline: none;
1338
+ }
1339
+ .svton-search-bar__input::-moz-placeholder {
1340
+ color: #aaaaaa;
1341
+ }
1342
+ .svton-search-bar__input::placeholder {
1343
+ color: #aaaaaa;
1344
+ }
1345
+ .svton-search-bar__clear {
1346
+ flex-shrink: 0;
1347
+ display: flex;
1348
+ align-items: center;
1349
+ justify-content: center;
1350
+ width: 40rpx;
1351
+ height: 40rpx;
1352
+ margin-left: 16rpx;
1353
+ color: #aaaaaa;
1354
+ font-size: 28rpx;
1355
+ }
1356
+ .svton-search-bar__clear:active {
1357
+ opacity: 0.7;
1358
+ }
1359
+ .svton-search-bar__action {
1360
+ flex-shrink: 0;
1361
+ margin-left: 24rpx;
1362
+ padding: 16rpx 0;
1363
+ font-size: 26rpx;
1364
+ color: #1890ff;
1365
+ }
1366
+ .svton-search-bar__action:active {
1367
+ opacity: 0.7;
1368
+ }
1369
+ .svton-search-bar__action--disabled {
1370
+ color: #cccccc;
1371
+ pointer-events: none;
1372
+ }
1373
+ .svton-search-bar--focus .svton-search-bar__input-wrap {
1374
+ background-color: #f0f9ff;
1375
+ }
1376
+ .svton-search-bar--round .svton-search-bar__input-wrap {
1377
+ border-radius: 9999rpx;
1378
+ }
1379
+ .svton-search-bar--square .svton-search-bar__input-wrap {
1380
+ border-radius: 12rpx;
1381
+ }
1382
+
1383
+ /* src/components/Tag/index.scss */
1384
+ .svton-tag {
1385
+ display: inline-flex;
1386
+ align-items: center;
1387
+ justify-content: center;
1388
+ height: 56rpx;
1389
+ padding: 0 24rpx;
1390
+ font-size: 24rpx;
1391
+ line-height: 1;
1392
+ border-radius: 12rpx;
1393
+ box-sizing: border-box;
1394
+ white-space: nowrap;
1395
+ }
1396
+ .svton-tag--primary {
1397
+ background-color: #e6f4ff;
1398
+ color: #1890ff;
1399
+ }
1400
+ .svton-tag--primary.svton-tag--fill {
1401
+ background-color: #1890ff;
1402
+ color: #ffffff;
1403
+ }
1404
+ .svton-tag--primary.svton-tag--outline {
1405
+ background-color: transparent;
1406
+ border: 1rpx solid #1890ff;
1407
+ color: #1890ff;
1408
+ }
1409
+ .svton-tag--success {
1410
+ background-color: rgba(82, 196, 26, 0.1);
1411
+ color: #52c41a;
1412
+ }
1413
+ .svton-tag--success.svton-tag--fill {
1414
+ background-color: #52c41a;
1415
+ color: #ffffff;
1416
+ }
1417
+ .svton-tag--success.svton-tag--outline {
1418
+ background-color: transparent;
1419
+ border: 1rpx solid #52c41a;
1420
+ color: #52c41a;
1421
+ }
1422
+ .svton-tag--warning {
1423
+ background-color: rgba(255, 169, 64, 0.1);
1424
+ color: #ffa940;
1425
+ }
1426
+ .svton-tag--warning.svton-tag--fill {
1427
+ background-color: #ffa940;
1428
+ color: #ffffff;
1429
+ }
1430
+ .svton-tag--warning.svton-tag--outline {
1431
+ background-color: transparent;
1432
+ border: 1rpx solid #ffa940;
1433
+ color: #ffa940;
1434
+ }
1435
+ .svton-tag--danger {
1436
+ background-color: rgba(255, 77, 79, 0.1);
1437
+ color: #ff4d4f;
1438
+ }
1439
+ .svton-tag--danger.svton-tag--fill {
1440
+ background-color: #ff4d4f;
1441
+ color: #ffffff;
1442
+ }
1443
+ .svton-tag--danger.svton-tag--outline {
1444
+ background-color: transparent;
1445
+ border: 1rpx solid #ff4d4f;
1446
+ color: #ff4d4f;
1447
+ }
1448
+ .svton-tag--default {
1449
+ background-color: #f5f5f5;
1450
+ color: #666666;
1451
+ }
1452
+ .svton-tag--default.svton-tag--fill {
1453
+ background-color: #666666;
1454
+ color: #ffffff;
1455
+ }
1456
+ .svton-tag--default.svton-tag--outline {
1457
+ background-color: transparent;
1458
+ border: 1rpx solid #e8e8e8;
1459
+ color: #666666;
1460
+ }
1461
+ .svton-tag--small {
1462
+ height: 40rpx;
1463
+ padding: 0 16rpx;
1464
+ font-size: 22rpx;
1465
+ }
1466
+ .svton-tag--large {
1467
+ height: 64rpx;
1468
+ padding: 0 32rpx;
1469
+ font-size: 26rpx;
1470
+ }
1471
+ .svton-tag--round {
1472
+ border-radius: 9999rpx;
1473
+ }
1474
+ .svton-tag__close {
1475
+ margin-left: 8rpx;
1476
+ font-size: 22rpx;
1477
+ opacity: 0.7;
1478
+ }
1479
+ .svton-tag__close:active {
1480
+ opacity: 1;
1481
+ }
1482
+
1483
+ /* src/components/Badge/index.scss */
1484
+ .svton-badge {
1485
+ position: relative;
1486
+ display: inline-block;
1487
+ }
1488
+ .svton-badge__content {
1489
+ position: absolute;
1490
+ top: 0;
1491
+ right: 0;
1492
+ transform: translate(50%, -50%);
1493
+ display: flex;
1494
+ align-items: center;
1495
+ justify-content: center;
1496
+ min-width: 32rpx;
1497
+ height: 32rpx;
1498
+ padding: 0 8rpx;
1499
+ font-size: 20rpx;
1500
+ font-weight: 500;
1501
+ color: #ffffff;
1502
+ background-color: #ff4d4f;
1503
+ border-radius: 9999rpx;
1504
+ box-sizing: border-box;
1505
+ white-space: nowrap;
1506
+ z-index: 1;
1507
+ }
1508
+ .svton-badge__content--standalone {
1509
+ position: relative;
1510
+ top: auto;
1511
+ right: auto;
1512
+ transform: none;
1513
+ }
1514
+ .svton-badge__dot {
1515
+ position: absolute;
1516
+ top: 0;
1517
+ right: 0;
1518
+ transform: translate(50%, -50%);
1519
+ width: 16rpx;
1520
+ height: 16rpx;
1521
+ background-color: #ff4d4f;
1522
+ border-radius: 50%;
1523
+ z-index: 1;
1524
+ }
1525
+ .svton-badge__dot--standalone {
1526
+ position: relative;
1527
+ top: auto;
1528
+ right: auto;
1529
+ transform: none;
1530
+ }
1531
+ .svton-badge--primary .svton-badge__content,
1532
+ .svton-badge--primary .svton-badge__dot {
1533
+ background-color: #1890ff;
1534
+ }
1535
+ .svton-badge--success .svton-badge__content,
1536
+ .svton-badge--success .svton-badge__dot {
1537
+ background-color: #52c41a;
1538
+ }
1539
+ .svton-badge--warning .svton-badge__content,
1540
+ .svton-badge--warning .svton-badge__dot {
1541
+ background-color: #ffa940;
1542
+ }
1543
+
1544
+ /* src/components/Avatar/index.scss */
1545
+ .svton-avatar {
1546
+ position: relative;
1547
+ display: inline-flex;
1548
+ align-items: center;
1549
+ justify-content: center;
1550
+ overflow: hidden;
1551
+ background-color: #f5f5f5;
1552
+ color: #666666;
1553
+ vertical-align: middle;
1554
+ }
1555
+ .svton-avatar--small {
1556
+ width: 64rpx;
1557
+ height: 64rpx;
1558
+ font-size: 24rpx;
1559
+ }
1560
+ .svton-avatar--medium {
1561
+ width: 96rpx;
1562
+ height: 96rpx;
1563
+ font-size: 28rpx;
1564
+ }
1565
+ .svton-avatar--large {
1566
+ width: 192rpx;
1567
+ height: 192rpx;
1568
+ font-size: 36rpx;
1569
+ }
1570
+ .svton-avatar--xlarge {
1571
+ width: 240rpx;
1572
+ height: 240rpx;
1573
+ font-size: 48rpx;
1574
+ }
1575
+ .svton-avatar--circle {
1576
+ border-radius: 50%;
1577
+ }
1578
+ .svton-avatar--square {
1579
+ border-radius: 24rpx;
1580
+ }
1581
+ .svton-avatar__image {
1582
+ width: 100%;
1583
+ height: 100%;
1584
+ -o-object-fit: cover;
1585
+ object-fit: cover;
1586
+ }
1587
+ .svton-avatar__text {
1588
+ font-weight: 500;
1589
+ white-space: nowrap;
1590
+ }
1591
+ .svton-avatar__icon {
1592
+ font-size: inherit;
1593
+ }
1594
+ .svton-avatar__default {
1595
+ font-size: inherit;
1596
+ color: #8a8a8a;
1597
+ }
1598
+ .svton-avatar-group {
1599
+ display: inline-flex;
1600
+ align-items: center;
1601
+ }
1602
+ .svton-avatar-group .svton-avatar {
1603
+ border: 4rpx solid #ffffff;
1604
+ margin-left: -20rpx;
1605
+ }
1606
+ .svton-avatar-group .svton-avatar:first-child {
1607
+ margin-left: 0;
1608
+ }
1609
+ .svton-avatar-group__rest {
1610
+ display: inline-flex;
1611
+ align-items: center;
1612
+ justify-content: center;
1613
+ background-color: #f5f5f5;
1614
+ color: #666666;
1615
+ font-size: 24rpx;
1616
+ font-weight: 500;
1617
+ border: 4rpx solid #ffffff;
1618
+ margin-left: -20rpx;
1619
+ border-radius: 50%;
1620
+ }
1621
+
1622
+ /* src/components/Skeleton/index.scss */
1623
+ .svton-skeleton {
1624
+ display: flex;
1625
+ width: 100%;
1626
+ }
1627
+ .svton-skeleton--animate .svton-skeleton__avatar,
1628
+ .svton-skeleton--animate .svton-skeleton__title,
1629
+ .svton-skeleton--animate .svton-skeleton__row {
1630
+ background:
1631
+ linear-gradient(
1632
+ 90deg,
1633
+ #f5f5f5 25%,
1634
+ #f0f0f0 37%,
1635
+ #f5f5f5 63%);
1636
+ background-size: 400% 100%;
1637
+ animation: svton-skeleton-loading 1.4s ease infinite;
1638
+ }
1639
+ .svton-skeleton__avatar {
1640
+ flex-shrink: 0;
1641
+ margin-right: 24rpx;
1642
+ background-color: #f5f5f5;
1643
+ }
1644
+ .svton-skeleton__avatar--circle {
1645
+ border-radius: 50%;
1646
+ }
1647
+ .svton-skeleton__avatar--square {
1648
+ border-radius: 24rpx;
1649
+ }
1650
+ .svton-skeleton__avatar--small {
1651
+ width: 64rpx;
1652
+ height: 64rpx;
1653
+ }
1654
+ .svton-skeleton__avatar--medium {
1655
+ width: 96rpx;
1656
+ height: 96rpx;
1657
+ }
1658
+ .svton-skeleton__avatar--large {
1659
+ width: 192rpx;
1660
+ height: 192rpx;
1661
+ }
1662
+ .svton-skeleton__content {
1663
+ flex: 1;
1664
+ min-width: 0;
1665
+ }
1666
+ .svton-skeleton__title {
1667
+ height: 32rpx;
1668
+ margin-bottom: 24rpx;
1669
+ background-color: #f5f5f5;
1670
+ border-radius: 12rpx;
1671
+ }
1672
+ .svton-skeleton__title--round {
1673
+ border-radius: 9999rpx;
1674
+ }
1675
+ .svton-skeleton__row {
1676
+ height: 28rpx;
1677
+ margin-bottom: 16rpx;
1678
+ background-color: #f5f5f5;
1679
+ border-radius: 12rpx;
1680
+ }
1681
+ .svton-skeleton__row:last-child {
1682
+ margin-bottom: 0;
1683
+ }
1684
+ .svton-skeleton__row--round {
1685
+ border-radius: 9999rpx;
1686
+ }
1687
+ @keyframes svton-skeleton-loading {
1688
+ 0% {
1689
+ background-position: 100% 50%;
1690
+ }
1691
+ 100% {
1692
+ background-position: 0 50%;
1693
+ }
1694
+ }
1695
+ .svton-skeleton-paragraph {
1696
+ padding: 24rpx;
1697
+ }
1698
+ .svton-skeleton-image {
1699
+ width: 100%;
1700
+ height: 200rpx;
1701
+ background-color: #f5f5f5;
1702
+ border-radius: 24rpx;
1703
+ }
1704
+ .svton-skeleton-image--animate {
1705
+ background:
1706
+ linear-gradient(
1707
+ 90deg,
1708
+ #f5f5f5 25%,
1709
+ #f0f0f0 37%,
1710
+ #f5f5f5 63%);
1711
+ background-size: 400% 100%;
1712
+ animation: svton-skeleton-loading 1.4s ease infinite;
1713
+ }
1714
+
1715
+ /* src/components/Switch/index.scss */
1716
+ .svton-switch {
1717
+ position: relative;
1718
+ display: inline-flex;
1719
+ align-items: center;
1720
+ vertical-align: middle;
1721
+ }
1722
+ .svton-switch__track {
1723
+ position: relative;
1724
+ width: 100rpx;
1725
+ height: 56rpx;
1726
+ background-color: #f5f5f5;
1727
+ border-radius: 9999rpx;
1728
+ transition: background-color 200ms cubic-bezier(0.4, 0, 0.2, 1);
1729
+ }
1730
+ .svton-switch__thumb {
1731
+ position: absolute;
1732
+ top: 4rpx;
1733
+ left: 4rpx;
1734
+ width: 48rpx;
1735
+ height: 48rpx;
1736
+ background-color: #ffffff;
1737
+ border-radius: 50%;
1738
+ box-shadow: 0 4rpx 16rpx rgba(0, 0, 0, 0.06);
1739
+ transition: transform 200ms cubic-bezier(0.4, 0, 0.2, 1);
1740
+ }
1741
+ .svton-switch--checked .svton-switch__track {
1742
+ background-color: #1890ff;
1743
+ }
1744
+ .svton-switch--checked .svton-switch__thumb {
1745
+ transform: translateX(44rpx);
1746
+ }
1747
+ .svton-switch--disabled {
1748
+ opacity: 0.5;
1749
+ pointer-events: none;
1750
+ }
1751
+ .svton-switch--loading {
1752
+ pointer-events: none;
1753
+ }
1754
+ .svton-switch--loading .svton-switch__thumb {
1755
+ display: flex;
1756
+ align-items: center;
1757
+ justify-content: center;
1758
+ }
1759
+ .svton-switch__loading {
1760
+ width: 32rpx;
1761
+ height: 32rpx;
1762
+ border: 3rpx solid #1890ff;
1763
+ border-top-color: transparent;
1764
+ border-radius: 50%;
1765
+ animation: svton-switch-spin 0.8s linear infinite;
1766
+ }
1767
+ .svton-switch--small .svton-switch__track {
1768
+ width: 80rpx;
1769
+ height: 44rpx;
1770
+ }
1771
+ .svton-switch--small .svton-switch__thumb {
1772
+ width: 36rpx;
1773
+ height: 36rpx;
1774
+ }
1775
+ .svton-switch--small.svton-switch--checked .svton-switch__thumb {
1776
+ transform: translateX(36rpx);
1777
+ }
1778
+ .svton-switch--large .svton-switch__track {
1779
+ width: 120rpx;
1780
+ height: 68rpx;
1781
+ }
1782
+ .svton-switch--large .svton-switch__thumb {
1783
+ width: 60rpx;
1784
+ height: 60rpx;
1785
+ }
1786
+ .svton-switch--large.svton-switch--checked .svton-switch__thumb {
1787
+ transform: translateX(52rpx);
1788
+ }
1789
+ @keyframes svton-switch-spin {
1790
+ from {
1791
+ transform: rotate(0deg);
1792
+ }
1793
+ to {
1794
+ transform: rotate(360deg);
1795
+ }
1796
+ }
1797
+
1798
+ /* src/components/NoticeBar/index.scss */
1799
+ .svton-notice-bar {
1800
+ display: flex;
1801
+ align-items: center;
1802
+ width: 100%;
1803
+ min-height: 72rpx;
1804
+ padding: 16rpx 32rpx;
1805
+ background-color: #fffbe8;
1806
+ box-sizing: border-box;
1807
+ }
1808
+ .svton-notice-bar--info {
1809
+ background-color: #e6f4ff;
1810
+ color: #1890ff;
1811
+ }
1812
+ .svton-notice-bar--info .svton-notice-bar__icon {
1813
+ color: #1890ff;
1814
+ }
1815
+ .svton-notice-bar--success {
1816
+ background-color: rgba(82, 196, 26, 0.1);
1817
+ color: #52c41a;
1818
+ }
1819
+ .svton-notice-bar--success .svton-notice-bar__icon {
1820
+ color: #52c41a;
1821
+ }
1822
+ .svton-notice-bar--warning {
1823
+ background-color: #fffbe8;
1824
+ color: #ed6a0c;
1825
+ }
1826
+ .svton-notice-bar--warning .svton-notice-bar__icon {
1827
+ color: #ed6a0c;
1828
+ }
1829
+ .svton-notice-bar--error {
1830
+ background-color: rgba(255, 77, 79, 0.1);
1831
+ color: #ff4d4f;
1832
+ }
1833
+ .svton-notice-bar--error .svton-notice-bar__icon {
1834
+ color: #ff4d4f;
1835
+ }
1836
+ .svton-notice-bar--closeable {
1837
+ padding-right: 16rpx;
1838
+ }
1839
+ .svton-notice-bar--clickable:active {
1840
+ opacity: 0.8;
1841
+ }
1842
+ .svton-notice-bar__icon {
1843
+ flex-shrink: 0;
1844
+ margin-right: 16rpx;
1845
+ font-size: 28rpx;
1846
+ }
1847
+ .svton-notice-bar__content {
1848
+ flex: 1;
1849
+ min-width: 0;
1850
+ overflow: hidden;
1851
+ }
1852
+ .svton-notice-bar__wrap {
1853
+ display: flex;
1854
+ align-items: center;
1855
+ height: 100%;
1856
+ }
1857
+ .svton-notice-bar__text {
1858
+ font-size: 26rpx;
1859
+ line-height: 1.6;
1860
+ white-space: nowrap;
1861
+ }
1862
+ .svton-notice-bar__text--scrollable {
1863
+ animation: svton-notice-scroll linear infinite;
1864
+ }
1865
+ .svton-notice-bar__action {
1866
+ flex-shrink: 0;
1867
+ margin-left: 16rpx;
1868
+ font-size: 26rpx;
1869
+ }
1870
+ .svton-notice-bar__close {
1871
+ flex-shrink: 0;
1872
+ margin-left: 16rpx;
1873
+ padding: 8rpx;
1874
+ font-size: 28rpx;
1875
+ opacity: 0.6;
1876
+ }
1877
+ .svton-notice-bar__close:active {
1878
+ opacity: 1;
1879
+ }
1880
+ .svton-notice-bar__arrow {
1881
+ flex-shrink: 0;
1882
+ margin-left: 8rpx;
1883
+ font-size: 24rpx;
1884
+ }
1885
+ @keyframes svton-notice-scroll {
1886
+ 0% {
1887
+ transform: translateX(0);
1888
+ }
1889
+ 100% {
1890
+ transform: translateX(-100%);
1891
+ }
1892
+ }
1893
+
1894
+ /* src/components/SwipeCell/index.scss */
1895
+ .svton-swipe-cell {
1896
+ position: relative;
1897
+ overflow: hidden;
1898
+ background-color: #ffffff;
1899
+ }
1900
+ .svton-swipe-cell--disabled {
1901
+ pointer-events: none;
1902
+ }
1903
+ .svton-swipe-cell__content {
1904
+ position: relative;
1905
+ z-index: 1;
1906
+ background-color: #ffffff;
1907
+ }
1908
+ .svton-swipe-cell__actions {
1909
+ position: absolute;
1910
+ top: 0;
1911
+ bottom: 0;
1912
+ display: flex;
1913
+ align-items: stretch;
1914
+ }
1915
+ .svton-swipe-cell__actions--left {
1916
+ left: 0;
1917
+ transform: translateX(-100%);
1918
+ }
1919
+ .svton-swipe-cell__actions--right {
1920
+ right: 0;
1921
+ transform: translateX(100%);
1922
+ }
1923
+ .svton-swipe-cell__action {
1924
+ display: flex;
1925
+ align-items: center;
1926
+ justify-content: center;
1927
+ padding: 0 24rpx;
1928
+ font-size: 26rpx;
1929
+ color: #ffffff;
1930
+ white-space: nowrap;
1931
+ }
1932
+ .svton-swipe-cell__action:active {
1933
+ opacity: 0.9;
1934
+ }
1935
+ .svton-swipe-cell__action--primary {
1936
+ background-color: #1890ff;
1937
+ }
1938
+ .svton-swipe-cell__action--danger {
1939
+ background-color: #ff4d4f;
1940
+ }
1941
+ .svton-swipe-cell__action--warning {
1942
+ background-color: #ffa940;
1943
+ }
1944
+ .svton-swipe-cell__action--default {
1945
+ background-color: #666666;
1946
+ }
1947
+
1948
+ /* src/components/Divider/index.scss */
1949
+ .svton-divider {
1950
+ display: flex;
1951
+ align-items: center;
1952
+ margin: 24rpx 0;
1953
+ }
1954
+ .svton-divider--horizontal {
1955
+ width: 100%;
1956
+ }
1957
+ .svton-divider--vertical {
1958
+ display: inline-block;
1959
+ width: 1rpx;
1960
+ height: 1em;
1961
+ margin: 0 16rpx;
1962
+ vertical-align: middle;
1963
+ border-left: 1rpx solid #e8e8e8;
1964
+ }
1965
+ .svton-divider--vertical.svton-divider--dashed {
1966
+ border-left-style: dashed;
1967
+ }
1968
+ .svton-divider__line {
1969
+ flex: 1;
1970
+ border-top: 1rpx solid #e8e8e8;
1971
+ }
1972
+ .svton-divider__line--left {
1973
+ margin-right: 0;
1974
+ }
1975
+ .svton-divider__line--right {
1976
+ margin-left: 0;
1977
+ }
1978
+ .svton-divider--dashed .svton-divider__line {
1979
+ border-top-style: dashed;
1980
+ }
1981
+ .svton-divider__content {
1982
+ padding: 0 24rpx;
1983
+ font-size: 24rpx;
1984
+ color: #8a8a8a;
1985
+ white-space: nowrap;
1986
+ }
1987
+ .svton-divider--content-left .svton-divider__line--left {
1988
+ max-width: 10%;
1989
+ }
1990
+ .svton-divider--content-right .svton-divider__line--right {
1991
+ max-width: 10%;
1992
+ }
1993
+ .svton-divider--content-center .svton-divider__line--left,
1994
+ .svton-divider--content-center .svton-divider__line--right {
1995
+ flex: 1;
1996
+ }
1997
+
1998
+ /* src/components/Progress/index.scss */
1999
+ .svton-progress {
2000
+ display: flex;
2001
+ align-items: center;
2002
+ }
2003
+ .svton-progress--line {
2004
+ width: 100%;
2005
+ }
2006
+ .svton-progress--line .svton-progress__line {
2007
+ flex: 1;
2008
+ min-width: 0;
2009
+ }
2010
+ .svton-progress--line .svton-progress__track {
2011
+ width: 100%;
2012
+ border-radius: 9999rpx;
2013
+ overflow: hidden;
2014
+ }
2015
+ .svton-progress--line .svton-progress__bar {
2016
+ border-radius: 9999rpx;
2017
+ transition: width 300ms cubic-bezier(0.4, 0, 0.2, 1);
2018
+ }
2019
+ .svton-progress--line .svton-progress__text {
2020
+ flex-shrink: 0;
2021
+ margin-left: 16rpx;
2022
+ font-size: 24rpx;
2023
+ color: #666666;
2024
+ white-space: nowrap;
2025
+ }
2026
+ .svton-progress--circle {
2027
+ display: inline-flex;
2028
+ }
2029
+ .svton-progress--circle .svton-progress__circle {
2030
+ position: relative;
2031
+ display: flex;
2032
+ align-items: center;
2033
+ justify-content: center;
2034
+ }
2035
+ .svton-progress--circle .svton-progress__circle-svg {
2036
+ position: absolute;
2037
+ top: 0;
2038
+ left: 0;
2039
+ width: 100%;
2040
+ height: 100%;
2041
+ }
2042
+ .svton-progress--circle .svton-progress__circle-track {
2043
+ position: absolute;
2044
+ top: 50%;
2045
+ left: 50%;
2046
+ transform: translate(-50%, -50%);
2047
+ border-radius: 50%;
2048
+ border-style: solid;
2049
+ box-sizing: border-box;
2050
+ }
2051
+ .svton-progress--circle .svton-progress__circle-bar {
2052
+ position: absolute;
2053
+ top: 0;
2054
+ left: 0;
2055
+ border-radius: 50%;
2056
+ transform: rotate(-90deg);
2057
+ }
2058
+ .svton-progress--circle .svton-progress__circle-text {
2059
+ position: relative;
2060
+ z-index: 1;
2061
+ font-size: 28rpx;
2062
+ font-weight: 500;
2063
+ color: #1a1a1a;
2064
+ }
2065
+
2066
+ /* src/components/Grid/index.scss */
2067
+ .svton-grid {
2068
+ display: flex;
2069
+ flex-wrap: wrap;
2070
+ background-color: #ffffff;
2071
+ }
2072
+ .svton-grid--border {
2073
+ border-top: 1rpx solid #f0f0f0;
2074
+ border-left: 1rpx solid #f0f0f0;
2075
+ }
2076
+ .svton-grid--border .svton-grid-item {
2077
+ border-right: 1rpx solid #f0f0f0;
2078
+ border-bottom: 1rpx solid #f0f0f0;
2079
+ }
2080
+ .svton-grid--square .svton-grid-item__content {
2081
+ position: absolute;
2082
+ top: 0;
2083
+ left: 0;
2084
+ right: 0;
2085
+ bottom: 0;
2086
+ }
2087
+ .svton-grid--center .svton-grid-item__content {
2088
+ flex-direction: column;
2089
+ align-items: center;
2090
+ justify-content: center;
2091
+ }
2092
+ .svton-grid-item {
2093
+ position: relative;
2094
+ box-sizing: border-box;
2095
+ }
2096
+ .svton-grid-item__content {
2097
+ display: flex;
2098
+ flex-direction: column;
2099
+ align-items: center;
2100
+ justify-content: center;
2101
+ height: 100%;
2102
+ padding: 24rpx;
2103
+ background-color: #ffffff;
2104
+ }
2105
+ .svton-grid-item__content:active {
2106
+ background-color: #f5f5f5;
2107
+ }
2108
+ .svton-grid-item__icon {
2109
+ font-size: 96rpx;
2110
+ margin-bottom: 16rpx;
2111
+ }
2112
+ .svton-grid-item__image {
2113
+ width: 96rpx;
2114
+ height: 96rpx;
2115
+ margin-bottom: 16rpx;
2116
+ }
2117
+ .svton-grid-item__text {
2118
+ font-size: 24rpx;
2119
+ color: #1a1a1a;
2120
+ line-height: 1.3;
2121
+ text-align: center;
2122
+ word-break: break-all;
2123
+ }
2124
+ .svton-grid-item__desc {
2125
+ margin-top: 8rpx;
2126
+ font-size: 22rpx;
2127
+ color: #8a8a8a;
2128
+ line-height: 1.5;
2129
+ text-align: center;
2130
+ }
2131
+ .svton-grid-item--disabled .svton-grid-item__content {
2132
+ opacity: 0.5;
2133
+ pointer-events: none;
2134
+ }
2135
+
2136
+ /* src/components/Collapse/index.scss */
2137
+ .svton-collapse {
2138
+ background-color: #ffffff;
2139
+ }
2140
+ .svton-collapse--border .svton-collapse-item {
2141
+ border-bottom: 1rpx solid #f0f0f0;
2142
+ }
2143
+ .svton-collapse--border .svton-collapse-item:last-child {
2144
+ border-bottom: none;
2145
+ }
2146
+ .svton-collapse-item__header {
2147
+ display: flex;
2148
+ align-items: center;
2149
+ padding: 24rpx 32rpx;
2150
+ background-color: #ffffff;
2151
+ }
2152
+ .svton-collapse-item__header:active {
2153
+ background-color: #f5f5f5;
2154
+ }
2155
+ .svton-collapse-item__title {
2156
+ flex: 1;
2157
+ font-size: 28rpx;
2158
+ color: #1a1a1a;
2159
+ line-height: 1.3;
2160
+ }
2161
+ .svton-collapse-item__value {
2162
+ margin-left: 24rpx;
2163
+ font-size: 26rpx;
2164
+ color: #666666;
2165
+ }
2166
+ .svton-collapse-item__arrow {
2167
+ margin-left: 16rpx;
2168
+ color: #aaaaaa;
2169
+ font-size: 24rpx;
2170
+ transition: transform 200ms cubic-bezier(0.4, 0, 0.2, 1);
2171
+ }
2172
+ .svton-collapse-item__arrow--expanded {
2173
+ transform: rotate(90deg);
2174
+ }
2175
+ .svton-collapse-item__content {
2176
+ overflow: hidden;
2177
+ transition: height 300ms cubic-bezier(0.4, 0, 0.2, 1);
2178
+ }
2179
+ .svton-collapse-item__body {
2180
+ padding: 24rpx 32rpx;
2181
+ font-size: 26rpx;
2182
+ color: #666666;
2183
+ line-height: 1.6;
2184
+ background-color: #f5f5f5;
2185
+ }
2186
+ .svton-collapse-item--disabled .svton-collapse-item__header {
2187
+ opacity: 0.5;
2188
+ pointer-events: none;
2189
+ }
2190
+
2191
+ /* src/components/Steps/index.scss */
2192
+ .svton-steps {
2193
+ display: flex;
2194
+ width: 100%;
2195
+ padding: 24rpx 0;
2196
+ }
2197
+ .svton-steps--horizontal {
2198
+ flex-direction: row;
2199
+ }
2200
+ .svton-steps--horizontal .svton-step {
2201
+ flex: 1;
2202
+ flex-direction: column;
2203
+ align-items: center;
2204
+ }
2205
+ .svton-steps--horizontal .svton-step__line {
2206
+ position: absolute;
2207
+ top: 24rpx;
2208
+ left: 50%;
2209
+ width: 100%;
2210
+ height: 2rpx;
2211
+ background-color: #e8e8e8;
2212
+ }
2213
+ .svton-steps--horizontal .svton-step__line--active {
2214
+ background-color: #1890ff;
2215
+ }
2216
+ .svton-steps--horizontal .svton-step:last-child .svton-step__line {
2217
+ display: none;
2218
+ }
2219
+ .svton-steps--vertical {
2220
+ flex-direction: column;
2221
+ padding: 24rpx 32rpx;
2222
+ }
2223
+ .svton-steps--vertical .svton-step {
2224
+ flex-direction: row;
2225
+ min-height: 120rpx;
2226
+ }
2227
+ .svton-steps--vertical .svton-step__line {
2228
+ position: absolute;
2229
+ top: 48rpx;
2230
+ left: 24rpx;
2231
+ width: 2rpx;
2232
+ height: calc(100% - 48rpx);
2233
+ background-color: #e8e8e8;
2234
+ }
2235
+ .svton-steps--vertical .svton-step__line--active {
2236
+ background-color: #1890ff;
2237
+ }
2238
+ .svton-steps--vertical .svton-step:last-child .svton-step__line {
2239
+ display: none;
2240
+ }
2241
+ .svton-steps--vertical .svton-step__content {
2242
+ flex: 1;
2243
+ padding-left: 24rpx;
2244
+ padding-bottom: 24rpx;
2245
+ }
2246
+ .svton-step {
2247
+ position: relative;
2248
+ display: flex;
2249
+ }
2250
+ .svton-step__icon {
2251
+ position: relative;
2252
+ z-index: 1;
2253
+ display: flex;
2254
+ align-items: center;
2255
+ justify-content: center;
2256
+ width: 48rpx;
2257
+ height: 48rpx;
2258
+ border-radius: 50%;
2259
+ background-color: #ffffff;
2260
+ border: 2rpx solid #e8e8e8;
2261
+ font-size: 24rpx;
2262
+ color: #8a8a8a;
2263
+ }
2264
+ .svton-step__icon--active {
2265
+ border-color: #1890ff;
2266
+ background-color: #1890ff;
2267
+ color: #ffffff;
2268
+ }
2269
+ .svton-step__icon--finish {
2270
+ border-color: #1890ff;
2271
+ color: #1890ff;
2272
+ }
2273
+ .svton-step__icon--error {
2274
+ border-color: #ff4d4f;
2275
+ background-color: #ff4d4f;
2276
+ color: #ffffff;
2277
+ }
2278
+ .svton-step__content {
2279
+ text-align: center;
2280
+ }
2281
+ .svton-step__title {
2282
+ margin-top: 16rpx;
2283
+ font-size: 26rpx;
2284
+ color: #666666;
2285
+ line-height: 1.3;
2286
+ }
2287
+ .svton-step__title--active {
2288
+ color: #1890ff;
2289
+ font-weight: 500;
2290
+ }
2291
+ .svton-step__title--finish {
2292
+ color: #1a1a1a;
2293
+ }
2294
+ .svton-step__title--error {
2295
+ color: #ff4d4f;
2296
+ }
2297
+ .svton-step__desc {
2298
+ margin-top: 8rpx;
2299
+ font-size: 24rpx;
2300
+ color: #8a8a8a;
2301
+ line-height: 1.5;
2302
+ }
2303
+
2304
+ /* src/components/Checkbox/index.scss */
2305
+ .svton-checkbox {
2306
+ display: inline-flex;
2307
+ align-items: center;
2308
+ cursor: pointer;
2309
+ }
2310
+ .svton-checkbox__icon {
2311
+ display: flex;
2312
+ align-items: center;
2313
+ justify-content: center;
2314
+ width: 40rpx;
2315
+ height: 40rpx;
2316
+ border: 2rpx solid #e8e8e8;
2317
+ background-color: #ffffff;
2318
+ transition: all 200ms cubic-bezier(0.4, 0, 0.2, 1);
2319
+ box-sizing: border-box;
2320
+ }
2321
+ .svton-checkbox__check {
2322
+ color: #ffffff;
2323
+ font-weight: 600;
2324
+ }
2325
+ .svton-checkbox__label {
2326
+ margin-left: 16rpx;
2327
+ font-size: 26rpx;
2328
+ color: #1a1a1a;
2329
+ line-height: 1.6;
2330
+ }
2331
+ .svton-checkbox--square .svton-checkbox__icon {
2332
+ border-radius: 12rpx;
2333
+ }
2334
+ .svton-checkbox--round .svton-checkbox__icon {
2335
+ border-radius: 50%;
2336
+ }
2337
+ .svton-checkbox--checked .svton-checkbox__icon {
2338
+ background-color: #1890ff;
2339
+ border-color: #1890ff;
2340
+ }
2341
+ .svton-checkbox--disabled {
2342
+ opacity: 0.5;
2343
+ pointer-events: none;
2344
+ }
2345
+ .svton-checkbox-group {
2346
+ display: flex;
2347
+ }
2348
+ .svton-checkbox-group--vertical {
2349
+ flex-direction: column;
2350
+ }
2351
+ .svton-checkbox-group--vertical .svton-checkbox {
2352
+ margin-bottom: 24rpx;
2353
+ }
2354
+ .svton-checkbox-group--vertical .svton-checkbox:last-child {
2355
+ margin-bottom: 0;
2356
+ }
2357
+ .svton-checkbox-group--horizontal {
2358
+ flex-direction: row;
2359
+ flex-wrap: wrap;
2360
+ }
2361
+ .svton-checkbox-group--horizontal .svton-checkbox {
2362
+ margin-right: 32rpx;
2363
+ margin-bottom: 16rpx;
2364
+ }
2365
+
2366
+ /* src/components/Radio/index.scss */
2367
+ .svton-radio {
2368
+ display: inline-flex;
2369
+ align-items: center;
2370
+ cursor: pointer;
2371
+ }
2372
+ .svton-radio__icon {
2373
+ display: flex;
2374
+ align-items: center;
2375
+ justify-content: center;
2376
+ width: 40rpx;
2377
+ height: 40rpx;
2378
+ border: 2rpx solid #e8e8e8;
2379
+ border-radius: 50%;
2380
+ background-color: #ffffff;
2381
+ transition: all 200ms cubic-bezier(0.4, 0, 0.2, 1);
2382
+ box-sizing: border-box;
2383
+ }
2384
+ .svton-radio__dot {
2385
+ width: 20rpx;
2386
+ height: 20rpx;
2387
+ border-radius: 50%;
2388
+ background-color: #1890ff;
2389
+ }
2390
+ .svton-radio__label {
2391
+ margin-left: 16rpx;
2392
+ font-size: 26rpx;
2393
+ color: #1a1a1a;
2394
+ line-height: 1.6;
2395
+ }
2396
+ .svton-radio--checked .svton-radio__icon {
2397
+ border-color: #1890ff;
2398
+ }
2399
+ .svton-radio--disabled {
2400
+ opacity: 0.5;
2401
+ pointer-events: none;
2402
+ }
2403
+ .svton-radio-group {
2404
+ display: flex;
2405
+ }
2406
+ .svton-radio-group--vertical {
2407
+ flex-direction: column;
2408
+ }
2409
+ .svton-radio-group--vertical .svton-radio {
2410
+ margin-bottom: 24rpx;
2411
+ }
2412
+ .svton-radio-group--vertical .svton-radio:last-child {
2413
+ margin-bottom: 0;
2414
+ }
2415
+ .svton-radio-group--horizontal {
2416
+ flex-direction: row;
2417
+ flex-wrap: wrap;
2418
+ }
2419
+ .svton-radio-group--horizontal .svton-radio {
2420
+ margin-right: 32rpx;
2421
+ margin-bottom: 16rpx;
2422
+ }
2423
+
2424
+ /* src/components/Rate/index.scss */
2425
+ .svton-rate {
2426
+ display: inline-flex;
2427
+ align-items: center;
2428
+ }
2429
+ .svton-rate__item {
2430
+ position: relative;
2431
+ display: flex;
2432
+ align-items: center;
2433
+ justify-content: center;
2434
+ }
2435
+ .svton-rate__item:not(:last-child) {
2436
+ margin-right: 8rpx;
2437
+ }
2438
+ .svton-rate__icon {
2439
+ font-size: 48rpx;
2440
+ color: #e8e8e8;
2441
+ transition: color 200ms cubic-bezier(0.4, 0, 0.2, 1), transform 200ms cubic-bezier(0.4, 0, 0.2, 1);
2442
+ }
2443
+ .svton-rate__icon--active {
2444
+ color: #ffc107;
2445
+ }
2446
+ .svton-rate__icon--half {
2447
+ position: absolute;
2448
+ left: 0;
2449
+ top: 0;
2450
+ width: 50%;
2451
+ overflow: hidden;
2452
+ color: #ffc107;
2453
+ }
2454
+ .svton-rate--disabled {
2455
+ opacity: 0.6;
2456
+ pointer-events: none;
2457
+ }
2458
+ .svton-rate--readonly {
2459
+ pointer-events: none;
2460
+ }
2461
+ .svton-rate--small .svton-rate__icon {
2462
+ font-size: 36rpx;
2463
+ }
2464
+ .svton-rate--large .svton-rate__icon {
2465
+ font-size: 64rpx;
2466
+ }
2467
+
2468
+ /* src/components/Stepper/index.scss */
2469
+ .svton-stepper {
2470
+ display: inline-flex;
2471
+ align-items: center;
2472
+ }
2473
+ .svton-stepper__btn {
2474
+ display: flex;
2475
+ align-items: center;
2476
+ justify-content: center;
2477
+ width: 56rpx;
2478
+ height: 56rpx;
2479
+ background-color: #f5f5f5;
2480
+ border-radius: 12rpx;
2481
+ font-size: 28rpx;
2482
+ color: #1a1a1a;
2483
+ transition: background-color 200ms cubic-bezier(0.4, 0, 0.2, 1);
2484
+ }
2485
+ .svton-stepper__btn:active {
2486
+ background-color: #e8e8e8;
2487
+ }
2488
+ .svton-stepper__btn--disabled {
2489
+ color: #cccccc;
2490
+ pointer-events: none;
2491
+ }
2492
+ .svton-stepper__minus {
2493
+ border-radius: 12rpx 0 0 12rpx;
2494
+ }
2495
+ .svton-stepper__plus {
2496
+ border-radius: 0 12rpx 12rpx 0;
2497
+ }
2498
+ .svton-stepper__input {
2499
+ width: 64rpx;
2500
+ height: 56rpx;
2501
+ margin: 0 2rpx;
2502
+ padding: 0;
2503
+ text-align: center;
2504
+ font-size: 26rpx;
2505
+ color: #1a1a1a;
2506
+ background-color: #f5f5f5;
2507
+ border: none;
2508
+ outline: none;
2509
+ }
2510
+ .svton-stepper--disabled {
2511
+ opacity: 0.6;
2512
+ pointer-events: none;
2513
+ }
2514
+ .svton-stepper--small .svton-stepper__btn {
2515
+ width: 44rpx;
2516
+ height: 44rpx;
2517
+ font-size: 26rpx;
2518
+ }
2519
+ .svton-stepper--small .svton-stepper__input {
2520
+ width: 52rpx;
2521
+ height: 44rpx;
2522
+ font-size: 24rpx;
2523
+ }
2524
+ .svton-stepper--large .svton-stepper__btn {
2525
+ width: 72rpx;
2526
+ height: 72rpx;
2527
+ font-size: 32rpx;
2528
+ }
2529
+ .svton-stepper--large .svton-stepper__input {
2530
+ width: 80rpx;
2531
+ height: 72rpx;
2532
+ font-size: 28rpx;
2533
+ }
2534
+
2535
+ /* src/components/Countdown/index.scss */
2536
+ .svton-countdown {
2537
+ display: inline-flex;
2538
+ align-items: center;
2539
+ font-size: 26rpx;
2540
+ color: #1a1a1a;
2541
+ font-variant-numeric: tabular-nums;
2542
+ }
2543
+
2544
+ /* src/components/Result/index.scss */
2545
+ .svton-result {
2546
+ display: flex;
2547
+ flex-direction: column;
2548
+ align-items: center;
2549
+ padding: 64rpx 32rpx;
2550
+ text-align: center;
2551
+ }
2552
+ .svton-result__icon {
2553
+ display: flex;
2554
+ align-items: center;
2555
+ justify-content: center;
2556
+ width: 160rpx;
2557
+ height: 160rpx;
2558
+ margin-bottom: 32rpx;
2559
+ border-radius: 50%;
2560
+ font-size: 80rpx;
2561
+ font-weight: 600;
2562
+ }
2563
+ .svton-result__icon--success {
2564
+ background-color: rgba(82, 196, 26, 0.1);
2565
+ color: #52c41a;
2566
+ }
2567
+ .svton-result__icon--error {
2568
+ background-color: rgba(255, 77, 79, 0.1);
2569
+ color: #ff4d4f;
2570
+ }
2571
+ .svton-result__icon--warning {
2572
+ background-color: rgba(255, 169, 64, 0.1);
2573
+ color: #ffa940;
2574
+ }
2575
+ .svton-result__icon--info {
2576
+ background-color: rgba(24, 144, 255, 0.1);
2577
+ color: #1890ff;
2578
+ }
2579
+ .svton-result__icon--waiting {
2580
+ background-color: #f5f5f5;
2581
+ color: #8a8a8a;
2582
+ }
2583
+ .svton-result__image {
2584
+ margin-bottom: 32rpx;
2585
+ }
2586
+ .svton-result__title {
2587
+ margin-bottom: 16rpx;
2588
+ font-size: 32rpx;
2589
+ font-weight: 600;
2590
+ color: #1a1a1a;
2591
+ line-height: 1.3;
2592
+ }
2593
+ .svton-result__desc {
2594
+ margin-bottom: 32rpx;
2595
+ font-size: 26rpx;
2596
+ color: #666666;
2597
+ line-height: 1.6;
2598
+ }
2599
+ .svton-result__content {
2600
+ width: 100%;
2601
+ margin-bottom: 32rpx;
2602
+ }
2603
+ .svton-result__extra {
2604
+ width: 100%;
2605
+ margin-top: 24rpx;
2606
+ }
2607
+
2608
+ /* src/components/BackTop/index.scss */
2609
+ .svton-back-top {
2610
+ position: fixed;
2611
+ z-index: 200;
2612
+ display: flex;
2613
+ flex-direction: column;
2614
+ align-items: center;
2615
+ justify-content: center;
2616
+ width: 96rpx;
2617
+ height: 96rpx;
2618
+ background-color: #ffffff;
2619
+ border-radius: 50%;
2620
+ box-shadow: 0 8rpx 32rpx rgba(0, 0, 0, 0.12);
2621
+ transition: opacity 200ms cubic-bezier(0.4, 0, 0.2, 1), transform 200ms cubic-bezier(0.4, 0, 0.2, 1);
2622
+ }
2623
+ .svton-back-top:active {
2624
+ transform: scale(0.95);
2625
+ }
2626
+ .svton-back-top__icon {
2627
+ font-size: 40rpx;
2628
+ color: #666666;
2629
+ }
2630
+ .svton-back-top__text {
2631
+ margin-top: 4rpx;
2632
+ font-size: 22rpx;
2633
+ color: #8a8a8a;
2634
+ }
2635
+
2636
+ /* src/components/Card/index.scss */
2637
+ .svton-card {
2638
+ background-color: #ffffff;
2639
+ border-radius: 32rpx;
2640
+ overflow: hidden;
2641
+ }
2642
+ .svton-card--bordered {
2643
+ border: 1rpx solid #f0f0f0;
2644
+ }
2645
+ .svton-card--shadow {
2646
+ box-shadow: 0 4rpx 16rpx rgba(0, 0, 0, 0.08);
2647
+ }
2648
+ .svton-card--clickable:active {
2649
+ opacity: 0.9;
2650
+ transform: scale(0.99);
2651
+ }
2652
+ .svton-card__cover {
2653
+ width: 100%;
2654
+ overflow: hidden;
2655
+ }
2656
+ .svton-card__cover-image {
2657
+ width: 100%;
2658
+ display: block;
2659
+ }
2660
+ .svton-card__header {
2661
+ display: flex;
2662
+ align-items: flex-start;
2663
+ justify-content: space-between;
2664
+ padding: 32rpx;
2665
+ border-bottom: 1rpx solid #f0f0f0;
2666
+ }
2667
+ .svton-card__header-content {
2668
+ flex: 1;
2669
+ min-width: 0;
2670
+ }
2671
+ .svton-card__title {
2672
+ display: block;
2673
+ font-size: 28rpx;
2674
+ font-weight: 600;
2675
+ color: #1a1a1a;
2676
+ line-height: 1.3;
2677
+ }
2678
+ .svton-card__subtitle {
2679
+ display: block;
2680
+ margin-top: 8rpx;
2681
+ font-size: 24rpx;
2682
+ color: #8a8a8a;
2683
+ line-height: 1.5;
2684
+ }
2685
+ .svton-card__extra {
2686
+ flex-shrink: 0;
2687
+ margin-left: 24rpx;
2688
+ }
2689
+ .svton-card__body {
2690
+ padding: 32rpx;
2691
+ font-size: 26rpx;
2692
+ color: #666666;
2693
+ line-height: 1.6;
2694
+ }
2695
+ .svton-card__footer {
2696
+ padding: 24rpx 32rpx;
2697
+ border-top: 1rpx solid #f0f0f0;
2698
+ }