From 27817f5d0b3c0248bd4910992ee3834462571b03 Mon Sep 17 00:00:00 2001 From: Vlad Burlutskiy Date: Tue, 26 Nov 2024 14:57:31 -0500 Subject: [PATCH 1/5] index.js: Add scripts to append chatwidget,load SS icon fonts Signed-off-by: Vlad Burlutskiy --- js/index.js | 181 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 181 insertions(+) diff --git a/js/index.js b/js/index.js index c26ef36..96521f4 100644 --- a/js/index.js +++ b/js/index.js @@ -82,3 +82,184 @@ function loadNYUPerstareFonts() { loadNYUPerstareFonts(); +function appendChatWidget() { + const CHATWIDGET_EMBED_CSS_URL = 'https://cdn.library.nyu.edu/chatwidget-embed/index.min.css'; + const CHATWIDGET_EMBED_PROD_URL = 'https://cdn.library.nyu.edu/chatwidget-embed/index.min.js'; + + if (!document.querySelector('link[href="' + CHATWIDGET_EMBED_CSS_URL + '"]')) { + const linkTag = document.createElement('link'); + linkTag.rel = 'stylesheet'; + linkTag.href = CHATWIDGET_EMBED_CSS_URL; + document.head.appendChild(linkTag); + } + + if (!document.querySelector('script[src="' + CHATWIDGET_EMBED_PROD_URL + '"]')) { + const scriptTag = document.createElement('script'); + scriptTag.src = CHATWIDGET_EMBED_PROD_URL; + document.head.appendChild(scriptTag); + } +} + +appendChatWidget(); + +function loadSSNYULibrariesFont() { + const style = document.createElement("style"); + const cssRule = ` + @font-face { + font-family: "SS NYULibraries"; + src: url("https://library.nyu.edu/assets/fonts/ss-nyu-libraries.eot"); + src: url("https://library.nyu.edu/assets/fonts/ss-nyu-libraries.eot?#iefix") format("embedded-opentype"), + url("https://library.nyu.edu/assets/fonts/ss-nyu-libraries.woff") format("woff"), + url("https://library.nyu.edu/assets/fonts/ss-nyu-libraries.ttf") format("truetype"); + font-weight: normal; + font-style: normal; + } + `; + + if (style.styleSheet) { + style.styleSheet.cssText = cssRule; + } else { + style.appendChild(document.createTextNode(cssRule)); + } + + document.head.appendChild(style); +} + +loadSSNYULibrariesFont(); + +/* Uncomment to run the script locally */ +// document.addEventListener("DOMContentLoaded", function () { +// function updateFooter() { +// function createNewFooter() { +// const footer = document.createElement("footer"); +// footer.id = "footer"; +// footer.className = "primary-footer"; +// footer.setAttribute("data-swiftype-index", "false"); +// footer.innerHTML = ` +//
+//
+// + +// +// +// +//
+// +//
+// `; +// return footer; +// } + +// function replaceFooter() { +// const oldFooter = document.querySelector(".public-footer-container"); +// if (oldFooter) { +// const newFooter = createNewFooter(); +// oldFooter.parentNode.replaceChild(newFooter, oldFooter); +// console.log("Footer replaced successfully"); +// } else { +// console.log("Footer container not found"); +// } +// } + +// const observer = new MutationObserver((mutationsList, observer) => { +// for (const mutation of mutationsList) { +// console.log("DOM change detected"); +// if (mutation.type === "childList" && document.querySelector(".public-footer-container")) { +// replaceFooter(); +// observer.disconnect(); +// break; +// } +// } +// }); + +// if (document.body) { +// observer.observe(document.body, { childList: true, subtree: true }); +// } else { +// console.error("document.body is null. Observer cannot start."); +// } +// } + +// updateFooter(); +// }); + + + From 7182839a909753e0e28ae70090e4efb752531156 Mon Sep 17 00:00:00 2001 From: Vlad Burlutskiy Date: Tue, 26 Nov 2024 15:01:42 -0500 Subject: [PATCH 2/5] footer.html: Add library.nyu.edu footer HTML Signed-off-by: Vlad Burlutskiy --- layouts/footer.html | 98 +++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 91 insertions(+), 7 deletions(-) diff --git a/layouts/footer.html b/layouts/footer.html index 1bfa13d..968a3ad 100644 --- a/layouts/footer.html +++ b/layouts/footer.html @@ -1,7 +1,91 @@ - - + \ No newline at end of file From 88a492b85c1209756d830b521d5f5add8cc47046 Mon Sep 17 00:00:00 2001 From: Vlad Burlutskiy Date: Tue, 26 Nov 2024 15:04:39 -0500 Subject: [PATCH 3/5] index.scss: Add rules to push custom footer to the bottom of the page Signed-off-by: Vlad Burlutskiy --- scss/index.scss | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/scss/index.scss b/scss/index.scss index 61fc4b0..69a80d4 100644 --- a/scss/index.scss +++ b/scss/index.scss @@ -29,6 +29,17 @@ causing issues with font-based icons like Font Awesome or similar. */ +html, body { + height: 100%; + margin: 0; + display: flex; + flex-direction: column; +} + +.s-lib-main.container { + flex: 1; +} + body { padding-left: 0; padding-right: 0; From fd99191f833e60519c52efb2d3fd16c35c9415c0 Mon Sep 17 00:00:00 2001 From: Vlad Burlutskiy Date: Tue, 26 Nov 2024 15:05:15 -0500 Subject: [PATCH 4/5] mixins.scss: Add mixins used in custom footer rules Signed-off-by: Vlad Burlutskiy --- scss/_mixins.scss | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/scss/_mixins.scss b/scss/_mixins.scss index dd56c31..d038f35 100644 --- a/scss/_mixins.scss +++ b/scss/_mixins.scss @@ -10,6 +10,32 @@ -webkit-font-smoothing: antialiased; } +@mixin appearance($arguments) { + @include prefix-property(appearance, unquote($arguments), true, true, false, false); +} + +@mixin prefix-property($property, $value, $supportWebkit: $defaultWebkitSupport, $supportFirefox: $defaultFirefoxSupport, $supportExplorer: $defaultExplorerSupport, $supportOpera: $defaultOperaSupport) { + + @if $supportWebkit { -webkit-#{$property}: $value; } + @if $supportFirefox { -moz-#{$property}: $value; } + @if $supportExplorer { -ms-#{$property}: $value; } + @if $supportOpera { -o-#{$property}: $value; } + + #{$property}: $value; +} + +@mixin clearfix { + zoom: 1; + &:before, &:after { + content: ""; + display: table; + } + &:after { + clear: both; + } +} + + // **************************************************************** // * RESPONSIVE MIXINS // **************************************************************** From 16e703743e459f9760e5ece19db52412109fb5c1 Mon Sep 17 00:00:00 2001 From: Vlad Burlutskiy Date: Tue, 26 Nov 2024 15:05:56 -0500 Subject: [PATCH 5/5] footer.scss: Add CSS rules for custom footer Signed-off-by: Vlad Burlutskiy --- scss/_footer.scss | 311 ++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 272 insertions(+), 39 deletions(-) diff --git a/scss/_footer.scss b/scss/_footer.scss index da07ae0..f28d427 100644 --- a/scss/_footer.scss +++ b/scss/_footer.scss @@ -5,60 +5,293 @@ // Comment out the background-color for the footer containers // until we standardize all pages on a single template +/* Hide the vendor's footer */ .system-footer-container { - // background: $text_black; + display: none !important; } -.s-lib-public-body .public-footer-container { - // background-color: $text_black; - text-align: center; +/* library.nyu.edu Footer styles */ + +#footer { + width: 100%; + display: block; +} + +#footer > img { + height: 27px; +} + +ul.list { + list-style: none; } -.s-lib-public-body #s-lib-footer-public, -.s-lib-footer, -#s-lib-footer-public { - border-top: none; - margin: 0 auto; - font-size: 100%; - background-color: $text_black; - color: $text_footer_gray; - padding: 45px 0 0 0; -} - -.s-lib-public-body #s-lib-footer-public, -.s-lib-footer, -#s-lib-footer-public, -#s-lib-footer-login-link, -#s-lib-footer-support-link, -.public-footer-container { - a { - color: $text_footer_dark_gray; - text-decoration: underline; - &:hover { - color: $text_footer_white; +.list { + margin: 0; + padding: 0; +} + +.list li { + border-bottom: 1px dotted #bbbdbf; + margin: 0 0 10px 0; + padding: 0 0 10px 0; +} + +.list:last-child li:last-child{ + border-bottom: 0 none; + margin-bottom: 0; + padding-bottom: 0; +} + +.list a { + text-decoration: none; +} + +label { + color: #656C72; + display: inline-block; + margin-bottom: 10px; +} + +img { + max-width: 100%; + border: 0; +} + +.ss-icon, .table__cell--sortable[data-sort]:after, [class^="ss-"]:before, [class*=" ss-"]:before, [class^="ss-"].right:after, [class*=" ss-"].right:after, .ss-icon.ss-nyu-libraries, .ss-nyu-libraries.table__cell--sortable[data-sort]:after, [class^="ss-"].ss-nyu-libraries:before, [class*=" ss-"].ss-nyu-libraries:before, [class^="ss-"].ss-nyu-libraries.right:after, [class*=" ss-"].ss-nyu-libraries.right:after { + font-weight: normal; + font-family: "SS NYULibraries"; +} + +.primary-footer{ + background: #22272d; + color: #acb6c2; + padding: 45px 0; + + + + .list li{ + border-bottom-color: #65686c; + } + + .block{ + margin-bottom: 30px; + } + + a{ + color: #acb6c2; + + &:hover{ + color: #d8dee5; + text-decoration: underline; } } + + .button{ + color: #fff; + font-size: 14px; + width: 100%; + display: block; + padding: 25px 20px; + } } -.footer, .system-footer-container, .public-footer-container { - .s-lg-text-greyout { - color: $text_footer_gray; +@media (max-width: 1300px) { + .primary-footer { + padding-bottom: 72px; } + + .s-lib-main { + padding-top: 0; + padding-bottom: 0; + } +} + + +.primary-footer a:hover { + color: #d8dee5; + text-decoration: underline; } -.bold, .s-lg-bold, .s-lg-book-title { - font-size: 100%; +.primary-footer .button:hover { + background: #6c07ae; } -.public-footer-container { - margin: 0 auto; - & > div.container { - background-color: $text_black; - padding: 10px 0 45px 15px; +.wrap{ + height: 90%; + width: 95%; + max-width: 1170px; + margin: auto; +} + +.block-container { + height: 100%; + zoom: 1; + display: block; + @include clearfix; + + &.is-bordered{ + border-top: 3px solid #22272d; + padding-top: 45px; } - @include max-width($bp_small_page_heading){ - .container { - margin: 0 auto; +} + +.block { + margin: 0 0 45px; +} + +.primary-footer .block { + margin-bottom: 30px; +} + +.block--25 { + width: 25%; + float: left; + padding: 0 15px; +} + +.block--25:first-child { + padding-left: 0; +} + +block--25:nth-of-type(4n) { + padding-right: 0; +} + +@include max-width(730px){ + .footer__give, .footer__social{ + width: 100%; + padding: 0; + } +} + +.footer__search { + position: relative; + margin-bottom: 12px; + color: #fff; +} + +input.footer__search__field { + color: #fff; + background: rgba(255, 255, 255, 0.15); + border: 1px solid transparent; + box-sizing: border-box; + box-shadow: none; + padding: 15px 40px 15px 10px; + margin: 0; + font-size: 14px; + border-radius: 3px; + width: 100%; + height: auto; + appearance: none; +} + +input.footer__search__button { + color: #fff; +} + +input.footer__search__button { + color: #fff; + @include appearance(none); + background: none; + font-size: 18px; + font-family: "SS NYULibraries"; + text-align: center; + padding: 0 13px; + margin: 0; + position: absolute; + top: 0; + right: 0; + height: 100%; + border-radius: 0 3px 3px 0; + border:none; + + &:hover, &:focus{ + background: #fff; + color: #57068c; + text-decoration: none; + } +} + +input.footer__search__button:hover, input.footer__search__button:focus { + background: #fff;; + color: #57068c; + text-decoration: none !important; +} + +input.footer__search__field::placeholder { + color: #fff; + opacity: 1; +} + +.primary-footer .button { + color: #fff; + font-size: 14px; + width: 100%; + display: block; + padding: 25px 20px; + appearance: none; + border: 0 none; + box-shadow: none; + background: #57068c; + font-weight: 400; + font-family: "NYUPerstare", Helvetica, Arial, sans-serif; + text-align: center; + text-decoration: none; + border-radius: 3px; +} + +@include max-width(500px){ + .footer__menu{ + .list:last-child li:last-child{ + border-bottom: 1px dotted #65686c; + padding-bottom: 10px; + margin-bottom: 10px; + } + + &:nth-child(2){ + margin-bottom: 0; } } } + +.footer__social p { + margin: 0 0 1em; + line-height: 1.5; + font-size: 12px; +} + +.footer__social p a, .footer__social p .block .s-la-widget a, .block .s-la-widget .footer__social p a { + text-decoration: none; + color: #fff; +} + +.footer__social .ss-icon, .footer__social .table__cell--sortable[data-sort]:after { + color: #d8dee5; + font-size: 20px; + display: inline-block; + margin-right: 10px; + text-decoration: none; +} + +.footer__copyright { + font-size: 12px; + border-top: 1px dotted #65686c; + padding-top: 30px; + color: #b1b1b1; + line-height: 1.4; +} + +.footer__copyright a, .footer__copyright .block .s-la-widget a, .block .s-la-widget .footer__copyright a { + color: #b1b1b1; + text-decoration: underline; +} + +.footer__logo { + float: right; + position: relative; + top: -7px; +} + +.footer__logo:hover { + opacity: 0.8; +} \ No newline at end of file