@bi-digital/css 0.2.18 → 0.2.20

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.
@@ -38,9 +38,9 @@
38
38
  }
39
39
 
40
40
  .bi-alert > .bi-button {
41
- margin-right: calc(var(--bic-alert-padding) * -1);
42
- margin-top: calc(var(--bic-alert-padding) * -1);
41
+ margin: calc(var(--bic-alert-padding) * -1);
43
42
  grid-area: 1 / 3;
43
+ margin-left: 0;
44
44
  }
45
45
 
46
46
  .bi-alert[data-size="small"] {
@@ -48,3 +48,9 @@
48
48
  --bic-avatar-size: var(--bi-scale-16x);
49
49
  --bic-avatar-font-size: 1.25rem;
50
50
  }
51
+
52
+ .bi-avatar > img {
53
+ object-fit: cover;
54
+ width: 100%;
55
+ height: 100%;
56
+ }
@@ -49,18 +49,18 @@
49
49
  }
50
50
 
51
51
  .bi-card[data-orientation="horizontal"] {
52
- --bic-card-media-width: 252px;
52
+ --bic-card-media-width: 15.75rem;
53
53
  }
54
54
 
55
55
  @media not (min-width: 1024px) {
56
56
  .bi-card[data-orientation="horizontal"] {
57
- --bic-card-media-width: 220px;
57
+ --bic-card-media-width: 14.5rem;
58
58
  }
59
59
  }
60
60
 
61
- @media not (min-width: 768px) {
61
+ @media not (min-width: 600px) {
62
62
  .bi-card[data-orientation="horizontal"] {
63
- --bic-card-media-width: 135px;
63
+ --bic-card-media-width: 8.4375rem;
64
64
  }
65
65
  }
66
66
 
@@ -109,15 +109,95 @@
109
109
  .bi-card .bi-card--content {
110
110
  padding: var(--bic-card-content-padding);
111
111
  gap: var(--bi-scale-4x);
112
+ border-radius: inherit;
113
+ background: none;
114
+ border: none;
112
115
  flex-direction: column;
113
116
  flex: auto;
114
117
  display: flex;
118
+ overflow: hidden;
119
+ }
120
+
121
+ .bi-card .bi-card--content > p {
122
+ color: var(--bic-card-content-color);
123
+ white-space: break-spaces;
124
+ text-overflow: ellipsis;
125
+ -webkit-line-clamp: 2;
126
+ line-clamp: 2;
127
+ -webkit-box-orient: vertical;
128
+ margin: 0;
129
+ font-size: .875rem;
130
+ font-weight: 500;
131
+ line-height: 1.5;
132
+ display: -webkit-box;
133
+ overflow: hidden;
134
+ }
135
+
136
+ @media not (min-width: 600px) {
137
+ .bi-card .bi-card--content {
138
+ --bic-card-content-padding: var(--bi-scale-3x);
139
+ gap: var(--bi-scale-3x);
140
+ }
141
+ }
142
+
143
+ .bi-card:-webkit-any(a, button) {
144
+ cursor: pointer;
145
+ text-decoration: none;
146
+ position: relative;
147
+ }
148
+
149
+ .bi-card:-webkit-any(a, button):not(.disabled):focus-visible {
150
+ box-shadow: var(--_bi--focus, 0 0 0 4.5px var(--bi-basic-white), var(--bic-button-box-shadow));
151
+ outline: var(--_bi--focus, 1.5px solid var(--bi-primary-50));
152
+ outline-offset: var(--_bi--focus, 2px);
153
+ }
154
+
155
+ .bi-card:-webkit-any(a, button):not(.disabled):focus-visible * {
156
+ --_bi--focus: ;
157
+ }
158
+
159
+ .bi-card:-webkit-any(a, button):not(.disabled):hover {
160
+ box-shadow: 0px 0px 0px 2px var(--bi-neutral-50), 0px 0px 20px var(--bi-scale-1-5x) #0000000d, 0px 0px 10px 0px #0000000d;
161
+ }
162
+
163
+ .bi-card:-webkit-any(a, button):not(.disabled):active {
164
+ box-shadow: 0px 0px 0px var(--bi-stroke-default) var(--bi-primary-50), 0px 0px 20px var(--bi-scale-1-5x) #0000000d, 0px 0px 10px 0px #0000000d;
165
+ }
166
+
167
+ .bi-card:-webkit-any(a, button):disabled {
168
+ cursor: not-allowed;
169
+ }
170
+
171
+ .bi-card:is(a, button) {
172
+ cursor: pointer;
173
+ text-decoration: none;
174
+ position: relative;
175
+ }
176
+
177
+ .bi-card:is(a, button):not(.disabled):focus-visible {
178
+ box-shadow: var(--_bi--focus, 0 0 0 4.5px var(--bi-basic-white), var(--bic-button-box-shadow));
179
+ outline: var(--_bi--focus, 1.5px solid var(--bi-primary-50));
180
+ outline-offset: var(--_bi--focus, 2px);
181
+ }
182
+
183
+ .bi-card:is(a, button):not(.disabled):focus-visible * {
184
+ --_bi--focus: ;
185
+ }
186
+
187
+ .bi-card:is(a, button):not(.disabled):hover {
188
+ box-shadow: 0px 0px 0px 2px var(--bi-neutral-50), 0px 0px 20px var(--bi-scale-1-5x) #0000000d, 0px 0px 10px 0px #0000000d;
189
+ }
190
+
191
+ .bi-card:is(a, button):not(.disabled):active {
192
+ box-shadow: 0px 0px 0px var(--bi-stroke-default) var(--bi-primary-50), 0px 0px 20px var(--bi-scale-1-5x) #0000000d, 0px 0px 10px 0px #0000000d;
193
+ }
194
+
195
+ .bi-card:is(a, button):disabled {
196
+ cursor: not-allowed;
115
197
  }
116
198
 
117
199
  .bi-card .bi-card--content:-webkit-any(a, button) {
118
200
  cursor: pointer;
119
- background: none;
120
- border: none;
121
201
  text-decoration: none;
122
202
  position: relative;
123
203
  }
@@ -146,8 +226,6 @@
146
226
 
147
227
  .bi-card .bi-card--content:is(a, button) {
148
228
  cursor: pointer;
149
- background: none;
150
- border: none;
151
229
  text-decoration: none;
152
230
  position: relative;
153
231
  }
@@ -174,28 +252,6 @@
174
252
  cursor: not-allowed;
175
253
  }
176
254
 
177
- .bi-card .bi-card--content > p {
178
- color: var(--bic-card-content-color);
179
- white-space: break-spaces;
180
- text-overflow: ellipsis;
181
- -webkit-line-clamp: 2;
182
- line-clamp: 2;
183
- -webkit-box-orient: vertical;
184
- margin: 0;
185
- font-size: .875rem;
186
- font-weight: 500;
187
- line-height: 1.5;
188
- display: -webkit-box;
189
- overflow: hidden;
190
- }
191
-
192
- @media not (min-width: 768px) {
193
- .bi-card .bi-card--content {
194
- --bic-card-content-padding: var(--bi-scale-3x);
195
- gap: var(--bi-scale-3x);
196
- }
197
- }
198
-
199
255
  .bi-card .bi-card--actions {
200
256
  flex-direction: var(--bic-card-actions-flex-direction, column);
201
257
  justify-content: center;
@@ -205,7 +261,7 @@
205
261
  display: flex;
206
262
  }
207
263
 
208
- @media not (min-width: 768px) {
264
+ @media not (min-width: 600px) {
209
265
  .bi-card .bi-card--actions {
210
266
  width: var(--bi-scale-11x);
211
267
  }
@@ -215,10 +271,10 @@
215
271
  --bic-button-font-size: var(--bi-icon-medium);
216
272
  --bic-button-color: var(--bic-card-actions-icon-color);
217
273
  --bic-button-size: var(--bi-scale-14x);
218
- height: 100%;
274
+ flex: 1;
219
275
  }
220
276
 
221
- @media not (min-width: 768px) {
277
+ @media not (min-width: 600px) {
222
278
  .bi-card .bi-card--actions .bi-card--action {
223
279
  --bic-button-size: var(--bi-scale-11x);
224
280
  }
@@ -241,7 +297,7 @@
241
297
  font-size: .875rem;
242
298
  }
243
299
 
244
- @media not (min-width: 768px) {
300
+ @media not (min-width: 600px) {
245
301
  .bi-card .bi-card--header .bi-card--header-label {
246
302
  font-size: .8125rem;
247
303
  }
@@ -276,7 +332,7 @@
276
332
  overflow: hidden;
277
333
  }
278
334
 
279
- @media not (min-width: 768px) {
335
+ @media not (min-width: 600px) {
280
336
  .bi-card .bi-card--header .bi-card--header-title {
281
337
  font-size: 1rem;
282
338
  }
@@ -0,0 +1,22 @@
1
+ .bi-checkbox-subsection {
2
+ --bic-checkbox-subsection-line-bg: var(--bi-neutral-30);
3
+ display: flex;
4
+ }
5
+
6
+ .bi-checkbox-subsection[data-dark="true"] {
7
+ --bic-checkbox-subsection-line-bg: var(--bi-neutral-50);
8
+ }
9
+
10
+ .bi-checkbox-subsection > div:first-child {
11
+ margin: 0 var(--bi-scale-3x) 0 var(--bi-scale-5x);
12
+ background-color: var(--bic-checkbox-subsection-line-bg);
13
+ width: var(--bi-stroke-default);
14
+ }
15
+
16
+ .bi-checkbox-subsection > div:last-child {
17
+ align-items: flex-start;
18
+ gap: var(--bi-scale-0-50x);
19
+ flex-direction: column;
20
+ flex: 1;
21
+ display: flex;
22
+ }
@@ -17,9 +17,10 @@
17
17
  font-family: museo-sans, Arial, sans-serif;
18
18
  font-size: var(--bic-chip-font-size);
19
19
  line-height: var(--bic-chip-line-height);
20
- justify-content: center;
20
+ justify-content: flex-start;
21
21
  align-items: center;
22
22
  display: inline-flex;
23
+ overflow: hidden;
23
24
  }
24
25
 
25
26
  .bi-chip:-webkit-any(button) {
@@ -74,6 +74,10 @@
74
74
  --bic-field-toggle-background: var(--bic-field-disabled-color);
75
75
  }
76
76
 
77
+ .bi-field[data-fullwidth="true"] {
78
+ width: 100%;
79
+ }
80
+
77
81
  .bi-field:has(.bi-input:-webkit-any([type="radio"], [type="checkbox"])) {
78
82
  border-radius: var(--bi-radius-medium);
79
83
  grid-template-areas: "input content";
@@ -89,6 +93,10 @@
89
93
  display: grid;
90
94
  }
91
95
 
96
+ .bi-field:has(.bi-input:-webkit-any([type="radio"], [type="checkbox"]))[data-fullwidth="true"] {
97
+ width: 100%;
98
+ }
99
+
92
100
  .bi-field:has(.bi-input:-webkit-any([type="radio"], [type="checkbox"])) > * {
93
101
  grid-column: content;
94
102
  margin-top: 0;
@@ -160,6 +168,10 @@
160
168
  display: grid;
161
169
  }
162
170
 
171
+ .bi-field:has(.bi-input:is([type="radio"], [type="checkbox"]))[data-fullwidth="true"] {
172
+ width: 100%;
173
+ }
174
+
163
175
  .bi-field:has(.bi-input:is([type="radio"], [type="checkbox"])) > * {
164
176
  grid-column: content;
165
177
  margin-top: 0;
@@ -0,0 +1,90 @@
1
+ .bi-filter-group {
2
+ --bic-filter-group-background-color: var(--bi-basic-white);
3
+ --bic-filter-group-background-color-hover: var(--bi-primary-5);
4
+ --bic-filter-group-background-color-expanded: var(--bi-neutral-15);
5
+ --bic-filter-group-border-color: var(--bi-neutral-15);
6
+ --bic-filter-group-text-color: var(--bi-neutral-90);
7
+ }
8
+
9
+ .bi-filter-group[data-dark="true"] {
10
+ --bic-filter-group-background-color: var(--bi-neutral-90);
11
+ --bic-filter-group-background-color-hover: var(--bi-primary-90);
12
+ --bic-filter-group-background-color-expanded: var(--bi-neutral-80);
13
+ --bic-filter-group-border-color: var(--bi-neutral-70);
14
+ --bic-filter-group-text-color: var(--bi-basic-white);
15
+ }
16
+
17
+ .bi-filter-group {
18
+ flex-direction: column;
19
+ display: flex;
20
+ }
21
+
22
+ .bi-filter-group > button {
23
+ border: none;
24
+ border-bottom: var(--bi-scale-0-25x) solid var(--bic-filter-group-border-color);
25
+ height: var(--bi-scale-12x);
26
+ color: var(--bic-filter-group-text-color);
27
+ align-items: center;
28
+ gap: var(--bi-scale-2x);
29
+ width: 100%;
30
+ padding: var(--bi-scale-2x) var(--bi-scale-1-5x);
31
+ background: var(--bic-filter-group-background-color);
32
+ cursor: pointer;
33
+ border-radius: var(--bi-radius-small) var(--bi-radius-small) 0 0;
34
+ -webkit-user-select: none;
35
+ user-select: none;
36
+ flex-direction: row;
37
+ display: flex;
38
+ }
39
+
40
+ .bi-filter-group > button:hover {
41
+ background: var(--bic-filter-group-background-color-hover);
42
+ }
43
+
44
+ .bi-filter-group > button:focus-visible {
45
+ box-shadow: 0 0 0 4.5px var(--bi-basic-white);
46
+ outline: 1.5px solid var(--bi-primary-50);
47
+ outline-offset: 2px;
48
+ border-radius: var(--bi-radius-small);
49
+ }
50
+
51
+ .bi-filter-group > button > [data-bi-icon="true"] {
52
+ width: var(--bi-scale-6x);
53
+ height: var(--bi-scale-6x);
54
+ font-size: var(--bi-icon-medium);
55
+ }
56
+
57
+ .bi-filter-group > button > h3 {
58
+ text-align: left;
59
+ flex: 1;
60
+ margin: 0;
61
+ font-family: museo-sans, Arial, sans-serif;
62
+ font-size: 1rem;
63
+ font-weight: 700;
64
+ line-height: 1.5;
65
+ }
66
+
67
+ .bi-filter-group > div {
68
+ gap: var(--bi-scale-2x);
69
+ padding: var(--bi-scale-2x) 0 var(--bi-scale-8x);
70
+ flex-direction: column;
71
+ display: none;
72
+ }
73
+
74
+ .bi-filter-group > div > .bi-field:has(.bi-input[type="checkbox"]) {
75
+ width: 100%;
76
+ }
77
+
78
+ .bi-filter-group:last-of-type > div {
79
+ padding: var(--bi-scale-2x) 0;
80
+ }
81
+
82
+ .bi-filter-group[data-expanded="true"] > button {
83
+ --bic-filter-group-background-color: var(--bic-filter-group-background-color-expanded);
84
+ border-radius: var(--bi-radius-small);
85
+ border-bottom-color: #0000;
86
+ }
87
+
88
+ .bi-filter-group[data-expanded="true"] > div {
89
+ display: flex;
90
+ }
@@ -91,6 +91,12 @@
91
91
  display: flex;
92
92
  }
93
93
 
94
+ @media not (min-width: 600px) {
95
+ .bi-footer .bi-footer--accreditations {
96
+ gap: var(--bi-scale-1x);
97
+ }
98
+ }
99
+
94
100
  .bi-footer .bi-footer--accreditations .bi-footer--aacsb {
95
101
  background-position: center;
96
102
  background-repeat: no-repeat;
@@ -44,6 +44,10 @@
44
44
  --bic-link-color: var(--bi-neutral-5);
45
45
  }
46
46
 
47
+ .bi-link[data-underline="hover"]:not(:hover) {
48
+ text-decoration: none;
49
+ }
50
+
47
51
  .bi-link:visited {
48
52
  color: var(--bic-link-color);
49
53
  }
@@ -13,7 +13,7 @@
13
13
  --bic-navbar-color: var(--bi-basic-white);
14
14
  }
15
15
 
16
- .bi-navbar .bi-navbar__header {
16
+ .bi-navbar > header {
17
17
  height: var(--bi-layout-navbar-height);
18
18
  align-items: center;
19
19
  gap: var(--bi-scale-6x);
@@ -24,38 +24,20 @@
24
24
  display: flex;
25
25
  }
26
26
 
27
- .bi-navbar .bi-navbar__header > :first-child {
27
+ @media (prefers-reduced-motion: no-preference) {
28
+ .bi-navbar > header {
29
+ transition: transform .2s ease-in-out;
30
+ }
31
+ }
32
+
33
+ .bi-navbar > header > :first-child {
28
34
  margin-right: auto;
29
35
  }
30
36
 
31
- .bi-navbar[data-fixed="true"] .bi-navbar__header {
32
- z-index: 100;
37
+ .bi-navbar[data-fixed="true"] > header {
38
+ z-index: 110;
33
39
  position: fixed;
34
40
  top: 0;
35
41
  left: 0;
36
42
  right: 0;
37
43
  }
38
-
39
- .bi-navbar .bi-navbar__skip-link {
40
- background: var(--bi-primary-50);
41
- color: var(--bi-basic-white);
42
- outline-offset: 0px;
43
- border-radius: 4px;
44
- align-content: center;
45
- height: 44px;
46
- padding: 0 7px;
47
- font-size: .75rem;
48
- font-weight: 400;
49
- position: absolute;
50
- left: 50%;
51
- transform: translate(-50%, -62px);
52
- }
53
-
54
- .bi-navbar .bi-navbar__skip-link:focus {
55
- border-radius: var(--bi-radius-medium);
56
- outline-offset: 2px;
57
- outline: 1.5px solid var(--bi-primary-50);
58
- box-shadow: 0 0 0 2px var(--bi-basic-white);
59
- transition: transform .3s;
60
- transform: translate(-50%);
61
- }
@@ -0,0 +1,32 @@
1
+ .bi-skip-link {
2
+ --bic-skip-link-color: var(--bi-basic-white);
3
+ --bic-skip-link-background: var(--bi-primary-50);
4
+ background: var(--bic-skip-link-background);
5
+ color: var(--bic-skip-link-color);
6
+ outline-offset: 0px;
7
+ z-index: 200;
8
+ border-radius: 4px;
9
+ align-content: center;
10
+ height: 44px;
11
+ padding: 0 7px;
12
+ font-size: 1rem;
13
+ font-weight: 500;
14
+ transition: transform .3s ease-in-out;
15
+ position: absolute;
16
+ left: 50%;
17
+ transform: translate(-50%, -110%);
18
+ }
19
+
20
+ @media (prefers-reduced-motion: reduce) {
21
+ .bi-skip-link {
22
+ transition: none;
23
+ }
24
+ }
25
+
26
+ .bi-skip-link:focus {
27
+ transform: translate(-50%, var(--bi-scale-2x));
28
+ border-radius: var(--bi-radius-medium);
29
+ outline-offset: 2px;
30
+ outline: 1.5px solid var(--bi-primary-50);
31
+ box-shadow: 0 0 0 2px var(--bi-basic-white);
32
+ }
@@ -0,0 +1,11 @@
1
+ .bi-sticky-header {
2
+ z-index: 100;
3
+ position: -webkit-sticky;
4
+ position: sticky;
5
+ }
6
+
7
+ @media (prefers-reduced-motion: no-preference) {
8
+ .bi-sticky-header {
9
+ transition: top .2s ease-in-out;
10
+ }
11
+ }
@@ -0,0 +1,34 @@
1
+ .bi-sub-navbar--wrapper {
2
+ height: var(--bi-layout-navbar-height);
3
+ position: relative;
4
+ }
5
+
6
+ .bi-sub-navbar--wrapper .bi-sub-navbar {
7
+ --bic-sub-navbar-background-color: var(--bi-basic-white);
8
+ --bic-sub-navbar-color: var(--bi-basic-key);
9
+ --bic-sub-navbar-border-color: var(--bi-neutral-15);
10
+ height: var(--bi-layout-navbar-height);
11
+ background-color: var(--bic-sub-navbar-background-color);
12
+ border-bottom: 1px solid var(--bic-sub-navbar-border-color);
13
+ width: 100%;
14
+ position: absolute;
15
+ top: 0;
16
+ left: 0;
17
+ }
18
+
19
+ .bi-sub-navbar--wrapper .bi-sub-navbar[data-dark="true"] {
20
+ --bic-sub-navbar-background-color: var(--bi-primary-95);
21
+ --bic-sub-navbar-color: var(--bi-basic-white);
22
+ --bic-sub-navbar-border-color: var(--bi-neutral-70);
23
+ }
24
+
25
+ .bi-sub-navbar--wrapper .bi-sub-navbar[data-fixed="true"] {
26
+ z-index: 120;
27
+ position: fixed;
28
+ }
29
+
30
+ @media (prefers-reduced-motion: no-preference) {
31
+ .bi-sub-navbar--wrapper .bi-sub-navbar[data-fixed="true"] {
32
+ transition: top .2s ease-in-out;
33
+ }
34
+ }
@@ -25,6 +25,8 @@
25
25
  overflow-y: auto;
26
26
  overflow-x: unset;
27
27
  flex-direction: column;
28
+ width: -webkit-fit-content;
29
+ width: fit-content;
28
30
  }
29
31
 
30
32
  .bi-tabs .bi-tabs--list .bi-tabs--tab {
@@ -38,9 +38,9 @@
38
38
  }
39
39
 
40
40
  .bi-alert > .bi-button {
41
- margin-right: calc(var(--bic-alert-padding) * -1);
42
- margin-top: calc(var(--bic-alert-padding) * -1);
41
+ margin: calc(var(--bic-alert-padding) * -1);
43
42
  grid-area: 1 / 3;
43
+ margin-left: 0;
44
44
  }
45
45
 
46
46
  .bi-alert[data-size="small"] {
@@ -153,6 +153,12 @@
153
153
  --bic-avatar-font-size: 1.25rem;
154
154
  }
155
155
 
156
+ .bi-avatar > img {
157
+ object-fit: cover;
158
+ width: 100%;
159
+ height: 100%;
160
+ }
161
+
156
162
  .bi-badge {
157
163
  --bic-badge-background: transparent;
158
164
  --bic-badge-color: var(--bi-neutral-60);
@@ -501,18 +507,18 @@
501
507
  }
502
508
 
503
509
  .bi-card[data-orientation="horizontal"] {
504
- --bic-card-media-width: 252px;
510
+ --bic-card-media-width: 15.75rem;
505
511
  }
506
512
 
507
513
  @media not (min-width: 1024px) {
508
514
  .bi-card[data-orientation="horizontal"] {
509
- --bic-card-media-width: 220px;
515
+ --bic-card-media-width: 14.5rem;
510
516
  }
511
517
  }
512
518
 
513
- @media not (min-width: 768px) {
519
+ @media not (min-width: 600px) {
514
520
  .bi-card[data-orientation="horizontal"] {
515
- --bic-card-media-width: 135px;
521
+ --bic-card-media-width: 8.4375rem;
516
522
  }
517
523
  }
518
524
 
@@ -561,15 +567,95 @@
561
567
  .bi-card .bi-card--content {
562
568
  padding: var(--bic-card-content-padding);
563
569
  gap: var(--bi-scale-4x);
570
+ border-radius: inherit;
571
+ background: none;
572
+ border: none;
564
573
  flex-direction: column;
565
574
  flex: auto;
566
575
  display: flex;
576
+ overflow: hidden;
577
+ }
578
+
579
+ .bi-card .bi-card--content > p {
580
+ color: var(--bic-card-content-color);
581
+ white-space: break-spaces;
582
+ text-overflow: ellipsis;
583
+ -webkit-line-clamp: 2;
584
+ line-clamp: 2;
585
+ -webkit-box-orient: vertical;
586
+ margin: 0;
587
+ font-size: .875rem;
588
+ font-weight: 500;
589
+ line-height: 1.5;
590
+ display: -webkit-box;
591
+ overflow: hidden;
592
+ }
593
+
594
+ @media not (min-width: 600px) {
595
+ .bi-card .bi-card--content {
596
+ --bic-card-content-padding: var(--bi-scale-3x);
597
+ gap: var(--bi-scale-3x);
598
+ }
599
+ }
600
+
601
+ .bi-card:-webkit-any(a, button) {
602
+ cursor: pointer;
603
+ text-decoration: none;
604
+ position: relative;
605
+ }
606
+
607
+ .bi-card:-webkit-any(a, button):not(.disabled):focus-visible {
608
+ box-shadow: var(--_bi--focus, 0 0 0 4.5px var(--bi-basic-white), var(--bic-button-box-shadow));
609
+ outline: var(--_bi--focus, 1.5px solid var(--bi-primary-50));
610
+ outline-offset: var(--_bi--focus, 2px);
611
+ }
612
+
613
+ .bi-card:-webkit-any(a, button):not(.disabled):focus-visible * {
614
+ --_bi--focus: ;
615
+ }
616
+
617
+ .bi-card:-webkit-any(a, button):not(.disabled):hover {
618
+ box-shadow: 0px 0px 0px 2px var(--bi-neutral-50), 0px 0px 20px var(--bi-scale-1-5x) #0000000d, 0px 0px 10px 0px #0000000d;
619
+ }
620
+
621
+ .bi-card:-webkit-any(a, button):not(.disabled):active {
622
+ box-shadow: 0px 0px 0px var(--bi-stroke-default) var(--bi-primary-50), 0px 0px 20px var(--bi-scale-1-5x) #0000000d, 0px 0px 10px 0px #0000000d;
623
+ }
624
+
625
+ .bi-card:-webkit-any(a, button):disabled {
626
+ cursor: not-allowed;
627
+ }
628
+
629
+ .bi-card:is(a, button) {
630
+ cursor: pointer;
631
+ text-decoration: none;
632
+ position: relative;
633
+ }
634
+
635
+ .bi-card:is(a, button):not(.disabled):focus-visible {
636
+ box-shadow: var(--_bi--focus, 0 0 0 4.5px var(--bi-basic-white), var(--bic-button-box-shadow));
637
+ outline: var(--_bi--focus, 1.5px solid var(--bi-primary-50));
638
+ outline-offset: var(--_bi--focus, 2px);
639
+ }
640
+
641
+ .bi-card:is(a, button):not(.disabled):focus-visible * {
642
+ --_bi--focus: ;
643
+ }
644
+
645
+ .bi-card:is(a, button):not(.disabled):hover {
646
+ box-shadow: 0px 0px 0px 2px var(--bi-neutral-50), 0px 0px 20px var(--bi-scale-1-5x) #0000000d, 0px 0px 10px 0px #0000000d;
647
+ }
648
+
649
+ .bi-card:is(a, button):not(.disabled):active {
650
+ box-shadow: 0px 0px 0px var(--bi-stroke-default) var(--bi-primary-50), 0px 0px 20px var(--bi-scale-1-5x) #0000000d, 0px 0px 10px 0px #0000000d;
651
+ }
652
+
653
+ .bi-card:is(a, button):disabled {
654
+ cursor: not-allowed;
567
655
  }
568
656
 
569
657
  .bi-card .bi-card--content:-webkit-any(a, button) {
570
658
  cursor: pointer;
571
- background: none;
572
- border: none;
573
659
  text-decoration: none;
574
660
  position: relative;
575
661
  }
@@ -598,8 +684,6 @@
598
684
 
599
685
  .bi-card .bi-card--content:is(a, button) {
600
686
  cursor: pointer;
601
- background: none;
602
- border: none;
603
687
  text-decoration: none;
604
688
  position: relative;
605
689
  }
@@ -626,28 +710,6 @@
626
710
  cursor: not-allowed;
627
711
  }
628
712
 
629
- .bi-card .bi-card--content > p {
630
- color: var(--bic-card-content-color);
631
- white-space: break-spaces;
632
- text-overflow: ellipsis;
633
- -webkit-line-clamp: 2;
634
- line-clamp: 2;
635
- -webkit-box-orient: vertical;
636
- margin: 0;
637
- font-size: .875rem;
638
- font-weight: 500;
639
- line-height: 1.5;
640
- display: -webkit-box;
641
- overflow: hidden;
642
- }
643
-
644
- @media not (min-width: 768px) {
645
- .bi-card .bi-card--content {
646
- --bic-card-content-padding: var(--bi-scale-3x);
647
- gap: var(--bi-scale-3x);
648
- }
649
- }
650
-
651
713
  .bi-card .bi-card--actions {
652
714
  flex-direction: var(--bic-card-actions-flex-direction, column);
653
715
  justify-content: center;
@@ -657,7 +719,7 @@
657
719
  display: flex;
658
720
  }
659
721
 
660
- @media not (min-width: 768px) {
722
+ @media not (min-width: 600px) {
661
723
  .bi-card .bi-card--actions {
662
724
  width: var(--bi-scale-11x);
663
725
  }
@@ -667,10 +729,10 @@
667
729
  --bic-button-font-size: var(--bi-icon-medium);
668
730
  --bic-button-color: var(--bic-card-actions-icon-color);
669
731
  --bic-button-size: var(--bi-scale-14x);
670
- height: 100%;
732
+ flex: 1;
671
733
  }
672
734
 
673
- @media not (min-width: 768px) {
735
+ @media not (min-width: 600px) {
674
736
  .bi-card .bi-card--actions .bi-card--action {
675
737
  --bic-button-size: var(--bi-scale-11x);
676
738
  }
@@ -693,7 +755,7 @@
693
755
  font-size: .875rem;
694
756
  }
695
757
 
696
- @media not (min-width: 768px) {
758
+ @media not (min-width: 600px) {
697
759
  .bi-card .bi-card--header .bi-card--header-label {
698
760
  font-size: .8125rem;
699
761
  }
@@ -728,7 +790,7 @@
728
790
  overflow: hidden;
729
791
  }
730
792
 
731
- @media not (min-width: 768px) {
793
+ @media not (min-width: 600px) {
732
794
  .bi-card .bi-card--header .bi-card--header-title {
733
795
  font-size: 1rem;
734
796
  }
@@ -794,6 +856,29 @@
794
856
  line-height: 1.15;
795
857
  }
796
858
 
859
+ .bi-checkbox-subsection {
860
+ --bic-checkbox-subsection-line-bg: var(--bi-neutral-30);
861
+ display: flex;
862
+ }
863
+
864
+ .bi-checkbox-subsection[data-dark="true"] {
865
+ --bic-checkbox-subsection-line-bg: var(--bi-neutral-50);
866
+ }
867
+
868
+ .bi-checkbox-subsection > div:first-child {
869
+ margin: 0 var(--bi-scale-3x) 0 var(--bi-scale-5x);
870
+ background-color: var(--bic-checkbox-subsection-line-bg);
871
+ width: var(--bi-stroke-default);
872
+ }
873
+
874
+ .bi-checkbox-subsection > div:last-child {
875
+ align-items: flex-start;
876
+ gap: var(--bi-scale-0-50x);
877
+ flex-direction: column;
878
+ flex: 1;
879
+ display: flex;
880
+ }
881
+
797
882
  .bi-chip {
798
883
  --bic-chip-background: var(--bi-primary-5);
799
884
  --bic-chip-background-hover: var(--bi-primary-10);
@@ -813,9 +898,10 @@
813
898
  font-family: museo-sans, Arial, sans-serif;
814
899
  font-size: var(--bic-chip-font-size);
815
900
  line-height: var(--bic-chip-line-height);
816
- justify-content: center;
901
+ justify-content: flex-start;
817
902
  align-items: center;
818
903
  display: inline-flex;
904
+ overflow: hidden;
819
905
  }
820
906
 
821
907
  .bi-chip:-webkit-any(button) {
@@ -1344,6 +1430,10 @@ body:has(.bi-dialog:modal) {
1344
1430
  --bic-field-toggle-background: var(--bic-field-disabled-color);
1345
1431
  }
1346
1432
 
1433
+ .bi-field[data-fullwidth="true"] {
1434
+ width: 100%;
1435
+ }
1436
+
1347
1437
  .bi-field:has(.bi-input:-webkit-any([type="radio"], [type="checkbox"])) {
1348
1438
  border-radius: var(--bi-radius-medium);
1349
1439
  grid-template-areas: "input content";
@@ -1359,6 +1449,10 @@ body:has(.bi-dialog:modal) {
1359
1449
  display: grid;
1360
1450
  }
1361
1451
 
1452
+ .bi-field:has(.bi-input:-webkit-any([type="radio"], [type="checkbox"]))[data-fullwidth="true"] {
1453
+ width: 100%;
1454
+ }
1455
+
1362
1456
  .bi-field:has(.bi-input:-webkit-any([type="radio"], [type="checkbox"])) > * {
1363
1457
  grid-column: content;
1364
1458
  margin-top: 0;
@@ -1430,6 +1524,10 @@ body:has(.bi-dialog:modal) {
1430
1524
  display: grid;
1431
1525
  }
1432
1526
 
1527
+ .bi-field:has(.bi-input:is([type="radio"], [type="checkbox"]))[data-fullwidth="true"] {
1528
+ width: 100%;
1529
+ }
1530
+
1433
1531
  .bi-field:has(.bi-input:is([type="radio"], [type="checkbox"])) > * {
1434
1532
  grid-column: content;
1435
1533
  margin-top: 0;
@@ -1633,6 +1731,97 @@ body:has(.bi-dialog:modal) {
1633
1731
  opacity: var(--ds-opacity-disabled);
1634
1732
  }
1635
1733
 
1734
+ .bi-filter-group {
1735
+ --bic-filter-group-background-color: var(--bi-basic-white);
1736
+ --bic-filter-group-background-color-hover: var(--bi-primary-5);
1737
+ --bic-filter-group-background-color-expanded: var(--bi-neutral-15);
1738
+ --bic-filter-group-border-color: var(--bi-neutral-15);
1739
+ --bic-filter-group-text-color: var(--bi-neutral-90);
1740
+ }
1741
+
1742
+ .bi-filter-group[data-dark="true"] {
1743
+ --bic-filter-group-background-color: var(--bi-neutral-90);
1744
+ --bic-filter-group-background-color-hover: var(--bi-primary-90);
1745
+ --bic-filter-group-background-color-expanded: var(--bi-neutral-80);
1746
+ --bic-filter-group-border-color: var(--bi-neutral-70);
1747
+ --bic-filter-group-text-color: var(--bi-basic-white);
1748
+ }
1749
+
1750
+ .bi-filter-group {
1751
+ flex-direction: column;
1752
+ display: flex;
1753
+ }
1754
+
1755
+ .bi-filter-group > button {
1756
+ border: none;
1757
+ border-bottom: var(--bi-scale-0-25x) solid var(--bic-filter-group-border-color);
1758
+ height: var(--bi-scale-12x);
1759
+ color: var(--bic-filter-group-text-color);
1760
+ align-items: center;
1761
+ gap: var(--bi-scale-2x);
1762
+ width: 100%;
1763
+ padding: var(--bi-scale-2x) var(--bi-scale-1-5x);
1764
+ background: var(--bic-filter-group-background-color);
1765
+ cursor: pointer;
1766
+ border-radius: var(--bi-radius-small) var(--bi-radius-small) 0 0;
1767
+ -webkit-user-select: none;
1768
+ user-select: none;
1769
+ flex-direction: row;
1770
+ display: flex;
1771
+ }
1772
+
1773
+ .bi-filter-group > button:hover {
1774
+ background: var(--bic-filter-group-background-color-hover);
1775
+ }
1776
+
1777
+ .bi-filter-group > button:focus-visible {
1778
+ box-shadow: 0 0 0 4.5px var(--bi-basic-white);
1779
+ outline: 1.5px solid var(--bi-primary-50);
1780
+ outline-offset: 2px;
1781
+ border-radius: var(--bi-radius-small);
1782
+ }
1783
+
1784
+ .bi-filter-group > button > [data-bi-icon="true"] {
1785
+ width: var(--bi-scale-6x);
1786
+ height: var(--bi-scale-6x);
1787
+ font-size: var(--bi-icon-medium);
1788
+ }
1789
+
1790
+ .bi-filter-group > button > h3 {
1791
+ text-align: left;
1792
+ flex: 1;
1793
+ margin: 0;
1794
+ font-family: museo-sans, Arial, sans-serif;
1795
+ font-size: 1rem;
1796
+ font-weight: 700;
1797
+ line-height: 1.5;
1798
+ }
1799
+
1800
+ .bi-filter-group > div {
1801
+ gap: var(--bi-scale-2x);
1802
+ padding: var(--bi-scale-2x) 0 var(--bi-scale-8x);
1803
+ flex-direction: column;
1804
+ display: none;
1805
+ }
1806
+
1807
+ .bi-filter-group > div > .bi-field:has(.bi-input[type="checkbox"]) {
1808
+ width: 100%;
1809
+ }
1810
+
1811
+ .bi-filter-group:last-of-type > div {
1812
+ padding: var(--bi-scale-2x) 0;
1813
+ }
1814
+
1815
+ .bi-filter-group[data-expanded="true"] > button {
1816
+ --bic-filter-group-background-color: var(--bic-filter-group-background-color-expanded);
1817
+ border-radius: var(--bi-radius-small);
1818
+ border-bottom-color: #0000;
1819
+ }
1820
+
1821
+ .bi-filter-group[data-expanded="true"] > div {
1822
+ display: flex;
1823
+ }
1824
+
1636
1825
  .bi-footer {
1637
1826
  --bic-footer-color: var(--bi-basic-key);
1638
1827
  --bic-footer-background: var(--bi-basic-white);
@@ -1726,6 +1915,12 @@ body:has(.bi-dialog:modal) {
1726
1915
  display: flex;
1727
1916
  }
1728
1917
 
1918
+ @media not (min-width: 600px) {
1919
+ .bi-footer .bi-footer--accreditations {
1920
+ gap: var(--bi-scale-1x);
1921
+ }
1922
+ }
1923
+
1729
1924
  .bi-footer .bi-footer--accreditations .bi-footer--aacsb {
1730
1925
  background-position: center;
1731
1926
  background-repeat: no-repeat;
@@ -2210,6 +2405,10 @@ body:has(.bi-dialog:modal) {
2210
2405
  --bic-link-color: var(--bi-neutral-5);
2211
2406
  }
2212
2407
 
2408
+ .bi-link[data-underline="hover"]:not(:hover) {
2409
+ text-decoration: none;
2410
+ }
2411
+
2213
2412
  .bi-link:visited {
2214
2413
  color: var(--bic-link-color);
2215
2414
  }
@@ -2319,7 +2518,7 @@ body:has(.bi-dialog:modal) {
2319
2518
  --bic-navbar-color: var(--bi-basic-white);
2320
2519
  }
2321
2520
 
2322
- .bi-navbar .bi-navbar__header {
2521
+ .bi-navbar > header {
2323
2522
  height: var(--bi-layout-navbar-height);
2324
2523
  align-items: center;
2325
2524
  gap: var(--bi-scale-6x);
@@ -2330,40 +2529,57 @@ body:has(.bi-dialog:modal) {
2330
2529
  display: flex;
2331
2530
  }
2332
2531
 
2333
- .bi-navbar .bi-navbar__header > :first-child {
2532
+ @media (prefers-reduced-motion: no-preference) {
2533
+ .bi-navbar > header {
2534
+ transition: transform .2s ease-in-out;
2535
+ }
2536
+ }
2537
+
2538
+ .bi-navbar > header > :first-child {
2334
2539
  margin-right: auto;
2335
2540
  }
2336
2541
 
2337
- .bi-navbar[data-fixed="true"] .bi-navbar__header {
2338
- z-index: 100;
2542
+ .bi-navbar[data-fixed="true"] > header {
2543
+ z-index: 110;
2339
2544
  position: fixed;
2340
2545
  top: 0;
2341
2546
  left: 0;
2342
2547
  right: 0;
2343
2548
  }
2344
2549
 
2345
- .bi-navbar .bi-navbar__skip-link {
2346
- background: var(--bi-primary-50);
2347
- color: var(--bi-basic-white);
2348
- outline-offset: 0px;
2349
- border-radius: 4px;
2350
- align-content: center;
2351
- height: 44px;
2352
- padding: 0 7px;
2353
- font-size: .75rem;
2354
- font-weight: 400;
2550
+ .bi-sub-navbar--wrapper {
2551
+ height: var(--bi-layout-navbar-height);
2552
+ position: relative;
2553
+ }
2554
+
2555
+ .bi-sub-navbar--wrapper .bi-sub-navbar {
2556
+ --bic-sub-navbar-background-color: var(--bi-basic-white);
2557
+ --bic-sub-navbar-color: var(--bi-basic-key);
2558
+ --bic-sub-navbar-border-color: var(--bi-neutral-15);
2559
+ height: var(--bi-layout-navbar-height);
2560
+ background-color: var(--bic-sub-navbar-background-color);
2561
+ border-bottom: 1px solid var(--bic-sub-navbar-border-color);
2562
+ width: 100%;
2355
2563
  position: absolute;
2356
- left: 50%;
2357
- transform: translate(-50%, -62px);
2564
+ top: 0;
2565
+ left: 0;
2358
2566
  }
2359
2567
 
2360
- .bi-navbar .bi-navbar__skip-link:focus {
2361
- border-radius: var(--bi-radius-medium);
2362
- outline-offset: 2px;
2363
- outline: 1.5px solid var(--bi-primary-50);
2364
- box-shadow: 0 0 0 2px var(--bi-basic-white);
2365
- transition: transform .3s;
2366
- transform: translate(-50%);
2568
+ .bi-sub-navbar--wrapper .bi-sub-navbar[data-dark="true"] {
2569
+ --bic-sub-navbar-background-color: var(--bi-primary-95);
2570
+ --bic-sub-navbar-color: var(--bi-basic-white);
2571
+ --bic-sub-navbar-border-color: var(--bi-neutral-70);
2572
+ }
2573
+
2574
+ .bi-sub-navbar--wrapper .bi-sub-navbar[data-fixed="true"] {
2575
+ z-index: 120;
2576
+ position: fixed;
2577
+ }
2578
+
2579
+ @media (prefers-reduced-motion: no-preference) {
2580
+ .bi-sub-navbar--wrapper .bi-sub-navbar[data-fixed="true"] {
2581
+ transition: top .2s ease-in-out;
2582
+ }
2367
2583
  }
2368
2584
 
2369
2585
  .bi-pagination {
@@ -2502,6 +2718,39 @@ body:has(.bi-dialog:modal) {
2502
2718
  display: none;
2503
2719
  }
2504
2720
 
2721
+ .bi-skip-link {
2722
+ --bic-skip-link-color: var(--bi-basic-white);
2723
+ --bic-skip-link-background: var(--bi-primary-50);
2724
+ background: var(--bic-skip-link-background);
2725
+ color: var(--bic-skip-link-color);
2726
+ outline-offset: 0px;
2727
+ z-index: 200;
2728
+ border-radius: 4px;
2729
+ align-content: center;
2730
+ height: 44px;
2731
+ padding: 0 7px;
2732
+ font-size: 1rem;
2733
+ font-weight: 500;
2734
+ transition: transform .3s ease-in-out;
2735
+ position: absolute;
2736
+ left: 50%;
2737
+ transform: translate(-50%, -110%);
2738
+ }
2739
+
2740
+ @media (prefers-reduced-motion: reduce) {
2741
+ .bi-skip-link {
2742
+ transition: none;
2743
+ }
2744
+ }
2745
+
2746
+ .bi-skip-link:focus {
2747
+ transform: translate(-50%, var(--bi-scale-2x));
2748
+ border-radius: var(--bi-radius-medium);
2749
+ outline-offset: 2px;
2750
+ outline: 1.5px solid var(--bi-primary-50);
2751
+ box-shadow: 0 0 0 2px var(--bi-basic-white);
2752
+ }
2753
+
2505
2754
  .bi-spinner {
2506
2755
  --bic-spinner-color: currentColor;
2507
2756
  aspect-ratio: 1;
@@ -2554,6 +2803,18 @@ body:has(.bi-dialog:modal) {
2554
2803
  }
2555
2804
  }
2556
2805
 
2806
+ .bi-sticky-header {
2807
+ z-index: 100;
2808
+ position: -webkit-sticky;
2809
+ position: sticky;
2810
+ }
2811
+
2812
+ @media (prefers-reduced-motion: no-preference) {
2813
+ .bi-sticky-header {
2814
+ transition: top .2s ease-in-out;
2815
+ }
2816
+ }
2817
+
2557
2818
  .bi-tabs {
2558
2819
  --bic-tabs-tab-color-selected: var(--bi-primary-50);
2559
2820
  --bic-tabs-panel-padding: var(--bi-scale-4x) var(--bi-scale-5x);
@@ -2581,6 +2842,8 @@ body:has(.bi-dialog:modal) {
2581
2842
  overflow-y: auto;
2582
2843
  overflow-x: unset;
2583
2844
  flex-direction: column;
2845
+ width: -webkit-fit-content;
2846
+ width: fit-content;
2584
2847
  }
2585
2848
 
2586
2849
  .bi-tabs .bi-tabs--list .bi-tabs--tab {
@@ -2676,3 +2939,39 @@ body:has(.bi-dialog:modal) {
2676
2939
  left: var(--bic-validation-message-padding);
2677
2940
  position: absolute;
2678
2941
  }
2942
+
2943
+ html:has(.bi-navbar) {
2944
+ scroll-padding-top: var(--bi-layout-navbar-height);
2945
+ }
2946
+
2947
+ html:has(.bi-sub-navbar) {
2948
+ scroll-padding-top: var(--bi-layout-navbar-height);
2949
+ }
2950
+
2951
+ html .bi-sticky-header {
2952
+ top: 0;
2953
+ }
2954
+
2955
+ html:has(.bi-navbar[data-fixed="true"]) .bi-sticky-header {
2956
+ top: var(--bi-layout-navbar-height);
2957
+ }
2958
+
2959
+ html:has(.bi-sub-navbar[data-fixed="true"][data-scroll-dir="down"]) .bi-navbar > header {
2960
+ transform: translateY(-100%);
2961
+ }
2962
+
2963
+ html:has(.bi-sub-navbar[data-fixed="true"][data-scroll-dir="down"]) .bi-sub-navbar {
2964
+ top: 0;
2965
+ }
2966
+
2967
+ html:has(.bi-navbar[data-fixed="true"]):has(.bi-sub-navbar[data-fixed="true"][data-scroll-dir="up"]) .bi-navbar > header {
2968
+ transform: translateY(0);
2969
+ }
2970
+
2971
+ html:has(.bi-navbar[data-fixed="true"]):has(.bi-sub-navbar[data-fixed="true"][data-scroll-dir="up"]) .bi-sub-navbar {
2972
+ top: var(--bi-layout-navbar-height);
2973
+ }
2974
+
2975
+ html:has(.bi-navbar[data-fixed="true"]):has(.bi-sub-navbar[data-fixed="true"][data-scroll-dir="up"]) .bi-sticky-header {
2976
+ top: calc(var(--bi-layout-navbar-height) + var(--bi-layout-navbar-height));
2977
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bi-digital/css",
3
- "version": "0.2.18",
3
+ "version": "0.2.20",
4
4
  "description": "CSS for the BI Design System",
5
5
  "author": "BI Digital",
6
6
  "license": "ISC",
@@ -23,7 +23,7 @@
23
23
  "lightningcss": "^1.30.1",
24
24
  "modern-normalize": "^3.0.1",
25
25
  "rimraf": "^6.0.1",
26
- "@bi-digital/tokens": "0.2.18"
26
+ "@bi-digital/tokens": "0.2.20"
27
27
  },
28
28
  "scripts": {
29
29
  "build": "rimraf dist && node config.js",