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

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 (161) hide show
  1. package/dist/assets/components/bs5/backToTop/backToTop.hbs +1 -1
  2. package/dist/assets/components/bs5/breadcrumbs/breadcrumbs.hbs +19 -15
  3. package/dist/assets/components/bs5/button/button.hbs +48 -30
  4. package/dist/assets/components/bs5/containerLayout/containerLayout.hbs +100 -0
  5. package/dist/assets/components/bs5/contentFooter/contentFooter.hbs +15 -4
  6. package/dist/assets/components/bs5/formcheck/formcheck.hbs +1 -1
  7. package/dist/assets/components/bs5/head/head.hbs +1 -1
  8. package/dist/assets/components/bs5/iconLink/iconLink.hbs +41 -0
  9. package/dist/assets/components/bs5/logo/logo.hbs +7 -0
  10. package/dist/assets/components/bs5/logo/logoCOALandscape.hbs +58 -0
  11. package/dist/assets/components/bs5/logo/logoCOALandscape2Lines.hbs +58 -0
  12. package/dist/assets/components/bs5/navbar/navbar.hbs +65 -245
  13. package/dist/assets/components/bs5/pageLayout/pageLayout.hbs +11 -10
  14. package/dist/assets/components/bs5/pageLayout/templates/contentPageWithForm.hbs +78 -0
  15. package/dist/assets/components/bs5/pageLayout/templates/contentPageWithSideNavigation.hbs +103 -0
  16. package/dist/assets/components/bs5/pageLayout/templates/fullWidthLandingPage.hbs +61 -0
  17. package/dist/assets/components/bs5/searchInput/searchInput.hbs +8 -10
  18. package/dist/assets/css/qld.bootstrap.css +1 -1
  19. package/dist/assets/css/qld.bootstrap.css.map +3 -3
  20. package/dist/assets/js/bootstrap.bundle.js +3 -6
  21. package/dist/assets/js/bootstrap.bundle.js.map +1 -1
  22. package/dist/assets/js/bootstrap.bundle.min.js +2 -2
  23. package/dist/assets/js/bootstrap.bundle.min.js.map +1 -1
  24. package/dist/assets/js/bootstrap.js +3 -6
  25. package/dist/assets/js/bootstrap.min.js +2 -2
  26. package/dist/assets/js/bootstrap.min.js.map +1 -1
  27. package/dist/assets/js/handlebars.helpers.bundle.js +1 -1
  28. package/dist/assets/js/handlebars.helpers.bundle.js.map +3 -3
  29. package/dist/assets/js/handlebars.helpers.js +51 -40
  30. package/dist/assets/js/handlebars.init.min.js +698 -347
  31. package/dist/assets/js/handlebars.init.min.js.map +4 -4
  32. package/dist/assets/js/handlebars.partials.js +16 -0
  33. package/dist/assets/js/qld.bootstrap.min.js +9 -9
  34. package/dist/assets/js/qld.bootstrap.min.js.map +4 -4
  35. package/dist/assets/node/handlebars.init.min.js +359 -72
  36. package/dist/assets/node/handlebars.init.min.js.map +3 -3
  37. package/dist/components/bs5/backToTop/backToTop.hbs +1 -1
  38. package/dist/components/bs5/breadcrumbs/breadcrumbs.hbs +19 -15
  39. package/dist/components/bs5/button/button.hbs +48 -30
  40. package/dist/components/bs5/containerLayout/containerLayout.hbs +100 -0
  41. package/dist/components/bs5/contentFooter/contentFooter.hbs +15 -4
  42. package/dist/components/bs5/formcheck/formcheck.hbs +1 -1
  43. package/dist/components/bs5/head/head.hbs +1 -1
  44. package/dist/components/bs5/iconLink/iconLink.hbs +41 -0
  45. package/dist/components/bs5/logo/logo.hbs +7 -0
  46. package/dist/components/bs5/logo/logoCOALandscape.hbs +58 -0
  47. package/dist/components/bs5/logo/logoCOALandscape2Lines.hbs +58 -0
  48. package/dist/components/bs5/navbar/navbar.hbs +65 -245
  49. package/dist/components/bs5/pageLayout/pageLayout.hbs +11 -10
  50. package/dist/components/bs5/pageLayout/templates/contentPageWithForm.hbs +78 -0
  51. package/dist/components/bs5/pageLayout/templates/contentPageWithSideNavigation.hbs +103 -0
  52. package/dist/components/bs5/pageLayout/templates/fullWidthLandingPage.hbs +61 -0
  53. package/dist/components/bs5/searchInput/searchInput.hbs +8 -10
  54. package/dist/components/handlebars.helpers.js +51 -40
  55. package/dist/components/handlebars.partials.js +16 -0
  56. package/dist/package.json +2 -2
  57. package/dist/sample-data/breadcrumbs/breadcrumbs.data.json +113 -49
  58. package/dist/sample-data/button/button.data.json +10 -8
  59. package/dist/sample-data/contentFooter/contentFooter.data.json +9 -1
  60. package/dist/sample-data/formcheck/stories/checkbox/checkbox.data.json +51 -46
  61. package/dist/sample-data/formcheck/stories/radio/radio.data.json +51 -46
  62. package/dist/sample-data/iconLink/iconLink.data.json +77 -0
  63. package/dist/sample-data/logo/logo.data.json +6 -0
  64. package/dist/sample-data/navbar/navbar.data.json +191 -0
  65. package/dist/sample-data/searchInput/searchInput.data.json +2 -3
  66. package/dist/sample-data/tabs/tabs.data.json +45 -44
  67. package/package.json +2 -2
  68. package/src/components/bs5/backToTop/backToTop.hbs +1 -1
  69. package/src/components/bs5/banner/banner.scss +52 -46
  70. package/src/components/bs5/breadcrumbs/__snapshots__/breadcrumbs.test.js.snap +49 -0
  71. package/src/components/bs5/breadcrumbs/breadcrumbs.data.json +113 -49
  72. package/src/components/bs5/breadcrumbs/breadcrumbs.functions.js +169 -0
  73. package/src/components/bs5/breadcrumbs/breadcrumbs.hbs +19 -15
  74. package/src/components/bs5/breadcrumbs/breadcrumbs.scss +164 -43
  75. package/src/components/bs5/breadcrumbs/breadcrumbs.stories.js +16 -2
  76. package/src/components/bs5/breadcrumbs/breadcrumbs.test.js +136 -0
  77. package/src/components/bs5/button/button.data.json +10 -8
  78. package/src/components/bs5/button/button.hbs +48 -30
  79. package/src/components/bs5/button/button.scss +365 -244
  80. package/src/components/bs5/button/button.stories.js +116 -30
  81. package/src/components/bs5/containerLayout/containerLayout.hbs +100 -0
  82. package/src/components/bs5/containerLayout/containerLayout.stories.js +83 -0
  83. package/src/components/bs5/contentFooter/contentFooter.data.json +9 -1
  84. package/src/components/bs5/contentFooter/contentFooter.hbs +15 -4
  85. package/src/components/bs5/formcheck/formcheck.hbs +1 -1
  86. package/src/components/bs5/formcheck/formcheck.scss +161 -139
  87. package/src/components/bs5/formcheck/stories/checkbox/checkbox.data.json +51 -46
  88. package/src/components/bs5/formcheck/stories/radio/radio.data.json +51 -46
  89. package/src/components/bs5/iconLink/iconLink.data.json +77 -0
  90. package/src/components/bs5/iconLink/iconLink.hbs +41 -0
  91. package/src/components/bs5/iconLink/iconLink.js +20 -0
  92. package/src/components/bs5/iconLink/iconLink.mdx +16 -0
  93. package/src/components/bs5/iconLink/iconLink.scss +57 -0
  94. package/src/components/bs5/iconLink/iconLink.stories.js +127 -0
  95. package/src/components/bs5/icons/icons.scss +79 -72
  96. package/src/components/bs5/inpagenav/inpagenav.scss +37 -37
  97. package/src/components/bs5/logo/Logo.js +20 -0
  98. package/src/components/bs5/logo/Logo.mdx +10 -0
  99. package/src/components/bs5/logo/logo.data.json +6 -0
  100. package/src/components/bs5/logo/logo.hbs +7 -0
  101. package/src/components/bs5/logo/logo.stories.js +32 -0
  102. package/src/components/bs5/logo/logoCOALandscape.hbs +58 -0
  103. package/src/components/bs5/logo/logoCOALandscape2Lines.hbs +58 -0
  104. package/src/components/bs5/navbar/Navbar.js +2 -9
  105. package/src/components/bs5/navbar/navbar.data.json +191 -0
  106. package/src/components/bs5/navbar/navbar.functions.js +48 -196
  107. package/src/components/bs5/navbar/navbar.hbs +65 -245
  108. package/src/components/bs5/navbar/navbar.scss +585 -518
  109. package/src/components/bs5/navbar/navbar.stories.js +532 -0
  110. package/src/components/bs5/pageLayout/ContentPageWithForm.js +8 -0
  111. package/src/components/bs5/pageLayout/ContentPageWithSideNavigation.js +8 -0
  112. package/src/components/bs5/pageLayout/FullWidthLandingPage.js +8 -0
  113. package/src/components/bs5/pageLayout/pageLayout.hbs +11 -10
  114. package/src/components/bs5/pageLayout/pageLayout.stories.js +230 -6
  115. package/src/components/bs5/pageLayout/templates/contentPageWithForm.hbs +78 -0
  116. package/src/components/bs5/pageLayout/templates/contentPageWithSideNavigation.hbs +103 -0
  117. package/src/components/bs5/pageLayout/templates/fullWidthLandingPage.hbs +61 -0
  118. package/src/components/bs5/searchInput/__snapshots__/searchInput.test.js.snap +9 -8
  119. package/src/components/bs5/searchInput/search.functions.js +94 -63
  120. package/src/components/bs5/searchInput/searchInput.data.json +2 -3
  121. package/src/components/bs5/searchInput/searchInput.hbs +8 -10
  122. package/src/components/bs5/searchInput/searchInput.scss +296 -255
  123. package/src/components/bs5/searchInput/searchInput.test.js +98 -89
  124. package/src/components/bs5/sidenav/sidenav.stories.js +17 -15
  125. package/src/components/bs5/tabs/tabs.data.json +45 -44
  126. package/src/components/bs5/tabs/tabs.scss +544 -500
  127. package/src/components/bs5/tabs/tabs.stories.js +81 -51
  128. package/src/components/common/footer/footer.scss +137 -140
  129. package/src/components/common/layout/container.scss +22 -0
  130. package/src/components/common/layout/content.scss +11 -4
  131. package/src/components/common/layout/grid.scss +26 -0
  132. package/src/css/main.scss +5 -4
  133. package/src/css/qld-variables.scss +102 -81
  134. package/src/js/handlebars.helpers.js +51 -40
  135. package/src/js/handlebars.partials.js +16 -0
  136. package/src/js/qld.bootstrap.js +17 -9
  137. package/src/components/bs5/backToTop/backToTop.scss +0 -9
  138. package/src/components/bs5/breadcrumbs/breadcrumb.functions.js +0 -95
  139. package/src/components/bs5/breadcumbsWrapper/breadcrumbsWrapper.stories.js +0 -34
  140. package/src/components/bs5/contentFooterWrapper/contentFooterWrapper.stories.js +0 -36
  141. package/src/components/bs5/contentWrapper/contentWrapper.stories.js +0 -65
  142. package/src/components/bs5/fullPageWrapper/fullPage.stories.js +0 -63
  143. package/src/components/bs5/mainContainerWrapper/mainContainerWrapper.stories.js +0 -50
  144. package/src/components/bs5/navbar/_colours.scss +0 -85
  145. package/src/components/bs5/navbar/_icons.scss +0 -64
  146. package/src/components/bs5/sidenavWrapper/SidenavWrapper.mdx +0 -11
  147. package/src/components/bs5/sidenavWrapper/sidenavWrapper.stories.js +0 -65
  148. package/src/stories/integration/MainIntegration.js +0 -28
  149. package/src/stories/integration/MainIntegration.mdx +0 -10
  150. package/src/stories/integration/breadcrumb.data.json +0 -28
  151. package/src/stories/integration/content.data.json +0 -3
  152. package/src/stories/integration/contentFooter.data.json +0 -3
  153. package/src/stories/integration/footer.data.json +0 -111
  154. package/src/stories/integration/globalAlert.data.json +0 -10
  155. package/src/stories/integration/header.data.json +0 -173
  156. package/src/stories/integration/inpagenav.data.json +0 -26
  157. package/src/stories/integration/integration.stories.js +0 -147
  158. package/src/stories/integration/main.hbs +0 -13
  159. package/src/stories/integration/navigation.data.json +0 -22
  160. package/src/stories/integration/search.data.json +0 -20
  161. package/src/stories/integration/sidenav.data.json +0 -88
@@ -1,629 +1,696 @@
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);
14
- align-items: center;
15
-
16
- @include media-breakpoint-up(lg) {
17
- .desktop-only {
18
- display: block;
19
- }
20
- .nav-item-group {
21
- display: block;
22
- display: none;
23
- }
24
- }
25
-
26
- // Mobile
27
- @include media-breakpoint-down(lg) {
28
- .desktop-only {
29
- display: none;
30
- }
31
- .nav-item-group {
1
+ @mixin repeatedVerticalStyles {
2
+ .nav-header {
3
+ height: 4rem;
32
4
  display: flex;
33
- flex-wrap: wrap;
34
- width: 100%;
5
+ align-items: center;
6
+ color: var(--header-color);
35
7
 
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
- }
8
+ a {
9
+ color: var(--header-color);
45
10
  }
46
11
 
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
- }
12
+ .navbar-brand {
13
+ font-size: 0.875rem;
14
+ padding: 1rem;
70
15
  }
71
16
 
72
- ul.dropdown-menu {
73
- flex: 1 1 100%;
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;
74
24
  }
25
+ }
75
26
 
76
- .dropdown-toggle {
77
- max-width: 2rem;
78
- border-left: solid 1px var(--#{$prefix}navbar-border-color);
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%;
79
41
  }
80
- }
81
- }
82
42
 
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
+ }
83
58
 
84
- &-collapse {
85
- position: relative;
59
+ &>a {
60
+ width: calc(100% - 3rem);
61
+ border-start-end-radius: 1rem;
62
+ }
86
63
 
87
- @include media-breakpoint-down(md) {
88
- width: 20rem;
89
- }
64
+ &:has(.show) {
65
+ background-color: var(--background-color-hover);
90
66
 
91
- @include media-breakpoint-up(md) {
92
- width: 26.25rem;
93
- }
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
+ }
94
80
 
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%);
107
- }
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
+ }
108
97
 
109
- &.collapsing {
110
- transition: none;
111
- /* Disable transitions when state is changing to avoid flickering */
112
- }
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
+ }
113
115
 
114
- &.show {
115
- transform: translateX(0);
116
- /* Slide into view */
117
- }
118
- }
116
+ .nav-link {
117
+ border-block-end: 0;
118
+ }
119
+ }
119
120
 
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;
121
+ &:has(.dropdown-menu.show) {
122
+ border-block-end-width: 0;
123
+ }
127
124
 
128
- @include media-breakpoint-up(lg) {
129
- display: none;
130
- }
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
+ }
131
139
 
132
- .qld__main-nav__toggle {
133
- margin-left: auto;
134
- }
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
+ }
135
162
 
136
- .navbar__heading {
137
- font-size: .875rem;
138
- line-height: 1.42;
139
- margin: 0 1rem;
140
- font-weight: normal;
163
+ p {
164
+ position: absolute;
165
+ left: -9999px;
166
+ }
141
167
 
142
- @include media-breakpoint-up(md) {
143
- font-size: 1rem;
144
- line-height: 1.5;
145
- line-height: 4.5rem;
168
+ &:has(.view-all),
169
+ &:has(.parent-link) {
170
+ display: none;
171
+ }
172
+ }
173
+ }
174
+ }
146
175
  }
147
176
 
148
- @include media-breakpoint-up(lg) {
149
- display: none;
177
+ li {
178
+ border-block-end: 1px solid var(--border-color);
150
179
  }
151
180
 
152
- @include media-breakpoint-down(lg) {
153
- color: var(--#{$prefix}navbar-mobile-text-color);
154
- }
155
- }
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;
156
189
 
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;
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;
177
195
  }
178
196
  }
179
197
 
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
- }
198
+ a.nav-link {
199
+ border-block-end: 0;
200
+ margin-block-end: 0;
184
201
 
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
- }
202
+ &:hover,
203
+ &.active {
204
+ border-block-end: 0;
193
205
 
194
- &:focus {
195
- outline: 3px solid var(--#{$prefix}color-default-color-dark-focus-default);
196
- outline-offset: 2px;
197
- }
206
+ &:hover {
207
+ margin-block-end: 0;
208
+ border-block-end: 0;
209
+ }
210
+ }
198
211
 
199
- @include media-breakpoint-up(md) {
200
- padding: 0.75rem 1rem;
201
- }
212
+ &.dropdown-toggle {
213
+ &::after {
214
+ display: none;
215
+ visibility: hidden;
216
+ }
202
217
 
203
- &-text {
204
- font-size: 0.625rem;
205
- margin-top: 0.25rem;
206
- line-height: 1rem;
218
+ background: transparent;
207
219
 
208
- @include media-breakpoint-up(md) {
209
- margin-top: 0.625rem;
210
- font-size: .875rem;
211
- line-height: 1.14;
220
+ &:hover {
221
+ background-color: transparent;
222
+ }
223
+ }
224
+ &:focus {
225
+ outline-offset: 0;
212
226
  }
213
227
  }
228
+ }
229
+ }
214
230
 
215
- &:before {
216
- font-size: 1rem;
217
- line-height: 1;
218
- margin-bottom: 0.25rem;
219
- display: block;
220
- text-align: center
221
- }
231
+ @keyframes slideFromRight {
232
+ 0% {
233
+ transform: translateX(100%);
234
+ }
222
235
 
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
- }
236
+ 100% {
237
+ transform: translateX(0);
238
+ }
239
+ }
235
240
 
236
- @include media-breakpoint-up(md) {
237
- height: 1.25rem;
238
- width: 1.25rem;
239
- margin: 0 auto;
240
- }
241
- }
241
+ @keyframes slideToRight {
242
+ 0% {
243
+ transform: translateX(0);
244
+ }
242
245
 
243
- &--open {
244
- background-color: transparent;
246
+ 100% {
247
+ transform: translateX(100%);
248
+ }
249
+ }
245
250
 
246
- &:active {
247
- background-color: var(--#{$prefix}navbar-menuitem-hover);
248
- }
249
- }
251
+ #burgerBtn {
252
+ min-width: auto;
253
+ flex-direction: column;
254
+ gap: 0;
255
+ }
250
256
 
251
- &--close {
252
- background-color: transparent;
253
- z-index: 100;
257
+ .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;
288
+ }
289
+
290
+ /* override */
291
+ &.collapsing {
292
+ transition: none !important;
293
+ }
254
294
 
255
- @include media-breakpoint-up(md) {
256
- border-width: 2px
257
- }
295
+ &.collapse:not(.show) {
296
+ display: block;
297
+ }
258
298
 
259
- }
299
+ .qld-icon-md {
300
+ height: 2rem;
301
+ }
302
+
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
+ }
322
+
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);
260
351
  }
261
352
  }
262
353
 
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;
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 {
274
360
  display: none;
275
- z-index: 2;
276
361
  }
277
362
 
278
- &__overlay.show {
279
- opacity: .95;
280
- right: 0;
281
- display: block;
363
+ .container {
364
+ position: relative;
365
+ }
282
366
 
283
- @include media-breakpoint-up(lg) {
284
- display: none;
367
+ .nav-item {
368
+ position: static;
369
+ &.mobile-only {
370
+ display: var(--mobile-only-display);
285
371
  }
286
372
  }
287
373
 
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};
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);
293
378
 
294
- @include media-breakpoint-down(lg) {
295
- border-left: 4px solid var(--#{$prefix}navbar-border-accent);
296
- background-color: var(--#{$prefix}navbar-bg-color);
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
+ }
297
388
  }
298
389
 
299
- .dropdown-container {
300
- display: flex;
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);
301
394
  }
302
395
 
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);
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
+ }
404
+ }
308
405
 
309
- .mobile-only {
406
+ .navbar-nav a.nav-link,
407
+ a.dropdown-item {
408
+ color: var(--link-color);
409
+ padding: 0.75rem;
410
+ display: flex;
411
+ line-height: 2rem;
412
+ gap: 1rem;
413
+ align-items: center;
414
+
415
+ &:hover {
416
+ text-decoration: underline;
417
+ text-underline-offset: 0.3rem;
418
+ text-decoration-thickness: 0.125rem;
419
+ }
420
+ &:focus {
421
+ outline-offset: -2px;
422
+ box-shadow: none;
423
+ }
424
+ }
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
+ }
443
+ }
444
+
445
+ }
446
+ a.dropdown-item {
447
+ &:hover {
448
+ background-color: transparent;
449
+ }
450
+ }
310
451
 
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);
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
+ }
314
475
 
315
- .dropdown-item {
316
- color: var(--#{$prefix}navbar-mobile-text-color);
317
- border-bottom: solid 1px var(--#{$prefix}navbar-mobile-border-color);
318
- }
476
+ li {
477
+ display: flex;
478
+ &.mobile-only {
479
+ display: var(--mobile-only-display);
480
+ }
481
+ &:has(p) {
482
+ flex-direction: column;
483
+ }
484
+
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));
319
507
  }
320
508
 
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
- }
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;
333
517
  }
518
+ }
334
519
 
335
-
520
+ p {
521
+ text-align: start;
522
+ margin-block-start: 1rem;
336
523
  }
337
524
  }
338
- }
339
525
 
340
- .dropdown {
341
- position: static;
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;
342
531
 
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);
532
+ .dropdown-item {
533
+ border-block-end: 0;
534
+ gap: 1rem;
535
+ transition: gap var(--animation-time) ease-in-out;
362
536
 
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
537
+ &::after {
538
+ margin-inline-start: 0;
377
539
  }
378
- }
379
540
 
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;
541
+ &:hover {
542
+ gap: 1.75rem;
543
+ transition: gap var(--animation-time) ease-in-out;
391
544
  }
392
545
  }
546
+ }
393
547
 
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
- }
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));
407
572
  }
408
573
 
409
- p.dropdown-menu__description {
410
- margin: 1rem 0 0 0;
411
- color: var(--#{$prefix}navbar-text-color);
574
+ &::after {
575
+ content: "";
576
+ content: none;
412
577
  }
413
578
 
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
- }
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;
425
583
 
426
- &:focus {
427
- text-decoration: underline;
428
- text-underline-offset: 5px;
429
- background-color: inherit;
430
- }
431
584
  }
585
+ }
586
+ }
587
+ }
432
588
 
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
- }
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;
459
599
 
460
- &:hover,
461
- &:focus {
462
- text-decoration: underline;
463
- text-underline-offset: 5px;
464
- background-color: inherit;
600
+ @include repeatedVerticalStyles;
601
+ }
465
602
 
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
- }
603
+ &.vertical {
604
+ .navbar-collapse {
605
+ display: block !important;
606
+ }
471
607
 
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
- }
608
+ .nav-header {
609
+ display: none;
610
+ }
611
+ }
488
612
 
489
- @include media-breakpoint-down(lg) {
490
- padding: 1rem;
491
- overflow-wrap: break-word;
492
- }
493
- }
494
- }
495
- }
613
+ @media (width <=992px) {
496
614
 
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
- }
615
+ width: 100%;
616
+ height: 100vh;
617
+ align-items: start;
618
+ overflow-y: scroll;
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;
504
624
 
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
- }
511
- }
512
- }
513
- .nav-item {
625
+ @include repeatedVerticalStyles;
514
626
 
515
- @include media-breakpoint-down(lg) {
516
- border-bottom: solid 1px var(--#{$prefix}navbar-border-color);
627
+ .nav-header .navbar-brand {
628
+ color: var(--nav-header-color);
517
629
  }
518
630
 
519
- &.nav-item-home {
631
+ #burgerCloseBtn {
632
+ --qld-btn-close-bg: none;
520
633
  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
- }
533
-
534
- .qld__icon {
535
- display: block;
536
- height: 2rem;
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);
537
647
  width: 1.5rem;
538
- color: var(--#{$prefix}navbar-home-icon-color);
648
+ height: 1.5rem;
649
+ border: 0;
650
+ margin-left: 0;
539
651
  }
652
+ }
540
653
 
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
- }
654
+ &,
655
+ &.vertical {
656
+ position: fixed;
547
657
 
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
- }
658
+ &.close {
659
+ display: none;
574
660
  }
575
661
 
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
- }
662
+ .nav-header {
663
+ display: flex;
584
664
  }
585
665
 
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
- }
666
+ &.collapse>.container {
667
+ animation-name: slideToRight;
668
+ animation-duration: var(--animation-time);
669
+ animation-fill-mode: forwards;
670
+ margin-left: auto;
597
671
  }
598
672
 
599
-
600
- }
673
+ &.show {
674
+ display: block;
601
675
 
602
- .dropdown-toggle {
603
- // Default toggle icon
604
- &::before,
605
- &::after {
606
- content: none;
607
- }
676
+ &>.container {
677
+ animation-name: slideFromRight;
678
+ animation-duration: var(--animation-time);
679
+ animation-fill-mode: forwards;
680
+ }
608
681
 
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);
682
+ #overlay {
683
+ position: fixed;
684
+ inset: 0;
685
+ background-color: rgba(9, 84, 159, 0.6);
686
+ z-index: -1;
613
687
  }
614
688
  }
615
- }
616
- }
617
689
 
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;
690
+ >.container {
691
+ transform: translateX(-100%);
692
+ }
627
693
  }
694
+
628
695
  }
629
696
  }