@wwtdev/bsds-css 2.5.1 → 2.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.
Files changed (34) hide show
  1. package/README.md +36 -8
  2. package/dist/components/_badge.scss +1 -1
  3. package/dist/components/_banner.scss +1 -1
  4. package/dist/components/_buttons.scss +85 -27
  5. package/dist/components/_circle-buttons.scss +108 -49
  6. package/dist/components/_dropdown-options.scss +1 -1
  7. package/dist/components/_dropdown.scss +1 -1
  8. package/dist/components/_filter-buttons.scss +15 -8
  9. package/dist/components/_form-booleans.scss +41 -76
  10. package/dist/components/_form-character-count.scss +1 -1
  11. package/dist/components/_form-hints.scss +7 -3
  12. package/dist/components/_form-input-composite.scss +1 -1
  13. package/dist/components/_form-text-fields.scss +1 -1
  14. package/dist/components/_modal.scss +2 -1
  15. package/dist/components/_timeline.scss +1 -1
  16. package/dist/components/badge.css +1 -1
  17. package/dist/components/banner.css +1 -1
  18. package/dist/components/buttons.css +84 -26
  19. package/dist/components/circle-buttons.css +108 -49
  20. package/dist/components/dropdown-options.css +1 -1
  21. package/dist/components/dropdown.css +1 -1
  22. package/dist/components/filter-buttons.css +15 -8
  23. package/dist/components/form-booleans.css +41 -76
  24. package/dist/components/form-character-count.css +1 -1
  25. package/dist/components/form-hints.css +7 -3
  26. package/dist/components/form-input-composite.css +1 -1
  27. package/dist/components/form-text-fields.css +1 -1
  28. package/dist/components/modal.css +2 -2
  29. package/dist/components/timeline.css +1 -1
  30. package/dist/wwt-bsds-preset.js +3 -0
  31. package/dist/wwt-bsds-wc-base.css +5 -2
  32. package/dist/wwt-bsds.css +280 -191
  33. package/dist/wwt-bsds.min.css +1 -1
  34. package/package.json +1 -1
@@ -1,23 +1,48 @@
1
- .bs-circle-button {
2
- --btn-main: var(--bs-blue-base);
3
- --btn-secondary: var(--bs-blue-medium);
4
- --btn-highlight: var(--bs-blue-lightest);
1
+ /*
2
+ Properties : Defaults // Description
3
+ ====================================
4
+ --btn-icon-bg-color: var(--btn-main); // icon bg color (base state)
5
+ --btn-icon-padding: .75rem; // padding around icon svg
6
+ --btn-icon-size: 1.5rem; // svg width and height
7
+ --btn-icon-stroke-color: var(--bs-white);
8
+ --btn-main: var(--bs-blue-base); // many things... should probably break this up
9
+ --btn-text-color: var(--bs-ink-base);
10
+ --btn-text-size: var(--bs-text-md);
11
+
12
+ --btn-border-color: transparent; // focus state outline color - transparent base state, --btn-main base focus state
13
+ --btn-border-color-focused: var(--btn-main); // focus state ring color set on variants
14
+ --btn-secondary: var(--bs-blue-medium); // hover state icon bg
15
+ --btn-shadow-color-active: var(--btn-main); // active state shadow color (icon bg)
16
+ --btn-text-color-hovered: var(--bs-ink-base); // hover state text color
17
+ */
18
+
19
+ :where(.bs-circle-button) {
20
+ --btn-border-color-focused: var(--btn-main);
5
21
  --btn-border-color: transparent;
6
- --btn-border-radius: 50%;
22
+ --btn-focus-inset: -0.25rem;
23
+ --btn-gap: .5rem;
7
24
  --btn-icon-bg-color: var(--btn-main);
8
25
  --btn-icon-padding: .75rem;
9
26
  --btn-icon-size: 1.5rem;
10
27
  --btn-icon-stroke-color: var(--bs-white);
28
+ --btn-main: var(--bs-blue-base);
29
+ --btn-secondary: var(--bs-blue-medium);
30
+ --btn-shadow-color-active: var(--btn-main);
31
+ --btn-text-color-hovered: var(--bs-ink-base);
11
32
  --btn-text-color: var(--bs-ink-base);
12
- --btn-text-size: var(--bs-text-md);
33
+ --btn-text-size: 1.125rem;
34
+ --btn-text-weight: 400;
35
+ }
36
+
37
+ .bs-circle-button {
13
38
  align-items: center;
14
39
  background-color: transparent;
15
- border-radius: var(--btn-border-radius);
16
40
  color: var(--btn-text-color);
17
41
  cursor: pointer;
18
42
  display: inline-flex;
19
43
  font-size: var(--btn-text-size);
20
- gap: .5rem;
44
+ font-weight: var(--btn-text-weight);
45
+ gap: var(--btn-gap);
21
46
  outline: none;
22
47
  position: relative;
23
48
  vertical-align: middle;
@@ -30,18 +55,6 @@ a.bs-circle-button {
30
55
  text-decoration: none;
31
56
  }
32
57
 
33
- .bs-circle-button :where(.bs-circle-button-icon)::before {
34
- border-color: var(--btn-border-color);
35
- border-radius: var(--btn-border-radius);
36
- border-style: solid;
37
- border-width: 0.125rem;
38
- height: calc(100% + 0.5rem);
39
- inset: -0.25rem;
40
- position: absolute;
41
- transition: border-color 125ms ease-in-out, transform 100ms ease-in-out;
42
- width: calc(100% + 0.5rem);
43
- }
44
-
45
58
  .bs-circle-button :where(.bs-circle-button-icon) {
46
59
  align-items: center;
47
60
  background-color: var(--btn-icon-bg-color);
@@ -56,6 +69,17 @@ a.bs-circle-button {
56
69
  transition: all 100ms ease-in-out;
57
70
  }
58
71
 
72
+ .bs-circle-button :where(.bs-circle-button-icon)::before {
73
+ border-color: var(--btn-border-color);
74
+ border-radius: 50%;
75
+ border-style: solid;
76
+ border-width: 0.125rem;
77
+ content: '';
78
+ inset: var(--btn-focus-inset);
79
+ position: absolute;
80
+ transition: border-color 125ms ease-in-out, transform 100ms ease-in-out;
81
+ }
82
+
59
83
  .bs-circle-button :where(.bs-circle-button-icon) :where(.bs-icon) {
60
84
  --icon-size: var(--btn-icon-size);
61
85
  }
@@ -75,27 +99,21 @@ a.bs-circle-button {
75
99
 
76
100
  /* Ghost Buttons */
77
101
  .bs-circle-button:where([data-ghost]:not([data-ghost="false"])) {
102
+ --btn-icon-bg-color: transparent;
78
103
  --btn-icon-stroke-color: var(--btn-main);
79
104
  --btn-light: var(--bs-blue-10);
80
105
  --btn-secondary: var(--bs-blue-10);
81
106
  }
82
- .bs-circle-button:where([data-ghost]:not([data-ghost="false"])) :where(.bs-circle-button-icon) {
83
- background-color: transparent;
84
- box-shadow: inset 0 0 0 1px transparent;
85
- color: var(--btn-icon-stroke-color);
86
- }
87
- .bs-circle-button:where([data-ghost]:not([data-ghost="false"])) :where(.bs-circle-button-icon)::before {
88
- border-radius: 50%;
89
- }
90
107
 
91
108
  /* Active, Hover, Focus states */
92
109
  .bs-circle-button:active, .bs-circle-button:hover {
93
110
  --btn-icon-bg-color: var(--btn-secondary);
111
+ --btn-text-color: var(--btn-text-color-hovered);
94
112
  }
95
113
  .bs-circle-button:active :where(.bs-circle-button-icon) {
96
- transform: scale(0.97);
114
+ box-shadow: inset 0px 0px 4px 1px var(--btn-shadow-color-active);
97
115
  transform-origin: center;
98
- box-shadow: inset 0px 0px 4px 1px var(--btn-main);
116
+ transform: scale(0.97);
99
117
  }
100
118
 
101
119
  .bs-circle-button:where([data-direction="right"]):hover :where(.bs-circle-button-icon),
@@ -107,22 +125,12 @@ a.bs-circle-button {
107
125
  transform: translateX(-.25rem);
108
126
  }
109
127
 
110
- .bs-circle-button:where([data-ghost]:not([data-ghost="false"])):hover :where(.bs-circle-button-icon) {
111
- background-color: var(--btn-light);
112
- }
113
-
114
- .bs-circle-button:where([data-ghost]:not([data-ghost="false"])):active {
115
- box-shadow:
116
- inset 0 0 0 1px var(--btn-main),
117
- inset 0px 0px 4px 1px var(--btn-highlight);
128
+ .bs-circle-button:where([data-ghost]:not([data-ghost="false"])):hover {
129
+ --btn-icon-bg-color: var(--btn-light);
118
130
  }
119
131
 
120
132
  .bs-circle-button:where(:focus-visible) {
121
- --btn-border-color: var(--btn-main);
122
- }
123
-
124
- .bs-circle-button:where(:focus-visible) :where(.bs-circle-button-icon)::before {
125
- content: '';
133
+ --btn-border-color: var(--btn-border-color-focused);
126
134
  }
127
135
 
128
136
  /* Disabled State */
@@ -131,26 +139,77 @@ a.bs-circle-button {
131
139
  --btn-text-color: var(--bs-ink-disabled);
132
140
  pointer-events: none;
133
141
  }
134
- .bs-circle-button:where(:disabled, [aria-disabled]:not([aria-disabled="false"])) :where(.bs-circle-button-icon) {
135
- background-color: var(--bs-bg-disabled);
142
+ .bs-circle-button:where(:disabled, [aria-disabled]:not([aria-disabled="false"])) {
143
+ --btn-icon-bg-color: var(--bs-bg-disabled);
136
144
  }
137
145
 
138
-
139
146
  /* Button Size */
140
147
  .bs-circle-button:where([data-size^='sm']) {
141
148
  --btn-icon-padding: .375rem;
142
149
  --btn-icon-size: .75rem;
143
- --btn-text-size: var(--bs-text-sm);
150
+ --btn-text-size: .875rem;
144
151
  }
145
152
 
146
153
  .bs-circle-button:where([data-size^='sm'][data-text]:not([data-text="false"])) {
147
154
  --btn-icon-padding: .3125rem;
148
155
  --btn-icon-size: .625rem;
149
- --btn-text-size: var(--bs-text-base);
156
+ --btn-text-size: 1rem;
150
157
  }
151
158
 
152
159
  .bs-circle-button:where([data-size='xs'][data-text]:not([data-text="false"])) {
153
160
  --btn-icon-padding: .25rem;
154
161
  --btn-icon-size: .5rem;
155
- --btn-text-size: var(--bs-text-sm);
162
+ --btn-text-size: .875rem;
163
+ }
164
+
165
+ /* Color Variants */
166
+ .bs-circle-button:where([data-variant^="color"]) {
167
+ --btn-focus-inset: .125rem;
168
+ --btn-gap: 0;
169
+ --btn-icon-bg-color: transparent;
170
+ --btn-icon-padding: .5rem;
171
+ --btn-icon-size: .75rem; /* stays the same for all sizes */
172
+ --btn-icon-stroke-color: var(--btn-text-color);
173
+ --btn-secondary: transparent;
174
+ --btn-shadow-color-active: transparent;
175
+ }
176
+ .bs-circle-button:where([data-variant="color-blue"]) {
177
+ --btn-border-color-focused: var(--bs-ink-blue);
178
+ --btn-text-color: var(--bs-ink-blue);
179
+ --btn-text-color-hovered: var(--bs-blue-base);
180
+ }
181
+
182
+ .bs-circle-button:where([data-variant="color-royal"]) {
183
+ --btn-border-color-focused: var(--bs-ink-royal);
184
+ --btn-text-color: var(--bs-ink-royal);
185
+ --btn-text-color-hovered: var(--bs-royal-medium);
186
+ }
187
+
188
+ .bs-circle-button:where([data-variant="color-purple"]) {
189
+ --btn-border-color-focused: var(--bs-purple-400);
190
+ --btn-text-color: var(--bs-ink-purple);
191
+ --btn-text-color-hovered: var(--bs-purple-medium);
192
+ }
193
+
194
+ .bs-circle-button:where([data-variant="color-pink"]) {
195
+ --btn-border-color-focused: var(--bs-pink-400);
196
+ --btn-text-color: var(--bs-ink-pink);
197
+ --btn-text-color-hovered: var(--bs-pink-base);
198
+ }
199
+
200
+ .bs-circle-button:where([data-variant="color-red"]) {
201
+ --btn-border-color-focused: var(--bs-ink-red);
202
+ --btn-text-color: var(--bs-ink-red);
203
+ --btn-text-color-hovered: var(--bs-red-base);
204
+ }
205
+
206
+ .bs-circle-button:where([data-variant^="color"]):where(:disabled, [aria-disabled]:not([aria-disabled="false"])) {
207
+ --btn-icon-bg-color: transparent;
208
+ --btn-text-color: var(--bs-ink-disabled);
209
+ }
210
+
211
+ /* size XXS only supported for color variants */
212
+ .bs-circle-button:where([data-variant^="color"]):where([data-size='xxs'][data-text]:not([data-text="false"])) {
213
+ --btn-text-size: .75rem;
214
+ --btn-text-weight: 600;
156
215
  }
@@ -95,7 +95,7 @@
95
95
  /* Hover or data-selected */
96
96
  .bs-dropdown-options :where(li:not([role="separator"]):hover),
97
97
  .bs-dropdown-options :where(li[data-selected]) {
98
- background-color: var(--bs-bg-medium);
98
+ background-color: var(--bs-bg-medium-to-light);
99
99
  border-left: 4px solid var(--bs-ink-blue);
100
100
  color: var(--bs-ink-blue);
101
101
  outline: none;
@@ -27,7 +27,7 @@
27
27
  --dropdown-width: 100%;
28
28
  --dropdown-transform: translate(0, 100%);
29
29
 
30
- background-color: var(--bs-bg-base-elevated);
30
+ background-color: var(--bs-bg-base-to-medium);
31
31
  border-radius: 4px;
32
32
  bottom: var(--dropdown-bottom);
33
33
  box-shadow: var(--bs-shadow-contentMedium);
@@ -10,25 +10,32 @@ custom properties:
10
10
  */
11
11
 
12
12
  button:where(.bs-filter-button) {
13
+ --filterbtn-caret-size: 1rem;
14
+ --filterbtn-caret-transform: rotate(0deg);
15
+ --filterbtn-color: var(--bs-ink-blue);
16
+ --filterbtn-focus-color: transparent;
17
+ --filterbtn-height: 1.5rem;
18
+ --filterbtn-text-size: var(--bs-text-base);
19
+ --filterbtn-weight: 400;
13
20
  flex-shrink: 0;
14
21
  position: relative;
15
22
  }
16
23
 
17
24
  .bs-filter-button {
18
25
  align-items: center;
19
- color: var(--filterbtn-color, var(--bs-ink-blue));
26
+ color: var(--filterbtn-color);
20
27
  column-gap: 0.5rem;
21
28
  cursor: pointer;
22
29
  display: inline-flex;
23
- font-size: var(--filterbtn-text-size, var(--bs-text-base));
24
- font-weight: var(--filterbtn-weight, 400);
25
- height: var(--filterbtn-height, 1.5rem);
30
+ font-size: var(--filterbtn-text-size);
31
+ font-weight: var(--filterbtn-weight);
32
+ height: var(--filterbtn-height);
26
33
  line-height: 1.5;
27
34
  transition: outline-color 100ms ease-in-out;
28
35
  width: max-content;
29
36
  }
30
37
  .bs-filter-button::after {
31
- border: solid var(--filterbtn-focus-color, transparent) 2px;
38
+ border: solid var(--filterbtn-focus-color) 2px;
32
39
  border-radius: 0.25rem;
33
40
  content: '';
34
41
  display: block;
@@ -41,12 +48,12 @@ button:where(.bs-filter-button) {
41
48
  .bs-filter-button :where(.bs-icon),
42
49
  .bs-filter-button :where(span:has(svg:only-child)) {
43
50
  display: block;
44
- height: var(--filterbtn-caret-size, 1rem);
51
+ height: var(--filterbtn-caret-size);
45
52
  line-height: 1;
46
- transform: var(--filterbtn-caret-transform, rotate(0deg));
53
+ transform: var(--filterbtn-caret-transform);
47
54
  transform-origin: center;
48
55
  transition: var(--bs-trans-rotate180);
49
- width: var(--filterbtn-caret-size, 1rem);
56
+ width: var(--filterbtn-caret-size);
50
57
  }
51
58
 
52
59
  .bs-filter-button:where([data-size="sm"],[data-size="xs"]) {
@@ -8,8 +8,8 @@
8
8
  }
9
9
 
10
10
  .bs-boolean:where([data-size='sm']) input {
11
- width: var(--bs-text-xs);
12
- height: var(--bs-text-xs);
11
+ height: .75rem;
12
+ width: .75rem;
13
13
  }
14
14
 
15
15
  .bs-boolean label {
@@ -38,11 +38,8 @@
38
38
 
39
39
  :where(input[type='checkbox'], input[type='radio']),
40
40
  :is(.bs-boolean :where(input), .bs-checkbox) { /* .bs-checkbox added to accommodate 'fake' cbs */
41
- --box-shadow: var(--bs-ink-base);
42
-
43
41
  appearance: none;
44
- background-color: var(--bs-bg-base);
45
- box-shadow: inset 0 0 0 0.125rem var(--box-shadow);
42
+ box-shadow: inset 0 0 0 0.125rem var(--box-shadow, var(--bs-ink-base));
46
43
  cursor: pointer;
47
44
  display: grid;
48
45
  height: 1rem;
@@ -70,79 +67,73 @@
70
67
  border-radius: 50%;
71
68
  }
72
69
 
73
- /* Checkbox's checkmark */
70
+ /* Checkbox's checkbox, checkmark. Checkmark is hidden unless checked/indeterminate. */
74
71
  input:where([type='checkbox'])::before,
75
72
  :is(.bs-boolean :where([type="checkbox"]), .bs-checkbox)::before {
76
- --filled-size: 1rem;
77
- --check-fill-color: var(--bs-blue-base);
78
-
73
+ --cb-filled-size: var(--filled-size, 1rem);
79
74
  content: '';
80
75
  border-radius: 0.125rem;
81
- box-shadow: inset var(--filled-size) var(--filled-size) var(--check-fill-color);
82
- height: var(--filled-size);
76
+ box-shadow: inset var(--cb-filled-size) var(--cb-filled-size) var(--fill-bg-color, var(--bs-blue-base));
77
+ height: var(--cb-filled-size);
83
78
  visibility: hidden;
84
- width: var(--filled-size);
79
+ width: var(--cb-filled-size);
85
80
  }
86
81
 
87
82
  input:where([type='checkbox'])::after,
88
83
  :is(.bs-boolean :where([type="checkbox"]), .bs-checkbox)::after {
89
- border: solid var(--bs-white);
84
+ border: solid var(--bs-bg-base);
90
85
  border-width: 0 0.125rem 0.125rem 0;
91
86
  content: '';
92
- height: 0.75em;
87
+ height: var(--inner-check-height, 0.75em);
93
88
  left: 50%;
94
89
  position: absolute;
95
90
  top: 50%;
96
91
  transform-origin: center;
97
92
  transform: translate(-50%, -60%) rotate(45deg);
98
93
  visibility: hidden;
99
- width: 0.375em;
94
+ width: var(--inner-check-width, 0.375em);
100
95
  }
101
96
 
102
97
  input:where([type='checkbox']):where(:indeterminate)::after,
103
98
  .bs-boolean :where([type="checkbox"]):where(:indeterminate)::after,
104
99
  .bs-checkbox:where([data-indeterminate="true"], :indeterminate)::after {
105
100
  border: none;
106
- background-color: var(--bs-white);
107
- height: 0.125rem;
101
+ background-color: var(--bs-bg-base);
102
+ height: var(--inner-dash-height, 0.125rem);
108
103
  transform: translate(-50%, -0.0625rem) rotate(0deg);
109
- width: 0.625em;
104
+ width: var(--inner-dash-width, 0.625em);
110
105
  }
111
106
 
112
- /* Radio's dot */
107
+ /* Radio outer circle, Radio dot. Dot is hidden unless checked. */
113
108
  input:where([type='radio'])::before,
114
109
  .bs-boolean :where([type="radio"])::before {
115
- --filled-size: 1rem;
116
- --radio-fill-color: var(--bs-blue-base);
117
-
118
- background-color: var(--radio-fill-color);
110
+ --radio-filled-size: var(--filled-size, 1rem);
111
+ background-color: var(--fill-bg-color, var(--bs-blue-base));
119
112
  border-radius: 50%;
120
113
  box-sizing: content-box;
121
114
  content: '';
122
- height: var(--filled-size);
115
+ height: var(--radio-filled-size);
123
116
  visibility: hidden;
124
- width: var(--filled-size);
117
+ width: var(--radio-filled-size);
125
118
  }
126
119
 
127
120
  input:where([type='radio'])::after,
128
121
  .bs-boolean :where([type="radio"])::after {
129
- --inner-size: 0.375rem;
130
- --inner-fill-color: var(--bs-white);
131
-
132
- background-color: var(--inner-fill-color);
122
+ background-color: var(--bs-bg-base);
133
123
  border-radius: 50%;
134
124
  box-sizing: content-box;
135
125
  content: '';
136
- height: var(--inner-size);
126
+ height: var(--inner-dot-size, 0.375rem);
137
127
  left: 50%;
138
128
  position: absolute;
139
129
  top: 50%;
140
130
  transform: translate(-50%, -50%);
141
131
  visibility: hidden;
142
- width: var(--inner-size);
132
+ width: var(--inner-dot-size, 0.375rem);
143
133
  }
144
134
 
145
135
  /* Show checkmark, indeterminate mark, or radio dot */
136
+
146
137
  .bs-checkbox:where([data-indeterminate="true"], [data-checked="true"], :checked, :indeterminate)::before,
147
138
  .bs-checkbox:where([data-indeterminate="true"], [data-checked="true"], :checked, :indeterminate)::after,
148
139
  input:where([type='checkbox']:checked, [type='checkbox']:indeterminate, [type='radio']:checked)::before,
@@ -152,61 +143,35 @@ input:where([type='checkbox']:checked, [type='checkbox']:indeterminate, [type='r
152
143
  visibility: visible;
153
144
  }
154
145
 
155
- .bs-boolean:where([data-size='sm']) input::before,
156
- .bs-checkbox:where([data-size="sm"])::before {
157
- --filled-size: var(--bs-text-xs);
158
- }
146
+ /* ---------- Sizes ----------- */
159
147
 
160
- .bs-boolean:where([data-size='sm']) input[type='checkbox']::after,
161
- .bs-checkbox:where([data-size="sm"])::after {
162
- height: 0.5625rem;
163
- width: 0.3125rem;
148
+ .bs-boolean:where([data-size="sm"]),
149
+ .bs-checkbox:where([data-size="sm"]) {
150
+ --filled-size: 0.75rem;
151
+ --inner-check-height: 0.5625rem;
152
+ --inner-check-width: 0.3125rem;
153
+ --inner-dash-height: 0.125rem;
154
+ --inner-dash-width: .75em;
155
+ --inner-dot-size: 0.25rem;
164
156
  }
165
157
 
166
- .bs-boolean:where([data-size='sm']) input[type='checkbox']:where(:indeterminate)::after,
167
- .bs-checkbox:where([data-size="sm"][data-indeterminate="true"], [data-size="sm"]:indeterminate)::after {
168
- height: 0.125rem;
169
- width: .75em;
170
- }
158
+ /* ---------- Disabled State ----------- */
171
159
 
172
- .bs-boolean:where([data-size='sm']) input[type='radio']::after {
173
- --inner-size: 0.25rem;
174
- }
175
-
176
-
177
- /* Disabled State */
178
-
179
- input:where([type='checkbox'], [type='radio']):disabled,
180
- .bs-boolean :where(input):disabled,
181
- .bs-checkbox:is([data-disabled="true"], :disabled) {
182
- --box-shadow: var(--bs-bg-disabled);
160
+ :where(input[type="checkbox"], input[type="radio"]):disabled,
161
+ .bs-boolean:where([data-disabled="true"]),
162
+ .bs-checkbox:where([data-disabled="true"]) {
163
+ --box-shadow: var(--bs-ink-disabled);
164
+ --fill-bg-color: var(--bs-ink-disabled);
183
165
  background-color: transparent;
184
166
  cursor: default;
185
- }
186
-
187
- .bs-checkbox:where([data-disabled="true"]:not(input)) {
188
167
  pointer-events: none;
189
168
  }
190
169
 
191
- input:where([type='checkbox']):checked:disabled::before,
192
- input:where([type='checkbox']):indeterminate:disabled::before,
193
- .bs-boolean :where(input[type="checkbox"]):checked:disabled::before,
194
- .bs-boolean :where(input[type="checkbox"]):indeterminate:disabled::before,
195
- .bs-checkbox:where([data-checked="true"][data-disabled="true"], :checked:disabled)::before,
196
- .bs-checkbox:where([data-indeterminate="true"][data-disabled="true"], :indeterminate:disabled)::before {
197
- --check-fill-color: var(--bs-bg-disabled);
198
- }
199
-
200
- input:where([type='radio']):checked:disabled::before,
201
- .bs-boolean :where(input[type="radio"]):checked:disabled::before {
202
- --radio-fill-color: var(--bs-bg-disabled);
203
- }
204
-
205
-
206
- /* Error state */
170
+ /* ---------- Error state ----------- */
207
171
 
208
172
  input:where([type='checkbox'], [type='radio'])[data-error]:where(:not([data-error="false"])),
209
- .bs-boolean :where(input[data-error="true"]),
173
+ .bs-boolean :where(input[data-error="true"]), /* deprecate this one in favor of next line */
174
+ .bs-boolean:where([data-error="true"]),
210
175
  .bs-checkbox:where([data-error="true"]) {
211
176
  --box-shadow: var(--bs-red-base);
212
177
  --outline-color: var(--bs-red-base);
@@ -9,7 +9,7 @@
9
9
  :where(:disabled, [data-disabled="true"]) + .bs-character-count,
10
10
  :where(:disabled, [data-disabled="true"]) .bs-character-count,
11
11
  .bs-character-count:where([data-disabled="true"]) {
12
- color: var(--bs-ink-disabled);
12
+ visibility: hidden;
13
13
  }
14
14
 
15
15
  .bs-character-count:where([data-error="true"]) {
@@ -1,14 +1,18 @@
1
1
  .bs-hint {
2
2
  --hint-color: var(--bs-ink-light);
3
- min-width: 0;
4
3
  color: var(--hint-color);
5
4
  font-size: var(--bs-text-xs);
6
- padding: 0;
7
- margin: 0;
8
5
  list-style: none;
6
+ margin: 0;
7
+ min-width: 0;
9
8
  overflow-wrap: break-word;
9
+ padding: 0;
10
10
  }
11
11
 
12
12
  .bs-hint:where([data-error]:not([data-error="false"])) {
13
13
  --hint-color: var(--bs-ink-red);
14
14
  }
15
+
16
+ :where(:disabled, [data-disabled="true"]) .bs-hint {
17
+ --hint-color: var(--bs-ink-disabled);
18
+ }
@@ -6,7 +6,7 @@
6
6
  .bs-input-addon {
7
7
  --input-border: var(--bs-violet-300);
8
8
  align-items: center;
9
- background-color: var(--input-bg, var(--bs-bg-base));
9
+ background-color: var(--input-bg, transparent);
10
10
  border-radius: .25rem;
11
11
  color: var(--bs-ink-base);
12
12
  display: flex;
@@ -21,7 +21,7 @@ textarea,
21
21
  select,
22
22
  :is(.bs-input, .bs-select, .bs-textarea) {
23
23
  appearance: none;
24
- background-color: var(--input-bg, var(--bs-bg-base));
24
+ background-color: var(--input-bg, transparent);
25
25
  border-color: var(--input-border, var(--bs-violet-medium));
26
26
  border-radius: 0.25rem;
27
27
  border-style: solid;
@@ -1,5 +1,5 @@
1
1
  .bs-modal {
2
- background-color: var(--bs-bg-base-elevated);
2
+ background-color: var(--bs-bg-base-to-medium);
3
3
  border-radius: 4px;
4
4
  box-shadow: var(--bs-shadow-contentHigh);
5
5
  left: 1.5rem;
@@ -53,4 +53,4 @@
53
53
  transform: translate(-50%, -50%);
54
54
  width: 35rem;
55
55
  }
56
- }
56
+ }
@@ -21,7 +21,7 @@
21
21
 
22
22
  .bs-timeline :where(.bs-step-item) {
23
23
  align-items: center;
24
- color: var(--step-color, var(--bs-ink-disabled));
24
+ color: var(--step-color, var(--bs-ink-light));
25
25
  display: flex;
26
26
  flex-direction: column;
27
27
  padding-inline: 1rem;
@@ -16,6 +16,7 @@ module.exports = {
16
16
  inherit: 'inherit',
17
17
  current: 'currentColor',
18
18
  white: "#FFFFFF",
19
+ "white-10": "rgba(255, 255, 255, 0.1)",
19
20
  black: "#0A0B19",
20
21
  blue: {
21
22
  10: "rgba(0, 134, 234, 0.1)",
@@ -41,6 +42,7 @@ module.exports = {
41
42
  400: "#1C0087"
42
43
  },
43
44
  royal: {
45
+ 10: "rgba(22, 47, 180, 0.1)",
44
46
  100: "#C5CCEB",
45
47
  200: "#7585D1",
46
48
  300: "#5365C4",
@@ -69,6 +71,7 @@ module.exports = {
69
71
  500: "#C33D04"
70
72
  },
71
73
  pink: {
74
+ 10: "rgba(227, 28, 121, 0.1)",
72
75
  100: "#F6CBE0",
73
76
  200: "#EB7EAF",
74
77
  300: "#E45E9B",
@@ -6,6 +6,7 @@
6
6
  --bs-inherit: inherit;
7
7
  --bs-current: currentColor;
8
8
  --bs-white: #ffffff;
9
+ --bs-white-10: rgba(255, 255, 255, 0.1);
9
10
  --bs-black: #0a0b19;
10
11
  --bs-blue-10: rgba(0, 134, 234, 0.1);
11
12
  --bs-blue-100: #99cff7;
@@ -24,6 +25,7 @@
24
25
  --bs-plum-200: #7766b7;
25
26
  --bs-plum-300: #49339f;
26
27
  --bs-plum-400: #1c0087;
28
+ --bs-royal-10: rgba(22, 47, 180, 0.1);
27
29
  --bs-royal-100: #c5cceb;
28
30
  --bs-royal-200: #7585d1;
29
31
  --bs-royal-300: #5365c4;
@@ -44,6 +46,7 @@
44
46
  --bs-orange-300: #f97c4c;
45
47
  --bs-orange-400: #fb550e;
46
48
  --bs-orange-500: #c33d04;
49
+ --bs-pink-10: rgba(227, 28, 121, 0.1);
47
50
  --bs-pink-100: #f6cbe0;
48
51
  --bs-pink-200: #eb7eaf;
49
52
  --bs-pink-300: #e45e9b;
@@ -311,7 +314,7 @@ button {
311
314
 
312
315
  --bs-ink-accent: var(--bs-plum-400);
313
316
  --bs-ink-base: var(--bs-black);
314
- --bs-ink-disabled: var(--bs-gray-400);
317
+ --bs-ink-disabled: rgba(78, 79, 95, 0.6); /* --bs-gray-400 at .6 */
315
318
  --bs-ink-light: var(--bs-gray-400);
316
319
  --bs-ink-invert-base: var(--bs-gray-100);
317
320
  --bs-ink-invert-medium: var(--bs-gray-200);
@@ -416,7 +419,7 @@ button {
416
419
 
417
420
  --bs-ink-accent: var(--bs-gray-100);
418
421
  --bs-ink-base: var(--bs-gray-100);
419
- --bs-ink-disabled: var(--bs-gray-300);
422
+ --bs-ink-disabled: rgba(163, 164, 183, 0.6); /* --bs-gray-300 at .6 opacity */
420
423
  --bs-ink-invert-base: var(--bs-black);
421
424
  --bs-ink-invert-medium: var(--bs-gray-500);
422
425
  --bs-ink-invert-light: var(--bs-gray-400);