@wwtdev/bsds-css 2.28.0 → 3.0.0-rc.21

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 (94) hide show
  1. package/README.md +4 -4
  2. package/dist/wwt-bsds-preset.js +196 -68
  3. package/dist/wwt-bsds.css +2189 -1471
  4. package/dist/wwt-bsds.min.css +1 -1
  5. package/package.json +7 -11
  6. package/dist/components/_accordions.scss +0 -122
  7. package/dist/components/_alert.scss +0 -143
  8. package/dist/components/_badge.scss +0 -95
  9. package/dist/components/_banner.scss +0 -68
  10. package/dist/components/_buttons.scss +0 -289
  11. package/dist/components/_chart.scss +0 -169
  12. package/dist/components/_circle-buttons.scss +0 -231
  13. package/dist/components/_dropdown-options.scss +0 -236
  14. package/dist/components/_dropdown.scss +0 -189
  15. package/dist/components/_empty-state.scss +0 -99
  16. package/dist/components/_filter-buttons.scss +0 -116
  17. package/dist/components/_flyout.scss +0 -75
  18. package/dist/components/_form-booleans.scss +0 -182
  19. package/dist/components/_form-character-count.scss +0 -21
  20. package/dist/components/_form-container.scss +0 -111
  21. package/dist/components/_form-elements.scss +0 -40
  22. package/dist/components/_form-field-details.scss +0 -19
  23. package/dist/components/_form-hints.scss +0 -22
  24. package/dist/components/_form-input-composite.scss +0 -312
  25. package/dist/components/_form-input-phone.scss +0 -21
  26. package/dist/components/_form-input-search.scss +0 -74
  27. package/dist/components/_form-labels.scss +0 -40
  28. package/dist/components/_form-switches.scss +0 -154
  29. package/dist/components/_form-text-fields.scss +0 -205
  30. package/dist/components/_horizontal-navigation-mobile.scss +0 -238
  31. package/dist/components/_horizontal-navigation.scss +0 -220
  32. package/dist/components/_inline-tabs.scss +0 -86
  33. package/dist/components/_loader.scss +0 -105
  34. package/dist/components/_modal.scss +0 -185
  35. package/dist/components/_overlay.scss +0 -34
  36. package/dist/components/_pagination.scss +0 -85
  37. package/dist/components/_pills.scss +0 -224
  38. package/dist/components/_profile-details.scss +0 -44
  39. package/dist/components/_profile-img.scss +0 -73
  40. package/dist/components/_profile-layout.scss +0 -29
  41. package/dist/components/_spinner.scss +0 -95
  42. package/dist/components/_tab-list.scss +0 -151
  43. package/dist/components/_table.scss +0 -331
  44. package/dist/components/_tables.scss +0 -84
  45. package/dist/components/_timeline.scss +0 -122
  46. package/dist/components/_toast.scss +0 -149
  47. package/dist/components/_toaster.scss +0 -27
  48. package/dist/components/_tooltip.scss +0 -179
  49. package/dist/components/_vertical-navigation.scss +0 -280
  50. package/dist/components/accordions.css +0 -118
  51. package/dist/components/alert.css +0 -139
  52. package/dist/components/badge.css +0 -91
  53. package/dist/components/banner.css +0 -64
  54. package/dist/components/buttons.css +0 -285
  55. package/dist/components/chart.css +0 -165
  56. package/dist/components/circle-buttons.css +0 -227
  57. package/dist/components/dropdown-options.css +0 -232
  58. package/dist/components/dropdown.css +0 -185
  59. package/dist/components/empty-state.css +0 -95
  60. package/dist/components/filter-buttons.css +0 -112
  61. package/dist/components/flyout.css +0 -71
  62. package/dist/components/form-booleans.css +0 -178
  63. package/dist/components/form-character-count.css +0 -17
  64. package/dist/components/form-container.css +0 -108
  65. package/dist/components/form-elements.css +0 -36
  66. package/dist/components/form-field-details.css +0 -15
  67. package/dist/components/form-hints.css +0 -18
  68. package/dist/components/form-input-composite.css +0 -308
  69. package/dist/components/form-input-phone.css +0 -17
  70. package/dist/components/form-input-search.css +0 -70
  71. package/dist/components/form-labels.css +0 -36
  72. package/dist/components/form-switches.css +0 -150
  73. package/dist/components/form-text-fields.css +0 -201
  74. package/dist/components/horizontal-navigation-mobile.css +0 -234
  75. package/dist/components/horizontal-navigation.css +0 -216
  76. package/dist/components/inline-tabs.css +0 -83
  77. package/dist/components/loader.css +0 -101
  78. package/dist/components/modal.css +0 -181
  79. package/dist/components/overlay.css +0 -30
  80. package/dist/components/pagination.css +0 -81
  81. package/dist/components/pills.css +0 -220
  82. package/dist/components/profile-details.css +0 -40
  83. package/dist/components/profile-img.css +0 -69
  84. package/dist/components/profile-layout.css +0 -25
  85. package/dist/components/spinner.css +0 -91
  86. package/dist/components/tab-list.css +0 -147
  87. package/dist/components/table.css +0 -327
  88. package/dist/components/tables.css +0 -80
  89. package/dist/components/timeline.css +0 -118
  90. package/dist/components/toast.css +0 -145
  91. package/dist/components/toaster.css +0 -23
  92. package/dist/components/tooltip.css +0 -175
  93. package/dist/components/vertical-navigation.css +0 -276
  94. package/dist/wwt-bsds-wc-base.css +0 -1129
@@ -1,331 +0,0 @@
1
- @mixin table() {
2
- /* ------ WRAPPER ------ */
3
-
4
- .bs-table-wrap {
5
- display: flex;
6
- flex-direction: column;
7
- overflow: hidden;
8
- }
9
-
10
- :where(.bs-table-wrap) {
11
- font-size: var(--bs-text-sm);
12
- color: var(--bs-table-cell-ink, var(--bs-ink-light));
13
- border-radius: var(--bs-space-2);
14
- border: 1px solid var(--bs-border-base);
15
- }
16
-
17
- :where(.bs-table-wrap-header, .bs-table-wrap-footer) {
18
- padding-block: var(--bs-space-3);
19
- padding-inline: var(--bs-table-cell-padding);
20
- background: var(--bs-bg-medium);
21
- border-color: inherit;
22
- }
23
-
24
- :where(.bs-table-wrap-header) {
25
- border-bottom-width: 1px;
26
- }
27
-
28
- :where(.bs-table-wrap-footer) {
29
- border-top-width: 1px;
30
- }
31
-
32
-
33
- /* ------ TABLE ------ */
34
-
35
- .bs-table-scroll-wrap {
36
- flex: 1;
37
- border-color: inherit;
38
- overflow: auto;
39
- overscroll-behavior: none;
40
- }
41
-
42
- .bs-table {
43
- display: grid;
44
- grid-template-columns: var(--bs-table-col-widths);
45
- }
46
-
47
- :where(.bs-table) {
48
- border-color: inherit;
49
- }
50
-
51
- /* ------ HEADER ROWGROUP ------ */
52
-
53
- .bs-table-header-rowgroup {
54
- grid-column: 1 / -1;
55
- grid-row: span var(--bs-table-header-row-count);
56
- display: grid;
57
- grid-template-columns: subgrid;
58
- grid-template-rows: subgrid;
59
- border-color: inherit;
60
- }
61
-
62
- .bs-table-header-rowgroup-freeze {
63
- position: sticky;
64
- top: 0;
65
- z-index: 2;
66
-
67
- .bs-table:not(.bs-table-border-none) & {
68
- box-shadow: 0 3px 0 rgba(0, 0, 0, .03);
69
- }
70
- }
71
-
72
- /* ------ BODY ROWGROUP ------ */
73
-
74
- .bs-table-body-rowgroup {
75
- grid-column: 1 / -1;
76
- grid-row: span var(--bs-table-body-row-count);
77
- display: grid;
78
- grid-template-columns: subgrid;
79
- grid-template-rows: subgrid;
80
- border-color: inherit;
81
- }
82
-
83
- /* ------ FOOTER ROWGROUP ------ */
84
-
85
- .bs-table-footer-rowgroup {
86
- grid-column: 1 / -1;
87
- grid-row: span var(--bs-table-footer-row-count);
88
- display: grid;
89
- grid-template-columns: subgrid;
90
- grid-template-rows: subgrid;
91
- border-color: inherit;
92
- }
93
-
94
- .bs-table-footer-rowgroup-freeze {
95
- position: sticky;
96
- bottom: 0;
97
- z-index: 2;
98
-
99
- .bs-table:not(.bs-table-border-none) & {
100
- box-shadow: 0 -3px 0 rgba(0, 0, 0, .03);
101
- }
102
- }
103
-
104
- /* ------ ROWS ------ */
105
-
106
- .bs-table-row {
107
- grid-column: 1 / -1;
108
- }
109
-
110
- :where(.bs-table-row) {
111
- background: var(--bs-bg-base);
112
- border-color: inherit;
113
- }
114
-
115
- :where(.bs-table-header-rowgroup .bs-table-row) {
116
- background: var(--bs-bg-light);
117
- }
118
-
119
- :where(.bs-table-row:has(.bs-table-head-cell, .bs-table-cell)) {
120
- display: grid;
121
- grid-template-columns: subgrid;
122
- }
123
-
124
- /* ------ FROZEN COLS ------ */
125
-
126
- .bs-table-cols-frozen-left {
127
- position: sticky;
128
- left: 0;
129
- grid-column: span var(--bs-table-frozen-left-count);
130
- display: grid;
131
- grid-template-columns: subgrid;
132
- background: inherit;
133
- border-color: inherit;
134
- z-index: 1;
135
-
136
- .bs-table:not(.bs-table-border-none) & {
137
- box-shadow: 3px 0 0 rgba(0, 0, 0, .03);
138
- }
139
- }
140
-
141
- .bs-table-cols-frozen-right {
142
- position: sticky;
143
- right: 0;
144
- grid-column: span var(--bs-table-frozen-right-count);
145
- display: grid;
146
- grid-template-columns: subgrid;
147
- background: inherit;
148
- border-color: inherit;
149
- z-index: 1;
150
-
151
- .bs-table:not(.bs-table-border-none) & {
152
- box-shadow: -3px 0 0 rgba(0, 0, 0, .03);
153
- }
154
- }
155
-
156
- /* ------ CELLS ------ */
157
-
158
- :where(.bs-table-head-cell) {
159
- color: var(--bs-table-head-cell-ink, var(--bs-ink-base));
160
- font-weight: var(--bs-font-bold);
161
- border-color: inherit;
162
- }
163
-
164
- /* Couldn't use :where due to Blue Steel reset styles on <button> imposing font-size.
165
- Adding inherit in case consumer does custom header cell styles */
166
- .bs-table-head-cell .bs-sort-toggle {
167
- font-size: inherit;
168
- font-weight: var(--bs-font-bold);
169
- color: inherit;
170
- line-height: inherit;
171
- letter-spacing: inherit;
172
- }
173
-
174
- :where(.bs-table-cell) {
175
- border-color: inherit;
176
- }
177
-
178
- /* ------ PROP: CELL-PADDING ------ */
179
-
180
- :root {
181
- --bs-table-cell-padding-xs: var(--bs-space-2);
182
- --bs-table-cell-padding-sm: var(--bs-space-3);
183
- --bs-table-cell-padding-md: var(--bs-space-4);
184
- --bs-table-cell-padding-lg: var(--bs-space-6);
185
- --bs-table-cell-padding-xl: var(--bs-space-8);
186
- }
187
-
188
- :where(.bs-table-head-cell, .bs-table-cell) {
189
- padding: var(--bs-table-cell-padding);
190
- }
191
-
192
- /* ------ PROP: TRUNCATE ------ */
193
-
194
- :where(.bs-table-truncate):where(.bs-table-head-cell, .bs-table-cell) {
195
- overflow: hidden;
196
- text-overflow: ellipsis;
197
- white-space: nowrap;
198
- }
199
-
200
-
201
- /* ------ PROP: STRIPED ROWS ------ */
202
-
203
- :where(.bs-table-striped .bs-table-body-rowgroup .bs-table-row:nth-child(even)) {
204
- background: var(--bs-bg-light);
205
- }
206
-
207
-
208
- /* ------ PROP: ROW HOVER ------ */
209
-
210
- :where(.bs-table-row-hover .bs-table-body-rowgroup .bs-table-row:hover) {
211
- background: var(--bs-table-row-hover, var(--bs-bg-light));
212
- transition: background-color 200ms;
213
- }
214
-
215
-
216
- /* ------ PROP: BORDERS ------ */
217
-
218
- /* -- borders="rows" -- */
219
- :where(.bs-table-border-rows) :where(.bs-table-row) {
220
- border-bottom-width: 1px;
221
- }
222
-
223
- /* -- borders="cols" -- */
224
- /* setting following cell's left border instead of each cell's right, so Table's left/right border is easier for consumer to override with utility classes */
225
- :where(.bs-table-border-cols) :where(.bs-table-head-cell + .bs-table-head-cell, .bs-table-cell + .bs-table-cell) {
226
- border-left-width: 1px;
227
- }
228
-
229
- .bs-table-border-cols .bs-table-header-rowgroup {
230
- border-bottom-width: 1px;
231
- }
232
-
233
- /* -- borders="grid" -- */
234
- :where(.bs-table-border-grid) :where(.bs-table-row) {
235
- border-bottom-width: 1px;
236
- }
237
-
238
- /* setting following cell's left border instead of each cell's right, so Table's left/right border is easier for consumer to override with utility classes */
239
- :where(.bs-table-border-grid) :where(.bs-table-head-cell + .bs-table-head-cell, .bs-table-cell + .bs-table-cell) {
240
- border-left-width: 1px;
241
- }
242
-
243
- /* -- borders="frozen" -- */
244
- .bs-table-border-frozen .bs-table-header-rowgroup-freeze {
245
- border-bottom-width: 1px;
246
- }
247
-
248
- /* -- frozen col and footer-rowgroup sections will always show border, unless borders="none" -- */
249
- /* (header-rowgroup is not included below since TableRow bottom border covers most cases) */
250
- .bs-table:not(.bs-table-border-none) .bs-table-cols-frozen-left {
251
- border-right-width: 1px;
252
- }
253
-
254
- .bs-table:not(.bs-table-border-none) .bs-table-cols-frozen-right {
255
- border-left-width: 1px;
256
- }
257
-
258
- .bs-table:not(.bs-table-border-none) .bs-table-footer-rowgroup-freeze {
259
- border-top-width: 1px;
260
- }
261
-
262
- /* turn off last row's bottom border, since it would double-up with Table's border */
263
- :where(.bs-table-body-rowgroup, .bs-table-footer-rowgroup) .bs-table-row:last-of-type {
264
- border-bottom-width: 0;
265
- }
266
-
267
-
268
- /* ------ TABLE COLUMN RESIZER ------ */
269
-
270
- .bs-table-col-resizer {
271
- position: fixed; /* fixed instead of absolute, due to using coordinates from .getBoundingClientRect() */
272
- top: 0;
273
- left: -8px;
274
- bottom: 0;
275
- width: 15px; /* includes 5px resizer handle width + 5px of extra hover target area on left and right of handle */
276
- cursor: col-resize;
277
- touch-action: none;
278
- z-index: var(--bs-table-col-resizer-z, 10);
279
- transform: translate(var(--bs-table-col-resizer-x), var(--bs-table-col-resizer-y));
280
-
281
- /* resizer handle and vertical line set-up */
282
- &:before,
283
- &::after {
284
- content: "";
285
- position: absolute;
286
- top: 0;
287
- left: 0;
288
- background: var(--bs-table-col-resizer-color, var(--bs-blue-base));
289
- }
290
-
291
- /* resizer handle */
292
- &::after {
293
- left: 5px;
294
- width: 5px;
295
- height: var(--bs-table-col-resizer-handle-height);
296
- }
297
-
298
- /* resizer vertical line/tail */
299
- &::before {
300
- left: 7px;
301
- width: 1px;
302
- height: var(--bs-table-col-resizer-tail-height);
303
- display: none;
304
- }
305
-
306
- &.bs-table-col-resizer-active::before {
307
- display: block;
308
- }
309
- }
310
-
311
- /* ------ SORT TOGGLE ------ */
312
-
313
- /* Override Blue Steel CSS: It adds "relative" to buttons by default, which was causing an overlap issue when a Table with frozen, sortable cols scrolled horizontally */
314
- .bs-sort-toggle {
315
- position: static;
316
- }
317
-
318
- /* Using :where to lower specificity so consumers can use utility classes to override */
319
- :where(.bs-sort-toggle) {
320
- display: inline-flex;
321
- align-items: center;
322
- gap: var(--bs-space-2);
323
- cursor: pointer;
324
- }
325
-
326
- :where(.bs-sort-toggle .bs-icon) {
327
- flex-shrink: 0;
328
- }
329
-
330
- }
331
-
@@ -1,84 +0,0 @@
1
- @mixin tables() {
2
- table {
3
- border-collapse: collapse;
4
- border-spacing: 0;
5
- overflow-x: auto;
6
- max-width: 100%;
7
- width: 100%;
8
- }
9
- thead {
10
- color: var(--bs-ink-base);
11
- font-size: var(--bs-font-base);
12
- font-weight: 600;
13
- }
14
- tbody {
15
- color: var(--bs-ink-light);
16
- }
17
- th {
18
- background: var(--bs-bg-base);
19
- }
20
- th, td {
21
- border-bottom: 1px solid var(--bs-border);
22
- min-width: fit-content;
23
- padding: var(--bs-space-2);
24
- text-align: left;
25
- }
26
-
27
- /* Table Borders */
28
- table[data-borders^="none"] {
29
- border: 0;
30
- }
31
- table[data-borders^="all"] :where(th, td) {
32
- border-left: 1px solid var(--bs-border);
33
- }
34
- table[data-borders^="all"] :where(th, td):last-child {
35
- border-right: 1px solid var(--bs-border);
36
- }
37
- table[data-borders^="all"] th {
38
- border-top: 1px solid var(--bs-border);
39
- }
40
-
41
- /* Table Rows */
42
- table:where([data-rows^="striped"]) tbody > tr:nth-child(even) {
43
- background-color: var(--bs-bg-medium);
44
- }
45
-
46
- /* Table Cells */
47
- table[data-cells^="fixed"] {
48
- table-layout: fixed;
49
- }
50
- table:where([data-cells^="height"]) td {
51
- height: 4.5rem;
52
- vertical-align: middle;
53
- }
54
-
55
- /* Sticky Header */
56
- table:where([data-sticky]) {
57
- isolation: isolate;
58
- }
59
- table:where([data-sticky^="top"]) td {
60
- z-index: 1;
61
- }
62
- table:where([data-sticky^="top"]) {
63
- border-collapse: separate;
64
- overflow-y: unset; /* Will break sticky headers if removed */
65
- position: relative;
66
- }
67
- table:where([data-sticky^="left"]) {
68
- border-collapse: separate;
69
- overflow-x: unset; /* Will break sticky headers if removed */
70
- position: relative;
71
- }
72
- table:where([data-sticky^="top"]) th {
73
- position: sticky;
74
- top: var(--bs-content-top);
75
- z-index: 2;
76
- }
77
- table:where([data-sticky^="left"]) :is(td:first-child, th:first-child) {
78
- position: sticky;
79
- left: 0;
80
- z-index: 2;
81
- }
82
-
83
- }
84
-
@@ -1,122 +0,0 @@
1
- @mixin timeline() {
2
- .bs-progress-bar, .bs-timeline {
3
- background-color: var(--bs-bg-base);
4
- display: flex;
5
- position: relative;
6
- }
7
-
8
- .bs-progress-bar {
9
- gap: .25rem;
10
- }
11
-
12
- /* ------------ Step Item ------------ */
13
-
14
- :is(.bs-progress-bar, .bs-timeline) :where(.bs-step-item) {
15
- background-color: var(--step-bg, inherit);
16
- flex-grow: 1;
17
- flex-shrink: 0;
18
- position: relative;
19
- }
20
-
21
- /* -- Step Items in Timeline -- */
22
-
23
- .bs-timeline :where(.bs-step-item) {
24
- align-items: center;
25
- color: var(--step-color, var(--bs-ink-light));
26
- display: flex;
27
- flex-direction: column;
28
- padding-inline: 1rem;
29
- row-gap: 0.5rem;
30
- }
31
-
32
- .bs-timeline :where(.bs-step-item *) {
33
- text-wrap: nowrap;
34
- }
35
-
36
- .bs-timeline :where(.bs-step-item .bs-step-icon) {
37
- background-color: inherit;
38
- height: 1.5rem;
39
- text-align: center;
40
- width: 1.5rem;
41
- z-index: 10;
42
- }
43
-
44
- .bs-timeline :where(.bs-step-item)::after {
45
- border-top: 0.125rem solid var(--bs-border-base);
46
- content: '';
47
- display: block;
48
- position: absolute;
49
- top: 0.75rem;
50
- width: 100%;
51
- }
52
-
53
- /* -- Step Items in Progress Bar -- */
54
-
55
- .bs-progress-bar :where(.bs-step-item) {
56
- --step-bg: var(--progress-step-bg, var(--bs-bg-disabled));
57
- height: .25rem;
58
- }
59
-
60
- .bs-progress-bar :where(.bs-step-item > *) {
61
- border: 0;
62
- clip: rect(0 0 0 0);
63
- height: 1px;
64
- margin: 0;
65
- overflow: hidden;
66
- padding: 0;
67
- position: absolute;
68
- white-space: nowrap;
69
- width: 1px;
70
- }
71
-
72
-
73
-
74
- /* ------------ Status colors ------------ */
75
- .bs-timeline :where(.bs-step-item[data-status="in-progress"]) {
76
- --step-color: var(--bs-ink-base);
77
- --progress-step-bg: var(--bs-purple-light);
78
- }
79
-
80
- .bs-progress-bar :where(.bs-step-item[data-status="not-started"]) {
81
- --step-color: var(--bs-ink-light);
82
- --progress-step-bg: var(--bs-gray-light);
83
- }
84
-
85
- .bs-progress-bar :where(.bs-step-item[data-status="in-progress"]),
86
- .bs-progress-bar :where(.bs-step-item[data-status="complete"]),
87
- .bs-progress-bar :where(.bs-step-item[data-status="paused"]),
88
- .bs-progress-bar :where(.bs-step-item[data-status="ongoing"]) {
89
- --step-color: var(--bs-ink-plum);
90
- --progress-step-bg: var(--bs-plum-medium);
91
- }
92
-
93
- .bs-timeline :where(.bs-step-item[data-status="complete"]),
94
- .bs-timeline :where(.bs-step-item[data-status="paused"]),
95
- .bs-timeline :where(.bs-step-item[data-status="ongoing"]) {
96
- --step-color: var(--bs-ink-purple);
97
- --progress-step-bg: var(--bs-purple-medium);
98
- }
99
-
100
- :is(.bs-progress-bar, .bs-timeline) :where(.bs-step-item[data-status="base"]) {
101
- --progress-step-bg: var(--bs-purple-base);
102
- }
103
-
104
- .bs-timeline :where(.bs-step-item[data-status="warning"]) {
105
- --step-color: var(--bs-ink-orange);
106
- --progress-step-bg: var(--bs-orange-base);
107
- }
108
-
109
- .bs-progress-bar :where(.bs-step-item[data-status="warning"]) {
110
- --step-color: var(--bs-warning);
111
- --progress-step-bg: var(--bs-warning);
112
- }
113
-
114
- :is(.bs-progress-bar, .bs-timeline) :where(.bs-step-item[data-status="error"]),
115
- :is(.bs-progress-bar, .bs-timeline) :where(.bs-step-item[data-status="cancelled"]) {
116
- --step-color: var(--bs-ink-red);
117
- --progress-step-bg: var(--bs-red-base);
118
- }
119
-
120
-
121
- }
122
-
@@ -1,149 +0,0 @@
1
- @mixin toast() {
2
- /* Base Toast Styles */
3
- .bs-toast {
4
- --toast-transform: translate(0, calc(100% + 1.5rem));
5
-
6
- background-color: var(--bs-bg-base-elevated);
7
- border-top: 4px solid var(--bs-blue-base);
8
- bottom: 1.5rem;
9
- box-shadow: var(--bs-shadow-contentMedium);
10
- left: 0;
11
- margin-left: 1.5rem;
12
- margin-right: 1.5rem;
13
- opacity: 0;
14
- position: fixed;
15
- right: 0;
16
- transform: var(--toast-transform);
17
- transition-duration: 200ms;
18
- transition-property: transform, opacity;
19
- transition-timing-function: ease;
20
- /* Clamp width for mobile -> full screen */
21
- width: clamp(17rem, calc(100vw - 3rem), 25rem);
22
- z-index: 999;
23
- }
24
-
25
- .bs-toast:where([data-stacked]:not([data-stacked="false"])) {
26
- bottom: auto;
27
- left: auto;
28
- position: static;
29
- right: auto;
30
- z-index: auto;
31
- }
32
-
33
- /* Mobile - Toast comes up from bottom */
34
- .bs-toast:where([data-shown]:not([data-shown="false"])) {
35
- opacity: 1;
36
- transform: translate(0, 0);
37
- }
38
-
39
- .bs-toast-header {
40
- align-items: center;
41
- color: var(--bs-ink-base);
42
- display: flex;
43
- gap: 0.5rem;
44
- padding: 1rem;
45
- }
46
-
47
- .bs-toast-header :where(.bs-toast-header-icon) {
48
- color: var(--bs-blue-base);
49
- }
50
-
51
- .bs-toast-header :where(h5) {
52
- font-weight: 400;
53
- }
54
-
55
- .bs-toast-body {
56
- border-bottom: 1px solid var(--bs-border);
57
- color: var(--bs-ink-light);
58
- padding-bottom: 1rem;
59
- padding-left: 1rem;
60
- padding-right: 1rem;
61
- }
62
-
63
- .bs-toast-actions {
64
- /* Mobile - Buttons will be stacked */
65
- display: flex;
66
- flex-direction: row;
67
- gap: 1rem;
68
- justify-content: flex-end;
69
- padding-bottom: 0.5rem;
70
- padding-left: 1rem;
71
- padding-right: 1rem;
72
- padding-top: 0.5rem;
73
- }
74
-
75
- .bs-toast-actions:where([data-stacked]:not([data-stacked="false"])) {
76
- flex-direction: column-reverse;
77
- }
78
-
79
- /* Warning Toast Styles */
80
- .bs-toast:where([data-variant^='warning']) {
81
- border-top: 4px solid var(--bs-orange-warning);
82
- }
83
-
84
- .bs-toast:where([data-variant^='warning']) :where(.bs-toast-header .bs-toast-header-icon) {
85
- color: var(--bs-orange-warning);
86
- }
87
-
88
- /* Positive Toast Styles */
89
- .bs-toast:where([data-variant^='positive']) {
90
- border-top: 4px solid var(--bs-purple-400);
91
- }
92
-
93
- .bs-toast:where([data-variant^='positive']) :where(.bs-toast-header .bs-toast-header-icon) {
94
- color: var(--bs-purple-400);
95
- }
96
-
97
- :where(.dark) .bs-toast:where([data-variant^='positive']) {
98
- border-top: 4px solid var(--bs-purple-200);
99
- }
100
-
101
- :where(.dark) .bs-toast:where([data-variant^='positive']) :where(.bs-toast-header .bs-toast-header-icon) {
102
- color: var(--bs-purple-200);
103
- }
104
-
105
- /* Negative Toast Styles */
106
- .bs-toast:where([data-variant^='negative']) {
107
- border-top: 4px solid var(--bs-red-400);
108
- }
109
-
110
- .bs-toast:where([data-variant^='negative']) :where(.bs-toast-header .bs-toast-header-icon) {
111
- color: var(--bs-red-400);
112
- }
113
-
114
- @media (min-width: 440px) {
115
- .bs-toast {
116
- --toast-transform: translate(calc(100% + 1.5rem), 0);
117
-
118
- left: auto;
119
- margin-left: 0;
120
- margin-right: 0;
121
- opacity: 0;
122
- right: 1.5rem;
123
- }
124
-
125
- .bs-toast:where([data-shown]:not([data-shown="false"])) {
126
- opacity: 1;
127
- transform: translate(0, 0);
128
- }
129
-
130
- .bs-toast-actions:where([data-stacked]:not([data-stacked="false"])) {
131
- flex-direction: row;
132
- }
133
- }
134
-
135
- /* Vue Transition Styles - Only used in Vue component */
136
- .bs-toast:where(.bs-toast-enter-from),
137
- .bs-toast:where(.bs-toast-leave-to) {
138
- opacity: 0;
139
- transform: var(--toast-transform);
140
- }
141
-
142
- .bs-toast:where(.bs-toast-enter-to),
143
- .bs-toast:where(.bs-toast-leave-from) {
144
- opacity: 1;
145
- transform: translate(0, 0);
146
- }
147
-
148
- }
149
-
@@ -1,27 +0,0 @@
1
- @mixin toaster() {
2
- /* Container for holding all toasts that will be visible */
3
- .bs-toaster {
4
- /* Mobile - Center the toasts on the screen */
5
- align-items: center;
6
- bottom: 1.5rem;
7
- display: flex;
8
- flex-direction: column-reverse;
9
- gap: 0.5rem;
10
- left: 0;
11
- position: fixed;
12
- right: 0;
13
- z-index: 999;
14
- }
15
-
16
- @media (min-width: 440px) {
17
-
18
- .bs-toaster {
19
- /* Non-mobile - Toasts will live on right side of the screen */
20
- left: auto;
21
- right: 1.5rem;
22
- }
23
-
24
- }
25
-
26
- }
27
-