diff --git a/.browserslistrc b/.browserslistrc new file mode 100644 index 000000000..26a9d68c5 --- /dev/null +++ b/.browserslistrc @@ -0,0 +1,2 @@ +last 2 versions +ie 11 diff --git a/.tugboat/config.yml b/.tugboat/config.yml index a0b76e7ef..429e05f15 100644 --- a/.tugboat/config.yml +++ b/.tugboat/config.yml @@ -46,10 +46,12 @@ services: - /item-components-global-footer.html - /item-components-hero.html - /item-components-link.html + - /item-components-local-footer.html - /item-components-lockup.html - /item-components-logo.html - /item-components-main-navigation.html - /item-components-masthead.html - /item-components-quote.html + - /item-components-signup-form.html - /item-components-site-search.html - /item-components-skiplinks.html diff --git a/core/dist/assets/fa-brands-400.eot b/core/dist/assets/fa-brands-400.eot new file mode 100644 index 000000000..f6b7c7dc1 Binary files /dev/null and b/core/dist/assets/fa-brands-400.eot differ diff --git a/core/dist/assets/fa-brands-400.svg b/core/dist/assets/fa-brands-400.svg new file mode 100644 index 000000000..cf4d7ceb1 --- /dev/null +++ b/core/dist/assets/fa-brands-400.svg @@ -0,0 +1,3496 @@ + + + + diff --git a/core/dist/assets/fa-brands-400.ttf b/core/dist/assets/fa-brands-400.ttf new file mode 100644 index 000000000..82e255ac5 Binary files /dev/null and b/core/dist/assets/fa-brands-400.ttf differ diff --git a/core/dist/assets/fa-brands-400.woff b/core/dist/assets/fa-brands-400.woff new file mode 100644 index 000000000..b0021db2e Binary files /dev/null and b/core/dist/assets/fa-brands-400.woff differ diff --git a/core/dist/assets/fa-brands-400.woff2 b/core/dist/assets/fa-brands-400.woff2 new file mode 100644 index 000000000..b53cbbf56 Binary files /dev/null and b/core/dist/assets/fa-brands-400.woff2 differ diff --git a/core/dist/assets/fa-regular-400.eot b/core/dist/assets/fa-regular-400.eot new file mode 100644 index 000000000..e1bcc447d Binary files /dev/null and b/core/dist/assets/fa-regular-400.eot differ diff --git a/core/dist/assets/fa-regular-400.svg b/core/dist/assets/fa-regular-400.svg new file mode 100644 index 000000000..f32e41e30 --- /dev/null +++ b/core/dist/assets/fa-regular-400.svg @@ -0,0 +1,803 @@ + + + + diff --git a/core/dist/assets/fa-regular-400.ttf b/core/dist/assets/fa-regular-400.ttf new file mode 100644 index 000000000..5267d851b Binary files /dev/null and b/core/dist/assets/fa-regular-400.ttf differ diff --git a/core/dist/assets/fa-regular-400.woff b/core/dist/assets/fa-regular-400.woff new file mode 100644 index 000000000..f513c1c3c Binary files /dev/null and b/core/dist/assets/fa-regular-400.woff differ diff --git a/core/dist/assets/fa-regular-400.woff2 b/core/dist/assets/fa-regular-400.woff2 new file mode 100644 index 000000000..2e72e872c Binary files /dev/null and b/core/dist/assets/fa-regular-400.woff2 differ diff --git a/core/dist/css/decanter.css b/core/dist/css/decanter.css index 44be1cb0e..58af103ed 100644 --- a/core/dist/css/decanter.css +++ b/core/dist/css/decanter.css @@ -315,7 +315,7 @@ button, [type='reset'], [type='image'], .su-button--big, .su-button--big.su-link, .su-button--secondary, -.su-button--secondary.su-link { +.su-button--secondary.su-link, .su-local-footer__header .su-link--internal { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; font-family: "Source Sans Pro", "Helvetica Neue", "Helvetica", "Arial", sans-serif; @@ -330,7 +330,7 @@ button, width: 100%; -webkit-transition: background-color 0.25s ease-in-out, color 0.25s ease-in-out; transition: background-color 0.25s ease-in-out, color 0.25s ease-in-out; } - .su-cta .su-cta__button a, .su-button a, .su-button.su-link a, button a, [type='button'] a, [type='submit'] a, [type='reset'] a, [type='image'] a, .su-button--big a, .su-button--big.su-link a, .su-button--secondary a, .su-button--secondary.su-link a { + .su-cta .su-cta__button a, .su-button a, .su-button.su-link a, button a, [type='button'] a, [type='submit'] a, [type='reset'] a, [type='image'] a, .su-button--big a, .su-button--big.su-link a, .su-button--secondary a, .su-button--secondary.su-link a, .su-local-footer__header .su-link--internal a { font-weight: 400; text-decoration: none; } @media only screen and (min-width: 576px) { @@ -342,14 +342,14 @@ button, [type='reset'], [type='image'], .su-button--big, .su-button--big.su-link, .su-button--secondary, - .su-button--secondary.su-link { + .su-button--secondary.su-link, .su-local-footer__header .su-link--internal { width: auto; } } .su-cta .su-cta__button:hover, .su-button:hover, button:hover, :hover[type='button'], :hover[type='submit'], :hover[type='reset'], - :hover[type='image'], .su-button--big:hover, .su-button--secondary:hover { + :hover[type='image'], .su-button--big:hover, .su-button--secondary:hover, .su-local-footer__header .su-link--internal:hover { border-bottom: 0; text-decoration: none; } @@ -2556,6 +2556,22 @@ textarea, select { flex: 0 0 calc(100% - 0px); max-width: calc(100% - 0px); } } +@font-face { + font-family: 'Font Awesome 5 Free'; + font-style: normal; + font-weight: 400; + font-display: auto; + src: url(../assets/fa-regular-400.eot); + src: url(../assets/fa-regular-400.eot?#iefix) format("embedded-opentype"), url(../assets/fa-regular-400.woff2) format("woff2"), url(../assets/fa-regular-400.woff) format("woff"), url(../assets/fa-regular-400.ttf) format("truetype"), url(../assets/fa-regular-400.svg#fontawesome) format("svg"); } + +@font-face { + font-family: 'Font Awesome 5 Brands'; + font-style: normal; + font-weight: normal; + font-display: auto; + src: url(../assets/fa-brands-400.eot); + src: url(../assets/fa-brands-400.eot?#iefix) format("embedded-opentype"), url(../assets/fa-brands-400.woff2) format("woff2"), url(../assets/fa-brands-400.woff) format("woff"), url(../assets/fa-brands-400.ttf) format("truetype"), url(../assets/fa-brands-400.svg#fontawesome) format("svg"); } + @font-face { font-family: "Source Serif Pro"; src: url("https://www-media.stanford.edu/assets/fonts/sourceserifpro-extralight-webfont.woff") format("woff"); @@ -3172,6 +3188,13 @@ dfn { .su-small-paragraph { font-size: 1.5rem; } } +.su-fab { + font-family: 'Font Awesome 5 Brands'; } + +.su-far { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } + .layout-blastila-flex--right > div { -webkit-box-orient: horizontal; -webkit-box-direction: reverse; @@ -4821,21 +4844,6 @@ dfn { -ms-grid-row: 2; -ms-grid-column: 3; grid-area: B; } - @media only screen and (min-width: 576px){ - .layout-cuttoner > div > section > header { - -ms-grid-row: 1; - -ms-grid-column: 1; - -ms-grid-column-span: 2; } - .layout-cuttoner > div > section > footer { - -ms-grid-row: 3; - -ms-grid-column: 1; - -ms-grid-column-span: 2; } - .layout-cuttoner > div > section > :nth-child(2) { - -ms-grid-row: 2; - -ms-grid-column: 1; } - .layout-cuttoner > div > section > :nth-child(3) { - -ms-grid-row: 2; - -ms-grid-column: 2; } } .layout-cuttoner > div > aside { -ms-grid-row: 1; -ms-grid-column: 3; } @@ -8599,6 +8607,615 @@ a { -webkit-transform: translateX(0.2em); transform: translateX(0.2em); } } +.su-local-footer { + background-color: #f4f4f4; } + .su-local-footer a { + font-weight: 400; } + .su-local-footer ul { + margin-top: 0; + margin-bottom: 0; + padding-left: 0; + list-style-type: none; } + .su-local-footer ul > li { + margin-bottom: 0; } + .su-local-footer ul > li { + margin-bottom: 7px; } + .su-local-footer .su-signup-form p { + font-size: 17px; } + +.su-local-footer__header { + position: relative; } + +@media only screen and (max-width: 991px) and (min-width: 0) { + .su-local-footer__header .su-lockup { + margin-bottom: 3.2rem; } } + +@media only screen and (max-width: 991px) and (min-width: 768px) { + .su-local-footer__header .su-lockup { + margin-bottom: 3.6rem; } } + +@media only screen and (max-width: 991px) and (min-width: 1500px) { + .su-local-footer__header .su-lockup { + margin-bottom: 3.8rem; } } + @media only screen and (min-width: 992px) { + .su-local-footer__header .su-lockup { + float: left; } } + .su-local-footer__header .su-link--internal { + padding: 1rem 2rem 1.15rem; + background-color: #b1040e; + color: #ffffff; + border: 1px solid #C6C6C6; + -webkit-box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.13), 0px 3px 6px rgba(0, 0, 0, 0.1); + box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.13), 0px 3px 6px rgba(0, 0, 0, 0.1); + border-radius: 7px; } + .su-local-footer__header .su-link--internal:hover, .su-local-footer__header .su-link--internal:focus { + background-color: #2e2d29; + color: #ffffff; } + .su-local-footer__header .su-link--internal:focus { + -webkit-box-shadow: 0 0 3px #4d4f53, 0 0 7px #4d4f53; + box-shadow: 0 0 3px #4d4f53, 0 0 7px #4d4f53; } + @media (max-width: 991px) { + .su-local-footer__header .su-link--internal { + width: auto; } } + @media only screen and (max-width: 991px) and (min-width: 0) { + .su-local-footer__header .su-link--internal { + margin-bottom: 2.31rem; } } + @media only screen and (max-width: 991px) and (min-width: 768px) { + .su-local-footer__header .su-link--internal { + margin-bottom: 2.6rem; } } + @media only screen and (max-width: 991px) and (min-width: 1500px) { + .su-local-footer__header .su-link--internal { + margin-bottom: 2.74rem; } } + @media only screen and (min-width: 992px) { + .su-local-footer__header .su-link--internal { + float: right; } } + .su-local-footer__header .su-link--internal::after { + background-color: #ffffff; } + .su-local-footer__header .su-link--internal:hover { + border: 1px solid #C6C6C6; + -webkit-box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.13), 0px 3px 6px rgba(0, 0, 0, 0.1); + box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.13), 0px 3px 6px rgba(0, 0, 0, 0.1); } + +.su-local-footer__columns, +.su-local-footer__header { + margin: 0 auto; + clear: both; } + @media only screen and (min-width: 0) { + .su-local-footer__columns, + .su-local-footer__header { + max-width: calc(100% - 40px); + width: calc(100% - 40px); } } + @media only screen and (min-width: 576px) { + .su-local-footer__columns, + .su-local-footer__header { + max-width: calc(100% - 60px); + width: calc(100% - 60px); } } + @media only screen and (min-width: 768px) { + .su-local-footer__columns, + .su-local-footer__header { + max-width: calc(100% - 100px); + width: calc(100% - 100px); } } + @media only screen and (min-width: 992px) { + .su-local-footer__columns, + .su-local-footer__header { + max-width: calc(100% - 160px); + width: calc(100% - 160px); } } + @media only screen and (min-width: 1200px) { + .su-local-footer__columns, + .su-local-footer__header { + max-width: calc(100% - 200px); + width: calc(100% - 200px); } } + @media only screen and (min-width: 1500px) { + .su-local-footer__columns, + .su-local-footer__header { + max-width: 1500px; + width: calc(100% - 200px); } } + @media only screen and (min-width: 0) { + .su-local-footer__columns > *, + .su-local-footer__header > * { + margin-right: 20px; } + @supports (grid-column-gap: 20px) { + .su-local-footer__columns, + .su-local-footer__header { + grid-column-gap: 20px; } + .su-local-footer__columns > *, + .su-local-footer__header > * { + margin-right: 0; + margin-left: 0; } } + .su-local-footer__columns > *, + .su-local-footer__header > * { + margin-top: 0; + margin-bottom: 20px; } + @supports (grid-row-gap: 20px) { + .su-local-footer__columns, + .su-local-footer__header { + grid-row-gap: 20px; } + .su-local-footer__columns > *, + .su-local-footer__header > * { + margin-top: 0; + margin-bottom: 0; } } } + @media only screen and (min-width: 576px) { + .su-local-footer__columns > *, + .su-local-footer__header > * { + margin-right: 20px; } + @supports (grid-column-gap: 20px) { + .su-local-footer__columns, + .su-local-footer__header { + grid-column-gap: 20px; } + .su-local-footer__columns > *, + .su-local-footer__header > * { + margin-right: 0; + margin-left: 0; } } + .su-local-footer__columns > *, + .su-local-footer__header > * { + margin-top: 0; + margin-bottom: 20px; } + @supports (grid-row-gap: 20px) { + .su-local-footer__columns, + .su-local-footer__header { + grid-row-gap: 20px; } + .su-local-footer__columns > *, + .su-local-footer__header > * { + margin-top: 0; + margin-bottom: 0; } } } + @media only screen and (min-width: 768px) { + .su-local-footer__columns > *, + .su-local-footer__header > * { + margin-right: 20px; } + @supports (grid-column-gap: 20px) { + .su-local-footer__columns, + .su-local-footer__header { + grid-column-gap: 20px; } + .su-local-footer__columns > *, + .su-local-footer__header > * { + margin-right: 0; + margin-left: 0; } } + .su-local-footer__columns > *, + .su-local-footer__header > * { + margin-top: 0; + margin-bottom: 20px; } + @supports (grid-row-gap: 20px) { + .su-local-footer__columns, + .su-local-footer__header { + grid-row-gap: 20px; } + .su-local-footer__columns > *, + .su-local-footer__header > * { + margin-top: 0; + margin-bottom: 0; } } } + @media only screen and (min-width: 992px) { + .su-local-footer__columns > *, + .su-local-footer__header > * { + margin-right: 36px; } + @supports (grid-column-gap: 20px) { + .su-local-footer__columns, + .su-local-footer__header { + grid-column-gap: 36px; } + .su-local-footer__columns > *, + .su-local-footer__header > * { + margin-right: 0; + margin-left: 0; } } + .su-local-footer__columns > *, + .su-local-footer__header > * { + margin-top: 0; + margin-bottom: 36px; } + @supports (grid-row-gap: 20px) { + .su-local-footer__columns, + .su-local-footer__header { + grid-row-gap: 36px; } + .su-local-footer__columns > *, + .su-local-footer__header > * { + margin-top: 0; + margin-bottom: 0; } } } + @media only screen and (min-width: 1200px) { + .su-local-footer__columns > *, + .su-local-footer__header > * { + margin-right: 40px; } + @supports (grid-column-gap: 20px) { + .su-local-footer__columns, + .su-local-footer__header { + grid-column-gap: 40px; } + .su-local-footer__columns > *, + .su-local-footer__header > * { + margin-right: 0; + margin-left: 0; } } + .su-local-footer__columns > *, + .su-local-footer__header > * { + margin-top: 0; + margin-bottom: 40px; } + @supports (grid-row-gap: 20px) { + .su-local-footer__columns, + .su-local-footer__header { + grid-row-gap: 40px; } + .su-local-footer__columns > *, + .su-local-footer__header > * { + margin-top: 0; + margin-bottom: 0; } } } + @media only screen and (min-width: 1500px) { + .su-local-footer__columns > *, + .su-local-footer__header > * { + margin-right: 48px; } + @supports (grid-column-gap: 20px) { + .su-local-footer__columns, + .su-local-footer__header { + grid-column-gap: 48px; } + .su-local-footer__columns > *, + .su-local-footer__header > * { + margin-right: 0; + margin-left: 0; } } + .su-local-footer__columns > *, + .su-local-footer__header > * { + margin-top: 0; + margin-bottom: 48px; } + @supports (grid-row-gap: 20px) { + .su-local-footer__columns, + .su-local-footer__header { + grid-row-gap: 48px; } + .su-local-footer__columns > *, + .su-local-footer__header > * { + margin-top: 0; + margin-bottom: 0; } } } + @media only screen and (min-width: 0) { + .su-local-footer__columns, + .su-local-footer__header { + padding-top: 4rem; } } + @media only screen and (min-width: 768px) { + .su-local-footer__columns, + .su-local-footer__header { + padding-top: 4.5rem; } } + @media only screen and (min-width: 1500px) { + .su-local-footer__columns, + .su-local-footer__header { + padding-top: 4.75rem; } } + +.su-local-footer__columns { + -ms-grid-rows: auto; + grid-template-rows: auto; + -ms-grid-columns: 1fr 1fr; + grid-template-columns: 1fr 1fr; + grid-template-areas: "A B" "C C"; } + @media only screen and (min-width: 0) { + .su-local-footer__columns { + padding-bottom: 4rem; } } + @media only screen and (min-width: 768px) { + .su-local-footer__columns { + padding-bottom: 4.5rem; } } + @media only screen and (min-width: 1500px) { + .su-local-footer__columns { + padding-bottom: 4.75rem; } } + @media only screen and (min-width: 768px) { + .su-local-footer__columns { + display: -ms-grid; + display: grid; } } + @media only screen and (min-width: 992px) { + .su-local-footer__columns { + -ms-grid-columns: 1fr 1fr 1fr; + grid-template-columns: 1fr 1fr 1fr; + grid-template-areas: "A B C" "A B C"; } + .su-local-footer__columns > :nth-child(3) { + -ms-grid-row: 1; + -ms-grid-row-span: 2; + -ms-grid-column: 1; } + .su-local-footer__columns > :nth-child(4) { + -ms-grid-row: 1; + -ms-grid-row-span: 2; + -ms-grid-column: 2; } + .su-local-footer__columns > :nth-child(2) { + -ms-grid-row: 1; + -ms-grid-row-span: 2; + -ms-grid-column: 1; } + .su-local-footer__columns > :nth-child(3) { + -ms-grid-row: 1; + -ms-grid-row-span: 2; + -ms-grid-column: 2; } } + @media only screen and (min-width: 1200px) { + .su-local-footer__columns { + -ms-grid-columns: 1fr 1fr 1fr 1fr; + grid-template-columns: 1fr 1fr 1fr 1fr; + grid-template-areas: "A B B C"; } + .su-local-footer__columns > :nth-child(3) { + -ms-grid-row: 1; + -ms-grid-row-span: 1; + -ms-grid-column: 1; } + .su-local-footer__columns > :nth-child(4) { + -ms-grid-row: 1; + -ms-grid-row-span: 1; + -ms-grid-column: 2; + -ms-grid-column-span: 2; } + .su-local-footer__columns > :nth-child(2) { + -ms-grid-row: 1; + -ms-grid-row-span: 1; + -ms-grid-column: 1; } + .su-local-footer__columns > :nth-child(3) { + -ms-grid-row: 1; + -ms-grid-row-span: 1; + -ms-grid-column: 2; + -ms-grid-column-span: 2; } } + .su-local-footer__columns .su-local-footer__cell1, + .su-local-footer__columns .su-local-footer__cell2, + .su-local-footer__columns .su-local-footer__cell3 { + vertical-align: top; } + .su-local-footer__columns .su-local-footer__cell1 { + -ms-grid-row: 1; + -ms-grid-column: 1; + grid-area: A; } + .su-local-footer__columns .su-local-footer__cell2 { + -ms-grid-row: 1; + -ms-grid-column: 2; + grid-area: B; } + +@media only screen and (max-width: 991px) and (min-width: 0) { + .su-local-footer__columns .su-local-footer__cell2 { + padding-top: 4rem; } } + +@media only screen and (max-width: 991px) and (min-width: 768px) { + .su-local-footer__columns .su-local-footer__cell2 { + padding-top: 4.5rem; } } + +@media only screen and (max-width: 991px) and (min-width: 1500px) { + .su-local-footer__columns .su-local-footer__cell2 { + padding-top: 4.75rem; } } + +@media only screen and (max-width: 991px) and (min-width: 0) { + .su-local-footer__columns .su-local-footer__cell2 { + padding-bottom: 2.31rem; } } + +@media only screen and (max-width: 991px) and (min-width: 768px) { + .su-local-footer__columns .su-local-footer__cell2 { + padding-bottom: 2.6rem; } } + +@media only screen and (max-width: 991px) and (min-width: 1500px) { + .su-local-footer__columns .su-local-footer__cell2 { + padding-bottom: 2.74rem; } } + @media only screen and (min-width: 768px) and (max-width: 991px) { + .su-local-footer__columns .su-local-footer__cell2 { + -ms-grid-row: 2; + -ms-grid-column: 1; + -ms-grid-column-span: 2; + grid-area: C; } } + .su-local-footer__columns .su-local-footer__cell2 nav { + vertical-align: top; } + @media only screen and (min-width: 768px) and (max-width: 991px) { + .su-local-footer__columns .su-local-footer__cell2 nav { + display: inline-block; + min-width: calc(49% - 10px); + max-width: calc(49% - 10px); } + .su-local-footer__columns .su-local-footer__cell2 nav:last-of-type { + margin-left: 10px; } + .su-local-footer__columns .su-local-footer__cell2 nav:first-of-type { + margin-right: 10px; } } + @media only screen and (min-width: 1200px) { + .su-local-footer__columns .su-local-footer__cell2 nav { + display: inline-block; + min-width: calc(49% - 20px); + max-width: calc(49% - 20px); } + .su-local-footer__columns .su-local-footer__cell2 nav:last-of-type { + margin-left: 20px; } + .su-local-footer__columns .su-local-footer__cell2 nav:first-of-type { + margin-right: 20px; } } + @media only screen and (min-width: 1500px) { + .su-local-footer__columns .su-local-footer__cell2 nav { + min-width: calc(49% - 24px); + max-width: calc(49% - 24px); } + .su-local-footer__columns .su-local-footer__cell2 nav:last-of-type { + margin-left: 24px; } + .su-local-footer__columns .su-local-footer__cell2 nav:first-of-type { + margin-right: 24px; } } + @media only screen and (min-width: 0) { + .su-local-footer__columns .su-local-footer__cell2 nav:first-of-type { + padding-bottom: 2.31rem; } } + @media only screen and (min-width: 768px) { + .su-local-footer__columns .su-local-footer__cell2 nav:first-of-type { + padding-bottom: 2.6rem; } } + @media only screen and (min-width: 1500px) { + .su-local-footer__columns .su-local-footer__cell2 nav:first-of-type { + padding-bottom: 2.74rem; } } + @media only screen and (min-width: 992px) { + .su-local-footer__columns > .su-local-footer__cell2 { + -ms-grid-column-span: 2; } } + .su-local-footer__columns .su-local-footer__cell3 { + -ms-grid-row: 2; + -ms-grid-column: 1; + -ms-grid-column-span: 2; + grid-area: C; } + @media only screen and (min-width: 768px) and (max-width: 991px) { + .su-local-footer__columns .su-local-footer__cell3 { + -ms-grid-row: 1; + -ms-grid-column: 2; + grid-area: B; } + @media only screen and (min-width: 576px){ + .layout-cuttoner > div > section > header { + -ms-grid-row: 1; + -ms-grid-column: 1; + -ms-grid-column-span: 2; } + .layout-cuttoner > div > section > footer { + -ms-grid-row: 3; + -ms-grid-column: 1; + -ms-grid-column-span: 2; } + .layout-cuttoner > div > section > :nth-child(2) { + -ms-grid-row: 2; + -ms-grid-column: 1; } + .layout-cuttoner > div > section > :nth-child(3) { + -ms-grid-row: 2; + -ms-grid-column: 2; } + .layout-cuttoner > div > section > .su-local-footer__cell1 { + -ms-grid-row: 2; + -ms-grid-column: 1; } + .layout-cuttoner > div > section > .su-local-footer__cell2 { + -ms-grid-row: 2; + -ms-grid-column: 2; } + .layout-cuttoner > div > section > .su-local-footer__cell3 { + -ms-grid-row: 2; + -ms-grid-column: 2; } } + @media only screen and (min-width: 992px){ + .su-local-footer__columns > .su-local-footer__cell1 { + -ms-grid-row: 1; + -ms-grid-row-span: 2; + -ms-grid-column: 1; } + .su-local-footer__columns > .su-local-footer__cell2 { + -ms-grid-row: 1; + -ms-grid-row-span: 2; + -ms-grid-column: 2; } + .su-local-footer__columns .su-local-footer__cell2 { + -ms-grid-row: 1; + -ms-grid-row-span: 2; + -ms-grid-column: 3; + -ms-grid-column-span: 1; } + .su-local-footer__columns .su-local-footer__cell3 { + -ms-grid-row: 1; + -ms-grid-row-span: 2; + -ms-grid-column: 3; + -ms-grid-column-span: 1; } + .su-local-footer__columns > .su-local-footer__cell3 { + -ms-grid-row: 1; + -ms-grid-row-span: 2; + -ms-grid-column: 2; } } + @media only screen and (min-width: 1200px){ + .su-local-footer__columns > .su-local-footer__cell1 { + -ms-grid-row: 1; + -ms-grid-row-span: 1; + -ms-grid-column: 1; } + .su-local-footer__columns > .su-local-footer__cell2 { + -ms-grid-row: 1; + -ms-grid-row-span: 1; + -ms-grid-column: 2; + -ms-grid-column-span: 2; } + .su-local-footer__columns .su-local-footer__cell2 { + -ms-grid-row: 1; + -ms-grid-row-span: 1; + -ms-grid-column: 4; + -ms-grid-column-span: 1; } + .su-local-footer__columns .su-local-footer__cell3 { + -ms-grid-row: 1; + -ms-grid-row-span: 1; + -ms-grid-column: 4; + -ms-grid-column-span: 1; } + .su-local-footer__columns > .su-local-footer__cell3 { + -ms-grid-row: 1; + -ms-grid-row-span: 1; + -ms-grid-column: 2; + -ms-grid-column-span: 2; } } } + @media only screen and (min-width: 992px) { + .su-local-footer__columns > .su-local-footer__cell3 { + -ms-grid-row: 1; + -ms-grid-column: 3; } } + @media only screen and (min-width: 1200px) { + .su-local-footer__columns > .su-local-footer__cell3 { + -ms-grid-row: 1; + -ms-grid-column: 4; } } + +.su-local-footer__list-heading { + font-size: 18px; + line-height: 140%; } + +.su-local-footer__address, +.su-local-footer__action-links { + font-size: 16px; } + @media only screen and (min-width: 0) { + .su-local-footer__address, + .su-local-footer__action-links { + padding-bottom: 4rem; } } + @media only screen and (min-width: 768px) { + .su-local-footer__address, + .su-local-footer__action-links { + padding-bottom: 4.5rem; } } + @media only screen and (min-width: 1500px) { + .su-local-footer__address, + .su-local-footer__action-links { + padding-bottom: 4.75rem; } } + +.su-local-footer__address { + line-height: 140%; } + +.su-local-footer__action-links a { + text-decoration: none; + font-weight: 600; } + @supports ((-webkit-mask-repeat: no-repeat) or (mask-repeat: no-repeat)) { + .su-local-footer__action-links a::after { + margin-right: 0.3em; + margin-bottom: -0.18em; + margin-left: 0.4em; + height: 0.8em; + width: 0.8em; + display: inline-block; + content: ''; + -webkit-mask: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTEiIHZpZXdCb3g9IjAgMCAxNCAxMSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEzLjc0MTkgNS4wMDc5N0w3LjkzNTQ4IDAuMDczMzUwOEM3Ljc0MTk0IC0wLjA2NzYzODIgNy4zNTQ4NCAwLjAwMjg1NjMyIDcuMTYxMjkgMC4yMTQzNEM2Ljk2Nzc0IDAuNDk2MzE4IDcuMDMyMjYgMC44NDg3OSA3LjIyNTgxIDEuMDYwMjdMMTEuODA2NSA0LjkzNzQ3SDAuNTgwNjQ1QzAuMjU4MDY0IDQuOTM3NDcgMCA1LjIxOTQ1IDAgNS41MDE0M0MwIDUuODUzOSAwLjI1ODA2NCA2LjEzNTg4IDAuNTgwNjQ1IDYuMTM1ODhIMTEuODA2NUw3LjI5MDMyIDkuOTQyNThDNy4wMzIyNiAxMC4xNTQxIDcuMDMyMjYgMTAuNTA2NSA3LjIyNTgxIDEwLjc4ODVDNy4zNTQ4NCAxMC45Mjk1IDcuNDgzODcgMTEgNy42Nzc0MiAxMUM3LjgwNjQ1IDExIDcuOTM1NDggMTAuOTI5NSA4IDEwLjg1OUwxMy44MDY1IDUuOTI0NEMxMy45MzU1IDUuNzgzNDEgMTQgNS41NzE5MiAxNCA1LjQzMDkzQzEzLjkzNTUgNS4yODk5NCAxMy44NzEgNS4xNDg5NiAxMy43NDE5IDUuMDA3OTdaIiBmaWxsPSIjQjEwNDBFIi8+Cjwvc3ZnPgo=) no-repeat 0 0; + mask: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTEiIHZpZXdCb3g9IjAgMCAxNCAxMSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEzLjc0MTkgNS4wMDc5N0w3LjkzNTQ4IDAuMDczMzUwOEM3Ljc0MTk0IC0wLjA2NzYzODIgNy4zNTQ4NCAwLjAwMjg1NjMyIDcuMTYxMjkgMC4yMTQzNEM2Ljk2Nzc0IDAuNDk2MzE4IDcuMDMyMjYgMC44NDg3OSA3LjIyNTgxIDEuMDYwMjdMMTEuODA2NSA0LjkzNzQ3SDAuNTgwNjQ1QzAuMjU4MDY0IDQuOTM3NDcgMCA1LjIxOTQ1IDAgNS41MDE0M0MwIDUuODUzOSAwLjI1ODA2NCA2LjEzNTg4IDAuNTgwNjQ1IDYuMTM1ODhIMTEuODA2NUw3LjI5MDMyIDkuOTQyNThDNy4wMzIyNiAxMC4xNTQxIDcuMDMyMjYgMTAuNTA2NSA3LjIyNTgxIDEwLjc4ODVDNy4zNTQ4NCAxMC45Mjk1IDcuNDgzODcgMTEgNy42Nzc0MiAxMUM3LjgwNjQ1IDExIDcuOTM1NDggMTAuOTI5NSA4IDEwLjg1OUwxMy44MDY1IDUuOTI0NEMxMy45MzU1IDUuNzgzNDEgMTQgNS41NzE5MiAxNCA1LjQzMDkzQzEzLjkzNTUgNS4yODk5NCAxMy44NzEgNS4xNDg5NiAxMy43NDE5IDUuMDA3OTdaIiBmaWxsPSIjQjEwNDBFIi8+Cjwvc3ZnPgo=) no-repeat 0 0; + -webkit-mask-size: contain; + mask-size: contain; + background-color: #006cb8; + -webkit-transition: -webkit-transform 0.2s ease-in-out, -webkit-mask-image 0.2s ease-in-out; + transition: -webkit-transform 0.2s ease-in-out, -webkit-mask-image 0.2s ease-in-out; + transition: transform 0.2s ease-in-out, mask-image 0.2s ease-in-out; + transition: transform 0.2s ease-in-out, mask-image 0.2s ease-in-out, -webkit-transform 0.2s ease-in-out, -webkit-mask-image 0.2s ease-in-out; } + .su-local-footer__action-links a:hover::after, .su-local-footer__action-links a:focus::after { + background-color: #2e2d29; + -webkit-transform: translateX(0.2em); + transform: translateX(0.2em); } } + +.su-local-footer__primary-links ul li, +.su-local-footer__secondary-links ul li { + font-size: 16px; } + +.su-local-footer__social-links { + padding: 0; + margin: 0; + list-style-type: none; + overflow: hidden; } + .su-local-footer__social-links > li { + display: block; + float: left; } + .su-local-footer__social-links > li:last-child { + margin-right: 0; } + .su-local-footer__social-links li { + padding-right: 18px; } + .su-local-footer__social-links li:last-child { + padding-right: 0; } + .su-local-footer__social-links i { + font-size: 2.5rem; } + .su-local-footer__social-links i::before { + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + display: inline-block; + font-style: normal; + font-variant: normal; + font-weight: normal; + line-height: 1; + color: #2e2d29; + font-family: 'Font Awesome 5 Brands'; + -webkit-transition: color 0.25s ease-out; + transition: color 0.25s ease-out; } + .su-local-footer__social-links a { + text-decoration: none; } + .su-local-footer__social-links a span { + border: 0; + clip: rect(0, 0, 0, 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; } + .su-local-footer__social-links .su-local-footer__social-facebook i::before { + content: "\f39e"; } + .su-local-footer__social-links .su-local-footer__social-facebook:hover i::before, .su-local-footer__social-links .su-local-footer__social-facebook:focus i::before { + color: #3b579d; } + .su-local-footer__social-links .su-local-footer__social-linkedin i::before { + content: "\f0e1"; } + .su-local-footer__social-links .su-local-footer__social-linkedin:hover i::before, .su-local-footer__social-links .su-local-footer__social-linkedin:focus i::before { + color: #0077b5; } + .su-local-footer__social-links .su-local-footer__social-twitter i::before { + content: "\f099"; } + .su-local-footer__social-links .su-local-footer__social-twitter:hover i::before, .su-local-footer__social-links .su-local-footer__social-twitter:focus i::before { + color: #1da1f2; } + .su-local-footer__social-links .su-local-footer__social-instagram i::before { + content: "\f16d"; } + .su-local-footer__social-links .su-local-footer__social-instagram:hover i::before, .su-local-footer__social-links .su-local-footer__social-instagram:focus i::before { + color: #d73676; } + .su-local-footer__social-links .su-local-footer__social-youtube i::before { + content: "\f167"; } + .su-local-footer__social-links .su-local-footer__social-youtube:hover i::before, .su-local-footer__social-links .su-local-footer__social-youtube:focus i::before { + color: #cd201f; } + @media only screen and (min-width: 768px) { .su-lockup, .su-lockup > a { @@ -10099,6 +10716,11 @@ a { font-size: 1.5em; font-weight: 600; } +@media only screen and (min-width: 0) and (max-width: 575px) { + .su-signup-form .su-submit, + .su-signup-form [type='submit'] { + width: auto; } } + .su-site-search { position: relative; } diff --git a/core/dist/js/assets.json b/core/dist/js/assets.json index 213f944a8..a201f8e6e 100644 --- a/core/dist/js/assets.json +++ b/core/dist/js/assets.json @@ -1,4 +1,14 @@ { + "../assets/fa-brands-400.eot": "../assets/fa-brands-400.eot", + "../assets/fa-brands-400.svg": "../assets/fa-brands-400.svg", + "../assets/fa-brands-400.ttf": "../assets/fa-brands-400.ttf", + "../assets/fa-brands-400.woff": "../assets/fa-brands-400.woff", + "../assets/fa-brands-400.woff2": "../assets/fa-brands-400.woff2", + "../assets/fa-regular-400.eot": "../assets/fa-regular-400.eot", + "../assets/fa-regular-400.svg": "../assets/fa-regular-400.svg", + "../assets/fa-regular-400.ttf": "../assets/fa-regular-400.ttf", + "../assets/fa-regular-400.woff": "../assets/fa-regular-400.woff", + "../assets/fa-regular-400.woff2": "../assets/fa-regular-400.woff2", "decanter-grid.css": "../css/decanter-grid.css", "decanter-grid.css.map": "../css/decanter-grid.css.map", "decanter-grid.js": "decanter-grid.js", diff --git a/core/src/img/arrow-right.svg b/core/src/img/arrow-right.svg new file mode 100644 index 000000000..1856181c1 --- /dev/null +++ b/core/src/img/arrow-right.svg @@ -0,0 +1,3 @@ + diff --git a/core/src/img/facebook.svg b/core/src/img/facebook.svg new file mode 100644 index 000000000..4bc13b68c --- /dev/null +++ b/core/src/img/facebook.svg @@ -0,0 +1,3 @@ + diff --git a/core/src/img/instagram.svg b/core/src/img/instagram.svg new file mode 100644 index 000000000..b5d6d0b10 --- /dev/null +++ b/core/src/img/instagram.svg @@ -0,0 +1,5 @@ + diff --git a/core/src/img/linkedin.svg b/core/src/img/linkedin.svg new file mode 100644 index 000000000..2074b6b1c --- /dev/null +++ b/core/src/img/linkedin.svg @@ -0,0 +1,5 @@ + diff --git a/core/src/img/twitter.svg b/core/src/img/twitter.svg new file mode 100644 index 000000000..59968f8c7 --- /dev/null +++ b/core/src/img/twitter.svg @@ -0,0 +1,3 @@ + diff --git a/core/src/img/youtube.svg b/core/src/img/youtube.svg new file mode 100644 index 000000000..b02b43dce --- /dev/null +++ b/core/src/img/youtube.svg @@ -0,0 +1,3 @@ + diff --git a/core/src/scss/components/index.scss b/core/src/scss/components/index.scss index 291428369..90c94736b 100644 --- a/core/src/scss/components/index.scss +++ b/core/src/scss/components/index.scss @@ -16,10 +16,12 @@ 'global-footer/index', 'hero/index', 'link/index', +'local-footer/index', 'lockup/index', 'logo/index', 'main-nav/index', 'masthead/index', 'quote/index', +'signup-form/index', 'site-search/index', 'skiplinks/index'; diff --git a/core/src/scss/components/local-footer/_local-footer.scss b/core/src/scss/components/local-footer/_local-footer.scss new file mode 100644 index 000000000..dbd05ac77 --- /dev/null +++ b/core/src/scss/components/local-footer/_local-footer.scss @@ -0,0 +1,401 @@ +@charset "UTF-8"; + +// +// Local Footer +// +// Local footer element to support (above) the global footer. +// +// Markup: ../../templates/components/local-footer/local-footer.twig +// +// Style guide: Components.Local Footer +// + +// Global styles for the local footer. +// ------------------------------------------------ +.su-local-footer { + background-color: $su-color-fog; + + a { + font-weight: $su-font-regular; + } + + ul { + @include list-unstyled; + + > li { + @include margin(null null 7px null); + } + } + + // Signup form tweaks. + // ------------------------------------------------ + .su-signup-form { + p { + font-size: 17px; + } + } +} + +// Header section for the lockup and weblogin link. +// ------------------------------------------------ +.su-local-footer__header { + position: relative; + + // Lockup placement. + .su-lockup { + @include grid-media-between('xs', 'md') { + @include modular-spacing('margin-bottom', 2); + } + + @include grid-media('lg') { + float: left; + } + } + + // Weblogin button. + .su-link--internal { + @include button-primary; + @include box-shadow('shallow'); + border-radius: 7px; + + @include grid-media-between('xs', 'md') { + @include modular-spacing('margin-bottom', 1); + width: auto; + } + + @include grid-media('lg') { + float: right; + } + + &::after { + background-color: $su-color-white; + } + + &:hover { + @include box-shadow('shallow'); + } + } +} + +// Main container styles and spacing. +// ------------------------------------------------ +.su-local-footer__columns, +.su-local-footer__header { + @include centered-column; + @include responsive-grid-gap; + @include modular-spacing('padding-top', 3); + clear: both; +} + +// The resposive behaviour for all contents using grid-area +// -------------------------------------------------------- +.su-local-footer__columns { + @include modular-spacing('padding-bottom', 3); + grid-template-rows: auto; + grid-template-columns: 1fr 1fr; + grid-template-areas: + "A B" + "C C"; + + @include grid-media('md') { + @include display-grid; + } + + @include grid-media('lg') { + grid-template-columns: 1fr 1fr 1fr; + grid-template-areas: + "A B C" + "A B C"; + } + + @include grid-media('xl') { + grid-template-columns: 1fr 1fr 1fr 1fr; + grid-template-areas: + "A B B C"; + } + + // Styles for all the cells. + // ------------------------------------------------ + .su-local-footer__cell1, + .su-local-footer__cell2, + .su-local-footer__cell3 { + vertical-align: top; + } + + // Specific to cell1 styles and structure. + // ------------------------------------------------ + .su-local-footer__cell1 { + grid-area: A; + } + + // Specific to cell2 styles and structure. + // ------------------------------------------------ + .su-local-footer__cell2 { + grid-area: B; + + @include grid-media-between('xs', 'md') { + @include modular-spacing('padding-top', 3); + @include modular-spacing('padding-bottom', 1); + } + + @include grid-media-only('md') { + grid-area: C; + } + + // Handle the list of navs with a bit of padding and sizing + // to get faux columns. + nav { + vertical-align: top; + + @include grid-media-only('md') { + display: inline-block; + + $_gap: map-get($su-grid-gutters, 'md') / 2; + min-width: calc(49% - #{$_gap}); + max-width: calc(49% - #{$_gap}); + + &:last-of-type { + @include margin(null null null $_gap); + } + + &:first-of-type { + @include margin(null $_gap null null); + } + } + + @include grid-media('xl') { + display: inline-block; + $_gap: map-get($su-grid-gutters, 'xl') / 2; + min-width: calc(49% - #{$_gap}); + max-width: calc(49% - #{$_gap}); + + &:last-of-type { + @include margin(null null null $_gap); + } + + &:first-of-type { + @include margin(null $_gap null null); + } + } + + @include grid-media('2xl') { + $_gap: map-get($su-grid-gutters, '2xl') / 2; + min-width: calc(49% - #{$_gap}); + max-width: calc(49% - #{$_gap}); + + &:last-of-type { + @include margin(null null null $_gap); + } + + &:first-of-type { + @include margin(null $_gap null null); + } + } + + &:first-of-type { + @include modular-spacing('padding-bottom', 1); + } + } + } + + // IE 11 FIXES FOR GRID + // ------------------------------------------------ + > .su-local-footer__cell2 { + // Fun fix for ie and the autoprefixer. + // It gets confused sometimes. + @include grid-media('lg') { + -ms-grid-column-span: 2; + } + } + + // Specific to cell3 styles and structure. + // ------------------------------------------------ + .su-local-footer__cell3 { + grid-area: C; + + @include grid-media-only('md') { + grid-area: B; + } + } + + // IE 11 FIXES FOR GRID + // ------------------------------------------------ + > .su-local-footer__cell3 { + // Fun fix for ie and the autoprefixer. + // It gets confused sometimes. + @include grid-media("lg") { + -ms-grid-row: 1; + -ms-grid-column: 3; + } + + @include grid-media("xl") { + -ms-grid-row: 1; + -ms-grid-column: 4; + } + } +} + + +// List heading element styles. +// ------------------------------------------------ +.su-local-footer__list-heading { + font-size: 18px; + line-height: 140%; +} + +// Common styles for address and links. +// ------------------------------------------------ +.su-local-footer__address, +.su-local-footer__action-links { + @include modular-spacing('padding-bottom', 3); + font-size: 16px; +} + +// Address tag formatting and styles. +// ------------------------------------------------ +.su-local-footer__address { + line-height: 140%; +} + +// Styling for the action links section. +// ------------------------------------------------ +.su-local-footer__action-links { + a { + @include link-icon(arrow-right, 0.8em, right, -0.18em); + font-weight: $su-font-semi-bold; + } +} + +// Styles for the nav list links. +// ------------------------------------------------ + +.su-local-footer__primary-links, +.su-local-footer__secondary-links { + ul { + li { + font-size: 16px; + } + } +} + +// Styles for the social links. +// ------------------------------------------------ +.su-local-footer__social-links { + @include list-horizontal; + + li { + @include padding(null 18px null null); + + &:last-child { + @include padding(null 0 null null); + } + } + + i { + font-size: 2.5rem; + + // FA is included as a vendor dependency but the class styles are not + // included so we have to use the mixins and font declarations here. + &::before { + @include fa-icon; + color: $su-color-black; + font-family: 'Font Awesome 5 Brands'; + transition: color 0.25s ease-out; + } + } + + a { + text-decoration: none; + + span { + @include sr-only; + } + } + + // Font Awesome icons for specific selectors. + // ------------------------------------------------ + .su-local-footer__social-facebook { + i { + &::before { + content: fa-content($fa-var-facebook-f); + } + } + + &:hover, + &:focus { + i { + &::before { + color: color('Facebook', $su-social-brands); + } + } + } + } + + .su-local-footer__social-linkedin { + i { + &::before { + content: fa-content($fa-var-linkedin-in); + } + } + + &:hover, + &:focus { + i { + &::before { + color: color('LinkedIn', $su-social-brands); + } + } + } + } + + .su-local-footer__social-twitter { + i { + &::before { + content: fa-content($fa-var-twitter); + } + } + + &:hover, + &:focus { + i { + &::before { + color: color('Twitter', $su-social-brands); + } + } + } + } + + .su-local-footer__social-instagram { + i { + &::before { + content: fa-content($fa-var-instagram); + } + } + + &:hover, + &:focus { + i { + &::before { + color: color('Instagram', $su-social-brands); + } + } + } + } + + .su-local-footer__social-youtube { + i { + &::before { + content: fa-content($fa-var-youtube); + } + } + + &:hover, + &:focus { + i { + &::before { + color: color('YouTube', $su-social-brands); + } + } + } + } +} diff --git a/core/src/scss/components/local-footer/index.scss b/core/src/scss/components/local-footer/index.scss new file mode 100644 index 000000000..34b358afe --- /dev/null +++ b/core/src/scss/components/local-footer/index.scss @@ -0,0 +1,8 @@ +@charset "UTF-8"; + +/// +/// ROLL UP +/// + +@import +'local-footer'; diff --git a/core/src/scss/components/signup-form/_signup-form.scss b/core/src/scss/components/signup-form/_signup-form.scss new file mode 100644 index 000000000..76ef9b87f --- /dev/null +++ b/core/src/scss/components/signup-form/_signup-form.scss @@ -0,0 +1,19 @@ +@charset "UTF-8"; + +// +// Signup Form +// +// Default styling for a signup-form. +// +// Markup: ../../templates/components/signup-form/signup-form.twig +// +// Style guide: Components.Signup Form +// +.su-signup-form { + .su-submit, + [type='submit'] { + @include grid-media-only('xs') { + width: auto; + } + } +} diff --git a/core/src/scss/components/signup-form/index.scss b/core/src/scss/components/signup-form/index.scss new file mode 100644 index 000000000..5408d7107 --- /dev/null +++ b/core/src/scss/components/signup-form/index.scss @@ -0,0 +1,8 @@ +@charset "UTF-8"; + +/// +/// ROLL UP +/// + +@import +'signup-form'; diff --git a/core/src/scss/core/fonts/_fontawesome-fonts.scss b/core/src/scss/core/fonts/_fontawesome-fonts.scss new file mode 100644 index 000000000..3ea016141 --- /dev/null +++ b/core/src/scss/core/fonts/_fontawesome-fonts.scss @@ -0,0 +1,27 @@ +@charset "UTF-8"; + +@font-face { + font-family: 'Font Awesome 5 Free'; + font-style: normal; + font-weight: 400; + font-display: $fa-font-display; + src: url('#{$fa-font-path}/fa-regular-400.eot'); + src: url('#{$fa-font-path}/fa-regular-400.eot?#iefix') format('embedded-opentype'), + url('#{$fa-font-path}/fa-regular-400.woff2') format('woff2'), + url('#{$fa-font-path}/fa-regular-400.woff') format('woff'), + url('#{$fa-font-path}/fa-regular-400.ttf') format('truetype'), + url('#{$fa-font-path}/fa-regular-400.svg#fontawesome') format('svg'); +} + +@font-face { + font-family: 'Font Awesome 5 Brands'; + font-style: normal; + font-weight: normal; + font-display: $fa-font-display; + src: url('#{$fa-font-path}/fa-brands-400.eot'); + src: url('#{$fa-font-path}/fa-brands-400.eot?#iefix') format('embedded-opentype'), + url('#{$fa-font-path}/fa-brands-400.woff2') format('woff2'), + url('#{$fa-font-path}/fa-brands-400.woff') format('woff'), + url('#{$fa-font-path}/fa-brands-400.ttf') format('truetype'), + url('#{$fa-font-path}/fa-brands-400.svg#fontawesome') format('svg'); +} diff --git a/core/src/scss/core/fonts/_fonts.scss b/core/src/scss/core/fonts/_fonts.scss index fd913e728..9fb88016d 100644 --- a/core/src/scss/core/fonts/_fonts.scss +++ b/core/src/scss/core/fonts/_fonts.scss @@ -1,4 +1,4 @@ -@charset "UTF-8"; +@charset 'UTF-8'; // Fonts // diff --git a/core/src/scss/core/fonts/index.scss b/core/src/scss/core/fonts/index.scss index 012296672..a347c5549 100644 --- a/core/src/scss/core/fonts/index.scss +++ b/core/src/scss/core/fonts/index.scss @@ -5,4 +5,5 @@ /// @import +'fontawesome-fonts', 'fonts'; diff --git a/core/src/scss/decanter-grid.scss b/core/src/scss/decanter-grid.scss index 1698954f6..387fcc15e 100644 --- a/core/src/scss/decanter-grid.scss +++ b/core/src/scss/decanter-grid.scss @@ -23,7 +23,9 @@ $border-box-sizing: false; // 2. Vendors. @import -'bourbon.scss'; +'bourbon.scss', +'@fortawesome/fontawesome-free/scss/variables', +'@fortawesome/fontawesome-free/scss/mixins'; // 3. Utilities. @import diff --git a/core/src/scss/decanter-no-markup.scss b/core/src/scss/decanter-no-markup.scss index 946673ebf..8e148f4ae 100644 --- a/core/src/scss/decanter-no-markup.scss +++ b/core/src/scss/decanter-no-markup.scss @@ -23,8 +23,9 @@ $border-box-sizing: false; // 2. Vendors. @import -'bourbon.scss'; - +'bourbon.scss', +'@fortawesome/fontawesome-free/scss/variables', +'@fortawesome/fontawesome-free/scss/mixins'; // 3. Utilities. @import 'utilities/index'; diff --git a/core/src/scss/decanter.scss b/core/src/scss/decanter.scss index cde383a05..a75e6aa71 100644 --- a/core/src/scss/decanter.scss +++ b/core/src/scss/decanter.scss @@ -20,7 +20,9 @@ // 2. Vendors. @import 'bourbon.scss', -'core/normalize'; +'core/normalize', +'@fortawesome/fontawesome-free/scss/variables', +'@fortawesome/fontawesome-free/scss/mixins'; // 3. Utilities. @import diff --git a/core/src/scss/elements/typography/_typography.scss b/core/src/scss/elements/typography/_typography.scss index 5624b2b87..588591214 100644 --- a/core/src/scss/elements/typography/_typography.scss +++ b/core/src/scss/elements/typography/_typography.scss @@ -142,3 +142,12 @@ dfn { .su-small-paragraph { @include small-paragraph; } + +.su-fab { + font-family: 'Font Awesome 5 Brands'; +} + +.su-far { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} diff --git a/core/src/scss/utilities/mixins/list/_list-horizontal.scss b/core/src/scss/utilities/mixins/list/_list-horizontal.scss new file mode 100644 index 000000000..d315c2dbe --- /dev/null +++ b/core/src/scss/utilities/mixins/list/_list-horizontal.scss @@ -0,0 +1,24 @@ +// +// @list-horizontal +// +// Standard horizontal list. +// +// Credit: http://snippetcentral.com/horizontal-navigation-lists/ +// +// Style guide: Mixins.List.list-horizontal +// +@mixin list-horizontal { + @include padding(0); + @include margin(0); + list-style-type: none; + overflow: hidden; + + > li { + display: block; + float: left; + + &:last-child { + @include margin(null 0 null null); + } + } +} diff --git a/core/src/scss/utilities/mixins/list/index.scss b/core/src/scss/utilities/mixins/list/index.scss index d485460a0..463c7b578 100644 --- a/core/src/scss/utilities/mixins/list/index.scss +++ b/core/src/scss/utilities/mixins/list/index.scss @@ -9,4 +9,5 @@ // @import +'list-horizontal', 'list-unstyled'; diff --git a/core/src/scss/utilities/variables/core/_core-color-maps.scss b/core/src/scss/utilities/variables/core/_core-color-maps.scss index 86e703ac7..4476ba6f9 100644 --- a/core/src/scss/utilities/variables/core/_core-color-maps.scss +++ b/core/src/scss/utilities/variables/core/_core-color-maps.scss @@ -44,3 +44,30 @@ $su-core-colors: ( link--reverse: $su-color-white, link--reverse-hover: $su-color-vivid-red, ) !default; + +// +// Social media brand colors +// +// Color map for common social media brands +// +// Markup: $su-social-brands: ( +// 'Facebook': #3b579d, +// 'Twitter': #1da1f2, +// 'Instagram': #d73676, +// 'LinkedIn': #0077b5, +// 'YouTube': #cd201f, +// 'iTunes U': #a3aaae, +// 'Reddit': #ff5700, +//) !default; +// +// Style guide: Variables.Core.su-social-brands +// +$su-social-brands: ( + 'Facebook': #3b579d, + 'Twitter': #1da1f2, + 'Instagram': #d73676, + 'LinkedIn': #0077b5, + 'YouTube': #cd201f, + 'iTunes U': #a3aaae, + 'Reddit': #ff5700, +) !default; diff --git a/core/src/scss/utilities/variables/pre-vendor/_fontawesome.scss b/core/src/scss/utilities/variables/pre-vendor/_fontawesome.scss new file mode 100644 index 000000000..793864fd0 --- /dev/null +++ b/core/src/scss/utilities/variables/pre-vendor/_fontawesome.scss @@ -0,0 +1,15 @@ +@charset "UTF-8"; + +// +// Fontawesome Overrides +// +// Specific overrides for fontawesome. +// +//
+// $fa-font-path +//+// +// Style guide: Variables.Vendor.Font Awesome +// + +$fa-font-path: "~@fortawesome/fontawesome-free/webfonts"; diff --git a/core/src/scss/utilities/variables/pre-vendor/index.scss b/core/src/scss/utilities/variables/pre-vendor/index.scss index 70dce7af7..a95e5ee2c 100644 --- a/core/src/scss/utilities/variables/pre-vendor/index.scss +++ b/core/src/scss/utilities/variables/pre-vendor/index.scss @@ -12,4 +12,5 @@ // vendor dependencies. @import -'bourbon-overrides'; +'bourbon-overrides', +'fontawesome'; diff --git a/core/src/templates/components/global-footer/global-footer.json b/core/src/templates/components/global-footer/global-footer.json index 0db3279e4..0967ef424 100644 --- a/core/src/templates/components/global-footer/global-footer.json +++ b/core/src/templates/components/global-footer/global-footer.json @@ -1,3 +1 @@ -{ - -} +{} diff --git a/core/src/templates/components/local-footer/local-footer.json b/core/src/templates/components/local-footer/local-footer.json new file mode 100644 index 000000000..9d5b44336 --- /dev/null +++ b/core/src/templates/components/local-footer/local-footer.json @@ -0,0 +1,108 @@ +{ + "lockup_title": "Vestibellum", + "address": "Lorem Ipsum Dolar Sit Amet
Your source for pellentesque leo accumsan ultrices
", + "signup_form_action": "/", + "signup_form_field_email_id": "su-email", + "signup_form_field_email_name": "su-email", + "signup_form_field_submit_id": "su-submit", + "signup_form_field_submit_name": "su-submit", + "weblogin_url": "/login" +} diff --git a/core/src/templates/components/local-footer/local-footer.twig b/core/src/templates/components/local-footer/local-footer.twig new file mode 100644 index 000000000..38619c32a --- /dev/null +++ b/core/src/templates/components/local-footer/local-footer.twig @@ -0,0 +1,207 @@ +{# +/** + * @file + * Local Footer Component. + * + * Figma source: https://www.figma.com/file/Kmd4utmJFPRMVeCFEEBQhLtx/Stanford-Design-Library?node-id=2384%3A1177 + * + * This local footer template is to support the global footer and provide + * site contextual links. + * + * Available variables: + * - attributes: For additional HTML attributes not already provided. + * - modifier_class: Additional css classes to change look and behaviour. + * - template_path_lockup: The relative file path to the lockup twig template. + * - template_path_link: The relative file path to the link twig template. + * - template_path_macro: The relative file path to the macro twig template. + * - template_path_signup_form: The relative file path to the signup-form template. + * - lockup_options: Options to pass through to the lockup twig template. + * See the lockup template variables for more information. + * - lockup_title: The text to use as line1 in the lockup unless + * lockup_options is overridden. + * - contentcell1: Twig block area so you can override just this section + * when extending. + * - contentcell2: Twig block area so you can override just this section + * when extending. + * - contentcell3: Twig block area so you can override just this section + * when extending. + * - headercontent: Optional open variable for placing arbitrary content + * in the header portion of the template. + * - cell1: Optional open variable for placing arbitrary content + * in cell 1 of the template. + * - cell2: Optional open variable for placing arbitrary content + * in cell 1 of the template. + * - cell3: Optional open variable for placing arbitrary content + * in cell 1 of the template. + * - address: Optional open variable for address content. + * - action_links: Either a structured array of links that get rendered + * by a common macro or arbitrary html markup. The Links + * in this field get padding and arrows applied. + * - social_links: Either a structured array of links that get rendered + * by a common macro or arbitrary html markup. + * - primary_links: Either a structured array of links that get rendered + * by a common macro or arbitrary html markup. + * - secondary_links: Either a structured array of links that get rendered + * by a common macro or arbitrary html markup. + * - signup_form_content: An open variable for placing content above the form. + * - signup_form_action: The url that the form should submit to. + * - signup_form_method: The http method in which the form should use (get|post) + * - signup_form_field_email: The name and id of the email field. + * - signup_form_field_email_placeholder: The placeholder text for the field. + * - signup_form_field_submit: The name and id of the submit button. + * - signup_form_field_submit_value: The value of the submit button. + * - signup_form_fields: Option variable that allows you to put any additional + * markup in to the signup form. This could be content or + * additional fields. + * - weblogin_url: Optional - The url in which a user goes to login with. + * - weblogin_text: The text to display for the weblogin button link. + */ +#} +{%- if template_path_lockup is empty -%} + {%- set template_path_lockup = "@decanter/components/lockup/lockup.twig" -%} +{%- endif %} + +{%- if lockup_options is empty -%} + {%- set lockup_options = { "modifier_class": 'su-lockup--option-a', "line1": lockup_title } -%} +{%- endif -%} + +{%- if template_path_link is empty -%} + {%- set template_path_link = "@decanter/components/link/link.twig" -%} +{%- endif %} + +{%- if template_path_signup_form is empty -%} + {%- set template_path_signup_form = "@decanter/components/signup-form/signup-form.twig" -%} +{%- endif %} + +{%- if template_path_macro is empty -%} + {%- set template_path_macro = "@decanter/utilities/macros/link-list.twig" -%} +{%- endif -%} +{%- import template_path_macro as list_macro -%} + + diff --git a/core/src/templates/components/quote/quote.twig b/core/src/templates/components/quote/quote.twig index 216e54f5a..4fad40bd6 100644 --- a/core/src/templates/components/quote/quote.twig +++ b/core/src/templates/components/quote/quote.twig @@ -1,10 +1,35 @@ -