@foeewni/web-core 3.0.0-alpha.2 → 3.0.0-alpha.20

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.
@@ -48,6 +48,30 @@ Form `type=submit`s, `button`s are by default uncolorized, please use one of the
48
48
  @import '~bootstrap/scss/buttons';
49
49
  @import '~bootstrap/scss/button-group';
50
50
 
51
+ /*******************************
52
+ * overwrites for legacy use of button styles
53
+ * .foe-cta is an old class that should be phased out
54
+ * (based on the comment on theme/src/sass/ckeditor-overrides.scss "Subtle highlight for old-style (incorrect) CTA buttons")
55
+ * .foe-secondary is based on a colour option but styling for secondary buttons seems to be exclusively outline ao to meet accessibility
56
+ * requirements it was more straight forward to just retarget those.
57
+ *******************************/
58
+
59
+ .btn-block {
60
+ max-width: fit-content;
61
+ margin: 0 auto;
62
+ }
63
+
64
+ .btn-lg {
65
+ width: 100%;
66
+ }
67
+
68
+ .btn {
69
+ &:focus {
70
+ outline: $foe-element-default-outline;
71
+ outline-offset: $foe-element-default-outline-offset;
72
+ }
73
+ }
74
+
51
75
  @include media-breakpoint-down(sm) {
52
76
  .btn {
53
77
  font-size: .8rem;
@@ -59,6 +83,38 @@ Form `type=submit`s, `button`s are by default uncolorized, please use one of the
59
83
  }
60
84
  }
61
85
 
86
+ .foe-cta {
87
+ @extend .btn;
88
+ }
89
+
90
+ .btn-primary,
91
+ .foe-cta {
92
+ @include button-variant($foe-iris, $foe-iris);
93
+ }
94
+
95
+ .btn-outline-primary,
96
+ .btn-secondary {
97
+ @include button-outline-variant($foe-iris);
98
+ }
99
+
100
+ .btn-secondary {
101
+ background-color: transparent;
102
+ }
103
+
104
+ .btn-accent {
105
+ @include button-variant($foe-leaf, $foe-leaf);
106
+ }
107
+
108
+ .btn-outline-accent {
109
+ @include button-outline-variant($foe-leaf);
110
+ }
111
+
112
+ .btn-sunset {
113
+ @include button-variant($foe-sunset, $foe-sunset);
114
+
115
+ color: $foe-extradark;
116
+ }
117
+
62
118
  .btn-donate {
63
119
  color: $foe-donate-text;
64
120
 
@@ -149,6 +149,12 @@ input {
149
149
 
150
150
  &:not(.form-control-sm):not(.form-control-lg) {
151
151
  @extend .form-control;
152
+
153
+ &:focus,
154
+ &.focus {
155
+ outline: $foe-element-default-outline;
156
+ outline-offset: $foe-element-default-outline-offset;
157
+ }
152
158
  }
153
159
  }
154
160
  }
@@ -158,6 +164,12 @@ select {
158
164
 
159
165
  &:not(.form-control-sm):not(.form-control-lg) {
160
166
  @extend .form-control;
167
+
168
+ &:focus,
169
+ &.focus {
170
+ outline: $foe-element-default-outline;
171
+ outline-offset: $foe-element-default-outline-offset;
172
+ }
161
173
  }
162
174
  }
163
175
 
@@ -165,6 +177,12 @@ textarea {
165
177
  @extend .form-control;
166
178
 
167
179
  margin-bottom: $spacer;
180
+
181
+ &:focus,
182
+ &.focus {
183
+ outline: $foe-element-default-outline;
184
+ outline-offset: $foe-element-default-outline-offset;
185
+ }
168
186
  }
169
187
 
170
188
  %checkradio-label {
@@ -254,10 +272,21 @@ textarea {
254
272
  // Stylelint goes nuts on + selectors like this
255
273
  /* stylelint-disable no-descending-specificity */
256
274
  input[type=checkbox] {
257
- display: none;
275
+ // display: none; //this wasn't accessible by tabbing so changing for the below
276
+ // using advice from https://stackoverflow.com/questions/51207650/how-to-use-keyboard-tab-on-hidden-radio-buttons
277
+ opacity: 0;
278
+ position: absolute;
279
+ z-index: -1;
258
280
 
259
281
  + label {
260
282
  @extend %checkradio-label;
283
+
284
+ &:focus,
285
+ &.focus {
286
+ outline: $foe-element-default-outline;
287
+ outline-offset: $foe-element-default-outline-offset;
288
+ box-shadow: 0 0 0 $foe-element-default-focus-width $foe-element-default-focus-color;
289
+ }
261
290
  }
262
291
 
263
292
  + label::before {
@@ -279,10 +308,18 @@ input[type=checkbox] {
279
308
  &:checked:disabled + label::before {
280
309
  @extend %checkradio-picker-checked-disabled;
281
310
  }
311
+
312
+ &:focus + label {
313
+ outline: $foe-element-default-outline;
314
+ outline-offset: $foe-element-default-outline-offset;
315
+ box-shadow: 0 0 0 $foe-element-default-focus-width $foe-element-default-focus-color;
316
+ }
282
317
  }
283
318
 
284
319
  input[type=radio] {
285
- display: none;
320
+ opacity: 0;
321
+ position: absolute;
322
+ z-index: -1;
286
323
 
287
324
  + label {
288
325
  @extend %checkradio-label;
@@ -307,6 +344,12 @@ input[type=radio] {
307
344
  &:checked:disabled + label::before {
308
345
  @extend %checkradio-picker-checked-disabled;
309
346
  }
347
+
348
+ &:focus + label {
349
+ outline: $foe-element-default-outline;
350
+ outline-offset: $foe-element-default-outline-offset;
351
+ box-shadow: 0 0 0 $foe-element-default-focus-width $foe-element-default-focus-color;
352
+ }
310
353
  }
311
354
  /* stylelint-enable no-descending-specificity */
312
355
 
@@ -21,7 +21,7 @@ import './style.scss';
21
21
  const $gotop = $(`
22
22
  <a id="foe-go-top" href="#foe-go-top-anchor" title="Return to the top of the page">
23
23
  <i class="fas fa-arrow-alt-circle-up"></i>
24
- <span class="sr-only">Go to top</span>
24
+ <span class="sr-only" role="navigation">Go to top</span>
25
25
  </a>
26
26
  `);
27
27
 
@@ -156,6 +156,8 @@ The parallax effect needs the file `foe.components.js` to be appended in the pag
156
156
  width: 100%;
157
157
  margin: 0;
158
158
  top: 0;
159
+ // #13287 the nav bar is now solid so the hero needs to be padded accordingly
160
+ padding-top: $foe-nav-height-small;
159
161
  background-color: $foe-extradark;
160
162
  overflow: hidden;
161
163
  // Vertically aligns everything.
@@ -177,21 +179,24 @@ The parallax effect needs the file `foe.components.js` to be appended in the pag
177
179
  bottom: 0;
178
180
  left: 0;
179
181
  right: 0;
180
- background-color: $foe-tint-overlay;
181
- z-index: 1;
182
+ z-index: 0;
182
183
  width: 100%;
183
184
  height: 100%;
184
185
  overflow: hidden;
185
186
 
186
- &::before {
187
- content: '';
188
- position: absolute;
189
- top: 0;
190
- bottom: 0;
191
- left: 0;
192
- right: 0;
187
+ &.is-dimmed {
193
188
  background-color: $foe-tint-overlay;
194
- z-index: 2;
189
+
190
+ &::before {
191
+ content: '';
192
+ position: absolute;
193
+ top: 0;
194
+ bottom: 0;
195
+ left: 0;
196
+ right: 0;
197
+ background-color: $foe-tint-overlay;
198
+ z-index: 2;
199
+ }
195
200
  }
196
201
 
197
202
  // Fit and crop <img> or <video> elements to 100% x 100% of
@@ -213,6 +218,14 @@ The parallax effect needs the file `foe.components.js` to be appended in the pag
213
218
  min-width: 100%;
214
219
  min-height: 100%;
215
220
  }
221
+
222
+ &.is-fixed {
223
+ clip-path: inset(0);
224
+
225
+ img {
226
+ position: fixed;
227
+ }
228
+ }
216
229
  }
217
230
 
218
231
  .foe-hero-panel-buffer {
@@ -235,7 +248,8 @@ The parallax effect needs the file `foe.components.js` to be appended in the pag
235
248
  .foe-hero-panel-heading {
236
249
  position: relative;
237
250
  z-index: 3;
238
- padding-top: $foe-nav-height-small;
251
+ // #13287 see above the nav height moved to container padding so the text is aligned in the centre of the visible space
252
+ padding-top: $spacer;
239
253
  padding-bottom: $spacer;
240
254
 
241
255
  @include media-breakpoint-up(md) {
@@ -250,12 +264,45 @@ The parallax effect needs the file `foe.components.js` to be appended in the pag
250
264
  color: $foe-extradark;
251
265
 
252
266
  span {
253
- background: $foe-offwhite;
254
- padding: $spacer;
255
- display: inline-block;
267
+ background: $foe-primary;
268
+ border: $foe-primary $spacer solid;
269
+ border-left: 0;
270
+ display: inline;
271
+ border-color: transparent;
272
+ line-height: 6rem;
273
+ white-space: pre-wrap;
274
+ position: relative;
275
+
276
+ @include media-breakpoint-down(md) {
277
+ line-height: 4rem;
278
+ }
279
+
280
+ &::before {
281
+ content: '';
282
+ position: absolute;
283
+ top: -$spacer * .95;
284
+ right: 100%;
285
+ bottom: -$spacer * .95;
286
+ width: 1rem;
287
+ background-color: #61bdaa;
288
+ }
289
+
290
+ &[data-jaunt-factor] {
291
+ border: none;
292
+ border-color: $foe-primary;
293
+ padding: $spacer;
294
+
295
+ &::before {
296
+ display: none;
297
+ }
298
+ }
256
299
  }
257
300
  }
258
301
 
302
+ .btn {
303
+ @include font-size($h5-font-size);
304
+ }
305
+
259
306
  .foe-hero-cta-container {
260
307
  margin-top: $spacer;
261
308
 
@@ -1,3 +1,104 @@
1
+ @import '../../utils/scss/loader';
2
+
1
3
  .fixed-background {
2
4
  background-attachment: fixed !important;
3
5
  }
6
+
7
+ /*******************************
8
+ * Background tweaks according to
9
+ * Author options white/primary/dark/extradark are re-mapped to reflect the brand colours and prefered combinations
10
+ * bg-dark uses iris which is the accent colour
11
+ * bg-extradark has been replaced with sunset, it was decided to not use the space for a background colour so the inability
12
+ * to access this combination shouldn't be a problem and this will account for any other instances where author accessible
13
+ * theme colours are referenced in the code
14
+ * $foe-leaf-75 is used in some places to increase the number of accessible options available
15
+ * $foe-sunset-75 is used to stop those backgrounds being so intense
16
+ ******************************/
17
+
18
+
19
+ .bg-accent {
20
+ @include heading_colours($foe-offwhite, $foe-secondary);
21
+ @include text_colours($foe-offwhite, $foe-secondary);
22
+
23
+ .btn-primary,
24
+ .foe-cta {
25
+ @include button-variant($foe-primary, $foe-primary);
26
+ }
27
+
28
+ .btn-outline-primary,
29
+ .btn-secondary {
30
+ @include button-outline-variant($foe-offwhite);
31
+ }
32
+ }
33
+
34
+ .bg-primary,
35
+ .bg-secondary {
36
+ background-color: $foe-leaf-75 !important;
37
+
38
+ @include heading_colours($foe-extradark, $foe-extradark);
39
+ @include text_colours($foe-extradark, $foe-extradark);
40
+
41
+ .btn-outline-primary,
42
+ .btn-secondary {
43
+ @include button-outline-variant($foe-extradark);
44
+ }
45
+ }
46
+
47
+ .bg-offwhite {
48
+ @include heading_colours($foe-accent, $foe-accent);
49
+ @include text_colours($foe-accent, $foe-accent);
50
+ }
51
+
52
+ .bg-extradark,
53
+ .bg-sunset {
54
+ background-color: $foe-sunset-75 !important;
55
+
56
+ @include heading_colours($foe-extradark, $foe-extradark);
57
+ @include text_colours($foe-extradark, $foe-extradark);
58
+
59
+ .btn-primary,
60
+ .foe-cta {
61
+ @include button-variant($foe-extradark, $foe-extradark);
62
+ }
63
+
64
+ .btn-outline-primary,
65
+ .btn-secondary {
66
+ @include button-outline-variant($foe-extradark);
67
+ }
68
+ }
69
+
70
+ .bg-dark,
71
+ .bg-iris {
72
+ background-color: $foe-iris !important;
73
+
74
+ @include heading_colours($foe-offwhite, $foe-secondary);
75
+ @include text_colours($foe-offwhite, $foe-secondary);
76
+
77
+ .btn-primary,
78
+ .foe-cta {
79
+ @include button-variant($foe-leaf-75, $foe-leaf-75);
80
+ }
81
+
82
+ .btn-outline-primary,
83
+ .btn-secondary {
84
+ @include button-outline-variant($foe-offwhite);
85
+ }
86
+ }
87
+
88
+ .bg-light,
89
+ .bg-white {
90
+ background-color: $foe-offwhite !important;
91
+
92
+ @include heading_colours($foe-accent, $foe-accent);
93
+ @include text_colours($foe-accent, $foe-accent);
94
+
95
+ .btn-primary,
96
+ .foe-cta {
97
+ @include button-variant($foe-accent, $foe-accent);
98
+ }
99
+
100
+ .btn-outline-primary,
101
+ .btn-secondary {
102
+ @include button-outline-variant($foe-accent);
103
+ }
104
+ }
@@ -13,6 +13,24 @@ input {
13
13
  max-width: 100%;
14
14
  }
15
15
 
16
+ cite {
17
+ font-style: normal;
18
+ }
19
+
16
20
  .form-group {
17
21
  margin-bottom: 1rem;
22
+
23
+ .form-inline & {
24
+ margin-bottom: 0;
25
+ }
26
+ }
27
+
28
+ p a:not(.btn, .foe-cta) {
29
+ text-decoration: underline;
30
+ color: $foe-text;
31
+ }
32
+
33
+ .row > [class*="col-"] {
34
+ // reset the z-index on each column
35
+ z-index: 0;
18
36
  }
@@ -12,16 +12,23 @@
12
12
  top: 0;
13
13
  padding: 0;
14
14
  z-index: $zindex-navbar !important;
15
- background-color: $foe-primary;
15
+ background-color: $foe-leaf-75;
16
+ color: $foe-extradark;
16
17
  transition:
17
18
  background-color $foe-transition-duration-base $foe-transition-easing,
18
19
  background-position $foe-transition-duration-base $foe-transition-easing,
19
20
  box-shadow $foe-transition-duration-base $foe-transition-easing,
20
21
  padding $foe-transition-duration-base $foe-transition-easing;
21
22
 
23
+ .navbar-toggler {
24
+ .icon-close,
25
+ .icon-bar {
26
+ background-color: $foe-extradark;
27
+ }
28
+ }
29
+
22
30
  &.js-menustack {
23
31
  position: fixed;
24
- color: $foe-offwhite;
25
32
  z-index: $zindex-navbar + 10 !important;
26
33
 
27
34
  // Scrolled state
@@ -43,7 +50,7 @@
43
50
  // Scrolled state
44
51
  &.js-menustack-stuck {
45
52
  background-position-y: 100%;
46
- background-color: $foe-primary;
53
+ background-color: $foe-leaf-75;
47
54
  }
48
55
  }
49
56
 
@@ -62,12 +69,6 @@
62
69
  right: 0;
63
70
  }
64
71
 
65
- @include media-breakpoint-down(md) {
66
- padding-left: calc($grid-gutter-width / 2) !important;
67
- padding-right: calc($grid-gutter-width / 2) !important;
68
- overflow: hidden;
69
- }
70
-
71
72
  // Scrolled state
72
73
  &.js-menustack-stuck {
73
74
  padding: 0;
@@ -76,5 +77,26 @@
76
77
  body.foe-page-has-campaign-nav & {
77
78
  box-shadow: none;
78
79
  }
80
+
81
+ @include media-breakpoint-up(lg) {
82
+ .foe-nav-cta a {
83
+ @include margin-vertical-align($foe-nav-height-large-scrolled, $foe-nav-cta-height-large);
84
+ }
85
+
86
+ ul.navbar-nav > li > a {
87
+ line-height: $foe-nav-height-large-scrolled;
88
+ }
89
+ }
90
+ }
91
+
92
+ .skip-link:focus-within + * &.js-menustack {
93
+ top: 1.5rem;
94
+ }
95
+
96
+ @include media-breakpoint-down(md) {
97
+ padding-left: calc($grid-gutter-width / 2) !important;
98
+ padding-right: calc($grid-gutter-width / 2) !important;
99
+ // #13294 Fixing the mobile navigation (with overflow:hidden the mobile search does not display below the navigation)
100
+ // overflow: hidden;
79
101
  }
80
102
  }
@@ -17,10 +17,22 @@
17
17
  visibility 0s $foe-transition-easing $foe-transition-duration-base,
18
18
  opacity $foe-transition-duration-base $foe-transition-easing;
19
19
 
20
+ @include media-breakpoint-up(lg) { // Megamenus are only applicable on larger viewports. They appear as a list on smaller screens
21
+ display: block;
22
+ padding-top: $foe-submenu-margin;
23
+ padding-bottom: $foe-submenu-margin;
24
+ }
25
+
20
26
  @include media-breakpoint-up(md) { // Megamenus are only applicable on larger viewports.
21
27
  display: block;
22
28
  }
23
29
 
30
+ > .container {
31
+ @include media-breakpoint-up(md) {
32
+ justify-content: flex-end;
33
+ }
34
+ }
35
+
24
36
  &.megamenu-search { // Allow the search "megamenu" to persist at smaller breakpoints
25
37
  @include media-breakpoint-up(sm) {
26
38
  display: block;
@@ -40,6 +52,10 @@
40
52
 
41
53
  > .container > .row {
42
54
  width: 100%;
55
+
56
+ @include media-breakpoint-up(md) {
57
+ justify-content: flex-end;
58
+ }
43
59
  }
44
60
  }
45
61
 
@@ -181,3 +197,76 @@
181
197
  }
182
198
  }
183
199
  }
200
+
201
+ ul.navbar-nav.menu-main {
202
+ .foe-mega-menu {
203
+ .submenu-block {
204
+ ul.sub-megamenu-first {
205
+ column-gap: 0;
206
+ overflow: hidden;
207
+ height: auto; /* $foe-submenu-tile-height; */
208
+ display: flex;
209
+ flex-direction: column;
210
+ list-style: none;
211
+ padding-left: .5rem;
212
+ padding-bottom: .5rem;
213
+
214
+ @include media-breakpoint-up(lg) {
215
+ align-items: end;
216
+ }
217
+
218
+ > li {
219
+ &.sub-item {
220
+ width: 100%;
221
+ padding: .125rem;
222
+ }
223
+
224
+ > span {
225
+ line-height: calc($foe-submenu-tile-height / 4);
226
+ font-weight: 500;
227
+ color: $foe-gray;
228
+ }
229
+
230
+ > a {
231
+ line-height: calc($foe-submenu-tile-height / 4 - .4rem);
232
+ font-weight: 600;
233
+ color: $foe-extradark;
234
+ transition: color 400ms ease-in-out;
235
+
236
+ @include media-breakpoint-up(md) {
237
+ padding-right: 0;
238
+ }
239
+
240
+ &:hover {
241
+ color: $foe-extradark;
242
+ box-shadow: none;
243
+ }
244
+ }
245
+
246
+ ul.sub-megamenu-below {
247
+ padding-left: 0;
248
+ display: flex;
249
+ flex-direction: column;
250
+
251
+ @include media-breakpoint-down(md) {
252
+ display: none;
253
+ }
254
+
255
+ li.sub-item {
256
+ a {
257
+ color: $foe-text;
258
+ font-weight: 500;
259
+ line-height: 1.8rem;
260
+
261
+ &:hover {
262
+ color: $foe-extradark;
263
+ box-shadow: none;
264
+ }
265
+ }
266
+ }
267
+ }
268
+ }
269
+ }
270
+ }
271
+ }
272
+ }