diff --git a/opentech/public/navigation/templates/navigation/primarynav.html b/opentech/public/navigation/templates/navigation/primarynav.html index 15e2af945297a35afabf8fb737e24ca983a97ff9..55f4ad7e907b13e60bacbca71d4e8c8a941e8196 100644 --- a/opentech/public/navigation/templates/navigation/primarynav.html +++ b/opentech/public/navigation/templates/navigation/primarynav.html @@ -17,3 +17,5 @@ {% endfor %} </ul> </nav> +<a href="/apply" class="link link--button-secondary link--mobile-standout">Apply</a> + diff --git a/opentech/static_src/src/javascript/components/desktop-search.js b/opentech/static_src/src/javascript/components/desktop-search.js deleted file mode 100644 index 49055cdfbf38f7a5aaa89ada668ccb159f31438a..0000000000000000000000000000000000000000 --- a/opentech/static_src/src/javascript/components/desktop-search.js +++ /dev/null @@ -1,23 +0,0 @@ -class DesktopSearch { - static selector() { - return '.js-desktop-search-toggle'; - } - - constructor(node, searchForm) { - this.node = node; - this.searchForm = searchForm; - this.bindEventListeners(); - } - - bindEventListeners() { - this.node.click(this.toggle.bind(this)); - } - - toggle() { - this.searchForm[0].classList.toggle('is-visible'); - this.node[0].querySelector('.header__icon--magnifying-glass').classList.toggle('is-hidden'); - this.node[0].querySelector('.header__icon--cross').classList.toggle('is-unhidden'); - } -} - -export default DesktopSearch; diff --git a/opentech/static_src/src/javascript/components/mobile-menu.js b/opentech/static_src/src/javascript/components/mobile-menu.js index 04bf23232c0828dc804708442eb812aec29c4647..3c01a858d4da328331185a40c02c893a7650e6a7 100644 --- a/opentech/static_src/src/javascript/components/mobile-menu.js +++ b/opentech/static_src/src/javascript/components/mobile-menu.js @@ -3,40 +3,40 @@ class MobileMenu { return '.js-mobile-menu-toggle'; } - constructor(node, openCb = () => {}, closeCb = () => {}) { + constructor(node, closeButton, mobileMenu, search) { this.node = node; - - // Any callbacks to be called on open or close. - this.openCb = openCb; - this.closeCb = closeCb; - - this.state = { - open: false, - }; + this.closeButton = closeButton; + this.mobileMenu = mobileMenu; + this.search = search; this.bindEventListeners(); } bindEventListeners() { this.node.click(this.toggle.bind(this)); + this.closeButton.click(this.toggle.bind(this)); } toggle() { - this.state.open ? this.close() : this.open(); - } - - open() { - this.node.addClass('is-open'); - this.openCb(); - - this.state.open = true; - } - - close() { - this.node.removeClass('is-open'); - this.closeCb(); - - this.state.open = false; + // toggle mobile menu + this.mobileMenu[0].classList.toggle('is-visible'); + + // toggle modifier to change position of the search div when the mobile menu is open + this.search[0].classList.toggle('header__search--mobile-menu-open'); + + // reset the search whenever the mobile menu is toggled + if(this.search[0].classList.contains('is-visible')){ + this.search[0].classList.toggle('is-visible'); + document.querySelector('.header__inner--menu-open').classList.toggle('header__inner--search-open'); + } + + // reset the search show/hide icons + if(this.mobileMenu[0].classList.contains('is-visible')){ + document.querySelector('.header__icon--open-search-menu-open').classList.remove('is-hidden'); + document.querySelector('.header__icon--close-search-menu-open').classList.remove('is-unhidden'); + document.querySelector('.header__icon--open-search-menu-closed').classList.remove('is-hidden'); + document.querySelector('.header__icon--close-search-menu-closed').classList.remove('is-unhidden'); + } } } diff --git a/opentech/static_src/src/javascript/components/mobile-sub-menu.js b/opentech/static_src/src/javascript/components/mobile-sub-menu.js deleted file mode 100644 index 59c39eb05779e5be79b8b4f0dfabbbe3ae7a939d..0000000000000000000000000000000000000000 --- a/opentech/static_src/src/javascript/components/mobile-sub-menu.js +++ /dev/null @@ -1,23 +0,0 @@ -class MobileSubMenu { - static selector() { - return '.header__menus--mobile .js-open-subnav'; - } - - constructor(node) { - this.node = node; - this.bindEventListeners(); - } - - bindEventListeners() { - this.node.on('click', (e) => { - e.preventDefault(); - this.open(); - }); - } - - open() { - this.node[0].parentElement.nextElementSibling.classList.add('is-visible'); - } -} - -export default MobileSubMenu; diff --git a/opentech/static_src/src/javascript/components/search.js b/opentech/static_src/src/javascript/components/search.js new file mode 100644 index 0000000000000000000000000000000000000000..b36fff10f5c4da79c1ecee2f8edde1ec815da2f6 --- /dev/null +++ b/opentech/static_src/src/javascript/components/search.js @@ -0,0 +1,32 @@ +class Search { + static selector() { + return '.js-search-toggle'; + } + + constructor(node, searchForm) { + this.node = node; + this.searchForm = searchForm; + this.bindEventListeners(); + } + + bindEventListeners() { + this.node.click(this.toggle.bind(this)); + } + + toggle() { + // show the search + this.searchForm[0].classList.toggle('is-visible'); + + // swap the icons + this.node[0].querySelector('.header__icon--open-search').classList.toggle('is-hidden'); + this.node[0].querySelector('.header__icon--close-search').classList.toggle('is-unhidden'); + + // add modifier to header__inner when the menu is open to style search element + document.querySelector('.header__inner--menu-open').classList.toggle('header__inner--search-open'); + + // add modifier to header to be able to change header icon colours + document.querySelector('.header').classList.toggle('search-open'); + } +} + +export default Search; diff --git a/opentech/static_src/src/javascript/main.js b/opentech/static_src/src/javascript/main.js index 48fba5e67ea92ce52657db8b4227a707aff850e9..743ab06f115464241b2deac4872de0bb7b7da5d2 100755 --- a/opentech/static_src/src/javascript/main.js +++ b/opentech/static_src/src/javascript/main.js @@ -1,35 +1,13 @@ import $ from './globals'; import MobileMenu from './components/mobile-menu'; -import MobileSubMenu from './components/mobile-sub-menu'; -import DesktopSearch from './components/desktop-search'; - -// Open the mobile menu callback -function openMobileMenu() { - document.querySelector('body').classList.add('no-scroll'); - document.querySelector('.header__menus--mobile').classList.add('is-visible'); -} - -// Close the mobile menu callback. -function closeMobileMenu() { - document.querySelector('body').classList.remove('no-scroll'); - document.querySelector('.header__menus--mobile').classList.remove('is-visible'); -} +import Search from './components/search'; $(function () { $(MobileMenu.selector()).each((index, el) => { - new MobileMenu($(el), openMobileMenu, closeMobileMenu); - }); - - $(MobileSubMenu.selector()).each((index, el) => { - new MobileSubMenu($(el)); - }); - - $(DesktopSearch.selector()).each((index, el) => { - new DesktopSearch($(el), $('.header__search--desktop')); + new MobileMenu($(el), $('.js-mobile-menu-close'), $('.header__menus--mobile'), $('.header__search')); }); - // Toggle subnav visibility - $('.js-subnav-back').on('click', function(){ - this.parentNode.classList.remove('is-visible'); + $(Search.selector()).each((index, el) => { + new Search($(el), $('.header__search')); }); }); diff --git a/opentech/static_src/src/sass/abstracts/_mixins.scss b/opentech/static_src/src/sass/abstracts/_mixins.scss index 2758787ee6cd9e24b61cc7592c625f61b7a2512e..61730cf38a90c69fe4f39e6b4b346a09ec9f5839 100755 --- a/opentech/static_src/src/sass/abstracts/_mixins.scss +++ b/opentech/static_src/src/sass/abstracts/_mixins.scss @@ -79,20 +79,18 @@ } // button mixin -@mixin button($bg) { +@mixin button($bg, $hover-bg) { padding: 10px 60px; font-weight: $weight--bold; + color: $color--white; background: $bg; border: 1px solid $color--white; - transition: background $transition; - - &:hover { - background: darken($bg, 8%); - transition: background $transition; - } + transition: color, background, border, $transition; + &:hover, &:active { - background: darken($bg, 25%); + cursor: pointer; + background: $hover-bg; } } diff --git a/opentech/static_src/src/sass/abstracts/_variables.scss b/opentech/static_src/src/sass/abstracts/_variables.scss index 344e99f35199f3cee633b3ecc5c91b6922095d28..4b131c78344523008cb1a99b4b513425f3f5218f 100755 --- a/opentech/static_src/src/sass/abstracts/_variables.scss +++ b/opentech/static_src/src/sass/abstracts/_variables.scss @@ -2,8 +2,11 @@ $color--white: #fff; $color--black: #141414; $color--light-blue: #43bbf1; $color--dark-blue: #25aae1; +$color--darkest-blue: #16729e; +$color--dark-grey: #404041; +$color--purple: #8b1fbc; -$color--default: $color--black; +$color--default: $color--dark-grey; $color--primary: $color--light-blue; $color--secondary: #eaeaea; $color--tertiary: #f9f9f9; diff --git a/opentech/static_src/src/sass/components/_button.scss b/opentech/static_src/src/sass/components/_button.scss index 68b2fc4ce214d63452846b9bdcc9e3f243946b17..19e7322e6f5e92c2044a7288973317b443105ae8 100644 --- a/opentech/static_src/src/sass/components/_button.scss +++ b/opentech/static_src/src/sass/components/_button.scss @@ -9,21 +9,49 @@ cursor: pointer; } + &--left-space { + margin-left: 20px; + } + + &--contains-icons { + display: flex; + align-items: center; + } + + &--transparent { + @include button(transparent, $color--white); + + &:hover { + color: $color--dark-blue; + } + } + + &--narrow { + padding: 5px 15px; + font-size: 15px; + } + // cannot conform to BEM here in order to be able to override google button styles &--google-translate { - display: none; width: 180px; - - @include media-query(tablet-portrait) { - display: block; - } + margin-left: 10px; .goog-te-gadget-simple { - @include button(transparent); + @include button(transparent, $color--white); padding: 5px 15px; font-family: $font--primary; font-size: 15px; font-weight: $weight--bold; + border: 1px solid $color--white; + transition: background, color, $transition; + + &:hover { + .goog-te-menu-value { + span { + color: $color--dark-blue !important; // sass-lint:disable-line no-important + } + } + } .goog-te-menu-value { color: $color--white; @@ -31,6 +59,7 @@ span { // color of the arrow is inlined hence !important color: $color--white !important; // sass-lint:disable-line no-important + transition: color $transition; &:nth-of-type(2) { // hide the pipe @@ -47,69 +76,3 @@ } } -.button-menu-toggle { - position: relative; - z-index: 10; - display: block; - width: 40px; - height: 30px; - margin-top: 5px; - background: transparent; - border: 0; - transform: rotate(0deg); - transition: $transition; - - &__line { - position: absolute; - left: 0; - display: block; - width: 100%; - height: 4px; - background: $color--white; - opacity: 1; - transform: rotate(0deg); - transition: top, width, opacity, transform, left, $transition; - - &:nth-child(1) { - top: 0; - - .is-open & { - top: 10px; - left: 50%; - width: 0%; - } - } - - &:nth-child(2), - &:nth-child(3) { - top: 12px; - opacity: 0.25; - - .is-open & { - opacity: 1; - } - } - - &:nth-child(2) { - .is-open & { - transform: rotate(45deg); - } - } - - &:nth-child(3) { - .is-open & { - transform: rotate(-45deg); - } - } - - &:nth-child(4) { - top: 24px; - - .is-open & { - top: 10px; - left: 50%; - width: 0%; - } - } - } -} diff --git a/opentech/static_src/src/sass/components/_icon.scss b/opentech/static_src/src/sass/components/_icon.scss index 00dc7ee7c51f70dc475bf9f592cd879f5fff5ccf..7db3b1eae6780e904d9ec0b687258f0c5ae5917e 100644 --- a/opentech/static_src/src/sass/components/_icon.scss +++ b/opentech/static_src/src/sass/components/_icon.scss @@ -13,7 +13,7 @@ height: 15px; margin-right: 5px; fill: $color--primary; - } + } &--footer-social { @include media-query(tablet-portrait) { @@ -21,9 +21,34 @@ } } + &--mobile-menu { + width: 32px; + height: 28px; + } + &--footer-credit { width: 70px; height: 45px; margin-right: 3rem; } + + &--person { + width: 15px; + height: 15px; + margin-right: 5px; + transition: fill $transition; + fill: $color--white; + + .button:hover & { + fill: $color--dark-blue; + } + + .header--has-bg-image & { + fill: $color--dark-blue; + } + + .search-open & { + fill: $color--white; + } + } } diff --git a/opentech/static_src/src/sass/components/_link.scss b/opentech/static_src/src/sass/components/_link.scss index 8655ce83c5d604197057edf22d9b92e7942a6d8b..5034a9524c336847dfc5c24472b2d8178c42101b 100644 --- a/opentech/static_src/src/sass/components/_link.scss +++ b/opentech/static_src/src/sass/components/_link.scss @@ -1,12 +1,21 @@ .link { &--button { - @include button($color--light-blue); + @include button($color--light-blue, $color--dark-blue); display: inline-block; } + &--button-secondary { + @include button($color--purple, darken($color--purple, 20%)); + border: 0; + } + &--button-transparent { - @include button(transparent); + @include button(transparent, $color--darkest-blue); color: $color--white; + + &:hover { + border: 1px solid transparent; + } } &--underlined { @@ -16,4 +25,17 @@ &--footer-signup { margin-top: 1rem; } + + &--mobile-standout { + display: block; + width: 100%; + max-width: 250px; + margin: 2rem auto 0; + font-weight: $weight--bold; + text-align: center; + + @include media-query(tablet-portrait) { + display: none; + } + } } diff --git a/opentech/static_src/src/sass/components/_nav.scss b/opentech/static_src/src/sass/components/_nav.scss index 94a6bdd197d19bd0bdac027807ec9087a6521235..b4d94ecacce52a5dd8491c4ce88a46b7fe2f9f6b 100644 --- a/opentech/static_src/src/sass/components/_nav.scss +++ b/opentech/static_src/src/sass/components/_nav.scss @@ -11,6 +11,8 @@ } &--primary { + text-transform: uppercase; + @include media-query(tablet-portrait) { flex-direction: row; justify-content: flex-end; @@ -36,11 +38,6 @@ &.is-visible { transform: translate3d(0%, 0%, 0); } - - @include media-query(tablet-portrait) { - // @todo - desktop dropdown styles - display: none; - } } &--tertiary { @@ -59,12 +56,9 @@ } &__item { - width: 60%; - padding-bottom: 10px; margin-bottom: 10px; font-weight: $weight--bold; text-align: center; - border-bottom: 1px solid rgba($color--black, 0.2); .nav--tertiary & { width: 100%; @@ -89,8 +83,15 @@ border-bottom: 0; } - &--secondary { - font-weight: $weight--light; + &--primary { + @include font-size(epsilon); + margin: 0; + letter-spacing: 1px; + + @include media-query(tablet-landscape) { + @include font-size(zeta); + margin: 0 18px; + } } &--footer { @@ -142,6 +143,8 @@ } &__link { + display: inline-block; + padding: 20px 15px; color: $color--white; border-bottom: 1px solid transparent; transition: color, border $transition; @@ -151,16 +154,15 @@ } @include media-query(tablet-landscape) { + display: initial; + padding: 0; + &:hover { color: lighten($color--secondary, 20%); border-bottom: 1px solid $color--secondary; } } - @include media-query(tablet-portrait) { - margin: 0 10px; - } - &--breadcrumb { color: $color--primary; @@ -170,11 +172,4 @@ } } } - - &__icon { - @include media-query(tablet-landscape) { - // @todo - desktop dropdown styles - display: none; - } - } } diff --git a/opentech/static_src/src/sass/layout/_header.scss b/opentech/static_src/src/sass/layout/_header.scss index 6fe7b3df7b436029ac6fe26eeca066504d39a3b2..cd14d66c35c76c42d42fac275ab6a67671b5a9ad 100644 --- a/opentech/static_src/src/sass/layout/_header.scss +++ b/opentech/static_src/src/sass/layout/_header.scss @@ -32,40 +32,57 @@ align-items: center; justify-content: space-between; width: 100%; - } - &__inner--top { - display: flex; - align-items: center; - justify-content: flex-end; + &--mobile-buttons { + justify-content: flex-end; + + @include media-query(tablet-portrait) { + display: none; + } + } + + &--menu-open { + padding: 10px; + background: transparent; + transition: background $transition; + } + + &--search-open { + background: $color--dark-blue; + } } &__menus { - &--desktop { display: none; @include media-query(tablet-portrait) { display: flex; - flex-direction: column; - justify-content: space-between; + align-items: center; } } &--mobile { position: fixed; - top: 87px; + top: 0; left: 0; - display: flex; + z-index: 10; width: 100%; height: 100%; - padding-top: 20px; - background: rgba($color--white, 0.95); - transform: translate3d(100%, 0%, 0); - transition: transform 250ms cubic-bezier(0.24, 0.26, 0.2, 1) 0ms; + background: $color--dark-grey; + opacity: 0; + transform: translate3d(0, -100%, 0); + transition-duration: 0.25s; + transition-property: transform, opacity; + transition-timing-function: cubic-bezier(0.65, 0.05, 0.36, 1); &.is-visible { - transform: translate3d(0%, 0%, 0); + opacity: 1; + transform: translate3d(0, 0%, 0); + + @include media-query(tablet-portrait) { + display: none; + } } nav { @@ -81,7 +98,7 @@ width: 60px; height: 60px; - @include media-query(tablet-portrait) { + @include media-query(tablet-landscape) { display: none; } } @@ -89,7 +106,7 @@ &--desktop { display: none; - @include media-query(tablet-portrait) { + @include media-query(tablet-landscape) { display: block; height: 50px; max-width: 215px; @@ -98,23 +115,13 @@ } &__menu-toggle { - @include font-size(milli); - z-index: 10; - display: flex; - align-items: flex-end; - flex-direction: column; - width: 100%; - font-weight: $weight--bold; - color: $color--secondary; - text-transform: uppercase; - @include media-query(tablet-portrait) { display: none; } } &__icon { - &--cross { + &--close-search { @extend %is-hidden; } @@ -144,18 +151,30 @@ } &__search { - &--desktop { - @extend %is-invisible; - position: absolute; - top: 0; - left: 0; + @extend %is-invisible; + position: absolute; + top: 0; + left: 0; + display: flex; + align-items: flex-end; + justify-content: center; + width: 100%; + height: 180px; + padding-bottom: 50px; + background: $color--dark-blue; + + &--mobile-menu-open { + top: 80px; + z-index: 12; + height: 120px; + } + } + + &__button-container { + display: none; + + @include media-query(tablet-portrait) { display: flex; - align-items: flex-end; - justify-content: center; - width: 100%; - height: 180px; - padding-bottom: 50px; - background: $color--dark-blue; } } } diff --git a/opentech/templates/base.html b/opentech/templates/base.html index 5026087380878e45b0754d141f48f9448e37fe99..7e0b0e363586387eaef7adb4b86bf6d8ed150f4d 100644 --- a/opentech/templates/base.html +++ b/opentech/templates/base.html @@ -81,35 +81,52 @@ <svg class="header__logo header__logo--mobile"><use xlink:href="#logo-mobile"></use></svg> </a> - <div class="header__menu-toggle"> - <span>Menu</span> - <button class="button button-menu-toggle js-mobile-menu-toggle" aria-haspopup="true"> - <span class="button-menu-toggle__line"></span> - <span class="button-menu-toggle__line"></span> - <span class="button-menu-toggle__line"></span> - <span class="button-menu-toggle__line"></span> + <div class="header__inner header__inner--mobile-buttons"> + <button class="button js-search-toggle" aria-haspopup="true"> + <svg class="header__icon header__icon--open-search header__icon--open-search-menu-closed icon icon--mobile-menu"><use xlink:href="#magnifying-glass"></use></svg> + <svg class="header__icon header__icon--close-search header__icon--close-search-menu-closed icon icon--mobile-menu"><use xlink:href="#cross"></use></svg> + </button> + <button class="button button--left-space js-mobile-menu-toggle" aria-haspopup="true"> + <svg class="icon icon--mobile-menu"><use xlink:href="#mobile-menu-toggle"></use></svg> </button> </div> <section class="header__menus header__menus--desktop"> - <div class="header__inner--top"> - {% primarynav %} + {% primarynav %} - <button class="button js-desktop-search-toggle"> - <svg class="header__icon header__icon--magnifying-glass icon"><use xlink:href="#magnifying-glass"></use></svg> - <svg class="header__icon header__icon--cross icon"><use xlink:href="#cross"></use></svg> - </button> - </div> + <button class="button button--contains-icons button--left-space js-search-toggle" aria-haspopup="true"> + <svg class="header__icon header__icon--open-search icon"><use xlink:href="#magnifying-glass"></use></svg> + <svg class="header__icon header__icon--close-search icon"><use xlink:href="#cross"></use></svg> + </button> </section> <section class="header__menus header__menus--mobile"> + <div class="header__inner header__inner--menu-open"> + <a href="{% slugurl 'home' %}"> + <svg class="header__logo header__logo--mobile"><use xlink:href="#logo-mobile"></use></svg> + </a> + <div class="header__inner header__inner--mobile-buttons"> + <button class="button js-search-toggle" aria-haspopup="true"> + <svg class="header__icon header__icon--open-search header__icon--open-search-menu-open icon icon--mobile-menu"><use xlink:href="#magnifying-glass"></use></svg> + <svg class="header__icon header__icon--close-search header__icon--close-search-menu-open icon icon--mobile-menu"><use xlink:href="#cross"></use></svg> + </button> + <button class="button button--left-space js-mobile-menu-close"> + <svg class="header__icon header__icon--cross icon icon--mobile-menu"><use xlink:href="#cross"></use></svg> + </button> + </div> + </div> {% primarynav %} </section> - - <div class="button button--google-translate" id="google_translate_element"></div> + <div class="header__button-container"> + <a href="#" class="button button--transparent button--narrow button--contains-icons"> + <svg class="icon icon--person"><use xlink:href="#person-icon"></use></svg> + Log in + </a> + <div class="button button--google-translate" id="google_translate_element"></div> + </div> </div> - <div class="header__search header__search--desktop"> + <div class="header__search"> <form action="{% url 'search' %}" method="get" role="search" class="form form--header-search-desktop"> <button class="button" type="submit"> <svg class="icon icon--magnifying-glass"><use xlink:href="#magnifying-glass"></use></svg> @@ -181,14 +198,13 @@ <span>PGP: 67AC DDCF B909 4685 36DD BC03 F766 3861 965A 90D2</span> </p> - <p><a href="/rss.xml">RSS Feed</a></p> <p><a class="link link--underlined" href="#">Terms of Use</a></p> <p>Test the OTF website for censorship</p> - <a class="link link--button" href="https://run.ooni.io/nettest?tn=web_connectivity&ta=%7B%22urls%22%3A%5B%22https%3A%2F%2Fwww.opentech.fund%2F%22%5D%7D&mv=1.2.0">Run OONI!</a> + <a class="link link--button link--button-transparent" href="https://run.ooni.io/nettest?tn=web_connectivity&ta=%7B%22urls%22%3A%5B%22https%3A%2F%2Fwww.opentech.fund%2F%22%5D%7D&mv=1.2.0">Run OONI!</a> <div class="footer__credits"> <a href="https://www.bbg.gov/"> diff --git a/opentech/templates/includes/sprites.html b/opentech/templates/includes/sprites.html index 223ef88e3ca94c53c6135a891f778f537843a222..9035efc796840371e4ee518348336380ba182e57 100644 --- a/opentech/templates/includes/sprites.html +++ b/opentech/templates/includes/sprites.html @@ -1,12 +1,9 @@ <svg style="display: none;" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> - <symbol id="magnifying-glass" viewBox="0 0 250.313 250.313"> - <path d="M244.186,214.604l-54.379-54.378c-0.289-0.289-0.628-0.491-0.93-0.76 - c10.7-16.231,16.945-35.66,16.945-56.554C205.822,46.075,159.747,0,102.911,0S0,46.075,0,102.911 - c0,56.835,46.074,102.911,102.91,102.911c20.895,0,40.323-6.245,56.554-16.945c0.269,0.301,0.47,0.64,0.759,0.929l54.38,54.38 - c8.169,8.168,21.413,8.168,29.583,0C252.354,236.017,252.354,222.773,244.186,214.604z M102.911,170.146 - c-37.134,0-67.236-30.102-67.236-67.235c0-37.134,30.103-67.236,67.236-67.236c37.132,0,67.235,30.103,67.235,67.236 - C170.146,140.044,140.043,170.146,102.911,170.146z"/> + <symbol id="magnifying-glass" viewBox="0 0 24 24"> + <g stroke="#FFF"> + <path d="M9.412 17.824C4.772 17.824 1 14.058 1 9.412 1 4.765 4.773 1 9.412 1c4.639 0 8.412 3.774 8.412 8.412 0 4.638-3.776 8.412-8.412 8.412zm0-15.142c-3.71 0-6.73 3.02-6.73 6.73 0 3.71 3.02 6.73 6.73 6.73 3.71 0 6.73-3.02 6.73-6.73 0-3.71-3.02-6.73-6.73-6.73zM21.902 23l-5.373-5.364 1.099-1.107L23 21.894z" /> + </g> </symbol> <symbol id="twitter" viewBox="0 0 20.56 18.88"> @@ -53,7 +50,21 @@ <path d="M15.056 52.5a2.575 2.575 0 0 0-2.562-2.663 2.531 2.531 0 0 0-2.538 2.638 2.575 2.575 0 0 0 2.563 2.663 2.531 2.531 0 0 0 2.537-2.638M8 52.5a4.5 4.5 0 1 1 9 0 4.5 4.5 0 0 1-9 0M21.568 49.827H19V48h7v1.827h-2.574V57h-1.858zM29 48h7v1.8h-4.979v1.913h4.382v1.8h-4.382V57H29zM10 0h5v5h-5zM10 33h5v5h-5zM29 0h5v5h-5zM5 5h5v5H5zM5 29h5v5H5zM34 29h5v5h-5zM29 33h5v5h-5zM34 5h5v5h-5zM0 10h5v19H0zM38 10h5v19h-5z" /> </symbol> + <symbol id="mobile-menu-toggle" viewBox="0 0 25 21"> + <g fill-rule="evenodd"> + <path d="M0 0h25v3H0zM0 9h25v3H0zM0 18h25v3H0z" /> + </g> + </symbol> + <symbol id="bbg-logo" width="67" height="46" viewBox="0 0 67 46"> <path d="M36.063 37.97c-.482.085-.98.11-1.47.112-2.145.013-4.29.006-6.434.007 1.617-3.631 1.623-7.278.107-10.94-.026-.062-.05-.126-.075-.188 2.417.008 4.833-.009 7.25.03 2.603.042 4.963 2.41 5.168 5.006.241 3.059-1.904 5.507-4.546 5.973m-20.561.116c-2.332.011-4.665-.009-6.997.017-.467.005-.562-.142-.556-.577.025-1.668.01-3.336.01-5.003 0-1.702.004-3.404-.004-5.106-.001-.29.019-.466.398-.463 2.621.023 5.243-.018 7.863.04 2.761.063 4.976 2.294 5.232 5.164.23 2.574-1.66 5.146-4.226 5.752-.567.133-1.144.174-1.72.176M8.449 7.9c2.383.021 4.766-.005 7.15.014 2.808.023 4.979 1.613 5.66 4.108.967 3.546-1.613 6.93-5.394 7.007-2.5.05-5.004.002-7.506.018-.37.002-.406-.158-.404-.457.01-1.702.004-3.404.004-5.106 0-1.685.01-3.37-.007-5.054-.004-.378.07-.534.497-.53m19.742 11.14a13.526 13.526 0 0 0 1.143-6.688 12.468 12.468 0 0 0-1.175-4.44c2.179.001 4.357.003 6.535.002 1.822 0 3.386.577 4.609 1.985 2.72 3.134 1.012 8.184-3.055 9.016-.488.1-.978.116-1.47.116l-6.587.01M53.533 7.973c2.543.18 4.802 2.477 4.93 5.022.02.382.115.515.525.512 2.485-.021 4.97-.01 7.455-.01V12.27c-.152-.738-.262-1.487-.462-2.212C64.47 4.558 60.016.759 54.34.104c-.07-.008-.132-.021-.162-.094H17.078C11.525.01 5.972.014.418 0 .069 0 0 .069 0 .419.011 15.473.011 30.527 0 45.58c0 .35.068.42.419.419 5.553-.014 11.106-.01 16.659-.01h36.998c.815-.207 1.657-.27 2.471-.498a13.526 13.526 0 0 0 9.795-11.398c.011-.095-.021-.21.1-.263V19.015c-.782.008-1.564.021-2.347.022-3.882.002-7.763.011-11.645-.011-.505-.003-.617.144-.612.627.026 2.23.033 4.46-.003 6.689-.009.545.168.64.66.632 1.839-.028 3.678-.001 5.517-.02.372-.003.496.087.49.478-.027 1.838.023 3.678-.04 5.514-.09 2.625-2.397 4.929-5.027 5.09-2.023.124-4.05.02-6.075.06l-.136.27.136-.27c2.235-5.47 1.403-10.423-2.513-14.85-.177-.2-.18-.3.003-.493 1.952-2.054 3.152-4.492 3.574-7.287.396-2.616.017-5.144-1.065-7.563 2.058.047 4.118-.075 6.174.071" fill="#FEFEFE" fill-rule="nonzero" /> </symbol> + + <symbol id="person-icon" viewBox="0 0 11 13"> + <g fill-rule="evenodd"> + <ellipse cx="5.5" cy="3.033" rx="2.962" ry="3.033" /> + <path d="M8.012 6.83C9.786 7.982 11 10.313 11 13H0c0-2.688 1.214-5.019 2.988-6.17a3.742 3.742 0 0 0 5.024 0z" /> + </g> + </symbol> + </svg>