@wwtdev/bsds-css 1.6.5 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/dist/components/_accordions.scss +3 -3
  2. package/dist/components/_badge.scss +13 -11
  3. package/dist/components/_banner.scss +2 -10
  4. package/dist/components/_buttons.scss +11 -5
  5. package/dist/components/_circle-buttons.scss +6 -6
  6. package/dist/components/_dropdown-options.scss +119 -0
  7. package/dist/components/_dropdown.scss +29 -154
  8. package/dist/components/_form-booleans.scss +8 -8
  9. package/dist/components/_form-character-count.scss +2 -2
  10. package/dist/components/_form-elements.scss +4 -4
  11. package/dist/components/_form-hints.scss +3 -2
  12. package/dist/components/_form-input-composite.scss +1 -1
  13. package/dist/components/_form-labels.scss +2 -2
  14. package/dist/components/_form-switches.scss +6 -6
  15. package/dist/components/_form-text-fields.scss +12 -10
  16. package/dist/components/_loader.scss +89 -0
  17. package/dist/components/_modal.scss +36 -0
  18. package/dist/components/_overlay.scss +22 -0
  19. package/dist/components/_pills.scss +9 -11
  20. package/dist/components/_profile-layout.scss +1 -5
  21. package/dist/components/_tables.scss +1 -1
  22. package/dist/components/_toast.scss +19 -25
  23. package/dist/components/_tooltip.scss +2 -2
  24. package/dist/components/accordions.css +3 -3
  25. package/dist/components/badge.css +12 -10
  26. package/dist/components/banner.css +2 -10
  27. package/dist/components/buttons.css +11 -5
  28. package/dist/components/circle-buttons.css +6 -6
  29. package/dist/components/dropdown-options.css +115 -0
  30. package/dist/components/dropdown.css +29 -154
  31. package/dist/components/form-booleans.css +8 -8
  32. package/dist/components/form-character-count.css +2 -2
  33. package/dist/components/form-elements.css +4 -4
  34. package/dist/components/form-hints.css +3 -2
  35. package/dist/components/form-input-composite.css +1 -1
  36. package/dist/components/form-labels.css +2 -2
  37. package/dist/components/form-switches.css +6 -6
  38. package/dist/components/form-text-fields.css +12 -10
  39. package/dist/components/loader.css +85 -0
  40. package/dist/components/modal.css +32 -0
  41. package/dist/components/overlay.css +18 -0
  42. package/dist/components/pills.css +9 -11
  43. package/dist/components/profile-layout.css +1 -5
  44. package/dist/components/tables.css +1 -1
  45. package/dist/components/toast.css +19 -25
  46. package/dist/components/tooltip.css +2 -2
  47. package/dist/wwt-bsds-preset.js +5 -2
  48. package/dist/wwt-bsds-wc-base.css +110 -15
  49. package/dist/wwt-bsds.css +408 -201
  50. package/dist/wwt-bsds.min.css +1 -1
  51. package/package.json +1 -1
package/dist/wwt-bsds.css CHANGED
@@ -37,11 +37,13 @@
37
37
  --bs-navy-300: #555775;
38
38
  --bs-navy-400: #1d1e48;
39
39
  --bs-navy-500: #131431;
40
+ --bs-navy-600: #070822;
40
41
  --bs-orange-10: rgba(250, 70, 22, 0.1);
41
42
  --bs-orange-100: #fed1c5;
42
43
  --bs-orange-200: #fda58d;
43
44
  --bs-orange-300: #fc7755;
44
45
  --bs-orange-400: #fa4616;
46
+ --bs-orange-500: #ea6712;
45
47
  --bs-orange-warning: #ea6712;
46
48
  --bs-pink-100: #f6cbe0;
47
49
  --bs-pink-200: #eb7eaf;
@@ -53,6 +55,7 @@
53
55
  --bs-purple-200: #bf8adf;
54
56
  --bs-purple-300: #a154d0;
55
57
  --bs-purple-400: #8212c4;
58
+ --bs-gray-50: #f7f7fc;
56
59
  --bs-gray-100: #f0f0fa;
57
60
  --bs-gray-200: #c9cad9;
58
61
  --bs-gray-300: #a3a4b7;
@@ -256,15 +259,71 @@ button {
256
259
  :root,
257
260
  :host {
258
261
  --bs-bg-base: var(--bs-white);
259
- --bs-bg-subtle: var(--bs-gray-100);
260
- --bs-bg-invert: var(--bs-navy-500);
261
- --bs-bg-invert-subtle: var(--bs-navy-400);
262
+ --bs-bg-base-elevated: var(--bs-white);
263
+ --bs-bg-light: var(--bs-gray-50);
264
+ --bs-bg-medium: var(--bs-gray-100);
265
+ --bs-bg-invert-base: var(--bs-navy-500);
266
+ --bs-bg-invert-medium: var(--bs-navy-400);
267
+ --bs-bg-disabled: var(--bs-gray-200);
268
+
262
269
  --bs-ink-base: var(--bs-black);
263
270
  --bs-ink-medium: var(--bs-gray-500);
264
271
  --bs-ink-light: var(--bs-gray-400);
265
272
  --bs-ink-accent: var(--bs-plum-400);
266
- --bs-ink-invert: var(--bs-white);
267
- --bs-border: var(--bs-gray-200);
273
+ --bs-ink-invert: var(--bs-gray-100);
274
+ --bs-ink-invert-medium: var(--bs-gray-200);
275
+ --bs-ink-blue: var(--bs-blue-500);
276
+ --bs-ink-red: var(--bs-red-500);
277
+ --bs-ink-pink: var(--bs-pink-500);
278
+ --bs-ink-orange: var(--bs-orange-500);
279
+ --bs-hyperlink: var(--bs-purple-400);
280
+ --bs-ink-disabled: var(--bs-gray-400);
281
+
282
+ --bs-blue-base: var(--bs-blue-400);
283
+ --bs-blue-medium: var(--bs-blue-300);
284
+ --bs-blue-light: var(--bs-blue-200);
285
+ --bs-blue-lightest: var(--bs-blue-100);
286
+ --bs-plum-base: var(--bs-plum-400);
287
+ --bs-plum-medium: var(--bs-plum-300);
288
+ --bs-plum-light: var(--bs-plum-200);
289
+ --bs-plum-lightest: var(--bs-plum-100);
290
+ --bs-red-base: var(--bs-red-400);
291
+ --bs-red-medium: var(--bs-red-300);
292
+ --bs-red-light: var(--bs-red-200);
293
+ --bs-red-lightest: var(--bs-red-100);
294
+ --bs-royal-base: var(--bs-royal-400);
295
+ --bs-royal-medium: var(--bs-royal-300);
296
+ --bs-royal-light: var(--bs-royal-200);
297
+ --bs-royal-lightest: var(--bs-royal-100);
298
+ --bs-navy-base: var(--bs-navy-400);
299
+ --bs-navy-medium: var(--bs-navy-300);
300
+ --bs-navy-light: var(--bs-navy-200);
301
+ --bs-navy-lightest: var(--bs-navy-100);
302
+ --bs-pink-base: var(--bs-pink-400);
303
+ --bs-pink-medium: var(--bs-pink-300);
304
+ --bs-pink-light: var(--bs-pink-200);
305
+ --bs-pink-lightest: var(--bs-pink-100);
306
+ --bs-violet-base: var(--bs-violet-400);
307
+ --bs-violet-medium: var(--bs-violet-300);
308
+ --bs-violet-light: var(--bs-violet-200);
309
+ --bs-violet-lightest: var(--bs-violet-100);
310
+ --bs-orange-base: var(--bs-orange-400);
311
+ --bs-orange-medium: var(--bs-orange-300);
312
+ --bs-orange-light: var(--bs-orange-200);
313
+ --bs-orange-lightest: var(--bs-orange-100);
314
+ --bs-purple-base: var(--bs-purple-400);
315
+ --bs-purple-medium: var(--bs-purple-300);
316
+ --bs-purple-light: var(--bs-purple-200);
317
+ --bs-purple-lightest: var(--bs-purple-100);
318
+ --bs-gray-dark: var(--bs-gray-500);
319
+ --bs-gray-base: var(--bs-gray-400);
320
+ --bs-gray-medium: var(--bs-gray-300);
321
+ --bs-gray-light: var(--bs-gray-200);
322
+ --bs-gray-lightest: var(--bs-gray-100);
323
+
324
+ --bs-border-dark: var(--bs-gray-400);
325
+ --bs-border-base: var(--bs-gray-200);
326
+ --bs-border-light: var(--bs-gray-100);
268
327
 
269
328
  /* Spacing */
270
329
  --bs-content-top: 4rem;
@@ -273,19 +332,49 @@ button {
273
332
  /* Type */
274
333
  --bs-font-normal: 400;
275
334
  --bs-font-bold: 600;
335
+
336
+ /* deprecate / phase out.. */
337
+ --bs-bg-subtle: var(--bs-gray-100);
338
+ --bs-bg-invert: var(--bs-navy-500);
339
+ --bs-bg-invert-subtle: var(--bs-navy-400);
340
+ --bs-border: var(--bs-gray-200);
276
341
  }
277
342
  .dark,
278
343
  .dark :where(:host) {
279
- --bs-bg-base: var(--bs-navy-500);
280
- --bs-bg-subtle: #2F2F51;
281
- --bs-bg-invert: var(--bs-white);
282
- --bs-bg-invert-subtle: var(--bs-gray-100);
283
- --bs-ink-base: var(--bs-white);
284
- --bs-ink-medium: var(--bs-gray-100);
285
- --bs-ink-light: var(--bs-gray-200);
286
- --bs-ink-accent: var(--bs-plum-100);
344
+ --bs-bg-base: var(--bs-navy-600);
345
+ --bs-bg-base-elevated: var(--bs-navy-500);
346
+ --bs-bg-light: var(--bs-navy-500);
347
+ --bs-bg-medium: var(--bs-navy-400);
348
+ --bs-bg-invert-base: var(--bs-gray-100);
349
+ --bs-bg-invert-medium: var(--bs-gray-50);
350
+ --bs-bg-disabled: var(--bs-gray-500);
351
+
352
+ --bs-ink-base: var(--bs-gray-100);
353
+ --bs-ink-medium: var(--bs-gray-200);
354
+ --bs-ink-light: var(--bs-gray-300);
355
+ --bs-ink-accent: var(--bs-gray-100);
287
356
  --bs-ink-invert: var(--bs-black);
288
- --bs-border: var(--bs-gray-400);
357
+ --bs-ink-invert-medium: var(--bs-gray-500);
358
+ --bs-ink-blue: var(--bs-blue-200);
359
+ --bs-ink-red: var(--bs-red-100);
360
+ --bs-ink-pink: var(--bs-pink-200);
361
+ --bs-hyperlink: var(--bs-purple-200);
362
+ --bs-ink-disabled: var(--bs-gray-300);
363
+
364
+ --bs-navy-base: var(--bs-navy-200);
365
+ --bs-plum-base: var(--bs-plum-100);
366
+ --bs-purple-base: var(--bs-purple-200);
367
+ --bs-royal-base: var(--bs-royal-200);
368
+ --bs-violet-base: var(--bs-violet-200);
369
+ --bs-gray-dark: var(--bs-gray-100);
370
+ --bs-gray-base: var(--bs-gray-200);
371
+ --bs-gray-light: var(--bs-gray-400);
372
+ --bs-gray-lightest: var(--bs-gray-500);
373
+
374
+ --bs-border-dark: var(--bs-gray-400);
375
+ --bs-border-base: var(--bs-gray-200);
376
+ --bs-border-light: var(--bs-gray-100);
377
+
289
378
  --bs-shadow-base: rgba(0, 0, 0, 0.06);
290
379
  --bs-shadow-invert: rgba(10, 11, 25, 0.60);
291
380
  --bs-shadow: -4px 4px 12px var(--bs-shadow-base),
@@ -302,6 +391,12 @@ button {
302
391
  -16px 16px 32px var(--bs-shadow-invert);
303
392
  --bs-shadow-drawerRight: -12px 12px 24px var(--bs-shadow-base),
304
393
  16px 16px 32px var(--bs-shadow-invert);
394
+
395
+ /* deprecate / phase out.. */
396
+ --bs-bg-subtle: #2F2F51;
397
+ --bs-bg-invert: var(--bs-white);
398
+ --bs-bg-invert-subtle: var(--bs-gray-100);
399
+ --bs-border: var(--bs-gray-400);
305
400
  }
306
401
  body,
307
402
  :host {
@@ -683,11 +778,11 @@ h6,
683
778
  /* Component Styles */
684
779
  .bs-accordion {
685
780
  --accordion-link-color: var(--bs-purple-400);
686
- --accordion-link-outline-color: var(--bs-blue-400);
781
+ --accordion-link-outline-color: var(--bs-blue-base);
687
782
  --accordion-outline-color: transparent;
688
783
  --accordion-padding-inline: 0;
689
784
  --accordion-text-size: var(--bs-text-sm);
690
- border-block: 1px solid var(--bs-border);
785
+ border-block: 1px solid var(--bs-border-base);
691
786
  display: block;
692
787
  }
693
788
  @media (min-width: 957px) {
@@ -716,7 +811,7 @@ h6,
716
811
  width: 100%;
717
812
  }
718
813
  .bs-accordion :where(header button:focus-visible) {
719
- --accordion-outline-color: var(--bs-blue-400);
814
+ --accordion-outline-color: var(--bs-blue-base);
720
815
  }
721
816
  .bs-accordion :where(header button) > * {
722
817
  font-size: inherit;
@@ -771,10 +866,14 @@ h6,
771
866
  :where(.bs-accordion[data-stacked]) + .bs-accordion:where([data-stacked]) {
772
867
  border-block-start-color: transparent;
773
868
  }
869
+ .bs-badge {
870
+ --badge-bg: var(--bs-red-base);
871
+ --badge-text: var(--bs-white);
872
+ }
774
873
  .bs-badge[data-position^='left']::before,
775
874
  .bs-badge:where(:not([data-position^='left']))::after {
776
875
  align-items: center;
777
- background: var(--bs-red-500);
876
+ background: var(--badge-bg);
778
877
  border-radius: 0.5rem;
779
878
  content: '';
780
879
  display: inline-flex;
@@ -794,7 +893,7 @@ h6,
794
893
  }
795
894
  .bs-badge[data-count]:where([data-position^='left'])::before,
796
895
  .bs-badge[data-count]:where(:not([data-position^='left']))::after {
797
- color: white;
896
+ color: var(--badge-text);
798
897
  content: attr(data-count);
799
898
  min-height: 1rem;
800
899
  min-width: 1rem;
@@ -817,17 +916,15 @@ h6,
817
916
  .bs-badge[data-show-zero]:where(:not([data-show-zero="false"]))::after {
818
917
  display: inline-flex;
819
918
  }
820
- .bs-badge[data-badge-color^='blue']::before,
821
- .bs-badge[data-badge-color^='blue']::after {
822
- background: var(--bs-blue-500);
919
+ .bs-badge[data-badge-color^='blue'] {
920
+ --badge-bg: var(--bs-blue-base);
823
921
  }
824
- .bs-badge[data-badge-color^='white']::before,
825
- .bs-badge[data-badge-color^='white']::after {
826
- background: white;
827
- color: var(--badge-text, var(--bs-black));
922
+ .bs-badge[data-badge-color^='white'] {
923
+ --badge-bg: var(--bs-white);
924
+ --badge-text: var(--bs-black);
828
925
  }
829
926
  .bs-banner {
830
- background-color: var(--bs-bg-invert-subtle);
927
+ background-color: var(--bs-royal-400);
831
928
  color: var(--bs-gray-100);
832
929
  display: flex;
833
930
  justify-content: center;
@@ -839,9 +936,6 @@ h6,
839
936
  .bs-banner:where([data-dismissed]) {
840
937
  display: none;
841
938
  }
842
- :where(.dark) .bs-banner {
843
- color: var(--bs-black);
844
- }
845
939
  .bs-banner :where(.bs-banner-content) {
846
940
  align-items: center;
847
941
  display: flex;
@@ -859,12 +953,9 @@ h6,
859
953
  padding-right: 1.25rem;
860
954
  }
861
955
  .bs-banner :where(.bs-banner-content p a) {
862
- color: var(--bs-pink-200);
956
+ color: var(--bs-pink-light);
863
957
  text-decoration: none;
864
958
  }
865
- :where(.dark) .bs-banner :where(.bs-banner-content p a) {
866
- color: var(--bs-pink-500);
867
- }
868
959
  .bs-banner :where(.bs-banner-content p a:hover) {
869
960
  text-decoration: underline;
870
961
  }
@@ -879,9 +970,11 @@ h6,
879
970
  }
880
971
  }
881
972
  .bs-button {
882
- --btn-main: var(--bs-blue-400);
883
- --btn-secondary: var(--bs-blue-300);
973
+ --btn-main: var(--bs-blue-base);
974
+ --btn-secondary: var(--bs-blue-medium);
884
975
  --btn-highlight: var(--bs-blue-100);
976
+ --btn-padding: var(--bs-space-1) var(--bs-space-4) calc(var(--bs-space-1) * 1.5);
977
+ --btn-focus-pseudo-width: calc(100% + 0.5rem);
885
978
  align-items: center;
886
979
  background-color: var(--btn-main);
887
980
  border: none;
@@ -894,7 +987,7 @@ h6,
894
987
  justify-content: center;
895
988
  line-height: 1.5;
896
989
  outline: 2px solid transparent;
897
- padding: var(--bs-space-1) var(--bs-space-4) calc(var(--bs-space-1) * 1.5);
990
+ padding: var(--btn-padding);
898
991
  position: relative;
899
992
  text-decoration: none;
900
993
  transition: all 100ms ease-in-out;
@@ -918,9 +1011,11 @@ h6,
918
1011
  content: '';
919
1012
  height: calc(100% + 0.5rem);
920
1013
  inset: -0.25rem;
1014
+ left: auto;
921
1015
  position: absolute;
1016
+ right: auto;
922
1017
  transition: border-color 0.125s ease-in-out;
923
- width: calc(100% + 0.5rem);
1018
+ width: var(--btn-focus-pseudo-width);
924
1019
  }
925
1020
  .bs-button:focus::before {
926
1021
  border-color: var(--btn-main);
@@ -986,6 +1081,8 @@ h6,
986
1081
  }
987
1082
  /* Text Button */
988
1083
  .bs-button:where([data-text]) {
1084
+ --btn-padding: 0 0;
1085
+ --btn-focus-pseudo-width: calc(100% + 1.25rem); /* text btns don't have side padding, but we do want focus outline to look padded */
989
1086
  background-color: transparent;
990
1087
  color: var(--bs-blue-500);
991
1088
  cursor: pointer;
@@ -994,7 +1091,7 @@ h6,
994
1091
  line-height: 150%;
995
1092
  }
996
1093
  .bs-button:where([data-text]):hover {
997
- color: var(--bs-blue-400);
1094
+ color: var(--bs-blue-base);
998
1095
  background-color: transparent;
999
1096
  text-decoration: underline;
1000
1097
  }
@@ -1044,9 +1141,9 @@ a.bs-button {
1044
1141
  vertical-align: middle;
1045
1142
  }
1046
1143
  .bs-circle-button {
1047
- --btn-main: var(--bs-blue-400);
1048
- --btn-secondary: var(--bs-blue-300);
1049
- --btn-highlight: var(--bs-blue-100);
1144
+ --btn-main: var(--bs-blue-base);
1145
+ --btn-secondary: var(--bs-blue-medium);
1146
+ --btn-highlight: var(--bs-blue-lightest);
1050
1147
  --btn-border-color: transparent;
1051
1148
  --btn-border-radius: 50%;
1052
1149
  --btn-icon-bg-color: var(--btn-main);
@@ -1154,32 +1251,29 @@ a.bs-circle-button {
1154
1251
  }
1155
1252
  /* Disabled State */
1156
1253
  .bs-circle-button:where(:disabled, [aria-disabled]:not([aria-disabled="false"])) /* for links as buttons */ {
1157
- --btn-icon-stroke-color: var(--bs-gray-400);
1158
- --btn-text-color: var(--bs-gray-400);
1254
+ --btn-icon-stroke-color: var(--bs-ink-disabled);
1255
+ --btn-text-color: var(--bs-ink-disabled);
1159
1256
  pointer-events: none;
1160
1257
  }
1161
1258
  .bs-circle-button:where(:disabled, [aria-disabled]:not([aria-disabled="false"])) :where(.bs-circle-button-icon) {
1162
- background-color: var(--bs-gray-200);
1259
+ background-color: var(--bs-bg-disabled);
1163
1260
  }
1164
- /* Positioning the parent */
1165
- .bs-dropdown {
1261
+ /* Parent */
1262
+ .bs-dropdown-parent {
1166
1263
  display: inline-block;
1167
1264
  position: relative;
1168
1265
  }
1169
- /* Option list */
1170
- .bs-dropdown :where(ul) {
1171
- background-color: var(--bs-white);
1266
+ /* Content */
1267
+ .bs-dropdown {
1268
+ background-color: var(--bs-bg-base-elevated);
1172
1269
  border-radius: 4px;
1173
1270
  bottom: auto;
1174
1271
  box-shadow: var(--bs-shadow-contentMedium);
1175
1272
  line-height: 1.5rem;
1176
- list-style: none;
1177
1273
  margin: 0;
1178
1274
  max-height: 0;
1179
- max-width: 16.875rem;
1180
1275
  opacity: 0;
1181
1276
  overflow-y: auto;
1182
- padding: 0;
1183
1277
  position: absolute;
1184
1278
  top: calc(100% + 0.5rem);
1185
1279
  transition-duration: 75ms;
@@ -1187,28 +1281,48 @@ a.bs-circle-button {
1187
1281
  transition-timing-function: ease-in-out;
1188
1282
  z-index: 999;
1189
1283
  }
1190
- /* (not) data-variant="fit" */
1191
- .bs-dropdown:not([data-variant="fit"]) :where(ul) {
1192
- width: 16.875rem;
1284
+ /* Sizing */
1285
+ .bs-dropdown:where([data-width="sm"]) {
1286
+ width: 10rem;
1287
+ }
1288
+ .bs-dropdown:where([data-width="md"]),
1289
+ .bs-dropdown:where(:not([data-width])) {
1290
+ width: 20rem;
1291
+ }
1292
+ .bs-dropdown:where([data-width="lg"]) {
1293
+ width: 40rem;
1294
+ }
1295
+ .bs-dropdown:where([data-width="content"]) {
1296
+ width: auto;
1297
+ }
1298
+ .bs-dropdown-parent:where([data-width="toggle"]) :where(.bs-dropdown) {
1299
+ width: 100%;
1193
1300
  }
1194
1301
  /* data-shown */
1195
- .bs-dropdown:where([data-shown]) :where(ul) {
1302
+ .bs-dropdown:where([data-shown]) {
1196
1303
  max-height: 20rem;
1197
1304
  opacity: 1;
1198
- padding-top: 0.75rem;
1199
1305
  }
1200
- /* data-position="top" */
1201
- .bs-dropdown:where([data-position="top"]) :where(ul) {
1306
+ /* data-top */
1307
+ .bs-dropdown:where([data-top]) {
1202
1308
  bottom: calc(100% + 0.5rem);
1203
1309
  top: auto;
1204
1310
  }
1205
1311
  /* data-justify="center" */
1206
- .bs-dropdown:where([data-justify="center"]) :where(ul) {
1312
+ .bs-dropdown-parent:where([data-center]) :where(.bs-dropdown) {
1207
1313
  left: 50%;
1208
1314
  transform: translateX(-50%);
1209
1315
  }
1316
+ /* Option list */
1317
+ .bs-dropdown-options {
1318
+ list-style: none;
1319
+ padding: 0;
1320
+ }
1321
+ .bs-dropdown-options :where(li:first-child) {
1322
+ margin-top: 0.5rem;
1323
+ }
1210
1324
  /* Option list item */
1211
- .bs-dropdown :where(ul li) {
1325
+ .bs-dropdown-options :where(li) {
1212
1326
  align-items: center;
1213
1327
  border-bottom: 2px solid transparent;
1214
1328
  border-left: 4px solid transparent;
@@ -1227,104 +1341,78 @@ a.bs-circle-button {
1227
1341
  padding-top: 0.25rem;
1228
1342
  row-gap: 0.125rem;
1229
1343
  }
1230
- /* data-variant="search" (search input) */
1231
- .bs-dropdown :where(ul li[data-variant~="search"]) {
1232
- border-left: none;
1233
- cursor: default;
1234
- display: block;
1235
- }
1236
- /* data-variant="break" (list item) */
1237
- .bs-dropdown :where(ul li[data-variant~="break"]) {
1238
- border-left: none;
1239
- cursor: default;
1240
- display: block;
1241
- padding: 0;
1242
- }
1243
- /* data-variant="break" (actual line break) */
1244
- .bs-dropdown :where(ul li[data-variant~="break"] hr) {
1245
- background: var(--bs-navy-200);
1246
- }
1247
- /* data-variant="2-col" */
1248
- .bs-dropdown :where(ul li[data-variant~="2-col"]) {
1344
+ /* Variant: 2-col */
1345
+ .bs-dropdown-options :where(li[data-variant~="2-col"]) {
1249
1346
  grid-template-columns: min-content 1fr;
1250
1347
  }
1251
- /* data-variant="description" */
1252
- /* Description will be the 2nd child in a 1-column item */
1253
- .bs-dropdown :where(ul li:not([data-variant~="2-col"])[data-variant~="description"] :nth-child(2)) {
1348
+ /* Variant: description */
1349
+ .bs-dropdown-options :where(li:not([data-variant~="2-col"])[data-variant~="description"] :nth-child(2)) {
1254
1350
  color: var(--bs-ink-light);
1255
1351
  font-size: var(--bs-text-xs);
1256
1352
  height: 1.125rem;
1257
1353
  line-height: 1.125rem;
1258
1354
  }
1259
- /* data-variant="2-col description" */
1260
- /* Description will be the 3rd child in a 2-column item */
1261
- .bs-dropdown :where(ul li[data-variant~="2-col"][data-variant~="description"] :nth-child(3)) {
1355
+ /* Variant: 2-col description */
1356
+ .bs-dropdown-options :where(li[data-variant~="2-col"][data-variant~="description"] :nth-child(3)) {
1262
1357
  color: var(--bs-ink-light);
1263
1358
  font-size: var(--bs-text-xs);
1264
1359
  grid-column-start: 2;
1265
1360
  height: 1.125rem;
1266
1361
  line-height: 1.125rem;
1267
1362
  }
1268
- /* List item hover or data-selected */
1269
- .bs-dropdown :where(ul li:hover),
1270
- .bs-dropdown :where(ul li[data-selected]) {
1271
- background-color: var(--bs-bg-subtle);
1272
- border-left: 4px solid var(--bs-blue-400);
1273
- color: var(--bs-blue-400);
1363
+ /* Hover or data-selected */
1364
+ .bs-dropdown-options :where(li:hover),
1365
+ .bs-dropdown-options :where(li[data-selected]) {
1366
+ background-color: var(--bs-bg-medium);
1367
+ border-left: 4px solid var(--bs-blue-base);
1368
+ color: var(--bs-blue-base);
1274
1369
  outline: none;
1275
1370
  }
1276
- /* data-variant="search" or data-variant="break" hover */
1277
- .bs-dropdown :where(ul li[data-variant~="search"]:hover),
1278
- .bs-dropdown :where(ul li[data-variant~="break"]:hover) {
1279
- background-color: transparent;
1280
- border-left: none;
1281
- color: var(--bs-ink-base);
1282
- }
1283
- /* data-variant="negative" hover, data-selected, and both */
1284
- .bs-dropdown :where(ul li[data-variant~="negative"]:hover),
1285
- .bs-dropdown :where(ul li[data-variant~="negative"][data-selected]),
1286
- .bs-dropdown :where(ul li[data-variant~="negative"][data-selected]:hover) {
1371
+ /* Variant: negative */
1372
+ .bs-dropdown-options :where(li[data-variant~="negative"]:hover),
1373
+ .bs-dropdown-options :where(li[data-variant~="negative"][data-selected]),
1374
+ .bs-dropdown-options :where(li[data-variant~="negative"][data-selected]:hover) {
1287
1375
  /* 25% alpha version of --bs-red-400 */
1288
1376
  background-color: rgba(248, 169, 170, 0.25);
1289
1377
  border-left: 4px solid var(--bs-red-500);
1290
1378
  color: var(--bs-red-500);
1291
1379
  }
1292
- /* data-variant="description" or data-variant="2-col description" hover or data-selected */
1293
- .bs-dropdown :where(ul li:not([data-variant~="2-col"])[data-variant~="description"]:hover :nth-child(2)),
1294
- .bs-dropdown :where(ul li[data-variant~="2-col"][data-variant~="description"]:hover :nth-child(3)),
1295
- .bs-dropdown :where(ul li:not([data-variant~="2-col"])[data-variant~="description"][data-selected] :nth-child(2)),
1296
- .bs-dropdown :where(ul li[data-variant~="2-col"][data-variant~="description"][data-selected] :nth-child(3)) {
1297
- color: var(--bs-blue-400);
1298
- }
1299
- /* data-variant="negative description" or data-variant="2-col negative description" hover or data-selected */
1300
- .bs-dropdown :where(ul li[data-variant~="negative"]:not([data-variant~="2-col"])[data-variant~="description"]:hover :nth-child(2)),
1301
- .bs-dropdown :where(ul li[data-variant~="negative"][data-variant~="2-col"][data-variant~="description"]:hover :nth-child(3)),
1302
- .bs-dropdown :where(ul li[data-variant~="negative"]:not([data-variant~="2-col"])[data-variant~="description"][data-selected] :nth-child(2)),
1303
- .bs-dropdown :where(ul li[data-variant~="negative"][data-variant~="2-col"][data-variant~="description"][data-selected] :nth-child(3)) {
1380
+ /* Hover or data-selected for 2-col/description variants */
1381
+ .bs-dropdown-options :where(li:not([data-variant~="2-col"])[data-variant~="description"]:hover :nth-child(2)),
1382
+ .bs-dropdown-options :where(li[data-variant~="2-col"][data-variant~="description"]:hover :nth-child(3)),
1383
+ .bs-dropdown-options :where(li:not([data-variant~="2-col"])[data-variant~="description"][data-selected] :nth-child(2)),
1384
+ .bs-dropdown-options :where(li[data-variant~="2-col"][data-variant~="description"][data-selected] :nth-child(3)) {
1385
+ color: var(--bs-blue-base);
1386
+ }
1387
+ /* Hover or data-selected for negative + 2-col/description variants */
1388
+ .bs-dropdown-options :where(li[data-variant~="negative"]:not([data-variant~="2-col"])[data-variant~="description"]:hover :nth-child(2)),
1389
+ .bs-dropdown-options :where(li[data-variant~="negative"][data-variant~="2-col"][data-variant~="description"]:hover :nth-child(3)),
1390
+ .bs-dropdown-options :where(li[data-variant~="negative"]:not([data-variant~="2-col"])[data-variant~="description"][data-selected] :nth-child(2)),
1391
+ .bs-dropdown-options :where(li[data-variant~="negative"][data-variant~="2-col"][data-variant~="description"][data-selected] :nth-child(3)) {
1304
1392
  color: var(--bs-red-500);
1305
1393
  }
1306
1394
  /* List option mouse click focus (do not show) */
1307
- .bs-dropdown :where(ul li:focus:not(:focus-visible)){
1395
+ .bs-dropdown-options :where(li:focus:not(:focus-visible)){
1308
1396
  outline: none;
1309
1397
  }
1310
1398
  /* data-variant="negative" list option mouse click focus (do not show) */
1311
- li[data-variant~="negative"]:focus:not(:focus-visible) {
1399
+ .bs-dropdown-options :where(li[data-variant~="negative"]:focus:not(:focus-visible)) {
1312
1400
  outline: none;
1313
1401
  }
1314
1402
  /* List option keyboard navigation focus */
1315
- .bs-dropdown :where(ul li:focus-visible) {
1316
- --focus-border-color: var(--bs-blue-400);
1403
+ .bs-dropdown-options :where(li:focus-visible) {
1404
+ --focus-border-color: var(--bs-blue-base);
1317
1405
  border: 2px solid var(--focus-border-color);
1318
1406
  outline: none;
1319
1407
  padding-left: 0.625rem;
1320
1408
  }
1321
1409
  /* Navigation focus on a selected element should preserve 4px left border */
1322
- .bs-dropdown :where(ul li[data-selected]:focus-visible) {
1410
+ .bs-dropdown-options :where(li[data-selected]:focus-visible) {
1323
1411
  border-left: 4px solid var(--focus-border-color);
1324
1412
  padding-left: 0.5rem;
1325
1413
  }
1326
1414
  /* data-variant="negative" list option keyboard navigation focus */
1327
- .bs-dropdown :where(ul li[data-variant~="negative"]:focus-visible) {
1415
+ .bs-dropdown-options :where(li[data-variant~="negative"]:focus-visible) {
1328
1416
  --focus-border-color: var(--bs-red-200);
1329
1417
  }
1330
1418
  :where(label, legend) {
@@ -1338,28 +1426,28 @@ li[data-variant~="negative"]:focus:not(:focus-visible) {
1338
1426
  width: 100%;
1339
1427
  }
1340
1428
  :where([data-required]) {
1341
- color: var(--bs-red-500);
1429
+ color: var(--bs-ink-red);
1342
1430
  }
1343
1431
  :where(label[data-disabled], [data-disabled] [data-required], [data-disabled] label) {
1344
- --label-color: var(--bs-ink-light);
1432
+ --label-color: var(--bs-ink-disabled);
1345
1433
  }
1346
1434
  /* Generally applicable (all input types) */
1347
1435
  :where([data-required]) {
1348
- color: var(--bs-red-500);
1436
+ color: var(--bs-ink-red);
1349
1437
  font-weight: var(--bs-font-bold, 600);
1350
1438
  }
1351
1439
  :where([data-disabled], [data-disabled] [data-required]) {
1352
1440
  color: var(--bs-gray-400);
1353
1441
  }
1354
1442
  :where(.box) :is(input, textarea, select):where(:focus-visible) {
1355
- --offset-color: var(--bs-bg-subtle);
1443
+ --offset-color: var(--bs-bg-medium);
1356
1444
  }
1357
1445
  :where(.box[data-invert]) :is(input, textarea, select):where(:focus-visible) {
1358
- --offset-color: var(--bs-bg-invert);
1446
+ --offset-color: var(--bs-bg-invert-base);
1359
1447
  }
1360
1448
  /* Errors and Messages */
1361
1449
  :is(input, select, textarea):where([data-error]) {
1362
- --input-border: var(--bs-red-500);
1450
+ --input-border: var(--bs-ink-red);
1363
1451
  }
1364
1452
  /* Fieldset */
1365
1453
  :where(fieldset) {
@@ -1379,15 +1467,17 @@ li[data-variant~="negative"]:focus:not(:focus-visible) {
1379
1467
  }
1380
1468
  input:where(:not([type='checkbox'], [type='radio'], [type='file'], [type='range'])),
1381
1469
  textarea, select {
1470
+ --input-bg: var(--bs-bg-base);
1471
+ --input-border: var(--bs-violet-medium);
1382
1472
  -webkit-appearance: none;
1383
1473
  -moz-appearance: none;
1384
1474
  appearance: none;
1385
- background-color: var(--input-bg, var(--bs-bg-base));
1386
- border-color: var(--input-border, var(--bs-violet-300));
1475
+ background-color: var(--input-bg);
1476
+ border-color: var(--input-border);
1387
1477
  border-radius: 0.25rem;
1388
1478
  border-style: solid;
1389
1479
  border-width: var(--input-border-width, 1px);
1390
- caret-color: var(--bs-blue-400);
1480
+ caret-color: var(--bs-blue-base);
1391
1481
  color: var(--bs-ink-base);
1392
1482
  font-size: var(--bs-text-base);
1393
1483
  font-weight: 400;
@@ -1407,10 +1497,10 @@ textarea {
1407
1497
  resize: vertical;
1408
1498
  }
1409
1499
  :is(input, textarea, select)::-moz-placeholder {
1410
- color: var(--bs-violet-200);
1500
+ color: var(--bs-violet-lightest);
1411
1501
  }
1412
1502
  :is(input, textarea, select)::placeholder {
1413
- color: var(--bs-violet-200);
1503
+ color: var(--bs-violet-lightest);
1414
1504
  }
1415
1505
  :is(input, textarea, select):where(:focus-visible)::-moz-placeholder {
1416
1506
  opacity: 0;
@@ -1419,17 +1509,17 @@ textarea {
1419
1509
  opacity: 0;
1420
1510
  }
1421
1511
  :is(input:where(:not([type='checkbox'], [type='radio'])), textarea, select):where(:focus-visible) {
1422
- --input-border: var(--bs-blue-400);
1512
+ --input-border: var(--bs-blue-base);
1423
1513
  outline-width: 0px;
1424
1514
  }
1425
1515
  :is(input:where(:not([type='checkbox'],[type='radio'])), textarea, select):where(:disabled) {
1426
- --input-border: var(--bs-gray-400);
1427
- background-color: var(--bs-gray-200);
1428
- color: var(--bs-gray-400);
1516
+ --input-border: var(--bs-ink-disabled);
1517
+ --input-bg: var(--bs-bg-disabled);
1518
+ color: var(--bs-ink-disabled);
1429
1519
  }
1430
1520
  /* Errors and Messages */
1431
1521
  :is(input, select, textarea):where([data-error]) {
1432
- --input-border: var(--bs-red-500);
1522
+ --input-border: var(--bs-ink-red);
1433
1523
  }
1434
1524
  /*
1435
1525
  Removes the built-in 'margin' on bottom of textarea
@@ -1445,12 +1535,12 @@ see https://bugs.chromium.org/p/chromium/issues/detail?id=89530
1445
1535
  opacity: 1;
1446
1536
  }
1447
1537
  :is(input, textarea, select):disabled::-moz-placeholder, :is(input, textarea, select)[disabled]::-moz-placeholder {
1448
- color: var(--bs-gray-400);
1538
+ color: var(--bs-ink-disabled);
1449
1539
  opacity: 1;
1450
1540
  }
1451
1541
  :is(input, textarea, select):disabled::placeholder,
1452
1542
  :is(input, textarea, select)[disabled]::placeholder {
1453
- color: var(--bs-gray-400);
1543
+ color: var(--bs-ink-disabled);
1454
1544
  opacity: 1;
1455
1545
  }
1456
1546
  /* Select */
@@ -1584,7 +1674,7 @@ and issues with box-sizing
1584
1674
  }
1585
1675
  /* -------- Focus styles -------- */
1586
1676
  .bs-input-addon {
1587
- --focus-border: var(--bs-blue-400);
1677
+ --focus-border: var(--bs-blue-base);
1588
1678
  }
1589
1679
  .bs-input-addon:where(:not([data-multifocus]):focus-within),
1590
1680
  .bs-input-addon:where([data-multifocus]) :where(input, select):where(:focus, :focus-within, :focus-visible),
@@ -1670,10 +1760,10 @@ and issues with box-sizing
1670
1760
  :where([disabled], [data-disabled]) + .bs-character-count,
1671
1761
  :where([disabled], [data-disabled]) .bs-character-count,
1672
1762
  .bs-character-count:where([data-disabled]) {
1673
- color: var(--bs-gray-400);
1763
+ color: var(--bs-ink-disabled);
1674
1764
  }
1675
1765
  .bs-character-count:where([data-error]) {
1676
- color: var(--bs-red-400);
1766
+ color: var(--bs-ink-red);
1677
1767
  }
1678
1768
  /* Containers and Labels for Checkbox/Radio */
1679
1769
  .bs-boolean {
@@ -1726,7 +1816,7 @@ and issues with box-sizing
1726
1816
  :where(input[type='checkbox'], input[type='radio']):focus-visible {
1727
1817
  box-shadow: inset 0 0 0 0.125rem var(--box-shadow),
1728
1818
  0 0 0 2px var(--offset-color, var(--bs-bg-base)),
1729
- 0 0 0 4px var(--outline-color, var(--bs-blue-400));
1819
+ 0 0 0 4px var(--outline-color, var(--bs-blue-base));
1730
1820
  outline: 2px solid transparent;
1731
1821
  }
1732
1822
  :where(input[type='checkbox']) {
@@ -1738,7 +1828,7 @@ and issues with box-sizing
1738
1828
  /* Checkbox's checkmark */
1739
1829
  input:where([type='checkbox'])::before {
1740
1830
  --filled-size: 1rem;
1741
- --check-fill-color: var(--bs-blue-400);
1831
+ --check-fill-color: var(--bs-blue-base);
1742
1832
 
1743
1833
  content: '';
1744
1834
  border-radius: 0.125rem;
@@ -1770,7 +1860,7 @@ input:where([type='checkbox']):where(:indeterminate)::after {
1770
1860
  /* Radio's dot */
1771
1861
  input:where([type='radio'])::before {
1772
1862
  --filled-size: 1rem;
1773
- --radio-fill-color: var(--bs-blue-400);
1863
+ --radio-fill-color: var(--bs-blue-base);
1774
1864
 
1775
1865
  background-color: var(--radio-fill-color);
1776
1866
  border-radius: 50%;
@@ -1816,21 +1906,21 @@ input:where([type='checkbox']:checked, [type='checkbox']:indeterminate, [type='r
1816
1906
  }
1817
1907
  /* Disabled State */
1818
1908
  input:where([type='checkbox'], [type='radio']):disabled {
1819
- --box-shadow: var(--bs-gray-400);
1909
+ --box-shadow: var(--bs-bg-disabled);
1820
1910
  background-color: transparent;
1821
1911
  cursor: default;
1822
1912
  }
1823
1913
  input:where([type='checkbox']):checked:disabled::before,
1824
1914
  input:where([type='checkbox']):indeterminate:disabled::before {
1825
- --check-fill-color: var(--bs-gray-400);
1915
+ --check-fill-color: var(--bs-bg-disabled);
1826
1916
  }
1827
1917
  input:where([type='radio']):checked:disabled::before {
1828
- --radio-fill-color: var(--bs-gray-400);
1918
+ --radio-fill-color: var(--bs-bg-disabled);
1829
1919
  }
1830
1920
  /* Error state */
1831
1921
  input:where([type='checkbox'], [type='radio'])[data-error] {
1832
- --box-shadow: var(--bs-red-500);
1833
- --outline-color: var(--bs-red-200);
1922
+ --box-shadow: var(--bs-red-base);
1923
+ --outline-color: var(--bs-red-base);
1834
1924
  }
1835
1925
  .bs-switch {
1836
1926
  --box-shadow: var(--bs-ink-base);
@@ -1875,7 +1965,7 @@ input:where([type='checkbox'], [type='radio'])[data-error] {
1875
1965
  }
1876
1966
  .bs-switch input:where(:checked) ~ span,
1877
1967
  .bs-switch:where([aria-pressed]):where(:not([aria-pressed="false"])) span {
1878
- --switch-background: var(--bs-blue-400);
1968
+ --switch-background: var(--bs-blue-base);
1879
1969
  }
1880
1970
  /* Toggle "ball" */
1881
1971
  .bs-switch span::before {
@@ -1931,26 +2021,27 @@ input:where([type='checkbox'], [type='radio'])[data-error] {
1931
2021
  /* Focus state */
1932
2022
  .bs-switch :where(input:focus-visible) + span {
1933
2023
  box-shadow: 0 0 0 2px var(--offset-color, var(--bs-bg-base)),
1934
- 0 0 0 4px var(--outline-color, var(--bs-blue-400));
2024
+ 0 0 0 4px var(--outline-color, var(--bs-blue-base));
1935
2025
  outline: 2px solid transparent;
1936
2026
  }
1937
2027
  :where(.box) .bs-switch :where(input:focus-visible) + span {
1938
- --offset-color: var(--bs-bg-subtle);
2028
+ --offset-color: var(--bs-bg-medium);
1939
2029
  }
1940
2030
  :where(.box[data-invert]) .bs-switch :where(input:focus-visible) + span {
1941
- --offset-color: var(--bs-bg-invert);
2031
+ --offset-color: var(--bs-bg-invert-base);
1942
2032
  }
1943
2033
  /* Disabled state */
1944
2034
  .bs-switch:where([data-disabled]) {
1945
- --ball-background: var(--bs-gray-400);
1946
- --switch-background: var(--bs-gray-200);
2035
+ --ball-background: var(--bs-ink-disabled);
2036
+ --switch-background: var(--bs-bg-disabled);
1947
2037
  }
1948
2038
  .bs-switch input:where(:disabled) {
1949
2039
  cursor: default;
1950
2040
  }
1951
2041
  .bs-hint {
2042
+ --hint-color: var(--bs-ink-light);
1952
2043
  min-width: 0;
1953
- color: var(--bs-ink-light);
2044
+ color: var(--hint-color);
1954
2045
  font-size: var(--bs-text-xs);
1955
2046
  padding: 0;
1956
2047
  margin: 0;
@@ -1958,12 +2049,140 @@ input:where([type='checkbox'], [type='radio'])[data-error] {
1958
2049
  overflow-wrap: break-word;
1959
2050
  }
1960
2051
  .bs-hint:where([data-error]) {
1961
- color: var(--bs-red-400);
2052
+ --hint-color: var(--bs-ink-red);
2053
+ }
2054
+ .bs-modal {
2055
+ background-color: var(--bs-bg-base-elevated);
2056
+ border-radius: 4px;
2057
+ box-shadow: var(--bs-shadow-contentHigh);
2058
+ left: 1.5rem;
2059
+ max-height: calc(100% - 3rem);
2060
+ opacity: 0;
2061
+ overflow: auto;
2062
+ padding: 1.5rem;
2063
+ position: fixed;
2064
+ right: 1.5rem;
2065
+ top: 50%;
2066
+ transform: translateY(-50%);
2067
+ transition-duration: 75ms;
2068
+ transition-property: opacity;
2069
+ transition-timing-function: ease-in-out;
2070
+ z-index: 9999;
2071
+ }
2072
+ .bs-modal:where([data-shown]) {
2073
+ opacity: 1;
2074
+ }
2075
+ @media (min-width: 752px) {
2076
+ .bs-modal {
2077
+ left: 50%;
2078
+ margin: 0;
2079
+ max-height: 40.625rem;
2080
+ transform: translate(-50%, -50%);
2081
+ width: 35rem;
2082
+ }
2083
+ }
2084
+ .bs-overlay {
2085
+ -webkit-backdrop-filter: blur(4px);
2086
+ backdrop-filter: blur(4px);
2087
+ background: rgba(29, 30, 72, 0.05);
2088
+ bottom: 0;
2089
+ left: 0;
2090
+ opacity: 0;
2091
+ position: fixed;
2092
+ right: 0;
2093
+ top: 0;
2094
+ transition-duration: 75ms;
2095
+ transition-property: opacity;
2096
+ transition-timing-function: ease-in-out;
2097
+ z-index: 9998;
2098
+ }
2099
+ .bs-overlay:where([data-shown]) {
2100
+ opacity: 1;
2101
+ }
2102
+ .bs-loader {
2103
+ --loader-dot-bg: var(--bs-blue-500); /* possibly add variants if requested */
2104
+ --loader-dot-size: .75rem;
2105
+ --loader-dot-top: 18px;
2106
+ --loader-dot-top: calc(50% - var(--loader-dot-size)/2);
2107
+ --loader-dot-translate: 1.75rem; /* i.e., calc(var(--loader-width)/2 - var(--loader-dot-size)/2); */
2108
+ --loader-height: 3rem;
2109
+ --loader-width: 4rem;
2110
+ display: block;
2111
+ height: var(--loader-height);
2112
+ margin-inline-start: auto;
2113
+ margin-inline-end: auto;
2114
+ position: relative;
2115
+ width: var(--loader-width);
2116
+ }
2117
+ .bs-loader:where([data-size="sm"]) {
2118
+ --loader-dot-size: .5rem;
2119
+ --loader-dot-top: 0;
2120
+ --loader-dot-translate: 1.125rem;
2121
+ --loader-height: .5rem;
2122
+ --loader-width: 3rem;
2123
+ }
2124
+ .bs-loader:where([data-size="lg"]) {
2125
+ --loader-dot-size: 1rem;
2126
+ --loader-dot-translate: 2.375rem;
2127
+ --loader-height: 4rem;
2128
+ --loader-width: 6rem;
2129
+ }
2130
+ /* ----- loader dots ----- */
2131
+ .bs-loader > :where(div) {
2132
+ background-color: var(--loader-dot-bg);
2133
+ border-radius: 50%;
2134
+ height: var(--loader-dot-size);
2135
+ position: absolute;
2136
+ top: var(--loader-dot-top);
2137
+ width: var(--loader-dot-size);
2138
+ }
2139
+ .bs-loader > :where(div) {
2140
+ animation-timing-function: cubic-bezier(0, 1, 1, 0);
2141
+ }
2142
+ .bs-loader > :where(div:nth-child(1)) {
2143
+ animation: loading-1 0.6s infinite;
2144
+ left: 0%;
2145
+ }
2146
+ .bs-loader > :where(div:nth-child(2)) {
2147
+ animation: loading-2 0.6s infinite;
2148
+ left: 0%;
2149
+ }
2150
+ .bs-loader > :where(div:nth-child(3)) {
2151
+ animation: loading-2 0.6s infinite;
2152
+ left: 40%;
2153
+ }
2154
+ .bs-loader > :where(div:nth-child(4)) {
2155
+ animation: loading-3 0.6s infinite;
2156
+ left: 80%;
2157
+ }
2158
+ @keyframes loading-1 {
2159
+ 0% {
2160
+ transform: scale(0);
2161
+ }
2162
+ 100% {
2163
+ transform: scale(1);
2164
+ }
2165
+ }
2166
+ @keyframes loading-2 {
2167
+ 0% {
2168
+ transform: translate(0, 0);
2169
+ }
2170
+ 100% {
2171
+ transform: translate(var(--loader-dot-translate), 0);
2172
+ }
2173
+ }
2174
+ @keyframes loading-3 {
2175
+ 0% {
2176
+ transform: scale(1);
2177
+ }
2178
+ 100% {
2179
+ transform: scale(0);
2180
+ }
1962
2181
  }
1963
2182
  .bs-pill {
1964
- --pill-background: var(--bs-bg-subtle);
2183
+ --pill-background: var(--bs-bg-medium);
1965
2184
  --pill-border: transparent;
1966
- --pill-text: var(--bs-royal-400);
2185
+ --pill-text: var(--bs-royal-base);
1967
2186
  --pill-gap: var(--bs-space-2);
1968
2187
 
1969
2188
  align-items: center;
@@ -1982,9 +2201,6 @@ input:where([type='checkbox'], [type='radio'])[data-error] {
1982
2201
  text-decoration: none;
1983
2202
  vertical-align: middle;
1984
2203
  }
1985
- :where(.dark) .bs-pill {
1986
- --pill-text: var(--bs-royal-100);
1987
- }
1988
2204
  :where(.bs-pill > svg) {
1989
2205
  height: 1rem;
1990
2206
  }
@@ -2008,7 +2224,7 @@ input:where([type='checkbox'], [type='radio'])[data-error] {
2008
2224
  --pill-background: var(--bs-bg-base);
2009
2225
  }
2010
2226
  :where(.box[data-invert]) .bs-pill {
2011
- --pill-background: var(--bs-bg-invert-subtle);
2227
+ --pill-background: var(--bs-bg-invert-base-subtle);
2012
2228
  --pill-text: var(--bs-gray-100);
2013
2229
  }
2014
2230
  :where(.box[data-invert]) :is(a, button).bs-pill:is(:hover, :focus) {
@@ -2022,7 +2238,7 @@ input:where([type='checkbox'], [type='radio'])[data-error] {
2022
2238
  }
2023
2239
  /* ------------------------------ Status Styles ------------------------------ */
2024
2240
  .bs-pill:where([data-status]) {
2025
- --status-color: var(--bs-blue-400);
2241
+ --status-color: var(--bs-blue-base);
2026
2242
  }
2027
2243
  .bs-pill:where([data-status])::before {
2028
2244
  background-color: var(--status-color);
@@ -2033,7 +2249,7 @@ input:where([type='checkbox'], [type='radio'])[data-error] {
2033
2249
  }
2034
2250
  /* ----- Status Colors ----- */
2035
2251
  .bs-pill:where([data-status^="active"]) {
2036
- --status-color: var(--bs-blue-400);
2252
+ --status-color: var(--bs-blue-base);
2037
2253
  }
2038
2254
  .bs-pill:where([data-status^="complete"]) {
2039
2255
  --status-color: var(--bs-purple-400);
@@ -2090,7 +2306,7 @@ input:where([type='checkbox'], [type='radio'])[data-error] {
2090
2306
  }
2091
2307
  /* ----- Filter Active Styles ----- */
2092
2308
  .bs-pill:where([data-variant^="filter"][data-active]) {
2093
- --pill-background: var(--bs-blue-400);
2309
+ --pill-background: var(--bs-blue-base);
2094
2310
  --pill-border: transparent;
2095
2311
  --pill-text: var(--bs-white);
2096
2312
  }
@@ -2130,8 +2346,8 @@ input:where([type='checkbox'], [type='radio'])[data-error] {
2130
2346
  /* ----- Disabled Styles ----- */
2131
2347
  .bs-pill:is(:disabled, [aria-disabled="true"]) {
2132
2348
  pointer-events: none;
2133
- color: var(--bs-gray-400);
2134
- background-color: var(--bs-gray-200);
2349
+ color: var(--bs-ink-disabled);
2350
+ background-color: var(--bs-bg-disabled);
2135
2351
  }
2136
2352
  .bs-pill:where([data-variant^="filter"]):not([data-active]):is(:disabled, [aria-disabled="true"]) {
2137
2353
  --pill-border: var(--bs-gray-400);
@@ -2230,14 +2446,11 @@ a.bs-profile:where([data-layout]) {
2230
2446
  text-decoration: none;
2231
2447
  }
2232
2448
  a.bs-profile:where([data-layout]) .bs-profile-details > *:first-child {
2233
- --profile-name-color: var(--bs-blue-500);
2449
+ --profile-name-color: var(--bs-ink-blue);
2234
2450
  }
2235
2451
  a.bs-profile:where([data-layout]):hover .bs-profile-details > *:first-child {
2236
2452
  text-decoration: underline;
2237
2453
  }
2238
- .dark a.bs-profile:where([data-layout]) .bs-profile-details > *:first-child {
2239
- --profile-name-color: var(--bs-blue-200);
2240
- }
2241
2454
  table {
2242
2455
  border-collapse: collapse;
2243
2456
  border-spacing: 0;
@@ -2278,7 +2491,7 @@ table[data-borders^="all"] th {
2278
2491
  }
2279
2492
  /* Table Rows */
2280
2493
  table:where([data-rows^="striped"]) tbody > tr:nth-child(even) {
2281
- background-color: var(--bs-bg-subtle);
2494
+ background-color: var(--bs-bg-medium);
2282
2495
  }
2283
2496
  /* Table Cells */
2284
2497
  table[data-cells^="fixed"] {
@@ -2317,8 +2530,8 @@ table:where([data-sticky^="left"]) :is(td:first-child, th:first-child) {
2317
2530
  }
2318
2531
  /* Base Toast Styles */
2319
2532
  .bs-toast {
2320
- background-color: var(--bs-white);
2321
- border-top: 4px solid var(--bs-blue-400);
2533
+ background-color: var(--bs-bg-base-elevated);
2534
+ border-top: 4px solid var(--bs-blue-base);
2322
2535
  bottom: 1.5rem;
2323
2536
  box-shadow: var(--bs-shadow-contentMedium);
2324
2537
  left: 0;
@@ -2360,10 +2573,6 @@ table:where([data-sticky^="left"]) :is(td:first-child, th:first-child) {
2360
2573
  transform: translateY(0);
2361
2574
  }
2362
2575
  }
2363
- /* Dark mode toast */
2364
- :where(.dark) .bs-toast {
2365
- background-color: var(--bs-navy-400);
2366
- }
2367
2576
  .bs-toast:where([data-shown]) {
2368
2577
  /* Small delay on load to alow for HTML element to exist */
2369
2578
  animation-delay: 10ms;
@@ -2373,44 +2582,45 @@ table:where([data-sticky^="left"]) :is(td:first-child, th:first-child) {
2373
2582
  animation-timing-function: ease;
2374
2583
  }
2375
2584
  .bs-toast:where([data-dismissed]) {
2376
- animation-duration: 200ms;
2585
+ animation-duration: 200ms;
2377
2586
  animation-fill-mode: forwards;
2378
2587
  animation-name: slideDown;
2379
2588
  animation-timing-function: ease;
2380
2589
  }
2381
- .bs-toast :where(.bs-toast-header) {
2590
+ .bs-toast-header {
2382
2591
  align-items: center;
2383
2592
  color: var(--bs-ink-base);
2384
2593
  display: flex;
2385
2594
  gap: 0.5rem;
2386
- padding-left: 1rem;
2387
- padding-right: 1rem;
2388
- padding-top: 1rem;
2595
+ padding: 1rem;
2389
2596
  }
2390
- .bs-toast :where(.bs-toast-header .bs-toast-header-icon) {
2391
- color: var(--bs-blue-400);
2597
+ .bs-toast-header :where(.bs-toast-header-icon) {
2598
+ color: var(--bs-blue-base);
2392
2599
  }
2393
- .bs-toast :where(h5) {
2600
+ .bs-toast-header :where(h5) {
2394
2601
  font-weight: 400;
2395
2602
  }
2396
- .bs-toast :where(.bs-toast-content) {
2603
+ .bs-toast-body {
2397
2604
  border-bottom: 1px solid var(--bs-border);
2398
2605
  color: var(--bs-ink-light);
2399
2606
  padding-bottom: 1rem;
2400
2607
  padding-left: 1rem;
2401
2608
  padding-right: 1rem;
2402
- padding-top: 0.25rem;
2403
2609
  }
2404
- .bs-toast :where(.bs-toast-actions) {
2610
+ .bs-toast-actions {
2405
2611
  /* Mobile - Buttons will be stacked */
2406
2612
  display: flex;
2407
- flex-direction: column-reverse;
2613
+ flex-direction: row;
2408
2614
  gap: 1rem;
2615
+ justify-content: flex-end;
2409
2616
  padding-bottom: 0.5rem;
2410
2617
  padding-left: 1rem;
2411
2618
  padding-right: 1rem;
2412
2619
  padding-top: 0.5rem;
2413
2620
  }
2621
+ .bs-toast-actions:where([data-stacked]) {
2622
+ flex-direction: column-reverse;
2623
+ }
2414
2624
  /* Warning Toast Styles */
2415
2625
  .bs-toast:where([data-variant^='warning']) {
2416
2626
  border-top: 4px solid var(--bs-orange-warning);
@@ -2459,7 +2669,7 @@ table:where([data-sticky^="left"]) :is(td:first-child, th:first-child) {
2459
2669
  }
2460
2670
 
2461
2671
  .bs-toast:where([data-dismissed]) {
2462
- animation-duration: 200ms;
2672
+ animation-duration: 200ms;
2463
2673
  animation-fill-mode: forwards;
2464
2674
  animation-name: slideRight;
2465
2675
  animation-timing-function: ease;
@@ -2476,7 +2686,7 @@ table:where([data-sticky^="left"]) :is(td:first-child, th:first-child) {
2476
2686
  transform: translateX(calc(100% + 1.5rem));
2477
2687
  }
2478
2688
  }
2479
-
2689
+
2480
2690
  @keyframes slideLeft {
2481
2691
  0% {
2482
2692
  opacity: 0;
@@ -2488,12 +2698,9 @@ table:where([data-sticky^="left"]) :is(td:first-child, th:first-child) {
2488
2698
  }
2489
2699
  }
2490
2700
 
2491
- .bs-toast :where(.bs-toast-actions) {
2492
- /* Non-mobile - Buttons will be side-by-side */
2701
+ .bs-toast-actions:where([data-stacked]) {
2493
2702
  flex-direction: row;
2494
- justify-content: flex-end;
2495
2703
  }
2496
-
2497
2704
  }
2498
2705
  /* Container for holding all toasts that will be visible */
2499
2706
  .bs-toaster {
@@ -2524,10 +2731,10 @@ table:where([data-sticky^="left"]) :is(td:first-child, th:first-child) {
2524
2731
  }
2525
2732
  .bs-tooltip :where(.bs-tooltip-text) {
2526
2733
  align-items: center;
2527
- background-color: var(--bs-bg-base);
2734
+ background-color: var(--bs-bg-base-elevated);
2528
2735
  border-radius: 4px;
2529
2736
  box-shadow: var(--bs-shadow-contentLowCenter);
2530
- color: var(--bs-violet-400);
2737
+ color: var(--bs-violet-base);
2531
2738
  display: flex;
2532
2739
  font-size: var(--bs-text-sm);
2533
2740
  justify-content: center;