kcc-gem-theme 1.93.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (133) hide show
  1. checksums.yaml +4 -4
  2. data/_data/cache_bust_css.yml +1 -0
  3. data/_includes/alerts.html +2 -0
  4. data/_includes/benefits.html +98 -0
  5. data/_includes/body.html +6 -1
  6. data/_includes/bottom-action-call.html +10 -0
  7. data/_includes/check-mark.svg +17 -0
  8. data/_includes/contacts.html +6 -22
  9. data/_includes/emergency-alert.html +9 -0
  10. data/_includes/footer.html +38 -42
  11. data/_includes/hash/theme_hash.yml +1 -1
  12. data/_includes/hero-slider.html +12 -24
  13. data/_includes/nav-global.html +101 -164
  14. data/_includes/preconnect.html +5 -15
  15. data/_includes/scripts/custom.html +2 -4
  16. data/_includes/scripts/emergency-alerts.html +2 -0
  17. data/_includes/scripts/kcc-theme.html +1 -1
  18. data/_includes/scripts/vendor-cdn.html +3 -5
  19. data/_includes/styles/main.html +7 -5
  20. data/_includes/styles/vendor.html +2 -4
  21. data/_includes/targetx-form.html +370 -0
  22. data/_includes/targetx-head.html +48 -0
  23. data/_layouts/default-core.html +31 -0
  24. data/_layouts/default-landing.html +31 -0
  25. data/_layouts/default.html +3 -2
  26. data/_layouts/landing-page.html +8 -0
  27. data/_layouts/landing-simple.html +29 -0
  28. data/assets/css/kcc-theme.css +1 -0
  29. data/assets/css/translate.css +1 -0
  30. data/assets/img/facebook-f_white.svg +1 -0
  31. data/assets/img/instagram-white.svg +1 -0
  32. data/assets/img/linkedin-white.svg +1 -0
  33. data/assets/img/pinterest-p_white.svg +1 -0
  34. data/assets/img/settings.svg +1 -0
  35. data/assets/img/settings_56.svg +1 -0
  36. data/assets/img/twitter-white.svg +1 -0
  37. data/assets/img/youtube-white.svg +1 -0
  38. data/assets/js/dist/main.bundle.js +1 -0
  39. data/assets/js/{src → theme/alerts}/alerts.js +2 -4
  40. data/assets/js/theme/dist/alerts.bundle.js +1 -0
  41. data/assets/js/theme/dist/darkMode.bundle.js +1 -0
  42. data/assets/js/theme/dist/darkModeStyling.bundle.js +1 -0
  43. data/assets/js/theme/dist/darkModeStyling.css +2 -0
  44. data/assets/js/theme/dist/kcc-mega-nav.bundle.js +1 -0
  45. data/assets/js/theme/dist/kcc-nav.bundle.js +1 -0
  46. data/assets/js/theme/dist/kcc-theme-landing.bundle.js +1 -0
  47. data/assets/js/theme/dist/kcc-theme.bundle.js +1 -0
  48. data/assets/js/theme/landing/landing.js +5 -0
  49. data/assets/js/theme/landing/landingPage.js +49 -0
  50. data/assets/js/theme/nav/megaNav/closeMegaNavOnClick.js +50 -0
  51. data/assets/js/theme/nav/megaNav/googleCustomSearch.js +112 -0
  52. data/assets/js/theme/nav/megaNav/megaNav.js +13 -0
  53. data/assets/js/theme/nav/megaNav/searchToggleMegaNav.js +96 -0
  54. data/assets/js/theme/nav/megaNav/toggleDropdownOnWindowResize.js +78 -0
  55. data/assets/js/theme/nav/megaNav/toggleDropdownOnWindowResizeTwo.js +54 -0
  56. data/assets/js/theme/nav/megaNav/toggleMenuOnWindowResize.js +26 -0
  57. data/assets/js/theme/nav/megaNav/underlineCurrentSite.js +22 -0
  58. data/assets/js/{nav → theme/nav/nav}/nav.js +2 -3
  59. data/assets/js/theme/src/all.js +51 -0
  60. data/assets/js/theme/src/darkMode.js +17 -0
  61. data/assets/js/theme/src/footerDate.js +7 -0
  62. data/assets/js/theme/src/translate.js +56 -0
  63. data/assets/js/theme/src/walkText.js +27 -0
  64. data/assets/js/theme/src/wrapPowerText.js +21 -0
  65. data/assets/scss/0-tools/_google-translate-overrides.scss +40 -53
  66. data/assets/scss/1-base/_svg.scss +0 -3
  67. data/assets/scss/1-base/_typography.scss +1 -2
  68. data/assets/scss/2-modules/_accordion.scss +2 -2
  69. data/assets/scss/2-modules/_dark-mode.scss +241 -0
  70. data/assets/scss/2-modules/_footer.scss +2 -40
  71. data/assets/scss/2-modules/_setting.scss +53 -0
  72. data/assets/scss/darkMode.scss +5 -0
  73. data/assets/scss/kcc-theme.scss +1 -1
  74. data/assets/vendor/css/ajax-loader.gif +0 -0
  75. data/assets/vendor/css/bootstrap.min.css +7 -0
  76. data/assets/vendor/css/fonts/slick.eot +0 -0
  77. data/assets/vendor/css/fonts/slick.ttf +0 -0
  78. data/assets/vendor/css/fonts/slick.woff +0 -0
  79. data/assets/vendor/css/mli7lsm.css +22 -0
  80. data/assets/vendor/css/slick-theme.min.css +8 -0
  81. data/assets/vendor/css/slick.min.css +8 -0
  82. data/assets/vendor/font/slick.woff +0 -0
  83. data/assets/vendor/js/bootstrap.min.js +7 -0
  84. data/assets/vendor/js/jquery.min.js +2 -0
  85. data/assets/vendor/js/popper.min.js +5 -0
  86. data/assets/vendor/js/slick.min.js +1 -0
  87. metadata +93 -57
  88. data/assets/img/facebook.svg +0 -1
  89. data/assets/img/iccmc-logo_blue-transparent.png +0 -0
  90. data/assets/img/instagram.svg +0 -1
  91. data/assets/img/kankakee-community-college-blue.svg +0 -1
  92. data/assets/img/linkedin.svg +0 -1
  93. data/assets/img/pinterest.svg +0 -1
  94. data/assets/img/twitter.svg +0 -1
  95. data/assets/img/x-logo.svg +0 -11
  96. data/assets/img/youtube.svg +0 -1
  97. data/assets/js/dist/109.a6f1301e81cbab72d3fc.bundle.js +0 -1
  98. data/assets/js/dist/279.a6f1301e81cbab72d3fc.bundle.js +0 -1
  99. data/assets/js/dist/45.a6f1301e81cbab72d3fc.bundle.js +0 -1
  100. data/assets/js/dist/504.a6f1301e81cbab72d3fc.bundle.js +0 -1
  101. data/assets/js/dist/57.a6f1301e81cbab72d3fc.bundle.js +0 -1
  102. data/assets/js/dist/582.a6f1301e81cbab72d3fc.bundle.js +0 -1
  103. data/assets/js/dist/647.a6f1301e81cbab72d3fc.bundle.js +0 -1
  104. data/assets/js/dist/909.a6f1301e81cbab72d3fc.bundle.js +0 -1
  105. data/assets/js/dist/936.a6f1301e81cbab72d3fc.bundle.js +0 -1
  106. data/assets/js/dist/971.a6f1301e81cbab72d3fc.bundle.js +0 -1
  107. data/assets/js/dist/971.a6f1301e81cbab72d3fc.css +0 -1
  108. data/assets/js/dist/theme.a6f1301e81cbab72d3fc.bundle.js +0 -1
  109. data/assets/js/dist/theme.a6f1301e81cbab72d3fc.css +0 -1
  110. data/assets/js/src/all.js +0 -74
  111. data/assets/js/src/footerDate.js +0 -13
  112. data/assets/js/src/translate.js +0 -62
  113. data/assets/js/src/walkText.js +0 -31
  114. data/assets/js/src/wrapPowerText.js +0 -11
  115. data/assets/scss/translate.scss +0 -5
  116. /data/assets/js/{src → theme/alerts}/cacheResponse.js +0 -0
  117. /data/assets/js/{src → theme/alerts}/campusAlertsSheetsAPI.js +0 -0
  118. /data/assets/js/{src → theme/alerts}/checkForPrefersReducedMotion.js +0 -0
  119. /data/assets/js/{src → theme/alerts}/contentHashLink.js +0 -0
  120. /data/assets/js/{src → theme/alerts}/createAlertsHtml.js +0 -0
  121. /data/assets/js/{src → theme/alerts}/getCachedResponse.js +0 -0
  122. /data/assets/js/{src → theme/alerts}/parseMarkdownToHTML.js +0 -0
  123. /data/assets/js/{src → theme/alerts}/simpleSetSheetParameters.js +0 -0
  124. /data/assets/js/{nav → theme/nav/nav}/closeNavOnClick.js +0 -0
  125. /data/assets/js/{nav → theme/nav/nav}/highlightCurrentNav.js +0 -0
  126. /data/assets/js/{nav → theme/nav/nav}/moveSearchIcon.js +0 -0
  127. /data/assets/js/{nav → theme/nav/nav}/searchToggleNav.js +0 -0
  128. /data/assets/js/{nav → theme/nav/nav}/toggleNavSearchDropdownOnWindowResize.js +0 -0
  129. /data/assets/js/{src → theme/src}/addClassToOpenNavbar.js +0 -0
  130. /data/assets/js/{src → theme/src}/lazyLoad.js +0 -0
  131. /data/assets/js/{src → theme/src}/sliders.js +0 -0
  132. /data/assets/js/{src → theme/src}/test.js +0 -0
  133. /data/assets/js/{src → theme/src}/ytEmbed.js +0 -0
@@ -0,0 +1,26 @@
1
+ // Custom JS to Close the Navigation menu, if its open, & if the screen goes above 992px wide (Bootstrap 4 'lg' devices)
2
+ const NAVBAR_COLLAPSE_ID = 'headerGlobalNavbarContent'; // ID built into the sites' HTML
3
+
4
+ function collapseElement(el) {
5
+ $(el).collapse('hide'); // Bootstrap 4 `.collapse()` method.
6
+ }
7
+
8
+ function checkNavbarCollapseState(menuEl) {
9
+ if ( menuEl.classList.contains('show') ) { // 'show' is a Bootstrap 4 class that makes `.collapse` items visible. // Checking to see if the Menu is open
10
+ collapseElement(menuEl);
11
+ }
12
+ }
13
+
14
+ function windowResizeHandler() {
15
+ if ( window.innerWidth >= 992 ) {
16
+ const menuCollapseElement = document.getElementById(NAVBAR_COLLAPSE_ID);
17
+
18
+ checkNavbarCollapseState(menuCollapseElement);
19
+ }
20
+ }
21
+
22
+ function toggleMenuOnWindowResize() {
23
+ window.addEventListener('resize', windowResizeHandler);
24
+ }
25
+
26
+ export default toggleMenuOnWindowResize;
@@ -0,0 +1,22 @@
1
+ const NAV_GLOBAL_BOTTOM_NAV_ITEMS = document.getElementById('navGlobalBottom'); // ID from the HTML
2
+
3
+ function underlineCurrentSite() {
4
+ // JS is fun!
5
+ if (window.location.pathname === '/') // YOU DON'T NEED TO RUN THIS ON THE HOMEPAGE!!
6
+ return;
7
+ //console.log('execution of further functions has ceased.');
8
+ const NAV_ITEMS = NAV_GLOBAL_BOTTOM_NAV_ITEMS.querySelectorAll('li'); // Navigation HTML structure uses <ul><li>...</li><li>...</li></ul> which is common markup for a Bootrap's nav (from their documentation)
9
+ const url = window.location.pathname.replace(/(^\/|\/$)/g, '');
10
+ //console.log(url);
11
+
12
+ for (let i = 0, len = NAV_ITEMS.length; i < len; i++) {
13
+ let NAV_CATEGORIES = NAV_ITEMS[i].dataset.nav; // Comes from data-set attributes built into the HTML
14
+
15
+ if ( url.search(NAV_CATEGORIES) !== -1 ) {
16
+ let NAV_LINK = NAV_ITEMS[i].querySelector('a'); // Again, pretty standard bootstrap navigation HTML struture to have anchors in the <li>
17
+
18
+ return NAV_LINK.classList.add('header-global__nav-bottom--underlined'); // return breaks the loop and this is the class to underline stuff with
19
+ }
20
+ }
21
+ }
22
+ export default underlineCurrentSite;
@@ -4,11 +4,10 @@ import moveSearchIcon from './moveSearchIcon.js';
4
4
  import searchToggle from './searchToggleNav.js';
5
5
  import toggleSearchDropdownOnWindowResize from './toggleNavSearchDropdownOnWindowResize.js';
6
6
 
7
-
8
- export default function nav() {
7
+ document.addEventListener('DOMContentLoaded', function() {
9
8
  highlightNav();
10
9
  searchToggle();
11
10
  moveSearchIcon();
12
11
  closeMenuOnClick();
13
12
  toggleSearchDropdownOnWindowResize();
14
- }
13
+ });
@@ -0,0 +1,51 @@
1
+ import footerDate from './footerDate.js';
2
+ import lazyLoad from './lazyLoad.js';
3
+ import walkText from './walkText.js';
4
+ import initSliders from './sliders.js';
5
+ //import watchForMenuClicks from './translate.js';
6
+ import wrapPowerText from './wrapPowerText.js';
7
+ import addClassToOpenNavbar from './addClassToOpenNavbar.js';
8
+ import watchForMenuClicks from './translate';
9
+ //import ytEmbed from './ytEmbed.js';
10
+ //import test from './test.js';
11
+
12
+ document.addEventListener('DOMContentLoaded', function() {
13
+ wrapPowerText();
14
+ initSliders();
15
+ walkText(document.body);
16
+ footerDate();
17
+ lazyLoad();
18
+ watchForMenuClicks();
19
+ addClassToOpenNavbar();
20
+ if (document.getElementById('google_translate_element')) {
21
+ import(/* webpackChunkName: 'translate' */ './translate').then(({default: watchForMenuClicks}) => {
22
+ watchForMenuClicks();
23
+ });
24
+ }
25
+ if (window.localStorage.getItem('darkModeSetting') == 'true' || window.location.pathname == '/settings/') {
26
+ import(/* webpackChunkName: 'darkMode' */ './darkMode').then(({ default: darkMode }) => {
27
+ return darkMode;
28
+ }).then(darkMode => {
29
+ import(/* webpackChunkName: 'darkModeStyling' */ '../../../scss/darkMode.scss').then(() => {
30
+ darkMode();
31
+ });
32
+ })
33
+ }
34
+
35
+ // polyfill for Element.closest() b/c IE can't handle an anchor.match() when the anchor has another element inside it (Like spans used for BS4 menu toggler)
36
+ if (!Element.prototype.matches) {
37
+ Element.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;
38
+ }
39
+
40
+ if (!Element.prototype.closest) {
41
+ Element.prototype.closest = function(s) {
42
+ var el = this;
43
+
44
+ do {
45
+ if (el.matches(s)) return el;
46
+ el = el.parentElement || el.parentNode;
47
+ } while (el !== null && el.nodeType === 1);
48
+ return null;
49
+ };
50
+ }
51
+ });
@@ -0,0 +1,17 @@
1
+ const htmlElement = document.querySelector('html');
2
+ const DARK_MODE_BUTTON_ID = 'darkModeButton';
3
+
4
+ function darkModeClickHandler(e) {
5
+ return htmlElement.classList.toggle('dark-mode');
6
+ }
7
+
8
+ function darkMode() {
9
+ console.log('Dark Mode (is the best)!');
10
+ window.localStorage.getItem('darkModeSetting') === 'true' ? htmlElement.classList.add('dark-mode') : null;
11
+ if (window.location.pathname !== '/settings/') return;
12
+ const darkModeButton = document.getElementById(DARK_MODE_BUTTON_ID);
13
+
14
+ darkModeButton.addEventListener('click', darkModeClickHandler);
15
+ }
16
+
17
+ export default darkMode;
@@ -0,0 +1,7 @@
1
+ // Sets copyright year
2
+ function footerDate() {
3
+ const d = new Date();
4
+ const fullYear = d.getFullYear();
5
+ document.getElementById('currentYear').innerHTML = fullYear;
6
+ }
7
+ export default footerDate;
@@ -0,0 +1,56 @@
1
+ function styleIFrameElement(IFRAME_MENU_ELEMENT, iframeStyles) {
2
+ const currentStyles = IFRAME_MENU_ELEMENT.style.cssText;
3
+ let currentStylesString = currentStyles.toString();
4
+ const combinedStyles = currentStylesString += iframeStyles
5
+ IFRAME_MENU_ELEMENT.setAttribute('style', combinedStyles);
6
+ }
7
+
8
+ function setIframeStyles() {
9
+ const iframeStyles = ' height: 100%; width: 100%; top: 0px; box-shadow: 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.3);';
10
+ return iframeStyles;
11
+ }
12
+
13
+ function createStyleConfigurationObject() {
14
+ const styleConfigurationObject = { // Setting all the selectors & the styles they should get.
15
+ '.goog-te-menu2-item div, .goog-te-menu2-item:link div, .goog-te-menu2-item:visited div, .goog-te-menu2-item:active div, .goog-te-menu2 *': 'color: #544F4B; font-family: "Roboto", sans-serif; width: 100%;', // Change font fam and color!
16
+ '.goog-te-menu2-item-selected': 'display: none;', // Change menu's padding
17
+ '.goog-te-menu2': 'overflow-y: scroll; padding: 0px;', // Change menu's padding
18
+ '.goog-te-menu2-item div': 'padding: 20px;', // Change the padding of the languages
19
+ '.goog-te-menu2-item': 'width: 100%;', // Change the width of the languages
20
+ 'td': 'width: 100%; display: block;', // Change the width of the languages
21
+ '.goog-te-menu2-colpad': 'display: none;', // Change the width of the languages
22
+ '.goog-te-menu2': 'border: none;', // Change Google's default blue border
23
+ '.goog-te-menu2': 'height: 100%; width: 100%;'
24
+ }
25
+ return styleConfigurationObject;
26
+ }
27
+
28
+ function setStyles(selector, styles, IFRAME_MENU_ELEMENT) {
29
+ const content = IFRAME_MENU_ELEMENT.contentWindow;
30
+ const itemsToStyle = content.document.querySelectorAll(selector);
31
+ for (let i = 0; i < itemsToStyle.length; i++) {
32
+ const items = itemsToStyle[i];
33
+ items.setAttribute('style', styles);
34
+ }
35
+ }
36
+
37
+ function watchForMenuClicks() {
38
+ // RESTYLE THE DROPDOWN MENU
39
+ if (document.getElementById('google_translate_element')) {
40
+ const GOOGLE_TRANSLATE_ELEMENT = document.getElementById('google_translate_element');
41
+ const styleConfigurationObject = createStyleConfigurationObject();
42
+ const iframeStyles = setIframeStyles();
43
+ GOOGLE_TRANSLATE_ELEMENT.addEventListener('click', function (event) {
44
+ const IFRAME_MENU_ELEMENT = document.querySelector('iframe[class*="goog-te-menu-frame"]');
45
+
46
+ //event.preventDefault();
47
+ styleIFrameElement(IFRAME_MENU_ELEMENT, iframeStyles);
48
+ Object.keys(styleConfigurationObject).forEach(function(selector) {
49
+ setStyles(selector, styleConfigurationObject[selector], IFRAME_MENU_ELEMENT);
50
+ });
51
+
52
+ }, false);
53
+ }
54
+ }
55
+
56
+ export default watchForMenuClicks;
@@ -0,0 +1,27 @@
1
+ // Replace all occurences of "--" (double-hyphens,) within the page's text-nodes, with em-dashes.
2
+ // Use a replacer function to omit any occurences of triple-hyphens which appear in our documentation.
3
+ // For example, YAML Front - matter's opening and closing triple-hyphens
4
+ // Without the replacer funciton, triple-hyphens get replaced with an em-dash and a hyphen.
5
+ const emDashOrTripleHyphensRegex = /---?/g;
6
+ const tripleHyphenRegex = /---/;
7
+ const emDashReplacement = '—' // This is an em-dash, however, it looks like a hyphen in monospace text editor font!
8
+
9
+ function replacerFunction(match) {
10
+ return match.search(tripleHyphenRegex) === -1 ? emDashReplacement : match;
11
+ }
12
+ function walkText(node) {
13
+ if (node.nodeType == 3) {
14
+ node.data = node.data.replace(emDashOrTripleHyphensRegex, replacerFunction);
15
+ }
16
+ if (node.nodeType == 1 && node.nodeName != 'SCRIPT') {
17
+ for (var i = 0; i < node.childNodes.length; i++) {
18
+ walkText(node.childNodes[i]);
19
+ }
20
+ }
21
+ }
22
+ // Note on usage: You don't need to necessarily traverse the entire document.body.
23
+ // Usage:
24
+ //
25
+ // walkText(document.body);
26
+ //
27
+ export default walkText;
@@ -0,0 +1,21 @@
1
+ const SLIDE_HEADING_ELEMENTS = document.querySelectorAll('.hero-slider__slider--slide-heading'); // Element from HTML
2
+ const regEx = /\*\*(\S+)\*\*/g;
3
+ const replacement = '<span class="typography__power-text">$1</span>';
4
+
5
+ function replaceRegex(el) {
6
+ return el.innerHTML = el.innerHTML.replace(regEx, replacement);
7
+ }
8
+
9
+ function loopOverNodeList(nodeList) {
10
+ for (var i = 0; i < nodeList.length; i++) {
11
+ replaceRegex(nodeList[i]);
12
+ }
13
+ }
14
+
15
+ function wrapPowerText() {
16
+ if ( !document.querySelectorAll('.hero-slider__slider--slide-heading') )
17
+ return; // Bail out of theres no slider in the page.
18
+ loopOverNodeList(SLIDE_HEADING_ELEMENTS);
19
+ }
20
+
21
+ export default wrapPowerText;
@@ -1,15 +1,18 @@
1
- // Custom styling for Google Translate
2
- // ====================================================== //
1
+ .goog-te-gadget-simple {
2
+ white-space: nowrap;
3
+ border-radius: 20px;
4
+ padding-left: 10px;
5
+ padding-right: 10px;
6
+ margin-right: 5px;
7
+ height: 100%;
8
+ }
3
9
 
4
- // Top-most element of the Google Translate menu
5
10
  #google_translate_element {
6
11
  position: fixed;
7
12
  bottom: .25rem;
8
13
  right: .25rem!important;
9
14
  z-index: 99999;
10
15
  }
11
-
12
- // First child of translate element
13
16
  .goog-te-gadget {
14
17
  font-family: Roboto, 'Open Sans', sans-serif!important;
15
18
  text-transform: uppercase;
@@ -18,61 +21,52 @@
18
21
  color: $white;
19
22
  }
20
23
  }
21
-
22
- // Second child of translate element
23
24
  .goog-te-gadget-simple {
24
25
  background-color: rgba(255,255,255,0.85)!important;
25
26
  border: 1px solid rgba(0,0,0,0.95) !important;
27
+ padding: 8px!important;
26
28
  border-radius: 4px!important;
27
- cursor: pointer;
28
- display: inline-block;
29
29
  font-size: 1rem!important;
30
- height: 100%;
31
30
  line-height:2rem!important;
32
- margin-right: 5px;
33
- padding: 8px!important;
31
+ display: inline-block;
34
32
  transition: background-color .2s;
35
- white-space: nowrap;
33
+ cursor: pointer;
36
34
  zoom: 1;
37
- &:hover { // Adds a hover effect
35
+ &:hover {
38
36
  background-color: rgba(0, 123, 255, 0.85)!important;
39
37
  }
40
38
  &:focus {
41
39
  background-color: rgba(0, 123, 255, 0.85)!important;
42
40
  }
43
41
  }
44
-
45
- // Adds a hover effect
46
- .goog-te-gadget-simple:hover .VIpgJd-ZVi9od-xl07Ob-lTBxed {
42
+ .goog-te-menu2 {
43
+ max-width: 100%;
44
+ width: 100%;
45
+ }
46
+ .goog-te-gadget-simple:hover .goog-te-menu-value {
47
47
  color: $white !important;
48
48
  }
49
-
50
- // Adds a nice icon from "Material Icons" icons
51
- .VIpgJd-ZVi9od-xl07Ob-lTBxed {
49
+ .goog-te-menu-value {
52
50
  color: #000 !important;
53
51
  text-decoration: none !important;
54
52
  &:before {
55
- font-family: 'Material Icons'; // <https://fonts.google.com/icons?selected=Material+Icons>
56
- content: "\E927"; // G translate icon <https://fonts.google.com/icons?selected=Material+Icons&icon.query=translate>
53
+ font-family: 'Material Icons';
54
+ content: "\E927";
57
55
  margin-right: 16px;
58
56
  font-size: 2rem;
59
57
  vertical-align: -10px;
60
58
  // width:32px!important;
61
59
  }
62
60
  }
63
-
64
- // Hide span that messes up layout
65
- .VIpgJd-ZVi9od-xl07Ob-lTBxed span:nth-child(5) {
61
+ .goog-te-menu-value span:nth-child(5) {
66
62
  display:none;
67
63
  }
68
-
69
- // Use a nicer looking dropdown arrow/carrot than the default
70
- .VIpgJd-ZVi9od-xl07Ob-lTBxed span:nth-child(3) {
64
+ .goog-te-menu-value span:nth-child(3) {
71
65
  border:none!important;
72
66
  font-family: 'Material Icons';
73
67
  &:after {
74
68
  font-family: 'Material Icons';
75
- content: "\E5C5"; // <https://fonts.google.com/icons?selected=Material+Icons&icon.query=arrow>
69
+ content: "\E5C5";
76
70
  font-size: 1.5rem;
77
71
  vertical-align: -6px;
78
72
  }
@@ -89,39 +83,32 @@
89
83
  }
90
84
 
91
85
  // ============ HIDE TOP BAR ============
92
- .VIpgJd-ZVi9od-ORHb-OEVmcd.skiptranslate {display: none!important;}
86
+ .goog-te-banner-frame.skiptranslate {display: none!important;}
93
87
  body {top: 0px!important;}
94
88
 
95
89
  /* ================================== *\
96
90
  Mediaqueries
97
91
  \* ================================== */
98
92
  @media (max-width: 667px) {
99
- #google_translate_element {
100
- bottom: .25rem;
101
- left: 16px!important;
102
- width: 100%!important;
103
- .goog-te-gadget {
104
- width:100%!important;
105
- }
106
- .skiptranslate {
107
- width:100%!important;
108
- }
109
- .goog-te-gadget-simple {
110
- width: calc(100% - 32px)!important;
111
- text-align: center;
112
- }
113
- }
93
+ #google_translate_element {
94
+ bottom: .25rem;
95
+ left: 16px!important;
96
+ width: 100%!important;
97
+ goog-te-gadget {
98
+ width:100%!important;
99
+ }
100
+ .skiptranslate {
101
+ width:100%!important;
102
+ }
103
+ .goog-te-gadget-simple {
104
+ width: calc(100% - 32px)!important;
105
+ text-align: center;
106
+ }
107
+ }
114
108
  }
115
-
116
- // Prevent underlining when hovered
117
- a.VIpgJd-ZVi9od-xl07Ob-lTBxed {
109
+ a.goog-te-menu-value {
118
110
  text-decoration: none !important;
119
111
  &:hover {
120
112
  text-decoration: none !important;
121
113
  }
122
114
  }
123
-
124
- // Removes the blue border surrounding the entire translate menu (when opened)
125
- .VIpgJd-ZVi9od-vH1Gmf {
126
- border: none !important;
127
- }
@@ -19,9 +19,6 @@
19
19
  &--red {
20
20
  fill: $primary-red;
21
21
  }
22
- &--white {
23
- fill: $white;
24
- }
25
22
  }
26
23
 
27
24
  .svg--max-width {
@@ -185,8 +185,7 @@ body {
185
185
  font-size: 1rem;
186
186
  font-weight: 400;
187
187
  }
188
-
189
- .nav-link:not([role=tab]) {
188
+ & .nav-link:not([role=tab]) {
190
189
  margin-left: 5px;
191
190
  margin-right: 5px;
192
191
  }
@@ -17,13 +17,13 @@
17
17
  background-color: $primary-blue;
18
18
  border-radius: 50%;
19
19
  color: #fff;
20
- content: '\2212';
20
+ content: '\002D';
21
21
  display: inline-block;
22
22
  font-family: $font-family-paragraph;
23
23
  font-size: 2rem;
24
24
  font-weight: 400;
25
25
  height: 30px;
26
- line-height: 28px;
26
+ line-height: 30px;
27
27
  margin-right: 10px;
28
28
  position: relative; // Safari doesn't want to render this pseudo-element without `position: relative;`
29
29
  text-align: center;
@@ -0,0 +1,241 @@
1
+ $dark-mode-background: #191f25;
2
+ $dark-mode-foreground: #7e848f;
3
+ $dark-mode-foreground-lighter: #abaeb3;
4
+
5
+ .dark-mode body {
6
+ background-color: $dark-mode-background;
7
+ }
8
+
9
+ .dark-mode {
10
+ background-color: $dark-mode-background;
11
+ & p,
12
+ & ol,
13
+ & ul:not(.navbar-nav),
14
+ & .typography__h2,
15
+ & .typography__h5,
16
+ & .typography__h6 {
17
+ color: $dark-mode-foreground;
18
+ }
19
+ & .typography__h4 {
20
+ color: #e46181;
21
+ }
22
+ & .accordion__typography--card-header .btn-link,
23
+ .typography__h3 {
24
+ color: #9bb7dd;
25
+ }
26
+ & .footer-icons,
27
+ & .buttons__action,
28
+ & .header-global,
29
+ & iframe[title="calendar"],
30
+ & .hero-slider__slider,
31
+ & #emergencyAlerts {
32
+ filter: brightness(.75);
33
+ }
34
+ & .buttons__action:hover {
35
+ background-color: #002348;
36
+ border-color: rgba(255,255,255,.4);
37
+ }
38
+ & footer {
39
+ background-color: #14191d;
40
+ border-top-color: rgba(256,256,256,.5);
41
+ border-top-width: 1px;
42
+ border-top-style: solid;
43
+ }
44
+ & .breadcrumbs {
45
+ border-bottom-color: rgba(256,256,256,.5)
46
+ }
47
+ & .background__color--tan {
48
+ background-color: #302c24;
49
+ }
50
+ & .benefits__background-color {
51
+ background-color: #354d53;
52
+ }
53
+ & .news__h3 {
54
+ color: $dark-mode-foreground-lighter;
55
+ }
56
+ & .header-global .dropdown-menu {
57
+ background-color: #151a1e;
58
+ & .dropdown-item {
59
+ color: #ccc;
60
+ }
61
+ & .dropdown-item:hover,
62
+ & .dropdown-item:focus {
63
+ background-color: #000;
64
+ color: #efefef
65
+ }
66
+ }
67
+ & .benefits__typography--img-cap {
68
+ color: $dark-mode-foreground-lighter;
69
+ }
70
+ & .news__li {
71
+ border-bottom-color: $dark-mode-foreground-lighter;
72
+ }
73
+ & .svg--fill-blue {
74
+ stroke: $dark-mode-foreground-lighter;
75
+ }
76
+ & .svg__fill--blue {
77
+ fill: $dark-mode-foreground-lighter;
78
+ }
79
+ & .benefits__borders--circle-img {
80
+ border-color: #000;
81
+ filter: drop-shadow(5px 5px 12px rgba(0,0,0,.5)) brightness(.75);
82
+ }
83
+ & .news__span {
84
+ box-shadow: inset 0 0 0 1.4px $dark-mode-foreground;
85
+ }
86
+ & .news__div--img {
87
+ border: solid thin #ccc;
88
+ filter: brightness(.75);
89
+ }
90
+ & .btn-primary {
91
+ background-color: #002348;
92
+ border-color: #8db2e5;
93
+ &:hover {
94
+ background-color: #8db2e5;
95
+ color: #002348 !important;
96
+ }
97
+ }
98
+ & .alert-warning {
99
+ background-color: #664d03;
100
+ border-color: #fff3cd;
101
+ & p {
102
+ color: #fff3cd;
103
+ }
104
+ }
105
+ & a:not(.nav-link),
106
+ & .links__darker-link {
107
+ color: #8db2e5;
108
+ }
109
+ & a:not(.btn):hover,
110
+ & .links__darker-link:hover {
111
+ color: #bfd7f9;
112
+ }
113
+ & iframe[title="calendar"] {
114
+ filter: contrast(0.5);
115
+ }
116
+ & .header-global__nav-top {
117
+ background-color: #002348;
118
+ }
119
+ & .header-global__nav-bottom {
120
+ background-color: #80132e;
121
+ }
122
+ & .buttons__action {
123
+ color: $white !important;
124
+ background-color: #80132e;
125
+ }
126
+ & img {
127
+ filter: brightness(.75);
128
+ }
129
+ & .card {
130
+ background-color: #151a1c;
131
+ border-color: rgba(256,256,256,.4);
132
+ }
133
+ & .card-body {
134
+ background-color: #192125;
135
+ }
136
+ & .accordion>.card>.card-header {
137
+ margin-bottom: 0;
138
+ border-bottom-color: rgba(256,256,256,.125);
139
+ }
140
+ & .accordion__button::before {
141
+ border-style: solid;
142
+ border-color: rgba(256,256,256,.25);
143
+ border-width: thin;
144
+ }
145
+ & .nav-tabs .nav-link {
146
+ border-left-color: rgba(256,256,256,.325);
147
+ border-right-color: rgba(256,256,256,.325);
148
+ border-top-color: rgba(256,256,256,.325);
149
+ border-bottom-color: rgba(256,256,256,.5);
150
+ background-color: #151a1c;
151
+ }
152
+ & .nav-tabs .nav-link.active {
153
+ border-color: rgba(256,256,256,.6) !important;
154
+ background-color: #192125;
155
+ border-bottom: thin solid #192125 !important;
156
+ }
157
+ & .nav-tabs {
158
+ border-bottom-color: rgba(256,256,256,.5);
159
+ }
160
+ & .nav-tabs .nav-item.show .nav-link,
161
+ & .nav-tabs .nav-link.active {
162
+ color: $dark-mode-foreground-lighter;
163
+ }
164
+ & .tab-pane {
165
+ background-color: #192125;
166
+ border-bottom: thin solid rgba(256,256,256,.5);
167
+ border-left: thin solid rgba(256,256,256,.5);
168
+ border-right: thin solid rgba(256,256,256,.5);
169
+ border-bottom-left-radius: .25rem;
170
+ border-bottom-right-radius: .25rem;
171
+ padding: .5rem;
172
+ }
173
+ & td,
174
+ & th,
175
+ & thead th {
176
+ border-color: #454d55;
177
+ }
178
+ & .table {
179
+ background-color: #262a2e;
180
+ color: $dark-mode-foreground-lighter
181
+ }
182
+ & .table-striped tbody tr:nth-of-type(odd) {
183
+ background-color: rgba(255,255,255,.05);
184
+ }
185
+ & .table-hover tbody tr:hover {
186
+ background-color: rgba(0,0,0,.125);
187
+ }
188
+ & .modal-content {
189
+ background-color: #2a2f34;
190
+ border-color: rgba(255,255,255,.4);
191
+ }
192
+ & .modal-header {
193
+ border-bottom-color: rgba(256,256,256,.5);
194
+ color: $dark-mode-foreground-lighter
195
+ }
196
+ & .modal-footer {
197
+ border-bottom-color: rgba(256,256,256,.5)
198
+ }
199
+ & .close {
200
+ color: $dark-mode-foreground-lighter;
201
+ &:hover,
202
+ &:focus {
203
+ color: rgba(256,256,256,.6);
204
+ }
205
+ }
206
+ & .header-global__navbar--toggler .navbar-toggler-icon {
207
+ background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(255, 255, 255, 0.75)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
208
+ }
209
+ & .header-global__navbar--toggler {
210
+ border-color: rgba(256,256,256,.5);
211
+ }
212
+ & #headerGlobalNavbarContent.collapse.show .navbar-nav,
213
+ & #headerGlobalNavbarContent.collapsing .navbar-nav {
214
+ background-color: #14181d;
215
+ }
216
+ & #___gcse_0 {
217
+ filter: invert(1);
218
+ }
219
+ }
220
+
221
+ @media screen and (min-width: 992px) {
222
+ .dark-mode .header-global__navbar--search-toggle:before {
223
+ background-color: #002348;
224
+ }
225
+ .dark-mode .header-global__nav-bottom .dropdown:hover {
226
+ background-color: #0f1417;
227
+ }
228
+ .dark-mode .header-global .dropdown-menu {
229
+ border: thin solid rgba(255,255,255,.325);
230
+ }
231
+ }
232
+
233
+ @media screen and (max-width: 991px) {
234
+ .dark-mode .header-global__core:after {
235
+ background-color: #272b30;
236
+ border-top: 1px solid #b1b1b1;
237
+ }
238
+ .dark-mode .header-global .dropdown-menu {
239
+ border: thin solid rgba(255,255,255,.325);
240
+ }
241
+ }