@bi-digital/css 0.2.17 → 0.2.19

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.
@@ -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) {
@@ -60,10 +60,6 @@
60
60
  margin-left: auto;
61
61
  }
62
62
 
63
- .bi-button[popovertarget]:has( + :popover-open) {
64
- box-shadow: 0px 0px 0px 1.5px var(--bi-primary-50) inset;
65
- }
66
-
67
- .bi-button[popovertarget]:has( + .\:popover-open) {
63
+ .bi-button[aria-expanded="true"] {
68
64
  box-shadow: 0px 0px 0px 1.5px var(--bi-primary-50) inset;
69
65
  }
@@ -89,6 +89,10 @@
89
89
  display: grid;
90
90
  }
91
91
 
92
+ .bi-field:has(.bi-input:-webkit-any([type="radio"], [type="checkbox"]))[data-fullwidth="true"] {
93
+ width: 100%;
94
+ }
95
+
92
96
  .bi-field:has(.bi-input:-webkit-any([type="radio"], [type="checkbox"])) > * {
93
97
  grid-column: content;
94
98
  margin-top: 0;
@@ -160,6 +164,10 @@
160
164
  display: grid;
161
165
  }
162
166
 
167
+ .bi-field:has(.bi-input:is([type="radio"], [type="checkbox"]))[data-fullwidth="true"] {
168
+ width: 100%;
169
+ }
170
+
163
171
  .bi-field:has(.bi-input:is([type="radio"], [type="checkbox"])) > * {
164
172
  grid-column: content;
165
173
  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
+ }
@@ -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
- }
@@ -28,6 +28,8 @@
28
28
  color: var(--bic-popover-color);
29
29
  max-width: var(--bic-popover-max-width);
30
30
  padding: var(--bic-popover-padding);
31
+ z-index: 100000;
32
+ display: none;
31
33
  position: fixed;
32
34
  top: 0;
33
35
  bottom: auto;
@@ -36,6 +38,10 @@
36
38
  overflow: visible;
37
39
  }
38
40
 
41
+ .bi-popover[aria-hidden="false"] {
42
+ display: block;
43
+ }
44
+
39
45
  [data-popover="inline"] {
40
46
  all: unset;
41
47
  cursor: pointer;
@@ -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 {
@@ -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) {
@@ -1264,11 +1350,7 @@ body:has(.bi-dialog:modal) {
1264
1350
  margin-left: auto;
1265
1351
  }
1266
1352
 
1267
- .bi-button[popovertarget]:has( + :popover-open) {
1268
- box-shadow: 0px 0px 0px 1.5px var(--bi-primary-50) inset;
1269
- }
1270
-
1271
- .bi-button[popovertarget]:has( + .\:popover-open) {
1353
+ .bi-button[aria-expanded="true"] {
1272
1354
  box-shadow: 0px 0px 0px 1.5px var(--bi-primary-50) inset;
1273
1355
  }
1274
1356
 
@@ -1363,6 +1445,10 @@ body:has(.bi-dialog:modal) {
1363
1445
  display: grid;
1364
1446
  }
1365
1447
 
1448
+ .bi-field:has(.bi-input:-webkit-any([type="radio"], [type="checkbox"]))[data-fullwidth="true"] {
1449
+ width: 100%;
1450
+ }
1451
+
1366
1452
  .bi-field:has(.bi-input:-webkit-any([type="radio"], [type="checkbox"])) > * {
1367
1453
  grid-column: content;
1368
1454
  margin-top: 0;
@@ -1434,6 +1520,10 @@ body:has(.bi-dialog:modal) {
1434
1520
  display: grid;
1435
1521
  }
1436
1522
 
1523
+ .bi-field:has(.bi-input:is([type="radio"], [type="checkbox"]))[data-fullwidth="true"] {
1524
+ width: 100%;
1525
+ }
1526
+
1437
1527
  .bi-field:has(.bi-input:is([type="radio"], [type="checkbox"])) > * {
1438
1528
  grid-column: content;
1439
1529
  margin-top: 0;
@@ -1637,6 +1727,97 @@ body:has(.bi-dialog:modal) {
1637
1727
  opacity: var(--ds-opacity-disabled);
1638
1728
  }
1639
1729
 
1730
+ .bi-filter-group {
1731
+ --bic-filter-group-background-color: var(--bi-basic-white);
1732
+ --bic-filter-group-background-color-hover: var(--bi-primary-5);
1733
+ --bic-filter-group-background-color-expanded: var(--bi-neutral-15);
1734
+ --bic-filter-group-border-color: var(--bi-neutral-15);
1735
+ --bic-filter-group-text-color: var(--bi-neutral-90);
1736
+ }
1737
+
1738
+ .bi-filter-group[data-dark="true"] {
1739
+ --bic-filter-group-background-color: var(--bi-neutral-90);
1740
+ --bic-filter-group-background-color-hover: var(--bi-primary-90);
1741
+ --bic-filter-group-background-color-expanded: var(--bi-neutral-80);
1742
+ --bic-filter-group-border-color: var(--bi-neutral-70);
1743
+ --bic-filter-group-text-color: var(--bi-basic-white);
1744
+ }
1745
+
1746
+ .bi-filter-group {
1747
+ flex-direction: column;
1748
+ display: flex;
1749
+ }
1750
+
1751
+ .bi-filter-group > button {
1752
+ border: none;
1753
+ border-bottom: var(--bi-scale-0-25x) solid var(--bic-filter-group-border-color);
1754
+ height: var(--bi-scale-12x);
1755
+ color: var(--bic-filter-group-text-color);
1756
+ align-items: center;
1757
+ gap: var(--bi-scale-2x);
1758
+ width: 100%;
1759
+ padding: var(--bi-scale-2x) var(--bi-scale-1-5x);
1760
+ background: var(--bic-filter-group-background-color);
1761
+ cursor: pointer;
1762
+ border-radius: var(--bi-radius-small) var(--bi-radius-small) 0 0;
1763
+ -webkit-user-select: none;
1764
+ user-select: none;
1765
+ flex-direction: row;
1766
+ display: flex;
1767
+ }
1768
+
1769
+ .bi-filter-group > button:hover {
1770
+ background: var(--bic-filter-group-background-color-hover);
1771
+ }
1772
+
1773
+ .bi-filter-group > button:focus-visible {
1774
+ box-shadow: 0 0 0 4.5px var(--bi-basic-white);
1775
+ outline: 1.5px solid var(--bi-primary-50);
1776
+ outline-offset: 2px;
1777
+ border-radius: var(--bi-radius-small);
1778
+ }
1779
+
1780
+ .bi-filter-group > button > [data-bi-icon="true"] {
1781
+ width: var(--bi-scale-6x);
1782
+ height: var(--bi-scale-6x);
1783
+ font-size: var(--bi-icon-medium);
1784
+ }
1785
+
1786
+ .bi-filter-group > button > h3 {
1787
+ text-align: left;
1788
+ flex: 1;
1789
+ margin: 0;
1790
+ font-family: museo-sans, Arial, sans-serif;
1791
+ font-size: 1rem;
1792
+ font-weight: 700;
1793
+ line-height: 1.5;
1794
+ }
1795
+
1796
+ .bi-filter-group > div {
1797
+ gap: var(--bi-scale-2x);
1798
+ padding: var(--bi-scale-2x) 0 var(--bi-scale-8x);
1799
+ flex-direction: column;
1800
+ display: none;
1801
+ }
1802
+
1803
+ .bi-filter-group > div > .bi-field:has(.bi-input[type="checkbox"]) {
1804
+ width: 100%;
1805
+ }
1806
+
1807
+ .bi-filter-group:last-of-type > div {
1808
+ padding: var(--bi-scale-2x) 0;
1809
+ }
1810
+
1811
+ .bi-filter-group[data-expanded="true"] > button {
1812
+ --bic-filter-group-background-color: var(--bic-filter-group-background-color-expanded);
1813
+ border-radius: var(--bi-radius-small);
1814
+ border-bottom-color: #0000;
1815
+ }
1816
+
1817
+ .bi-filter-group[data-expanded="true"] > div {
1818
+ display: flex;
1819
+ }
1820
+
1640
1821
  .bi-footer {
1641
1822
  --bic-footer-color: var(--bi-basic-key);
1642
1823
  --bic-footer-background: var(--bi-basic-white);
@@ -2323,7 +2504,7 @@ body:has(.bi-dialog:modal) {
2323
2504
  --bic-navbar-color: var(--bi-basic-white);
2324
2505
  }
2325
2506
 
2326
- .bi-navbar .bi-navbar__header {
2507
+ .bi-navbar > header {
2327
2508
  height: var(--bi-layout-navbar-height);
2328
2509
  align-items: center;
2329
2510
  gap: var(--bi-scale-6x);
@@ -2334,40 +2515,57 @@ body:has(.bi-dialog:modal) {
2334
2515
  display: flex;
2335
2516
  }
2336
2517
 
2337
- .bi-navbar .bi-navbar__header > :first-child {
2518
+ @media (prefers-reduced-motion: no-preference) {
2519
+ .bi-navbar > header {
2520
+ transition: transform .2s ease-in-out;
2521
+ }
2522
+ }
2523
+
2524
+ .bi-navbar > header > :first-child {
2338
2525
  margin-right: auto;
2339
2526
  }
2340
2527
 
2341
- .bi-navbar[data-fixed="true"] .bi-navbar__header {
2342
- z-index: 100;
2528
+ .bi-navbar[data-fixed="true"] > header {
2529
+ z-index: 110;
2343
2530
  position: fixed;
2344
2531
  top: 0;
2345
2532
  left: 0;
2346
2533
  right: 0;
2347
2534
  }
2348
2535
 
2349
- .bi-navbar .bi-navbar__skip-link {
2350
- background: var(--bi-primary-50);
2351
- color: var(--bi-basic-white);
2352
- outline-offset: 0px;
2353
- border-radius: 4px;
2354
- align-content: center;
2355
- height: 44px;
2356
- padding: 0 7px;
2357
- font-size: .75rem;
2358
- font-weight: 400;
2536
+ .bi-sub-navbar--wrapper {
2537
+ height: var(--bi-layout-navbar-height);
2538
+ position: relative;
2539
+ }
2540
+
2541
+ .bi-sub-navbar--wrapper .bi-sub-navbar {
2542
+ --bic-sub-navbar-background-color: var(--bi-basic-white);
2543
+ --bic-sub-navbar-color: var(--bi-basic-key);
2544
+ --bic-sub-navbar-border-color: var(--bi-neutral-15);
2545
+ height: var(--bi-layout-navbar-height);
2546
+ background-color: var(--bic-sub-navbar-background-color);
2547
+ border-bottom: 1px solid var(--bic-sub-navbar-border-color);
2548
+ width: 100%;
2359
2549
  position: absolute;
2360
- left: 50%;
2361
- transform: translate(-50%, -62px);
2550
+ top: 0;
2551
+ left: 0;
2362
2552
  }
2363
2553
 
2364
- .bi-navbar .bi-navbar__skip-link:focus {
2365
- border-radius: var(--bi-radius-medium);
2366
- outline-offset: 2px;
2367
- outline: 1.5px solid var(--bi-primary-50);
2368
- box-shadow: 0 0 0 2px var(--bi-basic-white);
2369
- transition: transform .3s;
2370
- transform: translate(-50%);
2554
+ .bi-sub-navbar--wrapper .bi-sub-navbar[data-dark="true"] {
2555
+ --bic-sub-navbar-background-color: var(--bi-primary-95);
2556
+ --bic-sub-navbar-color: var(--bi-basic-white);
2557
+ --bic-sub-navbar-border-color: var(--bi-neutral-70);
2558
+ }
2559
+
2560
+ .bi-sub-navbar--wrapper .bi-sub-navbar[data-fixed="true"] {
2561
+ z-index: 120;
2562
+ position: fixed;
2563
+ }
2564
+
2565
+ @media (prefers-reduced-motion: no-preference) {
2566
+ .bi-sub-navbar--wrapper .bi-sub-navbar[data-fixed="true"] {
2567
+ transition: top .2s ease-in-out;
2568
+ }
2371
2569
  }
2372
2570
 
2373
2571
  .bi-pagination {
@@ -2467,6 +2665,8 @@ body:has(.bi-dialog:modal) {
2467
2665
  color: var(--bic-popover-color);
2468
2666
  max-width: var(--bic-popover-max-width);
2469
2667
  padding: var(--bic-popover-padding);
2668
+ z-index: 100000;
2669
+ display: none;
2470
2670
  position: fixed;
2471
2671
  top: 0;
2472
2672
  bottom: auto;
@@ -2475,6 +2675,10 @@ body:has(.bi-dialog:modal) {
2475
2675
  overflow: visible;
2476
2676
  }
2477
2677
 
2678
+ .bi-popover[aria-hidden="false"] {
2679
+ display: block;
2680
+ }
2681
+
2478
2682
  [data-popover="inline"] {
2479
2683
  all: unset;
2480
2684
  cursor: pointer;
@@ -2500,6 +2704,39 @@ body:has(.bi-dialog:modal) {
2500
2704
  display: none;
2501
2705
  }
2502
2706
 
2707
+ .bi-skip-link {
2708
+ --bic-skip-link-color: var(--bi-basic-white);
2709
+ --bic-skip-link-background: var(--bi-primary-50);
2710
+ background: var(--bic-skip-link-background);
2711
+ color: var(--bic-skip-link-color);
2712
+ outline-offset: 0px;
2713
+ z-index: 200;
2714
+ border-radius: 4px;
2715
+ align-content: center;
2716
+ height: 44px;
2717
+ padding: 0 7px;
2718
+ font-size: 1rem;
2719
+ font-weight: 500;
2720
+ transition: transform .3s ease-in-out;
2721
+ position: absolute;
2722
+ left: 50%;
2723
+ transform: translate(-50%, -110%);
2724
+ }
2725
+
2726
+ @media (prefers-reduced-motion: reduce) {
2727
+ .bi-skip-link {
2728
+ transition: none;
2729
+ }
2730
+ }
2731
+
2732
+ .bi-skip-link:focus {
2733
+ transform: translate(-50%, var(--bi-scale-2x));
2734
+ border-radius: var(--bi-radius-medium);
2735
+ outline-offset: 2px;
2736
+ outline: 1.5px solid var(--bi-primary-50);
2737
+ box-shadow: 0 0 0 2px var(--bi-basic-white);
2738
+ }
2739
+
2503
2740
  .bi-spinner {
2504
2741
  --bic-spinner-color: currentColor;
2505
2742
  aspect-ratio: 1;
@@ -2552,6 +2789,18 @@ body:has(.bi-dialog:modal) {
2552
2789
  }
2553
2790
  }
2554
2791
 
2792
+ .bi-sticky-header {
2793
+ z-index: 100;
2794
+ position: -webkit-sticky;
2795
+ position: sticky;
2796
+ }
2797
+
2798
+ @media (prefers-reduced-motion: no-preference) {
2799
+ .bi-sticky-header {
2800
+ transition: top .2s ease-in-out;
2801
+ }
2802
+ }
2803
+
2555
2804
  .bi-tabs {
2556
2805
  --bic-tabs-tab-color-selected: var(--bi-primary-50);
2557
2806
  --bic-tabs-panel-padding: var(--bi-scale-4x) var(--bi-scale-5x);
@@ -2579,6 +2828,8 @@ body:has(.bi-dialog:modal) {
2579
2828
  overflow-y: auto;
2580
2829
  overflow-x: unset;
2581
2830
  flex-direction: column;
2831
+ width: -webkit-fit-content;
2832
+ width: fit-content;
2582
2833
  }
2583
2834
 
2584
2835
  .bi-tabs .bi-tabs--list .bi-tabs--tab {
@@ -2674,3 +2925,39 @@ body:has(.bi-dialog:modal) {
2674
2925
  left: var(--bic-validation-message-padding);
2675
2926
  position: absolute;
2676
2927
  }
2928
+
2929
+ html:has(.bi-navbar) {
2930
+ scroll-padding-top: var(--bi-layout-navbar-height);
2931
+ }
2932
+
2933
+ html:has(.bi-sub-navbar) {
2934
+ scroll-padding-top: var(--bi-layout-navbar-height);
2935
+ }
2936
+
2937
+ html .bi-sticky-header {
2938
+ top: 0;
2939
+ }
2940
+
2941
+ html:has(.bi-navbar[data-fixed="true"]) .bi-sticky-header {
2942
+ top: var(--bi-layout-navbar-height);
2943
+ }
2944
+
2945
+ html:has(.bi-sub-navbar[data-fixed="true"][data-scroll-dir="down"]) .bi-navbar > header {
2946
+ transform: translateY(-100%);
2947
+ }
2948
+
2949
+ html:has(.bi-sub-navbar[data-fixed="true"][data-scroll-dir="down"]) .bi-sub-navbar {
2950
+ top: 0;
2951
+ }
2952
+
2953
+ html:has(.bi-navbar[data-fixed="true"]):has(.bi-sub-navbar[data-fixed="true"][data-scroll-dir="up"]) .bi-navbar > header {
2954
+ transform: translateY(0);
2955
+ }
2956
+
2957
+ html:has(.bi-navbar[data-fixed="true"]):has(.bi-sub-navbar[data-fixed="true"][data-scroll-dir="up"]) .bi-sub-navbar {
2958
+ top: var(--bi-layout-navbar-height);
2959
+ }
2960
+
2961
+ html:has(.bi-navbar[data-fixed="true"]):has(.bi-sub-navbar[data-fixed="true"][data-scroll-dir="up"]) .bi-sticky-header {
2962
+ top: calc(var(--bi-layout-navbar-height) + var(--bi-layout-navbar-height));
2963
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bi-digital/css",
3
- "version": "0.2.17",
3
+ "version": "0.2.19",
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.17"
26
+ "@bi-digital/tokens": "0.2.19"
27
27
  },
28
28
  "scripts": {
29
29
  "build": "rimraf dist && node config.js",