@phcdevworks/spectre-ui 1.4.0 → 1.6.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.
@@ -2,7 +2,7 @@
2
2
  --sp-surface-page: #f7f8fb;
3
3
  --sp-surface-card: #ffffff;
4
4
  --sp-surface-input: #ffffff;
5
- --sp-surface-overlay: rgba(20, 27, 36, 0.6);
5
+ --sp-surface-overlay: rgba(0, 0, 0, 0.6);
6
6
  --sp-surface-alternate: #eef1f6;
7
7
  --sp-surface-hero: linear-gradient(135deg, #5b6ee1 0%, #6f3fd7 100%);
8
8
  --sp-text-on-page-default: #141b24;
@@ -294,9 +294,9 @@
294
294
  --sp-button-cta-textdisabled: #8a96ad;
295
295
  --sp-button-cta-shadow: 0 4px 14px 0 rgba(51, 109, 244, 0.39);
296
296
  --sp-button-cta-focusring: rgba(51, 109, 244, 0.4);
297
- --sp-button-accent-bg: #7135dd;
298
- --sp-button-accent-bghover: #5d28b8;
299
- --sp-button-accent-bgactive: #4d2393;
297
+ --sp-button-accent-bg: #5d28b8;
298
+ --sp-button-accent-bghover: #4d2393;
299
+ --sp-button-accent-bgactive: #401f75;
300
300
  --sp-button-accent-bgdisabled: #ddccff;
301
301
  --sp-button-accent-text: #ffffff;
302
302
  --sp-button-accent-textdisabled: #8a96ad;
@@ -496,6 +496,10 @@
496
496
  --sp-component-badge-info-text: var(--sp-badge-info-text);
497
497
  --sp-component-badge-ghost-bg: var(--sp-button-ghost-bg);
498
498
  --sp-component-badge-ghost-text: var(--sp-button-ghost-text);
499
+ --sp-component-badge-accent-bg: var(--sp-button-accent-bg);
500
+ --sp-component-badge-accent-text: var(--sp-button-accent-text);
501
+ --sp-component-badge-cta-bg: var(--sp-button-cta-bg);
502
+ --sp-component-badge-cta-text: var(--sp-button-cta-text);
499
503
 
500
504
  /* badge hover states derived from Spectre token semantics */
501
505
  --sp-component-badge-primary-bg-hover: var(--sp-button-primary-bghover);
@@ -506,6 +510,8 @@
506
510
  --sp-component-badge-neutral-bg-hover: var(--sp-color-neutral-200);
507
511
  --sp-component-badge-info-bg-hover: var(--sp-color-info-200);
508
512
  --sp-component-badge-ghost-bg-hover: var(--sp-button-ghost-bghover);
513
+ --sp-component-badge-accent-bg-hover: var(--sp-button-accent-bghover);
514
+ --sp-component-badge-cta-bg-hover: var(--sp-button-cta-bghover);
509
515
 
510
516
  --sp-component-badge-padding-x-sm: var(--sp-space-8);
511
517
  --sp-component-badge-padding-x-md: var(--sp-space-12);
@@ -536,17 +542,33 @@
536
542
  --sp-component-iconbox-neutral-text: var(--sp-badge-neutral-text);
537
543
  --sp-component-iconbox-ghost-bg: var(--sp-button-ghost-bg);
538
544
  --sp-component-iconbox-ghost-text: var(--sp-button-ghost-text);
545
+ --sp-component-iconbox-accent-bg: var(--sp-button-accent-bg);
546
+ --sp-component-iconbox-accent-text: var(--sp-button-accent-text);
547
+ --sp-component-iconbox-cta-bg: var(--sp-button-cta-bg);
548
+ --sp-component-iconbox-cta-text: var(--sp-button-cta-text);
539
549
 
540
550
  /* testimonial roles */
541
551
  --sp-component-testimonial-bg: var(--sp-surface-card);
552
+ --sp-component-testimonial-bg-hover: var(--sp-color-neutral-50);
542
553
  --sp-component-testimonial-border: var(--sp-color-neutral-200);
554
+ --sp-component-testimonial-border-base: var(--sp-component-testimonial-ghost-border);
543
555
  --sp-component-testimonial-text: var(--sp-color-neutral-700);
544
556
  --sp-component-testimonial-author-name: var(--sp-color-neutral-900);
545
- --sp-component-testimonial-author-title: var(--sp-color-neutral-500);
546
- --sp-component-testimonial-quote-mark: var(--sp-color-neutral-500);
557
+ --sp-component-testimonial-author-title: var(--sp-color-neutral-600);
558
+ --sp-component-testimonial-quote-mark: var(--sp-color-neutral-600);
559
+ --sp-component-testimonial-shadow: var(--sp-shadow-none);
560
+ --sp-component-testimonial-shadow-elevated: var(--sp-shadow-lg);
561
+ --sp-component-testimonial-shadow-flat: var(--sp-shadow-none);
562
+ --sp-component-testimonial-shadow-outline: var(--sp-shadow-none);
563
+ --sp-component-testimonial-shadow-ghost: var(--sp-shadow-none);
564
+ --sp-component-testimonial-outline-bg: var(--sp-component-testimonial-bg);
565
+ --sp-component-testimonial-outline-border: var(--sp-component-testimonial-border);
566
+ --sp-component-testimonial-ghost-bg: var(--sp-button-ghost-bg);
567
+ --sp-component-testimonial-ghost-border: var(--sp-component-testimonial-ghost-bg);
547
568
 
548
569
  /* pricing card roles */
549
570
  --sp-component-pricing-card-bg: var(--sp-surface-card);
571
+ --sp-component-pricing-card-bg-hover: var(--sp-color-neutral-50);
550
572
  --sp-component-pricing-card-border: var(--sp-color-neutral-200);
551
573
  --sp-component-pricing-card-featured-bg: var(--sp-color-info-600);
552
574
  --sp-component-pricing-card-featured-text: var(--sp-button-text-on-primary);
@@ -554,7 +576,7 @@
554
576
  --sp-component-pricing-card-featured-badge-text: var(--sp-color-neutral-900);
555
577
  --sp-component-pricing-card-price: var(--sp-color-neutral-900);
556
578
  --sp-component-pricing-card-featured-price: var(--sp-color-white);
557
- --sp-component-pricing-card-price-description: var(--sp-color-neutral-500);
579
+ --sp-component-pricing-card-price-description: var(--sp-color-neutral-600);
558
580
 
559
581
  /* rating roles */
560
582
  --sp-component-rating-star-filled: var(--sp-color-warning-500);
@@ -567,17 +589,37 @@
567
589
 
568
590
  /* dark mode overrides mapped from Spectre token mode definitions */
569
591
  :where(:root[data-spectre-theme="dark"]) {
592
+ /* badge hover states remain manual as they are not currently exported as tokens */
593
+ --sp-component-badge-success-bg-hover: var(--sp-color-success-700);
594
+ --sp-component-badge-warning-bg-hover: var(--sp-color-warning-700);
595
+ --sp-component-badge-danger-bg-hover: var(--sp-color-error-700);
596
+ --sp-component-badge-neutral-bg-hover: var(--sp-color-neutral-600);
597
+ --sp-component-badge-info-bg-hover: var(--sp-color-info-700);
598
+
599
+ --sp-component-iconbox-primary-bg: var(--sp-color-neutral-800);
600
+ --sp-component-iconbox-primary-text: var(--sp-color-brand-400);
601
+ --sp-component-iconbox-success-bg: var(--sp-color-neutral-800);
602
+ --sp-component-iconbox-success-text: var(--sp-color-success-400);
603
+ --sp-component-iconbox-warning-bg: var(--sp-color-neutral-800);
604
+ --sp-component-iconbox-warning-text: var(--sp-color-warning-400);
605
+ --sp-component-iconbox-danger-bg: var(--sp-color-neutral-800);
606
+ --sp-component-iconbox-danger-text: var(--sp-color-error-400);
607
+ --sp-component-iconbox-info-bg: var(--sp-color-neutral-800);
608
+ --sp-component-iconbox-info-text: var(--sp-color-info-400);
609
+
570
610
  --sp-component-testimonial-bg: var(--sp-color-neutral-800);
611
+ --sp-component-testimonial-bg-hover: var(--sp-color-neutral-700);
571
612
  --sp-component-testimonial-border: var(--sp-color-neutral-700);
572
613
  --sp-component-testimonial-text: var(--sp-color-neutral-200);
573
614
  --sp-component-testimonial-author-name: var(--sp-color-neutral-100);
574
- --sp-component-testimonial-author-title: var(--sp-color-neutral-400);
575
- --sp-component-testimonial-quote-mark: var(--sp-color-neutral-400);
615
+ --sp-component-testimonial-author-title: var(--sp-color-neutral-300);
616
+ --sp-component-testimonial-quote-mark: var(--sp-color-neutral-300);
576
617
 
577
618
  --sp-component-pricing-card-bg: var(--sp-color-neutral-800);
619
+ --sp-component-pricing-card-bg-hover: var(--sp-color-neutral-700);
578
620
  --sp-component-pricing-card-border: var(--sp-color-neutral-700);
579
621
  --sp-component-pricing-card-price: var(--sp-color-neutral-100);
580
- --sp-component-pricing-card-price-description: var(--sp-color-neutral-400);
622
+ --sp-component-pricing-card-price-description: var(--sp-color-neutral-300);
581
623
 
582
624
  --sp-component-rating-star-filled: var(--sp-color-warning-400);
583
625
  --sp-component-rating-star-empty: var(--sp-color-neutral-700);
@@ -852,12 +894,20 @@
852
894
  line-height: var(--sp-font-sm-line-height);
853
895
  }
854
896
 
897
+ .sp-label--disabled {
898
+ color: var(--sp-component-input-role-text-disabled);
899
+ }
900
+
855
901
  .sp-helper-text {
856
902
  color: var(--sp-text-on-surface-meta);
857
903
  font-size: var(--sp-font-xs-size);
858
904
  line-height: var(--sp-font-xs-line-height);
859
905
  }
860
906
 
907
+ .sp-helper-text--disabled {
908
+ opacity: var(--sp-opacity-disabled);
909
+ }
910
+
861
911
  .sp-error-message {
862
912
  color: var(--sp-component-input-role-text-error);
863
913
  font-size: var(--sp-font-xs-size);
@@ -1019,11 +1069,15 @@
1019
1069
  height: 100%;
1020
1070
  }
1021
1071
 
1072
+ .sp-card:disabled,
1073
+ .sp-card[aria-disabled="true"],
1022
1074
  .sp-card--disabled {
1023
1075
  opacity: var(--sp-opacity-disabled);
1024
1076
  pointer-events: none;
1077
+ cursor: not-allowed;
1025
1078
  }
1026
1079
 
1080
+ .sp-card[aria-busy="true"],
1027
1081
  .sp-card--loading {
1028
1082
  opacity: var(--sp-opacity-active);
1029
1083
  pointer-events: none;
@@ -1038,14 +1092,20 @@
1038
1092
  }
1039
1093
 
1040
1094
  .sp-card--interactive:hover,
1041
- .sp-card--interactive:focus-visible,
1042
1095
  .sp-card--interactive:focus-within,
1043
1096
  .sp-card--interactive.sp-card--hover,
1044
- .sp-card--interactive.is-hover,
1097
+ .sp-card--interactive.is-hover {
1098
+ outline: none;
1099
+ transform: translateY(calc(var(--sp-component-border-width) * -1));
1100
+ box-shadow: var(--sp-component-card-shadow-elevated);
1101
+ }
1102
+
1103
+ .sp-card--interactive:focus-visible,
1045
1104
  .sp-card--interactive.sp-card--focus,
1046
1105
  .sp-card--interactive.is-focus {
1106
+ outline: none;
1047
1107
  transform: translateY(calc(var(--sp-component-border-width) * -1));
1048
- box-shadow: var(--sp-component-card-shadow-elevated);
1108
+ box-shadow: 0 0 0 calc(var(--sp-focus-ring-width) + var(--sp-component-border-width)) var(--sp-color-focus-primary);
1049
1109
  }
1050
1110
 
1051
1111
  .sp-card--interactive:active,
@@ -1072,6 +1132,10 @@
1072
1132
  white-space: nowrap;
1073
1133
  }
1074
1134
 
1135
+ .sp-badge--full {
1136
+ width: 100%;
1137
+ }
1138
+
1075
1139
  .sp-badge--sm {
1076
1140
  padding: var(--sp-component-badge-padding-y-sm) var(--sp-component-badge-padding-x-sm);
1077
1141
  font-size: var(--sp-font-xs-size);
@@ -1096,8 +1160,8 @@
1096
1160
  }
1097
1161
 
1098
1162
  .sp-badge--primary.sp-badge--interactive:hover,
1099
- .sp-badge--primary.sp-badge--interactive.sp-badge--hover,
1100
- .sp-badge--primary.sp-badge--interactive.is-hover {
1163
+ .sp-badge--primary.sp-badge--hover,
1164
+ .sp-badge--primary.is-hover {
1101
1165
  background-color: var(--sp-component-badge-primary-bg-hover);
1102
1166
  }
1103
1167
 
@@ -1108,8 +1172,8 @@
1108
1172
  }
1109
1173
 
1110
1174
  .sp-badge--secondary.sp-badge--interactive:hover,
1111
- .sp-badge--secondary.sp-badge--interactive.sp-badge--hover,
1112
- .sp-badge--secondary.sp-badge--interactive.is-hover {
1175
+ .sp-badge--secondary.sp-badge--hover,
1176
+ .sp-badge--secondary.is-hover {
1113
1177
  background-color: var(--sp-component-badge-secondary-bg-hover);
1114
1178
  }
1115
1179
 
@@ -1119,8 +1183,8 @@
1119
1183
  }
1120
1184
 
1121
1185
  .sp-badge--success.sp-badge--interactive:hover,
1122
- .sp-badge--success.sp-badge--interactive.sp-badge--hover,
1123
- .sp-badge--success.sp-badge--interactive.is-hover {
1186
+ .sp-badge--success.sp-badge--hover,
1187
+ .sp-badge--success.is-hover {
1124
1188
  background-color: var(--sp-component-badge-success-bg-hover);
1125
1189
  }
1126
1190
 
@@ -1130,8 +1194,8 @@
1130
1194
  }
1131
1195
 
1132
1196
  .sp-badge--warning.sp-badge--interactive:hover,
1133
- .sp-badge--warning.sp-badge--interactive.sp-badge--hover,
1134
- .sp-badge--warning.sp-badge--interactive.is-hover {
1197
+ .sp-badge--warning.sp-badge--hover,
1198
+ .sp-badge--warning.is-hover {
1135
1199
  background-color: var(--sp-component-badge-warning-bg-hover);
1136
1200
  }
1137
1201
 
@@ -1141,8 +1205,8 @@
1141
1205
  }
1142
1206
 
1143
1207
  .sp-badge--danger.sp-badge--interactive:hover,
1144
- .sp-badge--danger.sp-badge--interactive.sp-badge--hover,
1145
- .sp-badge--danger.sp-badge--interactive.is-hover {
1208
+ .sp-badge--danger.sp-badge--hover,
1209
+ .sp-badge--danger.is-hover {
1146
1210
  background-color: var(--sp-component-badge-danger-bg-hover);
1147
1211
  }
1148
1212
 
@@ -1152,8 +1216,8 @@
1152
1216
  }
1153
1217
 
1154
1218
  .sp-badge--neutral.sp-badge--interactive:hover,
1155
- .sp-badge--neutral.sp-badge--interactive.sp-badge--hover,
1156
- .sp-badge--neutral.sp-badge--interactive.is-hover {
1219
+ .sp-badge--neutral.sp-badge--hover,
1220
+ .sp-badge--neutral.is-hover {
1157
1221
  background-color: var(--sp-component-badge-neutral-bg-hover);
1158
1222
  }
1159
1223
 
@@ -1163,8 +1227,8 @@
1163
1227
  }
1164
1228
 
1165
1229
  .sp-badge--info.sp-badge--interactive:hover,
1166
- .sp-badge--info.sp-badge--interactive.sp-badge--hover,
1167
- .sp-badge--info.sp-badge--interactive.is-hover {
1230
+ .sp-badge--info.sp-badge--hover,
1231
+ .sp-badge--info.is-hover {
1168
1232
  background-color: var(--sp-component-badge-info-bg-hover);
1169
1233
  }
1170
1234
 
@@ -1174,11 +1238,33 @@
1174
1238
  }
1175
1239
 
1176
1240
  .sp-badge--ghost.sp-badge--interactive:hover,
1177
- .sp-badge--ghost.sp-badge--interactive.sp-badge--hover,
1178
- .sp-badge--ghost.sp-badge--interactive.is-hover {
1241
+ .sp-badge--ghost.sp-badge--hover,
1242
+ .sp-badge--ghost.is-hover {
1179
1243
  background-color: var(--sp-component-badge-ghost-bg-hover);
1180
1244
  }
1181
1245
 
1246
+ .sp-badge--accent {
1247
+ background-color: var(--sp-component-badge-accent-bg);
1248
+ color: var(--sp-component-badge-accent-text);
1249
+ }
1250
+
1251
+ .sp-badge--accent.sp-badge--interactive:hover,
1252
+ .sp-badge--accent.sp-badge--hover,
1253
+ .sp-badge--accent.is-hover {
1254
+ background-color: var(--sp-component-badge-accent-bg-hover);
1255
+ }
1256
+
1257
+ .sp-badge--cta {
1258
+ background-color: var(--sp-component-badge-cta-bg);
1259
+ color: var(--sp-component-badge-cta-text);
1260
+ }
1261
+
1262
+ .sp-badge--cta.sp-badge--interactive:hover,
1263
+ .sp-badge--cta.sp-badge--hover,
1264
+ .sp-badge--cta.is-hover {
1265
+ background-color: var(--sp-component-badge-cta-bg-hover);
1266
+ }
1267
+
1182
1268
  .sp-badge--interactive {
1183
1269
  cursor: pointer;
1184
1270
  transition:
@@ -1190,24 +1276,27 @@
1190
1276
  }
1191
1277
 
1192
1278
  .sp-badge--interactive:active,
1193
- .sp-badge--interactive.sp-badge--active,
1194
- .sp-badge--interactive.is-active {
1279
+ .sp-badge--active,
1280
+ .sp-badge.is-active {
1195
1281
  opacity: var(--sp-opacity-active);
1196
1282
  }
1197
1283
 
1198
1284
  .sp-badge--interactive:focus-visible,
1199
- .sp-badge--interactive.sp-badge--focus,
1200
- .sp-badge--interactive.is-focus {
1285
+ .sp-badge--focus,
1286
+ .sp-badge.is-focus {
1201
1287
  outline: none;
1202
1288
  box-shadow: 0 0 0 calc(var(--sp-focus-ring-width) + var(--sp-component-border-width)) var(--sp-color-focus-primary);
1203
1289
  }
1204
1290
 
1291
+ .sp-badge:disabled,
1292
+ .sp-badge[aria-disabled="true"],
1205
1293
  .sp-badge--disabled {
1206
1294
  opacity: var(--sp-opacity-disabled);
1207
1295
  pointer-events: none;
1208
1296
  }
1209
1297
 
1210
- .sp-badge--loading {
1298
+ .sp-badge--loading,
1299
+ .sp-badge[aria-busy="true"] {
1211
1300
  opacity: var(--sp-opacity-active);
1212
1301
  pointer-events: none;
1213
1302
  }
@@ -1292,6 +1381,10 @@
1292
1381
  font-size: var(--sp-font-lg-size);
1293
1382
  }
1294
1383
 
1384
+ .sp-iconbox--full {
1385
+ width: 100%;
1386
+ }
1387
+
1295
1388
  .sp-iconbox--pill {
1296
1389
  border-radius: var(--sp-radius-pill);
1297
1390
  }
@@ -1337,25 +1430,35 @@
1337
1430
  color: var(--sp-component-iconbox-ghost-text);
1338
1431
  }
1339
1432
 
1433
+ .sp-iconbox--accent {
1434
+ background-color: var(--sp-component-iconbox-accent-bg);
1435
+ color: var(--sp-component-iconbox-accent-text);
1436
+ }
1437
+
1438
+ .sp-iconbox--cta {
1439
+ background-color: var(--sp-component-iconbox-cta-bg);
1440
+ color: var(--sp-component-iconbox-cta-text);
1441
+ }
1442
+
1340
1443
  .sp-iconbox--interactive {
1341
1444
  cursor: pointer;
1342
1445
  }
1343
1446
 
1344
1447
  .sp-iconbox--interactive:hover,
1345
- .sp-iconbox--interactive.sp-iconbox--hover,
1346
- .sp-iconbox--interactive.is-hover {
1448
+ .sp-iconbox--hover,
1449
+ .sp-iconbox.is-hover {
1347
1450
  opacity: var(--sp-opacity-hover);
1348
1451
  }
1349
1452
 
1350
1453
  .sp-iconbox--interactive:active,
1351
- .sp-iconbox--interactive.sp-iconbox--active,
1352
- .sp-iconbox--interactive.is-active {
1454
+ .sp-iconbox--active,
1455
+ .sp-iconbox.is-active {
1353
1456
  opacity: var(--sp-opacity-active);
1354
1457
  }
1355
1458
 
1356
1459
  .sp-iconbox--interactive:focus-visible,
1357
- .sp-iconbox--interactive.sp-iconbox--focus,
1358
- .sp-iconbox--interactive.is-focus {
1460
+ .sp-iconbox--focus,
1461
+ .sp-iconbox.is-focus {
1359
1462
  outline: none;
1360
1463
  box-shadow: 0 0 0 calc(var(--sp-focus-ring-width) + var(--sp-component-border-width)) var(--sp-color-focus-primary);
1361
1464
  }
@@ -1368,7 +1471,8 @@
1368
1471
  cursor: not-allowed;
1369
1472
  }
1370
1473
 
1371
- .sp-iconbox--loading {
1474
+ .sp-iconbox--loading,
1475
+ .sp-iconbox[aria-busy="true"] {
1372
1476
  opacity: var(--sp-opacity-active);
1373
1477
  pointer-events: none;
1374
1478
  }
@@ -1377,20 +1481,46 @@
1377
1481
 
1378
1482
  .sp-testimonial {
1379
1483
  background-color: var(--sp-component-testimonial-bg);
1380
- border: var(--sp-component-border-width) solid var(--sp-component-testimonial-border);
1484
+ border: var(--sp-component-border-width) solid var(--sp-component-testimonial-border-base);
1381
1485
  border-radius: var(--sp-radius-lg);
1382
1486
  padding: var(--sp-space-32);
1383
1487
  display: flex;
1384
1488
  flex-direction: column;
1385
1489
  gap: var(--sp-space-24);
1490
+ box-shadow: var(--sp-component-testimonial-shadow);
1491
+ }
1492
+
1493
+ .sp-testimonial--elevated {
1494
+ box-shadow: var(--sp-component-testimonial-shadow-elevated);
1495
+ }
1496
+
1497
+ .sp-testimonial--flat {
1498
+ box-shadow: var(--sp-component-testimonial-shadow-flat);
1499
+ border-color: var(--sp-component-testimonial-border);
1500
+ }
1501
+
1502
+ .sp-testimonial--outline {
1503
+ background-color: var(--sp-component-testimonial-outline-bg);
1504
+ border-color: var(--sp-component-testimonial-outline-border);
1505
+ box-shadow: var(--sp-component-testimonial-shadow-outline);
1386
1506
  }
1387
1507
 
1508
+ .sp-testimonial--ghost {
1509
+ background-color: var(--sp-component-testimonial-ghost-bg);
1510
+ border-color: var(--sp-component-testimonial-ghost-border);
1511
+ box-shadow: var(--sp-component-testimonial-shadow-ghost);
1512
+ }
1513
+
1514
+ .sp-testimonial:disabled,
1515
+ .sp-testimonial[aria-disabled="true"],
1388
1516
  .sp-testimonial--disabled {
1389
1517
  opacity: var(--sp-opacity-disabled);
1390
1518
  pointer-events: none;
1519
+ cursor: not-allowed;
1391
1520
  }
1392
1521
 
1393
- .sp-testimonial--loading {
1522
+ .sp-testimonial--loading,
1523
+ .sp-testimonial[aria-busy="true"] {
1394
1524
  opacity: var(--sp-opacity-active);
1395
1525
  pointer-events: none;
1396
1526
  }
@@ -1412,7 +1542,8 @@
1412
1542
  .sp-testimonial--interactive.sp-testimonial--hover,
1413
1543
  .sp-testimonial--interactive.is-hover {
1414
1544
  transform: translateY(calc(var(--sp-component-border-width) * -1));
1415
- box-shadow: var(--sp-shadow-lg);
1545
+ box-shadow: var(--sp-component-testimonial-shadow-elevated);
1546
+ background-color: var(--sp-component-testimonial-bg-hover);
1416
1547
  }
1417
1548
 
1418
1549
  .sp-testimonial--interactive:active,
@@ -1495,12 +1626,15 @@
1495
1626
  border: none;
1496
1627
  }
1497
1628
 
1629
+ .sp-pricing-card:disabled,
1630
+ .sp-pricing-card[aria-disabled="true"],
1498
1631
  .sp-pricing-card--disabled {
1499
1632
  opacity: var(--sp-opacity-disabled);
1500
1633
  pointer-events: none;
1501
1634
  }
1502
1635
 
1503
- .sp-pricing-card--loading {
1636
+ .sp-pricing-card--loading,
1637
+ .sp-pricing-card[aria-busy="true"] {
1504
1638
  opacity: var(--sp-opacity-active);
1505
1639
  pointer-events: none;
1506
1640
  }
@@ -1516,37 +1650,38 @@
1516
1650
  .sp-pricing-card--interactive:hover,
1517
1651
  .sp-pricing-card--interactive:focus-within,
1518
1652
  .sp-pricing-card--interactive.sp-pricing-card--hover,
1519
- .sp-pricing-card--interactive.is-hover {
1653
+ .sp-pricing-card.is-hover {
1520
1654
  transform: translateY(calc(var(--sp-component-border-width) * -1));
1521
1655
  box-shadow: var(--sp-shadow-lg);
1656
+ background-color: var(--sp-component-pricing-card-bg-hover);
1522
1657
  }
1523
1658
 
1524
1659
  .sp-pricing-card--featured.sp-pricing-card--interactive:hover,
1525
1660
  .sp-pricing-card--featured.sp-pricing-card--interactive:focus-visible,
1526
1661
  .sp-pricing-card--featured.sp-pricing-card--interactive:focus-within,
1527
1662
  .sp-pricing-card--featured.sp-pricing-card--interactive.sp-pricing-card--hover,
1528
- .sp-pricing-card--featured.sp-pricing-card--interactive.is-hover,
1663
+ .sp-pricing-card--featured.is-hover,
1529
1664
  .sp-pricing-card--featured.sp-pricing-card--interactive.sp-pricing-card--focus,
1530
- .sp-pricing-card--featured.sp-pricing-card--interactive.is-focus {
1665
+ .sp-pricing-card--featured.is-focus {
1531
1666
  transform: scale(1.05) translateY(calc(var(--sp-component-border-width) * -1));
1532
1667
  }
1533
1668
 
1534
1669
  .sp-pricing-card--interactive:active,
1535
1670
  .sp-pricing-card--interactive.sp-pricing-card--active,
1536
- .sp-pricing-card--interactive.is-active {
1671
+ .sp-pricing-card.is-active {
1537
1672
  opacity: var(--sp-opacity-active);
1538
1673
  transform: translateY(0);
1539
1674
  }
1540
1675
 
1541
1676
  .sp-pricing-card--featured.sp-pricing-card--interactive:active,
1542
1677
  .sp-pricing-card--featured.sp-pricing-card--interactive.sp-pricing-card--active,
1543
- .sp-pricing-card--featured.sp-pricing-card--interactive.is-active {
1678
+ .sp-pricing-card--featured.is-active {
1544
1679
  transform: scale(1.05) translateY(0);
1545
1680
  }
1546
1681
 
1547
1682
  .sp-pricing-card--interactive:focus-visible,
1548
1683
  .sp-pricing-card--interactive.sp-pricing-card--focus,
1549
- .sp-pricing-card--interactive.is-focus {
1684
+ .sp-pricing-card.is-focus {
1550
1685
  outline: none;
1551
1686
  transform: translateY(calc(var(--sp-component-border-width) * -1));
1552
1687
  box-shadow: 0 0 0 calc(var(--sp-focus-ring-width) + var(--sp-component-border-width)) var(--sp-color-focus-primary);
@@ -1615,6 +1750,14 @@
1615
1750
  font-size: var(--sp-component-rating-size-lg);
1616
1751
  }
1617
1752
 
1753
+ .sp-rating--full {
1754
+ width: 100%;
1755
+ }
1756
+
1757
+ .sp-rating--pill {
1758
+ border-radius: var(--sp-radius-pill);
1759
+ }
1760
+
1618
1761
  .sp-rating:disabled,
1619
1762
  .sp-rating[aria-disabled="true"],
1620
1763
  .sp-rating--disabled {