@wwtdev/bsds-css 1.7.0 → 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 +5 -5
  7. package/dist/components/_dropdown.scss +1 -1
  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 +3 -8
  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 +5 -5
  30. package/dist/components/dropdown.css +1 -1
  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 +3 -8
  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 +331 -113
  50. package/dist/wwt-bsds.min.css +1 -1
  51. package/package.json +1 -1
@@ -18,16 +18,12 @@ a.bs-profile:where([data-layout]) {
18
18
  }
19
19
 
20
20
  a.bs-profile:where([data-layout]) .bs-profile-details > *:first-child {
21
- --profile-name-color: var(--bs-blue-500);
21
+ --profile-name-color: var(--bs-ink-blue);
22
22
  }
23
23
 
24
24
  a.bs-profile:where([data-layout]):hover .bs-profile-details > *:first-child {
25
25
  text-decoration: underline;
26
26
  }
27
27
 
28
- .dark a.bs-profile:where([data-layout]) .bs-profile-details > *:first-child {
29
- --profile-name-color: var(--bs-blue-200);
30
- }
31
-
32
28
  }
33
29
 
@@ -40,7 +40,7 @@ table[data-borders^="all"] th {
40
40
 
41
41
  /* Table Rows */
42
42
  table:where([data-rows^="striped"]) tbody > tr:nth-child(even) {
43
- background-color: var(--bs-bg-subtle);
43
+ background-color: var(--bs-bg-medium);
44
44
  }
45
45
 
46
46
  /* Table Cells */
@@ -1,8 +1,8 @@
1
1
  @mixin toast() {
2
2
  /* Base Toast Styles */
3
3
  .bs-toast {
4
- background-color: var(--bs-white);
5
- border-top: 4px solid var(--bs-blue-400);
4
+ background-color: var(--bs-bg-base-elevated);
5
+ border-top: 4px solid var(--bs-blue-base);
6
6
  bottom: 1.5rem;
7
7
  box-shadow: var(--bs-shadow-contentMedium);
8
8
  left: 0;
@@ -48,11 +48,6 @@
48
48
  }
49
49
  }
50
50
 
51
- /* Dark mode toast */
52
- :where(.dark) .bs-toast {
53
- background-color: var(--bs-navy-400);
54
- }
55
-
56
51
  .bs-toast:where([data-shown]) {
57
52
  /* Small delay on load to alow for HTML element to exist */
58
53
  animation-delay: 10ms;
@@ -78,7 +73,7 @@
78
73
  }
79
74
 
80
75
  .bs-toast-header :where(.bs-toast-header-icon) {
81
- color: var(--bs-blue-400);
76
+ color: var(--bs-blue-base);
82
77
  }
83
78
 
84
79
  .bs-toast-header :where(h5) {
@@ -7,10 +7,10 @@
7
7
 
8
8
  .bs-tooltip :where(.bs-tooltip-text) {
9
9
  align-items: center;
10
- background-color: var(--bs-bg-base);
10
+ background-color: var(--bs-bg-base-elevated);
11
11
  border-radius: 4px;
12
12
  box-shadow: var(--bs-shadow-contentLowCenter);
13
- color: var(--bs-violet-400);
13
+ color: var(--bs-violet-base);
14
14
  display: flex;
15
15
  font-size: var(--bs-text-sm);
16
16
  justify-content: center;
@@ -1,10 +1,10 @@
1
1
  .bs-accordion {
2
2
  --accordion-link-color: var(--bs-purple-400);
3
- --accordion-link-outline-color: var(--bs-blue-400);
3
+ --accordion-link-outline-color: var(--bs-blue-base);
4
4
  --accordion-outline-color: transparent;
5
5
  --accordion-padding-inline: 0;
6
6
  --accordion-text-size: var(--bs-text-sm);
7
- border-block: 1px solid var(--bs-border);
7
+ border-block: 1px solid var(--bs-border-base);
8
8
  display: block;
9
9
  }
10
10
 
@@ -37,7 +37,7 @@
37
37
  }
38
38
 
39
39
  .bs-accordion :where(header button:focus-visible) {
40
- --accordion-outline-color: var(--bs-blue-400);
40
+ --accordion-outline-color: var(--bs-blue-base);
41
41
  }
42
42
 
43
43
  .bs-accordion :where(header button) > * {
@@ -1,7 +1,12 @@
1
+ .bs-badge {
2
+ --badge-bg: var(--bs-red-base);
3
+ --badge-text: var(--bs-white);
4
+ }
5
+
1
6
  .bs-badge[data-position^='left']::before,
2
7
  .bs-badge:where(:not([data-position^='left']))::after {
3
8
  align-items: center;
4
- background: var(--bs-red-500);
9
+ background: var(--badge-bg);
5
10
  border-radius: 0.5rem;
6
11
  content: '';
7
12
  display: inline-flex;
@@ -23,7 +28,7 @@
23
28
 
24
29
  .bs-badge[data-count]:where([data-position^='left'])::before,
25
30
  .bs-badge[data-count]:where(:not([data-position^='left']))::after {
26
- color: white;
31
+ color: var(--badge-text);
27
32
  content: attr(data-count);
28
33
  min-height: 1rem;
29
34
  min-width: 1rem;
@@ -51,13 +56,10 @@
51
56
  display: inline-flex;
52
57
  }
53
58
 
54
- .bs-badge[data-badge-color^='blue']::before,
55
- .bs-badge[data-badge-color^='blue']::after {
56
- background: var(--bs-blue-500);
59
+ .bs-badge[data-badge-color^='blue'] {
60
+ --badge-bg: var(--bs-blue-base);
57
61
  }
58
-
59
- .bs-badge[data-badge-color^='white']::before,
60
- .bs-badge[data-badge-color^='white']::after {
61
- background: white;
62
- color: var(--badge-text, var(--bs-black));
62
+ .bs-badge[data-badge-color^='white'] {
63
+ --badge-bg: var(--bs-white);
64
+ --badge-text: var(--bs-black);
63
65
  }
@@ -1,5 +1,5 @@
1
1
  .bs-banner {
2
- background-color: var(--bs-bg-invert-subtle);
2
+ background-color: var(--bs-royal-400);
3
3
  color: var(--bs-gray-100);
4
4
  display: flex;
5
5
  justify-content: center;
@@ -13,10 +13,6 @@
13
13
  display: none;
14
14
  }
15
15
 
16
- :where(.dark) .bs-banner {
17
- color: var(--bs-black);
18
- }
19
-
20
16
  .bs-banner :where(.bs-banner-content) {
21
17
  align-items: center;
22
18
  display: flex;
@@ -37,14 +33,10 @@
37
33
  }
38
34
 
39
35
  .bs-banner :where(.bs-banner-content p a) {
40
- color: var(--bs-pink-200);
36
+ color: var(--bs-pink-light);
41
37
  text-decoration: none;
42
38
  }
43
39
 
44
- :where(.dark) .bs-banner :where(.bs-banner-content p a) {
45
- color: var(--bs-pink-500);
46
- }
47
-
48
40
  .bs-banner :where(.bs-banner-content p a:hover) {
49
41
  text-decoration: underline;
50
42
  }
@@ -1,7 +1,9 @@
1
1
  .bs-button {
2
- --btn-main: var(--bs-blue-400);
3
- --btn-secondary: var(--bs-blue-300);
2
+ --btn-main: var(--bs-blue-base);
3
+ --btn-secondary: var(--bs-blue-medium);
4
4
  --btn-highlight: var(--bs-blue-100);
5
+ --btn-padding: var(--bs-space-1) var(--bs-space-4) calc(var(--bs-space-1) * 1.5);
6
+ --btn-focus-pseudo-width: calc(100% + 0.5rem);
5
7
  align-items: center;
6
8
  background-color: var(--btn-main);
7
9
  border: none;
@@ -14,7 +16,7 @@
14
16
  justify-content: center;
15
17
  line-height: 1.5;
16
18
  outline: 2px solid transparent;
17
- padding: var(--bs-space-1) var(--bs-space-4) calc(var(--bs-space-1) * 1.5);
19
+ padding: var(--btn-padding);
18
20
  position: relative;
19
21
  text-decoration: none;
20
22
  transition: all 100ms ease-in-out;
@@ -41,9 +43,11 @@
41
43
  content: '';
42
44
  height: calc(100% + 0.5rem);
43
45
  inset: -0.25rem;
46
+ left: auto;
44
47
  position: absolute;
48
+ right: auto;
45
49
  transition: border-color 0.125s ease-in-out;
46
- width: calc(100% + 0.5rem);
50
+ width: var(--btn-focus-pseudo-width);
47
51
  }
48
52
 
49
53
  .bs-button:focus::before {
@@ -115,6 +119,8 @@
115
119
 
116
120
  /* Text Button */
117
121
  .bs-button:where([data-text]) {
122
+ --btn-padding: 0 0;
123
+ --btn-focus-pseudo-width: calc(100% + 1.25rem); /* text btns don't have side padding, but we do want focus outline to look padded */
118
124
  background-color: transparent;
119
125
  color: var(--bs-blue-500);
120
126
  cursor: pointer;
@@ -123,7 +129,7 @@
123
129
  line-height: 150%;
124
130
  }
125
131
  .bs-button:where([data-text]):hover {
126
- color: var(--bs-blue-400);
132
+ color: var(--bs-blue-base);
127
133
  background-color: transparent;
128
134
  text-decoration: underline;
129
135
  }
@@ -1,7 +1,7 @@
1
1
  .bs-circle-button {
2
- --btn-main: var(--bs-blue-400);
3
- --btn-secondary: var(--bs-blue-300);
4
- --btn-highlight: var(--bs-blue-100);
2
+ --btn-main: var(--bs-blue-base);
3
+ --btn-secondary: var(--bs-blue-medium);
4
+ --btn-highlight: var(--bs-blue-lightest);
5
5
  --btn-border-color: transparent;
6
6
  --btn-border-radius: 50%;
7
7
  --btn-icon-bg-color: var(--btn-main);
@@ -123,10 +123,10 @@ a.bs-circle-button {
123
123
 
124
124
  /* Disabled State */
125
125
  .bs-circle-button:where(:disabled, [aria-disabled]:not([aria-disabled="false"])) /* for links as buttons */ {
126
- --btn-icon-stroke-color: var(--bs-gray-400);
127
- --btn-text-color: var(--bs-gray-400);
126
+ --btn-icon-stroke-color: var(--bs-ink-disabled);
127
+ --btn-text-color: var(--bs-ink-disabled);
128
128
  pointer-events: none;
129
129
  }
130
130
  .bs-circle-button:where(:disabled, [aria-disabled]:not([aria-disabled="false"])) :where(.bs-circle-button-icon) {
131
- background-color: var(--bs-gray-200);
131
+ background-color: var(--bs-bg-disabled);
132
132
  }
@@ -53,9 +53,9 @@
53
53
  /* Hover or data-selected */
54
54
  .bs-dropdown-options :where(li:hover),
55
55
  .bs-dropdown-options :where(li[data-selected]) {
56
- background-color: var(--bs-bg-subtle);
57
- border-left: 4px solid var(--bs-blue-400);
58
- color: var(--bs-blue-400);
56
+ background-color: var(--bs-bg-medium);
57
+ border-left: 4px solid var(--bs-blue-base);
58
+ color: var(--bs-blue-base);
59
59
  outline: none;
60
60
  }
61
61
 
@@ -74,7 +74,7 @@
74
74
  .bs-dropdown-options :where(li[data-variant~="2-col"][data-variant~="description"]:hover :nth-child(3)),
75
75
  .bs-dropdown-options :where(li:not([data-variant~="2-col"])[data-variant~="description"][data-selected] :nth-child(2)),
76
76
  .bs-dropdown-options :where(li[data-variant~="2-col"][data-variant~="description"][data-selected] :nth-child(3)) {
77
- color: var(--bs-blue-400);
77
+ color: var(--bs-blue-base);
78
78
  }
79
79
 
80
80
  /* Hover or data-selected for negative + 2-col/description variants */
@@ -97,7 +97,7 @@
97
97
 
98
98
  /* List option keyboard navigation focus */
99
99
  .bs-dropdown-options :where(li:focus-visible) {
100
- --focus-border-color: var(--bs-blue-400);
100
+ --focus-border-color: var(--bs-blue-base);
101
101
  border: 2px solid var(--focus-border-color);
102
102
  outline: none;
103
103
  padding-left: 0.625rem;
@@ -6,7 +6,7 @@
6
6
 
7
7
  /* Content */
8
8
  .bs-dropdown {
9
- background-color: var(--bs-white);
9
+ background-color: var(--bs-bg-base-elevated);
10
10
  border-radius: 4px;
11
11
  bottom: auto;
12
12
  box-shadow: var(--bs-shadow-contentMedium);
@@ -54,7 +54,7 @@
54
54
  :where(input[type='checkbox'], input[type='radio']):focus-visible {
55
55
  box-shadow: inset 0 0 0 0.125rem var(--box-shadow),
56
56
  0 0 0 2px var(--offset-color, var(--bs-bg-base)),
57
- 0 0 0 4px var(--outline-color, var(--bs-blue-400));
57
+ 0 0 0 4px var(--outline-color, var(--bs-blue-base));
58
58
  outline: 2px solid transparent;
59
59
  }
60
60
 
@@ -69,7 +69,7 @@
69
69
  /* Checkbox's checkmark */
70
70
  input:where([type='checkbox'])::before {
71
71
  --filled-size: 1rem;
72
- --check-fill-color: var(--bs-blue-400);
72
+ --check-fill-color: var(--bs-blue-base);
73
73
 
74
74
  content: '';
75
75
  border-radius: 0.125rem;
@@ -104,7 +104,7 @@ input:where([type='checkbox']):where(:indeterminate)::after {
104
104
  /* Radio's dot */
105
105
  input:where([type='radio'])::before {
106
106
  --filled-size: 1rem;
107
- --radio-fill-color: var(--bs-blue-400);
107
+ --radio-fill-color: var(--bs-blue-base);
108
108
 
109
109
  background-color: var(--radio-fill-color);
110
110
  border-radius: 50%;
@@ -159,24 +159,24 @@ input:where([type='checkbox']:checked, [type='checkbox']:indeterminate, [type='r
159
159
  /* Disabled State */
160
160
 
161
161
  input:where([type='checkbox'], [type='radio']):disabled {
162
- --box-shadow: var(--bs-gray-400);
162
+ --box-shadow: var(--bs-bg-disabled);
163
163
  background-color: transparent;
164
164
  cursor: default;
165
165
  }
166
166
 
167
167
  input:where([type='checkbox']):checked:disabled::before,
168
168
  input:where([type='checkbox']):indeterminate:disabled::before {
169
- --check-fill-color: var(--bs-gray-400);
169
+ --check-fill-color: var(--bs-bg-disabled);
170
170
  }
171
171
 
172
172
  input:where([type='radio']):checked:disabled::before {
173
- --radio-fill-color: var(--bs-gray-400);
173
+ --radio-fill-color: var(--bs-bg-disabled);
174
174
  }
175
175
 
176
176
 
177
177
  /* Error state */
178
178
 
179
179
  input:where([type='checkbox'], [type='radio'])[data-error] {
180
- --box-shadow: var(--bs-red-500);
181
- --outline-color: var(--bs-red-200);
180
+ --box-shadow: var(--bs-red-base);
181
+ --outline-color: var(--bs-red-base);
182
182
  }
@@ -9,9 +9,9 @@
9
9
  :where([disabled], [data-disabled]) + .bs-character-count,
10
10
  :where([disabled], [data-disabled]) .bs-character-count,
11
11
  .bs-character-count:where([data-disabled]) {
12
- color: var(--bs-gray-400);
12
+ color: var(--bs-ink-disabled);
13
13
  }
14
14
 
15
15
  .bs-character-count:where([data-error]) {
16
- color: var(--bs-red-400);
16
+ color: var(--bs-ink-red);
17
17
  }
@@ -1,6 +1,6 @@
1
1
  /* Generally applicable (all input types) */
2
2
  :where([data-required]) {
3
- color: var(--bs-red-500);
3
+ color: var(--bs-ink-red);
4
4
  font-weight: var(--bs-font-bold, 600);
5
5
  }
6
6
 
@@ -9,15 +9,15 @@
9
9
  }
10
10
 
11
11
  :where(.box) :is(input, textarea, select):where(:focus-visible) {
12
- --offset-color: var(--bs-bg-subtle);
12
+ --offset-color: var(--bs-bg-medium);
13
13
  }
14
14
  :where(.box[data-invert]) :is(input, textarea, select):where(:focus-visible) {
15
- --offset-color: var(--bs-bg-invert);
15
+ --offset-color: var(--bs-bg-invert-base);
16
16
  }
17
17
 
18
18
  /* Errors and Messages */
19
19
  :is(input, select, textarea):where([data-error]) {
20
- --input-border: var(--bs-red-500);
20
+ --input-border: var(--bs-ink-red);
21
21
  }
22
22
 
23
23
  /* Fieldset */
@@ -1,6 +1,7 @@
1
1
  .bs-hint {
2
+ --hint-color: var(--bs-ink-light);
2
3
  min-width: 0;
3
- color: var(--bs-ink-light);
4
+ color: var(--hint-color);
4
5
  font-size: var(--bs-text-xs);
5
6
  padding: 0;
6
7
  margin: 0;
@@ -9,5 +10,5 @@
9
10
  }
10
11
 
11
12
  .bs-hint:where([data-error]) {
12
- color: var(--bs-red-400);
13
+ --hint-color: var(--bs-ink-red);
13
14
  }
@@ -127,7 +127,7 @@ and issues with box-sizing
127
127
 
128
128
  /* -------- Focus styles -------- */
129
129
  .bs-input-addon {
130
- --focus-border: var(--bs-blue-400);
130
+ --focus-border: var(--bs-blue-base);
131
131
  }
132
132
 
133
133
  .bs-input-addon:where(:not([data-multifocus]):focus-within),
@@ -10,9 +10,9 @@
10
10
  }
11
11
 
12
12
  :where([data-required]) {
13
- color: var(--bs-red-500);
13
+ color: var(--bs-ink-red);
14
14
  }
15
15
 
16
16
  :where(label[data-disabled], [data-disabled] [data-required], [data-disabled] label) {
17
- --label-color: var(--bs-ink-light);
17
+ --label-color: var(--bs-ink-disabled);
18
18
  }
@@ -45,7 +45,7 @@
45
45
 
46
46
  .bs-switch input:where(:checked) ~ span,
47
47
  .bs-switch:where([aria-pressed]):where(:not([aria-pressed="false"])) span {
48
- --switch-background: var(--bs-blue-400);
48
+ --switch-background: var(--bs-blue-base);
49
49
  }
50
50
 
51
51
  /* Toggle "ball" */
@@ -111,21 +111,21 @@
111
111
 
112
112
  .bs-switch :where(input:focus-visible) + span {
113
113
  box-shadow: 0 0 0 2px var(--offset-color, var(--bs-bg-base)),
114
- 0 0 0 4px var(--outline-color, var(--bs-blue-400));
114
+ 0 0 0 4px var(--outline-color, var(--bs-blue-base));
115
115
  outline: 2px solid transparent;
116
116
  }
117
117
  :where(.box) .bs-switch :where(input:focus-visible) + span {
118
- --offset-color: var(--bs-bg-subtle);
118
+ --offset-color: var(--bs-bg-medium);
119
119
  }
120
120
  :where(.box[data-invert]) .bs-switch :where(input:focus-visible) + span {
121
- --offset-color: var(--bs-bg-invert);
121
+ --offset-color: var(--bs-bg-invert-base);
122
122
  }
123
123
 
124
124
  /* Disabled state */
125
125
 
126
126
  .bs-switch:where([data-disabled]) {
127
- --ball-background: var(--bs-gray-400);
128
- --switch-background: var(--bs-gray-200);
127
+ --ball-background: var(--bs-ink-disabled);
128
+ --switch-background: var(--bs-bg-disabled);
129
129
  }
130
130
 
131
131
  .bs-switch input:where(:disabled) {
@@ -6,13 +6,15 @@
6
6
 
7
7
  input:where(:not([type='checkbox'], [type='radio'], [type='file'], [type='range'])),
8
8
  textarea, select {
9
+ --input-bg: var(--bs-bg-base);
10
+ --input-border: var(--bs-violet-medium);
9
11
  appearance: none;
10
- background-color: var(--input-bg, var(--bs-bg-base));
11
- border-color: var(--input-border, var(--bs-violet-300));
12
+ background-color: var(--input-bg);
13
+ border-color: var(--input-border);
12
14
  border-radius: 0.25rem;
13
15
  border-style: solid;
14
16
  border-width: var(--input-border-width, 1px);
15
- caret-color: var(--bs-blue-400);
17
+ caret-color: var(--bs-blue-base);
16
18
  color: var(--bs-ink-base);
17
19
  font-size: var(--bs-text-base);
18
20
  font-weight: 400;
@@ -35,26 +37,26 @@ textarea {
35
37
  }
36
38
 
37
39
  :is(input, textarea, select)::placeholder {
38
- color: var(--bs-violet-200);
40
+ color: var(--bs-violet-lightest);
39
41
  }
40
42
  :is(input, textarea, select):where(:focus-visible)::placeholder {
41
43
  opacity: 0;
42
44
  }
43
45
 
44
46
  :is(input:where(:not([type='checkbox'], [type='radio'])), textarea, select):where(:focus-visible) {
45
- --input-border: var(--bs-blue-400);
47
+ --input-border: var(--bs-blue-base);
46
48
  outline-width: 0px;
47
49
  }
48
50
 
49
51
  :is(input:where(:not([type='checkbox'],[type='radio'])), textarea, select):where(:disabled) {
50
- --input-border: var(--bs-gray-400);
51
- background-color: var(--bs-gray-200);
52
- color: var(--bs-gray-400);
52
+ --input-border: var(--bs-ink-disabled);
53
+ --input-bg: var(--bs-bg-disabled);
54
+ color: var(--bs-ink-disabled);
53
55
  }
54
56
 
55
57
  /* Errors and Messages */
56
58
  :is(input, select, textarea):where([data-error]) {
57
- --input-border: var(--bs-red-500);
59
+ --input-border: var(--bs-ink-red);
58
60
  }
59
61
 
60
62
  /*
@@ -74,7 +76,7 @@ see https://bugs.chromium.org/p/chromium/issues/detail?id=89530
74
76
 
75
77
  :is(input, textarea, select):disabled::placeholder,
76
78
  :is(input, textarea, select)[disabled]::placeholder {
77
- color: var(--bs-gray-400);
79
+ color: var(--bs-ink-disabled);
78
80
  opacity: 1;
79
81
  }
80
82
 
@@ -0,0 +1,85 @@
1
+ .bs-loader {
2
+ --loader-dot-bg: var(--bs-blue-500); /* possibly add variants if requested */
3
+ --loader-dot-size: .75rem;
4
+ --loader-dot-top: 18px;
5
+ --loader-dot-top: calc(50% - var(--loader-dot-size)/2);
6
+ --loader-dot-translate: 1.75rem; /* i.e., calc(var(--loader-width)/2 - var(--loader-dot-size)/2); */
7
+ --loader-height: 3rem;
8
+ --loader-width: 4rem;
9
+ display: block;
10
+ height: var(--loader-height);
11
+ margin-inline-start: auto;
12
+ margin-inline-end: auto;
13
+ position: relative;
14
+ width: var(--loader-width);
15
+ }
16
+ .bs-loader:where([data-size="sm"]) {
17
+ --loader-dot-size: .5rem;
18
+ --loader-dot-top: 0;
19
+ --loader-dot-translate: 1.125rem;
20
+ --loader-height: .5rem;
21
+ --loader-width: 3rem;
22
+ }
23
+ .bs-loader:where([data-size="lg"]) {
24
+ --loader-dot-size: 1rem;
25
+ --loader-dot-translate: 2.375rem;
26
+ --loader-height: 4rem;
27
+ --loader-width: 6rem;
28
+ }
29
+
30
+ /* ----- loader dots ----- */
31
+ .bs-loader > :where(div) {
32
+ background-color: var(--loader-dot-bg);
33
+ border-radius: 50%;
34
+ height: var(--loader-dot-size);
35
+ position: absolute;
36
+ top: var(--loader-dot-top);
37
+ width: var(--loader-dot-size);
38
+ }
39
+
40
+ .bs-loader > :where(div) {
41
+ animation-timing-function: cubic-bezier(0, 1, 1, 0);
42
+ }
43
+ .bs-loader > :where(div:nth-child(1)) {
44
+ animation: loading-1 0.6s infinite;
45
+ left: 0%;
46
+ }
47
+ .bs-loader > :where(div:nth-child(2)) {
48
+ animation: loading-2 0.6s infinite;
49
+ left: 0%;
50
+ }
51
+ .bs-loader > :where(div:nth-child(3)) {
52
+ animation: loading-2 0.6s infinite;
53
+ left: 40%;
54
+ }
55
+ .bs-loader > :where(div:nth-child(4)) {
56
+ animation: loading-3 0.6s infinite;
57
+ left: 80%;
58
+ }
59
+
60
+ @keyframes loading-1 {
61
+ 0% {
62
+ transform: scale(0);
63
+ }
64
+ 100% {
65
+ transform: scale(1);
66
+ }
67
+ }
68
+
69
+ @keyframes loading-2 {
70
+ 0% {
71
+ transform: translate(0, 0);
72
+ }
73
+ 100% {
74
+ transform: translate(var(--loader-dot-translate), 0);
75
+ }
76
+ }
77
+
78
+ @keyframes loading-3 {
79
+ 0% {
80
+ transform: scale(1);
81
+ }
82
+ 100% {
83
+ transform: scale(0);
84
+ }
85
+ }
@@ -0,0 +1,32 @@
1
+ .bs-modal {
2
+ background-color: var(--bs-bg-base-elevated);
3
+ border-radius: 4px;
4
+ box-shadow: var(--bs-shadow-contentHigh);
5
+ left: 1.5rem;
6
+ max-height: calc(100% - 3rem);
7
+ opacity: 0;
8
+ overflow: auto;
9
+ padding: 1.5rem;
10
+ position: fixed;
11
+ right: 1.5rem;
12
+ top: 50%;
13
+ transform: translateY(-50%);
14
+ transition-duration: 75ms;
15
+ transition-property: opacity;
16
+ transition-timing-function: ease-in-out;
17
+ z-index: 9999;
18
+ }
19
+
20
+ .bs-modal:where([data-shown]) {
21
+ opacity: 1;
22
+ }
23
+
24
+ @media (min-width: 752px) {
25
+ .bs-modal {
26
+ left: 50%;
27
+ margin: 0;
28
+ max-height: 40.625rem;
29
+ transform: translate(-50%, -50%);
30
+ width: 35rem;
31
+ }
32
+ }
@@ -0,0 +1,18 @@
1
+ .bs-overlay {
2
+ backdrop-filter: blur(4px);
3
+ background: rgba(29, 30, 72, 0.05);
4
+ bottom: 0;
5
+ left: 0;
6
+ opacity: 0;
7
+ position: fixed;
8
+ right: 0;
9
+ top: 0;
10
+ transition-duration: 75ms;
11
+ transition-property: opacity;
12
+ transition-timing-function: ease-in-out;
13
+ z-index: 9998;
14
+ }
15
+
16
+ .bs-overlay:where([data-shown]) {
17
+ opacity: 1;
18
+ }