@qld-gov-au/qgds-bootstrap5 2.0.2 → 2.0.4

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 (88) hide show
  1. package/.storybook/preview.js +4 -1
  2. package/dist/assets/components/bs5/accordion/accordion.hbs +0 -3
  3. package/dist/assets/components/bs5/directionLinks/directionLinks.hbs +2 -1
  4. package/dist/assets/components/bs5/head/head.hbs +1 -1
  5. package/dist/assets/components/bs5/header/header.hbs +6 -9
  6. package/dist/assets/components/bs5/navbar/navbar.hbs +21 -14
  7. package/dist/assets/components/bs5/pageLayout/templates/contentPageWithForm.hbs +1 -1
  8. package/dist/assets/components/bs5/pageLayout/templates/contentPageWithSideNavigation.hbs +140 -108
  9. package/dist/assets/components/bs5/pageLayout/templates/homePage.hbs +1 -1
  10. package/dist/assets/components/bs5/searchInput/searchInput.hbs +34 -35
  11. package/dist/assets/components/bs5/sidenav/sidenav.hbs +56 -37
  12. package/dist/assets/css/qld.bootstrap.css +1 -6
  13. package/dist/assets/css/qld.bootstrap.css.map +3 -3
  14. package/dist/assets/js/handlebars.init.min.js +263 -212
  15. package/dist/assets/js/handlebars.init.min.js.map +2 -2
  16. package/dist/assets/js/qld.bootstrap.min.js +5 -5
  17. package/dist/assets/js/qld.bootstrap.min.js.map +4 -4
  18. package/dist/assets/node/handlebars.init.min.js +29 -25
  19. package/dist/assets/node/handlebars.init.min.js.map +2 -2
  20. package/dist/components/bs5/accordion/accordion.hbs +0 -3
  21. package/dist/components/bs5/directionLinks/directionLinks.hbs +2 -1
  22. package/dist/components/bs5/head/head.hbs +1 -1
  23. package/dist/components/bs5/header/header.hbs +6 -9
  24. package/dist/components/bs5/navbar/navbar.hbs +21 -14
  25. package/dist/components/bs5/pageLayout/templates/contentPageWithForm.hbs +1 -1
  26. package/dist/components/bs5/pageLayout/templates/contentPageWithSideNavigation.hbs +140 -108
  27. package/dist/components/bs5/pageLayout/templates/homePage.hbs +1 -1
  28. package/dist/components/bs5/searchInput/searchInput.hbs +34 -35
  29. package/dist/components/bs5/sidenav/sidenav.hbs +56 -37
  30. package/dist/package.json +2 -4
  31. package/dist/sample-data/navbar/navbar.data.json +91 -25
  32. package/dist/sample-data/pagination/pagination.data.json +19 -19
  33. package/dist/sample-data/searchInput/searchInput.data.json +0 -1
  34. package/dist/sample-data/sidenav/sidenav.data.json +81 -80
  35. package/package.json +2 -4
  36. package/src/components/bs5/accordion/Accordion.mdx +34 -10
  37. package/src/components/bs5/accordion/__snapshots__/accordion.test.js.snap +0 -3
  38. package/src/components/bs5/accordion/accordion.hbs +0 -3
  39. package/src/components/bs5/accordion/mdx/_designResources.mdx +6 -0
  40. package/src/components/bs5/accordion/mdx/_usageInstructions.mdx +10 -0
  41. package/src/components/bs5/blockquote/blockquote.scss +47 -7
  42. package/src/components/bs5/button/button.scss +4 -0
  43. package/src/components/bs5/directionLinks/directionLinks.hbs +2 -1
  44. package/src/components/bs5/directionLinks/directionLinks.scss +27 -80
  45. package/src/components/bs5/directionLinks/directionLinks.stories.js +7 -14
  46. package/src/components/bs5/header/header.hbs +6 -9
  47. package/src/components/bs5/header/header.scss +15 -27
  48. package/src/components/bs5/inpagenav/inpagenav.scss +7 -3
  49. package/src/components/bs5/logo/Logo.mdx +1 -1
  50. package/src/components/bs5/navbar/navbar.data.json +91 -25
  51. package/src/components/bs5/navbar/navbar.functions.js +4 -0
  52. package/src/components/bs5/navbar/navbar.hbs +21 -14
  53. package/src/components/bs5/navbar/navbar.scss +225 -170
  54. package/src/components/bs5/navbar/navbar.stories.js +31 -2
  55. package/src/components/bs5/pageLayout/pageLayout.stories.js +3 -1
  56. package/src/components/bs5/pageLayout/templates/contentPageWithForm.hbs +1 -1
  57. package/src/components/bs5/pageLayout/templates/contentPageWithSideNavigation.hbs +140 -108
  58. package/src/components/bs5/pageLayout/templates/homePage.hbs +1 -1
  59. package/src/components/bs5/pagination/pagination.data.json +19 -19
  60. package/src/components/bs5/pagination/pagination.scss +37 -63
  61. package/src/components/bs5/promotionalPanel/promotionalPanel.scss +23 -22
  62. package/src/components/bs5/quickexit/quickexit.functions.js +24 -37
  63. package/src/components/bs5/quickexit/quickexit.scss +4 -0
  64. package/src/components/bs5/searchInput/SearchInput.mdx +1 -1
  65. package/src/components/bs5/searchInput/__snapshots__/searchInput.test.js.snap +32 -34
  66. package/src/components/bs5/searchInput/searchInput.data.json +0 -1
  67. package/src/components/bs5/searchInput/searchInput.hbs +34 -35
  68. package/src/components/bs5/searchInput/searchInput.scss +216 -195
  69. package/src/components/bs5/searchInput/searchInput.stories.js +42 -26
  70. package/src/components/bs5/sidenav/sidenav.data.json +81 -80
  71. package/src/components/bs5/sidenav/sidenav.hbs +56 -37
  72. package/src/components/bs5/sidenav/sidenav.scss +236 -151
  73. package/src/components/bs5/skiplinks/skipLinks.functions.js +0 -9
  74. package/src/components/bs5/skiplinks/skipLinks.test.js +0 -1
  75. package/src/components/bs5/tabs/tabs.scss +47 -40
  76. package/src/components/common/layout/container.scss +5 -0
  77. package/src/components/common/layout/content.scss +16 -8
  78. package/src/css/main.scss +0 -7
  79. package/src/css/mixins/focusable.scss +11 -3
  80. package/src/css/mixins/make-icon.scss +7 -1
  81. package/src/css/qld-theme.scss +1 -0
  82. package/src/css/utilities/_index.scss +1 -0
  83. package/src/css/utilities/sr-only.scss +5 -0
  84. package/src/js/qld.bootstrap.js +1 -9
  85. package/src/stories/documentation/_storybookDocsTabs.jsx +63 -0
  86. package/src/stories/documentation/storybook-documentation.scss +51 -0
  87. package/src/components/bs5/pagination/health-icon-sprite.svg +0 -156
  88. package/src/components/bs5/searchInput/_colours.scss +0 -63
@@ -1,184 +1,269 @@
1
1
  .nav {
2
- --#{$prefix}nav-link-color: var(--#{$prefix}brand-primary);
2
+ --#{$prefix}nav-link-color: var(--#{$prefix}brand-primary);
3
3
  }
4
4
 
5
5
  @include color-mode(dark) {
6
- .nav {
7
- --#{$prefix}nav-link-color: #FFF;
8
- }
6
+ .nav {
7
+ --#{$prefix}nav-link-color: #fff;
8
+ }
9
9
  }
10
10
 
11
-
12
11
  .qld-side-navigation {
13
-
14
- --sidenav-level-one-left-padding: 0;
15
- --sidenav-level-two-padding: 2rem;
16
- --sidenav-level-three-padding: 3.5rem;
17
- --sidenav-navlink-padding: 1rem;
18
-
19
- --sidenav-hover-bg: var(--#{$prefix}extra-light-grey);
20
- --sidenav-hover-color: var(--#{$prefix}brand-primary);
21
- --sidenav-hover-underline-color: var(--#{$prefix}color-default-color-light-underline-hover);
22
- --sidenav-visited-color: var(--#{$prefix}color-default-color-light-link);
23
- --sidenav-active-color: var(--#{$prefix}color-default-color-light-text-heading);
24
-
25
- --sidenav-heading-border-color: #{$qld-brand-secondary};
26
- --sidenav-item-border-color: #{$qld-soft-grey};
27
- --sidenav-subitem-border-color: #{$qld-light-grey};
28
-
29
- --sidenav-submenu-divider: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='var(--#{$prefix}color-light-border)' d='M2 10h12v1H2zM2 5h1v5H2z'/%3E%3C/svg%3E");
30
-
31
- --sidenav-active-item-color: var(--light-text-heading);
32
-
12
+ --sidenav-level-one-left-padding: 0;
13
+ --sidenav-level-two-padding: 2rem;
14
+ --sidenav-level-three-padding: 3.5rem;
15
+ --sidenav-navlink-padding: 1rem;
16
+
17
+ --sidenav-hover-bg: var(--#{$prefix}extra-light-grey);
18
+ --sidenav-hover-color: var(--#{$prefix}brand-primary);
19
+ --sidenav-hover-underline-color: var(
20
+ --#{$prefix}color-default-color-light-underline-hover
21
+ );
22
+ --sidenav-visited-color: var(--#{$prefix}color-default-color-light-link);
23
+ --sidenav-active-color: var(
24
+ --#{$prefix}color-default-color-light-text-heading
25
+ );
26
+
27
+ --sidenav-heading-border-color: #{$qld-brand-secondary};
28
+ --sidenav-item-border-color: #{$qld-soft-grey};
29
+ --sidenav-subitem-border-color: #{$qld-light-grey};
30
+
31
+ --sidenav-submenu-divider: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='var(--#{$prefix}color-light-border)' d='M2 10h12v1H2zM2 5h1v5H2z'/%3E%3C/svg%3E");
32
+
33
+ --sidenav-active-item-color: var(--light-text-heading);
34
+
35
+ --#{$prefix}accordion-color: var(--#{$prefix}body-color);
36
+ --#{$prefix}accordion-bg: var(--#{$prefix}body-bg);
37
+ --#{$prefix}accordion-border-color: var(
38
+ --#{$prefix}color-default-color-light-border-default
39
+ );
40
+ --#{$prefix}accordion-border-width: 1px;
41
+ --#{$prefix}accordion-border-radius: 0;
42
+ --#{$prefix}accordion-inner-border-radius: 0;
43
+ --#{$prefix}accordion-btn-padding-x: 1rem;
44
+ --#{$prefix}accordion-btn-padding-y: 1rem;
45
+ --#{$prefix}accordion-btn-color: var(--#{$prefix}link-color);
46
+ --#{$prefix}accordion-btn-bg: var(--#{$prefix}extra-light-grey);
47
+ --#{$prefix}accordion-btn-icon: #{escape-svg($accordion-button-icon)};
48
+ --#{$prefix}accordion-btn-active-icon: #{escape-svg(
49
+ $accordion-button-active-icon
50
+ )};
51
+ --#{$prefix}accordion-btn-icon-width: 1.5rem;
52
+ --#{$prefix}accordion-btn-icon-transform: rotate(180deg);
53
+ --#{$prefix}accordion-btn-icon-transition: transform 0.25s ease-in;
54
+ --#{$prefix}accordion-btn-focus-box-shadow: none;
55
+ --#{$prefix}accordion-active-bg: var(--#{$prefix}accordion-btn-bg);
56
+ --#{$prefix}accordion-active-color: var(--#{$prefix}accordion-btn-color);
57
+ --#{$prefix}focus: var(--#{$prefix}light-focus);
58
+
59
+ .light & {
60
+ --#{$prefix}accordion-bg: var(--#{$prefix}light-background);
61
+ --#{$prefix}accordion-btn-bg: var(--#{$prefix}light-background-shade);
62
+ --#{$prefix}accordion-border-color: var(
63
+ --#{$prefix}color-default-color-light-border-light
64
+ );
65
+ }
66
+
67
+ .alt & {
68
+ --#{$prefix}accordion-bg: var(--#{$prefix}light-grey-alt);
69
+ --#{$prefix}accordion-btn-bg: var(--#{$prefix}grey);
70
+ --#{$prefix}accordion-border-color: var(--#{$prefix}soft-grey);
71
+ }
72
+
73
+ // Shared 'Dark' theme variables
74
+ .dark &,
75
+ .dark-alt & {
76
+ --#{$prefix}accordion-btn-icon: #{escape-svg($accordion-button-icon-dark)};
77
+ --#{$prefix}accordion-btn-active-icon: #{escape-svg(
78
+ $accordion-button-active-icon-dark
79
+ )};
80
+ --#{$prefix}accordion-color: var(--#{$prefix}white);
81
+ --#{$prefix}accordion-btn-color: var(--#{$prefix}white);
82
+ --#{$prefix}accordion-active-color: var(--#{$prefix}white);
83
+ --#{$prefix}focus: var(--#{$prefix}dark-focus);
84
+ }
85
+
86
+ // Theme specific variables
87
+ .dark & {
88
+ --#{$prefix}accordion-bg: var(--#{$prefix}brand-primary);
89
+ --#{$prefix}accordion-btn-bg: var(--#{$prefix}dark-background-shade);
90
+ --#{$prefix}accordion-border-color: var(--#{$prefix}dark-border);
91
+ }
92
+
93
+ .dark-alt & {
94
+ --#{$prefix}accordion-bg: var(--#{$prefix}dark-blue);
95
+ --#{$prefix}accordion-btn-bg: var(--#{$prefix}dark-blue-shade);
96
+ --#{$prefix}accordion-border-color: var(--#{$prefix}dark-alt-border);
97
+ }
33
98
  }
34
99
 
35
100
  .dark,
36
101
  .dark-alt {
37
- .qld-side-navigation {
38
- --sidenav-submenu-divider: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%2309ACFE' d='M2 10h12v1H2zM2 5h1v5H2z'/%3E%3C/svg%3E");
39
-
40
- --sidenav-hover-bg: var(--#{$prefix}color-default-color-dark-background-default-shade);
41
- --sidenav-hover-color: var(--#{$prefix}white);
42
- --sidenav-hover-underline-color: var(--#{$prefix}color-default-color-dark-underline-hover);
43
- --sidenav-visited-color: var(--#{$prefix}white);
44
- --sidenav-active-color: var(--#{$prefix}color-default-color-dark-text-heading);
45
-
46
- --sidenav-heading-border-color: var(--#{$prefix}brand-secondary);
47
- --sidenav-item-border-color: var(--#{$prefix}brand-primary-light);
48
- --sidenav-subitem-border-color: var(--#{$prefix}brand-primary-light);
49
- --sidenav-active-item-color: var(--#{$prefix}white);
50
- }
102
+ .qld-side-navigation {
103
+ --sidenav-submenu-divider: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%2309ACFE' d='M2 10h12v1H2zM2 5h1v5H2z'/%3E%3C/svg%3E");
104
+
105
+ --sidenav-hover-bg: var(
106
+ --#{$prefix}color-default-color-dark-background-default-shade
107
+ );
108
+ --sidenav-hover-color: var(--#{$prefix}white);
109
+ --sidenav-hover-underline-color: var(
110
+ --#{$prefix}color-default-color-dark-underline-hover
111
+ );
112
+ --sidenav-visited-color: var(--#{$prefix}white);
113
+ --sidenav-active-color: var(
114
+ --#{$prefix}color-default-color-dark-text-heading
115
+ );
116
+
117
+ --sidenav-heading-border-color: var(--#{$prefix}brand-secondary);
118
+ --sidenav-item-border-color: var(--#{$prefix}brand-primary-light);
119
+ --sidenav-subitem-border-color: var(--#{$prefix}brand-primary-light);
120
+ --sidenav-active-item-color: var(--#{$prefix}white);
121
+ }
51
122
  }
52
123
 
53
- @include color-mode(dark) {
54
-
55
- }
56
-
57
-
58
124
  .qld-side-navigation {
59
-
60
- .nav-title {
61
- color: var(--#{$prefix}-headings-color);
62
- line-height: 1.5;
63
- margin: 0;
64
- border-bottom: 2px solid var(--sidenav-heading-border-color);
65
-
66
- a {
67
- color: var(--#{$prefix}headings-color);
68
- text-decoration: none;
69
- font-weight: inherit;
70
- font-size: 1rem;
71
- }
72
-
73
- .nav-link {
74
- &:visited {
75
- color: var(--#{$prefix}headings-color);
76
- }
77
- }
125
+ border: var(--qld-accordion-border-width) solid
126
+ var(--qld-accordion-border-color);
127
+ background-color: var(--#{$prefix}accordion-bg);
128
+
129
+ .nav-title {
130
+ color: var(--#{$prefix}-headings-color);
131
+ line-height: 1.5;
132
+ margin: 0;
133
+ border-bottom: 2px solid var(--sidenav-heading-border-color);
134
+
135
+ a {
136
+ color: var(--#{$prefix}headings-color);
137
+ text-decoration: none;
138
+ font-weight: inherit;
139
+ font-size: 1rem;
78
140
  }
79
141
 
80
142
  .nav-link {
81
- padding: var(--sidenav-navlink-padding);
82
- font-size: 0.875rem;
83
- color: var(--body-color);
84
- text-decoration: none;
85
- transition-duration: 0s;
86
-
87
- //.nav-link Hover state
88
- &:hover {
89
- background-color: var(--sidenav-hover-bg);
90
- color: var(--sidenav-hover-color);
91
- text-decoration: underline;
92
- text-underline-offset: 0.25rem;
93
- text-decoration-thickness: 2px;
94
- }
95
- }
143
+ line-height: 1.5rem;
96
144
 
97
- a.nav-link {
98
- &:visited {
99
- color: var(--sidenav-visited-color);
100
- &:hover {
101
- color: var(--sidenav-hover-color);
102
- text-decoration-color: var(--sidenav-hover-underline-color);
103
- }
104
- }
145
+ &:visited {
146
+ color: var(--#{$prefix}headings-color);
147
+ }
148
+ }
149
+ }
150
+
151
+ .nav-link {
152
+ padding: var(--sidenav-navlink-padding);
153
+ font-size: 0.875rem;
154
+ color: var(--body-color);
155
+ text-decoration: none;
156
+ transition-duration: 0s;
157
+ line-height: 1.25rem;
158
+
159
+ //.nav-link Hover state
160
+ &:hover {
161
+ background-color: var(--sidenav-hover-bg);
162
+ color: var(--sidenav-hover-color);
163
+ text-decoration: underline;
164
+ text-underline-offset: 0.25rem;
165
+ text-decoration-thickness: 2px;
105
166
  }
106
167
 
107
- .nav-item.active {
108
- color: var(--sidenav-active-color);
168
+ &:focus-visible {
169
+ box-shadow: none;
109
170
  }
171
+ }
172
+
173
+ a.nav-link {
174
+ &:visited {
175
+ color: var(--sidenav-visited-color);
176
+ &:hover {
177
+ color: var(--sidenav-hover-color);
178
+ text-decoration-color: var(--sidenav-hover-underline-color);
179
+ }
180
+ }
181
+ }
110
182
 
111
- //Side navigation (ul.nav)
112
-
113
- ul.nav {
114
-
115
- //Side navigation all items remove all bullets
116
- //Reset all left padding
117
- ul, ol {
118
- list-style: none;
119
- padding-left: 0;
120
- }
183
+ .nav-item.active {
184
+ color: var(--sidenav-active-color);
185
+ }
121
186
 
122
- display: flex;
123
- flex-direction: column;
187
+ //Side navigation (ul.nav)
124
188
 
125
- //Specifically target the first level LI's only
126
- > li.nav-item {
189
+ ul.nav {
190
+ //Side navigation all items remove all bullets
191
+ //Reset all left padding
192
+ ul,
193
+ ol {
194
+ list-style: none;
195
+ padding-left: 0;
196
+ }
127
197
 
128
- border-top: 1px solid var(--sidenav-item-border-color);
198
+ display: flex;
199
+ flex-direction: column;
129
200
 
130
- &:first-child {
131
- border-top: none;
132
- }
201
+ //Specifically target the first level LI's only
202
+ > li.nav-item {
203
+ border-top: 1px solid var(--sidenav-item-border-color);
133
204
 
134
- }
135
-
136
- //All nav items, all levels
137
- li.nav-item {
138
-
139
- //Level two menu LI's
140
- > ul > li { border-top: 1px solid var(--sidenav-subitem-border-color) }
141
- > ul > li > .nav-link { padding-left: var( --sidenav-level-two-padding); }
142
-
143
- //Level three menu LI's
144
- > ul > li > ul > li { border-top: none }
145
- > ul > li > ul > li > .nav-link { padding-left: var( --sidenav-level-three-padding); }
146
-
147
- //li .nav-link.active
148
- &.active {
149
- .nav-link {
150
- font-weight: 600;
151
- color: var(--light-text-heading);
152
- text-decoration: none;
153
- pointer-events: none;
154
- }
155
- }
205
+ &:first-child {
206
+ border-top: none;
207
+ }
208
+ }
156
209
 
210
+ //All nav items, all levels
211
+ li.nav-item {
212
+ //Level two menu LI's
213
+ > ul > li {
214
+ border-top: 1px solid var(--sidenav-subitem-border-color);
215
+ }
216
+ > ul > li > .nav-link {
217
+ padding-left: var(--sidenav-level-two-padding);
218
+ }
219
+
220
+ //Level three menu LI's
221
+ > ul > li > ul > li {
222
+ border-top: none;
223
+ }
224
+ > ul > li > ul > li > .nav-link {
225
+ padding-left: var(--sidenav-level-three-padding);
226
+ }
227
+
228
+ //li .nav-link.active
229
+ &.active {
230
+ .nav-link {
231
+ font-weight: 600;
232
+ color: var(--light-text-heading);
233
+ text-decoration: none;
234
+ pointer-events: none;
157
235
  }
236
+ }
237
+ }
158
238
 
159
- //Add stalks to a UL menu (usually level 3)
160
- // <ul class="nav ... with-stalks">...</ul>
161
- .with-stalks {
162
-
163
- .nav-item {
164
-
165
- position: relative;
166
-
167
- &:before {
168
- content: "";
169
- position: absolute;
170
- background: escape-svg(var(--sidenav-submenu-divider));
171
- background-repeat: no-repeat;
172
- // background-position: center center;
173
- top: 1rem;
174
- left: 2rem;
175
- bottom: 0;
176
- width: 1rem;
177
- }
178
- }
239
+ //Add stalks to a UL menu (usually level 3)
240
+ // <ul class="nav ... with-stalks">...</ul>
241
+ .with-stalks {
242
+ .nav-item {
243
+ position: relative;
244
+
245
+ &:before {
246
+ content: "";
247
+ position: absolute;
248
+ background: escape-svg(var(--sidenav-submenu-divider));
249
+ background-repeat: no-repeat;
250
+ // background-position: center center;
251
+ top: 1rem;
252
+ left: 2rem;
253
+ bottom: 0;
254
+ width: 1rem;
179
255
  }
180
-
256
+ }
181
257
  }
182
-
258
+ }
259
+ .nav-wrapper {
260
+ padding: 0.5rem 1rem;
261
+ }
262
+ @include media-breakpoint-up(lg) {
263
+ border: none;
264
+
265
+ .nav-wrapper {
266
+ padding: 0;
267
+ }
268
+ }
183
269
  }
184
-
@@ -1,5 +1,3 @@
1
- import { isFocusable } from "../../../js/utils";
2
-
3
1
  /**
4
2
  * Checks whether target elements in a list of skip links are valid - ie they can receive focus.
5
3
  * @returns {boolean} Return true if skip links are valid, false if there is a problem.
@@ -17,13 +15,6 @@ export function validateSkipLinks() {
17
15
  );
18
16
  return false;
19
17
  }
20
- // check if target is focusable
21
- if (!isFocusable(target)) {
22
- console.error(
23
- `A skip link with label "${item.textContent}" is targeting a non-focusable element with id "${targetId}". Make sure the element is natively focusable, or assign a tab index of -1.`,
24
- );
25
- return false;
26
- }
27
18
  return true;
28
19
  });
29
20
  }
@@ -72,7 +72,6 @@ describe("Skip Links", () => {
72
72
 
73
73
  expect(resolvedMessages).toEqual([
74
74
  'A skip link with label "Skip to nowhere" is targeting a non-existent element with id "i-dont-exist".',
75
- 'A skip link with label "Skip to unfocusable" is targeting a non-focusable element with id "unfocusable". Make sure the element is natively focusable, or assign a tab index of -1.',
76
75
  ]);
77
76
 
78
77
  // JSDOM does not implement navigation so must manual test for main functionality
@@ -1,27 +1,27 @@
1
1
  .qld-tabs {
2
- --accent-colour: var(--qld-brand-secondary);
2
+ --accent-colour: var(--#{$prefix}brand-secondary);
3
3
  --border-radius: #{$border-radius};
4
4
  --section-content-padding: 4rem;
5
5
  // tabs colours
6
- --default-bg-colour: var(--qld-default-background);
7
- --light-bg-colour: var(--qld-light-background);
8
- --alt-bg-colour: var(--qld-light-alt-background);
9
- --dark-bg-colour: var(--qld-dark-background);
10
- --dark-alt-bg-colour: var(--qld-dark-alt-background);
11
- --light-border-colour: var(--qld-soft-grey);
12
- --light-colour: var(--qld-light-text-heading);
13
- --dark-border-colour: var(--qld-dark-alt-border);
14
- --dark-colour: var(--qld-dark-text);
6
+ --default-bg-colour: var(--#{$prefix}default-background);
7
+ --light-bg-colour: var(--#{$prefix}light-background);
8
+ --alt-bg-colour: var(--#{$prefix}light-alt-background);
9
+ --dark-bg-colour: var(--#{$prefix}dark-background);
10
+ --dark-alt-bg-colour: var(--#{$prefix}dark-alt-background);
11
+ --light-border-colour: var(--#{$prefix}soft-grey);
12
+ --light-colour: var(--#{$prefix}light-text-heading);
13
+ --dark-border-colour: var(--#{$prefix}dark-alt-border);
14
+ --dark-colour: var(--#{$prefix}dark-text);
15
15
  --icon-dropshadow:
16
16
  0px 1px 2px rgba(0, 0, 0, 0.2), 0px 1px 3px 1px rgba(0, 0, 0, 0.1);
17
- --focus-default-colour: var(--qld-light-focus);
17
+ --focus-default-colour: var(--#{$prefix}light-focus);
18
18
  --nav-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill=''><path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/></svg>");
19
19
  // bootstrap variables
20
20
  --#{$prefix}nav-tabs-border-radius: var(--border-radius);
21
- --#{$prefix}nav-tabs-link-hover-border-color: var(--qld-tab-background-hover);
22
- --#{$prefix}nav-tabs-link-active-color: var(--qld-tab-hover-text-color);
23
- --#{$prefix}nav-tabs-link-active-bg: var(--qld-tab-background);
24
- --#{$prefix}nav-tabs-link-active-border-color: var(--qld-border-color);
21
+ --#{$prefix}nav-tabs-link-hover-border-color: var(--#{$prefix}tab-background-hover);
22
+ --#{$prefix}nav-tabs-link-active-color: var(--#{$prefix}tab-hover-text-color);
23
+ --#{$prefix}nav-tabs-link-active-bg: var(--#{$prefix}tab-background);
24
+ --#{$prefix}nav-tabs-link-active-border-color: var(--#{$prefix}border-color);
25
25
  // animation
26
26
  --fade-time: 0.15s;
27
27
 
@@ -30,60 +30,62 @@
30
30
  .default &,
31
31
  .default,
32
32
  &.default {
33
- --qld-tab-background: var(--qld-default-background-shade);
33
+ --qld-tab-background: var(--#{$prefix}default-background-shade);
34
34
  }
35
35
  .alt &,
36
36
  .alt,
37
37
  &.alt {
38
- --qld-body-bg: var(--qld-light-alt-background);
39
- --qld-border-color: var(--qld-soft-grey);
40
- --qld-tab-background: var(--qld-light-alt-background-shade);
38
+ --qld-body-bg: var(--#{$prefix}light-alt-background);
39
+ --qld-border-color: var(--#{$prefix}soft-grey);
40
+ --qld-tab-background: var(--#{$prefix}light-alt-background-shade);
41
41
  }
42
42
  .light &,
43
43
  .light,
44
44
  &.light {
45
45
  --qld-body-bg: #eff4f9;
46
46
  --qld-border-color: var(--#{$prefix}color-default-color-light-border-light);
47
- --qld-tab-background: var(--qld-light-background-shade);
48
- --qld-tab-background-hover: var(--qld-button-dark-blue);
47
+ --qld-tab-background: var(--#{$prefix}light-background-shade);
48
+ --qld-tab-background-hover: var(--#{$prefix}button-dark-blue);
49
49
  }
50
50
  .dark &,
51
51
  .dark,
52
52
  &.dark {
53
- --qld-border-color: var(--qld-dark-border);
54
- --qld-tab-background: var(--qld-dark-hover);
53
+ --qld-border-color: var(--#{$prefix}dark-border);
54
+ --qld-tab-background: var(--#{$prefix}dark-hover);
55
55
  }
56
56
  .dark-alt &,
57
57
  .dark-alt,
58
58
  &.dark-alt {
59
- --qld-body-bg: var(--qld-dark-alt-background);
60
- --qld-border-color: var(--qld-dark-alt-border);
61
- --qld-tab-background: var(--qld-dark-alt-background-shade);
59
+ --qld-body-bg: var(--#{$prefix}dark-alt-background);
60
+ --qld-border-color: var(--#{$prefix}dark-alt-border);
61
+ --qld-tab-background: var(--#{$prefix}dark-alt-background-shade);
62
62
  }
63
63
  &.default,
64
64
  &.light,
65
65
  &.alt {
66
66
  --qld-tab-hover-text-color: #{$color-default-color-light-link-on-action};
67
- --qld-tab-icon-color: var(--qld-light-action-secondary);
68
- --qld-tab-background-hover: var(--qld-light-action-primary-hover);
67
+ --qld-tab-icon-color: var(--#{$prefix}light-action-secondary);
68
+ --qld-tab-background-hover: var(--#{$prefix}light-action-primary-hover);
69
69
  --qld-border-color: var(--light-border-colour);
70
- --qld-tab-icon-color-hover: var(--qld-dark-action-secondary);
71
- --qld-tab-focus-colour: var(--qld-light-focus);
72
- --qld-tab-active-focus-colour: var(--qld-light-focus);
70
+ --qld-tab-icon-color-hover: var(--#{$prefix}dark-action-secondary);
71
+ --qld-tab-focus-colour: var(--#{$prefix}light-focus);
72
+ --qld-tab-active-focus-colour: var(--#{$prefix}light-focus);
73
73
  --qld-scroll-bg-color: var(--default-bg-colour);
74
+ --nav-link-color: var(--#{$prefix}nav-link-color);
74
75
  }
75
76
  &.dark,
76
77
  &.dark-alt {
77
- --qld-tab-background-hover: var(--qld-dark-action-primary-hover);
78
- --qld-tab-hover-text-color: var(--qld-text-darkest);
79
- --qld-tab-icon-color: var(--qld-dark-action-secondary);
78
+ --qld-tab-background-hover: var(--#{$prefix}dark-action-primary-hover);
79
+ --qld-tab-hover-text-color: var(--#{$prefix}text-darkest);
80
+ --qld-tab-icon-color: var(--#{$prefix}dark-action-secondary);
80
81
  --qld-tab-disabled-colour: #{$qld-hint-text-color-muted};
81
- --qld-tab-text-colour-heading: var(--qld-dark-text);
82
- --qld-border-color: var(--qld-dark-alt-border);
83
- --qld-tab-icon-color-hover: var(--qld-dark-action-text);
84
- --qld-tab-focus-colour: var(--qld-dark-focus);
85
- --qld-tab-active-focus-colour: var(--qld-dark-focus);
82
+ --qld-tab-text-colour-heading: var(--#{$prefix}dark-text);
83
+ --qld-border-color: var(--#{$prefix}dark-alt-border);
84
+ --qld-tab-icon-color-hover: var(--#{$prefix}dark-action-text);
85
+ --qld-tab-focus-colour: var(--#{$prefix}dark-focus);
86
+ --qld-tab-active-focus-colour: var(--#{$prefix}dark-focus);
86
87
  --qld-scroll-bg-color: var(--default-bg-colour);
88
+ --nav-link-color: var(--#{$prefix}dark-text);
87
89
  }
88
90
  &.container-tabs {
89
91
  --scroll-distance: 0;
@@ -417,7 +419,7 @@
417
419
  display: flex;
418
420
  gap: 0.5rem;
419
421
  white-space: nowrap;
420
- color: var(--qld-nav-link-color);
422
+ color: var(--nav-link-color);
421
423
  align-items: anchor-center;
422
424
  i {
423
425
  font-size: 1.125rem;
@@ -544,6 +546,7 @@
544
546
  --qld-scroll-bg-color: var(--default-bg-colour);
545
547
  --qld-scroll-area-bg-color: var(--default-bg-colour);
546
548
  --qld-tab-icon-color-hover: var(--qld-dark-action-secondary);
549
+ --nav-link-color: var(--#{$prefix}nav-link-color);
547
550
  .tabs-area {
548
551
  background-color: var(--default-bg-colour);
549
552
  }
@@ -559,6 +562,7 @@
559
562
  --qld-scroll-bg-color: var(--light-bg-colour);
560
563
  --qld-scroll-area-bg-color: var(--light-bg-colour);
561
564
  --qld-tab-icon-color-hover: var(--qld-dark-action-secondary);
565
+ --nav-link-color: var(--#{$prefix}nav-link-color);
562
566
  .tabs-area {
563
567
  background-color: var(--light-bg-colour);
564
568
  }
@@ -574,6 +578,7 @@
574
578
  --qld-scroll-bg-color: var(--alt-bg-colour);
575
579
  --qld-scroll-area-bg-color: var(--alt-bg-colour);
576
580
  --qld-tab-icon-color-hover: var(--qld-dark-action-secondary);
581
+ --nav-link-color: var(--#{$prefix}nav-link-color);
577
582
  .tabs-area {
578
583
  background-color: var(--alt-bg-colour);
579
584
  }
@@ -587,6 +592,7 @@
587
592
  --qld-scroll-bg-color: var(--default-bg-colour);
588
593
  --qld-scroll-area-bg-color: var(--dark-bg-colour);
589
594
  --qld-tab-icon-color-hover: var(--qld-dark-action-text);
595
+ --nav-link-color: var(--#{$prefix}dark-text);
590
596
  .tabs-area {
591
597
  background-color: var(--dark-bg-colour);
592
598
  }
@@ -599,6 +605,7 @@
599
605
  --qld-tab-text-colour-heading: var(--qld-dark-text);
600
606
  --qld-scroll-bg-color: var(--default-bg-colour);
601
607
  --qld-tab-icon-color-hover: var(--qld-dark-action-text);
608
+ --nav-link-color: var(--#{$prefix}dark-text);
602
609
  color: var(--qld-body-color);
603
610
  background-color: var(--qld-dark-alt-background);
604
611
  .tabs-area {
@@ -19,4 +19,9 @@
19
19
  max-width: var(--qld-container-max-width);
20
20
  padding-left: var(--qld-container-padding-x);
21
21
  padding-right: var(--qld-container-padding-x);
22
+
23
+ &.is-extended {
24
+ // Maximum width for extended containers, 100rem (or 1600px)
25
+ --qld-container-max-width: 100rem;
26
+ }
22
27
  }
@@ -1,13 +1,21 @@
1
- .qld-content-body {
2
- .emphasis {
3
- margin: 4rem -2rem;
1
+ .content-emphasis {
2
+ // Negative margin on the emphasis section. Capped to outer container padding,
3
+ // to prevent overflow and horizontal scrollbar
4
+ --margin-offset: max(-2rem, calc(var(--qld-container-padding-x) * -1));
5
+
6
+ margin-left: var(--margin-offset);
7
+ margin-right: var(--margin-offset);
8
+
9
+ padding: 2.5rem var(--qld-container-padding-x);
10
+
11
+ @include media-breakpoint-up(lg) {
4
12
  padding: 4rem 2rem;
5
13
  overflow: visible;
14
+ }
6
15
 
7
- & p:last-child,
8
- & ul:last-child,
9
- & ol:last-child {
10
- margin-bottom: 0;
11
- }
16
+ & p:last-child,
17
+ & ul:last-child,
18
+ & ol:last-child {
19
+ margin-bottom: 0;
12
20
  }
13
21
  }