@wwtdev/bsds-css 0.1.1 → 0.2.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.
@@ -1,58 +0,0 @@
1
- .badge[data-position^='left']::before,
2
- .badge:where(:not([data-position^='left']))::after {
3
- align-items: center;
4
- background: var(--bs-red-500);
5
- border-radius: 0.5rem;
6
- content: '';
7
- display: inline-flex;
8
- font-size: 0.8125rem;
9
- font-variant-numeric: tabular-nums;
10
- font-weight: 600;
11
- height: 6px;
12
- justify-content: center;
13
- line-height: 1;
14
- position: relative;
15
- vertical-align: top;
16
- width: 6px;
17
- }
18
-
19
- .pill .badge::before,
20
- .pill .badge::after {
21
- font-size: 0.8125em;
22
- }
23
-
24
- .badge[data-count]:where([data-position^='left'])::before,
25
- .badge[data-count]:where(:not([data-position^='left']))::after {
26
- color: white;
27
- content: attr(data-count);
28
- min-height: 1rem;
29
- min-width: 1rem;
30
- padding: 0 4px;
31
- top: -0.0625rem;
32
- vertical-align: unset;
33
- width: auto;
34
- }
35
-
36
- .badge[data-count]::before {
37
- margin-right: 0.25rem;
38
- }
39
-
40
- .badge[data-count]::after {
41
- margin-left: 0.25rem;
42
- }
43
-
44
- .badge[data-count='0']::before,
45
- .badge[data-count='0']::after {
46
- display: none;
47
- }
48
-
49
- .badge[data-badge-color^='blue']::before,
50
- .badge[data-badge-color^='blue']::after {
51
- background: var(--bs-blue-500);
52
- }
53
-
54
- .badge[data-badge-color^='white']::before,
55
- .badge[data-badge-color^='white']::after {
56
- background: white;
57
- color: var(--badge-text, var(--bs-black));
58
- }
@@ -1,188 +0,0 @@
1
- :where(button) {
2
- background-color: inherit;
3
- border-color: transparent;
4
- color: inherit;
5
- font-size: var(--bs-text-base);
6
- position: relative;
7
- padding: var(--bs-space-0);
8
- text-decoration: none;
9
- }
10
-
11
- .button {
12
- --btn-main: var(--bs-blue-400);
13
- --btn-secondary: var(--bs-blue-300);
14
- --btn-highlight: var(--bs-blue-100);
15
- align-items: center;
16
- background-color: var(--btn-main);
17
- border: none;
18
- border-radius: 0.25rem;
19
- color: var(--bs-white);
20
- cursor: pointer;
21
- display: inline-flex;
22
- font-size: var(--bs-text-md);
23
- font-weight: 600;
24
- line-height: 1.5;
25
- outline: 2px solid transparent;
26
- padding: var(--bs-space-1) var(--bs-space-4) calc(var(--bs-space-1) * 1.5);
27
- position: relative;
28
- text-decoration: none;
29
- transition: all 100ms ease-in-out;
30
- vertical-align: middle;
31
- }
32
-
33
-
34
- .button:hover {
35
- background-color: var(--btn-secondary);
36
- }
37
-
38
- .button:active {
39
- background-color: var(--btn-secondary);
40
- transform: scale(0.97);
41
- transform-origin: center;
42
- box-shadow: inset 0px 0px 4px 1px var(--btn-main);
43
- }
44
-
45
- /* Button Focus Styles */
46
- .button::before {
47
- border-color: transparent;
48
- border-radius: 0.5rem;
49
- border-style: solid;
50
- border-width: 0.125rem;
51
- content: '';
52
- height: calc(100% + 0.5rem);
53
- inset: -0.25rem;
54
- position: absolute;
55
- transition: border-color 0.125s ease-in-out;
56
- width: calc(100% + 0.5rem);
57
- }
58
-
59
- .button:focus::before {
60
- border-color: var(--btn-main);
61
- }
62
-
63
- .button:focus-visible::before {
64
- border-color: var(--btn-main);
65
- box-shadow: none;
66
- }
67
-
68
- .button:focus:not(:focus-visible)::before {
69
- border-color: transparent;
70
- box-shadow: none;
71
- }
72
-
73
- /* Ghost Buttons */
74
- .button:where([data-ghost]) {
75
- --btn-light: var(--bs-blue-10);
76
- --btn-secondary: var(--bs-blue-10);
77
- background-color: transparent;
78
- box-shadow: inset 0 0 0 1px var(--btn-main);
79
- color: var(--btn-main);
80
- }
81
- .button:where([data-ghost])::before {
82
- border-radius: 0.4375rem;
83
- }
84
- .button:where([data-ghost]):hover,
85
- .button:where([data-ghost]):focus {
86
- background-color: var(--btn-light);
87
- }
88
- .button:where([data-ghost]):active {
89
- box-shadow:
90
- inset 0 0 0 1px var(--btn-main),
91
- inset 0px 0px 4px 1px var(--btn-highlight);
92
- }
93
-
94
- /* Button type */
95
- .button:where([data-variant^='secondary']) {
96
- --btn-main: var(--bs-plum-400);
97
- --btn-secondary: var(--bs-plum-300);
98
- --btn-light: var(--bs-plum-10);
99
- --btn-highlight: var(--bs-plum-100);
100
- }
101
- .dark .button:where([data-variant^='secondary']) {
102
- --btn-main: var(--bs-plum-200);
103
- --btn-secondary: var(--bs-plum-300);
104
- --btn-light: var(--bs-navy-400);
105
- --btn-highlight: var(--bs-plum-400);
106
- }
107
- .button:where([data-variant^='positive']) {
108
- --btn-main: var(--bs-purple-400);
109
- --btn-secondary: var(--bs-purple-300);
110
- --btn-light: var(--bs-purple-10);
111
- --btn-highlight: var(--bs-purple-100);
112
- }
113
- .button:where([data-variant^='warning']) {
114
- --btn-main: var(--bs-orange-warning);
115
- --btn-secondary: var(--bs-orange-300);
116
- --btn-light: var(--bs-orange-10);
117
- --btn-highlight: var(--bs-orange-100);
118
- }
119
- .button:where([data-variant^='negative']) {
120
- --btn-main: var(--bs-red-400);
121
- --btn-secondary: var(--bs-red-300);
122
- --btn-light: var(--bs-red-10);
123
- --btn-highlight: var(--bs-red-100);
124
- }
125
-
126
- /* Text Button */
127
- .button:where([data-text]) {
128
- background-color: transparent;
129
- color: var(--bs-blue-500);
130
- cursor: pointer;
131
- font-size: var(--bs-text-md);
132
- font-weight: 400;
133
- line-height: 150%;
134
- }
135
- .button:where([data-text]):hover {
136
- background-color: transparent;
137
- text-decoration: underline;
138
- }
139
- .button:where([data-text]):active {
140
- box-shadow: none;
141
- }
142
-
143
- /* Button Size */
144
- .button:where([data-size^='sm']) {
145
- font-size: var(--bs-text-sm);
146
- }
147
- .button:where([data-text][data-size^='sm']) {
148
- font-size: var(--bs-text-base);
149
- }
150
-
151
- /* Disabled Styling */
152
- :where(button:disabled),
153
- .button:where([aria-disabled='true']) /* for links as buttons */ {
154
- pointer-events: none;
155
- }
156
- .button:where(:disabled),
157
- .button:where([aria-disabled='true']) {
158
- color: var(--bs-gray-400);
159
- background-color: var(--bs-gray-200);
160
- }
161
-
162
- .button:where([data-ghost]):disabled,
163
- .button:where([data-ghost])[aria-disabled='true'] {
164
- box-shadow: inset 0 0 0 1px var(--bs-gray-400);
165
- }
166
-
167
- .button:where([data-text]):disabled,
168
- .button:where([data-text][aria-disabled='true']) {
169
- background-color: transparent;
170
- }
171
-
172
- /* Icon Height */
173
- .button :where(svg:not([height])) {
174
- height: var(--bs-text-base);
175
- }
176
-
177
- .button:where([data-size^='sm']) :where(svg:not([height])) {
178
- height: var(--bs-text-xs);
179
- }
180
-
181
- /* links as buttons */
182
- a.button {
183
- align-items: center;
184
- display: inline-flex;
185
- outline: none;
186
- vertical-align: middle;
187
- }
188
-
@@ -1,255 +0,0 @@
1
- :where(.required) {
2
- color: var(--bs-red-400);
3
- }
4
-
5
- :where([data-disabled], [data-disabled] .required) {
6
- color: var(--bs-gray-400);
7
- }
8
-
9
- :where(label + input, label > input):not([type^='checkbox'], [type^='radio']),
10
- :where(label + textarea, label > textarea),
11
- :where(label + select, label > select) {
12
- margin-top: 0.25rem;
13
- }
14
-
15
- :where(input):not([type^='checkbox'], [type^='radio'], [type^='file'], [type^='range']),
16
- :where(textarea, select) {
17
- appearance: none;
18
- background-color: var(--input-bg, var(--bs-bg-base));
19
- border: 1px solid var(--input-border, var(--bs-violet-300));
20
- border-radius: 0.25rem;
21
- color: var(--bs-ink-base);
22
- font-size: var(--bs-text-base);
23
- font-weight: 400;
24
- line-height: var(--bs-leading-base);
25
- min-height: 40px;
26
- padding: 0.5rem 0.75rem;
27
- width: 100%;
28
- }
29
-
30
- :where(input, textarea, select)::placeholder {
31
- color: var(--bs-violet-200);
32
- opacity: 1;
33
- }
34
-
35
- :where(input, textarea, select):focus {
36
- box-shadow: 0 0 0 2px var(--offset-color, var(--bs-bg-base)),
37
- 0 0 0 4px var(--outline-color, var(--bs-blue-400));
38
- outline: 2px solid transparent;
39
- }
40
- :where(.box) :where(input, textarea, select):focus {
41
- --offset-color: var(--bs-bg-subtle);
42
- }
43
- :where(.box[data-invert]) :where(input, textarea, select):focus {
44
- --offset-color: var(--bs-bg-invert);
45
- }
46
-
47
- :where(input, textarea, select)[required]:focus,
48
- :where(input, textarea, select).error {
49
- --outline-color: var(--bs-red-200);
50
- }
51
-
52
- :where(input, textarea, select):disabled {
53
- background-color: var(--bs-gray-200);
54
- border-color: var(--bs-gray-400);
55
- color: var(--bs-gray-400);
56
- }
57
-
58
- /* chrome user agent styling was applying opacity: 0.7 */
59
- :where(select:disabled) {
60
- opacity: 1;
61
- }
62
-
63
- :where(input, textarea, select):disabled::placeholder,
64
- :where(input, textarea, select)[disabled]::placeholder {
65
- color: var(--bs-gray-400);
66
- opacity: 1;
67
- }
68
-
69
- /* Character Counter for Textarea */
70
- :where(textarea + .character-count) {
71
- color: var(--bs-ink-base);
72
- font-size: var(--bs-text-xs);
73
- font-weight: 400;
74
- text-align: right;
75
- }
76
-
77
- :where(textarea[disabled] + .character-count) {
78
- color: var(--bs-gray-400);
79
- }
80
-
81
- /* Select */
82
-
83
- :where(select) {
84
- /* URL Encoded SVG dropdown caret so there is something there */
85
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3E%3Cpath fill='%230A0B19' d='M8.048 13.375a.745.745 0 0 1-.526-.217L0 5.686l1.053-1.061 6.995 6.95 6.897-6.85 1.053 1.06-7.423 7.373a.745.745 0 0 1-.527.217Z'/%3E%3C/svg%3E");
86
- background-position: right 0.75rem center;
87
- background-repeat: no-repeat;
88
- background-size: 1em 1em;
89
- }
90
- .dark :where(select) {
91
- /* URL Encoded SVG dropdown caret so there is something there */
92
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3E%3Cpath fill='%23ffffff' d='M8.048 13.375a.745.745 0 0 1-.526-.217L0 5.686l1.053-1.061 6.995 6.95 6.897-6.85 1.053 1.06-7.423 7.373a.745.745 0 0 1-.527.217Z'/%3E%3C/svg%3E");
93
- }
94
-
95
- /* Checkboxes & Radios */
96
- :where(.checkbox, .radio) {
97
- display: flex;
98
- align-items: center;
99
- font-size: var(--bs-text-base);
100
- font-weight: 400;
101
- gap: 0.5em;
102
- line-height: 115%;
103
- }
104
- :where(.checkbox, .radio) label {
105
- font-size: var(--bs-text-base);
106
- font-weight: 400;
107
- line-height: 115%;
108
- width: auto;
109
- }
110
-
111
- :where(input[type^='checkbox'], input[type^='radio']) {
112
- --box-shadow: var(--bs-ink-base);
113
-
114
- appearance: none;
115
- background-color: var(--bg-base);
116
- box-shadow: inset 0 0 0 0.125rem var(--box-shadow);
117
- display: grid;
118
- height: 1rem;
119
- margin: 0;
120
- place-content: center;
121
- position: relative;
122
- width: 1rem;
123
- }
124
- :where(input[type^='checkbox'], input[type^='radio']):focus {
125
- box-shadow: inset 0 0 0 0.125rem var(--box-shadow),
126
- 0 0 0 2px var(--offset-color, var(--bs-bg-base)),
127
- 0 0 0 4px var(--outline-color, var(--bs-blue-400));
128
- }
129
-
130
- :where(input[type^='checkbox'], input[type^='radio'])[data-error] {
131
- --box-shadow: var(--bs-red-400);
132
- }
133
-
134
- :where(input[type^='checkbox']) {
135
- border-radius: 0.125rem;
136
- }
137
-
138
- :where(input[type^='radio']) {
139
- border-radius: 50%;
140
- }
141
-
142
- :where(.checkbox, .radio)[data-size='sm'],
143
- :where(.checkbox, .radio)[data-size='sm'] label {
144
- font-size: var(--bs-text-sm);
145
- line-height: 100%;
146
- }
147
-
148
- :where(.checkbox, .radio)[data-size='sm'] input {
149
- width: var(--bs-text-xs);
150
- height: var(--bs-text-xs);
151
- }
152
-
153
- :where(input[type='checkbox'])::before {
154
- --filled-size: 1rem;
155
- --check-fill-color: var(--bs-blue-400);
156
-
157
- content: '';
158
- border-radius: 0.125rem;
159
- box-shadow: inset var(--filled-size) var(--filled-size) var(--check-fill-color);
160
- height: var(--filled-size);
161
- visibility: hidden;
162
- width: var(--filled-size);
163
- }
164
-
165
- :where(input[type^='checkbox'])::after {
166
- border: solid var(--bs-white);
167
- border-width: 0 0.125rem 0.125rem 0;
168
- content: '';
169
- height: 0.75em;
170
- left: 50%;
171
- position: absolute;
172
- top: 50%;
173
- transform-origin: center;
174
- transform: translate(-50%, -60%) rotate(45deg);
175
- visibility: hidden;
176
- width: 0.375em;
177
- }
178
-
179
- :where(input[type='radio'])::before {
180
- --filled-size: 1rem;
181
- --radio-fill-color: var(--bs-blue-400);
182
-
183
- background-color: var(--radio-fill-color);
184
- border-radius: 50%;
185
- box-sizing: content-box;
186
- content: '';
187
- height: var(--filled-size);
188
- visibility: hidden;
189
- width: var(--filled-size);
190
- }
191
-
192
- :where(input[type='radio'])::after {
193
- --inner-size: 0.375rem;
194
- --inner-fill-color: var(--bs-white);
195
-
196
- background-color: var(--inner-fill-color);
197
- border-radius: 50%;
198
- box-sizing: content-box;
199
- content: '';
200
- height: var(--inner-size);
201
- left: 50%;
202
- position: absolute;
203
- top: 50%;
204
- transform: translate(-50%, -50%);
205
- visibility: hidden;
206
- width: var(--inner-size);
207
- }
208
-
209
- :where(input[type='checkbox']:checked, input[type='radio']:checked)::before,
210
- :where(input[type='checkbox']:checked, input[type='radio']:checked)::after {
211
- visibility: visible;
212
- }
213
-
214
- :where(.checkbox, .radio)[data-size='sm'] input::before {
215
- --filled-size: var(--bs-text-xs);
216
- }
217
-
218
- :where(.checkbox[data-size='sm'] input[type='checkbox'])::after {
219
- height: 0.5625;
220
- width: 0.3125;
221
- }
222
-
223
- :where(.radio[data-size='sm'] input[type='radio'])::after {
224
- --inner-size: 0.25rem;
225
- }
226
-
227
- :where(input[type='checkbox'], input[type='radio']):disabled {
228
- --box-shadow: var(--bs-gray-400);
229
- background-color: transparent;
230
- }
231
-
232
- :where(input[type='checkbox']):checked:disabled:before {
233
- --check-fill-color: var(--bs-gray-400);
234
- }
235
-
236
- :where(input[type='radio']):checked:disabled:before {
237
- --radio-fill-color: var(--bs-gray-400);
238
- }
239
-
240
- /* Errors and Messages */
241
- :where(input)[data-error] {
242
- border-color: var(--bs-red-400);
243
- }
244
-
245
- /* Fieldset */
246
- :where(fieldset) {
247
- border: none;
248
- margin-left: 0;
249
- margin-right: 0;
250
- padding: 0;
251
- }
252
- :where(fieldset legend) {
253
- margin-bottom: 0.25rem;
254
- padding: 0;
255
- }
@@ -1,10 +0,0 @@
1
- :where(.hints) {
2
- color: var(--bs-ink-light);
3
- font-size: var(--bs-text-xs);
4
- padding: 0.5rem 0.75rem 0 0.75rem;
5
- margin: 0;
6
- list-style: none;
7
- }
8
- :where(.hints[data-error]) {
9
- color: var(--bs-red-400);
10
- }
@@ -1,16 +0,0 @@
1
- :where(label, legend) {
2
- color: var(--bs-ink-base);
3
- display: inline-block;
4
- font-size: var(--bs-text-sm);
5
- font-weight: 600;
6
- line-height: var(--bs-leading-base);
7
- width: 100%;
8
- }
9
-
10
- :where(.required) {
11
- color: var(--bs-red-400);
12
- }
13
-
14
- :where([data-disabled], [data-disabled] .required, [data-disabled] label) {
15
- color: var(--bs-gray-400);
16
- }