kcc-gem-theme 1.33.15 → 1.34.15

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 (40) hide show
  1. checksums.yaml +4 -4
  2. data/_data/cache_bust_css.yml +1 -1
  3. data/_data/theme_hash.yml +1 -1
  4. data/_includes/header-global.html +24 -0
  5. data/_includes/nav-global-bottom.html +23 -0
  6. data/_includes/nav-global-local.html +29 -0
  7. data/_includes/nav-global-top.html +14 -0
  8. data/_includes/nav-local.html +3 -3
  9. data/_includes/scripts/kcc-mega-nav.html +2 -0
  10. data/_includes/scripts/kcc-nav.html +2 -0
  11. data/_includes/svg/kcc.html +62 -0
  12. data/_layouts/default-core.html +28 -0
  13. data/_layouts/default.html +1 -0
  14. data/assets/css/kcc-theme.css +1 -1
  15. data/assets/js/theme/dist/kcc-mega-nav.bundle.js +1 -0
  16. data/assets/js/theme/dist/kcc-nav.bundle.js +1 -0
  17. data/assets/js/theme/dist/kcc-theme-landing.bundle.js +1 -1
  18. data/assets/js/theme/dist/kcc-theme.bundle.js +1 -1
  19. data/assets/js/theme/nav/closeMegaNavOnClick.js +50 -0
  20. data/assets/js/theme/{src/closeMenuOnClick.js → nav/closeNavOnClick.js} +4 -0
  21. data/assets/js/theme/nav/googleCustomSearch.js +112 -0
  22. data/assets/js/theme/{src → nav}/highlightCurrentNav.js +0 -0
  23. data/assets/js/theme/nav/megaNav.js +9 -0
  24. data/assets/js/theme/{src → nav}/moveSearchIcon.js +0 -0
  25. data/assets/js/theme/nav/nav.js +13 -0
  26. data/assets/js/theme/nav/searchToggleMegaNav.js +96 -0
  27. data/assets/js/theme/{src/searchToggle.js → nav/searchToggleNav.js} +2 -2
  28. data/assets/js/theme/nav/toggleMenuOnWindowResize.js +26 -0
  29. data/assets/js/theme/nav/toggleSearchDropdownOnWindowResize.js +57 -0
  30. data/assets/js/theme/src/all.js +5 -15
  31. data/assets/scss/0-tools/_bootstrap-overrides.scss +20 -2
  32. data/assets/scss/0-tools/_gsc-overrides.scss +93 -11
  33. data/assets/scss/0-tools/_vars.scss +1 -0
  34. data/assets/scss/1-base/_header-global.scss +410 -0
  35. data/assets/scss/1-base/_links.scss +15 -0
  36. data/assets/scss/1-base/_typography.scss +75 -3
  37. data/assets/scss/3-layout/_padding.scss +12 -0
  38. data/assets/scss/3-layout/_positioning.scss +22 -6
  39. data/assets/scss/kcc-theme.scss +3 -1
  40. metadata +24 -6
@@ -31,6 +31,7 @@ $accent-blue: #005bac; // Accent blue-color used in all links and link bu
31
31
  $color-blue-light: #ccdde1;
32
32
  $color-tan-light: #fcf1d6;
33
33
  $color-orange: #f99e1b;
34
+ $color-blue-light-nav: #b8babc;
34
35
 
35
36
  $black: #000;
36
37
  $grey-1: #666;
@@ -0,0 +1,410 @@
1
+ // Styles for the global KCC header
2
+ // ================================
3
+
4
+ .header-global {
5
+ padding-left: 0;
6
+ padding-right: 0;
7
+ &__brand {
8
+ position: absolute;
9
+ left: 1rem;
10
+ top: 0;
11
+ }
12
+ &__navbar--padding {
13
+ padding: 0;
14
+ }
15
+ &__nav-top {
16
+ background-color: $primary-blue;
17
+ flex-direction: row;
18
+ padding-left: 1rem;
19
+ padding-right: calc(2.5rem + 20px);
20
+ width: 100%;
21
+ }
22
+ &__nav-bottom {
23
+ background-color: $primary-red;
24
+ flex-direction: row;
25
+ padding-left: 1rem;
26
+ padding-bottom: .3125rem;
27
+ padding-right: 1rem;
28
+ padding-top: .3125rem;
29
+ width: 100%;
30
+ }
31
+ &__nav-local {
32
+ border-bottom-color: $grey-5;
33
+ flex-direction: row;
34
+ border-bottom-style: solid;
35
+ border-bottom-width: 1px;
36
+ padding-bottom: .5rem;
37
+ padding-left: 1rem;
38
+ padding-right: 1rem;
39
+ padding-top: .5rem;
40
+ width: 100%;
41
+ }
42
+ &__navbar--toggler { // Mostly sdtraight from BOOTSTRAP 4 Styling
43
+ border-color: rgba(0,0,0,.1);
44
+ color: rgba(0,0,0,.5);
45
+ position: absolute;
46
+ right: 1rem;
47
+ top: 3.25rem;
48
+ z-index: 1032;
49
+ & .navbar-toggler-icon { // Straight from the BOOTSTRAP 4 Styling
50
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
51
+ }
52
+ }
53
+ &__search-icon,
54
+ &__close-icon {
55
+ background-color: transparent;
56
+ border: 1px solid transparent;
57
+ border-radius: .25rem;
58
+ display: inline-block;
59
+ font-size: 1rem;
60
+ font-weight: 400;
61
+ line-height: 1.5;
62
+ padding: .375rem .75rem;
63
+ position: absolute;
64
+ text-align: center;
65
+ top: .125rem;
66
+ right: .3125rem;
67
+ user-select: none;
68
+ vertical-align: middle;
69
+ transition-property: opacity;
70
+ transition-timing-function: ease-in-out;
71
+ transition-duration: .1s;
72
+ z-index: 1032;
73
+ }
74
+ }
75
+
76
+ @media screen and (min-width: 410px) {
77
+ .header-global__navbar--toggler {
78
+ top: 3.2rem;
79
+ }
80
+ }
81
+
82
+ @media screen and (min-width: 576px) {
83
+ .header-global__navbar--toggler {
84
+ top: 3.25rem;
85
+ }
86
+ }
87
+
88
+ .header-global__search-icon--hidden,
89
+ .header-global__close-icon--hidden {
90
+ opacity: 0;
91
+ pointer-events: none;
92
+ z-index: -1;
93
+ }
94
+
95
+ @media screen and (max-width: 992px) {
96
+ #headerGlobalNavbarContent.collapse.show .header-global__nav-top,
97
+ #headerGlobalNavbarContent.collapsing .header-global__nav-top {
98
+ padding-right: 1rem;
99
+ }
100
+ }
101
+
102
+ @media screen and (max-width: 992px) {
103
+ #headerGlobalNavbarContent.collapse.show .header-global__navbar-nav--divider::after,
104
+ #headerGlobalNavbarContent.collapsing .header-global__navbar-nav--divider::after {
105
+ background-color: $grey-5;
106
+ content: '';
107
+ display: block;
108
+ height: .125rem;
109
+ margin-bottom: 1rem;
110
+ margin-top: .5rem;
111
+ width: 100%;
112
+ }
113
+ #headerGlobalNavbarContent.collapse.show .header-global__navbar-nav--divider:nth-child(2)::after,
114
+ #headerGlobalNavbarContent.collapsing .header-global__navbar-nav--divider:nth-child(2)::after {
115
+ margin-bottom: 0;
116
+ }
117
+ }
118
+
119
+ #headerGlobalNavbar.header-global__navbar--search-toggle {
120
+ top: 3.5rem;
121
+ }
122
+
123
+ @media screen and (min-width: 992px) {
124
+ .navbar-expand-lg .navbar-nav .header-global__nav-local--navbar-brand.nav-link {
125
+ padding-left: 0;
126
+ }
127
+ }
128
+
129
+ @media screen and (min-width: 992px) {
130
+ .header-global__nav-bottom--nav-link {
131
+ padding-top: .75rem;
132
+ padding-bottom: .75rem;
133
+ }
134
+ }
135
+
136
+ @media screen and (min-width: 992px) {
137
+ .header-global__nav-top--nav-link {
138
+ padding-top: .3125rem;
139
+ padding-bottom: .3125rem;
140
+ }
141
+ }
142
+
143
+ @media screen and (min-width: 992px) {
144
+ .navbar-expand-lg .navbar-nav .header-global__nav-top--nav-link {
145
+ padding-left: .9rem;
146
+ padding-right: .9rem;
147
+ }
148
+ }
149
+
150
+ @media screen and (min-width: 992px) {
151
+ a.header-global__nav-top--nav-link {
152
+ position: relative;
153
+ }
154
+ a.header-global__nav-top--nav-link::after,
155
+ a.header-global__nav-top--nav-link::after {
156
+ background-color: $orange-heading;
157
+ bottom: 0;
158
+ content: '';
159
+ display: block;
160
+ height: .125rem;
161
+ opacity: 0;
162
+ position: absolute;
163
+ transition: opacity 0.3s,transform 0.3s;
164
+ width: calc(100% - 1.8rem); // The `- 1.8rem` in `calc (100% - 1.8rem)` offsets the padding-left/right: .9rem on the links
165
+ }
166
+ a.header-global__nav-top--nav-link:hover::after,
167
+ a.header-global__nav-top--nav-link:focus::after {
168
+ opacity: 1;
169
+ transform: translateY(-0.2em);
170
+ }
171
+ }
172
+
173
+ @media screen and (min-width: 992px) {
174
+ .header-global__nav-bottom {
175
+ padding-bottom: 0;
176
+ padding-top: 0;
177
+ }
178
+ }
179
+
180
+ @media screen and (min-width: 992px) {
181
+ .header-global__nav-local {
182
+ padding-bottom: .5rem;
183
+ padding-top: .5rem;
184
+ }
185
+ }
186
+
187
+ .header-global__brand--svg {
188
+ fill: $white;
189
+ height: auto;
190
+ width: 85%;
191
+ }
192
+
193
+ @media screen and (min-width: 360px) {
194
+ .header-global__brand--svg {
195
+ width: 95%;
196
+ }
197
+ }
198
+
199
+ @media screen and (min-width: 400px) {
200
+ .header-global__brand--svg {
201
+ width: 100%;
202
+ }
203
+ }
204
+
205
+ @media screen and (min-width: 992px) {
206
+ .header-global__brand {
207
+ top: 2.5rem;
208
+ }
209
+ }
210
+
211
+ #headerGlobalNavbarContent.collapse.show .typography__nav-heading,
212
+ #headerGlobalNavbarContent.collapsing .typography__nav-heading {
213
+ font-size: 1.5rem;
214
+ }
215
+
216
+ #headerGlobalNavbarContent.collapse.show .navbar-nav,
217
+ #headerGlobalNavbarContent.collapsing .navbar-nav {
218
+ flex-direction: column;
219
+ background-color: $grey-4;
220
+ }
221
+
222
+ #headerGlobalNavbarContent.collapse.show .header-global__nav-top, // BOOTSTRAP 4 Selectors for when the menu is open/opening
223
+ #headerGlobalNavbarContent.collapsing .header-global__nav-top { // This rule-group is to pull the menu down, on mobile/tablet and provide a red background for the KCC text-logo & Search Icon.
224
+ position: relative;
225
+ top: 2.65rem; // Pull the menu down from its normal spot
226
+ margin-bottom: 2.65rem;
227
+ &::before { // Create & position a pseudo-element to make the red background
228
+ background-color: $primary-red;
229
+ content: '';
230
+ display: block;
231
+ height: 2.65rem;
232
+ position: absolute;
233
+ top: -2.65rem;
234
+ left: 0;
235
+ right: 0;
236
+ width: 100%;
237
+ z-index: -1; // This ensures the pseudo-element is behind when it has position: absolute
238
+ }
239
+ }
240
+
241
+ @media screen and (max-width: 992px) {
242
+ #headerGlobalNavbarContent.collapse:not(.show) {
243
+ display: block;
244
+ & .header-global__nav-top {
245
+ display: none;
246
+ position: absolute;
247
+ }
248
+ & .header-global__nav-bottom .nav-link,
249
+ .header-global__nav-local .nav-link:not(.navbar-brand) {
250
+ visibility: hidden;
251
+ }
252
+ }
253
+ }
254
+
255
+ .header-global__nav--search-icon,
256
+ .header-global__nav--close-icon {
257
+ background-size: 20px 20px;
258
+ background-position: center;
259
+ background-repeat: no-repeat;
260
+ display: block;
261
+ height: 20px;
262
+ pointer-events: none;
263
+ width: 20px;
264
+ }
265
+
266
+ .header-global__search-collapse {
267
+ left: .5rem;
268
+ margin-left: auto;
269
+ margin-right: auto;
270
+ position: absolute;
271
+ right: 2rem;
272
+ top: -56px;
273
+ width: 95%;
274
+ }
275
+
276
+ @media screen and (min-width: 360px) {
277
+ .header-global__search-collapse {
278
+ left: .55rem;
279
+ }
280
+ }
281
+
282
+ @media screen and (min-width: 410px) {
283
+ .header-global__search-collapse {
284
+ left: .65rem;
285
+ }
286
+ }
287
+
288
+ @media screen and (min-width: 410px) {
289
+ .header-global__search-collapse {
290
+ left: 1rem;
291
+ }
292
+ }
293
+
294
+ @media screen and (min-width: 768px) {
295
+ .header-global__search-collapse {
296
+ left: 1.25rem;
297
+ }
298
+ }
299
+
300
+ @media screen and (min-width: 992px) {
301
+ .header-global__search-collapse {
302
+ left: 1.5rem;
303
+ }
304
+ }
305
+
306
+ .header-global__search-collapse.header-global__search-collapse--visible {
307
+ top: -46px;
308
+ }
309
+
310
+ @media screen and (min-width: 992px) {
311
+ .header-global__search-collapse.header-global__search-collapse--visible {
312
+ top: -40px;
313
+ }
314
+ }
315
+
316
+ .header-global__navbar--search-toggle {
317
+ top: 50px;
318
+ }
319
+
320
+ .header-global__navbar--search-toggle::before {
321
+ background-color: $primary-red;
322
+ content: '';
323
+ display: block;
324
+ height: 64px;
325
+ position: absolute;
326
+ top: -60px;
327
+ width: 100%;
328
+ }
329
+
330
+ @media screen and (min-width: 992px) {
331
+ .header-global__navbar--search-toggle::before {
332
+ background-color: $primary-blue;
333
+ }
334
+ }
335
+
336
+ .header-global__dropdown.show {
337
+ background-color: $color-blue-light-nav;
338
+ }
339
+
340
+ @keyframes meganav {
341
+ 0% {
342
+ opacity: 0;
343
+ }
344
+ 100% {
345
+ opacity: 1;
346
+ }
347
+ }
348
+
349
+ @media screen and (min-width: 992px) {
350
+ .header-global__nav-bottom .dropdown:hover .dropdown-menu,
351
+ .header-global__nav-bottom .dropdown .dropdown-menu:hover {
352
+ animation-duration: .5s;
353
+ animation-name: meganav;
354
+ display: block !important; // Because Bootstrap loves to use !important
355
+ }
356
+ }
357
+
358
+ @media screen and (min-width: 992px) {
359
+ .header-global__nav-bottom .dropdown-item {
360
+ color: $grey-1;
361
+ }
362
+ }
363
+
364
+ @media screen and (min-width: 992px) {
365
+ .header-global__nav-bottom .dropdown:hover {
366
+ background-color: $color-blue-light-nav;
367
+ }
368
+ }
369
+
370
+ @media screen and (min-width: 992px) {
371
+ .nav-item.dropdown.header-global__dropdown--position { // First 2 classes in this selector are to override BS4 styling
372
+ position: static; // Needed to allow repositioning of the open dropdown menu
373
+ }
374
+ }
375
+
376
+ @media screen and (min-width: 992px) {
377
+ .header-global__dropdown-menu--full-width {
378
+ left: .75rem;
379
+ right: .75rem;
380
+ top: 5.325rem;
381
+ }
382
+ }
383
+
384
+ @media screen and (min-width: 1300px) {
385
+ .header-global__dropdown-menu--full-width {
386
+ left: 1rem;
387
+ right: 1rem;
388
+ }
389
+ }
390
+
391
+ @media screen and (min-width: 992px) {
392
+ .header-global__drodpown-menu--img {
393
+ width: 280px;
394
+ &--border {
395
+ border: thin solid $grey-8;
396
+ }
397
+ }
398
+ }
399
+
400
+ @media screen and (max-width: 992px) {
401
+ .header-global__core::after { // This provides the light-gray background for the navbar in mobile on core sites only
402
+ content: '';
403
+ display: block;
404
+ height: 60px;
405
+ background-color: $grey-4; // Same light-gray as in Bootstrap
406
+ border-bottom-color: $grey-5; // Same border-bottom as in Bootstrap
407
+ border-bottom-style: solid;
408
+ border-bottom-width: 1px;
409
+ }
410
+ }
@@ -103,3 +103,18 @@
103
103
  text-decoration: none;
104
104
  }
105
105
  }
106
+
107
+ @media screen and (min-width: 992px) {
108
+ .links__header-global--nav-local {
109
+ position: relative;
110
+ }
111
+ .active .links__header-global--nav-local::after {
112
+ background-color: $primary-red;
113
+ bottom: .125rem;
114
+ content: '';
115
+ display: block;
116
+ height: .145rem;
117
+ position: absolute;
118
+ width: calc(100% - 1rem);
119
+ }
120
+ }
@@ -25,7 +25,7 @@ body {
25
25
  color: $primary-red;
26
26
  }
27
27
  &--smaller {
28
- font-size: 1.2rem;
28
+ font-size: 1.25rem;
29
29
  }
30
30
  }
31
31
 
@@ -33,14 +33,14 @@ body {
33
33
  .typography__nav-heading {
34
34
  font-size: 1.8rem;
35
35
  &--smaller {
36
- font-size: 1.35rem;
36
+ font-size: 1.5rem;
37
37
  }
38
38
  }
39
39
  }
40
40
 
41
41
  @media screen and (min-width:410px) {
42
42
  .typography__nav-heading {
43
- font-size: 1.5rem;
43
+ font-size: 2rem;
44
44
  }
45
45
  }
46
46
 
@@ -139,12 +139,78 @@ body {
139
139
  font-weight: $font-weight-boldish;
140
140
  }
141
141
 
142
+ .typography__header-global--nav-top,
143
+ .typography__header-global--nav-bottom,
144
+ .typography__header-global--nav-local {
145
+ color: $primary-blue;
146
+ font-family: $font-family-oswald;
147
+ font-size: 1rem;
148
+ font-weight: 500;
149
+ letter-spacing: 0.05rem;
150
+ padding-bottom: .25rem;
151
+ padding-top: .25rem;
152
+ text-transform: capitalize;
153
+ }
154
+
155
+ @media screen and (min-width: 992px) {
156
+ .typography__header-global--nav-top {
157
+ color: $color-blue-light-nav;
158
+ font-size: 1.1rem;
159
+ &:hover,
160
+ &:focus {
161
+ color: $color-blue-light-nav;
162
+ }
163
+ }
164
+ }
165
+
166
+ @media screen and (min-width: 992px) {
167
+ .typography__header-global--nav-bottom {
168
+ color: $white;
169
+ font-size: 1.05rem;
170
+ font-weight: 400;
171
+ }
172
+ }
173
+
174
+ @media screen and (min-width: 992px) {
175
+ .typography__header-global--nav-bottom:hover,
176
+ .typography__header-global--nav-bottom:focus,
177
+ .header-global__dropdown:hover .typography__header-global--nav-bottom,
178
+ .header-global__dropdown:focus .typography__header-global--nav-bottom {
179
+ color: $primary-blue;
180
+ }
181
+ }
182
+
183
+ @media screen and (min-width: 992px) {
184
+ .typography__header-global--nav-local {
185
+ font-size: 1rem;
186
+ font-weight: 400;
187
+ }
188
+ & .nav-link {
189
+ margin-left: 5px;
190
+ margin-right: 5px;
191
+ }
192
+ }
193
+
142
194
  .typography__nav-link {
195
+ color: $white;
143
196
  font-family: $font-family-oswald;
197
+ font-size: 1.05rem;
198
+ font-weight: 400;
199
+ letter-spacing: 0.05rem;
200
+ text-transform: capitalize;
201
+ }
202
+
203
+ .typography__nav-local--nav-link {
204
+ font-family: $font-family-oswald;
205
+ font-size: 1rem;
144
206
  font-weight: 500;
145
207
  text-transform: uppercase;
146
208
  }
147
209
 
210
+ .typography__nav-local--color {
211
+ color: $primary-blue;
212
+ }
213
+
148
214
  // "The POWER of Community" text
149
215
  .typography__power-text {
150
216
  color: $white;
@@ -548,3 +614,9 @@ h1 sup, h2 sup, h3 sup, h4 sup, h5 sup, h6 sup { // Make superscripts within hea
548
614
  margin-top: -15px;
549
615
  }
550
616
  }
617
+
618
+ @media screen and (max-width: 992px) {
619
+ .typography__nowrap--sm {
620
+ white-space: nowrap;
621
+ }
622
+ }