@qld-gov-au/qgds-bootstrap5 1.1.40 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (184) hide show
  1. package/.eslintrc.cjs +27 -27
  2. package/.vscode/settings.json +5 -5
  3. package/dist/assets/components/bs5/button/button.hbs +48 -30
  4. package/dist/assets/components/bs5/card/card.hbs +3 -17
  5. package/dist/assets/components/bs5/containerLayout/containerLayout.hbs +100 -0
  6. package/dist/assets/components/bs5/footer/customLinks.hbs +7 -0
  7. package/dist/assets/components/bs5/footer/feedbackForm.hbs +25 -0
  8. package/dist/assets/components/bs5/footer/followLinks.hbs +14 -0
  9. package/dist/assets/components/bs5/footer/footer.hbs +229 -346
  10. package/dist/assets/components/bs5/formcheck/formcheck.hbs +1 -1
  11. package/dist/assets/components/bs5/head/head.hbs +4 -4
  12. package/dist/assets/components/bs5/header/header.hbs +124 -878
  13. package/dist/assets/components/bs5/header/headerBrand.hbs +35 -0
  14. package/dist/assets/components/bs5/link/link.hbs +41 -0
  15. package/dist/assets/components/bs5/logo/logoCOALandscape.hbs +110 -55
  16. package/dist/assets/components/bs5/logo/logoCOALandscape2Lines.hbs +2 -1
  17. package/dist/assets/components/bs5/navbar/navbar.hbs +65 -245
  18. package/dist/assets/components/bs5/pageLayout/templates/contentPageWithForm.hbs +53 -22
  19. package/dist/assets/components/bs5/pageLayout/templates/contentPageWithSideNavigation.hbs +79 -59
  20. package/dist/assets/components/bs5/pageLayout/templates/homePage.hbs +111 -0
  21. package/dist/assets/components/bs5/searchInput/searchInput.hbs +9 -11
  22. package/dist/assets/css/qld.bootstrap.css +1 -1
  23. package/dist/assets/css/qld.bootstrap.css.map +3 -3
  24. package/dist/assets/js/bootstrap.bundle.js +3 -6
  25. package/dist/assets/js/bootstrap.bundle.js.map +1 -1
  26. package/dist/assets/js/bootstrap.bundle.min.js +2 -2
  27. package/dist/assets/js/bootstrap.bundle.min.js.map +1 -1
  28. package/dist/assets/js/bootstrap.js +3 -6
  29. package/dist/assets/js/bootstrap.min.js +2 -2
  30. package/dist/assets/js/bootstrap.min.js.map +1 -1
  31. package/dist/assets/js/handlebars.helpers.bundle.js.map +2 -2
  32. package/dist/assets/js/handlebars.helpers.js +34 -34
  33. package/dist/assets/js/handlebars.init.min.js +1055 -2041
  34. package/dist/assets/js/handlebars.init.min.js.map +4 -4
  35. package/dist/assets/js/handlebars.partials.js +14 -6
  36. package/dist/assets/js/qld.bootstrap.min.js +9 -9
  37. package/dist/assets/js/qld.bootstrap.min.js.map +4 -4
  38. package/dist/assets/node/handlebars.init.min.js +538 -108
  39. package/dist/assets/node/handlebars.init.min.js.map +3 -3
  40. package/dist/components/bs5/button/button.hbs +48 -30
  41. package/dist/components/bs5/card/card.hbs +3 -17
  42. package/dist/components/bs5/containerLayout/containerLayout.hbs +100 -0
  43. package/dist/components/bs5/footer/customLinks.hbs +7 -0
  44. package/dist/components/bs5/footer/feedbackForm.hbs +25 -0
  45. package/dist/components/bs5/footer/followLinks.hbs +14 -0
  46. package/dist/components/bs5/footer/footer.hbs +229 -346
  47. package/dist/components/bs5/formcheck/formcheck.hbs +1 -1
  48. package/dist/components/bs5/head/head.hbs +4 -4
  49. package/dist/components/bs5/header/header.hbs +124 -878
  50. package/dist/components/bs5/header/headerBrand.hbs +35 -0
  51. package/dist/components/bs5/link/link.hbs +41 -0
  52. package/dist/components/bs5/logo/logoCOALandscape.hbs +110 -55
  53. package/dist/components/bs5/logo/logoCOALandscape2Lines.hbs +2 -1
  54. package/dist/components/bs5/navbar/navbar.hbs +65 -245
  55. package/dist/components/bs5/pageLayout/templates/contentPageWithForm.hbs +53 -22
  56. package/dist/components/bs5/pageLayout/templates/contentPageWithSideNavigation.hbs +79 -59
  57. package/dist/components/bs5/pageLayout/templates/homePage.hbs +111 -0
  58. package/dist/components/bs5/searchInput/searchInput.hbs +9 -11
  59. package/dist/components/handlebars.helpers.js +34 -34
  60. package/dist/components/handlebars.partials.js +14 -6
  61. package/dist/package.json +2 -2
  62. package/dist/sample-data/button/button.data.json +10 -8
  63. package/dist/sample-data/footer/footer.data.json +128 -84
  64. package/dist/sample-data/formcheck/stories/checkbox/checkbox.data.json +51 -46
  65. package/dist/sample-data/formcheck/stories/radio/radio.data.json +51 -46
  66. package/dist/sample-data/header/header.variant.coBrand.data.json +28 -40
  67. package/dist/sample-data/header/header.variant.endorsed.data.json +116 -150
  68. package/dist/sample-data/header/header.variant.masterBrand.data.json +116 -152
  69. package/dist/sample-data/header/header.variant.standAlone.data.json +118 -150
  70. package/dist/sample-data/header/header.variant.subBrand.data.json +32 -159
  71. package/dist/sample-data/inpageAlert/inpageAlert.data.json +6 -6
  72. package/dist/sample-data/link/link.data.json +77 -0
  73. package/dist/sample-data/logo/logo.data.json +1 -0
  74. package/dist/sample-data/navbar/navbar.data.json +191 -0
  75. package/dist/sample-data/searchInput/searchInput.data.json +2 -3
  76. package/dist/sample-data/tabs/tabs.data.json +45 -44
  77. package/package.json +2 -2
  78. package/src/components/bs5/accordion/Accordion.mdx +8 -2
  79. package/src/components/bs5/banner/Banner.mdx +6 -1
  80. package/src/components/bs5/banner/banner.scss +16 -9
  81. package/src/components/bs5/banner/banner.stories.js +17 -17
  82. package/src/components/bs5/breadcrumbs/Breadcrumbs.mdx +8 -2
  83. package/src/components/bs5/breadcrumbs/breadcrumbs.functions.js +2 -0
  84. package/src/components/bs5/breadcrumbs/breadcrumbs.scss +1 -1
  85. package/src/components/bs5/button/button.data.json +10 -8
  86. package/src/components/bs5/button/button.hbs +48 -30
  87. package/src/components/bs5/button/button.scss +61 -0
  88. package/src/components/bs5/button/button.stories.js +29 -10
  89. package/src/components/bs5/callToAction/callToAction.mdx +8 -3
  90. package/src/components/bs5/card/Card.mdx +8 -2
  91. package/src/components/bs5/card/card.hbs +3 -17
  92. package/src/components/bs5/card/card.scss +103 -103
  93. package/src/components/bs5/containerLayout/containerLayout.hbs +100 -0
  94. package/src/components/bs5/containerLayout/containerLayout.stories.js +83 -0
  95. package/src/components/bs5/footer/Footer.js +3 -3
  96. package/src/components/bs5/footer/Footer.mdx +8 -2
  97. package/src/components/bs5/footer/customLinks.hbs +7 -0
  98. package/src/components/bs5/footer/feedbackForm.hbs +25 -0
  99. package/src/components/bs5/footer/followLinks.hbs +14 -0
  100. package/src/components/bs5/footer/footer.data.json +128 -84
  101. package/src/components/bs5/footer/footer.functions.js +2 -1
  102. package/src/components/bs5/footer/footer.hbs +229 -346
  103. package/src/components/bs5/footer/footer.scss +262 -272
  104. package/src/components/bs5/footer/footer.stories.js +4 -92
  105. package/src/components/bs5/footer/footer_formio.scss +219 -0
  106. package/src/components/bs5/formcheck/formcheck.hbs +1 -1
  107. package/src/components/bs5/formcheck/formcheck.scss +161 -139
  108. package/src/components/bs5/formcheck/stories/checkbox/checkbox.data.json +51 -46
  109. package/src/components/bs5/formcheck/stories/radio/radio.data.json +51 -46
  110. package/src/components/bs5/globalAlert/GlobalAlert.mdx +8 -2
  111. package/src/components/bs5/globalAlert/globalAlert.test.js +3 -11
  112. package/src/components/bs5/header/_header-variables.scss +272 -0
  113. package/src/components/bs5/header/header.functions.js +9 -9
  114. package/src/components/bs5/header/header.hbs +124 -878
  115. package/src/components/bs5/header/header.scss +279 -411
  116. package/src/components/bs5/header/header.stories.js +8 -28
  117. package/src/components/bs5/header/header.variant.coBrand.data.json +28 -40
  118. package/src/components/bs5/header/header.variant.endorsed.data.json +116 -150
  119. package/src/components/bs5/header/header.variant.masterBrand.data.json +116 -152
  120. package/src/components/bs5/header/header.variant.standAlone.data.json +118 -150
  121. package/src/components/bs5/header/header.variant.subBrand.data.json +32 -159
  122. package/src/components/bs5/header/headerBrand.hbs +35 -0
  123. package/src/components/bs5/icons/icons.scss +79 -72
  124. package/src/components/bs5/inpageAlert/InpageAlert.mdx +8 -2
  125. package/src/components/bs5/inpageAlert/inpageAlert.data.json +6 -6
  126. package/src/components/bs5/inpagenav/inpagenav.scss +37 -37
  127. package/src/components/bs5/link/link.data.json +77 -0
  128. package/src/components/bs5/link/link.hbs +41 -0
  129. package/src/components/bs5/{pageLayout/pageLayout.js → link/link.js} +4 -5
  130. package/src/components/bs5/link/link.mdx +16 -0
  131. package/src/components/bs5/link/link.scss +81 -0
  132. package/src/components/bs5/link/link.stories.js +126 -0
  133. package/src/components/bs5/linkColumns/linkColumns.mdx +8 -3
  134. package/src/components/bs5/logo/logo.data.json +1 -0
  135. package/src/components/bs5/logo/logoCOALandscape.hbs +110 -55
  136. package/src/components/bs5/logo/logoCOALandscape2Lines.hbs +2 -1
  137. package/src/components/bs5/navbar/Navbar.js +2 -9
  138. package/src/components/bs5/navbar/navbar.data.json +191 -0
  139. package/src/components/bs5/navbar/navbar.functions.js +48 -196
  140. package/src/components/bs5/navbar/navbar.hbs +65 -245
  141. package/src/components/bs5/navbar/navbar.scss +684 -562
  142. package/src/components/bs5/navbar/navbar.stories.js +533 -0
  143. package/src/components/bs5/pageLayout/{FullWidthLandingPage.js → HomePage.js} +2 -2
  144. package/src/components/bs5/pageLayout/pageLayout.stories.js +242 -98
  145. package/src/components/bs5/pageLayout/templates/contentPageWithForm.hbs +53 -22
  146. package/src/components/bs5/pageLayout/templates/contentPageWithSideNavigation.hbs +79 -59
  147. package/src/components/bs5/pageLayout/templates/homePage.hbs +111 -0
  148. package/src/components/bs5/promotionalPanel/PromotionalPanel.mdx +8 -3
  149. package/src/components/bs5/searchInput/__snapshots__/searchInput.test.js.snap +10 -9
  150. package/src/components/bs5/searchInput/search.functions.js +94 -63
  151. package/src/components/bs5/searchInput/searchInput.data.json +2 -3
  152. package/src/components/bs5/searchInput/searchInput.hbs +9 -11
  153. package/src/components/bs5/searchInput/searchInput.scss +297 -255
  154. package/src/components/bs5/searchInput/searchInput.test.js +98 -90
  155. package/src/components/bs5/tabs/tabs.data.json +45 -44
  156. package/src/components/bs5/tabs/tabs.scss +544 -500
  157. package/src/components/bs5/tabs/tabs.stories.js +81 -51
  158. package/src/components/common/layout/container.scss +22 -0
  159. package/src/components/common/layout/content.scss +11 -4
  160. package/src/components/common/layout/grid.scss +26 -0
  161. package/src/css/main.scss +7 -2
  162. package/src/css/mixins/_index.scss +2 -1
  163. package/src/css/mixins/register-vars.scss +23 -0
  164. package/src/css/qld-variables.scss +106 -83
  165. package/src/css/utilities/_index.scss +1 -0
  166. package/src/css/utilities/responsive-visually-hidden.scss +10 -0
  167. package/src/js/handlebars.helpers.js +34 -34
  168. package/src/js/handlebars.partials.js +14 -6
  169. package/src/js/qld.bootstrap.js +10 -11
  170. package/dist/assets/components/bs5/footer/footerForgov.hbs +0 -279
  171. package/dist/assets/components/bs5/pageLayout/pageLayout.hbs +0 -34
  172. package/dist/assets/components/bs5/pageLayout/templates/fullWidthLandingPage.hbs +0 -61
  173. package/dist/components/bs5/footer/footerForgov.hbs +0 -279
  174. package/dist/components/bs5/pageLayout/pageLayout.hbs +0 -34
  175. package/dist/components/bs5/pageLayout/templates/fullWidthLandingPage.hbs +0 -61
  176. package/src/components/bs5/footer/_colours.scss +0 -149
  177. package/src/components/bs5/footer/_measurements.scss +0 -32
  178. package/src/components/bs5/footer/footerForgov.hbs +0 -279
  179. package/src/components/bs5/header/_colours.scss +0 -271
  180. package/src/components/bs5/header/_icons.scss +0 -10
  181. package/src/components/bs5/navbar/_colours.scss +0 -85
  182. package/src/components/bs5/navbar/_icons.scss +0 -64
  183. package/src/components/bs5/pageLayout/pageLayout.hbs +0 -34
  184. package/src/components/bs5/pageLayout/templates/fullWidthLandingPage.hbs +0 -61
@@ -1,629 +1,751 @@
1
- // //----------------------------------------------------------------------------------------------------------------------
2
- // // Primary navigation
3
- // // Palettes and second hand variables:
4
- // //----------------------------------------------------------------------------------------------------------------------
5
- @import './colours';
6
- @import './icons';
7
-
8
- // Component
9
- .navbar {
10
- margin: 0;
11
- padding: 0;
12
- background-color: var(--#{$prefix}navbar-bg-color);
13
- border-bottom: var(--#{$prefix}navbar-border-width) solid var(--#{$prefix}navbar-border-accent);
1
+ $_navbar-max-width: 26.25rem;
2
+
3
+ @mixin repeatedVerticalStyles {
4
+ .nav-header {
5
+ min-height: var(--qld-header-preheader-height, 4rem);
6
+ display: flex;
14
7
  align-items: center;
8
+ color: var(--header-color);
15
9
 
16
- @include media-breakpoint-up(lg) {
17
- .desktop-only {
18
- display: block;
19
- }
20
- .nav-item-group {
21
- display: block;
22
- display: none;
23
- }
10
+ a {
11
+ color: var(--header-color);
24
12
  }
25
13
 
26
- // Mobile
27
- @include media-breakpoint-down(lg) {
28
- .desktop-only {
29
- display: none;
30
- }
31
- .nav-item-group {
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%;
32
91
  display: flex;
33
- flex-wrap: wrap;
34
- width: 100%;
35
-
36
- a.first-element {
37
- flex: 1 1;
38
- &.show {
39
- border-top-right-radius: 1rem;
40
- background-color: var(--#{$prefix}navbar-dropdown-bg-color);
41
- }
42
- &:hover {
43
- background-color: var(--#{$prefix}navbar-menuitem-hover);
44
- }
45
- }
92
+ align-items: center;
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);
46
99
 
47
- button.second-element {
48
- padding: 0;
49
- border: none;
50
- flex: 1 1 auto;
51
- align-self: center;
52
- position: relative;
53
- cursor: pointer;
54
- -ms-flex-item-align: center;
55
-
56
- min-height: 2rem;
57
- min-width: 2rem;
58
-
59
- margin: 0 0.625rem;
60
- border-radius: 50%;
61
-
62
- background-color: var(--#{$prefix}navbar-mobile-menu-toggle-bg);
63
- -webkit-box-shadow: var(--#{$prefix}navbar-mobile-menu-toggle-boxshadow);
64
- box-shadow: var(--#{$prefix}navbar-mobile-menu-toggle-boxshadow);
65
-
66
- svg {
67
- height: 1rem;
68
- width: 1rem;
69
- }
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);
70
104
  }
71
105
 
72
- ul.dropdown-menu {
73
- flex: 1 1 100%;
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;
74
118
  }
75
-
76
- .dropdown-toggle {
77
- max-width: 2rem;
78
- border-left: solid 1px var(--#{$prefix}navbar-border-color);
119
+ &:focus {
120
+ outline: 2px solid var(--qld-focus-color);
79
121
  }
80
- }
81
- }
82
-
83
-
84
- &-collapse {
85
- position: relative;
86
-
87
- @include media-breakpoint-down(md) {
88
- width: 20rem;
89
- }
122
+ }
90
123
 
91
- @include media-breakpoint-up(md) {
92
- width: 26.25rem;
124
+ .nav-link {
125
+ border-block-end: 0;
126
+ }
93
127
  }
94
128
 
95
- @include media-breakpoint-down(lg) {
96
- z-index: 99;
97
- position: fixed;
98
- right: 0;
99
- top: 0;
100
- bottom: 0;
101
- overflow-x: hidden;
102
- background-color: var(--#{$prefix}navbar-mobile-bg-color);
103
-
104
- /* Initially positioned off-screen to the right */
105
- transition: transform .25s ease-in-out;
106
- transform: translateX(100%);
129
+ &:has(.dropdown-menu.show) {
130
+ border-block-end-width: 0;
107
131
  }
108
132
 
109
- &.collapsing {
110
- transition: none;
111
- /* Disable transitions when state is changing to avoid flickering */
112
- }
113
-
114
- &.show {
115
- transform: translateX(0);
116
- /* Slide into view */
117
- }
118
- }
119
-
120
- &__header {
121
- display: flex;
122
- background-color: var(--#{$prefix}navbar-mobile-header-bg-color);
123
- color: var(--#{$prefix}navbar-text-color);
124
- align-items: center;
125
- box-shadow: 0px 1px 2px rgba(0, 0, 0, .2), 0px 1px 3px 1px rgba(0, 0, 0, .1);
126
- position: relative;
127
-
128
- @include media-breakpoint-up(lg) {
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 {
129
145
  display: none;
130
- }
131
-
132
- .qld__main-nav__toggle {
133
- margin-left: auto;
134
- }
135
-
136
- .navbar__heading {
137
- font-size: .875rem;
138
- line-height: 1.42;
139
- margin: 0 1rem;
140
- font-weight: normal;
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
+ }
141
165
 
142
- @include media-breakpoint-up(md) {
143
- font-size: 1rem;
144
- line-height: 1.5;
145
- line-height: 4.5rem;
166
+ &:hover {
167
+ transition: none;
168
+ }
146
169
  }
147
170
 
148
- @include media-breakpoint-up(lg) {
149
- display: none;
171
+ p {
172
+ position: absolute;
173
+ left: -9999px;
150
174
  }
151
175
 
152
- @include media-breakpoint-down(lg) {
153
- color: var(--#{$prefix}navbar-mobile-text-color);
176
+ &:has(.view-all),
177
+ &:has(.parent-link) {
178
+ display: none;
154
179
  }
180
+ }
155
181
  }
182
+ }
183
+ }
156
184
 
157
- // Menu open and close toggles
158
- .navbar__toggle {
159
- border: 0;
160
- display: flex;
161
- flex-direction: column;
162
- padding: 0.5rem 1rem 0.25rem 1rem;
163
- margin-left: auto;
164
- font-size: .875rem;
165
- line-height: 1.14;
166
- appearance: none;
167
- background-color: transparent;
168
- cursor: pointer;
169
- align-items: center;
170
-
171
- @include media-breakpoint-up(lg) {
172
- color: var(--#{$prefix}navbar-text-color);
173
- border-left: solid 1px var(--#{$prefix}navbar-border-color);
174
- &:focus {
175
- outline: 2px solid var(--#{$prefix}navbar-text-focus-color);
176
- outline-offset: 2px;
177
- }
178
- }
179
-
180
- @include media-breakpoint-down(lg) {
181
- color: var(--#{$prefix}navbar-mobile-text-color);
182
- border-left: solid 1px var(--#{$prefix}navbar-mobile-border-color);
183
- }
184
-
185
- &:hover {
186
- @include media-breakpoint-down(lg) {
187
- background-color: var(--#{$prefix}navbar-mobile-menuitem-hover);
188
- }
189
- @include media-breakpoint-up(lg) {
190
- background-color: var(--#{$prefix}navbar-menuitem-hover);
191
- }
192
- }
193
-
194
- &:focus {
195
- outline: 3px solid var(--#{$prefix}color-default-color-dark-focus-default);
196
- outline-offset: 2px;
197
- }
198
-
199
- @include media-breakpoint-up(md) {
200
- padding: 0.75rem 1rem;
201
- }
202
-
203
- &-text {
204
- font-size: 0.625rem;
205
- margin-top: 0.25rem;
206
- line-height: 1rem;
207
-
208
- @include media-breakpoint-up(md) {
209
- margin-top: 0.625rem;
210
- font-size: .875rem;
211
- line-height: 1.14;
212
- }
213
- }
185
+ li {
186
+ border-block-end: 1px solid var(--border-color);
187
+ }
214
188
 
215
- &:before {
216
- font-size: 1rem;
217
- line-height: 1;
218
- margin-bottom: 0.25rem;
219
- display: block;
220
- text-align: center
221
- }
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
+ }
222
205
 
223
- svg {
224
- height: 1rem;
225
- width: 1rem;
226
- margin: 1px auto;
227
-
228
- @include media-breakpoint-up(lg) {
229
- color: var(--#{$prefix}navbar-svg-color);
230
- }
231
-
232
- @include media-breakpoint-down(lg) {
233
- color: var(--#{$prefix}navbar-mobile-svg-color);
234
- }
235
-
236
- @include media-breakpoint-up(md) {
237
- height: 1.25rem;
238
- width: 1.25rem;
239
- margin: 0 auto;
240
- }
241
- }
206
+ a.nav-link {
207
+ border-block-end: 0;
208
+ margin-block-end: 0;
242
209
 
243
- &--open {
244
- background-color: transparent;
210
+ &:hover,
211
+ &.active {
212
+ border-block-end: 0;
245
213
 
246
- &:active {
247
- background-color: var(--#{$prefix}navbar-menuitem-hover);
248
- }
249
- }
214
+ &:hover {
215
+ margin-block-end: 0;
216
+ border-block-end: 0;
217
+ }
218
+ }
250
219
 
251
- &--close {
252
- background-color: transparent;
253
- z-index: 100;
220
+ &.dropdown-toggle {
221
+ &::after {
222
+ display: none;
223
+ visibility: hidden;
224
+ }
254
225
 
255
- @include media-breakpoint-up(md) {
256
- border-width: 2px
257
- }
226
+ background: transparent;
258
227
 
259
- }
228
+ &:hover {
229
+ background-color: transparent;
260
230
  }
231
+ }
232
+ &:focus {
233
+ outline-offset: 0;
234
+ }
261
235
  }
236
+ }
237
+ }
238
+
239
+ @keyframes slideFromRight {
240
+ 0% {
241
+ transform: translateX(100%);
242
+ }
243
+
244
+ 100% {
245
+ transform: translateX(0);
246
+ }
247
+ }
248
+
249
+ @keyframes slideToRight {
250
+ 0% {
251
+ transform: translateX(0);
252
+ }
253
+
254
+ 100% {
255
+ transform: translateX(100%);
256
+ }
257
+ }
258
+
259
+ #burgerBtn {
260
+ min-width: auto;
261
+ flex-direction: column;
262
+ gap: 0;
263
+ }
262
264
 
263
- &__overlay {
264
- -webkit-transition: opacity .25s ease-in-out;
265
- transition: opacity .25s ease-in-out;
266
- background-color: var(--#{$prefix}navbar-overlay);
267
- cursor: pointer;
268
- position: fixed;
269
- top: 0;
270
- right: 0;
271
- bottom: 0;
272
- width: 100%;
273
- opacity: .4;
274
- display: none;
275
- z-index: 2;
265
+ .navbar {
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);
349
+ }
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);
362
+ }
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);
383
+ }
384
+ }
385
+
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);
391
+
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);
397
+
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
+ }
276
403
  }
277
404
 
278
- &__overlay.show {
279
- opacity: .95;
280
- right: 0;
281
- display: block;
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);
410
+ }
282
411
 
283
- @include media-breakpoint-up(lg) {
284
- display: none;
285
- }
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);
417
+ }
418
+ .qld-icon {
419
+ background-color: var(--action-icon-color);
286
420
  }
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;
287
431
 
288
- &-nav {
289
- $navbar-padding-x: 0;
290
- $navbar-padding-y: 0;
291
- --#{$prefix}navbar-padding-x: #{if($navbar-padding-x == null, 0, $navbar-padding-x)};
292
- --#{$prefix}navbar-padding-y: #{$navbar-padding-y};
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);
492
+ }
293
493
 
294
- @include media-breakpoint-down(lg) {
295
- border-left: 4px solid var(--#{$prefix}navbar-border-accent);
296
- background-color: var(--#{$prefix}navbar-bg-color);
297
- }
494
+ li {
495
+ display: flex;
496
+ &.mobile-only {
497
+ display: var(--mobile-only-display);
498
+ }
499
+ &:has(p) {
500
+ flex-direction: column;
501
+ }
298
502
 
299
- .dropdown-container {
300
- display: flex;
503
+ a {
504
+ display: flex;
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));
301
527
  }
302
528
 
303
- .nav-item.CTA_feature {
304
-
305
- color: var(--#{$prefix}navbar-mobile-text-color);
306
- background-color: var(--#{$prefix}navbar-mobile-cta-bg-color);
307
- border-bottom: solid 1px var(--#{$prefix}navbar-mobile-border-color);
308
-
309
- .mobile-only {
310
-
311
- .dropdown-menu.show {
312
- background-color: var(--#{$prefix}navbar-mobile-cta-bg-color-open);
313
- border-left: solid .25rem var(--#{$prefix}navbar-mobile-cta-bg-color-open);
314
-
315
- .dropdown-item {
316
- color: var(--#{$prefix}navbar-mobile-text-color);
317
- border-bottom: solid 1px var(--#{$prefix}navbar-mobile-border-color);
318
- }
319
- }
320
-
321
- .first-element {
322
- color: var(--#{$prefix}navbar-mobile-text-color) !important; //TO DO: resolve, caused by qld-type overrides
323
- &.show {
324
- background-color: var(--#{$prefix}navbar-mobile-cta-bg-color-open);
325
- .dropdown-item {
326
- border-bottom: solid 1px var(--#{$prefix}navbar-mobile-border-color);
327
- }
328
- }
329
- &:hover {
330
- color: var(--#{$prefix}navbar-mobile-text-color);
331
- background-color: var(--#{$prefix}navbar-mobile-cta-bg-color-open);
332
- }
333
- }
334
-
335
-
336
- }
529
+ &:hover {
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;
337
535
  }
536
+ &:focus {
537
+ outline-offset: 2px;
538
+ box-shadow: none;
539
+ }
540
+ }
541
+
542
+ p {
543
+ text-align: start;
544
+ margin-block-start: 1rem;
545
+ }
338
546
  }
339
547
 
340
- .dropdown {
341
- position: static;
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;
342
553
 
343
- &-menu {
344
- background-color: var(--#{$prefix}navbar-dropdown-bg-color);
345
-
346
- // Override the default bs-popper margin
347
- &[data-bs-popper] {
348
- margin-top: 1px;
349
- }
350
-
351
- @include media-breakpoint-up(lg) {
352
- left: 0;
353
- right: 0;
354
- width: 100%;
355
- padding: 3rem 4rem;
356
- margin-top: 0.5rem;
357
- margin-left: -4rem;
358
- border-radius: 0 0 .75rem .75rem;
359
- border: 0;
360
- -webkit-box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.3), 0px 2px 6px 2px rgba(0, 0, 0, 0.15);
361
- box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.3), -2px 2px 6px 2px rgba(0, 0, 0, 0.15);
362
-
363
- // Override the default bs-popper margin
364
- &[data-bs-popper] {
365
- margin-top: 9px !important; // Had to use important for override to work
366
- }
367
-
368
- &.show::before {
369
- position: absolute;
370
- content: ' ';
371
- height: 6px;
372
- top: -6px;
373
- left: 0;
374
- right: 0px;
375
- background-color: var(--#{$prefix}navbar-dropdown-bg-color);
376
- pointer-events: none; // so that pseudo-element isn't clickable
377
- }
378
- }
554
+ .dropdown-item {
555
+ border-block-end: 0;
556
+ gap: 1rem;
557
+ transition: gap var(--animation-time) ease-in-out;
379
558
 
380
- @include media-breakpoint-down(lg) {
381
- border-radius: 0;
382
- box-shadow: none;
383
- -webkit-box-shadow: none;
384
- padding: 0;
385
- &.show {
386
- border-left: solid 0.25rem var(--#{$prefix}navbar-dropdown-bg-color);
387
- margin-left: -0.25rem;
388
- border-top: 0;
389
- border-bottom: 0;
390
- border-right: 0;
391
- }
392
- }
559
+ &::after {
560
+ margin-inline-start: 0;
561
+ }
393
562
 
394
- &__inner {
395
- .dropdown-menu__featured {
396
- color: var(--#{$prefix}navbar-link-color);
397
- font-size: 1.5rem;
398
- text-decoration: none;
399
- font-weight: 600;
400
-
401
- &:hover,
402
- &:focus {
403
- text-decoration: underline;
404
- text-underline-offset: 5px;
405
- background-color: inherit;
406
- }
407
- }
408
-
409
- p.dropdown-menu__description {
410
- margin: 1rem 0 0 0;
411
- color: var(--#{$prefix}navbar-text-color);
412
- }
413
-
414
- .dropdown-menu__view_all {
415
- font-size: 1.25rem;
416
- font-weight: 600;
417
- text-decoration: none;
418
- color: var(--#{$prefix}navbar-link-color);
419
-
420
- &:hover {
421
- text-decoration: underline;
422
- text-underline-offset: 5px;
423
- background-color: inherit;
424
- }
425
-
426
- &:focus {
427
- text-decoration: underline;
428
- text-underline-offset: 5px;
429
- background-color: inherit;
430
- }
431
- }
432
-
433
- li {
434
-
435
- @include media-breakpoint-down(lg) {
436
- padding-right: 0;
437
- }
438
-
439
- @include media-breakpoint-up(lg) {
440
- a.dropdown-item {
441
- font-weight: 600;
442
- }
443
- }
444
-
445
- a.dropdown-item {
446
- padding: 1rem 0;
447
- color: var(--#{$prefix}navbar-link-color);
448
- border-bottom: solid 1px var(--#{$prefix}navbar-border-color);
449
- white-space: normal;
450
-
451
- .dropdown-item__text {
452
- display: inline-block;
453
- margin-right: 1.5rem;
454
- }
455
-
456
- &:active {
457
- background-color: transparent;
458
- }
459
-
460
- &:hover,
461
- &:focus {
462
- text-decoration: underline;
463
- text-underline-offset: 5px;
464
- background-color: inherit;
465
-
466
- @include media-breakpoint-down(lg) {
467
- border-left: solid 0.25rem var(--#{$prefix}navbar-menuitem-hover-border);
468
- margin-left: -0.25rem;
469
- }
470
- }
471
-
472
- &::after {
473
- width: 1.25rem;
474
- height: 1.25rem;
475
- margin: 0 0.5rem 0 0.5rem;
476
- content: "";
477
- -webkit-box-flex: 0;
478
- -ms-flex: 0 0 auto;
479
- flex: 0 0 auto;
480
- -webkit-transition: margin .2s ease;
481
- -o-transition: margin .2s ease;
482
- transition: margin .2s ease;
483
- -webkit-mask-repeat: no-repeat;
484
- mask-repeat: no-repeat;
485
- -webkit-mask-position: center;
486
- mask-position: center;
487
- }
488
-
489
- @include media-breakpoint-down(lg) {
490
- padding: 1rem;
491
- overflow-wrap: break-word;
492
- }
493
- }
494
- }
495
- }
563
+ &:hover {
564
+ gap: 1.75rem;
565
+ transition: gap var(--animation-time) ease-in-out;
566
+ }
567
+ }
568
+ }
496
569
 
497
- .dropdown-item__description {
498
- color: var(--#{$prefix}navbar-text-color);
499
- font-size: .875rem;
500
- line-height: 1.42;
501
- font-weight: normal;
502
- padding: 1rem 0rem;
503
- }
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;
504
576
 
505
- hr {
506
- margin: 2rem 0 2rem 0;
507
- border-bottom: solid 2px var(--#{$prefix}navbar-border-color);
508
- padding-right: calc(var(--qld-gutter-x)* .5);
509
- padding-left: calc(var(--qld-gutter-x)* .5);
510
- }
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;
586
+
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));
511
596
  }
512
- }
513
- .nav-item {
514
597
 
515
- @include media-breakpoint-down(lg) {
516
- border-bottom: solid 1px var(--#{$prefix}navbar-border-color);
598
+ &::after {
599
+ content: "";
600
+ content: none;
517
601
  }
518
602
 
519
- &.nav-item-home {
520
- display: flex;
521
- a.nav-link {
522
- display: inline-flex;
523
- @include media-breakpoint-down(lg) {
524
- width: 100%;
525
- }
526
- span.home-label {
527
- margin-left: 10px;
528
- @include media-breakpoint-up(lg) {
529
- display: none;
530
- }
531
- }
532
- }
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;
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;
631
+ }
533
632
 
534
- .qld__icon {
535
- display: block;
536
- height: 2rem;
537
- width: 1.5rem;
538
- color: var(--#{$prefix}navbar-home-icon-color);
539
- }
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
+ }
540
657
 
541
- @include media-breakpoint-up(lg) {
542
- &:hover .qld__icon {color: var(--#{$prefix}navbar-home-icon-color-hover);}
543
- }
544
- @include media-breakpoint-down(lg) {
545
- &:hover .qld__icon {color: var(--#{$prefix}navbar-mobile-home-icon-color);}
546
- }
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
+ }
696
+ }
547
697
 
548
- }
549
- .nav-link {
550
- color: var(--#{$prefix}navbar-nav-text-color) !important; //To do: Due to qld-type.css needing refractor. Remove later.
551
- text-decoration: none;
552
- line-height: 2rem;
553
- width: 100%;
554
- overflow-y: visible;
555
- position: relative;
556
- $navbar-nav-link-padding-x: 0.75rem;
557
- $navbar-nav-link-padding-y: 0.75rem;
558
-
559
- --#{$prefix}navbar-nav-link-padding-x: #{$navbar-nav-link-padding-x};
560
- --#{$prefix}nav-link-padding-x: #{$navbar-nav-link-padding-x};
561
- --#{$prefix}nav-link-padding-y: #{$navbar-nav-link-padding-y};
562
-
563
- &:hover,
564
- &.show:hover {
565
- text-decoration: underline;
566
- background-color: var(--#{$prefix}navbar-menuitem-hover);
567
- color: var(--#{$prefix}navbar-link-color-hover);
568
-
569
- @include media-breakpoint-up(lg) {
570
- background-color: var(--#{$prefix}navbar-menuitem-hover);
571
- border-bottom: var(--#{$prefix}navbar-border-width) solid var(--#{$prefix}navbar-menuitem-hover-border);
572
- margin-bottom: -0.5rem;
573
- }
574
- }
698
+ &,
699
+ &.vertical {
700
+ position: fixed;
575
701
 
576
- &.show {
577
- text-decoration: underline;
578
- color: var(--#{$prefix}navbar-link-color-hover);
579
- @include media-breakpoint-up(lg) {
580
- background-color: var(--#{$prefix}navbar-menuitem-active);
581
- border-bottom: var(--#{$prefix}navbar-border-width) solid var(--#{$prefix}navbar-menuitem-active);
582
- margin-bottom: -0.5rem;
583
- }
584
- }
702
+ &.close {
703
+ display: none;
704
+ }
585
705
 
586
- &-home-active {
587
- @include media-breakpoint-up(lg) {
588
- background-color: var(--#{$prefix}navbar-bg-color);
589
- border-bottom: var(--#{$prefix}navbar-border-width) solid var(--#{$prefix}navbar-bg-color);
590
- margin-bottom: -0.5rem;
591
- .qld__icon {color: var(--#{$prefix}navbar-home-icon-color-active);}
592
- &:hover .qld__icon {color: var(--#{$prefix}navbar-home-icon-color-hover);}
593
- }
594
- @include media-breakpoint-down(lg) {
595
- background-color: var(--#{$prefix}navbar-bg-color);
596
- }
597
- }
706
+ .nav-header {
707
+ display: flex;
708
+ }
598
709
 
599
-
600
- }
710
+ &.collapse > .container {
711
+ animation-name: slideToRight;
712
+ animation-duration: var(--animation-time);
713
+ animation-fill-mode: forwards;
714
+ margin-left: auto;
715
+ }
601
716
 
602
- .dropdown-toggle {
603
- // Default toggle icon
604
- &::before,
605
- &::after {
606
- content: none;
607
- }
717
+ &.collapse:not(.show) {
718
+ display: none;
719
+ }
608
720
 
609
- &:hover {
610
- @include media-breakpoint-down(lg) {
611
- -webkit-box-shadow: var(--#{$prefix}navbar-mobile-menu-toggle-boxshadow__hover);
612
- box-shadow: var(--#{$prefix}navbar-mobile-menu-toggle-boxshadow__hover);
613
- }
614
- }
721
+ &.show {
722
+ display: flex;
723
+ right: 0;
724
+ z-index: 10;
725
+
726
+ & > .container {
727
+ animation-name: slideFromRight;
728
+ animation-duration: var(--animation-time);
729
+ animation-fill-mode: forwards;
615
730
  }
616
- }
617
731
 
618
- // Navbar
619
- @include media-breakpoint-down(lg) {
620
- //Bootstrap shared navigation elements, hidden for mobile/tablet
621
- .dropdown-menu__featured,
622
- .dropdown-menu__description,
623
- .dropdown-menu__inner hr,
624
- .dropdown-menu__view_all,
625
- .dropdown-item__description {
626
- display: none;
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;
627
738
  }
739
+ }
740
+
741
+ > .container {
742
+ transform: translateX(-100%);
743
+ }
628
744
  }
629
- }
745
+ }
746
+ }
747
+
748
+ //Prevent double scrollbar when navabr is open
749
+ body:has(.navbar.show) {
750
+ overflow: hidden;
751
+ }