@wwtdev/bsds-css 2.3.4 → 2.4.1
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/_dropdown-options.scss +12 -17
- package/dist/components/_filter-buttons.scss +14 -6
- package/dist/components/_spinner.scss +95 -0
- package/dist/components/_timeline.scss +104 -0
- package/dist/components/dropdown-options.css +12 -17
- package/dist/components/filter-buttons.css +14 -6
- package/dist/components/spinner.css +91 -0
- package/dist/components/timeline.css +100 -0
- package/dist/wwt-bsds-preset.js +1 -0
- package/dist/wwt-bsds.css +185 -21
- package/dist/wwt-bsds.min.css +1 -1
- package/package.json +1 -1
|
@@ -11,6 +11,11 @@
|
|
|
11
11
|
overflow-y: auto;
|
|
12
12
|
padding-block: 0.5rem;
|
|
13
13
|
padding-left: 0;
|
|
14
|
+
position: relative;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.bs-dropdown-options:focus-visible {
|
|
18
|
+
outline: none;
|
|
14
19
|
}
|
|
15
20
|
|
|
16
21
|
/* Stabilize scrollbar gutter for Firefox (https://bugzilla.mozilla.org/show_bug.cgi?id=764076) */
|
|
@@ -127,18 +132,8 @@
|
|
|
127
132
|
color: var(--bs-red-500);
|
|
128
133
|
}
|
|
129
134
|
|
|
130
|
-
/* List option mouse click focus (do not show) */
|
|
131
|
-
.bs-dropdown-options :where(li:focus:not(:focus-visible)){
|
|
132
|
-
outline: none;
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
/* data-variant="negative" list option mouse click focus (do not show) */
|
|
136
|
-
.bs-dropdown-options :where(li[data-variant~="negative"]:focus:not(:focus-visible)) {
|
|
137
|
-
outline: none;
|
|
138
|
-
}
|
|
139
|
-
|
|
140
135
|
/* List option keyboard navigation focus */
|
|
141
|
-
.bs-dropdown-options
|
|
136
|
+
.bs-dropdown-options:where(:focus-visible) :where(li[data-active]) {
|
|
142
137
|
--focus-border-color: var(--bs-blue-base);
|
|
143
138
|
border: 2px solid var(--focus-border-color);
|
|
144
139
|
outline: none;
|
|
@@ -146,13 +141,13 @@
|
|
|
146
141
|
}
|
|
147
142
|
|
|
148
143
|
/* Navigation focus on a selected element should preserve 4px left border */
|
|
149
|
-
.bs-dropdown-options :where(li[data-selected]
|
|
144
|
+
.bs-dropdown-options:where(:focus-visible) :where(li[data-selected][data-active]) {
|
|
150
145
|
border-left: 4px solid var(--focus-border-color);
|
|
151
146
|
padding-left: 1.25rem;
|
|
152
147
|
}
|
|
153
148
|
|
|
154
149
|
/* data-variant="negative" list option keyboard navigation focus */
|
|
155
|
-
.bs-dropdown-options :where(li[data-variant~="negative"]
|
|
150
|
+
.bs-dropdown-options:where(:focus-visible) :where(li[data-variant~="negative"][data-active]) {
|
|
156
151
|
--focus-border-color: var(--bs-red-200);
|
|
157
152
|
}
|
|
158
153
|
|
|
@@ -210,11 +205,11 @@
|
|
|
210
205
|
padding-right: 0.625rem;
|
|
211
206
|
}
|
|
212
207
|
|
|
213
|
-
.bs-dropdown:where([data-no-mobile="true"]) :where(.bs-dropdown-options) :where(li
|
|
208
|
+
.bs-dropdown:where([data-no-mobile="true"]) :where(.bs-dropdown-options:focus-visible) :where(li[data-active]) {
|
|
214
209
|
padding-left: 0.625rem;
|
|
215
210
|
}
|
|
216
211
|
|
|
217
|
-
.bs-dropdown:where([data-no-mobile="true"]) :where(.bs-dropdown-options) :where(li[data-selected]
|
|
212
|
+
.bs-dropdown:where([data-no-mobile="true"]) :where(.bs-dropdown-options:focus-visible) :where(li[data-selected][data-active]) {
|
|
218
213
|
padding-left: 0.5rem;
|
|
219
214
|
}
|
|
220
215
|
|
|
@@ -228,11 +223,11 @@
|
|
|
228
223
|
padding-right: 0.625rem;
|
|
229
224
|
}
|
|
230
225
|
|
|
231
|
-
.bs-dropdown-options
|
|
226
|
+
.bs-dropdown-options:where(:focus-visible) :where(li[data-active]) {
|
|
232
227
|
padding-left: 0.625rem;
|
|
233
228
|
}
|
|
234
229
|
|
|
235
|
-
.bs-dropdown-options :where(li[data-selected]
|
|
230
|
+
.bs-dropdown-options:where(:focus-visible) :where(li[data-selected][data-active]) {
|
|
236
231
|
padding-left: 0.5rem;
|
|
237
232
|
}
|
|
238
233
|
}
|
|
@@ -12,25 +12,32 @@ custom properties:
|
|
|
12
12
|
|
|
13
13
|
button:where(.bs-filter-button) {
|
|
14
14
|
flex-shrink: 0;
|
|
15
|
+
position: relative;
|
|
15
16
|
}
|
|
16
17
|
|
|
17
18
|
.bs-filter-button {
|
|
18
19
|
align-items: center;
|
|
19
|
-
border-radius: 0.25rem;
|
|
20
20
|
color: var(--filterbtn-color, var(--bs-ink-blue));
|
|
21
21
|
column-gap: 0.5rem;
|
|
22
22
|
cursor: pointer;
|
|
23
23
|
display: inline-flex;
|
|
24
24
|
font-size: var(--filterbtn-text-size, var(--bs-text-base));
|
|
25
25
|
font-weight: var(--filterbtn-weight, 400);
|
|
26
|
-
height: var(--filterbtn-height,
|
|
26
|
+
height: var(--filterbtn-height, 1.5rem);
|
|
27
27
|
line-height: 1.5;
|
|
28
|
-
outline: solid var(--filterbtn-focus-color, transparent) .125rem;
|
|
29
|
-
outline-offset: -.125rem;
|
|
30
|
-
padding-inline: .5rem;
|
|
31
28
|
transition: outline-color 100ms ease-in-out;
|
|
32
29
|
width: max-content;
|
|
33
30
|
}
|
|
31
|
+
.bs-filter-button::after {
|
|
32
|
+
border: solid var(--filterbtn-focus-color, transparent) 2px;
|
|
33
|
+
border-radius: 0.25rem;
|
|
34
|
+
content: '';
|
|
35
|
+
display: block;
|
|
36
|
+
height: 100%;
|
|
37
|
+
position: absolute;
|
|
38
|
+
transform: scale(1.25);
|
|
39
|
+
width: 100%;
|
|
40
|
+
}
|
|
34
41
|
|
|
35
42
|
.bs-filter-button :where(.bs-icon),
|
|
36
43
|
.bs-filter-button :where(span:has(svg:only-child)) {
|
|
@@ -44,7 +51,7 @@ button:where(.bs-filter-button) {
|
|
|
44
51
|
}
|
|
45
52
|
|
|
46
53
|
.bs-filter-button:where([data-size="sm"],[data-size="xs"]) {
|
|
47
|
-
|
|
54
|
+
|
|
48
55
|
--filterbtn-text-size: var(--bs-text-sm);
|
|
49
56
|
--filterbtn-caret-size: .75rem;
|
|
50
57
|
}
|
|
@@ -65,6 +72,7 @@ button:where(.bs-filter-button) {
|
|
|
65
72
|
|
|
66
73
|
/* Focus state */
|
|
67
74
|
.bs-filter-button:where(:focus-visible) {
|
|
75
|
+
outline: none;
|
|
68
76
|
--filterbtn-focus-color: var(--bs-blue-base);
|
|
69
77
|
}
|
|
70
78
|
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
@mixin spinner() {
|
|
2
|
+
:where(.bs-spinner) {
|
|
3
|
+
display: block;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
/* ------------ Sizes ------------ */
|
|
7
|
+
.bs-spinner {
|
|
8
|
+
aspect-ratio: 1;
|
|
9
|
+
fill: none;
|
|
10
|
+
height: var(--spinner-size, 2rem);
|
|
11
|
+
width: var(--spinner-size, 2rem);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.bs-spinner:where([data-size="sm"]) {
|
|
15
|
+
--spinner-size: 1rem;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.bs-spinner:where([data-size="md"]) {
|
|
19
|
+
--spinner-size: 2rem;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.bs-spinner:where([data-size="lg"]) {
|
|
23
|
+
--spinner-size: 3rem;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/* ------------ Color Variants ------------ */
|
|
27
|
+
|
|
28
|
+
.bs-spinner :where(circle) {
|
|
29
|
+
animation: bs-spin 1s linear infinite;
|
|
30
|
+
stroke-linecap: round;
|
|
31
|
+
stroke-width: 10%;
|
|
32
|
+
transition: all 1s ease-in-out;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.bs-spinner:where(:not([data-variant="gradient"])) :where(circle) {
|
|
36
|
+
animation: bs-spin 1s linear infinite, bs-stroke-change 2s linear infinite;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.bs-spinner :where(circle) {
|
|
40
|
+
--bs-spinner-color-1: var(--bs-blue-400);
|
|
41
|
+
--bs-spinner-color-2: var(--bs-blue-200);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.bs-spinner:where([data-variant="white"]) :where(circle) {
|
|
45
|
+
--bs-spinner-color-1: white;
|
|
46
|
+
--bs-spinner-color-2: white;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
:where(#bs-spinner-gradient stop) {
|
|
50
|
+
stop-color: var(--bs-plum-400);
|
|
51
|
+
}
|
|
52
|
+
:where(#bs-spinner-gradient stop:first-child) {
|
|
53
|
+
stop-color: var(--bs-blue-400);
|
|
54
|
+
}
|
|
55
|
+
:where(#bs-spinner-gradient stop:last-child) {
|
|
56
|
+
stop-color: var(--bs-red-400);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
@keyframes bs-spin {
|
|
60
|
+
0% {
|
|
61
|
+
stroke-dasharray: 0 100;
|
|
62
|
+
stroke-dashoffset: 0;
|
|
63
|
+
}
|
|
64
|
+
25% {
|
|
65
|
+
stroke-dasharray: 33 67;
|
|
66
|
+
stroke-dashoffset: -40;
|
|
67
|
+
}
|
|
68
|
+
70% {
|
|
69
|
+
stroke-dasharray: 33 67;
|
|
70
|
+
stroke-dashoffset: -60;
|
|
71
|
+
}
|
|
72
|
+
85% {
|
|
73
|
+
stroke-dasharray: 17 83;
|
|
74
|
+
stroke-dashoffset: -77;
|
|
75
|
+
}
|
|
76
|
+
100% {
|
|
77
|
+
stroke-dasharray: 0 100;
|
|
78
|
+
stroke-dashoffset: -100;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
@keyframes bs-stroke-change {
|
|
83
|
+
0% {
|
|
84
|
+
stroke: var(--bs-spinner-color-1);
|
|
85
|
+
}
|
|
86
|
+
33% {
|
|
87
|
+
stroke: var(--bs-spinner-color-2, var(--bs-spinner-color-1));
|
|
88
|
+
}
|
|
89
|
+
100% {
|
|
90
|
+
stroke: var(--bs-spinner-color-1);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
}
|
|
95
|
+
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
@mixin timeline() {
|
|
2
|
+
.bs-progress-bar, .bs-timeline {
|
|
3
|
+
background-color: var(--bs-bg-base);
|
|
4
|
+
display: flex;
|
|
5
|
+
position: relative;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
.bs-progress-bar {
|
|
9
|
+
gap: .25rem;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/* ------------ Step Item ------------ */
|
|
13
|
+
|
|
14
|
+
:is(.bs-progress-bar, .bs-timeline) :where(.bs-step-item) {
|
|
15
|
+
background-color: var(--step-bg, inherit);
|
|
16
|
+
flex-grow: 1;
|
|
17
|
+
flex-shrink: 0;
|
|
18
|
+
position: relative;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/* -- Step Items in Timeline -- */
|
|
22
|
+
|
|
23
|
+
.bs-timeline :where(.bs-step-item) {
|
|
24
|
+
align-items: center;
|
|
25
|
+
color: var(--step-color, var(--bs-ink-disabled));
|
|
26
|
+
display: flex;
|
|
27
|
+
flex-direction: column;
|
|
28
|
+
padding-inline: 1rem;
|
|
29
|
+
row-gap: 0.5rem;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.bs-timeline :where(.bs-step-item *) {
|
|
33
|
+
text-wrap: nowrap;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.bs-timeline :where(.bs-step-item .bs-step-icon) {
|
|
37
|
+
background-color: inherit;
|
|
38
|
+
height: 1.5rem;
|
|
39
|
+
text-align: center;
|
|
40
|
+
width: 1.5rem;
|
|
41
|
+
z-index: 10;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.bs-timeline :where(.bs-step-item)::after {
|
|
45
|
+
border-top: 0.125rem solid var(--bs-border-base);
|
|
46
|
+
content: '';
|
|
47
|
+
display: block;
|
|
48
|
+
position: absolute;
|
|
49
|
+
top: 0.75rem;
|
|
50
|
+
width: 100%;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/* -- Step Items in Progress Bar -- */
|
|
54
|
+
|
|
55
|
+
.bs-progress-bar :where(.bs-step-item) {
|
|
56
|
+
--step-bg: var(--progress-step-bg, var(--bs-bg-disabled));
|
|
57
|
+
height: .25rem;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.bs-progress-bar :where(.bs-step-item > *) {
|
|
61
|
+
border: 0;
|
|
62
|
+
clip: rect(0 0 0 0);
|
|
63
|
+
height: 1px;
|
|
64
|
+
margin: 0;
|
|
65
|
+
overflow: hidden;
|
|
66
|
+
padding: 0;
|
|
67
|
+
position: absolute;
|
|
68
|
+
white-space: nowrap;
|
|
69
|
+
width: 1px;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
/* ------------ Status colors ------------ */
|
|
75
|
+
:is(.bs-progress-bar, .bs-timeline) :where(.bs-step-item[data-status="in-progress"]) {
|
|
76
|
+
--step-color: var(--bs-ink-base);
|
|
77
|
+
--progress-step-bg: var(--bs-purple-light);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
:is(.bs-progress-bar, .bs-timeline) :where(.bs-step-item[data-status="complete"]),
|
|
81
|
+
:is(.bs-progress-bar, .bs-timeline) :where(.bs-step-item[data-status="paused"]),
|
|
82
|
+
:is(.bs-progress-bar, .bs-timeline) :where(.bs-step-item[data-status="ongoing"]) {
|
|
83
|
+
--step-color: var(--bs-ink-purple);
|
|
84
|
+
--progress-step-bg: var(--bs-purple-medium);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
:is(.bs-progress-bar, .bs-timeline) :where(.bs-step-item[data-status="base"]) {
|
|
88
|
+
--progress-step-bg: var(--bs-purple-base);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
:is(.bs-progress-bar, .bs-timeline) :where(.bs-step-item[data-status="warning"]) {
|
|
92
|
+
--step-color: var(--bs-ink-orange);
|
|
93
|
+
--progress-step-bg: var(--bs-orange-base);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
:is(.bs-progress-bar, .bs-timeline) :where(.bs-step-item[data-status="error"]),
|
|
97
|
+
:is(.bs-progress-bar, .bs-timeline) :where(.bs-step-item[data-status="cancelled"]) {
|
|
98
|
+
--step-color: var(--bs-ink-red);
|
|
99
|
+
--progress-step-bg: var(--bs-red-base);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
}
|
|
104
|
+
|
|
@@ -10,6 +10,11 @@
|
|
|
10
10
|
overflow-y: auto;
|
|
11
11
|
padding-block: 0.5rem;
|
|
12
12
|
padding-left: 0;
|
|
13
|
+
position: relative;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.bs-dropdown-options:focus-visible {
|
|
17
|
+
outline: none;
|
|
13
18
|
}
|
|
14
19
|
|
|
15
20
|
/* Stabilize scrollbar gutter for Firefox (https://bugzilla.mozilla.org/show_bug.cgi?id=764076) */
|
|
@@ -126,18 +131,8 @@
|
|
|
126
131
|
color: var(--bs-red-500);
|
|
127
132
|
}
|
|
128
133
|
|
|
129
|
-
/* List option mouse click focus (do not show) */
|
|
130
|
-
.bs-dropdown-options :where(li:focus:not(:focus-visible)){
|
|
131
|
-
outline: none;
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
/* data-variant="negative" list option mouse click focus (do not show) */
|
|
135
|
-
.bs-dropdown-options :where(li[data-variant~="negative"]:focus:not(:focus-visible)) {
|
|
136
|
-
outline: none;
|
|
137
|
-
}
|
|
138
|
-
|
|
139
134
|
/* List option keyboard navigation focus */
|
|
140
|
-
.bs-dropdown-options
|
|
135
|
+
.bs-dropdown-options:where(:focus-visible) :where(li[data-active]) {
|
|
141
136
|
--focus-border-color: var(--bs-blue-base);
|
|
142
137
|
border: 2px solid var(--focus-border-color);
|
|
143
138
|
outline: none;
|
|
@@ -145,13 +140,13 @@
|
|
|
145
140
|
}
|
|
146
141
|
|
|
147
142
|
/* Navigation focus on a selected element should preserve 4px left border */
|
|
148
|
-
.bs-dropdown-options :where(li[data-selected]
|
|
143
|
+
.bs-dropdown-options:where(:focus-visible) :where(li[data-selected][data-active]) {
|
|
149
144
|
border-left: 4px solid var(--focus-border-color);
|
|
150
145
|
padding-left: 1.25rem;
|
|
151
146
|
}
|
|
152
147
|
|
|
153
148
|
/* data-variant="negative" list option keyboard navigation focus */
|
|
154
|
-
.bs-dropdown-options :where(li[data-variant~="negative"]
|
|
149
|
+
.bs-dropdown-options:where(:focus-visible) :where(li[data-variant~="negative"][data-active]) {
|
|
155
150
|
--focus-border-color: var(--bs-red-200);
|
|
156
151
|
}
|
|
157
152
|
|
|
@@ -209,11 +204,11 @@
|
|
|
209
204
|
padding-right: 0.625rem;
|
|
210
205
|
}
|
|
211
206
|
|
|
212
|
-
.bs-dropdown:where([data-no-mobile="true"]) :where(.bs-dropdown-options) :where(li
|
|
207
|
+
.bs-dropdown:where([data-no-mobile="true"]) :where(.bs-dropdown-options:focus-visible) :where(li[data-active]) {
|
|
213
208
|
padding-left: 0.625rem;
|
|
214
209
|
}
|
|
215
210
|
|
|
216
|
-
.bs-dropdown:where([data-no-mobile="true"]) :where(.bs-dropdown-options) :where(li[data-selected]
|
|
211
|
+
.bs-dropdown:where([data-no-mobile="true"]) :where(.bs-dropdown-options:focus-visible) :where(li[data-selected][data-active]) {
|
|
217
212
|
padding-left: 0.5rem;
|
|
218
213
|
}
|
|
219
214
|
|
|
@@ -227,11 +222,11 @@
|
|
|
227
222
|
padding-right: 0.625rem;
|
|
228
223
|
}
|
|
229
224
|
|
|
230
|
-
.bs-dropdown-options
|
|
225
|
+
.bs-dropdown-options:where(:focus-visible) :where(li[data-active]) {
|
|
231
226
|
padding-left: 0.625rem;
|
|
232
227
|
}
|
|
233
228
|
|
|
234
|
-
.bs-dropdown-options :where(li[data-selected]
|
|
229
|
+
.bs-dropdown-options:where(:focus-visible) :where(li[data-selected][data-active]) {
|
|
235
230
|
padding-left: 0.5rem;
|
|
236
231
|
}
|
|
237
232
|
}
|
|
@@ -11,25 +11,32 @@ custom properties:
|
|
|
11
11
|
|
|
12
12
|
button:where(.bs-filter-button) {
|
|
13
13
|
flex-shrink: 0;
|
|
14
|
+
position: relative;
|
|
14
15
|
}
|
|
15
16
|
|
|
16
17
|
.bs-filter-button {
|
|
17
18
|
align-items: center;
|
|
18
|
-
border-radius: 0.25rem;
|
|
19
19
|
color: var(--filterbtn-color, var(--bs-ink-blue));
|
|
20
20
|
column-gap: 0.5rem;
|
|
21
21
|
cursor: pointer;
|
|
22
22
|
display: inline-flex;
|
|
23
23
|
font-size: var(--filterbtn-text-size, var(--bs-text-base));
|
|
24
24
|
font-weight: var(--filterbtn-weight, 400);
|
|
25
|
-
height: var(--filterbtn-height,
|
|
25
|
+
height: var(--filterbtn-height, 1.5rem);
|
|
26
26
|
line-height: 1.5;
|
|
27
|
-
outline: solid var(--filterbtn-focus-color, transparent) .125rem;
|
|
28
|
-
outline-offset: -.125rem;
|
|
29
|
-
padding-inline: .5rem;
|
|
30
27
|
transition: outline-color 100ms ease-in-out;
|
|
31
28
|
width: max-content;
|
|
32
29
|
}
|
|
30
|
+
.bs-filter-button::after {
|
|
31
|
+
border: solid var(--filterbtn-focus-color, transparent) 2px;
|
|
32
|
+
border-radius: 0.25rem;
|
|
33
|
+
content: '';
|
|
34
|
+
display: block;
|
|
35
|
+
height: 100%;
|
|
36
|
+
position: absolute;
|
|
37
|
+
transform: scale(1.25);
|
|
38
|
+
width: 100%;
|
|
39
|
+
}
|
|
33
40
|
|
|
34
41
|
.bs-filter-button :where(.bs-icon),
|
|
35
42
|
.bs-filter-button :where(span:has(svg:only-child)) {
|
|
@@ -43,7 +50,7 @@ button:where(.bs-filter-button) {
|
|
|
43
50
|
}
|
|
44
51
|
|
|
45
52
|
.bs-filter-button:where([data-size="sm"],[data-size="xs"]) {
|
|
46
|
-
|
|
53
|
+
|
|
47
54
|
--filterbtn-text-size: var(--bs-text-sm);
|
|
48
55
|
--filterbtn-caret-size: .75rem;
|
|
49
56
|
}
|
|
@@ -64,6 +71,7 @@ button:where(.bs-filter-button) {
|
|
|
64
71
|
|
|
65
72
|
/* Focus state */
|
|
66
73
|
.bs-filter-button:where(:focus-visible) {
|
|
74
|
+
outline: none;
|
|
67
75
|
--filterbtn-focus-color: var(--bs-blue-base);
|
|
68
76
|
}
|
|
69
77
|
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
:where(.bs-spinner) {
|
|
2
|
+
display: block;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
/* ------------ Sizes ------------ */
|
|
6
|
+
.bs-spinner {
|
|
7
|
+
aspect-ratio: 1;
|
|
8
|
+
fill: none;
|
|
9
|
+
height: var(--spinner-size, 2rem);
|
|
10
|
+
width: var(--spinner-size, 2rem);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.bs-spinner:where([data-size="sm"]) {
|
|
14
|
+
--spinner-size: 1rem;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.bs-spinner:where([data-size="md"]) {
|
|
18
|
+
--spinner-size: 2rem;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.bs-spinner:where([data-size="lg"]) {
|
|
22
|
+
--spinner-size: 3rem;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/* ------------ Color Variants ------------ */
|
|
26
|
+
|
|
27
|
+
.bs-spinner :where(circle) {
|
|
28
|
+
animation: bs-spin 1s linear infinite;
|
|
29
|
+
stroke-linecap: round;
|
|
30
|
+
stroke-width: 10%;
|
|
31
|
+
transition: all 1s ease-in-out;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.bs-spinner:where(:not([data-variant="gradient"])) :where(circle) {
|
|
35
|
+
animation: bs-spin 1s linear infinite, bs-stroke-change 2s linear infinite;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.bs-spinner :where(circle) {
|
|
39
|
+
--bs-spinner-color-1: var(--bs-blue-400);
|
|
40
|
+
--bs-spinner-color-2: var(--bs-blue-200);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.bs-spinner:where([data-variant="white"]) :where(circle) {
|
|
44
|
+
--bs-spinner-color-1: white;
|
|
45
|
+
--bs-spinner-color-2: white;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
:where(#bs-spinner-gradient stop) {
|
|
49
|
+
stop-color: var(--bs-plum-400);
|
|
50
|
+
}
|
|
51
|
+
:where(#bs-spinner-gradient stop:first-child) {
|
|
52
|
+
stop-color: var(--bs-blue-400);
|
|
53
|
+
}
|
|
54
|
+
:where(#bs-spinner-gradient stop:last-child) {
|
|
55
|
+
stop-color: var(--bs-red-400);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
@keyframes bs-spin {
|
|
59
|
+
0% {
|
|
60
|
+
stroke-dasharray: 0 100;
|
|
61
|
+
stroke-dashoffset: 0;
|
|
62
|
+
}
|
|
63
|
+
25% {
|
|
64
|
+
stroke-dasharray: 33 67;
|
|
65
|
+
stroke-dashoffset: -40;
|
|
66
|
+
}
|
|
67
|
+
70% {
|
|
68
|
+
stroke-dasharray: 33 67;
|
|
69
|
+
stroke-dashoffset: -60;
|
|
70
|
+
}
|
|
71
|
+
85% {
|
|
72
|
+
stroke-dasharray: 17 83;
|
|
73
|
+
stroke-dashoffset: -77;
|
|
74
|
+
}
|
|
75
|
+
100% {
|
|
76
|
+
stroke-dasharray: 0 100;
|
|
77
|
+
stroke-dashoffset: -100;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
@keyframes bs-stroke-change {
|
|
82
|
+
0% {
|
|
83
|
+
stroke: var(--bs-spinner-color-1);
|
|
84
|
+
}
|
|
85
|
+
33% {
|
|
86
|
+
stroke: var(--bs-spinner-color-2, var(--bs-spinner-color-1));
|
|
87
|
+
}
|
|
88
|
+
100% {
|
|
89
|
+
stroke: var(--bs-spinner-color-1);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
.bs-progress-bar, .bs-timeline {
|
|
2
|
+
background-color: var(--bs-bg-base);
|
|
3
|
+
display: flex;
|
|
4
|
+
position: relative;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.bs-progress-bar {
|
|
8
|
+
gap: .25rem;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
/* ------------ Step Item ------------ */
|
|
12
|
+
|
|
13
|
+
:is(.bs-progress-bar, .bs-timeline) :where(.bs-step-item) {
|
|
14
|
+
background-color: var(--step-bg, inherit);
|
|
15
|
+
flex-grow: 1;
|
|
16
|
+
flex-shrink: 0;
|
|
17
|
+
position: relative;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/* -- Step Items in Timeline -- */
|
|
21
|
+
|
|
22
|
+
.bs-timeline :where(.bs-step-item) {
|
|
23
|
+
align-items: center;
|
|
24
|
+
color: var(--step-color, var(--bs-ink-disabled));
|
|
25
|
+
display: flex;
|
|
26
|
+
flex-direction: column;
|
|
27
|
+
padding-inline: 1rem;
|
|
28
|
+
row-gap: 0.5rem;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.bs-timeline :where(.bs-step-item *) {
|
|
32
|
+
text-wrap: nowrap;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.bs-timeline :where(.bs-step-item .bs-step-icon) {
|
|
36
|
+
background-color: inherit;
|
|
37
|
+
height: 1.5rem;
|
|
38
|
+
text-align: center;
|
|
39
|
+
width: 1.5rem;
|
|
40
|
+
z-index: 10;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.bs-timeline :where(.bs-step-item)::after {
|
|
44
|
+
border-top: 0.125rem solid var(--bs-border-base);
|
|
45
|
+
content: '';
|
|
46
|
+
display: block;
|
|
47
|
+
position: absolute;
|
|
48
|
+
top: 0.75rem;
|
|
49
|
+
width: 100%;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/* -- Step Items in Progress Bar -- */
|
|
53
|
+
|
|
54
|
+
.bs-progress-bar :where(.bs-step-item) {
|
|
55
|
+
--step-bg: var(--progress-step-bg, var(--bs-bg-disabled));
|
|
56
|
+
height: .25rem;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.bs-progress-bar :where(.bs-step-item > *) {
|
|
60
|
+
border: 0;
|
|
61
|
+
clip: rect(0 0 0 0);
|
|
62
|
+
height: 1px;
|
|
63
|
+
margin: 0;
|
|
64
|
+
overflow: hidden;
|
|
65
|
+
padding: 0;
|
|
66
|
+
position: absolute;
|
|
67
|
+
white-space: nowrap;
|
|
68
|
+
width: 1px;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
/* ------------ Status colors ------------ */
|
|
74
|
+
:is(.bs-progress-bar, .bs-timeline) :where(.bs-step-item[data-status="in-progress"]) {
|
|
75
|
+
--step-color: var(--bs-ink-base);
|
|
76
|
+
--progress-step-bg: var(--bs-purple-light);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
:is(.bs-progress-bar, .bs-timeline) :where(.bs-step-item[data-status="complete"]),
|
|
80
|
+
:is(.bs-progress-bar, .bs-timeline) :where(.bs-step-item[data-status="paused"]),
|
|
81
|
+
:is(.bs-progress-bar, .bs-timeline) :where(.bs-step-item[data-status="ongoing"]) {
|
|
82
|
+
--step-color: var(--bs-ink-purple);
|
|
83
|
+
--progress-step-bg: var(--bs-purple-medium);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
:is(.bs-progress-bar, .bs-timeline) :where(.bs-step-item[data-status="base"]) {
|
|
87
|
+
--progress-step-bg: var(--bs-purple-base);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
:is(.bs-progress-bar, .bs-timeline) :where(.bs-step-item[data-status="warning"]) {
|
|
91
|
+
--step-color: var(--bs-ink-orange);
|
|
92
|
+
--progress-step-bg: var(--bs-orange-base);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
:is(.bs-progress-bar, .bs-timeline) :where(.bs-step-item[data-status="error"]),
|
|
96
|
+
:is(.bs-progress-bar, .bs-timeline) :where(.bs-step-item[data-status="cancelled"]) {
|
|
97
|
+
--step-color: var(--bs-ink-red);
|
|
98
|
+
--progress-step-bg: var(--bs-red-base);
|
|
99
|
+
}
|
|
100
|
+
|
package/dist/wwt-bsds-preset.js
CHANGED
|
@@ -148,6 +148,7 @@ module.exports = {
|
|
|
148
148
|
"base-to-light": "var(--bs-bg-base-to-light)",
|
|
149
149
|
"base-to-medium": "var(--bs-bg-base-to-medium)",
|
|
150
150
|
"light": "var(--bs-bg-light)",
|
|
151
|
+
"light-to-base": "var(--bs-bg-light-to-base)",
|
|
151
152
|
"light-to-medium": "var(--bs-bg-light-to-medium)",
|
|
152
153
|
"medium": "var(--bs-bg-medium)",
|
|
153
154
|
"medium-to-light": "var(--bs-bg-medium-to-light)",
|