@wwtdev/bsds-css 2.5.2 → 2.7.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.
- package/dist/components/_buttons.scss +85 -27
- package/dist/components/_circle-buttons.scss +108 -49
- package/dist/components/_dropdown.scss +13 -0
- package/dist/components/_filter-buttons.scss +15 -8
- package/dist/components/_flyout.scss +71 -0
- package/dist/components/_form-input-composite.scss +3 -1
- package/dist/components/_form-labels.scss +7 -0
- package/dist/components/_modal.scss +11 -0
- package/dist/components/_overlay.scss +11 -0
- package/dist/components/_toast.scss +18 -2
- package/dist/components/buttons.css +84 -26
- package/dist/components/circle-buttons.css +108 -49
- package/dist/components/dropdown.css +13 -0
- package/dist/components/filter-buttons.css +15 -8
- package/dist/components/flyout.css +67 -0
- package/dist/components/form-input-composite.css +3 -1
- package/dist/components/form-labels.css +7 -0
- package/dist/components/modal.css +11 -0
- package/dist/components/overlay.css +11 -0
- package/dist/components/toast.css +18 -2
- package/dist/wwt-bsds-preset.js +3 -0
- package/dist/wwt-bsds-wc-base.css +3 -0
- package/dist/wwt-bsds.css +308 -82
- package/dist/wwt-bsds.min.css +1 -1
- package/package.json +1 -1
|
@@ -1,21 +1,47 @@
|
|
|
1
|
+
/*
|
|
2
|
+
--btn-main: (this is doing too much.. look into backwards-compatible way to break this up)
|
|
3
|
+
background color (base)
|
|
4
|
+
focus ring color
|
|
5
|
+
|
|
6
|
+
background colors:
|
|
7
|
+
--btn-secondary: background color (active, hover)
|
|
8
|
+
--btn-light: background color (ghost hover, ghost focus)
|
|
9
|
+
|
|
10
|
+
border / box-shadow:
|
|
11
|
+
--btn-ghost-ink: the box shadow color for ghost buttons is synced to ink
|
|
12
|
+
--btn-highlight: box shadow color (w/ --btn-main) (active)
|
|
13
|
+
|
|
14
|
+
padding:
|
|
15
|
+
--btn-padding: padding (changes by size, and on text btns)
|
|
16
|
+
|
|
17
|
+
text color:
|
|
18
|
+
--btn-ink: text color
|
|
19
|
+
--btn-ghost-ink: text color (ghost)
|
|
20
|
+
|
|
21
|
+
*/
|
|
22
|
+
|
|
1
23
|
.bs-button {
|
|
2
|
-
--btn-main: var(--bs-blue-400);
|
|
3
|
-
--btn-secondary: var(--bs-blue-medium);
|
|
4
|
-
--btn-highlight: var(--bs-blue-100);
|
|
5
|
-
--btn-padding: .25rem .75rem;
|
|
6
24
|
--btn-focus-pseudo-width: calc(100% + 0.5rem);
|
|
7
25
|
--btn-ghost-ink: var(--bs-ink-blue);
|
|
26
|
+
--btn-highlight: var(--bs-blue-100);
|
|
8
27
|
--btn-ink: var(--bs-white);
|
|
28
|
+
--btn-main: var(--bs-blue-400);
|
|
29
|
+
--btn-padding: .25rem .75rem;
|
|
30
|
+
--btn-secondary: var(--bs-blue-medium);
|
|
31
|
+
--btn-text-size: var(--bs-text-md);
|
|
32
|
+
--btn-weight: 600;
|
|
33
|
+
--btn-height: 2.5rem;
|
|
9
34
|
align-items: center;
|
|
10
35
|
background-color: var(--btn-main);
|
|
11
36
|
border: none;
|
|
12
37
|
border-radius: 0.25rem;
|
|
13
38
|
color: var(--btn-ink);
|
|
39
|
+
column-gap: var(--bs-space-2);
|
|
14
40
|
cursor: pointer;
|
|
15
41
|
display: inline-flex;
|
|
16
|
-
font-size: var(--btn-text-size
|
|
17
|
-
font-weight: var(--btn-weight
|
|
18
|
-
height: var(--btn-height
|
|
42
|
+
font-size: var(--btn-text-size);
|
|
43
|
+
font-weight: var(--btn-weight);
|
|
44
|
+
height: var(--btn-height);
|
|
19
45
|
justify-content: center;
|
|
20
46
|
line-height: 1.5;
|
|
21
47
|
outline: 2px solid transparent;
|
|
@@ -32,9 +58,9 @@
|
|
|
32
58
|
|
|
33
59
|
.bs-button:active {
|
|
34
60
|
background-color: var(--btn-secondary);
|
|
35
|
-
transform: scale(0.97);
|
|
36
|
-
transform-origin: center;
|
|
37
61
|
box-shadow: inset 0px 0px 4px 1px var(--btn-main);
|
|
62
|
+
transform-origin: center;
|
|
63
|
+
transform: scale(0.97);
|
|
38
64
|
}
|
|
39
65
|
|
|
40
66
|
/* ------------ Focus Styles ------------ */
|
|
@@ -73,7 +99,7 @@
|
|
|
73
99
|
--btn-light: var(--bs-blue-10);
|
|
74
100
|
--btn-secondary: var(--bs-blue-10);
|
|
75
101
|
background-color: transparent;
|
|
76
|
-
box-shadow: inset 0 0 0 1px var(--btn-
|
|
102
|
+
box-shadow: inset 0 0 0 1px var(--btn-ghost-ink);
|
|
77
103
|
}
|
|
78
104
|
.bs-button:where([data-ghost]:not([data-ghost="false"]))::before {
|
|
79
105
|
border-radius: 0.4375rem;
|
|
@@ -90,46 +116,73 @@
|
|
|
90
116
|
|
|
91
117
|
/* ------------ VARIANTS ------------ */
|
|
92
118
|
.bs-button:where([data-variant^='secondary']) {
|
|
119
|
+
--btn-ghost-ink: var(--bs-ink-plum);
|
|
120
|
+
--btn-highlight: var(--bs-plum-100);
|
|
121
|
+
--btn-light: var(--bs-plum-10);
|
|
93
122
|
--btn-main: var(--bs-plum-400);
|
|
94
123
|
--btn-secondary: var(--bs-plum-medium);
|
|
95
|
-
--btn-light: var(--bs-plum-10);
|
|
96
|
-
--btn-highlight: var(--bs-plum-100);
|
|
97
|
-
--btn-ghost-ink: var(--bs-ink-plum);
|
|
98
124
|
}
|
|
99
125
|
.dark .bs-button:where([data-variant^='secondary']) {
|
|
126
|
+
--btn-highlight: var(--bs-plum-400);
|
|
127
|
+
--btn-light: var(--bs-navy-400);
|
|
100
128
|
--btn-main: var(--bs-plum-200);
|
|
101
129
|
--btn-secondary: var(--bs-plum-300);
|
|
102
|
-
--btn-light: var(--bs-navy-400);
|
|
103
|
-
--btn-highlight: var(--bs-plum-400);
|
|
104
130
|
}
|
|
105
131
|
.bs-button:where([data-variant^='positive']) {
|
|
132
|
+
--btn-ghost-ink: var(--bs-ink-purple);
|
|
133
|
+
--btn-highlight: var(--bs-purple-100);
|
|
134
|
+
--btn-light: var(--bs-purple-10);
|
|
106
135
|
--btn-main: var(--bs-purple-400);
|
|
107
136
|
--btn-secondary: var(--bs-purple-medium);
|
|
108
|
-
--btn-light: var(--bs-purple-10);
|
|
109
|
-
--btn-highlight: var(--bs-purple-100);
|
|
110
|
-
--btn-ghost-ink: var(--bs-ink-purple);
|
|
111
137
|
}
|
|
112
138
|
.bs-button:where([data-variant^='warning']) {
|
|
139
|
+
--btn-ghost-ink: var(--bs-ink-orange);
|
|
140
|
+
--btn-highlight: var(--bs-orange-100);
|
|
141
|
+
--btn-light: var(--bs-orange-10);
|
|
113
142
|
--btn-main: var(--bs-orange-warning);
|
|
114
143
|
--btn-secondary: var(--bs-orange-base);
|
|
115
|
-
--btn-light: var(--bs-orange-10);
|
|
116
|
-
--btn-highlight: var(--bs-orange-100);
|
|
117
|
-
--btn-ghost-ink: var(--bs-ink-orange);
|
|
118
144
|
}
|
|
119
145
|
.bs-button:where([data-variant^='negative']) {
|
|
146
|
+
--btn-ghost-ink: var(--bs-ink-red);
|
|
147
|
+
--btn-highlight: var(--bs-red-100);
|
|
148
|
+
--btn-light: var(--bs-red-10);
|
|
120
149
|
--btn-main: var(--bs-red-400);
|
|
121
150
|
--btn-secondary: var(--bs-red-medium);
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/* pink variant */
|
|
154
|
+
.bs-button:where([data-variant^='pink']) {
|
|
155
|
+
--btn-ghost-ink: var(--bs-ink-pink);
|
|
156
|
+
--btn-highlight: var(--bs-pink-400);
|
|
157
|
+
--btn-light: var(--bs-pink-10);
|
|
158
|
+
--btn-main: var(--bs-pink-400);
|
|
159
|
+
--btn-secondary: var(--bs-pink-300);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/* royal blue variant */
|
|
163
|
+
.bs-button:where([data-variant^='royal']) {
|
|
164
|
+
--btn-ghost-ink: var(--bs-ink-royal);
|
|
165
|
+
--btn-highlight: var(--bs-royal-400);
|
|
166
|
+
--btn-light: var(--bs-royal-10);
|
|
167
|
+
--btn-main: var(--bs-royal-400);
|
|
168
|
+
--btn-secondary: var(--bs-royal-300);
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
/* white variant - for dark backgrounds + ghost btn only */
|
|
172
|
+
.bs-button:where([data-variant^='white'][data-ghost]:not([data-ghost="false"])) {
|
|
173
|
+
--btn-ghost-ink: var(--bs-ink-white);
|
|
174
|
+
--btn-highlight: var(--bs-ink-white);
|
|
175
|
+
--btn-light: var(--bs-white-10);
|
|
176
|
+
--btn-main: var(--bs-ink-white);
|
|
125
177
|
}
|
|
126
178
|
|
|
127
179
|
/* ------------ Text Button ------------ */
|
|
128
180
|
.bs-button:where([data-text]:not([data-text="false"])) {
|
|
181
|
+
--btn-focus-pseudo-width: calc(100% + 1rem); /* text btns don't have side padding, but we do want focus outline to look padded */
|
|
129
182
|
--btn-height: auto;
|
|
130
183
|
--btn-ink: var(--bs-ink-blue);
|
|
131
184
|
--btn-padding: 0;
|
|
132
|
-
--btn-
|
|
185
|
+
--btn-secondary: transparent;
|
|
133
186
|
--btn-text-size: var(--bs-text-md);
|
|
134
187
|
--btn-weight: 400;
|
|
135
188
|
background-color: transparent;
|
|
@@ -149,6 +202,11 @@
|
|
|
149
202
|
transform: none;
|
|
150
203
|
}
|
|
151
204
|
|
|
205
|
+
.bs-button:where([data-variant^='negative'][data-text]:not([data-text="false"])),
|
|
206
|
+
.bs-button:where([data-variant^='negative'][data-text]:not([data-text="false"])):hover {
|
|
207
|
+
--btn-ink: var(--bs-ink-red);
|
|
208
|
+
}
|
|
209
|
+
|
|
152
210
|
/* ------------ Button Sizes, Media-based Text Sizing -------------- */
|
|
153
211
|
/* Std button: Mobile text size, DT text size */
|
|
154
212
|
.bs-button {
|
|
@@ -204,7 +262,7 @@
|
|
|
204
262
|
|
|
205
263
|
.bs-button:where([data-ghost]:not([data-ghost="false"])):disabled,
|
|
206
264
|
.bs-button:where([data-ghost]:not([data-ghost="false"]))[aria-disabled="true"] {
|
|
207
|
-
|
|
265
|
+
--btn-ghost-ink: var(--bs-ink-disabled);
|
|
208
266
|
}
|
|
209
267
|
|
|
210
268
|
.bs-button:where([data-text]:not([data-text="false"])):disabled,
|
|
@@ -1,23 +1,48 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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-
|
|
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:
|
|
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
|
-
|
|
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
|
-
|
|
114
|
+
box-shadow: inset 0px 0px 4px 1px var(--btn-shadow-color-active);
|
|
97
115
|
transform-origin: center;
|
|
98
|
-
|
|
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
|
|
111
|
-
|
|
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-
|
|
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"]))
|
|
135
|
-
|
|
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:
|
|
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:
|
|
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:
|
|
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: .5rem;
|
|
169
|
+
--btn-icon-bg-color: transparent;
|
|
170
|
+
--btn-icon-padding: 0;
|
|
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
|
}
|
|
@@ -148,3 +148,16 @@
|
|
|
148
148
|
display: none;
|
|
149
149
|
}
|
|
150
150
|
}
|
|
151
|
+
|
|
152
|
+
/* Vue Transition Styles - Only used in Vue component */
|
|
153
|
+
.bs-dropdown:where(.bs-dropdown-enter-from),
|
|
154
|
+
.bs-dropdown:where(.bs-dropdown-leave-to) {
|
|
155
|
+
opacity: 0;
|
|
156
|
+
transform: var(--dropdown-transform);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
.bs-dropdown:where(.bs-dropdown-enter-to),
|
|
160
|
+
.bs-dropdown:where(.bs-dropdown-leave-from) {
|
|
161
|
+
opacity: 1;
|
|
162
|
+
transform: translate(0, 0);
|
|
163
|
+
}
|
|
@@ -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
|
|
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
|
|
24
|
-
font-weight: var(--filterbtn-weight
|
|
25
|
-
height: var(--filterbtn-height
|
|
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
|
|
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
|
|
51
|
+
height: var(--filterbtn-caret-size);
|
|
45
52
|
line-height: 1;
|
|
46
|
-
transform: var(--filterbtn-caret-transform
|
|
53
|
+
transform: var(--filterbtn-caret-transform);
|
|
47
54
|
transform-origin: center;
|
|
48
55
|
transition: var(--bs-trans-rotate180);
|
|
49
|
-
width: var(--filterbtn-caret-size
|
|
56
|
+
width: var(--filterbtn-caret-size);
|
|
50
57
|
}
|
|
51
58
|
|
|
52
59
|
.bs-filter-button:where([data-size="sm"],[data-size="xs"]) {
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
.bs-flyout {
|
|
2
|
+
background-color: var(--bs-bg-base-to-light);
|
|
3
|
+
box-shadow: var(--bs-shadow-drawerRight);
|
|
4
|
+
height: 100%;
|
|
5
|
+
left: 0;
|
|
6
|
+
margin: 0;
|
|
7
|
+
max-width: 100vw;
|
|
8
|
+
opacity: 0;
|
|
9
|
+
padding: 1.5rem;
|
|
10
|
+
position: fixed;
|
|
11
|
+
top: 0;
|
|
12
|
+
transform: translateX(-100%);
|
|
13
|
+
transition-duration: 300ms;
|
|
14
|
+
transition-property: opacity, transform;
|
|
15
|
+
transition-timing-function: ease;
|
|
16
|
+
width: 360px;
|
|
17
|
+
z-index: 1000;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.bs-flyout:where([data-absolute="true"]) {
|
|
21
|
+
position: absolute;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.bs-flyout:where([data-position="right"]) {
|
|
25
|
+
box-shadow: var(--bs-shadow-drawerLeft);
|
|
26
|
+
left: auto;
|
|
27
|
+
right: 0;
|
|
28
|
+
transform: translateX(100%);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.bs-flyout:where([data-size="lg"]) {
|
|
32
|
+
width: 535px;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.bs-flyout:where([data-shown="true"]) {
|
|
36
|
+
opacity: 1;
|
|
37
|
+
transform: translateX(0);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.bs-flyout :where(.bs-flyout-close-container) {
|
|
41
|
+
display: flex;
|
|
42
|
+
justify-content: flex-end;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.bs-flyout :where(.bs-flyout-close-container button) {
|
|
46
|
+
cursor: pointer;
|
|
47
|
+
outline-offset: 2px;
|
|
48
|
+
padding: 2px;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/* Vue Transition Styles - Only used in Vue component */
|
|
52
|
+
.bs-flyout:where(.bs-flyout-enter-from),
|
|
53
|
+
.bs-flyout:where(.bs-flyout-leave-to) {
|
|
54
|
+
opacity: 0;
|
|
55
|
+
transform: translateX(-100%);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.bs-flyout:where([data-position="right"].bs-flyout-enter-from),
|
|
59
|
+
.bs-flyout:where([data-position="right"].bs-flyout-leave-to) {
|
|
60
|
+
transform: translateX(100%);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.bs-flyout:where(.bs-flyout-enter-to),
|
|
64
|
+
.bs-flyout:where(.bs-flyout-leave-from) {
|
|
65
|
+
opacity: 1;
|
|
66
|
+
transform: translateX(0);
|
|
67
|
+
}
|
|
@@ -172,7 +172,9 @@ and issues with box-sizing
|
|
|
172
172
|
}
|
|
173
173
|
|
|
174
174
|
/* -------- Hover styles -------- */
|
|
175
|
-
.bs-input-addon:hover
|
|
175
|
+
.bs-input-addon:hover,
|
|
176
|
+
:where(label):hover + .bs-input-addon,
|
|
177
|
+
:where(label):hover + * .bs-input-addon:where(:not(label .bs-input-addon, label + .bs-input-addon)) {
|
|
176
178
|
--input-bg: var(--bs-bg-input-hover);
|
|
177
179
|
}
|
|
178
180
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
:where(label, legend),
|
|
2
2
|
label:where(.bs-label) {
|
|
3
3
|
display: inline-block;
|
|
4
|
+
position: relative;
|
|
4
5
|
width: 100%;
|
|
5
6
|
}
|
|
6
7
|
|
|
@@ -27,3 +28,9 @@ label:where(.bs-label) {
|
|
|
27
28
|
--label-asterisk-color: transparent;
|
|
28
29
|
--label-color: var(--bs-ink-disabled);
|
|
29
30
|
}
|
|
31
|
+
|
|
32
|
+
.bs-label:where(:has(+ input), :has(+ .bs-input-addon), :has(+ :not(label) .bs-input-addon))::after {
|
|
33
|
+
content: '';
|
|
34
|
+
inset: 0 0 -.25rem 0;
|
|
35
|
+
position: absolute;
|
|
36
|
+
}
|
|
@@ -54,3 +54,14 @@
|
|
|
54
54
|
width: 35rem;
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
|
+
|
|
58
|
+
/* Vue Transition Styles - Only used in Vue component */
|
|
59
|
+
.bs-modal:where(.bs-modal-enter-from),
|
|
60
|
+
.bs-modal:where(.bs-modal-leave-to) {
|
|
61
|
+
opacity: 0;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.bs-modal:where(.bs-modal-enter-to),
|
|
65
|
+
.bs-modal:where(.bs-modal-leave-from) {
|
|
66
|
+
opacity: 1;
|
|
67
|
+
}
|
|
@@ -17,3 +17,14 @@
|
|
|
17
17
|
.bs-overlay:where([data-shown]:not([data-shown="false"])) {
|
|
18
18
|
opacity: 1;
|
|
19
19
|
}
|
|
20
|
+
|
|
21
|
+
/* Vue Transition Styles - Only used in Vue component */
|
|
22
|
+
.bs-overlay:where(.bs-overlay-enter-from),
|
|
23
|
+
.bs-overlay:where(.bs-overlay-leave-to) {
|
|
24
|
+
opacity: 0;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.bs-overlay:where(.bs-overlay-enter-to),
|
|
28
|
+
.bs-overlay:where(.bs-overlay-leave-from) {
|
|
29
|
+
opacity: 1;
|
|
30
|
+
}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
/* Base Toast Styles */
|
|
2
2
|
.bs-toast {
|
|
3
|
+
--toast-transform: translate(0, calc(100% + 1.5rem));
|
|
4
|
+
|
|
3
5
|
background-color: var(--bs-bg-base-elevated);
|
|
4
6
|
border-top: 4px solid var(--bs-blue-base);
|
|
5
7
|
bottom: 1.5rem;
|
|
@@ -10,7 +12,7 @@
|
|
|
10
12
|
opacity: 0;
|
|
11
13
|
position: fixed;
|
|
12
14
|
right: 0;
|
|
13
|
-
transform:
|
|
15
|
+
transform: var(--toast-transform);
|
|
14
16
|
transition-duration: 200ms;
|
|
15
17
|
transition-property: transform, opacity;
|
|
16
18
|
transition-timing-function: ease;
|
|
@@ -110,12 +112,13 @@
|
|
|
110
112
|
|
|
111
113
|
@media (min-width: 440px) {
|
|
112
114
|
.bs-toast {
|
|
115
|
+
--toast-transform: translate(calc(100% + 1.5rem), 0);
|
|
116
|
+
|
|
113
117
|
left: auto;
|
|
114
118
|
margin-left: 0;
|
|
115
119
|
margin-right: 0;
|
|
116
120
|
opacity: 0;
|
|
117
121
|
right: 1.5rem;
|
|
118
|
-
transform: translate(calc(100% + 1.5rem), 0);
|
|
119
122
|
}
|
|
120
123
|
|
|
121
124
|
.bs-toast:where([data-shown]:not([data-shown="false"])) {
|
|
@@ -127,3 +130,16 @@
|
|
|
127
130
|
flex-direction: row;
|
|
128
131
|
}
|
|
129
132
|
}
|
|
133
|
+
|
|
134
|
+
/* Vue Transition Styles - Only used in Vue component */
|
|
135
|
+
.bs-toast:where(.bs-toast-enter-from),
|
|
136
|
+
.bs-toast:where(.bs-toast-leave-to) {
|
|
137
|
+
opacity: 0;
|
|
138
|
+
transform: var(--toast-transform);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
.bs-toast:where(.bs-toast-enter-to),
|
|
142
|
+
.bs-toast:where(.bs-toast-leave-from) {
|
|
143
|
+
opacity: 1;
|
|
144
|
+
transform: translate(0, 0);
|
|
145
|
+
}
|
package/dist/wwt-bsds-preset.js
CHANGED
|
@@ -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",
|