@qld-gov-au/qgds-bootstrap5 1.1.41 → 2.0.1

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 (146) hide show
  1. package/.eslintrc.cjs +27 -27
  2. package/.vscode/settings.json +5 -5
  3. package/dist/assets/components/bs5/banner/banner.hbs +0 -7
  4. package/dist/assets/components/bs5/card/card.hbs +3 -17
  5. package/dist/assets/components/bs5/footer/customLinks.hbs +7 -0
  6. package/dist/assets/components/bs5/footer/feedbackForm.hbs +25 -0
  7. package/dist/assets/components/bs5/footer/followLinks.hbs +14 -0
  8. package/dist/assets/components/bs5/footer/footer.hbs +229 -346
  9. package/dist/assets/components/bs5/head/head.hbs +4 -4
  10. package/dist/assets/components/bs5/header/header.hbs +124 -878
  11. package/dist/assets/components/bs5/header/headerBrand.hbs +35 -0
  12. package/dist/{components/bs5/iconLink/iconLink.hbs → assets/components/bs5/link/link.hbs} +3 -3
  13. package/dist/assets/components/bs5/logo/logoCOALandscape.hbs +110 -55
  14. package/dist/assets/components/bs5/logo/logoCOALandscape2Lines.hbs +2 -1
  15. package/dist/assets/components/bs5/navbar/navbar.hbs +3 -3
  16. package/dist/assets/components/bs5/pageLayout/templates/contentPageWithForm.hbs +53 -22
  17. package/dist/assets/components/bs5/pageLayout/templates/contentPageWithSideNavigation.hbs +79 -59
  18. package/dist/assets/components/bs5/pageLayout/templates/homePage.hbs +111 -0
  19. package/dist/assets/components/bs5/searchInput/searchInput.hbs +1 -1
  20. package/dist/assets/css/qld.bootstrap.css +1 -1
  21. package/dist/assets/css/qld.bootstrap.css.map +3 -3
  22. package/dist/assets/js/handlebars.helpers.bundle.js.map +2 -2
  23. package/dist/assets/js/handlebars.helpers.js +34 -34
  24. package/dist/assets/js/handlebars.init.min.js +830 -1798
  25. package/dist/assets/js/handlebars.init.min.js.map +4 -4
  26. package/dist/assets/js/handlebars.partials.js +12 -8
  27. package/dist/assets/js/qld.bootstrap.min.js +5 -5
  28. package/dist/assets/js/qld.bootstrap.min.js.map +4 -4
  29. package/dist/assets/node/handlebars.init.min.js +399 -121
  30. package/dist/assets/node/handlebars.init.min.js.map +3 -3
  31. package/dist/components/bs5/banner/banner.hbs +0 -7
  32. package/dist/components/bs5/card/card.hbs +3 -17
  33. package/dist/components/bs5/footer/customLinks.hbs +7 -0
  34. package/dist/components/bs5/footer/feedbackForm.hbs +25 -0
  35. package/dist/components/bs5/footer/followLinks.hbs +14 -0
  36. package/dist/components/bs5/footer/footer.hbs +229 -346
  37. package/dist/components/bs5/head/head.hbs +4 -4
  38. package/dist/components/bs5/header/header.hbs +124 -878
  39. package/dist/components/bs5/header/headerBrand.hbs +35 -0
  40. package/dist/{assets/components/bs5/iconLink/iconLink.hbs → components/bs5/link/link.hbs} +3 -3
  41. package/dist/components/bs5/logo/logoCOALandscape.hbs +110 -55
  42. package/dist/components/bs5/logo/logoCOALandscape2Lines.hbs +2 -1
  43. package/dist/components/bs5/navbar/navbar.hbs +3 -3
  44. package/dist/components/bs5/pageLayout/templates/contentPageWithForm.hbs +53 -22
  45. package/dist/components/bs5/pageLayout/templates/contentPageWithSideNavigation.hbs +79 -59
  46. package/dist/components/bs5/pageLayout/templates/homePage.hbs +111 -0
  47. package/dist/components/bs5/searchInput/searchInput.hbs +1 -1
  48. package/dist/components/handlebars.helpers.js +34 -34
  49. package/dist/components/handlebars.partials.js +12 -8
  50. package/dist/package.json +1 -1
  51. package/dist/sample-data/footer/footer.data.json +128 -84
  52. package/dist/sample-data/header/header.variant.coBrand.data.json +28 -40
  53. package/dist/sample-data/header/header.variant.endorsed.data.json +116 -150
  54. package/dist/sample-data/header/header.variant.masterBrand.data.json +116 -152
  55. package/dist/sample-data/header/header.variant.standAlone.data.json +118 -150
  56. package/dist/sample-data/header/header.variant.subBrand.data.json +32 -159
  57. package/dist/sample-data/inpageAlert/inpageAlert.data.json +6 -6
  58. package/dist/sample-data/logo/logo.data.json +1 -0
  59. package/dist/sample-data/navbar/navbar.data.json +5 -5
  60. package/package.json +1 -1
  61. package/src/components/bs5/accordion/Accordion.mdx +8 -2
  62. package/src/components/bs5/banner/Banner.mdx +6 -1
  63. package/src/components/bs5/banner/banner.hbs +0 -7
  64. package/src/components/bs5/banner/banner.scss +16 -9
  65. package/src/components/bs5/banner/banner.stories.js +17 -17
  66. package/src/components/bs5/breadcrumbs/Breadcrumbs.mdx +8 -2
  67. package/src/components/bs5/button/button.stories.js +8 -8
  68. package/src/components/bs5/callToAction/callToAction.mdx +8 -3
  69. package/src/components/bs5/card/Card.mdx +8 -2
  70. package/src/components/bs5/card/card.hbs +3 -17
  71. package/src/components/bs5/card/card.scss +103 -103
  72. package/src/components/bs5/containerLayout/containerLayout.stories.js +1 -1
  73. package/src/components/bs5/footer/Footer.js +3 -3
  74. package/src/components/bs5/footer/Footer.mdx +8 -2
  75. package/src/components/bs5/footer/customLinks.hbs +7 -0
  76. package/src/components/bs5/footer/feedbackForm.hbs +25 -0
  77. package/src/components/bs5/footer/followLinks.hbs +14 -0
  78. package/src/components/bs5/footer/footer.data.json +128 -84
  79. package/src/components/bs5/footer/footer.functions.js +2 -1
  80. package/src/components/bs5/footer/footer.hbs +229 -346
  81. package/src/components/bs5/footer/footer.scss +262 -272
  82. package/src/components/bs5/footer/footer.stories.js +4 -92
  83. package/src/components/bs5/footer/footer_formio.scss +219 -0
  84. package/src/components/bs5/globalAlert/GlobalAlert.mdx +8 -2
  85. package/src/components/bs5/globalAlert/globalAlert.test.js +3 -11
  86. package/src/components/bs5/header/_header-variables.scss +272 -0
  87. package/src/components/bs5/header/header.functions.js +9 -9
  88. package/src/components/bs5/header/header.hbs +124 -878
  89. package/src/components/bs5/header/header.scss +279 -411
  90. package/src/components/bs5/header/header.stories.js +8 -28
  91. package/src/components/bs5/header/header.variant.coBrand.data.json +28 -40
  92. package/src/components/bs5/header/header.variant.endorsed.data.json +116 -150
  93. package/src/components/bs5/header/header.variant.masterBrand.data.json +116 -152
  94. package/src/components/bs5/header/header.variant.standAlone.data.json +118 -150
  95. package/src/components/bs5/header/header.variant.subBrand.data.json +32 -159
  96. package/src/components/bs5/header/headerBrand.hbs +35 -0
  97. package/src/components/bs5/inpageAlert/InpageAlert.mdx +8 -2
  98. package/src/components/bs5/inpageAlert/inpageAlert.data.json +6 -6
  99. package/src/components/bs5/{iconLink/iconLink.hbs → link/link.hbs} +3 -3
  100. package/src/components/bs5/{iconLink/iconLink.js → link/link.js} +2 -2
  101. package/src/components/bs5/{iconLink/iconLink.mdx → link/link.mdx} +3 -3
  102. package/src/components/bs5/{iconLink/iconLink.scss → link/link.scss} +27 -3
  103. package/src/components/bs5/{iconLink/iconLink.stories.js → link/link.stories.js} +4 -5
  104. package/src/components/bs5/linkColumns/linkColumns.mdx +8 -3
  105. package/src/components/bs5/logo/logo.data.json +1 -0
  106. package/src/components/bs5/logo/logoCOALandscape.hbs +110 -55
  107. package/src/components/bs5/logo/logoCOALandscape2Lines.hbs +2 -1
  108. package/src/components/bs5/navbar/navbar.data.json +5 -5
  109. package/src/components/bs5/navbar/navbar.hbs +3 -3
  110. package/src/components/bs5/navbar/navbar.scss +669 -614
  111. package/src/components/bs5/navbar/navbar.stories.js +1 -0
  112. package/src/components/bs5/pageLayout/{FullWidthLandingPage.js → HomePage.js} +2 -2
  113. package/src/components/bs5/pageLayout/pageLayout.stories.js +242 -98
  114. package/src/components/bs5/pageLayout/templates/contentPageWithForm.hbs +53 -22
  115. package/src/components/bs5/pageLayout/templates/contentPageWithSideNavigation.hbs +79 -59
  116. package/src/components/bs5/pageLayout/templates/homePage.hbs +111 -0
  117. package/src/components/bs5/promotionalPanel/PromotionalPanel.mdx +8 -3
  118. package/src/components/bs5/searchInput/__snapshots__/searchInput.test.js.snap +1 -1
  119. package/src/components/bs5/searchInput/searchInput.hbs +1 -1
  120. package/src/components/bs5/searchInput/searchInput.scss +2 -1
  121. package/src/components/bs5/searchInput/searchInput.test.js +1 -2
  122. package/src/css/main.scss +4 -1
  123. package/src/css/mixins/_index.scss +2 -1
  124. package/src/css/mixins/register-vars.scss +23 -0
  125. package/src/css/qld-variables.scss +4 -2
  126. package/src/css/utilities/_index.scss +1 -0
  127. package/src/css/utilities/responsive-visually-hidden.scss +10 -0
  128. package/src/js/handlebars.helpers.js +34 -34
  129. package/src/js/handlebars.partials.js +12 -8
  130. package/src/js/qld.bootstrap.js +10 -11
  131. package/dist/assets/components/bs5/footer/footerForgov.hbs +0 -279
  132. package/dist/assets/components/bs5/pageLayout/pageLayout.hbs +0 -34
  133. package/dist/assets/components/bs5/pageLayout/templates/fullWidthLandingPage.hbs +0 -61
  134. package/dist/components/bs5/footer/footerForgov.hbs +0 -279
  135. package/dist/components/bs5/pageLayout/pageLayout.hbs +0 -34
  136. package/dist/components/bs5/pageLayout/templates/fullWidthLandingPage.hbs +0 -61
  137. package/src/components/bs5/footer/_colours.scss +0 -149
  138. package/src/components/bs5/footer/_measurements.scss +0 -32
  139. package/src/components/bs5/footer/footerForgov.hbs +0 -279
  140. package/src/components/bs5/header/_colours.scss +0 -271
  141. package/src/components/bs5/header/_icons.scss +0 -10
  142. package/src/components/bs5/pageLayout/pageLayout.hbs +0 -34
  143. package/src/components/bs5/pageLayout/pageLayout.js +0 -21
  144. package/src/components/bs5/pageLayout/templates/fullWidthLandingPage.hbs +0 -61
  145. /package/dist/sample-data/{iconLink/iconLink.data.json → link/link.data.json} +0 -0
  146. /package/src/components/bs5/{iconLink/iconLink.data.json → link/link.data.json} +0 -0
@@ -1,696 +1,751 @@
1
+ $_navbar-max-width: 26.25rem;
2
+
1
3
  @mixin repeatedVerticalStyles {
2
- .nav-header {
3
- height: 4rem;
4
+ .nav-header {
5
+ min-height: var(--qld-header-preheader-height, 4rem);
6
+ display: flex;
7
+ align-items: center;
8
+ color: var(--header-color);
9
+
10
+ a {
11
+ color: var(--header-color);
12
+ }
13
+
14
+ .navbar-brand {
15
+ font-size: 0.875rem;
16
+ padding: 1rem;
17
+ }
18
+
19
+ button.navbar-btn {
20
+ margin-inline-start: auto;
21
+ border: 0;
22
+ height: 100%;
23
+ border-radius: 0;
24
+ display: block;
25
+ padding-inline: 1.5rem;
26
+ }
27
+ }
28
+
29
+ > .container {
30
+ position: relative;
31
+ flex-direction: column;
32
+ align-items: start;
33
+ padding-inline: 0;
34
+ max-width: $_navbar-max-width;
35
+ flex-direction: row;
36
+ margin-inline: 0;
37
+ background-color: var(--vert-background-color);
38
+ height: 100vh;
39
+ max-height: 100%;
40
+ overflow-y: auto;
41
+ flex-flow: column;
42
+
43
+ & > div {
44
+ width: 100%;
45
+ }
46
+
47
+ .navbar-nav {
48
+ flex-direction: column;
49
+ width: 100%;
50
+ padding-inline-start: 0;
51
+ border-inline-end: 1px solid var(--border-color);
52
+ .nav-item {
53
+ &.dropdown {
54
+ display: flex;
55
+ flex-wrap: wrap;
56
+ align-items: center;
57
+ background-color: var(--background-color);
58
+
59
+ &:hover {
60
+ background-color: var(--background-color-hover);
61
+ }
62
+
63
+ & > a {
64
+ width: calc(100% - 3rem);
65
+ border-start-end-radius: 1rem;
66
+ }
67
+
68
+ &:has(.show) {
69
+ background-color: var(--background-color-hover);
70
+
71
+ button.nav-link {
72
+ background-color: var(--dropdown-show-btn-bg);
73
+
74
+ &::after {
75
+ transform: rotate(180deg);
76
+ transition: transform var(--animation-time) ease-in;
77
+ }
78
+ }
79
+ .nav-link {
80
+ background-color: var(--dropdown-show-bg);
81
+ border-inline-start-color: var(--dropdown-show-bg);
82
+ }
83
+ }
84
+
85
+ button.nav-link {
86
+ border: none;
87
+ width: 2rem;
88
+ height: 2rem;
89
+ aspect-ratio: 1 / 1;
90
+ border-radius: 50%;
4
91
  display: flex;
5
92
  align-items: center;
6
- color: var(--header-color);
93
+ justify-content: center;
94
+ margin-inline: 0.5rem;
95
+ background-color: var(--dropdown-show-btn-bg);
96
+ box-shadow:
97
+ 0px 1px 2px rgba(0, 0, 0, 0.2),
98
+ 0px 1px 3px rgba(0, 0, 0, 0.1);
7
99
 
8
- a {
9
- color: var(--header-color);
100
+ &:hover {
101
+ box-shadow:
102
+ 0px 4px 8px 3px rgba(0, 0, 0, 0.1),
103
+ 0px 1px 3px rgba(0, 0, 0, 0.2);
10
104
  }
11
105
 
12
- .navbar-brand {
13
- font-size: 0.875rem;
14
- padding: 1rem;
106
+ &::after {
107
+ content: "";
108
+ mask-image: var(--qgds-icon-chevron-down);
109
+ mask-repeat: no-repeat;
110
+ mask-position: 0;
111
+ background-color: var(--dropdown-show-btn-icon-color);
112
+ width: 1rem;
113
+ height: 1rem;
114
+ border: 0;
115
+ margin-left: 0;
116
+ transform: rotate(0deg);
117
+ transition: transform var(--animation-time) ease-in;
15
118
  }
16
-
17
- button.navbar-btn {
18
- margin-inline-start: auto;
19
- border: 0;
20
- height: 100%;
21
- border-radius: 0;
22
- display: block;
23
- padding-inline: 1.5rem;
119
+ &:focus {
120
+ outline: 2px solid var(--qld-focus-color);
24
121
  }
122
+ }
123
+
124
+ .nav-link {
125
+ border-block-end: 0;
126
+ }
25
127
  }
26
128
 
27
- >.container {
28
- position: relative;
29
- flex-direction: column;
30
- align-items: start;
31
- padding-inline: 0;
32
- max-width: 18.75rem;
33
- flex-direction: row;
34
- margin-inline: 0;
35
- background-color: var(--vert-background-color);
36
- height: 100vh;
37
- flex-flow: column;
38
-
39
- &>div {
40
- width: 100%;
41
- }
129
+ &:has(.dropdown-menu.show) {
130
+ border-block-end-width: 0;
131
+ }
42
132
 
43
- .navbar-nav {
44
- flex-direction: column;
45
- width: 100%;
46
- padding-inline-start: 0;
47
- border-inline-end: 1px solid var(--border-color);
48
- .nav-item {
49
- &.dropdown {
50
- display: flex;
51
- flex-wrap: wrap;
52
- align-items: center;
53
- background-color: var(--background-color);
54
-
55
- &:hover {
56
- background-color: var(--background-color-hover);
57
- }
58
-
59
- &>a {
60
- width: calc(100% - 3rem);
61
- border-start-end-radius: 1rem;
62
- }
63
-
64
- &:has(.show) {
65
- background-color: var(--background-color-hover);
66
-
67
- button.nav-link {
68
- background-color: var(--dropdown-show-btn-bg);
69
-
70
- &::after {
71
- transform: rotate(180deg);
72
- transition: transform var(--animation-time) ease-in;
73
- }
74
- }
75
- .nav-link {
76
- background-color: var(--dropdown-show-bg);
77
- border-inline-start-color: var(--dropdown-show-bg);
78
- }
79
- }
80
-
81
- button.nav-link {
82
- border: none;
83
- width: 2rem;
84
- height: 2rem;
85
- aspect-ratio: 1 / 1;
86
- border-radius: 50%;
87
- display: flex;
88
- align-items: center;
89
- justify-content: center;
90
- margin-inline: 0.5rem;
91
- background-color: var(--dropdown-show-btn-bg);
92
- box-shadow: 0px 1px 2px rgba(0, 0, 0, .2), 0px 1px 3px rgba(0, 0, 0, .1);
93
-
94
- &:hover {
95
- box-shadow: 0px 4px 8px 3px rgba(0, 0, 0, .1), 0px 1px 3px rgba(0, 0, 0, .2);
96
- }
97
-
98
- &::after {
99
- content: "";
100
- mask-image: var(--qgds-icon-chevron-down);
101
- mask-repeat: no-repeat;
102
- mask-position: 0;
103
- background-color: var(--dropdown-show-btn-icon-color);
104
- width: 1rem;
105
- height: 1rem;
106
- border: 0;
107
- margin-left: 0;
108
- transform: rotate(0deg);
109
- transition: transform var(--animation-time) ease-in;
110
- }
111
- &:focus {
112
- outline: 2px solid var(--qld-focus-color);
113
- }
114
- }
115
-
116
- .nav-link {
117
- border-block-end: 0;
118
- }
119
- }
120
-
121
- &:has(.dropdown-menu.show) {
122
- border-block-end-width: 0;
123
- }
124
-
125
- .dropdown-menu.show {
126
- position: relative;
127
- border: none;
128
- border-block-start: 1px solid var(--border-color);
129
- padding-block: 0;
130
- margin-block: 0;
131
- width: 100%;
132
- display: block;
133
- padding: 0;
134
- box-shadow: none;
135
-
136
- &::before {
137
- display: none;
138
- }
139
-
140
- li {
141
- text-align: start;
142
- padding-block-end: 0;
143
- margin-block-end: 0;
144
-
145
- a {
146
- background-color: var(--dropdown-show-bg);
147
- padding-inline: 0.75rem;
148
- margin-block-end: 0;
149
- border-block-end: 0;
150
- border-inline-start-color: var(--dropdown-show-bg);
151
- gap: 0;
152
-
153
- &::after {
154
- content: "";
155
- content: none;
156
- }
157
-
158
- &:hover {
159
- transition: none;
160
- }
161
- }
162
-
163
- p {
164
- position: absolute;
165
- left: -9999px;
166
- }
167
-
168
- &:has(.view-all),
169
- &:has(.parent-link) {
170
- display: none;
171
- }
172
- }
173
- }
174
- }
175
- }
133
+ .dropdown-menu.show {
134
+ position: relative;
135
+ border: none;
136
+ border-block-start: 1px solid var(--border-color);
137
+ padding-block: 0;
138
+ margin-block: 0;
139
+ width: 100%;
140
+ display: block;
141
+ padding: 0;
142
+ box-shadow: none;
143
+
144
+ &::before {
145
+ display: none;
146
+ }
147
+
148
+ li {
149
+ text-align: start;
150
+ padding-block-end: 0;
151
+ margin-block-end: 0;
152
+
153
+ a {
154
+ background-color: var(--dropdown-show-bg);
155
+ padding-inline: 0.75rem;
156
+ margin-block-end: 0;
157
+ border-block-end: 0;
158
+ border-inline-start-color: var(--dropdown-show-bg);
159
+ gap: 0;
160
+
161
+ &::after {
162
+ content: "";
163
+ content: none;
164
+ }
176
165
 
177
- li {
178
- border-block-end: 1px solid var(--border-color);
166
+ &:hover {
167
+ transition: none;
168
+ }
179
169
  }
180
170
 
181
- a.nav-link,
182
- a.dropdown-item {
183
- color: var(--link-color);
184
- padding: 0.75rem;
185
- display: flex;
186
- border-inline-start: 0.25rem solid var(--link-border-color);
187
- align-items: center;
188
- transition: padding-inline-end var(--animation-time) ease-in-out;
189
-
190
- &:hover {
191
- border-inline-start: 0.25rem solid var(--link-border-color-hover);
192
- text-decoration: underline;
193
- text-underline-offset: 0.3rem;
194
- text-decoration-thickness: 0.125rem;
195
- }
171
+ p {
172
+ position: absolute;
173
+ left: -9999px;
196
174
  }
197
175
 
198
- a.nav-link {
199
- border-block-end: 0;
200
- margin-block-end: 0;
201
-
202
- &:hover,
203
- &.active {
204
- border-block-end: 0;
205
-
206
- &:hover {
207
- margin-block-end: 0;
208
- border-block-end: 0;
209
- }
210
- }
211
-
212
- &.dropdown-toggle {
213
- &::after {
214
- display: none;
215
- visibility: hidden;
216
- }
217
-
218
- background: transparent;
219
-
220
- &:hover {
221
- background-color: transparent;
222
- }
223
- }
224
- &:focus {
225
- outline-offset: 0;
226
- }
176
+ &:has(.view-all),
177
+ &:has(.parent-link) {
178
+ display: none;
227
179
  }
180
+ }
228
181
  }
229
- }
182
+ }
183
+ }
230
184
 
231
- @keyframes slideFromRight {
232
- 0% {
233
- transform: translateX(100%);
185
+ li {
186
+ border-block-end: 1px solid var(--border-color);
234
187
  }
235
188
 
236
- 100% {
237
- transform: translateX(0);
189
+ a.nav-link,
190
+ a.dropdown-item {
191
+ color: var(--link-color);
192
+ padding: 0.75rem;
193
+ display: flex;
194
+ border-inline-start: 0.25rem solid var(--link-border-color);
195
+ align-items: center;
196
+ transition: padding-inline-end var(--animation-time) ease-in-out;
197
+
198
+ &:hover {
199
+ border-inline-start: 0.25rem solid var(--link-border-color-hover);
200
+ text-decoration: underline;
201
+ text-underline-offset: 0.3rem;
202
+ text-decoration-thickness: 0.125rem;
203
+ }
204
+ }
205
+
206
+ a.nav-link {
207
+ border-block-end: 0;
208
+ margin-block-end: 0;
209
+
210
+ &:hover,
211
+ &.active {
212
+ border-block-end: 0;
213
+
214
+ &:hover {
215
+ margin-block-end: 0;
216
+ border-block-end: 0;
217
+ }
218
+ }
219
+
220
+ &.dropdown-toggle {
221
+ &::after {
222
+ display: none;
223
+ visibility: hidden;
224
+ }
225
+
226
+ background: transparent;
227
+
228
+ &:hover {
229
+ background-color: transparent;
230
+ }
231
+ }
232
+ &:focus {
233
+ outline-offset: 0;
234
+ }
238
235
  }
236
+ }
237
+ }
238
+
239
+ @keyframes slideFromRight {
240
+ 0% {
241
+ transform: translateX(100%);
242
+ }
243
+
244
+ 100% {
245
+ transform: translateX(0);
246
+ }
239
247
  }
240
248
 
241
249
  @keyframes slideToRight {
242
- 0% {
243
- transform: translateX(0);
244
- }
250
+ 0% {
251
+ transform: translateX(0);
252
+ }
245
253
 
246
- 100% {
247
- transform: translateX(100%);
248
- }
254
+ 100% {
255
+ transform: translateX(100%);
256
+ }
249
257
  }
250
258
 
251
259
  #burgerBtn {
252
- min-width: auto;
253
- flex-direction: column;
254
- gap: 0;
260
+ min-width: auto;
261
+ flex-direction: column;
262
+ gap: 0;
255
263
  }
256
264
 
257
265
  .navbar {
258
- --vert-background-color: var(--#{$prefix}dark-background);
259
- --background-color: var(--#{$prefix}default-background-shade);
260
- --background-color-hover: var(--#{$prefix}light-border);
261
- --dropdown-show-bg: var(--#{$prefix}default-background);
262
- --link-border-color: var(--#{$prefix}light-accent);
263
- --link-border-color-hover: var(--#{$prefix}light-action-primary-hover);
264
- --link-color: var(--#{$prefix}light-action-primary-hover);
265
- --text-color: var(--#{$prefix}light-text-text);
266
- --border-color: var(--#{$prefix}light-border);
267
- --header-color: var(--#{$prefix}default-background);
268
- --action-icon-color: var(--#{$prefix}alt-button-hover);
269
- --mobile-only-display: none;
270
- --dropdown-show-btn-bg: var(--#{$prefix}default-background);
271
- --dropdown-show-btn-icon-color: var(--#{$prefix}alt-button-hover);
272
-
273
- --nav-header-color: var(--#{$prefix}dark-text-text);
274
- --nav-header-border-color: var(--#{$prefix}dark-border);
275
- --nav-header-icon-color: var(--#{$prefix}brand-accent);
276
-
277
- /* general */
278
- --button-bg-color: var(--#{$prefix}default-background);
279
- --animation-time: 0.2s;
280
- --shadow-dropdown: 0px 1px 2px 0px rgba(0, 0, 0, .3), -2px 2px 6px 2px rgba(0, 0, 0, .15);
281
- /* hor bar */
282
- --horizontal-bar-border-width: .5rem;
283
- --dropdown-bg-color: var(--#{$prefix}default-background);
284
- /* House keeping */
285
- --icon-dir: 1;
286
- :dir(rtl) {
287
- --icon-dir: -1;
266
+ --vert-background-color: var(--#{$prefix}dark-background);
267
+ --background-color: var(--#{$prefix}default-background-shade);
268
+ --background-color-hover: var(--#{$prefix}light-border);
269
+ --dropdown-show-bg: var(--#{$prefix}default-background);
270
+ --link-border-color: var(--#{$prefix}light-accent);
271
+ --link-border-color-hover: var(--#{$prefix}light-action-primary-hover);
272
+ --link-color: var(--#{$prefix}light-action-primary-hover);
273
+ --text-color: var(--#{$prefix}light-text-text);
274
+ --border-color: var(--#{$prefix}light-border);
275
+ --header-color: var(--#{$prefix}default-background);
276
+ --action-icon-color: var(--#{$prefix}alt-button-hover);
277
+ --mobile-only-display: none;
278
+ --dropdown-show-btn-bg: var(--#{$prefix}default-background);
279
+ --dropdown-show-btn-icon-color: var(--#{$prefix}alt-button-hover);
280
+
281
+ --nav-header-color: var(--#{$prefix}dark-text-text);
282
+ --nav-header-border-color: var(--#{$prefix}dark-border);
283
+ --nav-header-icon-color: var(--#{$prefix}brand-accent);
284
+
285
+ /* general */
286
+ --button-bg-color: var(--#{$prefix}default-background);
287
+ --animation-time: 0.2s;
288
+ --shadow-dropdown:
289
+ 0px 1px 2px 0px rgba(0, 0, 0, 0.3), -2px 2px 6px 2px rgba(0, 0, 0, 0.15);
290
+ /* hor bar */
291
+ --horizontal-bar-border-width: 0.5rem;
292
+ --dropdown-bg-color: var(--#{$prefix}default-background);
293
+ /* House keeping */
294
+ --icon-dir: 1;
295
+
296
+ :dir(rtl) {
297
+ --icon-dir: -1;
298
+ }
299
+
300
+ /* override */
301
+ &.collapsing {
302
+ transition: none !important;
303
+ }
304
+
305
+ &.collapse:not(.show) {
306
+ display: block;
307
+ }
308
+
309
+ .qld-icon-md {
310
+ height: 2rem;
311
+ }
312
+
313
+ /* colours */
314
+ &.dark {
315
+ --vert-background-color: var(--#{$prefix}default-background);
316
+ --background-color: var(--#{$prefix}dark-background-shade);
317
+ --background-color-hover: var(--#{$prefix}dark-alt-background);
318
+ --dropdown-show-bg: var(--#{$prefix}dark-background-shade);
319
+ --link-border-color: var(--#{$prefix}dark-accent);
320
+ --link-border-color-hover: var(--#{$prefix}dark-action-primary-hover);
321
+ --link-color: var(--#{$prefix}dark-text-text);
322
+ --text-color: var(--#{$prefix}dark-text-text);
323
+ --border-color: var(--#{$prefix}dark-border);
324
+ --header-color: var(--#{$prefix}light-text-heading);
325
+ --dropdown-bg-color: var(--#{$prefix}dark-background);
326
+ --action-icon-color: var(--#{$prefix}brand-accent);
327
+
328
+ --nav-header-color: var(--#{$prefix}light-text-text);
329
+ --nav-header-border-color: var(--#{$prefix}light-border);
330
+ --nav-header-icon-color: var(--#{$prefix}alt-button-hover);
331
+ }
332
+
333
+ /* Mobile < 992 */
334
+ @include media-breakpoint-down(lg) {
335
+ --mobile-only-display: block;
336
+ .alt {
337
+ --vert-background-color: var(--#{$prefix}default-background);
338
+ --background-color: var(--#{$prefix}dark-background-shade);
339
+ --background-color-hover: var(--#{$prefix}dark-alt-background);
340
+ --dropdown-show-bg: var(--#{$prefix}dark-background-shade);
341
+ --link-border-color: var(--#{$prefix}dark-accent);
342
+ --link-border-color-hover: var(--#{$prefix}dark-action-primary-hover);
343
+ --link-color: var(--#{$prefix}dark-text-text);
344
+ --text-color: var(--#{$prefix}dark-text-text);
345
+ --border-color: var(--#{$prefix}dark-border);
346
+ --header-color: var(--#{$prefix}light-text-heading);
347
+ --dropdown-bg-color: var(--#{$prefix}dark-background);
348
+ --action-icon-color: var(--#{$prefix}brand-accent);
288
349
  }
289
-
290
- /* override */
291
- &.collapsing {
292
- transition: none !important;
350
+ &.dark .alt {
351
+ --vert-background-color: var(--#{$prefix}dark-background);
352
+ --background-color: var(--#{$prefix}default-background-shade);
353
+ --background-color-hover: var(--#{$prefix}light-border);
354
+ --dropdown-show-bg: var(--#{$prefix}default-background);
355
+ --link-border-color: var(--#{$prefix}light-accent);
356
+ --link-border-color-hover: var(--#{$prefix}light-action-primary-hover);
357
+ --link-color: var(--#{$prefix}light-action-primary-hover);
358
+ --text-color: var(--#{$prefix}light-text-text);
359
+ --border-color: var(--#{$prefix}light-border);
360
+ --header-color: var(--#{$prefix}default-background);
361
+ --action-icon-color: var(--#{$prefix}alt-button-hover);
293
362
  }
294
-
295
- &.collapse:not(.show) {
296
- display: block;
363
+ }
364
+
365
+ background-color: var(--background-color);
366
+ border-block-end: var(--horizontal-bar-border-width) solid
367
+ var(--link-border-color);
368
+ padding-block: 0;
369
+
370
+ button.dropdown-toggle,
371
+ .nav-header {
372
+ display: none;
373
+ }
374
+
375
+ .container {
376
+ position: relative;
377
+ }
378
+
379
+ .nav-item {
380
+ position: static;
381
+ &.mobile-only {
382
+ display: var(--mobile-only-display);
297
383
  }
384
+ }
298
385
 
299
- .qld-icon-md {
300
- height: 2rem;
301
- }
386
+ .navbar-nav a.nav-link {
387
+ background-color: var(--background-color);
388
+ border-block-end: var(--horizontal-bar-border-width) solid
389
+ var(--link-border-color);
390
+ margin-block-end: calc(var(--horizontal-bar-border-width) * -1);
302
391
 
303
- /* colours */
304
- &.dark {
305
- --vert-background-color: var(--#{$prefix}default-background);
306
- --background-color: var(--#{$prefix}dark-background-shade);
307
- --background-color-hover: var(--#{$prefix}dark-alt-background);
308
- --dropdown-show-bg: var(--#{$prefix}dark-background-shade);
309
- --link-border-color: var(--#{$prefix}dark-accent);
310
- --link-border-color-hover: var(--#{$prefix}dark-action-primary-hover);
311
- --link-color: var(--#{$prefix}dark-text-text);
312
- --text-color: var(--#{$prefix}dark-text-text);
313
- --border-color: var(--#{$prefix}dark-border);
314
- --header-color: var(--#{$prefix}light-text-heading);
315
- --dropdown-bg-color: var(--#{$prefix}dark-background);
316
- --action-icon-color: var(--#{$prefix}brand-accent);
317
-
318
- --nav-header-color: var(--#{$prefix}light-text-text);
319
- --nav-header-border-color: var(--#{$prefix}light-border);
320
- --nav-header-icon-color: var(--#{$prefix}alt-button-hover);
321
- }
392
+ &.show {
393
+ color: var(--link-color);
394
+ background-color: var(--dropdown-bg-color);
395
+ border-block-end: var(--horizontal-bar-border-width) solid
396
+ var(--dropdown-bg-color);
322
397
 
323
- @include media-breakpoint-down(lg) {
324
- --mobile-only-display: block;
325
- .alt {
326
- --vert-background-color: var(--#{$prefix}default-background);
327
- --background-color: var(--#{$prefix}dark-background-shade);
328
- --background-color-hover: var(--#{$prefix}dark-alt-background);
329
- --dropdown-show-bg: var(--#{$prefix}dark-background-shade);
330
- --link-border-color: var(--#{$prefix}dark-accent);
331
- --link-border-color-hover: var(--#{$prefix}dark-action-primary-hover);
332
- --link-color: var(--#{$prefix}dark-text-text);
333
- --text-color: var(--#{$prefix}dark-text-text);
334
- --border-color: var(--#{$prefix}dark-border);
335
- --header-color: var(--#{$prefix}light-text-heading);
336
- --dropdown-bg-color: var(--#{$prefix}dark-background);
337
- --action-icon-color: var(--#{$prefix}brand-accent);
338
- }
339
- &.dark .alt {
340
- --vert-background-color: var(--#{$prefix}dark-background);
341
- --background-color: var(--#{$prefix}default-background-shade);
342
- --background-color-hover: var(--#{$prefix}light-border);
343
- --dropdown-show-bg: var(--#{$prefix}default-background);
344
- --link-border-color: var(--#{$prefix}light-accent);
345
- --link-border-color-hover: var(--#{$prefix}light-action-primary-hover);
346
- --link-color: var(--#{$prefix}light-action-primary-hover);
347
- --text-color: var(--#{$prefix}light-text-text);
348
- --border-color: var(--#{$prefix}light-border);
349
- --header-color: var(--#{$prefix}default-background);
350
- --action-icon-color: var(--#{$prefix}alt-button-hover);
351
- }
398
+ &:hover {
399
+ background-color: var(--dropdown-bg-color);
400
+ border-block-end: var(--horizontal-bar-border-width) solid
401
+ var(--dropdown-bg-color);
402
+ }
352
403
  }
353
404
 
354
- background-color: var(--background-color);
355
- border-block-end: var(--horizontal-bar-border-width) solid var(--link-border-color);
356
- padding-block: 0;
357
-
358
- button.dropdown-toggle,
359
- .nav-header {
360
- display: none;
405
+ &.active {
406
+ color: var(--link-color);
407
+ background-color: var(--background-color);
408
+ border-block-end: var(--horizontal-bar-border-width) solid
409
+ var(--background-color);
361
410
  }
362
411
 
363
- .container {
364
- position: relative;
412
+ &:hover,
413
+ &.active:hover {
414
+ background-color: var(--background-color-hover);
415
+ border-block-end: var(--horizontal-bar-border-width) solid
416
+ var(--link-border-color-hover);
365
417
  }
366
-
367
- .nav-item {
368
- position: static;
369
- &.mobile-only {
370
- display: var(--mobile-only-display);
371
- }
418
+ .qld-icon {
419
+ background-color: var(--action-icon-color);
372
420
  }
373
-
374
- .navbar-nav a.nav-link {
375
- background-color: var(--background-color);
376
- border-block-end: var(--horizontal-bar-border-width) solid var(--link-border-color);
377
- margin-block-end: calc(var(--horizontal-bar-border-width) * -1);
378
-
379
- &.show {
380
- color: var(--link-color);
381
- background-color: var(--dropdown-bg-color);
382
- border-block-end: var(--horizontal-bar-border-width) solid var(--dropdown-bg-color);
383
-
384
- &:hover {
385
- background-color: var(--dropdown-bg-color);
386
- border-block-end: var(--horizontal-bar-border-width) solid var(--dropdown-bg-color);
387
- }
388
- }
389
-
390
- &.active {
391
- color: var(--link-color);
392
- background-color: var(--background-color);
393
- border-block-end: var(--horizontal-bar-border-width) solid var(--background-color);
394
- }
395
-
396
- &:hover,
397
- &.active:hover {
398
- background-color: var(--background-color-hover);
399
- border-block-end: var(--horizontal-bar-border-width) solid var(--link-border-color-hover);
400
- }
401
- .qld-icon {
402
- background-color: var(--action-icon-color);
403
- }
421
+ }
422
+
423
+ .navbar-nav a.nav-link,
424
+ a.dropdown-item {
425
+ color: var(--link-color);
426
+ padding: 0.75rem;
427
+ display: flex;
428
+ line-height: 2rem;
429
+ gap: 1rem;
430
+ align-items: center;
431
+
432
+ &:hover {
433
+ text-decoration: underline;
434
+ text-underline-offset: 0.3rem;
435
+ text-decoration-thickness: 0.125rem;
436
+ }
437
+ &:focus {
438
+ outline-offset: -2px;
439
+ box-shadow: none;
440
+ }
441
+ }
442
+ a.dropdown-toggle {
443
+ &:after {
444
+ content: "";
445
+ border: 0;
446
+ mask-image: var(--qgds-icon-chevron-down);
447
+ mask-repeat: no-repeat;
448
+ mask-position: 0;
449
+ background-color: var(--action-icon-color);
450
+ width: 1rem;
451
+ height: 1rem;
452
+ transform: rotate(0deg);
453
+ transition: transform var(--animation-time) ease-in;
454
+ }
455
+ &.show {
456
+ &:after {
457
+ transform: rotate(180deg);
458
+ transition: transform var(--animation-time) ease-in;
459
+ }
460
+ }
461
+ }
462
+ a.dropdown-item {
463
+ &:hover {
464
+ background-color: transparent;
465
+ }
466
+ }
467
+
468
+ .dropdown-menu.show {
469
+ --horizontal-bar-border-widthx2: calc(
470
+ var(--horizontal-bar-border-width) * 2
471
+ );
472
+ margin-block-start: calc(var(--horizontal-bar-border-widthx2) - 1px);
473
+ inset-inline: 0;
474
+ background-color: var(--dropdown-bg-color);
475
+ padding: 4rem;
476
+ border-radius: 1rem;
477
+ border-start-start-radius: 0;
478
+ border-start-end-radius: 0;
479
+ color: var(--text-color);
480
+ box-shadow: var(--shadow-dropdown);
481
+ display: grid;
482
+ grid-template-columns: repeat(3, 1fr);
483
+ grid-gap: 1rem;
484
+
485
+ &::before {
486
+ content: "";
487
+ position: absolute;
488
+ height: var(--horizontal-bar-border-width);
489
+ inset: 0;
490
+ inset-block-start: calc(var(--horizontal-bar-border-width) * -1);
491
+ background-color: var(--dropdown-bg-color);
404
492
  }
405
493
 
406
- .navbar-nav a.nav-link,
407
- a.dropdown-item {
408
- color: var(--link-color);
409
- padding: 0.75rem;
494
+ li {
495
+ display: flex;
496
+ &.mobile-only {
497
+ display: var(--mobile-only-display);
498
+ }
499
+ &:has(p) {
500
+ flex-direction: column;
501
+ }
502
+
503
+ a {
410
504
  display: flex;
411
- line-height: 2rem;
412
- gap: 1rem;
413
505
  align-items: center;
506
+ padding-inline-start: 0;
507
+ padding-inline-end: 0.75rem;
508
+ white-space: normal;
509
+ border-block-end: 1px solid var(--border-color);
510
+ padding-block-end: 1rem;
511
+ gap: 1rem;
512
+ transition:
513
+ padding-inline-end var(--animation-time) ease-in-out,
514
+ gap var(--animation-time) ease-in-out;
515
+
516
+ &::after {
517
+ content: "";
518
+ mask-image: var(--qgds-icon-arrow-right);
519
+ mask-repeat: no-repeat;
520
+ mask-position: 0;
521
+ background-color: var(--action-icon-color);
522
+ height: 1.25rem;
523
+ width: 1.25rem;
524
+ margin-inline-start: auto;
525
+ border: 0;
526
+ transform: scaleX(var(--icon-dir));
527
+ }
414
528
 
415
529
  &:hover {
416
- text-decoration: underline;
417
- text-underline-offset: 0.3rem;
418
- text-decoration-thickness: 0.125rem;
530
+ padding-inline-end: 0;
531
+ gap: 1.75rem;
532
+ transition:
533
+ padding-inline-end var(--animation-time) ease-in-out,
534
+ gap var(--animation-time) ease-in-out;
419
535
  }
420
536
  &:focus {
421
- outline-offset: -2px;
422
- box-shadow: none;
537
+ outline-offset: 2px;
538
+ box-shadow: none;
423
539
  }
540
+ }
541
+
542
+ p {
543
+ text-align: start;
544
+ margin-block-start: 1rem;
545
+ }
424
546
  }
425
- a.dropdown-toggle{
426
- &:after {
427
- content: "";
428
- border: 0;
429
- mask-image: var(--qgds-icon-chevron-down);
430
- mask-repeat: no-repeat;
431
- mask-position: 0;
432
- background-color: var(--action-icon-color);
433
- width: 1rem;
434
- height: 1rem;
435
- transform: rotate(0deg);
436
- transition: transform var(--animation-time) ease-in;
437
- }
438
- &.show {
439
- &:after {
440
- transform: rotate(180deg);
441
- transition: transform var(--animation-time) ease-in;
442
- }
547
+
548
+ li:has(.parent-link) {
549
+ border-block-end: 1px solid var(--border-color);
550
+ padding-block-end: 2rem;
551
+ margin-block-end: 2rem;
552
+ grid-column: 1 / -1;
553
+
554
+ .dropdown-item {
555
+ border-block-end: 0;
556
+ gap: 1rem;
557
+ transition: gap var(--animation-time) ease-in-out;
558
+
559
+ &::after {
560
+ margin-inline-start: 0;
443
561
  }
444
-
445
- }
446
- a.dropdown-item {
562
+
447
563
  &:hover {
448
- background-color: transparent;
564
+ gap: 1.75rem;
565
+ transition: gap var(--animation-time) ease-in-out;
449
566
  }
567
+ }
450
568
  }
451
569
 
452
- .dropdown-menu.show {
453
- --horizontal-bar-border-widthx2: calc(var(--horizontal-bar-border-width) * 2);
454
- margin-block-start: calc(var(--horizontal-bar-border-widthx2) - 1px);
455
- inset-inline: 0;
456
- background-color: var(--dropdown-bg-color);
457
- padding: 4rem;
458
- border-radius: 1rem;
459
- border-start-start-radius: 0;
460
- border-start-end-radius: 0;
461
- color: var(--text-color);
462
- box-shadow: var(--shadow-dropdown);
463
- display: grid;
464
- grid-template-columns: repeat(3, 1fr);
465
- grid-gap: 1rem;
466
-
467
- &::before {
468
- content: "";
469
- position: absolute;
470
- height: var(--horizontal-bar-border-width);
471
- inset: 0;
472
- inset-block-start: calc(var(--horizontal-bar-border-width) * -1);
473
- background-color: var(--dropdown-bg-color);
474
- }
475
-
476
- li {
477
- display: flex;
478
- &.mobile-only {
479
- display: var(--mobile-only-display);
480
- }
481
- &:has(p) {
482
- flex-direction: column;
483
- }
570
+ li:has(.view-all) {
571
+ width: 100%;
572
+ border-block-start: 1px solid var(--border-color);
573
+ padding-block-start: 2rem;
574
+ margin-block-start: 2rem;
575
+ grid-column: 1 / -1;
484
576
 
485
- a{
486
- display: flex;
487
- align-items: center;
488
- padding-inline-start: 0;
489
- padding-inline-end: .75rem;
490
- white-space: normal;
491
- border-block-end: 1px solid var(--border-color);
492
- padding-block-end: 1rem;
493
- gap: 1rem;
494
- transition: padding-inline-end var(--animation-time) ease-in-out, gap var(--animation-time) ease-in-out;
495
-
496
- &::after {
497
- content: "";
498
- mask-image: var(--qgds-icon-arrow-right);
499
- mask-repeat: no-repeat;
500
- mask-position: 0;
501
- background-color: var(--action-icon-color);
502
- height: 1.25rem;
503
- width: 1.25rem;
504
- margin-inline-start: auto;
505
- border: 0;
506
- transform: scaleX(var(--icon-dir));
507
- }
508
-
509
- &:hover {
510
- padding-inline-end: 0;
511
- gap: 1.75rem;
512
- transition: padding-inline-end var(--animation-time) ease-in-out, gap var(--animation-time) ease-in-out;
513
- }
514
- &:focus {
515
- outline-offset: 2px;
516
- box-shadow: none;
517
- }
518
- }
577
+ .dropdown-item {
578
+ border-block-end: 0;
579
+ display: flex;
580
+ flex-direction: row-reverse;
581
+ padding-inline-end: 0.75rem;
582
+ gap: 1rem;
583
+ transition:
584
+ gap var(--animation-time) ease-in-out,
585
+ padding-inline-end var(--animation-time) ease-in-out;
519
586
 
520
- p {
521
- text-align: start;
522
- margin-block-start: 1rem;
523
- }
587
+ &::before {
588
+ content: "";
589
+ mask-image: var(--qgds-icon-arrow-right);
590
+ mask-repeat: no-repeat;
591
+ mask-position: 0;
592
+ background-color: var(--action-icon-color);
593
+ height: 1.25rem;
594
+ width: 1.25rem;
595
+ transform: scaleX(var(--icon-dir));
524
596
  }
525
597
 
526
- li:has(.parent-link) {
527
- border-block-end: 1px solid var(--border-color);
528
- padding-block-end: 2rem;
529
- margin-block-end: 2rem;
530
- grid-column: 1 / -1;
531
-
532
- .dropdown-item {
533
- border-block-end: 0;
534
- gap: 1rem;
535
- transition: gap var(--animation-time) ease-in-out;
536
-
537
- &::after {
538
- margin-inline-start: 0;
539
- }
540
-
541
- &:hover {
542
- gap: 1.75rem;
543
- transition: gap var(--animation-time) ease-in-out;
544
- }
545
- }
598
+ &::after {
599
+ content: "";
600
+ content: none;
546
601
  }
547
602
 
548
- li:has(.view-all) {
549
- width: 100%;
550
- border-block-start: 1px solid var(--border-color);
551
- padding-block-start: 2rem;
552
- margin-block-start: 2rem;
553
- grid-column: 1 / -1;
554
-
555
- .dropdown-item {
556
- border-block-end: 0;
557
- display: flex;
558
- flex-direction: row-reverse;
559
- padding-inline-end: .75rem;
560
- gap: 1rem;
561
- transition: gap var(--animation-time) ease-in-out, padding-inline-end var(--animation-time) ease-in-out;
562
-
563
- &::before {
564
- content: "";
565
- mask-image: var(--qgds-icon-arrow-right);
566
- mask-repeat: no-repeat;
567
- mask-position: 0;
568
- background-color: var(--action-icon-color);
569
- height: 1.25rem;
570
- width: 1.25rem;
571
- transform: scaleX(var(--icon-dir));
572
- }
573
-
574
- &::after {
575
- content: "";
576
- content: none;
577
- }
578
-
579
- &:hover {
580
- gap: 1.75rem;
581
- padding-inline-end: 0;
582
- transition: padding-inline-end var(--animation-time) ease-in-out, gap var(--animation-time) ease-in-out;
583
-
584
- }
585
- }
603
+ &:hover {
604
+ gap: 1.75rem;
605
+ padding-inline-end: 0;
606
+ transition:
607
+ padding-inline-end var(--animation-time) ease-in-out,
608
+ gap var(--animation-time) ease-in-out;
586
609
  }
610
+ }
611
+ }
612
+ }
613
+
614
+ &.vertical {
615
+ width: 100%;
616
+ min-height: 100vh; // This is questionable
617
+ align-items: start;
618
+ overflow-y: auto;
619
+ display: flex;
620
+ background-color: transparent;
621
+ border-block-end: 0;
622
+ margin-block-end: 0;
623
+ transition: max-width var(--animation-time) ease-in-out;
624
+
625
+ @include repeatedVerticalStyles;
626
+ }
627
+
628
+ &.vertical {
629
+ .navbar-collapse {
630
+ display: block !important;
587
631
  }
588
632
 
589
- &.vertical {
590
- width: 100%;
591
- min-height: 100vh; // This is questionable
592
- align-items: start;
593
- overflow-y: scroll;
594
- display: flex;
595
- background-color: transparent;
596
- border-block-end: 0;
597
- margin-block-end: 0;
598
- transition: max-width var(--animation-time) ease-in-out;
633
+ .nav-header {
634
+ display: none;
635
+ }
636
+ }
637
+
638
+ /* Mobile < 992 */
639
+ @include media-breakpoint-down(lg) {
640
+ width: 100%;
641
+ height: 100vh;
642
+ position: fixed;
643
+ display: none;
644
+ top: 0;
645
+ right: -($_navbar-max-width); // match max-width of vertical menu
646
+ align-items: start;
647
+ background-color: transparent;
648
+ border-block-end: 0;
649
+ margin-block-end: 0;
650
+ transition: max-width var(--animation-time) ease-in;
651
+
652
+ @include repeatedVerticalStyles;
653
+
654
+ .nav-header .navbar-brand {
655
+ color: var(--nav-header-color);
656
+ }
599
657
 
600
- @include repeatedVerticalStyles;
658
+ #burgerCloseBtn {
659
+ --qld-btn-close-bg: none;
660
+ --qld-btn-close-opacity: 1;
661
+ --qld-btn-close-hover-opacity: 1;
662
+
663
+ //Mobile
664
+ --qld-btn-close-font-size: 0.625rem;
665
+ --qld-btn-close-width: 1.5rem;
666
+ --qld-btn-close-height: 1.5rem;
667
+
668
+ @include media-breakpoint-up(md) {
669
+ //Desktop
670
+ --qld-btn-close-font-size: 0.875rem;
671
+ --qld-btn-close-width: 2rem;
672
+ --qld-btn-close-height: 2rem;
673
+ }
674
+
675
+ display: flex;
676
+ flex-direction: column;
677
+ align-items: center;
678
+ justify-content: center;
679
+ font-size: var(--qld-btn-close-font-size);
680
+ color: var(--nav-header-color);
681
+ border-inline-start: 1px solid var(--nav-header-border-color);
682
+ padding-block: 0;
683
+ background-color: transparent;
684
+
685
+ &::before {
686
+ content: "";
687
+ mask-image: var(--qgds-icon-close);
688
+ mask-repeat: no-repeat;
689
+ mask-position: 0;
690
+ background-color: var(--nav-header-icon-color);
691
+ width: var(--qld-btn-close-width);
692
+ height: var(--qld-btn-close-height);
693
+ border: 0;
694
+ margin-left: 0;
695
+ }
601
696
  }
602
697
 
698
+ &,
603
699
  &.vertical {
604
- .navbar-collapse {
605
- display: block !important;
606
- }
700
+ position: fixed;
607
701
 
608
- .nav-header {
609
- display: none;
610
- }
611
- }
612
-
613
- @media (width <=992px) {
702
+ &.close {
703
+ display: none;
704
+ }
614
705
 
615
- width: 100%;
616
- height: 100vh;
617
- align-items: start;
618
- overflow-y: scroll;
706
+ .nav-header {
619
707
  display: flex;
620
- background-color: transparent;
621
- border-block-end: 0;
622
- margin-block-end: 0;
623
- transition: max-width var(--animation-time) ease-in;
624
-
625
- @include repeatedVerticalStyles;
708
+ }
626
709
 
627
- .nav-header .navbar-brand {
628
- color: var(--nav-header-color);
629
- }
710
+ &.collapse > .container {
711
+ animation-name: slideToRight;
712
+ animation-duration: var(--animation-time);
713
+ animation-fill-mode: forwards;
714
+ margin-left: auto;
715
+ }
630
716
 
631
- #burgerCloseBtn {
632
- --qld-btn-close-bg: none;
633
- display: flex;
634
- flex-direction: column;
635
- align-items: center;
636
- justify-content: center;
637
- font-size: .7rem;
638
- color: var(--nav-header-color);
639
- border-inline-start: 1px solid var(--nav-header-border-color);
640
- padding-block: 0;
641
- &::before {
642
- content: "";
643
- mask-image: var(--qgds-icon-close);
644
- mask-repeat: no-repeat;
645
- mask-position: 0;
646
- background-color: var(--nav-header-icon-color);
647
- width: 1.5rem;
648
- height: 1.5rem;
649
- border: 0;
650
- margin-left: 0;
651
- }
652
- }
653
-
654
- &,
655
- &.vertical {
656
- position: fixed;
657
-
658
- &.close {
659
- display: none;
660
- }
661
-
662
- .nav-header {
663
- display: flex;
664
- }
717
+ &.collapse:not(.show) {
718
+ display: none;
719
+ }
665
720
 
666
- &.collapse>.container {
667
- animation-name: slideToRight;
668
- animation-duration: var(--animation-time);
669
- animation-fill-mode: forwards;
670
- margin-left: auto;
671
- }
721
+ &.show {
722
+ display: flex;
723
+ right: 0;
724
+ z-index: 10;
672
725
 
673
- &.show {
674
- display: block;
675
-
676
- &>.container {
677
- animation-name: slideFromRight;
678
- animation-duration: var(--animation-time);
679
- animation-fill-mode: forwards;
680
- }
681
-
682
- #overlay {
683
- position: fixed;
684
- inset: 0;
685
- background-color: rgba(9, 84, 159, 0.6);
686
- z-index: -1;
687
- }
688
- }
726
+ & > .container {
727
+ animation-name: slideFromRight;
728
+ animation-duration: var(--animation-time);
729
+ animation-fill-mode: forwards;
730
+ }
689
731
 
690
- >.container {
691
- transform: translateX(-100%);
692
- }
732
+ #overlay {
733
+ position: fixed;
734
+ inset: 0;
735
+ background: var(--qld-color-default-color-dark-background-alt-shade);
736
+ opacity: 0.9;
737
+ z-index: -1;
693
738
  }
694
-
739
+ }
740
+
741
+ > .container {
742
+ transform: translateX(-100%);
743
+ }
695
744
  }
696
- }
745
+ }
746
+ }
747
+
748
+ //Prevent double scrollbar when navabr is open
749
+ body:has(.navbar.show) {
750
+ overflow: hidden;
751
+ }