@wwtdev/bsds-css 2.29.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 +2182 -1460
  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 -216
  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 -183
  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 -212
  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 -179
  93. package/dist/components/vertical-navigation.css +0 -276
  94. package/dist/wwt-bsds-wc-base.css +0 -1129
@@ -1,205 +0,0 @@
1
- @mixin form-text-fields() {
2
- :where(label + input, label > input):where(:not([type='checkbox'], [type='radio'])),
3
- :where(label + textarea, label > textarea),
4
- :where(label + select, label > select) {
5
- margin-top: 0.25rem;
6
- }
7
-
8
- /*
9
- Custom properties:
10
- --input-bg (background color)
11
- --input-border (border color)
12
- --input-border-width (border width)
13
- --input-caret (caret color)
14
- --input-padding-block (padding block)
15
- --input-padding-inline (padding inline)
16
- --input-placeholder (placeholder color)
17
- --input-text-size (font size)
18
- */
19
-
20
- input:where(:not([type='checkbox'], [type='radio'], [type='file'], [type='range'])),
21
- textarea,
22
- select,
23
- :is(.bs-input, .bs-select, .bs-textarea) {
24
- appearance: none;
25
- background-color: var(--input-bg, var(--bs-bg-base));
26
- border-color: var(--input-border, var(--bs-border-input));
27
- border-radius: 0.25rem;
28
- border-style: solid;
29
- border-width: var(--input-border-width, 1px);
30
- caret-color: var(--input-caret, var(--bs-blue-base));
31
- color: var(--bs-ink-base);
32
- font-size: var(--input-text-size, var(--bs-text-base));
33
- font-weight: 400;
34
- height: 2.5rem;
35
- line-height: var(--bs-leading-base);
36
- padding-block: var(--input-padding-block, 0.0625rem);
37
- padding-inline: var(--input-padding-inline, 0.75rem);
38
- }
39
-
40
- :where(.dark) input:where(:not([type='checkbox'], [type='radio'], [type='file'], [type='range'])),
41
- :where(.dark) textarea,
42
- :where(.dark) select,
43
- :where(.dark) :is(.bs-input, .bs-select, .bs-textarea) {
44
- --input-bg: transparent;
45
- }
46
-
47
- input:where(:not([type='checkbox'], [type='radio'], [type='file'], [type='range'])),
48
- textarea,
49
- select,
50
- :is(.bs-input, .bs-select, .bs-textarea) {
51
- width: 100%;
52
- }
53
-
54
- input:where([type='text'], [type='email'], [type='url']),
55
- select,
56
- .bs-input:where([type='text'], [type='email'], [type='url']),
57
- :is(.bs-input, .bs-select, .bs-textarea) {
58
- text-overflow: ellipsis;
59
- }
60
-
61
- .bs-textarea,
62
- textarea {
63
- height: auto;
64
- padding-block: 0.5rem;
65
- resize: vertical;
66
- }
67
-
68
- :is(input, textarea, select)::placeholder,
69
- :is(.bs-input, .bs-select, .bs-textarea)::placeholder,
70
- :is(.bs-input, .bs-select, .bs-textarea):where([data-placeholder="true"]) {
71
- color: var(--input-placeholder, var(--bs-violet-100));
72
- }
73
-
74
- :where(.dark) :is(input, textarea, select)::placeholder,
75
- :where(.dark) :is(.bs-input, .bs-select, .bs-textarea)::placeholder,
76
- :where(.dark) :is(.bs-input, .bs-select, .bs-textarea):where([data-placeholder="true"]) {
77
- --input-placeholder: var(--bs-violet-200);
78
- }
79
-
80
- :is(input, textarea, select):where(:focus-visible)::placeholder,
81
- :is(.bs-input, .bs-select, .bs-textarea):where(:focus-visible)::placeholder {
82
- opacity: 0;
83
- }
84
-
85
- /* FOCUS state */
86
- :is(input:where(:not([type='checkbox'], [type='radio'])), textarea, select):where(:focus-visible),
87
- :is(.bs-input, .bs-select, .bs-textarea):where(:focus-visible),
88
- :is(select, .bs-select):where(:focus) {
89
- --input-border: var(--bs-blue-base);
90
- outline-style: none;
91
- outline-width: 0px;
92
- }
93
-
94
- /* OPEN state */
95
- :is(select, .bs-select):where(:open) {
96
- background: var(--bs-bg-base-to-light);
97
- }
98
-
99
- /* DISABLED state */
100
- :is(input:where(:not([type='checkbox'],[type='radio'])), textarea, select):where(:disabled),
101
- :is(.bs-input, .bs-select, .bs-textarea):where(:disabled) {
102
- --input-border: var(--bs-ink-disabled);
103
- --input-bg: var(--bs-bg-disabled);
104
- color: var(--bs-ink-disabled);
105
- }
106
-
107
- /* Text inputs should not have a border when disabled */
108
- :is(input:where(:not([type]),[type="text"],[type="number"],[type="email"],[type="password"],[type="url"])):where(:disabled),
109
- textarea:where(:disabled),
110
- select:where(:disabled),
111
- :is(.bs-input, .bs-select, .bs-textarea):where(:disabled) {
112
- --input-border-width: 0px;
113
- }
114
-
115
- /* Errors and Messages */
116
- :is(input, select, textarea):where([data-error]:not([data-error="false"])),
117
- :is(.bs-input, .bs-select, .bs-textarea):where([data-error="true"]) {
118
- --input-border: var(--bs-ink-red);
119
- }
120
-
121
- /*
122
- Removes the built-in 'margin' on bottom of textarea
123
- see https://bugs.chromium.org/p/chromium/issues/detail?id=89530
124
- */
125
- :has(> textarea:only-child),
126
- :has(> .bs-textarea:only-child) {
127
- display: block;
128
- line-height: 0;
129
- }
130
-
131
- /* chrome user agent styling was applying opacity: 0.7 */
132
- :where(select:disabled) {
133
- opacity: 1;
134
- }
135
-
136
- :is(input, textarea, select):disabled::placeholder,
137
- :is(input, textarea, select)[disabled]::placeholder,
138
- :is(.bs-input, .bs-textarea, .bs-select):disabled::placeholder,
139
- :is(.bs-input, .bs-textarea, .bs-select)[disabled]::placeholder {
140
- opacity: 0;
141
- }
142
-
143
- /* Select */
144
-
145
- select,
146
- .bs-select {
147
- /* URL Encoded SVG dropdown caret so there is something there */
148
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3E%3Cpath fill='%230A0B19' d='M8.048 13.375a.745.745 0 0 1-.526-.217L0 5.686l1.053-1.061 6.995 6.95 6.897-6.85 1.053 1.06-7.423 7.373a.745.745 0 0 1-.527.217Z'/%3E%3C/svg%3E");
149
- background-position: right 0.75rem center;
150
- background-repeat: no-repeat;
151
- background-size: 1em 1em;
152
- padding-right: var(--bs-space-9);
153
- }
154
- select[multiple],
155
- .bs-select[multiple] {
156
- background-image: none;
157
- height: auto;
158
- }
159
-
160
- :where(.dark) select,
161
- :where(.dark) .bs-select {
162
- /* URL Encoded SVG dropdown caret so there is something there */
163
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3E%3Cpath fill='%23ffffff' d='M8.048 13.375a.745.745 0 0 1-.526-.217L0 5.686l1.053-1.061 6.995 6.95 6.897-6.85 1.053 1.06-7.423 7.373a.745.745 0 0 1-.527.217Z'/%3E%3C/svg%3E");
164
- }
165
-
166
- :where(.dark) select:where(:disabled),
167
- :where(.dark) .bs-select:where(:disabled) {
168
- /* URL Encoded SVG dropdown caret so there is something there */
169
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3E%3Cpath fill='%23555775' d='M8.048 13.375a.745.745 0 0 1-.526-.217L0 5.686l1.053-1.061 6.995 6.95 6.897-6.85 1.053 1.06-7.423 7.373a.745.745 0 0 1-.527.217Z'/%3E%3C/svg%3E");
170
- }
171
-
172
- /* Allows for styling a button to look like a select input */
173
- :where(button).bs-select {
174
- align-items: center;
175
- /* Remove this for buttons since they will have the caret added */
176
- background-image: none;
177
- cursor: pointer;
178
- display: flex;
179
- padding-right: var(--input-padding-inline, 0.75rem);
180
- }
181
-
182
- :where(.dark) :where(button).bs-select,
183
- :where(.dark) :where(button).bs-select:where(:disabled) {
184
- background-image: none;
185
- }
186
-
187
- :where(button).bs-select :where(*:first-child) {
188
- flex-grow: 1;
189
- text-align: left;
190
- }
191
-
192
- :where(button).bs-select :where(.bs-icon) {
193
- color: var(--bs-ink-base);
194
- transform: none;
195
- transition-duration: 200ms;
196
- transition-property: transform;
197
- transition-timing-function: ease-in-out;
198
- }
199
-
200
- :where(button).bs-select:where([data-open="true"]) :where(.bs-icon) {
201
- transform: rotate(180deg);
202
- }
203
-
204
- }
205
-
@@ -1,238 +0,0 @@
1
- @mixin horizontal-navigation-mobile() {
2
- .bs-horizontal-nav-mobile {
3
- --bg-color: var(--bs-bg-light);
4
- --top-offset: 48px;
5
- display: flex;
6
- flex-direction: column;
7
- left: 0;
8
- position: fixed;
9
- right: 0;
10
- top: var(--top-offset);
11
- z-index: 1000;
12
- }
13
-
14
- @media (min-width: 1166px) {
15
- .bs-horizontal-nav-mobile {
16
- display: none;
17
- }
18
- }
19
-
20
- /* ===== Toggle ===== */
21
- .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-toggle) {
22
- align-items: center;
23
- background-color: var(--bs-bg-light);
24
- color: var(--bs-ink-light);
25
- cursor: pointer;
26
- display: flex;
27
- height: var(--bs-horizontal-nav-height);
28
- justify-content: space-between;
29
- padding-bottom: 0.5rem;
30
- padding-left: 2.25rem;
31
- padding-right: 2.25rem;
32
- padding-top: 0.5rem;
33
- width: 100%;
34
- }
35
-
36
- .bs-horizontal-nav-mobile:where([data-hide-toggle="true"]) :where(.bs-horizontal-nav-mobile-toggle) {
37
- display: none;
38
- }
39
-
40
- .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-toggle-title) {
41
- align-items: center;
42
- display: flex;
43
- gap: 0.5rem;
44
- }
45
-
46
- .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-toggle-title-icon) {
47
- color: var(--bs-ink-blue);
48
- height: 1rem;
49
- width: 1rem;
50
- }
51
-
52
- .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-toggle-caret) {
53
- height: 0.75rem;
54
- transform: none;
55
- transition-duration: 0.2s;
56
- transition-property: transform;
57
- transition-timing-function: ease-in-out;
58
- width: 0.75rem;
59
- }
60
-
61
- .bs-horizontal-nav-mobile:where([data-shown="true"]) :where(.bs-horizontal-nav-mobile-toggle-caret) {
62
- transform: rotate(180deg);
63
- }
64
-
65
- /* ===== Nav Menu Container ===== */
66
- .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-menu) {
67
- -ms-overflow-style: none; /* Internet Explorer 10+ */
68
- background-color: var(--bg-color);
69
- display: flex;
70
- flex-direction: column;
71
- height: 100dvh;
72
- /* 100vh - top offset - toggle height */
73
- max-height: calc(100dvh - var(--top-offset) - 48px);
74
- opacity: 0;
75
- overflow: scroll;
76
- scrollbar-width: none; /* Firefox */
77
- transition-duration: 200ms;
78
- transition-property: opacity;
79
- transition-timing-function: ease;
80
- }
81
-
82
- .bs-horizontal-nav-mobile:where([data-hide-toggle="true"]) :where(.bs-horizontal-nav-mobile-menu) {
83
- max-height: calc(100dvh - var(--top-offset));
84
- }
85
-
86
- .bs-horizontal-nav-mobile:where([data-shown="true"]) :where(.bs-horizontal-nav-mobile-menu) {
87
- opacity: 1;
88
- }
89
-
90
- /* ===== Nav List ===== */
91
- .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-menu > ul) {
92
- background-color: var(--bg-color);
93
- display: flex;
94
- flex-direction: column;
95
- list-style: none;
96
- }
97
-
98
- /* ===== Nav Items ===== */
99
- .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-menu > ul > li) {
100
- border-top: 1px solid var(--bs-border-base);
101
- }
102
-
103
- .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-menu > ul > li:last-child) {
104
- border-bottom: 1px solid var(--bs-border-base);
105
- }
106
-
107
- .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-menu > ul > li > a),
108
- .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-nested-menu > li > a),
109
- .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-external-links > ul > li > a) {
110
- color: var(--bs-ink-light);
111
- cursor: pointer;
112
- display: flex;
113
- font-weight: 400;
114
- padding-bottom: 0.75rem;
115
- padding-left: 2.25rem;
116
- padding-right: 2.25rem;
117
- padding-top: 0.75rem;
118
- }
119
-
120
- .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-menu > ul > li > a:hover),
121
- .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-nested-menu > li > a:hover),
122
- .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-external-links > ul > li > a:hover) {
123
- color: var(--bs-ink-blue);
124
- }
125
-
126
- .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-menu > ul > li > a[data-active="true"]),
127
- .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-nested-menu > li > a[data-active="true"]) {
128
- color: var(--bs-ink-base);
129
- font-weight: 600;
130
- }
131
-
132
- .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-menu > ul > li > a[data-active="true"]:hover),
133
- .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-nested-menu > li > a[data-active="true"]:hover) {
134
- color: var(--bs-ink-blue);
135
- }
136
-
137
- /* ===== Nested Nav Items ===== */
138
- .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-nested-toggle) {
139
- align-items: center;
140
- color: var(--bs-ink-light);
141
- cursor: pointer;
142
- display: flex;
143
- justify-content: space-between;
144
- padding-bottom: 0.75rem;
145
- padding-left: 2.25rem;
146
- padding-right: 2.25rem;
147
- padding-top: 0.75rem;
148
- width: 100%;
149
- }
150
-
151
- .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-nested-toggle[data-active="true"]) {
152
- font-weight: 600;
153
- }
154
-
155
- .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-menu > ul > li[data-expanded="true"] > .bs-horizontal-nav-mobile-nested-toggle) {
156
- background-color: var(--bs-bg-medium);
157
- color: var(--bs-ink-blue);
158
- font-weight: 600;
159
- }
160
-
161
- .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-nested-toggle:hover) {
162
- color: var(--bs-ink-blue);
163
- }
164
-
165
- .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-nested-toggle-caret) {
166
- height: 0.75rem;
167
- transform: none;
168
- transition-duration: 0.2s;
169
- transition-property: transform;
170
- transition-timing-function: ease-in-out;
171
- width: 0.75rem;
172
- }
173
-
174
- .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-menu > ul > li[data-expanded="true"] .bs-horizontal-nav-mobile-nested-toggle-caret) {
175
- transform: rotate(180deg);
176
- }
177
-
178
- .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-nested-menu) {
179
- background-color: var(--bs-bg-medium);
180
- display: none;
181
- }
182
-
183
- .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-menu > ul > li[data-expanded="true"] > .bs-horizontal-nav-mobile-nested-menu) {
184
- display: block;
185
- }
186
-
187
- /* ===== External Links ===== */
188
- .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-external-links) {
189
- margin-top: auto;
190
- padding-top: 2.25rem;
191
- }
192
-
193
- .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-external-links > ul > li > a) {
194
- display: flex;
195
- align-items: center;
196
- gap: 0.5rem;
197
- }
198
-
199
- .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-external-link-icon) {
200
- height: 1rem;
201
- width: 1rem;
202
- }
203
-
204
- /* ===== End Items ===== */
205
- .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-end-items) {
206
- display: flex;
207
- flex-direction: column;
208
- margin-bottom: 1.5rem;
209
- margin-top: auto;
210
- }
211
-
212
- .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-end-items > *:not(button)) {
213
- padding-bottom: 0.75rem;
214
- padding-left: 2.25rem;
215
- padding-right: 2.25rem;
216
- padding-top: 0.75rem;
217
- }
218
-
219
- .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-end-items > button) {
220
- margin-bottom: 0.75rem;
221
- margin-left: 2.25rem;
222
- margin-right: 2.25rem;
223
- margin-top: 0.75rem;
224
- }
225
-
226
- /* Vue Transition Styles - Only used in Vue component */
227
- .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-enter-from),
228
- .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-leave-to) {
229
- opacity: 0;
230
- }
231
-
232
- .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-enter-to),
233
- .bs-horizontal-nav-mobile :where(.bs-horizontal-nav-mobile-leave-from) {
234
- opacity: 1;
235
- }
236
-
237
- }
238
-
@@ -1,220 +0,0 @@
1
- @mixin horizontal-navigation() {
2
- :root {
3
- --bs-horizontal-nav-height: 48px;
4
- }
5
-
6
- .bs-horizontal-nav {
7
- --bg-color: var(--bs-bg-light);
8
- --top-offset: 48px;
9
- align-items: center;
10
- background-color: var(--bg-color);
11
- bottom: auto;
12
- display: none;
13
- height: var(--bs-horizontal-nav-height);
14
- left: 0;
15
- position: fixed;
16
- right: 0;
17
- top: var(--top-offset);
18
- z-index: 1000;
19
- }
20
-
21
- @media (min-width: 1166px) {
22
- .bs-horizontal-nav {
23
- display: flex;
24
- }
25
- }
26
-
27
- .bs-horizontal-nav :where(nav) {
28
- align-items: center;
29
- display: flex;
30
- justify-content: space-between;
31
- margin-left: auto;
32
- margin-right: auto;
33
- max-width: calc(85.5rem + 2.25rem + 2.25rem); /* 1368px + 2.25rem x2 padding */
34
- padding-left: 2.25rem;
35
- padding-right: 2.25rem;
36
- width: 100%;
37
- }
38
-
39
- /* ===== Nav List ===== */
40
- .bs-horizontal-nav :where(nav > ul) {
41
- align-items: center;
42
- display: flex;
43
- flex-direction: row;
44
- gap: 1.5rem;
45
- list-style: none;
46
- width: 100%;
47
- }
48
-
49
- /* ===== Optional Title ===== */
50
- .bs-horizontal-nav :where(.bs-horizontal-nav-title) {
51
- border-right: 1px solid var(--bs-border-base);
52
- padding-right: 1.5rem;
53
- width: auto;
54
- }
55
-
56
- .bs-horizontal-nav :where(.bs-horizontal-nav-title > a) {
57
- cursor: pointer;
58
- display: inline;
59
- padding-bottom: 0;
60
- padding-left: 0;
61
- padding-right: 0;
62
- padding-top: 0;
63
- }
64
-
65
- /* ===== Optional Title Icon ===== */
66
- .bs-horizontal-nav :where(.bs-horizontal-nav-title-icon) {
67
- color: var(--bs-ink-blue);
68
- height: 1rem;
69
- margin-right: 0.5rem;
70
- width: 1rem;
71
- }
72
-
73
- /* ===== Nav Items ===== */
74
- .bs-horizontal-nav :where(nav > ul > li) {
75
- border-bottom: none;
76
- display: list-item;
77
- margin-left: 0;
78
- width: auto;
79
- }
80
-
81
- .bs-horizontal-nav :where(nav > ul > li:not(.bs-horizontal-nav-title) > a) {
82
- align-items: center;
83
- border-radius: 4px;
84
- color: var(--bs-ink-light);
85
- cursor: pointer;
86
- display: flex;
87
- font-weight: 400;
88
- gap: 0.5rem;
89
- height: 100%;
90
- padding-bottom: 0.5rem;
91
- padding-left: 0;
92
- padding-right: 0;
93
- padding-top: 0.5rem;
94
- width: 100%;
95
- }
96
-
97
- .bs-horizontal-nav :where(nav > ul > li > a:hover) {
98
- color: var(--bs-ink-blue);
99
- }
100
-
101
- .bs-horizontal-nav :where(nav > ul > li > a[data-active="true"]) {
102
- color: var(--bs-ink-base);
103
- font-weight: 600;
104
- }
105
-
106
- .bs-horizontal-nav :where(nav > ul > li > a[data-active="true"]:hover) {
107
- color: var(--bs-ink-blue);
108
- }
109
-
110
- /* ===== Nested Nav Items ===== */
111
- .bs-horizontal-nav :where(.bs-horizontal-nav-nested-toggle) {
112
- align-items: center;
113
- cursor: pointer;
114
- display: flex;
115
- gap: 0.5rem;
116
- line-height: 1.5;
117
- padding-bottom: 0.5rem;
118
- padding-top: 0.5rem;
119
- }
120
-
121
- .bs-horizontal-nav :where(.bs-horizontal-nav-nested-toggle:hover) {
122
- color: var(--bs-ink-blue);
123
- }
124
-
125
- .bs-horizontal-nav :where(.bs-horizontal-nav-nested-toggle[data-active="true"]) {
126
- color: var(--bs-ink-base);
127
- font-weight: 600;
128
- }
129
-
130
- .bs-horizontal-nav :where(.bs-horizontal-nav-nested-toggle[data-active="true"]:hover) {
131
- color: var(--bs-ink-blue);
132
- }
133
-
134
- .bs-horizontal-nav :where(.bs-horizontal-nav-nested-toggle-caret) {
135
- height: 0.75rem;
136
- transform: none;
137
- transition-duration: 0.2s;
138
- transition-property: transform;
139
- transition-timing-function: ease-in-out;
140
- width: 0.75rem;
141
- }
142
-
143
- .bs-horizontal-nav :where(.bs-horizontal-nav-nested-toggle:hover ~ .bs-horizontal-nav-caret) {
144
- color: var(--bs-ink-blue);
145
- }
146
-
147
- .bs-horizontal-nav :where(.bs-horizontal-nav-nested-toggle[data-expanded="true"]) {
148
- color: var(--bs-ink-blue);
149
- font-weight: 600;
150
- }
151
-
152
- .bs-horizontal-nav :where(.bs-horizontal-nav-nested-toggle[data-expanded="true"] .bs-horizontal-nav-nested-toggle-caret) {
153
- transform: rotate(180deg);
154
- }
155
-
156
- .bs-horizontal-nav :where(.bs-horizontal-nav-nested-menu) {
157
- --dropdown-top: 100%;
158
- border-radius: 8px;
159
- padding: 1.5rem;
160
- }
161
-
162
- .bs-horizontal-nav :where(.bs-horizontal-nav-nested-menu > ul) {
163
- display: inline-flex;
164
- flex-direction: column;
165
- gap: 0.5rem;
166
- list-style: none;
167
- }
168
-
169
- .bs-horizontal-nav :where(.bs-horizontal-nav-nested-menu > ul > li) {
170
- margin-left: 0;
171
- }
172
-
173
- .bs-horizontal-nav :where(.bs-horizontal-nav-nested-menu > ul > li > a) {
174
- font-size: 0.875rem;
175
- }
176
-
177
- .bs-horizontal-nav :where(.bs-horizontal-nav-nested-menu > ul > li > a:hover) {
178
- color: var(--bs-ink-blue);
179
- text-decoration: underline;
180
- }
181
-
182
- .bs-horizontal-nav :where(.bs-horizontal-nav-nested-menu > ul > li > a[data-active="true"]) {
183
- color: var(--bs-ink-base);
184
- font-weight: 600;
185
- }
186
-
187
- .bs-horizontal-nav :where(.bs-horizontal-nav-nested-menu > ul > li > a[data-active="true"]:hover) {
188
- color: var(--bs-ink-blue);
189
- }
190
-
191
- /* ===== End Items ===== */
192
- .bs-horizontal-nav :where(.bs-horizontal-nav-end-items) {
193
- display: flex;
194
- gap: 1.5rem;
195
- margin-left: auto;
196
- white-space: nowrap;
197
- }
198
-
199
- .bs-horizontal-nav :where(.bs-horizontal-nav-end-items > *) {
200
- font-size: 0.75rem;
201
- font-weight: 600;
202
- }
203
-
204
- .bs-horizontal-nav :where(.bs-horizontal-nav-end-items > *:not(button)) {
205
- color: var(--bs-ink-light);
206
- padding-bottom: 0.5rem;
207
- padding-left: 0rem;
208
- padding-right: 0rem;
209
- padding-top: 0.5rem;
210
- }
211
-
212
- .bs-horizontal-nav :where(.bs-horizontal-nav-end-items > button) {
213
- margin-bottom: 0.5rem;
214
- margin-left: 0rem;
215
- margin-right: 0rem;
216
- margin-top: 0.5rem;
217
- }
218
-
219
- }
220
-