@wwtdev/bsds-css 2.1.2 → 2.1.4
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 +25 -5
- package/dist/components/_circle-buttons.scss +33 -10
- package/dist/components/_dropdown-options.scss +44 -23
- package/dist/components/_form-input-composite.scss +12 -5
- package/dist/components/_form-input-search.scss +5 -0
- package/dist/components/_form-labels.scss +5 -3
- package/dist/components/_form-switches.scss +33 -32
- package/dist/components/_form-text-fields.scss +12 -2
- package/dist/components/_modal.scss +12 -1
- package/dist/components/buttons.css +25 -5
- package/dist/components/circle-buttons.css +33 -10
- package/dist/components/dropdown-options.css +44 -23
- package/dist/components/form-input-composite.css +12 -5
- package/dist/components/form-input-search.css +5 -0
- package/dist/components/form-labels.css +5 -3
- package/dist/components/form-switches.css +33 -32
- package/dist/components/form-text-fields.css +12 -2
- package/dist/components/modal.css +12 -1
- package/dist/wwt-bsds-wc-base.css +3 -0
- package/dist/wwt-bsds.css +165 -77
- package/dist/wwt-bsds.min.css +1 -1
- package/package.json +1 -1
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
cursor: pointer;
|
|
14
14
|
display: inline-flex;
|
|
15
15
|
font-size: var(--btn-text-size, var(--bs-text-md));
|
|
16
|
-
font-weight: 600;
|
|
16
|
+
font-weight: var(--btn-weight, 600);
|
|
17
17
|
height: var(--btn-height, 2.5rem);
|
|
18
18
|
justify-content: center;
|
|
19
19
|
line-height: 1.5;
|
|
@@ -125,10 +125,10 @@
|
|
|
125
125
|
--btn-padding: 0;
|
|
126
126
|
--btn-focus-pseudo-width: calc(100% + 1rem); /* text btns don't have side padding, but we do want focus outline to look padded */
|
|
127
127
|
--btn-text-size: var(--bs-text-md);
|
|
128
|
+
--btn-weight: 400;
|
|
128
129
|
background-color: transparent;
|
|
129
130
|
color: var(--bs-blue-500);
|
|
130
131
|
cursor: pointer;
|
|
131
|
-
font-weight: 400;
|
|
132
132
|
line-height: 150%;
|
|
133
133
|
}
|
|
134
134
|
.bs-button:where([data-text]:not([data-text="false"])):hover {
|
|
@@ -141,29 +141,49 @@
|
|
|
141
141
|
}
|
|
142
142
|
.bs-button:where([data-text]:not([data-text="false"])):active {
|
|
143
143
|
box-shadow: none;
|
|
144
|
+
transform: none;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
/* ------------ Button Sizes, Media-based Text Sizing -------------- */
|
|
148
|
+
/* Std button: Mobile text size, WM text size */
|
|
149
|
+
.bs-button {
|
|
150
|
+
--btn-text-size: 1rem;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
@media (min-width: 752px) {
|
|
154
|
+
.bs-button {
|
|
155
|
+
--btn-text-size: 1.125rem;
|
|
156
|
+
}
|
|
144
157
|
}
|
|
145
158
|
|
|
146
|
-
/* ------------ Button Size -------------- */
|
|
147
159
|
.bs-button:where([data-size^='sm']) {
|
|
148
160
|
--btn-height: 1.75rem;
|
|
149
161
|
--btn-padding: .25rem .75rem .375rem;
|
|
162
|
+
/* Std button size="sm" text size is same across all media sizes */
|
|
150
163
|
--btn-text-size: var(--bs-text-sm);
|
|
151
164
|
}
|
|
152
165
|
|
|
153
|
-
|
|
166
|
+
/* Text buttons: For now, text size not dependent on media size */
|
|
167
|
+
.bs-button:where([data-text]:not([data-text="false"])) {
|
|
154
168
|
--btn-height: auto;
|
|
155
169
|
--btn-padding: 0;
|
|
170
|
+
--btn-text-size: var(--bs-text-md);
|
|
156
171
|
}
|
|
157
172
|
|
|
158
173
|
.bs-button:where([data-size^='sm'][data-text]:not([data-text="false"])) {
|
|
159
174
|
--btn-text-size: var(--bs-text-base);
|
|
160
175
|
}
|
|
161
176
|
|
|
162
|
-
/* Size XS only applies to text buttons */
|
|
177
|
+
/* Size XS & XXS only applies to text buttons */
|
|
163
178
|
.bs-button:where([data-size^='xs'][data-text]:not([data-text="false"])) {
|
|
164
179
|
--btn-text-size: var(--bs-text-sm);
|
|
165
180
|
}
|
|
166
181
|
|
|
182
|
+
.bs-button:where([data-size^='xxs'][data-text]:not([data-text="false"])) {
|
|
183
|
+
--btn-text-size: var(--bs-text-xs);
|
|
184
|
+
--btn-weight: 600;
|
|
185
|
+
}
|
|
186
|
+
|
|
167
187
|
|
|
168
188
|
/* ------------ Disabled Styling ------------ */
|
|
169
189
|
:where(button:disabled),
|
|
@@ -31,12 +31,11 @@ a.bs-circle-button {
|
|
|
31
31
|
text-decoration: none;
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
.bs-circle-button::before {
|
|
34
|
+
.bs-circle-button :where(.bs-circle-button-icon)::before {
|
|
35
35
|
border-color: var(--btn-border-color);
|
|
36
36
|
border-radius: var(--btn-border-radius);
|
|
37
37
|
border-style: solid;
|
|
38
38
|
border-width: 0.125rem;
|
|
39
|
-
content: '';
|
|
40
39
|
height: calc(100% + 0.5rem);
|
|
41
40
|
inset: -0.25rem;
|
|
42
41
|
position: absolute;
|
|
@@ -62,17 +61,17 @@ a.bs-circle-button {
|
|
|
62
61
|
--icon-size: var(--btn-icon-size);
|
|
63
62
|
}
|
|
64
63
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
--btn-icon-
|
|
69
|
-
--btn-icon-size: .75rem;
|
|
70
|
-
--btn-text-size: var(--bs-text-sm);
|
|
64
|
+
/* non-bs-icon svgs */
|
|
65
|
+
.bs-circle-button :where(.bs-circle-button-icon) > :where(svg) {
|
|
66
|
+
height: var(--btn-icon-size);
|
|
67
|
+
width: var(--btn-icon-size);
|
|
71
68
|
}
|
|
72
69
|
|
|
73
70
|
/* Icon Buttons with Text */
|
|
74
71
|
.bs-circle-button:where([data-text]:not([data-text="false"])) {
|
|
75
|
-
--btn-
|
|
72
|
+
--btn-text-size: var(--bs-text-md);
|
|
73
|
+
--btn-icon-size: 0.75rem;
|
|
74
|
+
--btn-icon-padding: 0.375rem;
|
|
76
75
|
}
|
|
77
76
|
|
|
78
77
|
/* Ghost Buttons */
|
|
@@ -119,10 +118,14 @@ a.bs-circle-button {
|
|
|
119
118
|
inset 0px 0px 4px 1px var(--btn-highlight);
|
|
120
119
|
}
|
|
121
120
|
|
|
122
|
-
.bs-circle-button:focus-visible {
|
|
121
|
+
.bs-circle-button:where(:focus-visible) {
|
|
123
122
|
--btn-border-color: var(--btn-main);
|
|
124
123
|
}
|
|
125
124
|
|
|
125
|
+
.bs-circle-button:where(:focus-visible) :where(.bs-circle-button-icon)::before {
|
|
126
|
+
content: '';
|
|
127
|
+
}
|
|
128
|
+
|
|
126
129
|
/* Disabled State */
|
|
127
130
|
.bs-circle-button:where(:disabled, [aria-disabled]:not([aria-disabled="false"])) /* for links as buttons */ {
|
|
128
131
|
--btn-icon-stroke-color: var(--bs-ink-disabled);
|
|
@@ -133,5 +136,25 @@ a.bs-circle-button {
|
|
|
133
136
|
background-color: var(--bs-bg-disabled);
|
|
134
137
|
}
|
|
135
138
|
|
|
139
|
+
|
|
140
|
+
/* Button Size */
|
|
141
|
+
.bs-circle-button:where([data-size^='sm']) {
|
|
142
|
+
--btn-icon-padding: .375rem;
|
|
143
|
+
--btn-icon-size: .75rem;
|
|
144
|
+
--btn-text-size: var(--bs-text-sm);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
.bs-circle-button:where([data-size^='sm'][data-text]:not([data-text="false"])) {
|
|
148
|
+
--btn-icon-padding: .3125rem;
|
|
149
|
+
--btn-icon-size: .625rem;
|
|
150
|
+
--btn-text-size: var(--bs-text-base);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
.bs-circle-button:where([data-size='xs'][data-text]:not([data-text="false"])) {
|
|
154
|
+
--btn-icon-padding: .25rem;
|
|
155
|
+
--btn-icon-size: .5rem;
|
|
156
|
+
--btn-text-size: var(--bs-text-sm);
|
|
157
|
+
}
|
|
158
|
+
|
|
136
159
|
}
|
|
137
160
|
|
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
@mixin dropdown-options() {
|
|
2
2
|
/* Option list */
|
|
3
3
|
.bs-dropdown-options {
|
|
4
|
+
display: flex;
|
|
5
|
+
flex-direction: column;
|
|
6
|
+
gap: 0.5rem;
|
|
4
7
|
list-style: none;
|
|
5
|
-
margin-
|
|
6
|
-
margin-top: 0.25rem;
|
|
8
|
+
margin-block: 0.25rem;
|
|
7
9
|
max-height: var(--options-height-max, 20rem);/* constrain scrollable to options section */
|
|
8
10
|
overflow-y: auto;
|
|
9
|
-
padding: 0;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
.bs-dropdown-options :where(li:first-child) {
|
|
13
|
-
margin-top: 0.5rem;
|
|
11
|
+
padding-block: 0.5rem;
|
|
14
12
|
}
|
|
15
13
|
|
|
16
14
|
/* Option list item */
|
|
@@ -25,11 +23,8 @@
|
|
|
25
23
|
column-gap: 0.5rem;
|
|
26
24
|
cursor: pointer;
|
|
27
25
|
display: grid;
|
|
28
|
-
|
|
29
|
-
padding-
|
|
30
|
-
padding-left: 1.25rem;
|
|
31
|
-
padding-right: 1.375rem;
|
|
32
|
-
padding-top: 0.25rem;
|
|
26
|
+
padding-block: 0.25rem;
|
|
27
|
+
padding-inline: 1.25rem;
|
|
33
28
|
row-gap: 0.125rem;
|
|
34
29
|
word-break: break-word;
|
|
35
30
|
word-wrap: break-word;
|
|
@@ -41,7 +36,7 @@
|
|
|
41
36
|
}
|
|
42
37
|
|
|
43
38
|
/* Variant: description */
|
|
44
|
-
.bs-dropdown-options :where(li:not([data-variant~="2-col"])[data-variant~="description"] :nth-child(2)) {
|
|
39
|
+
.bs-dropdown-options :where(li:not([data-variant~="2-col"])[data-variant~="description"] > :nth-child(2)) {
|
|
45
40
|
color: var(--bs-ink-light);
|
|
46
41
|
font-size: var(--bs-text-xs);
|
|
47
42
|
min-height: 1.125rem;
|
|
@@ -49,7 +44,7 @@
|
|
|
49
44
|
}
|
|
50
45
|
|
|
51
46
|
/* Variant: 2-col description */
|
|
52
|
-
.bs-dropdown-options :where(li[data-variant~="2-col"][data-variant~="description"] :nth-child(3)) {
|
|
47
|
+
.bs-dropdown-options :where(li[data-variant~="2-col"][data-variant~="description"] > :nth-child(3)) {
|
|
53
48
|
color: var(--bs-ink-light);
|
|
54
49
|
font-size: var(--bs-text-xs);
|
|
55
50
|
grid-column-start: 2;
|
|
@@ -58,7 +53,7 @@
|
|
|
58
53
|
}
|
|
59
54
|
|
|
60
55
|
/* Hover or data-selected */
|
|
61
|
-
.bs-dropdown-options :where(li:hover),
|
|
56
|
+
.bs-dropdown-options :where(li:not([role="separator"]):hover),
|
|
62
57
|
.bs-dropdown-options :where(li[data-selected]) {
|
|
63
58
|
background-color: var(--bs-bg-medium);
|
|
64
59
|
border-left: 4px solid var(--bs-blue-base);
|
|
@@ -77,18 +72,18 @@
|
|
|
77
72
|
}
|
|
78
73
|
|
|
79
74
|
/* Hover or data-selected for 2-col/description variants */
|
|
80
|
-
.bs-dropdown-options :where(li:not([data-variant~="2-col"])[data-variant~="description"]:hover :nth-child(2)),
|
|
81
|
-
.bs-dropdown-options :where(li[data-variant~="2-col"][data-variant~="description"]:hover :nth-child(3)),
|
|
82
|
-
.bs-dropdown-options :where(li:not([data-variant~="2-col"])[data-variant~="description"][data-selected] :nth-child(2)),
|
|
83
|
-
.bs-dropdown-options :where(li[data-variant~="2-col"][data-variant~="description"][data-selected] :nth-child(3)) {
|
|
75
|
+
.bs-dropdown-options :where(li:not([data-variant~="2-col"])[data-variant~="description"]:hover > :nth-child(2)),
|
|
76
|
+
.bs-dropdown-options :where(li[data-variant~="2-col"][data-variant~="description"]:hover > :nth-child(3)),
|
|
77
|
+
.bs-dropdown-options :where(li:not([data-variant~="2-col"])[data-variant~="description"][data-selected] > :nth-child(2)),
|
|
78
|
+
.bs-dropdown-options :where(li[data-variant~="2-col"][data-variant~="description"][data-selected] > :nth-child(3)) {
|
|
84
79
|
color: var(--bs-blue-base);
|
|
85
80
|
}
|
|
86
81
|
|
|
87
82
|
/* Hover or data-selected for negative + 2-col/description variants */
|
|
88
|
-
.bs-dropdown-options :where(li[data-variant~="negative"]:not([data-variant~="2-col"])[data-variant~="description"]:hover :nth-child(2)),
|
|
89
|
-
.bs-dropdown-options :where(li[data-variant~="negative"][data-variant~="2-col"][data-variant~="description"]:hover :nth-child(3)),
|
|
90
|
-
.bs-dropdown-options :where(li[data-variant~="negative"]:not([data-variant~="2-col"])[data-variant~="description"][data-selected] :nth-child(2)),
|
|
91
|
-
.bs-dropdown-options :where(li[data-variant~="negative"][data-variant~="2-col"][data-variant~="description"][data-selected] :nth-child(3)) {
|
|
83
|
+
.bs-dropdown-options :where(li[data-variant~="negative"]:not([data-variant~="2-col"])[data-variant~="description"]:hover > :nth-child(2)),
|
|
84
|
+
.bs-dropdown-options :where(li[data-variant~="negative"][data-variant~="2-col"][data-variant~="description"]:hover > :nth-child(3)),
|
|
85
|
+
.bs-dropdown-options :where(li[data-variant~="negative"]:not([data-variant~="2-col"])[data-variant~="description"][data-selected] > :nth-child(2)),
|
|
86
|
+
.bs-dropdown-options :where(li[data-variant~="negative"][data-variant~="2-col"][data-variant~="description"][data-selected] > :nth-child(3)) {
|
|
92
87
|
color: var(--bs-red-500);
|
|
93
88
|
}
|
|
94
89
|
|
|
@@ -121,11 +116,37 @@
|
|
|
121
116
|
--focus-border-color: var(--bs-red-200);
|
|
122
117
|
}
|
|
123
118
|
|
|
119
|
+
/* Multi-select divider */
|
|
120
|
+
.bs-dropdown-options :where(li[role="separator"]) {
|
|
121
|
+
cursor: default;
|
|
122
|
+
padding-block: 0.125rem;
|
|
123
|
+
padding-right: 1.375rem;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.bs-dropdown-options :where(hr) {
|
|
127
|
+
background-color: var(--bs-navy-light);
|
|
128
|
+
height: .0625rem;
|
|
129
|
+
margin-block: 0;
|
|
130
|
+
margin-inline: 0;
|
|
131
|
+
}
|
|
132
|
+
|
|
124
133
|
@media (min-width: 752px) {
|
|
125
134
|
.bs-dropdown-options :where(li) {
|
|
126
135
|
padding-left: 0.5rem;
|
|
127
136
|
padding-right: 0.75rem;
|
|
128
137
|
}
|
|
138
|
+
|
|
139
|
+
.bs-dropdown-options :where(li[role="separator"]) {
|
|
140
|
+
padding-right: 0.625rem;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
.bs-dropdown-options :where(li:focus-visible) {
|
|
144
|
+
padding-left: 0.625rem;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
.bs-dropdown-options :where(li[data-selected]:focus-visible) {
|
|
148
|
+
padding-left: 0.5rem;
|
|
149
|
+
}
|
|
129
150
|
}
|
|
130
151
|
|
|
131
152
|
}
|
|
@@ -18,6 +18,10 @@
|
|
|
18
18
|
position: relative;
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
+
.bs-input-addon * {
|
|
22
|
+
background-color: transparent;
|
|
23
|
+
}
|
|
24
|
+
|
|
21
25
|
/**
|
|
22
26
|
Implement an outer 'border' via pseudo-element instead of
|
|
23
27
|
on main element to avoid content shifting, double-stroke effect,
|
|
@@ -62,7 +66,6 @@ and issues with box-sizing
|
|
|
62
66
|
}
|
|
63
67
|
|
|
64
68
|
.bs-input-addon > *:where(:not(.bs-input-addon)) {
|
|
65
|
-
background-color: var(--input-bg, var(--bs-bg-base));
|
|
66
69
|
border-width: 0px;
|
|
67
70
|
display: flex;
|
|
68
71
|
height: 100%;
|
|
@@ -99,7 +102,7 @@ and issues with box-sizing
|
|
|
99
102
|
/** Inner borders should be straight; shown only if variant: "inner-bordered" */
|
|
100
103
|
.bs-input-addon:where([data-variant="inner-bordered"]),
|
|
101
104
|
.bs-input-addon:where([data-variant="inner-bordered"]) :where(.bs-input-addon) {
|
|
102
|
-
--input-addon-nested-border: var(--bs-violet-
|
|
105
|
+
--input-addon-nested-border: var(--bs-violet-lightest);
|
|
103
106
|
}
|
|
104
107
|
|
|
105
108
|
.bs-input-addon > :where(.bs-input-addon:not(:last-child, :focus-within)),
|
|
@@ -133,6 +136,10 @@ and issues with box-sizing
|
|
|
133
136
|
border-radius: 0px;
|
|
134
137
|
}
|
|
135
138
|
|
|
139
|
+
/* -------- Hover styles -------- */
|
|
140
|
+
.bs-input-addon:hover {
|
|
141
|
+
--input-bg: var(--bs-bg-input-hover);
|
|
142
|
+
}
|
|
136
143
|
|
|
137
144
|
/* -------- Focus styles -------- */
|
|
138
145
|
.bs-input-addon {
|
|
@@ -190,9 +197,9 @@ and issues with box-sizing
|
|
|
190
197
|
/* -------- Disabled styles -------- */
|
|
191
198
|
.bs-input-addon:where([data-disabled]:not([data-disabled="false"])),
|
|
192
199
|
.bs-input-addon:where([data-disabled]:not([data-disabled="false"])) .bs-button {
|
|
193
|
-
--input-bg: var(--bs-
|
|
194
|
-
--input-border: var(--bs-
|
|
195
|
-
color: var(--bs-
|
|
200
|
+
--input-bg: var(--bs-bg-disabled);
|
|
201
|
+
--input-border: var(--bs-ink-disabled);
|
|
202
|
+
color: var(--bs-ink-disabled);
|
|
196
203
|
}
|
|
197
204
|
.bs-input-addon:where([data-disabled]:not([data-disabled="false"])) * {
|
|
198
205
|
pointer-events: none;
|
|
@@ -53,6 +53,11 @@
|
|
|
53
53
|
--search-icon-padding: 0;
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
+
/* Filter variant: cancels out base hover state styles */
|
|
57
|
+
.bs-input-addon:where([data-variant="filter"]):hover {
|
|
58
|
+
--input-bg: var(--bs-bg-base);
|
|
59
|
+
}
|
|
60
|
+
|
|
56
61
|
/* -------- Disabled styles -------- */
|
|
57
62
|
.bs-input-addon:where([data-variant="filter"][data-disabled="true"]),
|
|
58
63
|
.bs-input-addon:where([data-variant="filter"][data-disabled="true"]) :is(.bs-button, .bs-input) {
|
|
@@ -8,22 +8,24 @@ label:where(.bs-label) {
|
|
|
8
8
|
.bs-label,
|
|
9
9
|
:where(label, legend) {
|
|
10
10
|
--label-color: var(--bs-ink-base);
|
|
11
|
-
|
|
12
11
|
color: var(--label-color);
|
|
13
12
|
font-size: var(--bs-text-sm);
|
|
14
13
|
font-weight: 600;
|
|
15
14
|
line-height: var(--bs-leading-base);
|
|
16
15
|
}
|
|
17
16
|
|
|
18
|
-
|
|
17
|
+
/* Required asterisk */
|
|
18
|
+
:where(label, legend) :where([data-required]:not([data-required="false"])),
|
|
19
19
|
.bs-label :where([data-required="true"]) {
|
|
20
|
-
--label-color
|
|
20
|
+
color: var(--label-asterisk-color, var(--bs-ink-red));
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
+
/* Disabled state */
|
|
23
24
|
:where(label[data-disabled]:not([data-disabled="false"])),
|
|
24
25
|
:where(label[data-disabled]:not([data-disabled="false"])) *,
|
|
25
26
|
.bs-label:where([data-disabled="true"]),
|
|
26
27
|
.bs-label:where([data-disabled="true"]) * {
|
|
28
|
+
--label-asterisk-color: transparent;
|
|
27
29
|
--label-color: var(--bs-ink-disabled);
|
|
28
30
|
}
|
|
29
31
|
|
|
@@ -55,13 +55,13 @@
|
|
|
55
55
|
width: var(--switch-width);
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
-
.bs-switch
|
|
59
|
-
.bs-switch:where([aria-pressed]
|
|
58
|
+
.bs-switch :where(input:checked) ~ :where(span),
|
|
59
|
+
.bs-switch:where([aria-pressed]:not([aria-pressed="false"])) :where(span) {
|
|
60
60
|
--switch-background: var(--bs-blue-base);
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
/* Toggle "ball" */
|
|
64
|
-
.bs-switch span::before {
|
|
64
|
+
.bs-switch :where(span)::before {
|
|
65
65
|
background-color: var(--ball-background);
|
|
66
66
|
border-radius: 50%;
|
|
67
67
|
box-sizing: border-box;
|
|
@@ -76,34 +76,25 @@
|
|
|
76
76
|
z-index: 2;
|
|
77
77
|
}
|
|
78
78
|
|
|
79
|
-
.bs-switch
|
|
80
|
-
.bs-switch:where([aria-pressed]
|
|
79
|
+
.bs-switch :where(input:checked) ~ :where(span)::before,
|
|
80
|
+
.bs-switch:where([aria-pressed]:not([aria-pressed="false"])) :where(span)::before {
|
|
81
81
|
transform: translate(calc(var(--switch-width) - var(--offset-double) - var(--ball-diameter)), -50%);
|
|
82
82
|
}
|
|
83
83
|
|
|
84
|
-
.bs-switch
|
|
85
|
-
.bs-switch:where([aria-pressed]
|
|
84
|
+
.bs-switch :where(input:checked) ~ :where(span[data-inner-on-label][data-inner-off-label])::before,
|
|
85
|
+
.bs-switch:where([aria-pressed]:not([aria-pressed="false"])) :where(span[data-inner-on-label][data-inner-off-label])::before {
|
|
86
86
|
transform: translate(calc(var(--switch-width) - var(--offset-double) - var(--ball-diameter)), -50%);
|
|
87
87
|
}
|
|
88
88
|
|
|
89
89
|
|
|
90
90
|
/* Inner "on/off" text */
|
|
91
|
-
|
|
92
|
-
.bs-switch span:where([data-inner-on-label][data-inner-off-label]) {
|
|
93
|
-
color: white;
|
|
94
|
-
--switch-width: 3.5rem;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
.bs-switch:where([data-size="sm"]) span:where([data-inner-on-label][data-inner-off-label]) {
|
|
98
|
-
--switch-width: 2.625rem;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
.bs-switch span::after {
|
|
91
|
+
.bs-switch :where(span)::after {
|
|
102
92
|
align-items: center;
|
|
103
93
|
color: var(--ball-background);
|
|
94
|
+
content: var(--inner-label-text);
|
|
104
95
|
display: flex;
|
|
105
96
|
height: 100%;
|
|
106
|
-
justify-content: flex-start;
|
|
97
|
+
justify-content: var(--inner-label-position, flex-start);
|
|
107
98
|
left: 0;
|
|
108
99
|
line-height: var(--inner-text-line-height);
|
|
109
100
|
padding: var(--inner-text-padding);
|
|
@@ -113,35 +104,45 @@
|
|
|
113
104
|
width: 100%;
|
|
114
105
|
}
|
|
115
106
|
|
|
116
|
-
.bs-switch
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
107
|
+
.bs-switch :where([data-inner-on-label][data-inner-off-label]) {
|
|
108
|
+
--switch-width: 3.5rem;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
.bs-switch:where([data-size="sm"]) :where([data-inner-on-label][data-inner-off-label]) {
|
|
112
|
+
--switch-width: 2.625rem;
|
|
120
113
|
}
|
|
121
114
|
|
|
122
|
-
.bs-switch
|
|
123
|
-
.bs-switch:where([aria-pressed
|
|
124
|
-
|
|
125
|
-
|
|
115
|
+
.bs-switch :where(input:not(:checked)) ~ :where([data-inner-on-label][data-inner-off-label])::after,
|
|
116
|
+
.bs-switch:where([aria-pressed="false"]) :where([data-inner-on-label][data-inner-off-label])::after {
|
|
117
|
+
--inner-label-position: flex-end;
|
|
118
|
+
--inner-label-text: attr(data-inner-off-label);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
.bs-switch :where(input:checked) ~ :where([data-inner-on-label][data-inner-off-label])::after,
|
|
122
|
+
.bs-switch:where([aria-pressed]:not([aria-pressed="false"])) :where([data-inner-on-label][data-inner-off-label])::after {
|
|
123
|
+
--inner-label-text: attr(data-inner-on-label);
|
|
126
124
|
}
|
|
127
125
|
|
|
128
126
|
/* Focus state */
|
|
129
127
|
|
|
130
|
-
.bs-switch :where(input:focus-visible) + span
|
|
128
|
+
.bs-switch :where(input:focus-visible) + :where(span),
|
|
129
|
+
.bs-switch:where(:focus-visible) :where(button span) {
|
|
131
130
|
box-shadow: 0 0 0 2px var(--offset-color, var(--bs-bg-base)),
|
|
132
131
|
0 0 0 4px var(--outline-color, var(--bs-blue-base));
|
|
133
132
|
outline: 2px solid transparent;
|
|
134
133
|
}
|
|
135
|
-
:where(.box) .bs-switch :where(input:focus-visible) + span
|
|
134
|
+
:where(.box) .bs-switch :where(input:focus-visible) + :where(span),
|
|
135
|
+
:where(.box) .bs-switch:where(:focus-visible) :where(button span) {
|
|
136
136
|
--offset-color: var(--bs-bg-medium);
|
|
137
137
|
}
|
|
138
|
-
:where(.box[data-invert]) .bs-switch :where(input:focus-visible) + span
|
|
138
|
+
:where(.box[data-invert]) .bs-switch :where(input:focus-visible) + :where(span),
|
|
139
|
+
:where(.box[data-invert]) .bs-switch:where(:focus-visible) :where(button span) {
|
|
139
140
|
--offset-color: var(--bs-bg-invert-base);
|
|
140
141
|
}
|
|
141
142
|
|
|
142
143
|
/* Disabled state */
|
|
143
|
-
|
|
144
|
-
.bs-switch:where([data-disabled]:not([data-disabled="false"])) {
|
|
144
|
+
.bs-switch:where([data-disabled]:not([data-disabled="false"]), :disabled, [disabled]),
|
|
145
|
+
.bs-switch:where([data-disabled]:not([data-disabled="false"]), :disabled, [disabled]) :is(input ~ span, button span) {
|
|
145
146
|
--ball-background: var(--bs-ink-disabled);
|
|
146
147
|
--switch-background: var(--bs-bg-disabled);
|
|
147
148
|
}
|
|
@@ -66,6 +66,8 @@ textarea {
|
|
|
66
66
|
opacity: 0;
|
|
67
67
|
}
|
|
68
68
|
|
|
69
|
+
/* FOCUS state */
|
|
70
|
+
|
|
69
71
|
:is(input:where(:not([type='checkbox'], [type='radio'])), textarea, select):where(:focus-visible),
|
|
70
72
|
:is(.bs-input, .bs-select, .bs-textarea):where(:focus-visible) {
|
|
71
73
|
--input-border: var(--bs-blue-base);
|
|
@@ -73,6 +75,15 @@ textarea {
|
|
|
73
75
|
outline-width: 0px;
|
|
74
76
|
}
|
|
75
77
|
|
|
78
|
+
/* HOVER state */
|
|
79
|
+
|
|
80
|
+
:is(input:where(:not([type='checkbox'], [type='radio'])), textarea, select):where(:hover),
|
|
81
|
+
:is(.bs-input, .bs-select, .bs-textarea):where(:hover) {
|
|
82
|
+
--input-bg: var(--bs-bg-input-hover);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/* DISABLED state */
|
|
86
|
+
|
|
76
87
|
:is(input:where(:not([type='checkbox'],[type='radio'])), textarea, select):where(:disabled),
|
|
77
88
|
:is(.bs-input, .bs-select, .bs-textarea):where(:disabled) {
|
|
78
89
|
--input-border: var(--bs-ink-disabled);
|
|
@@ -105,8 +116,7 @@ see https://bugs.chromium.org/p/chromium/issues/detail?id=89530
|
|
|
105
116
|
:is(input, textarea, select)[disabled]::placeholder,
|
|
106
117
|
:is(.bs-input, .bs-textarea, .bs-select):disabled::placeholder,
|
|
107
118
|
:is(.bs-input, .bs-textarea, .bs-select)[disabled]::placeholder {
|
|
108
|
-
|
|
109
|
-
opacity: 1;
|
|
119
|
+
opacity: 0;
|
|
110
120
|
}
|
|
111
121
|
|
|
112
122
|
/* Select */
|
|
@@ -22,7 +22,18 @@
|
|
|
22
22
|
opacity: 1;
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
.bs-modal :where(.
|
|
25
|
+
.bs-modal :where(.modal-header) {
|
|
26
|
+
align-items: center;
|
|
27
|
+
display: flex;
|
|
28
|
+
justify-content: space-between;
|
|
29
|
+
margin-bottom: 1.5rem;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.bs-modal :where(.modal-title) {
|
|
33
|
+
flex-grow: 1;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.bs-modal :where(.only-close-button-modal-header) {
|
|
26
37
|
display: flex;
|
|
27
38
|
justify-content: flex-end;
|
|
28
39
|
margin-bottom: 1.5rem;
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
cursor: pointer;
|
|
13
13
|
display: inline-flex;
|
|
14
14
|
font-size: var(--btn-text-size, var(--bs-text-md));
|
|
15
|
-
font-weight: 600;
|
|
15
|
+
font-weight: var(--btn-weight, 600);
|
|
16
16
|
height: var(--btn-height, 2.5rem);
|
|
17
17
|
justify-content: center;
|
|
18
18
|
line-height: 1.5;
|
|
@@ -124,10 +124,10 @@
|
|
|
124
124
|
--btn-padding: 0;
|
|
125
125
|
--btn-focus-pseudo-width: calc(100% + 1rem); /* text btns don't have side padding, but we do want focus outline to look padded */
|
|
126
126
|
--btn-text-size: var(--bs-text-md);
|
|
127
|
+
--btn-weight: 400;
|
|
127
128
|
background-color: transparent;
|
|
128
129
|
color: var(--bs-blue-500);
|
|
129
130
|
cursor: pointer;
|
|
130
|
-
font-weight: 400;
|
|
131
131
|
line-height: 150%;
|
|
132
132
|
}
|
|
133
133
|
.bs-button:where([data-text]:not([data-text="false"])):hover {
|
|
@@ -140,29 +140,49 @@
|
|
|
140
140
|
}
|
|
141
141
|
.bs-button:where([data-text]:not([data-text="false"])):active {
|
|
142
142
|
box-shadow: none;
|
|
143
|
+
transform: none;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
/* ------------ Button Sizes, Media-based Text Sizing -------------- */
|
|
147
|
+
/* Std button: Mobile text size, WM text size */
|
|
148
|
+
.bs-button {
|
|
149
|
+
--btn-text-size: 1rem;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
@media (min-width: 752px) {
|
|
153
|
+
.bs-button {
|
|
154
|
+
--btn-text-size: 1.125rem;
|
|
155
|
+
}
|
|
143
156
|
}
|
|
144
157
|
|
|
145
|
-
/* ------------ Button Size -------------- */
|
|
146
158
|
.bs-button:where([data-size^='sm']) {
|
|
147
159
|
--btn-height: 1.75rem;
|
|
148
160
|
--btn-padding: .25rem .75rem .375rem;
|
|
161
|
+
/* Std button size="sm" text size is same across all media sizes */
|
|
149
162
|
--btn-text-size: var(--bs-text-sm);
|
|
150
163
|
}
|
|
151
164
|
|
|
152
|
-
|
|
165
|
+
/* Text buttons: For now, text size not dependent on media size */
|
|
166
|
+
.bs-button:where([data-text]:not([data-text="false"])) {
|
|
153
167
|
--btn-height: auto;
|
|
154
168
|
--btn-padding: 0;
|
|
169
|
+
--btn-text-size: var(--bs-text-md);
|
|
155
170
|
}
|
|
156
171
|
|
|
157
172
|
.bs-button:where([data-size^='sm'][data-text]:not([data-text="false"])) {
|
|
158
173
|
--btn-text-size: var(--bs-text-base);
|
|
159
174
|
}
|
|
160
175
|
|
|
161
|
-
/* Size XS only applies to text buttons */
|
|
176
|
+
/* Size XS & XXS only applies to text buttons */
|
|
162
177
|
.bs-button:where([data-size^='xs'][data-text]:not([data-text="false"])) {
|
|
163
178
|
--btn-text-size: var(--bs-text-sm);
|
|
164
179
|
}
|
|
165
180
|
|
|
181
|
+
.bs-button:where([data-size^='xxs'][data-text]:not([data-text="false"])) {
|
|
182
|
+
--btn-text-size: var(--bs-text-xs);
|
|
183
|
+
--btn-weight: 600;
|
|
184
|
+
}
|
|
185
|
+
|
|
166
186
|
|
|
167
187
|
/* ------------ Disabled Styling ------------ */
|
|
168
188
|
:where(button:disabled),
|