@wwtdev/bsds-css 2.18.1 → 2.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/dist/components/_accordions.scss +20 -11
  2. package/dist/components/_alert.scss +128 -0
  3. package/dist/components/_banner.scss +25 -11
  4. package/dist/components/_circle-buttons.scss +6 -0
  5. package/dist/components/_dropdown.scss +7 -0
  6. package/dist/components/_form-field-details.scss +0 -1
  7. package/dist/components/_form-input-composite.scss +24 -13
  8. package/dist/components/_form-input-phone.scss +5 -0
  9. package/dist/components/_form-text-fields.scss +21 -19
  10. package/dist/components/_horizontal-navigation-mobile.scss +194 -0
  11. package/dist/components/_horizontal-navigation.scss +213 -0
  12. package/dist/components/_modal.scss +1 -1
  13. package/dist/components/_vertical-navigation.scss +231 -0
  14. package/dist/components/accordions.css +20 -11
  15. package/dist/components/alert.css +124 -0
  16. package/dist/components/banner.css +24 -10
  17. package/dist/components/circle-buttons.css +6 -0
  18. package/dist/components/dropdown.css +7 -0
  19. package/dist/components/form-field-details.css +0 -1
  20. package/dist/components/form-input-composite.css +24 -13
  21. package/dist/components/form-input-phone.css +5 -0
  22. package/dist/components/form-text-fields.css +21 -19
  23. package/dist/components/horizontal-navigation-mobile.css +190 -0
  24. package/dist/components/horizontal-navigation.css +209 -0
  25. package/dist/components/modal.css +1 -1
  26. package/dist/components/vertical-navigation.css +227 -0
  27. package/dist/wwt-bsds-preset.js +2 -1
  28. package/dist/wwt-bsds-wc-base.css +2 -0
  29. package/dist/wwt-bsds.css +2259 -1547
  30. package/dist/wwt-bsds.min.css +1 -1
  31. package/package.json +1 -1
@@ -0,0 +1,213 @@
1
+ @mixin horizontal-navigation() {
2
+ .bs-horizontal-nav {
3
+ --bg-color: var(--bs-bg-light);
4
+ --top-offset: 48px;
5
+ align-items: center;
6
+ background-color: var(--bg-color);
7
+ bottom: auto;
8
+ display: none;
9
+ height: 48px;
10
+ left: 0;
11
+ position: fixed;
12
+ right: 0;
13
+ top: var(--top-offset);
14
+ z-index: 1001;
15
+ }
16
+
17
+ @media (min-width: 752px) {
18
+ .bs-horizontal-nav {
19
+ display: flex;
20
+ }
21
+ }
22
+
23
+ .bs-horizontal-nav :where(nav) {
24
+ align-items: center;
25
+ display: flex;
26
+ justify-content: space-between;
27
+ margin-left: auto;
28
+ margin-right: auto;
29
+ max-width: calc(85.5rem + 2.25rem + 2.25rem); /* 1368px + 2.25rem x2 padding */
30
+ padding-left: 2.25rem;
31
+ padding-right: 2.25rem;
32
+ width: 100%;
33
+ }
34
+
35
+ /* ===== Nav List ===== */
36
+ .bs-horizontal-nav :where(nav > ul),
37
+ .bs-horizontal-nav :where(nav > .bs-horizontal-nav-external-links > ul) {
38
+ align-items: center;
39
+ display: flex;
40
+ flex-direction: row;
41
+ gap: 1.5rem;
42
+ list-style: none;
43
+ width: 100%;
44
+ }
45
+
46
+ /* ===== Optional Title ===== */
47
+ .bs-horizontal-nav :where(.bs-horizontal-nav-title) {
48
+ border-right: 1px solid var(--bs-border-base);
49
+ padding-right: 1.5rem;
50
+ width: auto;
51
+ }
52
+
53
+ .bs-horizontal-nav :where(.bs-horizontal-nav-title > a) {
54
+ cursor: pointer;
55
+ display: inline;
56
+ padding-bottom: 0;
57
+ padding-left: 0;
58
+ padding-right: 0;
59
+ padding-top: 0;
60
+ width: auto;
61
+ }
62
+
63
+ /* ===== Nav Items ===== */
64
+ .bs-horizontal-nav :where(nav > ul > li),
65
+ .bs-horizontal-nav :where(nav > .bs-horizontal-nav-external-links > ul > li) {
66
+ border-bottom: none;
67
+ display: list-item;
68
+ margin-left: 0;
69
+ width: auto;
70
+ }
71
+
72
+ .bs-horizontal-nav :where(nav > ul > li:not(.bs-horizontal-nav-title) > a),
73
+ .bs-horizontal-nav :where(nav > .bs-horizontal-nav-external-links > ul > li > a) {
74
+ align-items: center;
75
+ border-radius: 4px;
76
+ color: var(--bs-ink-light);
77
+ cursor: pointer;
78
+ display: flex;
79
+ font-weight: 400;
80
+ gap: 0.5rem;
81
+ height: 100%;
82
+ padding-bottom: 0.5rem;
83
+ padding-left: 0;
84
+ padding-right: 0;
85
+ padding-top: 0.5rem;
86
+ width: 100%;
87
+ }
88
+
89
+ .bs-horizontal-nav :where(nav > ul > li:not(.bs-horizontal-nav-title) > a:hover),
90
+ .bs-horizontal-nav :where(nav > .bs-horizontal-nav-external-links > ul > li > a:hover) {
91
+ color: var(--bs-ink-blue);
92
+ }
93
+
94
+ .bs-horizontal-nav :where(nav > ul > li > a[data-active="true"]),
95
+ .bs-horizontal-nav :where(nav > .bs-horizontal-nav-external-links > ul > li > a[data-active="true"]) {
96
+ color: var(--bs-ink-base);
97
+ font-weight: 600;
98
+ }
99
+
100
+ .bs-horizontal-nav :where(nav > ul > li > a[data-active="true"]:hover),
101
+ .bs-horizontal-nav :where(nav > .bs-horizontal-nav-external-links > ul > li > a[data-active="true"]:hover) {
102
+ color: var(--bs-ink-blue);
103
+ }
104
+
105
+ .bs-horizontal-nav :where(.bs-horizontal-nav-first-link-icon) {
106
+ color: var(--bs-ink-blue);
107
+ height: 1rem;
108
+ width: 1rem;
109
+ }
110
+
111
+ /* ===== Nested Nav Items ===== */
112
+ .bs-horizontal-nav :where(.bs-horizontal-nav-nested-toggle) {
113
+ align-items: center;
114
+ cursor: pointer;
115
+ display: flex;
116
+ gap: 0.5rem;
117
+ line-height: 1.5;
118
+ padding-bottom: 0.5rem;
119
+ padding-top: 0.5rem;
120
+ }
121
+
122
+ .bs-horizontal-nav :where(.bs-horizontal-nav-nested-toggle:hover) {
123
+ color: var(--bs-ink-blue);
124
+ }
125
+
126
+ .bs-horizontal-nav :where(.bs-horizontal-nav-nested-toggle[data-active="true"]) {
127
+ color: var(--bs-ink-base);
128
+ font-weight: 600;
129
+ }
130
+
131
+ .bs-horizontal-nav :where(.bs-horizontal-nav-nested-toggle[data-active="true"]:hover) {
132
+ color: var(--bs-ink-blue);
133
+ }
134
+
135
+ .bs-horizontal-nav :where(.bs-horizontal-nav-nested-toggle-caret) {
136
+ height: 0.75rem;
137
+ transform: none;
138
+ transition-duration: 0.2s;
139
+ transition-property: transform;
140
+ transition-timing-function: ease-in-out;
141
+ width: 0.75rem;
142
+ }
143
+
144
+ .bs-horizontal-nav :where(.bs-horizontal-nav-nested-toggle:hover ~ .bs-horizontal-nav-caret) {
145
+ color: var(--bs-ink-blue);
146
+ }
147
+
148
+ .bs-horizontal-nav :where(.bs-horizontal-nav-nested-toggle[data-expanded="true"]) {
149
+ color: var(--bs-ink-blue);
150
+ font-weight: 600;
151
+ }
152
+
153
+ .bs-horizontal-nav :where(.bs-horizontal-nav-nested-toggle[data-expanded="true"] .bs-horizontal-nav-nested-toggle-caret) {
154
+ transform: rotate(180deg);
155
+ }
156
+
157
+ .bs-horizontal-nav :where(.bs-horizontal-nav-nested-menu) {
158
+ --dropdown-top: 100%;
159
+ border-radius: 8px;
160
+ padding: 1.5rem;
161
+ width: 10.5rem;
162
+ }
163
+
164
+ .bs-horizontal-nav :where(.bs-horizontal-nav-nested-menu > ul) {
165
+ list-style: none;
166
+ }
167
+
168
+ .bs-horizontal-nav :where(.bs-horizontal-nav-nested-menu > ul > li) {
169
+ margin-left: 0;
170
+ }
171
+
172
+ .bs-horizontal-nav :where(.bs-horizontal-nav-nested-menu > ul > li > a) {
173
+ font-size: 0.875rem;
174
+ }
175
+
176
+ .bs-horizontal-nav :where(.bs-horizontal-nav-nested-menu > ul > li > a:hover) {
177
+ color: var(--bs-ink-blue);
178
+ text-decoration: underline;
179
+ }
180
+
181
+ .bs-horizontal-nav :where(.bs-horizontal-nav-nested-menu > ul > li > a[data-active="true"]) {
182
+ color: var(--bs-ink-base);
183
+ font-weight: 600;
184
+ }
185
+
186
+ .bs-horizontal-nav :where(.bs-horizontal-nav-nested-menu > ul > li > a[data-active="true"]:hover) {
187
+ color: var(--bs-ink-blue);
188
+ }
189
+
190
+ /* ===== External Links ===== */
191
+ .bs-horizontal-nav :where(.bs-horizontal-nav-external-link-icon) {
192
+ height: 1rem;
193
+ width: 1rem;
194
+ }
195
+
196
+ /* ===== Slotted Items ===== */
197
+ .bs-horizontal-nav :where(.bs-horizontal-nav-slotted-items) {
198
+ margin-left: auto;
199
+ }
200
+
201
+ .bs-horizontal-nav :where(.bs-horizontal-nav-external-links ~ .bs-horizontal-nav-slotted-items) {
202
+ margin-left: 1.5rem;
203
+ }
204
+
205
+ /* ===== Component-specific ===== */
206
+ .bs-horizontal-nav :where(.bs-horizontal-nav-nested-menu-override) {
207
+ --dropdown-top: 0;
208
+ padding: 1.5rem;
209
+ width: 10.5rem;
210
+ }
211
+
212
+ }
213
+
@@ -23,7 +23,7 @@
23
23
 
24
24
  @media (min-width: 752px) {
25
25
  .bs-modal {
26
- max-height: 40.625rem;
26
+ max-height: min(calc(100vh - 3rem), 40.625rem);
27
27
  width: 35rem;
28
28
  }
29
29
  }
@@ -0,0 +1,231 @@
1
+ @mixin vertical-navigation() {
2
+ .bs-vertical-nav {
3
+ --active-color: rgba(255, 255, 255, 0.25);
4
+ --bg-color: var(--bs-navy-base);
5
+ --border-color: var(--bs-border-dark);
6
+ --top-offset: 48px;
7
+ --width: auto;
8
+ -ms-overflow-style: none; /* Internet Explorer 10+ */
9
+ background-color: var(--bg-color);
10
+ color: var(--bs-white);
11
+ display: none;
12
+ flex-direction: column;
13
+ height: 100vh;
14
+ left: 0;
15
+ max-height: calc(100vh - var(--top-offset));
16
+ overflow: scroll;
17
+ padding-bottom: 1.5rem;
18
+ padding-left: 1.5rem;
19
+ padding-right: 1.5rem;
20
+ padding-top: 1.5rem;
21
+ position: fixed;
22
+ right: 0;
23
+ scrollbar-width: none; /* Firefox */
24
+ top: var(--top-offset);
25
+ transition-duration: 0.2s;
26
+ transition-property: max-height, transform;
27
+ transition-timing-function: ease;
28
+ width: var(--width);
29
+ z-index: 1001;
30
+ }
31
+
32
+ .bs-vertical-nav:where([data-mobile-shown="true"]) {
33
+ display: flex;
34
+ }
35
+
36
+ .dark .bs-vertical-nav {
37
+ --active-color: rgba(255, 255, 255, 0.25);
38
+ --bg-color: var(--bs-bg-base);
39
+ --border-color: var(--bs-border-dark);
40
+ border-right: 1px solid var(--bs-border-medium);
41
+ }
42
+
43
+ @media (min-width: 752px) {
44
+ .bs-vertical-nav {
45
+ --width: 9.875rem;
46
+ border-right: 1px solid var(--bg-color);
47
+ display: flex;
48
+ padding-bottom: 1rem;
49
+ padding-left: 0.5rem;
50
+ padding-right: 0.5rem;
51
+ padding-top: 1rem;
52
+ right: auto;
53
+ }
54
+
55
+ .bs-vertical-nav:where([data-narrow="true"]) {
56
+ --width: 4.5rem;
57
+ }
58
+ }
59
+
60
+ .bs-vertical-nav::-webkit-scrollbar {
61
+ display: none; /* Safari and Chrome */
62
+ }
63
+
64
+ .bs-vertical-nav:where([data-y-expand="true"]) {
65
+ transform: translateY(calc(-1 * var(--top-offset)));
66
+ max-height: 100vh;
67
+ }
68
+
69
+ /* ===== Sections ===== */
70
+ .bs-vertical-nav :where(.bs-vertical-nav-section) {
71
+ border-top: 2px solid var(--border-color);
72
+ margin-top: 0.5rem;
73
+ padding-top: 0.5rem;
74
+ }
75
+
76
+ @media (min-width: 752px) {
77
+ .bs-vertical-nav :where(.bs-vertical-nav-section) {
78
+ margin-top: 0.25rem;
79
+ }
80
+ }
81
+
82
+ /* Don't show border if the very first item is a section */
83
+ .bs-vertical-nav :where(ul li:first-child) {
84
+ border-top: none;
85
+ margin-top: 0;
86
+ padding-top: 0;
87
+ }
88
+
89
+ .bs-vertical-nav :where(.bs-vertical-nav-section-toggle) {
90
+ align-items: center;
91
+ cursor: pointer;
92
+ display: flex;
93
+ font-size: 0.75rem;
94
+ font-weight: 600;
95
+ justify-content: space-between;
96
+ padding-bottom: 0.5rem;
97
+ padding-left: 0.75rem;
98
+ padding-right: 0.5rem;
99
+ padding-top: 0.5rem;
100
+ width: 100%;
101
+ }
102
+
103
+ .bs-vertical-nav :where(.bs-vertical-nav-section-toggle-caret) {
104
+ height: 0.75rem;
105
+ transform: none;
106
+ transition-duration: 0.2s;
107
+ transition-property: transform;
108
+ transition-timing-function: ease-in-out;
109
+ width: 0.75rem;
110
+ }
111
+
112
+ .bs-vertical-nav :where(.bs-vertical-nav-section[data-collapsed="true"] .bs-vertical-nav-section-toggle-caret) {
113
+ transform: rotate(180deg);
114
+ }
115
+
116
+ /* ===== Nav List ===== */
117
+ .bs-vertical-nav :where(ul) {
118
+ display: flex;
119
+ flex-direction: column;
120
+ gap: 0;
121
+ list-style: none;
122
+ margin-top: 0;
123
+ padding-left: 0;
124
+ }
125
+
126
+ @media (min-width: 752px) {
127
+ .bs-vertical-nav :where(ul) {
128
+ gap: 0.25rem;
129
+ }
130
+ }
131
+
132
+ /* ===== Nav List Items / Links */
133
+ .bs-vertical-nav :where(ul li a) {
134
+ align-items: center;
135
+ border-radius: 4px;
136
+ cursor: pointer;
137
+ display: flex;
138
+ font-size: 1rem;
139
+ font-weight: 400;
140
+ gap: 0.5rem;
141
+ height: 100%;
142
+ padding-bottom: 0.75rem;
143
+ padding-left: 0.75rem;
144
+ padding-right: 0.75rem;
145
+ padding-top: 0.75rem;
146
+ width: 100%;
147
+ }
148
+
149
+ @media (min-width: 752px) {
150
+ .bs-vertical-nav :where(ul li a) {
151
+ font-size: 0.875rem;
152
+ padding-bottom: 0.5rem;
153
+ padding-top: 0.5rem;
154
+ }
155
+
156
+ .bs-vertical-nav:where([data-narrow="true"]) :where(ul li a) {
157
+ flex-direction: column;
158
+ font-size: 0.6875rem;
159
+ gap: 0.25rem;
160
+ line-height: 110%;
161
+ padding-bottom: 0.75rem;
162
+ padding-left: 0.25rem;
163
+ padding-right: 0.25rem;
164
+ padding-top: 0.75rem;
165
+ text-align: center;
166
+ }
167
+ }
168
+
169
+ .bs-vertical-nav :where(ul li a:hover) {
170
+ font-weight: 600;
171
+ }
172
+
173
+ .bs-vertical-nav :where(ul li a[data-active="true"]) {
174
+ background-color: var(--active-color);
175
+ font-weight: 600;
176
+ }
177
+
178
+ .bs-vertical-nav :where(.bs-vertical-nav-link-icon) {
179
+ height: 1rem;
180
+ width: 1rem;
181
+ }
182
+
183
+ @media (min-width: 752px) {
184
+ .bs-vertical-nav :where(.bs-vertical-nav-link-icon) {
185
+ height: 0.875rem;
186
+ width: 0.875rem;
187
+ }
188
+
189
+ .bs-vertical-nav:where([data-narrow="true"]) :where(.bs-vertical-nav-link-icon) {
190
+ height: 1rem;
191
+ width: 1rem;
192
+ }
193
+ }
194
+
195
+ /* ===== External Links ===== */
196
+ .bs-vertical-nav :where(.bs-vertical-nav-external-links) {
197
+ margin-top: auto;
198
+ padding-top: 2.25rem;
199
+ }
200
+
201
+ .bs-vertical-nav:where([data-narrow="true"]) :where(.bs-vertical-nav-external-links) {
202
+ display: none;
203
+ }
204
+
205
+ .bs-vertical-nav :where(.bs-vertical-nav-external-links .bs-vertical-nav-external-link-icon) {
206
+ height: 1rem;
207
+ width: 1rem;
208
+ }
209
+
210
+ @media (min-width: 752px) {
211
+ .bs-vertical-nav :where(.bs-vertical-nav-external-links .bs-vertical-nav-external-link-icon) {
212
+ height: 0.875rem;
213
+ width: 0.875rem;
214
+ }
215
+ }
216
+
217
+ /* ===== Slotted Items ===== */
218
+ .bs-vertical-nav :where(.bs-vertical-nav-slotted-items) {
219
+ margin-top: auto;
220
+ }
221
+
222
+ .bs-vertical-nav :where(.bs-vertical-nav-external-links ~ .bs-vertical-nav-slotted-items) {
223
+ margin-top: 1rem;
224
+ }
225
+
226
+ .bs-vertical-nav:where([data-narrow="true"]) :where(.bs-vertical-nav-slotted-items) {
227
+ display: none;
228
+ }
229
+
230
+ }
231
+
@@ -17,7 +17,8 @@
17
17
 
18
18
  /* Accordion Panel (Icon, Title, Caret) */
19
19
 
20
- .bs-accordion :where(header button) {
20
+ .bs-accordion :where(.bs-accordion-toggle),
21
+ .bs-accordion > :where(header) > :where(button) {
21
22
  align-items: center;
22
23
  background-color: var(--bs-bg-base);
23
24
  border: 0px solid transparent;
@@ -38,48 +39,56 @@
38
39
  width: 100%;
39
40
  }
40
41
 
41
- .bs-accordion :where(header button:focus-visible) {
42
+ .bs-accordion :where(.bs-accordion-toggle:focus-visible),
43
+ .bs-accordion > :where(header) > :where(button:focus-visible) {
42
44
  --accordion-outline-color: var(--bs-blue-base);
43
45
  }
44
46
 
45
- .bs-accordion :where(header button) > * {
47
+ .bs-accordion :where(.bs-accordion-toggle) > *,
48
+ .bs-accordion > :where(header) > :where(button) > * {
46
49
  font-size: inherit;
47
50
  font-weight: inherit;
48
51
  line-height: inherit;
49
52
  }
50
53
 
51
- .bs-accordion :where(header button) > :where(span) {
54
+ .bs-accordion :where(.bs-accordion-toggle) > *,
55
+ .bs-accordion > :where(header) > :where(button) > * {
52
56
  grid-area: main;
53
57
  margin-right: var(--bs-space-2);
54
58
  text-align: left;
55
59
  }
56
60
 
57
- .bs-accordion :where(header button) > :where(span) {
61
+ .bs-accordion :where(.bs-accordion-toggle) > *,
62
+ .bs-accordion > :where(header) > :where(button) > * {
58
63
  vertical-align: middle;
59
64
  }
60
65
 
61
66
  @media (min-width: 957px) {
62
- .bs-accordion :where(header button) > :where(span) {
67
+ .bs-accordion :where(.bs-accordion-toggle) > * ,
68
+ .bs-accordion > :where(header) > :where(button) > * {
63
69
  margin-right: var(--bs-space-3);
64
70
  }
65
71
  }
66
72
 
67
- .bs-accordion :where(header button) :where([data-position]) {
73
+ .bs-accordion :where(.bs-accordion-toggle) :where([data-position]),
74
+ .bs-accordion > :where(header) > :where(button) :where([data-position]) {
68
75
  width: var(--accordion-text-size);
69
76
  }
70
77
 
71
- .bs-accordion :where(header button) > :where([data-position="start"]) {
78
+ .bs-accordion :where(.bs-accordion-toggle) > :where([data-position="start"]),
79
+ .bs-accordion > :where(header) > :where(button) > :where([data-position="start"]) {
72
80
  grid-area: start;
73
81
  margin-right: var(--bs-space-2);
74
82
  }
75
83
 
76
- .bs-accordion :where(header button) > :where([data-position="end"]) {
84
+ .bs-accordion :where(.bs-accordion-toggle) > :where([data-position="end"]),
85
+ .bs-accordion > :where(header) > :where(button) > :where([data-position="end"]) {
77
86
  grid-area: end;
78
87
  transform: rotate(0);
79
88
  transition: var(--bs-trans-rotate180);
80
89
  }
81
90
 
82
- .bs-accordion :where(header[data-open]:not([data-open="false"])) :where([data-position="end"]) {
91
+ .bs-accordion > :where(header[data-open]:not([data-open="false"])) :where([data-position="end"]) {
83
92
  transform: rotate(180deg);
84
93
  }
85
94
 
@@ -106,4 +115,4 @@
106
115
  /* Accordion Group */
107
116
  :where(.bs-accordion[data-stacked]:not([data-stacked="false"])) + .bs-accordion:where([data-stacked]:not([data-stacked="false"])) {
108
117
  border-block-start-color: transparent;
109
- }
118
+ }
@@ -0,0 +1,124 @@
1
+ .bs-alert {
2
+ /* bs-blue-100 @ 10% */
3
+ background-color: #99cff71a;
4
+ border-radius: 8px;
5
+ border: 2px solid var(--bs-ink-blue);
6
+ column-gap: 0.75rem;
7
+ display: grid;
8
+ grid-template-columns: 1.25rem 1fr 1rem;
9
+ grid-template-areas: "icon title close"
10
+ ". description ."
11
+ ". action .";
12
+ padding: 1rem;
13
+ }
14
+
15
+ @media (min-width: 752px) {
16
+ .bs-alert {
17
+ padding: 1.5rem;
18
+ }
19
+ }
20
+
21
+ .bs-alert:where([data-horizontal="true"]) {
22
+ grid-template-columns: 1.25rem 1fr 1rem;
23
+ grid-template-areas: "icon title close"
24
+ ". action .";
25
+ }
26
+
27
+ @media (min-width: 752px) {
28
+ .bs-alert:where([data-horizontal="true"]) {
29
+ grid-template-areas: "icon title action close";
30
+ grid-template-columns: 1.25rem max-content 1fr 1rem;
31
+ }
32
+ }
33
+
34
+ .bs-alert :where(.bs-alert-icon) {
35
+ align-self: center;
36
+ color: var(--bs-ink-blue);
37
+ grid-area: icon;
38
+ height: 1.25rem;
39
+ width: 1.25rem;
40
+ }
41
+
42
+ .bs-alert :where(.bs-alert-title) {
43
+ font-size: 1.125rem;
44
+ grid-area: title;
45
+ }
46
+
47
+ @media (min-width: 752px) {
48
+ .bs-alert :where(.bs-alert-title) {
49
+ font-size: 1.25rem;
50
+ }
51
+ }
52
+
53
+ .bs-alert :where(.bs-alert-description) {
54
+ font-size: 0.875rem;
55
+ grid-area: description;
56
+ margin-top: 0.5rem;
57
+ }
58
+
59
+ @media (min-width: 752px) {
60
+ .bs-alert :where(.bs-alert-description) {
61
+ font-size: 1rem;
62
+ }
63
+ }
64
+
65
+ .bs-alert:where([data-horizontal="true"]) :where(.bs-alert-description) {
66
+ display: none;
67
+ }
68
+
69
+ .bs-alert :where(.bs-alert-close) {
70
+ align-self: center;
71
+ background-color: transparent;
72
+ cursor: pointer;
73
+ grid-area: close;
74
+ height: 1rem;
75
+ width: 1rem;
76
+ }
77
+
78
+ .bs-alert :where(.bs-alert-action) {
79
+ grid-area: action;
80
+ margin-top: 1rem;
81
+ }
82
+
83
+ @media (min-width: 752px) {
84
+ .bs-alert:where([data-horizontal="true"]) :where(.bs-alert-action) {
85
+ margin-top: 0;
86
+ }
87
+ }
88
+
89
+ /* COLOR VARIANTS */
90
+ .bs-alert:where([data-variant="success"]) {
91
+ /* bs-purple-100 @ 10% */
92
+ background-color: #e0c5ef1a;
93
+ border-color: var(--bs-ink-purple);
94
+ }
95
+
96
+ .bs-alert:where([data-variant="success"]) :where(.bs-alert-icon) {
97
+ color: var(--bs-ink-purple);
98
+ }
99
+
100
+ .bs-alert:where([data-variant="warning"]) {
101
+ /* bs-orange-100 @ 10% */
102
+ background-color: #f3c4a81a;
103
+ border-color: var(--bs-ink-orange);
104
+ }
105
+ .bs-alert:where([data-variant="warning"]) :where(.bs-alert-icon) {
106
+ color: var(--bs-ink-orange);
107
+ }
108
+
109
+ .bs-alert:where([data-variant="negative"]) {
110
+ /* bs-red-100 @ 10% */
111
+ background-color: #f8a9aa1a;
112
+ border-color: var(--bs-ink-red);
113
+ }
114
+
115
+ .bs-alert:where([data-variant="negative"]) :where(.bs-alert-icon) {
116
+ color: var(--bs-ink-red);
117
+ }
118
+
119
+ /* DARK MODE SPECIAL CASE */
120
+ .dark .bs-alert :where(.bs-alert-action) {
121
+ --btn-border-color-focused: var(--bs-text-base);
122
+ --btn-text-color: var(--bs-text-base);
123
+ --btn-text-color-hovered: var(--bs-text-base);
124
+ }